MANOCHITRA93 - Blogs

cloud computing

urrent cloud computing providers mainly rely

on large and consolidated datacenters in order

to offer their services. This predominantly

centralized infrastructure brings many wellknown

challenges, such as a need for resource overprovisioning

and costly heat dissipation and temperature

control, and it also naturally increases the average distance

to end users [1].

In contrast, the authors in [2] introduce what they refer to

as "embarrassingly distributed applications.” These are,

according to them, cloud services that do not require massive

internal communication among large server pools, and are

created out of small distributed datacenters. Under this model,

one may understandably take advantage of geo-diversity to

potentially improve cost and performance. However, the

authors propose using public infrastructure for communication

between datacenters and also with end users. The drawback

we see with this approach is that it transfers traffic

control to Internet service providers, who may lack the bilateral

agreements that would adequately support cloud traffic

constraints.

Authors in [3] make use of distributed voluntary resources to

form what they call "nebulas” with the goal of building clouds

that are more dispersed and have low costs of deployment.

Some specific classes of applications fit within this idea, such

as experimental cloud services, dispersed data-intensive services,

and shared services. However, the lack of central management

is a major issue with regard to reliability and state

maintenance in the presence of failures.

To overcome these limitations, we choose a generic and

distributed solution that may be used in the context of many

types of services (describing their requirements at different

abstraction levels). We refer to this concept as a distributed

cloud. In such a scenario, cloud providers hire infrastructure

on demand, and acquire dedicated connectivity and resources

from communication providers. It is important to highlight

that the infrastructure may range from routers and links to

servers and databases.

Distributed clouds have similar characteristics to current

cloud providers. In addition to their essential offerings, such

as scalable services, on-demand usage, and pay-as-you-go

business plans, distributed clouds also take advantage of geodiversity.

However, unlike in [2], a higher level of governance

may be exercised.

An interesting application area that stands to benefit from

offering resource allocation in geo-distributed scenarios is that

of network virtualization (NV) [4]. Authors in [5] define NV

as a system that supports "multiple coexisting heterogeneous

network architectures from different service providers, sharing

a common physical substrate.” In a network virtualization

environment (NVE), virtual networks (VNs), composed of virtual

routers and virtual links, are deployed on a shared physical

network, called substrate network (SN). The selection and

span of VNs may be achieved under distributed geolocation

constraints to improve user satisfaction and/or provider investment

return. Thus, the main NV problem consists of choosing

how to allocate a VN over an SN, meeting requirements and

minimizing resource usage of the SN.

Although NV and distributed clouds are subject to similar

problems and scenarios, there is an essential difference

between them. While NV commonly models its resources

using graphs only (requests are always virtual network ones), a

distributed cloud allows many abstraction levels of resource

modeling (requests may be for different types of applications).

This way, one may see NV just as a particular instance of the

distributed cloud.

There are some NV projects that already work with the

idea of a geographically distributed cloud. PlanetLab is a popular

project that provides geographically distributed virtualized

nodes. VINI offers a network infrastructure in which

researchers can test new ideas from the field of NV. SAIL is

an FP7 European research project that aims to provide

resource virtualization in order to allow researchers to investigate

novel networking technologies, offering them what they

call cloud networking.

This article gives special emphasis to the challenges for

42 0890-8044/11/$25.00 © 2011 IEEE IEEE Network • July/August 2011

CC

Patricia Takako Endo, André Vitor de Almeida Palhares, Nadilma Nunes Pereira, Glauco Estácio

Gonçalves, Djamel Sadok, and Judith Kelner, Federal University of Pernambuco

Bob Melander and Jan-Erik Mångs, Ericsson Research

Abstract

In a cloud computing environment, dynamic resource allocation and reallocation

are keys for accommodating unpredictable demands and, ultimately, contribute to

investment return. This article discusses this process in the context of distributed

clouds, which are seen as systems where application developers can selectively

lease geographically distributed resources. This article highlights and categorizes

the main challenges inherent to the resource allocation process particular to distributed

clouds, offering a stepwise view of this process that covers the initial modeling

phase through to the optimization phase.

Resource Allocation for Distributed Cloud:

Concepts and Research Challenges

IEEE Network • July/August 2011 43

resource allocation in distributed clouds, focusing

on four fundamental points:

• Resource modeling

• Resource offering and treatment

• Resource discovery and monitoring

• Resource selection

