Project #2: NittanyService (Due: April. 19 28)

Project designed by Dongwon Lee
Last modified: Mon Apr 18 14:01:22 EDT 2005

Bringing Web Services to Penn State (Team Project: 2 members)

As more and more applications and resources are available on the Internet, people need better ways to discover information and combine them in complex ways. One of the promising techniques toward that goal is the recent "Web Services". In the project #2, you will need to choose one (or many) of the public information systems that provide web services interface, and build an innovative (or at least interesting) application using the web service framework.

Following is a partial list of known information systems on the Internet that support web services by disclosing APIs to access their data and services via SOAP/WSDL.

  1. Google: The Google Web APIs is software that lets developers to query more than 4 billion web pages of Google using web services framework (Limit: 1,000 requests per day).

  2. Yahoo: The Yahoo! Search Web Services operate via HTTP requests just like your web browser. Requests are formed by starting with a service entrypoint URL...

  3. Amazon: Amazon E-Commerce Service (ECS) exposes Amazon's product data and E-Commerce functionality allowing developers, Web site owners and merchants to leverage the data and functionality that Amazon uses to power its own E-Commerce business

  4. eBay: The eBay Developers Program has a way for users to access their platform via standard Web Services: the SOAP API.

  5. Alexa: The Alexa Web Information Service offers a platform for creating innovative Web solutions and services available via the Web Service platform. Developers, researchers, web site owners, and merchants can now find answers to the most difficult questions on the Web, and incorporate them directly into their own websites or services. (Limit: 10,000 requests per day).

  6. OpenDBLP: The OpenDBLP is an experimental web service for the DBLP, a popular digital library for Computer Science community, providing users publication citation information. Interestingly, The OpenDBLP is itself a client application accessing the underlying database via web services.

  7. Swoogle: is a crawler-based indexing and retrieval system for the Semantic Web -- RDF and OWL documents encoded in XML or N3, and currently provides an experimental Swoogle Web Service.

  8. TerraServer: TerraServer supports a Tiling Web Service that enables our users to build applications on their computer systems that integrate with USGS imagery found on the web site.

  9. Xignite: is the leading provider of on-demand financial service components for mission-critical applications. You can use their web services to power portfolio management systems, sales management systems, ERP applications, trading applications, corporate portals, web sites, analytical engines and more.

If you want more, you can search through the following web services directory (not all the listed services are stable though):

After picking one (or many) of these information systems (or other web-accessible information systems that you have found from the above list) as your target application domain, your job is to:

To design and implement an innovative and wild client application, named as NittanyService, that accesses those information systems via SOAP/WSDL and does some interesting stuff (whatever it is).

The more tasks (below) your NittanyService can do, the higher score you will get:

  1. Given some queries, can your NittanyService retrieve the answers from an information system via web services framework? (e.g., "Retrieve top-10 URLs to the web pages containing keywords Michael Kenna", or "Retrieve all the list of Electronics web pages about Canon 20D")

  2. Given some queries, can your NittanyService compare the answers from multiple information systems via web services framework? (e.g., "Show me the common top-10 web pages comtaining Henri Cartier Bresson from both Google and Alexa" or "Which digital cameras can I purchase at eBay, but not at Amazon?")

  3. Given some queries, can your NittanyService differentiate the various meanings of the same terms? (e.g., When asked "retrieve top-10 recipe web pages about Hot Thai Food", can your program return only those pages about Spicy Thai Food, but not about Popular one? Or, when asked "what is the title of X", can you program return book-title if X is a book, but job-title if X is a book author? Or, even "is PSU referring to Penn State or Portland State?" How can you tell the difference? When?)

  4. Does your NittanyService have any innovative and interesting features?

For instance, for the case of Google, the overall flow can be illustrated as follows, where Tom is building a Google search client in his X-Box and PDA using web services.

You application can be runnable on top of any platforms: Windows, Apple, Linux, PDA, Cell phones, X-Box, etc as long as you can demonstrate to us. For instance, if you build PDA-based client application, then you need to figure out how to connect your palmtop to the network so that it can send and receive SOAP messages to Google. Similarly, if your application is based on Windows, then make sure to bring windows machine for your demo. If yours is targeted for Linux machine, you can simply put your files into the specified directory (TBD), and notify us. Then, TA will try it out.

The choice of programming languages and tools is entirely upto you. That is, again, the project #2 is open-ended. However, since this is a team project, the scale of the project #2 must be substantially bigger than that of project #1. Each team needs to do the following at the end:

  1. In-class presentation with prepared slides (15 min).
  2. All members must participate in the presentation.
  3. In-class demonstration of your application.

Turn-Ins (DUE: April 28)

  1. Final project report with an overview of your client application, feature description, your design and/or architecture (upto 10 pages).
  2. Note that the final project report is separate from the project presentation slides that is due on April 19.
  3. Program codes: