The Andrew Project: What is Andrew?
The Andrew System (Andrew) is a set of computer tools that enables the user to write and edit documents, send and receive mail, read bulletin boards, write programs, and seamlessly access user and project files from any workstation. Andrew has three principle components:
• Andrew Message System (AMS)
• Andrew Toolkit (ATK)
• Andrew File System (AFS)
Andrew Message System
AMS provides a multi-media interface to mail, mailing lists, and bulletin boards. It supports several mail management strategies and implements many advanced features including authentication, return receipts, automatic sorting of mail, vote collection and tabulation, enclosures, audit trails of related messages, and subscription management. (12)
Drawing on the capabilities allowed by ATK and AFS, AMS is known for its impressive attachment support. Messages embedded with graphics, tables, or other multi-media applications can be read, edited, stored, and mailed with ease. A second beneficial performance capability of AMS is its "white pages" feature, which facilitates the mapping of human names to Unix user names and other mail-related information. Essentially the user can type a partial name into the To: column and AMS will produce the correct name based on previous correspondence, subscription information, or message trails.
Because it is the part of Andrew that users interact with most frequently, it is also the part with which they are most comfortable and on which they most rely. Nearly all Carnegie Mellon students, faculty, and staff use AMS. Much of what we have become accustomed to has been appropriated from ATK and AFS components as part of the AMS interface—commonplaces such as icons, windows interfaces, and a point-and-click mouse were analyzed in terms of their graphical representations and clarity of presentation. Also considered were typefaces, time and date stamps, and message signaling (read v. unread).
ATK, the evolutionary outcome of VIRTUE, is a portable user-interface that enables the user to edit multi-media components such as fonts, graphics, spreadsheets, or sound. It is a high-level environment for the development of user-interface applications that provide a general framework for building and combining components. ATK has been built using an object-oriented system, the Andrew Class System (Class), that also provides the ability to dynamically load and link code. (13)
The result of this architecture is the ability to embed editable components inside other editable components without having to rewrite the original code, while maintaining performance capability. That means that Andrew users can include charts, graphs, or animations alongside text with dynamic quality and true-to-form publication. More than that, though, ATK was designed with the functionality to allow all users—even those with no programming knowledge—the freedom to configure components as if they were professionals.
The breakthrough afforded by ATK is the immediate interface with embedded objects, which retain their original interactive capabilities. To allow this interactive functionality, the toolkit relies on the pairing of data objects and views. The data object contains the information that is to be displayed, while the view contains the information about how the data is to be displayed and how the user is to manipulate the data object (the user interface). The view, however, is more than a simple perspective of the data—it contains much of what makes the toolkit environment user-friendly and interactive. The scroll bar, menu options, and mouse cursor, are all a part of the view. In short, the data is what allows you to see what you see, and the view is everything that you see, not just the document itself, but the tools and guidelines that grant you access to the document.
The second significant feature of ATK is that it is window-system independent. Early PCs lacked graphical interfaces common to contemporary systems, instead operating from text-only commands. As PC popularity grew, so too did the necessity for the non-programmer to access the computing power of the workstation. To that end, window systems were adopted to provide an interactive capability for the novice user—for whom the interface is the system. Mediating the ground between user instruction and system operation is a set of applications. Because Carnegie Mellon is an open computing environment, there are incompatible workstations, which complicate usage across systems. For the non-expert user, however, there needs to be a set of tools that can negotiate the different workstations to provide a consistent experience across systems. Therefore, ATK was designed to homogenize user experience regardless of terminal choice. ATK runs under X11 built on Unix, yet is compatible with virtually all operating systems.
Andrew File System
Originally part of the VICE infrastructure, AFS is a distributed file system that provides the illusion of all files being local, regardless of their location on servers, a property referred to as "location transparency." AFS was the first distributed file system to provide this feature at good performance for thousands of users.
AFS was commercialized by Transarc Corporation in 1989 and then made into an IBM product that was extensively used in the 1990s. It was made open-source by IBM under the name OpenAFS in 2000, and continues to be in widespread use at Carnegie Mellon and many other institutions. AFS has also heavily influenced the NFSv4 network file system protocol standard that was published in April 2003 and is being widely adopted today.
AFS was the first system to demonstrate how to share information safely and efficiently in a distributed computing system shared by many users. This is a problem of fundamental importance in an academic community, because access to shared data is critical for effective collaboration. The challenge is to provide such access in a secure, reliable, efficient and usable manner that can cope well with growth in the size and complexity of the distributed system. (14)
Three vital features of AFS are its scalability, security, and simplified system administration:
1. Scalability. When a user at a workstation accesses an AFS file for the first time, it is fetched from its server and cached on the local disk of the workstation. Further references to the file are directed to the local cache copy, thus avoiding server interactions. When a file is modified, those modifications are promptly sent to the server, so that other users may see the updated version of the file. The local disk of a workstation is thus used only used as a persistent cache by AFS; servers remain the true home of data. The reduction in server load and network traffic made possible by persistent file caching is a key contributor to the scalability of AFS.
2. Security. Rather than placing trust in a large number of workstations, any of which may be subverted by users, AFS relies on the integrity of the much smaller number of servers. No user software is ever run on servers. The client-server network protocol provides support for encrypted and authenticated communication. When a user logs on to a workstation, his or her password is used to obtain security tokens from an authentication server. These tokens are saved and used as needed to establish secure network connections to file servers on behalf of the user, without prompting for a password each time. AFS simplifies controlled sharing of data through an access control list (ACL) mechanism. An ACL specifies what an individual user or specific groups of users can do to files in a directory. AFS provides tools for users to create and manage their own user groups, a capability that is especially valuable in an academic computing environment.
3. Simplified System Administration. Operations staff can focus on the relatively small number of servers, ignoring the more numerous and physically dispersed workstations. Adding a new workstation just involves connecting it to the network and assigning it an address. Users do not have to remember the servers on which files are currently located or where files were created. Operations staff can move files from one server to another without inconveniencing users, who are completely unaware of such a move. User mobility is simplified because a user can walk to any workstation on campus and access any file in AFS. Workstations can be turned off or moved at any time without inconveniencing other users. Backup is needed only on the servers, since workstation disks are used merely as caches.
Learn more about the Andrew Project with the following links:
The Andrew Project
History (An Overview)
History (The Details)
People (In Brief)
12 Carnegie Mellon University. "The Andrew Message System." 12 July 2007. http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/AUIS/ams.html.
13 Information Technology Center. "The Andrew Toolkit—An Overview." (1989).
14 Satyanarayanan, Mahadev. "Scalable, Secure, and Highly Available Distributed File Access." Computer. (May 1990): 9-21.