Client Server Technology: Ansu Elizabeth Philip
Client Server Technology: Ansu Elizabeth Philip
1.0 INTRODUCTION
1.1 Client
Fat client (also known as a thick client or rich client) is a client that performs the bulk of
any data processing operations itself, and does not necessarily rely on the server. The fat
client is most common in the form of a personal computer, as the personal computers or
laptops can operate independently. Programming environments for rich clients include
Curl, Delphi, Droplets,.Net, Java, win32 and X11.
Thin client is a minimal sort of client. Thin clients use the resources of the host computer.
A thin client's job is generally just to graphically display pictures provided by an application
server, which performs the bulk of any required data processing. Programming
environments for thin clients include JavaScript/AJAX , ASP, JSP, Ruby on Rails, Python's
Django, PHP.
A hybrid client is a mixture of the above two client models. Similar to a fat client, it
processes locally, but relies on the server for storage data. This approach offers features
from both the fat client.
1.2 Server
* Web server, a server that HTTP clients connect to in order to send commands and
receive responses along with data contents
Examples of client-server systems on the Internet include Web browsers and Web
servers, FTP clients and servers, and DNS.
2.1 Description
Client-server describes the relationship between two computer programs in which one
program, the client program, makes a service request to another, the server program.
Standard networked functions such as email exchange, web access and database
access, are based on the client-server model. For example, a web browser is a client
program at the user computer that may access information at any web server in the world.
To check your bank account from your computer, a web browser client program in your
computer forwards your request to a web server program at the bank. That program may
in turn forward the request to its own database client program that sends a request to a
database server at another bank computer to retrieve your account balance. The balance
is returned to the bank database client, which in turn serves it back to the web browser
client in your personal computer, which displays the information for you.
The client-server model has become one of the central ideas of network computing. Many
business applications being written today use the client-server model. So do the Internet's
main application protocols, such as HTTP, SMTP, Telnet, DNS. In marketing, the term has
been used to distinguish distributed computing by smaller dispersed computers from the
"monolithic" centralized computing of mainframe computers. But this distinction has
largely disappeared as mainframes and their applications have also turned to the client-
server model and become part of network computing.Each instance of the client software
can send data requests to one or more connected servers. In turn, the servers can accept
these requests, process them, and return the requested information to the client. Although
this concept can be applied for a variety of reasons to many different kinds of applications,
the architecture remains fundamentally the same.
The most basic type of client-server architecture employs only two types of hosts: clients
and servers. This type of architecture is sometimes referred to as two-tier. It allows
devices to share files and resources. The two tier architecture means that the client acts
as one tier and application in combination with server acts as another tier.
The interaction between client and server is often described using sequence diagrams.
Sequence diagrams are standardized in the Unified Modeling Language.
In peer-to-peer architectures, each host or instance of the program can simultaneously act
as both a client and a server, and each has equivalent responsibilities and status.Both
client-server and peer-to-peer architectures are in wide usage today.
While classic client-server architecture requires one of the communication endpoints to act
as a server, which is much harder to implement,Client-Queue-Client allows all endpoints
to be simple clients, while the server consists of some external software, which also acts
as passive queue.This architecture allows greatly simplified software implementation.
Peer-to-peer architecture was originally based on the Client-Queue-Client concept.
The Internet revolves around the client-server architecture. Your computer runs software
called the client and it interacts with another software known as the server located at a
remote computer. The client is usually a browser such as Internet Explorer, Netscape
Navigator or Mozilla. Browsers interact with the server using a set of instructions called
protocols. These protocols help in the accurate transfer of data through requests from a
browser and responses from the server. There are many protocols available on the
Internet. The World Wide Web, which is a part of the Internet, brings all these protocols
under one roof. You can, thus, use HTTP, FTP, Telnet, email etc. from one platform - your
web browser.Some common Internet protocols
HTTP (Hyper Text Transfer Protocol): used on the World Wide Web (WWW) for
transfering web pages and files contained in web pages such as images.
FTP (File Transfer protocol): employed for transfering files from one machine to the
other.
SMTP (Simple Mail Transport Protocol): used for email.
Telnet Protocol: Used to open telnet sessions.
The web employs a connection-less protocol, which means that after every client-server
interaction the connection between the two is lost.
The client (browser) requests for an HTML file stored on the remote machine through the
server software. The server locates this file and passes it to the client. The client then
displays this file on your machine. In this case, the HTML page is static. Static pages do
not change until the developer modifies them.
The scenario is slightly different for CGI applications. Here the server has to do more work
since CGI programs consume the server machine's processing power.
Let us suppose we come across a search form on a web page that runs a CGI program.
Let us also suppose we type in the word 'computers' as the search query.Our browser
sends our request to the server. The server checks the headers and locates the
necessary CGI program and passes it the data from the request including our search
query "computers". The CGI program processes this data and returns the results to the
server. The server then sends this formatted in HTML to our browser which in turn
displays the HTML page.Thus the CGI program generates a dynamic HTML page. The
contents of the dynamic page depend on the query passed to the CGI program.
The third case also involves dynamic response generated by the use of server side
technologies. There are many server side technologies today.
Active Server Pages (ASP): A Microsoft technology. ASP pages typically have the
extension .asp.
Personal Home Pages (PHP): An open source technology. PHP pages typically have
.php, .phtml or .php3 file name extensions.
Java Server Pages: .jsp pages contain Java code.
Server Side Includes (SSI): Involves the embedding of small code snippets inside the
HTML page. An SSI page typically has .shtml as its file extension.
With these server technologies it has become easier to maintain Web pages especially
helpful for a large web site. The developer needs to embed the server-side language code
inside the HTML page. This code is passed to the appropriate interpreter which processes
these instructions.
1. A client, i.e. the computer, which requests the resources, equipped with a user
interface (usually a web browser) for presentation purposes
2. The application server (also called middleware), whose task it is to provide the
requested resources, but by calling on another server
The widespread use of the term 3-tier architecture also denotes the following
architectures:
Traffic congestion on the network has been an issue since the inception of the client-
server paradigm. As the number of simultaneous client requests to a given server
increases, the server can become overloaded. Contrast that to a P2P network, where its
aggregated bandwidth actually increases as nodes are added, since the P2P network's
overall bandwidth can be roughly computed as the sum of the bandwidths of every node in
that network.
The client-server paradigm lacks the robustness of a good P2P network. Under client-
server, should a critical server fail, clients’ requests cannot be fulfilled. In P2P networks,
resources are usually distributed among many nodes. Even if one or more nodes depart
and abandon a downloading file, for example, the remaining nodes should still have the
data needed to complete the download.
10.0 REFERENCES
14.Anonymous2005,ClientServerCommunication
,http://www.howstuffworks.com/Client_server_communication, downloaded on 14.10.2009