JonFerraiolo 2006November Why Ajax and OpenAjax

From MemberWiki

Jump to: navigation, search

Contents

Introduction

This white paper provides an analytical framework for the business benefits, costs, and ROI around leveraging Ajax. Intuitive approaches such as "essential to the business," "the results are too unpredictable" and "yields intangible benefits," usually are insufficient for today's upper-level decision-makers. Yet the fact is that most IT decisions are strategic, complex and differ from company to company. This paper attempts to define an analytic frame work for organizations to structure decisions on the degree with which they decide to introduce Ajax within an application and to some degree across the organization.

This document is the second in OpenAjax Alliance's series of white papers:

  1. Introducing Ajax and OpenAjax (this will be a hyperlink)
  2. Why Ajax and OpenAjax? (this document)
  3. Next-generation applications using Ajax and OpenAjax (this will be a hyperlink)
  4. Successful Deployment of Ajax and OpenAjax (this will be a hyperlink)

What is the business value of Ajax?

More productive users

Higher productivity with existing applications

Ajax is all about ways to create a more interactive and productive interaction between a user and a Web-based application. Because Ajax provides similar advanced user interface features to those in desktop applications (e.g., advanced UI controls, animated effects and adjustable layout controls), thereby providing the visual and interaction tools needed to make the application self-explanatory, users spend less time learning and operating the application. Ajax's partial page update feature minimizes user delays by eliminating the click, wait, and refresh (add link to first white paper) approach from pre-Ajax HTML applications.

New classes of applications (Web 2.0)

Ajax is provides the core capability for delivering the new classes of applications that fall under the umbrella term "Web 2.0" and that fit into an SOA architecture. Among the next-generation applications that will power the Enterprise and the Internet are the following:

  • Users as co-developers - New Ajax-powered environments, such as application wikis, are appearing that empower users to create their application mashups, enabling personalized dashboards and situational composite applications
  • Group and community collaboration - Ajax technologies are usually the centerpiece of Web 2.0 information collection and sharing environments that harness the collective intelligence of communities and the wisdom of crowds
  • Software above the level of a single device - Web 2.0 is accelerating the movement from installable desktop applications to Web-based applications, thereby leveraging the advantages of networks, information sharing, and user mobility
  • Cross-device applications (desktop and mobile) - Simultaneous with the adoption of Web 2.0 is the growing proliferation of Web-capable mobile devices. Ajax will power Web 2.0 applications across both large-screen desktops and small-screen mobile devices.

The companion white paper, Next-generation applications using Ajax and OpenAjax (add link), provides a broader and deeper discussion of the types of Web 2.0 applications that will be powered by Ajax.

More productive developers

Large ecosystem, wealth of frameworks and components

With so many Ajax commercial products vendors and open source initiatives, developers will find the off-the-shelf components, toolkits, frameworks, educational materials, and other resources they need to deliver and maintain next-generation Web 2.0 applications built with Ajax. With many open source alternatives, Ajax provides zero-cost licensing options.

Competition breeds innovation around developer productivity

Because much of the Ajax technology stack is typically available at zero cost (such as open source), vendors vie for your Ajax business by competing in terms of value-add Ajax products and services, where companies compete around which can offer customers the greatest value at the least cost, where developer productivity is front and center. The following are among the approaches uses by Ajax vendors to increase developer productivity:

Declarative UI

Many Ajax technologies provide declarative options (HTML/XML) for defining large parts of an Ajax application. These declarative options often automate large parts of the application development process and enable better leverage of IDEs.

IDE integration

Some Ajax libraries deliver various JavaScript-oriented application development convenience features, such as JavaScript packaging and debugging aids. Some Ajax libraries go even further and deliver full application development platforms, sometimes in conjunction with associated software products such as IDEs. IDEs sometimes provide both server-side and client-side debugging.

Strategic requirements

Movement to SOA

As the natural evolution of HTML, Ajax's platform-independent runtime technology is well-suited for next-generation service-oriented architecture (SOA) applications. Ajax offers standards compliance and platform independence on the client, while SOA offers similar benefits on the server.

Second phase of transition towards browser-based applications

Ajax offers a desktop-like user experience while retaining the benefits of server-based application deployment, centralized infrastructure administration, easier scalability and immediate availability of application updates to all users. As a result, Ajax is accelerating the movement away from installable, two-tier, client-server applications to multi-tier web applications.

