5 Ways of the industry

For the most part, component technology grew out of industry, not academia, and evolved from multiple directions. In the enterprise realm, the Open Group’s Distributed Computing Environment (DCE) was developed in the early 1990s, and provided the infrastructure for creating distributed applications. It was the first solution to use a formalized interface description language. The IDL dialect of DCE was used to automatically generate client-side and server-side proxies, hiding the low-level machinery used for inter-process and inter-machine communication and thus making distributed computing vastly simpler to implement (Open Software Foundation 1995; Hludzinski 1998). DCE only provided for remote procedure calls with no object semantics, though. This was rectified by the Object Management Group’s Common Object Request Broker Architecture (OMG’s CORBA), which helped heterogeneous object-oriented systems interoperate.

Microsoft’s efforts started on the desktop, and grew out of an effort to make its office productivity applications interoperate better. A technology dubbed Object Linking and Embedding (OLE) enabled documents created in one application to link to or embed documents created in other applications. OLE made it possible for, say, a presentation slide to contain an embedded spreadsheet, which could be edited “in-place” by double-clicking it (without leaving the presentation software). The component technology that resulted was the Component Object Model (COM), whose later incarnations competed with CORBA in the enterprise space. Other organizations also developed technology for intermingling different kinds of media in a single document (such documents are known as compound documents). Apple based its (now demised) competing technology OpenDoc on International Business Machines’s System Object Model (IBM’s SOM) (Alger 1994).

Again on the desktop, Microsoft enjoyed early success with Visual Basic and its support for third-party software made available as “custom controls.” Visual Basic later based its component technology on COM. Borland’s Delphi product was compatible with components built for Visual Basic, but also sported its own object and component models, and a fully compiled, strongly-typed language.

Many of the more popular current component models for the desktop and the enterprise are built on platforms based on capable virtual machines, considerably simplifying component technology. Sun’s Java technology, as well as Microsoft’s COM successor, .NET, belong to this category.