01- Introduction to Distributed Systems

download 01- Introduction to Distributed Systems

of 5

Transcript of 01- Introduction to Distributed Systems

  • 8/12/2019 01- Introduction to Distributed Systems

    1/5

    Distributed Systems Peter Arnold [email protected]

    1

    Introduction

    A distributed system is a collection of autonomous hosts connected through a computer network. Hosts

    communicate through message passing to facilitate cooperation. A distributed system can also be

    referred to as a collection of independent computers that appears to its users as a single coherent

    system. Hosts on a distributed system work jointly to perform a single task or provide a common service.

    Examples of distributed systems

    1.

    The Web

    If you buy a flight on-line, your computer interacts with a distant machine.

    Shared Resources such as Documents

    Users interested in the documents are also distributed.

    The documents are also distributed.

    2.

    Civil Aviation

    Modern planes have replicated flight control computers (Airbus A330/A340 planes have 5 for

    in

    3.

    Peer-to-Peer (P2P) file sharing networks

    Each user contributes to the network

    Auto-organization, no centralized entity

    4.

    Bank ATMs :

    Clients at different ATMs may access the same accounts simultaneously

    ATMs use nearest central office

    Each office acts as a backup of the other

    Clients may access their accounts from ATM machines.

    z xm b m s depicted in the figure

    below.

  • 8/12/2019 01- Introduction to Distributed Systems

    2/5

    Distributed Systems Peter Arnold [email protected]

    2

    Components of a Distributed System

    Data component - Concerned with structures for information retention and manipulation

    Processing component - Concerned with processing data objects

    Presentation component - Makes data visible to users and handling user interaction

    Communication channel - Pipelines between processes. This usually refers to inter-platform network

    MessageData sent between processes over communication channel

    Characteristics of a Distributed System

    Multiple Computers

    A distributed system usually consists of more than one physical computer, each consisting of CPUs, local

    memory, and possibly stable storage, and Input/output paths to connect it with the environment.

    Interconnections

    Refers to mechanisms for communicating with other nodes on a network.

    Availability

    A distributed system should be permanently available (even though parts of it may be unavailable at

    times.

    Shared State

    If a subset of nodes cooperates to provide a service, then a shared state is maintained by these nodes.

    The shared state is distributed or replicated among the participants.

    Scalability

    Should be easy to expand and scale.

    the rest of

    email server

    Web server

    Desktopcompu ters

    File server

    router/firewall

    print and other servers

    other servers

    print

    Local area

    network

    email server

    the Internet

    F 1 z

  • 8/12/2019 01- Introduction to Distributed Systems

    3/5

    Distributed Systems Peter Arnold [email protected]

    3

    Transparency

    The separation of the components of a distributed system is concealed from the user and the

    application programmer.

    Fault tolerance

    The ability to continue in operation after a fault has occurred.

    Processes interact via non-shared local memory.

    Goals of Distributed Systems

    To ensure availability i.e. to make sure that a user requesting for a service gets it.

    To achieve consistency

    To achieve reliability

    To improve efficiency

    To improve performance

    To ensure scalability

    Advantages of Distributed Systems

    For many applications there are a number of economic and technical reasons or motivations that make

    distributed systems much more attractive than their centralized counterparts. The advantages of

    distributed systems include:

    1. Sharing of resourcesDistributed systems allow sharing of resources e.g. storage drives, printers,

    databases, files etc.

    2. Better Performance - By using the combined processing and storage capacity of many nodes,

    performance levels can be improved.

    3. Scalability - Resources such as processing and storage capacity can be increased incrementally.

    4. Inherent distribution - Some applications, such as email and the Web are naturally distributed. This

    includes cases where users are geographically dispersed as well as when single resources (e.g., printers,

    data) need to be shared.

    5. Enhanced Reliability - By having redundant components the impact of hardware and software faults

    on users can be reduced.

  • 8/12/2019 01- Introduction to Distributed Systems

    4/5

    Distributed Systems Peter Arnold [email protected]

    4

    Disadvantages of Distributed Systems

    The advantages associated with distributed systems are often offset by several problems encountered

    during the use and development of the same systems. These limitations include the following.

    New components lower network performance

    Networks are needed to connect independent nodes and are subject to performance limitations.

    Besides these limitations, networks also constitute new potential points of failure.

    Weak security

    Because a distributed system consists of multiple components, there are more elements that can be

    compromised and must, therefore, be secured. This leads to a compromise of security in the same

    systems.

    Software complexity

    Distributed systems software is more complex and harder to develop than conventional software,

    hence, it is more expensive to develop and there is a greater chance of introducing errors.

    Management complexity

    More effort is required for distributed systems management.

    Distributed Systems Concepts

    Resources- Refers to services, components or servers in the context of providers of information e.g.

    web servers. A resource is anything that can be shared or used on a distributed network. Examples of

    resources that can be shared on a distributed system include computers, file storage systems, RAM,

    CPU, files, communication channels, databases, servers e.g. a web server and applications.

    Transparency- Refers to the property of hiding aspects of distribution from the user, e.g. location and

    access transparency.

    Distributed paradigms- Refers to models, for describing distribution and communication. Some of these

    paradigms are: client/server model, peer to peer model.

    Client- Computer which acts as a consumer of information in a distributed system.

    Server- Computer which act as a provider of information. A server provides a service e.g. a web server.

    Node- Used to represent any computer on a distributed network.

    Services- Services are analogous to function calls. Servers receive a request (i.e. the arguments to a

    function call) and return a response (i.e. the returned function data or data updated within a pass by

    reference argument).

  • 8/12/2019 01- Introduction to Distributed Systems

    5/5

    Distributed Systems Peter Arnold [email protected]

    5

    A Peer- A special kind of node in which runs both a client and a server. A computer is both a consumer

    and provider of information.

    Rules of the Thumb

    Trade-offs

    At a certain point, trade-offs must be made i.e. a choice must be made about which requirement orproperty is more important and how far to go when fulfilling that requirement. For instance availability

    holds only in the face of certain problems, but not others?

    Separation of Concerns

    When tackling a large, complex, problem (such as designing a distributed system), it is useful to split the

    problem up into separate concerns and address each concern individually. Approaching the design of a

    distributed system in this particular way leads to highly modular or layered systems, which helps to

    m xb

    Keep It Simple, Stupid (KISS)

    Overly, complex systems are error prone and difficult to use. If possible , solutions to problems and

    resulting architectures should be simple rather than mind-numbingly complex.

    Policy versus Mechanism

    Separation of policy and mechanism helps to build flexible and extensible systems, and is, therefore,

    important to follow when designing distributed systems e.g. different mechanisms can be used to

    implement one policy.

    End-to-End Argument

    When building layered systems some functions can only be reliably implemented at the application

    level. End to end functionality refers to functionality required at the application level. Implementing

    functionality at the wrong level forces everyone to use that mechanism. It also renders the mechanism

    less useful than when it is implemented at a higher (application) level.