UB BRAUNSCHWEIG
Symbolfoto
  • Impressum
  • Startseite
  • allegro-C von A-Z
  • Druckversion


RIA-Systeme - Ein Überblick



RIA
bedeutet Rich Internet Application (Reichhaltige Internetanwendung).
Was genau soll hier "Rich" besagen? Damit ist vor allem ein größerer Reichtum an Funktionen und dynamischen Inhalten gemeint. Eine genauere Definition ist schwierig.
Es handelt sich um einen neuen Megatrend in der Kernzone des Web 2.0. Dazu ein kurzer Rückblick:
  • Bis etwa 1980: DV nur zentral in sog. Rechenzentren, Nutzung über "dumme" Endgeräte (Terminals).
  • 80er Jahre: Dezentralisierung von Rechenleistung und Datenhaltung (der "persönliche Rechner" am Arbeitsplatz).
  • 90er Jahre: Rezentralisierung: Vernetzung der PCs (LAN) ermöglicht lokal-zentrale (verteilte) Datenhaltung und Mehrplatzsysteme.
  • Nach 2000: Globalisierung: Neue globale Dienste dank Internet, zunächst dominieren interaktive Nutzungen per Browser, dabei ist für die Netzdienste der PC wenig mehr als ein Terminal, zugleich aber enorme Steigerung der Leistung am Arbeitsplatz.
  • Ab 2005: Web 2.0. Diffuse Verteilung: Asynchrone Nutzung des Internet nimmt zu, mit tiefergehender Dezentralisierung von Rechenleistung und Datenhaltung: nicht entweder-oder, sondern Anwendungen können sich bei Bedarf Daten aus dem Netz holen, und das nicht nur jeweils von einer bestimmten Adresse.
    Die Netz-Infrastruktur führt und hält alles zusammen. Stichwort "Mashup". Hier ordnet sich das RIA-Konzept ein.

Einige Merkmale von RIAs
Nicht alle diese Merkmale treten bei jeder RIA auf:
  • In jedem Fall handelt es sich um eine Client-Server-Anwendung, jedoch evtl. mehr als ein Server im Spiel
  • Eine RIA arbeitet nicht mit Seitenkonzept wie HTML (wo jeder Klick die gesamte Anzeige neu aufbaut),
  • ist auf jeder Plattform (falls browserbasiert: in jedem Browser) nutzbar, ohne sichtbare Unterschiede.
  • Kontrollelemente wie bei Desktop-Anwendungen (Menüs, Tree views u.a.)
  • Mehr Tastaturbedienung möglich als bei Webanwendungen, oft auch drag&drop
  • Client übernimmt einen größeren Teil der Rechenleistung, nicht nur das Display, und fordert nur die wirklich benötigten Daten an,
  • dadurch Entlastung von Server und Netz
  • selbständige (asynchrone) Kommunikation mit dem Server per HTTP
  • REST-Architektur: "zustandslose" Kommunikation (d.h. keine "Sitzung", keine "Cookies", nur HTTP als Protokoll)
  • Auf Serverseite i.a. jede Skriptsprache verwendbar. Z.B. Kommunikation mit einer allegro-Datenbank über PHP und avanti
  • Anwendung kann offline arbeiten, falls keine Daten vom Server gebraucht werden
  • Die gewohnten Browserfunktionen sind teilweise leider nicht nutzbar, vor allem der Back-Button!
  • Lesender und schreibender (!) Zugriff auf das lokale Dateisystem kann u.U. ermöglicht werden, d.h. lokale Datenhaltung (dann nicht browserbasiert)

Mögliche Problempunkte
  • Systemvoraussetzungen (Betriebssystem, Browser(version), Laufzeitumgebung, Plugins)
  • Barrierefreiheit (accessibility), d.h. alle Funktionen über lesbare Texte zugänglich?
  • Gezielte ("tiefe") Verlinkung von außen möglich, z.B. auf einzelne Datensätze, Ergebnismengen, Registerstellen?

Die meistverbreiteten Technologien

Das erste Beispiel waren die Java Applets, die sich aber nicht überzeugend durchgesetzt haben (s.u. Nr. 6). Ein berühmtes RIA ist Google Earth, das man mittels eines API (Application Programmer Interface) ja auch in eigene Webseiten einbinden kann und das den Umgang mit Geodaten revolutioniert hat.

