Composable Adaptive Software Systems (COMPASS)

CoSMIC provides the Composable Adaptive Software Systems (COMPASS) tool to resolve the problem of packaging component functionality. COMPASS defines a modeling paradigm that allows DRE application integrators to model the component assembly and packaging aspect. COMPASS also provides built-in constraint checkers that check for syntactic, semantic and binary compatibility of the assembled components. Moreover, the COMPASS model interpreter enables the synthesis of metadata describing component packages. Figure 1 illustrates how COMPASS fits into the overall CoSMIC tool chain, which enables application developers to model, synthesize, and deploy DRE applications. Below we describe how the COMPASS tool is used by DRE application integrators.

Package modeling . The modeling paradigm of COMPASS comprises different packaging and configuration artifacts and also legal domain-specific associations between the various artifacts. The modeling paradigm is defined such that the application integrator is able to visualize the packages at different levels of abstractions i.e., at the level of package, assembly and individual components. Visualization of abstractions is achieved by using the hierarchy inherent in composition based approaches of software development i.e., it utilizes the hierarchy of individual packages, the set of assemblies contained within a package, and the individual components contained as part of each assembly.

Configuration modeling. Since components can be composed out of assemblies of components, the individual components need to carry information about their properties and requirements so that informed decisions can be made at composition time by application integrators and tools. By making both properties and requirements as first-class entities of the modeling paradigm, COMPASS ensures that the properties of the set of available components can be matched against the set of requirements. This matching can be done using metrics defined by the OMG Deployment and Configuration of Component-based Distributed Applications Specification , including:

  1. Quantity, which is a restriction on number (e.g., number of available processors)

  2. Capacity, which is a restriction on consumption (e.g., available bandwidth)

  3. Minimum, which is a restriction on the allowed minimum (e.g., minimum latency)

  4. Maximum, which is a restriction on the allowed maximum (e.g. maximum throughput)

  5. Equality, which is a restriction on the allowed value (e.g., the required operating system)

  6. Selection, which is a restriction on a range of allowed values (e.g. , allowed versions of a library satisfying a dependency)

Constraint specification. COMPASS provides a constraint checker to ensure that the packages it creates are valid. This checker plays a crucial role in enforcing the CoSMIC  "correct by construction" techniques. Constraints are defined on elements in the COMPASS meta-model using the Object Constraint Language (OCL), which is a strongly typed, declarative, query and constraint language that has formal mathematical semantics domain experts can use to describe their domain constraints. COMPASS defines constraints to capture the restrictions that exist in the context of component packaging and configuration, including:

  1. Creation of component packages

  2. Interconnection of component packages

  3. Composition of packages

  4. Creation of component assemblies

  5. Interconnection of component assemblies

  6. Composition of assemblies

  7. Creation of components

  8. Interconnection of components

Adding constraints to the COMPASS meta-model ensures that illegal connections are not made among the various modeling elements, which also catches errors early in the component development cycle. Since COMPASS performs static modeling it has the added advantage that sophisticated constraint checking can be done prior to application instantiation, without incurring the cost of run-time constraint checking.

Interpretation. The COMPASS model interpreter translates the various packaging and configuration information captured in the models constructed using the meta-model into a set of descriptors, which are files containing metadata that describes the systemic information of component-based DRE applications. The output of the COMPASS model interpreter serves as input to another tool downstream, such as the deployment planner, that will use the information in the descriptors to deploy the components. The descriptors generated by COMPASS model interpreter are XML documents that conform to a XML Schema. To ensure interoperability with other CoSMIC modeling tools, COMPASS synthesizes descriptors conforming to the XML schema defined by the Deployment and Configuration of Component-based Distributed Applications Specification. COMPASS generates the following four different types of descriptors:

The output of COMPASS can be validated by running the descriptors through a schema validation tool like Xerces, that supports XML schema validation. The generated descriptors are input to the CoSMIC run-time infrastructure, which uses this information to instantiate the different components of the application and interconnect the different components.

Downloads

Download the ZIP file containing the meta-model, interpreter and an example model.