Samstag, 11. Februar 2012


Interview

Freitag, 15. Dezember 2006 | Interview

Flex & LiveCycle – Im Gespräch mit Flex-Spezialist Christoph Rooms

(Link zum Artikel: http://www.entwickler-magazin.de/cod//033191)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Christoph Rooms

Interview mit Christoph Rooms, Adobe Product Specialist für die Flex and LiveCycle Platform

Herr Rooms, Sie waren im J2EE-Umfeld tätig, bis Sie 2002 bei Adobe als Product Specialist für die Flex and LiveCycle-Platform anfingen. Was hat sich für Sie in Ihrem Arbeitsumfeld seit Ihrer Tätigkeit bei Adobe geändert und wie würden Sie Ihren Arbeitgeber beschreiben?
Christoph Rooms: Vor meinem Einstieg bei Adobe habe ich mich intensiv mit der J2EE-Plattform beschäftigt. Es ist eine durchaus leistungsfähige Plattform, um Unternehmensanwendungen zu entwickeln. Die Möglichkeiten Benutzeroberflächen zu programmieren, reichten mir jedoch nicht aus. Nach meinem Start bei Adobe im Jahr 2002 wurde mir schnell klar, dass Adobe die J2EE-Plattform komplementär ergänzen kann, durch leistungsstarke Werkzeuge für die Gestaltung von Benutzeroberflächen. Mit PDF und Adobe LiveCycle stand mir eine Lösung für Formulare zur Verfügung, die den Anwendern die Offline-Arbeit erlaubt. Flex stellt dabei die Rich-Internet-Applikation (RIA) zusätzlich zur J2EE-Plattform zur Verfügung. Ich finde es großartig, dass Adobe J2EE-Entwicklern Werkzeuge zum Erstellen von RIAs zur Verfügung stellt, die es so in J2EE nicht gegeben hat. Wichtig erscheint mir in diesem Zusammenhang zu betonen, dass sich Adobe nicht nur mit J2EE beschäftigt, sondern sich auch in andere Entwicklungsplattformen wie PHP, .NET und weitere integrieren lässt.

Was sind für Sie aktuell die spannendsten Entwicklungen bei Adobe und welche beeindruckt Sie am meisten?
Christoph Rooms: Eine der spannendsten Entwicklungen bei Adobe in diesem Jahr ist sicherlich der Start der neuen Adobe-Flex-2 Plattform. Außerdem ist unser Apollo-Projekt sehr vielversprechend. Apollo ist der Codename für eine plattformübergreifende Laufzeitumgebung (Runtime). Sie erlaubt es Entwicklern, ihre vorhandenen Talente im Bereich Web-Entwicklung (Flash, Flex, HTML, JavaScript, AJAX) einzusetzen, um RIA für den Desktop zu programmieren und dort auch direkt einzusetzen.

Flex soll die Entwicklung von Rich Internet Applications weiter vorantreiben – können Sie erläutern, weshalb Anwender eher auf Flex, statt beispielsweise auf reine AJAX-Entwicklungen zurückgreifen sollten?
Christoph Room: Vielleicht sollte ich zuerst betonen, dass Adobe nichts gegen AJAX hat, wir mögen es sehr. Adobe betreibt eine Reihe von Projekten, die die AJAX-Community unterstützen. Unser Spry Framework ist beispielsweise eine Sammlung von JavaScript-Bibliotheken, die Webentwicklern dabei helfen, reichhaltigere Benutzererlebnisse zu schaffen. In den Adobe Labs haben wir weitere Informationen zum Spry Framework bereitgestellt. (labs.adobe.com/technologies/spry/)

Um auf Ihre Frage zurückzukommen, wann sollten Anwender auf Flex zurückgreifen? Flex besitzt eine Reihe von einzigartigen Eigenschaften, die einen erheblichen Unterschied machen: Der erste Unterschied ist Ausdrucksstärke. Eine Funktion, die Flex in Bezug auf Ausdrucksstärke heraushebt, ist die Verfügbarkeit von Vektorgrafiken. Vektorgrafiken, Linien, Formen und Abbildungen können mit geometrischen Formen anstelle von Bitmaps dargestellt werden. Mit Flex haben Sie vollen Zugriff auf das API für Vektorgrafiken. Allerdings greifen viele ganz einfach auf die im Flex Framework vorhandenen Komponenten zurück, die schon einen intensiven Gebrauch von Vektorgrafiken machen. Ein einfaches Beispiel für den Einsatz von Vektorgrafiken ist das Flickr Roulette von Ely Greenfield. Es lässt das entsprechende Element in der Benutzeroberfläche wie ein richtiges Objekt aussehen: (bridge.quietlyscheming.com/flickr/ajax). Bei diesem Beispiel handelt es sich um ein "Proof of concept", welches das Potenzial deutlich macht. Vektorgrafiken sind in einer großen Bandbreite von Anwendungen hilfreich. Beispielsweise in einem visuellen Dashboard. Hier ermöglichen es Vektorgrafiken, Teile von Diagrammen neu zu zeichnen oder im Client zu animieren, sodass der Nutzer Trends und Veränderungen leichter erkennen kann. Ein gutes Beispiel für solche Diagramm-Komponenten ist hier zu sehen: examples.adobe.com/flex2/inproduct/sdk/dashboard/dashboard.html. Stellen Sie sich das "Erlebnis" für den Anwender vor, wenn jeder Klick oder jeder neue Befehl dazu führt, dass das Diagramm auf dem Server neu erzeugt und wieder zurück an den Client übertragen werden muss. Vektorgrafiken ermöglichen sanfte und animierte Übergänge. Wie gesagt, dazu muss man sich nicht in voller Tiefe mit einem Zeichnungs-API auseinandersetzen, die entsprechenden "behaviours" sind in den Charting-Komponenten enthalten.

Der zweite Unterschied ist die Performance. Langsame Geschwindigkeit und das Fehlen eines Just-in-Time-Kompilers (JIT) werden oft als die Hauptmängel von Webbrowsern bezeichnet. Dies ist ein weiterer Bereich in dem Flex und die Flash Virtual Machine den entscheidenden Unterschied erzielen können. Flex-Anwendungen werden als Bytecode an den Client übertragen, der von der Flash Virtual Machine mit Hilfe eines JIT-Kompilers ausgeführt wird. Das kann zu einem deutlichen Unterschied führen, wenn es darum geht, Code abzuarbeiten und eine Performance zu erreichen, die mit der von Desktop-Anwendungen vergleichbar ist.

Geschwindigkeit ist sowohl für Konsumentenapplikationen als auch für Geschäftsanwendungen von entscheidender Bedeutung. In einer Endkundenanwendung hilft sie, ein flüssiges Benutzererlebnis zu schaffen. In Geschäftsanwendungen trägt sie beispielsweise dazu bei, dass große Datenmengen wie von einer Desktop-Anwendung bewältigt werden, während die Vorteile des Web-Deployment-Modells erhalten bleiben. Der dritte Unterschied beim Einsatz von Flex wird deutlich, wenn es darum geht, Rich Media wie Video in die RIA zu integrieren. Video und Audio werden in zunehmendem Maße Schlüsselkomponenten in vielen Anwendungen. Video im Web ist natürlich nicht wirklich neu. Dennoch ist das Nutzererlebnis häufig alles andere als optimal. Ist die falsche Version des Media Players installiert, muss zunächst die richtige Version geladen werden, der Download von großen Dateien wird unterbrochen und es gibt nur wenige Funktionen, um mit dem Video zu interagieren. In der Regel beschränken sie sich auf Play, Pause, Vor- und Zurückspulen. Ebenso sind die Interaktionen zwischen Video und dem Rest der Anwendung limitiert. Der Flash Player beinhaltet Funktionalitäten für Multimedia-Inhalte und beherrscht Streaming. Da er auf rund 98 Prozent aller mit dem Internet verbundenen PCs verfügbar ist, ist er der im Web am weitesten verbreitete Media Player. Gerade deshalb setzen auch Anbieter wie Google Video und YouTube auf dieses Format.

Mit Flex lässt sich aus Video wesentlich mehr herausholen als nur das bekannte Streaming, dem wir derzeit noch sehr häufig im Web begegnen. Video lässt sich eng in den Rest der Anwendung integrieren. Das Video kann während des Abspielens "Events" auslösen und das Verhalten anderer Komponenten der Benutzerschnittstelle beeinflussen. Diese Fähigkeiten ermöglichen die Gestaltung von neuen, innovativen Anwendungen mit einem Höchstmaß an Interaktivität. Beispielsweise interaktive Video-Tutorials, interaktive "Frag den Experten"-Serien, Media-Portale, Videokonferenzen, die in einen Kontext eingebettet sind, Videochats etc.

Ein weiteres Problem beim Browser ist das Anfrage/Antwort-Modell. Das Anfrage/Antwort-Verhalten des Browsers eignet sich nicht gut, um von Serverprozessen oder von anderen Clients initiierte Events zu verfolgen, auch was das Push-Modell angeht. Der Flash Player unterstützt Binary-Sockets, sodass die bidirektionale Kommunikation mit jedem Server Socket möglich ist. Das heißt, wenn ein bestimmter Event auf dem Server stattfindet, kann der Server die entsprechenden Daten zum Client schieben (push), sodass immer die aktuellen Daten gezeigt werden können. Realisiert man etwas Vergleichbares auf reiner AJAX-Basis, muss der Browser (Client) immer auf dem Server nachfragen, ob neue Daten verfügbar sind.

Die Flex-Nachrichtendienste (Message Services) sitzen oben auf der Infrastruktur und stellen eine komplette Messaging-Lösung (publish/subscribe) zur Verfügung. So können Nachrichten zwischen Thin Clients und Server in Echtzeit ausgetauscht werden. Die Flex-Nachrichtendienste lassen sich darüber hinaus in Unternehmenslösungen wie JMS-basierte Systeme integrieren.

Die Nachrichten- und Echtzeitinfrastruktur von Flex ermöglicht es, kollaborative und Daten-Push-Anwendungen skalierbar und zuverlässig zu erstellen und gleichzeitig das leichte Web-Deployment-Modell beizubehalten. Ein weiterer Unterschied ist die Verbreitung und Akzeptanz des Flash Players. Wenn Sie RIAs programmieren, möchten Sie Abhängigkeiten von bestimmten Browsern und Browserversionen vermeiden. Wie gesagt, der Flash Player ist auf etwa 98 Prozent aller mit dem Internet verbundenen PCs installiert. Wir rechnen damit, dass 80 Prozent der Anwender innerhalb von sechs Monaten auf den neuen Flash Player 9 umsteigen werden (es dauerte ungefähr 51 Monate bis 77 Prozent der Anwender den Internet Explorer in Version 6 einsetzten).

Wenn Sie bereits eine AJAX-Website gebaut haben, bietet sich unsere Flex/AJAX Bridge an (FAbridge). Sie ermöglicht es, existierende AJAX-Umgebungen mit Flex-Funktionalitäten auszustatten. Ein gutes Beispiel ist die Finanzseite von Google. Google verwendet Flex, um die dynamischen Diagramme darzustellen, während der Rest der Seite in AJAX gestaltet ist. Und für Entwickler, die auf freie Werkzeuge schwören, bieten wir das Flex SDK kostenlos an. Sie können also Flex-Anwendungen schreiben, ohne dafür Geld ausgeben zu müssen.

Für viele Flash-Programmierer stellt sich die Frage, wann sie Flex als Technologie einsetzen sollen. Können Sie den Entwicklungsstand beschreiben, an dem man an den Einsatz von Flex statt von Flash denken sollte?
Christoph Rooms: Flex und Flash haben komplementäre Stärken. Flash ist das führende Autorenwerkzeug für Web-Entwickler, Multimedia-Profis und Videoanbieter, die reichhaltige, interaktive Inhalte bereitstellen wollen. Die Flex-2-Anwendungen helfen Applikationsentwicklern, auf die leistungsstarke Flash Runtime zurückzugreifen, um datengetriebene RIAs zu schreiben. Entwickler können natürlich sowohl auf Flex als auch auf Flash zurückgreifen, um reichhaltige, interaktive Elemente in eine strukturierte, Flex-basierte Anwendung zu integrieren.

Können Sie herausragende Beispielapplikationen im Web nennen, die auf Flex-Basis umgesetzt worden sind?
Christoph Rooms:

Ein anderer Punkt: Das Web 2.0 ist in der letzten Zeit ziemlich gehypt worden. Können Sie diese Euphorie nachvollziehen?
Christoph Rooms: Ich verstehe, dass viele Menschen davon begeistert sind. Es ist eine neue Art, Internet-Anwendungen zu erzeugen und gibt den Anwendern mehr Möglichkeiten zur Interaktion. Adobe spricht bereits seit geraumer Zeit von RIAs, insofern betrachten wir die Begeisterung rund um Web 2.0 als Bestätigung dafür, dass wir auf dem richtigen Weg sind.

Welche Rolle spielt Flex (wenn überhaupt) aus Ihrer Sicht bei der Entwicklung des Web 2.0 bzw. welche Vorteile und Möglichkeiten bietet es?
Christoph Room: Die Anwendungen, die Web 2.0 ausmachen, verlagern Prozesse auf den Computer des Anwenders und machen sich die Rechenleistung des Clients zunutze. Wir starten in eine Ära von verteilten Internet-Anwendungen. Diese Anwendungen haben alle Vorteile von Desktop-Anwendungen, während sie sich gleichzeitig das Internet als einfaches Mittel für die Massenverteilung zu eigen machen.

Adobe positioniert den Flash Player und Apollo als zukünftige Standards für die Entwicklung und Verteilung von Web-Applikationen, die in Richtung Desktop-Applikationen gehen. Wenn wir annehmen, dass der Support für die folgenden Formate gewährleistet ist, werden wir sehr beeindruckende Anwendungen zu Gesicht bekommen: MP3, XML, AS3, E4X, Socket, Schriften, Nachrichtendienste, Vektorgrafiken, GIF, JPG, PNG, SWF, ByteArray, FLV, zlib, AMF3, On2, Sorenson, Nellymoser, Dateien hoch laden/Dateien herunter laden, Vollbilddarstellung, Komponenten, RSL, Local Shared Objects, Filter, Animationen, Lese/Schreibzugriff im Dateisystem, Desktop Integration, Shared Object sowie Video-Streaming und Video/Audio Up- und Download. Diese Anwendungen werden reichhaltig sein (Rich) und lassen sich nahtlos über die breite Unterstützung der Flash-Player-Plattform verteilen. Apollo wird es ermöglichen, solche Anwendungen außerhalb des Browsers zu nutzen und dabei die bisher existierenden Browser-Inhalte nahtlos und kompatibel integrieren.

Wenn man sich die hohe Akzeptanz von Mac OS X und die steigende Verbreitung von Linux anschaut, ist es zwingend notwendig, dass Anwendungen plattformübergreifend funktionieren. Mit Apollo wird es das erste binärkompatible Modell zum Deployment von Anwendungen unter Windows, Linux und auf Mac OS X geben. Ja, eine binäre Anwendung wird auf drei Plattformen laufen. Warum sollte sich jemand damit auseinandersetzen, Applikationen mit einer beschränkten Reichweite zu programmieren?

Flex bietet übrigens auch eine intuitive Entwicklungsmöglichkeit mit MXML und einem vollständig ausgebildeten Entwickler-Werkzeug, dem Flex Builder. Und wie bereits gesagt, Flex stellt eine Reihe von einzigartigen Funktionen zur Verfügung, die die Interaktion der Anwender mit Web-Anwendungen maßgeblich verändern können: Darstellungsoptionen und Ausdrucksstärke (Vektorgrafiken), Geschwindigkeit (JIT Kompiler), Echtzeit (Binärsockets und publishing/subscribe Messaging), Rich Media (Video und Audiostreaming), Offline Unterstützung (lokale Speicherung und Desktop Client).

Schauen wir fünf Jahre in die Zukunft: Wie wird sich das Web bis dahin entwickeln, und was erwarten Sie von der Flash-Player-Technologie, auch in Kombination mit Flex?
Christoph Rooms: Ich gehe davon aus, dass Flex in Kombination mit Apollo genau die Dinge liefert, die die Menschen vom Web 2.0 erwarten. Wir können von spannenden Entwicklungen von Flash auf mobilen Geräten ausgehen. RIAs werden nicht nur auf Computern zu sehen sein, sondern in nahezu jedem Gerät, das Sie sich vorstellen können, beispielsweise Mobiltelefone, PDAs, Autos, Fernsehern usw. Sie werden nahezu auf jedem Gerät, auf jeder Plattform, egal ob Sie online oder offline sind, Zugriff auf Rich-Internet-Applikationen haben.

Eine private Frage: Wo sind Sie in fünf Jahren?
Christoph Rooms: Lassen Sie es mich so ausdrücken, in fünf Jahren sehe ich mich selbst dabei, eine riesige Flex-Community zu unterstützen.

Herr Rooms, vielen Dank für das Gespräch!

Das Interview führten Stefan D'Amore und Felix Schrader, Redaktion VISUAL-X.

(fs)

Kommentare

Folgende Links könnten Sie auch interessieren