|< BACK  NEXT >|
A paradigm that has emerged as a standard for corporate application development has been the two-tier model. The first tier is the user s application and the second tier is the data source. A common two-tier architecture is the client/server model. Under this model, the second tier (the server) accesses a database management system such as SQL Server, and the first tier (the client) does the needed data processing and presents the information to the user.
The incredible explosion of the Internet has caused a revolution in the way information has to be made available to users. The users now expect to get the information and applications they need from a single location, the browser. The traditional client/server model cannot meet this challenge. The data processing logic, the transactional logic, the synchronization logic, etc., cannot just be embedded at the user application level. What is needed is to separate the presentation logic from the data processing logic. The data processing logic, commonly referred to as the business logic, can then provide a centralized resource management functionality across multiple clients. This three-tier architecture, enhanced for Internet applications, is depicted in Figure 4.1.
There are a variety of approaches for implementing all the layers, depending on the choice of data access layer, the types of clients, the developer s choice of tools and technology, and the communication mechanism between different layers. Although developers can implement their own mechanisms, it is ultimately better to choose a mechanism that reduces maintenance.
To simplify three-tier enterprise-level application development, Microsoft has defined a technology termed Windows Distributed interNet Applications Architecture, or Windows DNA. Windows DNA describes those Microsoft technologies that provide a complete, integrated n-tier development model, and those services that developers require to build scalable and dependable enterprise-level systems on Windows platform.
The DNA architecture consists of three logical tiers corresponding to each layer of the three-tier architecture, as shown in Figure 4.2.
The presentation services tier is the application front end. This tier is responsible for gathering information from the users, sending the information to the business services tier, receiving the results from the business services, and presenting them to the users. The applications in this tier can be devel-oped either as rich clients or thin clients. A rich client uses VB forms or Win32 services directly. A thin client (one that targets a browser) uses HTML or DHTML along with some client-side and some server-side scripting, if needed.
The business services tier is responsible for receiving input from the presentation tier, interacting with the data services tier, performing the application s business operations, and sending the information back to the presentation tier.
For supporting thin-client-based applications, Microsoft provides a web server called Internet Information Server (IIS). To support server-side scripting, Microsoft provides another technology called Active Server Pages (ASP). ASP is typically bundled with IIS.
The data services tier is the only tier that deals directly with the data, which usually resides in a relational database such as SQL Server. This tier is responsible for the storage, retrieval, and general maintenance of the data.
In order to standardize data access mechanisms across various database servers, Microsoft has defined technologies such as Open Database Connectivity (ODBC) and a more recent one, OLE DB. In order to simplify the usage model, Microsoft has built another technology on top of OLE DB called Active Data Object (ADO).
The long-term vision of Windows DNA is to simplify all three tiers by providing infrastructural support at each level [ARM-99]. The current focus, however, is to provide infrastructure at the business services tier, and to some extent at the data services tier, in the form of COM+. Let s move on to explore what COM+ is all about.
|< BACK  NEXT >|