Die Flinke Feder

Tomcat – Das siebte Leben der Katze

Bernd Fondermann

Die Erfolgsgeschichte des Internets ist auch der Erfolg des HTTP-Protokolls. Und keine andere Programmiersprache der jüngeren Zeit hat einen vergleichbaren Siegeszug hinter sich wie Java. Beides kombiniert hat einen Namen: Apache Tomcat.

Das vermeintliche Kätzchen Servlet Engine ist durchaus ein voll ausgewachsener Webserver-Kater und eines der Leittiere der Apache Software Foundation. Bei den Page Views steht das Projekt an dritter Stelle hinter „dem Apache“ httpd und Apache Commons. Die Downloads sind rekordverdächtig. Hier spielt vor allem eine Rolle, dass Tomcat überall ist, aber im Gegensatz zum httpd in der Regel nicht über die Paketverwaltung einer Linux-Distribution installiert wird, sondern direkt per Download von apache.org und seinen Spiegeln. Das verzerrt die Statistik, macht aber trotzdem klar, dass Tomcat für viele Projekte gesetzt ist.

Mehr zum Thema Apache Tomcat und das Servlet API 3.0 gibt es im Java Magazin Spezial „Java EE 6“, das ab dem 12.11. im Handel erhältlich ist. Hier bestellen: www.javaee-spezial.de

In der freien Wildbahn begegnet man ihm häufiger als zum Beispiel dem schlanken und agilen Jetty, einer Servlet Engine, die mittlerweile im Eclipse-Zoo angesiedelt ist. Es gibt bei Apache keine Vorgaben, eigene Projekte den auswärtigen Alternativen vorzuziehen. Deshalb setzen einige Projekte auf Jetty, z. B. Hadoop. Der Grund dafür dürfte sein, dass Jetty bisher einfacher nach Plug-in-Manier in eine laufende JVM zu integrieren gewesen ist und deshalb oft im Spiel ist, wenn man es gar nicht mitbekommt. In Apache Geronimo, der Java-EE-5-Implementierung von Apache, kann man die Wahl treffen, ob Jetty oder Tomcat die Servlet Requests bearbeiten soll.

Neben den beiden großen Webservern httpd und Tomcat gibt es noch mindestens zwei weitere HTTP-Server bei Apache. Einerseits bringt der OSGI-Server Apache Felix eine Implementierung der OSGi-HTTP-Service-Spezifikation mit; dazu integriert es Jetty.

Im NIO-Projekt Apache MINA findet man einen HTTP-Server namens AsyncWeb, der speziell für die asynchrone Bearbeitung von Requests entwickelt wurde. Er wird derzeit nicht mehr weiterentwickelt. Vollwertige Servlet Engines stellen spätestens ab Konformität mit Servlet API 3.0 asynchrone Features zur Verfügung, so auch Tomcat.

Der Kater wildert nun endlich auch auf Gebieten, wo vorher Jetty dynamischer und beweglicher war. Das ist ein Zeichen dafür, dass sich das Produkt mit dem Web und mit Java weiterentwickelt. Und vielleicht der Beweis, dass die manchmal beim Betrachter so empfundene katzenmäßige Behäbigkeit lediglich ein Zeichen für Zuverlässigkeit und Überlegenheit ist? Zum Thema Zuverlässigkeit sei noch angemerkt, dass Releases – anders als bei der Mehrzahl der Apache-Projekte – erst dann als „Stable“ gekennzeichnet werden, wenn sie sich eine Woche in der IT-Natur bewährt haben und keine Regressionen oder schwerwiegende neue Bugs gefunden worden sind.

Für den Tomcat spricht seine exzellente Community. Zwar haben sich immer wieder Firmen damit gebrüstet, dass ihre Entwickler mehr oder weniger führend am Tomcat arbeiten, doch zu einem ungesunden Missverhältnis hat das bisher nicht geführt. Als Tomcats Code von Sun der ASF übergeben wurde, war Tomcat noch „die Referenzimplementierung“ für die Servlet API, Jahre später hatte JBoss wesentlichen Anteil an der Entwicklung (und seinerzeit dafür eigens Jetty gegen Tomcat als Default Servlet Engine im JBoss J2EE Server ausgetauscht). Heute liegt ein großer Teil der Arbeit auf den Schultern von SpringSource-Mitarbeitern, neben einer Reihe von unabhängigen Committern wie den Deutschen Peter Roßbach und Rainer Jung. Durch die Akquise von Covalent ist SpringSource der wohl größte kommerzielle Anbieter von Produkten und Services rund um Tomcat geworden.

Für die meisten Java-Anwender ist allerdings immer noch die Open-Source-Ausgabe des Tomcat seit mittlerweile zehn Jahren die klassische Plattform, um eigene Webanwendungen an den User zu bringen und damit vertraute Infrastruktur.

Bernd Fondermann (bernd.fondermann@brainlounge.de) ist freiberuflicher Softwarearchitekt und Consultant in Frankfurt a. M. Er beschäftigt sich mit innovativen Open-Source-Technologien wie Apache Hadoop und Lucene und ist Member der Apache Software Foundation und Vice President Apache Labs.
Geschrieben von
Bernd Fondermann
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.