Project LIB-4032/B - UNIverse

Large Scale Demonstrators for Global, Open Distributed Library Services

Technical Requirements Specification


D3.1.1


DOCUMENT DETAILS


Document title     Technical Requirements Specification                           

UNIverse           D3.1.1                                                         
reference                                                                         

Other references   D3.1.2 - Critical Success Factors                              
                   D3.2.1 - User Services Requirements Specification              

Author(s)          R. Murray                                                      

Availability       Public Domain                                                  

Ownership          Consortium                                                     

Version            2.1                                                            

Date               07-Oct-97                                                      

Status             Released                                                       



DOCUMENT RELEASE


Primary reviewers  WP 3.1 participants                                            

QA'd by            George Bingham                                                 

Accepted by        George Bingham                                                 

Acceptance date    30-April-1997                                                  



DOCUMENT HISTORY


Version Date      Status      Description                        Distribution        
                                                                                     

1.0     24/12/96  Draft       First issue with proposed table    Consortium          
                              of contents                                            

1.0.1   21/01/97  Draft       First draft for comment            Consortium          

1.0.2   07/02/97  Draft       Draft for comment                  Consortium          

1.0.3   23/04/97  Draft       Final draft                        Consortium          

1.0.4   30/04/97  Draft       Submitted for QA                   GB                  

2.0     30/04/97  Released                                       Consortium and EC   

2.1     07/10/97  Released    Second Release                     Consortium & EC     



Published by Fretwell-Downing, Brincliffe House, 861 Ecclesall Road, Sheffield, S11 7AE, UK on behalf of the UNIverse Consortium.



UNIverse Consortium. This document is protected by copyright. Distribution or duplication in any form or processing of the document or any part of it by electronic systems may be done only with the explicit permission of the UNIverse Consortium.

D3.1.1

Technical Requirements Specification

R. Murray - 27/01/97

Summary: This document defines the technical requirements of the system from the point of each of the components defined in the system architecture. The definitions are then further developed in the specifications work packages 4.x

TABLE OF CONTENTS

0. Introduction & Scope

1. Logical Union Catalogue 1.1 Character Set 1.2 Query Adaptation 1.3 Record Syntax Conversion 1.4 De-duplication & Merging

2. Local Services 2.1 User Profile Services 2.2 Database Profile Services 2.3 Multi-lingual Thesaurus Services & Thesaurus Storage 2.4 Local Searching, Catalogue and Object Store

3. Search Kernel / Z39.50 Facilities 3.1 Z39.50(+) Server 3.2 Scalability, Client-Server Interaction & Performance 3.3 Z39.50 Client

4. Inter-Library Loans & Document Requesting

5. Document Delivery

6. Record Download

7. User Interface & Administration 7.1 WWW Interface 7.2 UNIverse Client

8. Process Monitor

9. Error Logging

10. Components Interface

11.1. Hardware and Systems Environment 11.1 Run-time Environment 11.2 Package Software Requirements for Run-time Environment 11.3 Recommended Hardware Environments 11.4 Development Environment

0. Introduction & Scope

This document defines the overall technical requirements of the UNIverse system by defining the requirements of each of identified components defined in the system architecture (4.1.1). Requirements within this document are taken to the level of 'logical interface definitions' for components. The definitions are then further developed into concrete interfaces within the specifications work packages 4.x.

1. Logical Union Catalogue

The following subsections (1.1 - 1.5) define the technical requirements for the components within the 'Logical Union Catalogue' services.

1.1 Character Set

Scope

Internally the UNIverse server will work in Unicode; all incoming character sets are mapped into this character set. Before despatching data to UNIverse clients the character set will be 'degraded' as necessary. The character set conversion utility responsible for converting strings between character sets. It has a simple interface that accepts 3 parameters:

The utility returns the string in the required character set.

Requirements

The character set conversion utility must be capable of converting to and from Unicode. The character sets capable of being converted to and from Unicode should include:

Optional Additions:

Interface Definition

AdaptCharacterSet( Incoming String, Incoming String Character Set, Required Character Set )

Parameters:


Incoming String                        The string to be converted                 

Incoming String Character Set          The character set of the incoming string   
                                       (from those supported)                     

Required Character Set                 The required character set (from those     
                                       supported)                                 



Returns :


Outgoing String                        The string in the new character set        



Error Handling

Errors may occur from invalid conversion requests (e.g. from/to an unknown/unsupported character set). This must not cause a fatal error, the procedure should return the original string unchanged and place a message in the system debug log.

Performance

The character set conversion routine by necessity must process every string on a character-by-character basis. Whilst the character manipulation routines are expected to be very fast there is potentially a large overhead due to the frequency this routine will be called, hence the routine must be written for performance. In particular, since the conversion routine must be data driven, the caching of the conversion tables in memory should be considered.

Outstanding Issues for Full Specification:

OIDs should be used for character set representation (this allows for specifying position in shifting character sets such as ISO 8022).

1.2 Query Adaptation

Scope

The query adaptation facility will be called prior to issuing a query to a remote Z39.50 target. The facility makes use of the profile database to map the user's query onto an 'optimal' query that can be evaluated at each target. The utility has a simple call interface accepting the following parameters:

The query adaptation utility converts the requested query into the nearest query type that the target can evaluate and returns that query to the caller. If the target cannot evaluate any query that is sufficiently close to the requested query then an error condition is returned.

Requirements

A query adaptation utility must be able to :

The semantic indicator should be respected when re-formulating queries - i.e. if exact semantic match is specified the query should not be re-formulated.

Interface Definition

AdaptQuery( Incoming Type 1 Query, Target DatabaseName, Default Behaviour )

Parameters:


Incoming Type 1 Query                  The incoming query to be converted         

Target Database Name                   The target database name for which the     
                                       query should be converted                  

Default Behaviour                      Whether or not query adaptation should     
                                       take place if no semantic indicators are   
                                       set.                                       



Returns :


Returns Type 1 query                   The new type 1 query.                      



Functionality

The AdaptQuery function is called by the Z client to change to the query definition into an appropriate query for the target database. It will:

Error Handling

Errors may occur in the query adaptation function through:

Where possible these should not cause fatal errors. All errors must be logged to the system debug file.

In particular unavailability of the profile database and unknown call attributes should result in the original query terms being returned to the caller with an error being placed in the error log.

Performance

The query adaptation function is called on a once per database-query basis (i.e. once for every database within a query). This is not expected to have a significant overhead on system throughput.

Outstanding Issues for Full Specification:

Should the Universe server return an error condition or should the system rely on the Z39.50 target to respond?

1.3 Record Syntax Conversion

Scope

The record syntax conversion utility is responsible for converting all incoming record syntaxes into an internal canonical syntax (see below) and converting from that syntax to the format required by the various client interfaces.

Requirements

The record syntax conversion utility must be capable of converting to and from the internal (GRS based record syntax). The syntaxes capable of being converted to and from should include:

Optional

Interface Definition

ConvertRecordSyntax( Incoming Record, Incoming Record Syntax, Required Record Syntax )

Parameters:


Incoming Record                        The record to be converted                  

Incoming Record Syntax                 The syntax of the record to be converted    
                                       (from the supported list)                   

Required Record Syntax                 The syntax to be converted into (from the   
                                       supported list).                            



Returns :


Outgoing Record                        The record in the new syntax                



Functionality

The function may call an internal function that converts to and from the GRS record structure- this can then be called twice to convert between any supported structures.

Error Handling

Errors may occur from invalid conversion requests (e.g. from/to an unknown/unsupported record syntax). This must not cause a fatal error.

Performance

The record syntax conversion routine by necessity must process every record as they pass through the server. Record syntax conversion can be a time-consuming process, and whilst being table driven provides a more elegant and generic solution for an on-line service speed is of the essence. For this process within the search and retrieve domain execution speed is a higher priority than genericism or even conversion quality.

Outstanding Issues for Full Specification:

The definition of the GRS-1 tag paths used in the internal record syntax must be defined at the specification stage.

