Deployment And Configuration Engine (DAnCE) is an implementation of the run-time infrastructure as defined by the final adopted OMG Deployment & Configuration (D&C) specification (ptc/2003-07-08), which deals with the configuration and deployment of component-based applications. Currently DAnCE only supports the deployment & configuration of CORBA Component Model (CCM)-based applications, though we are interested in generalizing it for other component models in future work. DAnCE uses XML descriptors to drive the deployment it performs. One way to generate these descriptors is using the Component Synthesis using Model-Integrated Computing (CoSMIC) tool-suite. DAnCE currently uses Component Integrated ACE ORB (CIAO) as the underlying CCM implementation in the current release, though again we are interested in generalizing it for other CCM implementations in future work.
The XML handlers shipped with DAnCE are capable of handling almost all elements that are defined in the D&C schema. In this context, handling refers to reading the XML tags and converting them to the equivalent in-memory IDL-based data structures defined by the specifications. DAnCE supports the following types of descriptors specified in the D&C specification:
CORBA Component Descriptor(.ccd) – Contains information about component interfaces including component ports.
Component Implementation Descriptor(.cid) – Contains information about component implementations which might be either monolithic or assembly based. In the case of assembly based implementations, this descriptor also captures the dependencies and the connections among components
Implementation Artifact Descriptor(.iad) – Contains information about implementation artifacts in-cluding dependencies between such artifacts
Component Package Descriptor(.cpd) – Contains information about grouping of multiple imple-mentations of the same component interface into component packages
Package Configuration Descriptor(.pcd) – Contains information about specific configurations of such component packages
Component Domain Descriptor(.cdd) – Contains information about the target environment in which the component-based application will be deployed
TopLevel Package Descriptor(.tpd) – Contains information identifying the top-level element in a component package descriptor which might include information about multiple elements
Component Deployment Plan(.cdp) – Contains information that actually drives the deployment including information about individual components that represent the leaf-nodes in case of a hierarchical assembly, connections between components, and assignment of components to nodes etc.
For all the above elements, DAnCE supports proxying of the elements
as defined by XMI, i.e, DAnCE supports both parsing of the elements
inline and reference through href
attribute. Some
D&C schema elements are however not handled, including:
Deployment:Any – This is a complex
element that is composed of many sub-elements. Currently, DAnCE
only parses a subset of the sub-elements of
Deployment:Any
. Specifically, DAnCE supports all the
basic data types defined as part of Deployment:Any
,
and doesn't understand any complex types.
xmi:Extension – This element allows the augmention of the standard D&C schema with user-defined elements. Currently DAnCE doesn't support user-defined extensions to the schema.
Deployment:Requirement – This element is
allows the description of requirements of component-based
applications. Since handling this description requires interaction
with the TargetManager
interface (which is not yet
supported), support for Deployment:Requirement
is not
present.
Deployment:ComponentPropertyDescriptioncode> – This element is used to specify default values for attributes of component. DAnCE doesn't support setting the values for attributes of components using this tag.
Deployment:ComponentExternalPortEndpoint, Deployment:ExternalReferenceEndpoint – These elements are used to specify connections between ports of components in one assembly with ports of components in a different assembly, or connections between component ports and external connection endpoints. These features are needed to support assemblies of components. DAnCE doesn't support yet hierarchical assemblies, i.e., creation of assemblies which can themselves contain sub-assemblies.
Deployment:PlanPropertyMapping – This element is used to delegate property mapping between a component's external properties to properties of subcomponents that actually implement the behavior of the larger component. Since DAnCE doesn't support hierarchical assemblies, this tag is not yet supported.
We plan to support these features in future versions of DAnCE.
The D&C specification defines a set of standard CORBA interfaces that are used to perform the deployment of component-based applications. These interfaces depend on the in-memory IDL data structures that are built by DAnCE's XML handlers. Below we outline the list of interfaces defined by the specification and the level of support for each interface in DAnCE:
RepositoryManager – Only the
installPackage()
and findPackageByName()
operations of this interface are implemented.
TargetManager – This interface has not been implemented at all. Implementation of this interface is planned for the future.
ExecutionManager – All operations defined in this interface are implemented.
DomainApplicationManager, DomainApplication
– All operations except getApplications()
operation of DomainApplicationManager are implemented.
NodeManager – All operations except joinDomain()
and leaveDomain()
operations of NodeManager are implemented.
NodeApplicationManager, NodeApplication – All operations defined in these interfaces are implemented.
We plan to finish implementing the unsupported features in future versions of DAnCE.
Last modified $Date: 2005-05-11 07:23:42 -0500 (Wed, 11 May 2005) $ by $Author: dengg $