Overview - Rich Internet Applications

 
Featuring: RIAs are designed to deliver 8A's Software Simply

This year will see a major generation of development tools emerge as software vendors strive to deliver Str8A's software simply. Straight A's software is Bill Gates old information at your fingertips or IBM SAA-Sytem Application Architecture=>
Applications Able to deliver Access to Anyone Authorized Anytime, Anyplace on Any Device.
This is the evolutionary direction of computing as chips gets ever cheaper yet ever more powerful while the associated hardware support structure of memory, disk capacity and communication bandwidth keep in near lock step. To paraphrase Bill Gates - the problems of computing are largely now in his domain, software. Hence the current critical challenge is to deliver n-tier distributed systems, the 8A's of software, as simply as possible.

Most developers know intuitively software development has become much more complex - simply because the 8A's imply that an application is no longer confined to one machine nor to one place but rather smeared over many interacting "clients" and "servers". As well an application's transactions are also smeared over time as they become ever longer in duration and with ever more risk of exceptions, conflict and required disengagement - a clean rollback. Finally, the eight A, on Any Device, redoubles the effort levels required of GUI developers because they must be prepared to interact gracefully and usably in widely varying display modes. Now these new needs also impose demands for higher levels of security, reliability and performance requirements. The operational world of software has moved from a formerly benign world to become hacker hostile. In sum it is no surprise software development has become more complex.

The Driving Trends in Software Development

Bear with us now as we set the problem environment stage for RIA- Rich Internet Applications. To respond to increasing complexity the key watchwords in the new wave of software development are simplicity, integration, openness, generation,and agility. Simplicity draws on Occam's Razor - given equivalent solution methods, choose the simpler. But the Law of Simplicity has to be informed by its counter-part the Law of Requisite Variety - to control a system one must not just recognize but also measure and control all the critical factors and variables that drive that system and its behaviors. This is the tension, the yin-yang in development. Have I built in enough functionality and control to respond to most expected and accepted demand situations (an accepted demand on the system is one that most users would expect the system to respond to without error or balking and withdrawing service or crashing and its ilk). Or is the system overspecified by responding to phantoms or low impact, low risk problems.

To aid simplicity, software developers are integrating successful design patterns, templates and easily modifiable components from other systems or other parts of the same project. One of the most disconcerting and exasperating aspects of Extreme Programming methodology (in contrast to its welcome emphasis on testing early and often)is its myopic approach to planning for and re-use of components. Fortunately OO methodologies which enhance reuse and integration in a number of interesting ways are prevailing and specifically in new RIA systems. OO templates, design patterns and reuse are dragging refactoring methods (kicking and screaming)back to the front of the design-test cycle. Such refactoring options are seen as being agents to reduce risk, redundancy and replicated efforts by immediately connecting to,and/or integrating in existing working subsystems or new components into a project solution step. The important point is the integration goes well beyond simple inheritance strategies. RIA tools allow developers to tests early and often many system design options. The value is that design and and operation risks are reduced because existing components and solutions as well as new, native coding are used to produce working prototypes. In sum, RIA tools enhance and invigorate planning and prototyping because they simplify testing different presentation and interconnection options early in the design cycle.

The key to this re-invigorated early refactoring and integration is a new level of data interoperability. Openness is being adopted with vigor in marked contrast to the SQL laissez-faire standards. Casual adherence to only the lowest level of SQL standards by all the major vendors -yes, IBM, Microsoft, Oracle, Sybase, etc - has been one of the principle causes of isolated silos of information as seen in gulag application stacks. Lack of SQL openness in client server systems re-imposed data integration problems in many IT shops.

XML standards are one of the key enablers of this open approach acting as reliable and highly extensible/customizable connectors between systems. In addition a number of major data container formats in such areas as graphics (JPEG, TIF, GIF, PNG, etc), rich media (Flash SWF, SVG, ViewPoint MTS, etc), e-business and publishing (RSS, a wide range of EDI, etc), desktop office data (Adobe PDF, Open Office, Microsoft Office 2003) and hundreds of others are being published as open APIs. Many are based on XML. All major RIA-Rich Internet Application development systems have embraced XML and some of these other de facto, data interoperability standards as a key enabler of their architectures.