Competitive imperative

The industry is embracing richer, more desktop-like, user interfaces for customer-facing web applications. In many circumstances, adopting Ajax techniques is becoming a business requirement to maintain parity with the rest of the industry and match growing user expectations about web-based user experiences.

In today's global economy, cost efficiency is more important than ever. Ajax techniques can help maintain efficiency competitiveness of internal systems.

Bandwidth management

As organizations grow and as applications move to the Web, bandwidth demands sometimes increase substantially. Ajax techniques enable applications to be developed such that small amounts of data are exchanged between client browsers and back-end servers, decreasing the among of HTML page processing and lessening bandwidth requirements versus traditional pre-Ajax programming techniques.

Incremental adoption due to HTML compatibility

Ajax can be added incrementally to existing HTML applications for a smooth and natural growth path to an Ajax-powered Web 2.0 and RIA user experience. Most of the technology behind Ajax is already familiar to the large pool of web developers who already know HTML and JavaScript. It is thus low-cost for developers to learn Ajax techniques incrementally as they deliver next-generation solutions over the course of time.

Because Ajax builds on HTML, it is fully compatible with the HTML application development infrastructure that exists today, including application servers (e.g., J2EE and .NET), server scripting languages (e.g., ASP, JSP and PHP), server application frameworks (e.g., JSF and Struts), web services, and service oriented architecture (SOA). Ajax holds the same scalability advantages as HTML. Ajax partial update techniques are the key incremental change to Web tier of existing applications.

Organizations have the option of moving from HTML to Ajax in a phased manner.

  1. Add snippets of Ajax code within an HTML application
  2. Use Ajax for the entire UI for one or more pages within a larger, primarily HTML web application
  3. Use Ajax for the entire web application
  4. Use Ajax as the basis for all web application development within your organization

Safety and longevity

Ajax delivers Web 2.0 functionality via open standards that are available widely as native features (i.e., without plugins) in popular browsers. The standards used by Ajax are stable, long-established and controlled by community-based standards organizations, such as the World Wide Web Consortium (| W3C).

Open source

The Ajax phenomenon has benefited greatly by the many open source projects focused on Ajax. These open source project provide a zero-cost option for adopting Ajax, provide developers the ability to add critical enhancements or fix critical bugs, and leverage the power of community development.

What are the costs with Ajax?

Ajax adoption costs depend on the circumstances of the application you are developing. In cases where Ajax snippets are added incrementally to existing HTML applications, incremental costs associated with Ajax adoption can be small. On the other extreme, if the Ajax deployment strategy requires significant retooling of the existing IT infrastructure and significant retraining, then costs will be higher. (Various options for deploying Ajax solutions are described in "Successful Deployment of Ajax and OpenAjax" [add link].)

The sections below highlight some of the typical costs associated with adopting Ajax.

Developer education

Ajax techniques require developers to learn techniques on both the client side and server side.

On the client, the developer may need to become familiar with one or more Ajax client-side toolkits, along with programming techniques for incremental DOM updates, XHLHttpRequest-based client-server communications, and asynchronous communications event handling. Most of these techniques are incremental knowledge on top of existing expertise with HTML and JavaScript.

On the server, the re-education requirements depend on the Ajax toolkits in use. For client-side Ajax toolkits (add link to 4th white paper), server-side changes may or may not be necessary. If necessary, the developer will need to become familiar with (relative new) server-side Ajax APIs that have been added to server-side frameworks. For server-side Ajax toolkits (add link to 4th white paper), typically the developer will need to educate himself on the framework.

Turnkey Ajax environments vs customizable Ajax toolkits

Most Ajax applications leverage an Ajax framework but still require some level of customization by your development team. A key factor in calculating the cost of adopting Ajax is the amount of customization work that will be required to complete the task. If the Ajax framework's built-in features are sufficient for your needs, then your Ajax development costs will be lower.

End user retraining

For new applications, because Ajax provides a rich desktop-like user experience, Ajax applications often are more self-explanatory than non-Ajax HTML application, thus often resulting in lower retraining costs.

For existing applications that are modified to take advantage of Ajax techniques, end users will require retraining.

New issues to manage

In general, because of its HTML foundation and its strong compatibility with existing HTML and back-end infrastructures, Ajax offers similar IT management issues with HTML. One key difference is that Ajax techniques offer developers techniques that can be misapplied in manners that might negatively affect network performance.