1.4 De-duplication & Merging

1.4.1 Operation of the De-duplication & Merge Process

Scope

This utility will project records together that are recognised as potential duplicates into a 'cluster record'. This can clearly be done to varying levels of precision and may be under user control.

The deduplication and merging process is asynchronous with messaging /'up-calling' to client interfaces. The internal record structure used within the UNIverse server will represent clusters as single GRS records.

Requirements

Operation:

Z client sends a new record/set of records to the de-duplication process (note that these will already be converted into internal format in Unicode).

The component attempts to match the new records against its currently held result set and causes either new clusters to be generated (in the case of no match) or updates existing clusters.

The Deduplication process must maintain a map of its view of a result set (and therefore an incoming client's view of the result set) onto the remote target databases' result sets.

Error Handling

Errors may occur in the de-duplication process through:

Where possible these should not cause fatal errors. All errors must be logged to the system debug file.

Performance

Of all the aspects of the UNIverse server, the de-duplication process is the one that is most likely to cause performance problems. This has to be taken into consideration in the design to enable fast throughput. Record de-duplication must be achieved in well under 1 second (10 per second would seem reasonable). Asynchronous de-duplication should be evaluated if 'in-line' deduplication proves to be too slow.

Scalability

The possibility of running the de-duplication operation as a thread or process should be considered. If this is implemented then the ability to run multiple such threads to achieve scalability should be examined.

Outstanding Issues for Full Specification:

The interface between the de-duplication process and the Zservers and Zclients must be defined.

The process architecture must be defined - is the de-duplication component a separate process and what is the cardinality of the process?

The mechanism for the Zserver notifying the user client of new records and changed records must be defined.

The notification mechanism must be consistent when 'stacking' is considered.

1.4.2 Configuration of De-duplication Process

The de-duplication process must be under user and/or system manager control. A configuration system must be used to specify duplication criteria. This configuration requires:

Example De-duplication Configuration


Data Element Name         Data Element type         %age Match                     

ISBN                      Control Number            95                             

Title                     String                    50                             

Author                    String                    10                             

Edition                   String                    10                             

Publication Date          Date                      45                             

...                                                                                



The data element name column contains names from the internal record syntax.

The user can then set a threshold value, which once a match has exceeded the record is regarded as a duplicate.

Outstanding Issues for Full Specification:

Example Match Algorithm

Zclient New Record Notification

{

Set New Record Likelihood = 100%

For each record in the existing result set or until match found:

{

For each data element in de-duplication profile:

{

If NewRecord Data Element matches Result Set Data Element according to rules specified by Data Element Type then:

{

New Record Likelihood = New Record Likelihood

* (100 - Data Element Match Likelihood)

If New Record Likelihood > Match Threshold then

{

Merge Record and update result set

Notify Zserver of modified record

Finish

}

}

}

}

Add Record to Result Set

Notify Z Server of New Record

}

2. Local Services

2.1 User Profile Services

Scope

Authentication services are provided to the Z39.50(+) server. The authentication service is used for 2 separate, but related activities:

The user profile data includes the list of remote database accounts that each user has access to. If required authentication information can be stored within the profile database to provide automatic responses to challenges from remote targets, otherwise the challenge must be passed through to the client.

Requirements

The authentication service must be callable from the Z39.50 server to establish user credentials to use UNIverse.

Z39.50 clients will call the authentication service when remote servers challenge them. The authentication service must be capable of (optionally) storing user id / password mapping for UNIverse users onto remote database accounts.

If the UNIverse server is not capable of resolving the authentication challenge the challenge must be passed on to the Z39.50(+) server and then onto the UI.

User profile information must include:

Certification services are out of scope for UNIverse.

Interface Definition

AuthenticateUser( Identity, Authentication )

Parameters:


Identity                               The user identity                          

Authentication information             Authentication information for the user    
                                       (e.g. a password)                          



Returns :


Returns                                Userid or Exception                        



Functionality

Called by Z39.50(+) server when a client connects to the UNIverse server. Checks the passed User Id and authentication information against the local user profile database to establish the user's credentials to access the UNIverse server.

GetAuthentication( Userid, Target Database )

Parameters:


Userid                                 The user identity                          

Target Database                        The name of the target database the user   
                                       is trying to connect to                    



Returns:


Identity & Authentication              The user id and authentication             
Or                                     information to be used for the target      
Exception                              database or a failure condition.           



Functionality

Called by Z39.50 client process to obtain authentication information for a target database for a particular user name. The function will try to obtain userid and authentication information from the local profile database, if it fails it will instruct the Z39.50(+) server to issue an authentication challenge to the user.

GetAvailableServices( userid )

Parameters:


Userid                                 The user identity                          



Returns:

Available Services                     List of accessible target databases held   
                                       in some structure that carries their       
                                       relationship (e.g. Target - database       
                                       tree). Also the services that are          
                                       available to the user at that database     
                                       (e.g. direct requesting or not).           


Functionality

Called by Z39.50(+) server in response to user request to list databases.

Error Handling

Authentication errors are most likely to be caused by the lack of availability of the profile database. In this case the user must not be authenticated and a user-friendly error message must be produced. The error must also be logged to the system error file.

Performance

This is not expected to be problematic.

Scalability

Distribute authentication services are considered out of scope for the UNIverse project.

Outstanding Issues for Full Specification:

How is the mediation/authorisation level of the user passed to the client?

2.2 Database Profile Services

Scope

The profile database holds data required to describe the addresses and capabilities of remote targets. The data schema holds the 'explain database' and can be populated either manually or on-line. The database profile services provide an explain interface to the Z39.50(+) server.

The Z39.50(+) server transparently provides explain information to the client :


Database                         Local                        Remote               
                                                                                   
Explain Database                                                                   

Local                   Local database, local   Manually maintained local explain  
                        explain database. The   database is presented to the       
                        Z39.50(+) server        client when the remote target is   
                        interfaces with the     'explained'.                       
                        local explain                                              
                        database.                                                  

Remote                                          The client's explain request is    
                                                cascaded on-line to an explain if  
                                                the target database. (note that    
                                                addressing information at least    
                                                must be held in the local profile  
                                                database).                         



Requirements

The database profile services are required to:

Interface Definition

DescribeTarget( TargetName )

Parameters:


Target Name                            The target /target database to be          
                                       described                                  



Returns :

Available Services                     Description of database / target           


Functionality

DescribeTarget will fetch details from the local database. This will return the available profile information and also whether the target name can self-describe. If the target can self-describe the function will start a Z-client session and issue an explain request to the target.

AdaptQueryAttribute( Use Attribute, StructureAttribute, DatabaseTargetName )

Parameters:


Use Attribute                          The use attribute to be adapted            

Structure Attribute                    The structure attribute to be adapted      

Target Name                            The target /target database to adapt the   
                                       query to                                   



Returns :


Adapted Query Attribute Combination    The use + structure attribute to be        
                                       applied by the client                      



Functionality

This is called by the Query Adaptation component to adapt individual attribute combinations. Adaptations are performed by looking up in a 5-column database table:


    Target       Incoming Use      Incoming       Outgoing Use   Outgoing Structure  
/Database Name     Attribute       Structure       Attribute          Attribute      
                                   Attribute                                         

   LOC-Books         Title         Word List         Title             Phrase        




Column                    Definition                                              

Target /Database Name     The target or target database name for which the        
                          conversion applies.                                     

Incoming Use Attribute    The use attribute to be changed.                        

Incoming Structure        The structure attribute to be changed.                  
Attribute                                                                         

Outgoing Use Attribute    The replacement use attribute.                          

Outgoing Structure        The replacement structure attribute.                    
Attribute                                                                         



The query adaptation function then is passed a triplet consisting of target/database name, incoming use attribute and incoming structure attributes. If it finds this combination in a row of the above table it returns the corresponding outgoing use attribute and outgoing structure attribute.

ListQueryAttribute( Collection of Target Database Names )

Parameters:


Collection of Target Database   The list of target databases which are to be      
Names                           queried                                           



Returns :

Collection of attribute         The list of attribute combinations supported by   
combinations                    all databases.                                    


Functionality

This may be called by the client prior to configuring its user interface for entering queries for the selected databases.

Error Handling

Errors may occur in the query adaptation function through:

Where possible these should not cause fatal errors. All errors must be logged to the system debug file.

In particular unavailability of the profile database and unknown call attributes should result in null lists being returned and an error being written to the log file.

Performance

This is not expected to have major performance implications.

Scalability

For scalability of this service, generating full explain requests and caching explain data through use of a 'crawler' or 'gatherer' should be examined.

Outstanding Issues for Full Specification:

This should be provided through an explain database proxy. These functions then must be mapped onto the Explain services.

2.3 Multi-lingual Thesaurus Services & Thesaurus Storage

Scope

The multi-lingual thesaurus services provides the search and scan facilities on the thesaurus data. Searches can be performed on local and remote thesauri.

Requirements

The UNIverse Multi-lingual Thesaurus Services must be able to:

The Thesaurus Service uses a Thesaurus Database. The UNIverse Thesaurus Database has:

The translating service is provided through the UNIverse Thesaurus. In a single thesaurus, one or more terms must be connected with the UNIverse Thesaurus. If a translation can not be obtained directly (the term is not included in the UNIverse Thesaurus), the relations of the term within the thesaurus and their connection to the UNIverse Thesaurus can be used to approximate a translation. The user is informed of the way a translation was obtained and gets an indication of the matching of the translation with the search term.

Interface Definition

FindTerm( IncomingTerm )

Searches all the thesauri on the local UNIverse server to find an entrance to a thesaurus.

Parameters:


IncomingTerm                           The term to search for                     



Returns:

List of matching terms in local        Only the local thesauri are searched.      
thesauri                               Resulting terms are displayed with their   
                                       definition and the thesaurus they are      
                                       found in.                                  


ExpandTerm( IncomingTerm )

Parameters:

IncomingTerm                           The term to expand                         


Returns:

List of related Thesaurus Terms        Only the current thesaurus is searched.    
                                       Resulting terms are displayed with their   
                                       relation to the IncomingTerm               


TranslateTerm( IncomingTerm, RequestedLanguages )

Parameters:


IncomingTerm                           The term to translate                      

RequestedLanguages                     Optional. The UNIverse Thesaurus is used   
                                       to find terms in the requested languages   
                                       in other thesauri. The Thesaurus Database  
                                       is used to select other UNIverse servers.  



Returns:


List of translated Thesaurus Terms     Each term is given with the thesaurus it   
                                       is found in and an indication of the       
                                       match between the IncomingTerm and the     
                                       TranslatedTerm                             



Functionality

The user enters a subject. FindTerm will search local thesauri for the subject. If the subject is found to be a term in one or more of the thesauri the user has the option to refine the search by using a thesaurus. If the term is not found the subject is used in the search.

The user can search further through the thesaurus with ExpandTerm or with TranslateTerm.

The search in the thesaurus continues until the user selects a term to be used in a query.

Error Handling

Errors may occur in the thesaurus function through:

Where possible these should not cause fatal errors. All errors must be logged to the system debug file.

Performance

The performance aspects of the thesaurus will be mainly governed by the database access speed.

Scalability

Whilst not specifically part of the UNIverse project it is envisaged that the distribution architecture for catalogue searching through Z39.50 will also apply to thesaurus searching. This should allow enormous scalability of the thesaurus facility.

Outstanding Issues for Full Specification:

2.4 Local Searching, Catalogue and Object Store

Scope

The local search, catalogue and object store enables the UNIverse server to operate as a database target within the UNIverse network. This can be used in 2 ways:

Requirements

Error Handling

This is a local issue for the catalogue database. Diagnostic messages sent to the UNIverse server are governed by the Z39.50 standard.

3. Search Kernel / Z39.50 Facilities

3.1 Z39.50(+) Server

Scope

The key component of the UNIverse server is the Z39.50(+) server. Its role is to transparently resolve service requests locally or using access to parallel Z39.50 client sessions. The Z39.50(+) server is the controlling process within a UNIverse transaction.

Requirements

Error Handling

The error conditions reported by the Z39.50 server should follow the definitions specified in the Z39.50 standard.

Performance

The Z39.50 server is not seen as a major performance bottleneck.

Scalability

A major scalability feature is achieved by the stability of Z39.50 server stacking.

Outstanding Issues for Full Specification:

3.2 Scalability, Client-Server Interaction & Performance

The following diagram shows the overall flow of control through the UNIverse server (this is greatly expanded in D4.1.1 - system architecture deliverable).

The basic phases & states of the transaction are:

  1. The search request - the user issues a search request to the UNIverse server. The search request is propagated to multiple search requests in Z clients.
  2. Intermediary search responses - Remote targets will independently issue search responses to the UNIverse server. These will propagate through the de-duplication process to the Z server and then be passed to the user client as a resource control report. Note that only the final search response may trigger a user client search response.
  3. Universe server presents - once the UNIverse server has received search responses the de-duplication process will start issuing present requests to the responding targets. This allows the de-duplication process to start building its record buffer.
  4. Client presents - Client present requests will be resolved by the de-duplication process from its internal buffer if possible, otherwise it will instruct the underlying clients to issue present requests to the remote targets.
  5. Result Set Changes - The De-duplication process may at any time change its view of the result set due to new records /duplicates arriving. When this happens it will instruct the Z39.50(+) server to issue a resource control report to the user client.
  6. Final search response - When the last target issues its search response the UNIverse server will issue a search response to the user client along with the resource control report as described above.

It should be noted that with this state model a UNIverse server will not look like a standard database target (it will issue 'spurious' resource control reports). However a standard Z39.50 client should be able to inter-operate with it.

An essential requirement for this model however is that a clients view of a UNIverse server talking to a UNIverse server is identical to a UNIverse server talking to a standard target (i.e. a 2 tier interaction is identical to a 3 tire interaction). Achieving this will ensure that indefinite UNIverse stacking will work at the level of the state model (proof by induction!).

Outstanding Issues for Full Specification:

3.3 Z39.50 Client

Scope

Responsible for providing access to remote database targets. Specific services include:

Requirements

Error Handling

The Z39.50 client component must deal appropriately with all the diagnostic messages specified within the Z39.50 standard.

Performance

This is not seen as a bottleneck for system performance.

Outstanding Issues for Full Specification:

4. Inter-Library Loans & Document Requesting

Scope

The ILL and Document Requesting components of the UNIverse server are responsible for managing the document delivery process from initial request to completion of the transaction.

Requirements

There are a number of different cases that this must cater for:

Processing Requests ( Requester and Responder)

Incoming messages (either requests from remote systems or responses to requests from this system) are logged to the transaction store. If these can be processed automatically (e.g. request for an electronic item that is held and can be shipped over the network) then a response message is automatically sent, the request status updated and the request processed. If manual processing is required then the ILL clerk manually updates the status, this causes the appropriate response message to be sent to the requester/responder.

Respecting the ILL State Model

The user interface that manages the transaction store must respect the state model embodied in the ISO ILL protocol:

Error Handling

Because of the possible protracted nature of an ILL / Document Delivery request many possible error conditions exist:

The system must log all errors and allow the user to track and recover from error conditions wherever possible.

A local watchdog process must check on request driver process activity and restart the process if necessary.

The system must automatically attempt retries if a remote server is unavailable for a temporary reason.

Performance

The request drivers run asynchronously, performance is not seen as a major issue.

Outstanding Issues for Full Specification:

5. Document Delivery

Scope

The document delivery component of the UNIverse server manages the electronic transmission and reception of documents. This involves two distinct operations:

Note that within the UNIverse system all document deliveries will pass through the UNIverse server for auditing and tracking purposes.

Requirements

As the diagram above depicts the delivery manager can be regarded as two logically distinct components:

Error Handling

The document delivery process suffers from the same error conditions as the ILL messaging system. These include:

The system must log all errors and allow the user to track and recover from error conditions wherever possible.

A local watchdog process must check on request driver process activity and restart the process if necessary.

The system must automatically attempt retries if a remote server is unavailable for a temporary reason.

Performance

Performance is not seen as a major issue for the Document Delivery sub-system.

Outstanding Issues for Full Specification:

6. Record Download

Scope

The record download service is available from the administrative clients to allow staff users to download records for their local catalogue.

Requirements

Error Handling

Errors could be caused by the caller asking for unsupported or unknown record syntaxes. Where possible these should not cause fatal errors. All errors must be logged to the system debug file.

Performance

The record download facility is not seen as a major performance bottleneck.

Outstanding Issues for Full Specification:

7. User Interface & Administration

7.1 WWW Interface

Scope

The WWW user interface provides end-user access to the UNIverse system. An overall interface flow is shown in the above diagram.

General interface

The user interface of the WWW access point to UNIverse will be mostly defined by the WWW gateway. The WWW client itself may have to be taken in consideration, while defining this interface, mainly to insure the consistency of the proposed interface across clients and platforms. The user interface will be based on HTML with additions in Java and/or JavaScripts to cover interface components and functionality outside the scope of HTML.

The gateway to the UNIverse server has to provide the web browser access to all the end-user services including:

Authentication service:

The WWW gateway to the Z39.50+ UNIverse server has to provide the user of the web browser access to the authentication service. The server will use the standard z39.50 Id/authentication parameter of the Init service. In this case the gateway has to pass the identity and the authentication information (password) of the user to the server, which will determine whether the user is authorised to enter into communication with it and to establish a Z39.50 association.

The web user interface will use the standard HTML forms and/or Java, requesting the users to enter their Id/password to be passed to the gateway and forwarded to the server. The interface has to give a possibility to the user to choose his own password if the UNIverse server will support this.

Database selection service:

There are different ways to provide the database selection service by the user interface based on HTML forms and Java. One is through using the explain service of the Z39.50 standard to provide a list of the available databases. The user has to be provided with all local and remote databases he has access to. The user has to have the possibility to choose one or more of the available databases by using the HTML form select tags or checkboxes and radio buttons as well. A hierarchical list of databases, classified by subject, may be required to ease database selection. The databases selected by the user have to be passed to the server through the gateway.

Multi-lingual thesaurus searching

The Multi-lingual thesaurus searching is not a functionality of the WWW gateway as such. However, the gateway will be designed to allow smooth integration with existing thesaurus browsing facilities. One such service will be integrated within the UNIverse project but the WWW gateway will not be only geared to this service. Integration of the service will be done either through HTTP redirections between the WWW gateway and an HTTP aware thesaurus searching service or through the Z39.50 search service.

Database searching

Once again, the database searching interface will be mostly based on HTML forms and Java. Multiple forms will reflect the end user levels of expertise. A simple search form will only accept simple keywords while a more advanced form will allow Boolean expressions, field selection, truncation, etc. These forms may also include parameters related to display format.

Document Requesting

The document requesting will based on services offered by the UNIverse server, which in turn reflect services available on the database servers. Depending on the service used (e.g. On-line delivery, ILL) the end user will be presented with a specific form, requesting information required by this service.

Request progress monitoring

Request progress monitoring will only be required for off-line document delivery (e.g. ILL). The role of the gateway will be simply to use the monitoring facilities of ILL. The gateway will not directly use ILL be will have to map to the services reflected by the UNIverse server interface.

Error Handling

The user interface must reflect all underlying error conditions in a user-friendly manner. The error log should be used for detailed error tracking.

7.2 UNIverse Client

Scope

The primary role of the UNIverse client is to provide access to administrative services, although it will also provide a windows-based end-user access point.

Requirements

The requirements in terms of end-user services are identical to the WWW interface. The requirements for administration include:

Error Handling

The UNIverse client should provide an interface on to the system error log to allow tracking of error conditions.

8. Process Monitor

Scope

The UNIverse server will be a complex computing environment consisting of a number of co-operating processes. In order to achieve robustness of the server environment it is essential that system management routines are available to check the status of the UNIverse processes and to provide simple routines for start-up and graceful shutdown.

Requirements

The requirements for the process monitor include:

Error Handling

The process monitor is a major defence against fatal system errors. For example if one of the system processes dies or hangs, the process monitor should force a re-start of the process. Processes that include message queues (e.g. the ILL request drivers and document delivery drivers) should then pick-up from the point of failure.

The most serious fault condition would be therefore be a simultaneous failure of the process manager and another system process (since then the system process would not then be automatically re-started). In fact a failed process manager leaves the UNIverse server in a potentially very dangerous situation - the next process failure will be fatal.

The process manager must be written for robustness - its continuous execution must be guaranteed.

Outstanding Issues for Full Specification:

9. Error Logging

A generic error logging routine is available to all system components. This provides a standard interface to be called when an error condition is encountered. The error logging sub-system logs errors to a debug file and may cause an operator alert.

Interface Definition

UniverseLog( Process, ErrorType, ErrorCode, … )

Logs an error condition to the error file.

Parameters:


Process                                The name of the process generating the     
                                       log.                                       


ErrorType                              The type/severity of the error.            

ErrorCode                              The code for the error - this provides a   
                                       lookup to an error file for descriptions.  



10. Components Interface


Component Name                         Interface Style                            

Character Set Conversion               C API (called from de-duplication          
                                       process)                                   

Query Adaptation                       C API (called from Z client)               

Record Syntax Conversion               C API (called from de-duplication          
                                       process)                                   

De-duplication & Merge                 Separate process - Sockets i/f             

Authentication & User Profiles         C API (upwards)                            
                                       SQL access to local database               

Profile Database                       C API (upwards)                            
                                       SQL access to local database.              

Multi-lingual Thesaurus Services &     C API (upwards)                            
Thesaurus Storage                      SQL access to local database.              

Z39.50(+) server                       BER / ASN.1 (upwards)                      
                                       C API (downwards)                          

Z39.50 Client                          C API (upwards)                            
                                       BER / ASN.1 (downwards)                    

Request Drivers                        C API                                      

Transaction Store                      C API                                      

System Administration                  SQL                                        

Process Monitor                        Separate Process - Sockets Interface       
                                       SNMP?                                      



11. Hardware and Systems Environment

11.1 Run-time Environment


Component                              Requirements                               

UNIverse Server                        Solaris or NT4                             

UNIverse Client                        NT4 or Windows 95 (NT only for Unicode     
                                       support).                                  

WWW Browser                            Any Java Enabled                           
                                       MS Internet Explorer 3 (+)                 
                                       Netscape Navigator 3 (+)                   

Other Z39.50 Clients                   Any version 3 clients.                     



11.2 Package Software Requirements for Run-time Environment


Component                              Requirements                               

UNIverse Server                        Oracle Database Version 7.3.x              
                                       (This will be shipped with the UNIverse    
                                       server).                                   



11.3 Recommended Hardware Environments


Component                              Requirements                               

UNIverse Server Running Solaris        SPARC 5 / SPARC 20                         
                                       Disk : Dependant on data volumes : ~4Gb    

Universe Server Running NT             Minimum : Pentium with 32Mb RAM            
                                       Recommended : Pentium with 64Mb RAM        
                                       Disk : Dependant on data volumes : ~4Gb    

Universe Client Running NT             Pentium with 32Mb RAM                      

Universe Client Running Windows 95     Pentium with 16Mb RAM                      

Combined Universe Server and Client    Minimum : Pentium with 32Mb RAM            
on Windows NT                          Recommended : Pentium with 64Mb RAM        
                                       Disk : Dependant on data volumes : ~4Gb    


11.4 Development Environment


Component                              Requirements                               

Server C Compiler                      gcc                                        

Client C Compiler                      Microsoft Visual C++ V5                    

Server Platform                        Solaris                                    

Client Platform                        Windows NT 4.0                             

Server version control system          Cvs                                        

Client version control system          SourceSafe