Client Server
Download
Report
Transcript Client Server
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 resources
Optimize the ability of users to perform
various tasks
Optimize the ability to cooperate with one
another using shared resources
Database 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
Client/Server Architecture
for Database Applications
Client Workstation
Presentation Services
Application Logic
Server
Request
Database Logic
Communications
Software
Client
Operating System
Hardware Platform
Database Logic
Response
Protocol
Interaction
Communications
Software
Database Management
System
Server Operating System
Hardware Platform
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
Application Logic
Database Logic
DBMS
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
Database Logic
DBMS
Classes of Client/Server
Applications
Cooperative processing
application processing is performed in an
optimized fashion
complex to set up and maintain
Client
Server
Presentation Logic
Application Logic
Application Logic
Database Logic
DBMS
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
Client
Operating System
Hardware Platform
Server
Middleware
Interaction
Protocol
Interaction
Middleware
Communications
Software
Application
Services
Server Operating System
Hardware Platform
Logical View of
Middleware
Application
Application
APIs
Middleware
(distributed system services)
Platform Interfaces
Platform:
OS
Hardware
Platform:
OS
Hardware
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
Sending
Process
Receiving
Process
Message-passing
Module
Message-passing
Module
ProcessID
Message
Network
Transport
Message-oriented
Middleware
Application
Application-specific
messages
Application
Message-oriented
Middleware
Client
Transport
Network
Message-oriented
Middleware
Server
Remote 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
Remote Procedure Call
Mechanism
Client
Application
Local
Response
Remote Server
Application
Local
Response
Local
Response
Local
Procedure
Calls
Local Application
or
Operating System
Local Stub
Local
Procedure
Call
Local Stub
Remote Procedure Call
RPC
Mechanism
Remote Procedure Call
RPC
Mechanism
Client/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
Remote Procedure Calls
Client
Server
RPC
Stub
Program
Transport
Application-specific
Procedure Invocations
and Returns
Network
Network
Application
Transport
Application
RPC
Stub
Program
Object Request Broker
Client
Network
Transport
RPC
Stub
Program
Network
Object
Request
Broker
Application
Transport
Object Requests
and Responses
Network
Object Requests
and Responses
Transport
Server
Object
Server
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
P
P
P
P
High-Speed Message Link
M
I/O
I/O
I/O
I/O
M
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
P
M
P
I/O
I/O
I/O I/O
I/O
RAID
P
P
I/O
M
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 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
Win2000 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
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