The “X” stands for “XML,” but these days XML is not the only data format used by such libraries; it’s also common to see asynchronous data exchange in JSON, HTML, and plain text formats.
At this point, many people have stopped treating “Ajax” as a specific acronym and talk instead about the generic Ajax class of applications.
Ajax is used to extend a wide variety of web server application technologies. You can, of course, use it to enhance otherwise static HTML pages with data-driven content, but it’s more customary to couple Ajax on the client with scripted web servers.
Ruby on Rails makes adding Ajax features especially easy. Microsoft ASP.Net Ajax, as the name implies, enhances ASP.Net sites with Ajax features, and includes Visual Studio integration; the Microsoft Ajax Library can also be used with other types of sites.
Integrating Ajax libraries with Java/JSEE sites can be done manually with some effort, but tools and libraries such as the Google Web Toolkit, TIBCO General Interface, and ThinkCAP JX make it much simpler.
The heavyweight end of the RIA spectrum is shared by .Net Smart Client applications and Java Applets deployed over the web.
In both cases, the client computer needs to have a fairly large (more than 10MB) runtime engine installed before it can meaningfully download the RIA.
The middle of the RIA spectrum is occupied by runtime engines, development tools, and libraries that do more on the client than simple Ajax, and do it more quickly, but don’t have the overhead of the .Net Framework or the Java JRE.
Adobe Flash, Flex, and Shockwave are midsized RIA engines.
Curl falls in this category, as does OpenLaszlo, although OpenLaszlo can generate both Ajax and Flash applications.
Adobe Flex 3.0 promises much faster runtimes than Flex 2.0, and Adobe AIR promises a cross-operating system runtime that allows developers to use their existing web development skills to build and deploy rich internet applications to the desktop.
Meanwhile, Google Gears gives you a LocalServer, a Database, and a WorkerPool so that you can make web applications run on the desktop.