On Service Deployment in Ubiquitous Computing
O. Ardaiz, F. Freitag, L. Navarro
Computer Architecture Department, Polytechnic University of Catalonia, Spain
{oardaiz, felix, leandro}@ac.upc.es
Abstract
Introduction of new services on the Internet is a
laborious,
time-consuming
process.
Ubiquitous
computing environments also present that same
challenge; even augmented due to dinamicity of mobile
entities and wireless connectivity, and location and
environmental awareness of services. A framework for
service deployment will facilitate service introduction in
both cases.
In this paper we present our investigations on two of
the components of an Internet service deployment
framework: service specification interface and
mechanisms for service deployment. We present issues we
have encounter when trying to extended this framework
for service deployment in ubiquitous computing
environments. Service deployment on ubiquitous
computing environments will require a resource
positioning and surrounding functionality; service
specification interfaces will be required to incorporate
location and environmental service parameters; and new
service templates for information aggregation services
will appear. Besides mechanisms for service deployment
have to adapt to such dynamic environment.
Lastly we present our prototypes and experiments on
service deployment.
1. Introduction
"The introduction of new services into existing
networks is usually a manual, time consuming and costly
process", "there is an increasing demand to add new
services to networks to match new application needs" by
Campbell et al. [3], "vendors are hesitant to support
service before they gain user acceptance, yet the utility of
network services is dependant on their widespread
availability" by Tennenhouse et al. [17]; this cites expose
the relevance of facilitating service introduction into
network. That is, enabling an easy, efficient and secure
introduction of new services will promote service
development, flooding the Internet with new services for
the benefit of end users.
Ubiquitous computing [20][7][12] is a paradigm in
which networked computing resources are present
anywhere. Users augment their computing and
communicating capabilities with lots of nearby computing
devices, and the network achieves an infinitesimal
capillarity reaching everywhere. Resources are mobile and
have wireless network connectivity. In such scenario
services make use of information, processing capabilities
and storage and output resources obtained anywhere.
Ubiquitous computing is around the corner. But
ubiquitous computing services will have to be introduced
into the system similarly as today’s Internet services. We
are extending our solution for Internet service deployment
to ubiquitous computing environments. It will permit an
easy-to-use and cost-effective service introduction in
ubiquitous computing environments, thereby allowing
ubiquitous services creators to provide its services to more
users, and will benefit users with a wider service offer.
1.1. Related Work
The problem of introduction of services has been
addressed by different approaches from active networking
to open signaling to programmable networks [3]. Most of
them have concentrated on providing environments where
services can be remotely activated in a secure way.
Research on mechanisms for network deployment is being
studied at Xbone [18] in ISI and Tempest [16] in
Cambridge University. They allow virtual networks to be
set up on the Internet to behave as virtual private networks
or to isolate experimental services from the Internet.
Research on how to dynamically deploy a service is also
being conducted at the Darwin project [4] at CMU which
attempts to dynamically instantiate virtual meshes,
collection of networking resources, to be used for
multiparty conferencing with quality of service. Globus
project [11], a joint effort of various universities and
research centres, has developed a protocol for reservation
and co-allocation of resources in computational grids. It
allows grid applications to obtain the set of required
resources for its execution with QoS guarantees.
Our work concentrates on the development of efficient
and cost-effective deployment mechanisms, and easy-touse framework interfaces. As well we are broadening the
scope for service deployment to ubiquitous environments.
2. Internet Service Deployment Framework
2.1. Framework Requirements
To allow for ease creation of services requires the
development of a framework that provides basic building
blocks with which to construct a service deployment
system. This framework should support the automation of
every task required to deploy a service. We attempted to
reuse the Xbone system for overlay deployment to deploy
services [1], however it was not an ideal solution. It
required many fundamental changes in its deployment
mechanisms, and it was designed for different allocation
strategies, so we set ourselves to develop a framework for
service deployment from scratch. Our first task was to
define which functionality is demanded from this
framework.
Deploying a service involves:
1. Obtaining service specifications,
2. Mapping specifications to resources,
3. Discovering resources,
4. Gathering resources,
5. Configuring resources,
6. Activating service,
7. Providing a management interface.
So this framework architecture must be composed at
least of resource agents at resource providers nodes and
deployment managers at service providers nodes.
Resource agents are responsible for publishing resources,
mediating between resources and service providers'
deployment managers, configuring resources, activating
services, and returning management interfaces.
Deployment managers are responsible for obtaining
service specifications, mapping specifications to
resources, discovering resources, gathering resources,
trading with resource agents on behalf of service
providers, and managing overall deployment operation.
Service providers demand these characteristics from
this framework:
• Usability, to allow for an easy service introduction,
• Efficiency and cost-effectiveness, for rapid and cheap
service provision,
• Manageability, to govern services once deployed,
• Safeness and fault tolerance, to assure service
integrity and availability.
Resource providers demand these characteristics from this
framework:
• Efficiency and cost-effectiveness, for highest resource
revenue,
• Security, to avoid resource misuse.
There exist much research from active networks to
programmable networks and even commercial system that
provide security and management functionality to
programmable nodes [3], which can be integrated in a
framework for service deployment. However we have
identified two framework components that provide
functionality specific for this problem requiring extensive
research to meet every party requirement. On the one hand
it is required a service specification interface that allows
for easy service deployment requests, on the other hand
deployment mechanisms are required to provide for an
efficient and cost-effective deployment.
2.2. Service templates
Defining specifications of a service on the Internet is a
laborious task. A service provider must calculate
which resources capabilities and number of resources to
use, sub-networks where service has to be provided,
organization among resource, etc.
A service description language can be defined to
facilitate service specification as it has been done to
define overlay networks in [4] or [16] that would allow to
specify service requirements in terms of number and type
of basic resources, connections among resources, and
service components. However the main goal of the
service deployment framework is to facilitate service
provider’s deployment of their services. Reviewing the
evolution of traditional programming environments we
find that a programming languages is a complicated
technique for many users since it offers more functionality
that what an average user requires. For this reason
application frameworks such as Microsoft Foundation
Classes or communication frameworks such as [8] have
been introduce. These programming frameworks allow a
service creator to implement their service starting from a
skeleton template, which already provides much of the
required functionality. They only have to adapt it for their
special service requirements. An important benefit of
templates is that system components implementing those
templates functionality will be reused many times,
therefore programming errors can be reduced and systems
components stream-lined.
A service deployment framework has to provide a set
of predefine service templates. Service providers will
select a template and fill it in to create his service
specification.
For Internet services we have identified a template that
can be instantiated to most Internet services: the
dissemination service template. This template allows the
creation of content distribution networks, multicasting
networks, video on demand services, and mobile
adaptation services. Service providers that choose this
template know they will obtain a service specifically
allocated, configured and organized for information
dissemination. Service providers have to select which
types of capabilities are require for resource nodes where
to activate its services: proxy-caches, streaming
capabilities, WAP gateway, etc. They have to select which
Internet regions they want their service available. They
have to select which is the expected traffic caused by
service clients. They have to select which type of service
they plan to deploy either a live service or an on-demand
service. Deployment managers and resource agents
deploying a service that conform to the dissemination
template, use specific algorithms for resource allocation,
service organization and resource discovery.
2.3. Deployment Mechanisms
A first solution represents the method currently used
for provisioning services that require resource allocation
at multiple nodes, such as virtual private networks or
content distribution networks. It is the SNMP
management station based method, in which a centralized
entity monitors, chooses and configures resource agents
[6]. As every centralized system, it is not the best solution
in terms of scalability or fault tolerance. The second
method we propose is multicast injection. It considers
resource agents as active entities that can decide
autonomously whether to accept or discard a service
activation request based on local policies. Therefore
deployer entities can only inject service specifications
(including a reference to application binaries and data)
into the system and expect that enough and appropriate
resource agents accept it, else they can inject a cancel
service request. Obviously injection has to be
implementing with some multicast communication
scheme.
Per surrogate configuration deployment involves the
following steps:
1. Deployer continuously discovers and monitors
surrogates resources / surrogates advertise their
resources,
2. Provider request service deployment,
3. Deployer calculates resource allocation,
4. Per surrogate configuration,
5. (At timeout), every surrogate response is ok OR
deployer sends per surrogate rollback.
It is a centralized system where a deployer has to
gather information from every surrogate in order to
calculate resource allocations for every deployment
requests. It requires computational and bandwidth
resources in a centralized location, which is subject to
failure. In addition, since more deployers will be
contending for surrogates, a deployer can be denied
allocation of resources in a surrogate that was thought to
be available but another deployer got its resources a little
earlier.
Multicast injection deployment has to take the
following steps:
1. Provider request service deployment,
2. Deployer injects application service specifications in
a global mcast channel,
3. Surrogates map spec -> allocate resource and mcast
service match on application channel OR do nothing,
4. Surrogates compare published matches with itself ->
service activation OR cancel service and release
resources,
5. (At timeout) every region serviced OR surrogate
cancels service and release resources.
Clearly this method requires less resource on deployer
entities, while permitting surrogates to have more
autonomy. A problem of this solution is the level of
under-utilization of surrogate resources due to conditional
allocations while deployment takes place. On figure 1 we
present advantages and disadvantages of both deployment
mechanisms, which are discussed next.
Advantages
Disadvantages
Per-node
Configuration
-More control
-Deployer
computation
-Deployer traffic
-Stale
information
-Unused
allocations
Multicast
Injection
-Faster
activation
-More
adaptable
-Simple
deployers
-Robust system
-Loose relations
-More unused
allocations
-Network traffic
Figure 1 - Mechanisms comparison
Per node configuration presumes more control by the
deployment entity over resource agents, since resource
agents are passive entities controlled by deployers. In
contrast, multicast injection presumes a looser relation
between deployers and resource agents. Resource agents
subscribe to deployers at will, retaining its autonomy on
local configuration actions. It is easy to establish relations
with more nodes when least requirements are put on both
parties, therefore larger sets of resource agents can be
available for multicast injection dynamic deployment. Per
node configuration has to implement a centralized
resource allocation algorithm, which can require high
computational resources when computing on Internet
scales. However multicast injection makes use of a
distributed allocation algorithm, which makes it more
scalable and fault tolerant. Per-node configuration is not
as scalable since as the number of nodes rows it requires
increased traffic capacity at the deployer site to
continually monitor every resource. Multicast injection is
more scalable than per node configuration since its traffic
and computational requirements do not create a bottleneck
at deployers. Stale resource information in per node
configuration deployment causes deployer entities to
select nodes that have been allocated, and not to consider
for allocation nodes that have already available resources.
Because multicast injection does not use stale information
it is more responsive and adaptable than per node
configuration deployment. Multicast injection requires
simpler deployers since it just sends a service deployment
request: they do not have to be continuously monitoring
the state or individually configure every surrogate. It is
also more robust since deployers do not have to detect and
recover from every surrogate failure. Unused allocations
occurs in both cases when surrogates are allocated and
released shortly afterwards without providing any service
in that period, due to being unable to find enough
surrogates for deployment. This effect has to be less
important in per node configuration since there allocations
are only requested to a subset of surrogates.
We have identified three issues that differentiate
service deployment in a ubiquitous computing
environment from traditional Internet service deployment:
• Location-aware or position-constraint deployment,
• Environment-aware
or
surrounding-constraint
deployment,
• System dynamics.
3. Service Deployment in Ubiquitous
Computing
In a ubiquitous computing environment services to be
deployed can specify their geographical constraints to
indicate the geographical area where they wish to provide
its service. As well services can specify environmental
conditions constraints to indicate environments where they
wish to provide its service. Finally inherent dynamics of a
ubiquitous computing environment, due to entities
mobility and wireless connectivity, will influence
mechanisms for service deployment.
Solving these issues requires extending our service
deployment framework in three areas:
• Resource positioning and surrounding systems, that
allow for location and environment aware
deployment,
• New service templates, that take into account new
services and location and environment preferences of
services,
• Adaptative deployment mechanisms, to allow for
efficient deployment on very dynamic environments.
3.1. Ubiquitous Computing Services
3.2. Resource Positioning and Surrounding
Due to the ubiquity of computing resources in
ubiquitous computing environments, current services
extend their functionality and new services are enabled.
Services in a ubiquitous computing environment differ
from conventional Internet services in that computing
resources building those services are also characterized by
two new parameters:
• Location, since resources can be at any geo-spatial
location. Technologies such as GPS [15], Cellular
Radio Location Tracking Systems [13] or Bluetooth
[2] allow for geographical positioning of computing
resources.
• Surroundings, since resources can be at any
environment: outdoor, at the highway, at home, at
school, in a car, etc. (vs. Internet computing where
resources are only at offices, at data centres, or at
home). Technologies such as sensors [5] or
geographical information systems GIS [19] allow for
determination of resources surroundings.
Many new services are enabled solely due to these
characteristics of ubiquitous computing resources:
location-aware services such as positioning systems [9] or
proximity services [13], and environment-aware services
such as smart offices [14] or navigation systems [10].
Resource discovery is one of the main challenges of
ubiquitous computing since in ubiquitous computing
environments resources providing a better service come
and go becoming visible any time [7]. Resource discovery
is also one of the fundamental mechanisms for service
deployment. Deployment managers need to discover
resources that matches service specification before
attempting to configure them. Service deployment in a
ubiquitous computing environment has to deploy services
on resources that are location or environment constrained.
Resource discovery for service deployment in a
ubiquitous computing environment has to be extended to
support location and environment constrained selection.
There exist several system for positioning computing
resources. GPS allows for geographical positioning of a
device any place on Earth with accuracies ranging from
100 mts to 10 mts. Cellular mobiles networks allow
positioning of wireless phones with accuracies of cell size.
A very promising technology "bluetooth" allows for
wireless discovery of peers within a range of 10 to 100
mts, thereby establishing their relative position. Sensors or
geographical information systems GIS provide
determination of resource surroundings or environmental
conditions.
Deployment of services in a ubiquitous computing
environment requires a resource discovery system that is
location and environment aware. Due to the wide range of
location accuracy and environmental conditions possible
there will not be a unique system. I.e. bluetooth will be an
efficient technology for resource discovery to deploy
services on very nearby location. Cellular Location
Tracking systems can be used to discover resource for
service deployment on a cellular operator network, and
GPS should be employed to discover resources to deploy
services on a global scale. Surroundings-constraint
services which required real time information such as
temperature, traffic state, or light conditions will need to
use on site sensor information to discern where to deploy
a service. More stable surrounding constraints such as
building, road or mountains surroundings can be provided
by geographical information systems GIS.
3.3. Ubiquitous Services Templates
In ubiquitous computing environments a new kind of
services will be very common: services that aggregates
information from a number of information sources and
processes it according to some user rules. Examples of
such services are alarm systems and portal services. This
kind of services requires a new service template: the
aggregation service template. It differs from dissemination
services in that it requires different allocation algorithms
and service organization structures; and communication
bottlenecks appear at aggregation nodes vs. at edge nodes
on dissemination services.
As well services in a ubiquitous computing
environment require specification of two new parameters:
geographical location where services have to be deployed,
and environmental conditions where services have to be
deployed.
So we can summarize the two service template we have
identify in an ubiquitous computing environments as:
• Dissemination service is an output type service that
obtains information from a source or an aggregation
service and disseminates it to a number of output
resources (proxy servers, video / audio clients, mail
servers) scattered over a geographical area or
environment. Examples of such services are broadcast
events and notification services,
• Aggregation service is an input type service that
obtains information from a number of input resources
(sensors, web cams, audio inputs, web servers,..)
scattered over a geographical area or environment.
That information, after some initial processing, is
transported following an aggregation communication
scheme to an aggregation entity where it is processed
with an input filter such as an alarm engine, a
directory, or custom made.
3.4. Ubiquitous Deployment Mechanisms
A ubiquitous computing environment is characterized
by its high dinamicity. Mobile computing entities come
and go providing their resources, wireless connection have
abrupt variations. Therefore selection of resources where
to deploy a service is a much more complicated task than
on the Internet where resource availability and
connectivity is quite stable. The adaptability of service
deployment mechanisms to these changes is the main
property to be looked for.
For a start both deployment mechanisms considered for
Internet service deployment are valid. However
centralized configuration has worst adaptability properties
since it requires all information to be available at a
centralized point. Centralized configuration in an
ubiquitous computing environment will make use of much
stale resource information thereby failing to deploy many
of its services, unless it increases its monitoring rate to
very high rates causing a lot of traffic. It is an option that
has little chances of being used for ubiquitous
deployment. Multicast injection on the contrary has better
adaptability properties since it is an asynchronous solution
that does not require full synchronization. Nodes have to
take decisions autonomously whether to activate a service
or not, being able to withstand connection drops. As a last
advantage multicast is easier to implement in wireless
environments.
4. Experiments
4.1. Prototype
We have developed the Xweb framework prototype
that allows for deployment of web services. A web service
deployed operates as a set of interconnected service nodes
called surrogates that provide service to several web client
regions scattered all over the Internet.
It provides service creators a dissemination service
template. Web application creators have to fill in web
service characteristics such as number of service points,
expected total clients traffic, Internet regions where
service has to be provided, maximum distance between
clients and surrogates, etc.
Dynamic deployment mechanisms make deployment
managers and resource agent interact for efficient and
cost-effective service deployment. There are two possible
deployment mechanisms: centralized configuration or
multicast injection. We show a performance evaluation of
both mechanisms below.
Resource agents configure web surrogates at resource
nodes to start servicing a web application on service
provider behalf. As well they control resource usage for
appropriate service responsiveness by limiting number of
services provided at each surrogate and monitoring
service response time.
Once a web service is deployed an SNMP management
interface is returned to its creator. Currently services
location is expressed as a list of Internet autonomous
systems numbers. More accurate location constraints and
environmental constraints required integration of some
positioning service such as GPS or mobile tracking
systems and surrounding services such as GIS or sensors
at resources agents. We are evaluating implementations of
those technologies for integration into our prototype.
As well we are currently developing the interface
template for aggregation service to allow for deployment
of event services and multimedia information portal
services. This template will allow service creator to
choose type of information source: web server, audio
input, temperature sensor and location and environmental
conditions of resources, to create a service that combines
all that information to be provided to clients.
4.1. Simulated performance evaluation
We have evaluated both deployment mechanisms in a
simulation on the ns-2 network simulator. We simulated
deployment of web services, demanding resources on 5
random nodes, over 25 resource nodes on a typical WAN
network topology. Resource demand range from 20
average application per second to 60 average application
per second (an average service is a service with media
resource demands and media service duration). On figure
2 we show which allocation algorithms were used to
allocate resources in each simulation. These are very basic
algorithms that try to allocate resources on the nearest
surrogate possible or they fail.
Centralized
Configuration
Allocation Algorithm
Multicast Injection
Algorithm
Deployer {
Resource Agent {
:: Select_nodes {
Foreach service region
{among those with enough
resources, allocate on nearer
surrogate}
}
::receive_mcast_injection {
If enough resources && near
some service regions
{multicast_service_match}
}
::Deploy_timeout {
If some region not serviced
{send cancel-request}
}
}
On figure 3 and 4 we show which is the success rate
and percentage of unused allocations of both deployment
mechanisms. Multicast injection has a high success ratio
of deployed application that centralized configuration
deployment mechanisms (SNMP). Both mechanisms
depart from the maximum number of possible deployed
services as the number of resources demanded increases
due to requesting already allocated resources. However
centralized configuration deployment suffer a success
ratio decrease at high loads due to resource contention
among deployers. Multicast injection avoids that
contention by allocating resources as soon as they are
freed, however some resources can be allocated and not
used leading to thrashing and deadlock situations.At
figure 4 we see that this percentage is very low even at
high loads. This is a consequence of service times being
much longer that allocations intervals, therefore
undesirable thrashing and deadlock shall not occur during
normal operation of deployment systems.
These figures tell us that multicast injection
mechanisms adapts to resource availability variations
better that centralized configuration deployment, and shall
be more effective in using resources in ubiquitous
computing environments.
Allocation
Figure 3 - Deployed services vs. resource demand
::receive_service_match {
If peer_agent nearer than this to
some service region {stop service in
that region}
}
::deploy_timeout {
If not every region serviced
{stop-local-service}
}
}
Figure 2 - Allocation algorithms implemented in
simulation
Figure 4 - Unused allocations vs. resource demand
5. Summary
In this paper we have exposed our current framework
for Internet service deployment and have characterized
which are some of the most relevant issues that service
deployment will present on ubiquitous computing
environments. Among them we present which new
deployment functionality requires the new services of
ubiquitous computing, and the new conditions for
deployment in ubiquitous computing environments.
Some kind of resource positioning and surrounding
functionality will be required for effective deployment of
new services on ubiquitous environments.
Service
templates will be required to incorporate location and
environmental service parameters. And new service
templates for information aggregation service will be
commonly employed to deploy new services that will
come about on ubiquitous computing environments due to
the large number of information sources that will become
available in such scenarios. Mechanisms for service
deployment will be required to be even more adaptable to
communication and computational availability caused by
variable wireless connectivity and mobility of devices.
Our multicast injection for service deployment is a good
solution that provides good adaptability on Internet
environment simulations; it should provide to be valid
also in ubiquitous computing environments.
We are complementing the Xweb prototype for
aggregation template service deployment. As well we are
currently evaluating positioning and surrounding
implementations to integrate into the prototype to provide
for ubiquitous service deployment.
6. References
[1] Ardaiz O., Touch J. "Web Service Deployment Using the Xbone", In Proceedings of Spanish Symposium on Distributed
Systems SEID 2000, Sept 2000.
[2]
Bluetooth
SIG,
Bluetooth
Technology,
1998.
(http://www.bluetooth.com/technology/)
[3] Campbell A.T., De Meer H.G., Kounavis M.E., Miki K.,
Vicente J.B., Villela D., " A Survey of Programmable
Networks", ACM SIGCOMM Computer Communication
Review, April 1999.
[4] Chandra P. et. Al. "Darwin: Customizable Resource
Management for Value-Added Network Services",. 6 th IEEE
International Conference on Network Protocols (ICNP'98),
1998.
[5] Chen G., Kotz D.. “A Survey of Context-Aware Mobile
Computing Research”, Department of Computer Science
Dartmouth College, Technical Report TR2000-381.
[6] Cisco Inc. “Cisco Provisioning Center White Paper” July
2000,
http://www.cisco.com/warp/public/cc/pd/nemnsw/pvcr/tech/pro
vs_wp.htm
[7] Esler M., et al. , "Next century challenges: data-centric
networking for invisible computing: the Portolano project at the
University of Washington", Proc. 5th ACM/IEEE Conf on
Mobile Computing and Networking, Seattle 1999.
[8] Fayad M., Schmidth D. " Object-Oriented Application
Frameworks" Guest Editorial, Communication of ACM Vol 40
N 10 Oct 1997.
[9] Feuertein M., Parttt T. “A Local Area Position Location
System”, IEE Conference Publication n 315, 1989 pp 79-83.
[10] Figueroa F., Mahajan A. “A Robust Navigation System for
Autonomous Vehicles using Ultrasonics” Control Engineering
Practice, Vol 2 N 1 1994 pp. 49-59.
[11] Foster I., Kesselman C., Lee, C. Lindel B.l, Nahrstedt K.,
Roy A. "A Distributed Resource Management Architecture that
Supports Advance Reservation and Co-Allocations", In
International Workshop on Quality of Service, 1999.
[12] Garlan D., "The Aura Project", OOPSLA'99, Ubiquitous
Computing Panel, October 1999, Denver CO.
[13] Hellebrandt M., Matha R., “Location tracking of Mobiles
in a Cellular Radio Networks”, IEEE Trans. on Vehicular
Technology, Vol. 48, No. 5, pp. 1558-1562, February 1999.
[14] Hodges S., Louie G. “Towards the Interactive Office”
Proceedings of SIGCHI’94, Boston April 1994.
[15] Hofmann-Wellenhof B., Lichtenegger H., and Collins J..
“Global Positioning System: Theory and Practice”, SpringerVerlag, second edition, 1993.
[16] Isaacs R.,. Leslie I., "Support for Resource-Assured and
Dynamic Virtual Private Networks" IEEE Jrl. on Sel. Areas in
Communication Vol. n. 2001.
[17] Tennenhouse D.L., Wetherall D.J., "Towards an active
networks architecture", Proceedings, Multimedia Computing
and Networking, San Jose CA, 1996.
[18] Touch J., Hotz S.,"X-bone: a System for Automatic
Network Overlay Deployment" Third Global Internet Mini
Conference in conjunction with Globecom´98, Nov. 1998.
http://www.isi.edu/x-bone.
[19] Walter V.,. “Automatic classification of remote sensing
data for GIS database revision” IAPRS, Vol. 32, 1998 Part 4,
Stuttgart, Germany, pp. 641-648.
[20] Weiser M., "Some Computer Science problems in
Ubiquitous Computing", Communication of ACM, July 1993,
pag. 73-8 4.