FANDOM


appserver.io
Maintainer TechDivision GmbH
Entwickler TechDivision GmbH
Erscheinungsjahr Juli 2013
Aktuelle Vorabversion 1.0.0-beta4
(19. Januar 2015)
Betriebssystem Windows, Mac OS, Linux
Programmier­sprache PHP, C, Shell
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 soll eine Brücke zwischen dem Anwendungsserver-Konzept und klassischen Webservern wie z.B. Apache schlagen. Hintergrund soll es sein, 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 wird.

Geschichte Bearbeiten

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 Januar 2015) besteht das Projekt aus 36 separaten Repositories, circa 74.000 Lines of Code und einen geschätzten Aufwand von 18 Jahren (COCOMO Modell)[4].

Lizenzierung Bearbeiten

appserver.io ist 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 plant einen Freemium Ansatz bei dem die Anwendung in eine Community- und eine Enterprise Edition mit zusätzlichen Möglichkeiten geteilt wird.

Eigenschaften und Funktionen Bearbeiten

appserver.io beinhaltet eine eigene Laufzeitumgebung. Diese enthält PHP in Version 5.5 erweitert um einige Drittanbieterbibliotheken, Erweiterungen und Dienstprogrammen[5]. Diese 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 von Anwendungen. Zusätzliche Funktionen wie die Verwaltung von virtuellen Hosts, Logging und erweiterte Clustering- und Statistik-Verwaltung ist für die nahe 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.

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 eines Anwendungsservers.

Im Folgenden ist eine Liste von Diensten und Eigenschaften aufgeführt, die eine appserver.io Installation bereitstellt, wobei sich die meisten auch 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 Bearbeiten

appserver.io befindet sich derzeit noch in einer frühen Entwicklungsphase, trotzdem stellen die Entwickler bereits stabile Vorabversionen über das GitHub Portal zur Verfügung. Eine Liste der so bereits erschienen Versionen ist wie folgt:

appserver.io Beta Bearbeiten

Version Veröffentlichung
Ältere Version; nicht mehr unterstützt: 0.5.7 10. October 2013
Ältere Version; nicht mehr unterstützt: 0.5.8 5. February 2014
Ältere Version; nicht mehr unterstützt: 0.5.9 13. February 2014
Ältere Version; nicht mehr unterstützt: 0.6.0 9. May 2014
Ältere Version; nicht mehr unterstützt: 0.7.0 14. July 2014
Ältere Version; nicht mehr unterstützt: 0.8.0 22. July 2014
Ältere Version; nicht mehr unterstützt: 0.9.0 23. July 2014
Ältere Version; nicht mehr unterstützt: 0.10.0 23. October 2014
Ältere Version; nicht mehr unterstützt: 0.11.0 27. November 2014
Aktuelle Version: 1.0.0 19. Januar 2015

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

Erreichte MeilensteineBearbeiten

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
  • Ab Version 0.10.0 laufen Anwendungen in separierten Kontexten, was sie komplett von einander unabhängig macht
  • Ab Version 0.10.0 sind Enterprise Beans nach dem Vorbild von Enterprise Java Beans integriert

Literatur Bearbeiten

  • 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 Bearbeiten

Weblinks Bearbeiten

Einzelnachweise Bearbeiten

  1. ReactPHP Projekt-Website
  2. pthreads Projekt-Homepage
  3. Benjamin Erb, Concurrent Programming for Scalable Web Architectures
  4. OpenHUB appserver.io Projektseite
  5. Abhängigkeiten der appserver.io Laufzeitumgebung
  6. Multithreading in PHP with pthreads


Wikidata-logo Im Wikidata-Objekt Q16787426 befinden sich offene Daten zum Thema und Links zu Wikimedia-Projekten.
Info Sign  Dieser Wikipedia-Artikel wurde gemäß GFDL bzw. CC-by-sa mit allen Versionen importiert.

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.