Comparison of Distributed Computing Technologies
By: Darshana Panchal
This document provides a comparative and contrasting review of four distributed computing technologies currently used in the industry:
What is CORBA?
In mid-1990s, Object Management Group (OMG) a group of industry leaders chartered to standardize object-oriented computing in distributed environment. The strongest motivation for this charter was the need for interoperability among the rapidly proliferating number of hardware and software products. In 1992 OMG standardized CORBA 1.1 and defined IDL and API that enable client and server object interaction within specific ORB implementation. In 1998 CORBA 2.2 defined true inter-operability by specifying inter-operability requirements for ORBs from different vendors. CORBA standard has gained much stronger industry-wide acceptance in many domain areas. In Europe,
TINA-C has adopted CORBA framework for Distributed Processing Environment (DPE), as de-facto standard to be suitable for telecommunication applications. For Tutorial and current research on CORBA please refer to Doug Schmidt’s web site. Due to extensive research in real-time CORBA architecture, many organizations have based their time-critical applications on CORBA architecture. One striking example of this is use of CORBA in mission critical real-time applications like fighter plane control .
What is OSF/DCE?
In mid 1980s, Open Software Foundation - an industry consortium represented a proposal to standardize distributed computing. It proposed architectures within which the major component of distributed computing system with well specified interfaces and behaviors and within which application programs would inter-operate using RPC by virtue of employing standard RPC interface.
This standard is known as OSF/DCE. It has become relatively standard and it is available on many platforms today. It is an industry standard, vendor-neutral set of distributed computing technologies. It provides the security to protect and control access to data, name services that make it easy to find distributed resources, and a highly scaleable model for organizing widely scattered users, services and data. It is design to support distributed applications in heterogeneous environment. The Thomas J. Brando of MITRE Corporation has provided excellent
Overview of DCE.What is DCOM?
DCOM is a Distributed version of Microsoft’s Common Object Model (COM) which facilitates the integration of components across network. The evolution of COM and then DCOM is rooted to back to the Object Linking & Embedding (OLE) over Dynamic Data Exchange (DDE) communication layer. DCOM handles the network aspects of the distributed objects hidden allowing the developers to focus on the details of the application.
Microsoft web-site provides an extensive repository of DCOM white papers and tutorials for allowing developers to step by step building DCOM application.What is Java/RMI?
Java is platform independent object-oriented programming developed by
Sun Microsystem. It is modeled after C++, designed to be small, simple and portable across platforms and operating systems both at source level and binary level. Java platform is a new way of computing based on the power of networks. Java technology components don’t care what kind of computer, TV, or OS they run on. They run on any OS platform that support Java platform.Comparison Matrix
Criteria |
CORBA |
DCOM |
OSF-DCE |
JAVA |
Cost |
CORBA ORBs and the required development products carry additional cost. |
Bundled with Windows95/ NT |
Expensive. Implementations available from multiple manufacturers. Reference implementation is freely available as part of standard OS (UNIX) installations. |
Cheap |
Integration with other technologies |
IIOP provides inter-operability among different vendors’ ORBs. Bridging technologies are evolving for integrating applications with DCOM. |
Bridging technologies are evolving for integrating applications with DCOM. |
Inter-operation between DCE based ORBs may be provided via a DCE specific protocol specified by OMG. |
Similar to CORBA, Java includes client stubs and server skeletons that perform the marshaling/unmarshaling of parameters and results to be returned. |
Maturity |
High |
Technology since 1996 |
High |
Recent technology |
Platforms supported |
Most major platforms from Mainframe to workstations on popular OS support. |
Supported by Microsoft Windows platforms. |
Major platforms on popular OS support it. |
Major platforms on popular OS support it. |
Performance |
Real-time ORB optimization done by universities. Real-time ORBs provide better performance. |
Mostly used in desktop environment. |
Provide better performance than most |
Interpreted language not yet used in performance sensitive applications. |
Services and Facilities for different industry domains |
CORBA services include 18 basic services common to all applications. Horizontal CORBA Facilities are identified for User interface, Information Mgt., System Mgt., and Task Mgt. Vertical CORB Facilities are identified for many industry domains including Accounting, Security, and Telecommunication. |
DCOM comes with registry which is naming services equivalent. |
No standardized business specific services identified by OSF. Vendors implement their own support packages for individual business applications. Basic services like naming, security are standard. |
Fewer than COREBA. Naming services is similar. |
Infrastructure |
ORB, IDL |
ActiveX Components |
Provides transperent service and object location thru naming service. Built-in security provides authentication, access control and dynamic service instantiation. |
Java Beans, Applets, RMI |
Transports supported |
IIOP |
Microsoft RPC |
DCE RPC |
HTTP |
Object Model |
True Object model based. Designed to support OO programming. |
Object model neutral. Originally designed to support procedural programming. |
Based on Common Object Model. |
Based on Object model. Does not support multiple inheritance. |
Interface Definition |
OMG IDL includes constructs for all concepts of object model. |
DCOM objects are specified in MIDL, which includes constructs for all concepts of object model. |
Uses IDL based on C language. C++ support is added. |
No interface definitions. Public methods |
Languages |
Primarily C++, C, Java bindings. But CORBA facilitates multiple different languages. |
No language binding. DCOM does not provide source code portability or platform independence. |
C and C++ are built in. There languages supported through different vendors products |
Java RMI can be done only within other Java objects. Java Native Invocation allows implementing a method of a server object in C or C++. |
Question:
If you were to choose a distributed middle-ware for your real-time application which technology base would you prefer? Why?
Answer:
CORBA based real-time implementation
Because TAO has proved successfully in mission critical application like flight control.
Comparing DCE and CORBA; Thomas J. Brando, MITRE Corp
Tutorial on TINA-C; Emmanuel Darmois Alcatel Telecom
Douglas C. Schmidt’s Tutorial on CORBA and Related Research