Saturday, October 1, 2011

Learning About Rich Internet Application Architecture

No matter what rich internet application (RIA) technology you use, be it Flex, Ajax, JavaFX, Silverlight, or any other RIA technology, there would be a basic similarity in the architecture in that most typically there will be a stateful client application and a backend layer of separate services. Success in designing and building a rich internet application would depend a lot on how well this differentiation is understood and taken care of.

application study bible

As RIA lends itself more to client-server development rather than traditional web development, the client knows about itself and about the types of data it requests. With no extra markup, it will request only the data it needs from the server. Most often this would result into a cleaner services layer and less-complicated server requests, a reduced overall server load in some cases.

APPLICATION

The outcome always is client communicating with the server through the services layer; it hardly matters whether you use AMF remoting, XML over HTTP, JSON, or SOAP. Their respective pros and cons don't have a significant effect on the big picture. On the sub-architecture side, each component of the larger architecture has an architecture of its own, which is important to understand.

Model-View-Controller (MVC) is a software architectural pattern where an application is broken into separate layers for the data model, the user interface (view), and the business logic. The logic, model, and views are decoupled, and communicate through an intermediary controller. This pattern allows both abstraction of logic and reuse of code/components throughout the application. Unlike the traditional web development where there is a singular MVC, in the world of RIA there are two layers of MVC - one MVC inside the client application itself and another in the backend services. It's not that every application uses a formal MVC or a fully mature framework for handling the client and services, but still each side typically has at least a fundamental MVC-type of functionality.

While the client MVC maintains the state of the application, handles all data requests to the server, and controls how the data is presented in the view, the MVC on the server handles requests from the client. It processes the requests from the client application, delegating actions on the server. This could include things like saving data in a database, updating the file system, or analytical processing of some kind. However, instead of a user interface, here the view would be the format of the data that is being returned to the client application and it would determine the result format (JSON, XML, etc.). A differentiated service layer also brings the benefit that you can already have the infrastructure built to create a public API on top of your services logic, in case you need or desire to maintain one.

RIA development can be done with a variety of technologies. For writing backends, you have programming languages like Java, ColdFusion, PHP, Rails,.NET, etc., and on the client side, there are established MVC frameworks for Flex/ActionScript and Ajax, some emerging ones for Silverlight, and adapted Java frameworks for JavaFX. You need to define the needs and capabilities of your application well if you want to determine both the back-end and the front-end application architecture well.

Learning About Rich Internet Application Architecture

APPLICATION

0 comments:

Post a Comment