OpenDoc
OpenDoc was a collaborative effort between Apple Corporation, IBM, Wordperfect Corporation (Later Novell), Sun Microsystems, XSoft and Taligent to create a vendor independent, open standard for compound documents. Its development was later taken over by a company called CI Labs that was owned by Apple, IBM and Just Systems, CIL was dissolved in 1998 and there was talk about open sourcing the code for OpenDoc but for legal reasons that never happened.
- Technology
Basically an OpenDoc compound document is comprised of modules known as "Parts" that each have its own control program that is referred to as an "Editor". An OpenDoc Part can be anything a normal application would offer, eg a spreadsheet Part, a text Part, a database Part and so on, each Part can not only coexist with other parts in the compound document but they can also nest inside each other.
When you open a compound document, you are effectively using a collection of Editors nested inside each other. If no other storage format is requested or specified by the Editor the data is stored in a meta-format called Bento, that gives each Editor or Part a storage object of its own called "Storage Unit" that contains a list of properties inside it making it look like a file directory to the end user, in turn each Storage Unit is contained inside a list of SU's called Draft but in addition to operating as a sort of an index for Storage units contained inside the handles the householding of file reads and writes, but changes to a Storage Unit are not saved wholesale by a Draft but rather only the changes at each save, which in turn opens up the possibility of an almost infinite undo/redo operations.
OpenDoc received quite a bit of criticism for being overly complex. Apple supported
- Collaborative editing
But there is another aspect to a compound document system and that is the possibility of collaborative editing, OpenDoc supports more that one person "owning" each document so that more than one person can work on each document at a time if the application supports it, this is more or less inherent with the external material embedded into another doucement nature of a compound document. But more interestingly even if the application in question does not support it directly more than one person can work on the same document as long as they are not working inside the same container, e.g. a graphics designer can continue to work on the graphics inside one container while the author of the text or code can carry on working inside his container.
While we do have collaborative document systems today with sundry web based services they all require access to a centralised and specialised document servers while OpenDoc and similar systems allow this by default and without the need for external mechanisms of any kind.
- Background & history
While OpenDoc is sometimes presented as an answer to Microsoft's Object Linking and Embedding (OLE) technologies it actually has a history predating Microsoft's introduction of OLE and the rather weak COM model, OpenDoc's ancestry lies with the Xerox Star system which offered a rudimentary compound document system, but a number of the original OpenDoc team at Apple had worked for Xerox on the Star prior to joining Apple. What spurred them into action was the huge interest generated by the extensible objects available for the Oberon operating system and the compound documents that went with that idea, those two technologies were a hot topic in the early nineties.
The research into the Oberon extensible/compound document system eventually resulted in the Oberon/F system later commercialised under the BlackBox Oberon name, but further development of that system was hampered when Microsoft poached more or less the entire BlackBox development team from Oberon Microsystems. Noticeably the BlackBox system is easier to use and develop for, much simpler and faster than OpenDoc if not as language independent.
Contents
Developer Frameworks
- Apple OpenDoc Development Framework (1997)
- Apple OpenDoc Essentials Kit 1.0.1 - OpenDocEssentialsKit1.0.1.hqx
- Apple OpenDoc 1.1.2 - InstallingOpenDoc1.1.2PPC.hqx
- Apple OpenDoc 1.1 - InstallingOpenDoc.hqx
- Apple OpenDoc 1.2 - InstallingOpenDoc1.2.hqx
- Novell version of OpenDoc (Contains early version of SOM for Windows)
- IBM Windows OpenDoc. With sources OpenDoc, Bento and IBM’s sample Parts. - OD124WIN.ZIP
- IBM AIX OpenDoc. For AIX 4.1 - Relies on SOMTK SDK (not included) - OpenDoc.tar.Z.
- IBM OS/2 OpenDoc 1.2 - opendc12.zip
Developer Tools
Publications
Introductory articles and presentations
- Kurt Piersol:A Close up of OpenDoc - From Byte Magazine March 1994
Design
Collaborative aspects
- Elizabeth Dykstra-Erickson, Dave Curbow, Geoff Schuller and Kurt Piersol:Collaborative Aspects of OpenDoc
Retrospectives
- Dave Curbow: Lessons learned from OpenDoc - In PDF format
- Elizabeth Dykstra-Erickson and Dave Curbow: Designing the OpenDoc® Human Interface
- OpenDoc Presentation by Atze Dijkstra (1998-03-31)
- Using OpenDoc to create low-cost physics simulation tools for secondary and higher education by Scott Tooker and Rodney Cole (6-9 Nov 1996)
- Bento Brief by CILabs (September 1995)
- Bento Design Overview by CILabs (1995)
- OpenDoc Technology: Basic Concepts by Robert Tycast (March 1994)
- OpenDoc Glossary (Jun 1994)
- OpenDoc vs. OLE 2.0. Superior by Design. A Developer's View by IBM (January, 1994)
- Side by Side Comparison - OpenDoc vs. OLE2 (November 1993)
- OpenDoc: An Idea Whose Time has Come! by Robert Tycast (November 1993)
- Working With OpenDoc Part Kinds by Tantek Çelik and Dave Curbow
- Using OpenDoc With Object Flow System (OFS) Get up and running with OpenDoc by Gerry Kenner and David Kenner.
- The OpenDoc Road: OpenDoc Memory Management and the Toolbox by Troy Gaul and Vincent Lo (December 1996)
- Getting Started With OpenDoc Storage by Vincent Lo.
- BUILDING AN OPENDOC PART HANDLER by Kurt Piersol.
- Getting Started With OpenDoc Graphics by Kurt Piersol.
- Rethinking the Interface. Getting the look and feel of a container application By Tantek Çelik and David Curbow.
- OpenDoc Parts and SOM Dynamic Inheritance by Éric Simenel.
- The OpenDoc Development Framework. A modern framework for OpenDoc development By Jim Lloyd
- Using SOM to Extend Your OpenDoc Parts by Gerry Kenner, David Kenner, and Deborah Grits.(1997)
- Supporting Links in Your OpenDoc Part by Mike Halpin and Elizabeth Dykstra-Erickson.(1997)
- OpenDoc Articles by Rollin White
- OpenDoc 202: Writing a Part using PartMeister (1996-Nov-11)
- OpenDoc 201: Architecture (1996-Aug-02)
- OpenDoc 102: Embedded Documents (1996-Jun-7)
- OpenDoc 101: A Technology Frontier (1996-Jan-6)
- Writing OpenDoc Part Handlers: Hello World by Robert L. Tycast (January 1995)
- Hello World: Part II, OpenDoc Views and Presentation Types by Robert Tycast (April 1995)
- Understanding How OpenDoc "Ticks" Using Trace and Debug Tools by Robert Tycast (August 1995)
- SGML and OpenDoc - Bento by Matt Timmermans (September 1995)
- OpenDoc for AIX by Leigh Williamson (April 1996)
- OpenDoc and Java Beans By Gregg Williams (1997)
- Bento and OpenDoc by David McCusker (Coments about IronDoc) (9/10/2000; 6:53:11 PM)
- Open Doc, Cyberdog, and CI Labs FAQ by Apple (April 11, 1997)
Related patents
- Dave Curbow: Computer-human interface system which manipulates parts between a desktop and a document.
- Dave Curbow et al: Computer-human interface system for compound documents
- Dave Curbow et al: System for automatically embedding or incorporating contents added to a document
Documentation
- Bento Specification(PDF) - Revision 1.0d5 - July 15, 1993 by Jed Harris and Ira Ruben. Apple Computer, Inc.
- Apple OpenDoc_Class_Ref.sit.hqx - 2.24Mb - July 13 1998
- Apple OpenDoc_Cookbook.sit.hqx - 3.45Mb - July 13 1998
- Apple OpenDoc_Programmers_Guide.sit.hqx - 9.44Mb - July 13 1998
- IBM OS/2 WARP and OpenDoc - SG244883-00 - 1996-12-10
- IBM Part Development for OpenDoc - SG24-4673-01 - 1997-03-12
- OpenDoc Development Framework ODF - Apple Computers, Inc. (1997)
- Apple Computer. OpenDoc Programmer’s Guide For the Mac OS - Apple Computers, Inc. (December 1995)
- Bento Specification Revision 1.0d5 July 15, 1993 by Jed Harris and Ira Ruben - Apple Computer, Inc.
Software based on OpenDoc
- Apple CyberDog - http://www.cyberdog.org/
- ClarisWorks 5.0 - Never released.
- AppleShare IP Manager from versions 5.0 to 6.2
- WAV - word processor
- Nisus Write
- BBEdit Lite - Freeware text editor
- RagTime - integrated office package with spreadsheet, publishing and image editing
- Dock'Em by MetaMind Software
- WebPainter for OpenDoc
- Mesa 2 - Spreadsheet
- More at: http://web.archive.org/web/19961113030921/http://opendoc.apple.com/dev/action.html
Links
- Greg Maletic - 1995 Apple Product Marketing Manager for OpenDoc.
https://gregmaletic.wordpress.com/2006/11/12/opendoc/
- David McCusker - IronDoc project
http://web.archive.org/web/20001201192200/http://www.best.com/~mccusker/index.htm
- Apple OpenDoc Site
http://web.archive.org/web/19980422030132/http://opendoc.apple.com/
Related projects
- DocShell - http://sourceforge.net/p/docshell/wiki/Home/
- IronDoc (Bento Replacement) - http://web.archive.org/web/20001202063700/http://www.best.com/~mccusker/mc/wr/irondoc.htm