Z39.50 recognizes that information retrieval consists of two primary components -- selection of information based upon some criteria and retrieval of that information, and it provides a common language for both activities. Z39.50 standardizes the manner in which the client and the server communicate and interoperate even when there are differences between computer systems, search engines, and databases.
Z39.50 is an applications-layer protocol originally modelled within the Open Systems Interconnection (OSI) Basic Reference Model developed by the International Organization for Standardization (ISO). Applications-layer protocols support the communications requirements of and interact directly with computer programs residing on clients and servers that perform specific operations. Indeed, as an applications-layer protocol, Z39.50 has proven largely independent of the transport mechanisms that underlie it. Z39.50 is now widely used in the Internet environment over the Transmission Control Protocol/Internet Protocol (TCP/IP) transport service.
Distributed client/server architecture provides the foundation for Z39.50 communication and information retrieval specifications. Software for end-user interaction and display (the client) is separate from the software that manages the information, performs the search, and returns the results (the server). Z39.50 does not address the user interface (e.g., its "look and feel"), but there are protocol specifications and procedures that pertain to the Z39.50 client (referred to in the standard as the Z39.50 "origin") such as its initiation of an information retrieval query and how it requests specific operations from the server. There are also protocol specifications and procedures that pertain to the Z39.50 server (referred to in the standard as the Z39.50 "target") such as its manipulation of results sets and the formats in which it returns records to the client.
A series of messages passing between the client and server (defined by what the standard calls the Initialization Facility) establish a connection, initiate a Z39.50 session, and negotiate expectations and limitations on the activities that will occur (e.g., maximum size of the records that will be transferred from the server to the client, the version of the protocol supported, etc.). After these agreements are negotiated, the client may submit a query. The Z39.50 client translates the query into a standardized representation and passes it to a Z39.50 server (defined by the Search Facility). The server executes the search against a database(s), and a result set is created. The client can then ask for records from the result set or request from the server additional processing of the result set (defined by the Retrieval Facility). Upon receipt of the records, the client may process the records and display records to the user. The extent to which a client can perform additional processing on retrieved records (e.g., combining records from several separate searches) will depend on the user interface software since it is separate from the Z39.50 client software.
Each database residing on information servers can have unique characteristics. For example, databases may differ in the way they store data and in the access points available for searching. The records in each of the databases may also have different structures and consist of different data elements. The objective of Z39.50 is to support computer-to-computer communication in standard and mutually understandable terms and support the transfer of data between the systems independent of the structure, content, or format of the data in a particular system. However, in individual implementations, servers may be limited to specific formats of data that can be exported and the access points that are supported for searching.
When a database is searched, the client passes a query to the server. The query contains search terms (e.g., terms that the user has identified to be matched against access points in the database) and attributes of those search terms (e.g., specifying the terms as an "author" or "title," specifying if the terms are to be "truncated," etc.). Queries can include different attribute types. For example, if a user wants to search for an author's name, a "use" attribute specifies the search term as "author." If the user wants to search for all books published after a certain date, a "use" attribute specifies the search term is a "date of publication" and a "relation" attribute specifies that the user wants all dates of publication "greater than" a particular date. ANSI/NISO Z39.50 enumerates these attribute types and their values in registered attribute sets. Standardized and mutually recognized attribute sets allow implementors a common basis for intersystem communication.
After the server executes a search of a database, the server creates a result set consisting of those records that match the criteria of the query. Clients can request that servers return those records from a result set, or they can issue additional searches that further qualify a result set or use result sets as arguments in subsequent searches.
When the user wants to display records listed in the result set, ANSI/NISO Z39.50 provides choices about which data elements (i.e., element sets) from the database record the user can request. It also gives choices about the format for transferring the record (i.e., a record syntax) from the server to the client. Z39.50 registers standardized element set names and record syntaxes to support client/server communication for this aspect of information retrieval.
In addition to standardizing the initial agreements between the two systems at the start of a session, the submission of the query, and the retrieval of records resulting from the query, ANSI/NISO Z39.50 also includes features that enable:
These features are all in Version 2. Additional functionality will be included in a revised and expanded Version 3 that NISO balloted in 1994. Some implementors are already incorporating selected new features into their products and implementations.