Automatic Path Creation service -- APC

Z. Morley Mao

Professor Randy Katz, Eric Brewer


Introduction:

With the evolution of the Internet, there is a growing demand for creating new functionality by composing existing services and accessing services through extremely diverse end devices.  Services in our context are any Internet-accessible applications. This presents an emerging opportunity for a software architecture that, given end-point specifications and desired QoS metrics,  automatically composes services in a fashion similar to plugging together tinkertoy-like elements to allow service access through heterogeneous devices and networks.

The key requirements of a service composition platform: automation, scalability, and fault-tolerance. We achieve these goals through strong typing of services, use of cluster computing platforms, and a continuous optimization process with feedback. In addition to service reuse, our system also enables optimal resource utilization in the wide area by strategically placing or locating services and dynamically adapting to resource changes.  We prove its usability by demonstrating the ease with which novel functionality results from existing services and good scaling performance of the system.

Terminology:

Operator:  a strongly-typed Internet service instance responsible for computation only.
Connector: the communication protocol for data transport.
Path: a flow of ADUs through multiple services and transformational operators across the wide area.

Example APC Path Usage:

 

Goals of APC service:
Service composability, accessability, scalability, fault-tolerance, performance predictability, and adaptivity to resource changes.

Architecture of APC service:

APC service is responsible for creating, maintaining, and eventually freeing up data paths consisting of operators strung together by connectors. The overall path construction process can be illustrated through the following diagram:

It is a process of continuous feedback and optimization.
Step 1: Logical Path Creation:
A logical path consists of an ordered sequence of operators joined by connectors. During the logical path creation, APC searches through the XML descriptions of the operators to find valid sequences that could perform the computation requested by the user. The result is a list of possible operator sequences ordered by decreasing cost on the user's input parameters for optimization. Optimization criteria are application specific. One goal of APC is to adapt to application requirements to optimize resource utilization.

Step 2: Physical Path Creation:
A physical path is a logical path, along with a choice of actual nodes (i.e. physical machines) on which to run the operators. Nodes for long-lived operators are chosen from the known service instances that provide the desired functionality based on application dependent criteria such as network delay, processing capability, and load information. Nodes for dynamic operators are selected according to the computational capabilities of the node and the cost of using that node in the path and various other criteria. Some of these operator placement decisions include operator computational requirement, software/hardware requirement, output/input properties (e.g., data location, data volume, delay-sensitivity, degradation properties), network characteristics (e.g., bandwidth, delay, packet loss rate, and jitter characteristics. APC constructs a physical path from a logical path by finding the lowest cost nodes that meet the user's requirements.
 

 Step 3: Path Instantiation, Execution, Maintenance, and Querying:
Once the physical path has been determined, APC starts any required dynamic operators and sets up appropriate connectors between the various operators. After all the nodes in the path are set up, the data flow is started. In addition, a control path is established between the operator nodes and APC. It is used for both reporting of error conditions and performance information.

During the lifetime of the path, APC actively monitors the the operator nodes to make sure that they are functional. Any operator can also report problems to APC about its neighboring operators, so that the path can be repaired when necessary. The control path also plays an important role in enabling operator repair, deletion, and insertion. It is used for exception handling, controlling parameters of path components, monitoring and analyzing path performance. Therefore, it needs to be highly robust and unaffected by the data path's failures. A control path can however overlap with the data path: each path operator can have a handle to its two neighboring operators. APC thus monitors the performance of the path and reroute the data path if new conditions make the original path suboptimal by going back to the physical or logical path creation stages.

Step 4: Path Tear-Down:
When a path is no longer needed, the user informs APC. The APC service then stops the data flow, removes connectors, shuts down any dynamic operators, and frees other relevant resources. As a performance optimization, APC may cache the logical and physical information of commonly used paths for reuse at a later time.



Last Modified: August 8th, 2000
Z. Morley Mao