0% found this document useful (0 votes)
22 views25 pages

01 - Ch1

Uploaded by

Omarallasasmh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views25 pages

01 - Ch1

Uploaded by

Omarallasasmh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Distributed Systems

An Introduction
What are Distributed Systems?
• A distributed system is one in which components located at
networked computers communicate and coordinate their
actions only by passing messages.
• characteristics of distributed systems:
– Concurrency[parallel] of components,
– lack of a global clock and
– independent failures of components.
Example of distributed systems: Web Search
• Global number of searches over 10 billion per month.
• The Web consists of over 63 billion pages and one trillion unique
web addresses.
– Google has designed a distributed system infrastructure to support
search.
– This represents one of the largest and most complex distributed
systems installations in the history of computing.
– this infrastructure include:
• very large numbers of networked computers
• a distributed file system
• a distributed storage system that offers fast access to very large datasets;
• a programming model
Distributed computing as a utility: Ex.The Cloud
• Companies provide computing resources as utility. (like water
and electricity)
• Resources that can be rented: Hardware, and Software
• The term cloud computing is used to capture this vision of
computing as a utility
• A cloud is defined as: a set of Internet-based application,
storage and computing services sufficient to support most
users’ needs.
Cloud Computing

Implemented by: Cluster computing, Grid Computing, or Peer-to-Peer Systems


Cluster Computing
• A cluster computer is a set of interconnected computers that cooperate
closely to provide a single, integrated high performance computing
capability.
• It consist of PCs running a standard version of an operating system such
as Linux, interconnected by a local area network.
• It provides a range of cloud services:
– high-performance computing capabilities,
– mass storage (for example through data centers), and
– richer application services such as web search
• Google, for example relies on a massive cluster computer architecture to
implement its search engine and other services.
Google Cloud
Grid Computing
• enable the sharing of resources such as files, computers,
software, data and sensors on a very large scale.
• supported by heterogeneous computer hardware,
operating systems, programming languages and
applications.
• Management is needed to coordinate the use of resources
to ensure that clients get what they need and that services
can afford to supply it.
Difference between Cluster and Grid
• Cluster Computing:
A Computer Cluster is a local network of two or more
homogenous computers. A computation process on such a
computer network i.e. cluster is called Cluster Computing.
• Grid Computing:
Grid Computing can be defined as a network of homogenous
or heterogeneous computers working together over a long
distance to perform a task that would rather be difficult for a
single machine.
Peer–to–Peer Systems
• Large number of computers connected to the Internet
• Users make a part of their resources to be shared by
others
• Storing and retrieving data taken place using an overlay
• Each node plays as a server and a client
• Copyright was a measure issue
Challenges to Distributed Systems
• Heterogeneity
• Openness
• Security
• Scalability
• Failure handling
• Concurrency
• Transparency
• Quality of service
Heterogeneity
• The Internet enables users to access services and run
applications over a heterogeneous collection of computers and
networks.
• Heterogeneity (that is, variety and difference) applies to all of
the following:
– • networks;
– • computer hardware;
– • operating systems;
– • programming languages;
– • implementations by different developers.
Heterogeneity - Middleware
• middleware is a software layer that provides a programming
abstraction as well as masking [ hiding ] the heterogeneity of
the:
– networks, hardware, operating systems and programming languages.
• Examples:
– The Common Object Request Broker (CORBA).
– Java Remote Method Invocation (RMI), supports only.
• Most middleware is implemented over the Internet protocols,
which themselves mask the differences of the underlying
networks.
Heterogeneity – Mobile code
• Code that can be transferred to another machine and run at the
destination.
• Example Java Applets
• Code suitable for running on one computer is not necessarily suitable for
running on another. [ T /F ]
• Solution is the Virtual Machine.
• Compiler converts the source program to an intermediate code (Byte
Code)
• The Byte Code can be executed on the Virtual Machine, by converting it
to that machine code.
Openness
• • Open systems are characterized by the fact that their key interfaces
are published.
• • Open distributed systems are based on the provision of a uniform
communication mechanism and published interfaces for access to
shared resources.
• • Open distributed systems can be constructed from heterogeneous
hardware and software, possibly from different vendors. But the
conformance [ harmony ] of each component to the published standard
must be carefully tested and verified if the system is to work correctly.
• Confirmation is done through using the Request For Comments RFC’s.
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). Prevent Denial of Service attacks DoS.

Next slide
Security (Cont.)
• However, the following two security challenges have not yet been fully
met:
– Denial of service attacks: bombarding the service with such a large number of
pointless requests that the serious users are unable to use it.
– Security of mobile code: Consider someone who receives an executable program
as an electronic mail attachment: the possible effects of running the program are
unpredictable; for example, it may seem to display an interesting picture but in
reality it may access local resources, or perhaps be part of a denial of service.
Scalability
• A system is 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 presents the
following challenges:
– Controlling the cost of physical resources: for example, It must be
possible to add server computers to avoid the performance
bottleneck that would arise if a single file server had to handle all file
access requests.
Next slide
Scalability (Cont.)
– Controlling the performance loss: apply algorithms that use
hierarchical structure (has complexity Long N) instead of using a liner
structure (has complexity of N), for example to access the DNS
– Preventing software resources running out: for example IPv4 is
running out, a new IPv6 is proposed.
– Avoiding performance bottlenecks: In general, algorithms should be
decentralized to avoid having performance bottlenecks.
Failure handling
• Failures in a distributed system are partial – that is, some components fail while
others continue to function.
• Detecting failures: by check sum, for example
• Masking failures: hiding it from users, by message re-transmission for example.
And data replication can be used.
• Recovery from failures: Recovery involves the design of software so that the
state of permanent data can be recovered or ‘rolled back’ after a server has
crashed.
• Redundancy: Services can be made to tolerate failures by the use of redundant
components, for example: There should always be at least two different routes
between any two routers in the Internet.
Concurrency
• Both services and applications provide resources that can be
shared by clients in a distributed system.
• There is therefore a possibility that several clients will attempt
to access a shared resource at the same time.
• For example, a data structure that records bids for an auction
may be accessed very frequently when it gets close to the
deadline time.
• For an object to be safe in a concurrent environment, its
operations must be synchronized in such a way that its data
remains consistent.
Transparency
• that is hidden from the user (programmer, system developer, user or
application program).
• A transparency is provided by including some set of mechanisms in
the distributed system at a layer below the interface where
the transparency is required.
• Transparency levels:
– Access transparency enables local and remote resources to be accessed using
identical operations.
– Location transparency enables resources to be accessed without knowledge of
their physical or network location.
– Concurrency transparency enables several processes to operate concurrently
using shared resources without interference between them.
Transparency
• Transparency levels:
– Replication transparency enables multiple instances of resources to be used to
increase reliability and performance.
– Failure transparency enables the concealment of faults, allowing users and
application programs to complete their tasks despite the failure of hardware or
software components.
– Mobility transparency allows the movement of resources and clients within a
system without affecting the operation of users or programs.
– Performance transparency allows the system to be reconfigured to improve
performance as loads vary.
– Scaling transparency allows the system and applications to expand in scale
without change to the system structure or the application algorithms.

You might also like