This document provides an introduction to the goals, architecture, and implementation strategy for MLM, Silicon Graphics' Media Library Manager. Individual components of the Media Library Manager are described in detail in their respective design documents:
The Media Library Manager, MLM, is a software "middleware" product which allows multiple applications to manage, store and retrieve removable media. Throughout this document, we refer to a unit of removable media as a cartridge -- this might be a tape cartridge, a tape reel, an optical disk, or a removable magnetic disk. Retrieval may be performed either using a wide range of robotic library devices or by means of a human operator. MLM will support a wide range of robotic library devices, and includes facilities to make it easy for SGI or partner companies to add support for additional robotic devices.
MLM is a library management program -- it does not provide end-user application functionality, nor does it become involved in data I/O operations to cartridges. It is expected that MLM will be used in the full range of traditional tertiary storage management applications:
The traditional model is shown in Figure 1.

Client applications may choose their own essentially arbitrary naming scheme for cartridges. Each client application operates within a separate name space, so different applications may re-use the same name for distinct cartridges. Full protection is also afforded between multiple client applications, as they do not have visibility to cartridges of any other application which might be utilizing MLM. (Administrative functions do permit specific cartridges to be moved from one application to another.)
Library storage systems, including both robotic and non-robotic (manual) systems, are supported by MLM using a distinct interface. This interface is designed to make it easy to implement new libraries, while providing sufficient richness to handle large, complex library units.
Both the Client Application Programming Interface (CAPI) and the Abstract Library Interface (ALI) are designed so that applications and libraries may be added to the system without software updates to the main body of MLM. Applications or interface programs are simply installed at appropriate points in the directory hierarchy and then administrative commands provided by MLM are used to inform MLM of the existence of new applications or library units. These administrative commands may be performed on a running system.

MLM accepts high-level requests from applications and turns them into a set of low-level robotic controller operations to accomplish the task. It also schedules competing requests from different applications, establishes and enforces cartridge pools on a per-application basis, and provides a mapping from logical cartridge names (an application's view) to physical cartridge numbers (as used by robots).
MLM manages the cartridge library and mounts and dismount cartridges; once a cartridge is mounted for a client application, the client application performs I/O to the cartridge using standard UNIX I/O interfaces. MLM is not involved in the I/O operations performed by the client application to and from standard UNIX devices, as shown in Figure 3.

To provide maximum portability across different vendors and operating systems and to ensure a simple and extensible interface, MLM utilizes "typeable" ASCII commands across all major interfaces. The language used by clients is CAPI, the Client Application Programming Interface; ALI, the Abstract Library Interface, is used by MLM to interface to library control programs. Although these languages are somewhat richer than many of the standard interfaces in use today on the Internet such as TCP and nntp, the languages are designed to be simple to generate and replies are designed to be simple to parse.

As shown in Figure 4, there are several MLM interfaces in addition to the Client Applications Programming Interface (CAPI), and the Abstract Library Interface (ALI). The Abstract Drive Interface (ADI) allows MLM to perform operations on I/O devices before and after a client program utilizes the device. MLM uses the ADI to verify that a cartridge has been properly inserted into the drive, optionally to look at an initial sequence of data on the cartridge to determine if the proper cartridge has been loaded, and, when the client program is done with the drive, to obtain any statistical information which the drive might have on its operation and/or the condition of the cartridge, and finally to unload the cartridge from the drive.
The CAPI, ALI, and ADI will be published by Silicon Graphics as freely available language specifications. Other organizations are welcome to implement programs which utilize these interfaces with no royalty payments to SGI. SGI welcomes input on these interfaces, and will evaluate suggestions for extensions. SGI expects to retain editorial control over these interfaces until such time as they stabilize and can be submitted to appropriate standards groups.
Silicon Graphics expects to develop a repertoire of Library Control Programs (LCPs) for many of the common robotic libraries which are on the market, as well as a Library Control Program for manual mount operations in which human operators are used in lieu of or in addition to robotic storage libraries. SGI will also encourage vendors of robotic devices to implement their own LCPs; SGI expects to not implement an LCP for a robotic device if the manufacturer of the device chooses to implement their own LCP.
SGI will also develop a repertoire of Drive Control Programs (DCPs) for many of the common tape drives on the market, including both drives which SGI sells and those which are available through third parties on SGI's systems. In early versions of MLM, SGI does not plan to implement DCPs for non-tape devices, but in later versions, it is expected that SGI will provide support for devices such as magneto-optical disks, CDROM readers and writers, removable disk cartridges, and other removable media devices. As with LCP's, SGI will encourage vendors of drives to develop their own DCPs. Vendors may also need to develop device drivers for their drives.
Our experience with third-party peripherals has been that the most successful path to having successful, functional devices on SGI systems is through SGI's Gold Seal program. Under the Gold Seal program, SGI agrees with the device manufacturer to implement appropriate control software and to distribute this software as part of SGI's standard system software releases. An expanded Gold Seal program will provide implementation services for device drivers, DCPs, and LCPs.
A number of Administrative Interfaces are used to communicate between a number of command-line and graphical-interface administration systems which are included as a part of MLM.
All external MLM interfaces, including the Client Applications Programming Interface (CAPI), the Abstract Library Interface (ALI), the Abstract Drive Interface (ADI), and Administrative Interfaces are designed to be operable either within a single host computer system or in a networked environment with multiple computers. To ensure that cartridges are protected against unauthorized access, including attacks across a network, MLM implements a set of Interprocess Communication and Authentication functions. These functions are provided in library form and are linked in with applications so that the ASCII strings may be validated by both MLM and the client or interface program.
MLM is organized as a set of cooperating processes. The central core of the system is the MLM Server, which is a single, multithreaded process on the server. The server accepts connections from multiple clients and acts on requests by connecting to library and drive control programs. It maintains a Persistent Storage (database) which contains information on all cartridges in the system, as well as descriptions of authorized applications and their capabilites, known libraries and devices, library and drive control programs, etc.
Figure 5 illustrates the functional units present in MLM's internal architecture. The dotted lines in the diagram indicate example physical machine boundaries.
