{{Short description|Server that hosts applications}} An '''application server''' is a [[server (computing)|server]] that hosts applications<ref>{{cite web |last1=Ottinger |first1=Joseph |date=2008-09-01 |df=dmy |title=What is an App Server? |website=TheServerSide.com |url=https://www.theserverside.com/news/1363671/What-is-an-App-Server |access-date=2022-02-06 |quote=an application server provides an environment where applications can run, no matter what the applications are or what they do}}</ref> or [[software]] that delivers a [[Business software|business application]] through a [[communication protocol]].<ref>{{cite web | last=Sintes | first=Tony | date=2002-08-23 | url=https://www.infoworld.com/article/2077354/app-server-web-server-what-s-the-difference.html | title=App server, Web server: What's the difference? | work=[[JavaWorld]] | access-date=2022-06-14 | quote=[A]n application server exposes business logic to client applications through various protocols}}</ref> For a typical [[web application]], the application server sits behind the [[Web server|web servers]].
An application [[software framework|server framework]] is a service layer model. It includes [[software]] components available to a [[software developer]] through an [[API|application programming interface]]. An application server may have features such as [[Computer cluster|clustering]], [[fail-over]], and [[load balancing (computing)|load-balancing]]. The goal is for developers to focus on the [[business logic]].<ref>{{cite book |last1=Ceri |first1=Stefano |last2=Fraternali |first2=Piero |last3=Bongio |first3=Aldo |last4=Brambilla |first4=Marco |last5=Comai |first5=Sara |last6=Matella |first6=Maristella |date=2003 |title=Designing Data-Intensive Web Applications |publisher=[[Morgan Kaufmann]] |doi=10.1016/B978-1-55860-843-6.X5000-2 |isbn=1-55860-843-5}}</ref>
==Java application servers== [[Jakarta EE]] (formerly Java EE or J2EE) defines the core set of API and features of [[List of application servers#Java|Java application servers]].
The Jakarta EE infrastructure is partitioned into logical containers. *EJB container: [[Jakarta Enterprise Beans|Enterprise Beans]] are used to manage transactions. According to the [[Java BluePrints]], the [[business logic]] of an application resides in [[Jakarta Enterprise Beans|Enterprise Beans]]—a modular server component providing many features, including declarative transaction management, and improving application [[scalability]]. * [[Web container]]: the web modules include [[Jakarta Servlet]]s and [[Jakarta Server Pages]] (JSP). * JCA container ([[Jakarta Connectors]]) * JMS provider ([[Jakarta Messaging]])
==Microsoft== 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.<ref>[https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/cc772115(v=ws.10) TechNet: Application Server]</ref> 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|server side scripting]], COM+ for application component communication, Message Queuing for multithreaded processing, and the [[Windows Communication Foundation]] (WCF) for application communication.<ref>[https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754024(v=ws.10) TechNet: Application Server Role]</ref>
==PHP application servers== PHP application servers run and manage [[PHP]] applications.
* [[Zend Server]], built by [[Zend (company)|Zend]], provides application server functionality for the PHP-based applications. * [[RoadRunner (application server)|RoadRunner]], built by Spiral Scout is a high-performance PHP application server, load-balancer, and process manager written in [[Go (programming language)|Go]].
==Third-party== *[[Mono (software)|Mono]] (a cross platform open-source implementation of .NET supporting nearly all its features, with the exception of Windows OS-specific features), sponsored by [[Microsoft]] and released under the [[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 ([[representational state transfer|REST]]) 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 * '''[[online and offline|Off-line]] 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 [[IT infrastructure|infrastructure]] (including [[service-oriented architecture|SOA]]s) 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:<ref>{{cite web |last1=Jaenicke |first1=Coco |date=2014-11-19 |df=dmy |url=https://appdevelopermagazine.com/2104/2014/11/19/Why-Mobile-App-Development-Requires-More-than-an-SOA |title=Why Mobile App Development Requires More than an SOA |website=App Developer Magazine |access-date=2022-02-06}}</ref> * '''Limited resources''' – mobile devices have limited power and bandwidth * '''Intermittent connectivity''' – cellular service and wifi coverage is often not continuous * '''Difficult to secure<ref>{{cite web |last1=Egan |first1=Bob |date=2014-04-11 |df=mdy |url=https://www.forbes.com/sites/bobegan/2014/04/11/a-billion-smartphones-users-may-be-affected-by-the-heartbleed-security-flaw/ |title=A Billion Smartphone Users May Be Affected by the Heartbleed Security Flaw |website=[[Forbes]] |access-date=2022-02-06}}</ref>''' – mobility and [[BYOD]] practices make it hard to secure mobile devices
==Deployment models== An application server can be deployed: * [[On-premises software|On premises]] * [[Cloud computing|Cloud]] * Private cloud * [[Platform as a service]] (PaaS)
==See also== *[[Application service provider]] *[[List of application servers]]
==References== {{Reflist}}<big>'''{<u>Table Web Interfaces</u>}'''</big>{{Web interfaces}} {{DEFAULTSORT:Application Server}}
[[Category:Servers (computing)]] [[Category:Software architecture]]