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):
- [Automated] Identify incompatibilities between V_i and V_j.
- [Automated] Determine (using static analysis) which
incompatibilities are relevant to the given application A_i.
- [Semi-automated] Facilitate
resolution of the relevant incompatbilities, and generate the
necessary glue code.
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:
- How can we customize the exported UI's to the user's control
device, as well as the local environment? (For example, a lighting
control UI should automatically reflect the positions of the lights in
the given environment.)
- How can we auto-generate convenient UI's for behaviors that
emerge from combinations of devices? For example, a common
interaction behavior that emerges from a printer-display combination
is printing the document currently displayed on the display. Ideally,
a UI for a combination of devices should automatically identify and
enable such emergent behaviors.
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
- Shankar R. Ponnekanti and Armando Fox. Towards automated discovery
and interaction: The holy grail for Web services. Under preparation.
- Shankar R. Ponnekanti and Armando Fox. Interoperability among
independently evolving web services. To Appear,
ACM/Usenix/IFIP Middleware '04, Toronto, Canada, October 2004.
(pdf)
- Shankar R. Ponnekanti, Brad Johanson, Emre Kiciman, and Armando
Fox. Portability, Extensibility and Robustness in iROS. In IEEE
International Conference on Pervasive Computing and Communications
(PerCom '03), pages 11-19. Fort Worth, Texas, March 2003.
- Shankar R. Ponnekanti and Armando Fox. Application-Service
Interoperation without Standardized Service Interfaces. In IEEE
International Conference on Pervasive Computing and Communications
(PerCom '03), pages 30-37. Fort Worth, Texas, March 2003.
- Shankar R. Ponnekanti and Armando Fox. SWORD: A Developer Toolkit
for Web Service Composition. In Eleventh World Wide Web Conference
(Web Engineering Track), Honolulu, Hawaii, May 2002.
- Shankar R. Ponnekanti, Luis A. Robles, and Armando Fox. User
Interfaces for Network Services: What, from Where, and How. In Fourth
IEEE Workshop on Mobile Computing Systems and Applications (WMCSA 02),
Callicoon, NY, June 2002. (pdf)
- Shankar R. Ponnekanti, Brian Lee, Armando Fox, Pat Hanrahan, and
Terry Winograd. ICrafter: A Service Framework for Ubiquitous Computing
Environments. In Ubicomp 2001, pages 56-75. Georgia, Atlanta,
September/October 2001. (pdf)
- Brad Johanson, Shankar R. Ponnekanti, Caesar Sengupta, and
Armando Fox. Multibrowsing: Moving Web Content across Multiple
Displays. In Ubicomp 2001, pages 346-353. Georgia, Atlanta, September/October
2001.
- Ludmila Cherkasova and Shankar R. Ponnekanti: Optimizing a
"Content-Aware" Load Balancing Strategy for Shared Web Hosting
Service. In IEEE MASCOTS 2000, pages 492-499. San Francisco,
California, August/September 2000.
- Andrew C. Huang, Benjamin C. Ling, Shankar R. Ponnekanti and
Armando Fox. Pervasive Computing: What is it Good for? In MobiDE 1999,
pages 84-91. (Held in association with Mobicom '99.) Seattle,
Washington, August 1999.