Figure 37. OpenDoc Object Management Services - System Object ModelIf objects are to be assembled they must be compatible with one another. This is rarely a problem when writing a single program, because all the objects are written in the same language, run on the same machine, and use the same operating system. But building entire information systems out of objects is quite a different matter. Objects have to interact with each other even if they are written in different languages, and run on different hardware and software platforms.
David Taylor, Business Engineering with Object Technology
This chapter describes the basic architecture of the object model used by OpenDoc. SOM System Object Model provides the underlying object model for OpenDoc components.
SOM is the IBM implementation of the CORBA standard. CORBA stands for Common Object Request Broker Architecture, which is defined by a standardization group called Object Management Group. This group is defining standards necessary for objects to interoperate. CORBA defines a standard way of objects to communicate.
A component is an encapsulated building block which must be able to be plugged in and out at run time. Components, or parts as they are called in OpenDoc, can be developed independently by ISVs without knowing anything from the other components. Object technology is a great philosophy to provide the necessary encapsulation to minimize the dependencies of components to the outside world. Part of the object technology paradigm is to separate the definition of a component interface from the implementation. A component technology must have a standardized way of defining and describing interfaces and it must provide methods for other components to discover their interfaces dynamically.
Therefore an object model must provide the following:
1. A standardized binary application interface to enable dynamic loading and replacing of components very similar to the way DLLs are working.
2. An interface repository, which is available at run time to all components. It provides the information and the methods to discover the interfaces from other parts and objects at run time.
3. A standardized way to describe the interfaces.
There is a standard addressing all these requirements and defining all of the infrastructure necessary for such a component technology. It was defined by the Object Management Group.
Subtopics: