The biggest obstacle to the wider adoption of object-based systems is their lack of interoperability: You can't transport objects from one OS to another without some conversion process. The only way to demolish this Tower of Babel is to adopt standards for object interoperation at three levels: for object creators, object users, and interobject communication.
For object creators (i.e., vendors), we need a standard object model that specifies the binary formats for storing object data and sending messages. This model should also dictate the means of inheritance. The two contenders on the desktop are Microsoft's Common Object Model (COM) and IBM's System Object Model (SOM). Naturally, they're incompatible. In the wider computing world, several competing o
bject models further muddy the water, including SQL3, the next major version of the query-language standard.
At the second level, object users need a standard way to embed objects into compound documents. The two competitors are Microsoft's OLE 2.0 and OpenDoc (supported by a consortium including Apple, IBM, Novell/WordPerfect, and Sun). A compound document that is stored using either technology is more like a whole mountable volume than a single file, with its own internal "directories" to store the pieces.
OLE 2.0 implements structured storage via a file format called a
docfile
(common to Word, PowerPoint, and Excel), which organizes objects into internal
streams
. One application can drive another through an automation interface by calling object methods that all OLE 2.0-compliant applications must make visible.
OpenDoc, too, defines a compound-document format (Bento) in which document components (parts) are stored in directory-like streams (storage units). OpenDoc goes b
eyond OLE 2.0 by offering built-in version management. You can reconstruct any earlier version at will using stored changes. Also, while OLE 2.0 is proprietary and confined to Windows and NT, OpenDoc will work on Mac, OS/2, and Unix platforms.
OLE 2.0 appears to have the edge over OpenDoc in the reusable software component market. OLE 2.0 enhances Visual Basic's very successful Visual Basic custom control (VBX) file standard into the more fully object-oriented OLE custom control (OCX) format (which supports inheritance), for which success is also assured. OpenDoc supports end-user programming only via Apple's rather old-fashioned HyperCard and AppleScript, and it badly needs some answer to Visual Basic.
The final standard needed would let heterogeneous object systems cooperate across a network. The cross-industry Object Management Group (OMG) has produced a standard for a Common Object Request Broker Architecture (CORBA) -- the software layer that mediates requests between one object world and ano
ther. IBM's Distributed System Object Model (DSOM), which underlies OpenDoc, is CORBA-compliant.While the first version of CORBA was severely limited in that it allowed communication only between systems using the same object model, CORBA 2 supports cooperation between any CORBA-compliant systems. However, Microsoft has indicated that Cairo's OLE 2.0 will not be CORBA-compliant, dealing a heavy blow to the standard.