Project

In this project, groups consisting of at least two students are to design and implement a system of their choice. Even though the actual functionality of the system can be chosen freely, certain restrictions apply. The implemented system must adhere to the general concept of a SOA and hence consist of communicating subsystems instead of being a monolithic solution. Furthermore, the amount of work needed to realize your envisioned system should be proportional to the size of the project team and the time available. If we, based on your project plan (see examination below), deem your project to be of an unsuitable size, we will adjust it accordingly.

Sample project ideas

Here, we list a few potential project ideas, your own project ideas are of course more than welcome. The below descriptions only outline possible projects, your project plan should be more detailed.

Federated online reservation system

Tired of keeping track of a multitude of online booking systems? Imagine being able to book iksu classes, movie tickets, and reserve airline tickets using a single web site. Implement a mashup that allows users to manage multiple online booking systems through a uniform interface.

Security aspects are likely to be a complicating factor in this project. A (federated) single sign-on solution is preferable, but may not be feasible. Students working with this project should have a solid background in web technologies.

General forwarding service for asynchronous Web Service messages

SOAP Web Services can communicate both synchronously and asynchronously. However, as the rather heavy-weight SOAP stack is not available in smaller devices such as cell phones, it is not possible to deliver asynchronous updates to such clients. The purpose of this project is to implement a message forwarding service, that listens for notifications from Web Services, and forwards incoming messages to (potentially non-WS) subscribers. Possible forwarding mechanisms include emails, cell phone text messages, and RSS feed updates.

The WS-BaseNotification and WS-BrokeredNotification specifications are likely of interest for those working with this project. A system similar to one proposed here, albeit targeting Grid computing use cases, has been implemented as part of a thesis by Timo Elverkemper.

Distributed auctions with agent-based negotiations

Implement a system for distributed agent-based negotiation. The envisioned scenario is a commodity market, where goods are sold through auctions and/or other market models. Agents in this systems have limited budgets and try to acquire specific combination of goods by bidding in auctions. Upon successfully doing so, the agent can sell the combined goods with added value to a consumer. Bartering could also be possible, i.e., agents negotiate directly with each other and exchange and/or sell (sparsely available) goods.

Potential components in this system are:
Agents - Performs negotiation (bids in auctions or barter goods).
Auctions - Sells specific goods according to some auctioning model.
Bank - keeps track of budgets allocated to each agent, and ensures that payment is handled.
Consumers - Actors with (potentially unlimited) budgets, that buy specific combination of goods from agents.
Directory - Allows agents to discover auctions, consumers, and each other.

One potential scenario, is that agents bid for goods in an English auction and resell packages of goods to consumers in some sort of Combinatorial auction.

Students selecting this project should have a strong interest in artificial intelligence and/or microeconomic theory.

Bonus credits

Each course project will be graded based on the following aspects: Novelty and usefulness of the project idea as well as the quality of design, implementation, and presentation, the latter including both the written report and the oral presentation. Successful course projects may be awarded bonus points that can be used to reach a higher grade on the exam. It should be noted that bonus points can not be used to reach a passing grade on the exam, only to reach a higher grade on an exam that already has reached a passing grade. In other words, students will need to achieve at least a passing grade on the exam to be eligible to their bonus points.
The maximum number of bonus points awarded will be limited to correspond to one grade level on the exam. If the exam, e.g., has a maximum of 60 points, 30 points (50%) are required for the grade 3, 39 points (65%) for grade 4, and 48 points (80%) for grade 5. In this example, a maximum of 9 bonus points may be awarded a project solution, and can only be used by students scoring at least 30 points on the exam.
Bonus points awarded project solutions are only valid during the term the points are awarded, i.e., within the next 12 months.

Examination

There are three deliverables for this project.

Project plan

The project plan is an outline for your project and describes your project idea. This description includes a rough sketch of the envisioned architecture and a few use cases that illustrate the functionality of your system. Furthermore, the project plan should, to as large an extent as possible, describe the tools and technologies that you are planning to use. Finally, your project plan should include a time plan, outlining the details of how your project is to be realized.

Presentation

At the end of the project, each team is to hold a 20 minutes oral presentation of their work. This presentation should include the motivation and goals of the project, illustrate the architecture of the implemented system, and an describe the technologies used to implement it. Furthermore, the presentation should include a demonstration of the system. This can either be done live, or, preferably, be a playback of a previously recorded demo. To record your demo, use e.g., the xvidcap tool.

Final report

The final report should be a complete description of your project. As there is no ready-made specification of the task, the motivation for your project the envisioned use cases should be described with special care. Describe the architecture of your system, the various subcomponents, and their interaction. Also discuss to which extend you have fulfilled the project plan, and share your experiences with the used tools. Envision a reader unaware of, but genuinely interested in, your system, instead of a grading teacher that knows all the details. In other words, your report should be a self contained description of your project.

You are about to finish your education. The SOA course is likely among the last courses you will take, and this project is probably one of the largest and/or most sophisticated systems you will build during your studies. This fact should be reflected in your report. Our main guideline is that your report should reflect the knowledge that you have accumulated during your studies. The project report should hence be a valuable tool in marketing your programming and (written) communication skills for a potential employer, e.g., when looking for a master thesis or a job.

Due dates

The due dates for the deliverables are as follows:
Project plan - 2008-12-05, 12:00
Presentation - 2009-01-16, 10:15
Final report - 2009-01-16, 12:00