Rich Internet Applications (RIA) - an overview
daryl_pereira 270002AW8D Visits (2310)
In this presentation, Julian Payne from ILOG's visualization product line covered why Rich Internet Applications (RIAs) are important and listed features of the core technologies.
So, why are we talking about RIA now?
Originally the web was static. This is changing as Ajax has become mainstream and increases expectations. There is also more information available on the web. For instance, service-oriented architectures (SOA) exposes new information and RIAs allow us to visualize this data.
What characterizes an internet application? It's one that runs in the browser - so the browser really is the platform. This has numerous advantages, including being multi-platform (you can run RIAs on any OS or on mobile devices) and it's zero-install (much simpler for deployment and you can be confident all users are using the latest version).
What makes these applications 'rich'?
These applications typically go beyond HTML tables and trees. You can visualize data in concise views. More interaction is possible, like drag/drop, moving, panning and zooming. Julian makes the point that given the amount of computing power most PCs now have, why not push more functionality to that client (away from the server, which could be at the end of a slow network). There may also be instances where you don't have a network connection, so offline capabilities can be important.
All technologies rely on a similar architecture:
For graphing, you can use server-side rendering which translates the data into an image on the server and sends this information to the browser. No data is sent to the client, so there are no security issues. However, images need to be sent across the web which can slow down the experience.
You can also use client-side rendering. This can be tricky as you have to mix and match SVG/VML/HTML5 as different browsers support different technologies. Read this post 'ILOG JViews & Ajax: an overview' for more information.
Flex is the RIA framework built on Flash. The Flex library is open source. The rendering is 100% client-side and can connect to any Web service/REST using HTTP. This requires the Flash plugin but this is installed on 98% of PCs. New Catalyst tools are coming that will help developers work with designers.
Everything runs inside the Flash player. Data is transmitted to the client using JSON, XML or AMF. As all rendering is done at the client-side, more movement/image manipulation is possible. Check out this demo of an application built for the 2008 Beijing Olympics.
This is the RIA solution for the .NET platform. It shares the same concept as Flex and runs as a plugin in the browser. Any .NET language can be used, offering more extensive libraries than those available for Flex. Julian showed an example of Graph Layout running client-side on Silverlight. Check out this Gantt Chart demo.
Wrapping up, Julian points out that all these technologies aren't mutually exclusive and can be used together (eg. nested separately on a HTML page). In addition to being available over the web, most of these technologies offer offline capabilities, with a popular example being Adobe AIR for Flex.
When it comes to choosing technologies, bear in mind deployment, functionality and platform support.