Distributed System
Distributed System
Distributed System
A Basic Introduction
1
Client Server Architecture
• A network
architecture in which
each computer or
process on the
network is either a
client or a server.
Source: http://webopedia.lycos.com
2
Components
• Clients
• Servers
• Communication Networks
Server
Client
3
Clients
• Applications that run on computers
• Rely on servers for
– Files Clients are Applications
– Devices
– Processing power
• Example: E-mail client
– An application that enables you to send and
receive e-mail
4
Servers
• Computers or processes that manage network
resources
Servers Manage Resources
– Disk drives (file servers)
– Printers (print servers)
– Network traffic (network servers)
• Example: Database Server
– A computer system that processes database
queries
5
Communication Networks
6
Client–Server Computing
• The computing environment might consists of collection
of equally powerful computers having same processor
speed and equal amount of memory.
Client Client
Server
Client Client
Client Client
The client/server design provides users with a means to issue commands which are
sent across a network to be received by a server which executes their commands for
them. The results are then sent back to the client machine which sent the request in
order that the user may see the results.
8
Client–Server Computing
• Process takes place
– on the server and
Client-Server Computing Optimizes
– on the client Computing Resources
• Servers
– Store and protect data
– Process requests from clients
• Clients
– Make requests
– Format data on the desktop
9
Application Functions
• Software application
functions are separated
into three distinct parts
Server:
Data Management
10
Application Components
3 2 Client Types
Data Management
Database Applications:
Most common use of client-server architectures
11
Middleware
• Software that connects two
otherwise separate applications Database Server:
Manages Data
• Example: Middleware product
linking a database system to a Web
server Middleware Links
Applications
Web Server:
Presents Dynamic Pages
12
Types of Servers
From A to Z
Source: http://webopedia.lycos.com
13
Client-Server Model
14
Internet Search Engine
15
Multitiered Architectures: 3 tiers
18
• Definition: a distributed system is
– A collection of independent computers that appears to
its users as a single coherent system.
20
• A system is centralized if its components are
restricted to one site, decentralized if its components
are at different sites with no or limited or close
coordination
21
Advantages of Distributed Systems
over Centralized Systems
• Economics: a collection of microprocessors offer a better price/performance than
mainframes. Low price/performance ratio: cost effective way to increase
computing power.
• Speed: a distributed system may have more total computing power than a
mainframe. Ex. 10,000 CPU chips, each running at 50 MIPS. Not possible to build
500,000 MIPS single processor since it would require 0.002 nsec instruction cycle.
Enhanced performance through load distributing.
• Inherent distribution: Some applications are inherently distributed. Ex. a
supermarket chain.
• Reliability: If one machine crashes, the system as a whole can still survive. Higher
availability and improved reliability.
• Incremental growth: Computing power can be added in small increments.
Modular expandability
• Another deriving force: the existence of large number of personal computers, the
need for people to collaborate and share information.
22
Advantages of Distributed Systems
over Independent PCs
– Data sharing: allow many users to access to a common
data base
23
Disadvantages of Distributed Systems
24
Goals of D.S.
• Transparency
• Openness
• Reliability
• Performance
• Scalability
25
Design Challenges of Distributed Systems
Designers of distributed systems need to
take the following challenges into account:
Heterogeneity
Heterogeneous components must be able
to interoperate.
Openness
Interfaces should allow components to be
added or replaced.
Security
The system should only be used in the way
intended.
26
Design Challenges of Distributed Systems
Scalability
System should work efficiently with an
increasing number of users.
System performance should increase with
inclusion of additional resources.
Failure handling
Failure of a component (partial failure)
should not result in failure of the whole
system.
Transparency
Distribution should be hidden from the user
as much as possible
27
Transparency
• How to achieve the single-system image, i.e how to
make a collection of computers appear as a single
computer.
28
Forms of Transparency in a Distributed System
Transparency Description
Hide differences in data representation and how a
Access
resource is accessed
Location Hide where a resource is located
Hide that a resource may move to another location or
Migration
is migrated to newer version
Hide that a resource may be moved to another
Relocation
location while in use
Hide that a resource may be shared by several
Replication
competitive users
Hide that a resource may be shared by several
Concurrency
competitive users
Failure Hide the failure and recovery of a resource
Hide whether a (software) resource is in memory or
Persistence
on disk
29
Openness
• Make it easier to build and change
31
Performance
• Performance loss due to communication
delays:
– fine-grain parallelism: high degree of interaction
– coarse-grain parallelism
32
Scalability
• System should work efficiently with an
increasing number of users.
33
Pitfalls when Developing Distributed Systems
• False assumptions made by first time developer:
– The network is reliable.
– The network is secure.
– The network is homogeneous.
– The topology does not change.
– Latency is zero.
– Bandwidth is infinite.
– Transport cost is zero.
– There is one administrator.
34
Hardware Concepts
Basic organizations and memories in distributed
computer systems
1.6
35
Hardware Considerations
• General Classification:
– Multiprocessor – a single address space among
the processors
– Multicomputer – each machine has its own
private memory.
36
Multiprocessors
1.7
A bus-based multiprocessor
37
Multiprocessors
38
Enslow’s Modle of DS
• Enslow (Scientist) proposed that distributed
systems can be examined using three
dimensions of hardware, control, and data.
39
• a system can be classified as a distributed system if all
three categories (hardware, control, and data) reach a
certain degree of decentralization.
40
– H3. Separate specialized functional units, such as one CPU
with one floating-point coprocessor.
– H4. Multiprocessors with multiple CPUs but only one
single I/O system and one global memory.
– H5. Multicomputers with multiple CPUs, multiple I/O
systems and local memories.
41
– C2. Single dynamic control point. In multiple CPU cases
the controller changes from time to time among CPUs.
– C3. A fixed master/slave structure. For example, in a
system with one CPU and one coprocessor, the CPU is a
fixed master and the coprocessor is a fixed slave.
42
• The database has two components that can be
distributed: files and a directory that keeps
track of these files
44
• A system is a distributed one if it has:
– Multiple processing elements (PEs).
– Interconnection hardware.
– Shared states.
45
Enslow’s model of distributed systems
(Some researchers also considered computer networks and
parallel computers as part of distributed system)
46
Traditional Applications
Distributed Applications
47
Role of DCE
• Distributing applications requires the creation of a
distributed environment in which they can run.
51
Problems ….
• How should security be provided?
– What services are needed?
– What mechanisms should be used to provide those
services ?
• What protocol should be used to synchronize clocks?
– There are several possible choices
• How can simple systems be supported?
– Provide special treatment for PCs and diskless
workstations.
– Alternatively, treat them like any other system in the
distributed environment
52
Problems…
• What distributed applications should be
provided?
– A distributed file service is essential
– There are many other possibilities
53
DCE Approach
• Distributing applications
– Use remote procedure call (RPC)
• Allowing parallelism
– Support a Threads package
• Directory Services
– Use a Cell Directory Service for local lookups
– Provide options for a global directory service
54
DCE …
• Security
– Provide authentication, authorization, data
integrity, and data privacy
55
DCE ..
• Simple Systems
– Provide special services for diskless support
– Treat PCs like any other system
• Distributed applications
– Provide a Distributed File Service (DFS)
– Allow the creation of a common distributed
environment to encourage competition among
application developers
56
OSF DCE: A System View
57
DCE & Distributed Computing
OSF DCE
Transport
TCP/UDP
Internetworking
IP/CLNP
Sub networks
Ethernet/Token Ring
58
DCE: Clients & Servers
• DCE relies on the notion of clients and servers
• Clients request services
• Servers provide services
• A single machine may support both the
clients and servers
• A single process may act as both a client and a
server at different times
59
cell
• Mostly clients perform most of their
communication with only a few servers.
• In DCE, clients and servers that communicate
mostly with one another are grouped into a cell
• A cell is an administrative unit
• Every machine belongs to one cell
• A cell may consists of two to thousand systems
• DCE optimizes intra-cell communication
60
cells
61
cells
62