Thursday, July 05, 2007

Yahoo Pipes

Recently, I tried Yahoo Pipes. The basic functionality is to provide an easy interface to do mashups.
Mashup has long history. However, former developpers mash up by writing source code that makes use of public APIs of popular services. This way is powerful. But it requires professional knowledge about programming. As a result, common computer users can not make mashup easily.
What is new in Yahoo pipes is that the mashup interface is easy to use for even a common user without programming background.
Yahoo pipe partitions service into modules each of which complete a single task, such as text input, number input. In other words, yahoo pipe provides abundant building blocks based on which complicated mashup can be created easily.
For example, if a user wants to do search in yahoo, google and msn simultaneously, the procedure is like this:
(1) use a "text input" module to receive the keyword input of user
(2) use several "Url builder" modules to construct the urls needed to access the search service provided by search engines (google, yahoo and msn).
(3) use "Fetch data" module to fetch real data from search engines.
(4) use "Filter" module to filter the search results returned
(5) do addition operations on the results (sort, unique...)
(6) final output

By combining modules in different ways, many special and interesting tasks can be built easily. For example, you can fetch the keywords from the feed of cnn.com, then you search in Flickr using these keywords to get correlative photos.

Despite of the benefits yahoo pipe provides, limitation exists. The data must be well formatted, for example, RSS, XML, JSON so that it can be parsed correctly. If format of data is not supported, common users can not build mashup in which that service is included.

So, I think of a better way. Users can write their own plugins which can do a special task. In addition, these plugins can be shared among users so that there are more building blocks. For sharing, the plugins should be put at server side.