Novell is now a part of Micro Focus

OpenDoc: Reducing Software Complexity, Increasing Software Capabilities

Articles and Tips: article

Developer Marketing Manager
OpenDoc Technologies

01 Nov 1994

Today's software is difficult to develop, enhance, and use. OpenDoc is a new model for making software work together better and more simply. OpenDoc is a foundation for distributed, cross-platform component software. This DevNote gives a technical overview of OpenDoc's components and fundamentals.


Today, people are using computers for more and more complex tasks, often involving multiple programs and a variety of media. In addition, they are increasingly working together on computer-based group projects over a continually expanding and changing universe of systems and networks, a shift that requires software with new, collaborative capabilities. There is also a growing demand for custom software, to meet users' increasingly specialized needs.

Unfortunately, most of today's applications not only fail to meet these needs, they also contribute to the growing software complexity. In response to the competitive pressure to add features to their products, developers are creating larger and more complex applications, which offer little in the way of integration, collaboration, or customization capabilities. The result is paradoxical: as applications become more powerful in terms of features, they also become more difficult to use. In addition, they require more time and effort to develop, maintain, and enhance.

What's needed is a software model that allows users to access the capabilities they need easily and intuitively, while enabling developers to work more efficiently.

The Simple Solution to Software Complexity

OpenDocTM was developed to meet the challenge of reducing the complexity of computing today while simultaneously supporting the collaborative, integrated, and highly customizable applications of the future. OpenDoc provides a new model for software interoperability by enabling the creation of distributed, cross-platform component software.

Benefits to Users

OpenDoc offers a number of benefits to users, including the following:

  • Easy creation of compound elements

  • "In place" editing

  • Component software that can be assembled to fit specific tasks

  • Support on MacintoshTM, OS/2TM, WindowsTM, and UNIX platforms.

Benefits to Developers

In addition to providing users with a new level of computing power, flexibility, and ease of use, OpenDoc offers developers the following important benefits:

  • Faster, more efficient development

  • Lower deployment costs

  • Ability to focus on areas of business expertise

  • Ability to deploy solutions on all major desktop operating systems

  • Support for a wide range of programming languages

  • An open architecture, not controlled by any single vendor, with source code available

The "Open" in OpenDoc

Creating a new model for computing is no small task, nor is it one that could be achieved by any single company. OpenDoc is sponsored by Component Integration Laboratories (CI Labs), an independent association founded by Apple Computer, Inc.; IBM Corporation; and WordPerfect Corporation.

CI Labs acts as a forum for the open evolution of OpenDoc. Organizations and individuals who want to participate in the move to a component software model are invited to join.

CI Labs has a FTP server on the internet to provide mailing addresses, documentation, white papers, and other services for members and anyone interested in CI Labs activities.

To obtain more information on CI Labs services, send an email over the internet to You can also call CI Labs at (408) 864-0300.

OpenDoc Fundamentals

OpenDoc is an industry standard for software integration that enables distributed, cross-platform component software. Its architecture is truly open--source code will be available to vendors with no nondisclosure requirements.

OpenDoc is designed to provide a smooth transition to component software. Developers can begin to adopt OpenDoc without changing the look and feel of current applications.

OpenDoc technology presents users with two main concepts: documents and components.

Documents. In today's computing environment, a document has a type, which is tied to the application that the user must work with to view, edit, and print its content. With OpenDoc, a document is composed of smaller blocks of content called components which can be interactively edited.

Components. Components are the fundamental building blocks in OpenDoc, replacing monolithic applications with smaller units of content and related functionality. Text components contain characters; graphics components contain lines, shapes, and images; spreadsheet components contain spreadsheet cells with formulas; video components contain digitized video--and every component includes the ability to edit its particular type of content. Components, which are simpler and more focused than general-purpose applications, can be "mixed and matched" to fit the task at hand.

OpenDoc Technical Review

OpenDoc is designed to support information integration across entire organizations through the use of software components on notebook systems, desktop computers, servers and mainframes. It enables the construction of compound, collaborative, and customizable documents, which are interoperable across platforms (Macintosh, OS/2, Windows, and UNIX), as well as with proprietary APIs for desktop application integration such as Microsoft OLE 2.0. Not only does OpenDoc offer powerful document management capabilities to facilitate collaboration, with its advanced features such as scripting, it also enables the creation of highly customized and automated workgroup applications.

Working with OpenDoc

Figures 1 and 2 show a compound document containing a number of components: a headline, some text, a graphic, a photo, and a button.

