Distributed Computing
ARCHITECTURES
Distributed system models
Architectural models:
– Placements of parts
– Relationship between parts
Examples
– Client /server
– Peer-to-peer model
– Proxy server
Architectural models (definition):
–
The way in which the components of systems interact with one
3
Architectural models
Architecture:
– Structure of separately specified components
Over all goal:
– Structure should meet the present and future requirements on :
Reliability
Manageability
Adaptability
The Client-Server Model
A server is a program that provide a service.
– It makes some resource available to other programs running somewhere on the network.
– The resource could be anything: a database, a file system, a printer, a modem, a screen, or a scanner.
– The server program runs on the machine which resource is attached to, and waits passively until the services are required.
– Servers are often started up at boot-time, via commands in a start-up script and Servers usually spent most of their time asleep, waiting for work.
A client is a program that uses a resource.
Client-Server interaction (I)
• Synchronous remote procedure call
1.25
Client-Server interaction (II)
An example of a server acting as a client (vertical distribution).
1-30
Client-Server interaction (III)
•Asynchronous remote procedure call
(deferred synchronous RPC)
Client-Server interaction (IV)
An example of horizontal distribution .
9
Client-Server Model
Server may in turn be client of other servers
– Web server may be client of local file server – Search engine is both a server and client
A service provided by multiple servers
Server
Server
Server Service
Client
Example: Web proxy server
Client Proxy Web server Web server server Client
Cache: Store of reccently used data objects
– Cache
collocated at each client (web browser)
proxy server (shared cache)
– Web browser
recently visited pages
Peer-to-Peer Model
(not client-server model)
Coordination Application
code
Coordination Application
code Coordination
Application
13
Peer-to-Peer Model
Peer processes: processes that play similar roles
– No absolute distinction between client/server
– May still assume client/server roles from time to time
– Peer processes maintain the synchronization & consistency of resources and actions
White board
– Viewing, editing a picture
Elimination of server processes reduces IPC on delay for
local object access
Increased fault-tolerance and scalability
Variations on the Client-Server Model
Variations inside the client-server model from
following factors:
– the use of mobile code and mobile agents
– lightweight clients, based on users’ need for low-cost
computers and easy management
Mobile Code Example: Applet
a) client request results in the downloading of applet code
Web server
Client Applet serverWeb Applet code
Client
b) client interacts with the applet
15
Variations on the Client-Server Model
Example of a mobile agent
– a) The code and data are moved to the server
Web
server
Code + data
Users
17
Variations on the Client-Server Model
Mobile agents
–
A running program that travels between computers in a network
Carries out tasks on someone’s behalf
•
E.g., collect information, install programs
Has internal knowledge, beliefs and goals
–
Advantage: local access everywhere
Reduction in communication costs
Disconnected operation
–
Potential security threat
Variations on the Client-Server Model
Network computer
– All files related to application is stored and managed remotely
– Application is present & run locally
– If allowed on local disk & space is available
used as cache
Minimum of local software is downloaded
Thin client
– Does not even run its own applications
– Programs are run by a powerful computer server
– Advantage
Low cost
– Disadvantage
Not good Highly interactive application like CAD
• Thin Client / Compute Server:
Thin
Client
Application
Process
Network computer or PC
Compute server
network
19
21
Mobile Devices and Spontaneous networking
Key features
– Easy connection to local network
Transparently reconfigured devices
– Easy integration with local services
Autonomous service discoveries
Issues
– Internet addressing, and routing assumption
computers are at fixed locations
– Limited connectivity – Security and privacy
Discovery services
The Client-Server Model: Application Layering
Many client-server applications are targeted toward
supporting user access to database, a distinction can be
drawn between the following three levels:
user-interface level
:
contains all that is necessary to directly
interface with the user, such as display management;
process level
:
typically contains the applications;
Application Layering (search engine in Internet)
The general organization of an Internet search engine into three different layers
1-28
Client-Server Addressing
C
1
S
2
C
3
S
4
1
2
S
3
C
1
NS
1. Machine.process / Machine.local-id addressing 2. Process addressing with broadcasting
3. Address lookup via a name-server.
Hardwire machine.number into client code 1: Request to 234.0
2: Reply to 199.0
Processes pick a random #, locate them by broadcasting 1: Broadcast
2: Here I am 3: Request 4: Reply