What is client-server architecture?

 

The process of communication on the Internet and the technology and standards that Internet rests upon are totally hidden from the user.  Interactions of users with Internet are through a number of applications whose designs and realisations are based on client-server architecture.  Client and server are two types of software that have distinct functionalities.  Internet applications call the services of these two applications for different functionalities.   Client software usually is at the user's desktop and its job is predominantly interaction with the user although additional functionalities are also possible and consequently we tend to talk about thin and fat clients.  Server software on the other hand resides on a server-class machine or a workstation and its functionality could be varied in the form of provision of a specialised service, data processing,  and more than often, retrieval of data from a database and present the findings to the client.

 

 

So as the name suggests client's function is to request a service from the server and server's job is to process the request and respond to the client.  Client provides a query interface and it also transmits the query to the server.  Server performs some server-side processing on the data that is passed on to it by the client or data it has retrieved from a database and transmits the result of the query back to the client.  Client may then do some client-side processing and present the results to the user.

 

An example could be user authentication where client provides the vehicle for the user to input its username and password and transmits the data to the server.  Server would then query the database in order to find a match for the combination of the data and prepare a response (yes/no) for the client and transmit the response back to the client.

 

Interaction with the user is the main function of client, however the two major clients in the market (Internet Explorer and Netscape) can be referred to as "fat client" as they both offer a host of features and functionalities.  For example Netscape navigator is also messenger for reading e-mail,  composer for authoring HTML pages, calendar for personal and group scheduling, etc.  Likewise the explorer includes outlook express for mail facilities, front-page express for HTML authoring, and net-meeting for collaboration.

 

What kind of applications are suitable for client-server architecture?

 

 

Strictly speaking a client-server architecture does not have to be Internet-based.  LANs are also invariably client-server or peer-to-peer.

And so there are two issues: