Distributed_Systems_Ch1
Distributed_Systems_Ch1
Distributed_Systems_Ch1
1.1 Introduction
1.2 Examples of distributed systems
1.3 Trends in distributed systems
1.4 Focus on resource sharing
1.5 Challenges
1.6 Case study: The World Wide Web
Distributed Systems 2
1.1 Introduction
Distributed Systems 5
1.2 Examples of distributed systems
Distributed Systems 8
1.3 Trends in distributed systems
Distributed Systems 9
Distributed Systems 10
1.3 Trends in distributed systems
Distributed Systems 11
1.3 Trends in distributed systems
Distributed Systems 12
Distributed Systems 13
1.3 Trends in distributed systems
Distributed Systems 14
1.3 Trends in distributed systems
Distributed Systems 15
1.3 Trends in distributed systems
Distributed Systems 16
Distributed Systems 17
1.3 Trends in distributed systems
Distributed Systems 18
1.4 Focus on resource sharing
Distributed Systems 19
1.4 Focus on resource sharing
Distributed Systems 20
1.4 Focus on resource sharing
Distributed Systems 21
1.5 Challenges
1.5.1 Heterogeneity
Heterogeneity (that is, variety and difference) applies to all of the following:
Networks
For example, a computer attached to an Ethernet has an implementation of the Internet
protocols over the Ethernet, whereas a computer on a different sort of network will need an
implementation of the Internet protocols for that network
Computer hardware
Data types such as integers may be represented in different ways on different sorts of
hardware, for example, there are two alternatives for the byte ordering of integers. These
differences in representation must be dealt with if messages are to be exchanged between
programs running on different hardware
Operating systems
For example, the calls for exchanging messages in UNIX are different from the calls in Windows
Programming languages
Different programming languages use different representations for characters and data
structures such as arrays and records
Implementations by different developers
Programs written by different developers cannot communicate with one another unless they use
common standards
Distributed Systems 22
1.5 Challenges
1.5.1 Heterogeneity
To handle heterogeneity in distributed systems:
Middleware: is a software layer that provides a programming
abstraction as well as masking the heterogeneity of the
underlying networks, hardware, operating systems and
programming languages. (ex: Common Object Request Broker
(CORBA), and Java Remote Method Invocation (RMI))
Mobile code: is program code that can be transferred from
one computer to another and run at the destination (ex: Java
applets)
Distributed Systems 23
1.5 Challenges
1.5.2 Openness
The openness of distributed systems is determined primarily
by the degree to which new resource-sharing services can be
added and be made available for use by a variety of client
programs
Openness cannot be achieved unless the specification and
documentation of the key software interfaces of the components
of a system are made available to software developers.
The designers of the Internet protocols introduced a series of
documents called ‘Requests For Comments’, or RFCs.
Distributed Systems 24
1.5 Challenges
1.5.3 Security
The Security for information resources has three
components:
Integrity (protection against alteration or
corruption),
Confidentiality (protection against disclosure to
unauthorized individuals),
Availability (protection against interference with
the means to access the resources).
Distributed Systems 25
1.5 Challenges
1.5.4 Scalability
Distributed systems operate effectively and
efficiently at many different scales, ranging from a
small intranet to the Internet.
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.
Distributed Systems 26
1.5 Challenges
1.5.4 Scalability
The design of scalable distributed systems
presents the following challenges:
1. Controlling the cost of physical resources
2. Controlling the performance loss
3. Preventing software resources running out (ex,
IP addressing immigrate from 32 to 128 bit)
4. Avoiding performance bottlenecks (ex, DNS
removed this bottleneck by partitioning the name
table between servers located throughout the
Internet and administered locally )
Distributed Systems 27
1.5 Challenges
Distributed Systems 28
1.5 Challenges
1.5.6 Concurrency
In DS, there is a possibility that several clients will attempt to
access a shared resource at the same time.
The process that manages a shared resource could take one
client request at a time. But that approach limits throughput.
Therefore services and applications generally allow multiple
client requests to be processed concurrently
For an object to be safe in a concurrent environment, its
operations must be synchronized in such a way that its data
remains consistent
Distributed Systems 29
1.5 Challenges
1.5.7 Transparency
Transparency is defined as the concealment, from
the user, the separation of components in the
distributed system, so that the system is perceived as
a whole rather than as a collection of independent
components.
The implications of transparency are a major
influence on the design of the system software.
Distributed Systems 30
1.5 Challenges
1.5.7 Transparency
There are eight forms of transparency
1.Access transparency enables local and remote resources to be accessed using identical
operations.
2.Location transparency enables resources to be accessed without knowledge of their physical
or network location
3.Concurrency transparency enables several processes to operate concurrently using shared
resources without interference between them.
4.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.
5.Failure transparency enables the concealment of faults, allowing users and application
programs to complete their tasks despite the failure of hardware or software components.
6.Mobility transparency allows the movement of resources and clients within a system without
affecting the operation of users or programs.
7.Performance transparency allows the system to be reconfigured to improve performance as
loads vary.
8.Scaling transparency allows the system and applications to expand in scale without change to
the system structure or the application algorithms.
Distributed Systems 31
1.5 Challenges
Distributed Systems 32