Apache: Mehr als ein Webserver

Die Apache Software Foundation betreut Dutzende freie Java-Projekte. Im ersten Teil unserer Apache-Serie stellen wir die Organisation vor.

Artikel erschienen in Swiss IT Magazine 2006/09

     

Fällt das Stichwort «Apache», denken die meisten an den bekannten und am weitesten verbreiteten Webserver. Tatsächlich ist der Webserver nur eines der zahlreichen Projekte unter dem Dach der Apache Software Foundation (ASF), die besonders im Java-Bereich stark engagiert ist. Deshalb werden wir ab dieser Ausgabe in einer lockeren Serie die wichtigsten Apache-Java-Projekte vorstellen.


Sammelbecken

Die Gründung der ASF war von verschiedenen Motiven geprägt. Zunächst sollte Infrastruktur für gute Open-Source-Projekte zur Verfügung gestellt werden – unter anderem Source-Code-Management, Mailing-Listen, Webserver und Wikis. Ein weiteres wichtiges Motiv der Gründer war es, durch die Verbindung unter einem eigenen «Label» stärker auftreten zu können, beispielsweise in bezug auf rechtliche Angelegenheiten. Die den Apache-Projekten gemeinsame Apache Software License ist eine Konsequenz dieser Bemühungen. Daneben sollte auch eine starke Marke etabliert werden, um Firmen zu unterstützen, die Software öffnen wollen.





Um die Qualität der Projekte im Rahmen der ASF zu garantieren und zu verhindern, dass ein Wildwuchs entsteht, gibt es strenge Vorgaben, wenn ein neues Projekt unter das Dach der ASF schlüpfen möchte. Dies steht im Gegensatz zu anderen Initiativen wie Sourceforge.net, wo jeder sein Open-Source-Projekt relativ leicht unterbringen kann.
Eine Frage, der oft zuwenig Bedeutung beigemessen wird, ist, unter welcher Open-Source-Lizenz ein Projekt steht. Ohne hier auf Details eingehen zu können, räumt die Apache-Lizenz dem Anwender eine grosse Bandbreite an möglichen Anwendungsszenarien ein und ist im Gegensatz zur GNU GPL in der Regel auch für kommerzielle Projekte akzeptabel.
Dass die Apache Software Foundation ein zukunftsträchtiges Konzept entwickelt hat, dafür sprechen die vielen Donations der letzten Jahre – also die Projekte, die von Unternehmen geöffnet und in die Obhut der Apache Software Foundation gegeben wurden. Prominente Beispiele sind die erste SOAP-Implementierung (Lotus), die Datenbank Derby (IBM) oder XMLBeans (Bea Systems).






Im Unterschied zu anderen Initiativen, insbesondere Eclipse, können der ASF nur Einzelpersonen beitreten. Dies bedeutet, dass die (Weiter-)Entwicklung eines Produkts nicht von Firmeninteressen, sondern nur von der Motivation und den Interessen der einzelnen Entwickler getragen wird. Natürlich können auch Mitarbeiter der Firmen, welche den Code gespendet haben, wie auch jeder anderen Firma der ASF beitreten. Ihre Stimmen haben aber nur so viel Gewicht wie diejenigen aller anderen Entwickler.


Von der Vorschule bis zum Dornröschenschlaf

