0% found this document useful (0 votes)
14 views

Lec 1 Introduction

This document provides an overview of distributed systems. It begins with an introduction to distributed systems and how advances in technology enabled their development. It then defines distributed systems and their key characteristics of concurrency, lack of a global clock, and independent failures. Examples of distributed systems are given like the Internet, World Wide Web, online gaming and more. The document discusses challenges of distributed systems including heterogeneity, openness, security, scalability, and failure handling. It provides more details on challenges like openness, security, and resource sharing in distributed systems.

Uploaded by

zelalem alem
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Lec 1 Introduction

This document provides an overview of distributed systems. It begins with an introduction to distributed systems and how advances in technology enabled their development. It then defines distributed systems and their key characteristics of concurrency, lack of a global clock, and independent failures. Examples of distributed systems are given like the Internet, World Wide Web, online gaming and more. The document discusses challenges of distributed systems including heterogeneity, openness, security, scalability, and failure handling. It provides more details on challenges like openness, security, and resource sharing in distributed systems.

Uploaded by

zelalem alem
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 94

Chapter 1

Distributed Systems
➢ Introduction
➢ Trends in distributed systems
➢ Challenges of distributed system
➢ Architectural models
➢ Fundamental models
➢ Types of distributed systems
Introduction
 Starting from1980s, two advances in technology began to
change.
 Development of powerful microprocessors
 8-bit machines, but soon 16-, 32-, and 64-bit
 Invention of high-speed computer networks (LANs)
 Data can be moved between machines at rates of 100 million to 10
billion bits/sec.
 WANs allow millions of machines all over the earth to be
connected
 These technologies make it easy to put computing systems
composed of large numbers of computers connected by a high-
speed network together.
Definition of DS
 Distributed system is one in which hardware or software
components located at networked computers communicate and
coordinate their actions only by passing messages.
 Typical characteristics of DS include Concurrency, No global clock and
Independent failures
 Concurrency
 In a network of computers, program is executed concurrently.
 No global clock
 Close coordination depends on a shared idea of the time at which the
programs’ actions occur.
 But there are limits to the accuracy to synchronize.
 There is no single global notion of the correct time.
 The only communication is by sending messages through a network.
Definition of DS
 Independent failures
 Faults result in the isolation of the computers.
 But the system does not stop running.
 Each component of the system can fail independently, leaving
the others still running.
 Other definition of DS
 A distributed system is a collection of independent computers
that appears to its users as a single coherent system.
 From this definition;
 A distributed system consists of computers that are autonomous.
 Users think they are dealing with a single system.
Definition of DS
 To support heterogeneous computers and networks while
offering a single-system view, DSs are organized by means of
a layer of software.
 A distributed system is sometimes called middleware.
 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
 And also to let different applications communicate.
 It hides the differences in hardware and operating systems
from each application.
 The prime motivation for using distributed systems is a desire
to share resources.
Network vs Distributed Operating
System
 The network operating system is the platform to run a
system software on a server and allow the server to manage
the users, data, groups, security, applications and other
networking functions.
 It is the primary form of an operating system for the
distributed architecture.
 The goal for the network operating system is to permit
resource sharing among two or more computers operating
under their own OSs.
Network vs Distributed Operating
System
 The distributed operating system handles a group of
independent computers and makes them look like an
ordinary centralized operating system.
 This is achieved by enabling the proper communication
between the different computers connected with each other.
 The main aim of the distributed operating system is the
transparency where the use of multiple hardware resources is
hidden from the users.
 The distributed operating system is less autonomous than
