Distributed Systems

Concepts and Design

George F. Coulouris, Jean Dollimore

Publisher: Addison-Wesley, 1988, 366 pages

ISBN: 0-201-18059-6

Keywords: Networks

Last modified: June 6, 2021, 2:46 p.m.

This book provides an introduction to the principles used in the design and construction of distributed computer systems based on networks of workstations and server computers. It describes the aims and the architectural foundations of distributed systems and provides an introduction to computer netyworks before going on to cover the following topics: remote procedure calling mechanisms, file servers, atomic transactions, file replication, protection and security issues.

The concludes with descriptions of a wealth of examples chosen to illustrate the diversity of current research activity world-wide. These case-studies include:

  • Locus
  • The SUN Network File System
  • Argus
  • The Xerox Distributed File System
  • The Cambridge Distributed Computing System
  • Amoeba
  • Mach
  • Apollo Domain
  • Grapevine

Suitable for self-study or classroom use, the book can serve as a text for an advanced undergraduate or graduate level course on Distributed Systems, or as one of several texts for advanced courses on Computer Networks or Operating Systems. It will also be an invaluable guide for professional programmers and system designers who need an authoritative survey of recent developments.

  1. An introduction to Distributed Systems
    1. Scope
      1. Loosely-coupled systems
      2. Other kinds of distributed computing systems
    2. Motivations and definitions
    3. Historical development
      1. The Alto workstation
      2. Other Workstations
      3. Xerox distributed systems
      4. Other distributed system developments before 1980
      5. Distributed system developments after 1980
      6. UNIX-based distributed systems
    4. Advantages and drawbacks
      1. Advantages
      2. Drawbacks
    5. Summary
  2. Architecture and Design Goals
    1. Introduction
    2. Architectural models
      1. The workstation/server model
      2. The processor pool model
      3. The integrated model
    3. Design goals
      1. Location transparency
      2. Consistency
      3. Effectiveness
    4. System software requirements
      1. Open systems
      2. Protection domains
      3. Filing services
      4. Window servers
      5. Naming and location of services
    5. Summary
  3. Networks and Protocols
    1. Introduction
    2. Computer networking principles
      1. Packets
      2. Protocols
      3. The ISO OSI reference model
    3. Local network technologies
      1. Ethernet
      2. Cambridge Ring
      3. Comparison of Ethernet and Ring
      4. Token Ring
    4. Protocols for distributed systems
      1. Support for client-server communication
  4. Remote Procedure Calling
    1. Introduction
    2. Characteristics of remote procedure calling
      1. Marshalling arguments and results
      2. Exception handling
      3. Separate lifetime of client and server
      4. RPC call semantics
      5. Transparency of RPC
      6. User package
    3. Interface definitions
      1. Data abstraction
      2. processing an interface definition
    4. Binding
    5. The RPC software
      1. Messag passing
      2. RPC exchange protocols
      3. Interface compiler
    6. RPC in Unix systems
      1. Interprocess communication in BSD 4.2 UNIX
      2. Admiral RPC
    7. Performance
    8. Implementing RPC with lightweight processes
      1. Monitors
      2. Implementing RPC using monitors
    9. Summary
  5. File and Directory Services
    1. Introduction
    2. Division of responsibilities
    3. The file service
      1. Operations on file attributes
      2. The construction of UFIDs
    4. Access control
    5. The directory service
    6. Summary
  6. Implementation of File Services
    1. Introduction
    2. File storage structure
    3. File location
    4. A block service
    5. Implementation of the file service operations
    6. Recoverability
    7. Summary
  7. Shared Files
    1. Introduction
      1. The need for transactions
      2. The transaction service
    2. Recovery
      1. The intentions list approach
      2. The file versions approach
      3. Implementation of file versions
    3. Concurrency control
      1. Locks
      2. Optimistic concurrency control
      3. Timestamps
      4. Comparison of methods for concurrency control
      5. Some practical issues
    4. Implementation of a transaction service
      1. Implementation of intentions lists
      2. Implementation of intentions lists with locks
      3. The commit phase
    5. Summary
  8. Collaborating Servers and File Replication
    1. Introduction
    2. A basic distributed file service
    3. A distributed transaction service
      1. Multi-server commit
      2. Implementation using timestamps
    4. Replication
      1. A master/slave system
      2. Systems with distributed control of updates
      3. Majority consensus
      4. Majority consensus with weighted voting
    5. Implementation of a replicated file service
    6. Summary
  9. Protection and Security
    1. Introduction
    2. Security loopholes
    3. Capabilities
    4. Access control
    5. Authentication
    6. Protection of ports
    7. Encryption
    8. Summary
  10. Case Studies in Distributed System Design
    1. Introduction
      1. The DB system: an illustrative example
    2. Locus
    3. The Sun Network File System
      1. The DB system in Locus and NFS
    4. Argus
      1. The DB system in Argus
    5. The Xerox Distributed File System
    6. The Cambridge File Server
    7. Amoeba
    8. Mach
    9. Apollo Domain
    10. Summary
  11. Grapevine: A Case Study
    1. Introduction
    2. System architecture
    3. RNames
    4. Software structure
    5. Registration database
    6. Message delivery
    7. Summary
  1. RPC Implementation
  2. Grapevine: An Exercise in Distributed Computing
    1. Description of Grapevine
      1. Introduction
        1. Environment for Grapevine
        2. Services and clients
      2. Design goals
      3. Overview
        1. Registration database
        2. Functions
        3. Registries
        4. Distribution of function
        5. Examples of how Grapevine works
        6. Choice of functions
      4. Message delivery
        1. Acceptance
        2. Transport and buffering
        3. Retrieval
        4. Use of replication in message delivery
      5. The registration database
        1. Implementing registries
        2. Message server names
        3. Resource location
    2. Grapevine as a Distributed System
      1. Updating the registration database
        1. Representation
        2. Primitive operations
        3. Propagation
        4. Creating and deleting names
        5. Access controls
        6. Other consequences of changes
      2. Finding an inbox site
      3. System configuration
        1. Adding or deleting rtegistry replies
        2. Creating servers
        3. Stopping and restarting servers
        4. Other reconfigurations
    3. Conclusion
      1. Present state
      2. Discussion

Reviews

Distributed Systems

Reviewed by Roland Buresund

Good ******* (7 out of 10)

Last modified: May 21, 2007, 3 a.m.

Only NFS survives today, but it still is one very good book about distributed systems.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required