Für Entwickler ist das Apache-Projekt ein fast unerschöpflicher Fundus für Werkzeuge und Komponenten zur Software-Entwicklung, die im Grossteil bedenkenlos eingesetzt werden können. Doch gilt es einige Grundregeln bei der Auswahl der Projekte zu beachten. Besondere Vorsicht sollte man bei Projekten walten lassen, die sich noch im «Inkubator» befinden. Dies sind Programme, die erst vor kurzer Zeit in die ASF aufgenommen wurden. Die Entwickler sind hier in der Regel damit beschäftigt, das jeweilige Projekt auf Apache-Standards zu bringen. Erst recht die Finger lassen sollte man von Projekten, die «hibernated» sind, sich also im Winterschlaf befinden. Dies, da es sich dabei in der Regel um «tote» Projekte handelt, die weder weiterentwickelt noch gepflegt werden. Aber auch bei den verbleibenden Projekten – und dies sind recht viele, wie die Tabelle auf Seite 52 auszugsweise zeigt – gilt es, sich zunächst über den Status zu informieren. Ein guter Tip ist hier, sich die Release History anzusehen (Wann wurde die letzte Version veröffentlicht?) sowie die Aktivität der jeweiligen Community zu verfolgen. Dies erfolgt am besten über die jeweilige Mailing-Liste, das Mailing-Listen-Archiv sowie die Projektdokumentation. Dies gilt natürlich nicht nur für Apache, sondern für alle Open-Source-Projekte; denn man kann sich damit die frustrierende Erfahrung, auf «tote»
Projekte wie Xindice zu setzen, ersparen.






Hat man sich intensiv in ein Projekt eingearbeitet, so ist es natürlich sehr erwünscht, das angeeignete Wissen auch weiterzugeben. Dies kann prinzipiell auf mehreren Ebenen erfolgen: Einerseits über Mitarbeit in der MailingListe sowie im Wiki, andererseits können Patches oder Erweiterungen vorgeschlagen werden. Haben diese die entsprechende Qualität beziehungsweise ihren Nutzen, werden sie auch verwendet. Ist man in der Projekt-Community produktiv, kann man von Mitarbeitern des Projektes als neuer Mitarbeiter vorgeschlagen werden.


Von der Entwicklung...

Grundsätzlich ist zu sagen, dass die Java-bezogenen Projekte der ASF sich im wesentlichen an Software-Entwickler richten beziehungsweise aus Serveranwendungen bestehen. So findet man keine Projekte, die Anwendungen für Endbenutzer darstellen (Grafikprogramme oder Office-Anwendungen).
Zu Beginn stehen zwei Werkzeuge, die als «Stand der Technik» in der Java-Software-Entwicklung gelten: Apache Ant sowie Apache Maven. Dabei handelt es sich um Tools zur Build-Automatisierung. Jede gängige Java-IDE kann mittlerweile mit Ant umgehen, das heisst, die Projektverwaltung und der Build-Prozess basieren wie bei Netbeans komplett auf Ant. Maven kann man als konzeptionelle Erweiterung beziehungsweise als Nachfolger von Ant verstehen.
Die meisten Apache-Projekte verwenden selber Ant oder Maven für den Build-Prozess. Somit stellen diese beiden Projekte einen guten Einstieg in die Welt der Java/Apache-Projekte dar.






Dasselbe gilt für das weit verbreitete Logging-Framework log4j. Auch dies wird in den meisten anderen Projekten benutzt.
Zu den frühen Subprojekten der ASF gehören auch die XML-bezogenen Projekte (xml.apache.org). Darunter findet man einerseits beliebte Basis-Bibliotheken wie den XML-Parser Xerces, die XSL-Prozessoren Xalan und FOP, aber auch ganze Frameworks
wie Apache Cocoon. Bei letzterem handelt es sich um ein sehr ­mächtiges und komplexes XML-basiertes Publishing-, Web-Entwicklungs- und System­integrations-Framework. XMLBeans ist ein relativ junges Projekt, das von Bea stammt und den Zugriff auf XML-Daten erleichtern soll.
Auch im Bereich der Web Services spriesst eine grosse Anzahl an mehr oder weniger wichtigen Subprojekten. Veraltet ist jedenfalls Apache SOAP und sollte nicht mehr verwendet werden. Axis hingegen ist eines der wichtigsten SOAP-Projekte im Java-Umfeld und wird gerade einer Re-Implementierung unterzogen (Axis 2).


...über die Darstellung...

