Difference between revisions of "OpenDoc"

From EDM2
Jump to: navigation, search
m (Articles)
m
Line 1: Line 1:
 
[[Image:OpenDoc_logo.png|right]]
 
[[Image:OpenDoc_logo.png|right]]
OpenDoc was a collaborative effort between [[Apple Computer]], [[IBM]], [[Wordperfect Corporation]] (later [[Novell]]), [[Sun Microsystems]], [[XSoft]] and [[Taligent]] to create a vendor independent, open standard for compound documents.  
+
OpenDoc was a collaborative effort between [[Apple Computer]], [[IBM]], WordPerfect Corp. (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 '''Component Integration Laboratories''' (CI Labs) that was owned by Apple, IBM and Justsystem and for a time CIL marketed an OpenDoc/[[CORBA]] solution for [[Java]] under the '''Live Objects''' brand, but lack of sales meant that CI Labs was dissolved in 1998 and there was talk about open sourcing the code for OpenDoc and other CI Labs products but for legal reasons that never happened.
 
Its development was later taken over by a company called '''Component Integration Laboratories''' (CI Labs) that was owned by Apple, IBM and Justsystem and for a time CIL marketed an OpenDoc/[[CORBA]] solution for [[Java]] under the '''Live Objects''' brand, but lack of sales meant that CI Labs was dissolved in 1998 and there was talk about open sourcing the code for OpenDoc and other CI Labs products but for legal reasons that never happened.
Line 9: Line 9:
 
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.
 
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 for what it does. After the discontinuation of OS/2, IBM promised to open source the whole thing but that never happened, according to rumors [[Apple Corp.]] prevented them from doing so.
+
OpenDoc received quite a bit of criticism for being overly complex for what it does. After the discontinuation of OS/2, IBM promised to open source the whole thing but that never happened, according to rumors [[Apple]] prevented them from doing so.
  
 
;Collaborative editing
 
;Collaborative editing
Line 18: Line 18:
  
 
;Background & history
 
;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.
+
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.
+
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.
  
 
==Developer Frameworks==
 
==Developer Frameworks==
Line 37: Line 37:
 
===Articles===
 
===Articles===
 
;Introductory articles and presentations
 
;Introductory articles and presentations
* [[Kurt Piersol]]: [https://web.archive.org/web/20050116222235/http://www.byte.com/art/9403/sec9/art1.htm A Close up of OpenDoc] - from [[Byte Magazine]] March 1994
+
* [[Kurt Piersol]]: [https://web.archive.org/web/20050116222235/http://www.byte.com/art/9403/sec9/art1.htm A Close up of OpenDoc] - from [[Byte Magazine]] (Mar 1994)
* Atze Dijkstra: [https://web.archive.org/web/20060925172443/http://www.cs.ucy.ac.cy/courses/EPL603/35-OpenDoc.pdf OpenDoc Presentation] - (1998-03-31)
+
* Atze Dijkstra: [https://web.archive.org/web/20060925172443/http://www.cs.ucy.ac.cy/courses/EPL603/35-OpenDoc.pdf OpenDoc Presentation] - (Mar 1998)
* R. Tycast: ''[[OpenDoc Technology: Basic Concepts]]'' - (March 1994)  
+
* R. Tycast: ''[[OpenDoc Technology: Basic Concepts]]'' - (Mar 1994)  
  
;UI Design & [[HCI]]
+
;UI Design & HCI
* [[Elizabeth Ann Dykstra-Erickson]] and [[Dave Curbow]]: ''[http://rdcurbow.net/David/Articles/ODUserStudies.pdf Role of User Studies in Design of OpenDoc®]''
+
* [[Elizabeth Ann Dykstra-Erickson]]; [[Dave Curbow]]: ''[http://rdcurbow.net/David/Articles/ODUserStudies.pdf Role of User Studies in Design of OpenDoc®]''
* [[Ralph M. Pipitone]]: ''[https://web.archive.org/web/19980120020159/http://pscc.dfw.ibm.com/psmag/SEPT95/pipitone.htm OpenDoc and Human-Computer Interaction]''  - Published in [[Personal Systems Magazine]], September & October 1995 - Via [[Archive.org]]
+
* [[Ralph M. Pipitone]]: ''[https://web.archive.org/web/19980120020159/http://pscc.dfw.ibm.com/psmag/SEPT95/pipitone.htm OpenDoc and Human-Computer Interaction]''  - [[Personal Systems Magazine]], Sep/Oct 1995
  
 
;In practice (Using and developing with OpenDoc)
 
;In practice (Using and developing with OpenDoc)
* Scott Tooker and Rodney Cole: [https://web.archive.org/web/20100611074615/http://maxwell.ucdavis.edu/~cole/papers/scott_fie.pdf Using OpenDoc to create low-cost physics simulation tools for secondary and higher education] - (6-9 Nov 1996) - Via [[Archive.org]]
+
* Scott Tooker and Rodney Cole: [https://web.archive.org/web/20100611074615/http://maxwell.ucdavis.edu/~cole/papers/scott_fie.pdf Using OpenDoc to create low-cost physics simulation tools for secondary and higher education] - (Nov 1996)
  
 
;Collaborative aspects
 
;Collaborative aspects
* [[Elizabeth Dykstra-Erickson]], [[Dave Curbow]], [[Geoff Schuller]] and [[Kurt Piersol]]:[http://www.rdcurbow.net/David/Articles/ODCollaboration.pdf Collaborative Aspects of OpenDoc]
+
* Elizabeth Dykstra-Erickson, Dave Curbow, Geoff Schuller and [[Kurt Piersol]]:[http://www.rdcurbow.net/David/Articles/ODCollaboration.pdf Collaborative Aspects of OpenDoc]
  
 
;Retrospectives
 
;Retrospectives
* [[Dave Curbow]]: [http://www.rdcurbow.net/David/Articles/ODLessons.pdf Lessons learned from OpenDoc] - In [[PDF]] format
+
*Dave Curbow: [http://www.rdcurbow.net/David/Articles/ODLessons.pdf Lessons learned from OpenDoc]
* [[Elizabeth Dykstra-Erickson]] and [[Dave Curbow]]: [http://www.rdcurbow.net/David/Articles/DesigningODHI.pdf Designing the OpenDoc® Human Interface]
+
*Elizabeth Dykstra-Erickson; Dave Curbow: [http://www.rdcurbow.net/David/Articles/DesigningODHI.pdf Designing the OpenDoc® Human Interface]
  
 
;Bento
 
;Bento
* [[Kirk Searls]]: ''[[Bento Technology]]'' - March 1994
+
* [[Kirk Searls]]: ''[[Bento Technology]]'' (Mar 1994)
* [http://ei.cs.vt.edu/~mm/txts/Bento-brief.txt Bento Brief] -  CILabs (September 1995)
+
* [http://ei.cs.vt.edu/~mm/txts/Bento-brief.txt Bento Brief] -  CILabs (Sep 1995)
 
* [http://ei.cs.vt.edu/~mm/txts/Bento-design.txt Bento Design Overview] - CILabs (1995)
 
* [http://ei.cs.vt.edu/~mm/txts/Bento-design.txt Bento Design Overview] - CILabs (1995)
* [[Matt Timmermans]]: [[SGML and OpenDoc - Bento]] (September 1995)
+
* [[Matt Timmermans]]: [[SGML and OpenDoc - Bento]] (Sep 1995)
  
 
;Open Scripting Architecture (OSA)
 
;Open Scripting Architecture (OSA)
Line 66: Line 66:
 
;More Articles
 
;More Articles
 
* ''OpenDoc Glossary'' (Jun 1994)
 
* ''OpenDoc Glossary'' (Jun 1994)
* ''OpenDoc vs. OLE 2.0. Superior by Design. A Developer's View'' (January, 1994)
+
* ''OpenDoc vs. OLE 2.0. Superior by Design. A Developer's View'' (Jan 1994)
* IBM: ''[[Side by Side Comparison - OpenDoc vs. OLE2]]'' (November 1993)  
+
* IBM: ''[[Side by Side Comparison - OpenDoc vs. OLE2]]'' (Nov 1993)  
* Tycast: ''[[OpenDoc: An Idea Whose Time has Come!]]'' (November 1993)  
+
* Tycast: ''[[OpenDoc: An Idea Whose Time has Come!]]'' (Nov 1993)
* [http://www.mactech.com/articles/develop/issue_27/celik.html Working With OpenDoc Part Kinds] by Tantek Çelik and Dave Curbow
+
*Tantek Çelik; Dave Curbow: [http://www.mactech.com/articles/develop/issue_27/celik.html Working With OpenDoc Part Kinds]
* [http://www.mactech.com/articles/mactech/Vol.12/12.02/ObjectFlowSystem/index.html Using OpenDoc With Object Flow System (OFS) Get up and running with OpenDoc] by [[Gerry Kenner]] and [[David Kenner]].
+
* [http://www.mactech.com/articles/mactech/Vol.12/12.02/ObjectFlowSystem/index.html Using OpenDoc With Object Flow System (OFS) Get up and running with OpenDoc] by Gerry Kenner; [[David Kenner]]
* [http://www.mactech.com/articles/develop/issue_28/opendoc.html The OpenDoc Road: OpenDoc Memory Management and the Toolbox] by [[Troy Gaul]] and [[Vincent Lo]] (December 1996)
+
* [http://www.mactech.com/articles/develop/issue_28/opendoc.html The OpenDoc Road: OpenDoc Memory Management and the Toolbox] by [[Troy Gaul]], Vincent Lo (Dec 1996)
* [http://www.mactech.com/articles/develop/issue_24/lo.html Getting Started With OpenDoc Storage] by [[Vincent Lo]].
+
* [http://www.mactech.com/articles/develop/issue_24/lo.html Getting Started With OpenDoc Storage] by Vincent Lo
* [http://www.mactech.com/articles/develop/issue_19/006-016_Piersol.html BUILDING AN OPENDOC PART HANDLER] by [[Kurt Piersol]].
+
* [http://www.mactech.com/articles/develop/issue_19/006-016_Piersol.html Building an OpenDoc Part Handler] by [[Kurt Piersol]]
* [http://www.mactech.com/articles/develop/issue_21/21piersol.html Getting Started With OpenDoc Graphics] by [[Kurt Piersol]].
+
* [http://www.mactech.com/articles/develop/issue_21/21piersol.html Getting Started With OpenDoc Graphics] by Kurt Piersol
* [http://www.mactech.com/articles/mactech/Vol.12/12.05/ODContainerInterface/index.html Rethinking the Interface. Getting the look and feel of a container application] By [[Tantek Çelik]] and [[David Curbow]].
+
* [http://www.mactech.com/articles/mactech/Vol.12/12.05/ODContainerInterface/index.html Rethinking the Interface. Getting the look and feel of a container application] by Tantek Çelik and David Curbow
* [http://www.mactech.com/articles/develop/issue_26/simenel.html OpenDoc Parts and SOM Dynamic Inheritance] by [[Éric Simenel]].
+
* [http://www.mactech.com/articles/develop/issue_26/simenel.html OpenDoc Parts and SOM Dynamic Inheritance] by Éric Simenel
* [http://www.mactech.com/articles/mactech/Vol.11/11.11/OpenDocFramework/index.html The OpenDoc Development Framework. A modern framework for OpenDoc development] By [[Jim Lloyd]]
+
* [http://www.mactech.com/articles/mactech/Vol.11/11.11/OpenDocFramework/index.html The OpenDoc Development Framework. A modern framework for OpenDoc development] by Jim Lloyd
* [http://www.mactech.com/articles/mactech/Vol.13/13.04/ExtendOpenDocwithSOM/index.html Using SOM to Extend Your OpenDoc Parts] by [[Gerry Kenner]], [[David Kenner]], and [[Deborah Grits]].(1997)
+
* [http://www.mactech.com/articles/mactech/Vol.13/13.04/ExtendOpenDocwithSOM/index.html Using SOM to Extend Your OpenDoc Parts] by Gerry Kenner, [[David Kenner]], Deborah Grits (1997)
 
* [http://www.mactech.com/articles/mactech/Vol.13/13.06/LinksinOpenDocParts/index.html Supporting Links in Your OpenDoc Part] by [[Mike Halpin]] and [[Elizabeth Dykstra-Erickson]].(1997)
 
* [http://www.mactech.com/articles/mactech/Vol.13/13.06/LinksinOpenDocParts/index.html Supporting Links in Your OpenDoc Part] by [[Mike Halpin]] and [[Elizabeth Dykstra-Erickson]].(1997)
 
* OpenDoc Articles by [[Rollin White]]
 
* OpenDoc Articles by [[Rollin White]]
** [http://www.scoug.com/os24u/1996/scoug611.2.opendoc202.html OpenDoc 202: Writing a Part using PartMeister] (1996-Nov-11)
+
** [http://www.scoug.com/os24u/1996/scoug611.2.opendoc202.html OpenDoc 202: Writing a Part using PartMeister] (Nov 1996)
** [http://www.scoug.com/os24u/1996/scoug608.2.opdoc201.html OpenDoc 201: Architecture] (1996-Aug-02)
+
** [http://www.scoug.com/os24u/1996/scoug608.2.opdoc201.html OpenDoc 201: Architecture] (Aug 1996)
** [http://www.scoug.com/os24u/1996/scoug607.2.opdoc102.html OpenDoc 102: Embedded Documents] (1996-Jun-7)
+
** [http://www.scoug.com/os24u/1996/scoug607.2.opdoc102.html OpenDoc 102: Embedded Documents] (Jun 1996)
** [http://www.scoug.com/os24u/1996/scoug606.2.odoc101.html OpenDoc 101: A Technology Frontier] (1996-Jan-6)
+
** [http://www.scoug.com/os24u/1996/scoug606.2.odoc101.html OpenDoc 101: A Technology Frontier] (Jan 1996)
* Tycast: ''[[Writing OpenDoc Part Handlers: Hello World]]'' (January 1995)
+
* Tycast: ''[[Writing OpenDoc Part Handlers: Hello World]]'' (Jan 1995)
* Tycast: ''[[Hello World: Part II, OpenDoc Views and Presentation Types]]'' (April 1995)
+
* Tycast: ''[[Hello World: Part II, OpenDoc Views and Presentation Types]]'' (Apr 1995)
* Tycast: ''[[Understanding How OpenDoc "Ticks" Using Trace and Debug Tools]]'' (August 1995)
+
* Tycast: ''[[Understanding How OpenDoc "Ticks" Using Trace and Debug Tools]]'' (Aug 1995)
* Leigh Williamson: ''[[OpenDoc for AIX]]'' (April 1996)
+
* Leigh Williamson: ''[[OpenDoc for AIX]]'' (Apr 1996)
 
* Gregg Williams: ''[[OpenDoc and Java Beans]]'' (1997)
 
* Gregg Williams: ''[[OpenDoc and Java Beans]]'' (1997)
* [http://static.userland.com/userLandDiscussArchive/msg021157.html Bento and OpenDoc] by [[David McCusker]] (Coments about IronDoc) (9/10/2000; 6:53:11 PM)
+
* [http://static.userland.com/userLandDiscussArchive/msg021157.html Bento and OpenDoc] by David McCusker (Coments about IronDoc) (2000)
* [http://web.archive.org/web/19980422030238/http://opendoc.apple.com/dev/faq.4.97.html Open Doc, Cyberdog, and CI Labs FAQ] by Apple (April 11, 1997)
+
* [http://web.archive.org/web/19980422030238/http://opendoc.apple.com/dev/faq.4.97.html Open Doc, Cyberdog, and CI Labs FAQ] by Apple (Apr 1997)
  
 
;Related patents
 
;Related patents
 
* [[Dave Curbow]]: [http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=6&f=G&l=50&co1=AND&d=PTXT&s1=curbow.INNM.&OS=IN/curbow&RS=IN/curbow Computer-human interface system which manipulates parts between a desktop and a document].
 
* [[Dave Curbow]]: [http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=6&f=G&l=50&co1=AND&d=PTXT&s1=curbow.INNM.&OS=IN/curbow&RS=IN/curbow Computer-human interface system which manipulates parts between a desktop and a document].
* [[Dave Curbow]] et al: [http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=5,812,862.PN.&OS=PN/5,812,862&RS=PN/5,812,862 Computer-human interface system for compound documents]
+
* Dave Curbow et al: [http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=5,812,862.PN.&OS=PN/5,812,862&RS=PN/5,812,862 Computer-human interface system for compound documents]
* [[Dave Curbow]] et al: [http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=7&f=G&l=50&co1=AND&d=PTXT&s1=curbow.INNM.&OS=IN/curbow&RS=IN/curbow System for automatically embedding or incorporating contents added to a document]
+
* Dave Curbow et al: [http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=7&f=G&l=50&co1=AND&d=PTXT&s1=curbow.INNM.&OS=IN/curbow&RS=IN/curbow System for automatically embedding or incorporating contents added to a document]
  
 
;Marketing material
 
;Marketing material
* CI Lab: [https://web.archive.org/web/19961031184310/http://cilabs.org/odjava/FUTURE7.pdf Java and OpenDoc Integration Roadmap] - (1996) - Via [[Archive.org]]
+
* CI Lab: [https://web.archive.org/web/19961031184310/http://cilabs.org/odjava/FUTURE7.pdf Java and OpenDoc Integration Roadmap] (1996)
  
 
==Documentation==
 
==Documentation==
 
* IBM OS/2 Warp and OpenDoc - SG24-4883-00 - 1996-12-10
 
* IBM OS/2 Warp and OpenDoc - SG24-4883-00 - 1996-12-10
 
* IBM Part Development for OpenDoc - SG24-4673-01 - 1997-03-12
 
* IBM Part Development for OpenDoc - SG24-4673-01 - 1997-03-12
* [http://web.archive.org/web/19970701003423/http://www.devtools.apple.com/odf/index.html OpenDoc Development Framework ODF] - Apple Computers, Inc. (1997)
+
* [http://web.archive.org/web/19970701003423/http://www.devtools.apple.com/odf/index.html OpenDoc Development Framework ODF] - Apple Computer, Inc. (1997)
 
* [http://info.wgbh.org/upf/pdfs/BentoSpec1_0d5.pdf Bento Specification Revision 1.0d5 July 15, 1993] by Jed Harris and Ira Ruben - Apple Computer, Inc.
 
* [http://info.wgbh.org/upf/pdfs/BentoSpec1_0d5.pdf Bento Specification Revision 1.0d5 July 15, 1993] by Jed Harris and Ira Ruben - Apple Computer, Inc.
  
Line 113: Line 113:
  
 
==Links==
 
==Links==
* Greg Maletic - 1995 Apple Product Marketing Manager for OpenDoc.
+
* [https://gregmaletic.wordpress.com/2006/11/12/opendoc/ 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
+
  
 
;Related projects
 
;Related projects
* DocShell - http://sourceforge.net/p/docshell/wiki/Home/
+
* [http://sourceforge.net/p/docshell/wiki/Home/ DocShell]
* IronDoc (Bento Replacement) - http://web.archive.org/web/20001202063700/http://www.best.com/~mccusker/mc/wr/irondoc.htm
+
* [http://web.archive.org/web/20001202063700/http://www.best.com/~mccusker/mc/wr/irondoc.htm IronDoc] (Bento Replacement) - archived
  
[[Category:OpenDoc]][[Category:SOM]][[Category:File formats]]
+
[[Category:OpenDoc]][[Category:SOM]]

Revision as of 18:15, 23 January 2017

OpenDoc logo.png

OpenDoc was a collaborative effort between Apple Computer, IBM, WordPerfect Corp. (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 Component Integration Laboratories (CI Labs) that was owned by Apple, IBM and Justsystem and for a time CIL marketed an OpenDoc/CORBA solution for Java under the Live Objects brand, but lack of sales meant that CI Labs was dissolved in 1998 and there was talk about open sourcing the code for OpenDoc and other CI Labs products 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 rather than a single program.

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 for what it does. After the discontinuation of OS/2, IBM promised to open source the whole thing but that never happened, according to rumors Apple prevented them from doing so.

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.

Developer Frameworks

  • 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

  • IBM PartMeister

Publications

Books

Articles

Introductory articles and presentations
UI Design & HCI
In practice (Using and developing with OpenDoc)
Collaborative aspects
Retrospectives
Bento
Open Scripting Architecture (OSA)
More Articles
Related patents
Marketing material

Documentation

Software based on OpenDoc

  • Lotus Components
  • WebPainter for OpenDoc
  • Mesa 2 - Spreadsheet

Links

  • Greg Maletic - 1995 Apple Product Marketing Manager for OpenDoc.
Related projects