When we talk about rich Internet applications, we understand the word rich to describe a user experience that is dramatically superior to the experience provided by a traditional web application. In addition there is a richness in the level of interactivity in the application. Interactivity in this case does not mean animation and effects, but rather the extent to which a user can engage with the application as it engages with the user.
Consider a conversation through a translator. As one person speaks, the translator listens and then translates a part of the conversation to a third party. Meanwhile, the speaker waits while the third party responds, also through the translator. This inefficient communication process repeats itself between the two parties.
This is analogous to a web application, which also enables a kind of conversation between man and machine. The web application translates, through the limited medium of a browser, to the user. Then the user clicks a button to communicate back to the web application, also through a browser, continuing a less than optimal process for communication.
A principal benefit of rich Internet applications—beyond the obvious rich user experience—is the rich communication that can occur between man and machine. Freed from the limits of the request/response page-driven browsing metaphor, users can interact at their own pace with the application while the application responds—also at its own pace—to the user. Communication flows better, creating simpler, easier, more effective and, ultimately, more enjoyable user experiences.
One of the key innovations in Cairngorm leverages a collaboration of design patterns that the J2EE community used to centralize and manage the man/machine communication in the traditional web application world and brings it up to date for the more seamless, flowing conversations that rich Internet applications enable. These design patterns work so well together at solving the higher level problem of achieving rapport between user and application that they are considered their own microarchitecture: the Service to Worker microarchitecture.