network operating system.
Network Operating System Distributed Operating System
A network operating system is made up of
A distributed operating system is an
software and associated protocols that
ordinary centralized operating system but
allow a set of computer network to be
runs on multiple independent CPUs.
used together.
Environment users are aware of Environment users are not aware of
multiplicity of machines. multiplicity of machines.
Control over file placement is done It can be done automatically by the
manually by the user. system itself.
It is more reliable or fault tolerant i.e
Performance is badly affected if certain distributed operating system performs
part of the hardware starts malfunctioning. even if certain part of the hardware starts
malfunctioning.
Remote resources are accessed by either
logging into the desired remote machine Users access remote resources in the same
or transferring data from the remote manner as they access local resources.
machine to user's own machines.
Distributed Operating
Basis for comparison Network Operating System
System
Provision of local services to Management of hardware
Objective
the remote client. resource.
Loosely coupled system Tightly coupled system used
Use employed in heterogeneous in multiprocessor and
computers. homogeneous computers.
2-tier client/server N-tier client/server
Architecture
architecture. architecture.
Level of transparency Low High
Basis for communication Files Shared memory and messages
Global central or distributed
Resource Management Handled at each node.
management.
Ease of implementation High Low
Scalability More Less or moderate.
Operating system on all nodes Can be different Same
Rate of autonomy High Low
Fault tolerance Less High
Resource Sharing
 Resources are those that can be shared in a
networked computer system.
 hardware
 Disks and
 Printers
 Software
 Files,
 Databases and data objects
 Stream of video
 Audio
Resource Sharing
 We share equipment such as printers and disks to
reduce costs.
 Users are concerned with sharing data in the form
of a shared database or web pages.
 But also we are sharing the disks and processors on
which they are implemented.
 Users think in terms of shared resources such as a
search engine or a currency converter.
 But without regard for the server or servers that
provide these.
Examples of distributed systems
 Networks are everywhere.
 the Internet
 World Wide Web,
 web search,
 online gaming,
 email,
 social networks,
 eCommerce, etc.
Trends in distributed systems
 DSs are undergoing a period of significant change and
this can be traced back to influential trends:
 Emergence of pervasive networking technology;
 Emergence of ubiquitous computing ;
 Increasing demand for multimedia services;
 View of distributed systems as a utility.
Challenges
 As the scope and scale of distributed systems and
applications is extended, challenges are encountered.
 The main challenges and thus the goal of DS are:
 Heterogeneity
 Openness
 Security
 Scalability
 Failure handling
 Concurrency
 Transparency
Openness
 It determines whether the system can be extended and re-implemented
in various ways.
 Openness can be achieved only if
 The specification and documentation of software interfaces of a system are
made available to software developers.
 The key interfaces are published.
 This process is similar to the standardization of interfaces.
 Next is challenging to tackle the complexity of distributed systems
consisting of many components.
 Documentation such as ‘Requests For Comments’, or RFCs, are helpful.
 The publication of the original Internet protocols enabled Internet
systems and applications to be built.
 Open distributed systems can be extended at the:
 Hardware level by the addition of computers to the network and
 Software level by the introduction of new services
Security
 Security for information resources has three components:
 Confidentiality – protection against disclosure to unauthorized
individuals
 Integrity – protection against alteration or corruption and
 Availability – protection against interference with the means to access
the resources.
 Security risks are associated with allowing free access to all of the
resources in an intranet.
 A firewall can be used to restrict the traffic that can enter and leave
 This cannot reduce risks posted
 By users within an intranet or
 With the appropriate use of resources in the Internet, that are not
protected by firewalls.
 In a DS, clients send requests to access data from servers.
 This involves sending information over a network.
Security
 For example:
 A doctor might request access to hospital patient data or send
additions to data.
 In e-commerce and banking, users send their credit card
numbers across the Internet.
 This needs sending sensitive information over a network in a
secure manner.
 Security also involves knowing the identity of the user on whose
behalf a message was sent.
 The server needs to know that the user is really a doctor, and
 The user needs to be sure of the identity of the shop or bank.
 The challenges of security can be met by the use of encryption
techniques.
Security
 But, the following two security challenges have not been fully met:
 Denial of service attacks
 A user can disrupt a service by bombarding the service with a
large number of pointless requests.
 This is called a denial of service attack.
 Such attacks are countered by attempting to catch and punish the
perpetrators after the event.
 Security of mobile code
 Consider an executable program as an electronic mail
attachment:
 The possible effects of running the program are unpredictable;
 It may seem to display an interesting picture but in reality it may
access local resources,
 Or it can be part of a denial of service attack.
Scalability
 Distributed systems operate efficiently ranging from a small
Intranet to the Internet.
 A system is scalable if it will remain effective when there is a
