Project 2b

Due Date: Mon 21 Feb


An understanding of
  • resource-oriented architecture
  • RESTful web service design
  • service composition


In this project, you will design a RESTful web service called URCID (unified RESTful caller ID service). (Implementing the service will be the subject of the next project. Therefore, this assignment is independent of your project 2a choice!)

URCID composes existing reverse phone lookup services (such as and, of which it is a client, and re-exposes their functionality as a seamlessly aggregated service. In addition, URCID caches the information it obtains from those services for a certain time period. URCID also supports storing per-user private number-name mappings.

Specifically, your job is as follows:
  • Identify the resources (e.g., mapping from number to name)
  • Map the service functionality to the uniform interface of HTTP verbs
  • Design JSON and XHTML representations
We will conduct a brief design workshop during the Thu 17 Feb class.

We will deal with link relation values (e.g., report incorrect mapping) in the next phase of the project.


  • In your repository's wiki or upload section, a design document addressing the bullet items above. A great example of such a design document is the Meetup API documentation.


  • BookmarksRestletSpring example (its resource set is similar to URCID's per-user resource set)
  • look here for preliminary notes on URCID
  • look here for the related script we will essentially convert into a RESTful service
  • look here for a step-by-step recipe (chapters 1 through 5)