IT-SC book: Advanced CORBA® Programming with C++
19
When the Object Management Group (OMG) issued a Request For Proposals (RFP) for a
standard mapping of CORBA to C++, these developers and other groups submitted their
mappings to the standardization process. As is common for OMG RFP submissions, the
submitting groups joined forces to try to reach consensus and arrive at a single C++
mapping specification that would draw from the strengths of all the submitted mappings.
The process of producing a single standard C++ mapping for CORBA took
approximately 18 months, lasting from the spring of 1993 until the fall of 1994. For
technical reasons, such as the richness of C++ and its support for diverse programming
styles, the consensus-building process was not an easy one. At one point, because of the
competitive spirit and political nature of some of the parties involved (both characteristics
are inevitable in any industry standards group), the C++ mapping standardization effort
fell apart completely. However, the need for a standard C++ mapping eventually
overcame all obstacles, and the standardization was completed in the fall of 1994.
The C++ mapping was first published with CORBA 2.0. Since its adoption, the mapping
has been revised several times to fix flaws and to introduce minor new functionality.
Despite this, the mapping has remained surprisingly stable and portable even while the
C++ language was undergoing its own standardization process. The standard C++
mapping removed a major obstacle to broad acceptance of CORBA because it created
source code portability, at least for the client side. The server side still suffered from
portability problems until CORBA 2.2.
CORBA 2.0 also removed another major obstacle by providing the Internet Inter-ORB
Protocol (IIOP). IIOP guarantees that system components developed for different
vendors' ORBs can interoperate with one another, whereas before CORBA 2.0, different
system components could communicate only if all of them used the same vendor's ORB.
The C++ mapping and IIOP were key features that initiated CORBA's move into the
mainstream and made it a viable technology for many commercial companies. This
increased popularity of CORBA also meant an increased demand for extensions and bug
fixes. As a result, the specification has been revised three times since the publication of
CORBA 2.0. CORBA 2.1 was largely a cleanup release that addressed a number of
defects. CORBA 2.2 added one major new feature: the Portable Object Adapter (POA).
The POA, together with an update to the C++ mapping, removed the server-side
portability problems that existed to that point. CORBA 2.3, the most recent release, as of
this writing, fixed many minor bugs and added one major new feature, Objects-By-Value.
The OMG has now grown to more than 800 members, making it the world's largest
industry consortium, and CORBA has become the world's most popular and widely used
middleware platform. In our estimation, C++ is the dominant implementation language
for CORBA (although Java is making some inroads for client development). Demand for
CORBA-literate C++ programmers continuously outstrips supply, and it seems likely that
CORBA will remain the dominant middleware technology for at least several more years.
This book is all about making you CORBA-literate and giving you the information you
need to be able to write production-quality CORBA-based systems.