Page 87 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 87
Unit 4: Introduction to Validation, Metrics
Figure 4.12: Client-server Model Notes
Server
Requests Responses
Client Client Client
in the long run. We have outlined an approach that results in “loosely-coupled SOA” software,
and can indeed unleash the full potential of SOA.
The client/server architectural style describes distributed systems that involve a separate
client and server system, and a connecting network. The simplest form of client/server system
involves a server application that is accessed directly by multiple clients, referred to as a 2-Tier
architectural style.
Historically, client/server architecture indicated a graphical desktop UI application that
communicated with a database server containing much of the business logic in the form of
stored procedures, or with a dedicated file server. More generally, however, the client/server
architectural style describes the relationship between a client and one or more servers, where
the client initiates one or more requests (perhaps using a graphical UI), waits for replies, and
processes the replies on receipt. The server typically authorizes the user and then carries out
the processing required to generate the result. The server may send responses using a range of
protocols and data formats to communicate information to the client.
Today, some examples of the client/server architectural style include Web browser based
programs running on the Internet or an intranet; Microsoft Windows operating system based
applications that access networked data services; applications that access remote data stores (such
as e-mail readers, FTP clients, and database query tools); and tools and utilities that manipulate
remote systems (such as system management tools and network monitoring tools).
Other variations on the client/server style include:
• Client-Queue-Client Systems: This approach allows clients to communicate with other
clients through a server-based queue. Clients can read data from and send data to a
server that acts simply as a queue to store the data. This allows clients to distribute and
synchronize files and information. This is sometimes known as passive queue architecture.
• Peer-to-Peer (P2P) Applications: Developed from the Client-Queue-Client style, the P2P
style allows the client and server to swap their roles in order to distribute and synchronize
files and information across multiple clients. It extends the client/server style through
multiple responses to requests, shared data, resource discovery, and resilience to removal
of peers.
• Application Servers: A specialized architectural style where the server hosts and executes
applications and services that a thin client accesses through a browser or specialized client
installed software. An example is a client executing an application that runs on the server
through a framework such as Terminal Services.
LOVELY PROFESSIONAL UNIVERSITY 81