ECM - Extensible Container Model

The Extensible Container Model

Overview

The Extensible Container Model (ECM) is a specification and a reference implementation, originally produced in the IST COACH project, which aim at enhancing the OMG's CORBA Component Model specification to provide a systematic and automated process for the definition of domain specific container models and the generation of the corresponding container runtimes.

With the ECM, application architects may define their specific container models by simply assembling a set of packaged services. It is intended that such services are highly reusable software components, potentially bought from third-party vendors and certainly exploited in many products. It is noteworthy that the ECM is (like CORBA) language and platform independent. Therefore a service package contains implementations for many languages (C++, Java, etc.) and many platforms (Linux, Windows, etc.). The generated container runtime can then be adapted to the constraints of the target platform.

Specification

The ECM mainly consists of two specifications: the Service Model specification and the Extensible Container Architecture (ECA) specification. The Service Model specification mainly copes with the definition, packaging and deployment of the service from the CCM component model point of view. In this model, a service consists of:

  • Policies: Policies represents features of the service. They correspond to predefined behaviours which are automatically enforced at runtime (the term 'policies' comes from the CORBA specification and has the same meaning here).
  • Internal interfaces: Internal interfaces are provided to the component implementation. The component may use them to implement itself a policy or because no policy fulfills its requirements.
  • Callback interfaces: Callback interfaces are provided by the component implementation. They can be mandatory or optional and are used by the policies either to obtain information about the component instance or to notify the component instance of service specific events.
  • CORBA service: CORBA services as defined here are not classical CORBA services, but may rely on a pre-existing CORBA service. For example, a transaction service will probably reuse the standard CORBA CosTransactions service. In this documentation, we'll use 'service' or 'ECM service' to refer to instances of our service model and 'CORBA service' to refer to classical CORBA services.

Note that the Service Model also specifies the packaged format of services and its integration with the CCM component model.

The Extensible Container Architecture (ECA) mainly copes with the implementation of services and aims at ensuring the portability of the compiled code. For that purpose, it specifies the Component Oriented Portable Interceptor (COPI) specification and the Service Management specification. The COPI specification is the key for the portable implementation of policies and is inspired from the CORBA Portable Interceptor specification. The Service Management specification is the key for the portable integration of the service implementation within the runtime infrastructure. It defines how the service's artifacts are initialized and registered to the runtime.

The lastest ECM specification is the 1.0. You can find it here.

Reference Implementation

The ECM-RI is the reference implementation of the ECM specification, but also of the standard CCM container model. The ECM-RI is free (see the license agreement) and Open Source.

The latest ECM-RI release is the 0.2.0. You can find it here.

  • 100% Java based for easier portability across platforms.
    • Runtime to host ECM-aware and CCM standard components.
    • Tools to generate the component implementation.
    • Command line scripts to run components.
    • Demonstrations to illustrate the ECM features.
  • Working on the following CORBA products:
  • Running on the following Operating Systems:
    • Linux / Unix
    • Windows XP

The ECM-RI has the following dependencies:

  • The OpenCCM's generation framework is used by the ECM-RI generation tools.
  • The OpenCCM's launcher framework is used by the ECM-RI command line scripts.
  • The Jakarta Ant tool is used by the build process.
  • The Ant-Contrib Ant tasks are used by the build process.

If you want to quickly go into the ECM-RI, then go to the Quick Start.

Warning: the ECM is still under development. See how to contribute and the workplan.

Java and all Java-based trademarks are trademarks or registered trademarks of SUN Microsystems, Inc. in the U.S. and other countries.

CORBA, CCM are trademarks or registered trademarks of the Object Management Group (OMG) in the U.S. and other countries.

Copyright © 1999-2004, ObjectWeb Consortium | contact | webmaster | Last modified at 2004-04-15 09:05 PM