Ajax

Is AJAX Here to Stay?

by Jordan Frank
October 05, 2005

<script type=“text/javascript“ language=“JavaScript1.1″
src=“http://ad.doubleclick.net/adj/xml.ds/art;abr=!ie;pos=_art;sz=336×280;ord=1196040227?“></script>

Advertisement

Web development in general recently emerged from a long period of
stagnation. While the web browser has become a de facto operating
system for the enterprise application, there used to be only two
realistic options for developing them:

  1. Build simple web apps that work in any web browser on any operating system.
  2. Take advantage of browser-specific „bells and whistles“ to make
    more advanced web applications. These applications would generally be
    limited to a single browser on a single operating system or require a
    special plugin like Flash or Java.

There was no way to create intelligent, interactive web applications
without programming for a very specific environment, which led to very
poor quality internet applications, or to vendor lock-in. Consequently,
many organizations have been reluctant to commit resources towards
applications that would only work in very specific, controlled
environments, and for good reason.

All of this is changing. Web browsers have reached a critical common
threshold that allows powerful web applications to be written in much
the same way across platforms, using mature techniques, and without any
proprietary plugins. The building blocks of these applications are (X)
HTML, CSS, JavaScript, and XML. These work in conjunction with a
component that allows the browser to communicate with the server
programmatically (XMLHttpRequest), and we have what is now being
referred to as AJAX, or Asynchronous JavaScript and XML.

What Is Asynchronous JavaScript?

One of the most frequently discussed aspects of AJAX is the
XMLHttpRequest object, which is the component that the browser uses to
create this asynchronous interactivity. It’s asynchronous because the
user can communicate with the server without the page refresh that is
usually required. With AJAX, we only get the data from the server that
we absolutely need, not the whole page. More importantly, data can be
posted to and retrieved from the server after the entire page is
loaded. This can be leveraged in creative and powerful ways to create a
more fluid browsing experience.

Traditional Web Architectures

AJAX-Based Web Architectures

(Thanks to Jesse James Garrett of Adaptive Path for these illustrations.)

More than Just Hype

There is an enormous amount of hype surrounding AJAX, as well as
criticism. It’s only natural that there is a great amount of skepticism
about whether AJAX will be just another passing fad, but some very big
names in software are jumping on the bandwagon, and it seems likely
that AJAX is here to stay. Google is generally thought of as an AJAX
pioneer, with applications such as Google Suggest, GMail, and Google
Maps all making extensive use of the underlying techniques. Microsoft
has also announced that it will be releasing an AJAX toolkit called
Atlas that will ease the development of rich web applications in
ASP.Net. In the last six months, the number of AJAX-based libraries and
tools has flourished in both the commercial and open source sectors,
creating many options for developers who want to use AJAX with minimal
effort. Web-based resources like AjaxInfo (www.ajaxinfo.com) and Ajaxian (www.ajaxian.com) popularize new AJAX tools and techniques with incredible speed.

Other technologies that could be used to develop rich internet
applications include XUL, XAML, Java, Flash, and SVG. XUL is a
high-performance markup language for creating rich, dynamic user
interfaces. It’s part of the Mozilla browser and related applications,
and is available in Mozilla browsers (like Firefox). XAML is a
high-performance markup language for creating rich, dynamic user
interfaces. It’s part of the Windows Presentation Framework,
Microsoft’s next generation UI technology, and will be supported in
future versions of the Internet Explorer browser. A Java Applet is a
program written in JAVA that can be included on a web page. Applets are
programs that require the proprietary JAVA plugin from Sun in order to
run. Macromedia Flash is a powerful presentation-layer framework that
comes preinstalled on most PCs and Macs. It’s possible to use Flash to
build web-based user interface components that are highly configurable.
SVG is an XML-based graphics language that describes images with vector
shapes, text, and embedded raster graphics. It can be integrated with
XML data sources or SMIL (Synchronized Multimedia Integration
Language). It has good interoperability with CSS and JavaScript.
Therefore SVG will not compete with AJAX but complement it nicely once
it matures.

Related Reading

XML Hacks

XML Hacks

100 Industrial-Strength Tips and Tools

By Michael Fitzgerald

Table of Contents

Index

Read Online–Safari
Search this book on Safari:

 

Only This Book
All of Safari

Code Fragments only

When compared to competing UI technologies like XUL, XAML, Java,
Flash, and SVG, we begin to see why Ajax is such a big deal. Many of
these alternatives offer opportunities for similar functionality with
as-good-if-not-better UI capabilities, but either force the user to
install plugins, as is the case with Flash, Java Applets, and SVG, or
limit her to a specific browser or operating system, as is the case
with XUL and XAML. In fact there are many examples of Flash and SVG
being used in conjunction with AJAX to provide an even more immersive
user experience. Ajax offers the chance for developers to start writing
rich applications without learning new skills.

AJAX in the Enterprise