There is, in our view, very little literature available

on this different cloud computing paradigm,

and we expect to present the reader with useful

related insights.

This article is organized as follows. We provide

some basic definitions; we state relevant research

challenges about resource allocation; we discuss

resource allocation challenges and NV; and finally,

we draw some conclusions.

Definitions

This section is particularly important as it highlights

the main differences between the traditional

cloud and a distributed one. It also establishes

the nomenclature used in the rest of the article.

Figure 1 shows the four entities that typically

compose the distributed cloud computing ecosystem:

end user, cloud user, cloud provider, and

cloud applications. Furthermore, it shows the

resource allocation system and some interfaces, described

later.

The cloud user is located in the middle, between end users

and the cloud provider, and is responsible for providing applications.

A cloud user can be seen as a service provider, who

leases resources/services offered by the provider in order to

host applications that will be consumed by end users. In turn,

the end user is the customer of an application that simply uses

applications, generating demand for the cloud. It is important

to highlight that in some scenarios (e.g., scientific computation

or batch processing) cloud users may behave as end users

to the cloud.

The cloud provider is the owner of the infrastructure. In this

way, a provider is responsible for managing physical and virtual

resources to host applications. These cloud applications may

be of different types (a farm of web servers, a scientific application,

etc.) that all have different requirements. For example,

in the case of NV, a request for a VN may be represented

with constraints associated with nodes (e.g., CPU and physical

location) and links (e.g., delay, bandwidth, and jitter). For

each VN request, the provider has to assign virtual resources

to be hosted on its physical resources [4].

An essential feature of resource allocation mechanisms in

cloud computing results from the need to guarantee that the

requirements of cloud applications are met. According to

[6], resource allocation must be "robust against perturbations

in specified system parameters.” In other words, it

must limit the degradation in performance to a certain

acceptable range.

To this end, allocation mechanisms should know the status

of each element/resource in the distributed cloud environment

and, based on them, intelligently apply algorithms

to better allocate physical or virtual resources to applications

according to their pre-established requirements. This

way, we may consider that cloud resources, resource modeling,

application requirements, and provider requirements

constitute the input used by a resource allocation mechanism

(Fig. 2).

These resources are located in a distributed pool and

shared by multiple users. Each provider is free to model its

resources according to its business model.

Research Challenges Inherent to Resource

Allocation

One of the most important aspects of cloud computing is the

availability of "infinite” computing resources that may be used

on demand. Users may rely on this "infinite” resource feeling

because the distributed cloud — through the resource allocation

system (RAS), which is shown in Fig. 2 — tries to deal

with end users’ demands in an elastic way. This elasticity

allows the statistical multiplexing of physical resources, avoiding

both under- and overprovisioning, as is the case in most

corporate information technology (IT) infrastructures.

Furthermore, there is a need to cope with resource heterogeneity.

This can be seen in distributed clouds, which are

composed of computational entities with different architectures,

software, and hardware capabilities. Thus, the development

of a suitable resource model is the first challenge that

an RAS must deal with.

The RAS for a distributed cloud also faces the challenge of

representing cloud applications and describing them in terms of

what is known as resource offering and treatment. Together with

traditional network requirements (bandwidth and delay) and

computational requirements, (CPU and memory), new requirements

(locality restrictions and environmental necessities) are

now part of the distributed cloud’s additional requirements. Similarly,

the right mechanisms for resource discovery and monitoring

should also be designed, allowing the RAS to be aware of the

current status of available resources. Based on this information,

the RAS is then able to optimize already allocated resources,

and can also elect available resources to fulfill future demands.

In Fig. 3, we see how the four challenges above are related.

First, the provider faces the problems grouped together in the

conception phase, where the provider should model resources

according to the kind of service(s) it will supply and the type

of resources it will offer. The next two challenges are faced in

the scope of the operational phase. When requests arrive, the

RAS should be aware of the current status of resources in

order to determine if there are available resources in the distributed

cloud that could satisfy the present request. Then, if

this is the case, the RAS may select and allocate them to

serve the request.

Figure 1. Entities in the cloud computing ecosystem.

Virtualized resources

User

User

Interface

Resource allocation

system

Interface

Applications

Provider

End user End userEnd user End user

44 IEEE Network • July/August 2011

When conceiving a distributed cloud, it is natural for its

provider to choose the nature of its offering: service, infrastructure,

and platform as a service (SaaS, Iaas, and PaaS).

