CCM logo

The CORBA & CORBA Component Model (CCM) Page

Diego Sevilla Ruiz (e-mail)   Be informed of changes!  [an error occurred while processing this directive]
| news | introduction | omg ccm specs | omg and ccm | a brief tutorial | ccm mailing list |
| ccm implementations | ccm resources | acknowledgements | code examples | work in progress | blog on ccm |

An apple ;-)News

 

An apple ;-) 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.

 

An apple ;-) The OMG CORBA Component Model Specifications

This section will show the different specifications that are part of the so called "CORBA Component Model." The whole thing has been split into different specifications covering different aspects of the component model. Once adopted, the CCM specifications were included in the core set of standards provided by the OMG. There are several documents that are related to the CCM:
  • CORBA 3 specification. This includes the modifications made to CORBA to include components (changes to the IDL, to the Interface Repository, etc.), as well as a bunch of other additions, such as Fault-Tolerant CORBA, Quality of Service, Real-Time CORBA, Asynchronous Messaging, etc.
  • CORBA Components. This includes the complete component model itself, as it is described later in this page: components, characteristics of components and facets, the Component Implementation Description Language (CIDL), assembly and deployment procedures and so on.
Alongside these specifications, there are others that are related to the CCM in several ways:

 

An apple ;-) Understanding the OMG web site and a short history of 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://www.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://www.omg.org/cgi-bin/doc?orbos/99-07-04.txt.
  • Also, Rational Rose files of MOF models can be found in orbos/99-07-05 as a ZIP file containing all the files.

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 (Finalization 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).

Paris Meeting

OK. This was till April 25, 2001. The CCM deadline is approaching (September or November, 2001), so CCM implementors had a meeting in Paris that date to schedule the CCM specification finalization. Some parts of the specification will be dropped, and others will be modified to hurry up in the release. Michel Ruffin, from Alcatel, one of the co-chairs of the session (the other one was Ignacio Silva-Lepe, from IBM) kindly sent me the minutes of the April Paris meeting, which you can obtain here:

Microsoft Word format or PDF format.

As you can see in the minutes, the meeting included some presentations:

  • Olaf Kath, from Humboldt University, produced an implementation of the Dining Philosopher example. (OMG Document ccm/01-05-05). It includes a Rose model, a document explaining the example and its IDL file.
  • Frank Pilhofer presented a slides on "Making sense of CORBA Components" (OMG Document ccm/01-05-01) in which he explains some inconsistencies of current spec and proposes a C++ mapping for CCM.
  • Philippe Merle presented some summary of achieved goals and still remaining ones. (OMG Document ccm/01-05-02).
  • He also presented the an implementation of the Dining Philosopher problem (OMG Document ccm/01-05-03).
Basically, the minutes reveal what has to be done in respect to the specifications in the near future. Some parts will be removed from the spec (such as the CIDL) and left for future RFPs. Concretely:
  • Fix current issues for components.
  • Fix current IDL3 to IDL2 mapping and the CCM IDL itself to enhance reflection properties (Philippe Merle and Frank Pilhofer).
  • Removing CIDL leads to some weaknesses on the container model (particularly with state components, whose container and persistence support cannot be generated automatically). This also leads to source-level incompatibility among different CCM implementors. Some work is needed to agree on all those interfaces: CIF metamodel (Olaf Kath, from Humboldt U.); The deployment model must be completed without CIDL (Philippe Merle, A. Hoffman, Jim Kulp).

Berlin Meeting

CCM implementors had another meeting this time in Berlin on June, 12th and 13th. The minutes (OMG document ccm/2001-06-03) reflect what was discussed in it. Some other documents were published:
  • A ZIP file containing all the material presented in the sessions: 9 PowerPoint files reflecting each of the parts of the meeting: the example revised, the CIF, CIDL Mapping, etc., Actions taken and Conclusions.
  • A document specifying the results and actions raised by the meeting (OMG document ccm/2001-06-01). Summing up, you can find there:
    • Added a new keyword to IDL3 to include explicit definition of an event type (eventtype).
    • Changes to the IDL3 to IDL2 generation to adapt to the new eventtype IDL3 keyword
    • homes are allowed to inherit independently if they are managing a basic or extended components
    • homes are also allowed to support interfaces
    • More standard CIF by defining specific executor classes (missing from previous specs.)
    • Some other aspects deferred till the Boston meeting (July 9-13).

Danvers Meeting

