Today's Web is a rich set of competing approaches to deliver RIA. The user community is already equipped to run your application when you choose a RIA techniques.
Pretty much any technique is viable. That puts the emphasis on which approach is easist to test and deploy.
- Web 1.0 - Everything in
the user interface is text, forms, and links. Java spawned the
framework approach to building Web 1.0 applications. Selenium,
TestMaker, and others provide fast
and easy test construction and operation through automatic record/playback
or writing unit tests in a high level language. Click
here to see the TestMaker tutorial. Lately Web page performance
optimization through HTTP
Archive (HAR) support has become the rage.
- Ajax - Web pages with asynchronously running Javascript functions. Javascript functions change the Web page content dynamically, validate user input dynamically, presents live back-end data, and communicates with one or more backend systems as needed. The asynchronous nature of the Javascript functions makes test construction challenging. Javascript adds thousands of new Web objects that most test tools do not recognize and procedurally oriented test tools struggle to keep the test in synchronization with the application state. TestMaker providesautomatic test construction and operation through automatic record/playback or writing unit tests in a high level language, including support for Ajax Web objects and automatic synchronization.
- WebKit - Safari, Chrome,
most mobile and table devices, and Amazon Kindles use WebKit-based
browsers for user interaction. WebKit is widely used and well known in
the developer community. Wells Fargo Bank, for example, deploys a
private-label package of Chrome to provide user interaction with its
applications (as opposed to the entire public Web) to its
employees. Tools like Sahi and TestMaker Object Designer
work really well to plug-in, record,
and drive WebKit applications.
- Flex and Flash - Flex components provide a rich display of media (photos, video, audio, animations) within a component in a Web page or packaged as a desktop application (using Adobe Air.) Flex provides the ActionScript language for building complex workflows within Flex components. There are mappings from Java to ActionScript. Adobe provides the Flex Automation APIs to make Flex components testable. Record/playback or build a unit test of a Flex or Flash component that appears within the Web interface of your application. Watch a short screencast demonstrating these APIs.
- Oracle Forms and Java Applets
- Applets provide a high degree of control and precise function
delivery. Oracle Forms uses
Java Applet technology to deliver applications that access Oracle
database contents through defined workflows. Oracle uses Forms
technology in its own Oracle
Application Suite.
PushToTest designed TestMaker Java Applet Technology (JAT) to provide
record/playback testing for Oracle Forms and other Applet based
applications. Watch
a screencast showing TestMaker JAT in action.
- Silverlight - Microsoft's
answer to HTML 5 and Adobe Flex. Build and deploy workflow based
application components for delivery across the Web using typical
Microsoft technology (Visual Studio, ASP.net, and others.) Various open
source efforts emerged to test Silverlight, including a unit
test for Silverlight with Selenium.
- Terminal Sessions -
Terminal session services like Citrix deliver
highly functional, easily
administered applications by using virtualization technology to run an
application remotely. Users see the application through a virtual
terminal server. Upgrading the application is easy - upgrade the single
centrally hosted application. There is no need to use network bandwidth
to move a component - such as a Flex or Ajax app - to the user. Of
course, the terminal server client needs to be installed for every user
or terminal device. I like Enteros' solution for
functional testing and performance testing solution for Citrix based
applications.
- Message-based Applications
- The communication between a RIA client and the backend introduces
scalability challenges. Watch
a screencast I made with Greg Hoelzer of TIBCO to learn how Big
Data and NoSQL help build scalable and high performance RIA.
-Frank
Sources:
http://solacesystems.com/blog/technology/web-messaging/latency-and-rias/
http://marketshare.hitslink.com/report.aspx?qprid=0&qpcustomd=1
http://www.webkit.org/blog/188/safari-hits-622-market-share/