Middleware for building adaptive systems via configuration
COTS (commercial off-the-shelf) devices, including middleware components, are capable of executing powerful, distributed algorithms. Very large, adaptive systems can be created by simply integrating these devices, not by creating new devices, algorithms or external control systems. The principal integration method is configuration: every device is designed to have a finite set of configuration parameters that can be set to definite values. These parameters are static in that, unlike the device's dynamic state, these do not change during the device's normal operation. Inspite of the ubiquity of the configuration method, there is no "science" for it. There are no tools which let one specify global, end-to-end system functionality requirements at a high level, reason about these, and have these compiled into device configurations. On the other hand, it is inherently difficult to develop this science because of the large conceptual gap between global, end-to-end requirements and device configurations. A middleware is needed to bridge this gap in the form of specification, reasoning, compilation and diagnostic tools. This position paper sketches a technique called Service Grammar for developing such middleware for a given domain. It is based on the idea that algorithms for implementing end-to-end functional requirements can be expressed as the enforcement of a set of fundamental requirements. These are upon the existence of definite high-level relationships between configuration parameters of various devices. We can collect these into a Requirements Library. By mixing and matching items from it we can define algorithms for implementing a very wide range of end-to-end functional requirements. This Library can also simplify design of the reasoning, compilation and diagnostic tools. This plan is illustrated by analyzing how realistic service requirements are implemented in a Virtual Private Network via configuration steps. First, a network of "resilient", secure tunnels is set up by composing capabilities of protocols OSPF, GRE and IPSec. Then, quality of service guarantees are established by composing capabilities of MPLS, RSVP and DiffServ. Finally, as an example of configuring middleware components themselves, an example is presented from CORBA security.
middleware configuration service virtual private network network security corba qos routing provisioning diagnosis