Design Goals

Goal 1: Supporting Resource Sharing

  • Make it easy for users (and applications) to access and share remote resources.

  • E.g., groupware, BitTorrent

Goal 2: Making Distributed transparent

  1. Access Transparency

    • Hiding differences in data representation and the way that objects can be accessed.

  2. Location Transparency

    • Users cannot tell where an object is physically located in the system.

    • E.g., URL

  3. Relocation Transparency

    • The entire site may have been moved from one data center to another, yet users should not notice.

    • E.g., cloud computing

  4. Migration Transparency

    • Supporting the mobility of processes and resources initiated by users, without affecting ongoing communication and operations.

    • E.g., mobile phones, online tracking, teleconference

  5. Replication Transparency

    • Hiding the fact that several copies of a resource exist, or that several processes are operating in some form of lockstep mode so that one can take over when another fails.

  6. Concurrency Transparency

    • Each user does not notice that the other is making use of the same resource.

  7. Failure Transparency

    • A user or application does not notice that some piece of the system fails to work properly, and that the system subsequently (and automaticall) recovers from that failure.

Goal 3: Being Open

  • An open distributed system is essentially a system that offers components that can easily be used by, or integrated into other system.

    • Components should adhere to standard rules that describe the syntax and semantics of what those components have to offer

    • Should be easy to configure the system out of different components (possibly from different developers)

  • It is crucial that the system be organized as a collection of relatively small and easily replaceable or adaptable components.

    • Monolithic systems tend to be closed instead of open

  • Separating policy from mechanism

    • E.g., a web browser provides facilities for only storing documents and allows users to decide which documents are stored and for how long

Goal 4: Being Scalable

  1. Size Scalability

    • We can easily add more users and resources to the system without any noticeable loss of performance.

  2. Geographical Scalability

    • The users and resources may lie far apart, but the fact that communication delays may be significant is hardly noticed.

  3. Administrative Scalability

    • Can still be easily managed even if it spans many independent administrative organizations.

Last updated