DPML
DPML Metro Component Management Platform
HomeUtilitiesStationMetro
DPML Metro

Metro is an easy to use IOC Container that handles the deployment of component-based applications. Beyond this Metro delivers pure framework independent component-driven Adaptive Context support backed by an Active State, model-driven, part-based system architecture.

General Concepts

From a strict architectural perspective the Metro system is a deployment strategy runtime controller managed by a Transit content handler associated with the 'part' datatype. The part content handlers deals with classloader construction and the establishment of a strategy handler. The strategy handler is responsible for the orderly deployment and decommissioning of components. As part of an overral risk-reduction strategy concerning product evolution Metro incorporates an internal strategy controller management model that enables concurrent execution of different container strategies within a single application. This approach enables changes that would normally be classed as breaking compatibility to be isolated in dynamically loaded plugin control subsystems. The end-result is the potential for a composite comoponent to operate seamlessly with components using radicaly different controllers.

Metro is a "Model Driven" system in that a central model is the definiative source for runtime information. Within Metro the complete deployment scenario including the component type internal datastructure is represented as a remotely accessible model. Modification of the model via local or remote invocations may have a direct impact on the application deployment or runtime state. Metro provides a suite of interfaces dealing with remote control of of the component state machine, activation policy, garbage collection policies, context state, and redepoloyment scenario information (including control over component configuration, parameterization, and individual context entry settings).

This is achived through the combinaton of:

  1. Layered internal container APIs.
  2. Dynamic loading of deployment strategy controllers.
  3. Controller delegation rules.

A broader overview of the issues and challenges related to component-based development is presented in the paper Component-based Development Process and Component Lifecycle by Ivica Crnkovic, Stig Larsson, Michel Chaudron.