Also called an app server, an application server is a program on a computer that handles all application operations between users and an organization’s backend business applications or databases.
An application server is typically used for complex transaction-based applications. To support high-end needs like heavy traffic and complex requests, an application server has to have built-in redundancy, monitor for high-availability, high-performance distributed application services, and support for complex database access.
Read more: Different Types of Servers
What is an application server?
An application server provides web pages or application content that is dynamic or allows complex user interactions. Dynamic content is more interactive and involved than static content; it changes regularly due to end user manipulation:
- E-commerce fields
- Suggested items on Internet shops, which are dynamically repopulated based on end user behavior and current promotions
- Real-time business intelligence and analytics
- Real-time user data, such as location or weather information
- Back-end content management systems
In contrast, static content generally doesn’t change unless it is manually edited by the site owner (a blog article, for example).
- Use multiple protocols, including HTTP, the most common web protocol, and IIOP/SSL, which increases the number of programs which which the servers can share business logic
- Use multi-threading, which adds speed and efficiency to computing processes because multiple threads can run concurrently
- Implement business logic, which manages rules for data behavior within software
Read more: What Is an Application Server?
How do application servers work?
Application servers work as an intermediary between databases, which store application data, and web clients. They also communicate with web servers, which deliver content to the web client.
Application servers and web servers both communicate using servlets, which are server-side Java classes that process web server requests and return a response. Servlets are used to return dynamic web content to web pages; they process complex requests and transform data from the database. Servlets cost less than Common Gateway Interface (CGI) scripting, another server extension, and they directly connect to the server where CGI does not.
For example, when a web user searches a web application in their browser:
- The user’s request is sent through the web client to the web server (or web application server).
- The web server requests dynamic content from the application server, often using a servlet.
- The application server pulls data from the application database and returns it, along with any dynamic content, to the web server.
- The web server loads the web application for the web client and end user.
This process differs slightly depending on whether the server is a joint web application server.
In web server architecture, reverse proxy servers and load balancers distribute traffic requests to the servers with available capacity and bandwidth , so that user demands can be handled efficiently.
Application servers vs. web servers
Application servers and web servers have a complex and connected relationship. Generally speaking, web servers provide only static content and serve only HTTP requests. Application servers handle dynamic content and business logic.
In some server architectures, application servers sit behind web servers and provide all the dynamic content when it’s requested, as the earlier graphic shows. Web and application servers overlap, and in many web applications, both a web server and an application server must work together to deliver dynamic content on a web page.
Large web applications with high traffic typically use multiple servers, at least one web server and one application server.
Popular application servers
Apache Tomcat is an open-source server for Java. Sun Microsystems first developed the code for Tomcat but eventually gave it to the Apache Software Foundation. Tomcat is technically a web server—it doesn’t have full application server capabilities—but it’s considered an application by the industry because its Java functions, such as servlets, allow it to power plenty of applications that only require Tomcat’s Java features.
Oracle WebLogic is a Java Enterprise Edition application server that’s designed for enterprise applications, according to Oracle. WebLogic can run on Kubernetes, allowing app developers to build container applications. WebLogic runs on-premises applications and can also run on Oracle Cloud Infrastructure (OCI) for cloud applications.
IBM WebSphere is computer software that serves as a web application server. WebSphere is a Java EE runtime environment; it’s intended for enterprise applications, including those that plan to migrate to Kubernetes and containerize apps. Customers also use WebSphere to build applications as well as host them. WebSphere works alongside web servers like Apache HTTP Server.
This article was updated Sept 2021 by Jenna Phipps.
Opening content contributed by Paul White, Product Marketing Manager EMEA, BEA Systems.