Project #2: NittanyService (Due: April.
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.
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).
- Yahoo: The Yahoo! Search Web
Services operate via HTTP requests just like your web
browser. Requests are formed by starting with a service entrypoint
- 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
The eBay Developers Program has a way for users to access their platform via standard Web Services: the SOAP API.
- Alexa: The Alexa
Web Information Service offers a platform for creating
innovative Web solutions and services available via the
Amazon.com 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
- 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.
- 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
- 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
- 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 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:
- 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")
- 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?")
- 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?)
- Does your NittanyService have any innovative and
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
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:
- In-class presentation with prepared slides (15 min).
- All members must participate in the presentation.
- In-class demonstration of your application.
Turn-Ins (DUE: April 28)
- Final project report with an overview of your client application, feature description, your design and/or architecture (upto 10 pages).
- Note that the final project report is separate from the project presentation slides that is due on April 19.
- Program codes:
- Linux: Put all of your program codes in the specified directory (TBD). Your code must be runnable by TA without a change.
- All other platforms: demonstrate your application on the platform.