9 |
Introduction |
Introduction |
10 |
============ |
============ |
11 |
|
|
|
.. 'jyvaskyla' should be with umlauts :-( |
|
|
|
|
|
This Facharbeit is the product of my work in a research group, |
|
|
the Hyperstructure Group at University of Jyvaskyla, Finland, |
|
|
I have been engaged in for the past 2 1/2 years. I originally |
|
|
came into contact with the Hyperstructure Group through the |
|
|
Internet, because I was interested in Gzz [gzz]_, their Free Software |
|
|
implementation of Ted Nelson's zzstructure [zigzag-welcome]_. Zzstructure |
|
|
is a new paradigm for structured data, allowing for rich |
|
|
interconnections between all data stored on a computer, unlike |
|
|
XML [xml]_. Data stored in any Gzz-based application ('applitude') |
|
|
can be re-used in other applications, or linked to any other data |
|
|
on the local system. |
|
|
|
|
|
For 1 1/2 years, we have been developing a storage layer |
|
|
for Gzz, called *Storm*. |
|
|
|
|
|
|
|
|
Storm |
|
|
----- |
|
|
|
|
12 |
The Web and many other hypermedia systems assume that identifiers |
The Web and many other hypermedia systems assume that identifiers |
13 |
either have to include location information (as in URLs, which break |
either have to include location information (as in URLs, which break |
14 |
when documents are moved), or can only be resolved locally (as in |
when documents are moved), or can only be resolved locally (as in |
97 |
to work on the version at hand and then either merge it with others |
to work on the version at hand and then either merge it with others |
98 |
or fork to a different branch. |
or fork to a different branch. |
99 |
|
|
100 |
In this paper, we present Storm (for *storage module*), a design |
This thesis presents Storm (for *storage module*), a design |
101 |
dealing with versioning and dangling links. Storm is a library |
dealing with versioning and dangling links. Storm is a library |
102 |
for storing and retrieving data as *blocks*, immutable |
for storing and retrieving data as *blocks*, immutable |
103 |
byte sequences identified by cryptographic content hashes |
byte sequences identified by cryptographic content hashes |
107 |
and versioning, while we use Xanalogical storage |
and versioning, while we use Xanalogical storage |
108 |
to address the movement of content between documents (copy&paste). |
to address the movement of content between documents (copy&paste). |
109 |
|
|
110 |
The main contribution of this paper is the Storm design, |
The main contribution of this thesis is the Storm design, |
111 |
a hypermedia system built to use the emerging |
a hypermedia system built to use the emerging |
112 |
peer-to-peer search technologies to enhance data mobility. |
peer-to-peer search technologies to enhance data mobility. |
113 |
Additionally, we hope to |
Storm was designed as part of the Gzz project [gzz]_ |
114 |
provide an input to the ongoing discussion about peer-to-peer |
in collaboration between the author |
115 |
hypermedia systems [thompson01coincidence-andalso-bouvin02open-andalso-p2p-hypertext-panel]_. |
and the Hyperstructure Group at University of Jyvaskyla, Finland. |
116 |
|
An article based on this thesis is being prepared for submission |
117 |
|
to the Hypertext'03 conference [#]_. |
118 |
|
|
119 |
|
.. [#] See http://www.ht03.org. |
120 |
|
|
121 |
Currently, Storm is partially implemented as a part of the Gzz |
Currently, Storm is partially implemented as a part Gzz, |
122 |
project [gzz]_, which uses Storm exclusively for all disk storage. |
which uses Storm exclusively for all disk storage. |
123 |
Gzz is an implementation of Ted Nelson's zzstructure [zigzag-welcome]_, |
Gzz is an implementation of Ted Nelson's zzstructure [zigzag-welcome]_, |
124 |
providing a platform for hypermedia-aware applications. |
providing a platform for hypermedia-aware applications. |
125 |
The peer-to-peer functionality is in a very early stage and not |
The peer-to-peer functionality is in a very early stage and not |
126 |
usable yet. |
yet usable. |
127 |
|
|
128 |
This paper is structured as follows. In the next section, we describe |
This paper is structured as follows. In the next section, we describe |
129 |
related work. In section 3, we introduce the basic storage unit of our |
related work. In section 3, we introduce the basic storage unit of our |
132 |
on top of the block system. In section 5, we discuss application-specific |
on top of the block system. In section 5, we discuss application-specific |
133 |
reverse indexing of blocks by their content, essential for many applications. |
reverse indexing of blocks by their content, essential for many applications. |
134 |
In section 6, we present techiques for efficient versioned storage |
In section 6, we present techiques for efficient versioned storage |
135 |
of mutable data on top of blocks. Section 7 concludes the paper. |
of mutable data on top of blocks. Section 7 concludes. |
136 |
|
|
137 |
.. uml:: storm_layers_thesis |
.. uml:: storm_layers_thesis |
138 |
|
|