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