Entlastung für den „Alten“

Vonadmin

Entlastung für den „Alten“

Haben Sie noch einen alten „Host“ im Einsatz? Und laufen da – vielleicht auf virtualisierten Servern – moderne Webanwendungen darauf? Dann sollten Sie den  folgenden Beitrag lesen, denn das kann Ihnen nicht nur Peinlichkeiten ersparen.

Klassische Webanwendungen und der Host

In der Java-Welt hat sich über Jahre ein Standard für Webanwendungen entwickelt, und der heißt JSF (Java Server Faces).  Dabei wird die Oberfläche in HTML-ähnlichen Tags definiert, welche um die Möglichkeit ergänz sind, Java-Code dazwischen auszuführen. Aus diesen Tags erzeugt dann der Server ein vollständiges und korrektes HTML. Die einzelnen Komponenten sind dabei gut gekapselt, sodass sich der Programmierer keine Gedanken um die Bindung der GUI-Komponenten an die Java-Objekte machen muss.

Grundsätzlich ist es eine feine Arbeitsweise, weil man die GUI-Darstellung schön getrennt vom restlichen Business-Code hat und sich da um sehr wenig kümmern muss. Allerdings hat diese Technologie einen entscheidenden Nachteil: Die Komponenten erfordern Server-Leistung, um ein vollständiges HTML zu generieren.

Dies sollte eigentlich kein Problem sein, doch wenn die Ressourcen geteilt werden müssen und der Anwendung nur ein Prozessor zur Verfügung steht, dann kann es eng werden. Zumindest sollten Sie dann Ihre Anwendung möglichst nicht im Fernsehen oder Radio bewerben (glauben Sie mir, Ihr Chef wird dann ordentlichen Stress machen, wenn er in der Hauptnachrichtensendung Ihre Anwendung vorstellt, sie aber nach zwei Minuten schon wegen der hohen Zugriffe außber Betrieb ist).

Moderne Anwendungen entlasten den Host

Meine letzte Anwendung hatte ich – nicht wegen der obigen Erkenntnis, sondern aus diversen anderen Gründen – als GWT-Anwendung konzipiert und ein System überlegt, welches nach dem Laden der Anwendung nur noch Netto-Daten mit dem Server austauscht. Die Kommunikation zwischen Client und Server hatten wir zudem so gestaltet, dass ein temporärer Verbindungsausfall die Anwendung nicht blockieren.

Nachdem meinen Kollegen aus einem anderen Team, die in ihrem Projekt auf JSF setzten, die oben geschilderte Peinlichkeit passiert ist, ließen wir unsere Anwendung mit einem Lasttest absichern. Wir stellten fest, dass unsere Anwendung sehr gut skalierte, was mein Team natürlich sehr freute.

Im folgenden möchte ich kurz durchleuchten, warum wir hier eine so gute Performance erzielen konnten.

  1. Wir transportierten einmalig alle für die Anwendung benötigten Scripts und Arbeitsdaten zum Client. Im Gegensatz dazu muss bei einer JSF-Lösung diese Information bei jedem Zugriff geladen werden oder PRO Session im Speicher des Webservers gehalten werden.
  2. Wir laden jeweils nur die Nutzdaten, die wir für den jeweiligen Schritt benötigen.
  3. Nach dem vollständigen Laden der Anwendung transportieren wir nur noch Nutzdaten zum Client. Bei einer JSF-Lösung werden ganze HTML-Seiten (oder Teile davon) transportiert.
  4. Wir nutzen die CPU des Clients, um HTML-Seitenteile aufzubauen. Diese Arbeitszeit würde in einer JSF-Architektur am Server passieren.
  5. Die Business-Logik wird direkt am Client ausgeführt, während bei JSF die Logik auch am Server ausgeführt werden muss.

Alles in Allem bietet der Einsatz von GWT eine ordentliche Entlastung für unseren alten Server

Über den Autor

admin administrator