- Blanche Faur and Bhavana Shanbhag: Java Open Single Sign-On (JOSSO)
- Emily Brand, Aureliusz Rempala, and Fan Wang: Acegi/Spring Security
- Seiya Kawashima, Eric West, and Paul Zolnierczyk: Google Web Toolkit (GWT)
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)
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:- Message-based enterprise application integration (e.g. Apache Camel)
- Enterprise service bus (ESB) approaches (e.g. Mule)
- .NET web service technologies
- Spring security (Acegi)
- Java Open Single Sign-On (JOSSO)
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.
- 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...
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
Organizational matters
- introduction
- contact info
- office hours
- discussion group
- prerequisites
- grading criteria
- textbooks
Subscribe to:
Posts (Atom)