Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 77 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here



Current HOWTO: Apache Overview HOWTO

Apache Overview HOWTO: ASF Projects Next Previous Contents

3. ASF Projects

Although Apache is probably the most popular, the Apache Software Foundation is home to many other projects. This section provides an overview of the most relevant ones, organized logically. Most of them belong either to the Jakarta project and the XML project. The Jakarta project hosts Java-based projects and the XML project hosts, surprise, XML-related projects.

3.1 Applications and Frameworks

The following are application and development frameworks that are part of the ASF.

3.1.1 Servers

The following are some ASF server projects.


Tomcat is the flagship product of the Jakarta project. It is the official reference implementation for the Java Servlet and JavaServer Pages technologies.

You can learn more in the Tomcat homepage.

JAMES (Java Apache Mail Enterprise Server)

Complementary to the other Apache server side technologies, JAMES provides a 100% pure Java server designed to be a complete and portable enterprise mail engine solution based on currently available open protocols (SMTP, POP3, IMAP, HTTP)

More information can be found here.


Jakarta Lucene is a high-performance, full-featured text search engine written in Java and part of the Jakarta project. You can find more information at http://jakarta.apache.org/lucene/


Jetspeed is a web based portal written in Java. It has a modular API that allows aggregation of different data sources (XML, SMTP, iCalendar)

3.1.2 Content management

The following are projects related to content management


Slide is a high-level content management framework. Conceptually, it provides a hierarchical organization of binary content which can be stored into arbitrary, heterogenous, distributed data stores. In addition, Slide integrates security, locking and versioning services. It also provides a WebDAV server and client implementation. You can learn more at the Slide home page.


Alexandria is an integrated documentation management system. It brings together technologies common to many open source projects like CVS and JavaDoc. The goal is to integrate source code and documentation to encourage code documentation and sharing. More information at http://jakarta.apache.org/alexandria/index.html

3.1.3 Frameworks

The following are application development frameworks.


Turbine is a servlet based framework that allows experienced Java developers to quickly build secure web applications. Turbine brings together a platform for running Java code and reusable components. Some of its features include: Integration with template systems, MVC style development, Access Control Lists, localization support and so on. You can find more information at the Turbine web site.


If you are familiar with Perl or BSD systems, Avalon is roughly the equivalent of CPAN or the Ports collection for Java Apache technologies. It does not only provide guidelines for a common repository of code, it goes one step further: is an effort to create, design, develop and maintain a common framework for server applications written using the Java language. It provides the means so server side Java projects can be easily integrated and build on each other. You can find more information at the Avalon web site.

3.2 Presentation

The following template systems, transformation engines and other presentation related projects.


Cocoon leverages other Apache XML technologies like Xerces, Xalan and FOP to provide a comprehensive XML publishing framework. The framework can talk to many different data sources and can transform the content into several different delivery formats such as PDF, HTML, XML and RTF. It can run as a servlet or as a command line program. You can learn more about Cocoon at the project homepage


Velocity is a Java based template engine. It can be used as a stand-alone utility for generating source code, HTML, reports, or it can be combined with other systems to provide template services. Velocity has a Model View Controller paradigm that enforces separation of Java code and the HTML template. You can learn more about Velocity here.


AxKit is a popular XML-based Application Server for mod_perl and Apache. It allows separation of content and presentation and provides on-the-fly conversion from XML to any format.


Xalan is an XSLT processor available for Java and C++. XSL is a style sheet language for XML. The T is for Transformation. XML is good at storing structured data (information). You sometimes need to display this data to the user or apply some other transformation. Xalan takes the original XML document, reads transformation configuration (stylesheet) and outputs HTML, plain text or another XML document. You can learn more about Xalan at the Xalan Java and Xalan C++ project homepages.


From the website: FOP is a Java application that reads a formatting object tree and then turns it into a PDF document. So FOP takes an XML document and outputs PDF, in a similar way that Xalan does with HTML or text. You can learn more about FOP here.

3.3 Parsers and Document Access libraries

The following are different libraries that can be used to parse and manipulate a variety of document formats.


The Xerces project provides XML parsers for a variety of languages, including Java, C++ and Perl. The Perl bindings are based on the C++ sources. An XML parser is a tool used for programatic access to XML documents. This is a description of the standards supported by Xerces:

  • DOM: DOM stands for Document Object Model. XML documents are hierarchical by nature (nested tags). XML documents can be accessed thru a tree like interface. The process is as follows:
    • Parse document
    • Build tree
    • add/delete/modify nodes
    • Serialize tree
  • SAX:Simple API for XML. This is a stream based API. This means that we will receive callbacks as elements are encountered. These callbacks can be used to construct a DOM tree for example.
  • XML Namespaces
  • XML Schema: The XML standard provides the syntax for writing documents. XML Schema provides the tools for defining the contents of the XML document (semantics). It allows to define that a certain element in the document must be an integer between 10 and 20 or contain an IP address.
The Xerces XML project initial code base was donated by IBM. You can find more information in the Xerces Java, Xerces C++ and Xerces Perl homepages.


Batik is a Java based toolkit for applications that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation or manipulation.

It is XML centric and compliant with the W3C specification. It is a bit atypical from other Apache projects, in that it provides a graphical component. Batik provides hooks to extend the framework thru custom tags and it allows conversion from SVG to other formats like JPEG or PNG. You can learn more at the Batik homepage


The POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java. This includes Word and Excel documents. You can find more information at http://jakarta.apache.org/poi/

3.4 Interoperability

The following are libraries for remote communication and interoperability between servers.


Apache SOAP ("Simple Object Access Protocol") and Axis are implementations of the SOAP protocol

SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts:

  • An envelope that defines a framework for describing what is in a message and how to process it,
  • a set of encoding rules for expressing instances of application-defined datatypes, and
  • a convention for representing remote procedure calls and responses.
Basically you can think of SOAP as an remote procedure call system, based on HTTP and XML. On the one hand this means it is verbose and slow compared to other systems. On the other hand it eases interoperatibility, debugging and development of clients and servers for a variety of languages since most modern languages have HTTP and XML modules. You can learn more at the Apache SOAP homepage


The XML-RPC project is a Java implementation of the XML-RPC protocol, a light-weight protocol similar and predecessor to SOAP.

XML security

The XML security project provides XML document signature verification for secure exchange of documents.

3.5 Development

Apache Portable Runtime

The APR project provides a portability layer that abstracts a number of APIs for file manipulation, network access and so on. It is written in C and works on most Unix flavors, Windows and a variety of other systems. It is the basis for Apache 2.0


Ant is a Java based build tool. It has a modular API and can be extended by creating new tasks. It is driven by XML configuration files.

Byte Code Library

The Byte Code Engineering Library (BCEL) is a library to analyze, create, and manipulate binary Java class files.


This package provides a logging framework that Java applications can use. It can be enabled at runtime without modifying the binary and has been designed with performance in mind. It can be found at http://jakarta.apache.org/log4j/

ORO and Regexp

ORO is a complete package that provides regular expression support for Java. It includes Perl5 regular expression support, glob expressions and so on. All under the Apache license. You can learn more about ORO at http://jakarta.apache.org/oro/index.html. There is another ASF lightweight regular expression package, Regexp.


Struts is an Apache project that tries to bring the Model-View-Controller (MVC) design paradigm to web development. It builds on Servlet and JavaServer Pages technologies. The model part is made up of Java server objects, which represent the internal state of the application. The view part is constructed via JavaServer Pages (JSP), which is a combination of static HTML/XML and Java. JSPs also allow the developer to define new tags. The controller part consists of servlets, which take requests (GET/POST) from the client, perform actions on the model and update the view by providing the appropriate JSP. You can learn more at the Struts project pages.


The JavaServer pages technology allows developers to provide functionality by adding custom tags. The Taglibs project intends to be a common repository for these extensions. It includes tags for common utilities (i.e. date), SQL database access and so on.

You can learn about TagLibs at http://jakarta.apache.org/taglibs/. More documentation is included in the package.


OJB is a database mapping tool that allows persistance and storage of Java objects in relational databases. Xindice is a native XML database for storing and querying XML documents.


The Commons project provides a great variety of reusable Java components with minimal dependencies.

3.6 Testing

The following ASF projects cover testing and performance analisys.


The httpd-test project provides a testing framework for the Apache web server and tools such as flood for HTTP load testing.


Cactus is a testing framework for testing server side Java code such as Servlets and EJBs.


This is a testing tool written in Java with a GUI frontend. It can be obtained at http://jakarta.apache.org/jmeter/.


Lakta is an end-to-end HTTP testing tool


The Watchdog project is a suite of validation sets for the Servlet and JavaServer Pages specification.

Next Previous Contents

The Linux Tutorial completely respects the rights of authors and artists to decide for themselves if and how their works can be used, independent of any existing licenses. This means if you are the author of any document presented on this site and do no wish it to be displayed as it is on this site or do not wish it to be displayed at all, please contact us and we will do our very best to accommodate you. If we are unable to accommodate you, we will, at your request, remove your document as quickly as possible.

If you are the author of any document presented on this site and would like a share of the advertising revenue, please contact us using the standard Feedback Form.


The Linux Tutorial is always looking for new contributors.



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
You can get all the latest Site and Linux news by checking out our news page.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.61 Seconds