Apache  

Lars Eilebrecht  
 
 
 
 

Ich bin Mitglied der Apache Software Foundation und seit nunmehr zwei Jahren im Core-Team der Entwicklungsgruppe des Apache-Webservers. In den folgenden fünfzehn Minuten möchte ich einige wichtige Aspekte auch zur Historie des Apache erzählen. Werfen wir einen Blick ins Jahr 1995. Damals gab es den Apache noch nicht. Der meistverbreitete Webserver damals war der NCSA-Webserver. NCSA steht für das National Center for Supercomputing Applications an der Universität Illinois, USA. Leider kam damals, obwohl der Server so populär war, die Entwicklung ins Stocken, als der Hauptentwickler Rob McCool das NCSA verlassen hat. Auf Grund der weiten Verbreitung gab es sehr viele Leute, die Bedarf hatten an einer Weiterentwicklung des NCSA-Webservers oder die generell einen Webserver brauchten. Das heißt, viele Leute haben angefangen, eigenständig Fehler im NCSA-Server zu beheben und neue Funktionalitäten einzubauen. Eine kleine Gruppe von Leuten schloß sich damals unter dem Namen Apache-Group zusammen und beschloß, auf Basis des NCSA-Servers einen neuen Webserver herauszubringen. Es wurden mehr und mehr Patches zusammengetragen. Aus der Phrase A Patch Server wurde schließlich der Name Apache geboren. Die Feder als Anspielung auf die Apachen-Indianer war nur so eine Folgerung daraus. Die erste Version wurde 1995 herausgegeben. Nicht ganz ein Jahr später hatte der Apache den NCSA-Webserver von der Spitze verdrängt und war zum meistgenutzen Webserver im Internet geworden. Die 50-Prozent-Hürde bezüglich des Marktanteils hat der Apache dann im Jahr 1998 überschritten. Der aktuelle Stand sieht so aus, daß der Apache inklusive aller darauf basierenden Webserver mittlerweile einen Anteil von knapp 62% hat. Microsoft liegt bei 22% mit ihrem Internet Information Server. Netscape mit ihren diversen Produkten, wie dem Fast Track Commerce Server, liegen bei etwas über 7%. Diese Zahlen stammen von einer Firma Namens Netcraft, die jeden Monat ein sogenanntes Web Server Survey durchführt und dabei mehrere Millionen Webserver im Internet abfragt und auswertet, welche Server-Software dort verwendet wird.  

Nun genug der ganzen Zahlen. Werfen wir einmal einen Blick hinter die Kulissen. Die Apache-Group: Es gibt derzeit 22 aktive Mitglieder, ein Großteil aus den USA. Fast alle Gründungsmitglieder stammen aus den USA. Und noch jetzt steht der Server www.apache.org in San Francisco, in Kalifornien, USA. Weitere Mitglieder stammen aus Kanada, England, Neuseeland, Italien und schließlich gibt es auch drei Mitglieder aus Deutschland. Wie bei den meisten Open Source-Projekten ist das zentrale Kommunikationsmittel Email, genauer gesagt eine Mailingliste. Diese Liste ist noch dazu öffentlich für jedermann. Wer sich auch nur im geringsten für Apache interessiert und einmal mitbekommen möchte, was da so passiert, kann sich auf dieser Liste eintragen und gegebenenfalls auch mitdiskutieren, wenn er irgendwelche Anregungen hat oder etwas zu einem Thema sagen möchte. Man sollte schon ein gewisses Maß an Interesse mitbringen. Der Traffic der Liste schwankt sehr stark. Es ist durchaus nicht unüblich, über diese einzige Liste mehr als hundert Mails zu bekommen. Es gibt noch weitere Mailinglisten: Announce-Listen und interne Listen. Aber das Hauptkommunikationsmittel ist, wie gesagt, diese eine öffentliche Mailingliste.  

Bei vielen Open Source-Projekten ist es so, daß es keine festgelegte Aufgabenverteilung gibt. Das ist auch beim Apache so. Das heißt, im Prinzip wird das gemacht, was jemanden interessiert. Jemand implementiert und programmiert das, wozu er Lust hat. Es gibt eine gewisse Struktur, das heißt, die Leute, die bestimmte Module entwickelt haben, kümmern sich auch typischerweise um die Weiterentwicklung dieser Module. Erwähnen sollte ich die Tatsache, daß es keinen Leiter, keinen Chef dieses Projektes gibt. Alle Entscheidungen, die getroffen werden, sei es nun welche Patches, welche neuen Funktionalitäten in den Apache eingebaut werden, was in der Zukunft passieren soll und sonstige Entscheidungen werden alle auf Basis eines Mehrheitsbeschlusses entschieden. Das heißt, es wird auf der Mailingliste darüber abgestimmt, ob ein bestimmter Patch eingebunden wird oder nicht. Bei Patches, die eine große Änderung darstellen, ist es typischerweise so, daß sich mindestens drei Mitglieder der Apache-Group damit beschäftigt haben müssen, das heißt, es getestet haben und dafür sein müssen, daß der Patch eingebaut wird. Und es darf keinerlei Gegenstimmen geben. Wenn es sie gibt, dann wird typischerweise das Problem, das jemand damit hat, behoben und, wenn der Patch dann für sinnvoll erachtet wird, irgendwann eingebaut.  