But data interoperability is only one side of the integration and open equation. Programming interoperability is the other. One of the critical problems in distributed systems development is that developers have to know not just a huge number of data APIs but also a bevy of languages to boot. Working on a recent small Internet application, this developer had to know: Visual Basic, Perl, ASP, SQL, JavaScript, Java, plus not a smattering of C/C++ API and calling sequences and associated behaviors. The proliferation of languages needed to master and program in distributed system is a key problem in the arena.This richness of cross platform programming interoperability has not gone unnoticed. All of the major RIA vendors have chosen to preserve programming interoperability. There are some proprietary extensions but every vendor is cross platform and many have chosen either JavaScript or Java. But also notable is the willingness to support a wide array of application servers (J2EE dominates but .NET, CORBA and others are supported in some RIA offerings)and an even broader choice of database systems.

Almost quietly program generation has snuck permanently into the development game. There is always a holy war over whether people should craft system or programs auto-generate applications. All of the major RIA vendors are using auto-generation of code in some aspect of their systems. The most common is the use of Servers systems to generate pages of different scope depending on the output device. As well context sensitive generation of reports and forms is also supported. However, most of the major vendors allow for greater standalone processing on the client. How they do this varies but standalone processing allows for working offline and fewer time-consuming page refreshes while online. It also means better usability and data reliability as users are able to get instant help info or to correct immediately data entry errors flagged by client-based validation routines. With XML extensibility and programming power on the expect to see more dynamically expanding forms as pioneered in Microsoft's InfoPath.

Another welcome emphasis from Extreme Programming is the concept of agility. Extreme programming fosters agility, the ability to respond quickly to primarily externally driven changes to a program's requirements. Agility is not designed to foster sloppy requirements planning or lazy project support from clients. In fact, the opposite - it demands active and committed client participation. Agile methods are designed to snuff out lazy practices by delivering working systems early - within 6 months of project start and thereafter often cycling faster. Agility cuts off a lot of mischief making because all the stakeholders get: 1)to see important aspects of the app working early and often including approving it; 2)to set the priorities for the next set of feature implementations as the project iterates towards solution. RIA tools foster this agility because they offer templates, components, reusablity and speed of dev elopement as their calling cards.Now how and how well RIA vendors deliver this agility varies broadly and is the subject of this overview.

The Rich in RIA

So far we have spent almost one half of this overview and have not even mentioned the Rich part of Rich Internet Applications. Rich stands for the broad set of media supported by RIA's - multiple fonts, vector and bitmap graphic files, animations, online conferencing, audio and video are typical of many RIAs. Rich buys eyeballs because it delivers content in the form most appropriate to the message. Some Internet tools like Flash can deliver this now with more or less flexibility. But there are a host of DHTML based web development tools that will ask what is all this RIA fuss ? But the simple fact of the matter is that DHTML is very HTML dependent. So critical font, vector graphics, and form component support are all very mixed- weak in the case of fonts, nearly non-existent in the case of vector graphics(no browser yet supports SVG), and long in tooth in the case of form components. Also DHTML is only as good as are the HTML/CSS/DOM/JavaScript standards. And unfortunately a notable player in Redmond has lagged way behind on supporting full standards in their Internet Explorer browser. And as of May 2003 that browser is not to be updated except for security fixes until Longhorn comes out in 2006/2007. The net result has been that Rich content oriented web tools like Adobe's Acrobat PDF, Macromedia's Flash SWF, and Viewpoint's Metastream MTS have garnered large web usage even before delivering a full RIA solution. But all of the above vendors and a host of others are busy completing their RIA solutions.

Some Rich Internet Application Tools

The following RIA tools have three common characteristics. They are all highly interoperable - support cross platform clients, also cross platform OS servers, application servers and database tools (we eliminated DigitalHarbor because its client and server are non-cross platform). They all use XML and/or Java/JavaScript and other standards (we eliminated Curl because its language is new and proprietary). Finally, they all seek to optimize the client/server experience by reducing over-the-network traffic and refreshes. Even with these constraints there are diverse set of tools with some very promising ease of design, simplicity in use and performance characteristics. Backend J2EE application servers will get a huge boost with this rich set of presentation side tools.

