Introduction

Internet Applications today are fast evolving towards client/server like functionality and performance, leading into "Rich Internet Applications" or RIA.

A RIA gives the user a thick client with extended capabilities not available in browsers today. When it comes to developing large, data-centric applications, RIAs are generally strong.

Several solutions are available for developing Rich Internet Applications including Nexaweb, Flex, Laszlo and others. These RIA solutions can themselves be qualified into three categories based on RIA clients
  • .NET based solution which will use XAML in Microsoft's planned new presentation subsystem code-named "Avalon".
  • Browser based plug-ins
  • Java based solutions
We aim to study three leading "Rich Client" providers in this document:
  • Nexaweb
  • Flex
  • Laszlo
While Flex and Laszlo utilize browser based plug-in (Flash), Nexaweb is based on Java.

Comparing Concepts - Basics

The three RIA providers that we study in this document all work on the same basic concept. Each provides a thick client that can render the UI while talking to their application servers. Flex and Laszlo use Adobe Flash Player on the client-side to interpret the bytecode sent by server in swf format, while Nexaweb utilizes Applet technology for loading the Nexaweb client engine.

Concepts that are different

Though both Flex and Laszlo use Flash for client side rendering, Flex uses MXML as a markup language while Laszlo uses LZX as a markup language. Both of these markup languages can also be referred to as XUL, or XML UI Language. Flex requires Flash 7 while Laszlo can run on versions of Flash from 5 onwards. Flex is an extension of Adobe product line.

Nexaweb, on the other hand, utilizes Applet technology to load the client engine. Nexaweb applications thereafter are standard Java web applications that generate XML for rendering.

Architecture Comparison

Nexaweb



Flex

Adobe Flex is a commercial presentation layer server that produces Rich Internet Applications. Developers use two core languages to create Flex applications - MXML, the Adobe Flex Markup Language, and ActionScript.

  • MXML includes a rich set of XML tags that allows developers to layout user interfaces.
  • ActionScript 2.0 is an ECMA-compliant language similar to JavaScript. ActionScript elements are coded inside MXML pages.
  • Both MXML and ActionScript are text-based languages and can be written in a simple text editor, an IDE tool such as Eclipse, or a more sophisticated tool like the Flex Builder from Adobe.



The Flex server is responsible for translating the MXML and ActionScript components into Flash bytecode in the form of .SWF files. This process is similar to compiling JSP files into servlets by a Java web application container. The SWF file is executed on the client in the Flash runtime environment. The Flex server provides other services such as caching, concurrency, and handling remote object requests.



Laszlo

Laszlo system uses Laszlo Presentation Server, LPS, a Java application that executes in a J2EE servlet container. The Laszlo applications are written in LZX format and are compiled by LPS and send as bytecode to a plug-in in the client's web-browser. Currently, LPS outputs bytecode in the SWF file format recognized by the Adobe Flash player (version 5.0 and higher).

Laszlo plans to support other run-time clients as they become widely available.
In the Laszlo context, client means LZX application executing in user's web browser, and server means LPS (which may, in turn, communicate with other servers). The LZX client and LPS server communicate over HTTP; LPS sends byte code and the LZX application sends XML.

References

  • http://www.laszlosystems.com
  • http://www.nexaweb.com
  • http://www.Adobe.com/flex