Lecture-1 - Distributed Computing
Lecture-1 - Distributed Computing
• Performance:
e.g. many Internet applications repeatedly try to contact a server
before finally giving up. Consequently, attempting to mask a
transient server failure before trying another one may slow down
the system as a whole.
• Consistency:
e.g. need to guarantee that several replicas, located on different
continents, need to be consistent all the time - a single update
operation may now even take seconds to complete, something that
cannot be hidden from users.
Self Reading Task
• Context Awareness:
e.g. notion of location and context awareness is becoming
increasingly important, it may be best to actually expose
distribution rather than trying to hide it. - consider an office worker
who wants to print a file from her notebook computer. It is better to
send the print job to a busy nearby printer, rather than to an idle
one at corporate headquarters in a different country.
• Limits of Possibility:
Recognizing that full distribution transparency is simply impossible,
we should ask ourselves whether it is even wise to pretend that we
can achieve it.
3. Openness
Goal: offer services according to standard rules that describe the syntax
and semantics of those services. e.g.
• computer networks - standard rules govern the format, contents, and
meaning of messages sent and received.
• distributed systems - services are specified through interfaces, which
are often described in an Interface Definition Language (IDL).
• Interface definitions written in an IDL nearly always capture only the
syntax of services
• specify names of the available functions with types of parameters,
return values, possible exceptions that can be raised, etc.
• allows an arbitrary process that needs a certain interface to talk to
another process that provides that interface
• allows two independent parties to build completely different
implementations of those interfaces, leading to two separate distributed
systems that operate in exactly the same way.
3. Openness: Properties of specifications
• Complete - everything that is necessary to make an implementation has been
specified.
• Neutral - specifications do not prescribe what an implementation should look
like
Lead to:
• 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 as specified by a
common standard.
• Portability - characterizes to what extent an application developed for a
distributed system A can be executed, without modification, on a different
distributed system B that implements the same interfaces as A.
Goals: an open distributed system should also be extensible. i.e.
• be easy to configure the system out of different components (possibly from
different developers).
• be easy to add new components or replace existing ones without affecting
those components that stay in place.
4. Scalability
Scalability of a system is measured with respect to:
1. Size - can easily add more users and resources to the system.
2. Geographic extent - a geographically scalable system is one in which the
users and resources may lie far apart.
3. Administrative scalability - can be easy to manage even if it spans many
independent administrative organizations.
Scalability Limitations of Size
Concept Example
Centralized services A single server for all users
Centralized data A single on-line telephone book