significant increase in the number of resources and users.
 The number of computers and servers in the Internet has
increased dramatically.
 The design of scalable distributed systems has the following
challenges:
Controlling the cost of physical resources
 As the demand for a resource grows, it should be possible to
extend the system, at reasonable cost.
Scalability
 For example, the frequency of file accessed in an intranet grows as the
number of users and computers increases.
 It must be possible to add server to avoid the performance bottleneck.
 For a system with n users to be scalable, the quantity of physical resources
required to support them should be at most O(n).
Controlling the performance loss
 Consider a set of data whose size is proportional to the number of users.
 For example;
 The table with the mapping between the domain names and their Internet addresses
by DNS.
 Algorithms that use hierarchic structures scale better than linear
structures.
 With hierarchic structures an increase in size will result in some loss
in performance:
 Time taken to access hierarchically structured data is O(log n), n is
the size set of data.
Scalability
Preventing software resources running out:
 An example of lack of scalability is IP addresses.
 in 1970s, it was decided to use 32 bits.
 But, the supply of available Internet addresses is running
out.
 Thus, a new version of the protocol with 128-bit Internet
addresses is being adopted – Ipv6.
 This will require modifications to many software
components.
System Models
 The properties and design issues of distributed
systems can be captured and discussed through
models.
Architectural models
 They describe a system in terms of the computational
and communication tasks performed.
 The computational elements are individual computers
supported by network interconnections.
Fundamental models
 They take an abstract perspective to examine
individual aspects of a distributed system.
System Models
Architectural models
 Architectural elements
 Communicating entities
 Communication paradigms
 Roles and responsibilities
 Placement
 Architectural patterns
 Layering
 Tiered architectures
 Thin clients
Fundamental models
 Interaction models
 Failure models
 Security models
Architectural models
 System architecture is defined as structure in
terms of separately specified components and their
interrelationships.
 The goal is to ensure that the structure will meet
present and future demands.
 Major concerns are to make the system
 Reliable,
 Manageable,
 Adaptable and
 Cost-effective
Architectural models
 We will use the following approach:
 Looking at underlying Architectural Elements
that support modern distributed systems;
 Examining composite Architectural Patterns
that can be used in isolation or in combination;
Architectural elements
 To understand the building blocks of a distributed
system, we need to consider four key questions:
 What are the entities that are communicating in
the distributed system?
 How do they communicate?
 What roles and responsibilities do they have in the
overall architecture?
 How are they mapped on to the physical distributed
infrastructure (their placement)?
Components
 Components like objects offer problem-oriented abstractions and
are accessed through interfaces.
 Components make all dependencies explicit.
 The dependency provides a more complete contract for system
construction.
Web services
 Web services are related to objects and components and are
accessed through interfaces.
 Objects and components are used to develop tightly coupled
applications.
 Web services are complete services in their own right and crossing
organizational boundaries.
 Web services may be implemented by different providers and
using different technologies
Communicating Entities
 What are communicating and how are central to the DS.
 From a system perspective, the entities that
communicate in a DS are processes.
 In sensor networks, the entities that communicate are nodes.
 In most DS environments threads are endpoints of
communication.
 From programming perspective more problem-oriented
abstractions have been proposed:
Objects
 Objects are introduced to encourage the use of object
oriented approaches in DS.
 Objects are accessed via interfaces, with an associated
interface definition language (or IDL).
Communication paradigms
 Three types of communication paradigm:
 Inter process communication;
 Remote invocation;
 Indirect communication.
 Inter process communication- low level
communication between processes in DS by;
 Message-passing
 Access to the API offered by IP (socket programming)
and
 Multicast communication.
Communication paradigms
 Remote invocation covering a range of techniques
based on a two-way exchange between
communicating entities. (calling of a remote
operation, procedure or method)
 Request-reply protocols
 Remote procedure calls
 Remote method invocation
 Indirect communication techniques include:
 Group communication
 Publish-subscribe systems
 Message queues
 Tuple spaces
 Distributed shared memory
Request-reply
 Request-reply protocols support client-server
computing.
 A pairwise exchange of messages
 From client to server – containing operation with
