CCM Tools : About

The CCM Tools are CASE tools for generating CORBA components, according to the OMG's CCM standard. These tools enable developers to use IDL files to generate component structural code and automatic test drivers. This generated code does not contain any application functionality, but merely allows developers to concentrate on writing the application. Dividing an application into components allows for more precise component testing and broader component reuse—think of components as standard C++ classes, just with a little larger granularity. For more background on CBSE, see our papers page.

The CCM Tools can generate local (in-process) and remote (traditional CORBA out-of-process) components written in C++. Components can be connected together to form assemblies, which essentially act like megacomponents. Individual interfaces of each component can be declared as local (in-process) or remote (distributed through CORBA) at component installation time. Thus a component assembly could be composed of several processes residing on a server and several other processes running on peripheral machines.

Generated components include a basic test client to ensure the integrity of generated connection code, and a "mirror" component and associated test client. These test the provided and required interfaces on each component. Generated code also embeds the Python interpreter for rapid testing and prototyping. The Python interpreter and all testing and debugging code can be enabled at compile time for testing, and then disabled at deploy time to increase execution speed.

Generators for other languages (Python, Java, and C, for example) are also possible because the CCM Tools use a template system for code generation. See the development manual for more details on the CCM Tools library architecture.

Current work

A new IDL parser based on JFlex+Cup:
The current IDL3 parser has some bugs and produces inaccurately error messages.

A CCM Tools model validator:
This tool validates a given IDL model to check its compliance to the CCM Tools subset of IDL3.