Users can choose their editor for each purpose; because they are based on the OpenDoc architecture they work together seamlessly.

Figure 1: Editing text in an OpenDoc document.

Figure 2: Editing graphics in an OpenDoc document.

  1. To edit the text, simply click on it, and a text editor is invoked.

  2. To modify the graphic, click once on it to bring up the editor. If the graphic changes size, the text component will rewrap the text around its new shape.

  3. OpenDoc includes a scripting architecture, so, for example, the button in the document could be set up to automatically download data from a mainframe into the spreadsheet cells.

  4. Because OpenDoc complies with the popular CommonObject Request Broker Architecture (CORBA) standard, it is networkable and components can reside anywhere on a network. For example, the photo and its editor could be brought in from an image database on a remote server.

The following are brief descriptions of the key OpenDoc supporting technologies:

OpenDoc Document Level Services. This is a set of libraries that allow editors to work together to display and edit the contents of an OpenDoc document. It handles user-interface and display aspects of compound document creation. A key service is Bento, a portable object storage library and format that allows OpenDoc to store and exchange compound documents and multimedia.

OpenDoc Component Level Services. This is a set of libraries designed to allow components to work together. The libraries provide methods of negotiating about resources, registering objects for cooperative use, and persistently storing components.

Open Scripting Architecture (OSA). This is an automation and scripting API that supports application independent scripting, distributed automation, and workflow applications. It is not a scripting language, but rather a standard that enables the coexistence of multiple scripting systems. Currently, OSA is supported by three major scripting languages: Apple Computer's AppleScriptTM, UserLand Software's Frontier, and CE Software's QuicKeys.

System Object Model (SOM). This is a highly efficient dynamic linking mechanism for objects that supports multiple languages and provides a gateway to distributed object services. SOM technology allows different object-oriented programming languages, such as SmallTalk and C++, to create objects that can work together on a single desktop.

SOM complies with the Object Management Group's Common Object Request Broker (CORBA) standard for distributed object messaging--a standard that is backed by virtually every major systems vendor.

Open Linking and Embedding of Objects. This is a set of libraries that enables seamless interoperability with Microsoft Corporation's proprietary Object Linking and Embedding (OLE) technology for desktop interapplication communications.

OLEO allows developers to make use of the significantly cleaner--and hence, easier to work with--OpenDoc API when programming for Microsoft OLE 2.0. It enables bidirectional interoperability between OpenDoc and Microsoft OLE 2.0.

Note: OpenDoc is modular. Developers can replace most of the supporting technologies with an API-compliant alternative technology.

OpenDoc Component Software Architecture

OpenDoc is a comprehensive and cohesive set of services that utilize some proven technologies such as SOM, OSA, and Bento.

Figure 3: This shows the OpenDoc component software architecture.

The Organization Behind OpenDoc: CI Labs

Component Integration Laboratories (CI Labs) is a nonprofit industry association--jointly founded by Apple Computer, IBM, and WordPerfect--whose aim is the rapid implementation of OpenDoc on all major desktop platforms. CI Labs adopts, maintains, licenses, and supports essential software component technologies--providing reference source code, technical documentation, and example software for these technologies, with no nondisclosure requirements.

More specifically, CI Labs will do the following:

  • Adopt and share the key technologies essential for software components to integrate information and media from different applications within a heterogeneous networked environment.

  • Provide open access to decision making and priority assessment in a vendor-neutral forum for systems manufacturers, software vendors, in-house developers, and purchasers of software.

  • Manage and facilitate software contributions, design discussions, and technology definition and evolution.

  • License reference source code to developers and systems vendors.

  • Support developers in adopting these new technologies by providing test suites, documentation, and training.

  • Validate interoperability of componentsand platforms through a testing program.

  • Provide marketing materials and assist in comarketing compliant products and technologies.

  • Collaborate with existing standards organizations that are handling relevant issues.

OpenDoc Software Development Kits

To receive the SDK free of charge, send the following information to the appropriate address for the respective OpenDoc SDK:

Name Title Company Address Phone # Fax # Email Short explanation of your use of OpenDoc

Windows users: send internet email to or mail to

OpenDoc Group H170 WordPerfect Corporation 1555 N. Technology Way Orem, Utah 84057-9912

Macintosh users: send internet email to

OS/2 users: call 1-800-633-8266

* Originally published in Novell AppNotes


The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.

© Copyright Micro Focus or one of its affiliates