arguments to be executed at the server and
 From server back to client – containing results of the
operation
 This paradigm is primitive and only used in
embedded systems where performance is
paramount.
 The approach is also used in the HTTP protocol.
Remote procedure calls
 In RPC, procedures in processes on remote
computers can be called as if they are in the local
address space.
 The RPC system hides the encoding and decoding of
parameters and results.
 RPC supports client-server with servers offering a
set of operations through a service interface and
clients calling these operations.
 RPC systems offer access and location transparency.
Remote method invocation

 RMI resembles RPC but it uses of distributed


objects.
 A calling object can invoke a method in a remote
object.
 The underlying details are hidden from the user.
Indirect Communication
 The above techniques use direct communication.
 Two-way relationship between a sender and a receiver
 Both parties must exist at the same time
 In in-direct communication a third entity allows
decoupling between senders and receivers.
 Senders do not know who they are sending to (space
uncoupling).
 Senders and receivers do not need to exist at the same
time (time uncoupling).
Conti..
 Group communication
 Delivery of messages to a set of recipients.
 Supporting one-to-many communication.
 The abstraction of a group by a group identifier.
 Recipients elect to receive messages sent to a group by
joining the group.
 Senders then send messages to the group via the group
identifier.
 Groups also maintain group membership.
Conti..
 Publish-subscribe systems
 Large number of producers (publishers) distributes
items of interest to a large number of consumers
(subscribers).
 Publish-subscribe systems provide intermediary service
that ensures information generated by producers is
routed to consumers.
 Message queues
 Publish-subscribe offer a one-to-many communication
 But message queues offer a point-to-point service.
 Producer processes can send messages to a queue and
 consumer processes can receive messages from the queue.
 Queues offer an indirection between the producer and
consumer processes.
Conti..
 Tuple spaces
 In tuple spaces, processes can place items of structured data,
called tuples, in a tuple space and other processes can either read
or remove tuples.
 Since the tuple space is persistent, readers and writers do not
need to exist at the same time.
 DS can be developed adopting either a client-server
implementation or peer-to-peer approach.
 Distributed shared memory
 DSM systems provide an abstraction for sharing data between
processes that do not share physical memory.
 Programmers are presented with an abstraction of reading or
writing data structures as if they were in their own local address
spaces.
 High level of distribution transparency
Roles and responsibilities
 In a distributed system, processes, objects,
components or services, including web services
interact with each other to perform a useful
activity (like chatting).
 The processes take on given roles, and these roles
are fundamental in establishing the overall
architecture.
 We examine two architectural styles
 Client-server and
 Peer-to-peer.
Client-Server
 It is the most important and the most widely employed.
 Client processes interact with server processes to access the
shared resources.
 Servers can be clients of other servers.
 A web server is a client of a local file server
 Web servers are client of the DNS service.
 Search engines which are made by web crawlers is both a
server and a client. It runs web crawlers that act as clients
of other web servers.
 A search engine includes many concurrent threads of
execution, some serving its clients and others running web
crawlers.
Clients invoking server
Peer-to-Peer
 All the processes involved in an activity play similar roles.
 All processes run the same program and offer the same set of
interfaces to each other.
 In client-server model, placing a service at a single address
does not scale beyond the capacity of the computer that hosts
the service.
 Peer-to-peer model allows resources available to run the
service grow with the number of users.
 The aim of peer-to-peer model is to exploit the resources
(data and hardware) in a large number of computers.
 Peer-to-peer systems are constructed that enable tens or
hundreds of thousands of computers to provide access to data
and other resources.
Peer-to-Peer
 A large number of data objects are shared.
 Individual computer holds a small part of the application
database, and the storage, processing and communication
loads.
 Each object is replicated in several computers to distribute
the load and to provide availability during hosts failure.
 This architecture is more complex than the client-server
architecture.
 The Napster application for sharing digital music files
showed that the peer-to-peer is feasible architecture.
 The BitTorrent file-sharing system is the best Peer-to-peer
system.
Placement
 Where to place a given client or server in terms of
machines and processes within machines?
 Placement needs to consider:
 The patterns of communication between entities,
 The reliability of given machines and their current
loading,
 The quality of communication between different
