My research at Stanford focusses on network services. Since the early days of networking, researchers have envisioned a computing world in which users can seamlessly discover and interact with the resources available on the network. This vision has in fact been realized for (at least) one resource type -- static Web pages -- through a combination of search engines and Web browsers, and the impact has clearly been profound. Static Web pages represent only one type of resource, however, and a network service is a broad abstraction for another important resource type -- network connected programs (similar to CGI scripts and servlets) and devices (such as printers and audio/video devices). The network service paradigm has seen several incarnations (including RPC/RMI, CORBA, COM/DCOM) culminating in Universal Plug and Play (UPnP) (for home networking) and SOAP/WSDL based Web services (for wide area Internet). A positive side-effect of the hype associated with SOAP/WSDL is unprecedented tool support and widespread agreement among industry players, which raises hopes for the widespread adoption of the network service paradigm.

Low-level incompatibilities in service description and remote invocation protocols have plagued network services research for a long time, but hopefully the consensus on SOAP/WSDL eliminates these issues and allows researchers to focus on higher level research issues in network services, of which there are many. In my research, I have examined several related issues in this space -- interoperability and evolution, discovery, integration and composition -- both in the wide-area and local-area settings.

Maintaining Interoperability under Evolution

Maintaining interoperability among independently evolving components in a distributed system is one of the most difficult and recurring problems in computer science. XML, due to its "natural extensibility", was touted as the solution to this problem. However, independent evolution is non-trivial even for components exchanging XML data because (1) the natural extensibility of XML may be lost when XML data is mapped to host language types, and (2) simply ignoring unknown or missing elements may prevent crashes, but can also result in undesirable behavior at the application level. We address the above issues in the context of SOAP/WSDL based XML Web services. In particular, we consider a generalized version of the evolution problem that occurs when multiple independent Web service providers offer a similar service (such as search or address lookup). In such cases, we propose that vendors derive their services from an existing vendor service rather than each vendor defining the service from scratch. Under such a derived services model, consider N different vendor services V_1,..,V_N derived from a common base service V_0. We propose the following three step methodology to enable interoperation between an application A_i of service V_i and a "non-native" service V_j (j != i): Using real services and applications as examples, we demonstrate that the above methodolgy is effective. A key enabling factor is that several applications exercise only a fraction of the functionality offered by the service(s) they use (as also demonstrated by the application of our static analysis tool on some existing applications).

For more details, refer to our Middleware 2004 paper.

Discovery and Interaction

The ultimate goal is to enable both software programs and end-users to seamlessly discover and interact with Web services. However, different challenges need to be addressed for programs and users.

Programmatic interaction

A search application should be able to discover and use any search engine; similarly, an auction agent should be capable of monitoring auctions at any auction site. Full automation is obviously quite hard, but we wish to enable human-assisted, semi-automated discovery and interaction. Terminology and functionality differences between different service providers make even the limited version of the problem quite challenging, and we address it twofold: (1) Using the service derivation framework proposed in our Middleware paper, service providers can cooperate and eliminate (or at least reduce) terminology differences, thus simplifying programmatic discovery and interaction, and (2) the case when providers independently evolve their services can be handled by combining the approach described in the Middleware paper with existing techniques from schema matching and integration/adaptation research.

Direct user interaction

Future home and office spaces are expected to be equipped with several network connected devices (such as printers, displays, audio/video equipment, and software controlled lighting/heating etc). A user entering such a space needs to discover and interact with these services using whatever "control" device (laptop, PDA, etc) (s)he is carrying. Industry proposals for home/office automation such as Sun's Jini and Microsoft's UPnP provide a mechanism by which network-connected devices can export user interfaces using which they can be controlled from a user's control device. However, these architectures do not effectively address the following issues: To address these issues, we proposed and implemented a system called ICrafter. For more details, refer to our Ubicomp 2001 paper.

We later extended the ICrafter architecture to provide personalization -- the extended architecture allows an end-user wandering acorss different spaces to "bookmark" a favorite UI from one space and re-use it in other spaces. For more details, refer to our WMCSA 2002 paper.

Publications