lecture 11 client_server_interaction

36
1 Chapter 9: Clients and Servers Interactions

Upload: serioussamsoul

Post on 01-Dec-2014

1.069 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Lecture 11 client_server_interaction

1

Chapter 9: Clients and Servers Interactions

Page 2: Lecture 11 client_server_interaction

2

The Client Server Architecture• Is a network architecture

– Which separates a client (often an application that uses a GUI) from a server. Each instance of the client software can send requests to a server.

• Specific Types of servers include: • application servers• file servers• terminal servers• mail servers

Page 3: Lecture 11 client_server_interaction

3

The Client Server Architecture• Client/server is network architecture

– Which separates a client (often an application that uses a GUI) from a server. Each instance of the client software can send requests to a server.

–– Specific Types of servers include:

• application servers• file servers• terminal servers• mail servers

– Properties of a server:• Passive (Slave)• Waiting for requests• On requests serves them and send a reply

( While their purpose varies somewhat the basic

Page 4: Lecture 11 client_server_interaction

4

• Properties of a client:– Active (Master)– Sending requests– Waits until reply arrives

• A popular client in widespread use today isthe web browser which communicates withweb servers over the internet to fetch anddisplay web page content.

Page 5: Lecture 11 client_server_interaction

5

• The designer of a particular browser may not be able to sustain the development effort required to support all of the possible document formats that the browser might be used to view

• In the case of proprietary document formats (e.g., Adobe PDF, Real Audio and others), the owners of a format may not want to expose its encoding.

• To accommodate these requirements, browsers typically incorporate features that allow new functionality to be added to them without recompilation. We say that applications that can be extended in this manner are extensible(Helper Applications, Plug-ins and Java Applets)

EXTENDING BROWSER5

Page 6: Lecture 11 client_server_interaction

6

• The response to a HTTP request contains MIME headers describing the type of document being fetched.

• We simulate the effect of getting the headers we would see when fetching the URLhttp://eftmk.kutkm.edu.my/bits2513/lectures/Lecture7.pdf– The Content-Type of the document is application/pdf

• A browser can use this type to index into a table and locate a helper application that can be used to display the contents of the document. This table can be configured by the user to associate helper applications with MIME types.

• This provides a simple mechanism that allows the browser functionality to be extended by allowing it to invoke external applications (Adobe Reader) to display documents.

HELPER APPLICATIONS

6

Page 7: Lecture 11 client_server_interaction

7

PLUGIN• A plugin is a piece of code that can be loaded into same

address space as the browser process.• Because plugins run in the same address space as the

browser, they have to be carefully constructed. A faulty plugin could corrupt some of the browser’s internal data structures. In general, writing plugins requires a great deal of care.

• To use plugins, the browser configured with:– The pathname of a directory that contains he available plugins– A table that describes which plugins to use with which MIME types.

7

Page 8: Lecture 11 client_server_interaction

8

Understanding How Clients and Servers Interact

• Client/server is a computational architecture that involves client processes requesting service from server processes

• A server can be software application that provides a service to other software or the computer on which the server software is running.

• A server (software application) must be installed and managed by someone with the title of system administrator, network administrator or for Web servers-Webmaster.

Page 9: Lecture 11 client_server_interaction

9

All-in-One Clients• As the number of applications that use the Internet

grows, the need for client software on computers to use these applications also arises.

• One solution to the growing number of Internet applications is an all-in-one client or universal client.– can handle several applications and adjust appropriately– changing buttons and functions to accommodate each

application.

• Microsoft Internet Explorer is a good example of an all-in-one client.

Page 10: Lecture 11 client_server_interaction

10

Clienthost

Serverhost

Clienthost

Page 11: Lecture 11 client_server_interaction

11

Client/Server Applications

Some of the most popular applications on the Internet follow the client/server design:

– Email clients – FTP (File transfer) clients – Web browsers

Page 12: Lecture 11 client_server_interaction

12

Client/server

Peer-to-peerServer

“I want to access some information”

“I want to collaborate

with my colleague”

Client

Page 13: Lecture 11 client_server_interaction

13

Distinctions

• Client-server– Asymmetric relationship– Client predominately makes requests, server

makes replies• Peer-to-peer

– Symmetric relationship

Page 14: Lecture 11 client_server_interaction

14

Client/Server Sessions• As shown in Figure 7.1,

TCP (Transmission Control Protocol)manages the three-way handshake that establishes a session to be used by application protocols, such as HTTP or FTP.

Page 15: Lecture 11 client_server_interaction

15

• Like most application programs, a client and a server use a transport protocol to communicate.

• Figure 7.2 illustrates a client and a server using the TCP/IP protocol stack.

Figure 7.2: A client and a server

Page 16: Lecture 11 client_server_interaction

16• The client and server each interact with a protocol in the transport

layer of the stack. A sufficiently powerful computer can run multiple servers and clients at the same time. Such a computer must have the necessary hardware resources (e.g. a fast CPU and sufficient memory) and have an operating system capable of running multiple applications concurrently (e.g. UNIX or Windows).

Figure 7.3 illustrates such a setup.

• The computer in the middle might be running an FTP server and a WWW server. Modern computers are often capable of running many servers at the same time.

Page 17: Lecture 11 client_server_interaction

17

Tiered Architecture• Two-tier architecture:

– A generic Client/Server architecture has two types of nodes on the network: clients and servers.

• Problems with a two-tier system:– Because the relative power of clients has grown

considerably, we could shift processing to the client, but then maintaining data integrity is difficult

Page 18: Lecture 11 client_server_interaction

18

Presentation

Applicationlogic

Shareddata

Local-area network

Note: many clients perapplication server, severalapplication servers per data server

Three-tier client/server

Page 19: Lecture 11 client_server_interaction

19

App lica tionM id dle t ier

Inform ation t ie r

C lient t ie r

Da ta ba se

3-TIER ARCHITECTURE

19

Page 20: Lecture 11 client_server_interaction

20

• Information tier– Referred to as data tier or bottom tier– Maintains data for application– Stores data in relational database management system

• Middle tier– Implements business logic and presentation logic– Controls interactions between application clients and

application data– Acts as intermediary between data in information tier

and application clients

3-TIER ARCHITECTURE

Page 21: Lecture 11 client_server_interaction

21

• Client tier– Referred to as top tier– Application’s user interface– Users interact with application through user interface– Interacts with middle tier to make requests and to

retrieve data from information tier– Displays data to user

3-TIER ARCHITECTURE

Page 22: Lecture 11 client_server_interaction

22

Servers

• Web Server• DNS Server• DHCP Server• WINS Server• RAS Server• Printer Server• Domain Controller Server

Page 23: Lecture 11 client_server_interaction

23

Web Server (cont)• Running program• Stores set of Web documents• Responds to request from browser by sending

copy of document

Page 24: Lecture 11 client_server_interaction

24

Basic Common FeaturesA Web server programs may differ in detail among them,But they all share some basic common features:

• HTTP responses to HTTP requests: – every Web server program operates by accepting HTTP requests from

the network and providing an HTTP response to the requester. – The HTTP response typically consists of an HTML document, but can

also be a raw text file, an image, or some other type of document.– if something bad is found in client request or while trying to serve the

request,• a Web server has to send an error response which may include some

custom HTML or text messages to better explain the problem to end users. • Logging:

– usually Web servers have also the capability of logging some detailed information about client requests and server responses to log files.

– this allows the Webmaster to collect statistics by running log analyzers on log files.

Page 25: Lecture 11 client_server_interaction

25

Extra features• Configurability of available features by configuration files or even by an external

user interface.

• Authentication - optional authorization request (request of user name and password) before allowing access to some or all kind of resources.

• Handling of static content and dynamic content

• Module support, in order to allow the extension of server capabilities by adding or modifying software modules which are linked to the server software or that are dynamically loaded (on demand) by the core server.

• HTTPS - support (by SSL or TLS) in order to allow secure (encrypted) connections to the server on the standard port 443 instead of usual port 80.

• Content compression (i.e. by gzip encoding) to reduce the size of the responses (to lower bandwidth usage, etc.).

• Virtual Host to serve many web sites using one IP address

• Large file support to be able to serve files whose size is greater than 2 GB on 32 bit OS

• Bandwidth throttling - limit the speed of responses in order to not saturate the network and to be able to serve more clients.

Page 26: Lecture 11 client_server_interaction

26

Exploring the Features and Functions of Web Servers

Some popular Web servers which it is free for download include the following:

– Apache Web Server

– Microsoft Internet Information Services (IIS)

– Tomcat

– Netscape Enterprise Server (NES)

Page 27: Lecture 11 client_server_interaction

27

Ability to Support Virtual Servers and Virtual Hosts

• A Web server should be able to support virtual serversand virtual hosting.

• Most virtual hosts handle multiple domain names on the same server by having the Uniform Resource Locator (URL) serve as a path to a file.

• Figure 7.5 illustrates the difference between virtual servers and virtual hosting.

Page 28: Lecture 11 client_server_interaction

28

Ability to Support Virtual Servers and Virtual Hosts (Continued)

Page 29: Lecture 11 client_server_interaction

29

Access Control MethodBased on the user’s IP address or user ID1. access control allows the Web server to limit to which

files a user can read or write. User Ids are associated with passwords to verify a user’s identity.

2. It can changing the port at which a server is listening. – Port 80 is the default port for Web servers.– Apache Web Server controls access to its

resources via a process known as authentication, which requires a user to enter a valid user ID and password to access a Web site.

Page 30: Lecture 11 client_server_interaction

30

Access Control (Continued)

Page 31: Lecture 11 client_server_interaction

31

Encrypting Protocols

• A secure protocol used by Web servers is SSL (Secure Sockets Layer).

• When you see a URL with https: at the beginning instead

of http:, you know that this Web server is using the SSL

protocol for security.

Page 32: Lecture 11 client_server_interaction

32

Database Interfaces• Before selecting a Web server or a virtual hosting

service, find out what databases the server supports and what tools can exchange information with the database.

• Popular databases are MS Access, MySQL, Oracle, and SQL Server.

Page 33: Lecture 11 client_server_interaction

33

Ability to Monitor Performance• Microsoft IIS uses Performance Monitor, a program that

comes with Windows Server 2003 and Windows 2000 Server, to monitor performance.

• Other utility programs are Microsoft Web Capacity Analysis Tool (WCAT) and Server Check Pro by NetMechanic.

Page 34: Lecture 11 client_server_interaction

34

Web Server Protocols• HTTP and TCP/IP are the two main protocols used with

Web servers.

• HTTP methods used for browser requests are GET, POST, HEAD, PUT, and DELETE.

• The most frequently used method is GET, which requests files from the Web server.

• A dialog is a series of commands from the sender to the receiver and replies from the receiver to the sender.

Page 35: Lecture 11 client_server_interaction

35

COMMON HTTP REQUEST TYPES• Also known as request methods• Most popular are get and post

– Retrieve and send client form data to Web server– get request

• Sends form content as part of URL• Retrieves appropriate resource from Web server• Limits query to 1024 characters

– post request• Updates contents of Web server (posting new messages to

forum)• Has no limit for length of query• Not part of URL and cannot be seen by user

Page 36: Lecture 11 client_server_interaction

36

IIS• Internet Information Services is a set of

Internet-based services for servers using Microsoft Windows.

• It is the world's second most popular web server in terms of overall websites behind the Apache HTTP Server

• The servers currently include FTP, SMTP, NNTP and HTTP/HTTPS.