view Side-By-Side changes
INTERNET-DRAFT Larry Lannom draft-sun-handle-system-02.txt CNRIExpires July,June, 1999draft-sun-handle-system-01.txtHandleSystem: A Persistent Global Name ServiceSystem Overviewand SyntaxStatus of this Memo This document is anInternet-Draft.Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents asInternet-Drafts.Internet Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."To learn the current statusThe list ofany Internet-Draft, please check the "1id-abstracts.txt" listing contained in thecurrent Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directorieson ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).can be accessed at http://www.ietf.org/shadow.html. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [KEYWORDS]. Abstract The Handle System(r)is acomprehensive system for assigning, managing,general-purpose global name service that allows secured name resolution andresolving persistent identifiers, known as 'handles'administration over the public Internet. The Handle System manages handles, which are unique names for digital objects and otherresourcesInternet resources. This document provides an overview of the Handle System in terms of its namespace and service architecture, as well as its relationship to other Internet services such as DNS, LDAP/X.500, and URN. 1. Introduction This document provides an overview of the Handle System«, a distributed information system designed to provide an efficient, extensible, and secured global name service for use on networks such as the Internet.Handles can be used as Uniform Resource Names (URNs).The Handle Systemdefines:(a)includes an openset of protocols, (b)protocol, aglobalnamespace, and(c)adistributed service model that providesreference implementation of theglobal name service.protocol. The protocol enables a distributed computer systemallows Internet resourcestobe named as handles. A handle may containstore names, or handles, of digital resources and resolve those handles into the information necessary tolocatelocate, access, andaccess its namedotherwise make use of the resources.ThisThese associatedinformationvalues can be changed as needed to reflect the current state of the identified resource without changing the handle, thus allowing the name of the item to persist over changes of location and other current state information.Combined withEach handle may have its own administrator(s) and administration can be done in acentrally administered naming authority registration service, thedistributed environment. The name-to-value bindings may also be secured, allowing handles to be used in trust management applications. The Handle System provides ageneral purpose, distributed globalconfederated name servicefor the reliable management of information on networks over long periods of time. (Notethatin this document we do not attemptallows any existing local namespace todistinguish betweenjoin theterms 'name' and 'indentifier' and will use them interchangably.) 1. Introduction The Handle System isglobal handle namespace by obtaining adistributed informationunique handle systemthat provides a persistentnamingservice for use on networks such asauthority. Local names and their value-binding(s) remain intact after joining theInternet. Handles can be used to identify any network resources. EachHandle System. Any handle request to the local namespace may beassigned withprocessed by aset of typed values that describes its named object. The Handle System provides the handle resolutionservicethat allows these values to be retrieved. It also providesinterface speaking the handleadministration service that allows individual handles to have their own administrator(s) assigned, and be administrated oversystem protocol which would map thedistributed environment. The Handle System ensures that everyhandle request into the local name. Combined with the unique naming authority, any local name is guaranteed uniquewithinunder thecontextglobal handle namespace. There are several services that are in use today to provide name service for Internet resources, of which theHandleDomain Name System (DNS) [2,3] is the most widely used. DNS is designed "to provide a mechanism for naming resources in such a way that the names are mappable into IP addresses andmay be retainedare usable in different hosts, networks, protocol families, internets, andresolved over long time periods.administrative organizations" [3]. Theresolution information associated with each handle can be changed as needed, allowinggrowth of thehandleInternet has increased demands for various extensions topersist over changesDNS, and even its use as a general purpose resource naming system, but its importance inlocationbasic network routing has led to great caution in implementing such extensions andother states of the named resource. Specifically,a general conclusion that DNS is not theHandle System was designedplace toaddress the following problems in network resource identification: * Persistence A named resource can outlast any specific computer system or organization. Anylook for general purpose resourcenamenaming. An additional factor whichis inextricably linked withargues against using DNS as aspecificgeneral purpose naming systemor name of an organization will not be able to surviveis thedemise or radical change of that computer system or organization. By separatingDNS administrative model. DNS names are typically managed by the network administrator(s) at theobject'sDNS zone level, with no provision for a per namefrom location, ownership,administrative structure, and no facilities for anyone otherstate information, the Handle System allows that identifierthan network administrators topersist over time. * Location independence With handles, thecreate or manage names. This is appropriate for domain nameofadministration but less so for general purpose resource name administration. The Handle System has been designed from theitem is unrelatedstart tothe location of the item. This allows easy reorganizationserve as a naming system for very large numbers ofinformation. Handles make it possibleentities and totransferallow administration at the name level. URLs (Uniform Resource Locators) [4] allow certain Internet resourcesfrom one organizationtoanother without affectingbe named as a combination of a DNS name and local name. The local name may be a local file path, orbreaking the existing user references (i.e., handles)a reference tothose collections.some local service, e.g. a cgi-bin script. Thisis not possible using location based references. * Multiple instances of an item A single handle can refer to more than one instancecombination of DNS name and local name provides anetwork resource. A network service may thus define multiple entry pointsflexible administrative model foritsnaming and managing individual Internet resources. There are, however, several key limitations. Most URL schemes (e.g., http) are defined for resolution servicewith a single handle name. This allowsonly. Any URL administration has to be done either at the local host, or via some other network service such as NFS. Using a URL as a name typically ties the Internet resource todistributeitsservice load into multiple instances. The Handle System has been implementedcurrent network location, andis currently in use in a number of prototype projects, including efforts withto its local file path when theLibraryfile path is part ofCongress,theAssociation of American Publishers,URL. When theDefense Technical Information Center, and the United States Information Agency. This is the first of a series of planned documents that will specify the handle protocol and services, and relateresource moves from one location to another, for whatever reason, the URL breaks. The Handle System is designed toother IETF activities in URN/URI/URL working groups. This document provides a concise overview of the systemovercome these limitations and to add significant increased functionality. Specifically, thesyntax of handles. Additional information can be found on CNRI and related project web sites [4, 5, 6, 8, 16, 17, 18, 19]. 2.HandleSyntaxSystem is designed with the following objectives: Uniqueness: Every handleinis globally unique within the HandleSystemSystem. Persistence: A handle isdefinednot derived intwo parts: its naming authority, otherwise know as its prefix, and a unique local name under that naming authority, otherwise known as its suffix. The Handle System protocol mandates UTF-8 [2] as the only encoding foranyhandles specified in the protocol packet. The naming authority identifies the administrative unit ofway from theunderlying handles. Itentity which it names, but isglobally unique and will be persistent once obtained. Naming authorities may consist of any UTF-8 encoded characters defined in the Unicode 2.0 [1] standard except '.' (%x0E)assigned to it independently. While an existing name, or'/' (%x2F). ASCII characterseven a mnemonic, may be included in a handle for convenience, thenaming authority are case insensitiveonly operational connection between a handle andare converted into upper case before resolution taking place. The local name underthenaming authority may consist of any UTF-8 encoded characters defined inentity it names is maintained within theUnicode 2.0. ItHandle System. This of course does notimpose any reserved or excluded characters. ACSII characters withinguarantee persistence, which is a function of administrative care, but it does allow thelocalsame nameare case insensitive,to persist over changes of location, ownership, andare converted into upper case before resolution taking place. The following isother state conditions. For example, when a named resource moves from one location to another, the handlesyntax described in ABNF [21] notation: <Handle> = <Naming Authority> "/" <Local Name> <Naming Authority> = *( <Naming Authority> "." ) <NA Name> <Local Name> = 1*( %x00-FF ) ; any octets that map to UTF-8 encoded ; Unicode 2.0 characters. <NA Name> = 1*( %x00-2D / %x30-FF ) ; any octets that map to UTF-8 encoded ; Unicode 2.0 characters except octets ; %x2E-2F which map to ASCII characters ; '.' and '/'. Here are some examples of valid handles thatmay beusedkept valid by updating its value in the Handle Systemprotocol: cnri.dlib/july95-arms 10.1002/0002-8231(199601)47:1<1:SPOTEO>2.3.TX;2-K any-printable-characters/a-zA-Z0-9!@#$%^&*()_"<>,.?/`~|\ handles-in-germany/Universit~{#?~}-Karlsruhe 3. Handle datato reflect the new location. Multiple Instances: A single handlewithin the Handle System is associated with,can refer to multiple instances of a resource, at different and possibly changing locations in a network. Applications can take advantage of this to increase performance and reliability. For example, a network service may define multiple entry points for its service with a single handle and so distribute the service load. Extensible Namespace: Existing local namespaces may join the handle namespace by acquiring a unique handle naming authority. This allows local namespaces to beresolved to, one or more elementsintroduced into a global context while avoiding conflict with existing namespaces. Use oftyped data. Examplesnaming authorities also allows delegation ofdata types in use include URLs, object request brokers,service, both resolution andother URNs. Other examples might include e-mail addresses or public key certificates. There isadministration, to acontrolled setlocal handle service. International Support: The handle namespace is based on Unicode 2.0 [1], which includes most ofnamed types accepted bythesystem. This list can be extended as needed atcharacters currently used around the world, facilitating the use of the systemlevel. Eachin any native environment. The handlewill also have its administrative data.protocol mandates UTF-8 [5] as the encoding used for handles. Distributed Service Model: Theadministrative data, e.g., permissions to create handles or editHandle System defines a hierarchical service model such that any local handledata, is initially providednamespace may be serviced either bythea corresponding local handleserver whenservice or by thehandle was first created.global service or by both. Theadministrative dataglobal service, known as the Global Handle Registry«, can be used todefine thedispatch any handleadministrator that managesservice request to the responsible local handledata. This administrative data is not returned as partservice. The distributed service model allows replication of any given service into multiple service sites and each service site may further distribute its service into a cluster of individual servers. (Note that local here refers only to namespace and administrative concerns. A local handle service could in fact have many service sites distributed across the Internet.) Secured Name Service: The handleresolution but isprotocol allows handle servers to authenticate their clients and to provide data integrity service upon client request. Public key and/or secret key cryptography may be used. This may be used to prevent eavesdroppers from forging client requests or tampering with server responses. Distributed Administration Service: Each handle may define its own administrator(s) or administrative group(s). This, combined with the handle system authentication protocol, allows handles to be managed securely over the public network by authorized administrators at any network location. Efficient Resolution Service: The handle protocol is designed to allow highly efficient name resolution performance. To avoid resolution being affected by computationally costly administration service, separate service interfaces (i.e., server processes and their associated communication ports) for handle name resolution and administrationonly.may be defined by any handle service. This document provides an overview of the handle namespace and service architecture. It also compares the Handle System with other existing Internet services, protocols, and specifications (e.g., DNS [2,3], URLs [4], X.500/LDAP [6.7.8], and URN [9,10]). Otherthanplanned documents describing therelationshipHandle System include: The "Handle Namespace and Service Definition" [11] describing the handle namespace syntax and its semantics. It will also present the handle data and service model. The "Handle Protocol Specification" [12] specifying the message layout of the handle protocol between and among handle clients and servers. The "Handle Application Programming Interface (API) Specification" [13] describing a high-level application programming interface for developing applications using handle service. Finally, the "Handle URI Syntax" [14] will specify the syntax for handles as used in the world- wide-web environment. 2. Handle Namespace Every handle consists of two parts: its naming authority, otherwise known as its prefix, and a unique local name under the naming authority, otherwise known as its suffix. The naming authority and local name are separated by the ASCII character "/". A handle may thus be defined as <Handle> ::= <Handle Naming Authority> "/" <Handle Local Name> For example, " 10.1045/january99-bearman " is a handle for an article published in D-Lib magazine [15]. It is defined under the Handle Naming Authority "10.1045", and its Handle Local Name is "january99-bearman ". (For details of handle syntax definition, see "Handle System Namespace and Service Definition" [11].) The handle namespace can be considered as superset of many local namespaces, with each local namespace having its own unique handle naming authority. The naming authority identifies the administrative unit of creation, although not necessarily continuing administration, of the associated handles. Each naming authority is guaranteed to be globally unique within the Handle System. Any existing local namespace can join the global handle namespace by obtaining a unique naming authority, with the resulting handles being a combination of naming authority and local name as shown above. Handles may consist of any printable characters from the Universal Character Set, two-octet form (UCS-2) of ISO/IEC 10646, which is the exact character set defined by Unicode v2.0. The UCS-2 character set encompasses most characters used in every major language written today. To allow compatibility with most of the existing systems and prevent ambiguity among different encoding, handle protocol mandates UTF-8 to be the only encoding used for handles. The UTF-8 encoding preserves any ASCII encoded names, which allows maximum compatibility to existing systems without causing naming conflict. Some encoding issues over the global namespace and the choice of UTF-8 encoding are discussed in [16]. By default, handles are case sensitive. However, any handle service, including the global service, may define its namespace such that all ASCII characters within any handle are case insensitive. Handle naming authorities are defined in a hierarchical fashion, i.e., a tree structure. Each node and leaf of the tree is given a label that corresponds to a naming authority segment. The parent node presents the parent naming authority of its child nodes. Unlike DNS, handle naming authorities are constructed left to right, concatenating the labels from the root of the tree to the node that represents the naming authority. Each label is separated by the octet used for ASCII character æ.Æ (0x2E). For example, a naming authority for the National Digital Library Program ("ndlp") at the Library of Congress ("loc") is defined as ôloc.ndlpö. Each naming authority may have many child naming authorities registered underneath. Any child naming authority can only be registered by its parent after its parent naming authority is registered. However, there is no intrinsic administrative relationship between the namespaces represented by the parent and child naming authorities. The parent namespace and its child namespaces may be served by different handle services, and they may or may not share any administration privileges among each other. Every handle is defined under a naming authority. The naming authority and the local name are separated by the octet used for ASCII character æ/Æ (0x2F). The collection of local names under a naming authority is the local namespace for that naming authority. Any local name must be unique under its local namespace. The uniqueness of a naming authority and a local name under that authority ensures that any handle is globally unique within the context of the Handle System. 3. Handle System Architecture The Handle System defines a hierarchical service model. The top level consists of a single global service, known as the Global Handle Registry. The lower level consists of all other handle services, which are generically known as local handle services. The Global Handle Registry provides a handle service (for resolution) and can be used to manage any handle namespace. It is unique among handle services only in that it provides the service used to manage the namespace of handle naming authorities, all of which are managed as handles. The state information of these naming authority handles is the service information that clients can use to access and utilize associated local services. The local handle service layer consists of all local handle services managing all handles under their naming authorities, providing resolution and administration service for these local names. Local services are intended to be hosted by organizations with administrative responsibility for the handles within the service or acting on behalf of the responsible organizations. A second important aspect of Handle System architecture is its distributed nature. The Handle System as a whole consists of a number of individual handle services, each of which consists of one or more handle service sites, where each site replicates the complete individual handle service, at least for the purposes of handle resolution. Each handle service site in turn consists of one or more handle servers. There are no design limits on theGlobal Handle Registry and localtotal number of handle servicesdescribed above,which constitute the Handle System, there are nohierarchical relationships assumed among handle records. Note, however, that handles can include in their associated data references to other handles, thus allowing hierarchical or other relationships to be constructed as needed. 4. Using Handles indesign limits on theWorld Wide Web 4.1 Handle URI syntax The Handle Syntax in section 2 definesnumber of sites which make up each service, and there are no limits on theencoding rules for handles transferred overnumber of servers which make up each site. Replication by site, within a service, does not require that each site contain thewire viasame number of servers; that is, while each site will have theHandle System protocol. Handlessame replicated set of handles, each site mayalso be referenced asallocate that set of handles across aURI [22], which can be used in Web browsers or in HTML mark-up documentsdifferent number of servers. This distributed approach is intended toreferaid scalability and topersistent Internet resources. The Handle URI syntax definesmitigate problems of single point failure. Figure 3.1 illustrates a potential handle service that consists of two service sites, one located at thesyntax rule for handles specified inUS East coast and theURI format. Handles defined as a Handle URI may be resolved byother at theHandle System Resolver [4].US West coast. TheHandle System Resolver will convert the URI intoEast coast service site consists of four host computers that process all theHandle (as defined in section 2) before doingclient requests, and theresolution.West coast service site, with more powerful computers deployed, decides two host servers will suffice. The number of service sites for any HandleURI Syntax is definedSystem, asfollows: <Handle URI> = "hdl:" [ <Modifier> "@" ] <HandleRef> <Modifier> = [ <Encoding> ] [ "type=" <Type-id> ] <Encoding> = 1*40( %x01-7F ) ; A registered charset name [23] from IANA, ; whichwell as the number of servers that are used by any service site, may beany printable ASCII characters. <Type-id> = 1*(%x30-39) ; digits 0 - 9. <HandleRef> = 1*( %x00-%xFF ) ; Octets that encodesadded or removed dynamically according to the service requirement. ------------------------- ------------------ | --------- --------- | | ----- ----- | | | | | | | | | S | | S | | | | server1 | | server2 | | | | E | | E | | | | | | | | | | R | | R | | | --------- --------- | | | V | | V | | | --------- --------- | | | E | | E | | | | | | | | | | R | | R | | | | Server3 | | Server4 | | | | | | | | | | | | | | | | 1 | | 2 | | | --------- --------- | | ----- ----- | ------------------------- ------------------ Handle Service Site 1 Handle Service Site 2 (US East Coast) (US West Coast) Fig. 3.1 Handle service configured with two service sites. Each handle service manages a<Handle> using the ; <encoding> insub-namespace under theoptional <Modifier>. ; If no <Modifier> specified, UTF-8 encoding ;Handle System. The sub-namespace typically consists of handles under a number of naming authorities. The handle service is called thedefault encoding. When UTF-8"home" service of these naming authorities and is theencoding used, the Handle URI Syntax has two reserved characters, %only one that provides resolution and". The character % is usedadministration service forhex encoding, which is necessaryits handles. Before resolving a handle, a client has toallow any handles specified from the standard keyboard. Anddetermine thecharacter " is reserved to allow handles to be separated from"home" service of thesurrounding text in HTML documents. Reserved characters must be hex encoded when usedhandle inthe URI context.question. Thechoice"home" service of% and hex encodingeach handle isalso compatible with the current URI practice. Because some browser implementation (incorrectly!) drops the # character when processingtheURI regardless"home" service of itsscheme, hex encoding of character #naming authority and isalso recommended. Examples of handles usingregistered at the Global HandleURI Syntax are: hdl:cnri.dlib/july95-arms (which refers to handle "cnri.dlib/july95-arms") and hdl:handle-with-hex-encoding/handle%25abc (which refers toRegistry. This determination is carried out by the client software. The Global Handle Registry manages naming authority handles. Each naming authority handle"handle-with-hex-encoding/handle%abc") It's worth notingmaintains the service information that describes thehandle namespace by itself does not impose any hex or escape encoding, nor does"home" service of theunderlying Handle System.naming authority. Thereserved characters and hex encoding are introduced only when handles are used in the URI context. It isservice information lists theclient software's responsibility to decode any hex encoding inservice sites of the handleURI before sending the handles out for resolution. And on systems where other character set encoding is used, it is alsoservice, as well as theclient software's responsibilityinterface toconvert a natively displayedeach handleto its UTF-8 encoding before sending it out for resolution. 4.2 Handle Resolutionserver within each site. To find the "home" servicefrom Web browsers Handles specified using Handle URI Syntax (ie, hdl:<HandleRef>) can be resolved fromfor any handle, aWeb browser directly usingclient can query the Global HandleSystem Resolver [4]. The Resolver is a freely available extension toRegistry for thecurrent popular Web browsers. It resolves handles into corresponding URIs, which are then retrievedservice information that is maintained by thebrowser in the normal fashion. This iscorresponding naming authority handle. The service information provides thesuggested waynecessary information for clients toresolvecommunicate with thehandles inôhomeö service for any request. Figure 3.2 shows an example of a typical handle resolution process where thefuture, because it provides better performance, is more scalable, and"home service" islocally configurable. Handles can also be resolved using proxy services using Handle Proxy Syntax (ie, http:<proxy>/<handle>).a local handle service. In this case, theproxy server performsclient is trying to resolve the handleresolution task,"cnri.dlib/july95-arms" andsends the resulting URLhas to find its "home" service from theclient browser for processing. Currently, CNRI providesglobal handleproxy server through "hdl.handle.net", and "dx.doi.org".registry. Theproxy server allows handlesôhomeö service is determined by sending a query tobe resolved without additional softwarethe Global Handle Registry for theclient. For example, a handle "cnri.dlib/july95-arms" may be entered as "http://hdl.handle.net/cnri.dlib/july95-arms" resolvable by any browser. It is worth notingcorresponding naming authority handle. The Global Handle Registry returns the service information thateven though usingdescribes theproxy server approachlocal handle service that isstraight-forward and doesn't require any customer software customization, it hasresponsible for handles under theeffect of connectingnaming authority ôcnri.dlibö, including thehandles withhandle ôcnri.dlib/july95-arms". The service information allows theproxy server's URL location. Henceclient to identify theselectionlocal handle service in order to resolve the handle. ------------------------ | | 4. Result ofa proxy server should be madeclient request | Client withcare. 4.3 Creating handlesglobal | <------------------------------. | service information | | | | ---------------------------. | ------------------------ 3. Request to responsible | | | ^ local handle service | | 1. Client | | | | request | | | | on "cnr | |2. Service information | | i.dlib/ | | for "cnri.dlib" V | july95- | | ------------------- arms" | | | | V | | Local service | --------------- | responsible fornetwork resources The| | | | naming authority | | Global HandleSystem allows handles| | "cnri.dlib" | | Registry | | | | | ------------------- --------------- Fig. 3.2 Handle resolution starting with global To improve resolution performance, any client may choose tobe created in a distributed fashion. Organizations in needcache the service information returned from the Global Handle Registry and use it for subsequent queries. A separate handle caching server, either stand- alone or as a piece ofprovidinganaming service for their persistent internet resources willgeneral caching mechanism, may also beable to contact CNRI or other organizationsused toregister for their own handle naming authority, as well as their ownprovide shared caching within a localhandle services. This will enable them to create handles for their own organizational use. Policies and procedures for Naming Authority registration are currently under development. As an initiative for general public service, CNRI has establishedcommunity. Given apublic handle registration service forcached resolution result, subsequent queries of theIETF community. Thissame handle may be answered locally without contacting any handle service. Given cached serviceprovides an open channel to allow individualsinformation, clients can send their requests directly tocreate handles and experiment withthe responsible handlesystem. The service is provided for testing purposes only. Future availability of thisserviceis not guaranteed. Details on how to use this service, as well as its terms and conditions can be obtained from http://www.handle.net/ietf/handle/register_handle.html. 5.without contacting the Global Handle Registry. 4. Handle System ServiceArchitectureand Security The Handle Systemis distributed, scalable, and designed for widespread deployment. The current implementation consists of one global service and many localprovides handleservices. Eachresolution service, as well as handle administration serviceconsists of one of more physically distributed handle servers. (Currently,over theglobal service consists of two servers in Virginia and two in California. A European location is planned.) And eachpublic Internet. Each handleservercanhave one or more secondary servers for mirroring. In addition,be assigned a set of values. Clients use the handlecaching servers are provided for fasterresolution serviceforto resolve any handle into its set of values. Each value has alocal environment,data type andtheya unique value index. Clients canalso be used to provide proxyquery for specific handle values based on data type or value index. The handle administration servicethrough firewalls. 5.1 Handle servicesdeals with client requests to manage handles, including adding handles, deleting handles or updating their values. It also deals with naming authority administration via naming authority handles. Each handle can define its own administrator(s) and each administrator is granted a certain set of permissions. The handle system authentication protocol authenticates the handle administrator before fulfilling any administrative request. The Handle Systemconsists of many services. Eachprovides authentication and data integrity services, depending on client request. By default, the handle resolution serviceis responsibledoes not require any client authentication. However, resolution requests forpartconfidential data assigned to any handle (by its administrator), as well as all administration requests (e.g. adding or deleting handle values) require authentication of thehandle namespace. One specific service, calledclient as having theGlobal Handle Registry,requisite authority. When authentication isglobally unique, and hasrequired, the responsible handle server will issue aspecial function, which ischallenge toknow oftheexistence, location, and namespace responsibilities of all other public services,requesting client before carrying out the client's request. To satisfy the authentication requirement, the client must send back the correct response that identifies itself as the administrator orlocal handle services. There can be an unlimited numberotherwise in possession oflocal handle services, managed by various organizations. Inthecurrent implementation each localappropriate credentials. The handleservice is registered withserver will respond to theGlobalinitial request only after successful authentication of the client. HandleRegistryclients may choose toensure efficient resolution. Policies and proceduresuse either secret key or public key cryptography fordisconnected localauthentication. Handle clients may also request digitally signed responses from any handleservices are under development. The primary issue here isserver, toguarantee identifier uniqueness in disconnected systems. 5.2 Handle serversensure data integrity. Additionally, any handle server or its clients have the option to set up a secured communication session. Information transferred within the secured session will be encrypted with a session key to ensure data confidentiality. The Handle System provides serviceEach handle service consistsoptions for the safe transmission ofone or moreinformation between client and server. This does not imply any credentials of the handleservers. Typically, eachvalues. Incorrect values assigned to handles by any of the administrators may very well mislead clients. On the other hand, any handleserver runs on a separate computer but multiplevalue record may contain references to other handleservers can run onvalue records to provide additional credentials. For example, asingle computer. Withinvalue record R (e.g., ahandle service, the distributionclaim) ofhandles across its constituent servers is determined byany handle may contain ahash table suchreference to some other value record (from another handle) thateach of N servers withincontains aservice will be responsibledigital signature for1/N handles. The number of servers can be adjusted as required to meettheneeds of a service. 5.3 Server replication Additionally, it may be desirablevalue record R. Clients who trust the signature could then trust the value record R. Handle system security depends on both client and server host security at every step in the transaction. It assumes the client host has not been tampered with and that client software will convey reliably the received data tomirrorthecontentsclient. The client of anyof thehandle service must also assume that any handle serverswithin a service, presumably on a separate computer. This is referredinvolved have not been compromised. To trust the Global Handle Service means toas replication and is accomplished by creating one or more additional servers whose sole purpose istrust that it will rightfully direct the client request tomirrorthecontents ofresponsible Handle Local Service. To trust a Local Handle Service means to trust that it will correctly respond with theoriginal server. Within eachdata that was entered by the administrator. A Local Handle Service typically supports a set ofreplicated servers, the initial server is called the primary server and all others are called secondary servers.naming authorities. Thus, trusting a Local Handle Service means trusting its naming authority. 5. ThecreationHandle System andadministrationother Internet Services There are a number ofhandles always takes place on the primary server, but resolution can use either the primaryexisting and proposed Internet identifier services oranyspecifications that by design or intent cover some ofits secondaries. This provides fault tolerance, as well asthepotentialfunctionality proposed forperformance improvement. 5.4 Caching Server Thethe HandleSystem Caching Server has been builtSystem. This section briefly reviews them in relationship toreducethenetwork traffic between handle clients and handle servicesHandle System. 5.1 Domain Name Service (DNS) The Domain Name Service, or DNS, was originally designed andits useisstrongly encouraged. Caching handle data orheavily used for mapping domain names into IP Addresses for network routinginformation on the caching server allows some handle resolution to be performed within an organization's local area network. 5.5 Proxy Serverpurposes. RFC1034 [2] and RFC1035 [3] provide detailed descriptions of its design and implementation. TheHandle System Proxy Servergrowth of the Internet hasbeen developedincreased demands for various extensions toactDNS, and even its possible use as aclient to the Handle System, allowing handles to be resolved using Handle Proxy Syntax (ie, http:<proxy server>/<handle>). Using this syntax,general purpose resource naming system. However, any such use has thebrowser passes a handlepotential to slow down theproxy server, whichnetwork address translation, and alter its effectiveness inturn passes the handlenetwork routing. DNS implementation typically does not scale well when large amount of data is associated with any particular DNS name, and is generally considered not adequate tothe appropriate handle servicesupport a very large number of DNS names used forresolution. Ifnaming any kind of resources over thehandle can be resolved into one or more URLs,Internet. An additional factor that argues against using DNS as aURLgeneral purpose naming system isreturned from the handle server totheproxy, and fromDNS administrative model. DNS names are typically managed by theproxy tonetwork administrator(s) at theclient browser. 5.6 Handle System Resolver The Handle System Resolver [4] isDNS zone level, with no provision for asoftware component which extends Netscape or Microsoft Web browsers,per name administrative structure, andallows handles to be resolved using Handle URI Syntax (ie, hdl:<handle>). Using this syntax, the browser passes the handle directly to the appropriate handle serviceno facilities forresolution. If the handle can be resolved into oneanyone other than network administrators to create ormore URLs, one of the URLsmanage names. This isreturned to the browser which then transparently retrieves and displays the intended content. 6. Handle resolution Handle clients and handle services use the Handle Resolution Protocol [5] to conduct resolution transactions.appropriate for domain name administration but less so for general-purpose resource name administration. The HandleResolution protocol uses registered port number 2641. By default, aSystem differs from DNS in its distributed administration and service model, as well as its secured service protocol (see section 4). Each handleresolution request will be answered with all of the typed data associated with a handle, withwithin theexception ofHandle System may define its own administrator(s), and theadministrative data. It is also possible to request data only of a certain type.HandleclientsSystem defines a distributed administration and access control model thatdo not know whichallows an individual handleserviceand its contents toquery for a given handle start withbe managed securely over theGlobalpublic network. The HandleRegistry, which is guaranteedSystem service model allows any of its service sites toknow whichdynamically configure its servicecontains a given handle. Within a given service,distribution among aclient uses the hash table specificcluster of servers totheaccommodate increased service requests. This also allows less powerful computers todiscover the individual server, or set of replicated servers, which can resolve the given handle. Abe used together to support any huge number ofhandle resolution clients have been constructed, all of which utilize the Handle Client Library [6], whichhandles. 5.2 Directory Services (X.500/LDAP) X.500 [6] iscurrently implemented as a C library. The clients include a Web proxy server,theHandle System Resolver [4],OSI Directory Standard defined by ISO and theGrail Web browser [7]. 7. Handle administration Handle System administrationITU. It iscarried out using the Handle System Administration Protocol [8]. This protocol allowsdesigned ôto provide a white pages service that would return either thecreation and administrationtelephone numbers or X.400 O/R addresses ofhandlespeopleö, andtheir associated data withinis ôconcerned mainly with providing theHandle System. A series of APIs currently under construction on top of this protocol will be made publicly available. 8. Security Consideration The Handle System has been designed to enable secure transactions between clients and serversname server service for Open Systems Interconnection (OSI) applicationsö [7]. X.500 defines a hierarchical data and information model with a set of protocols to allowsecureglobal name lookup andstable storage of handle data. Developmentsearch. The protocol, however, has proved difficult to implement anddocumentationthere has been difficulty in getting ôclient access integrated into existing productsö [17]. LDAP (Lightweight Directory Access Protocol ) [8] has overcome many ofsecure practicesthese difficulties by making the protocol simpler, andpolicieseasier to implement. Some concern remains, however, that as LDAP isunderway. A handle does not in itself poseemerging from asecurity threat. When specified or used in URL context,local directory access protocol (LDAP v2) into a distributed service protocol (LDAP v3), itis subject to all the security considerationsfaces many issues not addressed in its original design, resulting in new complications [22]. The fundamental difference between a name resolution service such as theURL specification [3]. 9.Handle System andURL/URN/URI Whilea directory service such as LDAP is search capability. The added functionality of being able to search a directory service necessarily carries with it added complexity. A pure name service, such as the Handle Systemis designed to be usablecan, inmany contextscomparison, be designed solely around efficient resolution of known items without addressing functions andis not a subset or extensiondata structures required for discovery ofcurrent UR* schemes, it canunknown items based on incomplete criteria. Directory services such as LDAP or WHOIS++ [18,19] may be used inconjunctiontandem withthose schemes. When used within those schemes it is, of course, subject to their constraints. Thethe Handle Systemis designedto provideall the fundamental requirements outlined in the URN/URI specifications [9,10]. On the other hand, the Handle System differs fromreverse name lookup service. Existing corporate directory services, for example, could provide a single interface to both services. The handle interface would provide a highly efficient name resolution service, while thecurrent proposed URN implementations [11,12,13] discusseddirectory service interface would provide an extended search capability. Handles could also be used, for example, intheLDAP service referral such that LDAP services could be referenced independent of network location. 5.3 Uniform Resource Names (URN) The IETF URNworking group in the following ways. First of all, the Handle System definesWorking Group [23] has defined anamespace independent of URI,syntax, possible resolution mechanisms, andis not subject to the current namespace constraints of URI. Thenamespace registration procedure for a resource identifier intended to cover a large array ofhandles is Unicode based,existing andimposes no reserved or excluded characters on the handle string. This allows handlespotential namespaces. Namespaces are to bespecified in any national language natively in a globally uniqueregistered andunambiguous manner. The elimination of any reserved characters also allows any legacy naming system, such as SICI [14],assigned unique Namespace Ids (NIDs). Any resolution services associated with these namespaces require further registration with a Resolution Discovery System (RDS) which clients could use tobe used with nobegin, orminimum change.discover, the appropriate resolution mechanisms. TheHandle System is designed to support, insteadobjectives and some ofexclude,theuseapproaches ofuser friendly namesthe URN and Handle System efforts have enough inany native language. Therecommon that some observers might think that they aresituationsinwhich using descriptive names may hurt the persistence ofcontention. This is not the case. The URN effort is explicitly designed to accommodate multiple identifier namespaces and resolution systems. The Handle System is one such case, with a very specific data and service model, and a protocol that supports nameonceresolution and administration. URNs and theidentified object changes its association. Objects of this natureHandle System maybe better served using non-descriptive names; for example, digits only. Oninteract in variety of ways, theother hand, there are objects formost obvious of whichdescriptive names are desirable. The current URN/URI was defined "generally tois that handles could befor machine, rather than human, consumption" [20]. It uses a subset of ASCII character set, and requiresregistered as aset of reserved/excluded characters. A Human Friendly Name ServiceURN namespace, which isexpectedtowork with it. URN services maysay, they could be usedto resolve handles from the Handle System. For example, the handle "cnri.dlib/july95-arms" may be specifiedas"urn:hdl:cnri.dlib/july95-arms". This will allow any URN-aware browsersa type of URN. It would also be possible toresolveuse thehandleHandle System as aURN. Handles specified as antype of RDS for other URNmust follownamespaces. The success of either system however, is not dependent upon theURN syntax [13]. 10.success of the other. 6. Historyand Acknowledgment The initial design and implementationof the Handle System The Handle System was originally conceived and developed at CNRI as part of the Computer Science Technical Reports (CSTR) project, funded by the Defense Advanced Projects Agency (DARPA) under Grant No.MDA-972-92-J-1029.MDA- 972-92-J-1029. One aspect of thisprojectearly digital library project, which was also a major factor the evolution of the Networked Computer Science Technical Reference Library (NCSTRL) [21] and related activities, was to develop a framework for the underlying infrastructure of digital libraries. It is described in a paper by Robert Kahn and Robert Wilensky[15].[20]. The first implementation was created at CNRI in the fall of1994. Subsequent work on1994 in an effort led by David Ely. Early adopters of the Handle Systemhas been supported in part byhave included theAdvanced Research Projects Agency under Grant No. MDA972-92-J-1029. The following peopleLibrary of Congress, the Defense Technical Information Center (DTIC), and the International DOI Foundation (IDF). Feedback from these organizations as well as NCSTRL, other digital library projects, and related IETF efforts as mentioned above have all contributed to the evolution of the HandleSystem designSystem. Current status and available software, both client andimplementation:server, can be found at http://www.handle.net. 7. Acknowledgements This work is derived from the earlier versions of the handle system implementation. Design ideas are based on those discussed within the handle system development team, including David Ely,William Arms, Navjeet Chabbewal, Judith Grass, Robert Kahn, Timothy Kendall, Connie McLindon,Charles Orth,Ed Overly, Varna Puvvada, John Stewart,AllisonYu-McNamara, Ron Ely, Catherine Rey,Yu, Sean Reilly, Jane Euler,Larry Lannom,Catherine Rey, andSam Sun. We also wantStephanie Nguyen. Their contributions toacknowledge the contribution of the other members of the Computer Science Technical Reports project. 11. Author'sthis work are gratefully acknowledged. 8. AuthorÆs Address Sam X. Sun Corporation for National Research Initiatives (CNRI) 1895 Preston White Dr. Suite 100 Reston, VA20191-5434 (703) 620-899020191 USA Phone: 703-262-5316 Email: ssun@cnri.reston.va.us12.Larry Lannom Corporation for National Research Initiatives (CNRI) 1895 Preston White Dr. Suite 100 Reston, VA 20191 USA Phone: 703-620-8990 Email: llannom@cnri.reston.va.us 9. References and Bibliography [1] The Unicode Consortium, "The Unicode Standard, Version 2.0", Addison-Wesley Developers Press,1996.1996, ISBN 0-201-48345-9 [2]Yergeau, Francois, "UTF-8, A Transform Format for Unicode and ISO10646", RFC2044, October 1996. http://ds.internic.net/rfc/rfc2044.txtP. Mockapetris, "DOMAIN NAMES - CONCEPTS AND FACILITIES", RFC1034, November 1987, http://info.internet.isi.edu:80/in- notes/rfc/files/rfc1034.txt [3] P. Mockapetris, "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION", RFC1035, November 1987, http://info.internet.isi.edu:80/in- notes/rfc/files/rfc1035.txt [4] Berners-Lee, T., Masinter, L., McCahill, M., et al., "Uniform Resource Locators (URL)", RFC1738, December1994. http://ds.internic.net/rfc/rfc1738.txt [4] Handle System Resolver. http://www.handle.net/resolver/1994, http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1738.txt [5]Handle System Client Library download site. http://www.handle.net/download.htmlYergeau, Francois, "UTF-8, A Transform Format for Unicode and ISO10646", RFC2044, October 1996, http://info.internet.isi.edu:80/in- notes/rfc/files/rfc2044.txt [6]Handle Resolution Protocol. http://www.handle.net/client_spec.htmlITU-T Rec. X.500, "The Directory: Overview of Concepts, Models, and Services", 1993. [7]The Grail Internet Browser. http://grail.cnri.reston.va.us/grail/D W Chadwick, ôUnderstanding X.500 û The Directoryö, Chapman & Hall ISBN: 0-412-43020-7, http://www.salford.ac.uk/its024/X500.htm [8]Handle Administration Protocol. http://www.handle.net/handle_admin.htmlWahl, M., Howes, T., and S. Kille, "Lightweight Directory Access Protocol (v3)", RFC 2251, December 1997, http://info.internet.isi.edu/in-notes/rfc/files/rfc2251.txt [9] Sollins,K.K., and L. Masinter, "Functional Requirements for Uniform Resource Names", RFC 1737, December1994. http://ds.internic.net/rfc/rfc1737.txt1994, http://info.internet.isi.edu/in-notes/rfc/files/rfc1737.txt [10]Berners-Lee, T., "Universal Resource Identifiers in WWW" RFC 1630, June 1994. http://ds.internic.net/rfc/rfc1630.txt [11] Daniel, Ron and Michael Mealling, "ResolutionSollins, K. "Architectural Principles of Uniform ResourceIdentifiers using the DomainNameSystem",Resolution", RFC2168, June 1997. http://ds.internic.net/rfc/rfc2168.txt2276, January 1998, ftp://ftp.isi.edu/in- notes/rfc2276.txt [11] ôHandle System Namespace and Service Definitionö, work in progress. [12]Daniel, Jr., Ron, "A Trivial Convention for using HTTPôHandle System Protocol Specificationö, work inURN Resolution", RFC-2169, June 1997. http://ds.internic.net/rfc/rfc2169.txtprogress. [13]Moats, Ryan, "URN Syntax", RFC-2141, May 1997. http://ds.internic.net/rfc/rfc2141.txtôHandle System Application Programming Interface (API) Specificationö, work in progress. [14]Serial Item and Contribution Identifier (SICI) Standard. http://sunsite.berkeley.edu/SICI/ôHandle System URI Syntaxö, work in progress. [15] D-Lib Magazine, http://www.dlib.org [16] Sam X. Sun, "Internationalization of the Handle System - A Persistent Global Name Service", Proceeding of 12th International Unicode Conference, April, 1998, http://www.cnri.reston.va.us/unicode-paper.ps [17] D Goodman, C Robbins, ôUnderstanding LDAP & X.500ö, August 1997, http://www.eema.org/understanding_ldap.html [18] Deutsch P., Schoultz R., Faltstrom P., and C. Weider, "Architecture of the Whois++ service", RFC 1835, August 1995, http://info.internet.isi.edu/in-notes/rfc/files/rfc1913.txt [19] Weider, C., J. Fullton, and S. Spero, "Architecture of the Whois++ Index Service", RFC 1913, February 1996, http://info.internet.isi.edu/in-notes/rfc/files/rfc1914.txt [20] Kahn, Robert and Wilensky, Robert. "A Framework for Distributed Digital Object Services", May,1995.1995, http://www.cnri.reston.va.us/tmp_hp/k-w.html[16] Digital Object Identifier System. http://hdl.handle.net/10.1000/1 [17] National Digital Library Program. http://hdl.handle.net/4263537/003 [18] The CNRI Registry. http://hdl.handle.net/4263537/001 [19] Defense Virtual Library. http://hdl.handle.net/4263537/002 [20] Sollins, K., "Architectural Principles of Uniform Resource Name Resolution", September 26, 1997, Work in Progress. ftp://ftp.ietf.org/internet-drafts/draft-ietf-urn-req-frame-04.txt[21]D. Crocker, Ed., P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997, http://info.internet.isi.edu/in-notes/rfc/files/rfc2234.txtThe Networked Computer Science Technical Reports Library (NCSTRL), http://www.ncstrl.org/ [22]T. Berners-Lee, L. Masinter, R. Fielding, "UniformDavid Goodman, Colin Robbins. "Understanding LDAP & X.500", August 1997, http://www.eema.org/understanding_ldap.html [23] IETF Uniform ResourceIdentifiers (URI): Generic Syntax", work in progress, JuneNames (URN) Working Group, April, 1998,ftp://ftp.ietf.org/internet-drafts/draft-fielding- uri-syntax-03.txt [23] List of IANA registered charset names. ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets INTERNET-DRAFT draft-ietf-handle-system-01.txt Expires Jul 16, 1999http://www.ietf.org/html.charters/urn-charter.html ----