machines
 The following placement strategies;
 Mapping of services to multiple servers;
 Caching;
 Mobile code;
 Mobile agents.
Mapping of services to multiple servers
 Services can be implemented as several server processes in
separate host computers.
 The servers partition the set of objects and distribute those
objects between themselves.
 The Web provides partitioned data in which each web server
manages its own set of resources.
 Servers may also maintain replicated copies of objects on several
hosts.
 Example –Network Information Service (NIS) enable all the
computers on a LAN to access the same user data when users log
in.
 Each NIS server has replica of passwords and user names.
 A more closely coupled type of multiple-server architecture is the
cluster.
Caching
 A cache is a store of recently used data objects that is closer
to the client.
 When a new object is received from a server it is added to the
local cache store.
 When an object is needed by a client process, the caching
service first checks the cache and supplies the up-to-date
object.
 If not, an up-to-date copy is fetched.
 Caches can be located in a proxy server that can be shared by
several clients.
 Web browsers maintain a cache of recently visited web pages.
 Proxy servers increase the availability and performance of the
network and web servers.
Mobile code
 Applets are widely used example of mobile code.
 The user (browser) selects a link to an applet code
stored on a web server.
 The code is downloaded to the browser and runs.
 Since it does not suffer from the delays, running the
code locally give good interactive response.
 Accessing services means running code that can
invoke their operations.
 Some web sites use functionality not found in
browsers and require the downloading of additional
code.
Mobile code
 This code may communicate with the server.
 Consider a service that requires users be up-to-date with
changes as they occur at the server.
 This cannot be achieved by normal interactions (initiated by
the client) with the web server.
 The solution is to let each client download a special applet
that receives updates from the server (push-model – initiated
by server).
 E.g. – stockbrokers notify customers of changes in the
prices of shares.
 Mobile code is a potential security threat to the local
resources.
 Therefore browsers give applets limited access to local
resources.
Mobile agents
 A mobile agent is a running program (code and data)
 Travels to another computer to do a task on someone’s behalf.
 A mobile agent may make many invocations to local
resources at each site it visits.
 Such as accessing database entries.
 Compare with a static client, this architecture reduce
communication cost and time by replacement of remote
invocations with local ones.
 It can be used to install and maintain software on the
computers within an organization.
 Mobile agents are security threat to the computers that they
visit.
 Their identity must be included with the code and data of the
mobile agent.
Architectural patterns
 There are different architectural patterns
 Layering
 Tiered architectures
 Thin clients
Layering

 Layering is related to abstraction – a complex


system is partitioned into a number of layers.
 A layer offers a software abstraction, with higher
layers being unaware of implementation details.
 It is a vertical organization of services into service
layers.
Platform
 A platform for DSs consists of the lowest-level
hardware and software layers.
 These low-level layers provide services to the
layers above them.
 Which are implemented independently in each
computer (heterogeneous).
Middleware
 The purpose of middleware is to mask heterogeneity and to
provide a convenient programming model to the programmers.
 Middleware (processes or objects) implements communication
and resource-sharing support for distributed applications.
 It provides building blocks for constructing software components
that can work with one another in a DS.
 It raises the level of the communication activities of programs
through
 Remote method invocation;
 Communication between a group of processes;
 Notification of events;
 The partitioning, placement and retrieval of shared objects;
 The replication of shared objects;
 The transmission of multimedia in real time.
Tiered architecture
 Tiered architectures are complementary to layering.
 It is a technique to organize functionality of a given layer and
place this functionality into appropriate servers.
 This technique is commonly associated with the organization of
applications and services layer (the top layer).
 The two common architectures are:
 Two- tiered
 Three-tiered architecture
 Consider the functional decomposition of a given application, as
follows:
 The presentation logic – handling user interaction.
 The application logic – detailed application-specific processing
 The data logic – persistent storage of the application (database).
Conti..
Two-tier
 In this solution, the three logics must be partitioned into the client and
the server.
 This is done by splitting the application logic into the client and server.
 The advantage is low latency in terms of interaction, with only one
exchange of messages to invoke an operation.
Three-tier
 In this solution, there is a one-to-one mapping from logical
