14 |
useful on the local desktop. |
useful on the local desktop. |
15 |
|
|
16 |
We propose Storm, a storage system for use both on the |
We propose Storm, a storage system for use both on the |
17 |
desktop and the public network. Storm assigns a document |
desktop and the public network. Storm assigns each document |
18 |
a permanent URI when it is created. Using peer-to-peer |
a permanent URI when it is created. Using peer-to-peer |
19 |
technology, we can find documents even though our URIs |
technology, we can find documents even though our URIs |
20 |
do not include location information. |
do not include location information. |
58 |
.. links needed that don't break when documents are moved: |
.. links needed that don't break when documents are moved: |
59 |
|
|
60 |
A major obstacle to hypermedia |
A major obstacle to hypermedia |
61 |
on the desktop is breaking links. A user receiving |
on the desktop is broken links. A user receiving |
62 |
hyperlinked documents would have to reconstruct |
hyperlinked documents by email, for example, would have to reconstruct |
63 |
the original directory structure; otherwise the links |
the original directory structure; otherwise the links |
64 |
won't work. |
won't work. |
65 |
|
|
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 (DHTs) |
rendered this assumption obsolete. Distributed hashtables (DHTs) |
113 |
[malkhi02viceroy-andalso-maymounkov02kademlia-andalso-ratnasamy01can-andalso-rowston01pastry-andalso-stoica01chord-andalso-zhao01tapestry]_ |
[malkhi02viceroy-andalso-maymounkov02kademlia-andalso-ratnasamy01can-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 |
|
|
117 |
.. can be used to implement external links, backlinks &c: |
.. can be used to implement external links, backlinks &c: |
118 |
|
|
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 |
but also metadata *about* documents. For example, |
|
to retrieve metadata about the documents. For example, |
|
121 |
unlike many link services that only query a limited |
unlike many link services that only query a limited |
122 |
set of servers for links [hill94extending]_, |
set of servers for links [hill94extending]_, |
123 |
all external links to a document can be found using |
all published external links to a document can be found using |
124 |
a DHT. |
a DHT. |
125 |
|
|
126 |
.. contribution of this paper: |
.. contribution of this paper: |
127 |
|
|
128 |
This document describes Storm, a library for |
This paper describes Storm, a library for |
129 |
storing and retrieving data using |
storing and retrieving data using |
130 |
location-independent URIs. |
location-independent URIs. |
131 |
|
|
140 |
documents from the network. |
documents from the network. |
141 |
Our system, Storm (for STORage Modules), |
Our system, Storm (for STORage Modules), |
142 |
uses Freenet-like cryptographic identifiers. |
uses Freenet-like cryptographic identifiers. |
|
|
|
143 |
On the user level, Storm could be used as a |
On the user level, Storm could be used as a |
144 |
replacement for both file names and HTTP URLs |
replacement for both file names and HTTP URLs |
145 |
as document identifiers (although our implementation |
as document identifiers. |
|
uses both files and HTTP internally). |
|
146 |
|
|
147 |
.. part of the web -- URN scheme (so far experimental, |
.. part of the web -- URN scheme (so far experimental, |
148 |
targetting registration): |
targetting registration): |
159 |
by using the Java library directly or through an |
by using the Java library directly or through an |
160 |
HTTP gateway, which, given a Storm URN, finds and |
HTTP gateway, which, given a Storm URN, finds and |
161 |
returns the associated file. Documents can be |
returns the associated file. Documents can be |
162 |
uploaded into Storm using HTTP PUT operations |
uploaded into Storm using HTTP PUT. |
|
on the gateway. |
|
163 |
|
|
164 |
.. Applications we are integrated with: |
.. Applications we are integrated with: |
165 |
|
|
177 |
URNs yet, but can load and save documents using |
URNs yet, but can load and save documents using |
178 |
Storm through the HTTP gateway. OpenOffice.org |
Storm through the HTTP gateway. OpenOffice.org |
179 |
can load documents through the HTTP gateway, |
can load documents through the HTTP gateway, |
180 |
but cannot save to it, because the gateway |
but cannot save changes, because the gateway |
181 |
does not support WebDAV (HTTP-based distributed |
does not yet support WebDAV (HTTP-based distributed |
182 |
authoring and versioning). |
authoring and versioning). |
183 |
|
|
184 |
.. web interface for searching etc. |
.. web interface for searching etc. |
207 |
While the core of Storm has been in use for almost |
While the core of Storm has been in use for almost |
208 |
three years, the peer-to-peer subsystem has only recently |
three years, the peer-to-peer subsystem has only recently |
209 |
been implemented. |
been implemented. |
|
|
|
210 |
Currently, a number of systems can use Storm |
Currently, a number of systems can use Storm |
211 |
through the HTTP gateway. A next step will be |
through an HTTP gateway. |
212 |
WebDAV support, allowing many more systems to |
|
213 |
save data in Storm. |
.. A next step will be |
214 |
|
WebDAV support, allowing many more systems to |
215 |
|
save data in Storm. |
216 |
|
|
217 |
Storm can also be used to implement the more ambitious |
Storm can also be used to implement the more ambitious |
218 |
Xanalogical hypertext model [#]_ [lukka02guids]_. |
Xanalogical hypertext model [#]_ [lukka02guids]_. |