Ein sehr wichtiger und geradezu traditionell starker Bereich der ASF sind Web-Frameworks. Hier ist das bekannte, wenn auch etwas angegraute Struts zu nennen. Neuere Projekte werden hier vermutlich eher auf den neuen J2EE-Standard Java Server Faces und das
myFaces-Projekt setzen. Aber
auch das schon genannte Apache Cocoon beziehungsweise Tapestry ist einen Blick wert.
Cocoon ist XML-basiert und wird gerne verwendet, wenn aus komplexen Systemen heraus, die man beispielsweise in grossen Unternehmen findet, Web-Anwendungen entwickelt werden sollen. Tapestry auf der anderen Seite ist ein weniger bekanntes, aber dennoch sehr mächtiges komponentenbasiertes Framework, das erst kürzlich in einer neuen Version erschienen ist.






Ein weiterer «alter Hase» in diesem Bereich ist Velocity. Dabei handelt es sich nicht um ein vollständiges Web-Framework, sondern um eine sehr mächtige Template-Engine, die wiederum in vielen anderen Projekten Anwendung findet.
Aus der Unzufriedenheit mit dem JBoss-Projekt haben sich einige Entwickler abgespalten und vor wenigen Jahren das Geronimo-Projekt ins Leben gerufen. Dabei handelt es sich um einen vollständigen J2EE-Server. Dieser ergänzt «nach oben hin» die bekannte Jakarta-Tomcat-Servlet-Umgebung.
Aber auch andere Middleware-Komponenten wie OJB/JDO sind zu finden. Dies sind Objektrelationale Datenbank-Mapping-Tools (ORM), funktional mit Hibernate oder Castor vergleichbar.
Auch ein sehr schlankes und einfach zu verwendendes ORM-Tool, nämlich Torque, findet sich unter den Datenbankprojekten. Torque bietet nicht den Funktionsumfang von OJB oder Hibernate, ist dafür aber wesentlich einfacher zu erlernen und anzuwenden.


...zur Datenspeicherung

Auch im Datenbankbereich hat sich in den letzten Jahren einiges getan. Zu nennen wäre hier insbesondere die erst kürzlich aus Inkubator gewachsene Derby- Datenbank. Bei Derby handelt es sich um ein relationales Datenbank-Management-System (RDBMS) mit langer Geschichte. Ursprünglich ein geschlossenes Produkt von Cloudscape, gekauft von Infomix und schliesslich von IBM als Derby an die ASF übergeben. Es handelt sich dabei um eine mächtige Java-Datenbank, die sowohl embedded als auch als Server betrieben werden kann.





Im Umfeld von Resource Management/Middleware sollten auch keinesfalls die Projekte Lucene, Jackrabbit und Slide vergessen werden. Lucene ist ein äusserst mächtiges Volltext-Indizierungs-Werkzeug, das in der Lage ist, riesige Datenbestände zu indizieren und vielfältig Einsatz findet. Slide ist eine WebDAV-Server-Implementierung. Leider hat sich das Projekt nicht immer zur Zufriedenheit aller Anwender weiterentwickelt und wurde teilweise nur sehr langsam vorangetrieben.
Sehr interessant ist auch das neue Jackrabbit-Projekt. Dabei handelt es sich um eine der ersten Implementierungen des neuen Java-Content-Repository-Standards (JSR 170).
Zu den wenigen visuellen Tools zählt JMeter, mit dem unter anderem Webseiten, aber auch andere Ressourcen wie Datenbank-Connections, Last- und Funktionstests unterzogen werden können. Der Einstieg ist hier aber leider nicht ganz einfach.





Die wichtigsten Apache-Java-Projekte im Überblick


Der Autor

Alexander Schatten
(alexander@schatten.info) ist Assistent am Institut für
Softwaretechnik und interaktive Systeme der Technischen Universität Wien.


Vorschau auf InfoWeek 12

In der Ausgabe 12 der InfoWeek setzen wir die Apache-Java-Serie fort.
Thema sind dann die beiden Build-Werkzeuge Ant und Maven.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Vor wem mussten die sieben Geisslein aufpassen?
GOLD SPONSOREN
SPONSOREN & PARTNER