Share via


Designing Multi-Tier IIS Applications

Today's client/server applications resemble their ancestors so little that they have been given a new name, the multi-tier application, also known as n-tier architecture. In this model, processing is distributed between the client and the server, and business logic is captured in a middle tier. Most systems perform the following three main tasks, which correspond to three tiers, or layers, of the n-tier model.

The following table describes the three tiers:

Task

Tier

Description

User interface and navigation

Tier 1

This layer comprises the entire user experience. Not only does this layer provide a graphical user interface (GUI) so that users can interact with the application, input data, and view the results of requests, it also manages the manipulation and formatting of data once the client receives it back from the server. In Web applications, a Web browser performs the tasks of this layer.

Business logic

Tier 2

Between the interface and data services layers, is the domain of the distributed application developer. Business logic, which involves the rules that govern application processing, connects the user in tier 1 with the data in tier 3. The functions that the rules govern closely mimic everyday business tasks, and can be a single task or a series of tasks. The code in this tier must be developed with security in mind because user input crosses trusted boundaries. An excellent resource about developing secure applications is the book titled Writing Secure Code.

Data services

Tier 3

Data services are provided by a structured (SQL database, XML database) or unstructured (Microsoft? Exchange, Microsoft? Message Queuing) data store, which manages and provides access to the data contained within. A single application may enlist the services of one or more data stores.

The three-tier architecture isolates each major piece of functionality, so that the presentation (user interface) is independent of the processing rules and business logic, which in turn is separate from the data. This model requires much more analysis and design up front, but greatly reduces maintenance costs and increases functional flexibility in the long run.

The following illustration shows the Microsoft technologies that service the various tiers in the new system architecture.

Multi-Tier Web Application Design