copyright © curt hill, 2004-2011 client – server computing an important paradigm

33
Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Upload: britney-glenn

Post on 01-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Client – Server Computing

An important paradigm

Page 2: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Historical Perspective• Before the 60s computers were not

usually interconnected• In the mid 1960s time sharing was

developed– One computer– Many terminals– Terminals could be hardwired or

communicate over a modem– This has some of the form of client

server

Page 3: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

History II• The 1970s saw the advent of many

important computing innovations– UNIX and many other time sharing

systems– Personal computers– Computer to computer communication

• In the 1980s the Internet starts to emerge

• In the late 1980s the web browser and server are developed– This is a model client server

Page 4: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

The Paradigm• Server provides one service• Waits for requests for that service• Client initiates a request• Server replies to the request• Information may flow in both

directions• Many clients may make requests

with just the one server

Page 5: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Why Client - Server?• Specialization

– The client handles the user interface using local computational ability

– The server manages the data and communication

• Sharing– One server may support many clients– Services provided are effectively

shared– Data may be maintained in only one

location

Page 6: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Clients• An application program that runs

on the local computer• Able to use the local computer for

doing work• When invoked by a user, it initiates

communication with a server• Handles all the user interface

issues• Only used for a single session

Page 7: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Example• The ubiquitous client is the web

browser• Several functions:• Communicate with server• Display HTML/XML• Interpret client-side languages,

such as JavaScript• The trend is for the web browser to

be the universal interface to every kind of server on the web

Copyright © Curt Hill, 2004-2011

Page 8: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Servers• Specialized program that typically

provides only one service• May handle multiple client requests

simultaneously (or pseudo simultaneously)

• Interacts with users in many sessions– Both simultaneously and over long time

periods

• Waits for a request and then produces the reply

Page 9: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Example

• The web server• Waits for requests using HTTP• Produces results in HTML/XML• May handle many clients

simultaneously

Copyright © Curt Hill, 2004-2011

Page 10: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Connection Diagrammed

Server

Client

RequestReply

Client Client

Request

ReplyReplyRequest

Page 11: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Interaction Diagrammed

Client

ServerWait Wait

Wait

• The server is not waiting if it is processing other requests

• The client may also perform other processing while waiting for the reply

Request Reply

Time

Processing

Page 12: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Notation• Not standardized• Is it:• A) Client Server• B) Client/Server• C) Client-Server• D) Client, Server• E) Any of the above

Page 13: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Server Complexity

• Servers are pretty complicated• Usually multi-threaded

– Allows concurrent execution– Often one thread generated for each

request

• Often run on multi-CPU computers• Security is also of great concern

Page 14: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Transport Protocols• Communication between a client

and server must conform to a particular protocol

• Each protocol determines the values of many variables that exist in communications over the Internet

• These include:– Connection type– Port– TCP or UDP

Page 15: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Connection Type• A connection requires the following

actions– Connecting– Several requests and replies– Disconnecting

• The session requires overhead and bookkeeping for the server

• A message passing protocol requires no session or a very abbreviated session

Page 16: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

TCP and UDP• The Connection Protocol

– Requires the overhead of a connection

– Guarantees delivery and in the correct order of messages

• User Datagram Protocol– A no connection message– Faster but less reliable

• Both require a port number

Page 17: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Port

• Every internet request to a server must specify a port number

• If a machine is not listening on that port the request is denied

• A request on a valid port may be accepted if the other parts of the protocol are

Page 18: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Port Assignments• Ports in the range 0 – 1023 are

well known ports– These are publicly agreed upon

• Ports in the range 1024 – 49151 are registered ports– Usually registered to support

proprietary services– May be used for other things as well

• Ports in the range 49152 – 65535 are called dynamic or private ports– Available for almost anything

Page 19: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Some well known ports

• 20, 21 – File Transfer Protocol (FTP)

• 23 – Telnet• 25 – Simple Mail Transfer (SMTP)• 53 – Domain Name Server (DNS)• 80 – Hyper Text Transfer Protocol

(HTTP)

Page 20: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Registered and Private

• Registered– Groupwise uses 1677– Cisco uses 1986-1999– Lambda MOO often uses 7777 and

7000

Page 21: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Telnet Protocol

• Used for timesharing on systems such as UNIX– Port 23, TCP

• A connection is made• Usually followed by commands and

replies• A logoff usually forces a disconnect

Page 22: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Hyper Text Transmission Protocol

• A lightweight protocol on port 80• TCP but a session only lasts for one

request• Little bookkeeping on the server end• For more involved transaction

processing it requires cookies or other such processing on client side

Page 23: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

File Transfer Protocol

• One of the oldest TCPs around and fading

• Uses 21 for command information• Uses 20 for data transfer

Page 24: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Domain Name Service

• A common UDP, 53• Broadcast a request to resolve a

name• Any name server may reply to the

request• If some requests are lost, so what?

Page 25: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Lambda MOO

• Uses Telnet protocol at port specified by the server only– Here it may be 7777 or 8888

• Lambda MOO is a server – only responds to requests

• However, it may broadcast appropriate messages to any connected client

Page 26: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Multiple tiers• The classic client-server is a two

tier system• The client is one tier and the server

another• Three or more tiers are also

possible• The middle server functions as a

– Server to the client– Client to other servers– Known as middleware

• Often used to distribute load

Page 27: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

A Three Tier Approach

Server

Application Server

Client ClientClientClient

ServerServer Server

Page 28: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Examples of Multi-Tier• Authentication server

– Maintains a connection to verify user– Funnels all requests to appropriate

server

• Shopping cart– Records purchases– The product lookup/purchase handled

by other servers

• Distributed Database Management System

Page 29: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Horizontal Distribution• Multi-Tier is a vertical distribution• A Horizontal distribution may also

be effective• A single server owns the web

address: www.x.com• It then distributes all further

requests to a rotation of identical web servers– www1.x.com– www2.x.com– …– wwwN.x.com

Page 30: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Horizontal Distribution

www.x www1.x wwwN.xwww2.x …

Client ClientClientClientClientClient

FirstRequest Subsequent

Request

Page 31: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Alternatives to Client-Server

• Group multicast• Peer to peer• Publish-Subscribe• Several types of distributed system• Among others

Page 32: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Copyright © Curt Hill, 2004-2011

Peer to Peer

• An alternative to client-server• Has a symmetric relationship• Each peer provides all the same

services and makes all the same requests as any other peer

Page 33: Copyright © Curt Hill, 2004-2011 Client – Server Computing An important paradigm

Finally

• The importance of the client-server paradigm will only grow

• This is the model the Internet and WWW is based upon

• Cloud computing is all about moving applications from the local computing paradigm to the client server paradigm

Copyright © Curt Hill, 2004-2011