distributed processing, client/server, and clusters source: prentice-hall web site
TRANSCRIPT
Distributed Processing, Client/Server, and Clusters
Source: Prentice-Hall Web Site
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 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
Client/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 user’s machine
Data management and storage on a server
Involves a network
Generic Client/Server Environment
Client/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
Client/Server Applications
Actual functions performed by the application can be split up between client and server
Optimize platform and network resourcesOptimize the ability of users to perform
various tasksOptimize the ability to cooperate with
one another using shared resources
Database Applications
The server is a database serverInteraction between client and server
is in the form of transactions the client makes a database request
and receives a database responseServer is responsible for maintaining
the database
Client/Server Architecture for Database Applications
Client Workstation
Presentation Services
Application Logic
Database Logic
Communications Software
ClientOperating System
Hardware Platform
Server
Database Logic
Communications Software
Database Management System
Server Operating System
Hardware Platform
Request
Response
ProtocolInteraction
Client Server
Presentation Logic
Application Logic
Database Logic
DBMS
Classes of Client/Server Applications
Host-based processing not true client/server computing traditional mainframe environment
Client Server
Presentation Logic
Application Logic
Database Logic
DBMS
Classes of Client/Server Applications
Server-based processing server does all the processing user workstation provides a user-
friendly interface
Client Server
Presentation Logic
Database Logic
DBMS
Application Logic
Database Logic
Classes 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
Client Server
Presentation Logic
Application Logic
Database Logic
DBMS
Application Logic
Classes of Client/Server Applications
Cooperative processing application processing is performed in
an optimized fashion complex to set up and maintain
File 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
Middleware
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
Middleware
Use of a standard programming interface and protocols
There is both a client and server component to middleware
Provides uniform access to different systems
The Role of Middleware in Client/Server Architecture
Client Workstation
Presentation Services
Application Logic
Middleware
Communications Software
ClientOperating System
Hardware Platform
Server
Middleware
Communications Software
Application Services
Server Operating System
Hardware Platform
ProtocolInteraction
Middleware Interaction
Logical View of Middleware
Platform: OS Hardware
Application Application
Platform: OS Hardware
Middleware(distributed system services)
APIs
Platform Interfaces
Distributed Message Passing
Message passed used to communicate among processes
Send and receive messages as used in a single system OR
Remote procedure calls
Basic Message-Passing Primitives
Message-passingModule
SendingProcess
ReceivingProcess
Message-passingModule
ProcessID Message
Message-oriented Middleware
Client Server
Application-specificmessages
Ap
pli
cati
on
Ap
pli
cati
on
Mes
sage
-ori
ente
dM
idd
lew
are
Mes
sage
-ori
ente
dM
idd
lew
are
Tra
nsp
ort
Tra
nsp
ort
Net
wor
k
Net
wor
k
Remote Procedure Calls
Allow programs on different machines to interact using simple procedure call/return semantics
Widely acceptedStandardized
client and server modules can be moved among computers and operating systems easily
Remote Procedure Call Mechanism
ClientApplication
ClientApplication
Remote ServerApplication
Remote ServerApplication
Local Applicationor
Operating System
Local Applicationor
Operating System
Local StubLocal Stub
RPCMechanism
RPCMechanism
Local StubLocal Stub
RPCMechanism
RPCMechanism
Remote Procedure Call
LocalResponse
LocalResponse
LocalResponse
LocalProcedure
Call
LocalProcedure
Calls
Remote Procedure Call
Client/Server Binding
Binding specifies the relationship between remote procedure and calling program
Nonpersistent binding logical connection established during
remote procedure callPersistent binding
connection is sustained after the procedure returns
Remote Procedure Calls
Client Server
Application-specificProcedure Invocations
and Returns
Tra
nsp
ort
Tra
nsp
ort
Net
wor
k
Net
wor
kApplication
RPCStub
Program
Application
RPCStub
Program
Object Request Broker
Client Server
Tra
nsp
ort
Tra
nsp
ort
Net
wor
k
Net
wor
kApplication
RPCStub
Program
ObjectServer
Object Requestsand Responses
Object Requestsand Responses
ObjectRequestBroker
Transport
Network
Clusters
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
Clusters
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
Clusters
Standby Server with No Shared Disk
High-Speed Message LinkI/O
P
I/OI/O I/OM M
P PP
Clusters
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
Clusters
Shared Disk
High-Speed Message Link
I/O
P
I/OI/O I/OM M
P PPI/O I/O
RAID
Clusters
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
Win2000 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 cardsLogical: 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 unitHelps manage resources, load balancingUsually a set of resources needed for a specific application
Win2000 Cluster Server
ComponentsNode Manager – Maintain membership: Uses heartbeat messages to track systemDatabase Manager – Maintain cluster configuration database (resources, groups, ownership): Uses fault-tolerant transaction softwareResource Manager – Make decisions concerning resources, startup, failoverEvent Processor – Connect components
Beowulf
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