Adobe Designer

Adobe Designer bring a full IDE to the world of Adobe forms design and deployment and in a new format called XDP. XDP uses XML, XSchema, and host of tools to bring much greater form features and functionality. The key is to not only make local data available but also to bring the data from a wide array of centralized Application servers to the client in a variety of formats including PDF. Now the trick is to give PDF which is already cross platform and can act as a forms container more reach. Adobe does this by allowing XDP documents to contain PDF but also to standalone and to help Adobe forms to navigate complex workflow processes In addition, the JavaScripting capabilities of Adobe forms have been enhanced to reduce client-to-server interactive shuffling and to allow for immediate validation and dynamic response on the client.

If this sound like an RIA solution - it is exactly that with one more added feature set. Adobe already has a broad range of fonts and rich media that it supports in PDF and the new XDP extensions. To this Adobe adds a range of access list, security, encryption, and digital signature features. The new Adobe Designer IDE is already in beta preview and by mid summer, the full works should be available for full trial. Given the track records of Adobe Acrobat and Form Server this should be an offering well worth evaluating as it comes to market.

AltioLive

AltioLive is a nearly totally XML-based RIA Presentation Server that delivers self-standing apps to most browsers and to any of the many flavors of Windows, Mac, Linux and most flavors of Unix. It does not have an adapter for delivery to Mobile and PDA apps yet but Altio says that is in the works.But Altio Presentation Server runs on Windows 200x, Linux, Solaris, and other servers. The AltioLive Connector makes it simple to set up connections to popular Application Servers for BEA Weblogic, IBM WebSphere, Sun ONE, Macromedia JRun, OpenSource Tomcat but not JBoss. Also Sun ONE Portlet Server comes packaged with AltioLive as a special portlet creator. However, AltioLive has a wizard for setting up Web Services connections that is fall off a log easy to use.

And in fact, easy to use is a consistent theme working with AltioLive.Download Altio and users will find setup even on a standalone system straight forward. And using Altio Designer takes a little getting used to but in general is eerily simple to use.The whole trick is that the Presentation Server downloads XML-files with both presentation and local XPath scratch/cache database access. The field and event validations are scriptable. And what makes the system even more impressive is the very fast response time for most events and transactions. I was concerned that the XPath based local XML data cache would not be fast enough. False worry - its is lightning fast, especially in offline mode. Finally, Altio is customizable and extendible with its own SDK for creating components or Java Swing or AWT components. There are some rough edges with the lack of PDA and mobile plus video/audio components not quite equal to Flash/Flex. But Altio is so easy to deploy and use it easily earns careful consideration.

Droplets by Droplets Inc.

Imagine a back-to-the-future client server technology based on the idea of not refreshing complete pages but just the components event driven requests from a client page. Imagine that client page can not only exist but replicate the look and feel of all the popular desktop OS plus a bevy of mobile devices (see screenshot above). Imagine that you can program this universal interface in either Java or C++. Finally imagine that the client required is a once only, easily installed, forever after updated 1.0MB download (or direct install from CD or network). New applications can be dragged and dropped from a web page once the Droplet client is available on the desktop - hence the name. Droplets definitely have appeal, and if you go to Forbes Magazine you can try out the deployment of a droplet live and financially informative. Finally consider the following proposition - this is the way Java servlets really should run and Sun has just made Droplets Sun Tone approved and incorporated them into Sun One Studio.

Now the Server side of this operation currently runs on Windows NT (maybe there is life for NT after all), Windows 200x, Linux and Solaris. Also the backend server connects to popular Application servers and supports Web Services. The thin TCP/IP connection is considered military grade for security. The developer SDK has been ported to and runs in Borland's JBuilder, Oracle's JDeveloper, and Eclipse. It currently supports Java and C++ and a port to CLR with VB.NET is in the works. Droplets support asynchronous events and alerters and thus could be considered Portal-like applications - Droportlets anyone? Even better you can easily try this all out on your own by downloading the Droplet SDK.

