[ Team LiB ] Previous Section Next Section

Understanding N-Tier Applications

The design and deployment of an application fulfilling all or some of the requirements discussed earlier needs a robust and proven platform that can integrate the data and the legacy applications and deliver it over multiple channels, and also make it scalable, portable, and reliable. In this customer-centric e-commerce age, enterprises should be able to update their systems to add new services and constantly work on improving the current services with no or negligible application downtime. All this has to be done to hold on to the customer base and expand it at the same time. It might seem a daunting task to achieve all this in every business application. To achieve these goals and make them easily manageable, applications are divided into multiple layers to perform different necessary functions, and in general can be grouped into the following tiers or layers:

  • Backend tier— For integrating to existing or new corporate databases or to legacy applications

  • Middle tier— For handling business logic and acting as the glue between the backend and the client tiers

  • Client tier— For rendering the output in different channels, such as a Web browser, standalone client, mobile device, and so on

Figure 5.1 describes the three main tiers of an enterprise application.

Figure 5.1. N-tier architecture.


The responsibilities of each of the tiers are clearly demarcated. As you can see, the application that performs the role of the middle tier has the most important role for making the entire application work in unison. It also serves as the right place for providing the services such as security, transaction, and resource management (that is, database connections), which are limited in most business cases.

To clearly understand the n-tier scenario described here, let's consider a common real-life example. By default, a banking system is expected to provide online banking, teller support in branches, and automated balance inquiry among many other customer-centric functions in order to provide the highest quality customer service. Additionally, those systems must be constantly updated to cater to changing business practices and to satisfy changing customer needs. All the systems need to talk to the same database to access the account information. The differences between the systems are the output rendered to the customer and the protocol they have to use to render them. It isn't advisable to develop separate applications to build up the functions offered through the many divisions of the bank. The middle tier helps manage the business logic in one place, thereby avoiding a duplication of effort in creating the different applications from scratch as required in this real-life scenario.

    [ Team LiB ] Previous Section Next Section