IntroDS - Introds
IntroDS - Introds
Many definitions
Ø [Coulouris]
§ A distributed system is one in which hardware or software
components located at networked computers communicate and
coordinate their actions only by passing messages.
Ø [Tanenbaum & van Steen]
§ A distributed system is a collection of independent computers
that appears to its users as a single coherent system.
Ø [Lamport]
§ A distributed system is a system that prevents you from doing
any work when a computer you have never heard about, fails.
Ø The above definitions take different perspectives
§ Operational perspective
§ User perspective
§ DS characteristics perspective
Examples of distributed
systems
ØWeb search
§ Index the entire contents of the Web.
ØMassively multiplayer online games
§ Very large number of users sharing a virtual
world.
ØFinancial trading
§ Real time access and processing of a wide
rage of information sources.
Frank Eliassen, Ifi/UiO 4
2
Implications of distributed systems
§ Concurrency
– components execute in concurrent processes that read and update
shared resources. Requires coordination
§ No global clock
– makes coordination difficult (ordering of events)
§ Independent failure of components
– “partial failure” & incomplete information
§ Unreliable communication
– Loss of connection and messages. Message bit errors
§ Unsecure communication
– Possibility of unauthorised recording and modification of messages
§ Expensive communication
– Communication between computers usually has less bandwidth, longer
latency, and costs more, than between independent processes on the
same computer
Why
distributed systems?
§ resource sharing
– the possibility of using available resources any where
§ openness
– an open distributed system can be extended and improved
incrementally
– requires publication of component interfaces and standards
protocols for accessing interfaces
§ scalability
– the ability to serve more users, provide acceptable response
times with increased amount of data
§ fault tolerance
– maintain availability even when individual components fail
§ allow heterogeneity
– network and hardware, operating system, programming
languages, implementations by different developers
Frank Eliassen, Ifi/UiO 6
3
Resource sharing
4
Scalability
Ø A system is scalable if it remains effective when there is
a significant increase in the amount of resources (data)
and number of users
§ Internet: number of users and services has grown enormously
Ø Scalability denotes the ability of a system to handle an
increasing future load
Ø Requirements of scalability often leads to a distributed
system architecture (several computers)
5
Scalability problems (2)
ØCharacteristics of decentralized
algorithms:
§ No machine has complete information about
the system state.
§ Machines make decisions based only on local
information.
§ Failure of one machine does not ruin the
algorithm.
§ There is no implicit assumption that a global
clock exists.
Frank Eliassen, Ifi/UiO 11
Scaling techniques
Ø Distribution
§ splitting a resource (such as data) into smaller parts,
and spreading the parts across the system (cf DNS)
Ø Replication
§ replicate resources (services, data) across the system
§ increases availability, helps to balance load
§ caching (special form of replication)
Ø Hiding communication latencies
§ avoid waiting for responses to remote service requests
(use asynchronous communication or design to reduce
the amount of remote requests)
6
Fault tolerance
Ø Hardware, software and network fail!!
Ø DS must maintain availability even in cases where
hardware/software/network have low reliability
Ø Failures in distributed systems are partial
§ makes error handling particularly difficult
Ø Many techniques for handling failures
§ Detecting failures (checksum a.o.)
§ Masking failures (retransmission in protocols)
§ Tolerating failures (as in web-browsers)
§ Recovery from failures (roll back)
§ Redundancy (replicate servers in failure-independent ways)
Challenges:
…today
- Scalability
- Reliability
- Performance
- Openness
7
Distribution transparency
Transparency in a distributed
system
8
Pitfalls when Developing
Distributed Systems
9
The role of middleware in
distributed systems
Ø Layer of software offering a single-system view
Ø Offers transparencies (access, location, …)
Ø Simplifies development of distributed applications
and services
Distributed
applications
and services
10
Distributed Computing Systems:
Cluster Computing Systems
Collection of similar PCs, closely connected, all run same OS
11
Distributed Information Systems:
Enterprise Application Integration
Allowing existing applications to directly exchange
information using communication middleware
Example communcation
middleware: CORBA
Clients may invoke methods of remote objects without worrying about:
object location, programming language,
operating system platform, communcation
protocols or hardware.
X Y Z Different
invoke Z’s programming languages
method foo()
foo() (or object models)
IDL IDL IDL
Common object model
12
Distributed Pervasive
Systems
services
temperature devices
light
context-aware,
varying context provided utility self-adaptive
applications
environment
context user
user optimizes
context adapts
monitors (reconfigures)
device
context MUSIC Context & Adaptation Middleware
Inspects &
reasons about
activity
position
(e.g., driving) Application
memory use
variability
model
battery
26
CPU use http://ist-music.berlios.de/
13
Distributed Computing as a
Utility
Ø View: Distributed resources as a commodity or utility
Ø Resources are provided by service suppliers and effectively
rented rather than owned by the end user.
Ø The term cloud computing capture the vision of computing as
a utility
SalesForce CRM
SaaS
Clients LotusLive
Google App
Internet PaaS Engine
IaaS
Frank Eliassen, Ifi/UiO 27
Summary
Ø Distributed systems:
§ components located in a network that communicates and
coordinates their actions exclusively by sending messages.
Ø Consequences of distributed systems
§ Independent failure of components
§ Unsecure communication
§ No global clock
Ø Distribution transparency: providing a single computer
system view
Ø Requirements like resource sharing, openness,
scalability, fault tolerance and heterogeneity can be
satisfied by distributed systems
Ø Many pitfalls when developing distributed systems
Frank Eliassen, Ifi/UiO 28
14