Find Articles in:
All
Business
Reference
Technology
News
Lifestyle

OpenDoc: the component guild

RELease 1.0, May 25, 1994

OpenDoc is a clearer, more explicit and more generalized component and document framework than OLE 2.0. It is also less incremental and will require more changes from participating developers and end-users, though not necessarily more effort: Both architectures require substantial work to adopt. Because it will run on many different operating systems with elements from different companies, it is also more likely to hit system problems.

Documents are the primary metaphor in OpenDoc.[8] Applications all but disappear: They look like task-oriented stationery on the desktop, such as icons representing ruled paper, a spreadsheet, drawing paper or a database form. (The applications themselves may end up in a new part-handler directory.) To start a new document, you choose the type of stationery you want; that sets which application is your "root part."

OpenDoc documents are composed of objects called parts, which are viewed through part viewers and manipulated by part editors. In-place editing is easy. Object activation follows the model of the hosting platform: objects on a Mac and Windows are activated when you click once on them; in Motif, when your cursor is over them. On all platforms, parts negotiate quickly for control over resources such as toolset and menu items, active selections and data streams, and reflect the results at the interface. Switching is quick and transparent.

Users can set preferences for which editor to invoke when they activate an editable part; OpenDoc defaults to the creator application.

You can have it all

OpenDoc gives each application developer the ability to incorporate all other types of OpenDoc-aware content, without having to modify its software. Customers won't have to wait for upgrades in order for an application to work with a new feature from some other OpenDoc vendor. For example, on the Mac, all OpenDoc parts are automatically mailer-aware. When someone creates a desktop video-conferencing part, it will be available to all OpenDoc documents.

OpenDoc's structure and the fact that it is designed with multiple platforms in mind should make it appealing to a broad range of developers. Large ones will be able to repackage their code and customize it for vertical markets; small ones will be able to sell software without having to create a whole channel themselves or build complete applications. They can develop parts that significantly augment larger applications.

The major elements of OpenDoc are the OpenDoc shell, the Bento compound-document storage specification, the Open Scripting Architecture, the System Object Model and (a recent and essential addition) OLE Interoperability. The shell, Bento and OSA define object layout negotiation, data transfer and scripting, respectively, more explicitly than OLE 2.0 does.

The OpenDoc document shell

An OpenDoc document runs in a shell that manages many aspects of the parts running inside it, including part placement, resource contention and message passing. The shell doesn't dictate, but rather mediates between parts. For example, OpenDoc's smart screen-brokering means that parts aren't limited to rectangular areas: Irregularly shaped parts negotiate their placement on-screen. Thus every OpenDoc document has access to page-layout capabilities, which comes in handy when the document has to handle long blocks of text or odd-shaped graphics gracefully.

A user can have several OpenDoc documents or parts active at the same time, and can drag and drop content from one to the other. OpenDoc's Arbitrator and Dispatcher make sure the right editors get user-interface and semantic events (system commands such as cut, paste, open and format, all reflected in the Open Scripting Architecture) to make sure they don't conflict with each other. To prevent deadlocks, the Arbitrator tracks and reassigns resources with a two-phase commit process.

Bento

Bento, the Japanese word for a compartmented lunch box, is the storage and interchange format for OpenDoc documents -- on disk, in memory and in the clipboard. CI Labs' Jed Harris created it when he was at Apple. Bento objects are not tied to the tools that created them. The format stores data schemas, so any application that can address that kind of part is welcome to read it. Unlike OLE, Bento supports versioning.

A Bento object has its own internal table of contents, which can describe sophisticated data structures. Or, if the developer prefers, Bento allows an application direct access to data streams.

The Open Scripting Architecture (OSA)

During work at Apple on document architecture in 1989, developers realized they needed a way to add intelligence to documents. Two of the resulting technologies were AppleScript and AppleEvents, which were created by Kurt Piersol of Apple, OpenDoc's chief architect. AppleScript is a Mac-specific scripting language; its foundation, the Open Scripting Architecture (OSA), is a language-neutral scripting interface that connects scripting engines and software components. OSA is based on semantics that collect application capabilities into domain-specific sets of commonly understood verbs and nouns that map to the AppleEvents model.[9] OSA already defines event suites for interacting with tables, rich text, telephone controls and other items. As novel applications describe and implement new actions or objects, developers can extend the model.

 

BNET TalkbackShare your ideas and expertise on this topic

The following tags are supported in BNET comments:
<b></b> <i></i> <u></u> <pre></pre>

Leave a Reply

  1. You are currently a guest | Login?
advertisement
CIO SessionsVision Series on ZDNet

See and hear what CIOs the world over thinks about the business of technology and how it's changing the way we live and work.

Go
advertisement
  • Click Here
  • Click Here
advertisement

Content provided in partnership with http://findarticles.com/source//