WP2 - Next-Generation Applications Using Ajax and OpenAjax
NOTE: This wiki page holds one of the 4 white papers that are under collaborative development by the Marketing Committee. Together these 4 white papers will represent the 2nd generation set of white papers produced by OpenAjax Alliance. When completed, the white papers will be posted as HTML and PDF files on the OpenAjax Web site.
The OpenAjax Alliance has assembled a set of white papers as a guide to help Web developers and IT managers understand and evaluate Ajax, define a successful Ajax strategy, and become familiar the important role OpenAjax plays in the development of the Ajax market.
The white papers are:
- Introducing Ajax and OpenAjax
- When Does Ajax Make Business Sense
- Next-Generation Applications Using Ajax and OpenAjax
- Successful Deployment of Ajax and OpenAjax
Next-Generation Applications Using Ajax and OpenAjax
This article examines the next-generation applications that Ajax and OpenAjax make possible and the productivity improvements that these technologies bring to application developers.
Ajax enables the next-generation of Web applications, which provide a richer user experience, enhanced user productivity and lower development costs.
Replacement for desktop 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.
The runtime companion for 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.
Mashups, dashboards and other composite applications
Ajax enables mixing and matching of multiple component technologies within the same application. This enables Ajax developers to build composite applications that leverage best-of-breed Ajax technologies from multiple suppliers, achieving many different types of composite applications:
- Mashups - A mashup is a website or web application that uses content from more than one source to create a completely new service. One concrete example is a custom mapping application that talks to a company's own server to pull down XML address data and then leverages mapping services (e.g., Google or Yahoo) to show a map view in combination in an application-specific custom user interface. Mashups often enable rapid application development by integrating ready-made third-party components.
- Portals and dashboards - Portals and dashboard applications consist of multiple panes that often can be configured by the user. Often, each pane is a separate application. Ajax technologies can be used to manage the entire composite application and its integrated applications.
- Service compositions - In an SOA environment, composite business applications assemble multiple application services to create new functionality that supports innovative business processes. In some cases, the services from which the new application is composed have no user interface, so the composite application is completely responsible for the user interface. In other cases the services do have user interfaces, so that the composite application knits together not only back-end behavior components, but user interface components as well.
Ajax enables collaborative applications, such as:
- WYSIWYG collaborative content creation - Web-based collaborative applications such as wikis can leverage Ajax to transition from users having to learn arcane wiki markup languages to a WYSIWYG user experiences, comparable to what users experience today with desktop content creation tools.
- Planning - A work group or social group can use an Ajax-powered application to work together to plan and schedule their activities.
- Information and content sharing - Ajax enables richer sharing of information and experiences, enabling convenient user interfaces for posting content (including multimedia content) in environments that enable tagging, attaching annotations, or marking up document and photos.
- Next-generation chat and instant messaging (IM) - Ajax enables web-based messaging applications that run in the browser.
- Web meetings and whiteboarding - Ajax's rich user interface, network programming, and vector graphics features provide the infrastructure for browser-based web meetings and shared whiteboards.
Collaboration capabilities are based on XMLHttpRequest and other network communications technologies.
An important new application area is the Ajax-powered wiki, where wikis go beyond text-based collaborative documents into the following scenarios:
- Rich, lightweight portals – Ajax-powered wikis enables fast deployment of Enterprise rich dashboards by allowing a wiki page to contain both text content and Ajax-powered user interface components, such as data grids, forms fillout, mapping, and charting.
- Personal mashups and dashboards – Many leading Internet companies provide the option today for customized home pages. When personalization is paired with Ajax-powered components and wiki back-end services, IT gains easy deployment and end-users gain the ability to manage their view on information.
Cross-device applications (desktop and mobile)
Ajax offers multiple approaches to achieving cross-device applications:
- Use a mobile subset of Ajax - The W3C and the Open Mobile Alliance (OMA) are working together to standardize appropriate mobile subsets of XHTML, SVG, CSS and ECMAScript to take into account the constraints of today's mobile devices, and combine them together to form a mobile standard for rich content using Ajax, WICD Mobile.
Next-generation application development
The combination of Ajax and OpenAjax promote easier delivery of rich Web experiences that build on open standards while achieving lower development costs.
Ajax leverages a combination of open technologies that are native to browsers. Most are official Web standards, while many of the rest have been implemented widely in browsers but have not been formally recognized by a standards body:
- HTML -- often delivered via well-formed XHTML
- CSS -- for marking up and styling information
- DOM and DOM Events -- for client-side scripting APIs that interact with and control the web page
- XMLHttpRequest -- for client-server communications without requiring page refreshes (not yet an official standard, though under consideration by the W3C)
- XML -- a format for transferring data between the server and client (other formats can be used with Ajax, including preformatted HTML, plain text and JSON)
- SVG -- the standards-compliant vector graphics component for web pages (supported by recent releases of popular browsers; browsers that do not yet support SVG, Ajax libraries use other vector graphics support, such as VML in Internet Explorer)
Ajax builds on open standards that are widely available as native features (i.e., without plugins) in popular browsers. In most cases, Ajax restricts itself to the commonly implemented subset of particular standards (e.g., DOM2 and DOM3, which are not supported completely yet) or sometimes supports commonly implemented extensions (e.g., the innerHTML property within the DOM is implemented by most popular browsers but is not covered by W3C specifications).
While open source software is not mandatory for Ajax projects, a large part of Ajax's momentum is due to the open source community's commitment to Ajax. Today, many Ajax open source projects bring the power of community-based open development models and no-cost licensing models to developers. Here are some of today's Ajax open source projects:
Platform independence (OS, server, browser, IDE)
One of the main attractions of Ajax is that it does not lock developers to a particular hardware platform, operating system, application server, web browser or IDE. Developers are free to choose among many technology providers, commercial and open source, to find the products or open source technologies that best match their unique requirements and preferences, while achieving the key benefit of write-once, run-everywhere, across multiple computing devices, operating systems, and web browsers.
Compatibility with HTML and existing web development technologies
Ajax 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).
Option for phased adoption
Organizations have the option of moving from HTML to Ajax in a phased manner.
- Add snippets of Ajax code within an HTML application
- Use Ajax for the entire UI for one or more pages within a larger, primarily HTML web application
- Use Ajax for the entire web application
- Use Ajax as the basis for all web application development within your organization
Multiple alternative Ajax programming models
Ajax offers a wide range of architectural options. This diversity allows Ajax developers to choose from many different commercial products and/or open source technologies to find the ones that best match their existing application development infrastructure and technology preferences.
Developer productivity gains
Developer is fully empowered, but many opportunities exist for higher abstraction levels
With Ajax, the learning curve is shortened and investments minimized since application execution relies on Open standards support in web browsers. As a result, existing development and deployment frameworks and techniques still apply. The developer works in an environment he knows well and keeps full visibility and control, with the ability to code and debug all the way down to the DOM calls that affect what the browser displays. But Ajax also provides productivity advantages. Ajax toolkits typically offer declarative markup and APIs at higher abstraction levels and take care of lower-level details automatically.
The result is that Ajax offers the best of both worlds: automation advantages while still leaving the developer fully empowered.
Large ecosystem, off-the-shelf components
With so many Ajax commercial products vendors and open source initiatives, developers are likely to 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.
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.
Data management and data binding
Ajax libraries often provide the following features to enable client-side management of data:
- Data providers (e.g., web services)
- Bi-directional data binding between client-side data blocks and associated UI controls
The role of OpenAjax Alliance
The OpenAjax Alliance plays a key role in defining key Ajax interoperability standards and educating the community on how to be successful with Ajax applications development. The OpenAjax Alliance's various activities are key enablers to fulfilling the Ajax promise of lower-cost development of rich user experiences.