OpenDoc for AIX

by Leigh Williamson

OpenDoc is a software component environment, providing the runtime environment and standardized protocols that allow software components to work together. A common analogy for a software component environment is the stereo system. As long as the various individual components of the stereo conform to a standard interface, it doesn't matter that they were each manufactured by different companies using different designs. The stereo system, as a whole, works together and individual components can be unplugged, replaced, moved around and generally configured to the tastes of the system user.

In OpenDoc terms, the stereo components interface with each other by using the standard set of runtime libraries which come with the OpenDoc package. And the interface that individual software components must conform to is the set of methods for the OpenDoc ODPart class.

These software components ("parts" in OpenDoc terms) can be developed using several different mechanisms. The part could be created "from scratch" using one of the OpenDoc part templates provided in the OpenDoc package. When the next version of VisualAge C++ is released, OpenDoc components can be developed using the powerful Visual Builder and Direct-To-SOM compiler supplied with that tool set. Or the software components could be originally developed in various other environments, both object oriented (OLE, C++) and non-object-oriented (Motif, C, or COBOL). As long as the part is modified to respond to the OpenDoc protocols (or is provided an OpenDoc "wrapper" as in the case of OLE), it can be plugged into the OpenDoc environment and cooperate with any other OpenDoc parts.

The OpenDoc standardized protocols are essentially the methods of the ODPart class (documented in the OpenDoc Class Reference on the DevCon for AIX CD-ROM). The OpenDoc runtime environment provides system-specific services to allow OpenDoc software components to negotiate and share resources such as screen space, file space, memory space, and event distribution.

IBM's System Object Model (SOM) technology provides the object management layer for OpenDoc with features including dynamic class loading, dynamic method resolution, and robust subclassing capabilities. The SOM libraries are not bundled with the OpenDoc for AIX package, but are a prerequisite for running OpenDoc.

There are other ancillary technologies bundled under the OpenDoc umbrella. Apple's BENTO technology is used to provide the file sharing services for OpenDoc parts. The Open Scripting Architecture (OSA) is one scripting technology that allows OSA enabled OpenDoc parts to be externally driven by OSA enabled script languages (such as AppleScript on MacOS and OREXX on OS/2). On platforms where Microsoft's Object Linking and Embedding (OLE) runs (Windows and OS/2), the OpenDoc package includes OLE interoperability technology, which allows software components written to the OLE specification to function in the OpenDoc environment and vice versa.

OpenDoc is often compared with the OLE technology. OLE (as its name implies) is an application linking architecture, rather than a true compound document architecture. OLE was designed to allow some portion of an existing traditional application (Excel, for example) to be embedded into some other monolithic application (such as Word). OpenDoc, in contrast, does not require external monolithic application programs, but instead was designed to employ lightweight parts combined into one compound document. In addition to being a complete compound document specification, OpenDoc supports several key features not supported in OLE, such as nonrectangular shaped parts, single mouse click activation, and shared menus.

The OpenDoc standard is published and coordinated by the Component Integration Laboratories (CILabs), an open, independent consortium of companies devoted to the formulation, implementation and promotion of technology useful for component software development and integration. Founding members of CILabs include IBM, Apple, and WordPerfect (now Novell). Other members of the consortium include Adobe, Lotus (now IBM), MetaWare, OMG, Oracle, the X Consortium, and the IntelligentPad Consortium. More information regarding CILabs can be found at http://www.cilabs.org on the World Wide Web.

What is the "Early Experience Package?"
The OpenDoc for AIX Early Experience Package (EEP) on the DevCon for AIX CD-ROM is intended as an early peek at the OpenDoc technology as implemented on AIX. This package provides the majority of the core OpenDoc runtime environment. All the basic OpenDoc services to support software components (screen space, file space, memory space, and event distribution) are implemented. And there are nine binary OpenDoc for AIX "parts" that can be experimented with, along with sample source code for seven of these parts. The Class Reference Manual, Programmer's Guide, and Installation Guide are provided for developers to learn about OpenDoc and OpenDoc software components on AIX.

The EEP is not yet a commercial product. It is missing some of the pieces of the full technology set. The OSA scripting is not included; OLE wrappers are not included. Some other minor services are not implemented such as Undo/Redo and the part "Settings" extension.

The prerequisite software for OpenDoc for AIX is AIX Version 4.1 and the AIX SOMobjects Toolkit Version 2.1 (the complete toolkit). The C Set++ compiler is also required if you are planning to build part handlers. Disk space requirements are 32 MB for the libraries and sample code, and 17 MB for documentation. No special hardware is required.

What's Been Added to the OpenDoc for AIX EEP?
Since the first EEP release of OpenDoc for AIX, several functional components have been added:
 * OpenDoc Part Registry - A robust database of the parts and the data types they manipulate on the system. Also included are a set of command line utilities and a GUI application for installing new OpenDoc part editors on a system and maintaining the Part Registry database.
 * OpenDoc Linking Services - The data from one part can be exported (linked) to another part for viewing. Two sample OpenDoc parts are supplied to demonstrate how to supply link data and receive link data.
 * Common Desktop Environment (CDE) Integration - OpenDoc files are recognized by the CDE file typing system and can be opened simply by clicking on their desktop icon. Drag and drop to and from the CDE is supported. OpenDoc for AIX observes correct CDE session management protocol.
 * Documentation - The Class Reference is supplied in HTML format in addition to PostScript format. The Installation Guide is also supplied in HTML so you can view it online using your browser of choice.
 * Sample Parts - There are more samples than the first EEP. Several new features are showcased by the sample parts, including porting a typical Motif application to OpenDoc (MandelPart); using OpenDoc Linking (Table and Chart); and porting an OpenGL application to OpenDoc.

After you've previewed OpenDoc for AIX, visit Club OpenDoc at http://www.software.ibm.com/clubopendoc on the WorldWideWeb.