RLG's Z39.50 Server: Development and Implementation Issues

Lennie Stovel, Rich Fuchs, Jui-wen Chang · Information Technology and Libraries · 1993

In 1991 and 1992, the Research Libraries Group (RLG) developed a server that implements the main features of ANSI/NISO standard Z39.50-1992, Information Retrieval Service and Protocol. The Z39.50 server allows users of other computers that run Z39.50 client programs to search RLG's bibliographic, authority, and citation databases. This service will be generally available in mid-1993. In any development project, some of the issues that the development team has to consider are the operating environment of the developed system; the development tools the team will use; the external design of the system, or how it will look to users; and the internal design, or how the programs will look. Then, of course, the coding, testing, and implementing need to be done. OPERATING ENVIRONMENT In determining the operating environment for the server, we considered putting it on a separate computer, distinct from the mainframe. Use of the UNIX operating system on such a computer might have given us some advantages in flexibility of network-connections and in maturity of network software. It also would take some of the processing load off the mainframe. In the end, we decided to run the server on RLG's Amdahl mainframe, where the databases are also housed, to avoid running a private protocol between the intermediate system and the mainframe. This also provides a smaller system that is more easily maintained because it lives on a single machine. Initially RLG planned to run the server over a protocol stack that conforms to the ISO Open Systems Interconnection model for communication between disparate computer systems. The Z39.50 standard was written to fit within this model as an application-layer protocol. RLG has several years of experience with the Linked System Project, running information-retrieval and record-transfer protocols over a stack that conforms to earlier versions of the ISO standards, and we planned to upgrade those programs to the current standards. During the time we were developing the server, however, other institutions began to express more interest in running Z39.50 over the Transmission Control Protocol/Internet Protocol (TCP/IP) suite. Since many institutions, including RLG, were expanding their use of the Internet, we decided that if our server was going to be used, it should also run over TCP/IP. We learned that the mainframe-based TCP/IP support within the Stanford Timesharing System used by RLG could support the multiuser environment we anticipated within the context of its session-handling and time-sharing systems. We then switched our focus to the TCP/IP environment. The agreements reached by Z39.50 implementors in the Coalition for Networked Information's Z39.50 Implementors Testbed (ZIT) specify the use of only one function of the protocol layers between the application layer and the transport layer: the use at the presentation-layer level of the Basic Encoding Rules (BER) found in ISO 8825 for carrying the application protocol data units (APDUs) defined in Z39.50. DEVELOPMENT TOOLS Several developers of Z39.50 clients and servers began by using the ISO Development Environment (ISODE), a publicly available set of programs and accompanying documentation that implements the upper layers of the ISO communications protocols over TCP/IP for UNIX. Generally, they found this software to be unwieldy and difficult to use. With the test-bed group's agreements, only the BER encoding and decoding routines proved useful. As their implementations progressed, OCLC, the University of California at Berkeley, and Stanford University provided code that has been widely used by others implementing under UNIX. Having decided to operate the server on the mainframe, RLG chose to use its normal language, Pascal/VS, for development. We looked for commercial ASN.1 compilers--programs that take the abstract syntax definition of the APDUs as input and generate the data structures and the encoding--but none was available for Pascal. …

Read the paper · More papers on PaperTik