RIAs und ihre Unterschiede


Flattr this
Am Wochenende habe ich mir [Bosch2010] zu Rich Clients durchgelesen. Dieser Artikel hat mich motiviert eine kleine Bestandsaufnahme zum Thema RIA zu verfassen.

Definition

RIA steht für Rich Internet Application. Und bereits hier wird es problematisch, da es keine einheitliche Definition darüber gibt, was unter einer solchen verstanden wird.  Ein guter Einstieg ist wie immer Wikipedia. Was bleibt ist eine Begriffsvielfalt an Wortschöpfungen: Thin Client, Rich Client, Fat Client, Rich Thin Client … Die Historie zu diesem Thema wird sehr gut in [Mueller2009] beschrieben. Im Ergebnis dieser Lektüre bin ich zu dem Schluss gekommen, dass man sich mit seinem Gegenüber (im aktuellen Fall mit dem Leser) vorher über die Definition einigen sollte. Ich persönlich bevorzuge die Definitionen wie sie in [Mueller2008] Verwendung finden.

Danach ist Fat alles was Business Logik auf dem Client implementiert. Hierzu werden auch einfache Validierungen gezählt die sich nicht über reguläre Ausdrücke beschreiben lassen. In [Mueller2008] werden Rich Clients generell in 2 Architekturtypen unterteilt:

  • Generischer Rich Client der  Thin Ansatz
    Gemeint ist ein Client welcher nur das Rendering übernimmt. Früher bei Mainframes waren das mal die Terminals, später war es der Browser. Wichtiges Merkmal: Der Zustand wird vom Server verwaltet.
  • Implementierter Rich Client der Fat Ansatz. Hierunter zählen die früher so typischen Client-Server Systeme. Der Client beinhaltet die gesamte Business Logik und die Daten liegen auf dem Server. Nachteil: Die Business Methoden müssen zusätzlich geschützt werden, da viele Clients direkt darauf zugreifen.

In [Bosch2010] kommt der Autor zu der Erkenntnis, dass sich die Technologien von Webanwendungen und Rich Clients kaum noch unterscheiden und daher eine Unterscheidung über feingranularere Kriterien notwendig wird. Bislang wollte ich dieser Argumentation nicht folgen, da Rich Clients für mich spezielle Webanwendungen darstellten. Unter Beachtung der Aussagen aus [Mueller2008] – als Rich Clients zählen auch typische Client-Server Systeme der 90’er – schließe ich mich nun doch der Meinung des Autors an.

Ausgewählte Frameworks und RIA Technologien

Inzwischen existieren unzählige Frameworks und Technologien zum Thema Rich Client. Hier ist eine kleine aber hoffentlich bekannte Auswahl:

Merkmale der RIA Architekturen

Die einzelnen Kriterien stammen aus [Bosch2010]. Sollten sich in Zukunft weitere ergeben, werde ich diese hier einfügen.

Laufzeitumgebung

Jede RIA Technologie benötigt eine bestimmte Laufzeitumgebung. Hierbei kann man unterscheiden ob diese standardmäßig dem Endbenutzer zur Verfügung steht oder erst installiert werden muß. Ein Browser ist in aller Regel auf Endbenutzer PCs verfügbar. Damit wäre also die Laufzeitumgebung für HTML 5 sofort verfügbar. Andere wie Adobe*AIR, Adobe Flash Player oder Java müssen zunächst installiert werden.

Manche Laufzeitumgebungen lassen sich erweitern. So ist die Java VM über das JNI API generell erweiterbar. Das nutzt beispielsweise Eclipse RCP und muss im Gegenzug auf den Einsatz als Applet verzichten, da Applets eine solche Erweiterung nicht erlaubt ist.

Verteilung

Die einzelnen Technologien lassen sich  auch gut über die Programmverteilung  an den Endbenutzer unterscheiden. So gibt es Technologien wie Webstart die direkt im Browser laufen und bei Bedarf durch 1-Click-Installationen permanent auf dem Client PC bereitgestellt werden können. Andere Technologien müssen vor ihrem Einsatz generell erst installiert werden.

Oberflächen Technologie

