OOPortal OOPortal

Architectural Partitioning  «Prev 

Two-Tier versus Client-Server

The industry has tended to use the phrase two-tier[1] rather than client-server[2] because client-server refers more to a style of communication than to the architecture itself. The client-server style of communication can be applied to any pair of entities, even entities as small as individual objects. In fact, the same object could function as a client in relation to one object and as a server to another object. This possibility will become even more apparent as you learn about three-tier and n-tier architectures

Client-Server Model

The client-server model of computing is a distributed application structure that partitions tasks between the providers of a resource called servers, and service requesters called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs which share their resources with clients. A client does not share any of its resources, but requests a server's content or service function. Clients therefore initiate communication sessions with servers which await incoming requests.

The client/server software architecture describes the partitioning of an application into software processes. In this environment, clients and servers are seen as software processes rather than computers. These processes may reside on the same computer or may be distributed across a network of computers. The client/server application can be viewed as a set of programming modules sharing resources to solve a problem. This module discusses the client/server software architecture from a historical perspective. A client shall refer to a software process that requests services from other software processes and a server shall refer to a software process that provides services to other software processes. Review of three common client/server classification methodologies.
  1. The first methodology classifies a client/server application based on the computational role of the constituent processes. In particular, how an application distributes its presentation, application processing, and data services determines how the application is classified.
  2. The second methodology classifies an application based on the number of constituent processes; this is known as the tier-based classification.
  3. Finally, a server-based classification methodology is presented; it describes a client/server application in terms of the server process utility.

[1]A two-tier client/server is a type of multi-tier computing architecture in which an entire application is distributed as two distinct layers or tiers. It divides the 1) application logic, 2) data and 3) processing between client and server devices.
[2] Client-server communication simply means that one object, the client initiates all actions between the two, and another object, while the server responds.