We present a new information discovery framework, a specialization of the Web Services model for information providers and consumers. It supports both push and pull of information, and maintains an efficient registry mechanism for locating information providers. We demonstrate this framework with Sheli, a unified information discovery console. Sheli users can easily customize their favorite information sources, and obtain information from them in a passive or active but always unobtrusive manner.
Web Services, User Interfaces, Search.
The Web has evolved to play a siginficant role in our life. Above all things, it is a huge source of dynamic information, where people can consume information from muliple sources, e.g. e-mail, news sites, discussion forums, chats, etc. The need emerges for consolidating all information discovery sources into one access point, as was already identified by portals [4], [5], [6]. However, typical portals follow an "intermediary" approach where the portal is the unique broker.
We propose a Web Services based framework for consolidating information discovery, where information consumers directly access distributed Web services. We focus on information with narrow semantics, allowing the reuse of generic GUI components for many sources. Thus information providers can easily publish their services following the framework's guidelines and, instead of each building their own (Web) application, they can benefit from predefined GUI artifacts that can easily be arranged on a small console or integrated into various applications on the user's desktop.
The framework follows a generic publish subscribe model:
Content Providers can be diverse in terms of the type of content they provide, the frequency of updates, and the specification per user. The framework architecture supports this diversity.
The content provider registry stores information pertaining to all providers available on this machine. In order to detect a provider, a consumer must know the location of the machine on which the registry resides. In Figure 1, consumer C can detect P1 and P2 by performing a lookup in the remote registry. Publish and subscribe tasks are as simple as invoking a Web service. The consumer realizes what the provider capabilities are by the provider profile. Users select providers based on their profile. Finally, consumers are notified when new providers become available.
The user of consumer C in Figure 1 can see the two profiles, and find P2 interesting and useful. The user can further examine the five content elements supported by P2, and register for two of them. A subscription request is sent to P2 via the registry, specifying the two content elements of interest, and supplying the address of the Web service of consumer C. Now P2 can notify C on content elements of interest via the Web service interface of C.
Consider an existing application that serves content to its users in a pull model via a Web browser, and perhaps also in a push model, via some proprietary channel. The two key requirements an application has to fulfill in order to comply with our model, is (1) to become a Web service provider and (2) to adopt our framework WSDL definition. Both tasks are not trivial; therefore we provide a Web service adapter as part of our framework. This adapter component was developed using Apache AXIS [1], and provides the skeleton needed for complying with our model. The details of the framework skeleton and interfaces, as well as related work can be found in the long version of this poster [3].
Sheli, a light information discovery console, was built on top of our framework. Sheli is a compact, unobtrusive sample information discovery application that receives notifications from content providers, and sends free text queries to selected Web search services. Most of the time, Sheli occupies minimal space on the user's desktop without disturbing any other application.
At launch time, Sheli comes up as a thin bar showing a row of small icons and indicators, as shown in Figure 2. The Sheli bar displays concise information from each subscribed provider. Each provider is represented by a different icon (from its profile) that can be followed by a number of graphic indicators, which represent the content element values last sent by that provider. By clicking on the provider's icon, the user invokes the provider's application or his\her favorite Web browser on a given URL.
In Figure 2, Icon #1 represents my favorite instant messaging application. The indicator next to it is a Flag indicator, which turns green if my manager John goes online. Similarly, my e-mail/calendar application is represented by icon #2. The gauges next to it show how many e-mails in my inbox remain unread. The weather forcast service icon (#3) is followed by an icon which indicates that I should expect snow tomorrow. My book recommendation service is represented by icon #5.
The Sheli bar takes care of all content element types except for text elements. When a text notification arrives, Sheli pops another thin text line under the bar which displays the notification, as shown in Figure 3.
The text is decorated with icons that represent the source of the event and its type. By default, the text line disappears after a few seconds, but it can also be pinned by clicking button #6.
The user can click on button #8 to open a larger text window that shows all previous text notifications, as shown in Figure 4. Text notifications are clickable, the same way that application icons are clickable in the thin bar: Clicking on a text notification launches the corresponding application in the context of that notification.
By clicking on the binocular icon of the Sheli bar (label #9 in Figure 3), users can dynamically extend the bar to the right to include a search box and send free-text queries to one or more providers. In addition, Sheli allows users to subscribe to new content providers and customize the notifications it receives from them. For more details on Sheli features see [3].
This work shows how Web services can be exploited for building generic consolidated information discovery applications. We have introduced (1) an open and fully distributed framework for publishing information in a unified manner, which eliminates the need for centralized services, and (2) an example consumer application, Sheli, built on top of it.
Our architecture is novel in its usage of distributed UDDI registries for publishing information services, which eliminates the need for centralized repositories. This work demonstrates that a fully distributed architecture is possible not only for search services, as was demonstrated by the now obsolete WAIS approach [2], but also for general awareness applications.
We are deeply grateful to Sarai Sheinwald for her constant creativity in designing new icons for Sheli.