Project Phase II
Goal
You will partner with two other students to form peering relationships between the inventory applications you built in the first part of the project. You will in effect construct a single, decentralized peer-to-peer inventory system for a wide variety of products.
Your database back-end and web front-end will stay largely the same. Your web service product lookup API will be modified to accept an additional recursion depth limit parameter. Your web service implementation forms database queries as before. However, your web service should also consult its remote peers as follows:
- Decrement the recursion limit; if less than zero then return an empty result set.
- Translate the SOAP call you are processing locally to the API of each remote peer web service.
- Invoke the remote peers, pass the request and decremented recursion limit, and receive the results.
- Translate the results from the remote peer's format to your own local format.
- Combine the translated results with the results generated locally.
- Return the combined results to the caller.
Each of you should form pairs with two other students. Please submit your pairing choices to Stefan on or before Friday May 7. Try to avoid cycles - Stefan will review the pairing choices, break cycles and reduce the number of disconnected peering graph components.
Notes
- You should share the attributes name, quantity and price with your partners, and are encouraged to share as many other attributes as possible.
- The challenge is to successfully form a contract with your partners, such that your product searches can return results from their databases. Your goal is to minimize the impact on your front and back end implementation, and your web service API and installation.
- As a consequence you should not have to perform additional administrative work beyond what you have completed for part 1.
Turn-in
You need to turn in a zipped archive using the turn-in server web form. The due date is May 24, 17:45. The archive contents should be as follows:
- A short (half page) README.txt file with the URL of your running web application, roadmap for the rest of the archive contents, and high-level explanation of your peering relationships.
- A brief, concise description of each of your peering contracts and resulting web service call translations.
- Your code and your data, as for the first part of the project.
Grading
Grading will be based on your success in forming and implementing your peering relationships. The fewer changes you make to your existing implementation, the better.
Questions?
Send your questions to Stefan, Alon or the course mailing list.