Is AJAX ready for the Enterprise? The answer to this question may
lie in its relationship to open standards, vendor lock-in, conformity
to popular skill sets, and web services and service-oriented
architectures.

  1. Open standards are preferred by corporations who do not want to be
    tied to a specific vendor or plugin for their mission-critical systems.
    The building blocks of AJAX, (X)HTML, CSS, JavaScript, and XML, are all
    open standards supported widely across different browsers and
    platforms. Some alternatives to AJAX do not enjoy the same level of
    ubiquity. For example, XUL and XAML are both browser dependent, while
    Java, Flash, and SVG all require proprietary plugins.
  2. Vendor lock-in has always been an issue for IT investment, and
    continues to be on the web. By avoiding proprietary technologies on
    which to build large-scale enterprise applications, firms are
    mitigating some long-term financial risk. AJAX is a set of technologies
    that are based on open standards and partially avoids the issue of
    vendor lock-in.
  3. Another big selling point for AJAX is the way web developers who
    are familiar with the underlying technologies can begin developing with
    AJAX relatively quickly, while the learning curve for alternative
    technologies is comparatively steep. By leveraging the synergies of
    skill transference, firms do not have to invest in significant
    retraining of their developers.
  4. Service-oriented architectures (SOA) have been gaining popularity
    in major enterprises around the world for several years now. SOA is an
    approach to building large distributed systems on a composite set of
    loosely coupled business services. Just about every major enterprise
    software vendor has an SOA strategy and product suite match. In many
    SOA models, business services are exposed through XML web services, and
    AJAX clients are ideal consumers of these services.

The question then becomes, is the AJAX platform powerful enough to
build enterprise-quality Rich Internet Applications (RIA). This issue
is highly debated in the web development community (http://blogs.ebusiness-apps.com/dave/?p=32). Here are some of the arguments against AJAX for RIA:

  1. There is a stigma attached to using JavaScript to accomplish any
    intensive processing tasks since JavaScript is an interpreted scripting
    language, and quite inefficient. That said, the average desktop
    computer is becoming more powerful. In the past, most JavaScript
    applications only performed very simple tasks where efficiency is not a
    concern, and so techniques for writing efficient JavaScript are not
    widely known. As AJAX matures, coding standards will improve and push
    the language to its limit. As this happens, the efficiency argument
    against using AJAX for Smart Client implementations will weaken.
  2. As an interpreted language, JavaScript must be sent up to the
    client as source code. This causes problems for protecting intellectual
    property, since the source code must be distributed to anyone using the
    application. There are techniques for obfuscating the JavaScript, but
    like all copy protection they just make it a bit harder to steal, not
    impossible. This argument fails for a number of reasons, though.

First of all, Java suffers from a similar problem, with source code
weakly protected in its distributed form. This, however, has not
stopped businesses from deploying large Java-based applications.
Another reason this argument fails in an SOA environment is that the
AJAX application doesn’t need to possess all the business secrets
required for the program; they just need to orchestrate the business
services that perform these activities.

This broad argument against using AJAX in the RIA realm may be
somewhat short sighted. Within an enterprise, the need for
interoperability may outweigh more fine-grained standards centering
around performance, IP, and code inefficiencies. Consequently, looking
into the future, approaches like AJAX which focus on platform
independence and RIA will become important in the realm of enterprise
applications.

Conclusion

The trend in web application development is towards open standards
and vendor neutrality. Current HTML web applications don’t provide the
user experience users have come to expect, so the development community
has long needed a viable technology suite to develop rich internet
applications. AJAX fits all of these requirements and has experienced
significant uptake by developers and enterprises over the last year.
It’s always challenging to predict technology trends, but if we look
back at Java’s evolution we can see that there are a number of
similarities.

A decade ago, Java was going to revolutionize the way that
developers built applications. Instead of building different versions
of an application in order for them to run on different operating
systems, developers could target the Java Virtual Machine, and then
their software would run on Macs, Windows, and Unix-based platforms
without any further customization. Huge corporate information systems
are being built on the Java platform, and a number of large client
applications are also built using Java. Java also suffered from
performance and usability issues related to poor user-interface
libraries, but overall it was quite successful.

As internet applications became more prevalent, we ran into the same
problems of being forced to either write software to target a specific
environment, or be very limited in the quality of the user experience.
Technologies like HTML, CSS, and JavaScript gradually evolved with the
promise of providing a platform on which very powerful applications
could be based, but that promise was unfulfilled until now. Now that
all the major web browsers have relatively consistent support for the
technologies AJAX requires, AJAX will become a crucial piece in the RIA
puzzle and will offer the potential for dramatically more powerful and
user-friendly web applications.

–>


Related Articles:

Remote Scripting with AJAX, Part 2
In part one
of this two-part series, Cameron Adams created an example application
that showed how to use remote scripting to implement the AJAX
XMLHttpRequest protocol. Now, in part two, he shows how to create a
usable interface for the example app.

Remote Scripting with AJAX, Part 1
In this two-part series, Cameron Adams demonstrates the advantages of
using remote scripting with the AJAX XMLHttpRequest protocol to create
web apps and improve website functionality. Here in part one, he
creates an example application that shows how to implement
XMLHttpRequest. Stay tuned for part two, where he’ll show how to create
a usable interface for the example app.

Build AJAX-Based Web Maps Using ka-Map
By using AJAX, Google’s maps draw and zoom quickly, pan smoothly, and can be
extended to display a wide variety of information. This article by Tyler Mitchell shows how to
make similar AJAX-based web mapping sites using an open source toolkit called ka-Map. Tyler is the author of Web Mapping Illustrated.

Life After Ajax?
Micah Dubinko says that the way Ajax technologies are presently
deployed will eventually run into complexity barriers. It’s time, he
claims, for more declarative, markup-based alternative strategies.

Errors and AJAX
AJAX is hot, but is it real? How mature are the techniques, and can you
use them right now? Joshua Gitlin offers a method for trapping
client-side JavaScript errors and logging them, server-side, with AJAX.

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s