# Application server

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Application_server
> Markdown URL: https://mediated.wiki/source/Application_server.md
> Source: https://en.wikipedia.org/wiki/Application_server
> Source revision: 1340187764
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Server that hosts applications

An **application server** is a [server](/source/Server_(computing)) that hosts applications[1] or [software](/source/Software) that delivers a [business application](/source/Business_software) through a [communication protocol](/source/Communication_protocol).[2] For a typical [web application](/source/Web_application), the application server sits behind the [web servers](/source/Web_server).

An application [server framework](/source/Software_framework) is a service layer model. It includes [software](/source/Software) components available to a [software developer](/source/Software_developer) through an [application programming interface](/source/API). An application server may have features such as [clustering](/source/Computer_cluster), [fail-over](/source/Fail-over), and [load-balancing](/source/Load_balancing_(computing)). The goal is for developers to focus on the [business logic](/source/Business_logic).[3]

## Java application servers

[Jakarta EE](/source/Jakarta_EE) (formerly Java EE or J2EE) defines the core set of API and features of [Java application servers](/source/List_of_application_servers#Java).

The Jakarta EE infrastructure is partitioned into logical containers.

- EJB container: [Enterprise Beans](/source/Jakarta_Enterprise_Beans) are used to manage transactions. According to the [Java BluePrints](/source/Java_BluePrints), the [business logic](/source/Business_logic) of an application resides in [Enterprise Beans](/source/Jakarta_Enterprise_Beans)—a modular server component providing many features, including declarative transaction management, and improving application [scalability](/source/Scalability).

- [Web container](/source/Web_container): the web modules include [Jakarta Servlets](/source/Jakarta_Servlet) and [Jakarta Server Pages](/source/Jakarta_Server_Pages) (JSP).

- JCA container ([Jakarta Connectors](/source/Jakarta_Connectors))

- JMS provider ([Jakarta Messaging](/source/Jakarta_Messaging))

## Microsoft

Microsoft's .NET positions their middle-tier applications and services infrastructure in the [Windows Server](/source/Windows_Server) operating system and the [.NET Framework](/source/.NET_Framework) technologies in the role of an application server.[4] The Windows Application Server role includes [Internet Information Services](/source/Internet_Information_Services) (IIS) to provide web server support, the .NET Framework to provide application support, [ASP.NET](/source/ASP.NET) to provide [server side scripting](/source/Server-side_scripting), COM+ for application component communication, Message Queuing for multithreaded processing, and the [Windows Communication Foundation](/source/Windows_Communication_Foundation) (WCF) for application communication.[5]

## PHP application servers

PHP application servers run and manage [PHP](/source/PHP) applications.

- [Zend Server](/source/Zend_Server), built by [Zend](/source/Zend_(company)), provides application server functionality for the PHP-based applications.

- [RoadRunner](/source/RoadRunner_(application_server)), built by Spiral Scout is a high-performance PHP application server, load-balancer, and process manager written in [Go](/source/Go_(programming_language)).

## Third-party

- [Mono](/source/Mono_(software)) (a cross platform open-source implementation of .NET supporting nearly all its features, with the exception of Windows OS-specific features), sponsored by [Microsoft](/source/Microsoft) and released under the [MIT License](/source/MIT_License)

## Mobile application servers

Mobile application servers provide data delivery to mobile devices.

### Mobile features

Core capabilities of mobile application services include

- **Data routing**– data is packaged in smaller ([REST](/source/Representational_state_transfer)) objects with some business logic to minimize demands on bandwidth and battery

- **Orchestration**– transactions and data integration across multiple sources

- **Authentication service**– secure connectivity to back-end systems is managed by the mobile middleware

- **[Off-line](/source/Online_and_offline) support**– allows users to access and use data even though the device is not connected

- **Security**– data encryption, device control, SSL, call logging

### Mobile challenges

Although most standards-based [infrastructure](/source/IT_infrastructure) (including [SOAs](/source/Service-oriented_architecture)) 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]

- **Limited resources** – mobile devices have limited power and bandwidth

- **Intermittent connectivity** – cellular service and wifi coverage is often not continuous

- **Difficult to secure[7]** – mobility and [BYOD](/source/BYOD) practices make it hard to secure mobile devices

