Federlesen #1: The Apache Way

Know-how  –  Kommentare

Bei den vielen Federn im Kopfschmuck der Apache Software Foundation (ASF) ist es oft nicht einfach, einen Überblick zu bekommen geschweige ihn zu behalten. heise Developer stellt in dieser neuen Kolumne nach der Redensart "Federlesen" ("Nicht viele Umstände machen und gleich zur Sache kommen") regelmäßig die wichtigsten Neuerungen und noch wenig bekannte Projekte vor.

Apache-Produkte stehen seit mehr als 15 Jahren für qualitativ hochwertige, langlebige und innovative Open-Source-Software, die unter der freien Apache-Software-Lizenz veröffentlicht werden. Der Apache HTTP Server ist als bekanntestes Produkt zugleich der Namensgeber der 1999 gegründeten Apache Software Foundation. Darüber hinaus gibt es noch weitere 75 Top-Level-Projekte (TLP) mit über 140 Unterprojekten.

Top-Level-Projekte fassen mehrere Unterprojekte thematisch zusammen und helfen dadurch, diese oft nicht überschneidungsfreien Projekte gezielt weiter zu entwickeln. Der Top-Level-Status drückt aus, dass die Community und die Produkte eines Projekts gemäß den Regeln der Stiftung geführt werden und darüber regelmäßig vom Project Management Committee (PMC) berichtet wird.

Zum "Apache Way" gehört nicht nur das einfache Bereitstellen freier Software. Die Apache-Gemeinschaft von Entwicklern und Nutzern legt Wert darauf, dass die Entwicklung konsensbasiert, sicher und auf Basis von Standards erfolgt.

Die Unterstützung der ASF kann auf unterschiedliche Weise erfolgen. Für Firmen gibt es die Möglichkeit des Sponsorings: über Geld, das Freistellen von Entwicklern und mit Codespenden. Neben namhaften Firmen wird Apache jedoch auch von engagierten Privatpersonen getragen.

Unterschieden wird zwischen Nutzern und Entwicklern, die sich in jeweiligen E-Mail-Gruppen beteiligen. Committer haben eine apache.org-E-Mail-Adresse und können Dateien, unter Berücksichtigung der Contributor License Agreement (CLA), im jeweils freigeschalteten Projekt ändern. Die organisatorischen Rollen ASF-Mitglied, PMC-Mitglied und PMC-Vorstand zusammen mit dem Vorsitzenden bestimmen die Gremien selbst.

Da die Apache Software Foundation keine Angestellten hat, stellen einige Firmen Mitarbeiter für spezielle Aufgaben bei der ASF frei. In dieser Rolle wirken Apache-Mitarbeiter auch in den unterschiedlichen Standardgremien (AMQP Working Group, IETF, JCP, OASIS, OSGi Alliance, SAX, W3C) mit.

Apache-Projekte werden von der Wiege (Incubator; zurzeit 36 Projekte) über das produktive Stadium bis zur Bahre (Attic; zurzeit sieben ruhende Projekte) betreut. Dadurch ist über eine lange Zeit die transparente Weiterentwicklung und Unterstützung gewährleistet. Etwas unsicherer sind hingegen, durch die freiwillige Mitarbeit, der Fortschritt und die Releaseplanung der Projekte. Von vielen freigestellten Entwicklern unterstützte Projekte, deren Produktentwicklung maßgeblich von Unternehmen gefördert wird und für die diese auch offiziellen Support und professionelle Dokumentation anbieten, sind hier im Vorteil.

Etwas Statistik

Der größte Teil der Apache-Projekte ist in Java realisiert (über 70 Prozent), gefolgt von C (10 Prozent). Durch die Unterstützung offener Standards lassen sich jedoch bei einigen Produkten auch andere Sprachen verwenden.

Apache-Projekte liegen immer als ausführbare Version und als Quellcode-Archiv für die Plattformen Windows und Unix/Linux vor. Durch Javas Plattformunabhängigkeit können auch andere Betriebssysteme bedient werden, oder es gibt für die mit C programmierten Teile geeignete Portierungen. Die Apache-Projekte sind zurzeit nach 15 bis 17 Kategorien eingeteilt, wobei ein Projekt mehreren Kategorien zugeordnet sein kann.

Die meisten Projekte sind der Kategorie library zugeordnet, gefolgt von den Kategorien network-server, xml, web-framework, network-client, http und database. Ein ähnliches Bild ergibt sich bei den einem PMC zugeordneten Projekten. Hier haben die Java-Infrastruktur-Bibliotheken Commons (früher Teil des Jakarta-Projekts), die die Basis für viele Java-Produkte sind, die meisten zugeordneten Projekte.

Bei einigen Produkten erscheint die Kategorisierung etwas willkürlich. Man fragt sich etwa, warum der Anwendungsserver Geronimo unter web-framework, jedoch MyFaces nicht unter javaee (implementiert mindestens einen Java Specification Request (JSR) des Java Community Process (JCP)) eingeordnet ist. Das OSGi-Framework Felix gehört nur zur Kategorie network-server und noch nicht zur neuen, aber noch nicht zugeordneten Kategorie osgi.

Aus der Projektküche

Bei einigen Projekten gibt es schon seit Längerem keine neuen Versionen. Am sehnlichsten erwartet wird sicherlich Tomcat 7.0, seit letzter Woche als Beta freigegeben, da er die neue Servlet 3.0 API implementiert und neben einer größeren Sicherheit auch eine bessere Einbettung in die eigene Anwendung bietet. Der Servlet-Container ist auch die Basis für den ersten Meilenstein von Geronimo 3.0, der Teile von Java EE 6 realisiert und dessen Bibliotheken als Basis für viele andere Projekte dienen. Durch die Umstellung auf einen OSGi-Kernel und die Verwendung des Aries-Frameworks ist dieser erste Meilenstein noch mit Vorsicht zu genießen. Er zeigt jedoch, in welche Richtung die Zukunft von Java-Anwendungsservern geht. Aries 0.1 mit Felix ist deshalb auch für andere Anwendungsserver wie WebSphere und JBoss die Basis für die Ausführung von OSGi-Anwendungen.

In der Rekordzeit von vier Monaten hat das bekannte Versionsmanagementwerkzeug Subversion den Incubator-Status verlassen. Es darf sich nun Top-Level-Projekt nennen. Weitere neue Top-Level-Projekte sind unter anderem der Apache Traffic Server, Mahout, HBase und Avro aus dem Hadoop-Projekt sowie Tika und Nutch von Apache Lucene.

Weitere schöne und neue Federn aus der Apache-Projektküche gibt es beim nächsten "Federlesen" im Herbst zu bestaunen. (ane)

Frank Pientka
ist Senior Software Architect bei der Materna GmbH in Dortmund und Autor des Geronimo-Buchs im dpunkt Verlag.

Links