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
Access Transparency
Hiding differences in data representation and the way that objects can be accessed.
Location Transparency
Users cannot tell where an object is physically located in the system.
E.g., URL
Relocation Transparency
The entire site may have been moved from one data center to another, yet users should not notice.
E.g., cloud computing
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
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.
Concurrency Transparency
Each user does not notice that the other is making use of the same resource.
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
Size Scalability
We can easily add more users and resources to the system without any noticeable loss of performance.
Geographical Scalability
The users and resources may lie far apart, but the fact that communication delays may be significant is hardly noticed.
Administrative Scalability
Can still be easily managed even if it spans many independent administrative organizations.
Last updated