Application server
From Wikipedia, the free encyclopedia
An application server, in an n-tier architecture, is a server that hosts an API to expose business logic and business processes for use by third-party applications.[1]
The term can refer to:
- The services that are made available by the server
- The computer hardware on which the services are deployed
- The software framework used to host the services such as JBoss application server or Oracle Application Server
Contents |
[edit] Java application servers
Following the success of the Java platform, the term application server sometimes refers to a J2EE or Java EE 5 application server. Among the better known Java Enterprise Edition application servers are WebSphere Application Server and WebSphere Application Server Community Edition (IBM), Sybase Enterprise Application Server (Sybase Inc), WebLogic Server (BEA), JBoss (Red Hat), JRun (Adobe Systems), Apache Geronimo (Apache Software Foundation), Oracle OC4J (Oracle Corporation), Sun Java System Application Server (based on GlassFish Application Server)(Sun Microsystems), SAP Netweaver AS (ABAP/Java) (SAP), and Glassfish Application Server.
JOnAS application server was the first open source application server to have achieved official compliance with the Java Enterprise Specification. BEA delivered the first Java EE 5 certified application server followed by Sun Microsystems' reference implementation GlassFish.
The Web modules are servlets and JavaServer Pages, and business logic is built into Enterprise JavaBeans (EJB-3 and later). The Hibernate project offers an EJB-3 container implementation for the JBoss Application server. Tomcat from Apache and JOnAS from ObjectWeb are typical of containers into which these modules can be put.
A Java Server Page (JSP) is a servlet from Java that executes in a Web container—the Java equivalent of CGI scripts. JSPs are a way to create HTML pages by embedding references to the server logic within the page. HTML coders and Java programmers can work side by side by referencing each other's code from within their own. JavaBeans are the independent class components of the Java architecture from Sun Microsystems.
The application servers mentioned above mainly serve Web applications. Some application servers target networks other than the Web: Session Initiation Protocol servers, for instance, target telephony networks.
[edit] Microsoft platform
Microsoft's contribution to application servers is the .NET Framework. This technology includes the Windows Communication Foundation, .NET Remoting, ADO.NET, and ASP.NET among several other components. It works with (or depends upon) other Microsoft products, such as Microsoft Message Queuing and Internet Information Services.
[edit] Zend Platform
Zend has an application server called Zend Server. Zend Server is for running and managing PHP applications.
[edit] Other platforms
Open source application servers are available from other vendors. Examples include Appaserver, Base4 and Zope.
Non-Java offerings have no formal interoperability specifications, like the Java Specification Request. As a result, interoperability between non-Java products is poor compared to that of Java EE based products. To address these shortcomings, specifications for enterprise application integration and service-oriented architecture were designed to connect the many different products. These specifications include Business Application Programming Interface, Web Services Interoperability, and Java EE Connector Architecture.
[edit] Advantages of application servers
- Data and code integrity
- By centralizing business logic on an individual or small number of server machines, updates and upgrades to the application for all users can be guaranteed. There is no risk of old versions of the application accessing or manipulating data in an older, incompatible manner.
- Centralized configuration
- Changes to the application configuration, such as a move of database server, or system settings, can be done centrally.
- Security
- A central point through which access to data and portions of the application itself can be managed is considered a security benefit, devolving responsibility for authentication away from the potentially insecure client layer without exposing the database layer.
- Performance
- By limiting the network traffic to performance tier traffic, it is perceived that the client-server model improves the performance of large applications in heavy usage environments.
- Total Cost of Ownership (TCO)
- In combination, the benefits above are considered to represent a cost saving to a company when developing enterprise applications. In practice, however, the technical challenges of writing software that conforms to that paradigm combined with the need for software distribution to distribute client code somewhat negate these benefits.
- Transaction Support
- A transaction is a unit of activity, in which many updates to resources (that can be on the same or distributed data sources) can be made atomic (as an indivisible unit of work). End users can benefit by a system wide standard behaviour and less time to develop (and cost). As the server does a lot of the hard programming, developers can focus on business logic.
[edit] See also
- Client-server
- Comparison of application servers See this article for a list of web application servers listed by programming language.
- Server
- Standalone server
- Web server
[edit] External links
- ^ Yefim V. Natis, Massimo Pezzini, Kimihiko Iijima, and Raffaella Favata (2008-04-24). "Magic Quadrant for Enterprise Application Servers, 2Q08". Gartner. http://mediaproducts.gartner.com/reprints/microsoft/vol3/article2/article2.html. Retrieved on 2008-11-16.