Page Tools

    CORBA Component Model plugin

    This plugin is based the CORBA Component Model specification V3.0 of the OMG, described in the document 02-06-65.

    Moreover, it supports basic form of parallel component as described here.

    Current Support

    See this page for the supported feature of CCM.

    • 2009, May 14: added first set (separate) of implementation constraints.
    • 2008, July 24: added a preliminary support for parallel implementation of component.
    • 2008, July 16: added a CORBA server to retrieve component IOR. See this page for more information.

    CAD Extensions

    Parallel Implementation

    See this page.

    Automatic component execution

    In order to actually launch a component when everything is configured, the plugin recognizes an extension to the componentinstantiation tag of the OMG XML Component Assembly Descriptor (CAD). Here are the parameters:

    • origin: fr.inria.padico
    • class: behavior
    • value: go

    When such a tag is found, the void go(void) operation is called asynchronously on component instances (in case of a cardinality greater than 1). The value can also be start, in this case the void start(void) operation is called oneway (i.e returns immediately) on component instances.

    Example of a CAD file:

      <homeplacement cardinality="1" id="master_hp_id">
        <componentfileref idref="master_t"/>
        <componentinstantiation id="master_i">
          <extension class="behavior" origin="fr.inria.padico">go</extension>

    Automatic rank attribute configuration

    When many instances of the same component are launched (with a large cardinality), it may be useful to distinguish the instances. Hence, the componentinstantiation supports an extension to automatically set an attribute (of type long) with the rank number of a component.

    • origin: fr.inria.padico
    • class: configuration
    • value: the name of an attribute of type long

    For example, the following XML code will lead to have:

    • the instance #0 of worker_i will have its attribute the_attribute_name been set to 0
    • the instance #1 of worker_i will have its attribute the_attribute_name been set to 1
    • the instance #9 of worker_i will have its attribute the_attribute_name been set to 9
      <homeplacement cardinality="10" id="worker_hp_id">
        <componentfileref idref="worker_t"/>
        <componentinstantiation id="worker_i">
          <extension class="configuration" origin="fr.inria.padico">the_attribute_name</extension>

    Implementation Constraints

    It may append that there are some incompatibilities between component to deploy. Hence, there are some extensions that enable to express such constraints. Note that this set of constrains can be easily extended: send an email asking for it.

    Not on the Same Node

    This extension enable to list component implementation that are incompatible with this implementation on a same node:

    • origin: fr.inria.padico.placement.separate
    • class: class:component
    • value: they are three kinds of content to this tag:
      • all: this implementation conflicts with all other implementation, including itself. Hence, this implementation will require to be alone.
      • self: this implementation conflicts with itself. Hence, two instances of this implementation can not be on the same node.
      • an implementation id: this implementation conflicts with the given implementation id, potentially of another component (beware: it breaks component independence!)


      <implementation id="impl_id">
        <code type="Executable">
          <fileinarchive name="..."/>
        </ code>
        <extension class="component" origin="fr.inria.padico.placement.separate">all</extension>

    Control Parameters

    This plugin recognizes some specific control parameters.

    • component_server : specifies the location of a CSD file describing a NameService implementation.
    • naming_service : specifies the location of a CSD file describing a Component Server implementation.

    Example: ADAGE control parameter file:

    <?xml version='1.0'?>
    <!DOCTYPE ctrl_params>
    <ctrl_params xmlns:xsi="" xsi:noNamespaceSchemaLocation="../xsd/ctrl_params.xsd">
        <plugin name="CCM" file="/path/to/ctrl-ccm.xml"/>

    CCM plugin control parameter file:

    <?xml version='1.0'?>
    <!DOCTYPE ctrl_params_ccm>
    <ctrl_params_ccm xmlns:xsi="" xsi:noNamespaceSchemaLocation="../src/plugin/ccm/ctrl_params_ccm.xsd">
    <naming_service use_it="yes">/path/to/CSD/NamingService.csd</naming_service>

    Powered by Heliovista - Création site internet