Web-based services have become popular since the Web was invented in 1989. The first wave of Web-based services were user interfaces to systems which before the Web could not be easily accessed over the network. This development made the Web as successful as it is today, as a medium delivering a globally accessible interface to services. The second wave of Web-based services are Web Services, using basic Web technologies (HTTP/XML) and robust protocols (WS-*) for implementing application programming interfaces and business-class composite applications. A more recent third wave of Web-based services uses lighter-weight protocols and ad-hoc design approaches to merge or "mash-up" information or services for use primarily by individuals. In this course, all facets of Web-based services will be examined, starting with server-side technologies for the Web, and then moving on to Web Services basics (SOAP/WSDL). Coordination and orchestration of Web Services are covered with BPEL, user interfaces to Web Services (XForms), and questions of how to design Web Services (openness and extensibility) are discussed as well.