Derzeit gibt es mindestens 7 Systeme für das Entwickeln von RIAs, die hier kurz vorgestellt werden. Die Reihenfolge ist keine Wertung.
Für die ersten zwei gibt es allegro-Anwendungen (Okt. 2009).


1. AJAX  http://www.allegro-c.de/doku/phpac/ajaxt.htm   Beispiel: Gmail
Architektur: reine HTML-Technologie, kein Plugin, daher in jedem Browser sofort lauffähig
Sprache: JavaScript und CSS für den Browser (Unterschiede zw. den Browsern!), beliebige Skriptsprache auf Serverseite
Entwicklungstool: grundsätzlich keins erforderlich aber es gibt diverse kostenlose Frameworks wie jQuery mit Erweiterung jQuery UI, dojo, scriptaculous, DWR (auch für Serverseite!) und http://www.ajax.org/#docs (Ajax.org platform reference guide).

allegro-Anwendung: PHPAC für allegro nutzt AJAX-Technik, z.B. auch für Vormerkung, Verlängerung, Nutzerkonto. Leicht ausbaufähig.
Zukunft: Mit HTML5 könnte AJAX neuen und starken Auftrieb erhalten, aber noch sind (2010) die gängigen Browser nicht zu voller Unterstützung von HTML5 in der Lage. Gute Kenntnis von JavaScript bleibt wichtig.

2. Adobe Flex 3   http://www.adobe.com/products/flex   Beispiele: PhotoShop.com und flex.org/showcase_page
Architektur: Anwendung ist ein .SWF-Programm, das den Flash-Player benötigt (angeblich auf 98% der PCs weltweit vorhanden)
Sprache: MXML für den visuellen Teil, ActionScript (ähnlich JavaScript) für die Logik. Serverseitig: Jede Skriptsprache.
Entwicklungstools: a) kostenloses Flex SDK 3.4 mit Compiler, b) kostenpflichtiger Flex Builder (Eclipse), c) AIR SDK (kostenlos) erzeugt aus einem .SWF-Programm eine echte Desktop-Anwendung mit lokaler Datenhaltung
Doku: http://www.adobe.com/support/documentation/en/flex/ oder http://www.adobe.com/devnet/flex/,
  sehr zu empfehlen auch Tour de Flex
allegro-Anwendung:  a30  [kann für viele Aufgaben auf JavaScript, PHP und HTML ganz verzichten]
Zukunft: Apple versucht mit iPhone und iPad massiv - Flash wird davon ferngehalten - Adobe aus dem Geschäft zu drängen.

3. Microsoft Silverlight 2  (Version 1 von 2006 ist wenig mächtig und veraltet)  Beispiele: Silverlight Showcase  
     http://www.microsoft.com/germany/net/silverlight/default.aspx
    Moonlight: OpenSource-Version von Novell, nur für Linux (von Microsoft unterstützt)
Architektur: Presentation Framework (user interface) und .NET-Framework (API Services für Webanwendungen)
Sprache: XAML (eXtensible Application Marcup Language), deklarativ, XML-ähnlich, zur Definition von Oberflächenstrukturen bis hin zu Animationen. Clientseitig ansonsten jede von .NET unterstützte Sprache.
Entwicklungstool: Expression Blend (visueller Teil) und Visual Studio (Logik) von Microsoft
Doku: http://www.silverlight.net/getstarted/  und  Huber: Silverlight4, Galileo Press 2010, ISBN 978-3-8362-1413-1

4. Google Gears   http://gears.google.com   Beispiel: Google Reader (Offline Nachrichten und Blogs lesen)
http://www.adobe.com/devnet/flex/tourdeflex/web/Architektur:
ein Plugin, sehr leicht zu installieren, beruht auf dem Ajax-Konzept, aber erweitert, so daß auch Offline-Ausführung möglich. Lokale relationale Datenbasis SQLite.  Konzept für Data Layer und Synchronisierung mit Serverdaten. OpenSource unter BSD

Sprache: Nur JavaScript, HTML und CSS
Entwicklungstool: alles, was für JavaScript nutzbar ist
Doku: http://code.google.com/intl/de-DE/apis/gears/

