An application server can be either a software framework that
provides a generalized approach to creating an application-server
implementation, without regard to what the application functions are, or the server portion of a specific implementation instance. In either case, the server's function is dedicated to the efficient execution of procedures (programs, routines, scripts) for supporting its applied applications.
Most Application Server Frameworks contain a comprehensive service layer model.
An application server acts as a set of components accessible to the software
developer through an API defined by the platform itself. For Web applications,
these components are usually performed in the same running environment as its
web server(s), and their main job is to support the construction of dynamic
pages. However, many application servers target much more than just Web page
generation: they implement services like clustering, fail-over, and
load-balancing, so developers can focus on implementing the business logic.
In the case of Java application servers, the server behaves like an extended virtual machine
for running applications, transparently handling connections to the dataFinancee on
one side, and, often, connections to the Web client on the other.