elements to physical servers.
 This can enhance maintainability of the software.
 Each tier has a well-defined role, for example;
 The first tier can be a simple user interface allowing support for thin clients.
 The third tier is a database
 The drawbacks are;
 the added complexity of managing three servers and
 the added network traffic and latency.
 This approach generalizes to n-tiered solutions where an
application is partitioned into n logical elements.
Two- tiered
Three- tiered
AJAX (Asynchronous Javascript And XML)
 It is an extension to the standard client-server style of
interaction used in the WWW.
 AJAX allows fine-grained communication between a
Javascript front-end program (web browser) and a server-
based back-end program.
 In the standard web, browsers send an HTTP request to a
server for a page, image or other resource.
 The server replies by sending an entire page.
 When the content is received at the client, the browser
presents it to user.
AJAX
 This standard web style has limitation.
 Once the browser has issued an HTTP request, the
user cannot interact with the page until the HTML
content is received.
 To update part of the page with additional data from
the server, an entire new page must be requested.
 Resulting in a delayed response and redundant network
traffic.
 The page at the client cannot be updated in response
to changes in the application data at the server.
AJAX
 The introduction of Javascript assists in removal of the
above constraints.
 Javascript enables both user interface and application
logic to be programmed and executed in browser
window.
 AJAX enables Javascript front-end programs to request
new data directly from server programs.
 Any data items can be requested and the current page
updated selectively to show the new values.
Applications of AJAX
 Search engines
 Using Ajax, they added a Site Info feature that displays additional information about a
website when the user moves the mouse pointer over the link.
 Use of suggestion-based search engines, which retrieve data from the web server based
on user keystrokes.
 Maps
 Using Ajax, Google maps allow dragging locations and based on user
input, new map images are returned and displayed in the map (no page
refreshes).
 Virtual Desktop Applications
 ajaxWindows allows to run virtualized OS on web browsers.
 Desktop applications, including a word processor (ajaxWrite) and a paint program
(ajaxSketch).
 Instant Message Applications
 Browser-based IM that allows users to send and receive messages (no need of
refreshing browser).
Thin clients
 Thin client refers to a software layer that supports a
window-based user interface.
 The execution of application programs are implemented on
a remote computer.
 The advantage of them is that simple local devices (e.g.
smart phones) can be enhanced with an excess of networked
services and capabilities.
 The drawback of the thin client is in highly interactive
graphical activities such as CAD and image processing.
 Delays experienced by users will increase.
 This concept has led to the emergence of virtual network
computing (VNC).
Thin clients
 VNC supports the transmission of keyboard, video and mouse
events over IP.
 The concept is providing remote access to graphical user
interfaces.
 A VNC client interacts with a VNC server through a VNC
protocol.
 The protocol operates at a primitive level in terms of graphics
support.
 This low-level approach ensures the protocol will work with any
operating system.
 VNC realises thin client through simple devices that are
completely reliant on networked services, downloading their OS
and software needed by the user from a server.
Fundamental models
 The architectural models are composed of processes that
communicate with one another by sending messages over a
computer network.
 All of the models share the requirements of achieving the
performance and reliability characteristics of processes and
networks and ensuring the security of the resources in the
system.
 Here, fundamental properties that are more specific such as
characteristics, failures and security risks are discussed.
 The purpose of such a model is:
 To make explicit all the assumptions about the systems we are
modelling.
 To make generalizations of what is possible or impossible.
 The generalizations may take the form of general-purpose algorithms or
desirable properties.
Fundamental models
 The fundamental models capture three basic
concepts;
 Interaction: the processes interact by passing messages, resulting
in communication and coordination between processes.
 The interaction model must consider that the communication faces delays
and the accuracy of coordination is limited by these delays.
 Failure: The correct operation of a DS is threatened when a fault
occurs in the computers or in the network that connects them.
 This model defines and classifies the faults.
 This is used to analyze their potential effects and designing fault tolerable
system.
 Security: The modularity of DS and their openness exposes them
to attack.
 The security model defines and classifies the forms of such attacks.
Interaction model
 Distributed systems are composed of many processes, interacting
