Professional Documents
Culture Documents
Introduction To Distributed Systems
Introduction To Distributed Systems
Distributed Systems
Sistemi Distribuiti
Andrea Omicini
andrea.omicini@unibo.it
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 1 / 95
Outline
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 2 / 95
Disclaimer
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 3 / 95
Definitions
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 4 / 95
Definitions
A distributed system is
A collection of independent computers that appears to its users as a single
coherent system [Tanenbaum and van Steen, 2007]
User’s view
This is a possible definition, which accounts for an observational /
user-oriented view
We may also call it the computer scientist definition of a distributed
system
From an engineering viewpoint, is a sort of a posteriori definition
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 5 / 95
Definitions
A distributed system is
A collection of autonomous computational entities conceived as a single
coherent system by its designer
Engineer’s view
This is another possible definition, which accounts for a constructive,
design-oriented view
We may also call it the computer engineer definition of a distributed
system
From an engineering viewpoint, is a sort of a priori definition
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 6 / 95
Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 7 / 95
Definitions
Collaboration
Many autonomous entities should work altogether as a single
coherent system
Amalgamation
Many heterogeneous entities should look altogether as a single
uniform system
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 8 / 95
Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 10 / 95
Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 11 / 95
Motivations & Goals
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 12 / 95
Motivations & Goals Motivations
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 13 / 95
Motivations & Goals Motivations
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 15 / 95
Motivations & Goals Goals
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 16 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 17 / 95
Motivations & Goals Goals
What is a resource?
Anything that . . .
. . . could be connected to a computational system
. . . anyone could legitimately use
E.g., printers, scanners, storage devices, distributed sensors, . . .
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 18 / 95
Motivations & Goals Goals
Distribution Transparency
Transparency
Hiding non-relevant properties of the system’s components and
structure is called transparency
There exists a number of different and useful sorts of transparency,
according to the property hidden to the user’s perception
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 19 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 20 / 95
Motivations & Goals Goals
Access Transparency
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 21 / 95
Motivations & Goals Goals
Location Transparency
Naming is essential
There should exist a system of logical identifiers, not bound to
physical location
e.g., URLs
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 22 / 95
Motivations & Goals Goals
Migration Transparency
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 23 / 95
Motivations & Goals Goals
Relocation Transparency
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 24 / 95
Motivations & Goals Goals
Replication Transparency
Concurrency Transparency
Activity in a distributed systems involves independent entities
Users and resources are distributed, and work autonomously, in a
concurrent way
For instance, two users may try to exploit the same resource at the
same time
Typically, no user need to be bothered with these facts—like,
“another user is accessing the same database you are accessing just
now”, who cares?
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 27 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 28 / 95
Motivations & Goals Goals
Failure Transparency
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 29 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 30 / 95
Motivations & Goals Goals
Openness
What is openness?
Essentially, the property of working with a number and sort of
components that is not set once and for all at design time
Open systems are fundamentally unpredictable
Open systems are typically designed to be open
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 31 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 32 / 95
Motivations & Goals Goals
Interoperability
Interoperability measures how easy / difficult is to make one
component / system work with different ones based on some
standard-based specifications
Portability
Portability measures how much an application (or, a portion of it) can
be moved to a different distributed system and keep working
Extensibility
Extensibility measures how easy / difficult is to add new components
and functionality to an existing distributed system
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 33 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 34 / 95
Motivations & Goals Goals
Scalability
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 35 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 36 / 95
Motivations & Goals Goals
Centralisation
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 37 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 38 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 40 / 95
Motivations & Goals Goals
Asynchronous communication
This basically means using asynchronous communication for requests
whenever possible
a request is sent by the application
the application does not stop waiting for a response
when a response come in, the application is interrupted and a handler
is called to complete the request
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 41 / 95
Motivations & Goals Goals
Problem
Sometimes, asynchronous communication is not feasible
like in Web application when a user is just waiting for the response
alternative techniques like shipping code are needed—e.g., Javascript
or Java Applets
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 42 / 95
Motivations & Goals Goals
The difference between letting (a) a server or (b) a client check forms as
they are being filled [Tanenbaum and van Steen, 2007]
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 43 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 44 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 45 / 95
Motivations & Goals Goals
Caching
is a special form of replication
caching is making a copy of a resource, like replication
however, caching is a decision by the client of a resource, replication
by the owner of a resource
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 46 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 47 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 48 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 49 / 95
Motivations & Goals Goals
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 50 / 95
Sorts of Distributed Systems
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 51 / 95
Sorts of Distributed Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 52 / 95
Sorts of Distributed Systems Distributed Computing Systems
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 53 / 95
Sorts of Distributed Systems Distributed Computing Systems
Two classes
Cluster Computing Systems
Grid Computing Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 54 / 95
Sorts of Distributed Systems Distributed Computing Systems
Motivation
The ever increasing price / performance ration of computers makes it
cheaper to build a supercomputer by putting together many simple
computers, rather than buying a high-performance one
Also, robustness is higher, maintenance and incremental addition of
computing power is easier
Usage
Parallel programming
Typically, a single computationally-intensive program is run in parallel
on multiple machines
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 55 / 95
Sorts of Distributed Systems Distributed Computing Systems
Beowulf clusters
Linux-based
Each cluster is a collection of computing nodes controlled and
accessed by a single master node
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 56 / 95
Sorts of Distributed Systems Distributed Computing Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 57 / 95
Sorts of Distributed Systems Distributed Computing Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 58 / 95
Sorts of Distributed Systems Distributed Computing Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 59 / 95
Sorts of Distributed Systems Distributed Computing Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 60 / 95
Sorts of Distributed Systems Distributed Computing Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 61 / 95
Sorts of Distributed Systems Distributed Information Systems
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 62 / 95
Sorts of Distributed Systems Distributed Information Systems
Origin
Many separate networked applications to be integrated
Structural problems of interoperability
Sorts
Several non-interoperating servers shared by a number of clients:
distributed queries, distributed transactions
→ Transaction Processing Systems
Several sophisticated applications – not only databases, but also
processing components – requiring to directly communicate with each
other
→ Enterprise Application Integration (EAI)
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 63 / 95
Sorts of Distributed Systems Distributed Information Systems
ACID properties
Atomic the transaction occurs invisibly to the outside world
Consistent the transaction does not violate system invariants
Isolated Concurrent transactions do not interfere with each other
Durable Once a transaction commits, its effects are permanent
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 64 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 65 / 95
Sorts of Distributed Systems Distributed Information Systems
Nested Transactions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 66 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 67 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 68 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 69 / 95
Sorts of Distributed Systems Distributed Information Systems
TP Monitor
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 70 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 71 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 72 / 95
Sorts of Distributed Systems Distributed Information Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 73 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 74 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Main features
A distributed pervasive system is part of our surroundings
A distributed pervasive system generally lacks of a human
administrative control
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 75 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Remarks
A device must be continually aware of the fact that its environment
may change at any time
Many devices in pervasive system will be used in different ways by
different users
Devices generally join the system in order to access (provide)
information: information should then be easy to read, store, manage,
and share
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 76 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Home Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 77 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 78 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 79 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Sensor Networks
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 80 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 81 / 95
Sorts of Distributed Systems Distributed Pervasive Systems
In-network data-processing
Setting up a tree network among sensors
Passing queries through the sensor tree
Aggregating the results at the different levels of the tree
Questions to be addressed
How do we (dynamically) set up an efficient tree in a sensor network?
How does aggregation of results take place? Can it be controlled?
What happens when network links fail?
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 82 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Outline
1 Definitions
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 83 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 84 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 85 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Key Features
Portability
Mobile connectivity
Situatedness
Location-awareness, context awareness
Reactiveness
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 86 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Autonomy
Working in disconnected mode
Self-awareness
Ubiquitous computing
Multiple small computational devices surrounding users
interconnected & possibly working together
within user’s physical environment—home, office, hospitals, external
settings. . .
supporting spontaneous interconnection
Mobile & ubiquitous computing overlap—they benefit one from the other,
yet they are different things
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 87 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Webcasting
Web as a distributed multimedia system
huge requirements on the Web infrastructure
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 88 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Physical resources
E.g., mass memories for remote storage, computational units for
remote processing
Users no longer have the need for dedicated “internal” technologies
Huge data centres—Amazon, Google, Apple, Mega, DropBox
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 89 / 95
Trends in Distributed Systems: Resuming & Foreseeing
Virtual resources
E.g., software services like calendars, mail, applications, platforms
Users no longer have the need for buying all software they need
Google Apps, for instance
Cloud computing
Computing as a utility
A cloud is a set of Internet-based application, storage, and computing
services altogether supporting a well-defined set of user’s needs.
Everything as a service view—from infrastructure to application
New economic models
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 90 / 95
Conclusions
Summing Up I
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 91 / 95
Conclusions
Summing Up II
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 92 / 95
References
References I
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 93 / 95
References
References II
Neuman, B. C. (1994).
Scale in distributed systems.
In Casavant, T. L. and Singhal, M., editors, Readings in Distributed
Computing Systems, pages 463–489. IEEE CS Press, Los Alamitos,
CA, USA.
Tanenbaum, A. S. and van Steen, M. (2007).
Distributed Systems. Principles and Paradigms.
Pearson Prentice Hall, Upper Saddle River, NJ, USA, 2nd edition.
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 94 / 95
Introduction to Distributed Systems
Distributed Systems
Sistemi Distribuiti
Andrea Omicini
andrea.omicini@unibo.it
Andrea Omicini (DISI, Univ. Bologna) 1 – Introduction to Distributed Systems A.Y. 2012/2013 95 / 95