Enterprise Network Systems

Client/ Server Operation



This lecture is divided into hyperlinked sections

Introduction
Client/ Server Interaction
Operation of Client/ Server
Division of the Software
Example - Simple Mail Transfer Protocol
TCP/ IP
Client Software
Server Software
The Client/ Server architecture
Client Characteristics
Thin Client
Server Characteristics
Requesting a Web page
Advantages and disadvantages of client/ server
Types of Server
Conclusion
References
Appendix - Hardware Specifications



Introduction

This lecture will examine the sequence of events that takes place when a client makes a request from a server.

We will see how the software that is designed to perform the task is divided into two sections, the client and the server.

We will see the characteristics of computers that will run the client software and also characteristics of computers that will run the server software.

We will look at the sequence of events that takes place when a user requests a web page.

We will see some advantages and disadvantages of the client/ server relationship.

Finally we will see some examples of server softwares.



Client/Server Interaction

Another name for client/ server computing is distributed computing. This is a method of computing where one powerful computer at a remote location is performing a task or several tasks for (perhaps) lower specification computers elsewhere at the request of these lower specification computers.

An example of a client/ server interaction is requesting a web page from a web server.Another example would be a client downloading a file via FTP from an FTP server.

Client/ server interaction is a proactive service. The server software must be running constantly to accept requests from clients. The server software only begins to carry out its particular task when it receives a request from the client software. Without client requests, server software will do nothing.


Operation of Client/ Server

The operation of all client/ server operations is broadly the same. The steps below illustrate these steps.
 

  1. A user of a computer will request a service using client software
  2. The client software produces a request for the server software
  3. The network delivers the request to the remote computer running server software
  4. The remote computer uses the server software to accept the client request and to perform the requested task
  5. The network is used to deliver the result of the request back to the client software
  6. The client software displays the result to the user
Division of the Software

The software that implements a certain task is divided into two parts. One part of the software is known as the client, that is run on the computer that is requesting the service. The other part of the software is known as the server and this application is run on the computer that is to perform the service. Another name for the server side of the software is a daemon.

The program that is running on the client uses protocol software to communicate with the program that is running on the server. When using the Internet the two programs make use of the TCP/ IP protocol stack for communication.


Example - Simple Mail Transfer Protocol

SMTP is invoked in a client/ se3rver process. The operation is summarized below.
 


 

Figure: Functionality of SMTP


TCP/ IP

The TCP/ IP stack on a PC is used to allow communications to take place. For reliability, the Transport layer has two delivery mechanisms for the transfer of data and requests. These mechanisms are known as UDP and TCP.

TCP stands for Transmission Control Protocol. When using TCP, the computer sending the data connects directly to the computer it is sending the data it to, and stays connected for the duration of the transfer. TCP allows the two computers to guarantee that the data has arrived safely and correctly, and then they disconnect from each other. This method of transferring data tends to be quicker and more reliable, but puts a higher load on the computer as it has to monitor the connection and the data going across it. A real life analogy for this method would be making a telephone call. You call the other party, the other party acknowledges the incoming call and answers the ringing phone, making the connection. Both parties then have a conversation and when it is over, you both hang up, releasing the connection.

UDP stands for User Datagram Protocol. When using UDP, the computer sending the data places the data into a  packet and releases it into the network with the hope that it will get to the destination IP. What this means is that UDP does not connect directly to the receiving computer (unlike TCP), but rather sends the data out and relies on the devices, routers and switches)  in between the sending computer and the receiving computer to get the data where it is supposed to go properly. This method of transmission does not provide any guarantee that the data you send will ever reach its destination nor does it provide any acknowledgement to certify that delivery has taken place. On the other hand, this method of transmission has a very low overhead and is therefore very popular to use for services that are not that important to work on the first try. An analogy for this method is the Postal Service. You place your mail in the letterbox and hope the Postal Service will get it to the proper location. Most of the time they do, but sometimes it gets lost along the way.1


Client Software

An application program that uses the Internet (or any computer network) to access a service from another computer becomes a client. The client software forms a request (mouse input or keystrokes), uses the Internet (or the connecting network) to carry the communications to the server. The client now waits for the reply from the server.

Once the client has received results from the server, it may display the results received from the server or store them for later use.


Server Software