Hier gibt es Technologien, welche das Rendering einzelner Oberflächen Elemente direkt auf UI Komponenten des Betriebssystems abbilden – beispielsweise SWT. Andere Technologien versuchen nur wenn absolut notwendig die Oberflächen Elemente auf UI Komponenten des Betriebssystems abzubilden, beispielsweise JavaFX und Adobe AIR. Die Elemente welche nicht über das Betriebssystem gerendert werden, sind von der Laufzeitumgebung selbst zu rendern.

Deklarative Oberflächendefinition

Moderne Technolgien ermöglichen eine deklarative Beschreibung der Oberflächen, beispielsweise JavaFX, GUI4J, Thinlet*classic u.s.w. Eine deklarative Oberflächenbeschreibung bringt den Vorteil, dass sich die Oberfläche deutlich schneller beschreiben und daraus erste Prototypen entwickeln lassen. Auch die Erstellung von Design Werkzeugen wird dadurch erleichtert.

Binding

Als Binding bezeichnet der Autor in [Bosch2010] das Binden von Oberflächen Elementen an ein separates Modell welches den Zustand und das Verhalten der Oberfläche repräsentiert. Er verweist dabei auf das Presentation Model Pattern. Dies scheint etwas anders zu funktionieren als das klassische Model-View-Controler Pattern. Auch bei den Thinlet*classic und GUI4J wurde bereits ein Binding verwendet.

Animationen

Moderne Client Oberflächen verfügen teilweise über eingebettete Animationen. Diese werden durch Sprachen wie JavaFX und Flex bereits unterstützt. Auch diese Unterstützung kann als Kriterium benutzt werden. Zukünftig wird wohl die Art der Unterstützung mehr in den Vordergrund treten. Außerdem erwarte ich hier noch weitere Kriterien auf Grund der Tatatsache, dass sich die Anwendungen immer mehr auf die Verwendung von Hypermedien stützen (Video, Audio, …).

Weitere Merkmale der RIA Architekturen

Hier folgen Kriterien welche ich persönlich noch für wichtig halte, die aber nicht in [Bosch2010] ausgewertet wurden.

Protokoll

Ein wesentlicher Teil einer RIA Architektur bilden die Protokolle welche zur Kommunikation zwischen Client und Server verwendet werden. Von ihrem Entwurf hängt es wesentlich ab wann und wie oft ein Roundtripp zum Server notwendig wird. So verwendet Canoo beispielsweise das Half Object plus Protocol (HOPP) Pattern.

Quellen

[Schenkel2006] Schenkel, Thorsten: Teile und Herrsche – Smart Clients Teil 3 In: Java Magazin , Nr. 10 (2006) .

[Mueller2008] Müller, Björn: Wie rich darf’s denn sein? In: Java Magazin , Vol. 12 (2008) , S. 38 – 42 .

[Mueller2009] Müller, Florian: Kolumne: Tour de GUI In: Java Magazin , Vol. 7 (2009) , S. 46 .

[Bosch2010] Bosch, Tobias: Rich Clients – In oder out? In: Java Spektrum , Nr. 6 (2010) .

Post a comment or leave a trackback: Trackback URL.

Kommentare

  • JayJay  On 27. Juli 2015 at 15:18

    Supi, also jetzt Hallo!
    Gute Idee Dein „Review“, auch gut argumentiert! Und die Terminologie und Technologie ist echt nicht gerade sauber sortiert. Eine Anmerkung: Du schreibst in der Überschrift von RIA und zählst dann „kloeine Auswahl Rich Clients“ auf, das klingt wieder etwas verwirrend. Tatsächlich zählst Du in der Tat RIA-Ansätze auf (soweit ich diese kenne). RCP wiederrum würde ich rausnehmen, da es definitv ‚fat‘ ist (auch wenn es ‚rich‘ heißt, was es auch sein kann, daher oft auch Rich Fat client genannt) und sich damit zumindest von den anderen abgrenzt (Flex/Silverlight/FX etc.)

    Grüße
    JayJay

    • FunThomas424242  On 29. Juli 2015 at 23:33

      Vielen Dank JayJay für Deinen Kommentar und die Hinweise. So wie ich wieder mehr Zeit finde werde ich prüfen was zu überarbeiten ist.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: