Section F.2. Open Source Application Servers


F.2. Open Source Application Servers

Since open source application development servers are used primarily to build and deploy applications, we present these servers here, grouped by technology rather than solution. The following subsections describe application servers in four technology groupings: Java, Perl, PHP, and Other (those deemed worthy of inclusion, but which do not fit into the other three categories).

F.2.1. Java Application Servers

A fully standards-compliant Java application server includes technologies to serve web pages using Java Server Pages (JSP) and servlets (typically called servlet containers), along with technologies to manage transactions with external systems, such as databases called Enterprise JavaBean? (EJB) containers. As is common in other areas of the open source stack, a complete Java application server is a collection of open source projects. Apache Tomcat and Jetty are popular choices for a servlet container, and JBoss and JOnAS are popular EJB containers. For major platforms (Microsoft Windows, Linux, Solaris) bundled distributions of these two technologies are available for easy download and installation. The architecture of this solution is shown in Figure F-1.

Figure F-1. Typical J2EE application server


A Java application server using Apache Tomcat as the servlet container and JBoss as the EJB container is a popular choice and is our recommendation. Other combinations using Jetty or JOnAS are also worth exploring.

F.2.1.1 Apache Tomcat

Apache Tomcat is an open source servlet container and the official reference implementation for Java servlet and JSP technologies. It is the most popular open source servlet container and is widely deployed. It features full Servlet 2.4 API support, and JSP 2.0 support for Tomcat Version 5.5.x and Servlet API 2.3 as well as JSP 1.2 support for Version 4.1.x. Tomcat has a very large user base and a very active developer community.

F.2.1.2 JBoss

JBoss is the only standards-compliant J2EE application server that is certified to the J2EE 1.4 specification. It has been deployed widely, has active community support, and is backed by a professional company that can provide enterprise-grade support. JBoss has a reputation for above-average performance.

F.2.2. Perl Application Servers

Most of the popular Perl application servers are based on mod_perl, which is a module for Apache Web Server that allows users to embed a Perl interpreter in the web server. This has the advantages of avoiding start-up overhead when running Perl applications, and allowing flexible web request processing made possible by close coupling of the Apache Web Server and the Perl interpreter. Several application frameworks built on top of mod_perl are worthy of consideration if you are in the market for a Perl application server.

F.2.2.1 HTML::Mason

HTML::Mason is a templating and presentation framework built on mod_perl. It provides facilities for building, serving, and managing large web sites. Mason excels in dealing with dynamic content and is a good fit for e-commerce sites.

F.2.2.2 Apache::AxKit

AxKit is an XML application server built on top of mod_perl. It provides a simple way to deliver content to multiple channels and devices in different formats. AxKit uses XSLT extensively.

F.2.3. PHP Application Servers

PHP-based application servers are typically architected as modules for web servers (mod_php for Apache and an ISAPI module for IIS). Additionally, PHP can be deployed via the CGI protocol. While no enterprise-grade, open source PHP application servers are available, several frameworks are available that you can combine to get the job done. Since this is an area of rapid innovation, we present an incomplete list of popular and mature frameworks, without a complete evaluation of their strengths and weaknesses.

F.2.3.1 PEAR

PEAR (http://pear.php.net/) is short for PHP Extension and Application Repository. PEAR's purpose is to provide a structured library of open source code for PHP users, and a system for code distribution and package maintenance. PEAR code is partitioned in packages. Each package is a separate project with its own development team, version number, release cycle, and documentation, and a defined relation to the other packages (including dependencies).

F.2.3.2 Mojavi

Mojavi (http://www.mojavi.org/) is an open source MVC framework for PHP, and is licensed under the LGPL. Developing with Mojavi enables you to easily divide your web application into tiers, allowing for independent development. It features a modular design, a logging system, built-in authentication and authorization, and a vibrant, active community.

F.2.3.3 Smarty

Smarty (http://smarty.php.net/) is a template/presentation framework. It provides the programmer and template designer with a wealth of tools for automating tasks commonly dealt with in an application's presentation layer. It features caching, easy maintainability via simple template syntax, and debugging support.

F.2.4. Other Application Servers

Lastly, we present some application servers and frameworks that don't fit our classification scheme but are still worth mentioning.

F.2.4.1 OpenACS

The Open Architecture Community System (OpenACS) is a framework for building scalable, community-oriented web applications. It runs on AOL's web server, an application server, TCL for scripting and templates, and PostgreSQL or Oracle as its relational database. OpenACS has been around since 1995 and has been used for some large deployments. It features a mature code base, significant out-of-the-box functionality, and an active and helpful community.

F.2.4.2 Zope

Zope is an open source web application server written primarily in the Python programming language. It features a transactional object database which can store not only content, but also custom data. Zope includes a content management framework that is used by an excellent content management system called Plone. Plone is featured in Appendix E.



Open Source for the Enterprise
Open Source for the Enterprise
ISBN: 596101198
EAN: N/A
Year: 2003
Pages: 134

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net