The server side of the software must be running continuously to receive requests from clients. The client can initiate a conversation at any time so the server program must always be waiting to receive requests, 24 hours a day, 7 days a week. The server software is generally run on large computers with high speed I/O capabilities. Often several servers will be running concurrently on one of these computers to service various requests e.g. FTP daemon, web server.

If the server computer loses power or suffers a software failure, clients will be unable to gain a response from the server  until it is running again. An error message will be displayed on the client machine's screen to inform the user of the failure to establish contact.


The Client/ Server architecture

To operate, two PCs are required. The Client machine and the Server machine.

Fig: Overview of Client/ Server Relationship

Note that although the above shows only one client, it is possible to have very many clients depending on just one server. This helps to spread the cost of the service among many machines.

Strictly speaking, the client refers to software and not the PC itself and the server refers to the server software program and not the server hardware although this is commonly misunderstood and misused. Whenever a computer makes a request of another computer, it becomes the client. This leads to the conclusion that a PC can therefore be both a client and a server at the same time.

Whenever discussing client and server, it is necessary to be clear what is being referred to, the hardware or the software.


Client Computer Characteristics (front end):


These characteristics are such that the computer under consideration can run the client software which generally requires minimal processing and low amounts of RAM. Often the task of the client is to display the results of the interaction with the server to the user such as the result of clicking on a hyperlink on a webpage.

Thin Client

This is a specification for a networked computer or terminal that has more limited hardware than the example above. The majority of the processing work is carried out at the server, so the job of the thin client is to accept keystrokes and input from the user and transmit requests to the server and to display the results of the server's work. The client machine is stripped of superfluous hardware to minimise cost and maintenance of the client.

A number of factors drive the demand for thin clients today. The definition of what a thin client is varies from person to person. There are four common factors driving the demand for thin clients.

1.  The need for a lower cost device.
This need comes primarily from organisations seeking to upgrade terminals and purchase a sub $500 device.

2.  Lower management costs for devices.
This comes primarily from corporate customers deploying devices more broadly throughout their organisations to users whom would be best served with a lower device cost. For example, these users include receptionists and order entry workers.

3.  New application requirements.
Examples of this include Kiosk style solutions in public areas and in-room systems at hotels.

4.  New user requirements.
These users need the benefits of a GUI-based environment, but not the complete power and flexibility of a PC.

Another reason for the use of thin clients is for security. If the computer does not have a hard disk or a CD drive or USB slots, it becomes difficult to introduce malware to the network and it is also difficult to take data from the network.


Server Computer Characteristics (back end):


As above, the server's characteristics are such that the hardware can support the software that it will be running and can service many requests from clients per second.
Requesting a Web Page


Figure: The sequence of events when a web page is requested

In the  example above, the server may be carrying out more than just the transfer of a static HTML webpage. It may be that the server is running a dynamic website and could be running a server-side technology such as asp or php and will carry out some local processing in order to build the content of the request that the client has made. This could be perhaps the result  of a search or other query.



Advantages of Client/ Server Disadvantages of Client/ Server Types of Server

Web server.
This software is resident on high specification hardware. A web server is a program running on a computer that stores and transmits webpages on request. Each website available on the Internet resides on the hard disk of a computer somewhere. This computer runs an HTTPD or Hypertext Transfer Protocol Daemon. This is a program that continuously listens for requests to come in from clients using TCP.

The requests are sent by browser software running on the client PCs. The client PCs must run Hypertext Transfer Protocol HTTP softwares as Firefox, Opera or Internet Explorer. This is to decode the html and javascript commands that the webpages are written in and also to request other pages from the web server,

The most popular web server software packages are:
 

There are many other web server softwares available, please see wikipedia web server comparison pages.

Interoperability problems may affect the web server. Guarantees should be sought that it will work with the operating system, hardware and other servers. A good server program ought to be able to handle server-side programming, webpage publishing, search engines, etc.


Communications server.
This is software that deals with clients' requests for communications to the outside world. It selects the optimum method of transportation to the requisite destination.


File server
This is a powerful microcomputer that allows every user to access any file that the user has access rights to on the server. One useful feature is that only one copy of each application needs to be stored for the use of all users. This ensures that all users have access to the same version of the software. This makes upgrading easier because there is only one copy of each application to upgrade rather than say 100 copies spread across the LAN amongst clients.

