Wandel der Webarchitekturen

Christoph Müller

von Christoph Müller am 14.03.2019

2 Minuten Lesezeit

Das Web 1.0, die erste Version des heutigen Internets, lieferte weitestgehend statische Webseiten und Inhalte aus, die einmalig konzipiert und später (regelmäßig) aktualisiert wurden. Die Grundidee war die Bereitstellung von Information von wenigen Anbietern für viele Nutzer, die diese Inhalte in erster Linie empfingen und konsumierten. Auf jede Benutzerinteraktion antwortet der Server mit einer neuen Webseite. Dieser Prozess wird als Page Reload bezeichnet. Die gesamte Logik (z.B. Ablaufsteuerung, Zustandssteuerung, usw.) einer Webanwendung wurde ausschließlich auf den Servern ausgeführt, während Browser lediglich als einfaches Darstellungsmedium agierten. Technisch betrachtet handelt es um eine klassische Thin-Client-Architektur. Diese Art der Architektur führt bei komplexen Anwendungen nicht nur technisch zu Schwierigkeiten, sondern schränkt auch die Benutzerfreundlichkeit sehr stark ein. Die Antwortet auf dieses Problem lautet AJAX (Asynchronous JavaScript and XML). AJAX erlaubt es, Benutzerinteraktionen im Hintergrund asynchron auszuführen und Teile der Webseite nach Antwort des Servers zu aktualisieren, ohne diese komplett neu laden zu müssen. Ein Konzept, das als technischer Enabler für das heutige Web 2.0 gilt und aus der modernen Webentwicklung nicht mehr wegzudenken ist. Im Web 2.0 werden Konsumenten selbst zum Anbieter (User-Generated-Content z.B. Blogs, Kommentare, Posts), ohne dass dafür überdurchschnittliche EDV-Kenntnisse erforderlich sind. AJAX führte das Web in Richtung Rich-Client-Architektur.

Wandel zur clientnahen Verteilung: Single Page Applikationen

Die Fortführung von AJAX sind Single Page Applikationen. Ähnlich wie bei AJAX findet die Verarbeitung der Benutzerinteraktion mit clientseitigem JavaScript im Hintergrund und ohne Page Reloads statt. Die gesamte Anwendung wird einmal durch den Webserver ausgeliefert und operiert anschließend eigenständig. Dabei kontaktiert sie dedizierte REST-basierende APIs, um dynamisch Daten nachzuladen, die der Nutzer anfordert. Diese liefern leichtgewichtige Datenformate wieJSON aus, welche keine Darstellungsinformationen (z.B. HTML und CSS) enthalten. Mit bekannten Pattern wie MVC (Model-View-Controller) oder MVVM (Model-View-View-Model) werden die empfangenen Daten (Model) anschließend im Controller verarbeitet und das HTML (View) modifiziert. Single Page Applikationen übernehmen dabei „klassische Aufgaben“, die zuvor vom Server erledigt wurden:

Präsentationsschicht

  • Erzeugung und Interaktion mit der Benutzeroberfläche (Erzeugung von HTML Elementen, DOM Manipulationen, usw.)
  • Steuerung der Benutzerführung & des Präsentationsflusses
  • Interaktion mit dem Fachkonzept (Aufruf weiterer Fachkonzeptdienste)

Anwendungsschicht

  • Zustandsverwaltung (Verwaltung von Sitzungsinformationen)
  • Clientseitige Ausführung von Logik

Kommunikations- und Datenhaltungsschicht

  • Integration von serverseitigen Anwendungsdiensten
  • Verteilte Datenhaltung z.B. für die Sicherstellung von Offlineszenarien (Caching Mechanismen)

Die Eliminierung der Page Reloads führt zu einer schnellen und reaktiven Benutzeroberfläche, ein Verhalten das der Nutzer von nativen Anwendungen gewöhnt ist. Webanwendungen erleben durch das Prinzip der Single Page Applikationen einen entscheidenden Fortschritt mit innovationsähnlichem Charakter. Allerdings handelt es sich um keine Revolution, sondern um eine Evolution: Single Page Applikationen enthalten keine neuartigen Technologien, sondern basieren auf erprobten und etablierten Konzepten und führen diese konsequent weiter.


Christoph Müller
Christoph Müller

Frontend Ninja

Veröffentlicht am 14.03.2019 um 23:00 Uhr