COMP 655: Distributed/Operating Systems - Summer 2011
2024-04-27 19:05:59 UTC
Home
Lectures
Assignments
Books, web, tools
 
Turnitin.com
Guidelines
Writing help
Plagiarism
 
DiNo
Glassfish
RESTful client
Menu service
JAX-RS
JAXB
EJB
Java
 
Bulletin board
Contact
  Project: design paper
This page provides details on assignment 1-2-3. It is assigned in week 4 and due in week 9. It is worth 150 points. It is a group assignment.

Your design paper must cover at least the following (of course you can say more if you want to):

  • General
    • What patterns, if any, are you using to guide your design?
    • What are your guiding principles?
  • Module decomposition
    • List the major Java packages you will have, and their responsibilities
    • What are the inter-module dependencies?
    • How will your architecture keep secondary copies of notebooks in synch with the primary copy?
  • At runtime: implementation of major use cases
    • Describe the interaction among your major packages to support creating a notebook
    • Describe the interaction among your major packages to support adding a note to a notebook with secondary copies
  • Shared data - at any given time, the notebook service may be processing requests from multiple concurrent clients
    • What are the major data structures that will be shared across the threads that handle concurrent requests? This list must include at least the list of notebooks, and the content of each notebook.
    • How will you protect those data structures from corruption?
  • Testability
    • How will you test your notebook service?
    • How will you test that secondary copies are kept up-to-date?
    • How will you test your directory service?
    • What automated tests will you write?
    • What modules, if any, will be testable outside the app server?
    • What aspects of your design support outside-the-app-server testing?
  • Scalability
    • Estimate the load on the directory service, assuming the capacity requirements (in the Value for a real system column)
    • What changes, if any, would you have to make in your design in order to support that load and/or reduce it to a manageable level?