Der Apache selber ist mehr als nur die Summe aus der Arbeit der Apache-Mitglieder. Im Laufe der Zeit gab es sehr viele Leute, die -- teilweise regelmäßig, teilweise gelegentlich, zum Teil auch nur in einer einmaligen Aktion -- bestimmte Fehler im Apache behoben und Patches eingereicht haben. Das ganze fing an bei simplen Bug Reports und ging über Feature Requests, über Ideen der Weiterentwicklung bis hin zu Patches oder größeren Funktionserweiterungen des Apaches, die nicht von Leuten der Apache-Group gemacht werden, sondern von den Nutzern. Von den Leuten, die auch Spaß an der Entwicklung haben und einen kleinen Teil dazu beitragen wollen, daß der Apache auch weiterhin der beste Webserver bleibt oder zumindest der meistverbreitete Webserver, den es im Internet gibt.  
  

  
*Hier ein Bild von einigen Entwicklern der Apache-Group, damit man sieht, daß hinter dem Namen auch Leute stehen. Das Bild wurde letztes Jahr im Oktober bei der ApacheCon in San Francisco aufgenommen.  

Die Frage, warum der Apache so erfolgreich ist, läßt sich schwer beantworten. Ein großer Punkt ist sicherlich die Tatsache, daß er auf fast allen gängigen Plattformen läuft. Entwickelt wurde der Apache auf und für Unix-Systeme, das heißt, er läuft derzeit auf nahezu allen Unix-Derivaten: Linux, BSD, Solaris, AIX, Irix was auch immer. Seit Version 1.3 läuft der Apache mittlerweile auch auf Windows-Systemen. Ich würde generell immer Unix bevorzugen, aber wer es unbedingt braucht, der kann es auch auf Windows laufen lassen. Dann gibt es noch einige eher exotische Plattformen, wie z.B. die BS2000 Mainframe-Systeme von Siemens, oder auch, wer noch einen hat, der Amiga-Rechnern.  

Ein anderer wichtiger Punkt, um den es hier auf der Konferenz eigentlich geht: Open Source. Der Apache entspricht der Open Source-Definition. Ich bekomme den Quellcode. Die Software ist frei verfügbar, kann eingesetzt werden, sowohl für private, wie kommerzielle Zwecke, ohne jegliche Lizenzgebühren entrichten zu müssen.  

Stichwort Lizenz: Es gab vor einiger Zeit, ich glaube, auf slashdot.org, eine Umfrage: 'Ohne nachgucken zu müssen, würden Sie sagen, daß der Apache unter der GPL vertrieben wird, ja oder nein?' Ein Großteil der Leute, etwa um die achtzig Prozent haben gesagt: 'Ja, der Apache wird unter der GPL vertrieben.' Das stimmt nicht. Der Apache hat eine eigene Lizenz, so ähnlich wie beim XFree-Projekt. Er wird unter einer BSD-Style-Lizenz vertrieben, das heißt, es gibt vom Prinzip her nur zwei Einschränkungen. Wenn eine Firma den Apache modifiziert und weitervertreiben will, muß dabei stehen, daß das Produkt auf dem Apache basiert oder Teile davon in das Produkt eingefloßen sind. Und dieses Produkt darf dann nicht Apache heißen. Das sind die einzigen Einschränkungen. Die weiteren Einschränkungen der GPL, daß dann der Source mitvertrieben werden muß, gelten bei dieser Apache-Lizenz nicht.  

