Web 2.0, AJAX, RSS, Podcasting, mashups, RIA.... in the past couple of years these terms have become prevalent when conversation about the web comes up. These terms mean very little to the layman and are often more confusing than they are descriptive. Developers understand them but they often leave others confused or misunderstood about what they actually mean. In this article we will focus on what Rich Internet Applications (RIAs) actually are and help you to understand why RIAs are important to your custom software solutions.
Quoted from Wikipedia: "Rich Internet applications (RIA) are web applications that have the features and functionality of traditional desktop applications. RIAs typically transfer the processing necessary for the user interface to the web client but keep the bulk of the data (i.e maintaining the state of the program, the data etc) back on the application server".
In layman's terms this means that applications you run from a web browser will work just like standard desktop applications but can be run from anywhere in the world using a browser. Unlike the traditional desktop application, RIA's are generally downloaded to the client each time the user launches the application. This allows you to easily upgrade your application without costly rollouts to client machines.
Two of the most common technologies used to develop RIAs are AJAX and Adobe's Flex. We will be discussing the pros and cons of each, very briefly.
AJAX
AJAX is based upon a mature technology called Javascript. It allows your web browser to make requests to the web server without actually reloading your web page. This is important to applications as it enhances the overall performance and makes a traditional web page seem more like an application than a web page. AJAX "packages", known as libraries, consist of a code base prebuilt to allow faster development of your RIAs. Generally these AJAX libraries consist of many "widgets". These widgets are designed to allow you many of the features of a desktop application without the time consuming coding process. Some common widgets include:
- the ability to allow your browser to drag and drop items on the page
- special effects, such as fading, dissolving, swiping, etc. This is great for adding special effects to photos or any item on the page.
- tabs - creates tabs so you can navigate your applications easier
- grids - much like Excel spreadsheets
The downside to using AJAX for web applications is browser compatibility. An AJAX-based application running on Internet Explorer 7/Windows XP may function differently on a Safari 2.0/Mac OS X computer. This can often result in extended development cycles to iron out differences in platforms.
Flex
Aobe's Flex product is based upon the wildly successful Flash platform. Flex is free, allowing it to compete with the AJAX platform. Flex also offers Flex Data Services. While not free, Flex Data Services allows organizations to develop applications which push data to the end-user. What this means is that while a user is working in the Flex application data can be updated in real time. As a user changes data all others using the system will see these changes reflected on their screen. It also allows real-time collaboration within your projects between users anywhere in the world.
Flex development is fast, allowing common user interface elements to be visually placed and quickly edited. It integrates with many development languages and has built-in integration with Adobe's ColdFusion product. This allows Flex to replace existing applications very quickly and easily at a relatively low cost when compared to traditional desktop application development.
Additionally, Flex provides the benefit of working exactly the same on any browser and computer which is Flash enabled.
The downside to Flex is that it does require the Flash plugin. However, since Flash is installed on 95%+ computers in the world, this becomes less of an issue, especially for applications where the audience is controlled (internal applications and databases).
Apollo
Apollo is the codename for a new product by Adobe. The Apollo product will allow both AJAX and Flex projects to run as desktop applications, without the need for a web browser. This is important to application developers and IT decision makers as it allows web applications to be launched from the desktop and interact with that user's desktop. This includes access the end user's file system, something which has not been possible from the web until now (at least without using Java or ActiveX, two very expensive and inconvenient technologies).
Summary
Regardless of which RIA technology you choose you will find significantly lowered development costs and total portability of your applications. It is not uncommon for many non-profits or small business to have remote offices, making traditional desktop applications expensive to run remotely. Often this requires use of a thin client solution such as Terminal Server, in combination with VPN solutions. These solutions in turn require more IT staff to maintain and operate.
Upgrading RIAs will be less time consuming and as a result save your company substantially. Integration with third party sources and tools also becomes a much less tedious task due to the very nature of the Internet.
If you are interested in hearing more about RIAs, or would like to see some demos of RIAs, please give us a
shout!
0 comments - Posted by TJ Downes at 7:32 AM - Categories: Technical Articles