Friday, September 28, 2012

Performance Optimization of SOA based AJAX Application - Review

Original Paper:
Name:  Performance Optimization of SOA based AJAX Application
By: Kanakalata N, Udayan Banerjee, Shantha Kumar. NIIT Technologies Ltd.

Nowadays we can see java script based libraries been used in almost every web site or web application. AJAX is one of the most popular JS libraries around. This research paper shows how AJAX can be used to optimize SOA based applications. This paper has a nice organization and a flow that take the reader through several fine points that will prove that, there is a room for optimization in SOA based applications using AJAX. This talk about several AJAX based solutions to optimize the response time and the usability of the application. This does not talk about how to optimize the server performance. It shows that writer has identified the boundaries of the paper and has managed to stick to it.
This Paper starts explaining and elaborating on the topic through an example of an insurance underwriting application. This walks the reader through main design considerations, elimination of coding inefficiencies, and selecting though design alternatives and finally optimizing for usability. This makes a fine order to anyone who reads this paper. Writer of this paper has not made it hard, which make it readable by anyone with a basic knowledge in AJAX and SOA.
Other main factor, that make me believe in their idea of using AJAX for SOA optimization is that, all of their arguments are backed up by good facts and theories. As a example, in this paper they describe why we should shift the load entirely to the client. Writer took well-known Moore’s law to show how power of servers and client computers increase over years. However if we take “power per user” servers do not show a large increment compared to PCs, as number of users are rapidly increasing. With above argument writer proves the importance of AJAX.
Another point, which fascinated me, is the “Micro Granular Repainting”. This talks about having a XML files for both data and HTML and, repainting at the node level. Using this approach, it is possible to repaint the part of the page at the lowest level of granularity. In the next section, they talk about client side caching which is a relatively new idea with AJAX. Here they say that, it improves the response time and overall performance of the system. Use of caching reduces the number of requests for the server, which enables sever to handle higher number of users.
In the “Improve Perceived Response” section, they talk about “Lazy Loading” which is known by most of developers, mainly as a concept and a design pattern. However, I think it would be better if they give the brief description on “What is lazy loading”, at least for the completeness sake. “Lazy loading” as they suggest can reduce the initial page loading time. According to my experience, there are users who let the page load while he is doing something else and return after sometime. This type of uses might get irritated seeing that only a partially loaded page.
The research paper ends with nice set of test result that shows the success of this framework and design considerations. However, these results are taken relative to “insurance underwriting application”, and can change as the domain changes. Nevertheless, the underline facts of those search results suggest that such a change will not happen. According to my knowledge in AJAX and web applications it is clear to me that this framework will improve the responsiveness in any SOA based application regardless of the domain. I see a better future for SOA based applications through AJAX optimization which give you the total control over how, when, where your application should be loaded.
Reviewed By: Romesh Malinga Perera. Undergraduate, University of Moratuwa