in complex ways.
 Server processes cooperate with one another to provide a service;
 A set of peer processes may cooperate with one another to achieve a
common goal:
 Simple program is controlled by algorithms and steps are
sequential.
 Distributed systems (multiple processes) described by a
distributed algorithm.
 A definition of the steps to be taken by each of the processes
 The rate at which each processes proceeds and the timing of
message transmission cannot be predicted.
 The two significant factors affecting interacting processes;
 Communication performance
 No single global notion of time
Variants of the interaction
 There are two variants of the interaction model;
 Synchronous distributed systems
 Asynchronous distributed systems

Synchronous distributed systems – the following bounds


are defined
 The time to execute each step of a process has lower and
upper bounds.
 Each message transmitted is received within a known
bounded time.
 Each process has a local clock whose drift rate has a known
bound.
 In a synchronous system, timeouts can be used to detect the
failure of a process.
Variants of the interaction
 Asynchronous distributed systems
 An asynchronous DS is one in which there are no bounds on:
 Process execution speeds – each step may take long time.
 Message transmission delays – a message may be received
after an arbitrarily long time.
 Clock drift rates – the drift rate of a clock is arbitrary.
 The model allows no assumptions on time intervals involved in
any execution.
 This models the Internet – e.g. an email message can take
days to arrive.
 Actual DSs are often asynchronous because of the need for;
 processes to share the processors and
 communication channels to share the network.
Failure model
 In a DS both processes and communication
channels may fail.
 Failures of processes and communication channels
can be;
 Omission failures,
 Arbitrary failures and
 Timing failures.
 Omission failures are of two types;
 Process omission failures
 Communication omission failures
Security model
 The security of a DS can be achieved by securing the
processes and the channels.
Protecting objects
 Objects are intended to be used in different ways by users.
 Some objects may hold a user’s private data, such as their
mailbox.
 Objects may hold shared data such as web pages.
 Access rights specify who is allowed to perform the operations of
an object.
 We associate with each invocation and each result the authority
on which it is issued.
 Such an authority is called a principal – a principal may be a
user or a process.
 The invocation comes from a user and the result from a server.
Types of Distributed Systems

 We have three types of DS;


 Distributed computing systems
 Distributed information systems
 Pervasive systems
High performance distributed
computing
 High-performance computing has two subgroups.
 Cluster computing
 Hardware consists of a collection of similar workstations or PCs
 Closely connected by a high-speed LAN.
 Each node runs the same operating system.
 Grid computing
 Consists of DS that are constructed as a federation of computer
systems.
 Each system may fall under a different administrative domain.
 Different hardware, software, and deployed network
technology.
Cluster computing
 They are used to build a supercomputer using off the-shelf
technology by simply hooking up a collection of relatively
simple computers in a high-speed network.
 Cluster computing is used for parallel programming in
which a single program is run in parallel on multiple
machines.
Cluster computing
 In the above figure each cluster consists of a collection of
compute nodes that are controlled and accessed by means
of a single master node.
 The master 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.
 The master runs the middleware needed for the execution
of programs and management of the cluster.
 The compute nodes are equipped with a standard OS
extended with typical middleware functions.
Grid computing
 In grid computing systems no assumptions are made
concerning similarity of hardware, OS, networks,
administrative domains, security policies, etc.
 Resources from different organizations are brought together
to allow the collaboration of a group of people from different
institutions, and forming a federation of systems.
 Such collaboration is realized in the form of a virtual
organization.
 The processes belonging to the same virtual organization
have access rights to the resources that are provided to that
organization.
 Resources consist of compute servers, storage facilities and
databases.
Grid computing
 The software provides access to resources from different
administrative domains, and to only those users belong to
a specific virtual organization.
 A common architecture which is the basis for many grid
computing systems is shown bellow.
Grid computing
 The architecture consists of four layers.
 The fabric layer provides interfaces to local resources at a
specific site.
 These interfaces are used to allow sharing of resources within a
virtual organization.
 They will provide functions for querying the state and
capabilities of a resource.
 The 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.
 The connectivity layer will contain security protocols to
authenticate users and resources.
Grid computing
 The resource layer is responsible for managing a single resource.
 It uses the functions provided by the connectivity layer and calls the
