Chapter 1
Chapter 1
Debark, Ethiopia
1 11/13/2024
Chapter one
Introduction to Distributed Systems
2 11/13/2024
Contents
Definition of Distributed System
Goals of Distributed Systems
Types of Distributed Systems
3 11/13/2024
Definition of Distributed System
A distributed system is collection of independent computers that appears to its
users as a single coherent system.
Distributed systems are often organized by means of a layer of software.
It is logically placed between a higher-level layer consisting of users and
applications, and a layer under is consisting of operating system and basic
communication facilities, as shown in Fig 1.
Accordingly, such a distributed system is sometimes called middleware.
Middleware is software that usually referred as the OS of distributed systems
Example middleware service
Remote Procedure Call (RPC) : allows an application to invoke a function
that is implemented and executed on a remote computer as if it was locally
available.
4 11/13/2024
Definition of Distributed System …
Figure shows four networked computers and three applications, of which B is distributed
across computers 2 and 3. Each application is offered the same interface.
The distributed system provides the means for components of a single distributed
application to communicate with each other but also to let different applications
communicate.
At the same time, it hides, as best and reasonable as possible, the differences in
hardware and operating systems from each application.
5 11/13/2024
Example of Distributed System …
Examples: Automatic Banking (Teller Machine) Systems
6 11/13/2024
Example of Distributed System …
Examples: Network of Workstations
7 11/13/2024
Example of Distributed System …
Examples: Others
8 11/13/2024
Related Concepts: Parallel Systems
9 11/13/2024
Related Concepts: Centralized System
10 11/13/2024
Advantage and Disadvantage of Distributed Systems
11 11/13/2024
Goals of Distributed Systems
There are 4 goals that should be met to make building a distributed system
worth the effort.
Resource Accessibility: Easy to access and share resource
Distribution Transparency: Hide the fact that resources are distributed
across the network
Openness: The system should offer services according to standard rules
that describe their syntax and semantics
Extensible: easy to add / replace components
Scalability: Size scalable, geographically scalable, administratively
scalable
12 11/13/2024
Resource sharing/accessibility
An important goal of distributed system is to make it easy for users(and
applications) to access and share remote resources.
Resources can be virtually anything
Typical examples, storage facilities, data, files, services, and networks
Benefits
Economic: It is cheaper to have a single high-end reliable storage facility
be shared than having to buy and maintain storage for each user separately.
Encourage collaboration and exchange of information
allowed geographically dispersed people work together by means of
groupware software such as
Collaborative editing, teleconferencing, and so on
Bit Torrent – allows users to share files across the Internet
Challenges of resource sharing is Security
E.g. email spam, DOS attacks
13 11/13/2024
Distribution Transparency
DS hide the fact that its processes and resources are physically
distributed across multiple computers
DS that is able to present itself to users and applications as if it
were only a single computer system is said to be transparent
That is, invisible, to end users and applications.
The concept of transparency can be applied to several aspects of a
distributed system.
The most important ones are shown on the next slide.
14 11/13/2024
Types of Transparency in a Distributed System
15 11/13/2024
Openness
An open distributed system is essentially a system that offers components that
can easily be used by, or integrated into other systems.
It often consists of component that originate from somewhere as well
How?
Components obey to standard rules that describe the syntax and semantics
of what services those components have to offer
Define services through Interfaces using interface definition
language(IDL)
It captures only the syntax of services like function name, parameter,
return type etc
Semantics (what those services do) specified in natural language
16 11/13/2024
Openness
By openness we want to achieve
Interoperability
Implementations from different manufacturers can work together by just
relying on the standard rules
Portability
Applications from one distributed system can be executed on another
distributed system that implements the same interface
Extensibility
Easy to add or replaces components in the system
Flexibility
Easy to modify/customize the system/component to a specific need
Flexibility is achieved by separating policy from mechanism
17 11/13/2024
Scalability
Scalability is the ability of a system, network, or process to handle a growing
amount of work in a capable manner(with no significant loss of performance)
Measured in three dimensions
Size scalable
Can easily add more users or resources to the system
Geographically scalable
Can easily handle users and resources that may lie far apart
Administratively scalable
Can easily managed even if it spans many independent administrative
organizations
Observation
Most systems account only for size scalability
Often solved by : multiple powerful servers operating independently in
parallel
18 11/13/2024
Scalability: Scaling Techniques
1. Hiding Communication Latencies
To achieve geographical scalability
Asynchronous communication
Shipping Code
2. Distribution
Distribution involves taking a component, splitting it into smaller parts, and
subsequently spreading those parts across the system.
An excellent example of distribution is the Internet Domain Name System (DNS). The
DNS name space is hierarchically organized into a tree of domains, which are divided
into nonoverlapping zones.
3. Replication
scalability problems often appear in the form of performance degradation, it is generally
a good idea to actually replicate components across a distributed system. Replication not
only increases availability, but also helps to balance the load between components
leading to better performance.
Caching: Special forming of replication
19 11/13/2024
Types of Distributed Systems
Three types of distributed systems
High performance distributed computing systems
Distributed information systems
Distributed systems for pervasive computing
20 11/13/2024
Distributed Computing Systems
Used for high performance computing tasks
Types of distributed computing systems
Cluster computing systems
Grid computing systems
Cloud computing systems
21 11/13/2024
Cluster Computing Systems
In virtually all cases, cluster computing is used for parallel programming in
which a single (compute intensive) program is run in parallel on multiple
machines.
A typical cluster system consists of a collection of compute nodes that are
controlled and accessed by means of a single master node.
Nodes are connected through a LAN.
Nodes are essentially homogeneous (Same OS, near-identical hardware )
The master node typically handles
The allocation of nodes to a particular parallel program,
Maintains a batch queue of submitted jobs, and
Provides an interface for the users of the system.
22 11/13/2024
Cluster Computing Systems
General configuration of Linux-based cluster called Beowulf
23 11/13/2024
Grid Computing Systems
In contrast to cluster computing, grid computing
Have a high degree of heterogeneity
Dispersed across several organizations
Can easily span a wide-area network
The goal is to bring users and resources from different organizations together to allow
collaboration among them
Establish Virtual Organization (VO)
Members belong to the same VO has access to the resources that are provided to
that VO
Focus of the software design for grid computing
Providing access to resources from different administrative domain to only those
users that belong to a specific VO
Typically, resources are
Compute servers (including supercomputers, cluster computers),
Storage facilities and Databases.
24
Networked telescopes, sensors, etc 11/13/2024
Grid Computing Systems
The issues in grid computing is architectural issue.
An architecture initially proposed by Foster et al. [2001] is shown
below, which still forms the basis for many grid computing
systems.
25 11/13/2024
Grid Computing Systems
Fabric layer
Provides interfaces to local resources at a specific site.
These interfaces are tailored to allow sharing of resources within a virtual
organization.
Typically, they will provide functions for querying the state and
capabilities of a resource, along with functions for actual resource
management (e.g., locking resources).
Connectivity layer
Consists of communication protocols for supporting grid transactions that
span the usage of multiple resources.
For example, protocols are needed to transfer data between resources, or to
simply access a resource from a remote location.
In addition, the connectivity layer will contain security protocols to
authenticate users and resources.
26 11/13/2024
Grid Computing Systems
Resource layer
Responsible for managing a single resource.
It uses the functions provided by the connectivity layer and calls directly
the interfaces made available by the fabric layer.
Collective layer
It deals with handling access to multiple resources and typically consists of
services for resource discovery, allocation and scheduling of tasks onto
multiple resources, data replication, and so on.
Application layer
Consists of the applications that operate within a virtual organization and
which make use of the grid computing environment.
Note:
Typically, the collective, connectivity, and resource layer form the heart of
what could be called a grid middleware layer
27 11/13/2024
Cloud computing
Provides computing services and resources (hardware and
software) over a network/internet
Cloud computing is based upon the concept of utility computing
Customers shall pay only based on a pay-per-use model
It is characterized by an easily usable and accessible pool
of virtualized resources
It is scalable as users can get more resources if more work
needs to be done
28 11/13/2024
Cloud computing
In practice, clouds are organized into four layers
Hardware – contains resources customers never get to see directly.
Infrastructure - Employs virtualization techniques to provide customers
virtual storage and computing resources
Platform – provides API for developing Apps(Kodular for android apps),
Storage
Application – Actual applications like suite of apps shipped with OSes
29 11/13/2024
Cloud computing
Cloud-computing providers offer these layers to their customers through various
interfaces
Command-line, Tools Programming interface and web interface)
Cloud computing providers offer their services according to three fundamental
models(Three service models)
Infrastructure as a service (IaaS)
Covering hardware and infrastructure layer
Basic infrastructure like storage
Platform as a service (PaaS)
Covering the platform layer
Database, web servers
Software as a service (SaaS)
Covering application layer
Software that the clients need like text processor
30 11/13/2024
Advantages of Cloud Computing
Trade capital expense for variable expense
Instead of having to invest heavily in data centers and servers before you know how
you’re going to use them,
You can pay only when you consume computing resources, and
Pay only for how much you consume.
Benefit from massive economies of scale
By using cloud computing, you can achieve a lower variable cost than you can get on
your own.
Because usage from hundreds of thousands of customers is aggregated in the cloud,
providers such as AWS can achieve higher economies of scale, which translates into
lower pay as-you-go prices.
Stop guessing capacity
Eliminate guessing on your infrastructure capacity needs.
When you make a capacity decision prior to deploying an application, you often end up
either sitting on expensive idle resources or dealing with limited capacity.
With cloud computing, these problems go away. You can access as much or as little
capacity as you need, and scale up and down as required with only a few minutes’
31 11/13/2024
notice.
Advantages of Cloud Computing
Increase speed and agility
In a cloud computing environment, new IT resources are only a click away, which
means that you reduce the time to make those resources available to your developers
from weeks to just minutes.
This results in a dramatic increase in agility for the organization, since the cost and time
it takes to experiment and develop is significantly lower.
Stop spending money running and maintaining data centers
Focus on projects that differentiate your business, not the infrastructure.
Cloud computing lets you focus on your own customers, rather than on the heavy lifting
of racking, stacking, and powering servers.
Go global in minutes
Easily deploy your application in multiple regions around the world with just a few
clicks.
This means you can provide lower latency and a better experience for your customers at
minimal cost.
32 11/13/2024
Issues of cloud computing
Cloud computing is becoming so popular and common
It allows organizations to outsource their IT infrastructure:
hardware and software
Certainly a serious alternative to maintaining huge local
infrastructures
However, it has certain issues to resolve
Provider lock-in,
Security and privacy issues, and
Dependency on the availability of services
33 11/13/2024
Distributed Information Systems
Enterprises might already have multiple networked information
systems
One that makes its services available to remote clients.
Example a University might have Registrar system, HRM
system etc….
However, integrating applications into enterprise wide
information system was painful
Middleware is the solution
Applications can be integrated at different levels
Database level
That results in Distributed Transaction Processing
Application level
34 Enterprise Application Integration (EAI) 11/13/2024
Distributed transaction processing
Operations on a database are usually carried out in the form of transactions.
A nested transaction is constructed from a number of sub-transactions
The sub transactions could run in parallel on different machines to gain
performance
35 11/13/2024
Distributed transaction processing
Transaction Processing Monitor (TP monitor)
TP monitor is a middle ware
Its main task is to allow application to access multiple
servers/databases
Clients combine requests for (different) servers; send that off;
collect responses, and present a coherent result to the user.
36 11/13/2024
Distributed transaction processing
37 11/13/2024
Transaction processing System
38 11/13/2024
Enterprise Application Integration
For applications decoupled from the databases they were built upon, facilities
were needed to integrate applications independent from their databases.
The Idea here is application’s component can directly communicate with
one another.
Inter application communication leads to different communication models
Remote procedure call or Remote Method Invocation
Requests are sent through local procedure call, packaged as message,
processed and result returned as message from call.
The disadvantage is that both caller and callee must be up and running
at the time of communication
Message Oriented Middleware (MOM) (Publish/Subscribe model)
Messages are sent to logical contact point (published), and forwarded to
subscribed applications
39 11/13/2024
Enterprise Application Integration
Middleware as a communication facilitator in enterprise application integration.
40 11/13/2024
Distributed Pervasive System
The distributed systems discussed so far are largely characterized by their
stability: nodes are fixed and have a more or less permanent and high-quality
connection to a network. But
Pervasive systems as its name suggests, pervasive systems are intended to
naturally merge into our environment.
The separation between users and system components is much more
indistinct.
There is often no single dedicated interface, such as a screen/keyboard
combination.
Uses sensors and actuators
Examples include smart homes, IoT networks, and pervasive computing
environments that integrate sensors and actuators to deliver intelligent services
and automation.
41 11/13/2024
Distributed Pervasive System
42 11/13/2024
Distributed Pervasive System: Examples
43 11/13/2024
Distributed Pervasive System: Examples
44 11/13/2024
Distributed Pervasive System: Examples
45 11/13/2024
i o n!
te nt
r a t
y o u
s fo r
a nk
Th
46 11/13/2024
Quiz-1(5%)
1. List and define goals of Distributed System?
2. List and define types of Distributed computing System?
3. List and explain the scaling techniques?
4. List and explain the Transaction properties?
5. List and explain the cloud service model?
47 11/13/2024