Title: Distributed Processing, Client/Server, and Clusters
1Distributed Processing, Client/Server, and
Clusters
- Source Prentice-Hall Web Site
2Client/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 user
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
3Client/Server Computing
- Involves splitting an application into tasks and
putting each task on the platform where it can be
handled most efficiently - Processing for the presentation on the users
machine - Data management and storage on a server
- Involves a network
4Generic Client/Server Environment
5Client/Server Applications
- Platforms and the operating systems of client and
server may differ - These lower-level differences are irrelevant as
long as a client and server share the same
communications protocols and support the same
applications
6Client/Server Applications
- Actual functions performed by the application can
be split up between client and server - Optimize platform and network resources
- Optimize the ability of users to perform various
tasks - Optimize the ability to cooperate with one
another using shared resources
7Database Applications
- The server is a database server
- Interaction between client and server is in the
form of transactions - the client makes a database request and receives
a database response - Server is responsible for maintaining the database
8Client/Server Architecture for Database
Applications
9Classes of Client/Server Applications
- Host-based processing
- not true client/server computing
- traditional mainframe environment
10Classes of Client/Server Applications
- Server-based processing
- server does all the processing
- user workstation provides a user-friendly
interface
11Classes of Client/Server Applications
- Client-based processing
- all application processing may be done at the
client - data validation routines and other database logic
function are done at the server
Server
Client
Presentation Logic
Application Logic
Database Logic
Database Logic
DBMS
12Classes of Client/Server Applications
- Cooperative processing
- application processing is performed in an
optimized fashion - complex to set up and maintain
13File Cache Consistency
- File caches hold recently accessed file records
- Caches are consistent when they contain exact
copies for remote data - File-locking prevents simultaneous access to a
file - writing causes the server cached to be updated
14Middleware
- Set of tools that provide a uniform means and
style of access to system resources across all
platforms - Enable programmers to build applications that
look and feel the same - Enable programmers to use the same method to
access data
15Middleware
- Use of a standard programming interface and
protocols - There is both a client and server component to
middleware - Provides uniform access to different systems
16The Role of Middleware in Client/Server
Architecture
Client Workstation
Server
Middleware
Middleware Interaction
Communications Software
Application Services
Protocol Interaction
Server Operating System
Hardware Platform
17Logical View of Middleware
APIs
Platform Interfaces
18Distributed Message Passing
- Message passed used to communicate among
processes - Send and receive messages as used in a single
system OR - Remote procedure calls
19Basic Message-Passing Primitives
ProcessID
Message
20Message-oriented Middleware
Client
Server
Message-oriented Middleware
Message-oriented Middleware
Application
Application
Transport
Transport
Network
Network
Application-specific messages
21Remote Procedure Calls
- Allow programs on different machines to interact
using simple procedure call/return semantics - Widely accepted
- Standardized
- client and server modules can be moved among
computers and operating systems easily
22Remote Procedure Call Mechanism
Client Application
Remote Server Application
Local Response
Local Response
Local Procedure Call
Local Response
Local Procedure Calls
Local Application or Operating System
Local Stub
Local Stub
Remote Procedure Call
RPC Mechanism
RPC Mechanism
Remote Procedure Call
23Client/Server Binding
- Binding specifies the relationship between remote
procedure and calling program - Nonpersistent binding
- logical connection established during remote
procedure call - Persistent binding
- connection is sustained after the procedure
returns
24Remote Procedure Calls
Client
Server
Application
Application
Transport
Transport
Network
Network
Application-specific Procedure Invocations and
Returns
RPC Stub Program
RPC Stub Program
25Object Request Broker
Client
Server
Object Request Broker
Application
Object Server
Transport
Transport
Network
Network
Transport
RPC Stub Program
Network
Object Requests and Responses
Object Requests and Responses
26Clusters
- Alternative to symmetric multiprocessing (SMP)
- Group of interconnected, whole computers working
together as a unified computing resource - illusion is one machine
- system can run on its own
27Clusters
- Separate server
- each computer is a separate server
- no shared disks
- need management or scheduling software
- data must be constantly copied among systems so
each is current
28Clusters
Standby Server with No Shared Disk
P
P
P
P
High-Speed Message Link
M
M
29Clusters
- Shared nothing
- reduces communication overhead
- servers connected to common disks
- disks partitioned into volumes
- each volume owned by a computer
- if computer fails another computer gets ownership
of the volume
30Clusters
Shared Disk
High-Speed Message Link
P
P
P
P
M
M
RAID
31Clusters
- Shared disk
- multiple computers share the same disks at the
same time - each computer has access to all of the volumes on
all of the disks
32Win2000 Cluster Server
- Formerly called Wolfpack
- Shared-nothing cluster
- Concepts
- Cluster Service Software that manages
cluster-specific activity - Resource Item to be managed
- Physical Disk drives, Network cards
- Logical Volumes, TCP/IP addresses, Applications,
Databases - Online A resource is online at a node when it
is providing service on that node - Group A collection of resources managed as a
unit - Helps manage resources, load balancing
- Usually a set of resources needed for a specific
application
33Win2000 Cluster Server
Components Node Manager Maintain membership
Uses heartbeat messages to track system Database
Manager Maintain cluster configuration database
(resources, groups, ownership) Uses
fault-tolerant transaction software Resource
Manager Make decisions concerning resources,
startup, failover Event Processor Connect
components
34Beowulf
- From NASA High Performance Computing and
Communications Project, based on commodity
hardware - Implemented as an add-on to Linux, and each node
runs a copy of Linux, with kernel extensions for
global namespaces - Examples of Beowulf system software
- Beowulf Distributed Process Space Allow process
ID space to span machines, provide single system
image, start processes on other nodes - Beowulf Ethernet Channel Bonding Combine
multiple low-cost links into a single logical
network - Pvmsync Provide synchronization and shared data
objects in a cluster - EnFuzion Set of tools for parametric computing