![]() |
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
||
| Home > Samples > Research > Dec. 2002: Microsoft's Application Server: Windows Server 2003 > Section 3 of 9 |
|
| What is an Application Server? | ||||||||
An application server is a software platform designed to simplify building, deploying, running, and maintaining large-scale, multiuser applications, such as payroll systems, expense report tracking, and sales force automation. They do so by reducing the amount of custom infrastructure code that developers must write, freeing them to focus on the custom code required for their specific business problem. The most widely used architecture for developing large-scale business applications is a component-based, three-tier model. The three-tier application model divides an application into three logical partitions, or tiers: a user interface (UI) tier for client interactions, a middle tier for business logic, and a data tier for data storage. The use of components to build the tiers facilitates code reuserather than each application requiring its own code to manage incoming requests, for example, a single queuing component can perform this task for multiple applicationswhich makes the development process easier to manage. (For more information on component-based, three-tier applications, see the sidebar "Why Use Components and Three Tiers?".) The distinction between data and business logic tiers is often murkier in practice than in theory. Applications frequently include middle-tier components that do nothing more than retrieve data and which therefore might logically be considered part of the data tier. In addition, performance considerations sometimes dictate implementing business logic in the data tier (in the form of SQL stored procedures, for example). Role of an Application Server Although component-based and three-tier development practices have both been widely used to build large-scale applications since the mid-1990s, the process of developing applications remained cumbersome and error-prone. Each application was essentially a "one-off" development effort, and each organization was solving the same core set of problems (such as how to ensure scalability or data integrity) over and over again. In the late 1990s, several vendors, recognizing the desire to simplify and reduce software development costs, introduced application serverssoftware platforms designed to provide a common infrastructure for component-based, three-tier applications and to simplify the development and management process. The basic functions of an application server fall into three groups: Hosting components. The role of the middle tier in the three-tier model is to encapsulate the business logic of the application; for example, the payroll deduction and taxation rules in a payroll system. Application servers accomplish this by hosting components in way that enhances their scalability, reliability, and manageability, adding such capabilities as queuing (the ability to guarantee that a message from one component to another will be delivered) and pooling (the ability of components to be kept in a "ready" state, awaiting a request). Connecting to data. The ultimate function of most corporate applications is to retrieve or update information that is stored in databases. Therefore, application servers must allow middle-tier components to connect to a variety of databases and coordinate the activities of the components in a way that ensures the integrity of the underlying data. For instance, if an application is simultaneously updating a purchase history and inventory database, it must make sure that if the purchase is successfully completed, the inventory is updated. Supporting UIs. Users can interact with applications through both browser-based and custom application UIs (often referred to as thin and thick clients, respectively). Application servers typically support both types of UIs by including class libraries or APIs for creating custom client applications and for integrating with Web servers to enable browser-based UIs. The Windows Application Server and Its Competitors Even though Microsoft does not market a product explicitly called an "application server," it is positioning the forthcoming release of Windows Server, Windows Server 2003, as including all of the features of an application server. In fact, many of these features have been available for several years, either directly in Windows (such as the inclusion of automatic transaction support in Windows 2000) or through additional software such as the .NET Framework. (For more information on Microsofts march toward an application server, see the sidebar "Milestones Toward an Application Server".) Microsoft faces stiff competition in the application server market. The two most widely used application servers are WebLogic from BEA and WebSphere from IBM. Further complicating matters is the fact that IBM uses the WebSphere brand to describe a broad array of products, including some, such as host integration, that are only peripherally related to application servers. Whereas Microsofts application server platform is design solely around Windows and the companys .NET technology, most competing application servers are designed to run on top of any of several OSs, supplementing the basic functions provided by the OS so as to present the developer with a consistent set of APIs on which to build. For example, in addition to Windows, WebLogic runs on Sun Solaris, HP-UX, and RedHat Linux, while IBM provides versions of WebSphere for AIX, HP-UX, OS/2, OS/390, OS/400, Sun Solaris, and several Linux distributions. To achieve that level of cross-platform capability, most competing application servers are built around Java 2 Enterprise Edition (J2EE). It is precisely because of their use of Java that Microsoft considers these competing application servers to be a threat. Applications built on top of J2EE use Windows indirectly and instead rely on the APIs of the application server to perform their functions. This isolation from Windows theoretically allows customers to replace the underlying OS with an alternative that is also supported by their application server, without breaking existing applications. By including the features of an application server directly in Windows Server 2003, Microsoft hopes to make Windows and the .NET technologies an appealing alternative to these Java-based products. Although J2EE and .NET have many similarities, such as the use of a managed execution environment to reduce the number and severity of coding errors, there are significant API differences between J2EE and .NET as well as among J2EE-based application servers. It is beyond the scope of this report to enumerate all of these differences, and IT planners must be careful to treat application servers as basic infrastructure technology and to thoroughly evaluate them, because switching an application to run on a different application server is likely to be a costly proposition.
|
|
|||||||
| Member Log On | Contact Us | About Us | Samples | Subscribe | Jobs | |||
|
|
||