The next sections describe each of these four challenges.

Resource Modeling

The cloud resource description defines how the cloud deals

with infrastructural resources. This modeling is essential to all

operations in the cloud, including management and control.

Optimization algorithms are strongly dependent on the

resource modeling scheme used.

Network and computing resources may be described by several

existing notations, such as the Resource Description

Framework (RDF) and Network Description Language

(NDL). However, in a cloud environment, it is very important

that resource modeling take into account schemas capable of

representing virtual resources, virtual networks, and virtual

applications. According to [7], virtual resources need to be

described in terms of properties and functionalities, much like

services and devices/nodes are described in existing service

architectures.

The granularity of the resource description is another important

point. The amount of detail that should be taken into

consideration when describing resources is related to the difficulty

of achieving a generic solution for distributed clouds. If

resources are described using many details, there is a risk that

the resource selection and optimization phase could become

hard and complex to handle. On the other hand, more details

allow more flexibility and leverage in the usage of resources.

Additionally, resource modeling is associated with a big

challenge in current cloud computing: interoperability. The

author in [8] describes the "hazy scenario,” wherein large

cloud providers use proprietary systems, hampering integration

between different and external clouds. In this way, the

main goal of interoperability in clouds is to realize the seamless

flow of data across clouds, and between clouds and their

local applications [9]. Solutions such as intermediary layers,

standardization, and open application programming interfaces

(APIs) are interesting options for interoperability.

According to [10], interoperability in the cloud faces two

types of heterogeneities: vertical and horizontal. The former is

intra-cloud interoperability, and may be addressed by middleware

and enforcing standardization. The authors highlight the

Open Virtualization Format (OVF) as an interesting option

for managing virtual machines (VMs) across heterogeneous

infrastructures. The latter heterogeneity type is more difficult

to address because it is related to clouds from different

providers. Once each provider manipulates and describes their

resources at their own abstraction level, the challenge is how

to lead with these differences to permit interaction between

clouds. A high level of granularity in the modeling may help

to address this type of problem, but perhaps at the cost of losing

information.

Distributed clouds may take advantage of accruing horizontal

interoperability. In such a scenario, a provider may receive

a request with specific locational constraints, and for some

reason (e.g., the unavailability of resources close to the

requested location) cannot fulfill that request. Then, as an

alternative, the provider may "borrow” resources from another

one by dynamically negotiating these.

Resource Offering and Treatment

Once the cloud resources are modeled, the provider may offer

interfaces that are elements of the RAS, as shown in Fig. 1.

The middleware should handle resources (at a lower level)

and, at the same time, deal with the application’s requirements

(described at a higher level).

It is important to highlight that resource modeling is possibly

independent of the way they are offered to end users. For

example, the provider could model each resource individually,

like independent items on a fine-grained scale, such as the

gigahertz of CPU or gigabytes of memory, but offer them as a

coupled collection of items or a bundle, such as VM classes

(high memory and high processor types).

Since a distributed cloud craves a generic solution (i.e., to

support as many applications as possible), resource offering

becomes very cumbersome. Questions like "how can one

achieve a good trade-off between the granularity of the resource

modeling, and the ease of dealing with the generality level?” and

"how many types of applications may one support to be considered

generic enough?” must be considered by providers.

Furthermore, handling resources requires that the RAS

implement solutions to control all the resources in the cloud.

Such control and management planes would need a complete

set of signaling protocols to set up hypervisors, routers, and

switches. Currently, to deal with these tasks, each cloud

provider implements their own solution, which generally

inherits a great deal from datacenter control solutions. They

also employ solutions for the integrated control of hypervisors.

In the future, new signaling protocols can be developed

for resource reservation in heterogeneous distributed clouds.

The RAS must ensure that all requirements may be met

with the available resources. These requirements have been

defined previously between the provider and each cloud user,

and may be represented by service level agreements (SLA)

and ensured by the provider through continuous monitoring

[11].

You may recall that, in addition to common network and

computational requirements, new requirements are present

under distributed cloud scenarios. Below, we describe some of

Figure 2. Resource allocation inputs.

Provider

requirements

Cloud

resources

Resource

modeling

Application

requirements

Resource

allocation

Figure 3. Relationship between resource allocation challenges.

Resource modeling

Resource offering

and treatment

Conception phase

Resource discovery

and monitoring

Resource selection

and optimization

Operational phase

