Potential & Limitations
CORBA: E-Commerce and Distributed Computing

 

Home

 

 

 

 

 

 

 

CORBA has a relatively complete and well-defined architecture. It provides a better solution for heterogeneous environments. The strong role for OMG IDL ensures an extensible architecture and support for both new and legacy applications. CORBA has a clear advantage in the number of development projects that have used the approach. The disadvantages of CORBA are its complexity and variation in vendor implementations.

CORBA as a standard for integrating distributed objects offers advantages in services, platform and tool support, maturity, and overall architectural integrity. COM is a Microsoft proprietary technology and not a true multi-platform solution. Although COM implementations are now on non-Microsoft platforms, these will inevitably be hindered by inadequate compiler, tool, and runtime support. The authors believe that despite Microsoft's support for porting COM, the technology will always be Windows-centric.

CORBA relies on implementation by vendors. This results in a more varied technology platform - the implications of the specification and vendor environment produces different, but largely interoperable, implementations. CORBA implementations support a wide range of mainframe, mini, and workstation platforms. Several are supported by vendors whose business is their CORBA tools, and not a proprietary operating system. CORBA language bindings work with significantly more languages and compilers, on more platforms. Although many organizations will be able to use a single ORB (that supports the required platforms), incompatibilities must be eliminated by CORBA vendors.

CORBA vendors have also addressed COM/CORBA interoperability. IONA, Visual Edge, and Noblenet have released implementations that support a mixed COM/CORBA environment. For example, IONA has licensed COM from Microsoft for use in its COMet bridging product. This service will include the capability for transactions started by an MTS-based component to complete in an OTS-based component, and versa vice. The availability of commercial bridging tools will enable CORBA systems to integrate COM desktops. There is no analogous capability in COM for integration with CORBA components.

CORBA services are also designed to be platform-independent. The catalog of implementations is somewhat inconsistent, as different vendors have different priorities on delivering services, but on the whole the selection of multi-platform CORBA services compares well with Microsoft's proprietary offering.

Some CORBA ORBs have a considerably longer and more extensive track record than has COM. Three or four had already been shipping for about 18 months when CORBA 2 finalized IIOP and the C++ and Smalltalk language mappings in December, 1994. CORBA 2 implementations came out the following year, and applications using them were being deployed on a large scale well before Microsoft shipped the first release of distributed COM in late 1996. Some key CORBA services - events and naming in particular - have a longer track record (MSMQ is relatively unproven in applications where an event service would be used, and the NT directory service has yet to ship).
   

On the architectural level, CORBA is conceptually more coherent and consistent than COM. CORBA IDL is rigorously defined, and the concept of language mappings lets multiple languages interoperate on essentially equal terms. CORBA IDL provides a richer set of data types, including user-defined types and exceptions, accessible to all languages. Through the object reference, CORBA supports a strong notion of instance identity, allowing designers to simply make use of this fundamental notion about objects, if they wish to, thereby simplifying the problem of object location. COM forces them to design their own way to provide it if they want it.