Skip to content

Page386

Object Request Brokers

As we have seen previously, mature objects are designed to be reused: they lower risk and development costs. Object Request Brokers (ORBs) can be used to locate objects: they act as object search engines. ORBs are middleware: they connect programs to programs. Common object brokers included COM, DCOM, and CORBA.

COM and DCOM

Two object broker technologies by Microsoft are COM (Component Object Model) and DCOM (Distributed Component Object Model). COM locates objects on a local system; DCOM can also locate objects over a network.

COM allows objects written with different OOP languages to communicate, where objects written in C++ send messages to objects written in Java, for example. It is designed to hide the details of any individual object and focuses on the object’s capabilities. COM+ is an extension to COM, introduced in Microsoft Windows 2000. ActiveX is discussed in Chapter 4, Domain 3: Security Architecture and Engineering.

DCOM is a networked sequel to COM. DCOM includes Object Linking and Embedding (OLE), a way to link documents to other documents.

Both COM and DCOM are being supplanted by Microsoft.NET, which can interoperate with DCOM, but offers advanced functionality to both COM and DCOM.

CORBA

Common Object Request Broker Architecture (CORBA) is an open vendor-neutral networked object broker framework by the Object Management Group (OMG). CORBA competes with Microsoft’s proprietary DCOM. CORBA objects communicate via a message interface, described by the Interface Definition Language (IDL). See http://www.corba.org for more information about CORBA.

The essence of CORBA, beyond being a networked object broker, is the separation of the interface (syntax for communicating with an object) from the instance (the specific object): “The interface to each object is defined very strictly. In contrast, the implementation of an object—its running code, and its data—is hidden from the rest of the system (i.e., encapsulated) behind a boundary that the client may not cross. Clients access objects only through their advertised interface, invoking only those operations that the object exposes through its IDL interface, with only those parameters (input and output) that are included in the invocation” [27].

In addition to locating objects over a network, CORBA enforces fundamental object-oriented design: low-level details are encapsulated (hidden) from the client. The objects perform their methods without revealing how they do it. Implementers focus on connections, and not on code.