Tuesday, April 22, 2008

Project 3 presentations

Monday, March 31, 2008

Project 2

Due Date: Wednesday, 30 April (firm)

Group project

Functional and Architectural Requirements

In this project, you will have the opportunity to implement a resource-oriented reservation system. You should follow these requirements, using your web application from the previous semester as a starting point.

Overall, you should follow the architectural and design principles outlined here:
Your system should support at least two representations:
  • XHTML (suitable for a human user)
  • JSON or concise XML (suitable for a programmatic client)
The key conceptual component of this project is to map the uniform REST verbs to the functionality described in the requirements. To some extent, we should do this part as a group in class and through the mailing list. The example from chapter 7 of the REST book should help as well.

Other Non-Functional Requirements

  • The project is managed using Maven.
  • Restlet is used to expose the given functionality in a resource-oriented form. Where appropriate, suitable representations should be included that make the functionality accessible through a web browser (XHTML). Otherwise, the functionality should be accessible through a suitable client also implemented in Restlet (JSON or XML).
  • There should be a comprehensive test suite involving direct and client-based testing (using the chosen data representation) of the available functionality.
  • Persistence is provided using Hibernate as in your web application starting point, or you may switch to db4o instead.
  • Dependencies should be managed using the Spring framework.

Submission

Please use the repository for your group for collaboration and notify me when your work is ready for me to review. No explicit submission will be required.

Project 3

Due Date: Wed 9 April (outline); Mon 21 April (presentation)

Group project

Description

In this project, you will have the opportunity to investigate a topic of interest in the area of web services.

Given the remaining time of the semester and the length of each presentation, you are not expected to conduct an exhaustive study of your topic. The purpose of this project is for you to find and present some starting points for using a particular technology or discuss the utility of some general approach. Please consult with me if you have any questions.

Deliverables

This project consists of the following deliverables:
  • Brief outline of your presentation due on 9 April.
  • Brief (15-20 minutes) in-class presentation of your findings (followed by up to 5 minutes of questions) on 21 April or before.
  • Accompanying materials, such as electronic copies of your visual presentation, code examples, etc.

Possible topics

Here are some possible topics:
You are welcome to choose other relevant topics pending my approval.

Submission

Please refer to the online submission procedure. Each team is to make exactly one submission. Any written materials should be submitted either in PDF format or through Google Docs.

Monday, February 25, 2008

Project 1

Due Date: Wednesday, 26 March

Group project

Functional and Architectural Requirements

In this project, you will have the opportunity to implement a service-oriented voter registration system. The system consists of the following components.
  • Voter registration web service with the following capabilities:
    • set current ZIP code (stored in HTTP session scope)
    • register a voter (stored persistently, generates a confirmation number)
    • check whether a voter is registered
    • modify a voter
    • remove a voter
    • list all registered voters
  • Voter registration client that exposes the capabilities of the web service through a simple command-line interface.
For each voter, at least the following information is captured:
  • confirmation number as unique key
  • name
  • zip code

Other Non-Functional Requirements

  • The project is managed using Maven.
  • Both the service and client should be equipped with comprehensive test suites.
  • CXF is used to implement the web service and client using wsdl2java.
  • Spring session-scoped proxies are used for data in session scope.
  • Persistence is provided using Hibernate.

References

  • Example projects
    • LinearRegressionMaven (442 repository)
    • CXF examples in 433 repository
  • CXF documentation
  • Hibernate documentation
  • Maven documentation

Submission

A repository for each group will be created shortly. No explicit submission will be required.

Monday, February 4, 2008

Tentative weekly course schedule

Week 1

  • organizational matters
  • overview

Week 2

  • distributed information systems

Week 3

  • middleware

Week 4

  • enterprise application integration
  • web technologies

Week 5

  • quiz 1 (after the lecture)
  • web services
  • basic web services technology

Week 6

  • basic web services technology

Week 7

  • service composition

Week 8

  • quiz 2 (after the lecture)
  • service coordination

Week 9

  • service composition using representational state transfer (REST)

Week 10

  • service composition using representational state transfer (REST)

Week 11

  • quiz 3 (after the lecture)
  • enterprise integration using asynchronous messaging

Week 12

  • enterprise integration using asynchronous messaging

Week 13

  • outlook

Monday, January 28, 2008

Software required for this course

Here is an initial list:
If Eclipse runs out of memory, please follow these directions.
Further updates coming soon...

Course objectives

The overall objective of this course is an understanding of service-oriented computing as an architectural approach for loosely-coupled distributed applications. Specific objectives include an understanding of
  • resource-, process-, and agent-based views of services
  • the implementation of service-based applications through service composition, coordination, and description
  • the use of service-based applications through service selection, engagement, and evaluation

Monday, January 14, 2008

Project 0

  • subscribe to the Google discussion group
  • form a project team of size 3 (preferred)

Organizational matters

  • introduction
  • contact info
  • office hours
  • discussion group
  • prerequisites
  • grading criteria
  • textbooks