Chapter 5 Distributed Processing, Client Server, And Clusters-sum-w5
Chapter 5 Distributed Processing, Client Server, And Clusters-sum-w5
1
Agenda
•Client/Server Computing
•Service-Oriented Architecture
•Distributed Message Passing
•Remote Procedure Calls
•Clusters
2
Client/Server Computing
• Client machines are generally single-user
PCs or workstations that provide a highly
user-friendly interface to the end user
• Each server provides a set of shared
services to the clients.
• The server enables many clients to share
access to the same database and enables
the use of a high-performance computer
system to manage the database.
3
Client/Server Terminology
• Applications Programming Interface (API)
– A set of function and call programs that allow clients
and servers to intercommunicate
• Client
– A networked information requester, usually a PC or
workstation, that can query database and/or other
information from a server
• Middleware
– A set of drivers, APIs, or other software that improves
connectivity between a client application and a server
4
Client/Server Terminology
• Relational Database
– A database in which information access is limited to the
selection of rows that satisfy all search criteria
• Server
– A computer, usually a high-powered workstation, a
minicomputer, or a mainframe, that houses information
for manipulation by networked clients
• Structured Query Language (SQL)
– A language developed by IBM and standardized by
ANSI for addressing, creating, updating, or querying
relational databases
5
6
Client/Server Applications
• The key feature of a client/server architecture
is the allocation of application-level tasks
between clients and servers.
8
9
Client/Server Applications
• Bulk of applications software
executes on the server
11
12
Previous figure suggests that all of the
application logic is on the client side,
while the server is only concerned with
managing the database.
13
Classes of Client/Server
Applications
• Host-based processing
– Not true client/server computing
– Traditional mainframe environment
21
Classes of Client/Server
Applications
• Server-based processing
– Server does all the processing
– Client provides a graphical user interface
22
Classes of Client/Server
Applications
• Client-based processing
– All application processing done at the
client
– Data validation routines and other
database logic functions are done at the
server
23
Classes of Client/Server
Applications
• Cooperative processing
– Application processing is performed in an
optimized fashion
– Complex to set up and maintain
24
Three-Tier Client/Server
Architecture
• Application software distributed
among three types of machines
–User machine
• Thin client
25
Three-Tier Client/Server
Architecture
–Middle-tier server
• Gateway
• Convert protocols
• Merge/integrate results
from different data sources
–Backend server
26
The interaction between the middle-tier server and
the backend server also follows the client/server
27
model.
File Cache Consistency
• When a file server is used, performance of
file I/O can be noticeably degraded relative to
local file access because of the delays
imposed by the network.
31
32
33
Agenda
Client/Server Computing
•Service-Oriented Architecture
•Distributed Message Passing
•Remote Procedure Calls
•Clusters
34
SERVICE-ORIENTED ARCHITECTURE
38
39
Service provider: A network node that provides a
service interface for a software asset that manages a
specific set of tasks.
40
key characteristics for effective use of
services:
Coarse-grained: Operations on services
are frequently implemented to cover more
functionality and operate on larger data
sets, compared with component-interface
design.
44
EXAMPLE.
46
EXAMPLE.
47
EXAMPLE.
49
50
Agenda
Client/Server Computing
Service-Oriented Architecture
•Distributed Message Passing
•Remote Procedure Calls
•Clusters
51
2. DISTRIBUTED MESSAGE PASSING
53
2. DISTRIBUTED MESSAGE PASSING
54
Middleware Mechanisms
55
Middleware Mechanisms
56
Distributed Message Passing
• Message passed used to communicate
among processes
• Send and receive messages as used in
a single system or RPC
57
Basic Message-Passing
Primitives
58
Design issues
59
Reliability Versus Unreliability
• Reliable message-passing guarantees
delivery if possible
– Not necessary to let the sending
process know that the message was
delivered
• Send the message out into the
communication network without reporting
success or failure
– Reduces complexity and overhead
60
Blocking Versus Nonblocking
• Nonblocking
–Process is not suspended as a
result of issuing a Send or Receive
–Efficient and flexible
–Difficult to debug
61
Blocking Versus Nonblocking
• Blocking
–Send does not return control to the
sending process until the message
has been transmitted
–OR does not return control until an
acknowledgment is received
–Receive does not return until a
message has been placed in the
allocated buffer 62