DISTRIBUTED SYSTEMS
Principles and Paradigms
Chapter 1
Introduction
Lecturer: Assis.Pro Iqbal Ali Sultani Email: [email protected] 1
Definition of a Distributed System
A distributed system is:
A collection of independent computers that
appears to its users as a single coherent
system.
2
Definition of a Distributed System
A distributed system organized as middleware. The middleware
layer extends over multiple machines, and offers each
application the same interface.
3
Goals of Distributed
Systems
•Making Resources Available
•Distribution Transparency
•Openness
•Scalability
4
Making Resources
Accessible
The main goal of a distributed system is to make it easy
for the users and applications to access remote
resources. And to share them in a controlled and
efficient way.
Resources examples:
◦ Printers
◦ Computers
◦ Storages
◦ Data and files
◦ Web pages
◦ Networks
5
Scalability
Observation
-Many developers of modern distributed system easily use the adjective
“scalable” without making clear why their system actually scales.
Scalability
- At least three components:
◦Number of users and / or processes(size scalability)
◦Maximum distance between nodes(geographical scalability)
◦Number of administrative domains(administrative scalability)
Observation
-Most system account only, to a certain extent, for size scalability. The
(non) solution: powerful servers. Today, the challenge lies in
geographical and administrative scalability.
6
Transparency in a Distributed
System
Different forms of transparency in a distributed system
(ISO, 1995).
7
Degree of Transparency
Observation
Aiming at full distribution transparency may be too much
-Users may be located in different continents
- Completely hiding failures networks and nodes is(Theoretically
and practically) impossible
•You cannot distinguish a slow computer from a failing one
•You can never be sure that a server actually performed a operation
before a crash
•Full transparency will cost performance, exposing distribution of
the system
•Keeping web caches exactly up-to-date with the master
•Immediately flushing write operation to disk for fault tolerance
8
Scalability Problems
Examples of scalability limitations.
9
Scalability Problems
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.
10
Techniques for Scaling
Hide communication latencies
◦ Avoid waiting for responses; do something else:
◦ Make use of asynchronous communication
◦ Have separate handler for incoming response
◦ Problem: note every application fits this model
Distribution
-Partition data and computations across multiple machines
◦ Move computations to clients(Java applets and JavaScript)
◦ Decentralized naming services(DNS)
◦ Decentralized information system(www)
11
Scaling Techniques
The difference between letting (a) a server or (b)
a client check forms as they are being filled.
12
Scaling Techniques
An example of dividing the DNS
name space into zones.
13
Techniques For Scaling
Replication/caching
-Make copies of data available at different
machines:
• Replicated files servers and databases
• Mirrored web sites
• Web caches(in browsers and proxies)
• File caching (at server and client)
14
Openness of Distributed
Systems
Open distributed system
-Be able to interact with services from other open systems ,irrespective of the
underlying environment
◦ Systems should conform to well-defined interfaces
◦ Systems should support portability of applications
◦ Systems should easily interoperate
Achieving
-At least make the distributed system independent from heterogeneity of the
underlying environment
◦ Hardware
◦ Platforms
◦ Languages
15
Pitfalls when Developing Distributed
Systems
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.
16
Types of Distributed
Systems
•Distributed Computing Systems
•Distributed Information Systems
•Distributed Pervasive Systems
17
Distributed Computing
Systems
Observation
-Many distributed systems are configured for
high- performance computing
Cluster computing
• Essentially a group of high-end systems connected
through a LAN:
• Homogeneous : same OS , near-identical hardware
• Single managing node
18
Cluster Computing Systems
An example of a cluster computing system.
19
Distributed Computing
Systems
Grid Computing
◦ The next step: lots of nodes from everywhere:
◦ Heterogeneous
◦ Dispersed across several organizations
◦ Can easily span a wide- area network
Node
To allow for collaborations, grids generally use virtual
organizations. In essence, this is a grouping of users(or
better: their IDS) that will allow for authorization on
resource allocation.
20
Grid Computing Systems
A layered architecture for grid computing systems.
21
Distributed Information systems:
Transaction Processing Systems
Characteristic properties of transactions: ACID
•Atomic: To the outside world, the transaction happens indivisibly.
•Consistent: The transaction does not violate system invariants.
•Isolated: Concurrent transactions do not interfere with each other.
•Durable: Once a transaction commits, the changes are permanent.
22
Transaction Processing Systems
A nested transaction.
23
Transaction Processing Systems
The role of a TP monitor in distributed systems.
24
Enterprise Application
Integration
A TP monitor does not separate apps from their databases. Also needed are facilities for
direct communication between apps
• Remote Procedure call(RPC)
• Remote method invocation(RMI)
• massage-oriented Middleware(MOM)
Middleware as a communication facilitator in enterprise application
integration.
25
Distributed Pervasive
Systems
Emerging next generation of distributed systems in which nodes are
small, mobile, and often embedded in a larger system.
Requirements for pervasive systems
Embrace contextual changes: the system is of an environment in
which changes should be immediately accounted for
•Encourage ad hoc composition: each node may be used in a very
different ways by different users. Required ease of configuration
•Recognize sharing as the default: nodes come and go ,
providing sharable services and information. Calls again for
simplicity
26
Distributed Pervasive
Systems
•Home Systems
• e.g. computer, TV, Smartphone, PDA
• Should be self configuring and self managing
•Electronic Health Systems
•Sensor Networks
27
Electronic Health Care
Systems
Monitoring a person in a pervasive electronic health care system, using (a) a local hub or
(b) a continuous wireless connection.
28
Sensor Networks
Organizing a sensor network database, while storing and processing data (a) only at the operator’s
site or …
29
Presentations
30
31