Chapter 7. Project 4: Syndicated Search

This chapter looks at a generating an RSS[1] (most commonly, Really Simple Syndication) feed using the results obtained from a Google search. In a sense, you can say that this is an example of a web service gateway. RSS offers a translation from a SOAP web service to a syndication feed more accessible via a variety of content management systems and news aggregators.

[1] RSS is one of those acronyms about which people argue the meaning of the letters, but which everyone refers to simply as "RSS" and pretends that they're all talking about the same thing. The RSS 2.0 specification, posted at Chapter 7http://blogs.law.harvard.edu/tech/rss, describes it as Really Simple Syndication, which is what I'll use as a "canonical" RSS definition, although the RSS 0.91 specification enjoys much wider adoption.

In brief, RSS is a simple XML format for describing a series of entries, with links back to full stories. Popular uses include providing summaries of news stories and also personal weblog entries, but an increasing number of systems are offering feeds for other purposes, such as a feed containing status information on a remote system. In any event, a variety of software tools?both desktop and web-based?have evolved for watching RSS feeds.

One of the best uses for RSS is monitoring search results from sites such as Google (http://www.google.com). Many people take their Google search results very seriously. There are businesses that depend on their Google rankings for customer traffic, or as a metric for their web-site success and popularity. For people that spend a lot of time worrying about this, they may have several search terms they wish to monitor. By providing Google search results as RSS feeds, users can monitor their Google search results using a RSS aggregator.

The sample application built in this chapter shows how to leverage the existing Google APIs to provide RSS feeds. In effect, this application acts as a gateway between two different kinds of application: a SOAP-based service and a syndication-oriented RSS feed. The users of the application don't need to know anything about web services to take advantage of the data published by Google; they simply need to add a URL to their RSS aggregator.