FANDOM


appserver.io
Maintainer TechDivision GmbH
Entwickler TechDivision GmbH
Erscheinungsjahr Juli 2013
Aktuelle Vorabversion 0.6.0
(vor. 9. Mai 2014)
Betriebssystem Windows, Mac OS, Linux
Programmier­sprache PHP
Kategorie Anwendungsserver
Lizenz OSL 3.0 (Freie Software)
http://www.appserver.io/

appserver.io ist die Implementierung eines Anwendungsservers für das PHP basierte Web-Umfeld und stellt eine Verbindung zwischen dem Anwendungsserver-Konzept und klassischen Webservern, wie z.B. Apache dar. Ziel ist es eine Plattform zu entwickeln, die Enterprise Anwendungen in PHP ermöglicht und unterstützt. Um dies zu erreichen besteht die Software aus einer Middleware, welche das Ausliefern klassischer PHP Anwendungen unterstützt und um zusätzliche Webdienste erweitert.

Geschichte

Die grundlegende Idee ein WildFly-Equivalent für PHP zu entwickeln bestand innerhalb der Firma TechDivision schon seit einigen Jahren. Aufgrund mangelnder technischer Unterstützung durch die Zielsprache PHP konnte mit der Entwicklung jedoch erst im Juli 2013 effektiv begonnen werden.

Seit längerem existieren asynchrone Event gestützte Ansätze, durch die sich eine nicht-blockierende Middleware auf Socketbasis in PHP implementieren lässt[1]. Parallel dazu gibt es seit August 2012 durch die PECL Bibliothek pthreads von Joe Watkins die Option von echtem POSIX kompatiblem Multithreading[2]. Auch wenn dieses kontrovers diskutiert wird[3] wurden zur Implementierung Threads genutzt, da sie Programmierern eine gezieltere Nutzung von Hardware erlauben, als es durch die Nutzung einer gewöhnlichen Laufzeitumgebung möglich ist.

Nach Festlegung einer geeigneten technischen Basis startete die Entwicklung von appserver.io auf der Plattform GitHub. Derzeit (Stand Mai 2014) besteht das Projekt aus 28 separaten Repositories, circa 54.000 Lines of Code und einem geschätzten Aufwand von 14 Jahren (COCOMO Modell)[4].

Lizenzierung

appserver.io ist eine freie Software unter der OSL in Version 3.0 und kann als installierbare Anwendung von der Projektseite, oder als Quelltext kostenlos über das GitHub Portal heruntergeladen werden. Das Projekt verfolgt dabei einen Freemium Ansatz, bei dem die Anwendung in eine Community- und eine Enterprise Edition mit zusätzlichen Möglichkeiten geteilt wird.

Eigenschaften und Funktionen

appserver.io beinhaltet eine eigene Laufzeitumgebung. Diese enthält PHP in Version 5.5 ergänzt um einige Drittanbieterbibliotheken, Erweiterungen und Dienstprogramme[5]. Die Idee einer komplett beinhalteten Umgebung macht appserver.io zu einer leicht installierbaren und umfassenden PHP Laufzeitumgebung, hat allerdings Nachteile durch die spezifische Zusammenstellung ihrer Komponenten. Vor allem die Nutzung von Multithreading wird in der PHP Community kritisch betrachtet, da es als Bruch des in PHP adaptierten shared nothing Prinzips gilt und Zwischen-Request Kommunikation auf Objektebene erlaubt[6].

Zusätzlich zur enthaltenen Laufzeitumgebung versucht das Projekt die Administration zu erleichtern. Zu diesem Zweck wird ein Administrations-Backend zur Verfügung gestellt, das in der Lage ist sowohl die Komponenten der Middleware als auch die Verteilung und Stati von Anwendungen zu überwachen. Ab Version 0.6.0 ist die Anwendungsverwaltung voll implementiert und erlaubt einfache Drag and drop Installation der sogenannten Apps. Zusätzliche Funktionen wie die Konfiguration von virtuellen Hosts, Logging, erweitertes Clustering- sowie Statistik-Verwaltung sind in naher Zukunft geplant.

Neben den klassischen auf Requestebene isolierten PHP Anwendungen erlaubt appserver.io auch die Nutzung von PHP-Servlets, Objektinstanzen, welche zwischen Anfragen persistent bleiben. Mit diesen ist es theoretisch möglich, bedeutende Geschwindigkeitsvorteile zu erreichen, da das Bootstrapping der Anwendung nur einmal ausgeführt werden muss. Nachteil daran ist allerdings, dass der für das Bootstrapping verantwortliche Anwendungsteil zuerst in ein solches Servlet integriert werden muss[7].

Wie sein Java Vorbild WildFly bietet auch appserver.io verschiedene Dienste, die sich individuell durch interne und externe Anwendungen nutzen lassen. Diese sind auf modulare Art und Weise eingebunden und bilden ein zentrales Konzept des Anwendungsservers.

Im Folgenden ist eine Liste von Diensten und Eigenschaften aufgeführt, die eine appserver.io Installation bereitstellt, wobei sich die meisten unabhängig vom appserver Projekt nutzen lassen.

Wie bereits beschrieben bietet das Projekt spezielle Enterprise Funktionen, für die ein Bezahlmodell existiert. Diese sind wie folgt:

Versionsübersicht

appserver.io befindet sich zwar derzeit noch in einer frühen Entwicklungsphase, dennoch stellen die Entwickler bereits stabile Vorabversionen über das GitHub Portal zur Verfügung. Folgende Versionen sind bereits erschienen:

appserver.io Beta

Version Veröffentlichung
10. Oktober 2013
5. Februar 2014
13. Februar 2014
vor. 9. Mai 2014

Zusätzlich sind fortlaufende Entwicklerversionen über die Homepage des Projektes verfügbar.

Erreichte Meilensteine

Das Projekt hat derzeit zwei große Meilensteine zu verzeichnen:

  • Mit Version 0.5.8 bietet appserver.io eine geführte Windows Installation sowie volle Unterstützung dieses Betriebssystems ab Version 7
  • Ab Version 0.6.0 bietet der integrierte Webserver und der modulare Aufbau Kompatibilität zu Nicht-Servlet-Anwendungen

Literatur

  • Meyen, Sebastian (2013): Software Development Trends. Frankfurt am Main: entwickler.press. S. 25-49.
  • Piech, Guido (2014): Onlineplattform für den Einzelhandel. Das digitale Schaufenster ist erröffnet. In: IT MITTELSTAND, Ausgabe 1-2 (2014), S. 54-64.

Referenzen

Weblinks

Einzelnachweise

  1. ReactPHP Projekt-Website
  2. pthreads Projekt-Homepage
  3. Benjamin Erb, Concurrent Programming for Scalable Web Architectures
  4. Ohloh appserver.io Projektseite
  5. Abhängigkeiten der appserver.io Laufzeitumgebung
  6. Multithreading in PHP with pthreads
  7. Beispielservlet für den Magento Bootstrapping Prozess
Nutzung von Community-Inhalten gemäß CC-BY-SA , sofern nicht anders angegeben.