CORBA & CORBA Component Model (CCM)
Author: Diego Sevilla Ruiz

|  | # The CORBA & CORBA Component Model (CCM) Page Diego Sevilla Ruiz ( e-mail) Be informed of changes! New slides as of Nov 13, 2000 here. (or PDF+ZIP) (or on-line version) # Introduction This page's goal is to led the reader through a comprehensive introduction to the CORBA Component Model (CCM) that will be part of the new CORBA 3.0 specification. Thus, it should guide you through the different documents and specifications that the Object Management Group (OMG) has developed to rule the introduction of Components into the CORBA standard. # Understanding the OMG web site and downloading the OMG CCM specifications The OMG's web site, www.omg.org is not the easiest web site to browse in: one has to have some knowledge of the technology adoption process of the OMG (however, take a look at the july issue of the "OMG in Motion" magazine (PDF), section "Getting Specifications and Products" by Jon Siegel). The OMG as a whole is divided into three main parts: the Architecture Board, in charge of defining and maintaining the Object and Reference Model, what's called the Object Management Architecture (OMA), the highest level view of CORBA, the Platform Technology Committee (PTC), in charge of enhancing the ORB and CORBA, the CORBA Services, and other things such as the Unified Modeling Language (UML). the Domain Technology Committee (DTC), which defines how CORBA relates to other industry fields, defining domain interfaces and frameworks that address the needs of the Telecommunications world or the Medical world, for example. Each of these are divided into a number of Task Forces (TF) or Special Interest Groups (SIG) or Working Groups (WG), all of them meaning almost the same: a group of experts sharing interest for a sub-field of the specific Technology Committee. You can see them at the OMG's Technology Committees home page (http://www.omg.org/homepages/index.htm). First of all, when the OMG detects that CORBA is lacking some feature or that it would be nice to have CORBA integrated with some other technology, the OMG issues a Request For Proposals (RFP) (You can see an explanation of the whole process in http://cgi.omg.org/techprocess/faq_process.html). Of course, the Component Model for CORBA has its own RFP. It was issued by the ORB and Object Services Task Force (orbos), a subgroup of the Platform Technology Committee (PTC). You can find it at http://www.omg.org/techprocess/meetings/schedule/CORBA_Component_Model_RFP.html. In this page you can find the process that the RFP for the CORBA Component Model has followed: The initial RFP was the document called orbos/97-06-12 that you can download directly from the OMG, as all other OMG documents, just prepending to the document name the string `"http://cgi.omg.org/cgi-bin/doc?"`. It was followed by a number of submissions made by interested enterprises. These submissions had to address the issues stated in the RFP. After all submissions and revisions, it seems that the final submission is in three volumes: volume I is in document orbos/99-07-01, and includes: the Component Model, the Component Implementation Framework (CIF), the Container Programming Model, the Packaging and Deployment (P&D) Model, the integration with Enterprise Java Beans volume II is in document orbos/99-07-02, and includes the MOF Metamodels (in this document the reader can find also a little tutorial on what the MOF is). volume III is in document orbos/99-07-03. It describes the necessary Interface Repository (IR) changes to include Component metadata (for example, adding the new interface `ComponentDef`, needed to describe the characteristics of a given component). (the complete IDL for the CCM can be found at http://cgi.omg.org/cgi-bin/doc?orbos/99-07-04.txt) It is not clear that those I've given to you are the last ones, as they don't appear in the RFP page. In spite of this, don't expect great changes from now on. The process continues, and once the enterprises' responses have been submitted, it's time for the OMG to work preparing those submissions to be part of the new CORBA3 specification. This work can be seen in the FTF (Formalization Task Force?) drafts. Making CORBA to support components means changing (smooth changes, but changes anyway) a number of things in the CORBA standard, including the language mappings, specification of services, etc. The documents I next point to are the work-in-progress of the OMG towards the final formalization and adoption. CCM FTF drafts of modified CORBA Core chapters (OMG document ptc/99-10-03), that is, changes to IDL types, IDL definitions, changes to IR (Interface Repository), the new Messaging (orbos/98-05-05) specification, etc., 461 pages, CCM FTF drafts of new Chapters (OMG document ptc/99-10-04), which contains almost the same topics that the volume I of the Components Joint Revised Submission above, 354 pages, CCM FTF drafts of MOF chapter (OMG document ptc/99-10-05), the new chapter on the MOF, this is a ZIP file containing two documents: `tealinterfacerepositorymetamodelforcore.pdf`, the MOF metamodel for the IR, 86 pages, and `tealpackagingdeploymentmetamodelforcore.pdf`, the MOF metamodel for the packaging and deployment (P&D) model, 171 pages. CCM FTF drafts of Lifecycle Service (OMG document ptc/99-10-06), the changes needed in the Lifecycle service, 62 pages. CCM FTF drafts of Transaction Service (OMG document ptc/99-10-07), the changes needed in the Transaction service (also the changes introduced by the Persistent State Service (PSS) 2.0 spec., orbos/99-07-07), 96 pages. CCM FTF drafts of Security Service (OMG document ptc/99-10-08), the changes needed in the Security Service, 402 pages. CCM FTF draft of changes to C++ Mapping Chapter (OMG document ptc/99-10-09), changes to the C++ mapping (actually from the CORBA 2.3 specification; note that this specification will include the changes made in CORBA 2.3.1 and 2.4), 168 pages. CCM FTF draft of Java Language Mapping Chapter (OMG document ptc/99-10-10), again aligned with CORBA 2.3, 134 pages. The process of formalization must end with the acceptance by the OMG's BOD (Board of Directors) which are the ones that finally must release the different versions of CORBA and other OMG's hosted standards. However, there are still open issues. You can see them in the OMG's Components FTF issues page. (It is a good place to see who's working with CCM, as the issues include the name (and e-mail) of the person finding the it. Wait a minute... I am adding the pages of all specifications... 1934 pages! Where can I find a comprehensive tutorial? # A brief tutorial on CORBA and CCM This set of slides show an introduction to CORBA and its Component Model (CCM, CORBA Component Model). The slides can be obtained as a GZIP-compressed postscript file, PDF+ZIP, or on-line at http://www.ditec.um.es/~dsevilla/ccm/. If you notice any problem downloading these files, or have suggestions, comments, enhancements, criticism, don't hesitate to send them to me at dsevilla@ditec.um.es. You can see the on-line slides here. # CCM resources here and there ## General CORBA 3 information OMG's CORBA 3 release information, which introduces the main areas in which the new CORBA 3 specification comes into. Steve Vinoski's "New features of CORBA 3.0" in the October 1998 issue of Communications of the ACM. Jon Siegel's "What's comming in CORBA 3" OMG's outline of CORBA 3 features ## CCM tutorials and slides Edward Cobb's CCM Tutorial (OMG document omg/00-06-01), a rather complete and interesting tutorial on CCM. Another good tutorial on CCM, from the same author above, helped by Dave Frankel, Dave Curtis and Patrick Thompson (OMG document orbos/99-03-22). From the OMG Meeting on Philadelpia, March 23, 1999. A more in-depth view of the CCM, by the same authors above (OMG document orbos/99-03-21), from the same OMG Meeting. CORBA: From Objects to Components, the slides for a fantastic tutorial at the 14th European Conference on Object Oriented Programming (ECOOP'2000), by Raphaël Marvie and Philippe Merle Japanese slides about CCM by Hiroshi Wada (from OMG Japan). Only in Japanese. Thanks Hiroshi for pointing this out!. Don't forget my own tutorial ;-) ## Articles regarding CCM An Overview of the CORBA Component Model, by Nanbor Wang, Douglas C. Schmidt, and Carlos O'Ryan, a chapter of the book "Component-Based Software Engineering: Putting the Pieces Together", published by Addison-Wesley. Applying Reflective Techniques to Optimize a QoS-enabled CORBA Component Model Implementation, by Nanbor Wang, Douglas C. Schmidt, Michael Kircher, and Kirthika Parameswaran at the 24th Annual International Computer Software and Applications Conference (COMPSAC 2000), Taipei, Taiwan Towards a Dynamic CORBA Component Platform, 2nd International Symposium on Distributed Object Applications (DOA 2000), by Raphaël Marvie, Philippe Merle and Jean-Marc Geib (not available on-line) ## Books that cover CORBA 3 and CCM Jon Siegel's CORBA 3 Fundamentals and Programming, second edition, ISBN: 0-471-29518-3. Published by John Wiley & Sons. Impressive book on the forthcoming CORBA 3 specification, covering Messaging, many CORBA mappings, a CCM example of use, etc. ## Current and expected CCM implementations There exists some controversy on what a CCM implementation is. CORBA components exists in two favors: basic and extended. Basic components are rather similar to EJBs, so any enterprise offering an EJB implementation can claim that it "implements" the CORBA CCM standard. Be careful with this!, as I don't think EJB being the publicly general idea of what a CCM implementation is (although this is my personal opinion). I'll list the ones I've heard of and those found in the OMG's CORBA/IIOP adoption page (please, help me to update this!!): Just new, it seems that Frank Pilhofer (one of the MICO project main developers) announced in this message that they're going to start a CCM implementation supported by Alcatel. They're looking for people to help. Frank told me that their current time frame is to ship their first version (basic components and the empty container) by July 2001. JavaORB's CCM implementation, not released yet. See this page to know how to contribute to their project. Exolab.org's OpenORB promises a new ORB designed from the beginning to be CORBA 3 compatible, and its headed by the same person that leads JavaORB: Jerome Daniel. It is not very clear when they're going to release it, as you can see in a comp.object.corba message in which the main point of the thread seem to be the correct spelling of the web site ;-) At this point isn't also clear what's the relationship between both projects (JavaORB's CCM implementation and OpenORB), even worse after this page. TAO's group is also preparing a CCM implementation (as you can see in the articles above). Browsing their ChangeLog one can see that the implementation is still far, but they add features "as required by the CCM." IONA's iPortal Application Server, EJB with CORBA support (no CCM, I'm afraid). ## Quick links and local copies of the OMG documents shown above Components IDL files. This document will be available in April (as stated in the OMG web site (I don't know what year it refers to, really!) Components FTF open issues. Problems people have found with the CCM spec. TODO # An open-source implementation of the CCM! Coming soon! Stay tuned!. Here we want to open a shared CVS repository in which programmers all over the world could share their effort to develop a public, open-source implementation of the CCM spec. We could start with a CIDL to IDL converter, etc., etc. # Acknowledgements I would like to thank here a number of people to helped me on writting this page, either directly or indirectly. There is no particular order in the following list, as I can't think on criteria for ordering acknoledgements: Marcos Menárguez Tortosa helped me a lot with endless discussions on CCM and EJB. Martin von Löwis, who indirectly helped me understanding how to search the OMG site and first pointed out (in this message) the list of submissions and dratfs I outline above. Raphaël Marvie (e-mail) who commented out the last version of the slides. # Work in progress!! This is a work-in-progress page, I'll try to convert it in a repository for the not-yet-released-nor-understood CORBA Component Model. PLEASE, help me to maintain this page updated sending me your comments, suggestions, errors and ideas. They will be greatly appreciated, and I'll include you in the credits of this page. You can also see the TODO file for this page. Go back to http://www.ditec.um.es/~dsevilla/ 3182 accesses since June, 22 2000. View the ChangeLog for this page. Last modified $Date: 2000/11/22 14:46:03 $