Mittwoch, 8. Februar 2012


Kolumne

Dienstag, 7. August 2007 | Kolumne

Naked XML: JavaScript und XML, aber ohne AJAX

(Link zum Artikel: http://www.entwickler.de/jaxenter/kolumnen/037400)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Martin Szugat

AJAX, Asynchronous JavaScript and XML, ist nur eine Möglichkeit und nicht unbedingt die beste, um Rich Internet Applications, RIAs, zu realisieren. AJAX-Anwendungen kämpfen wie alle HTML-basierten Webanwendungen mit einem altbekannten Problem: der berühmt-berüchtigten Browser-Inkompatibilität. Eine einfache Lösung für dieses Problem hat Raju Bitter anzubieten.

NX: Hallo Raju! Du bist Evangelist für OpenLaszlo in Deutschland. Kannst du uns mit wenigen Worten sagen, was OpenLaszlo ist?
RB: OpenLaszlo ist die weltweit einzige Plattform für die Entwicklung von Rich Internet Applications, mit der man gleichzeitig AJAX- und Flash-Anwendungen für den Browser entwickeln kann. Die OpenLaszlo-Plattform wird von der kalifornischen Firma Laszlo Systems entwickelt und unter der IBM Common Public License als Open-Source-Software zur Verfügung gestellt. OpenLaszlo-Anwendungen werden in der OpenLaszlo-spezifischen Programmiersprache LZX geschrieben. LZX basiert auf  W3C-Standards wie XML, XPath und JavaScript, was den Einstieg für DHTML-Entwickler erleichtert. Technisch betrachtet handelt es sich um eine Java-Webanwendung, in der über ein Java-Servlet der LZX-Compiler aufgerufen wird und die in LZX programmierte Anwendung in JavaScript-Code oder Flash-Bytecode umwandelt. Der so generierte Code wird dann im Browser oder auch in Embedded-Systemen ausgeführt.

NX: Woher kommt der Name OpenLaszlo?
RB: „Open“ steht natürlich für Open Source, Laszlo stammt vom Namen der Firma Laszlo Systems, die wiederum nach László Moholy-Nagy, einem ungarischen Maler, Fotografen und Bauhaus-Professor benannt wurde. Genau genommen besaß ein Designer und Mitbegründer von Laszlo Systems eine Katze mit dem Namen Laszlo, die nach László Moholy-Nagy benannt war und den Namen für Laszlo Systems lieferte.

NX: Welche Vorteile bietet OpenLaszlo gegenüber AJAX?
RB: Wenn wir über die existierenden AJAX-Toolkits wie Dojo, Prototype, Scriptaculous sprechen, so handelt es sich dabei um JavaScript-Bibliotheken, mit denen man RIAs entwickeln kann. Die Entwickler von OpenLaszlo hatten bei der Gründung der Firma im Jahr 2000 die Vision, plattformübergreifend RIAs mit variablem Skinning (Anm. d. Red.: „Aussehen“) und anpassbaren Komponenten zu entwickeln. Es werden also niemals die Browser-eigenen Komponenten verwendet, sondern immer die OpenLaszlo-spezifischen. Auch die Animations- und Layoutengine ist im OpenLaszlo-Server enthalten und damit auf verschiedene Runtimes übertragbar. Deshalb ist es möglich, eine einheitliche User-Experience über AJAX, Flash und weitere zukünftige Runtimes Java, für das es schon einen Player gibt, vielleicht Silverlight oder SVG liefern zu können, ohne dass der Entwickler sich mit Cross-Browser-Scripting und zum Beispiel Flash-ActionScript beschäftigt.

NX: Und welche Nachteile hat es?
RB: OpenLaszlo wird in der LZX-Programmiersprache programmiert. Um mit OpenLaszlo AJAX- oder Flash-Anwendungen zu entwickeln, muss man zuerst LZX erlernen. Leider gibt es außer Eclipse-Plug-ins mit Autovervollständigung bis jetzt keine visuellen Composer für OpenLaszlo. Wenn auch die Dokumentation zu OpenLaszlo und LZX gut ist, gibt es erst zwei englischsprachige Bücher zum Thema, und die Integration von OpenLaszlo in Frameworks wie Spring, Ruby on Rails, Grails und PHP Cake oder Symfony ist noch nicht gut dokumentiert.

NX: Welche Rolle spielt XML bei OpenLaszlo?
RB: LZX selbst ist XML, der Datenaustausch zwischen Server und Client ist auf XML ausgerichtet Databinding über XPath-Ausdrücke. Ohne XML wäre OpenLaszlo nicht denkbar, der deklarative Ansatz der Entwicklung von Oberflächen wurde von Adobe Flex und Microsoft mit XAML aufgegriffen, OpenLaszlo war hier entweder Vorbild wie bei Flex  oder Vorreiter wie bei XAML.

NX: Warum nutzt OpenLaszlo als Beschreibungssprache gerade XML?
RB: Für die Etablierung einer neuen Programmiersprache ist es unerlässlich, auf bestehenden, etablierten Standards aufzubauen. Der deklarative Ansatz der Entwicklung von Interfaces unter Verwendung von HTML-Tags war einer der weltweit erfolgreichsten Standards und unerlässlich für den Erfolg des Internets. Wir glauben, dass dieser Technologieansatz auch für den Bereich der Rich Internet Applications erfolgreich ist. Adobe mit MXML und Microsoft mit XAML bestätigen unseren Ansatz.

NX: Siehst du Alternativen zu XML in diesem Bereich?
RB: Von vielen Java-Entwicklern bekommen wir die Frage gestellt: Warum ermöglicht ihr nicht die Generierung von Flash- oder AJAX-Applikationen über Java-OpenLaszlo-API-Aufrufe? Dahinter steckt natürlich das Gefühl, lieber in Java zu programmieren als mit einer Mischung aus XML-Tags und JavaScript. Andererseits zählt Gartner Laszlo Systems mit OpenLaszlo zu den Cool Vendors in Application Development 2007. Als Grund wird hier ausdrücklich genannt, dass  OpenLaszlo die einzige RIA-Plattform darstellt, in der Entwickler das Interface in einer deklarativen (nichtprozeduralen) Weise definieren können und gleichzeitig verschiedene Laufzeitumgebungen anvisieren können (AJAX, Flash und die Java 2 Plattform, Micro Edition). Der deklarative Ansatz bei der Entwicklung wird hier also klar als Vorteil gesehen, auch wenn es innerhalb des Teams schon die Überlegung gab, ob man nicht auch die Entwicklung über reinen JavaScript-Code besser unterstützen sollte.  

NX: Welche besondere Unterstützung bietet OpenLaszlo für XML-basierte Web Services?
RB: Alle gängigen Standards werden unterstützt, allerdings abhängig vom Deployment der OpenLaszlo-Applikation: Wir unterscheiden zwischen dem SOLO-Modus und dem Proxied-Modus beim Deployment. Bei SOLO werden HTTP-Requests, XML-over-HTTP, also REST-API-Aufrufe unterstützt. Im Proxied-Modus fungiert der OpenLaszlo-Server als Request-Proxy. Dann werden SOAP, Java-RPC und XML-RPC unterstützt, es muss dann aber ein Java-Webserver Tomcat, Websphere, Weblogic usw. installiert sein, auf dem der OpenLaszlo-Server läuft.

NX: Welche weiteren XML-Standards unterstützt OpenLaszlo? XPath, XSLT oder gar XQuery?
RB: Beim Mapping der Datenobjekte auf XML-Dateien wird XPath verwendet. XSLT oder XQuery kommen noch nicht zum Einsatz. Der Grund hierfür ist die fehlende Unterstützung durch die Flash-Runtime.

NX: Wie siehst du die Konkurrenz von XAML und Silverlight, dem Flash-Konkurrenten aus dem Hause Microsoft?
RB: XAML und Silverlight bieten – nicht auf JavaScript-Ebene, sondern auf Ebene der Common Language Runtime – eine erheblich höhere Performance als Flash oder DHTML und AJAX. Da Silverlight bei Windows Vista vorinstalliert ist, kann man damit rechnen, dass Silverlight Flash innerhalb der nächsten zwei Jahre erhebliche Konkurrenz bereiten wird. Die fehlende Hardwareunterstützung für den Flash-Player, aber auch für herkömmliche AJAX-Anwendungen, wirkt sich gerade auf mobilen Geräten sehr stark aus. OpenLaszlo 4.0 macht es durch die neue Architektur problemlos möglich, weitere Runtimes, zum Beispiel also auch Silverlight, hinzuzufügen. Entsprechend nehmen wir Silverlight nicht so sehr als Konkurrenz war, sondern planen langfristig auch die Generierung von Silverlight aus LZX Code.

NX: Worin unterscheiden sich LZX und XAML?
RB: XAML füllt für Microsoft eine Lücke im Bereich der .NET-Entwickler. XAML ist darauf optimiert in Kombination mit Sprachen wie C# oder anderen .NET-Sprachen moderne Interfaces zu entwickeln. .NET liefert hier den serverseitigen Technologiestack. LZX wurde unabhängig von der serverseitigen Technologie PHP, Java, .NET, Python, Ruby entwickelt. Wir bevorzugen keine Technologie. Während OpenLaszlo ab der Version 4.0 zunehmend CSS unterstützt, muss in XAML die Formatierung über neu zu erlernende Tags vorgenommen werden.

NX: Ist XUL ein direkter Konkurrent zu LZX?
RB: Wir nehmen XUL nicht als Konkurrenten wahr, es gab innerhalb des Mozilla-Teams auch schon Interesse, LZX nativ durch den Browser zu unterstützen. Wer einen Blick auf erfolgreiche OpenLaszlo-Anwendungen wirft, wird erkennen, dass der Schwerpunkt bei OpenLaszlo auf gebrandeten Anwendungen mit einer guten User Experience und Fluid Interfaces liegt, was wir auch als „Cinematic User Experience“ bezeichnen. XUL wird zum Erstellen von Applikationen mit einem Standardkomponentenset verwendet, das Branding der Anwendung steht nicht im Vordergrund.

NX: Ich danke dir für das Gespräch!

Raju Bitter arbeitet seit Januar 2007 als OpenLaszlo-Evangelist für die weltweite OpenLaszlo-Community im Auftrag der Firma Laszlo Systems. Mit der Entwicklung von OpenLaszlo-Anwendungen begann er im Jahr 2004, zeitgleich mit dem Open Sourcing der Technologie. Über OpenLaszlo sowie die Themen Semantic Web, Mobile Rich Internet Applications und Technologietrends in Südkorea und Japan berichtet er in seinem Blog unter www.openlaszlonaut.de.

Martin Szugat ist als freiberuflicher Fachautor und Berater mit den Schwerpunkten XML, .NET und Java tätig. Über XML und verwandte Themen berichtet er außerdem in seinem Blog www.aboutxml.de.

Kommentare

Folgende Links könnten Sie auch interessieren