5. OpenLaszlo    http://www.openlaszlo.org Beispiele:  Fnac (Einkaufswagen, frz. Buchhandel); LaszloWebtop  [kostenpflichtig]
Architektur:
DHTML, erfordert Flash 
Sprache: LZX (XML-basiert für Oberfläche mit JavaScript für Prozeduren)
Entwicklungstool: ein Generator, der auf Java basiert und in einem J2EE Servlet Container ausgeführt wird, um Flash zu erzeugen
http://ftp.allegro-c.de/pub/DEMO-Version/demo-all.exeDoku: http://www.openlaszlo.org/documentation

6. JavaFX   http://javafx.com  und  http://www.sun.com/software/javafx  Beispiele: JavaFX Samples
Architektur:
Clientseitig Java Virtual Machine erforderlich, ansonsten OpenSource

Sprache: JavaFX Script, ein vereinfachtes Java. Serverseitig vorzugsweise Java.
Entwicklungstool: NetBeans IDE oder Eclipse
Doku: http://javafx.com/learn/

7. Curl 7 : "The Enterprise RIA Platform"  http://curl.com   Beispiele:  Demos
Architektur:
erfordert Laufzeitumgebung Curl RTE. Ein JIT Compiler übersetzt den Quellcode. Mächtige Graphikfunktionen, unterstützt auch die Datenhaltung im Client
.
Sprache: Curl
Entwicklungstool: Curl IDE mit Visual Layout Editor
Doku: http://developers.curl.com/userdocs/CurlDocs.htm   /   Whitepaper

Und außer Konkurrenz, weil nicht plattformunabhängig:

8. a99 : Das Hauptprogramm des Systems allegro-C  
Architektur:
Mit der Skriptsprache FLEX und dem Konzept aiaqs kann man aus dem Programm a99 heraus beliebige Zugriffe auf Serverdaten überall im Internet einrichten: eine URL wird wie eine Datei geöffnet und die Daten daraus mit FLEX gelesen und ausgewertet.
Aber nicht nur HTTP kann man nutzen, sondern auch Z39.50 zum Abruf von Datensätzen aus Katalogdatenbanken.
a99 ist allerdings nicht browserbasiert, sondern ein Desktop-Programm, das lokal installiert werden muß.
Die Demo-Version, die für diesen Zweck reicht, ist kostenlos verfügbar und schnell zu installieren auf jedem Windows-System, nicht jedoch auf anderen Plattformen.
Sprache: FLEX  (nicht zu verwechseln mit Adobe Flex, s.o. 2.)



Literatur  zu RIA
Pfeil, Christian: Adobe AIR : RIAs für den Desktop entwickeln. - Addison-Wesley, 2009.
ISBN 978-3-8273-2737-6


Engineering Web Applications / Sven Casteleyn u.a. - Springer, 2009.
ISBN: 978-3-540-92200-1

Literatur zu Adobe Flex

Die Dokumentation zum Programmiersystem Flex3 von Adobe ist umfangreich.
Wer sich ein wenig kundig machen will, kann folgende Adressen aufsuchen,
die auf verschiedene Weise interaktiv ein e-Learning ermöglichen:


Tour de Flex
http://www.adobe.com/devnet/flex/tourdeflex/
 (Download als AIR zur lokalen Verwendung ohne Browser)

Learn Flex
http://www.adobe.com/devnet/flex/learn/learningpath.html#type=role&role=programmer

Flex Help
http://livedocs.adobe.com/flex/3/html/
http://www.libraryjournal.com/article/CA434443.html

Flex 3.3 Developer Guide   1328 Seiten!
http://livedocs.adobe.com/flex/3/devguide_flex3.pdf

Flex 3.3 Language Reference : Dokumentation aller Sprachelemente
http://livedocs.adobe.com/flex/3/langref/

Style Explorer Flex3 : Interaktiv alle Oberflächenelemente ausprobieren und variieren
http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html#


Natürlich gibt es auch Bücher. Das Verständnis wird aber, wie bei jedem Programmiersystem, am besten durch eigenes Ausprobieren beschleunigt.
In fast jedem der Bücher wurde etwas Brauchbares gefunden, aber nichts davon steht in allen Büchern oder wäre überall leicht zu finden oder zu verstehen.
Das ausführlichste ist wohl der "Developer Guide", siehe oben, und man wird ihn nach einiger Einarbeitung bevorzugen und kaum noch anderes brauchen.  :


