var@iris.brown.edu (Victor A. Riley) (04/07/90)
A little background first before I ask my question. I work at a research institute called IRIS (Institute for Research in Information and Scholarship). We have been doing research in hypermedia since 1983 and have developed the IRIS Intermedia system. Intermedia is a multi user, network based, hypermedia system. In doing our research we have developed a link server, that the client application communicates with, to store all the hypermedia information for a set of documents accessable to the user. Our current configuration is suitable for multiple users on a LAN accessing a set of documents within NFS access from the link server machine. What we now want to do is extend the access of documents and link servers to remote sites or different networks. This is simple to accomplish by having a link server run on the remote machine, connect to the server over the network, and have the link server send the documents over its socket connection. The trouble lies in how to differentiate between the index of a document on a remote machine and the index of a document on the local machine, without store the machine name with every document. Each link database assigns a unique id to the document, but this is only unique within a single database. What I want to ask the world is - Is there a means to uniquely identify a document or file on any machine from any other machine? Basically, given a unique id I want to be able to have a means of resolving where that document is actually located - machine name and/or location, directory location, etc. This unique id may be made up of as many sub-unique ids as are necessary to accomplish the goal. But I draw the line at a unique id that is over 64 bytes long. Here are some ideas I have thought about so far. The unique id shouldn't be based on the hardware ethernet address since it is too simple to have a hardware failure and swap the ethernet board or to upgrade the hardware. It shouldn't be based on the software internet address because a sysadmin could change the network address easily, and non-internet machines don't use internet numbers. However, if it WAS based on the internet number, every time the machine was rebooted and the server started up it could check if the address changed and broadcast that change to any clients of its database. Another possibilty would be to have the server itself generate a random number (or two) during installation (in the hopes that it might be unique) and use this id. Or the unique id could also be assigned to the server from a 'central clearinghouse' when the server is installed. But what if the database and documents were moved to another machine? How do you stop a user from installing the system on a second machine using the same unique id? Also, what happens if/when a system like this comes standard with the operating system? How do you assign a unique numbering scheme from the manufacturer? Apollo's DOMAIN operating system has support for something like this, but I think their unique id mechanism is limited to the local network (token ring) the computers are on, rather than the whole computer network world-wide. Correct me if I am wrong HP/Apollo folks. Is a unique id scheme possible for Unix or other computer systems across a world-wide network? If not, is there a means to make it possible in the future? Victor Riley IRIS - Brown University var@iris.brown.edu