IEEE Network • July/August 2011 45

these. The list is merely illustrative, since there are many distinct

use scenarios, each with possibly differing requirements.

The topology of the nodes may be described. In this case,

cloud users are able to set inter-node relationships and communication

restrictions (e.g., downlinks and uplinks). This is

illustrated in the scenario where servers — configured and

managed by cloud users — are distributed (at different physical

nodes), while it is necessary for them to communicate with

each other in a specific way.

Jurisdiction is related to where (physically) applications and

their data must be stored and handled. Due to restrictions

such as copyright laws, cloud users may want to limit the locations

where their information can be stored (e.g., countries or

continents). This requirement should be re-evaluated to

ensure that it does not conflict with topology requirements.

The node proximity may be seen as a constraint, where a

maximum (or minimum) physical distance (or delay value)

between nodes is imposed. This may also have direct impact

on other requirements, such as topology. Although cloud

users do not know about the actual topology of the nodes,

here they may merely request a delay threshold, for example.

The application interaction describes how applications are

configured to exchange information with each other. Cloud

users may introduce some limitations (e.g., access control)

according to their policies. Thus, application interaction and

topology requirements may also be strongly related to each

other.

The cloud user should also be able to define scalability

rules. These rules would specify how and when the application

would grow and consume more resources from the cloud.

Work in [12] defines a way of doing this, allowing the cloud

user to specify actions that should be taken (e.g., deploying

new VMs) based on thresholds of observed metrics.

Resource Discovery and Monitoring

Resource discovery stems from the provider needing to find

appropriate resources (suitable candidates) to comply with

requests. In addition, questions like "how can one discover

resources with (physical/geographical) proximity in a distributed

cloud?” and "how can one minimally impact the network, especially

costly interdomain traffic?” also fall within the responsibility

of resource discovery, and cannot be answered trivially.

Furthermore, considering distributed clouds, any new signaling

overhead should not affect other essential quality-of-service

requirements.

A simple implementation of the resource discovery service

uses a discovery framework with an advertisement process,

and has been described in [7] for the NV scenario. It is used

by brokers to discover and match available resources from different

providers. It consists of distributed repositories responsible

for storing resource descriptions and states.

Considering that one of the key features of cloud computing

is its capability of acquiring and releasing resources on

demand [13], resource monitoring should be continuous, and

should help with allocation and reallocation decisions as part

of overall resource usage optimization. A careful analysis

should be done to find an acceptable trade-off between the

amount of control overhead and the frequency of resource

information refreshing.

The above monitoring may be passive or active. It is considered

passive when there are one or more entities collecting

information. The entity may continuously send polling messages

to nodes asking for information or do this on demand

when necessary. On the other hand, the monitoring is active

when nodes are autonomous and may decide when to send

asynchronously state information to some central entity.

Naturally, distributed clouds may use both alternatives

simultaneously to improve the monitoring solution. In this

case, it is necessary to synchronize updates in repositories to

maintain consistency and validity of state information.

Resource Selection and Optimization

With information regarding cloud resource availability at hand,

a set of appropriate candidates may be highlighted. Next, the

resource selection process finds a configuration that fulfills all

requirements and optimizes the usage of the infrastructure. In

virtual networks, for example, the essence of resource selection

mechanisms is to find the best mapping of the virtual networks

on the substrate network with respect to the constraints [14].

Selecting suitable solutions from a set is not a trivial task due

to the dynamicity, high algorithm complexity, and all the other

different requirements relevant to the provider.

Resource selection may be done using optimization algorithms.

Many optimization strategies may be used, from simple

and well-known techniques such as simple heuristics with

thresholds or linear programming to newer, more complex

ones, such as Lyapunov optimization [15]. Moreover, artificial

intelligence algorithms, biologically inspired ones (e.g., ant

colony behavior), and game theory may also be applied in this

scenario. Authors in [16] define a system called Volley to

automatically migrate data across geo-distributed datacenters.

This solution uses an iterative optimization algorithm based

on weighted spherical means [16].

Resource selection strategies fall into a priori and a posteriori

classes. In the a priori case, the first allocation solution is

an optimal one. To achieve this goal, the strategy should consider

all variables influencing the allocation. For example,

considering VM instances being allocated, the optimization

strategy should figure out the problem, presenting a solution

(or a set of possibilities) that satisfies all constraints and

meets the goals (e.g., minimization of reallocations) in an

optimal manner.

In an a posteriori case, once an initial allocation that can be

a suboptimal solution is made, the provider should manage its

resources in a continuous way in order to improve this solution.

If necessary, decisions such as to add or reallocate

resources should be made in order to optimize the system utilization

or comply with cloud users’ requirements.

Since resource utilization and provisioning are dynamic and

changing all the time, it is important that any a posteriori optimization

strategy quickly reach an optimal allocation level, as

a result of a few configuration trials. Furthermore, it should

also be able to optimize the old ones, readjusting them

according to new demand. In this case, the optimization strategy

may also fit with the definition of a priori and dynamic

classification.

Discussion

In this section we discuss the challenges of resource allocation,

seeing the distributed cloud allocation problem partially

as a NV allocation problem. This is one of many views of the

problem. We see that the NV view is important for distributed

clouds, essentially because it can easily model the geographic

location of the allocated resources, as can be seen in [17].

The authors of [17] describe the problem of NV on a substrate

network. The resource modeling and offering approach

is generally based on graphs. The SN and virtual network

requests can be seen as sets of nodes and edges, forming the

substrate graph. Bandwidth and CPU (or memory requirements)

can be modeled as capacities associated with each link

or node. An assignment can be seen as a simple mapping

from the virtual nodes of the request to the substrate nodes

and from the virtual links to the substrate paths.

46 IEEE Network • July/August 2011

With regard to resource monitoring, the solution is totally

indifferent as to how the information on resource and network

states is provided or obtained. The algorithm just considers

that this information exists and uses it to perform

optimal allocation.

Because the VN allocation problem is NP-hard [5], many

approaches require some heuristic solutions and approximation

algorithms. The resource usage optimization presented

in [17] is applied a priori to optimize the revenue and cost

to the provider. Given the model, the algorithm allocates

virtual networks in consideration of constraints such as

CPU, memory, location, bandwidth, and an objective function.

The authors reduce their problem to a mixed integer

programming problem and then relax the integer constraints

to solve the problem with a polynomial time algorithm. An

approximated solution for the initial problem is obtained

through this method. Two approximation algorithms have

been used. The first uses a deterministic approximation, and

the other uses a random approach. Other approaches in

[18] first allocate nodes and then the virtual links between

them in separated steps using both a priori and a posteriori

techniques.

Final Considerations

Our contributions are twofold. First, we establish and enforce

the definition of what is seen as a distributed cloud. Next, the

four main challenges for such a cloud paradigm are described.

These are:

• Resource modeling

• Resource offering and treatment

• Resource discovery and monitoring

• Resource selection

Some solutions for these have been pointed out.

Although they present special challenges requiring new

research, distributed clouds are promising and may grow to be

seen in various contexts.

Acknowledgment

This work was supported by the Innovation Center, Ericsson

Telecomunicações S.A., Brazil.

References

[1] V. Valancius et al., "Greening the Internet with Nano Data Centers,” Proc.

5th Int’l. Conf. Emerging Networking Experiments and Technologies, 2009,

pp. 37–48.

[2] K. Church, A. Greenbreg, and J. Hamilton, "On Delivering Embarrassingly

Distributed Cloud Services,” VIII Hotnets, Citeseer, 2008.

[3] A. Chandra, and J. Weissman, "Nebulas: Using Distributed Voluntary

Resources to Build Clouds,” Proc. 2009 Conf. Hot Topics in Cloud Computing,

2009.

[4] A. Haider, R. Potter, and A. Nakao, "Challenges in Resource Allocation in

Network Virtualization,” 20th ITC Specialist Seminar, 18–20 May 2009, Hoi

An, Vietnam.

[5] N. M. K. Chowdhury and R. Boutaba, "A Survey of Network Virtualization,”

Computer Networks: Int’l. J. Comp. and Telecommun. Networking, Apr.

2010, pp. 862–76.

[6] S. Khan, A. Maciejewsk, and H. Siegel, "Robust CDN Replica Placement

Techniques,” IEEE Int’l. Symp. Parallel & Distrib. Processing, 2009.

[7] I. Houidi et al., "Virtual Resource Description and Clustering for Virtual Network

Discovery,” Proc. IEEE ICC Wksp. Network of the Future, Dresden,

Germany, June 2009.

[8] M. Nelson, "Building a Open Cloud,” Science, vol. 234, 2009, pp. 1656–57.

