Page 88 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 88
Principles of Software Engineering
Notes The main benefits of the client/server architectural style are:
• Higher Security: All data is stored on the server, which generally offers a greater control
of security than client machines.
• Centralized Data Access: Because data is stored only on the server, access and updates
to the data are far easier to administer than in other architectural styles.
• Ease of Maintenance: Roles and responsibilities of a computing system are distributed
among several servers that are known to each other through a network. This ensures that
a client remains unaware and unaffected by a server repair, upgrade, or relocation.
Consider the client/server architectural style if your application is server based and will support
many clients, you are creating Web-based applications exposed through a Web browser, you
are implementing business processes that will be used by people throughout the organization,
or you are creating services for other applications to consume. The client/server architectural
style is also suitable, like many networked styles, when you want to centralize data storage,
backup, and management functions, or when your application must support different client
types and different devices.
However, the traditional 2-Tier client/server architectural style has numerous disadvantages,
including the tendency for application data and business logic to be closely combined on the
server, which can negatively impact system extensibility and scalability, and its dependence
on a central server, which can negatively impact system reliability. To address these issues, the
client-server architectural style has evolved into the more general 3-Tier (or N-Tier) architectural
style, described, which overcomes some of the disadvantages inherent in the 2-Tier client-server
architecture and provides additional benefits.
4.4.2 N-Tier/3-Tier Architectural Style
N-tier and 3-tier are architectural deployment styles that explain the departure of functionality
into segments in much the same way as the covered style, but with each segment being a tier
that can be located on a physically divide computer. They evolved through the component-
oriented approach, generally using platform precise methods for communication instead of a
message-based move towards.
N-tier application architecture is characterized by the functional decomposition of applications,
service components, and their distributed deployment, providing improved scalability,
availability, manageability, and resource utilization. Each tier is completely independent from
all other tiers, except for those immediately above and below it. The nth tier only has to know
how to handle a request from the n+1th tier, how to forward that request on to the n-1th tier
(if there is one), and how to handle the results of the request. Communication between tiers is
typically asynchronous in order to support better scalability.
N-tier architectures usually have at least three separate logical parts, each located on a separate
physical server. Each part is responsible for specific functionality. When using a layered design
approach, a layer is deployed on a tier if more than one service or application is dependent on
the functionality exposed by the layer.
An example of the N-tier/3-tier architectural style is a typical financial Web application where
security is important. The business layer must be deployed behind a firewall, which forces the
deployment of the presentation layer on a separate tier in the perimeter network. Another example
is a typical rich client connected application, where the presentation layer is deployed on client
machines and the business layer and data access layer are deployed on one or more server tiers.
The main benefits of the N-tier/3-tier architectural style are:
• Maintainability: Because each tier is independent of the other tiers, updates or changes
can be carried out without affecting the application as a whole.
82 LOVELY PROFESSIONAL UNIVERSITY