290-3 : Web-Based Services

Administrivia

Teaching Team 

Professor Erik Wilde

Email: dret@sims.berkeley.edu

Website: http://dret.net/netdret/

Office number: +1-510-6432253

Office Hours: Tuesday 3:30pm-4:30pm Thursday 3:30pm-4:30pm 314 South Hall

Course 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.

Course Information

SIMS INFOSYS 290-3

Course Dates: August 28 to December 6, 2006

Lecture Schedule: Monday Wednesday 9:00am-10:30am in 202 South Hall

Units: 3

Grading Option: Letter Grade only

Course Text

Required

Web Services, Gustavo Alonso, Fabio Casati, Harumi Kuno and Vijay Machiraju. Springer, October 2003. ISBN: 3-540-44008-9

Course Work

August 28 : Monday

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.

Required Readings

Required

Resources

August 30 : Wednesday

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.

Required Readings

Required

Sections 1-3 of Roger Clarke's Internet Primer

Resources

September 6 : Wednesday

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.

Required Readings

Required

Chapter 4.1 (pp. 93-97); Cool URI's don't change

Resources

Assignment 1: HTTP Content Negotiation for Language Selection assigned 

Due on September 13

Assignment details

September 11 : Monday

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.

Required Readings

Required

Resources

Assignment 2: Designing an HTML form for a Web-based service assigned 

Due on September 18

Assignment details

September 13 : Wednesday

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.

Required Readings

Required

Resources

Assignment 1: HTTP Content Negotiation for Language Selection due 

September 18 : Monday

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.

Required Readings

Required

Chapters 1 (pp. 3-27) & 4.2 (pp. 97-102)

Resources

Assignment 2: Designing an HTML form for a Web-based service due 

September 20 : Wednesday

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.

Required Readings

Resources

September 25 : Monday

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.

Required Readings

Required

Chapter 2 (pp. 29-66)

Resources

September 27 : Wednesday

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.

Required Readings

Required

Resources

Assignment 3: Using and Augmenting an HTTP Web Service assigned 

Due on October 9

Assignment details

October 2 : Monday

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

Required Readings

Resources

October 4 : Wednesday

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.

Required Readings

Required

Chapters 6.2 - 6.4 (pp. 155-185)

Resources

October 9 : Monday

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.

Required Readings

Resources

Assignment 3: Using and Augmenting an HTTP Web Service due 

Assignment 4: Using an XML Web Service assigned 

Due on October 16

Assignment details

October 11 : Wednesday

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.

Required Readings

Required

Chapters 6.5-6.8 (pp. 185-196)

Resources

October 16 : Monday

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.

Required Readings

Required

Chapters 7.1-7.3 (pp. 197-225)

Resources

Assignment 4: Using an XML Web Service due 

October 18 : Wednesday

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.

Required Readings

Required

Chapters 8.4 & 8.5 (pp. 276-294)

Resources

October 23 : Monday

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.

Required Readings

Required

Resources

October 25 : Wednesday

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.

Required Readings

Required

Resources

October 30 : Monday

Projects — Part III 

Project Work continues.

Required Readings

Required

Resources

Lecture Notes

November 1 : Wednesday

Projects — Part IV 

Project Work continues.

Required Readings

Required

Resources

Lecture Notes

November 6 : Monday

Projects — Part V 

Project Work continues.

Required Readings

Required

Resources

Lecture Notes

November 8 : Wednesday

Projects — Part VI 

Project Work continues.

Required Readings

Required

Resources

Lecture Notes

November 13 : Monday

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.

Required Readings

Resources

November 20 : Monday

XForms 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.

Required Readings

Required

Resources

November 22 : Wednesday

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.

Required Readings

Resources

November 27 : Monday

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.

Required Readings

Resources

November 29 : Wednesday

XForms — 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.

Required Readings

Required

Resources

Lecture Notes

December 4 : Monday

Mashups 

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.

Required Readings

Required

Resources

December 6 : Wednesday

Project Presentations 

The last day of the course is used for the course evaluation, project presentations, and a discussion about the course.

Required Readings

Required

Resources

Lecture Notes

last updated on 2006-08-24 by dret