Examples:
A network of workstations. Some are assigned to users (static allocation) and
some are in a pool (dynamic allocation). Single file system. When a user types
a command, it may be executed in the user’s WS, in another idle WS or in an
unassigned WS. If a system as a whole looks and acts like a single-processor
time sharing system, it qualifies to be a DS.
Workflow system.
WWW: A simple consistent and uniform model of distributed documents.
Current state users are aware that documents are located at different places
and are handled by different servers.
Goals
A DS should
easily connect users to resources
hide the facts that resources are distributed across a network
be open
be scalable
Openness
An open DS is a system that offers services according to standard rules that describe the syntax and semantics
of those services.
In DS services are generally specified through interfaces. For example, in DS interfaces may be described in an
Interface Description Language (IDL).
An interface precisely specify the names of the functions, types of parameters, return values, exceptions etc.
Example IDL of CORBA
Hard part is to specify what that service do, that is semantics of interfaces. In practice semantic specification
is given simply in natural languages. Example WSDL
Interoperability characterizes the extent by which two implementations of systems or components from
different manufacturers can co-exist and work together by merely relying on each other’s services relying on
interfaces. Example CORBA/DCOM gateways.
Portability characterizes to what extent an application developed for a DS A can be executed, without
modification, on a different distributed DS B that implements the same interface as A.
An open DS should be flexible meaning that it should be easy to configure the system out of different
components possibly from different developers. It should be easy to add or replace components without
affecting the system.
Goals
Scaling
Scalability is one of the most important design goal for a DS. Scalabilty of a system
can be measured along at least three dimensions:
A system can be scalable wrt its size. It means we can easily add more users and
resources to the system.
A geographically scalable system is one in which the users and resources may lie
far apart.
A system can be administratively scalable meaning that it can still be easy to
manage even if it spans many independent administrative organizations.
A system scalable in one or more of these dimensions often exhibit loss of
performance as the system scales up.
Goals
Geographical scalability has its own problems. DS designed for LAN is hard to
scale for WAN. Communication in LAN is synchronous, client blocks until a
reply is sent back and mode is broadcast.
In WAN response time is generally high; network is unreliable and generally
point to point.
Goals
Scaling techniques
Scalability problems in DS appear as performance problems.
There are three techniques for scaling
Hiding communication latencies: Essentially, using asynchronous communication.
No client waiting, raising interrupts, call special handler to complete the request.
Distribution: Take a component, split into smaller parts, and distribute those parts
across the system. Example DNS – name space is organized into a tree, divided into
non-overlapping zones, each zone is handled by a name server.
Replication: Replicate components across a DS. Replication enhances availability,
performance and helps in load balancing. But replication leads to consistency
problems. Caching is a special type of replication.