interfaces made available by the fabric layer.
 This layer is used to perform specific operations such as creating a
process or reading data.
 The collective layer deals with handling access to multiple
resources and consists of services for resource discovery, allocation
and scheduling of tasks onto multiple resources, data replication, and
so on.
 The application layer consists of the applications that operate
within a virtual organization and which make use of the grid
computing environment.
 The collective, connectivity, and resource layer form a grid
middleware layer.
 These layers provide access to and management of resources that are
dispersed across multiple sites.
Cloud computing
 Utility computing is by which a customer could upload
tasks to a data center and be charged on a per-resource
basis.
 Utility computing formed the basis for what is now called
cloud computing.
 Cloud computing is characterized by an easily usable and
accessible pool of virtualized resources.
 Which and how resources are used can be configured
dynamically, providing the basis for scalability.
 Cloud computing is based on a pay-per-use model in which
guarantees are offered by means of customized service level
agreements (SLAs).
The organization of clouds
Cloud computing
 Clouds are organized into four layers.
 Hardware: formed by the means to manage the necessary
hardware: processors, routers, power and cooling systems.
 It is implemented at data centers and contains the resources that
customers never get to see directly.
 Infrastructure: a layer forming the backbone for most cloud
computing platforms.
 It deploys virtualization techniques to provide customers an
infrastructure consisting of virtual storage and computing
resources.
 Cloud computing evolves around allocating and managing virtual
storage devices and virtual servers.
Cloud computing
 Platform: like operating systems, the platform layer provides
higher-level abstractions for storage.
 For example the Amazon S3 (Simple Storage Service) storage
system is offered to the application developer in the form of an
API allowing files to be organized and stored in buckets.
 A bucket is somewhat comparable to a directory.
 By storing a file in a bucket, that file is uploaded to the Amazon
cloud.
 Application: applications run in this layer and are offered to
users for further customization.
 Well-known examples include those found in office suites.
 These applications are executed in the vendor’s cloud.
 They can be compared to the traditional suite of applications that
are shipped when installing an operating system.
Cloud computing
 Cloud-computing providers offer these layers to
their customers through various interfaces
(command-line tools, programming interfaces, and
Web interfaces), leading to three different types of
services:
 Infrastructure-as-a-Service (IaaS) covering the
hardware and infrastructure layer
 Platform-as-a-Service (PaaS) covering the platform
layer
 Software-as-a-Service (SaaS) in which their
applications are covered
Distributed Information System

 Distributed Information System is of two


types
 Distributed transaction processing
 Enterprise application integration
Distributed transaction processing
 Operations on a database are carried out in the form of
transactions.
 Programming using transactions requires special primitives
supplied by the distributed system or by the language runtime
system.
 The list of primitives depends on what kinds of objects are being
used in the transaction.
 In a mail system, there might be primitives to send, receive, and
forward mail.
 In an accounting system, READ and WRITE are typical
examples.
 RPCs (procedure calls to remote servers) are encapsulated in a
transaction, leading to what is known as a transactional RPC.
Example primitives for transactions.
Primitive Description

BEGIN_TRANSACTION Mark the start of a transaction

Terminate the transaction and try


END_TRANSACTION to commit

Kill the transaction and restore


ABORT_TRANSACTION the old values

Read data from a file, a table, or


READ otherwise

Write data to a file, a table, or


WRITE otherwise
Distributed transaction processing
 BEGIN_TRANSACTION and END_TRANSACTION are used
to delimit the scope of a transaction.
 The operations between them form the body of the transaction.
 The characteristic feature of a transaction is either
 All of these operations are executed or
 None are executed.
 Transactions adhere to the so-called ACID properties:
 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
Enterprise application integration
 Application components should be able to communicate directly
with each other and not by means of the request/reply (as in the
case of transaction processing).
 This inter application communication led to many
communication models.
 RPC – an application component can send a request to another
application component by doing a local procedure call.
 The result will be sent back and returned to the application as
the result of the procedure call.
 In RPC and RMI, the caller and callee need to be running at the
time of communication.
Middleware as a communication facilitator in
enterprise application integration.

You might also like