0% found this document useful (0 votes)
13 views

AT Unit1 Distributed - Systems

The document discusses the basics of distributed systems, including definitions and key characteristics. It covers centralized vs distributed systems, examples of distributed systems including the internet and operating systems, and reasons for using distributed architectures like scalability, openness, heterogeneity, and fault tolerance.

Uploaded by

roger.bastida01
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

AT Unit1 Distributed - Systems

The document discusses the basics of distributed systems, including definitions and key characteristics. It covers centralized vs distributed systems, examples of distributed systems including the internet and operating systems, and reasons for using distributed architectures like scalability, openness, heterogeneity, and fault tolerance.

Uploaded by

roger.bastida01
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Basics of Distributed Systems

Davinia Hernández-Leo

Aplicaciones Telemáticas (Unit 1)

1
Distributed system: definition

• A distributed system is one in which (hardware or


software) components located at networked computers
communicate and coordinate their actions by passing
messages… in such a way that users perceive the
system in a single, integrated computing facility
(Coulouris et al., 2005)

2
Centralized systems

vs.

Distributed Systems

3
Centralized systems

• Have non-autonomous parts

• Often built using homogeneous technology

• Multiple users share the resources

• Single point of control and failure

4
Distributed systems

• Have autonomous parts

• May be built using heterogeneous technology

• Parts may be used exclusively

• Executed in concurrent processes

• Multiple points of failure


5
Distributed computing systems

• Comprise:
– Devices: PCs, server computers, etc.
– Local, wide area networks, Internet
– Systems: distributed operating systems,
distributed applications

Focus of the course!

6
Example: Internet

intranet %
%
% ISP

backbone

satellite link

desktop computer:
server
network :
link:
(Coulouris et al., 2005)

7
Example: Distributed operating
systems

• An operating system which manages a


collection of independent computers
and makes them appear to the users of
the system as a single computer.

– Chorus (INRIA)
– Amoeba (Vrije Universiteit, Amsterdame)
–…

8
Examples: Application to support distributed
football league management

• National association managing football leagues:


– Keep account of football clubs and their teams
– Players need a license from the association, teams need to be
registered
– Association selects the best players for the national team

• Distribution
– League management provides services to register players and
teams
– Clubs provide services to the association to make appointments
with players for games of the national team

9
Examples: Application to support distributed
football league management

• Heterogeneous application
– Clubs are autonomous, they want to use their existing computing
infrastructure (different operating systems, different programming
languages, already existing databases…)

• Multiple points of control


– “Part” run by the association needs to be multi-threaded (able to
react to multiple concurrent requests of clubs registering players for a license)
– “Part” run by the clubs need to react to a player appointment
request from the association

• Multiple points of failure


– Slow connections, computers in clubs might switched
occasionally,… 10
Why distributed systems /
applications?

11
Distributed system requirements

• Factors that influence the choice of a distributed


system architecture
-> software engineering process
– Establish core requirements
– Develop a model of the desired behaviour (analysis)
– Create an architecture (design)
– Evolve the implementation (evolution)
– Manage postdelivery execution (maintenance)

• The need to distribute a system is often derived


from non-functional requirements

12
Distributed system requirements

• Scalability
• Openness
• Heterogeneity
• Resource Sharing
• Fault-Tolerance
• Concurrency
• Transparency
13
Scalability

• A system is scalable if it remains effective when


there is a significant increase in the number of
resources and the number of users (Coulouris,
2015)

14
Scalability

– Ability to accommodate a growing load in the


future
• maximum number of concurrent users
• number of transactions that the system execute in
a given period
• data volume
… we expect certain qualities of service

– Distributed architectures achieve scalability


through employing more than one host

15
Openness

• The openness of a computer system is the


characteristic that determines whether the
system can be extended and re-implemented in
various ways (Coulouris, 2015).

• The openness of distributed systems is achieved


by specifying the key software interface of the
system and making it available to software
developers so that the system can be extended
in many ways (Weijia, 2005).

16
Openness

• Open system can easily be extended and


modified
– Preserve investments within institutions
(if new functional requirements)
– Parts need to have well-defined and
well-documented interfaces
• Communication between “parts”
• Declaring services the “part” offers (so that other
parts can use these services)
– Interfaces should be “published” “standard”,
not dependent on a particular vendor
17
Heterogeneity

• Variety and difference of:


– Programming languages
– Operating systems
– Hardware platforms
– Network protocols

• Why?
– Reuse “parts” off-the-shelf, legacy parts,
different contractors

• Heterogeneity can be addressed by


distributed systems
18
Resource access and sharing

• Resources, i.e., hardware, software and data,


from different “parts” of the system are shared
by multiple users

• Security implications, request access

19
Fault-Tolerance / failure handling

• Operations that continue even in the


presence of faults are referred to as
fault-tolerant

• Distributed systems achieve fault-tolerance


by means of replication

20
Concurrency

• Several clients may attempt to access a shared


resource at the same time

• Consider potential data inconsistency

21
Transparency

• The system is perceived as a whole


rather than a collection of distributed
components

– I.e., the fact that a system is composed


from distributed “parts” should be hidden
from users and application programmers

22
Access transparency

• Enables local and remote resources to be


accessed using identical operations

Location transparency

• Enables resources to be accessed without


knowledge of their physical or network
location

23
Concurrency transparency

• Enables several processes to operate


concurrently using shared resources
without interference between them

Replication transparency

• Enables multiple instances of resources to


be used to increase reliability and
performance without knowledge of the
replicas by users or application
programmers
24
Failure transparency

• Enables the concealment of faults, allowing


users and application programs to
complete their tasks despite the failure of
hardware of software components

Mobility (migration) transparency


• Allows the movement of resources and
clients within a system without affecting
the operation of users or programs

25
Performance transparency

• Allows the system to be reconfigured to


improve performance as loads vary

Scaling transparency

• Allows the system and applications to


expand in scale without change to the
system structure or the application
algorithms

26
Distributed applications

• Access to data transport services


– E.g., Sockets
– Very limited transparency
– Complex development due to complexity
associated to distribution

• Middleware (distributed processing platforms)


– Layer of software that mask heterogeneity and
provide a convenient programming model to
application developers

27
Middleware

• klñk

28
Middleware
• Between application and transport
• Distribution transparency
– To the developer!!!

• Solves heterogeneity
• Hardware

• Operating systems

• Networks

• Programming Languages

• Development and execution environment


for distributed applications
29
Types of middleware

• Message-oriented middleware
• Transaction-oriented middleware
• RPC (Remote Procedure Call)
• Object-oriented Middleware
• Component-oriented Middleware
• Service-oriented Middleware
30

You might also like