CPS714 Advanced Web Technologies
Topic 4 The Object Web
An Overview of Javabeans, COM and CORBA
Developers are turning to creating components rather than monolithic applications to free themselves from slow, expensive application development, and to build up a portable, reusable code base. This enables developers to quickly attack new market opportunities, new joint development opportunities, and new ways to sell smaller packages of software.
JavaSoft and Microsoft currently are battling to get you to involved into JavaBeans and ActiveX/COM, their respective component frameworks. CORBA, a standard for object communications that is maintained by the Object Management Group (OMG), is also a competitor to Microsoft's DCOM technology. In this paper I present a brief technology overview of Javabeans, COM and CORBA and take a look at their respective component models.
JavaBeans takes Java's "Write Once, Run Anywheretm" capability and extends it to include "reuse everywhere". "JavaBeans is a portable, platform-independent component model, written in Java." With it, you create small, reusable, software components. A visual "builder" program combines components from disparate sources to create applications quickly and easily.
JavaBeans is a complete component model. It supports the standard component architecture features of properties, events, methods, and persistence. In addition, JavaBeans provides support for introspection (to allow automatic analysis of a JavaBeans component) and customization (to make it easy to configure a JavaBeans component).
A Bean is a JavaBeans component. Beans are independent, reusable software modules. Beans may be visible objects, like AWT components, or invisible objects, like queues and stacks. A builder/integration tool manipulates Beans to create applets and applications.
Beans consist of three things:
Also, since Beans rely on their state, they need to be able to be persistent over time.
Recently, JavaWorld contained two articles comparing the technologies. The first article is a strategic analysis of the two. The second article is a head-to-head comparison.
Some web-based resources:
The Component Object Model (COM) is a software architecture that allows applications to be built from binary software components. COM is the underlying architecture that forms the foundation for higher-level software services, like those provided by OLE. OLE services span various aspects of commonly needed system functionality, including compound documents, custom controls, interapplication scripting, data transfer, and other software interactions.
The Component Object Model defines several fundamental concepts that provide the model's structural underpinnings. These include:
COM addresses the four basic problems associated with component software:
Additionally, COM provides a high-performance architecture to meet the requirements of a commercial component market. (Details refer to Microsoft COM .)
The Common Object Request Broker Architecture (CORBA) [OMG:95a] is an emerging open distributed object computing infrastructure being standardized by the Object Management Group (OMG). CORBA automates many common network programming tasks such as object registration, location, and activation; request demultiplexing; framing and error-handling; parameter marshalling and demarshalling; and operation dispatching.
The following figure illustrates the primary components in the OMG Reference Model architecture.
(This figure is adapted from Corba Overview by Douglas C. Schmidt.)
Both DCOM and CORBA frameworks provide client-server type of communications. To request a service, a client invokes a method implemented by a remote object, which acts as the server in the client-server model. The service provided by the server is encapsulated as an object and the interface of an object is described in an Interface Definition Language (IDL). The interfaces defined in an IDL file serve as a contract between a server and its clients. Clients interact with a server by invoking methods described in the IDL. The actual object implementation is hidden from the client. Some object-oriented programming features are present at the IDL level, such as data encapsulation, polymorphism and single inheritance. CORBA also supports multiple inheritance at the IDL level, but DCOM does not. Instead, the notion of an object having multiple interfaces is used to achieve a similar purpose in DCOM. CORBA IDL can also specify exceptions.
Corba implementation