CORBA, Java and The Internet

White Paper by Marty Weber
mweber11@earthlink.net

CORBA or Common Object Request Broker Architecture is the next generation of middleware. CORBA is a middleware project undertaken by a consortium of over 800 companies. The consortium is called the Object Management Group or OMG. The consortium represents the entire spectrum of the computer industry. The OMG first published a guide in 1990. Microsoft does not participate in OMG and has its own competing object broker called the Distributed Component Object Model or DCOM.

The OMG creates interface specifications, not code. The interfaces it specifies are always derived from demonstrated technology submitted by member companies. The specifications are written in a neutral Interface Definition Language or IDL. CORBA uses IDL contracts to specify a component's boundaries and its contractual interfaces with potential clients. Components written to IDL should be portable across languages, tools, operating systems and networks. CORBA provides no implementation details.

CORBA lets you create an ordinary object and then make it transactional, secure, lockable, and persistent by making the object multiply-inherit from the appropriate services. CORBA uses a distributed object infrastructure, which makes it easier for components to be more autonomous, self-managing, and collaborative. CORBA's distributed object technology allows you to put together complex client/server information systems by simply assembling and extending components. CORBA object services provide a unique approach for creating build-to-order middleware. With CORBA, component providers can develop their objects without any concern for system services. Developer can then mix the original component with any combination of CORBA services to create the needed function. They do this by subclassing the original class, and then mixing it with the required object service classes via multiple inheritance.

The Object Request Broker
The Object Request Broker or ORB is the object bus. It lets objects transparently make request to and receive responses from other objects located locally or remotely. The ORB lets components interoperate across address spaces, languages, operating systems, and networks. The ultimate goal is to let you create components that behave like business objects. Business objects encapsulate the storage, metadata, concurrency, and business rules associated with an active business entity. According to OMG's Business Object Task Force, a business object is an application-level component you can use in unpredictable combinations and independent of any single application. Business objects are ideal for creating scaleable 3-tier client server solutions.

Internet Inter-ORB Protocol or IIOP is TCP/IP with some CORBA-defined message exchanges that serve as a common backbone protocol. The IIOP makes it possible to use the Internet itself as backbone ORB through which other ORBs can bridge. It was designed to be simple and provide "out-of-the-box" interoperation for TCP/IP based ORBs. Every ORB that is CORBA-compliant must either implement IIOP natively or provide a half-bridge to it.

CORBA/Java
The Common Gateway Interface (CGI) protocol lets Web servers route the content of your HTML forms to back-end server applications. CGI is a slow, cumbersome, and a stateless protocol. CGI is not a good match for object-oriented Java clients. The next wave for the Internet is using the combination of CORBA and Java to create distributed objects. In a sense, the Java infrastructure starts where CORBA ends. CORBA provides a distributed object infrastructure that lets applications extend their reach across networks, languages, component boundaries, and operation systems. Java provides a portable object infrastructure that works on every major operation system. CORBA deals with network transparency, while Java deals with implementation transparency.

Netscape first shipped Communicator with a CORBA/Java ORB in June 1997. CORBA/Java ORB's are 100% pure Java. ORB classes can be downloaded into the browser on demand just like any other set of Java classes. With Java ORB, an ordinary Java applet can directly invoke methods on CORBA objects using IIOP protocol over the Internet. The applet totally bypasses CGI and HTTP. The client and the server establish a direct communication link using the ORB.

VisiBroker has become the great equalizer of the CORBA industry. It is the closest thing to a universal ORB. Companies embedding the VisiBroker ORB into their products include: Oracle, Hitachi, Netscape, Novell, SunSoft, NetDynamics, Novera, Sybase, Borland, Gemstone, Silicon Graphics, Hummingbird, Cincom, and Business Objects. VisiBroker is now baked into every Netscape browser, which means it lives on both the client and the server. Borland may be incorporating it with its tools. This would open up CORBA to programmers in a big way. CORBA is incorporating many elements of the JavaBeans component model, which should help make CORBA components more toolable.

Oracle has adopted CORBA/Java as the platform for its Network Computing Architecture. Oracle's entire software line from the database engines to stored procedures, tools, and the Internet will be built on a CORBA object bus. For example, the database engine will be broken up into components using CORBA. Third parties will be able to extend the database using CORBA components called Cartridges. Oracle is building most of the CORBA Services on top of the Borland/Visigenic VisiBroker ORB. Oracle also has its own server-side IIOP ORB. The first Oracle product to ship with this technology is Application Server 4.0.

Copyright 2001