Kazoun, Chafic:
Programming Flex 3 : [the comprehensive guide to creating rich Internet
applications with Adobe Flex] : Chafic Kazoun and Joey Lott. -
  Beijing [u.a.]: O'Reilly, 2008. - XX, 636 S. : ill ;  24cm
(Adobe developer library)
ISBN 978-0-596-51621-5

Adobe Flex 3 : das offizielle Trainingsbuch : Jeff Tapper u.a. -
  München [u.a.]: Addison-Wesley, 2008. - XXIX, 719 S. : Ill., graph.
Darst ;  25 cm & 1 CD-ROM
ISBN 978-3-8273-2724-6

Originaltitel: Adobe Flex 3, training from the source <dt.>

Pfeil, Christian:
Adobe AIR : RIAs für den Desktop entwickeln. Know-how für HTML/Ajax- und
Flash/Flex-Entwickler. Mit Technologie-Überblick.
  München : Adison-Wesley, 2009. - 354 S.
ISBN 978-3-8273-2737-6

Balderson, Joseph, et. al.
Professional Adobe Flex 3.
  Indianapolis : Wiley, 2009. - 1422 S.
ISBN 978-0-470-22364-2

Gorton, Benjamin:
AIR bible : [blur the line between the Web and the desktop ; create AIR
applications with Flex and Flash ; build functional applications in the
simplest way possible].
  Indianapolis : Wiley, 2008. - 454 S.
ISBN 978-0-470-28468-1

Reinhardt, Gerald:
Praxiswissen Flex 3 : [moderne Rich-Internet-Anwendungen entwickeln mit
Flex 3 ;  behandelt alle Schritte von der ersten MXML-Datei bis hin zum
Debugging ;  mit vielen Beispielen und praktischen Übungen] : Gerald
Reinhardt.
  Beijing [u.a.]: O'Reilly, 2009. - XV, 445 S. : Ill., graph. Darst
ISBN 978-3-89721-860-4

Widjaja, Simon:
Rich Internet Applications mit Adobe Flex 3 : [MXML, Actionscript, CSS -
Komponenten und Module - AMFPHP und BLAZEDS - CAIRNGORM - ADOBE Air
  München: Hanser, 2008. - XVI, 472 S. : Ill
ISBN 978-3-446-41366-5

Rüttger , Michael:
Adobe Flex 3 : [alle Standard-UI-Komponenten und Interaktivität ;
Zusammenspiel von Flex, MXML und ActionScript 3.0, Beispiele für Adobe
Air;  Fehlersuche und Debugging] : Michael Rüttger.
  Heidelberg [u.a.]: mitp, 2009. - 559 S. : Ill ;  24 cm & 1 CD-ROM
ISBN 978-3-8266-5943-0

Waldminghaus, Petra:
Adobe Flex 3 : [rich internet applications erstellen ;  Grundlagen,
Werkzeuge, Frontend-Entwicklung ;  MXML und ActionScript verstehen und
anwenden ;  multimediale Inhalte, Datenkommunikation, Chartgenerierung
u.v.m] : Petra Waldminghaus. - 1. Aufl.
  Bonn: Galileo Press, 2009. - 504 S. : graph. Darst & 1 DVD
ISBN 978-3-8362-1117-8

McCune, Doug:
Adobe Flex 3.0 for dummies : by Doug McCune, Deepa Submaraniam. -
  Hoboken, N.J.: Wiley, 2008. - XVI, 416 S. : Ill
ISBN 978-0-470-27792-8

Weschkalnies, Nick
Adobe Flash CS4 : das umfassende Handbuch ; [inklusive Bone-Werkzeug und 3D-Funktionen].
  Bonn : Galileo, 2009. - 844 S.
ISBN 978-3-8362-1256-4

Moock, Colin
Essential ActionScript 3.0 : ... from the ground up.
  Köln : O'Reilly, 2007. - 909 S.
ISBN 978-0-596-52694-8
(Gründliche Einführung in ActionScript, aber ohne MXML, dazu gibt es das Buch von C. Kazoun, s.o.)





[i] zuletzt aktualisiert: 26.04.2011
Email: ub@tu-bs.de