This technology is very impressive. Three potential drawbacks are that Droplets are dependent on a network connection and do not run in offline mode; the UI elements are geared towards all possible clients and some rich desktop components and media (think video, voice, animations) may have to be developed or bought; and that old bugaboo, client-side runtime licensing. But starting at about $40 per seat for inhouse apps - that runtime licensing may or may not be a bargain. In sum, this is another example of how diverse and rich Java delivery and presentation is getting while doing a good job of meeting 8A's application requirements.

Isomorphic

Isomorphic delivers another variation on presentation client-server by incorporating some of the advantages of DHTML with XML to deliver true solution templates as well as a full set of GUI components. As can be see in the screenshot above, Isomorphic delivers complete windowing, grid, tree structure and other "desktop" widgets but in a browser window. Click the Test Drive button for a complete go through which duplicates the above screen if you choose the same skin we used. See for yourself how responsive and user friendly an application can be built with Isomorphic.

By using DHTML Isomorphics is able to deliver either .NET or J2EE backended applications. Isomorphic's client system is then able to deliver zero-install, cross platform portability (love to see the JavaScript code for browser check), high performance with much reduced network traffic. This is an elegant solution to the smart client problem which vendors like IBM's Rational has delivered with its RUP-Rational Unified Process Support system . The difference is that Isomorphic has a development SDK that allows users to deliver equivalent DHTML-based smart client applications.

Laszlo Systems

Each of the RIA tools we have looked at has had some unique aspect for delivering rich and smart interaction on the client without incurring the network bandwidth costs and user time delays associated with current browser based systems. AltioLive is using a clever combination of XML, Isomorphics uses a more robust DHTML, Droplets use fine control on Java and Laszlo Systems uses a combination of XML and the Flash Player. As users who have read our Macromedia Flex overview previously or scouted just ahead to our Macromedia Central coverage will know, the Flash player brings a lot to the RIA table. A robust scripting language with ActionScript 2 combined with arguably one of the best set of compression routines for video, audio, and bitmap graphics that make up the bulk of rich media. Laszlo extends this with its LZX XML based UI interface definition language, similar in concept to Mazola's XUL and macromedia's Flex based MXML. The nice thing about LZX is its easy yet functionally thorough design. The trade-off may be the performance as Laszlo stands outside the Flash Engine.

However, unlike Adobe Designer, Laszlo is available now for trial and deployment. And this reviewer, a skeptic on all those "Learn UML in 24 Hours" books actually laughed out loud when he saw the button to Learn Laszlo Live in Ten Minutes. But to my surprise and chagrin I was totally hooked by the deceptive simplicity and yet intensely complete logic of Laszlo's LZX XML layout language. And the testbed, Laszlo Explorer that runs in any browser, was a bit sluggish at times over a DSL connection; but nonetheless most impressive in its ability to quickly prototype some rather complex LZX form designs. Bottom line - among some very impressive RIA Application Development tools, Laszlo will be at or very near the top for testing and a follow up review for theOpenSourcery readers.

Macromedia Central

Macromedia Central is an extension to Flash MX and Flash Player 6 (there is an additional Central runtime download). Central allows users to create Web portlets or applets that use the Flash player to provide very rich indeed digital dashboard user Interfaces. The Central SDK is free for the download and Macromedia provides a great Central developer center with sample applications, tutorials and templates. Use Flash MX or MX 2004 (or pro edition to develop for Central). However, there is a major caution here - because Central does not use the Flash 7 player yet - you cannot incorporate some of the latest features of Flash MX 2004 and specifically the new and powerful ActionScript 2 OO extensions. The promise is very great but proceed as if you are using beta code until full Flash Player 7 and ActionScript 2 support is available.

Nexaweb

Nexaweb appears to be the prototype of a RIA tool as can be seen from its Architecture diagram.To handle the page refresh delay of current HTML solutions Nexaweb uses a smart client which is fed compressed XML instructions from a Java presentation servlet. Nexaweb takes advantage of their design - their client runs in most desktop browsers and has PDA and mobile versions. The server runs on Windows NT, Windows 2000, Linux, AIX, AS400, and Solaris which insures maximum cross platform portability.

Furthermore Nexaweb has done some clever things on the Client. It is a Java based client driven by Mozilla XUL-XML User-interface Language which Oracle will likely be adopting for its new Mozilla based application interface. Nexaweb uses HTTPS secure and compressed transactions and has support for XML-SVG graphics and animations in addition to a Java AWT set of components that more than matches any JFC/Swing or SWT set. In fact, the Nexaweb Designer not only allows quick drag and drop prototyping but also use of skins and templates. The whole system - being built on XUL and Java allows for maximum flexibility to designers and developers. Developers wanting a look see should click on the link. But the real kicker here is to see some very good XML technology in XUL and SVG on the client being coupled with HTTPS, Java and J2EE in very effective fashion.

Q-Link Technologies

Q-Link represents a slight departure from our RIA tools because it is a full J2EE development tool starting with BPM- Business Process-planning Methods straight through to the development and interfacing of a system within existing processes. But the steps Q-Link takes at the UI design stage are of interest. Q-Link uses an XForms and XML approach to UI design in a browser context. For example, Q-Link use XML, XForms, XPath and XSchema throughout its system and in the UI phase allowing for more complete validation, less network traffic and offline operation if required. A key to this is Q-Link's XFC-XML Form Components which are built in a drag and drop fashion and stored as reusable designs. Q-Link takes over the process of delivering these forms to different devices - browser, PDA, application, mobile phone. Specific XFCs can be built for almost any forms requirement; but most are in the data processing category.

Q-Link's competitive advantage is to fit their forms and pages (including multi-form pages) into a broader workflow context where persistence and versioning of forms and data may be a requirement. Meeting these requirements allows Q-Link to track key usage and performance data which allows forms and apps to be better managed, controlled and changed. Despite its end-to-end approach, Q-Link is a good interoperability citizen - supporting wide cross platform usage on clients, servers and application servers. For developers concerned with forms and workflow, Q-Link is a must see tool.

Summary

If we consider the tools above as summarized in the table below we see that RIA systems are delivering an amazingly rich set of development tools. These are primarily presentation servers. That is they extend application development in 3 ways. First, the reach of powerful J2EE backend servers is extended to more clients - not just desktop but browsers, PDA, mobiles and cross platform - Mac, Linux, Unix as well as all flavors of Windows. Second the richness of the media is enhanced - often adding audio, video, graphics and animation. Finally, the backend presentation servers often go beyond J2EE data processing and include .NET, directory, eMail, chat/conferencing, asynchronous messaging and other services.

Clearly Java and XML are the big winners here. As well cross platform and interoperable are strongly served. But also on the client side the RIA tools offer much improved response time, drastically reduced network traffic and a better, almost desktop rich GUI experience through their web delivered sessions. But versatility is served as well as many systems offer offline capabilities.

RIA-Rich Internet Application Tools
Vendor
IDE
ClientTech
Plugin
Rich Media
Offline
Notable
Adobe XDP
VD,TED,P
JS, XML, PDF
PDF
full
yes
security features
AltioLive
VD,TED,P
XML, Applet
JVM
some
?
easy to develop in
DreamFactory
full
XML
no
most
yes
IDE runs in browser
Droplets
3rd party
Java Servlet
JVM
most
no
very fast, alerts
Isomorphics
SDK
DHTML, XML
no
some
no
many widgets
Laszlo
basic
Flash, XML
Flash+Lzl
full
yes
easy to learn, rich
Macromedia Central
FlashMx
Flash
Flash+Ctl
full
yes
alerters, portlets
Macromedia Flex
full
Flash, XML
Flash+MXML
full
no
collaboration
Nexaweb
full
Java+XUL
JVM
most
?
neat use-XUL,SVG
Q-link
full
XML,XForms
no
some
yes
BPM model design

As we can see in the chart above, what and how they deliver that client side session varies substantially among combos of Flash, JavaScript, Java and XML. Developers have almost an embarrassment of riches to choose from. And yet there are two and one-half more waves of software tools to crash onto developers.

First, there are the substantial updates and improvements promised by major vendors: BEA and its leading edge Workshop tool, IBM and its utility model of computing enabled in improved Websphere and Lotus product lines; Microsoft's delayed to 2005 Whidbey version of Visual Studio with Whitehorse model-driven development; Novell's Linux invigorated line of J2EE based developer tools; Oracle and its grid enabled Oracle Developer suite; the major new editions to open source's PHP, Perl, and Python/Jython; Sun's update to core Java syntax with J2SE 1.5 and its promised suite of VB-like Java Studios; Sybase leading a host of portal vendors with new and improved products that will start to step into the presentation territory we have just covered. This is not a small wave yet to come.

And yet there is another developer tools wave incoming through this year and next. MDA-Model Driven Application development is already foreseen by the Whitehorse extensions to Microsoft Visual Studio and some of the Oracle tools. Given the legitimacy that code generation has regained with tools like ASP, JSP, and PHP there are a group of new and old developers that are making UML or other business process models drive code generation (shades of TI's old IEF). Most of this work is at the complex backend of system design, Web Service architecture,and distributed systems. Vendors like Borland with its Together line, Codagen with Architect, Compuware with IntelliJ, Interactive Objects with Arcstyler, IBM with its Rational XDE, NoMagic with MagicDraw UML, telelogic with Tau Architect,and others are building better backend server system design, generation and completion tools. With the late 2003 release of UML 2.0 some of the critical modeling standards have been set in place for these toolmakers.

Finally there is the new 1/2 wave. Microsoft's new Longhorn with it completely revamped Win API, core changes to its file services, and equally basic Indigo driven networking and collaboration will require profound modeling and tools support because all the basic Windows APIs will be substantially changed. And Microsoft's record for backward compatibility and helping developers convert to new APIs is mixed. Nonetheless, expect Microsoft to have to support this massive conversion process and to use modeling, code-generation, and GUI designer tools to do so. But in the here and now, Longhorn has put all Microsoft's competitors on notice as to the profound nature of the upcoming (2006-2008??) changes to its market dominating OS. So RIA tool vendors are already adding the rich media, collaboration, and close backend tie-ins that Longhorn promises. Likewise MDA and J2EE vendors know (as they have been tirelessly reminded by Gartner-like analyst shops) the process of creating complex systems has to be simplified and/or automated. So they too are busy adding Visual Studio and Longhorn-like ease of use and functional features. In general, judging by the RIA example the process of making development appropriately simple yet still agile enough to respond to critical change is well started.

All this change in development tools occurs at an interesting juncture in system development. Development has long been sitting creakily on a high pedestal because IT could deliver but only sporadically huge groundbreaking cost savings between very mixed project success(see the CHAOS Reports for details). But the last major technical wave, Internet-working of business has been through its hype-cycle and the groundbreaking gains are simply harder to deliver. So now software developers have to deliver a better batting average on development projects. Now as developers we are convinced that a substantial portion of the cause for project failures has been out of developers control due to the Rapidity of Change effects. These effects are many but one is technology flux. Simply put, to put together a Web based system today a developer needs to a master 5-8 languages and/or methods. And heretofore those languages have been changing at a breakneck pace. Thus it is very encouraging to report that RIA tools just examined predominately use existing languages and methods (Java, JavaScript, XML, Flash, etc) and interoperate generally well with a wide variety of backend application servers. Even more important interoperability is across the board - data interoperability with XML, PDF, Flash file types supported; programming interoperability - Java, JavaScript, C/C++ supported in standards observant ways; plus cross platform development followed everywhere - in client OS and browser use, server OS support, application and database server support.RIA tools are a welcome change from historical "rip and replace" technology changes as reuse of existing technologies and simplicity/ease of development are front and center in all these tools.

Jacques Surveyer is a consultant and presenter; see some of his presentations at PhotoFinishes
Completed March 14, 2004

 
Top of Page  Tutorials Home 
©Imagenation 2000-2004