home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
opendc12.zip
/
SG244883.ZIP
/
2.5
< prev
next >
Wrap
Text File
|
2001-01-27
|
7KB
|
137 lines
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<base href="http://publib.boulder.ibm.com:80/cgi-bin/bookmgr/BOOKS/EZ30OZ00/2.5">
<title>
2.5 "OS/2 WARP and OpenDoc"
via IBM BookManager BookServer
</title>
</head>
<body background="/bookmgr/backdrop.gif">
<banner><br>
<a href="../../library"><img src="/bookmgr/libicon2.gif" border=0 alt="[Library]"></a>
<a href="CONTENTS#2.5"><img src="/bookmgr/contents.gif" border=0 alt="[Contents]"></a>
<img src="/bookmgr/drevs.gif" border=0 alt="[Revisions]">
<a href="2.4.1"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
<a href="2.5.1"><img src="/bookmgr/next.gif" border=0 alt="[Next Topic]"></a>
<a href="../../search?book=EZ30OZ00"><img src="/bookmgr/search.gif" border=0 alt="[Search]" ></a>
<img src="/bookmgr/dslist.gif" border=0 alt="[Search Results]">
<img src="/bookmgr/dsprev.gif" border=0 alt="[Prev Topic Match]">
<img src="/bookmgr/dsnext.gif" border=0 alt="[Next Topic Match]">
<img src="/bookmgr/dnotes.gif" border=0 alt="[Notes]">
<img src="/bookmgr/dlnotes.gif" border=0 alt="[List Notes]">
<a href="../../print?book=EZ30OZ00"><img src="/bookmgr/print.gif" border=0 alt="[Print]"></a>
<a href="../../download/EZ30OZ00.boo"><img src="/bookmgr/download.gif" border=0 alt="[Download]" ></a>
<a href="../../help/book"><img src="/bookmgr/help.gif" border=0 alt="[Help]"></a>
<hr>
<a name="HDR4610DBT"><H2> 2.5 OpenDoc Storage</H2></a>
</banner>
<pre width="80">
<p>
<a name="FIG4610D51"><hr>
</a>
<p>
<p>
<a href="picture-25?mode=zoom"><img src="/bookmgr/pictures/EZ30OZ00.P25.GIF" alt="PICTURE 25"></a>
<p>
<p>
<hr>
Figure 25. OpenDoc Storage Services Bento
<p>
The OpenDoc storage system is a high-level mechanism for persistent or
transient storage that enables multiple part editors to effectively share
a single document. This storage model is based on Apple's Bento standard.
This Bento file system was developed to provide an effective file-based
storage for multimedia documents dealing with different types of data.
Bento is a Japanese word that means lunch box. That is, a basket with
multiple small departments for different food. It is proven and used by
more than 100 applications, for example, Lotus 1-2-3 and Lotus WordPro.
It has been offered as a standard multimedia container to the Interactive
Multimedia Association.
<p>
The storage system is implemented on top of the native storage system of
each platform that supports OpenDoc.
<p>
Bento is able to store three different kinds of data, described in the
following list:
<p>
1. It gives each component its own data stream to store its data in its
own format even storing the same data in different formats.
2. It stores reliable references to other data streams either within the
same file or other storage systems. OpenDoc uses chains of such
references to store the embedding relationships of the parts within a
document.
3. It stores metadata, information about the stored data, in a very
effective flat directory structure that enables very quick
localization and access to the object data, without disturbing its
format.
<p>
The storage system supports the native data streams of each part. If the
data is also stored in alternative formats, the DocShell can bind
different part handlers to the data. All storage units are objects having
persistent IDs, which allows stable references to be made from one stream
to another.
<p>
The storage interface is based on a system of hierarchical structured
elements of properties and values, as shown in <a href="#FIG4610D26">Figure 26</a>. The properties
describe the attributes of the values. The values store the content data
in a specific format. If the content is stored in different formats, then
several values are associated with one property. The standard properties
are, for example, the preferred part handler, the author, time and format.
They can be extended by the components with additional properties.
<p>
<a name="FIG4610D26"><hr>
</a>
<p>
<p>
<a href="picture-26?mode=zoom"><img src="/bookmgr/pictures/EZ30OZ00.P26.GIF" alt="PICTURE 26"></a>
<p>
<p>
<hr>
Figure 26. OpenDoc Storage Unit Properties and Values
<p>
The storage unit is the base of that storage system. It provides the
stream interface for the data to be stored in a Bento-based file. The
storage unit is also used by other data transfer mechanisms such as drag
and drop, clipboard and linking. All of these functions are provided by
OpenDoc in a consistent way by using the same storage unit class to
transfer the data, as shown in<a href="#FIG4610D48"> Figure 27</a>.
<p>
<a name="FIG4610D48"><hr>
</a>
<p>
<p>
<a href="picture-27?mode=zoom"><img src="/bookmgr/pictures/EZ30OZ00.P27.GIF" alt="PICTURE 27"></a>
<p>
<p>
<hr>
Figure 27. OpenDoc Storage Unit Class
<p>
The OpenDoc storage subsystem is a high-level interface independent to the
underlying implementation. It hides not only the platform-dependent file
I/O APIs but also the platform dependent drag and drop and clipboard APIs.
The current implementation is based on Bento but other implementations are
possible. Developers should have a look at <a href="2.9.1#FIG4610D56">Figure 54 in topic 2.9.1</a> to
see how the storage unit is used to initialize a part (look for the
InitPart method ), to read data into memory (InitFromStorage method) or to
write data back to the storage unit (Externalize).
<p>
Platform-independent source code for Bento is currently available for
members of CI Labs (see <a href="1.5.1#HDR4610WCI">"Openness and Standards Support" in topic 1.5.1</a>).
<p>
<p>Subtopics:
<ul>
<li> <a href="2.5.1"> 2.5.1 Draft</a>
<li> <a href="2.5.2"> 2.5.2 Data Transfer</a>
</pre>
</ul>
<hr>
<br><a href="2.4.1"><img src="/bookmgr/prev.gif" border=0 alt="[Prev Topic]"></a>
<a href="2.5.1"><img src="/bookmgr/next.gif" border=0 alt="[Next Topic]"></a>
<cite> ⌐ Copyright IBM Corp. 1996</cite>
<HR><p><h6><a href="/cgi-bin/bookmgr/library">IBM BookManager« BookServer</a> Copyright 1989, 1999<a href="http://www.ibm.com/"> IBM</a> Corporation. All rights reserved.</h6><p>
</BODY></HTML>