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=> 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. 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 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. 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 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 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 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.
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 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Top of Page Tutorials Home ©Imagenation 2000-2004 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||