The CORBA Component Model Tools (CCM Tools) are a set of code generators intended to make it easier to generate CORBA components from a small set of IDL files. This set of tools is implemented in a combination of Java and Python and is distributed primarily under the GNU Lesser General Public License.
Background
CORBA components are a fantastic way to program large software systems, providing many of the benefits of component–based development, test–driven development, and distributed computation. Unfortunately, however, writing CORBA components by hand is a long, complex, painful process that requires massive understanding of CORBA data types, argument marshaling, and lots of other formalities.
The CCM Tools are designed to circumvent most of this complexity by generating
support classes and boilerplate code automatically based on a set of input files
written in the Interface Definition Language (IDL). After generating as much
skeleton code as possible, the developer is then responsible for implementing
the business logic
code in the components.
All of the CCM Tools technologies are based on version 3.0 of the CORBA specification from the Object Management Group (OMG).
Current development directions
Currently CCM Tools development focuses on generating local (in–process) and remote (out–of–process) CORBA components using the C++ programming language. The tools make use of existing CORBA tools by generating a set of IDL2 files corresponding to the IDL3 input files, and using existing tools to generate C++ code from those IDL2 files. The CCM Tools then only need to be responsible for generating helper/wrapper classes for the CORBA components.
Future directions in the CCM Tools include the development of a set of Python component generators that parallel the C++ generators, and also a generator for components in the GNOME desktop environment using the GObject class system and highly portable C programming language. Java generators are also possible but not likely to be developed unless some excited individual comes along and wants to do it.
Check out the project's home page at http://ccmtools.sf.net/ for more information, and let me know what you think.
Acknowledgements
The CCM Tools would not be possible without generous financial support from Salomon Automation, the company that has funded our work for a long time. The CCM Tools also would only be a thought experiment without the help of Egon Teiniker and Edin Arnautovic. Finally, much of the design work in the CCM Tools was accelerated by animated discussions from Jörg Faschingbauer and Zsolt Kovacs. :-)