home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 12 / CD_ASCQ_12_0294.iso / vrac / opendoc.zip / OPENDOC.TXT < prev   
Text File  |  1994-02-09  |  18KB  |  410 lines

  1. IBM Personal Software Products
  2.  
  3.                       OpenDoc vs. OLE 2.0
  4.                       Superior by Design
  5.                       A Developer's View
  6.  
  7.                         January, 1994
  8.  
  9. Compound Document Architectures - OpenDoc and OLE 2.0
  10.  
  11. Compound document architectures are an important new type of
  12. software platform.  IBM is providing the analysis in this white
  13. paper to help put the major compound document architectures:
  14. OpenDoc(tm) and Object Linking and Embedding 2.0 (OLE 2.0), into
  15. perspective.
  16.  
  17. Background
  18.  
  19. OpenDoc is one of four technologies to be licensed by the
  20. Component Integration Laboratories (CILabs) as announced on
  21. September 17, 1993.  CILab's initial supporters include Apple,(R)
  22. IBM,(R) Novell,(R) Oracle,(R) SunSoft,(R) Taligent,(R)
  23. WordPerfect,(R) and  Xerox,(R) with many, many others expected to
  24. join, ensuring the success and acceptance of the CILab
  25. technologies in the marketplace.  Together, the four initial
  26. technologies and others adopted by CILabs in the future will
  27. provide a dramatically higher level of interoperability for
  28. applications on all major desktop systems.
  29.  
  30. CILabs initially plans to license these four key technologies to
  31. the industry:
  32.  
  33.   OpenDoc software architecture for Windows(tm), OS/2,(R)
  34.   Macintosh(R) and UNIX(tm) to enable embedding of features from
  35.   different applications into a single working document.
  36.  
  37.   Bento(R) for the storage and interchange of multimedia
  38.   information.
  39.  
  40.   Open Scripting Architecture (OSA) for the coexistence
  41.   of multiple scripting systems.
  42.  
  43.   IBM's System Object Model(tm) (SOM) architecture, a highly
  44.   efficient platform and language-independent run-time
  45.   mechanism for dynamic object linking.
  46.  
  47. CILabs plans to make source code available to the industry for
  48. these technologies, and its sponsors plan to support the
  49. technologies across multiple platforms.  Initial target platforms
  50. include Microsoft Windows, Macintosh, and OS/2, with plans to
  51. support UNIX systems.
  52.  
  53. For more information on CILabs, OpenDoc, SOM, the Open Scripting
  54. Architecture, and Bento, please contact CILabs at:
  55.  
  56.  Component Integration Laboratories
  57.  688 Fourth Avenue
  58.  San Francisco, CA 94118
  59.  (415) 750-8352
  60.  (408) 974-9710 FAX
  61.  Internet: info@cil.org
  62.  
  63.  
  64. OpenDoc vs. OLE
  65.  
  66. OpenDoc -- along with Bento, Open Scripting Architecture (OSA),
  67. and SOM -- provides a superior and complementary compound
  68. document architecture to OLE 2.0.  This document outlines
  69. OpenDoc's strengths over OLE 2.0 in the following areas:
  70.  
  71.  - Object Programming Model
  72.  - Development Effort Required
  73.  - Scalability and Extensibility
  74.  - Scripting and Automation
  75.  - Networking Capability
  76.  - Activation Model
  77.  - Content Shape Support
  78.  - Storage Subsystem
  79.  - Object Linking
  80.  - Openness/Standards Support
  81.  - and Certification Process
  82.  
  83. OpenDoc also is designed to interoperate with all other major
  84. document architectures and object frameworks, including OLE 2.0,
  85. the Taligent document framework, and other emerging environments
  86. such as ScriptX and Fresco.  This design lets applications in
  87. other environments interoperate through OpenDoc.  Also, OpenDoc
  88. interoperability can help to reduce some of the functional
  89. limitations of applications developed for less sophisticated
  90. environments such as OLE 2.0.
  91.  
  92. Object Programming Model:  OpenDoc uses the Systems Object Model
  93. (SOM) initially released in OS/2 2.0 in April 1992.  SOM is a
  94. proven, multi-platform, and language-neutral object model.
  95. It is compliant with the Common Object Request Broker
  96. Architecture (CORBA) 1.1 specification endorsed by the Object
  97. Management Group (OMG).
  98.  
  99. OLE 2.0 is based on Microsoft's Common Object Model (COM) which
  100. is new, proprietary to Microsoft (no source code available) and
  101. is not CORBA-compliant.  Microsoft announced it will support
  102. DEC's ObjectBroker which will use CORBA for distribution, but
  103. the object programming model is still COM which is proprietary
  104. to Microsoft and not CORBA-compliant.
  105.  
  106. One of the greatest benefits of the SOM technology is the single
  107. programming model.  SOM scales very gracefully from local to
  108. distributed objects, utilizing the Distributed SOM (DSOM)
  109. framework included in the SOMObjects(tm) Developers Toolkit.  With
  110. the SOM/DSOM model the syntax is the same across the entire
  111. spectrum of small and large and local and distributed objects.
  112.  
  113. Microsoft claims that COM provides a single programming model for
  114. distributed and local objects and that distributed COM behaves
  115. the same as local COM, however, they have not demonstrated this
  116. capability.  On closer examination, COM actually proposes two
  117. programming models; class libraries, for small functions, and
  118. the COM/Aggregation model for larger functions.  The two models
  119. are very different and require flexibility limiting design
  120. decisions.(1)
  121.  
  122.  
  123. Development Effort Required:  OpenDoc has been designed to be
  124. easy to adopt. For instance, to write a typical application (or
  125. "part handler" in OpenDoc terminology) that supports:
  126.  
  127.  - Native Object Model Support
  128.  - Persistence
  129.  - Linking/Embedding
  130.  - Container for Parts
  131.  - Drag/Drop
  132.  - and Edit-in-Place
  133.  
  134. would require a developer to provide one interface, OpenDoc
  135. XMPPart,  and write 50 functions.
  136.  
  137. OLE 2.0, on the other hand, has complex interfaces that require a
  138. programmer to understand low-level details about the OLE
  139. implementation. For example, to write an application with similar
  140. function in OLE, a developer would have to support the following
  141. interfaces and implement the following number of functions within
  142. each interface using OLE 2.0.(2)
  143.  
  144.   OLE Interfaces                   Functions
  145.   ___________________              _________
  146.   IOleObject                              24
  147.   IPersistStorage                         10
  148.   IDataObject                             12
  149.   IClassFactory                            5
  150.   IAdviseSink                              8
  151.   IOleClientSite                           9
  152.   IDropTarget                              7
  153.   IDropSource                              5
  154.   IPersistFile                             9
  155.   IOLEItemContainer                        8
  156.   IOLEInPlaceSite                         13
  157.   IOLEInPlaceFrame                         9
  158.   IOLEInPlaceUIWindow                      7
  159.   ___________________        _______________
  160.   Interfaces = 13            Functions = 126
  161.  
  162.  
  163. Scalability, Extensibility:  Scalability and extensibility are
  164. closely related because  scaling from a simple compound document
  165. handler to a complex compound document application is easy with
  166. OpenDoc.  You can just borrow the function of any set of standard
  167. interfaces, or object classes, simply by inheriting all the
  168. function of that class and modifying it to your particular needs.
  169. By definition you automatically get, or  inherit, all of the
  170. existing interfaces and functions, and then can extend those
  171. functions to meet the application's unique requirements.
  172.  
  173. OLE 2.0 does not support the concept of inheritance.  In order
  174. to borrow the functions of a set of interfaces you must claim
  175. you want to aggregate from that interface set, or class, and
  176. then specifically define each and every interface you wish to
  177. include (you don't automatically inherit each interface, you
  178. must explicitly copy each of them).  Then you customize and
  179. extend the aggregated model to your  particular application's
  180. needs.  This model, which Microsoft refers to as aggregation,
  181. is referred to by some application developers as aggravation.
  182.  
  183.  
  184. Scripting and Automation:  OpenDoc has an Open Scripting
  185. Architecture (OSA) which means that vendors can port their own
  186. scripting languages to OpenDoc and that users have a choice of
  187. multiple scripting languages, which can coexist.
  188.  
  189. OpenDoc has event suites and a registry for them.  Event suites
  190. define standard operations for different types of  applications.
  191. For example, there is a set of standard operations for
  192. spreadsheets such as "give me this block of cells" or "perform a
  193. recalc" that will work in a given document regardless of what
  194. OpenDoc-enabled application is performing the spreadsheet
  195. function.  Through the commonality of suites as a translator
  196. between applications, any two OpenDoc applications that are
  197. enabled for a suite can communicate.  The registry allows the
  198. application to register what application suites it is enabled to
  199. perform.
  200.  
  201. OLE has no standard suites of events.  Using the example above,
  202. if an application that needed data from a particular spreadsheet
  203. would need to know how that particular spreadsheet understood
  204. "give me this block of cells".   For a different spreadsheet
  205. the application would communicate "give me this block of cells"
  206. in a different way.  The application must specifically support
  207. communications with other applications on an application by
  208. application basis.  In addition to creating application to
  209. application communication compatibility issues, the lack of
  210. application suites may pose issues when distributing documents to
  211. other users who may be using different applications or even
  212. different versions of the same application.
  213.  
  214. OpenDoc also has recordable macros whereas OLE has no recording
  215. Application Programming Interface (API).  Recordable macros allow
  216. an application to record a user's actions and then save them to a
  217. script for later use.  OpenDoc even allows the recording of
  218. macros across multiple applications and allows the recording to
  219. be stored in the user's preferred scripting language, which is an
  220. extremely powerful feature.
  221.  
  222. Networking Capability:  OpenDoc is designed to provide a fully
  223. cross-platform networked compound document capability. CILabs
  224. supporters intend to network OpenDoc across OS/2, Windows,
  225. Macintosh, and UNIX, all through the use of SOM/CORBA
  226. technologies.  CILab plans to provide system vendors and
  227. developers with source code for OpenDoc, Bento, OSA, and SOM to
  228. port to their platform, and system vendors and developers can
  229. implement a variety of CORBA-compliant request brokers to
  230. communicate across  the network, including IBM's Distributed
  231. CORBA technology.  IBM's implementation of distributed CORBA for
  232. OS/2,  AIX,(R) and soon for Windows is Distributed SOM, or DSOM
  233. which is CORBA 1.1-compliant.
  234.  
  235. COM and OLE source code is not available to the industry without
  236. a license from Microsoft giving Microsoft the ability to chose
  237. which platforms can implement COM and/or OLE.   In the
  238. Microsoft/DEC announcement in December 1993,  Microsoft
  239. announced intentions to support only COM, not OLE, on several
  240. UNIX platforms, forcing those platforms to a server only status,
  241. because OLE is also required to support OLE compound documents on
  242. the client desktop.  CILabs, on the other hand, has announced
  243. their intentions to openly license all four of their key
  244. technologies  (OpenDoc, OSA, Bento, SOM) to anyone interested.
  245.  
  246. Activation Model:  In OpenDoc you can directly edit an object,
  247. whereas in OLE you must activate the object before you can edit
  248. it.  In OpenDoc, even if you have nested objects (an object
  249. embedded within  an object within another object, for example)
  250. you can still  directly edit the embedded object.  However,
  251. in OLE, you must double click on the highest level object, then
  252. double click on the object within that object, and then double
  253. click on the object you want to edit.
  254.  
  255. In general, with OLE 2.0, you can activate only one object at a
  256. time meaning you must close any active/editable object in order
  257. to edit another object in that document.  OpenDoc allows multiple
  258. active objects and edits.
  259.  
  260. Content Shape Support:  OpenDoc supports irregularly shaped
  261. objects (i.e., wrapping text around a circle or triangle) while
  262. OLE 2.0 supports only rectangular content (i.e., text would
  263. wrap around the smallest rectangle that could surround the circle
  264. or triangle content). In addition,  OpenDoc supports overlapped
  265. object content, but OLE 2.0 does not.
  266.  
  267. Storage Subsystem:  OpenDoc is based on the Bento storage
  268. subsystem, which is published, commercially proven, and has been
  269. offered as a standard  multimedia container to the Interactive
  270. Multimedia Association. Platform-independent source code for
  271. Bento is currently available from Apple Computer, and CILab plans
  272. to distribute and support the Bento source in the near future.
  273.  
  274. OLE is proprietary (owned by Microsoft) and is based on DocFiles,
  275. which store the multiple objects within a single file in a DOS
  276. FAT file system tree-like structure that is simplistic when
  277. dealing with complex or distributed objects.  Microsoft has
  278. announced its intention to support a distributed object file
  279. system in a follow-on release to Windows NT,(tm) code named
  280. CAIRO, scheduled to ship in 1995.(3)
  281.  
  282. Object Linking:  OpenDoc implements a robust object linking
  283. mechanism with persistent IDs assigned to objects in order to
  284. achieve more reliable linking for both local and remote objects.
  285.  
  286.  
  287. OLE 2.0 has proven to have fragile links that can break when
  288. moving objects, even within the same document.  For instance,
  289. OLE references an object via a moniker, which, typically, is a
  290. filename (pathname) concatenated with a series of item name
  291. parts.(4)  If  the file is deleted, renamed or moved, then the
  292. link breaks.
  293.  
  294. Openness/Standards Support:  Source code will be available to
  295. members via CILab for OpenDoc, OSA, Bento, and SOM.  These
  296. technologies are designed to be portable and will be supported on
  297. multiple platforms.  CILab is planning to license these
  298. technologies on a completely non-discriminatory basis.  In
  299. addition, the underlying object model is based on SOM, which is
  300. CORBA-compliant.
  301.  
  302. Source code is not available for OLE, and Microsoft has the
  303. final say on all interface and implementation decisions making
  304. it proprietary.  Microsoft has tried to appear softer on their
  305. proprietary stance by putting COM on top of DEC's ObjectBroker
  306. which uses CORBA to communicate.  However, putting a proprietary
  307. interface (COM) on both ends of an open standard (CORBA) makes
  308. it a proprietary programming interface.
  309.  
  310. Certification Process:  CILabs has announced they will have a
  311. formal certification process so that customers purchasing products
  312. from multiple vendors who support OpenDoc can have a high degree
  313. of confidence those applications or part handlers will work
  314. together.  Customers or individual users using multiple OLE
  315. applications together will have to rely on each vendor's independent
  316. testing so customers will have to do their own integration testing.
  317.  
  318. In summary, it is clear that OpenDoc is superior and complementary
  319. in many ways to OLE as a compound document architecture.  OpenDoc
  320. has significant advantages for users, developers, system integrators
  321. and MIS personnel, alike.
  322.  
  323. With the initial backing of Apple, IBM, Novell, Oracle, SunSoft,
  324. Taligent, WordPerfect, and Xerox, and with many, many others
  325. expected to follow, CILab technologies have gained the acceptance
  326. and critical mass of the ISV community.  The ISVs will produce
  327. compelling applications based on CILab technologies to  ensure
  328. acceptance by the industry as a whole.
  329.  
  330. In addition, OpenDoc will complement OLE through an interoperability
  331. solution that is currently being developed by the WordPerfect
  332. Corporation.  And, as stated earlier, OpenDoc will interoperate
  333. with the robust, fully object-oriented Taligent frameworks that
  334. are being ported to OS/2, AIX, Workplace OS, and other key industry
  335. platforms.
  336.  
  337. ___________________________________________________________________
  338.  
  339. Notes:
  340. 1 Source: IBM analysis of Microsoft Object Linking and Embedding
  341.   (OLE) Today and Tomorrow - November 1993
  342. 2 Source: Internal preliminary analysis and design using Microsoft
  343.   Object Linking and Embedding - Programmer's Reference Guide
  344.   (pre-release)
  345. 3 PCWeek,  December 6, 1993, page 1
  346. 4 Microsoft Object Linking and Embedding - Programmer's Reference
  347.   Guide, Creating Applications (pre-release), page 101,
  348.   "Typically, an object's moniker will be a filename (pathname)
  349.   concatenated with a series of item name parts."
  350. ___________________________________________________________________
  351.  
  352. Disclaimer:
  353.  
  354. Some of the information in this paper concerns future products,
  355. or future releases of current, commercially available products.
  356. Discussion of Windows and OLE are based on information in the
  357. public trade press, and is subject to change.  IBM's and other
  358. vendors' future products and their performance, functions and
  359. availability are based upon IBM's or those vendors' current
  360. intent, and are subject to change.
  361.  
  362. Special Notices regarding IBM or other vendors' mentioned in
  363. this document:
  364.  
  365. References in this document to IBM's or other vendors' current
  366. and future products, programs, or services do not imply that
  367. IBM or those vendors' intends to make these generally available
  368. in all countries in which they operate.
  369.  
  370. IBM or other vendors may have patents or pending patent
  371. applications covering subject matter in this document. This
  372. document does not grant anyone a license to those patents, patent
  373. applications, or to any other IBM or other vendors' intellectual
  374. property.
  375.  
  376.  
  377. Trademarks:
  378.  
  379. Apple, Bento and Macintosh are registered trademarks and OpenDoc
  380. is a trademark of Apple Corporation
  381.  
  382. IBM and OS/2 are registered trademarks and SOMObjects and SOM
  383. are trademarks of IBM Corporation
  384.  
  385. Novell is a registered trademark of Novell, Inc.
  386.  
  387. UNIX is a trademark of X/Open Company Ltd.
  388.  
  389. Object Management Group and OMG are registered trademarks of
  390. Object Management Group, Inc.
  391.  
  392. Oracle is a registered trademark of Oracle Corporation
  393.  
  394. Taligent is a registered trademark of Taligent, Inc.
  395.  
  396. WordPerfect is a registered trademark of WordPerfect Corporation
  397.  
  398. Xerox is a registered trademark of Xerox Corporation
  399.  
  400. Microsoft is a registered trademark and Windows and Windows
  401. NT are trademarks of Microsoft Corporation
  402.  
  403.  
  404. ________________________________________________________________
  405.  
  406. IBM Personal Software Products, 11400 Burnett Road, Austin TX
  407. 78758  USA
  408. ________________________________________________________________
  409.  
  410.