34
Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Embed Size (px)

Citation preview

Page 1: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Distributed Processing, Client/Server, and Clusters

Source: Prentice-Hall Web Site

Page 2: 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

Page 3: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 4: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Generic Client/Server Environment

Page 5: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 6: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 7: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 8: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 9: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 10: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 11: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 12: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 13: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 14: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 15: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 16: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 17: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Logical View of Middleware

Platform: OS Hardware

Application Application

Platform: OS Hardware

Middleware(distributed system services)

APIs

Platform Interfaces

Page 18: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Distributed Message Passing

Message passed used to communicate among processes

Send and receive messages as used in a single system OR

Remote procedure calls

Page 19: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Basic Message-Passing Primitives

Message-passingModule

SendingProcess

ReceivingProcess

Message-passingModule

ProcessID Message

Page 20: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 21: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 22: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 23: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 24: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 25: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 26: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 27: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 28: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Clusters

Standby Server with No Shared Disk

High-Speed Message LinkI/O

P

I/OI/O I/OM M

P PP

Page 29: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 30: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

Clusters

Shared Disk

High-Speed Message Link

I/O

P

I/OI/O I/OM M

P PPI/O I/O

RAID

Page 31: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 32: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 33: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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

Page 34: Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site

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