1 |
IETF IIIR Working Group Chris Weider |
2 |
INTERNET--DRAFT Merit Network, Inc. |
3 |
<draft-ietf-iiir-transponders-01.txt> October, 1993 |
4 |
|
5 |
Resource Transponders |
6 |
|
7 |
Status of this Memo |
8 |
|
9 |
In this paper, the author describes a mechanism for automatically |
10 |
maintaining resource location systems which contain pointers to |
11 |
resources. |
12 |
|
13 |
This document is an Internet Draft. Internet Drafts are working |
14 |
documents of the Internet Engineering Task Force (IETF), its |
15 |
Areas, and its Working Groups. Note that other groups may also |
16 |
distribute working documents as Internet Drafts. |
17 |
|
18 |
Internet Drafts are draft documents valid for a maximum of six |
19 |
months. Internet Drafts may be updated, replaced, or obsoleted |
20 |
by other documents at any time. It is not appropriate to use |
21 |
Internet Drafts as reference material or to cite them other than |
22 |
as a "working draft" or "work in progress." |
23 |
|
24 |
Please check the I-D abstract listing contained in each Internet |
25 |
Draft directory to learn the current status of this or any |
26 |
other Internet Draft. |
27 |
|
28 |
This Internet Draft expires April 22, 1993. |
29 |
|
30 |
Abstract |
31 |
|
32 |
Although a number of systems have been created in the last several years |
33 |
to provide resource location and navigation on the Internet, the |
34 |
information contained in these systems must be maintained and updated by |
35 |
hand. This paper describes an automatic mechanism, the resource |
36 |
transponder, for maintaining resource location information. |
37 |
|
38 |
Author's note: |
39 |
|
40 |
This document is being circulated as a research paper; consequently |
41 |
there are no protocol specifications or anything of the sort. I hope |
42 |
that we can go from here and actually get some implementation |
43 |
experience. |
44 |
|
45 |
1. Introduction |
46 |
|
47 |
In the past few years, we've seen the invention and growth of a number |
48 |
of information location systems on the Internet, e.g. archie, Gopher, |
49 |
and WAIS. However, as these systems have become widely deployed, a |
50 |
number of maintenance and security problems have arisen with them. Some |
51 |
of the major ones |
52 |
|
53 |
INTERNET--DRAFT Resource Transponders Weider |
54 |
|
55 |
1) Out of necessity, most of these systems contain pointers to the |
56 |
desired resources rather than the resources themselves. Therefore, |
57 |
if a resource becomes obsolete, is modified, or is moved, the |
58 |
location system must be updated by hand. Some systems, such as |
59 |
Archie and Veronica, proactively create updated indexes by |
60 |
contacting every resource on a certain time schedule. However, this |
61 |
means that the system can be wildly out of date, depending on the |
62 |
interval between polls of the resources. This process can be highly |
63 |
inefficient depending on the percentage of information that has |
64 |
changed. |
65 |
|
66 |
2) Conversely, anyone who maintains a resource that they wish indexed |
67 |
must keep track of every directory which contains a pointer to that |
68 |
resource, so that if it is modified, all the directories can be |
69 |
updated. This obviously is an optimistic scenario. |
70 |
|
71 |
3) Many organizations which have installed these systems do not have |
72 |
the available resources or expertise to maintain the information in |
73 |
the systems. Thus we have long periods where the information |
74 |
drifts, then a short period when the information is updated again. |
75 |
|
76 |
4) Even though these systems are almost always out of date today, this |
77 |
problem will become increasingly harder for humans to manage by |
78 |
hand as everyone on the net becomes their own publisher. Also, as |
79 |
the net speeds up and people rely more and more on accurate |
80 |
information, human-induced delays in updates of these systems will |
81 |
become increasingly intolerable. |
82 |
|
83 |
5) Most, if not all, of these systems provide no security whatsoever; |
84 |
if a pointer to a resource appears in a locator system, then it is |
85 |
assumed to be meant for public consumption. There are many |
86 |
potential information providers who would like to use publicly |
87 |
deployed information systems to publish to a very selected |
88 |
clientele, and do not wish to allow the whole net access to their |
89 |
resources. |
90 |
|
91 |
2: Requirements for a solution |
92 |
|
93 |
There are several objectives which must be met by any proposed solution |
94 |
to these problems: |
95 |
|
96 |
1) We need to decrease the personnel resources needed for indexing and |
97 |
pointer maintenance. |
98 |
|
99 |
2) We need to increase the reliability and accuracy of the information |
100 |
held in resource location systems. |
101 |
|
102 |
3) We need to provide some mechanisms for security, particularly by |
103 |
mediating access to the resources |
104 |
|
105 |
INTERNET--DRAFT Resource Transponders Weider |
106 |
|
107 |
|
108 |
4) We need to make it easy for non-experts, such as librarians, |
109 |
archivists, and database maintainers, to announce their new |
110 |
resources to the various resource location services. |
111 |
|
112 |
Many of these problems can be solved by a 'resource transponder' |
113 |
mechanism. |
114 |
|
115 |
3: Resource Transponders |
116 |
|
117 |
The resource transponder system works by adding two new layers to every |
118 |
resource: metainformation and an agent to update a resource location |
119 |
system (RLS) with that metainformation. The metainformation layer is |
120 |
physically attached to every resource, so that when the resource is |
121 |
moved or altered, the metainformation is immediately available to update |
122 |
the RLS. The agent layer may also be attached to the resource or may not |
123 |
be; the implications of both of these options are discussed in detail |
124 |
below. |
125 |
|
126 |
3.1: Metainformation |
127 |
|
128 |
The metainformation layer of a given resource contains any information |
129 |
which might be required to create a pointer to this resource, and any |
130 |
information which may be useful for indicating how to catalog or index |
131 |
the resource. For example, the metainformation layer of a text document |
132 |
might contain such things as the Uniform Resource Name (URN) of the |
133 |
document [Weider 1993], the title of the document, a Uniform Resource |
134 |
Locator (URL) for the document [Berners-Lee 1993], the size of the |
135 |
document, etc. Thus the metainformation layer contains data _about_ the |
136 |
resource to which it is attached. |
137 |
|
138 |
This metainformation is expected to be modifiable. For example, the |
139 |
metainformation layer may contain a history of where this particular |
140 |
copy of a resource has been. Let's say that a resource/transponder pair |
141 |
has been moved. When it gets to its new location, the agent can then |
142 |
attempt to contact the resource at its old location to determine whether |
143 |
the resource is still there (in which case the agent will simply cause |
144 |
the new location to be added to the RLS) or whether the resource is not |
145 |
there (in which case the agent can tell the RLS to add the current |
146 |
pointer and delete the old one). |
147 |
|
148 |
A number of other possibilities for the contents of the metainformation |
149 |
level are contained in section 4.1. |
150 |
|
151 |
3.2: Agents |
152 |
|
153 |
The agent layer of a given resource contains an executable program which |
154 |
is responsible for reading the metainformation attached to the resource |
155 |
and using that information to update a RLS. It is also responsible for |
156 |
|
157 |
INTERNET--DRAFT Resource Transponders Weider |
158 |
|
159 |
updating the metainformation where necessary and for running any |
160 |
indexing programs required by the RLS it is attempting to update. |
161 |
|
162 |
When the tools required to build agents are constructed and deployed, |
163 |
the author expects the agents to begin mediating access to the resource, |
164 |
particularly for agents attached to resources which are not currently |
165 |
considered active processes, such as text files and digitized images. |
166 |
In this futuristic model, someone wishing to read a given document would |
167 |
have to first negotiate access to the data with the agent; the agent |
168 |
would then be responsible for delivering the data to the client. |
169 |
However, it is expected that this type of agent will not be widely |
170 |
deployed for some time. |
171 |
|
172 |
Different ways of implementing agents are discussed in section 4.2. |
173 |
|
174 |
4: Models for implementations of resource transponders |
175 |
|
176 |
4.1: Models for implementations of the metainformation layer |
177 |
|
178 |
The metainformation layer can be implemented in a number of ways, |
179 |
depending on the resource with which it is associated. For an 'active' |
180 |
resource, such as an on-line catalog or a mail-based service, the |
181 |
metainformation can be stored in a file with a well-known name in the |
182 |
software distribution. Alternatively, the metainformation could be |
183 |
stored as a record in the data which the resource serves. For a text |
184 |
document, the metainformation could be stored as the first or last N |
185 |
bytes of the document (which would break a number of editors and file |
186 |
display techniques, but would guarantee that the metainformation is |
187 |
moved with the resource), or perhaps as a file with a logically |
188 |
associated name (paper2.meta associated with paper2.txt, for example). |
189 |
The problem with this second approach is that the user must know that |
190 |
they have to move the metainformation with the file itself, or things |
191 |
will start breaking. If an agent is explicitly attached to the resource, |
192 |
the agent could contain the metainformation internally. |
193 |
|
194 |
In any case, the resource transponder system must be able to guarantee |
195 |
that the metainformation is moved when the resource is moved. |
196 |
|
197 |
4.2: Models for implementations of the agents |
198 |
|
199 |
The agent layer can also be implemented in a number of ways, depending |
200 |
on such things as system loads, desired sizes of resources, multitasking |
201 |
capabilities, etc. |
202 |
|
203 |
The easiest and for many unitasking systems the cleanest way of |
204 |
implementing an agent is to have one agent per computer. Then when a |
205 |
resource is moved onto that computer, the agent is explicitly activated |
206 |
and notified where the new resource is. For example, let's say that |
207 |
someone wishes to download a copy of a resource and then let the RLS |
208 |
know that that resource is available for public consumption. She would |
209 |
download the resource and then run the agent, which would then notify |
210 |
|
211 |
INTERNET--DRAFT Resource Transponders Weider |
212 |
|
213 |
the RLS and update the metainformation attached to the resource. This |
214 |
model could also be used to track files on a LAN, or to provide local |
215 |
location services with no need to run a larger RLS. |
216 |
|
217 |
Another model for implementation of the agent is to have one agent per |
218 |
resource. In this model, the agent would be moved along with the |
219 |
resource and the metainformation. The agent could be implemented in a |
220 |
file which would be associated with the resource; in that case the agent |
221 |
would have to be explicitly activated when the resource was moved. |
222 |
Alternatively, the agent/metainformation/resource system could be |
223 |
implemented as one system, or in one file. In this case, the agent |
224 |
itself would always be active, and would be responsible for mediating |
225 |
access to the resource. When one did a 'telnet' to a resource with an |
226 |
active agent, the agent would accept the telnet connection and be |
227 |
responsible for providing security and translation for the data. This |
228 |
could provide great security for resources while still allowing pointers |
229 |
to them to be placed in public RLS's; the data in the resource could be |
230 |
encrypted, with the agent responsible for decrypting it. This option is |
231 |
explored more fully in Section 5. |
232 |
|
233 |
5: Transponders and Objects |
234 |
|
235 |
Section 4.2 details several methods of implementing resource transponder |
236 |
agents. The technique of encapsulating the metainformation *and* the |
237 |
data for the resource 'inside' the agent brings up several interesting |
238 |
possibilities. As noted, once the data is encapsulated in the agent, all |
239 |
actions on the resource are mediated by the agent. In essence, |
240 |
encapsulating the resource this way allows the resource to be treated as |
241 |
an active, 'animate' object on the network. With the appropriate |
242 |
functionality in the agent, the resource could also maintain additional |
243 |
information about where it has been, and can also provide large subsets |
244 |
of the general maintenance functionality required by a rapidly changing |
245 |
information mesh. |
246 |
|
247 |
5.1: Possible Functionality of Active Resources |
248 |
|
249 |
This is an exploration of several possible functions which may be |
250 |
available on resource objects; this is not intended to be an exhaustive |
251 |
list. |
252 |
|
253 |
5.1.1: Replicate |
254 |
|
255 |
Sending this command to a resource object causes it to attempt to create |
256 |
a copy of itself at a given location in the network. To achieve this, |
257 |
the resource will have to negotiate permissions with the target system. |
258 |
This functionality would allow: |
259 |
|
260 |
Automatic mirroring of resource objects. If a transponder is attached to |
261 |
a resource which is being updated frequently, and that resource is being |
262 |
mirrored in a number of other places, the transponder agent could use |
263 |
this function to maintain the other copies |
264 |
|
265 |
INTERNET--DRAFT Resource Transponders Weider |
266 |
|
267 |
Load balancing. In the resource object model, access to a resource is |
268 |
gained by negotiation with the attached transponder agent. Thus, as a |
269 |
part of the metainformation, the agent can maintain load information, |
270 |
such as a history of access information, elapsed time for given |
271 |
operations, etc. The agent can then determine if there is an access or |
272 |
load problem because of heavy demand for the data in the resource. If |
273 |
there is a load problem, it can then replicate itself and notify the |
274 |
resource location system that a new copy has been created. |
275 |
|
276 |
5.1.2: Annotate |
277 |
|
278 |
In the resource object model, every resource exists on the net as an |
279 |
independent entity, moving around, copying itself, or perhaps just |
280 |
sitting still. Many of these resources will be academic papers, books, |
281 |
journal articles, even interorganizational memos. Discovery of a given |
282 |
resource will require a sophisticated resource location system, which we |
283 |
are just now starting to build with the various information delivery |
284 |
tools available. However, once we've found an interesting resource, it |
285 |
will be a much more difficult task to find the body of commentary and |
286 |
annotation on this resource. The resource object can alleviate this |
287 |
problem by maintaining a pointer to a body of commentary in the |
288 |
metainformation of the resource. When someone wishes to annotate a given |
289 |
resource, or to retrieve annotations created by other people, they would |
290 |
then send an 'annotate' command to the resource object, and the resource |
291 |
object would then return the pointer to the resource which contains the |
292 |
annotations. Since the resource object which contains the annotations |
293 |
would also have a transponder mechanism, annotations could then be added |
294 |
and the resource location system would be updated. |
295 |
|
296 |
5.1.3: Destroy |
297 |
|
298 |
This function would cause the resource object to be deleted after the |
299 |
resource location system was updated. The agent would be responsible for |
300 |
verifying that the requester had the proper permissions to delete the |
301 |
resource; in addition, the resource object could determine how many |
302 |
other copies of itself existed and could inform the requester, asking |
303 |
for a confirmation before deleting itself. |
304 |
|
305 |
6: Conclusion |
306 |
|
307 |
As shown in sections 3 and 4, the resource transponder or something like |
308 |
it could be enormously valuable no matter how it is implemented. In |
309 |
addition, active resource objects allow for additional functionality |
310 |
which will be very helpful for the next phases of the Internet |
311 |
Information Infrastructure. Therefore, I wish to encourage the reader to |
312 |
look at implementation strategies and help build this. |
313 |
|
314 |
INTERNET--DRAFT Resource Transponders Weider |
315 |
|
316 |
7: References |
317 |
|
318 |
[Berners-Lee 1993] Berners-Lee, Tim, 'Uniform Resource Locators', |
319 |
Internet Draft, July 1993. Available as |
320 |
<ftp://nic.merit.edu/documents/ietf/draft-ietf-uri-url-01.txt> |
321 |
|
322 |
[Weider 1993] Weider, Chris, and Peter Deutsch, 'Uniform Resource |
323 |
Names', Internet Draft, October 1993. Available as |
324 |
<ftp://nic.merit.edu/documents/ietf/draft-ietf/uri-resource-names- |
325 |
01.txt> |
326 |
|
327 |
8: Author's address |
328 |
|
329 |
Chris Weider, clw@merit.edu |
330 |
Merit Network, Inc. |
331 |
2901 Hubbard, Pod G |
332 |
Ann Arbor, MI 48105 |
333 |
|
334 |
Phone: (313) 747-2730 |
335 |
Fax: (313) 747-3185 |
336 |
|