Autonomic service deployment in
networks.
by Haas, Robert^Droz, Patrick^Stiller, Burkhard
A network manager faces a daunting task today when designing,
configuring, and provisioning a complete service for customers, and when
trying to obtain the most use of the specific capabilities available in
sophisticated network elements such as programmable routers, encryption
and transcoding gateways, traffic shapers and purifiers, and distributed
caches, just to name a few. However, it would not be profitable to add
more capabilities to a network, for instance, in the form of network
processors, (1) unless they can be exploited efficiently when installing
and running a service.
If we consider an environment of networks with large numbers of
nodes that have widely varying capabilities and resources and that need
to be enabled with new services, it is necessary to define and provide a
way to organize the deployment of new services at both the network and
the node levels. The framework presented here addresses both levels
globally, as well as the interactions taking place between them.
Activities that focus on the deployment of services over
heterogeneous programmable networks are still very few and do not focus
on those aspects that are exacerbated in large networks. Policy-based
networking allows a high-level policy to be transformed into lower-level
network-node configurations. (2) Such mechanisms depend on an efficient
resource discovery and enablement, as presented here. Dynamic
composition and deployment of services in the context of end-to-end
application sessions are addressed in References 3, 4, and 5. This
applies, for instance, to the setup of a network path for a multimedia
session based on the availability and cost of image transcoders and
compression service components active in intermediate network nodes.
Active networks (6) achieve self-controlled deployment of services in a
network by embedding service execution code into data packets so that
the service remains dedicated to that flow of packets. This method is
particularly suitable for environments with many network nodes that
support the necessary execution environment and for short-lived flows
that require an ad hoc deployment of a service exclusively along the
path through which the flows have been routed. Particularly well-suited
for large-scale problems are hierarchical architectures that have been
used in the context of routing protocols and network management but not
yet considered for deploying services.
To accelerate the deployment of network services, at least at the
node level, efforts have begun focusing on the standardization of
interfaces within networking equipment, either in the form of control
protocols for label switches (Internet Engineering Task Force [IETF]
General Switch Management Protocol [GSMP] (7)), Internet Protocol (IP)
routers (IETF ForCES (8)), and media gateways (IETF MEGACO (9)), or more
generic application programming interfaces (APIs) such as those
described in References 10 and 11. Therefore, it is expected that in a
network a variety of solutions are likely to coexist.
Although the work presented here specifically addresses network
services, the deployment of higher-level services such as Web services,
for which the network can be viewed as a black box, indirectly benefits
from the underlying network service-deployment framework.
The next section of this paper first presents the network-level and
node-level service-deployment phases, then classifies the types of
services supported by the framework presented here, and finally reviews
the key elements such as the representation of capabilities and the
hierarchical architecture. The third section focuses on network-level
deployment. It presents a formalism for hierarchically distributed
computations, illustrated with examples and algorithms. Simulation
results of the network-level deployment are presented in the fourth
section.
Service-deployment framework
Service deployment denotes the set of tasks required to provide a
new service dynamically in a partially or fully programmable network. A
service is an assembly of components that have to be identified and
placed appropriately in a network. Service provisioning is the task that
operates on a service already deployed in order to provide a product of
that service. For instance, encrypted flows are a product of the Virtual
Private Network (VPN) service, and the VPN service is a product of its
components present in the network nodes, performing encryption or
decryption at the edges and quality-of-service (QoS) in the intermediate
nodes, as shown in Figure 1. Whereas service composition defines the
components required by a service and how to compose them, service
deployment performs the actual mapping of these components into the
network.
[FIGURE 1 OMITTED]
Clearly, providing tailored services means that new components have
to be placed adequately in the network. We argue that an autonomic
approach is the only scalable solution to service deployment, given the
heterogeneity and size of today's networks as well as the variety
of different services and the frequency at which such services have to
be deployed. Autonomic means that the network itself orchestrates the
deployment process, and the interaction with the network manager is
limited to specifying the service according to customer needs.
More specifically, this framework splits service deployment into
two successive phases, namely, macro and micro deployment. As shown in
Figure 2, each phase covers a certain scope of the network, and the
border between these scopes can be adjusted. In the following
discussion, we choose to place the border at the distributed-router
level. Therefore, the macro deployment has a network-wide scope, whereas
the micro deployment has a node-local scope. This choice does not
preclude other scenarios in which the border is set instead at the
local-area-network level, for instance.
[FIGURE 2 OMITTED]
For macro or network-level deployment, a sequence of five steps is
executed in a hierarchically distributed manner, as described in more
detail in the next section. For micro or node-level deployment, a
centralized resource co-allocation method is used that benefits from
information gathered during the network-level phase in order to place
functions optimally. A service component could need resources of
different types to be allocated, one for each service function
constituting the service, hence the coallocation problem. The main
characteristics of both phases are summarized in Table 1.
Categories of services. Services are assumed to be decomposable
into sets of components to be executed by individual nodes. We
distinguish the following topological categories of service deployment
and provide examples of current network services:
* Path-based, between a set of source(s) and destination(s), which
is further divided into two types:
--Continuous, for which the same component must be present in each
node on the path, for instance, application-specific queuing (such as
IETF Differentiated Services, or diffserv) that has to be enabled on all
nodes of a path
--Sparse path-based, or discontinuous, for which a set of
components must be present in a set of nodes on the path. This type can
be, for instance, a multimedia transcoding and compression service, with
one node on the path performing transcoding while another node performs
compression.
Fence-based, orthogonal to path-based, for which nodes along a path
(possibly a loop) must act on the traffic crossing them, such as a
firewall spanning multiple access routers
Node-based, for which only selected nodes need to be activated, and
no source or destination pairs are specified, but rather domains, such
as a transparent Web cache acting for a group of end stations
Combinations of the above, such as a path-and-node-based VPN
service with encryption at the endpoints and QoS support in the
intermediate nodes
Whenever necessary, service redundancy can be achieved by deploying
the service along multiple distinct paths or nodes.
Description of service requirements and node capabilities.
Topological properties help to classify services from a network-level
connectivity point of view, but a larger set of properties is required
to fully describe service requirements as well as network or node
capabilities. These properties are the following:
* Topology--description of the connectivity, which can be modified
dynamically such as in wavelength-switching networks or with
hot-pluggable node modules
* Functionality--description of functions, which can be static,
configurable, or even programmable
* Performance--measure of resources, such as bandwidth or delay in
networks and CPU speed in nodes
* Cost--administrative measure for using the above resources,
relevant when the economical dimension must be taken into account during
deployment, addressed in Reference 12.
COPYRIGHT 2003 All Rights
Reserved. Reproduced with permission of the copyright holder. Further reproduction or distribution is prohibited without permission.
Copyright 2003, Gale Group. All rights
reserved. Gale Group is a Thomson Corporation Company.
NOTE: All illustrations and photos have been removed from this article.