Using a web browser to access online resources is convenient because it provides universal access from any computer on any operating system in any location. Unfortunately, it often results in a poor user experience because HTML is a weak and noninteractive display language and HTTP is a weak and inefficient protocol. Full-fledged browser-embedded programs (e.g., ActiveX components, Java applets) have not succeeded in penetrating the market adequately, so a new class of applications has grown up that uses only the capabilities already available in most browsers. These applications were first popularized by Google but have since exploded in popularity throughout the developer community. The techniques to implement them were based on a group of technologies collectively known as Ajax, and the resultant applications were richer than the relatively static pure-HTML-based web applications that preceded them. These applications have become known as Ajax applications, rich internet applications, or Web 2.0 applications. This course will examine techniques to develop and deploy Ajax applications. We will look at the underlying techniques, then explore client-side tools (e.g., jQuery), server-side tools (e.g., JSON-RPC), and hybrid tools (e.g., the Google Web Toolkit) to simplify the development process. As we delve into several popular client and server-side libraries, we will be examining and paying attention to issues of usability, efficiency, security, and portability.
605.202 Data Structures; 605.682 Web Application Development with Java or equivalent servlet and JSP experience.