## Deployment models

An application server can be deployed:

- [On premises](/source/On-premises_software)

- [Cloud](/source/Cloud_computing)

- Private cloud

- [Platform as a service](/source/Platform_as_a_service) (PaaS)

## See also

- [Application service provider](/source/Application_service_provider)

- [List of application servers](/source/List_of_application_servers)

## References

1. **[^](#cite_ref-1)** Ottinger, Joseph (1 September 2008). ["What is an App Server?"](https://www.theserverside.com/news/1363671/What-is-an-App-Server). *TheServerSide.com*. Retrieved 2022-02-06. an application server provides an environment where applications can run, no matter what the applications are or what they do

1. **[^](#cite_ref-2)** Sintes, Tony (2002-08-23). ["App server, Web server: What's the difference?"](https://www.infoworld.com/article/2077354/app-server-web-server-what-s-the-difference.html). *[JavaWorld](/source/JavaWorld)*. Retrieved 2022-06-14. [A]n application server exposes business logic to client applications through various protocols

1. **[^](#cite_ref-3)** Ceri, Stefano; Fraternali, Piero; Bongio, Aldo; Brambilla, Marco; Comai, Sara; Matella, Maristella (2003). *Designing Data-Intensive Web Applications*. [Morgan Kaufmann](/source/Morgan_Kaufmann). [doi](/source/Doi_(identifier)):[10.1016/B978-1-55860-843-6.X5000-2](https://doi.org/10.1016%2FB978-1-55860-843-6.X5000-2). [ISBN](/source/ISBN_(identifier)) [1-55860-843-5](https://en.wikipedia.org/wiki/Special:BookSources/1-55860-843-5).

1. **[^](#cite_ref-4)** [TechNet: Application Server](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/cc772115(v=ws.10))

1. **[^](#cite_ref-5)** [TechNet: Application Server Role](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754024(v=ws.10))

1. **[^](#cite_ref-6)** Jaenicke, Coco (19 November 2014). ["Why Mobile App Development Requires More than an SOA"](https://appdevelopermagazine.com/2104/2014/11/19/Why-Mobile-App-Development-Requires-More-than-an-SOA). *App Developer Magazine*. Retrieved 2022-02-06.

1. **[^](#cite_ref-7)** Egan, Bob (April 11, 2014). ["A Billion Smartphone Users May Be Affected by the Heartbleed Security Flaw"](https://www.forbes.com/sites/bobegan/2014/04/11/a-billion-smartphones-users-may-be-affected-by-the-heartbleed-security-flaw/). *[Forbes](/source/Forbes)*. Retrieved 2022-02-06.

**{Table Web Interfaces}**

v t e Web interfaces Server-side Protocols HTTP v2 v3 Encryption WebDAV CGI SCGI FCGI AJP WSRP WebSocket Server APIs C NSAPI C ASAPI C ISAPI COM ASP Jakarta Servlet container CLI OWIN ASP.NET Handler Python WSGI Python ASGI Ruby Rack JavaScript JSGI Perl PSGI Portlet container Apache modules mod_include mod_jk mod_lisp mod_mono mod_parrot mod_perl mod_php mod_proxy mod_python mod_wsgi mod_ruby Phusion Passenger Topics Web service vs. Web resource WOA vs. ROA Open API Webhook Application server comparison Scripting Client-side Browser APIs C NPAPI LiveConnect XPConnect C NPRuntime C PPAPI NaCl ActiveX BHO XBAP Web APIs WHATWG Audio Canvas DOM SSE Video WebSockets Web messaging Web storage Web worker XMLHttpRequest W3C DOM events EME File Geolocation IndexedDB MSE SVG WebAssembly WebAuthn WebGPU WebRTC WebXR Khronos WebCL WebGL Others Gears Web SQL Database (formerly W3C) WebUSB Topics Ajax and Remote scripting vs. DHTML Browser extension Cross-site scripting and CORS Hydration Mashup Persistent data Web IDL Scripting Related topics Frontend and backend Microservices REST GraphQL Push technology Solution stack Web page Static Dynamic Web standards Web API security Web application Rich Single-page Progressive Web framework

---
Adapted from the Wikipedia article [Application server](https://en.wikipedia.org/wiki/Application_server) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Application_server?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
