Rich Internet Applications, or RIA, are web-based applications that approach the speed and elegance of local applications. The term "Rich Internet Application" was introduced in a Macromedia white paper in March 2002.
In traditional web applications, all activity used to be centered on client-server architecture with a thin client. Under this system all processing used to be done on the server. The client was used only to display static content. This proved to be a very slow and tedious process as it required all the interactions to pass through the server. With RIA, a client side technology can be made use of which is capable of executing the instructions on the client's computer. The biggest advantage of RIA is that it can circumvent the slow and synchronous loop for multiple user interactions.
Internet standards have gradually changed and evolved over time to incorporate various new techniques, so it often becomes difficult to clearly differentiate between what constitutes a Rich Internet Application and what doesn't. But there is one common feature that characterizes all RIAs: they introduce an intermediate layer of code (client engine) between the server and the user. This is generally downloaded at the beginning of the application, and more code may be downloaded and added as the application progresses. So the client engine acts as an extension of the browser, and by and large takes over responsibility for rendering the application's user interface.
RIA offers richer functionality as it uses only the HTML widgets available on standard browser-based web applications. The interface behaviors in RIA are much more responsive than a standard web browser that must always interact with a remote server.
In RIA, a balance is maintained between demand for client and server computing resources. This, in turn, allows the server hardware to handle more client sessions. RIA also helps in reduction of network traffic as the application-specific client engine is better customized for interactions with the server.