IBM was one of the early innovators with the AJAX techniques that are described in Richard Schwartz's Lotus Advisor article, "Develop Domino Web Applications the AJAX Way," in the October 2005 issue (subscribers can read it online at http://My.Advisor.com/doc/16905). He had a conversation with Vinod Seraphin, architect for Domino Web Access (formerly known as iNotes Web Access), to learn more about IBM's experiences with this technology.
Advisor: Are you surprised that AJAX has suddenly become such a popular approach to Web application development? Are you surprised it has taken so long to become popular?
Seraphin: No, we're not surprised it has become so popular. Many Web developers who were working with Internet Explorer 5 when it first came out were probably familiar with it. I'm somewhat surprised it took so long. I think what was holding it back was the lack of support for things such as XMLHttpRequest within other browsers. Users now seem to be upgrading to the latest browsers more quickly, so the barriers to developers more widely using these technologies have dropped. Adding a catchy name such as "AJAX" to these set of technologies has a lot to do with the popularity as well.
Advisor: Were there any example applications out there on the Internet that inspired you to push the boundaries of Web application design with DWA, or were you for the most part out there on your own?
Seraphin: Someone at Microsoft had built a version of the game Asteroids entirely in DHTML and was showing this as they evangelized the "Trident" engine in IE 4. This game, along with various MSDN articles and examples that showcased these rich DOM interaction capabilities, were what inspired me.
Advisor: When did IBM first decide that using XMLHttpRequest was a viable way to build Web applications?
Seraphin: I was working on a "WebPIM" prototype as part of the Lotus Organizer group to prove that DHTML could build "richer" and more robust applications than what we were trying to do with Java applets at the time. The "WebPIM" prototype always had a goal to use Domino as the data store. I then discovered that the Notes View applet which was used by the Domino 5 version of Web Mail was communicating to the Domino server using ?ReadDesign and ?ReadViewEntries -- two Domino URL commands that return XML. I became convinced this could all be done via DHTML and XML islands. XML islands use XMLHttpRequest functionality under the covers, but don't require ActiveX to be enabled on the browser. DWA uses XML islands for the IE version and the XMLHttpRequest object for Mozilla. I'm hoping IE will eventually support XMLHttpRequest as part of the native DOM (as Mozilla and Safari have now done), rather than require ActiveX to be enabled.
Advisor: What specific goals for DWA made the choice of this technique appropriate?
Seraphin: One of the primary goals for DWA was to be more scalable than the original Domino WebMail template. We adopted an architecture in which all view accesses are done via XML and then the HTML UI is managed via the DOM. This approach made more efficient use of HTTP and offloaded the UI formatting work from the server, helping us to achieve the goal.
Advisor: What have you found as the biggest challenge in the development and maintenance of DWA?
Seraphin: Browser regressions. Internet Explorer 6 went through a sequence of cumulative updates, which broke various things we were relying on, particularly as it related to XML responses and gzip compressed content. Updating our code to work around these problems or getting Microsoft to quickly issue a fix has probably been the biggest challenge.