Apache Portable Runtime

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 21. Oktober 2004 um 00:35 Uhr durch 213.196.254.209 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Bibliothek Apache Portable Runtime (APR) ist ein Open Source-Softwareprodukt der Apache Software Foundation. Es handelt sich um die konsequente Weiterentwicklung einzelner Verallgemeinerungsfunktionen aus einer älteren Version des Apache HTTP Servers: Dieser Webserver läuft unter verschiedenen Betriebssystemen (unter anderem Linux und andere Unix-Varianten, Windows und Netware). Auf jedem dieser Systeme werden identische Aufgaben jeweils leicht unterschiedlich erledigt. In früheren Versionen von Apache behalf man sich auf Nicht-Unix-Plattformen mit einer POSIX-Emulationsschicht, um dieses Problem zu lösen; man zwang also die anderen Systeme, sich "wie Unix zu verhalten". Da dies auf Kosten von Stabilität und Geschwindigkeit geht, gingen die Entwickler bei der Apache-Version 2.0 einen neuen Weg: Die APR wird für jede Plattform separat aufgesetzt und stellt nach außen Funktionen mit identischem Verhalten zur Verfügung. Auf diese Weise verallgemeinert (abstrahiert) sie bestimmte Basisfunktionen, die der Webserver benötigt, ohne die individuellen Stärken der einzelnen Systeme auszubremsen. Die Apache Portable Runtime stellt unter anderem Funktionen aus folgenden Aufgabengebieten bereit:

  • Dateizugriffe
  • Netzwerk-Sockets
  • Speicherverwaltung
  • Datums- und Uhrzeitfunktionen
  • Text- und Zeichenkettenbehandlung
  • Angleichung von Datei- und Pfadnamen in ein dateisystemunabhängiges Format
  • Zufallsgenerator
  • Thread- und Prozessverwaltung
  • Laden dynamischer Bibliotheken

Da die APR die Programmierung plattformunabhängiger Netzwerkanwendungen stark vereinfacht, machen inzwischen auch andere Projekte der Apache Software Foundation sowie von Drittanbietern Gebrauch von ihr, zum Beispiel Apache Flood, JXTA-C, einige Tomcat-Module oder das Versionskontroll-System Subversion.