Ein anderer Grund, warum er sicherlich erfolgreich ist, ist die Tatsache, daß er eigentlich schon immer sehr stabil war. Es hat sich herausgestellt, daß der Apache auch für Mission critical-Anwendungen durchaus geeignet ist. Er ist perfomant und bietet eben diese Stabilität und natürlich auch einen großen Funktionsumfang. Der Apache benutzt ein modulares System, das heißt, es gibt einen Kern des Apache, der die wichtigen Funktionen zur Verfügung stellt. Das reicht im Prinzip aus, um normale HTML-Seiten auszuliefern. Sobald ich weitere Funktionen brauche, wie z.B. CGI oder Protokollierungsfunktionen, um herauszubekommen, wieviele Leute meine Seiten betrachtet haben, gibt es entsprechende Module. Ein Großteil dieser Module ist schon bei der normalen Standarddistribution des Apache mit dabei, angefangen von CGI und Protokollierungsfunktionen bis URL-Manipulationsroutinen und Server-side-Includes. Was auch sehr interessant ist: mittlerweile gibt es einen sehr großen Markt von Drittanbietern von Modulen für den Apache, sei es nun Open Source oder auch kommerzielle Produkte. Es gibt derzeit etwas über hundert verschiedene Module für den Apache, wie Datenbankanbindung z.B. PHP und in den Apache integrierte Interpreter für Python oder Perl. Was auch sehr stark im Kommen ist, sind Java-Servlets, das heißt Server-side-Java.  

Stichwort: Apache Software Foundation. Zur Klärung: Apache-Group und Apache Software Foundation sind zwei verschiedene Sachen. Die Apache Software Foundation wurde am 1. Juni 1999 gegründet. Es handelt sich um eine Not-for-Profit Corporation mit Sitz in Delaware, USA. Die Idee dahinter war, eine Unterstützung für Open Source-Projekte bieten zu können, sei es in Form von Hardware, Netzanbindung oder Connectivity bis hin zu finanzieller Unterstützung, soweit dies möglich ist, und auch vor allem, wenn nötig, eine rechtliche Unterstützung. Die Motivation war ähnlich wie bei XFree86, daß wir auch "Verträge" oder sonstige Vereinbarungen mit Firmen ermöglichen und unterzeichnen können. Das Board of Directors der Apache Software Foundation setzt sich ausnahmslos aus Leuten der Apache-Group zusammen.  

Vom Prinzip her ist jetzt das Apache-Webserver-Projekt "nur" ein Projekt unterhalb der Apache Software Foundation. Weitere Projekte, die bisher schon in ähnlicher Weise unter dem Namen Apache gelaufen und jetzt offiziell ein Projekt der Foundation sind, sind das PHP-Projekt, das das PHP-Modul zur Verfügung stellt, das mod_perl-Projekt und -- durch eine Kooperation mit Sun neu hinzugekommen -- das Jakarta-Projekt, das mit Hilfe von Sun einen Open Source Servelet Engine für den Apache zur Verfügung stellen will. Die Entwickler sind zum Teil Mitarbeiter von Sun, aber auch die Leuten, die bisher dieses freie JServ-Modul, das bisher für den Apache verfügbar war, entwickelt haben. Natürlich wird auch dieses Projekt unter der Apache-Lizenz vertrieben werden, wie auch alle weiteren Projekte, die vielleicht mal irgendwann dazu kommen werden. Wobei hier der Fokus auf Projekten liegt, die etwas mit dem Apache zu tun haben oder generell mit dem World Wide Web. Vor allem soll dadurch auch die Motivation hervorgerufen werden, daß sich weitere Entwickler an den Projekten beteiligen, und vor allem auch Firmen.  

Wir hatten in der Apache-Group schon bevor es die Foundation gab mehrere Vertreter von Firmen mit im Boot. Ein bekanntes Beispiel ist hier IBM, die den Apache in ihrem WebSphere-Produkt einsetzen. Sie unterstützen die Entwicklung des Apache mit einem eigenen Apache-Development Team. Ich glaube, es sind derzeit 13 bis 14 Leute. Sie fördern somit auch die weitere Entwicklung des Apache. Ein weiteres Beispiel ist Siemens, die den Apache bei ihren BS2000 Systemen als Standard-Webserver mit ausliefern und durch einen Mitarbeiter, der sich damit beschäftigt, dafür sorgen, daß Portierungsarbeiten vorgenommen werden und darauf geachtet wird, daß auch zukünftige Versionen des Servers auf BS2000 lauffähig sind. Ein weiteres Beispiel ist Appel. Sie haben selber den Apache auf Mac OS X oder damals Rhapsody portiert. Es wird wohl demnächst ein Mitarbeiter, der dafür verantwortlich war, auch Mitglied der Apache-Group, bzw. jetzt der Apache Software Foundation werden. Das Hauptziel in dieser ganzen Geschichte ist, Open Source und Apache an sich auch in Zukunft verfügbar machen zu können, daß der Apache auch weiterhin einer der erfolgreichsten Webserver sein wird. Wir werden sicherlich einen Marktanteil von hundert Prozent niemals erreichen, aber probieren wird man es doch können, oder?  

 
(Transkription Katja Pratschke) 
 
 

About the Apache HTTP Server Project  

Apache Software Foundation  

Apache Server Project  

PHP: Hypertext Preprocessor  

Jakarta Project  

The Apache/Perl integration project: mod_perl