|
An application server is a software engine that delivers applications to client computers or devices. Moreover, an application server handles most, if not all, of the business logic and data access of the application (also known as centralization). The main benefit of application servers is the ease of application development, since applications need not be programmed; instead, they are assembled from building blocks provided by the application server. Although the term application server applies to all platforms, it has become heavily identified with the Sun Microsystems J2EE platform; however, it has also come to encompass servers of Web-based applications, such as integrated platforms for e-commerce, content management systems, and Web-site builders. Application server products typically bundle middleware to enable applications to intercommunicate with dependent applications, like Web servers and database management systems. Some application servers also provide an API, making them operating system independent. Portals are a common application server mechanism by which a single point of entry is provided to multiple devices. The chapters below describe the features that are common to all application servers.
Data and code integrity
By centralizing business logic on an individual or small number of server machines, updates and upgrades to the application for all users can be guaranteed. There is no risk of old versions of the application accessing or manipulating data in an older, incompatible manner.
Centralized configuration
Changes to the application configuration, such as a move of database server, or system settings, can be done centrally.
Security
A central point through which access to data and portions of the application itself can be managed is considered a security benefit, devolving responsibility for authentication away from the potentially insecure client layer without exposing the database layer.
Performance
By limiting the network traffic to presentation layer traffic, it is perceived that the client-server model improves the performance of large applications in heavy usage environments.
Transaction support
A transaction represents a unit of activity in which many updates to resources (on the same or distributed data sources) can be made atomic (as an indivisible unit of work). End-users can benefit from a system-wide standard behaviour, from reduced time to develop, and from reduced costs. As the server does a lot of the tedious code-generation, developers can focus on business logic.
Total cost of ownership (TCO)
In combination, the benefits above are considered to represent a cost saving to a company when developing enterprise applications. In practice, however, the technical challenges of writing software that conforms to that paradigm combined with the need for software distribution to distribute client code somewhat negate these benefits.
The term application server has also been applied to various non-J2EE and non-Java offerings. For example, with the rising popularity of .NET, Microsoft can claim to deliver an application server. Additionally, open source application servers are available from other vendors.
|