Time advances, and CCM implementors had another meeting on July, 9th.-13rd., 2001. The spec is changing rapidly, and in the right direction. Some of the documents presented there fix some issues, and also there is a list of all issues with possible solutions. You can see the documents presented in the minutes (OMG document ccm/2001-07-07, although I'm not sure the document number is OK. I'll double-check it later). The documents presented include:

Finally, they composed a list of known CCM implementors with some associated data regarding each one.

Toronto Meeting

On September, 10th-14th, CCM implementors had another meeting in Toronto. You can see the minutes here (OMG document ccm/01-09-01). According to the minutes, the following activities were carried out at the meeting:

The idea is to have the spec. finished on November, 30th.

Final CCM FTF specification!!

On November, 30th, the final CCM specification was finished (just the last day!!). The final FTF specification is OMG Document ptc/2001-11-03, and the final report informing of all the addressed issues is OMG Document ptc/2001-11-02. (You can see the announcement here). So, CORBA Components is almost finished.

Martin v. Löwis informs in this message of the forthcoming process so that the specification will be finally adopted:

At the upcoming Anaheim OMG meeting, the OMG Architecture Board (AB) will review the CCM FTF report. If they endorse it, the OMG Platform Technical Committee (PTC) will vote on it, in a fax vote process that takes 10 weeks. If that vote passes, the OMG Business Committee (BC) will ask vendors whether this is available technology. If vendors answer the BC to their satisfaction, the OMG Board of Directors (BoD) will approve it as an Available Specification. Once this happens, the OMG Editor will publish the specification.

Anaheim Meeting

The CCM has been approved by the Architecture Board (AB) and the Technical Comitee. The Finalization still need to be approved by the Board of Directors (BoD) in Yokohama, Japan (April 22-26). The minutes are OMG document ccm/02-01-01. Some issues with the spec were fixed and they established a work plan for the next Yokohama meeting, including:
  • The creation of a charter for the CCM RTF to be approved in Yokohama
  • The definition of a common example to show CCM product implementations. The chosen example was the Dining Philosopher demo, which you can find here. Implementors intending show their products should contact Philippe Merle (please, see this message).
  • Tom Ritter, with help of others, built a new version of the enterprises implementing CCM. You can find it as OMG Document ptc/02-02-03.

Yokohama Meeting

As Fred Waskiewicz announced (copy here), the OMG Board of Directors (BoD) adopted finally the CORBA Components specification. This is the culmination of all the efforts, and defines the new way of CORBA, because CCM will be incorporated to the CORBA 3.0 specification.

At the Yokohama meeting, Philippe Merle, Sylvain Leblanc, Mathieu Vadet, Frank Pilhofer, Tom Ritter and Harald Böhme presented a tutorial on the CCM (OMG Document ccm/2002-04-01) that happens to be the more complete tutorial ever in the CCM. You can see the announcement here.

Orlando Meeting

This was the first meeting to which I went. It was a fine time! There, we presented another version of the tutorial of Yokohama. The new tutorial is OMG Document ccm/2002-06-01. Being there at Orlando, I had the opportunity of taking some photos at the demonstration, like this (click it to see the larger photo):

Photo

From left to right: Tom Ritter, Harald Böhme, Philippe Merle, Mathieu Vadet, myself, and Michel Ruffin (sorry that I brought the camera after Sylvain Leblanc was gone).

Photo

Again from left to right, J. Scott Evans, Philippe Merle, Harald and myself.

 

An apple ;-)New!A brief tutorial on CORBA and CCM

This set of slides show an introduction to CORBA and its Component Model (CCM, CORBA Component Model).

  New!  As a result of the Yokohama meeting, a new set of slides which covers an introduction to the CCM were developed. These slides, as Philippe Merle states in this announcement, are currently the more complete and detailed information on the CCM. The tutorial became OMG document ccm/2002-04-01.

For "historical" purposes, I still maintain in this page the first tutorial I did, which had some importance in earlier days ;-)

The old slides can be obtained as a GZIP-compressed postscript file, PDF+ZIP, or on-line at http://www.ditec.um.es/~dsevilla/ccm/. English explained slides (ps+bz2, 4.5MB, HQ) or (ps+gz, 7.8MB, HQ) or (PDF, 13.2MB, high quality) or (PDF, 3.2MB, low quality).
An US mirror of both PDF papers: (PDF, 13.2MB, high quality) or (PDF, 3.2MB, low quality)

 Spanish explained slides (ps+bz2, 4.6MB, HQ) or (ps+gz, 8MB, HQ) or (PDF, 13.2MB, high quality) or (PDF, 3.2MB, low quality)

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.

 

