Chapter 1 - Characterization of Distributed Systems
Chapter 1 - Characterization of Distributed Systems
1
Prepared by: Khem Thay
WHAT IS DISTRIBUTED SYSTEM
▪ Distributed system refers to the system that its components locate
at networked computers, communicate and coordinate their actions
by passing only messages.
▪ Characteristics of distributed systems include:
▪ Concurrency of components
▪ Lack of a global clock
▪ Independent failures of components
2
WHAT IS DISTRIBUTED SYSTEM
▪ The trends of distributed systems include:
▪ The pervasive nature of networking
▪ The emergence of mobile and ubiquitous computing
▪ The increasing importance of distributed multimedia systems
▪ Distributed systems as a utility
▪ Distributed systems mainly rely on resource sharing. Resource refer
to things that can be shared in a networked computer system
▪ Resources are managed by servers and accessed by clients, or
they can be encapsulated as objects and accessed by other client
objects.
3
Pervasive networking and the modern Internet
The modern Internet is a vast interconnected collection of computer networks of
many different types, with the range of types increasing all the time, for example, a
wide range of wireless communication technologies
intranet
ISP
backbone
satellite link
desktop computer:
server:
network link:
4
Mobile and ubiquitous computing
Ubiquitous computing is the harnessing of many small, cheap computational devices
that are present in users’ physical environments, including the home, office and even
natural settings.
6
INTRODUCTION
CONCURRENCY
▪ In a network of computers, concurrent program execution is important.
▪ The capacity of a system to handle shared resources can be increased by adding
more resources (EX: more servers) to the network
NO GLOBAL CLOCK
▪ Programs cooperate by coordinating their actions by exchanging messages.
▪ The accuracy that computers in a network can synchronize their clocks is very limited
– there is no exact global notion of the correct time
INDEPENDENT FAILURES
▪ All computer systems (software, OS, hardware, network, etc.) can fail anytime.
▪ The failure of a computer, or the unexpected termination of a program in the system
isn’t immediately known by other components with which it communicates.
▪ Each component of system can fail independently, and the others still be running
7
RESOURCE SHARING
▪ What we normally can share:
▪ Hardware resources, EX: printers
▪ Data resources, EX: files
▪ Specific-functionality resources, EX: search engines
8
RESOURCE SHARING
▪ Resources can be accessed from other computers by means of communication.
▪ Each resource is managed by a program that offers a communication interface
enabling that resource to be accessed and updated consistently.
▪ The term server refers to a running program (a process) that accepts requests from
programs running on other computers to perform service and responds back.
▪ The requesting processes are referred to as clients. And the overall approach is
known as client-server computing. In this approach, requests are sent in messages
from clients to a server; replies are sent in messages from the server to the clients
▪ When a client sends a request for an operation to be performed, we say that the client
invokes an operation upon the server. A complete interaction from the time a client
sends its request until it receives back the response, is called remote invocation
▪ Some distributed systems can be constructed just by interacting Clients and servers
9
CHALLENGES
HETEROGENEITY
▪ Heterogeneity applies to the following components:
▪ Networks: the Internet has many different kinds of network, but all devices
attached to the Internet must use IP to communicate with each other.
▪ Computer hardware: data types such as integers may be represented in different
ways on different kinds of hardware
▪ Operating systems: all OS implement IP, but they may have different API to access
IP.
▪ Programming languages: different programming languages use different
representations of characters and data structures, such as arrays and records.
▪ Implementations by different developers: programs written by different
developers can communicate with one another only if they use common
standards.
10
CHALLENGES
HETEROGENEITY
▪ MIDDLEWARE
▪ Middleware is a software layer that provides a programming abstraction, and
hides the heterogeneity of underlying networks, hardware, OS and programming
languages, EX: Common Object Request Broker (CORBA), and Java Remote
Method Invocation (RMI).
▪ Most middleware is implemented over IP, which hide the differences of the
underlying networks, OS and hardware.
▪ Middleware also provides a uniform computational model and distributed
applications.
▪ HETEROGENEITY AND MOBILE CODE
▪ Mobile code is the program code that can be transferred from 1 computer to
another and run at the destination, EX: Java applets.
▪ The virtual machine approach provides a way of making code executable on a
variety of host computers by using compiler.
11
CHALLENGES
OPENNESS
▪ The openness of distributed systems is determined by the degree to which new
resource-sharing services can be added and be available to different client
programs
▪ Open distributed systems focus on extensibility. They can be extended at:
▪ Hardware level: by adding more computers to the network.
▪ Software level: by adding new services and reimplementation of old ones
12
CHALLENGES
SECURITY
▪ Security for information resources has 3 components:
▪ Confidentiality: protection against disclosure of data to unauthorized individuals
▪ Integrity: protection against alteration or corruption of data
▪ Availability: protection against interference which about to access the resources
▪ Clients send requests to access data managed by servers, which involves sending
information in messages over a network. The challenge is to send sensitive
information in a message over a network in a secure manner.
13
CHALLENGES
SCALABILITY
▪ A system is described as scalable if it will remain effective when there is a significant
increase in the number of resources and the number of users.
▪ The design of scalable distributed systems face with the following challenges:
▪ Controlling the cost of physical resources
▪ Controlling the performance loss
▪ Preventing software resources running out
▪ Avoiding performance bottlenecks
18
TP 1
▪ What happen if the request need to be forwarded from a server to another server?
▪ What is peer-to-peer computing, give an example?
▪ Explain client-server program between web browser and web server, give an EX
▪ Explain the 2 alternative ways for byte ordering of integers.
▪ Find 1 EX of each transparency
▪ Find functional and nonfunctional properties of a system with EX (QoS)
19
REFERENCE
20