search this blogs

Tuesday, August 10, 2010

Client/server computing & Client/Server definitions

Client/server computing


The J2EE platform is an implementation of the concept of client/server computing. So before we go into detail about the J2EE platform first an introduction to client/server computing in general.



There are many ways to create advanced distributed applications. This tutorial is about one such technology: the J2EE Platform. Other technologies that can do the same, like CORBA, DCOM or .NET, are beyond the scope of this tutorial.



Client/Server definitions

Client/server computing is an area in which there are as many definitions of terms as there are people working in that area. This tutorial also has its own definitions. In discussing client/server computing we have the following starting-points:





Client/server is a distributed software architecture in which systems are divided into autonomous processes [TODO: we need a distinction between a business process and an OS process], where a client sends requests to a server and that server sends responses as an answer to the request to that client.

Client/server is a concept that will distribute the autonomous processes over clients and servers, based on the suitability for the task of those clients and servers.



Figure 1: Client/Server roles

As can be seen clearly from the figure above, it is possible that a server can be the client of another server. In general there is no clear distinction between clients and server besides a concrete request. In a large distributed system almost every client is a server and every server is also a client.

2 comments: