This chapter describes the basic architecture of OpenDoc and the fundamental technology components involved with OpenDoc.A component is a piece of software small enough to create and maintain, big enough to deploy and support, and with standard interfaces for interoperability. Jed Harris, President CI Labs(January 1995)
OpenDoc is the architecture that allows the creation of compound documents. It is used in OS/2 Warp Version 3, OS/2 Warp with WIN-OS/2 or OS/2 Warp Connect using a set of DLLs. OpenDoc was designed to facilitate the easy construction of compound, customable, collaborative, and cross-platform documents. By doing this, OpenDoc replaces today's application-centric user model with a document-centric one.
If you create a compound document in an application-centric user model, you have to use a monolithic application with lots of functions. The data types you can use (for example, text, graphics, sound, movie) depend on what kind of data the application can handle.
On the other hand, in a document-centric user model, the monolithic application is replaced by many small pieces of data and functions called components or components. Both terms are used in a synonymous way.
Components are objects that have a data part with a related behavior to manipulate the data. This is called a part handler. You can place any kind of component in a OpenDoc document without worrying about the data type the component is using.
The document-centric model supports data used in documents such as text, graphics, and spreadsheet. It also supports movies, sounds, animation and database information, such as calendars shared over the network. Because it has standard interfaces of interoperability, it is open to new data types and technologies developed in the future. Because of the standardized way of interoperability, components can be developed from different vendors without knowing each other.
OpenDoc is the implementation of such a document-centric model. OpenDoc fundamentally changes the conventional meaning of the term document. In today's computing environment, a document is tied to the application that will let the user view, edit and print its content.
An OpenDoc document differs from traditional documents in that it consists of objects. These objects may be text objects, graphics objects, spreadsheet objects, movie objects, sound objects, animation, image objects and even a push button. Those objects are handled (created, modified) by their specific programs called part handlers, but are stored in one data file. Part handlers are programs that allow you to view, create or modify part's contents.
In addition, OpenDoc is the ideal architecture for multimedia documents. In OpenDoc, each new medium that is or will be developed (for example, video, sound, animation, and simulation) can be embedded as a component in any OpenDoc document.
Although OpenDoc lends itself directly to a complex and sophisticated layout, its usefulness is by no means restricted to page-layout kinds of applications or even compound documents.
Components are pieces of software developed independently from each other that are able to interoperate. These components are to be bought from the shelves to be plugged together from experienced users or system integrators. The parts can be updated, replaced by other components without interfering the parts they are working with.
It is very similar to the plug and play philosophy we see on the hardware side. If you plug in a new card, the appropriate drivers should be loaded dynamically and other software can interoperate immediately with this card without being newly configured.
To enable this plug and play behavior of components, it is obvious that an architecture must standardize the interfaces. These interfaces are addressed by OpenDoc.
Subtopics: