Wednesday, May 23, 2012

What is RIA?


his is a common question for the development industry in general. In its most basic sense, RIA is an acronym for "Rich Internet Application", but that doesn’t really shed much light upon what a RIA actually is. Let me shed some light onto what RIA means to me.
What is the defining characteristic of a RIA?
Rich User Experience:
I think the most defining characteristic of a "Rich Internet Application" is a rich user experience. This does not necessarily mean a slick interface, or asynchronous data transfer, a stateful client interface, or any specific technology. While these may be common characteristics of RIAs, they do not define them. It boils down to how the application is used, and what it is being used for. A Rich Internet Application provides a great experience for its users. It should be easy to use, engaging, and targeted to perform its task very well. To many this means a "desktop-application-like-experience" delivered through the web. This may include common features such as drag-and-drop data manipulation and imaging/drawing/charting capabilities, but it is not a requirement to include any of these.
What are common characteristics of a Rich Internet Application?
As I mentioned above, the only real requirement of a RIA is the rich user experience. However, the richness of experience can be achieved through many common techniques:
Stateful Client
Although not a requirement of RIA, it is very common that Rich Internet Applications employ stateful clients and asynchronous data transfer to achieve their tasks. A stateful client interface is exactly as the name describes; it maintains state of the application completely on the client side. It does not rely on the server to maintain information about what the current user is doing. For example: I want to watch a video on www.youtube.com. On choosing the video, it buffers and runs slowly. But once it has buffered completely, it runs smooth if I choose to see it again. It is almost like watching the video on my desktop.
Drag-and-Drop
Also not a requirement, but a common feature implemented within Rich Internet Applications is "drag-and-drop". Ask anyone, especially non-technical people, what is easier: typing into a bunch of forms to enter information, or dragging an item onto a "cart" and having the information automatically populate? The answer is clearly drag-and-drop. This technique varies based on the technology implementations and restrictions, but its benefits can been seen clearly. Dragging items onto online maps, dragging commercial goods into shopping carts, creating "drag-able" objects in online office productivity applications, and even "drag-able" elements in online image editing applications are all rich features that are capable because of the drag and drop feature. This type of capability didn’t exist in mainstream online applications until the "RIA Revolution". Now you see it everywhere.
Drawing and Analytical Tools
Not every application has these either, but they really add a lot when they are used properly. Many RIA technologies enable the capability to manipulate graphics onscreen at runtime. An image is worth a thousand words, and these types of capabilities enable your application to say a lot. For Example: A user can design a complete shoe (www.nike.com) as per his choice of colours and personalize it with logo, names etc. S/he does not need to know designing and drawing software to be able to do this.
What technologies are used to create Rich Internet Application?
Lots of them – there is no single technology that is best suited for RIA. There are lots of great technologies that enable various capabilities. The choice of technology should be determined based upon your needs, and your application users’ needs. Typically developers everywhere prefer Adobe Flex and AJAX as the most lethal combination to be used together:
· Java FX etc…
I know I didn’t name every option, but the truth of the matter is that you have no option. There is no definitive "right choice" for all occasions. The desired capability and features of your application, in conjunction with your available development resources, technical requirements, and current infrastructure should determine which technology suits your needs most adequately.
Is Web 2.0 RIA?
No! Web 2.0 is a marketing buzzword. Web 2.0 is a “State of Mind” defining that what the user intends to do with a web page. From using web sites to send and receive e-mails to probably doing business transactions on www.icicibank.com, is first a thought and then a technology. Using www.Yatra.com to book flight tickets instead of going to a ticketing counter is first a thought.
However I truly believe that "Web 2.0" originally meant the same thing as RIA, It all boils down to the application, the user experience, and the ability to for the application to perform its task well.
Summary
When we think of an RIA and Web 2.0, we have to also give due credit to the fact that most client-server applications or enterprise applications today have taken the form, shape, size, look & feel of Web 2.0. Therefore maintaining a B2B or B2C is today mobile and convenient. One does not have to be in the office network with an office machine. Similarly a user today necessarily does not have to go to a showroom or a store to purchase a good or a service. Post sale transactions and entries are now therefore automated and enabled by the user the minute he makes an online purchase. Therefore users of www.icici.com are actually bankers and are performing the banker’s job of making transaction related entries themselves when they make an online payment or transfer money from one account to the other!!! Hence businesses are seeing more profitability and are becoming more and more mobile. The call of the hour therefore is Web Mobility and Web 2.0 is the true solution. Oh and did I mention that the cost of development in a web2.0 framework is lesser that traditional development!!!!

Republished from my earlier blog series in June 2008 

No comments: