Java is particularly well suited for mobile code and distribution. However, it offers no more support for distributed computing than any other object-oriented language, such as C++ or SmallTalk.
We live in fortunate time, because there is a widely adopted and deployed specification, CORBA® (Common Object Request Broker Architecture), that supplies the infrastructure capabilities on which we can build Java-based distributed applications. CORBA represents a paradigm shift in middleware -- a pervasive, industry-wide agreement on distributed object interaction protocols and framework services.
In the fall of 1990, OMG first published the Object Management Architecture Guide (OMA Guide). The Common Object Request Broker Architecture (CORBA) 1.0 specification soon followed in 1992. The OMG is currently composed of over 700 members and as an organizational body owns and advances the OMA, CORBA 2.0, CORBAservices, CORBAfacilities and CORBAdomains specifications.
What CORBA Supplies as a
Distributed Object Management Framework
A key part of the CORBA specification is the Interface Definition Language (IDL). IDL is the CORBA standard language for defining an object's interface. CORBA uses IDL contracts to specify an object's boundaries. Some key features of IDL are:
CORBA has four key features as a distributed object management framework for the Java application: (1) Environment Independence, (2) Location Transparency, (3) Interface Separate from Implementation, (4) Self-describing.
- purely declarative
- provides operation system and programming language independent interfaces to all the services and clients that reside on a CORBA-distributed object bus.
- designed to be efficient in a distributed system
- designed to be development language independent. IDL to C, C++, SmallTalk, ADA, COBOL and Java compilers are available.
- all CORBAservices and CORBAfacilities interfaces are defined in IDL
- all clients of an object have a consistent view of that object, regardless of the environment of the client or the server object, or the location of the client or the server object.
- IDL-specified object methods can be written in and invoked from any language that provides CORBA bindings -- currently C, C++, SmallTalk and Java are available. Implementations for ADA and COBOL are currently in the definition process.
- every CORBA object must have an IDL specification and the object's IDL must be available from the Interface Repository.
CORBA's distributed object technology enables us to put together complex distributed applications by assembling Java and non-Java-based objects. The ability to freely interoperate among heterogeneous objects, languages, and platforms is the fundamental value of CORBA. We can build distributed applications by integrating different objects in their native habitat while accessing each from an environment where it does not currently reside.
- Environment Independence: Objects can interoperate across languages, operating systems, networks, development or production environments.
- Location Transparent: You can transparently access an object from within a single process, multiple process running within the same machine, or multiple processes running across networks and operating systems. From an architecture or implementation view, you are one level above transport, server location, process activation, or datatype representation on different platforms.
- Interface separate from Implementation: The interface is a contract that specifies an object's functionality. The interface exposes no implementation or platform or environment dependencies.
- Self-describing Interface: CORBA IDL describes the interface specification. The IDL specification can be obtained from the CORBA Interface Repository. An explicitly available interface specification is an essential feature for the ability to bind together at runtime. Runtime binding is a key capability required by reusability and mobile objects.
CORBA is available for desktop platforms, such as MS Windows and Macintosh and server platforms such as UNIX and Windows NT and somewhat available for legacy enterprise systems such as VM, MVS, CICS, OS/400, VAX/VMS. However, Java requires a distributed object computing framework that is as ubiquitous as it is. There will always be new platforms and new operating systems. A ubiquitous inter-object communication protocol, the core capability of a CORBA framework, is needed that can be easily ported to any new environment that comes along.
The CORBA Internet Inter-ORB Protocol (IIOP) is an emerging de facto standard candidate for a ubiquitous inter-object communication protocol. It is required of all CORBA 2.0-compliant implementations. Sun has placed an implementation and the code for IIOP in the public domain. IIOP is a separable CORBA runtime service and as such is fast, reliable and has a very small footprint.
Leading CORBA vendors, such as IONA, Expersoft, and Visigenic have shipping IIOP implementations, while other CORBA suppliers such as DEC, HP, IBM and Sun have announced release commitments.By providing free versions of Java IIOP implementations, Netscape, IONA Technology and Visigenics have taken a leadership role in providing distributed computing for the widespread Java community.
Distributed Computing is the Basis of the Net-Centric Application
The net-centric application is rapidly becoming the universal method by which all applications are built. Together, CORBA and Java deliver a complete distributed object management framework needed by the net-centric application. A HTML page, Java applet, or C++-based CORBA object can access legacy applications located on a remote application server using IIOP.
The net-centric application infrastructure is based on the same open standards of the Internet. HTML pages or Java objects are loaded into the Java-enabled desktop browser using HTTP. Any application object can be accessed using CORBA Internet Inter-ORB Protocol (IIOP) from Web pages, Java objects or application servers.
The combined strengths of CORBA and Java give us the building blocks for ubiquitous distributed computing. CORBA gives us the ability to access a legacy application on its native platform. Java gives us the ability to develop an object once and install it on any platform. Additionally, Java's platform binary independence enables an object to relocate at runtime from one platform to another. Performance, reliability and replication are all factors that motivate object relocation in a large distributed system. Additional capabilities we realize from the marriage of CORBA and Java are:
- You can use existing infrastructure investments in desktop computers, servers, mainframes, databases, applications, and networks.
- "Between a rock and a hard place" decisions are eliminated, such as leaving valuable applications on decaying hardware and unsupported operating systems or costly ports and customizing applications to new hardware and operating systems.
- CORBA and Java enable enterprise-wide system object reusability, increasing the organization's ability to assemble new applications rapidly from existing services.
- You can manage distribution of applications objects from a central, verified source rather than requiring costly updates to desktops or highly mobile portables.
- You can load objects on clients or servers without recompilation to enable universal partitioning of the application.
The net-centric applications will arguably be the most influential trend in enterprise applications – and applications vendors know it. Since the beginning of 1996, virtually all the major enterprise client-server applications and tool developer vendors, such as SAP, Oracle, Sybase, Informix, Forte, PowerBuilder, Bann, PeopleSoft, Lawson, and Dun&Bradstreet Software have announced initiatives, development plans, alliances and acquisitions to transition their key product lines for the net-centric application.
The hyper-rapid deployment of the net-centric application within the enterprise is driven by the ease with which multi-tier enterprise information systems are built using the open-standards of HTML, IIOP, CORBA and Java.
Starting in 1997, Netscape and Oracle will roll-out to their entire installed base a product line of universal desktop and application servers based on CORBA, Java and other net-centric based standards. Netscape's and Oracle's installed base of more than 20 million Web browser desktops, 400,000 Web and DBMS servers will upgrade in an extraordinarily short period of 12 months. This mass upgrade migration will be additionally driven by the backing and commitment of platform vendors such as Sun, HP, IBM, Digital, Silicon Graphics, enterprise application vendors such as SAP, Bann, Lawson, PeopleSoft and Informix, and tools vendors such as Forte, NeXt, and Powersoft.
CORBA is quickly becoming pervasively available on every leading desktop and server platform in an extraordinarily short period of time. This is driven by the commitment of such industry leaders as Sun, Netscape, Oracle, HP, IONA, Visigenics, IBM, and Digital. What is most significant is that Java and CORBA together provide a path for the enterprise to scale up existing client/server applications to very large, pervasively available, multi-tier (3-tier to n-tier) net-centric applications.
You can obtain CORBA specifications in detail at http://www.omg.org as well as follow the latest specification developments in CORBAservices, such as Security, Event, Transaction, Persistence, and Lifecycle; CORBAfacilities, such as System Management, workflow, and agents, CORBAdomains, such as CORBAmed (medical) and CORBAfinance.
Also, I highly recommend the following two books for quickly and deeply developing your knowledge of CORBA:
- "The Essential Distributed Objects Survival Guide," Robert Orfali, Dan Harkey and Jeri Edwards, John Wiley and Sons, Inc., 1996.
- "CORBA Fundaments and Programming," Editor Jon Siegel, John Wiley and Sons, Inc. ,1996.
About The Author
Dr. Cottman is founder and CEO of I-Kinetics and is founder and Chairman of the BomponentWare Consortium. As M.I.T. Lincoln Laboratory principal research staff, he designed and deployed one of the first distributed object management frameworks. As President and then later V.P. of R&D, he led the ACCESS and SOCIAL distributing computing projects, resulting in the successful CORBA-like commercial products, MetaCourier and ObjectExpress. In 1991, Dr. Cottman becamse a CORBA convert, sold his Symbiotics holdings and formed I-Kinetics, which is a leading provider of enterprise component software and tools.