13 |
on the Web, they are a necessity for making Web-like hyperlinks |
on the Web, they are a necessity for making Web-like hyperlinks |
14 |
useful on the local desktop. |
useful on the local desktop. |
15 |
|
|
16 |
We propose Storm, a storage system identifying documents by |
We propose Storm, a storage system for use both on the |
17 |
cryptographic hashes and signatures, independently of their |
desktop and the public network. Storm assigns a document |
18 |
location. Our system automatically finds link targets wherever |
a permanent URI when it is created. Using peer-to-peer |
19 |
they are, on the local system or on the network. |
technology, we can find documents even though our URIs |
20 |
On the network, our identifiers are resolved |
do not include location information. |
|
through a peer-to-peer distributed hashtable. |
|
21 |
Thus, links continue to work unchanged when documents are emailed |
Thus, links continue to work unchanged when documents are emailed |
22 |
or published on the network. |
or published on the network. |
23 |
|
|
24 |
Our system uses URIs to integrate with the Web. We have so far |
We have extended KDE and Netscape Communicator 4 to understand |
25 |
extended KDE and Netscape Communicator 4 to understand |
our experimental URIs. Most other systems can use Storm |
|
our experimental URN namespace. Most other systems can use Storm |
|
26 |
through an HTTP gateway. |
through an HTTP gateway. |
27 |
|
|
28 |
.. raw:: latex |
.. raw:: latex |
42 |
.. documents can be linked like web pages, |
.. documents can be linked like web pages, |
43 |
which would make them part of the web: |
which would make them part of the web: |
44 |
|
|
45 |
Bush's Memex [XXX] was to be a hypermedia device |
While many Web pages are densely interlinked today, |
|
for personal use, not for hypermedia publication. |
|
|
|
|
|
Yet, while many Web pages are densely interlinked today, |
|
46 |
desktop documents still have rarely any hypermedia |
desktop documents still have rarely any hypermedia |
47 |
functionality. Even though documents written with |
functionality. Even though documents written with |
48 |
Microsoft Word or OpenOffice.org can nowadays be |
Microsoft Word or OpenOffice.org can nowadays be |
54 |
pieces of documents in discussion, or to |
pieces of documents in discussion, or to |
55 |
refer from a short memo to a document |
refer from a short memo to a document |
56 |
with more in-depth information. |
with more in-depth information. |
|
Both individuals and workgroups could benefit |
|
|
from such functionality. |
|
57 |
|
|
58 |
.. links needed that don't break when documents are moved: |
.. links needed that don't break when documents are moved: |
59 |
|
|
60 |
We believe that a major burden to hypermedia |
A major obstacle to hypermedia |
61 |
on the desktop is breaking links. |
on the desktop is breaking links. A user receiving |
62 |
When sending a couple of hyperlinked notes per |
hyperlinked documents would have to reconstruct |
63 |
mail, the receiver would have to assemble them |
the original directory structure; otherwise the links |
64 |
into the sender's directory structure. A document |
won't work. |
|
collaboratively authored by sender and receiver |
|
|
could not be linked to, except if both parties |
|
|
place it in exactly the same directory. |
|
65 |
|
|
66 |
.. using location-independent identifiers for |
.. using location-independent identifiers for |
67 |
non-breaking links: |
non-breaking links: |
69 |
If desktop documents could be refered to independently |
If desktop documents could be refered to independently |
70 |
of their location, it would be possible to make |
of their location, it would be possible to make |
71 |
non-breaking links to them. When a document is published |
non-breaking links to them. When a document is published |
72 |
on the Web, it would have the same URI [XXX] as on the |
on the Web, it would have the same URI as on the |
73 |
author's desktop. When a link to a document is emailed, |
author's desktop. When a link to a document is emailed, |
74 |
the receiver could follow the link as long as their |
the receiver could follow the link as long as their |
75 |
computer can find the linked document-- on its local |
computer can find the linked document-- on its local |
76 |
harddisk, attached to another email, or on the |
harddisk, attached to another email, or on the |
77 |
public Internet. |
public Internet. |
78 |
|
|
|
.. contribution of this paper: |
|
|
|
|
|
This document describes Storm, a library for |
|
|
storing and retrieving data using |
|
|
location-independent Uniform Resource Names [XXX]. |
|
|
|
|
|
|
|
|
Related work |
|
|
============ |
|
|
|
|
79 |
.. Freenet's cryptographical identifiers: |
.. Freenet's cryptographical identifiers: |
80 |
|
|
81 |
Location-independent identifiers aren't a new idea. |
Location-independent identifiers aren't a new idea. |
82 |
In Freenet [freenet-ieee]_, an anonymous peer-to-peer |
In Freenet [freenet-ieee]_, an anonymous peer-to-peer |
83 |
publication system, *cryptographic hashes* [XXX] |
publication system, *cryptographic hashes* [bakhtiari95cryptographic]_ |
84 |
are used to identify versions of documents. Hashes |
are used to identify versions of documents. Hashes |
85 |
are short, e.g. 20 bytes, yet it is extremely unlikely |
are short, e.g. 20 bytes, yet it is extremely unlikely |
86 |
that two different documents will ever have the same hash, |
that two different documents will ever have the same hash, |
87 |
making them ideal identifiers on the Web. |
making them ideal identifiers on the Web. |
88 |
|
|
89 |
Hashes allow reference to a single version of a |
.. Hashes allow reference to a single version of a |
90 |
document. Documents are refered to by public keys [XXX]. |
document. Documents are refered to by public keys [XXX]. |
91 |
The private key corresponding to a document's public key |
The private key corresponding to a document's public key |
92 |
can update the document by digitally signing a new version |
can update the document by digitally signing a new version |
93 |
of it. |
of it. |
94 |
|
|
95 |
However, finding a document on Freenet can be |
However, finding a document on Freenet can be |
96 |
quite slow, taking many seconds. This is not |
quite slow, taking many seconds. This is not |
97 |
acceptable for general Web publishing. |
acceptable for general Web publishing. |
98 |
|
|
99 |
.. non-breaking links seem not globally resolvable: |
.. non-breaking links seem not globally resolvable: |
100 |
|
|
102 |
assume that identifiers either have to |
assume that identifiers either have to |
103 |
say where a document can be found on the network, or they |
say where a document can be found on the network, or they |
104 |
cannot be efficiently resolved on a global scale. |
cannot be efficiently resolved on a global scale. |
|
URLs, location-dependent identifiers, break when documents are |
|
|
moved. Link services often query only a select set of link |
|
|
servers, not the whole network [hill94extending-andalso-carr95dls]_. |
|
|
|
|
105 |
Berners-Lee [name-myth]_ argues that for this reason, |
Berners-Lee [name-myth]_ argues that for this reason, |
106 |
using unique, random-looking numbers to identify documents |
using unique, random-looking numbers to identify documents |
107 |
is not possible on a global scale. |
is not possible on a global scale. |
109 |
.. but DHTs can do it: |
.. but DHTs can do it: |
110 |
|
|
111 |
However, recent developments in peer-to-peer systems have |
However, recent developments in peer-to-peer systems have |
112 |
rendered this assumption obsolete. Distributed hashtables |
rendered this assumption obsolete. Distributed hashtables (DHTs) |
113 |
(DHTs) and other structured overlay networks |
[malkhi02viceroy-andalso-maymounkov02kademlia-andalso-ratnasamy01can-andalso-rowston01pastry-andalso-stoica01chord-andalso-zhao01tapestry]_ |
|
[AspnesS2003-andalso-bonsma02swan-andalso-malkhi02viceroy-andalso-maymounkov02kademlia-andalso-ratnasamy01can-andalso-rowston01pastry-andalso-stoica01chord-andalso-zhao01tapestry]_ |
|
114 |
allow location-independent identifiers |
allow location-independent identifiers |
115 |
to be resolved on a global scale. |
to be resolved on a global scale. |
116 |
|
|
119 |
DHTs can not only be used to efficiently retrieve documents |
DHTs can not only be used to efficiently retrieve documents |
120 |
given their location-independent identifier, but also |
given their location-independent identifier, but also |
121 |
to retrieve metadata about the documents. For example, |
to retrieve metadata about the documents. For example, |
122 |
|
unlike many link services that only query a limited |
123 |
|
set of servers for links [hill94extending]_, |
124 |
all external links to a document can be found using |
all external links to a document can be found using |
125 |
a DHT. |
a DHT. |
126 |
|
|
127 |
.. brief summary how DHTs work? XXX |
.. contribution of this paper: |
128 |
|
|
129 |
This, we believe, may be the most important result of peer-to-peer |
This document describes Storm, a library for |
130 |
research with regard to hypermedia. |
storing and retrieving data using |
131 |
|
location-independent URIs. |
132 |
|
|
133 |
|
|
134 |
Storm |
Storm |
142 |
Our system, Storm (for STORage Modules), |
Our system, Storm (for STORage Modules), |
143 |
uses Freenet-like cryptographic identifiers. |
uses Freenet-like cryptographic identifiers. |
144 |
|
|
145 |
|
On the user level, Storm could be used as a |
146 |
|
replacement for both file names and HTTP URLs |
147 |
|
as document identifiers (although our implementation |
148 |
|
uses both files and HTTP internally). |
149 |
|
|
150 |
.. part of the web -- URN scheme (so far experimental, |
.. part of the web -- URN scheme (so far experimental, |
151 |
targetting registration): |
targetting registration): |
152 |
|
|
153 |
We are using an experimental URN (Uniform Resource Name, |
We are using an experimental URN namespace |
154 |
[XXX]) namespace and are preparing the registration |
(Uniform Resource Name, a persistent kind of URI) |
155 |
|
and are preparing the registration |
156 |
of an informal namespace with IANA. This allows our |
of an informal namespace with IANA. This allows our |
157 |
system's identifiers to be used in Web hyperlinks. |
system's identifiers to be used in Web hyperlinks. |
158 |
|
|
182 |
Storm through the HTTP gateway. OpenOffice.org |
Storm through the HTTP gateway. OpenOffice.org |
183 |
can load documents through the HTTP gateway, |
can load documents through the HTTP gateway, |
184 |
but cannot save to it, because the gateway |
but cannot save to it, because the gateway |
185 |
does not support WebDAV. |
does not support WebDAV (HTTP-based distributed |
186 |
|
authoring and versioning). |
187 |
|
|
188 |
.. web interface for searching etc. |
.. web interface for searching etc. |
189 |
|
|
193 |
to conduct searches over the titles of all documents |
to conduct searches over the titles of all documents |
194 |
published on the network. |
published on the network. |
195 |
|
|
196 |
|
Our system implements append-and-delete-only |
197 |
|
storage; past versions of documents are stored |
198 |
|
unless deleted explicitly. It is possible to |
199 |
|
store only the differences between versions. |
200 |
|
|
201 |
|
|
202 |
Conclusions |
Conclusions |
203 |
=========== |
=========== |
204 |
|
|
205 |
.. |
We have presented Storm, a storage system unifying |
206 |
|
the namespaces for private and published documents. |
207 |
|
This may help in making hyperlinks between desktop |
208 |
|
documents more convenient. |
209 |
|
|
210 |
|
A distributed hashtable is used to find published documents. |
211 |
|
While the core of Storm has been in use for almost |
212 |
|
three years, the peer-to-peer subsystem has only recently |
213 |
|
been implemented. |
214 |
|
|
215 |
|
Currently, a number of systems can use Storm |
216 |
|
through the HTTP gateway. A next step will be |
217 |
|
WebDAV support, allowing many more systems to |
218 |
|
save data in Storm. |
219 |
|
|
220 |
|
Storm can also be used to implement the more ambitious |
221 |
|
Xanalogical hypertext model [#]_ [lukka02guids]_. |
222 |
|
Storm is available as Free Software from |
223 |
|
``http://sv.gnu.org/projects/storm``. |
224 |
|
|
225 |
|
.. [#] Our implementation of Xanalogical storage |
226 |
|
is available at ``http://sv.gnu.org/projects/alph``. |
227 |
|
|
228 |
Acknowledgements |
Acknowledgements |
229 |
================ |
================ |