CLOUD COMPUTING
Distributed System Models
Dr. Prafullata Kiran Auradkar
Department of Computer Science and Engineering
Acknowledgements:
Significant information in the slide deck presented through the Unit 1 of the course have been created by Dr. H.L. Phalachandra and would like to acknowledge and
thank him for the same. There have been some information which I might have leveraged from the content of Dr. K.V. Subramaniam’s lecture contents too. I may have
supplemented the same with contents from books and other sources from Internet and would like to sincerely thank, acknowledge and reiterate that the credit/rights for
the same remain with the original authors/publishers only. These are intended for classroom presentation only.
CLOUD COMPUTING
Distributed Computing
▪ A distributed system consists of multiple autonomous computers, each having its own private memory,
communicating through a computer network.
▪ Information exchange in a distributed system is accomplished through message passing.
▪ Distributed and cloud computing systems are built over a large number of autonomous computer nodes.
▪ These node machines are interconnected by SANs, LANs, or WANs in a hierarchical manner.
Eg. Scalar Multiplication of a matrix
-
CLOUD COMPUTING
Distributed System : Clusters
What is Cluster?
Cluster as a low-latency, high-bandwidth interconnected network of standalone computers which work cooperatively as a
single integrated computing resource
▪ A typical cluster architecture of distributed sytems would show a number of hierarchically organized set of compute
nodes connected by SAN/LAN or WAN as in the figure below.
▪ All nodes in a cluster are set to perform the same task with the resources of the node being managed by their own OS
▪ This cluster supports Scaling by increasing the number of nodes in the hierarchical organization of the systems
▪ The cluster is connected to the Internet via a virtual private network (VPN) gateway which provides secure connectivity
using an encryption.
▪ The VPN gateway IP address helps to identify and locate the cluster.
▪ Most clusters will have multiple system images as a result of
having many autonomous nodes under different OS control.
▪ Clustering could be with the focus of improving performance,
supporting availability and error handling etc.
CLOUD COMPUTING
Distributed System
▪ In Cloud computing, resource requests are provisioned into system components which are configured and
available as a distributed system
▪ Depending on the needs of the application, the system components which are part of the cloud infrastructure
can be structured and classified as three different Distributed System Models
1. Architectural Models
a. System Architecture
▪ This indicates how the components of a distributed system are placed across multiple machines
▪ How the responsibilities are distributed across system components
E.g. P2P Model or Client Server Model
b. Software architecture
▪ This indicates the logical organization of software components and their interactions/independence
▪ Focusses about the components
E.g. 3 Tier Architecture
2. Interaction Models
a. How do we handle time? Are there time limits on process execution, message delivery, and clock drifts?
b. Ex: Synchronous distributed systems, Asynchronous distributed systems
3. Fault Models
- a. What kind of faults can occur and what are their effects?
b. Ex: Omission faults, Arbitrary faults, Timing faults
CLOUD COMPUTING
Distributed System : Architectural Models - P2P Systems
What does a Peer-to-Peer System mean?
▪ In a P2P network, every node (peer) acts as both a client and server.
▪ Peers act autonomously to join or leave the network.
▪ No central coordination or central database is needed.
▪ This implies that no master-slave relationship exists among the peers.
▪ The system is self-organizing nodes (recognize and create relatively
stable connections to other nodes with similar interests/requirements/
capabilities) with distributed control. In other words, no peer machine
has a global view of the entire P2P system
▪ Processing and communication loads for access to objects are
distributed across many computers and access links.
▪ This is the most general and flexible model but securing the overall system would be more challenging as
each of the peer would have their own data
CLOUD COMPUTING
Distributed System : Architectural Models - Client-Server Model
What is the Client-Server model?
The system is structured where a set of machines called servers (which are performing some process), offer services to another
set of machines called clients for their needs.
▪ The client-server model is usually based on a simple request/reply protocol, implemented with send/receive primitives or
using remote procedure calls (RPC).
▪ The client asks the server for a service, the server does the work and returns a result or an error code if the required work
could not be done
▪ This organization by its structure distributes the functionality across different machines
-
CLOUD COMPUTING
Distributed System : Architectural Models – Three Tier Architecture
Here are some other architecture models that you should know about:
1. Three-tier - Architectures that move the client intelligence to a middle tier so that stateless clients can
be used. This simplifies application deployment. Most web applications are three-tier.
2. n-tier - Architectures that refer typically to web applications which further forward their requests to
other enterprise services. This type of application is the one most responsible for the success of
application servers.
-
CLOUD COMPUTING
Distributed System : Interaction Models - Synchronous Distributed System
What are some features of a Synchronous Distributed System?
1. Systems within the Synchronous distributed system have a shared clock (same clock or
different synchronized clocks, clocks with known offsets/bounds etc.)
2. Lower and upper bounds on execution time of systems/processes can be set
3. Transmitted messages to be received within a known bounded time.
4. Ordered message delivery or the network will deliver messages in the sent order
5. Lock step execution – all the nodes which are processing identical message would do so as soon
as received and generate the output at the same time.
6. Allows us to make assumptions about time and order of events in a distributed system.
7. Not very practical
NOTE: Clock drift refers to several related
What are the consequences of having a Synchronous Distributed System?
phenomena where a clock does not run at
1. Needs a global physical time
exactly the same rate as a reference clock
2. Needs predictability in terms of timing, as only such systems can be (NTP). That is, after some time the clock "drifts
used for hard real-time applications. apart" or gradually desynchronizes from the
3. It is possible and safe to use timeouts in order to detect failures of a other clock.
process or communication link. (??) [Link]
CLOUD COMPUTING
Distributed System : Interaction Models - Asynchronous Distributed System
What are some features of an Asynchronous Distributed System?
1. Clock may not be accurate, and can be out of sync
2. No bound on machine/process execution time (nothing can be assumed about speed,
load, reliability of computers)
3. No bound on message transmission delays and can be delayed for arbitrary times
4. No constraints on time and ordering of events.
5. Each computer processes independently of others
6. Most suitable for real world scenarios
What are the consequences of having an Asynchronous Distributed System?
1. There is no global physical time, reasoning can be only in terms of logical time.
2. Unpredictable in terms of timing.
3. Cannot use timeouts to diagnose issues
4. They may use mechanisms like queue for asynchronous communication
5. Systems which are using Asynchronous distributed systems have to build algorithms which tolerate different kinds of
failures
CLOUD COMPUTING
Distributed System : Fault Models
A system is said to “fail” when it cannot meet its promises. A failure is brought about by the existence of
“errors” in the system. The cause of an error is called a “fault”.
A failure of a system is brought about due to an error in the system caused by a fault.
There can be different kinds of faults
▪ Transient Faults : Appears once, then disappears
▪ Intermittent Faults : Occurs, Vanishes, reappears, but no real pattern (worst form of faults)
▪ Permanent Faults : Once it occurs, only the replacement/repair of the faulty component will allow the
Distributed System to function normally
What is the use of a Fault Model?
1. Faults can occur both in processes and communication channels. The reason can be both software and hardware.
2. Fault models are needed in order to build systems with predictable behavior in case of faults (systems which are
fault tolerant).
3. A fault tolerant system will function according to the predictions, only as long as the real faults behave as defined by
the “fault model”.
CLOUD COMPUTING
Distributed System : Fault Models
CLOUD COMPUTING
Fault Models - Omission and Arbitrary Faults
CLOUD COMPUTING
Fault Models - Timing Faults
CLOUD COMPUTING
References for Distributed System Models
● Distributed Architecture
● Distributed Computing Architectures - Wikipedia
● "Explain Distributed system models with diagram"
● Make your existing solution tastier with serverless salt: distributed system
● System Models for Distributed and Cloud Computing - UNF
● Fundamental Distributed System Models - RIT
● MODELS OF DISTRIBUTED SYSTEMS - Linköping University
● Distributed System Models
● A Brief Summary of Apache Hadoop: A Solution of Big Data Problem and Hint comes from
Google
THANK YOU
Prafullata Kiran Auradkar
Department of Computer Science and Engineering
prafullatak@[Link]