Like anything else, the Ajax technique of partial data exchange can be misapplied such that server and network loads increase in an undesirable manner. It is thus important that Ajax developers are made aware of the importance of these issues and that bandwidth behavior is tested before applications are deployed.

Another concern is misapplication of Ajax push techniques, where Ajax toolkits enable servers to push incremental data to clients (i.e., without requiring clients to poll periodically). The same recommendations apply in this case: developer education and pre-deployment testing of the application's network behavior.

Mashups enable the ability to plug in 3rd party components, with potential security implications. It is recommended that IT managers establish a company policy on mashup products and technologies, such as only allowing Ajax components from trusted sources and/or installing secure gateway facilities that control the domains with which particular Ajax components can communicate.

TCO and maintainability

In deciding whether to adopt Ajax for a given application or choosing a particular Ajax toolkit for your project, it is important to take into account TCO issues and long-term maintainability of the client and server side logic within the application. Typically, each Ajax toolkit has its own features, markup and APIs. Long-term maintenance costs will be minimized if the application uses a popular Ajax toolkit that is familiar to a large pool of developers and by ensuring that the Ajax toolkit is OpenAjax Conformant. (See Importance of OpenAjax Conformance.)

Assessing application characteristics and requirements

The following sections describe the key considerations in cost/benefit analyses of adopting Ajax and determining ROI.

Interaction and user experience requirements

If a given application requires either high levels of responsiveness to the user (i.e., it is undesirable to adopt the old-style click, wait, refresh [add link] technique from HTML) or requires a self-evident, desktop-like user interface (e.g., to reduce training costs), then Ajax techniques can reduce user wait time and improve productivity in a measurable way.

Network bandwidth requirements

Applications that generate high levels of network activity often benefit from Ajax techniques by leveraging Ajax's partial data exchange and partial page update features.[add link] Ajax techniques often replace full page requests with small data exchanges, reducing network bandwidth requirements, minimizing server CPU processing, and improving response times.

Scalability requirements

Large and/or growing user populations require a scalable application deployment architecture. In such scenarios, it is critical to determine whether the Ajax-enabled application offers appropriate scalability characteristics.

Mission critical nature of the application

The greater the strategic value of the application, the greater the investment in RAS required. Highly mission critical applications may be less desireable early candidates, but offer the highest ultimate return.

Application architecture considerations

Ajax increases the feasibility of an effective SOA architecture.

Complexity of database interaction

Ajax will be more difficult to apply in situations which do not have a good separation of back-end databases from web-tier application logic. Relevant questions:

  • Is the application tightly coupled to a backend database?
  • To what degree is transaction integrity and recoverability critical?
  • How tightly coupled is the Ajax solution to the back end?

Real-time nature of the underlying application

In general real time monitoring and realtime or near realtime business applications benefit significantly from Ajax, pariticularly the push technologies that are available in some Ajax toolkits.

Systems integrator requirements

If the application requires involvement of a systems integrator, then it is important to determine the familiarity of the systems integrator with Ajax and the Ajax toolkits that you plan to use on the project.

Importance of OpenAjax Conformance

The OpenAjax Alliance is dedicated to the successful adoption of open and interoperable Ajax-based Web technologies and to promoting a customer's ability to mix and match solutions from Ajax technology providers. As part of these goals, OpenAjax Alliance will produce various specifications that define OpenAjax conformance and promote Ajax interoperability. These specifications promote customer safety and choice. As these specifications emerge, customers should require OpenAjax Conformance from their Ajax vendors to increase their interoperability, safety and choice.

Conclusions

Ajax enables more fluid integration and a much richer experience at the user level. In general users will respond very positively to any thoughtful Ajax implementation.

That said, arriving at estimates of return is the most difficult challenge for IT managers and executives. Like other IT initiatives Ajax is a business project supported by IT, not the other way around. Therefore, ultimately the business is responsible for the ROI estimation. IT can support and even lead the effort by providing the proper questions that need to be asked of the business and helping generate the answers through interactive sessions and controlled experiments. A prototype with actual business data helps to generate the answers needed to estimate ROI. Also the establishment of a IT-User team to facilitate the business driving the direction of the Ajax effort can be a forum for confirming and refining ROI estimates.

Personal tools