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
   83   84   85   86   87   88   89   90   91   92   93