Sunday, January 21, 2007

RIA and SOA

I am investigating the advantages of RIA (Rich Internet Application) over the traditional Client/Web interfaces. In this article, Duane Nickul, Senior Technical Evangelist at Adobe, puts some light in this discussion.

Lest start with a traditional SOA stack:

Since a human being lives in the world above the service consumer,
the service itself will not necessarily care or be aware that a human is there. However, it is highly likely that humans are part of a service call and exist as either the trigger of some event that results in a service call and/or are the ultimate
consumers of the service result themselves. While contradictory to the title
of this article, one could state that humans are not directly part of SOA any
more than business processes are. However, both business processes and
humans utilize the SOA infrastructure.
To architect such interactions, architects should take great care to abstract any details of the service itself away from the human. The human should view the
"V" (view) component of MVC and not care about the "C" or "M" components. Accordingly, architects need a mechanism to present consistent views to the human that are abstract of any dependency upon the service.

Client-server Approaches:

1. Traditional Approach



2. AJAX, Flex mode for RIAs (new approach)



3. Final Considerations

In the Flex example shown, web services are used to communicate interactively
with the services at the bottom. Note that the cardinality is not limited in any
way to 1:1. A Flex or AJAX application may communicate directly with multiple
services, then abstract all the complexity of SOA and present the view and some
control components to the human being above the client side.
Several recent examples of the model for RIAs to interact between humans and services can be seen all over the Internet. Some applications like Apple iTunes have viewer panes which are generated locally on the client machine—such as the user's music library (see Figure 4). When they switch panes to view the iTunes Music Store, they connect directly to the Apple iTunes Music Store service, retrieve a result set, and then present it to the human being (see Figure 5). To the human being, the end result is a seamless experience joining both service calls and local
processing into one application

No comments: