Overview
AJAX, a term coined by Jesse James Garret from Adaptive Path in 2005 has become a ubiquitous term for highly interactive and responsive web applications.
The evolution of the web closely resembles the evolution of desktop computing moving from the age of “dumb” terminals or the mainframe computing paradigm into the client server computing paradigm, into a new paradigm shift called On Server AJAX and now SILVERLIGHT computing.
The move to AJAX / SILVERLIGHT has left enterprises with no adequate solutions for security concerns, cost effective development cycles, and support for complex interactions and options for off-line operability.
On Server AJAX / SILVERLIGHT offers revolutionary solutions to those concerns and needs
Typical AJAX / SILVERLIGHT = Client Server
Client side AJAX / SILVERLIGHT is similar to Client Server computing in that it shifts much of the application logic to the client. It enables savvy Javascript developers to develop applications which make the most of the browser and the computer they’re running on, while freeing the server to focus on non UI tasks. Client side AJAX / SILVERLIGHT suggests that application flow and UI related logic be developed in DHTML and Javascript all connecting with server side “services” which can communicate as XML web services, plain text or JSON (JavaScript Object Notation).
The trend to adopt AJAX / SILVERLIGHT has not passed over enterprises and line of business applications
Developers are constantly trying to cope with ever growing demands while improving the overall user experience. However, AJAX / SILVERLIGHT have brought on new challenges when used in the enterprise. Securing direct connections between the client and server “services” is problematic; needing to master both client-side (Javascript, DHTML) and server-side technologies is a burden and ensuring consistent performance regardless of bandwidth and desktop computing power is near impossible.
On Server AJAX / SILVERLIGHT = On Server computing
The On Server AJAX / SILVERLIGHT paradigm shift is lead by Visual WebGui. The approach, coined by Guy Peled as “On- Server AJAX / SILVERLIGHT”, means the entire application flow, UI logic and validations are developed and processed on the server while the browser serves as a “display” for the output and a “receptor” for user input. As with Server based computing, On- Server AJAX / SILVERLIGHT simply reflects the “screens” to the client, captures user input from the client and reflects the incremental changes back to the client all over a highly optimized communications channel. In the case of On- Server AJAX / SILVERLIGHT there is no need to consider the “screen” as a purely graphical representation of the application – a bitmap, but rather it can be considered as a series of related components which change according to the application logic. In effect this is similar to how X-Windows communicates changes to X-Terminals by transferring component changes between the client “host” and the server’s state.
On Server AJAX / SILVERLIGHT, opens the path for enterprises to take advantage of the AJAX / SILVERLIGHT revolution
Deploying complex line of business applications on the web has traditionally required either rewriting the application using web oriented technologies and development patterns or employing server based computing platforms such as Citrix and Windows Terminal Services. These platforms have grown in popularity as a solution for supporting heavy deployments of existing client-server line of business applications. However, they are an expensive solution which usually serves as a last resort.
The On Server AJAX / SILVERLIGHT paradigm shift allows for the first time, to support deployments of complex line of business applications with unprecedented simplicity, bullet-proof security and unlimited complexities all at a dramatically reduced cost. With On Server AJAX / SILVERLIGHT applications can run in desktop or web mode using the same source code, and can be migrated from legacy code without requiring rewriting the application.
Eliminating the security hazard, facilitating enterprises usage
Client side AJAX / SILVERLIGHT requires the browser to connect directly to a web service or even a raw data provider. Since this is a very dangerous practice, developers usually connect to a proxy application service which understands the “context” of the request by recalling session state. There are numerous articles discussing the security challenges presented by client side AJAX / SILVERLIGHT. For consumer internet sites, the improved user experience has usually overridden the security concerns. However, for enterprise applications this is still a key concern.
On Server AJAX / SILVERLIGHT utilizes a client side “rendering” engine which communicates with the server over XMLHttp. The rendering engine uses a proprietary protocol to incrementally update the view. The client never consumes data or services directly since all of the application logic, UI logic and data access is handled on the server. The client simply connects to the “view” on the server and therefore never compromises security. Furthermore, since a proprietary protocol is used to correlate view state between the server and the client, it’s a greater challenge to override, eavesdrop or hack.
In addition in On -Server AJAX / SILVERLIGHT, the only data that is delivered to the client is data that can be viewed on the client meaning there is never any sensitive data that may be required for logic or validation beyond what is rendered and seen by the user on the screen.
Productivity in building complex enterprise level GUIs, as never before
While AJAX / SILVERLIGHT have brought a significant improvement in user experience and application complexity, it has also brought about a dramatic increase in the complexity of development and testing. Furthermore it requires developers to master a number of different languages: Javascript, HTML, CSS and XML on the client as well as the server side language being used to develop the underlying business logic.
A complex web application such as Microsoft Outlook Web Access or Salesforce.com also requires serious architecting skills in order to maintain application state, security and data integrity between local cached data and server side data. While historical, page based web applications were deemed easier and cheaper to develop then their desktop counterparts, developing a complex client based AJAX / SILVERLIGHT web application is harder and more expensive to develop then an equivalent client-server application.
The On Server AJAX / SILVERLIGHT paradigm enables the developer to use a single language and programming model in order to design the application UI and the underlying logic. In addition it alleviates the need to understand and deal with the web’s innate statelessness. Instead, On Server AJAX / SILVERLIGHT offers the use of well known design patterns and tools such as WinForms to design and develop highly interactive, data rich applications with the same productivity of desktop applications. This enables migrating existing desktop applications to On Server AJAX / SILVERLIGHT without rewriting them.
Simplifying the architecture from a loosely coupled, stateless, multi-language mix into a tightly coupled, object oriented, single language environment means less time is spent on architecture, development, debugging and maintenance. On Server AJAX / SILVERLIGHT dramatically improves ROI and TCO. In addition the layout and interaction design are not as limiting as most web oriented application development platforms.
On Server AJAX / SILVERLIGHT developers also enjoy re-use of well honed skills (WinForms) and existing code which further improves productivity. Furthermore, the same code can be used to create desktop and web based versions of the same application.
For technological guru opinions on On Server AJAX / SILVERLIGHT productivity see:
MS MVP RICK STRAHL on his blog: "Visual WebGui is intriguing. It's ridiculous how productive you can be with a tool like this compared to building an ASPX page. But somehow it feels like cheating...". "
http://west-wind.com/weblog/posts/180727.aspx
MVP ROY OSHOROVE on his blog:" "…Visual WebGui can help change the web development world and make it more usable, reachable and easier than ever…" http://weblogs.asp.net/rosherove/archive/2007/07/28/visual-web-gui-helps-me-write-in-winform-and-run-as-asp-net.aspx
Highly optimized performance enhances end user experience
Client side AJAX / SILVERLIGHT is meant to improve the responsiveness of the client. In most cases the user experience is improved, however it can have a dramatic effect on server load. Frameworks send across hundreds of lines of Javascript code over and over between requests, necessitating heavy I/O on the host web server generating a “large” bandwidth profile. Client side AJAX / SILVERLIGHT frameworks rely on the processing power of the client to handle caching, serialization, validation and paging. Performance varies according to the available resources on the client. Lower memory and slower CPUs could have an adverse effect on the user experience.
On- Server AJAX / SILVERLIGHT only needs to transfer the rendering engine code once after which only state and data changes are transferred as required. Ultimately this requires more client/server round trips; however the bandwidth profile is kept at a minimum. This results in a highly responsive application which utilizes fewer resources enabling servers to handle more concurrent users. In On Server AJAX / SILVERLIGHT the client only handles rendering of the current view state. This means that less client side objects and data need to be processed on the client (for rendering purposes) resulting in less client side resources being required. Ultimately this ensures all users receive uniform performance regardless of their memory and CPU limitations.
MS MVP WIKTOR ZYCHLA on his blog: ' VWG is the undoubted winner it did a great job of serving the highest number of requests per second"
http://netpl.blogspot.com/2007/06/aspnet- AJAX / Silverlight-framework-contest.html
Summary
As more and more applications turn to the web as the de-facto deployment platform the need for tools and development patterns to support complex user interfaces will grow. AJAX / SILVERLIGHT is a key component of modern web applications and will continue to serve as the basis of many rich internet applications. AJAX / SILVERLIGHT are just a term, there are numerous AJAX / SILVERLIGHT solutions and techniques available and not all are created equal. As a whole, the On Server AJAX / SILVERLIGHT paradigm led by Visual WebGui provides a better way to design , develop and deploy complex, secure, robust applications in an effective and familiar fashion.
For samples of applications built using On Server AJAX see:
http://www.visualwebgui.com/Community/Forum/tabid/53/forumid/-1/threadid/5247/scope/posts/Default.aspx
Bibliography:
“Cognitive Load and the Superiority of Server-Side AJAX GUI Frameworks”
http://blogs.pathf.com/agile AJAX / Silverlight/2006/08/cognitive_load_.html
“Attacking AJAX Web Applications” – Alex Stamos, Zane Lackey iSEC - http://www.isecpartners.com/files/iSEC-Attacking_ AJAX _Applications.BH2006.pdf
“AJAX (programming)” – Wikipedia
http://en.wikipedia.org/wiki/ AJAX _(programming)
“Server –Side AJAX / SILVERLIGHT for the Enterprise”
http://www.adtmag.com/article.aspx?id=21111
“What are AJAX”
http:// AJAX / Silverlightpatterns.org/What's_ AJAX
“ AJAX alert raises security, scalability issues”
http://searchsoa.techtarget.com/originalContent/0,289142,sid26_gci1162641,00.html