Overview



next up previous
Next: Features Up: Software Distribution Using Previous: Background

Overview

 

We based xnetlib's design on the following requirements:

Speed.
Retrieving software should take seconds, not minutes as typically required by e-mail.

Usability.
The user interface should make searching through a large collection of software and documents easy.

Organization.
The system's repository should be a moderated collection, with up-to-date indexes, and a database organized to facilitate searching and ease of retrieval. The repository may be distributed over several sites.

Record keeping.
The system should have the capability of logging requests so updates and corrections can be reported to users.

Security.
The system should be secure from accidental or intentional misuse.

Portability.
The system's implementation should be as portable as possible.

Accessibility.
The system should be accessible to a large number of users.

There already exists a variety of tools for Internet browsing and for software and document retrieval [10][8]. Archie, ftp, gopher, mosaic, WAIS, and WorldWideWeb are among the most widely used.

In contrast to these other tools, xnetlib operates on a limited, moderated collection that contains the most up-to-date version of software packages. This approach of retaining control over the size and contents of xnetlib's repositories greatly simplifies organization, record keeping, and security. Xnetlib uses socket-based communication to provide the desired speed and a client design based on X Windows for portability and usability. The accessibility requirement is satisfied by making the client software freely available over the Internet.

Figure 1 shows the basic configuration of the xnetlib system.

  
Figure 1: Xnetlib configuration.

The system consists of an xnetlib server process running on a machine at a repository site, an xnetlib X client process running on a user's local machine, and TCP/IP socket-based communication links between the client and server.

Xnetlib's server process runs continually at an xnetlib repository site, listening for incoming requests from xnetlib client processes. Typically, the xnetlib server runs on the same machine and accesses the same software repository as the netlib server. Upon receiving a request, the xnetlib server determines the nature of the request and responds by transferring the appropriate file from the repository to the xnetlib client process.

The xnetlib client running on the user's local machine provides an X Window interface to the xnetlib repository. It is programmed in C, using the Athena widget libraries. This interface makes searching through the software and document collection easy. For example, an xnetlib user can view the contents of any library simply by clicking a button. Other commands, such as keyword searching or requesting software, also require just a few button clicks. To avoid unnecessary communication between the client and server, requested indexes are cached locally. Frequently requested information can therefore be quickly retrieved from local cache instead of repeatedly retrieved from the remote server. Other requests are passed to the server via sockets. Section 4 describes the use of the interface in more detail.



next up previous
Next: Features Up: Software Distribution Using Previous: Background



Jack Dongarra
Sun Dec 18 11:44:23 EST 1994