It handles access to shared storage, directories and files. A file server also controls the exchange of files between network users. It also holds the operating system and applications and data.

The file server will direct user requests for printing to the print server which then handles the all the associated file and print activities and relieves the file server from much work and improves LAN efficiency. File server capabilities are built into Windows Server operating systems and are also a feature of network operating systems such as Novell.


Domain Name Service.
This is a system that translates domain names to IP addresses. Whenever you type a URL into a browser or at the command line, your computer will need to translate the text into an IP address. Firstly your computer will check to see whether the mapping is cached locally. If the IP is found locally, your computer can continue with its request. If the mapping is not found locally, your computer will make a request for the mapping to be resolved. To carry out the mapping, your computer will need to contact a DNS server.

If you are working in an organisation that has just one DNS server and you want to contact a web server in USA for a web page, the application (browser) you are using will automatically call its local DNS server. The local DNS server will search its records for the URL that you have typed. If there is a record, the local DNS server will return the result of the request to the client.

If the local DNS server does not hold a record of the URL to IP mapping, it will then forward the request to another DNS server in the hierarchy of DNS servers. This may require more than one hop, depending upon whether the DNS server that is first contacted has a copy of the relevant domain name/ IP pair. The final DNS server will reply to your local DNS server which will then supply your application (browser) with the IP number you wanted.

There is a hierarchy of DNS servers globally and it is guaranteed that providing the URL is correct and has been mapped to an IP address, you will receive the result of your DNS search as a result of the recursive process that takes place behind the scenes..

Your application may now contact the American web server directly using the IP number in its datagrams.

Below is a simplified diagram of the whole process.

 

Figure: Requesting an IP address from a DNS server

Referring to the figure above, steps 1, 2, 3 and 4 involve resolving the domain name into an IP address. Step 5 happens once the IP address has been returned; this is where the application program sends a request for a web page. Step 6 is where the web page is returned to the application to be displayed on the monitor.

http://en.wikipedia.org/wiki/Image:DNS_in_the_real_world.svg
In your computer, the operation can be depicted as above.

An operating system such as the Windows Server family will contain DNS server software. A Network operating system such as Novell will also contain DNS server software.


Print server
This is a microcomputer that is dedicated to handling an office's or a LAN's printing. A print server manages and accepts printing jobs from workstations on the LAN and queues jobs (spooling) until they can be printed. It has the ability to carry out print management functions such as attaching different priorities to different jobs or re-directing jobs to other printers.


Conclusion

The client/ server relationship is a cost effective way of providing extra services to networked computers. The requirements are a high specification computer to run the server software and many lower specification networked computers running client software. The server's task may be as a file server, database server, communications server, web page server or ftp server.

A thin client is often desirable as it is a low specification computer that is easily managed, costs little, can be deployed in public places and runs a windowed environment.

To operate in this relationship, the software required is spread between the client and the server, with the client(s) having a (hopefully) user friendly interface and the remote machine running the server side of the software.

This is a proactive system; the server only reacts to requests from the clients.

All client/ server operations need to take place across a network and use the network purely as a delivery medium.



References
 
PC Support Handbook, D Dick, Dumbreck Publishing 1998, p 451

1 http://www.bleepingcomputer.com/tutorials/tutorial38.html
http://en.wikipedia.org/wiki/Image:DNS_in_the_real_world.svg


Appendix - Hardware Specifications

Client machines are generally low specification computers with modest speed NICs and low capacity hard drives. They tend to have 17" monitors and good performance graphics capabilities to provide the end user with good display properties. The CPU in a client computer does not have to be the fastest available processor. This is because in many situations the cost of many client machines in a company can be reduced by using lower specification and therefore cheaper parts. The current cost of a client is around £400.

Server machines have high speed input and output capabilities. Very often the server will have high capacity hard disks and incorporate RAID. The server machine will have a high performance CPU or even two or more CPUs. The current cost of a server is around £2000.

To respond to client requests the server runs a daemon. This is a program that runs continuously on the server machine. Its task is to deal with periodic service requests from clients. The daemon program forwards the requests that have come from clients to other programs (or processes) on the server as appropriate.

 
 
 

Back to top of page

© MM Clements 2008