home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / odocol.txt < prev    next >
Text File  |  1994-03-14  |  18KB  |  470 lines

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