Leading members of the Object Management Group are colluding to ensure the ongoing success of the Common Object Request Broker Architecture (CORBA). On May 25, 1997, the gang-of-four ... IBM, Netscape, Oracle, and SunSoft ... submitted a statement of direction to the Object Management Group to provide missing Java-like functionality to the Object Management Architecture (OMA), of which CORBA is the key component. This proposal highlights three key elements of the distributed object computing marketplace:
With OpenDoc's grave barely cold, IBM and its fellow Java advocates are on the trail for its replacement. IBM was a major contributor to OpenDoc and pushed hard to have it adopted as a standard component of the Object Management Architecture. However, with the last OpenDoc supporter - Apple Computer - recently dropping out, the OMG is once again in need of an architecture for development of component-based applications, especially in graphical user environments. Alas, the answer just happens to be readily available in the form of JavaBeans™.
- Java offers advanced functionality for developing distributed applications.
- The reusable component marketplace has been proven by Microsoft to be lucrative and a fertile environment for building business applications.
- For real world business applications the OMA needs a component framework and scripting capabilities.
JavaBeans is a specification developed by JavaSoft, in cooperation with its licensees, for building reusable Java-based components. This technology was originally defined to provide a natural path for other component technologies, such as ActiveX and OpenDoc, to operate inside of a Java Virtual Machine. It has not taken JavaSoft long to advance JavaBeans to the point where it has become an architecture unto itself; a requirement for building 100% pure Java applications. Consequently, the JavaBeans initiative introduces many similar attributes, for developing components, as Microsoft's ActiveX and CI Labs' OpenDoc technology.
The thrust of the jointly-issued statement to the Object Management Group, entitled CORBA Component Imperatives, outlined the requirements for interoperability of "component-ware" vis á vis CORBA. Lo and behold, the specification pinpoints the exact features that make Java useful for development of distributed object applications. Moreover, this move clearly illustrates that Java provides an unprecedented ability to develop distributed object applications; otherwise, OpenDoc would have sufficed. It also illustrates that component-based application development has entered mainstream usage and is now being demanded by these vendors' larger customers.
This new proposal defines the requirements for the OMG to coordinate existing ongoing definitions work on pass-by-value and multiple interfaces, with two new processes: component model and component scripting. These four proposals combined will offer to all programming languages the object coherence now available to distributed Java applications. Of note, soon after this submission, Sun Microsystems committed to work on Java Remote Method Invocation (RMI) and CORBA/IIOP (Internet Inter-ORB Protocol) interoperability.
The Big Question: Why?
Why would these vendors request that the OMG address this issue with undue haste? Simple. Components have entered mainstream use. The attention surrounding ActiveX and JavaBeans has enlarged the base of users that understand the power of component-based software. Indeed, CORBA has always provided this capability to some degree. Many have "wrapped" existing monolithic legacy applications as CORBA components so they may participate in a distributed application. Still, JavaBean's and ActiveX's ability to facilitate instant use of objects in a visual environment is still a missing component of CORBA. Moreover, it is this functionality that is being demanded by CORBA's leading end-users.
So, what exactly are the features that make JavaBeans so powerful anyway? The gang-of-four identified four specific areas that will simplify programming and use of CORBA objects in the future. These issues are identified and defined below.
Introspection is the ability for an object to identify its own composition; for example, its fields, method signatures and inheritance tree. The Java Virtual Machine has the strongest capability in this area by being able to read a Java object's composition from its raw class file form. ActiveX and CORBA both can provide similar information, but require reading of an external file to do so. This capability adds degrees of simplicity for building a component framework. As demonstrated by JavaSoft with their BeanBox utility, introspection allows the BeanBox to connect two Beans over an event relationship. The proposal recommends creating an RFP to cover this functionality.
Pass-by-value is one of RMI's greatest strengths over both CORBA and ActiveX. It provides the ability to pass copies of objects between processes operating in separate address spaces, instead of just references to objects. It does so by using the introspection facility to identify the object's composition, and then, with no additional programming, "flattens" it for delivery. In contrast, CORBA and ActiveX both need to break objects down into a set of lowest-common denominator types to pass between each other. The OMG has already defined a Request for Proposal (RFP) for passing CORBA objects by-value. However, work on this specification has been slowed to ensure coordination with the entire component effort.
The gang-of-four is also proposing to adopt Uniform Resource Locator (URL) naming conventions for CORBA objects. In light of the fact that most distributed applications built over the next two years will most likely be deployed over the Web, this is smart. The surprising part is that the Distributed Java team specifically lead with a URL naming convention because it uses the widely available Internet's Domain Name Service (DNS). This greatly eases many implementations since it relies on an established, and pre-existing, naming service. In addition, the group has proposed a specification for allowing different implementations of the CORBA Naming Service to locate each other over a network. This is the first step towards allowing CORBA objects to be used with a variety of ORB products.
The final directive involves the creation of an RFP for Scriptable CORBA objects. Here the gang-of-four is encouraging the OMG to recognize the power of scripting as a technology motivator. Perhaps ActiveX has its problems as an Internet component technology, but it has a market leadership role in business applications development. The third-party ActiveX market is a huge success owing all of its popularity to Visual Basic and other rapid application development (RAD) tools. Visual Basic invented the model of component developers and component users by providing a scriptable interface to highly reusable components. The gang-of-four now wants to repeat that success over JavaBeans and CORBA, in effect eliminating any lead Microsoft has in the component development space with its ActiveX technology.
Although CORBA 2.2 will include COM/CORBA and DCOM/CORBA interoperability, this initiative provides additional interoperability between ActiveX and CORBA by way of JavaBeans. Moreover, this interoperability will be provided over a component-based framework.
The gang-of-four represents four of the most influential members in the OMG, but this proposal is still far from being a standard. The OMG had no qualitative comment addressing this proposal but the following quote was obtained from Christopher Stone, ex-President and CEO of the OMG. "We, OMG, have been focusing on the infrastructure layers. The missing piece is a visual' component model (with all the trappings - scripting, naming, pass by value, etc.) that ties the front end client side Web developers with the Enterprise. This is a proposal, using Java and JavaBeans to make that happen. It emphasizes my point that the combination of Java and CORBA is unbeatable. I'm thrilled." And so he should be. Stone and company were created to establish a middle-tier glue for graphical components. However, not just any components. These were components that belonged to Bill Joy's "Oak" facility, now commonly known as Java. Of note, Mr. Stone is still thrilled regarding this initiative, just now he's thrilled as the new Senior VP, Strategy and Corporate Development, at Novell, Inc.
Missing from the set of vendors presenting this proposal was IONA Technologies, Inc. IONA is the world's leading vendor of CORBA-based Object Request Brokers (ORB). The following statement was issued by IONA relative to this initiative. "The initiative to bring JavaBeans into the CORBA fold is certainly to be welcomed. OpenDoc was clearly the wrong approach to creating client side CORBA components," Annrai O'Toole, CTO at IONA Technologies commented on the latest move with JavaBeans. "However, we are afraid that what's going on here could be a step towards the Javatization' of CORBA to the exclusion of other languages, and that's not a good development. JavaBeans are good for components like buttons and dialogue boxes but they are clearly limited for server components such as business logic." Indeed few, if any, server-side JavaBeans have been developed so far. Theoretically, the concept of a server-side Bean is a possibility, but reusable server-side components have yet to be proven as valuable as their client-side siblings.
Overall, the proposal represents real world requirements for building distributed object applications using any technology. This group just happens to be pushing an agenda that offers them the greatest level of interoperability using an open standards approach. Regardless, of the reasons for this initiative, the emergence of these specifications as real CORBA products will be undoubtedly one of the most exciting events in computer history since it will require overcoming some of the most difficult hurdles ever attempted in heterogeneous computing.
About the Author
J. P. Morgenthal is Founder/Java Computing Analyst for NC.Focus, a technical research and analyst specializing in Java and Network Computing. NC.Focus offers services for both Corporate IT departments and vendors. More information regarding NC.Focus' services can be found on their Web site http://www.itfa.com