ot so long ago, developers had to work directly with the XMLHTTPRequest
object or use some very rudimentary libraries to get any AJAX work done. When I wrote my first article about AJAX on DevX
in June of 2005, the technology was still in its infancy. Today, at least a dozen freely available AJAX frameworks offer features that can help developers accomplish even the most complicated tasks.
For this article, I tested how well the most popular non-commercial AJAX frameworks performed during the development of a dynamic call-center application. I put each of the following products through the development scenario:
- Direct Web Remoting (DWR)
- Yahoo! User Interface (YUI) Toolkit
- Google Web Toolkit (GWT)
This article presents my findings and reveals what developers should expect from working with each framework.
The Test Scenario
Traditionally, customer support applications are implemented as either thick clients or Web applications with some in-browser dynamic executables. The nature of customer support requires almost instant responses from the application, as well as a number of interactive features that enable diverse lookups for effective responses to customer demands.
These requirements make typical, non-dynamic Web applications unsatisfactory solutions.
The test application for this article is a very simplified call center application capable of servicing customer calls in real time. The most challenging and interesting aspect of the application is its integration with a corporate PBX and account management system (a Web-accessible simulator), which provide near-instant access to information about the caller and his/hers account.
The development and test environment for the application consisted of the following:
- For development, Eclipse IDE, Visual Web Developer 2005 Express Edition (for Web design) and PSPad
- To host the back end, Apache Tomcat 5.5 Servlet/JSP Container
- For browser testing, Firefox 1.5 and Internet Explorer (IE) 6, and IE 7
The call center application's interface has two main sub-panels (see Figure 1):
- On the left side, it displays the number of callers waiting to be answered.
- On the right side, it shows a dynamically populated display of the callers' information.
The account management system dynamically populates the right-hand panel with caller information as the customer service representative clicks on each caller waiting to be serviced. By displaying this information, the application enables the representative to greet the caller by name, as well as prioritize which call to answer first based on the information provided.