Distributed System Intro
Distributed System Intro
Distributed System Intro
Distributed Systems
INF5040, ifi/UiO 2
From a Single Computer to DS
1945-1985: Computers
Large and expensive
Operated independently
1985-now: two advances in technology
Powerful microprocessors
High-speed computer networks
Result: Distributed Systems
INF5040, ifi/UiO 3
What Is a Distributed System?
Definition
Operational perspective:
A distributed system is one in which hardware or software
components, located at networked computers, communicate
and coordinate their actions only by passing messages.
[Coulouris]
User perspective:
A distributed system is a collection of independent computers that
appears to its users as a single coherent system.
[Tanenbaum]
INF5040, ifi/UiO 4
What Is a Distributed System?
A DS organized as middleware
extending over multiple machines
offering each application the same interface
INF5040, ifi/UiO 5
Examples of Distributed Systems
Web search
Indexing 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.
Delivery of items of interest in a timely manner
INF5040, ifi/UiO 6
Outline
INF5040, ifi/UiO 7
Goals of Distributed Systems
Resource sharing
Distribution transparency
Openness
Scalability
Fault tolerance
Allowing heterogeneity
INF5040, ifi/UiO 8
Resource Sharing
INF5040, ifi/UiO 9
Models for Resource Sharing
INF5040, ifi/UiO 10
Distribution Transparency
INF5040, ifi/UiO 11
Forms of Transparency
Degree of transparency
Situations in which full transparency is not good – better to
expose than to mask effects of distribution?
Trade-off between a high degree of transparency and
performance
INF5040, ifi/UiO 12
Openness
Definition:
INF5040, ifi/UiO 13
Scalability
INF5040, ifi/UiO 14
Scalability Problems
INF5040, ifi/UiO 15
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)
INF5040, ifi/UiO 16
Fault Tolerance
INF5040, ifi/UiO 17
Outline
INF5040, ifi/UiO 19
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
INF5040, ifi/UiO 20
Pitfalls When Developing DS
INF5040, ifi/UiO 21
Outline
INF5040, ifi/UiO 22
Types of Distributed Systems
INF5040, ifi/UiO 24
Type1: Grid Computing Systems
INF5040, ifi/UiO 25
Type1: Cloud Computing
SalesForce CRM
SaaS
Clients LotusLive
Google App
PaaS Engine
Internet
IaaS
26
INF5040, ifi/UiO 26
Type2: Enterprise Application Integration
INF5040, ifi/UiO 27
Type2: Example Communication Middleware: CORBA
X Y Z
invoke Z’s Different
method foo() foo() programming languages
(or object models)
IDL IDL IDL
Common object model
INF5040, ifi/UiO 28
Type3: Distributed Pervasive Systems
Pervasive systems:
exploiting the increasing integration of services and
(small/tiny) computing devices in our everyday
physical world
INF5040, ifi/UiO 30
Summary
Distributed systems:
components located in a network that communicates and coordinates
their actions exclusively by sending messages.
Goals like resource sharing, distribution transparency,
openness, scalability, fault tolerance and heterogeneity can
be satisfied by distributed systems
Consequences of distributed systems
Independent failure of components
Unsecure communication
No global clock
Many pitfalls when developing distributed systems
Novel applications in pervasive systems: e.g., smart homes
INF5040, ifi/UiO 31