An application server is a server that hosts applications[1] or software that delivers a business application through a communication protocol.[2]
An application server framework is a service layer model. It includes software components available to a software developer through an application programming interface. An application server may have features such as clustering, fail-over, and load-balancing. The goal is for developers to focus on the business logic.[3]
Jakarta EE (formerly Java EE or J2EE) defines the core set of API and features of Java application servers.
The Jakarta EE infrastructure is partitioned into logical containers.
Commercial Java application servers have been dominated by WebLogic Application Server by Oracle, WebSphere Application Server from IBM and the open source JBoss Enterprise Application Platform (JBoss EAP) by Red Hat.
Microsoft's .NET 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.[4] The Windows Application Server role includes Internet Information Services (IIS) to provide web server support, the .NET Framework to provide application support, ASP.NET to provide server side scripting, COM+ for application component communication, Message Queuing for multithreaded processing, and the Windows Communication Foundation (WCF) for application communication.[5]
PHP application servers run and manage PHP applications.
Mobile application servers provide data delivery to mobile devices.
Core capabilities of mobile application services include
Although most standards-based infrastructure (including SOAs) are designed to connect to any independent of any vendor, product or technology, most enterprises have trouble connecting back-end systems to mobile applications, because mobile devices add the following technological challenges:[6]
An application server can be deployed: