Overview - Rich Internet Applications
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
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
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.
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
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.
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.
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.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.
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.
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.
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.
Jacques Surveyer is a consultant and presenter; see some of his
presentations at PhotoFinishes
Top of Page Tutorials Home