1 |
wakaba |
1.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 |
|
|
|