Braucht man ein Heer an Stylisten, um Curated Shopping anzubieten? Nein, sagt 8select, Software-Pionier in diesem Wachstumsfeld. Mit einer einzigartigen Curated-Shopping-Engine macht 8select den Megatrend Beratung im E-Commerce für jeden Händler möglich. Curated Shopping ist laut Experten der Szene der Trend im eCommerce schlechthin.

Bis zum Relaunch war Magento die von 8select präferierte Lösung und wurde entsprechend den Anforderungen von 8select angepasst. So waren Stylisten in der Lage, die Warenkörbe der Kunden vorzubefüllen und ihnen nur die zu ihrem Geschmack passenden Kategorien und Produkte zu präsentieren.

Nachdem u. a. Lagerhaltung, Bezahlprozess, Rabattsysteme und Checkout über die angeschlossenen Shops zur Verfügung gestellt und nicht selbst benötigt werden, war das Primärziel des Relaunch, den Kunden durch ein möglichst modernes und einfach zu bedienendes User-Interface komfortabel in den für ihn vorselektierten Outfits stöbern zu lassen. Als Outfit bezeichnet wird dabei eine Gruppe aus konfigurierbaren Produkten, welche in unterschiedlichen wiederum konfigurierbaren Layouts dargestellt werden können. Da nur ein geringer Teil des Funktionsumfangs eines Standard Shop-Systems benötigt wird, jedoch viele neu zu entwickelnde Funktionalitäten – wie z. B. die Anbindung des Checkouts an die API anderer Shops erwartet wurden – fiel letztlich die Entscheidung auf eine komplette Neuentwicklung des Systems.


Mehr als drei Jahre Erfahrung im Endkundengeschäft stecken in der von 8select entwickelten Software, um sie jetzt als B2B-Angebot auf den Markt zu bringen. Die Vorteile für Händler, die 8select einsetzt, liegen klar auf der Hand: Keine Entwicklungszeit sowie nahtlose Integration in alle bestehenden Shopsysteme. Selbstverständlich, dass die Software allen Kundenanforderungen genügt: Kompatibilität mit allen Browsern und Mobile Devices ist gegeben. Das umfangreiche Datenhosting wird ebenfalls von 8select übernommen.

Zur Entwicklung des neuen Systems wurden mehrere Optionen in Betracht gezogen. Lediglich PHP war als Skriptsprache gesetzt, da unsere Partneragentur OneDrop Solutions mit dieser Sprache – im Gegensatz zu Ruby, Scala oder Java – auf die größte Anzahl an erfahrenen Entwicklern zurückgreifen kann. 

Im ersten Schritt musste auf Basis von PHP eine Plattform ausgewählt werden, welche horizontal skalierbar, performant, einfach zu verwenden und modern ist. In Betracht kamen deshalb Google AppEngine, appserver.io und performante Frameworks wie Yii2, Laravel, Flow oder Symfony. Nach einer kurzen Übersicht der weiteren Anforderungen konnte eine Cloud-Lösung ausgeschlossen werden, da die meisten Partner ihre APIs IP beschränken und einen Betrieb in Deutschland voraussetzen, um Gewissheit über die Einhaltung geltender Datenschutzrichtlinien zu haben.

Bereits mit Beginn des Projekts war eine standalone AngularJS Web App für das Frontend, die dem Kunden eine optimale UX bei der Verwendung des Frontends gewährleisten sollte, gesetzt. Als API Backend hätte sich nun jedes der genannten Frameworks, ebenso wie appserver.io geeignet. Da beim Einsatz der PHP Frameworks noch zusätzlich ein Webserver sowie eine PHP Laufzeit Umgebung benötigt wurde, welcher die API sehr komplexer Zustände des Kunden abbilden kann und die PHP Frameworks bei jedem Request vollständig lädt, entschied sich unser Partner OneDrop Solutions letztlich für den Einsatz von appserver.io .

Das Ergebnis lässt sich definitiv sehen: So ist die Curated Shopping Software von 8Select mit dem Innovationspreis IT 2016 ausgezeichnet worden. 

Für die Realisierung der PHP basierten API als appserver.io Applikation standen den Entwicklern von OneDrop Solutions die Möglichkeit des Einsatzes von Aspekten (AOP) und die strenge Einhaltung von sogenannten Contracts durch “Design-by-Contract” zur Verfügung. Diese werden über die zum Core von appserver.io gehörende “Doppelgaenger” Bibliothek bereitgestellt und waren eine große Hilfe dabei saubere PHPDoc Annotationen zu schreiben und somit die Autovervollständigung in den IDEs und die anschließende Funktionsfähigkeit des Codes in höherem Maße, als man es bisher gewohnt war, zu gewährleisten.

