Rich Internet Applications, also know as RIAs, are Web applications that have the features and functionality of traditional desktop applications. These applications utilize interactive technologies such as Flex and Ajax to provide the user with a highly interactive experience and a rich user interface. Rich Internet Applications also transfer the processing necessary for the user interface to the user’s computer while keeping the data processing on the Web application server. The user’s computer and the Web application server communicate in real time, meaning data can be processed quicker and more seamlessly without the typical stop-and-click setup of most Web applications.
Traditional web applications centered all activity around a client-server architecture with a thin client. Under this system all processing is done on the server, and the client is only used to display static (in this case HTML) content. The biggest drawback with this system is that all interaction with the application must pass through the server, which requires data to be sent to the server, the server to respond, and the page to be reloaded on the client with the response. By using a client side technology which can execute instructions on the client's computer, RIAs can circumvent this slow and synchronous loop for many user interactions. This difference is somewhat analogous to the difference between "terminal and mainframe" and Client-server/Fat client approaches.
Benefits of RIA
1. Offer user-interface behaviors not obtainable using only the HTML widgets available to standard browser-based Web applications. This richer functionality may include anything that can be implemented in the technology being used on the client side, including drag and drop, using a slider to change data, calculations performed only by the client and which do not need to be sent back to the server, for example, a mortgage calculator
2. The interface behaviors are typically much more responsive than those of a standard Web browser that must always interact with a remote server.
3. The demand for client and server computing resources is better balanced, so that the Web server need not be the workhorse that it is with a traditional Web application. This frees server resources, allowing the same server hardware to handle more client sessions concurrently.
4. Asynchronous communication. The client engine can interact with the server asynchronously -- that is, without waiting for the user to perform an interface action like clicking on a button or link. This option allows RIA designers to move data between the client and the server without making the user wait. Perhaps the most common application of this is prefetching, in which an application anticipates a future need for certain data, and downloads it to the client before the user requests it, thereby speeding up a subsequent response. Google Maps uses this technique to move adjacent map segments to the client before the user scrolls their view.
5. Network efficiency. The network traffic may also be significantly reduced because an application-specific client engine can be more intelligent than a standard Web browser when deciding what data needs to be exchanged with servers. This can speed up individual requests or responses because less data is being transferred for each interaction, and overall network load is reduced. However, use of asynchronous prefetching techniques can neutralize or even reverse this potential benefit. Because the code cannot anticipate exactly what every user will do next, it is common for such techniques to download extra data, not all of which is actually needed, to many or all clients.
|
|