home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / docs / opendocs.asc < prev    next >
Encoding:
Text File  |  1993-11-04  |  25.6 KB  |  838 lines

  1.  
  2.  
  3.  
  4.  
  5. OpenDoc
  6.  
  7. Shaping Tomorrow's Software
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83. White Paper
  84.  
  85. Contents
  86.  
  87.  
  88.  
  89.  
  90.  
  91. The OpenDoc Architecture    3
  92.  
  93.  
  94.  
  95. Background    4
  96.  
  97.  
  98.  
  99. Benefits to the User    5
  100.  
  101.  
  102.  
  103. Benefits to the Developer    7
  104.  
  105.  
  106.  
  107. The Technology    8
  108.  
  109.  
  110.  
  111. The Competition    12
  112.  
  113.  
  114.  
  115. The Shape of the Future    14
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177. The OpenDoc Architecture
  178.  
  179. IBM, Apple, Oracle, WordPerfect, Xerox,  Novell, Borland,  and
  180. Taligent share a common goal of making the user's computing
  181. experience as easy and productive as possible, and that goal has
  182. become increasingly elusive. People are using personal computers
  183. for more and more complex 
  184.  
  185. tasks, often involving multiple programs and even a variety of
  186. media. In addition, they are increasingly working together on
  187. computer-based projects. This means that the earlier, individual
  188. desktop computer model is shifting to one of shared,
  189. collaborative computing resources_a shift that demands new
  190. capabilities. Finally, there is a growing demand for
  191. customization capabilities to meet the increasingly specialized
  192. needs of today's computer users. 
  193.  
  194. Apple's Opendoc Architecture  represents an approach toward
  195. reducing the complexity of computing today, while supporting the
  196. development of tomorrow's advanced, flexible applications. It is
  197. an open architecture, designed to integrate software and enable
  198. sharing across multiple computer platforms_providing users with
  199. a new level of computing power, flexibility, and ease of use.
  200.  
  201. This approach evolves desktop computing by providing an
  202. object-based framework for developing applications that are
  203. fully integrated and interoperable across platforms and
  204. distributed networks.
  205.  
  206.  
  207.  
  208. Background
  209.  
  210. Ten years ago, most of what people did with computers centered
  211. around text and numbers. The advent of graphical user interfaces
  212. brought a new emphasis on working with graphics on the computer,
  213. because the graphics-based user interface allowed easy
  214. manipulation, editing, and integration of words and images.
  215.  
  216. Today, however, many computer users engage in the creation of
  217. what can be called compound documents_documents with parts
  218. containing various media, such as text, tables, movies, sound
  219. and graphics in a variety of file formats. Currently, each
  220. medium requires users to work in different ways, and often in
  221. separate applications or editors, demanding a labor-intensive
  222. series of actions to move data from each creator application to
  223. the final document. This lengthy and cumbersome process tends to
  224. be error-prone and frustrating. 
  225.  
  226. Today's computing world encourages an ever-increasing complexity
  227. in successive releases of most applications, because developers
  228. are under constant competitive pressure to add more features to
  229. their products. The result is paradoxical: as applications
  230. become more powerful in terms of features, they also become more
  231. difficult to use_and hence less useful to people. In addition,
  232. they require more time and effort to develop, enhance, 
  233.  
  234. and maintain.
  235.  
  236. Apple's Opendoc Architecture is a compound document architecture
  237. that addresses these issues by reducing the complexity and
  238. increasing the flexibility of software for both end users and
  239. developers. It offers an evolutionary approach to restructuring
  240. software into independent modules, or "parts," which can be
  241. flexibly combined in a variety of ways. The result is an
  242. entirely different way of both using and writing personal
  243. computer software_one that 
  244.  
  245. offers a number of significant benefits.
  246.  
  247.  
  248.  
  249. Benefits to the User
  250.  
  251. For end users, Apple's Opendoc Architecture will simplify and
  252. streamline the computing experience, while ensuring a much
  253. higher level of flexibility and customizability. Specifically,
  254. Apple's Opendoc Architecture offers the following user benefits:
  255.  
  256. Easy creation of compound documents. Apple's Opendoc
  257. Architecture is designed to handle current and future types of
  258. media. Users can place any kind of media into an OpenDoc
  259. document using the familiar cut-and-paste or drag-and-drop
  260. manipulation.
  261.  
  262. Editing "in place." With Apple's Opendoc Architecture, users can
  263. edit any type of content within a single document, without
  264. having to cut and paste between different application windows.
  265.  
  266. Powerful document management. Rather than manually assembling
  267. the various pieces of a document, users can let an OpenDoc
  268. document hold all of them. This reduces the task of managing
  269. files, and facilitates document exchange and updating. As
  270. documents are edited, changes are tracked through drafts,
  271. ensuring greater data integrity and allowing users to work on
  272. shared documents without content loss from version to version.
  273.  
  274. Cross-platform support. Because Apple's Opendoc Architecture is
  275. designed to offer full interoperability between platforms,
  276. OpenDoc users will be able to share and interact with complex
  277. documents, regardless of differences in software or hardware, or
  278. which platform the document resides on.
  279.  
  280. Consistency of operation. Because users can specify preferred
  281. part editors, they need learn only one way to edit each type of
  282. data_for example, using the same text editor for word
  283. processing, entering spreadsheet data, or labeling diagrams.
  284.  
  285. Uniformity of interface. Apple's Opendoc Architecture defines a
  286. consistent user interface for embedding and manipulating all
  287. kinds of media in documents.
  288.  
  289. Scalability. Apple's Opendoc Architecture human interface
  290. addresses a wide range of users, from novices to experts. No
  291. class of user has to understand the additional functionality
  292. typically used at the next level_novices can create compound
  293. documents easily, while experts can experience nearly unlimited
  294. potential.
  295.  
  296. "Plug-and-play" solutions. With Apple's Opendoc Architecture,
  297. vendors will be able to assemble collections of parts into
  298. solution sets that target specific tasks or work styles, such as
  299. a legal publishing bundle, allowing users to choose the
  300. solutions most appropriate to their needs.
  301.  
  302. Access to object services. Apple's Opendoc Architecture will be
  303. based on the industry-standard CORBA (Common Object Request
  304. Broker Architecture) object technology. This will allow users to
  305. take advantage of a wide range of distributed services working
  306. consistently across many different CORBA-compliant desktop and
  307. server systems. 
  308.  
  309. To more clearly understand the benefits Apple's Opendoc
  310. Architecture provides to the user, let's examine a usage
  311. scenario that most computer users can relate to_the use of text
  312. editors:
  313.  
  314. Most applications today_whether word processors, spreadsheets,
  315. databases, or more specialized tools_include text editing
  316. capabilities. Some rely heavily on text editing, such as
  317. WordPerfect or AmiPro.  Some use text only incidentally, such as
  318. WordPerfect Office or Lotus 123G. Unfortunately for the user,
  319. all differ in their details. For example, some allow text
  320. styles, some don't. Some offer tab stops, some don't, and so on.
  321. In addition to such details, they also differ in functionality
  322. and mode of operation. The result? If you use six different
  323. programs, you need to learn six different ways to do the same
  324. task: edit text.
  325.  
  326. With Apple's Opendoc Architecture, a text paragraph becomes a
  327. software module, usable wherever text is needed. You could take
  328. your favorite text editor and use it whenever you needed to work
  329. with text. Applications built in this way would have an
  330. important characteristic: they would simultaneously be simpler
  331. and more powerful. They would be simpler because you would have
  332. to learn only one way to do something. And they would be more
  333. powerful because you always have the option of choosing 
  334.  
  335. a fully functional module, replacing less capable ones. 
  336.  
  337.  
  338.  
  339. Benefits to the Developer
  340.  
  341. Apple's Opendoc Architecture  also offers developers a number of
  342. important benefits:
  343.  
  344. Faster, more efficient development. Software developers can
  345. reuse already developed parts, eliminating the need to start
  346. from scratch with each development effort. This ability to reuse
  347. existing parts also means that developers need spend less time
  348. on parts that are peripheral to their main area of expertise. 
  349.  
  350. Reduction of application complexity. Because Apple's Opendoc
  351. Architecture parts are independent of one another, a collection
  352. of parts that is less complex than the large, monolithic
  353. applications of today can offer equivalent functionality.
  354.  
  355. Diminished costs of software development. The fact that parts
  356. are smaller than applications makes them both quicker and
  357. cheaper to write, which reduces the penalties for failure.
  358.  
  359. Industry-standard object mechanism. Because parts can use SOM, a
  360. CORBA-compliant object mechanism, they can be written in a wide
  361. range of programming languages and development will be supported
  362. by many tool vendors. This mechanism gives developers high
  363. performance coupled with great flexibility in the use of
  364. "plug-and-play" objects.
  365.  
  366.  
  367.  
  368. A developer usage scenario:
  369.  
  370.  
  371.  
  372. Today, a developer who wants to create even a highly specialized
  373. tool such as a three-dimensional modeling and rendering program
  374. has to spend time developing a text editor, so that users can
  375. enter specifications and label their diagrams. But, as a
  376. developer of such a program, you would much rather concentrate
  377. on your specific area of expertise.
  378.  
  379. In the OpenDoc world, you would have two choices for providing
  380. functions that fall outside the primary focus of your
  381. application: bundle existing parts with your product or rely on
  382. the user to provide parts to support those functions. Either
  383. way, you are free to concentrate on the competitive value of
  384. your product, rather than on peripheral issues. The result is a
  385. much more useful, powerful program_developed in a fraction of
  386. the time it would have taken using the conventional, monolithic
  387. approach.
  388.  
  389.  
  390.  
  391. The Technology
  392.  
  393. Apple's Opendoc Architecture  is designed to enable the
  394. construction of compound, collaborative, and customizable
  395. documents, which are interoperable across platforms and with
  396. other compound document architectures such as Microsoft's OLE
  397. 2.0. It will be an open architecture, with source code available
  398. to vendors who want to implement the architecture in their
  399. products. Apple's Opendoc Architecture  is also flexible,
  400. providing replaceable facilities so platform vendors can
  401. implement their desired feature set.
  402.  
  403.  
  404.  
  405. Major concepts of the architecture include the following:
  406.  
  407. Documents
  408.  
  409. Apple's Opendoc Architecture fundamentally changes the meaning
  410. of the term document. In today's computing environment, a
  411. document has a type, which is tied to the application that will
  412. let the user view, edit, and print its content. With Apple's
  413. Opendoc Architecture, a document is no longer a single block of
  414. content bound to a single application, but is instead composed
  415. of smaller blocks of content, or parts. 
  416.  
  417. Parts
  418.  
  419. Parts are the fundamental building blocks in Apple's Opendoc
  420. Architecture, replacing today's monolithic applications with
  421. smaller units of content dynamically bound with related
  422. functionality. OpenDoc parts may be viewed in a number of ways:
  423.  
  424. o Content containers. Every part contains data_for example, text
  425. parts contain characters, graphics parts contain lines and
  426. shapes, spreadsheet parts contain spreadsheet cells with
  427. formulas, and video parts contain digitized video. The
  428. particular type of data that each part contains is defined by
  429. the developer and is known as the part's intrinsic content.
  430.  
  431. In addition to its intrinsic content, a part may be able to
  432. contain other parts. Every document has a single part at its top
  433. level, the root part, into which all other parts are embedded.
  434. Again, the part developer determines whether to support the
  435. capacity to contain other parts; however, a key characteristic
  436. of Apple's Opendoc Architecture is that if a part can contain
  437. one type of part, it can contain all types of parts. This is in
  438. stark contrast to the small number of standard data types
  439. supported today, such as text, JPEG and TIFF.
  440.  
  441. o Part editors. Part editors are independent programs that
  442. manipulate and display a particular kind of content. OpenDoc
  443. part editors can serve as components for solution building as
  444. well as document building. Plug-and-play solutions assembled
  445. from several parts will replace today's monolithic applications. 
  446.  
  447. OpenDoc parts will allow developers to create new applications
  448. in a manner similar to that of constructing a document template
  449. in today's world. 
  450.  
  451. o Frames. Parts can also be viewed as the boundaries at which
  452. one kind of content in a document ends and another begins. A key
  453. element of the concept of parts is that each part of a document
  454. has its own content model_the model of objects and operations
  455. that is presented to the user. The content model changes at the
  456. frame between parts.
  457.  
  458.  
  459.  
  460. For example, the compound document shown above has as its root
  461. part a PM-style graphics editor that provides a letterhead
  462. template. On the left side, a graph part from one vendor
  463. overlaps with a table part from another vendor to illustrate
  464. financial information. 
  465.  
  466. A clock part has been embedded in the top right corner over a
  467. text part that contains a button part.
  468.  
  469. Notice that the two shapes in the upper left corner are not
  470. embedded parts at all, but were created by this specific
  471. PM-style graphics editor and are called content objects_data
  472. elements native to the part. An embedded part is fundamentally
  473. distinct from ordinary content elements such as simple shapes,
  474. characters, or cells. 
  475.  
  476. o  Frames. Frames within Apple's Opendoc Architecture are areas
  477. of the display that represents a part. Frames provide a handle
  478. onto parts, allowing them to be manipulated as a whole, as well
  479. as allowing the user to see and edit a part's contents.
  480.  
  481. Although this description of a frame makes it sound much like a
  482. standard application window, it is not. Where windows are
  483. transitory views, only visible when the part is being edited or
  484. its content viewed, a frame is persistent. When a frame is
  485. opened into a window, the frame remains visible. When the window
  486. is closed, the part returns to the representation from which it
  487. was opened. In addition, a frame can often show only a portion
  488. of the entire content of a part. Opening a large part into a
  489. window allows its the entire part to be viewed and edited. 
  490.  
  491.  
  492.  
  493. Part handlers. In Apple's Opendoc Architecture , part handlers
  494. are the rough equivalents of today's applications. When a part
  495. is being displayed or edited, a part handler is invoked to
  496. perform those tasks. A part handler is responsible for the
  497. following things:
  498.  
  499. oDisplaying the part both on the screen and for printing
  500. purposes. 
  501.  
  502. oEditing the part. The part handler must accept events and
  503. change the state of the part so that the user can edit and
  504. script the part.
  505.  
  506. oStorage management (both persistent and runtime) for the part.
  507. The part handler must be able to read the part from persistent
  508. storage into main memory, manage the runtime storage associated
  509. with the part, and write the part back out to persistent storage.
  510.  
  511. Part handlers are dynamically linked into the runtime world of
  512. the document, based on the part types that appear in the
  513. document. Because any sort of part might appear in any document
  514. at any time, the part handlers must be dynamically linked to
  515. provide a smooth user experience.
  516.  
  517. Part handlers can be divided into two types, editors and viewers:
  518.  
  519. oAn editor displays a part's content and provides a user
  520. interface for modifying that content. This user interface may
  521. include menus, controls, tool palettes, rulers, and other modes
  522. of interaction.
  523.  
  524. oA viewer offers a subset of an editor's functionality; it
  525. allows users to display and print a part's content, but not to
  526. edit it. Viewers can be useful in two document sharing
  527. situations: when the recipient of a document does not hold a
  528. license to some of the kind of parts included in the document,
  529. or when the person sending the document does not want the
  530. recipient to alter it. 
  531.  
  532. Both editors and viewers can interpret the contents of the part
  533. and display that content for the user. The idea is that,
  534. eventually, developers will create both kinds of handler for
  535. every part. The editor would be sold, but the viewer would be
  536. freely distributed, to enable and encourage document interchange.
  537.  
  538. Storage. Storage is a major feature of Apple's Opendoc
  539. Architecture. The existence of multipart documents necessitates
  540. a persistent storage mechanism that enables multiple part
  541. handlers to share a single document file effectively. 
  542.  
  543.  
  544.  
  545. Apple's Opendoc Architecture storage model, based on Apple's
  546. Bento_ standard, assumes that the storage system can effectively
  547. give each part its own data stream_an individual area inside
  548. document files specific to part content_and reliable references
  549. can be made from one stream to another, enabling parts to be
  550. integrated into a single document. Because Apple's Opendoc
  551. Architecture is designed to support cross-platform capabilities,
  552. it must also support the ability to write multiple
  553. representations of a given part. Because many pieces of code may
  554. need to access a given part, the storage system must support a
  555. robust annotation mechanism_one that allows information to be
  556. associated with a part without disturbing its format.
  557.  
  558.  
  559.  
  560. The storage system also yields another advantage: collaborative
  561. access. Apple's Opendoc Architecture provides an architecture
  562. that allows developers to create part handlers that let users
  563. collaborate on document creation.
  564.  
  565.  
  566.  
  567. Object mechanism. Calling between objects is fundamental to
  568. Apple's OpenDoc Architecture . Apple's OpenDoc Architecture will
  569. use IBM's System Object Manager (SOM) as its object calling
  570. mechanism. SOM provides an efficient, flexible binary standard
  571. for object interfaces that conforms to the CORBA industry
  572. standard for distributed object messaging. 
  573.  
  574.  
  575.  
  576. SOM lets developers create parts in a wide range of languages
  577. and lets these parts call each other with no additional effort.
  578. SOM also allows developers and users to take advantage of
  579. distributed services provided through CORBA-compliant
  580. application programming interfaces (APIs.) SOM and CORBA are
  581. widely accepted and are well supported by tool and system
  582. vendors on many platforms. 
  583.  
  584.  
  585.  
  586. The Competition
  587.  
  588. In fact, we are also far from alone in our efforts to define and
  589. implement Apple's OpenDoc Architecture . Apple's experience with
  590. human computer interaction, WordPerfect's experience in
  591. document-centric computing and compound documents, and Novell's
  592. expertise in distributed, collaborative systems are all playing
  593. a part in the definition and implementation of this technology.
  594. In addition,  IBM's DSOM technology will make it possible to use
  595. parts in a networked environment following the CORBA standard. 
  596. We expect support from many other companies for Apple's OpenDoc
  597. Architecture . You can expect to see more announcements in the
  598. future regarding companies that will be helping implement
  599. Apple's OpenDoc Architecture on additional platforms and from
  600. software vendors who will be supporting OpenDoc APIs in their
  601. applications.                                                   
  602.                          
  603.  
  604.           In contrast, the other major effort along these lines,
  605. Microsoft's OLE 2.0, is a proprietary approach. Currently, the
  606. OLE 2.0 source code is held by Microsoft, and provided only
  607. under Microsoft license. However, Apple's OpenDoc Architecture
  608. will be interoperable with OLE 2.0, so developers can take
  609. advantage of Apple's OpenDoc Architecture's broader feature set
  610. and additional supported platforms without sacrificing OLE
  611. support.
  612.  
  613. Part of the work the WordPerfect and Novell OpenDoc teams will
  614. be doing is an implementation of Apple's OpenDoc Architecture on
  615. Windows in such a way that it will interoperate with OLE 2.0.
  616. Applications that also support the additional capabilities
  617. represented in Apple's OpenDoc Architecture will have the
  618. ability to interoperate at a higher level of functionality on
  619. Windows, OS/2  or Macintosh, and to interoperate across multiple
  620. platforms and distributed systems as well. 
  621.  
  622. Apple, IBM, and Taligent plan to design complete
  623. interoperability between Apple's OpenDoc Architecture and
  624. Taligent, similar to the interoperability between OpenDoc and
  625. OLE 2.0. This is intended to enable developers and customers to
  626. migrate to Taligent without losing their investment in software
  627. or legacy information. 
  628.  
  629. In addition to being much more open, Apple's OpenDoc
  630. Architecture offers a number of specific advantages to users and
  631. developers: 
  632.  
  633.  
  634.  
  635. Human interface. The OpenDoc human interface reflects a
  636. user-centered approach to product design. User testing indicates
  637. that Apple's OpenDoc Architecture is a more comfortable,
  638. efficient model for users.
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646. Cleanliness and simplicity of API. Apple's OpenDoc Architecture
  647. is designed from a minimalist viewpoint; it defines as few as
  648. possible, flexible features, with available source code and
  649. clean application programming interface.
  650.  
  651. Network readiness. OpenDoc handles networking support easily and
  652. flexibly. Through IBM's System Object Model and the CORBA
  653. industry standard, it will provide access to distributed object
  654. services. This aspect of its architecture has been thoroughly
  655. reviewed 
  656.  
  657. by vendors concerned with distributed systems, such as Novell.
  658.  
  659. Range of platforms. Apple's OpenDoc Architecture will be
  660. initially released on OS/2, the  Macintosh and Windows
  661. platforms. It is designed to be highly portable and will become
  662. available on other desktop systems, such as UNIX. Apple's
  663. OpenDoc Architecture is also designed with the future in mind:
  664. OpenDoc parts and documents are designed to be interoperable
  665. with other compound document systems, such as Taligent. 
  666.  
  667. Consistent object model. Apple's OpenDoc Architecture's object
  668. model is compliant with the Common Object Request Broker (CORBA)
  669. specifications released by the Object Management Group (OMG).
  670. OMG is a standards body that has defined CORBA as a common,
  671. industry wide specification for access to object services.
  672. Because Apple's OpenDoc Architecture is CORBA-compliant, OpenDoc
  673. documents and parts will be able to use CORBA-compliant services
  674. and interoperate with other CORBA-compliant architectures. 
  675.  
  676.  
  677.  
  678. The Shape of the Future
  679.  
  680. The benefits of widespread adoption of Apple's OpenDoc
  681. Architecture  are revolutionary for both users and developers.
  682. Yet it will be a gentle revolution_one without dramatic
  683. upheavals. Because Apple's OpenDoc Architecture is designed to
  684. work with existing applications and documents, users will
  685. benefits from OpenDoc features without disruption. OpenDoc parts
  686. will behave much like current applications, enabling customers
  687. to upgrade without having to go through a new learning process.
  688. As customers become more familiar with the full scope of OpenDoc
  689. capabilities_in-place editing, plug-and-play customizing, and
  690. more_they will build new, convenient, efficient work
  691. environments while maintaining their current computer-software
  692. investment.
  693.  
  694. This is particularly true for users, who will at first
  695. experience little or no change, as developers begin to take
  696. advantage of the new architecture by binding together parts to 
  697.  
  698. form units that are virtually indistinguishable from the
  699. applications of today. It is only over time that the full
  700. benefits that OpenDoc brings_in-place editing within compound
  701. documents, the ability to customize applications by adding or
  702. substituting parts, and 
  703.  
  704. more_will become obvious.
  705.  
  706. For developers, the impact will be felt more rapidly. But here,
  707. too, the change will not be sudden or disruptive in nature.
  708. Developers will simply find that Apple's OpenDoc Architecture
  709. empowers them to work in new ways, enabling them both to
  710. concentrate on existing areas of expertise and to develop new
  711. ones. Apple's OpenDoc Architecture will also encourage the
  712. vertical market industry, with applications increasingly
  713. targeting specialized tasks. 
  714.  
  715. The primary concern for each of these companies remains the
  716. experience of the user_not technology for the sake of
  717. technology. OpenDoc represents that continuing commitment: to
  718. empower people through the provision of technology that is both
  719. powerful and easy to use, helping them to take full advantage of
  720. the growing capabilities of computing. 
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. Apple Computer, Inc.   20525 Mariani Avenue   Cupertino, CA 95014
  797.  
  798.  
  799.  
  800. c 1993 Apple Computer, Inc., Apple, the Apple logo, Macintosh
  801. and OpenDoc are trademarks of Apple Computer, Inc., registered
  802. in the United States and other countries. Bento is a trademark
  803. of 
  804.  
  805. Apple Computer, Inc. WordPerfect is a registered trademark of
  806. WordPerfect Corporation. MacWrite, MacProject and MacDraw are
  807. trademarks of Claris Corporation, registered in the 
  808.  
  809. United States and other countries. Microsoft is a registered
  810. trademark of Microsoft Corporation. Taligent and the Taligent
  811. logo are trademarks of Taligent Inc. 
  812.  
  813. UNIX is a registered trademark of UNIX System Laboratories. SOM
  814. is a trademark of IBM Corporation..  AmiPro, Lotus 123G are
  815. trademarks of Lotus Development Corporation.
  816.  
  817. This is a text part.  As you can see, it supports embedded
  818. objects itself, in this case, a button.
  819.  
  820. OpenDoc allows users to integrate many different kinds of
  821. content into a single document without the need for the 
  822. top-level application to understand every kind of content.
  823.  
  824.  
  825.  
  826. Click Here
  827.  
  828. Sales  Gross  Net
  829.  
  830.   2.5      .75     .16
  831.  
  832.   3.1      .67     .09
  833.  
  834.   1.3      .48     .04
  835.  
  836. 12:34 PM
  837.  
  838.