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
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.
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.
The operation of all client/ server operations is
broadly
the same. The steps below illustrate these steps.
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.
SMTP is invoked in a client/ se3rver process. The
operation is summarized below.

Figure: Functionality of SMTP
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
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.
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):
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):

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.
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.
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.
PC Support Handbook, D Dick, Dumbreck Publishing 1998, p 451Appendix - Hardware Specifications1 http://www.bleepingcomputer.com/tutorials/tutorial38.html
http://en.wikipedia.org/wiki/Image:DNS_in_the_real_world.svg
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