Web services can be seen as an outgrowth of work on distributed information systems. Web services attempt to solve problems, such as service coordination and service composition, that distributed information systems have addressed in various ways (but not always successfully) in the past.

This course will look at the evolution of information systems and examine what new techniques and/ or benefits Web services bring to this field of study. In addition, the course will look at the creation of Web-based applications in general and examine alternative architectures for deploying services on the Web, such as the REST-style of Web application development and the set of Web development techniques currently labeled as “Web 2.0”.

This seminar course will meet once a week for 2 and a half hours each class session and will consist of a set of readings drawn from two primary textbooks and supplemented by readings from technical conferences and Web-based articles. Class time will be devoted to an in-depth discussion of the assigned articles as well as investigating several “real world” Web applications, such as those deployed by Amazon, Yahoo, and Google. In addition, students will have a chance to try out this technology as part of homework assignments and as part of their class presentations.

Students will be asked to lead the discussion on certain papers with the goal of getting each student to present at three times during the semester. (Students will be allowed to work together with another student on creating a presentation, if desired.) In addition, students will be divided into teams and asked to build a web service using one of the technologies discussed in class. The team will then write up a report that documents the project and its surrounding issues.

Course Goals

To cover the historical development and current status of Web services and investigate how they are being used in "real-world" Web applications, such as those built by Amazon, Yahoo, and Google. Other topics will include studying the REST style of developing Web applications as well as investigating how “Web 2.0” concepts relate to the Web services landscape. By the end of the class, students should be familiar with these concepts and have some experience both with building Web services and interacting with them programatically.

Kenneth M. Anderson, 2008