[9] T. Dillon, C. Wu, and E. Chang, "Cloud Computing: Issues and Challenges,”

IEEE Int’l. Conf. Advanced Info. Networking and Apps., 2010, pp. 27–33.

[10] A. Sheth, and A. Ranabahu, "Semantic Modeling for Cloud Computing,

Part I,” IEEE Computer Society — Semantics & Services, 2010.

[11] C. A. Yfoulis, and A. Gounaris, "Honoring SLAs on Cloud Computing Services:

A Control Perspective,” Proc. EUCA/IEEE Euro. Control Conf. 2009.

[12] C. Chapman et al., "Software Architecture Definition for On-Demand Cloud

Provisioning,” Proc. 19th ACM Int’l. Symp. High Performance Distrib. Computing,

2010, pp. 61–72.

[13] Q. Zhang, L. Cheng, and R. Boutaba. "Cloud Computing: State-of-the-Art

and Research Challenges,” J. Internet Services and Apps., Springer, 2010,

pp. 7–18.

[14] I. Houidi, W. Louati, and D. Zeghlache, "A Distributed Virtual Network

Mapping Algorithm,” Proc. IEEE ICC, 2008, pp. 5634–40.

[15] R. Urgaonkar et al., "Dynamic Resource Allocation and Power Managementin

Virtualized Data Centers,” IEEE NOMS), 2010.

[16] S. Agarwal et al., "Volley: Automated Data Placement for Geo-Distributed

Cloud Services,” Proc. 7th USENIX Conf. Networked Sys. Design and Implementation,

2010.

[17] N. M. M. K. Chowdhury, M. R. Rahman, and R. Boutaba, "Virtual Network

Embedding with Coordinated Node and Link Mapping,” IEEE INFOCOM,

2009, pp. 783–91.

[18] Y. Zhu, and M. Ammar, "Algorithms for Assigning Substrate Network

Resources to Virtual Network Components,” Proc. IEEE INFOCOM, 2006.

Biographies

PATRICIA TAKAKO ENDO (patricia@gprt.ufpe.br) received her M.S degree from the

Federal University of Pernambuco (UFPE), Recife, Brazil, in 2008. She is currently

a Ph.D. candidate in science computing at the same institution, and a professor

of computer networks and distributed systems at the University of Pernambuco

(UPE). She also works at GPRT, a research group in the areas of computer networks

and telecommunications. Her current research interests include quality of

service and cloud computing.

ANDRÉ VITOR DE ALMEIDA PALHARES (andre.vitor@gprt.ufpe.br) graduated in 2009

in computer engineering from the Computer Science Department of UFPE. Currently

he is a Master’s degree candidate at the same university and a researcher

at GPRT. His current areas of interest are cloud computing, and network virtualization

and optimization algorithms.

NADILMA NUNES PEREIRA (ncvnp@gprt.ufpe.br) received her M.S. degree from

UPE in 2010. She is currently a Ph.D. candidate in science computing at UFPE.

Her current research interests include ad hoc networks, routing, and artificial

intelligence.

GLAUCO ESTACIO GONÇALVES (glauco@gprt.ufpe.br) received his M.S. degree

from UFPE. He is currently a Ph.D. candidate in science computing at the same

university. He also works at GPRT. His current research interests include systems

performance evaluation, network management, and cloud computing.

DJAMEL HADJ SADOK (jamel@gprt.ufpe.br) received his Ph.D. degree from Kent

University in 1990. He is currently a professor in the Computer Science Department

of UFPE. He is one of the cofounders of GPRT. His current research interests

include traffic engineering, wireless communications, broadband access, and network

management. He leads a number of research projects with many telecommunication

companies. He has authored many papers and registered some U.S.

patents.

JUDITH KELNER (jk@gprt.ufpe.br) received her Ph.D. from the Computing Laboratory

at the University of Kent at Canterbury, United Kingdom, in 1993. She is currently

a professor at the Computer Science Department of UFPE. She also works

at GPRT. Currently she is involved in a number of research projects in the areas

of network management, multimedia systems, the design of virtual reality systems,

and advanced communication devices.

BOB MELANDER (bob.melander@ericsson.com) received his Ph.D. degree from

Uppsala Universitet in 2003. He is currently a research engineer at Ericsson

Research.

JAN-ERIK MÅNGS (jan-erik.mangs@ericsson.com) is currently a senior researcher

engineer at Ericsson Research.