An apple ;-)New!Mailing list on CCM

In order to better support this page, I created a mailing list on CCM. The list info page and subscription instruction can be reached at http://moriarty.dif.um.es/mailman/listinfo/ccm. You can post to this list using the e-mail address ccm@moriarty.dif.um.es. The archives can be found here.

 

An apple ;-) 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!!):

  • The first CCM implementation!: OpenCCM, developed by the GOAL Group of the Lille University, France, headed by Philippe Merle. This is in its 0.2 version, so it is still under development. They've started a mailing list about OpenCCM here. You can see their original announcement in the ORBacus mailing list. Project Update! Philippe Merle just sent this message showing current status and future work for OpenCCM.
  • MICO Project update. The first C++ implementation!. Frank Pilhofer can be proud of being the first releasing a C++ implementation of CCM. He informed me that the IDL3 compilation chain is complete although some work is still needed. The work can be obtained from the MicoCCM page. Frank (one of the MICO project main developers) announced in this message that they were about 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. Frank gave a talk at the 2nd MICO/CORBA Workshop explaining the CCM implementation of MICO. It was held on March 5th, 2001 at Stanford University. Project update! MicoCCM now has an assembly and deployment tool!! You can see all the information regarding it here (and you can see the announcement).
  • iCMG is also preparing a product wich supports CCM (called K2). It will include a CCM container and support interaction with EJB. Project Update!iCMG announced that current implementation of K2-CCM container can be downloaded here!. They have also a developer forum on CCM!!
  • Enterprise Java CORBA Component Model (EJCCM) is developed by CPI as Open Source. It has a lot of features, as you can see in its web page, including support for persistence, containers for all the four kinds of CORBA components, distributed deployment, etc.
  • Qedo (QoS Enabled Distributed Objects) from Fraunhofer Fokus, implemented by Tom Ritter and Harald Böhme (after joining with the CIF project), is finally available as Open Source. It includes interesting features, such as new component port types supporting streaming and quality of service negotiation, etc. You can also subscribe to their mailing list, quedo-devel.
  • TAO group is also preparing a CCM implementation called CIAO (Component-Integrated ACE ORB). Release information and TODO is here.
  • Andreas.Scholz informed in this message that MICO/E (An Eiffel ORB) implemented some basic CCM features.
  • JinACE is an open-source implementation of a subset of the CCM using the TAO ORB
  • CCMTools. Although not a complete implementation, this package helps building components and has been thought as a CASE tool for writing test components. It supports code generation for C++ and Java and the possibility to add scripting features also.
  • IONA's iPortal Application Server, EJB with CORBA support (no CCM, I'm afraid).
  • By this message from the components-FTF list, you can see that there are some other companies implementing the CCM:
    • Eurescom/GMD/Humboldt U.
    • Computational Physics/Photon Research
    • Sprint
    • One
    • Siemens
  • Another Sourceforge.net project, also in alpha, called MI-3 (from Mission Impossible-3, as reflected in this message ;-) tries to implement the CORBA Component Model. It is headed by Ralf Neeb. I don't know if putting it here or in the Miscellaneous section...

 

An apple ;-) CCM resources here and there

 

An apple ;-) Code Examples

In this section I'll put some code examples using OpenCCM 0.2, and MicoCCM, currently being the only CCM implementations ;-). Don't hesitate to send me comments or requests for this section. It's going to be finished soon.

 

An apple ;-) Acknowledgements

I would like to thank here a number of people who 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 acknowledgements:
  • 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 a message I can't find after Google acquiring Deja) the list of submissions and dratfs I outline above. He also helped me several times providing links, ideas, etc. Thanks!
  • Raphaël Marvie (e-mail) who commented out the last version of the slides.
  • Frank Pilhofer (e-mail) who kindly gave me information on the MICO project's CCM implementation and provided C++ examples.
  • Jacob Jose Cherackal, a really kind developer working on a CCM implementation at India. He has a vast knowledge of all CORBA technologies and helped me to understand these better.

 

An apple ;-) 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.

Best Viewed With Any Browser. Valid HTML 4.01! Valid CSS! Powered by emacs! Powered by vim!

Go back to http://www.ditec.um.es/~dsevilla/
[an error occurred while processing this directive] accesses since June, 22 2000.
View the ChangeLog for this page.
Last modified $Date: 2008-06-16 01:32:37 +0200 (lun, 16 jun 2008) $