Distributed Link Service in Aquarelle
by Antoine Rizk and Dale Sutcliffe
Aquarelle will use a distributed link service component on a wide scale. Given that Aquarelle is aimed at a professional user population, with the likelyhood of being a paid service, the first requirement for the use of link management in Aquarelle is to reduce to a minimum the number of dangling, obsolete or erroneous links. Other advantages provided by link services are enabling creation of links by third parties and creation of links between heterogeneous third party applications.
In its simplest form, a link server only manages links , ie it keeps a simple table of source/destination couples. In its more elaborate form it keeps a representation of the hypermedia objects, like nodes, groups, links, anchors, and provides a scripting language as well. The server in this case keeps and manages an entire hypergraph and composites and is said to provide full hypermedia services.
In the Aquarelle project are two common types of information:
- primary data which is produced by museums, art galleries, and other cultural organisations that record details of their collections
- secondary data which is further information which could be specialist knowledge related to the collections.
Primary data is stored and managed on what are called archive servers, and secondary data is stored and managed in structured folders, so called because they were originally physical folders maintained by a curator over the years, on folder servers. The information in the folders naturally contains references to items on the archive servers and to other folders on related subjects. The link service is provided primarily to folder servers.
In the Aquarelle system, the access server provides the link management function. It is at the heart of the Aquarelle system, providing connections between the user clients and the archive and folder servers. Archive and folder servers are registered on the access server, which stores an identifier (archive_server_id or folder_server_id), address, and metadata (describing what is available on the server and whether server is an archive server or folder server) for each archive server and folder server.
The link management function on an access server stores details of all Aquarelle links used by folders on the folder servers. Links are defined in terms of the link identifier (link_id), type of link (link_type), the source (folder_server_id and folder_id), and the destination (folder_server_id, folder_id, and destination within the folder - an anchor point). Source folders then embed the link identifier instead of the destination when a link is specified. The link identifier is used by the link server to retrieve the destination dynamically at link invocation time.
Any changes that occur to the destination that might render the link ill-defined are communicated by the folder or archive server to the link server which updates its entries. This basic assumption is fundamental to the good behaviour of Aquarelle. It relies on the fact that content providers are interested in keeping links to their contents up to date. One way of ensuring this is by adopting an economic model for Aquarelle which requires that archive and folder servers be registered at the access server, regularly pay for their registration, and be rewarded by receiving fees for access to their contents; Aquarelle supports this by providing a good quality of service. This implies that content providers will have to keep the link server informed of any updates if they want to ensure return on registration investment. An alternative is for the Aquarelle link server to reduce the likelihood of an inconsistent link state by using knowbots to continuously poll archive and folder servers for existence and validity.
Any change in the destination address remains transparent to the source since it is only reflected in the update of link entries. Deletion of destination content or server is dealt with by informing the source servers or folder authors asynchronously so that they can take appropriate action and modify their contents. This is possible in Aquarelle, and it is one advantage of the Aquarelle link service over Persistent Uniform Resource Locators, since each link entry contains both the source and the destination. Another possibility is for the folder author to be able to specify what happens to the folder when this occurs (eg leave in incomplete state, remove access until problem is solved). Alternatively, links could be marked out-of-use, in the first instance, so that there would be the possibility of reuse, and only later deleted (on some regular basis). Folder authors or folder server administrators would then be informed only when the link had really been deleted thereby avoiding unnecessary notifications.
The dangling link problem has always been one of the major hurdles to the use of link service on local area networks. Paradoxically, in the Aquarelle distributed information system, the link service is being used as a solution to the dangling link problem. The major reason for this change in situation is that in a local environment, the server could only rely on the operating system to inform it of any changes in destination nodes, which is a virtually impossible technical requirement in most common systems. In contrast, in a distributed system in which there is a clearly defined economic model and a set of administrative rules for registration and payment, the link service could reasonably rely on the servers systems and human administrators to inform it of any changes that occur. The Aquarelle link service is being implemented on top of the Index+ database to provide management and searching of millions of links.
Antoine Rizk - Euroclid
Tel: +33 1 30441456