Introduction to
Distributed Systems
INF5040/9040 Autumn 2018
Lecturer: Eli Gjørven (ifi/UiO)
August 28, 2018
Outline
▪ Definition of a distributed system
▪ Goals of a distributed system
▪ Implications of distributed systems
▪ Pitfalls in developing distributed systems
▪ Types of 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
Putting together computing systems composed of a large
number of computers connected by a high-speed network
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
▪ Definition of a distributed system
▪ Goals of a distributed system
▪ Implications of distributed systems
▪ Pitfalls in developing distributed systems
▪ Types of distributed systems
INF5040, ifi/UiO 7
Goals of Distributed Systems
Resource sharing
Distribution transparency
Openness
Scalability
Fault tolerance
Allowing heterogeneity
INF5040, ifi/UiO 8
Resource Sharing
Making resources accessible:
accessing remote resources
sharing them in a controlled and efficient way
Examples: printers, storages, files, etc.
One reason to share: economics
e.g., 1-to-many printer access, rather than 1-to-1
Resource managers control access, offer a
scheme for naming, and control concurrency
A resource sharing model describes how
resources are made available
resources can be used
service provider and user interact with each other
INF5040, ifi/UiO 9
Models for Resource Sharing
Client-server resource model
Server processes act as resource managers, and offer services
(collection of procedures)
Client processes send requests to servers
HTTP implements a client-server resource model
Object-based resource model
Any entity in a process is modeled as an object with a message
based interface that provides access to its operations
Any shared resource is modeled as an object
Object-based middleware (CORBA, Java RMI) defines object-based
resource models
INF5040, ifi/UiO 10
Distribution Transparency
An important goal of a DS:
hiding the fact that its processes and resources are
physically distributed across multiple computers
Definition:
A distributed system that is able to present itself to
its users and applications as if it were only a single
computer system is said to be transparent.
What kind of 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:
An open distributed system is a system that offers
services according to standard rules that describe
syntax and semantics of those services.
E.g., in computer networks: format, content, and meaning of
messages
In DS: services specified through interfaces
Interface Definition Language (IDL): syntax
Web Service Definition Language (WSDL): syntax
Semantics? the hard part to specify
Extensibility: an open DS can be extended and improved
incrementally
add or replace components
INF5040, ifi/UiO 13
Scalability
Scalability in three dimensions:
Scalable in size: Users and resources can easily be added
Geographically scalable: Users and resources may lie far apart
Administratively scalable: The system spans many administrative
organizations
Scaling up along these dimensions often come with a
performance cost
Scalability denotes the ability of a system to handle
future scaling up
Examples:
Internet: Size, geography and number of administrative organizations has
grown enormously
Google: scaled over the years to handle O(100) billion queries a month,
expected query time 0.2 secs.
INF5040, ifi/UiO 14
Scalability Problems
Problems with size scalability:
Often caused by centralized solutions
Problems with geographical scalability:
traditional synchronous communication in LAN
unreliable communications in WAN
Problems with administrative scalability:
Conflicting policies, complex management, security 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
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)
Masking failures (retransmission in protocols)
Tolerating failures (as in web-browsers)
Recovery from failures (roll back)
Redundancy (replicate servers in failure-independent ways)
INF5040, ifi/UiO 17
Outline
▪ Definition of a distributed system
▪ Goals of a distributed system
▪ Implications of distributed systems
▪ Pitfalls in developing distributed systems
▪ Types of distributed systems
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
False assumptions made by first time developer:
The network is reliable.
The network is secure.
The network is homogeneous.
The topology does not change.
Latency is zero.
Bandwidth is infinite.
Transport cost is zero.
There is one administrator.
INF5040, ifi/UiO 21
Outline
▪ Definition of a distributed system
▪ Goals of a distributed system
▪ Implications of distributed systems
▪ Pitfalls in developing distributed systems
▪ Types of distributed systems
INF5040, ifi/UiO 22
Types of Distributed Systems
Type1: Distributed Computing Systems
Used for high performance computing tasks
Cluster and Cloud computing systems
Grid computing
Type2: Distributed Information Systems
Systems mainly for management and integration of
business functions
Transaction processing systems
Enterprise application integration
Type3: Distributed Pervasive (or Ubiquitous)
Systems
Mobile and embedded systems
Home systems
Sensor networks
INF5040, ifi/UiO 23
Type1: Cluster Computing Systems
Collection of similar PCs, closely connected, all run same
OS, e.g.:
A collection of computing nodes + master node
Master runs middleware: parallel execution and
management
INF5040, ifi/UiO 24
Type1: Grid Computing Systems
Federation of autonomous and heterogeneous
computer systems (HW,OS,...), several adm
domains
A layered architecture for grid computing systems
INF5040, ifi/UiO 25
Type1: Cloud Computing
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
PaaS Engine
Internet
IaaS
26
INF5040, ifi/UiO 26
Type2: Enterprise Application Integration
Allowing existing applications to directly exchange
information using communication middleware
Middleware as a communication facilitator in
enterprise application integration
INF5040, ifi/UiO 27
Type2: Example Communication Middleware: CORBA
Clients may invoke methods of remote objects
without worrying about:
object location, programming language, operating system
platform, communication protocols or hardware.
X Y Z
invoke Z’s Different
method foo() foo() programming languages
(or object models)
IDL IDL IDL
Common object model
Object Request Broker (ORB) RMI over IIOP
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
(Mobile) Devices: discover the environment (its
services) and establish themselves in this
environment as best as possible.
Requirements for pervasive applications
Embrace contextual changes
Encourage ad hoc and dynamic composition
Recognize sharing as the default
INF5040, ifi/UiO 29
Type3: Example: Smart Home System
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