As the Navy moves closer the implementation of the Navy Marine Corps Intranet (NMCI) the term n-tier computing will sooner or later come up in discussion. Understanding what n-tier computing is, the benefits it offers, and especially knowing where n-tier computing fits into the overall enterprise computing picture, will allow Navy Information Management/Information Technology (IM/IT) managers to make smarter acquisition decisions as the NMCI takes shape.
What The Term N-Tier Means
The term n-tier refers to the number of logical levels or layers the various components of an application occupy. An application consists of the following primary component layers: Presentation layer, Application or Business Logic layer, and the Data layer. The presentation layer incorporates user interface components. The user interface might include Graphical User Interface (GUI) components or be completely text based. A user interacts with an application through its presentation layer. The application layer or business logic layer houses the application proper, this means any domain specific knowledge components needed to power the functionality of the application reside at this layer.
The data layer exists to allow the application layer to capture and maintain application state data. The data layer might take the form of one or more standalone or geographically distributed database servers. The "n" indicates the number of levels these components are split into. This does not mean how many physical computers an application is spread across, for example, a 3-tier application could very well reside on one computer but you'll see shortly why this is not usually the case. Before diving deeper into the n-tier discussion I'd like to talk a little about the term-application.
What Really Is An Application?
When a programmer, or group of software developers, design and implement a software application they perform a knowledge transfer. Their understanding of the problem domain takes the form of a solution statement called a program. This program, or application, represents their attempt to explain to a computer-for the benefit of performing a process translation-how to solve a problem. It's a lot like writing a book, except a book can only be read by a human being. Whereas a book exemplifies knowledge to be transferred to a reader, the computer program exemplifies the transference of "knowledge contained in a book from the knowledge incorporated into a computer program.
Examples Of 1, 2, and 3-Tier Applications
Now consider how the knowledge contained in a computer program is updated. If the program update requires source code to be modified, re-compiled, and redistributed to every user of the program, and the program itself contained the user interface, the knowledge rules or business rules, and supporting data would be an example of a 1-tier application. In a 1-tier application, the logical layers of the application are tightly coupled and an update made to one layer requires an update to the whole. In other words, there are no separate, logical layers to a 1-tier application. A 2-tier application would be split logically into 2 layers. This logical split normally occurs between the business rules layer and the data layer.
A 3-tier application would be logically separated into three layers. As with the 2-tier application architecture, all layers of a 3-tier application can be collocated on the same computer or each layer may reside on geographically separated computers connected via a network. The typical deployment of an n-tier application shows several client computers accessing an application server. The application server, in turn, accesses the data server. Connections can be made in the clear or by virtual private networks.
An organization stands to gain many benefits from developing and deploying n-tiered applications, especially in the Internet age. One of the most important benefits comes from getting out of the configuration management business. In a 1-tiered application world, updates to applications must be distributed to every interested user. More often than not, an application upgrade has unknown side effects on host machines. An application that runs great in a controlled integration environment may crash a user's computer because of some untested, Dynamic Link Library (DLL) conflict.
Migrating to an n-tiered application enterprise architecture gives greater control of the desktop PC to IT managers by limiting the number of different, sometimes conflicting, applications installed on them. Another significant benefit of n-tiered applications comes from the instant availability of application updates across the entire organization. Because business logic is located in the application layer, changes to the functionality of an application are immediately available to users. A third benefit comes from the fact that most of the processing occurs in the application or data layers. This can mean a reduction in bandwidth requirements over 2-tier applications that must transfer large amounts of data between the local application layer and remote data layer.
Doesn't This Look Strangely Familiar?
If you can remember a time when mainframes ruled the computer center then all this n-tiered application stuff will look a lot like centralized computing! Well, guess what? They are very closely related. The PC delivered the power of computing to the individual's desktop. The Internet, with its demands for rapid application delivery and server processing power, is fueling a return to the centralized computing paradigm. To ease client computer configuration management, PCs are deployed with a known, limited set of office productivity applications like a word processor, spread sheet, Web browser, etc.
Users access custom enterprise applications via the browser. Enterprise application interfaces are contained in and served via Java servlets. A change to an interface component (presentation layer) is immediately available to all application users. The servlets in turn employ the services of Enterprise Java Beans (EJB) hosted by the Weblogic Java 2 Enterprise Edition (J2EE) server. The EJB's encapsulate the application business logic, and with the help of Weblogic, handle all data transactions between the data layer and the application layer.
Given the right implementation, n-tiered applications are easily scaleable. Load balancing hardware and software can facilitate the integration of additional application or data servers to provide service to more clients or to simply provide redundancy. Only the number of application server licenses and available processing power limits the maximum number of supported clients. Users interact with the application via the presentation layer interface. As long as the interface to an application remains constant, new functionality can be added to the application without having to retrain users on how the new features are accessed.
The presentation layer interacts with the application through the application's interface, and the application layer interacts with the data layer through the data layer's interface. The important concept to note here is that if the interfaces between an n-tiered application's layers remain constant, the implementation of each layer can be easily upgraded or changed. This is also a fundamental concept of good object oriented design.
N-tiered applications provide a reliable, robust, scalable delivery mechanism for Internet or enterprise intranet applications as long as users needing access to the applications have network access. But users don't have to be physically connected to access n-tiered applications. In a portable computing environment where small, handheld computers offer significantly reduced processing capabilities compared to their desktop cousins, n-tiered applications especially shine since the bulk of the processing takes place in the application layer.
To summarize this concept, three layers characterize n-tier applications: presentation, application, and data. The presentation layer contains user interface components, the business logic or knowledge rules are contained in the application layer, and application state data is preserved in the data layer. Each layer can be located on the same machine or on different computers. Keeping layer interfaces constant is a key concept that facilitates n-tiered application scalability.
Rick Miller is a retired Surface Warfare Officer.