Introduction
The client-server pattern is a distributed application structure in computing that partitions workloads
between the providers of a resource or service, called servers, and service requesters, called clients. It has been in
use for many years and works well within the defined context. Also see: Wikipedia.
Problem Description
Multiple users need to access common information and common applications. The information and accesses need to be
controlled, and the maintenance of the information and applications is a large factor in the operation of the system.
Security aspects are also an important part of the problem.
Applicable Context
This pattern is best applied in support of a cohesive end-to-end process that invokes one or more applications and
information sources that all users need to use and access. The applications and information are important and access
and usage needs to be controlled.
Pattern Constraints
This pattern is not applicable if the application or the information cannot be centralized on a server. The
scalability of the applications and information access needs to be examined and managed, since this may be an issue if
growth is expected. Also, since the information and application is centralized on a server, reliability may be impacted
unless the solution is carefully designed and deployed.
Pattern Solution
The client-server architecture typically has a graphical desktop application that communicates with a
server containing much of the business logic and the data. The business logical may be in the form of stored procedures
or an application or both. The client-server pattern may include one or more servers. The client initiates one or
more requests (typically through a graphical user interface), waits for replies, and displays the replies on
receipt. Security aspects on the server authenticates user access and provides the functions and data
desired. A large range of protocols and data formats may be used to communicate this information to the
client.
The client may simple be a web browser, with the browser-based programs operating over the Internet or the
corporate Intranet. Client-based applications are also used to provide the client-side functionality.
Related Patterns
Other variations and related patterns to the client-server pattern are:
-
Distributed Computing Pattern - a system in which peer components,
located on distributed and networked computers coordinate their activity through the passing of messages.
-
N-Tier Pattern - multi-tier architecture (often referred to as
n-tier architecture) is a variation of client-server architecture where the presentation, application processing,
and data services are separated.
-
Peer-to-peer Architectural Pattern - a distributed network architecture
in which individual nodes (peers) in the network are both suppliers and consumers of services and resources.
|