Web-Based Services

UCB iSchool INFOSYS 290-3 – Fall 2006

Instructor: Erik Wilde

Lecture & Lab: Mo & We 9.00–10.30, 202 South Hall

Description: 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.

Date Subject Slides Required Reading Resources
Monday, August 28, 2006 Overview and Introduction: While Web Services have received a lot of attention, they are only one specific set of technologies for implementing loosely coupled heterogeneous distributed systems. The term Web-based services used in this course is less focused on a specific set of technologies. Instead, it focuses on general principles of how to design services in a loosely coupled environment based on Web technologies. Introduction (36 Slides)
Wednesday, August 30, 2006 Foundations: Web-based services are using Web technologies for implementing services on top of an existing networking infrastructure. The most important concepts are the basics of computer networking, in particular the way how networking protocols are arranged in layers, so that different functionalities required in a networking infrastructure can be isolated and implemented independently. On top of the networking infrastructure of the Internet, the Domain Name System (DNS) provides name-to-address mappings. Foundations (42 Slides) Sections 1-3 of Roger Clarke's Internet Primer Internet vs. OSI · Official Internet Protocol Standards
Wednesday, September 6, 2006 Web Technologies — Part I: The Web assumes an underlying network infrastructure providing a reliable, connection-oriented, flow-controlled end-to-end transport service. Based on such a network service, the Web's transport protocols move data between Web servers and browsers. The two most important protocols are the Hypertext Transfer Protocol (HTTP) for regular data transfers, and HTTP over SSL (HTTPS) for encrypted data transfers. WWW 1 (36 Slides) Chapter 4.1 (pp. 93-97); Cool URI's don't change Apache Language Negotiation Setup
Monday, September 11, 2006 Web Technologies — Part II: The Hypertext Markup Language (HTML) and its ability to present forms has driven the first wave of Web-based services, which mostly provided Web forms for submitting data to some process being driven by such a Web-based front-end. The Extensible Markup Language (XML) then introduced the ability to represent application-defined data structures. XML is the most important foundation of almost all technologies in the Web and Web Service technology areas. WWW 2 (38 Slides) HTML Forms Introduction
Wednesday, September 13, 2006 Web Technologies — Part III: XML's three most important companions are XML Namespaces for combining XML names from different vocabularies; XML Schema for defining XML vocabularies; and XSL Transformations (XSLT) for transforming XML data into other structures, either another XML vocabulary, or something else entirely. These technologies are the basic toolbox for any Web-based technology today. WWW 3 (32 Slides)
Monday, September 18, 2006 Server-Side Web Technologies: Web-based technologies often are the glue that bind together heterogeneous applications. When Web-enabling applications (for user or for machine access), it is necessary to integrate Web technologies into the application. However, rather than implementing various Web technologies as an integral part of an application, it is often advantageous to let specialized Web components (like a Web server) handle the mechanics of Web interactions. Server-Side (28 Slides) Chapters 1 (pp. 3-27) & 4.2 (pp. 97-102) CGI Overview
Wednesday, September 20, 2006 PHP — Part I: PHP is a technology which can be used on the server side to process HTTP requests. PHP can access other web-based services by accessing them through various interfaces; and it can also be used to implement Web-based services by returning XML instead of HTML. This means that PHP can be used as a simple platform for Web-based services, both for the client and for the server side. PHP 1 (22 Slides) A Simple PHP Tutorial
Monday, September 25, 2006 Middleware: Middleware is a classical component of large heterogeneous distributed systems. The history of middleware is rooted in software engineering, based on the observation that programming abstractions can do two important things at the same time: (1) They can help to make programming more efficient by providing support for tasks that have to be solved repeatedly. (2) They can provide abstractions that hide heterogeneity, so that applications using these abstractions can communicate regardless of differences on lower layers. Middleware (27 Slides) Chapter 2 (pp. 29-66)
Wednesday, September 27, 2006 PHP — Part II: PHP is a server-based technology, but it can also act as a client. Using additional packages, a PHP script can request information from other servers. Snoopy is such an example, it implements HTTP and allows users to request resources from Web servers. In addition, Snoopy supports a methods to access these resources. The goal of this lecture is to introduce Snoopy so that it can serve as a foundation for further experiments when implementing Web-based services. PHP 2 (20 Slides)
Monday, October 2, 2006 XML-Based Services: Web-based services can be invoked using Web technologies, and provide results in some format. Web-oriented services often provide HTML as the result format, which is not well suited for processing. Application-oriented service often provide XML as the result format, which is easier to process and can be structured specifically for the needs of a service. One of the key questions when designing and using XML-based services is the underlying data model of the XML, and in this lecture we will XML-Based Services (32 Slides) XPath Chapter XPath QuickRef · SimpleXML processing with PHP
Wednesday, October 4, 2006 Web Services — Part I: Web Services (as the narrowly defined field as opposed to the broader topic of Web-based Services) are usually described as three technologies. The Simple Object Access Protocol (SOAP) is the format which is used to encapsulate XML payload and provides a common envelope format which can be interpreted and processed by all SOAP-aware applications. The Web Services Description Language (WSDL) is used to describe the interface to a Web Service which accepts SOAP messages. Using WSDL, code can be generated to more easily interface with the Web Service. Finally, Universal Description, Discovery, and Integration (UDDI) is a registry which can be used to search for WSDL documents. Web Services 1 (29 Slides) Chapters 6.2 - 6.4 (pp. 155-185)
Monday, October 9, 2006 Web Services — Part II: The basic Web Services technologies of SOAP and WSDL are being used by various companies to provide service access for B2B communications. Google and Amazon are two popular examples, with both companies providing access to their traditionally browser-based services through SOAP. Google has a very simple service, while Amazon's is much more complex, allowing more types of interactions with Amazon. In both cases, the service is not anonymous, so that service usage can be controlled. Web Services 2 (34 Slides) Amazon E-Commerce Service
Wednesday, October 11, 2006 Web Service Protocols (WS-*): SOAP is a format for message exchange between Web Service peers. SOAP does only define very basic semantics for message headers. A multitude of WS-* specifications has been developed to extend SOAP with semantics which can then be reused in various application scenarios. WS-* specifications range from very simple header conventions to highly complex infrastructures, depending on how complex the problem is they are trying to solve. WS-* (35 Slides) Chapters 6.5-6.8 (pp. 185-196)
Monday, October 16, 2006 Business Process Execution Language (BPEL) — Part I: The Business Process Execution Language (BPEL) is a language for describing business processes. It is an orchestration language, which means that it actively describes the ways in which individual services can be composed to implement a more complex service. BPEL can integrate external services (partner links) as well as human interactions, so that typical business processes can be easily mapped to BPEL descriptions. In most cases, users have a tool for designing and validating business processes, and another one for executing these processes. BPEL I (14 Slides) Chapters 7.1-7.3 (pp. 197-225) Do the Service Salsa
Wednesday, October 18, 2006 Business Process Execution Language (BPEL) — Part II: BPEL's processing model is based on the assumption that all import and export of data is done by using Web Services. BPEL differentiates two kinds of processes, executable processes and business protocols (abstract processes). While executable processes can be executed by a BPEL engine, business protocols use process descriptions that specify the mutually visible message exchange behavior of each of the parties involved in the protocol, without revealing their internal behavior. For the executable processes, BPEL provides a number of constructs for describing the behavior of such a process. BPEL II (41 Slides) Chapters 8.4 & 8.5 (pp. 276-294)
Monday, October 23, 2006 Projects — Part I: The course so far has covered the most important facets of Web-based technologies today. For the following three weeks, the course will consist of coached project group meetings, which are intended to apply the basic knowledge to a more challenging scenario. In the last of the three weeks, the teams present their scenarios along with their implementation plans. The scenario should take at least two of the course's topics and put them into practical use. Projects 1 (5 Slides)
Wednesday, October 25, 2006 Projects — Part II: Based on the discussions of last monday, project ideas will be developed and teams will choose a project idea or develop a new one for the following two weeks. The goal for the teams is to develop a feasible road map until next monday, where they agree on the goals, the methods and technologies to reach these goals, and a workload distribution among all team members. Projects 2 (13 Slides)
Monday, October 30, 2006 Projects — Part III: Project Work continues.
Wednesday, November 1, 2006 Projects — Part IV: Project Work continues.
Monday, November 6, 2006 Projects — Part V: Project Work continues.
Wednesday, November 8, 2006 Projects — Part VI: Project Work continues.
Monday, November 13, 2006 Representational State Transfer (REST): Representational State Transfer (REST) is an architectural style for building distributed systems. The WWW is an example for such a system. REST-style applications can be built using a wide variety of technologies. REST's main principles are that of resource-oriented states and functionalities, the idea of a unique way of identifying resources, and the idea of how operations on these resources are defined in terms of a single protocol for interacting with resources. REST-oriented system design leads to systems which are open, scalable, extensible, and easy to understand. REST (40 Slides) Second Generation Web Services RESTwiki
Monday, November 20, 2006 Adam BlumXForms and Mobile Services: Making Web-based services available on mobile devices is a difficult task, because mobile devices are limited in their technical capabilities, but yet require particularly well-designed interactions because of the limited ways how users can interact with them. Because of the fragmented adoption of WAP 2.0, it is hard to write browser-based Web-clients which provide easily usable interfaces. This talk presents an alternative approach, which is built around a specialized client-side J2ME implementation of XForms. Mobile XForms Mobio Networks
Wednesday, November 22, 2006 XML Schema Design Issues: In most scenarios today, structured data is exchanged using XML. For non-trivial data structures, it is important to have a schema for the data structures, so that users know what to expect and/or what to generate. XML Schema is the most popular language for XML schemas today. XML Schema has many powerful and complex features, which means that any problem can be solved in many different ways in XML Schema. This lecture describes some guidelines for writing well-designed, open, extensible, and well-documented XML schemas. Schema Design (39 Slides) Extensibility, XML Vocabularies, and XML Schema · Moving forward with Web services backward compatibility
Monday, November 27, 2006 XForms — Part I: HTML Forms are the weakest part of many Web interfaces, they provide limited datatype support, and require a lot of scripting for implementing user-friendly interfaces. XForms are a new technology for form-based data input with a clear separation of data and user interface issues. This way, XForms support device-neutral data input, where devices have a certain degree of freedom for presenting forms and acquiring input data. In addition, XForms are using XML as input and output format, thus making integration into XML-oriented environments easier. XForms 1 (41 Slides) What are XForms? XForms Tutorial
Wednesday, November 29, 2006 Micah DubinkoXForms — Part II: Micah Dubinko has been preaching the intentional web for years; he will discuss how these views fit in with contemporary thinking about the Web and life-after-browsers. Recent events from the W3C indicate that alternate approaches to XForms might be under W3C stewardship soon — Micah has lots of opinions to share about this as well. Based on his current work in the mobile industry, Micah will lead a discussion about industry use of XML, both public facing and internal. The format will less formal than a standard lecture, so be sure to bring your questions and opinions about XForms.
Monday, December 4, 2006 Raymond YeeMashups: The reuse or remix of digital content continues to be a hot topic in Web development. Not a day passes in which there is not some new mashup or novel combination of data or services. In this talk, I will demonstrate several examples of mashups, dissect them to show how they work, and discuss a general approach to understanding and creating your own mashup. We will make good use of concepts around XML and Web services in doing so. Mashups
Wednesday, December 6, 2006 Project Presentations: The last day of the course is used for the course evaluation, project presentations, and a discussion about the course. Projects (8 Slides)
Show Descriptions
Hide Descriptions

Creative Commons License please send comments to dret@berkeley.edu
last modification on Tuesday, 20-Feb-2007 15:59:23 EST
valid CSS! valid XHTML 1.0!