RFC 1727
A Vision of an Integrated Internet Information Service
A Vision of an Integrated Internet Information Service ๐
Okay bestie, let's start with the paperwork (it's actually cute, I promise) ๐ This is RFC 1727, an Informational doc, so it's sharing vibes, not laying down rules. It was written by C. Weider and P. Deutsch from Bunyip Information Systems, and it's dated December 1994, as part of the Network Working Group ๐ธ The header has no "Obsoletes" or "Updates" line, so nothing is listed as replaced or changed by it. Main character energy for a doc that's just vibing โจ
Status of this Memo ๐
Okay, this memo is here to give info to the Internet community ๐ It does not specify an Internet standard of any kind, so it's not a rulebook. Distribution of this memo is unlimited, so share it with everyone ๐ฆ
Abstract โจ
This paper lays out a vision of how Internet information services might be integrated over the next few years, and it goes into detail on what steps will be needed to make that happen ๐
Acknowledgments ๐ซถ
Thanks to the whole gang of information service wonks who have wrangled with us about the future of information services in countless bar bofs ๐ญ (in no particular order, obviously): Cliff Lynch, Cliff Neuman, Alan Emtage, Jim Fullton, Joan Gargano, Mike Schwartz, John Kunze, Janet Vratny, Mark McCahill, Tim Berners-Lee, John Curran, Jill Foster, and many others. Extra special thanks to George Brett of CNIDR and Anders Gillner of RARE, who gave us the chance to start tying the networking community and the librarian community together ๐
1. Disclaimer ๐
Quick reality check: this paper only has the opinions of its authors. It is not an official policy statement of the IIIR Working Group of the IETF, and it doesn't represent an official consensus ๐
2. Introduction ๐ง
The current landscape in information tools is basically the same as the landscape in communications networks back in the early 1980's ๐ Back then there were a bunch of proprietary networking protocols connecting big but autonomous regions of computers, and it was hard to smush those regions into one unified network. Today we have a bunch of large but autonomous regions of networked information. We've got a vast pile of FTPable files, a budding WAIS network, a budding GOPHER network, a budding World Wide Web network, etc. Yes, there are gateways between the various protocols, and information service providers are starting to use GOPHER as glue between services, but we're not yet in that golden age where all human information is at our fingertips. (And we're even farther from that platinum age when the computer knows what we're looking for and fetches it before we even touch the keyboard ๐ค)
In this paper, we'll propose one possible vision of the information services landscape of the near future, and lay out a plan to get us there from here ๐
3. Axioms of information services ๐
There are a bunch of unspoken assumptions we've been using in our discussions. It's useful to lay them out explicitly before we start exploring ๐ง
The first one: there is no single information protocol that will provide the flexibility, scale, responsiveness, worldview, and mix of services that every information consumer wants. A protocol built to give quick, meaningful access to a collection of stock prices might look functionally very different from one that searches digitized music for a particular musical phrase and delivers it to your workstation. So rather than designing the information protocol to end all information protocols, we will always need to integrate new search engines, new clients, and new delivery paradigms into our grand information service ๐
The second one: distributed systems are a better solution to large-scale information systems than centralized ones. If one million people are publishing electronic papers to the net, should they all have to log on to a single machine to modify the central archives? What kind of bandwidth would that central machine need to serve a billion papers a day? And if we replicate the central archives, what sort of maintenance problems would show up? These questions and a host of others make it seem more profitable, at the moment, to investigate distributed systems ๐ญ
The third one: users don't want to be bothered with the details of the underlying protocols used to provide a given service. Just like most people don't care whether their e-mail message gets split up into 20 packets and routed through Tokyo to reach its destination, information service users don't care whether the GOPHER server used telnet to get to a WAIS database back-ended by an SQL database. They just want the information ๐ In short, they care very much about how they interact with the client; they just don't want to know what goes on behind it.
These axioms force us to look at solutions that are distributed, support multiple access paradigms, and allow information about resources to be handed off from one system (say Gopher) to another (say WWW) ๐ฆ
4. An architecture to provide interoperability and integration. ๐๏ธ
The basic architecture outlined in this paper splits up into 4 levels [Fig. 1] ๐ฐ
At the lowest level, we have the resources themselves. These are things like files, telnet sessions, online library catalogs, etc. Each resource can have a resource transponder attached [Weider 94a], and should have a Uniform Resource Name (URN) [Weider 94b] associated with it to uniquely identify its contents. If a resource transponder is attached, it will help maintain the information required by the next level up ๐
At the next level, we have a 'directory service' that takes a URN and returns Uniform Resource Locators (URLs) [Berners-Lee 94] for that resource. A URL is a string that contains location information, and a client can use it to access the resource the URL points to. A given resource may be replicated many times across the net, so the client would get a number of URLs for one resource and could choose between them based on some other criteria ๐ง
______________________________________________________________
| | | | |
| | | | |
| Gopher | WAIS | WWW | Archie | Others ...
| | | | |
|___________|______________|_______|_______________|___________
| |
| _________|____________
| | |
| | Resource Discovery |
| | System (perhaps |
| | based on whois++) |
| |______________________|
| |
| |
_____|________________________________|____
| |
| Uniform resource name to uniform resource |
| locator mapping system (perhaps based on |
| whois++ or X.500) |
|___________________________________________|
|
|
________________|______________________________________
| | | |
______|______ _______|_____ ______|______ ______|______
| | | | | | | |
| Transponder | | Transponder | | Transponder | | Transponder |
|_____________| |_____________| |_____________| |_____________|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| Resource | | Resource | | Resource | | Resource |
| | | | | | | |
| | | | | | | |
|_____________| |_____________| |_____________| |_____________|
Figure 1: Proposed architecture of an integrated information
service
The third level of the architecture is a resource discovery system. This would be a large, distributed system that accepts search criteria and returns URNs and associated information for every resource that matched the criteria. This would provide a set of URLs which the information service providers (GOPHER servers, etc.) could then select among for incorporation ๐ฅ
The fourth level is made up of the various information delivery tools. These tools are responsible for collating pointers to resources, informing the user about the resources those pointers lead to, and retrieving the resources when the user wants them ๐
Let's take a look at each of these levels in greater detail ๐
4.1 Resource layer ๐ฆ
The resources at this layer can be any collection of data a publisher wishes to catalog. It might be an individual text file, a WAIS database, the starting point for a hypertext web, or anything else. Each resource is assigned a URN by the publisher, and the URL is derived from the current location of the resource. The transponder is responsible for updating levels 2 and 3 with the appropriate information as the resource is published and moves around ๐ธ
4.2 URN -> URL mapping ๐บ๏ธ
This level takes a URN and returns a number of URLs for the various instantiations of that resource on the net. It will also maintain the URN space. So the only functionality required of this level is the ability to maintain a global namespace and to provide mappings from that namespace to the URLs. Consequently, any of the distributed 'directory service' protocols would allow us to provide that service. However, there may be some benefit to collapsing levels 2 and 3 onto the same software, in which case we may need to select the underlying protocol more carefully. For example, X.500 provides exactly the functionality required by level 2, but does not (yet) have the functionality required to provide the level 3 service. In addition, the service at level 2 does not necessarily have to be provided by a monolithic system. It can be provided by any collection of protocols which can jointly satisfy the requirements and also interoperate, so that level 2 does appear to level 3 to be universal in scope ๐ซถ
4.3 Resource discovery โจ
okay bestie, this is the level that needs the most work, and it's honestly where the greatest traps lurk to entangle the unwary ๐ญ๐ธ๏ธ. It needs to serve as a giant repository of all information about every publication, except for whatever is required for the URI -> URL mapping. This part is the least filled in right now, so we're going to propose a mechanism that may or may not be the one that ends up being used ๐ง.
When a new resource is created on the network, it gets a URN determined by its publisher. Section 4.1 goes deeper into the publisher's role on the net, but for now we only need 2 of the publisher's functions ๐. The publisher is responsible for assigning a URN out of the publishers namespace. The publisher is also responsible for notifying a publishing agent [Deutsch 92] that a new resource has been created. That agent will either be part of the resource location service, or it will take on the job of notifying an external resource location service that the resource has been created. Alternatively, the agent can use the resource location service to find the parts of the RLS that should be notified that this resource has been created.
To give a concrete example, let's say Peter and Chris publish a multimedia document titled "Chris and Peter's Bogus Journey" ๐ง๐ฌ. It talks about our recent trip to the Antarctic, complete with video clips. P & C would ask their publishing agent to generate a URN for this document. Then they ask the agent to attach a transponder to the document, and to look around and see if anyone a) has asked that our agent notify them whenever anything we write comes out; or b) is running any kind of server of 'trips to Antarctica'. Janet has posted a request to be notified, so the agent tells her that a new resource has been created. The agent also finds 3 servers that archive video clips of Antarctica, so it notifies all three that a new resource on Antarctica has come out, and gives out the URN and a URL for the local copy ๐โจ.
4.4 Information delivery tools ๐
One of the primary jobs of an information delivery tool is to collect and collate pointers to resources. A given tool may provide mechanisms to group those pointers based on other information about the resource. For example, a full-text index lets you group pointers to resources based on their contents, and archie can group pointers based on filenames, etc. The URLs being standardized in the IETF are directly based on the way the World Wide Web built pointers to resources. They create a uniform way to specify access information and location for a resource on the net. With just the URLs, though, it's impossible, without much more extensive checking, to tell whether two resources with different URLs have the same intellectual content or not. That's why the URN is designed to solve this problem ๐.
In this architecture, the pointers that a given information delivery tool keeps for a resource will be a URN and one or more cached URLs. When a pointer to a resource is first required (for example, when a new resource gets linked into a Gopher server), level 2 will provide a set of URLs for that URN, and the creator of the tool can then select which of those will be used. URLs are expected to eventually go stale (the resource moves, the machine goes down, etc.), so the URN can be used to get a set of current URLs for the resource, and an appropriate one can then be selected ๐. Since using the level 2 service probably costs more than simply resolving a URL, both the URN and the URL get cached for speedy access, unless something has moved. โก
4.5 Using the architecture to provide interoperability between services ๐ค
In the simplest sense, every interaction we have with an information delivery service does one of two things. It either causes a pointer to be resolved (a file to be retrieved, a telnet session to be initiated, etc.), or it causes some set of the pointers available in the information service to be selected. At this level, the architecture outlined above provides the core implementation of interoperability. Once we have a means of mapping between names and pointers, and a standard method of specifying names and pointers, the interoperation problem becomes simply handing names and pointers around between systems. Obviously, with such a simplistic interoperability scheme, much of the flavor and functionality of the various systems gets lost in transition. But, given the pointers, a system can either a) present them to the user with no additional functionality, or b) resolve the pointers, examine the resources, and then run algorithms designed to tie those resources together into a structure appropriate for the current service. Let's look at one example (which just happens to be the easiest to resolve): interoperation between the World Wide Web and Gopher ๐ธ.
Displaying a Gopher screen as a WWW document is trivial with these pointers. Every Gopher screen is simply a list of menu items with pointers behind them (we'll ignore the other functionality Gopher provides for a moment), so it's an extremely simple form of a hypertext document. Consequently, with this architecture it's easy to show and resolve a Gopher screen in WWW. For a WWW to Gopher map, the simplest method would be this: when someone accesses a WWW document, all the pointers associated with links off to other documents are brought in with the document. Gopher could then resolve the links, read the first line of each document, and provide a Gopher style screen that contains everything in the WWW document. When a link is selected, all of the WWW links for the new document are brought in, and the process repeats. Obviously we're losing a lot with the WWW -> Gopher mapping. Some might argue we're losing everything ๐ญ. However, this does provide a trivial interoperability capacity, and one can argue that the 'information content' has been preserved across the gateway ๐ฆ.
Also, the whole purpose of gatewaying is to provide access to resources that lie outside the reach of your current client. Since all resources are identifiable and accessible through layers 2 and 3, it will be easy to copy resources from one protocol to another. All we need to do is move the pointers and re-express the relationships between them in the new paradigm ๐.
4.6 Other techniques for interoperability ๐งฉ
One technique for interoperability that has recently received some serious attention is creating one client that speaks the protocols of all the information delivery tools. This approach has been taken in particular by the UNITE (User's Network Interface To Everything) group in Europe. This client would sit on the top level of the architecture in Figure 1. The technique is best exemplified by the recent work that has gone into Mosaic, a client that can speak almost all of the major information services protocols. It has a lot of appeal and has enjoyed quite a bit of success. However, there are several practical difficulties with this approach that may hinder its successful implementation ๐.
The first difficulty is one that's common to clients in general: the clients must be constantly updated to reflect changes in the underlying protocols and to accommodate new protocols. If the increase in the number of information services is very gradual, or if the underlying protocols don't change very rapidly, this may not be an insuperable difficulty. In addition, old clients must have some way of notifying their user that they are no longer current. Otherwise, they won't be able to access parts of the information mesh ๐.
The second problem may prove more difficult. Each of the currently deployed information services provides information in a fundamentally different way, and new information services are likely to use completely new paradigms for organizing and displaying the information they provide. The various clients of these services provide vastly different functionality from each other because the underlying protocols allow different techniques. It may very well prove impossible to create a single client that allows access to the full functionality of each underlying protocol while presenting a consistent user interface ๐ค.
Much of the success of Mosaic and other UNITE tools is due to the fact that Gopher, WWW, and other tools are still primarily text based. When new tools are deployed that depend more on visual cues than textual cues, it may be substantially more difficult to integrate all these services into a single client ๐.
We will continue to follow this work, and we may include it in future revisions of this architecture if it bears fruit ๐.
5. Human interactions with the architecture ๐
In this section we'll look at how humans might interact with an information system based on the above architecture ๐ซถ.
5.1 Publishing in this architecture โจ
okay so when we say "publishing" in this section, we only mean the super limited process of making a resource on the net, giving it a URN, and spreading the word that you made a brand new resource ๐ซถ
step one is making the resource. honestly? a creative thought, a couple hours of typing, and a few cups of coffee and bam, you have a new resource โ๐ . then you want to assign it a URN. you can talk to whichever publishing agent you like, whether that's your own personal one or some big org that does URN and announcement services for tons of authors ๐. once you have a URN, you can give the publishing agent a URL for your local copy and let it do its thing โจ. or! you can attach a transponder to the resource, let it figure out a local URL on its own, and let it contact the publishing agent to set up the announcement process ๐ง. a publishing agent is expected to prompt you for info about where it should announce your new resource ๐.
like, you might just want a local announcement, so only people in your company can get a pointer to the resource ๐ข. or you might want some kind of global announcement (but it'll probably cost you a bit of money!) ๐ธ.
once the announcement is out, a bunch of pieces of the resource location system will contact the publishing agent. for example, someone running a WAIS server might add your resource to their index ๐. they can retrieve it, index it, and add the indexes to their tables along with a URI - URL combination. then whenever someone uses that WAIS server, it can go off and retrieve the resource if it needs to ๐ฆ. or the WAIS server could make a local copy, and if it wants other people to find that local copy, it can give the URI -> URL mapper a URL for the local copy ๐. honestly, publication just becomes a simple matter at that point ๐
.
so where does that leave the traditional publisher? ngl, they still do a bunch of other stuff besides distribution: editorial services, layout and design, copyright negotiations, marketing, etc. ๐ the only part of their role this system changes is distributing the resource. this architecture may make it way cheaper for publishers to get their wares out to a much wider audience ๐.
copying resources would be possible just like it is on paper, but it might be easier to detect republication in this system ๐. and if most people use the original URN for the resource, there may be a reduced monetary risk to the publisher ๐.
5.2 A librarian role in this architecture ๐
bestie, we've been in a bunch of discussions with librarians over the past year, and one question we get asked constantly is "Does Peter talk this rapidly all the time?" ๐ the answer is "Yes." ๐ another question we keep getting is "If all these electronic resources are going to be created, supplanting books and journals, what's left for the librarians?" the answer is slightly more complex, but just as straightforward ๐ฅ.
librarians have excelled at obtaining resources, classifying them so users can find them, weeding out resources that don't serve their communities, and helping users navigate the library itself ๐. none of those roles are supplanted by this architecture ๐. the only differences are that instead of scanning publisher's announcements for new resources their users might be interested in, they'll have to scan the announcements on the net ๐. once they see something interesting, they can retrieve it (maybe buying a copy just like they do now ๐๏ธ), classify it, set up a navigation system for their classification scheme, show users how to use it, and provide pointers (or actual copies) of the resource to their users ๐ซถ.
the classification and selection processes in particular are services that will be badly needed on a net with a million new 'publications' a day ๐ญ, and many people will be willing to pay for this highly value added service ๐ธ.
5.3 Serving the users ๐ธ
this architecture lets users see the vast collection of networked resources in ways that are both familiar and unfamiliar โจ. bookstores, record shops, and libraries can all be built on top of it, with a bunch of different access methods ๐๐ต. specialty shops and research libraries can be easily built and then tailored to a thousand different users ๐ฆ. you never need to worry that a book has been checked out, that a CD is out of stock, or that a copy of Xenophon in the original Greek isn't available locally ๐๏ธ.
in fact, a user could even engage a proxy server to translate resources into forms that her machine can use ๐ง. for example, she could get a text version of a Postscript document even though her local machine has no Postscript viewer, or get a translation of a sociology paper written in Chinese ๐.
no matter how the system looks in three, five, or fifty years ๐ฎ, we really believe the vision above has the flexibility and functionality to start tying everything together, without forcing everyone to use the same access methods or to look at the net the same way ๐. it lets new views evolve, lets new resources be created out of old ones, and lets people move from today to tomorrow with all the comforts of home but all the excitement of exploring a new world ๐โจ.
6. References ๐
[Berners-Lee 93] Berners-Lee, T., Masinter, L., and M. McCahill, Editors, "Universal Resource Locators", RFC 1738, CERN, The Xerox Corporation, University of Minnesota, December 1994.
Deutsch, P., Master's Thesis, June 1992. Available for anonymous FTP as ftp://archives.cc.mcgill.ca/pub/peterd/peterd.thesis.
[Weider 94a] Weider, C., "Resource Transponders", RFC 1728, Bunyip Information Systems, December 1994.
[Weider 94b] Weider, C. and P. Deutsch, "Uniform Resource Names", Work in Progress.
Security Considerations ๐
Security issues are not discussed in this memo. ๐ That's the whole security section, bestie, so no hidden plot twists here ๐
7. Authors' Addresses ๐
Chris Weider
Bunyip Information Systems, Inc.
2001 S. Huron Parkway #12
Ann Arbor, MI 48104
Phone: +1 313-971-2223
EMail: clw@bunyip.com
Peter Deutsch
Bunyip Information Systems, Inc.
310 Ste. Catherine St. West, Suite 202
Montreal, Quebec, CANADA
Phone: +1 514-875-8611
EMail: peterd@bunyip.com
๐ฆ where this page comes from
- ietf: rfc1727 1994-12
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms