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 the new paradigm shift of On- Server AJAX computing.
The AJAX hype had left enterprises behind with no adequate solutions for security concerns, cost of development, and needed complexities support. On-Server AJAX, offers revolutionary solutions to those concerns.
Typical AJAX = Client Server
The trend towards AJAX has not passed over enterprises and line of business applications.
On Server AJAX = On Server computing
The On-Server AJAX paradigm shift is lead by Visual WebGui.
The approach, coined by Guy Peled as On- Server AJAX, 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 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 there is no need to consider the screen as purely a 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 state.
On-Server AJAX, opens the path for enterprises to enjoy the AJAX evolution benefits
Server based computing platforms such as Citrix and Windows Terminal Services have grown in popularity as a result of no alternatives means of supporting heavy deployments of client-server line of business applications over web. Their costs are accordingly. On-Server AJAX paradigm shift allows for the first time, to support deployments of complex AJAX line of business applications in unprecedented simplicity, by-design security, no-limit complexities all at dramatically reduced costs.
Eliminating the security hazard, facilitating enterprises usage
Client side AJAX 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. 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 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 is a greater challenge to override, eavesdrop or hack.
In addition in On -Server AJAX, 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.
Developer Productivity in building complex enterprise level GUIs, as never before
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 web application is harder and more expensive to develop then an equivalent client-server application.
On-Server AJAX paradigm shift 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 innate statelessness. Instead On-Server AJAX 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.
Simplifying the architecture from a loosely coupled, stateless, multi-language/technology into a tightly coupled, object oriented, single language environment means less time is spent on architecture, development, debugging and maintenance ultimately improving ROI and TCO. In addition the layout and interaction design are not as limiting as most web oriented application development platforms.
On-Server AJAX developers also enjoy re-use of well honed skills (WinForms) and existing code which further improves productivity.
For technological Gurus opinion on On-Server AJAX productivity see:
MS MVP RICK STRAHNL on his blog: "Visual WebGui is intriguing. It is ridiculous how productive you can be with a tool like this compared to building an ASPX page. But somehow it feels like cheating."
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"
Highly optimized performance (purely desktop's) and user experience
On- Server AJAX only need to transfer the rendering engine code once and then transfer state and data changes as required. Ultimately they require more client/server round trips; however their bandwidth profile is kept at a minimum. This results in a highly responsive application which utilizes fewer resources by the server enabling it to handle more concurrent users. In On-Server AJAX 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"
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 is a key component of modern web applications and will continue to serve as the basis of many rich internet applications. AJAX is just a term, there are numerous AJAX technologies and techniques available and not all are created equal. As a whole, On-Server AJAX paradigm shift led by Visual WebGui provides a better way to design and develop complex, secure, robust applications in an effective and familiar fashion.
For samples of applications built on On-Server AJAX see:
Cognitive Load and the Superiority of Server-Side Ajax GUI Frameworks
Attacking AJAX Web Applications Alex Stamos, Zane Lackey iSEC
Ajax (programming) Wikipedia
Server Side AJAX for the Enterprise
What is Ajax
Ajax alert raises security, scalability issues