OpenDoc is something software developers should consider seriously when they reach for tools to create reusable components. OpenDoc is a framework within which developers can create reusable, interconnecting software parts. The architecture allows end users to connect the parts right on their desktop just as easily.
The architecture was developed by Apple, WordPerfect, Borland and Sun. OpenDoc is available for IBM's OS/2 and Apple's Mac OS. Versions for IBM's AIX and Microsoft's Windows 95 and Windows NT are in beta testing.
Versions of OpenDoc that work with IBM's System Object Model (SOM) are available for OS/2, Windows 3.1, Windows 95, Windows NT and AIX as well as mainframe platforms. That is important because software written with SOM objects migrates easily to OpenDoc components, called "parts".
We tested OpenDoc using the generally available OS/2 version from IBM and ran it on a 90MHz Pentium-based system with 16Mb of memory and OS/2 Warp Connect. Warp FixPak 17, included on the CD-ROM, is required for the latest level of OpenDoc. The CD also contains OS/2 runtime elements, including the OpenDoc base, multimedia extensions and sample parts for putting together a financial application, including a live stock ticker.
For developers, the CD includes an update to the OS/2 Professional Editor, the OpenDoc Toolkit (with tools such as class libraries, header files and documentation), the SOM Developer's Kit and the SOM Workgroup Enabler. It also includes an object-oriented enhancement to the Rexx scripting language called ORexx that serves as the Open Scripting Architecture (OSA) language for OS/2. There is also an OSA Resource Editor with templates for new scripts and a library of standard suites. We were easily able to develop ORexx scripts by using the Script Editor. A PartMeister code generator is included, but it requires a dynamic link module that isn't installed.
EASE OF USE
For developers, OpenDoc provides a set of application programming interfaces (API) that make development of interoperable, reusable software components relatively painless. Those APIs already have been incorporated into several products and bring OpenDoc development to C++, Cobol, Smalltalk, Basic and other languages.
With OpenDoc, developers don't need to constantly reinvent the wheel. Using the sample parts included, we put together an application that did text processing, displayed push buttons and responded to clicks on them. The product even allowed the user to do some simple two-dimensional drawing in the window -- all without writing a single line of code.
For more complex functions, the tool kits allow development of custom OpenDoc parts. That is more complex than writing a stand-alone program because you have to allow for all the requests that may come from the user and from other parts. But those experienced with the event-oriented programming of graphical user interfaces will be used to that. Object-oriented programming experience is another plus because OpenDoc is essentially object-oriented programming taken to a new level.
Each part is a complex object, with all its methods contained within the object (or the OpenDoc runtime modules). And OpenDoc parts can be any size or shape, which creates great flexibility. The C++ code samples help a lot, and once you have basic parts in place, combining them to provide a complete application is a snap.
Information systems departments can capitalise on this to roll out custom solutions for their users without intensive programming or expensive contracts with vendors. Many large corporations such as Cummins Engine and Andersen have already embraced OpenDoc to help ease their software development, rollout and support burdens.
OpenDoc for Windows supports OLE. An OpenDoc container can hold OLE objects, and OLE applications can contain OpenDoc parts. We found that OpenDoc actually provides an easier platform for developing OLE-compliant applications. Microsoft has publicly stated that OpenDoc applications meet the OLE requirement for Windows 95 certification.
(Brian Proffit is a senior contributoring editor and researcher at PC Lab, a test lab in Torrance, California.)