This Page Has Been Archived

Handle Management System

1. Overview

The Handle Management System (HMS) is used to retrieve location data associated with a "handle". A handle is a printable string which unambiguously identifies this location data. Handles may be used, for example, to identify digital objects stored within a digital library. In this instance, the location data associated with the handle would include one or more "object pointers". An object pointer identifies the "storage facility and /or rights management system" locations.

The HMS is comprised of three component types, namely Handle Generators, Handle Servers and the Handle Server Directory:

This document describes the interfaces to the Handle Management System.

2. Introduction

2.1. Handles

In order to retrieve a digital object, an identifier that is unambiguously associated with the object must be provided. This identifier should have the following properties:

In addition, the following constraints on the use of an object identifier are desirable:

An identifier that meets these criteria is called an object handle.

2.2. Information Associated with Handles

The Handle Management System associates one or more types of data with handles. These types of data may include:

The types of data that can be associated with a handle are still under discussion. However, a digital object located in the Digital Library System has its own type, an Object Pointer.

Object pointers consist of two components:

2.2.1. Associating Data with Handles

The Handle Management System provides one or more Handle Servers to provide mapping between Handles and its associated data. Handle Servers have the following characteristics:

The Handle Server Directory identifies the existing Handle Servers and holds a table which associates hash ranges with domain names of Handle Servers.

2.2.2. Using Handles to Obtain Data

Given a handle, the following steps are followed to obtain a set of data associated with the handle:

  1. A client program/system downloads the "hash range -> Handle Server domain name" table from the Handle Server Directory for future use.

  2. At a later time, the program/system obtains a handle for which pointers are desired.

  3. If the program/system "knows" the hash algorithm for the Handle Server service, it generates the hash code for the handle. The program/system consults the "hash range -> Handle Server domain name" table to determine the domain name of the appropriate Handle Server.

  4. Otherwise, the program/system selects a Handle Server at random from the "hash range->Handle Server domain name" table.

  5. The program/system sends the handle to the Handle Server as part of a "Request Pointer Information" UDP packet. The program/system can optionally request the Handle Server to perform the following additional activities:

  6. The Handle Server returns its response to the requesting program/system: