You are on page 1of 26

Introduction to

Distributed Systems

Lecture1
Course Syllabus
 Introduction to distributed systems
 Timing in distributed systems
 Lamport and Vector clocks
 Clock synchronization
 Remote Procedure calls RPC and RMI
 Synchronization
 Coordination and agreement
 Cloud Computing
Definition of a Distributed System
A distributed system is:

a collection of independent computers that appears to its


users as a single coherent system.
Distributed System

The middleware layer extends over multiple machines, and offers


each application the same interface.
Transparency in a Distributed
System

Different forms of transparency in a distributed


system (ISO, 1995).
Transparency
Access transparency: enables local and remote resources to be accessed using identical
operations.
Location transparency: enables resources to be accessed without knowledge of their physical
or network location (for example, which building or IP address).
Concurrency transparency: enables several processes to operate concurrently using shared
resources without interference between them.
Replication transparency: enables multiple instances of resources to be used to increase
reliability and performance without knowledge of the replicas by users or application
programmers.
Failure transparency: enables the concealment of faults, allowing users and application
programs to complete their tasks despite the failure of hardware or software components.
Mobility transparency: allows the movement of resources and clients within a system
without affecting the operation of users or programs.
Performance transparency: allows the system to be reconfigured to improve performance
as loads vary.
Scaling transparency: allows the system and applications to expand in scale without change
to the system structure or the application algorithms.
Distributed Systems
Characteristics
Characteristics of decentralized algorithms:
• No machine has complete information about the system
state.
• Machines make decisions based only on local
information.
• There is no implicit assumption that a global clock exists.
Scalability Problems

Examples of scalability limitations.


Scaling Techniques (1)

The difference between letting (a) a server or (b) a


client check forms as they are being filled.
Scaling Techniques (2)

An example of dividing the DNS name space into zones.


False Assumptions 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.
Examples of Distributed Systems
Cloud Computing
 Cloud computing
provides a variety of
computing resources,
from servers and storage
to enterprise applications
such as email, security,
backup, voice, all
delivered over the
Internet.
 The Cloud delivers a
hosting environment that
is immediate, flexible,
scalable, secure, and
available while saving
corporations money, time
and resources.
Cluster Computing Systems
Figure 1-6. An example of a cluster computing
system.
Grid Computing Systems
Focus on communication
among devices, grid
computing exploits unused
processing cycles of all
computers in a network for
solving problems too
intensive for any stand-alone
machine.
Transaction Processing Systems (1)

Example primitives for transactions.


Transaction Processing Systems (2)
Characteristic properties of transactions:
• 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.
Transaction Processing Systems (3)

A nested transaction.
Transaction Processing Systems (4)

Figure 1-10. The role of a TP monitor in


distributed systems.
Distributed Pervasive Systems
Requirements for pervasive systems

• Embrace contextual changes.


• Encourage ad hoc composition.
• Recognize sharing as the default.
Electronic Health Care Systems (1)
Questions to be addressed for health care systems:
• Where and how should monitored data be stored?
• How can we prevent loss of crucial data?
• What infrastructure is needed to generate and propagate
alerts?
• How can physicians provide online feedback?
• How can extreme robustness of the monitoring system
be realized?
• What are the security issues and how can the proper
policies be enforced?
Electronic Health Care Systems (2)

Monitoring a person in a pervasive electronic health care system, Using:


(a) local hub or
(b) continuous wireless connection.
Wireless Sensor Networks (1)
Questions concerning sensor networks:
• 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?
Wireless Sensor Networks (2)

Organizing a sensor network database, while storing and


processing data (a) only at the operator’s site or …
Wireless Sensor Networks (3)

Organizing a sensor network database, while storing and


processing data … or (b) only at the sensors.
Group of cooperative robots

You might also like