So wurde die Möglichkeiten von AOP unter anderem genutzt um die Rückgabe der API zu steuern. Egal, ob Objekte, Arrays, etc. – diese wurden durch eine Annotation an den Servlets konfiguriert, wobei sich der JSONResponseAspect um die Serialisierung der Ausgabe in der über die Annotation definierten Rückgabe-Gruppe (JMS) kümmerte. Ebenso wurde die Sicherheit der API über einen die Anfrage umgebenden Aspekt gewährleistet in dem die Session des Nutzers überprüft wird und die angesprochenen Entitäten auf die Zugehörigkeit zu dem aktuellen Nutzer geprüft werden.

appserver.io teilt sich in in 2 Pakete auf, die Runtime und die eigentliche in PHP geschriebene Software. In diesem Zusammenhang ist die Runtime eine PHP-Version, die mit der zusätzlichen Bibliothek pthreads kompiliert wurde, die es überhaupt erst möglich macht in PHP multithreaded zu arbeiten. Die Installation ist dank der vorhandenen Pakete für alle gängigen Linux-Distributionen und OSX unkompliziert. Im laufenden Betrieb zeigt sich, dass PHP mit pthreads stabil betrieben werden kann, was lange Zeit für unmöglich gehalten wurde, da es sich natürlich immer noch um PHP handelt.

Für die dauerhafte Speicherung der Daten wurde auf eine relationale Datenbank gesetzt. Anfangs gab es zwar die Überlegung auch sämtliche Daten direkt in Elasticsearch zu speichern und auf eine relationale Datenbank ganz zu verzichten, da allerdings die Erfahrungen mit ODM bisher nicht sonderlich gut waren, entschloss man sich letztlich doch auf das bewährte ORM von Doctrine zurückzugreifen.

Da Elasticsearch ein Kernbestandteil der Applikation ist, wurde jedoch eine Möglichkeit benötigt auf einfache Art und möglichst konsistent die Daten zu indizieren. Hierbei konnte die “Doctrine Search” Bibliothek erfolgreich evaluiert werden, die es über Annotationen an den Doctrine Entitäten ermöglicht, deren Indizierung in Elasticsearch zu steuern und wenn nötig zusätzliche Eigenschaften zu konfigurieren. Über den regulären Weg der Entity-Lifecycle-Events werden so Änderungen automatisch an Elasticsearch gesendet.


Da Elasticsearch jedoch JSON-Format erwartet gibt es mit “Doctrine Search” mehrere Möglichkeiten die Entitäten als JSON Repräsentation zu erzeugen. Letztlich entschlossen sich die Entwickler für die flexibelste: den JMS (Johannes Schmitt Serializer), welcher auch in Symfony verwendet wird.

Bei appserver.io handelt es sich um den ersten und einzigen echten Application Server für PHP – geschrieben in PHP. Damit wird der Markt der Infrastrukturlösungen, die bislang primär auf Basis der Programmiersprache C entwickelt wurden, um eine neue Option erweitert. Zudem wird PHP-Entwicklern ab sofort die Möglichkeit gegeben zukünftig auch auf einer viel früheren Ebene einzugreifen und ihre Ideen und Vorstellungen zu verwirklichen – ohne dabei neue Programmiersprachen lernen zu müssen.

Aktuell ist PHP mit einem Marktanteil von über 80 % die führende Programmiersprache im Web und die Nachfrage ist ungebrochen. Damit einher bildet das sog. LAMP-Stack (Linux, Apache, mySQL, PHP) zusammen mit 3rd Party Tools das Rückgrat unzähliger Webapplikationen im mittleren Segment. Allerdings werden die Anforderungen immer höher und die Nachfrage nach sog. Enterprise-Lösungen – auch und gerade im PHP-Umfeld – nimmt aufgrund der Verbreitung von PHP massiv zu. Mit bisherigen Technologien waren hier jedoch massive Grenzen gesetzt, wodurch PHP im Vergleich z. B. mit Hochsprachen wie JAVA nicht oder nur sehr eingeschränkt enterprisefähig war. Insbesondere Bereiche wie Wartung, Sicherheit und Skalierbarkeit stellten bislang enorme – zum Teil auch unüberwindbare – Hürden dar.

Mit der Open Source Technologie appserver.io will man genau diesen Umstand aufgreifen und eine extrem leistungsfähige und zukunftssichere Infrastrukturlösung für PHP bereitstellen um damit PHP auf ein neues Level zu heben. Bei der Grundidee zu appserver.io war für die Entwickler JAVA und der dort verfügbare Application Server JBoss mit seinen Möglichkeiten ein Vorbild. Mit appserver.io steht ab sofort eine komplett auf PHP basierende Infrastruktur zur Verfügung, die das „A“ aus dem LAMP-Stack ersetzt und etwaige 3rd Party Infrastrukturtools überflüssig macht.

appserver.io stellt als Basis auch einen extrem leistungsfähigen und stabilen HTTP/1.1 kompatiblen Webserver zur Verfügung, der ebenso komplett in PHP implementiert wurde. Dieser kann als Alternative bzw. Option zu bestehenden Apache- oder nginx-Servern verwendet werden. Die zweite Schicht bilden ein sog. Persistence-Container sowie ein Servlet-Engine. Abgerundet wird das Ganze durch eine Message-Queue sowie einen Timer-Service zur Verfügung stellt. Diese Services, die es zum ersten Mal in der Geschichte von PHP erlauben Objekte persistent im Speicher zu halten, werden ergänzt durch Funktionalitäten wie AOP, Dependency Injection, Design-by-Contract und Annotations. Dadurch kann die Entwicklung von Webapplikationen enorm beschleunigt sowie deren Wartbar-, Wiederverwendbar- und Skalierbarkeit stark verbessert werden.

Da alle genannten Funktionalitäten komplett in PHP implementiert wurden, muss keine andere Programmiersprachen gelernt werden um appserver.io zu erweitern oder an die Anforderung des eigenen Projektes anzupassen. Das vereinfacht zum einen die Einarbeitung deutlich oder lässt diese gar komplett wegfallen. Zum anderen wird das Risiko, das durch mangelndes Know-How für diverse 3rd Party Tools immer besteht, erheblich reduziert.

Nachfolgend ein kompakter Überblick der Dienste und Services, die appserver.io in einem leistungsfähigen Bundle, basierend auf PHP, out-of-the-box bereitstellt:

  • HTTP/1.1 kompatibler Webserver, der Requests sowohl über HTTP als auch HTTPS verarbeiten kann
  • Einfach zu verwendende Rewrite-Engine, die vollständig kompatibel zu den Apache Rewrites ist
  • Persistence-Container, der die Persistierung von Komponenten erlaubt
  • Servlet-Engine für High-Performance Webanwendungen mit Security Framework
  • Message-Queue für die asynchrone Verarbeitung zeitaufwändiger Jobs
  • Timer-Service für die zeitgesteuerte Ausführung von Methoden
  • CRON Service für die zeitgesteuerte Ausführung von externen Tasks


appserver.io wird als echtes Open-Source-Projekt zur Verfügung gestellt. Damit erhoffen wir uns einerseits die nötige Akzeptanz am Markt, andererseits natürlich auch die Möglichkeit eine Community rund um appserver.io aufzubauen, die das Projekt weiterentwickelt.

Mit dem vorgestellten Stable-Release 1.0.0 am 16.02.2015 von appserver.io wurde zudem der bislang häufig bezweifelte Beweis angetreten, dass Anwendungen, die Objekte und Strukturen persistent im Speicher halten, mit der Skriptsprache PHP möglich sind. Dadurch lassen sich ab sofort auch Funktionen umsetzen, die bisher mit PHP für nicht realisierbar gehalten wurden. Für die größte Entwickler-Community der Welt bedeutet das den Anfang einer neuen Ära in der Webentwicklung.

Seit der Veröffentlichung des Releases 1.1.0, das den Namen „Iron Knight“ trägt, arbeitet das appserver.io Core-Team an Version 1.2.0 das neben der Unterstützung von PHP 7 zahlreiche neue Features mitbringen wird. Die Veröffentlichung wird voraussichtlich in Q3 erfolgen.

Die aktuelle appserver-Version kann unter http://appserver.io/get-started/downloads.html heruntergeladen werden.

Ihr Ansprechpartner

Sie haben Fragen zu unserem appserver.io-Projekt?

Für weiterführende Informationen und Interviews stehen wir Ihnen von appserver.io gerne zur Verfügung.

Ihr Ansprechpartner

Tim Wagner CTO