An application server is a server which provides software applications with services such as security, data services, transaction support, load balancing, and management of large distributed systems. The term is often used for web servers which support the Java Platform, Enterprise Edition, however its use isn't restricted to Java.
Advantages of application servers
- Data and code integrity
- By centralizing business logic on an individual server or on a 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 take place centrally.
- A central point through which service providers can manage access to data and portions of the application itself counts as a security benefit, devolving responsibility for authentication away from the potentially insecure client layer without exposing the database layer.
- By limiting the network traffic to performance-tier traffic, the client server model improves the performance of large applications in heavy usage environments.
- Total Cost of Ownership (TCO)
- In combination, the benefits above may result in cost savings to an organization 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.
- 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 individual 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.
Java application servers
The Java Platform, Enterprise Edition or Java EE defines the core set of API and features of Java Application Servers which came about as a result of the Java Community Process. This definition of an application server is very specific; its specifications are formal documents and application servers must meet their requirements and tested in order to be Java EE certified.
Commercial, non open-source, Java application servers have been dominated by WebLogic Application Server by Oracle and WebSphere Application Server from IBM. Open source application servers include JOnAS from Object Web, JBoss AS from JBoss (division of Red Hat), Geronimo from Apache, TomEE from Apache, Resin Java Application Server from Caucho Technology, Blazix from Desiderata Software, Enhydra Server from Enhydra.org, and GlassFish from Oracle.
Microsoft positions their middle-tier applications and services infrastructure in the Windows Server operating system and the .NET Framework technologies in the role of an application server.
- Mono (not fully .NET compatible), developed by Novell, Inc., licensed under GPL
- Base4 Application Server, an open source project
- TNAPS Application Server, freeware application server, developed by TN LLC
PHP application servers are used for running and managing PHP applications.
Zend Server, built by Zend Technologies, provides application server functionality for PHP-based applications. Other software offerings are sometimes self-described as application servers such as Appaserver and Spring Framework.
The Barracuda Web/Application server is an embeddable "C" library designed to be embedded in other computer programs. Server side web applications are designed in the Lua scripting language.
- Client server model
- Comparison of application servers a list of Web application servers listed by programming language.
- Standalone server
- Web server
- IBM WebSphere Application Server
- Reactor pattern
bn: ca:Servidor d'aplicacions da:Applikationsserver de:Anwendungsserver es:Servidor de aplicaciones fa: fr:Serveur d'applications ko: hr:Aplikacijski poslu itelj it:Application server he: nl:Applicatieserver ja: pl:Serwer aplikacji pt:Servidor de aplica o ru: sv:Applikationsserver uk: vi:M y ch cho ch ng tr nh ng d ng zh: