Version 7 (modified by jbourne, 16 years ago)

--

RDS/WIP Identifier Generator

There has long been a need for an identifier generator in this project, and so we now have an experimental one.

Features

  • Allocates identifiers in a given name space (you supply the base URI ending in #).
  • All identifiers are stored in their name space in a single triplestore.
  • All identifiers have the form RNNNNNN where NNNNNN are digits and R is literal.
  • NNNNNN will never start with a zero.
  • NNNNNN will never contain a sequence NNN of three of the same digits.
  • NNNNNN will never contain any digit more than three times.
  • Results in 862407 possible identifiers from R100000 to R999999.
  • NNNNNN is allocated with a strong random number generator (PRNG seeded from an RNG).
  • While <base-uri>RNNNNNN is already recorded, it will go back and try another number.
  • There is intentionally no support for allocating "sequences" of identifiers.
  • There is intentionally no support for allocating "bulk" identifiers.
  • Uses HTTP CGI GET for operations and XML for results.

Principles

  • No one can choose their identifier.
  • No one can inadvertently create implicit knowledge by "owning" a block of identifiers - knowledge should be explicit, reservation blocks denied.
  • No one can create "de facto" maps by allocating sequences that relate to other existing identifiers (again, to avoid creating implicit knowledge).
  • Identifiers are of the same length (at least until "slots" become too sparse to find quickly, which will likely happen when its about 80% full).
  • Prized numbers (like 100000 or 999999) will be never be allocated.
  • Supports machine interfacing.

Governance

  • Any abuse of the system (ie. trying to circumvent the principles) should result in suspension of the service for the offending user and revocation of the abusing allocations.

Usage Policy for RDS/WIP

Since this was intended for the RDS/WIP, but has broader applicability (really for managing IDs of that fixed form in any namespace), then we need to come up with some policies for the RDS/WIP usage of this service:

  • The protocol - propose CGI, may accomodate SOAP?

  • Authentication - propose using existing LDAP, option to create organization accounts for automation?
  • The base URIs (namespaces) - need a decision(!)

Agenda

  • Need to apply authentication/authorization (very quick to do).
  • Do we need to broaden the concept of "prized numbers" (exclusions) to include patterns like 123456 or 383838?
  • Need to decide on a registry namespace & properties.
  • Need to decide if we record the allocater's user id and date.
Home
About PCA
Reference Data Services
Projects
Workgroups