|
An application server is a software engine that delivers applications to client computers or devices. Moreover, an application server handles most, if not all, of the business logic and data access of the application (a.k.a. centralization). The main benefit of an application server is the ease of application development, since applications need not be programmed; instead, they are assembled from building blocks provided by the application server. For example, a wiki is an application server that allows users to build dynamic content assembled from articles. Moreover, wikipedia is an assembled wiki that delivers an encyclopedia stored in a filesystem, with changes to the encyclopedia stored in a database. Although the term application server applies to all platforms, it has become heavily identified with the Sun Microsystems J2EE platform; however, it has also come to encompass servers of Web-based applications, such as integrated platforms for e-commerce, content management systems, and Web-site builders. Application server products typically bundle middleware to enable applications to intercommunicate with dependent applications, like Web servers, database management systems, and chart programs. Some application servers also provide an API, making them operating system independent. Portals are a common application server mechanism by which a single point of entry is provided to multiple devices. Java EE Servers
Following the success of the Java platform, the term application server sometimes refers to a Java Platform--Enterprise Edition (J2EE) or Java EE 5 application server. Among the better known Java Enterprise Edition application servers are WebLogic Server (BEA), JBoss (Red Hat), WebSphere (IBM), JRun (Adobe), Apache Geronimo (Apache Foundation, based on IBM WebSphere), Oracle OC4J (Oracle Corporation), Sun Java System Application Server (Sun Microsystems) and Glassfish Application Server (based on Sun Java System Application Server). To give an example JOnAS application server was the first non-commercial, open source application server to have achieved official certification of 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: SIP servers, for instance, target telephony networks. Non Java EE Servers Microsoft's contribution to application servers is the .NET Framework. This technology includes the Windows Communication Foundation, .NET Remoting, MSMQ, ASP.NET, ADO.NET, and IIS.
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 presentation layer 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.
|