Backend-lose JavaScript-Apps und JavaScript-App-Backends
Kommentare

Im Gespräch mit Kore Nordmann (Berater bei Qafoo) bekommen wir einen Einblick in künftige JavaScript-Architekturen. Durch seine persönliche Mitarbeit an der serverlosen JavaScript-App-Plattform Hood.ie

Im Gespräch mit Kore Nordmann (Berater bei Qafoo) bekommen wir einen Einblick in künftige JavaScript-Architekturen. Durch seine persönliche Mitarbeit an der serverlosen JavaScript-App-Plattform Hood.ie hat er reichlich Erfahrung aus erster Hand dazu zu liefern, wie clientseitige Kommunikation umgesetzt und gewartet wird. Zusätzlich hat er sich mit unterschiedlichen Backend-Lösungen befasst, die er uns kurz vorstellt.

PHP Magazin: Wie ist Euer Hood.ie-Projekt seit unserem letzten Gespräch vorangekommen? Was waren große Meilensteine, was sind die nächsten Ziele?

Kore Nordmann: Hood.ie ist weiterhin in einer experimentellen Phase, in der neue APIs ausprobiert werden und stabilisiert werden. Dazu werden von den Autoren selbst und von anderen Projekte mit Hoodie umgesetzt, um sicherzustellen, dass die APIs den Anforderungen realer Applikationen genügen. Ein wichtiger aktueller Punkt ist sicher die Weiterentwicklung des serverseitigen Modul-Systems, mit dem es einfach sein soll, auch auf Serverseite eigene Module umzusetzen, die externe Schnittstellen anbinden. Das fängt beim Verschicken von E-Mails an und hört bei der Integration von Payment-Dienstleistern sicher nicht auf.

PHP Magazin: Hood.ie funktioniert auch ohne Backend. Heißt das, dass wir bald keine Server mehr brauchen? Oder mit welcher Vision ist das Projekt entstanden?

Kore Nordmann: Bei der Entwicklung von Hoodie-Applikationen kann man den Anteil des Servers ignorieren. Die Applikationen laufen nachher auch fast ohne Server, doch gebraucht wird der immer noch. Hoodie-Applikationen funktionieren vollständig offline, im Browser des Benutzers. Alle Daten werden im LocalStorage abgelegt und die Interaktion des Benutzers mit der Applikation ist damit nicht durch lange Wartezeiten oder Netzausfälle behindert. Wenn der Benutzer dann jedoch wieder online ist, findet, ohne dass der Benutzer das mitbekommt, eine Synchronisation mit dem Server statt. Dies ist einmal zwingend notwendig, um externe Services, wie das Verschicken von E-Mails, anzubinden. Darüber hinaus ist es natürlich notwendig, wenn der Benutzer die gleiche Applikation im gleichen Status auf verschiedenen Geräten oder in verschiedenen Browsern verwenden will. Diese Synchronisation übernimmt Hoodie, allerdings eben genau ohne dass der Entwickler einer Applikation sich darum kümmern muss.

PHP Magazin: Du hältst auch einen Workshop zu Backends für JavaScript-Applikationen. Was hat sich hier in den letzten Jahren getan?

Kore Nordmann: Durch essentielle Veränderung von JavaScript-Applikationen haben sich auch die Anforderungen an die Server verändert. So wird es heutzutage immer populärer sogenannte Single-Page-Apps zu entwickeln, die sich wie native Applikationen bedienen lassen und keine lästige Zeit mit dem Warten auf Antworten des Servers verbrauchen. Damit verlagert sich die Darstellungslogik vollständig in den Client, und das Backend muss sich nur noch um die Datenhaltung und -verarbeitung kümmern – ein REST- oder RESTful-Service reichen dann meistens aus. Selbst Teile der Geschäftslogik, zum Beispiel die Implementierung von User-Workflows, verlagern sich in den Client. Der Server muss natürlich trotzdem noch die Integrität der Daten verifizieren. Da diese Single-Page-Apps keine klassischen Transaktionen mit dem Backend ausführen sollen, was wieder zu Wartezeiten führen würde, bekommen wir in solchen Szenarien eine doppelte Datenhaltung: Im Client und im Backend. Um Daten in einem solchen Setup konsistent zu halten, gilt es einige Dinge zu bedenken. Das bedeutet insbesondere auch, dass der Griff zum relationalen Datenbankmanagementsystem überdacht werden muss. Die natürlich entstehenden serviceorientierten Architekturen erlauben auf der anderen Seite allerdings oft eine einfacherere anschließende Skalierung der Applikation.

PHP Magazin: Welche Server gibt es für den Enterprise-Bereich, mit denen man das richtige Backend für die App zu gestalten kann?

Kore Nordmann: Die Kriterien für die Auswahl des Backends verändern sich, so ist die Bereitstellung von Web-Service-Schnittstellen, wie oben erwähnt, der entscheidende Punkt. Das meint insbesondere einfache REST- oder RESTful-Services, die mit JSON antworten. Alles andere ist deutlich komplizierter in aktuelle JavaScript-Frameworks zu integrieren. In der Natur von REST-Services und HTTP liegt die sogenannte Shared-Nothing-Architektur, von Toy T. Fielding in seiner Dissertation zu REST „Stateless-Server“ genannt. Ganz knapp zusammengefasst meint das, dass ein beliebiger Server jede HTTP-Anfrage allein mit den Daten in der Anfrage selbst beantworten können muss – eventuell natürlich unter der Verwendung von Datenbanken oder anderen verteilten Datenhaltungssystemen. Die Konsequenz daraus und der weiteren Eigenschaften von HTTP ist, dass es einfach wird Backends horizontal zu skalieren. Das bedeutet auch, dass man konkrete Server jederzeit transparent austauschen kann und dabei nicht nur zwischen verschiedenen Java-Implementierungen, sondern auch zwischen verschiedenen Technologien einfacher wechseln kann. Die Auswahl der Software im Backend wird damit weniger zu einer technischen, als zu einer organisatorischen Frage: Welche Erfahrungen haben meine Entwickler, welche Technologie lässt sich gut in meine bestehende Infrastruktur integrieren? Dazu kommen dann natürlich noch eventuell applikationsspezifische Entscheidungskriterien.

PHP Magazin: Vielen Dank für das Gespräch!

Aufmacherbild: Media interview von Shutterstock / Urheberrecht: wellphoto


JavaScript DaysWer mehr über JavaScript-Entwicklung und damit verbundene Trends erfahren möchte, der könnte sich eventuell für die JavaScript Days interessieren. Der Veranstalter „Entwickler Akademie“ verspricht 18 topaktuelle JavaScript-Workshops zu HTML5 und JavaScript APIs; Sencha Touch, Functions und Scopes, JavaScript Project Tools, Node.js, Canvas, Webapplication Architecture, Hood.ie, Three.js, Test-Driven-Development mit JavaScript, AngularJS, JavaScript Security, Responsive Webdesign, Realworld Animation Techniques. Wer sich noch vor dem 30. August anmeldet, kann dank Early-Bird-Tarif 100 Euro sparen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -