To improve our collective ability to solve the world's problems, we must harness the immense promise and power of technology.

- Douglas Engelbart

Delegated Computing: Orchestrating Distributed Computations

The vision guiding my research conceptualizes a world where a population of networked programs and devices, each providing services and data, cooperate and compete to perform tasks for each other and for human users. One challenge is how to encourage flexible cooperation in an environment where components offering new, perhaps unanticipated services can join in at any time. Computational elements must be able to express needs, tasks, and services at various levels of abstraction without hardcoding explicitly how the task should be accomplished or by whom. The decisions regarding which components will participate on a task are themselves arrived at in a cooperative, distributed fashion. This is the essence of delegated computing. Recent work focuses on applying these principles to business-to-business integration and supply chain contexts, enabling dynamic communities of enterprises and trading partners arranged in flexible networks to exchange information, products and services.

Delegated Computing: Helping People Work Better

If we assume that such a computational cloud exists, we can ask how human users will interact with the services contained inside. In today's computing world, users typically work with a single application or website at a time, and are responsible for explicitly driving any sharing of data or task by the applications (e.g., by cut and paste). In a delegated view of human-computer interaction, users describe their objectives (at an appropriate level of detail) and the entire community of component services assembles itself to handle the request, without the user needing to know which participants are involved. As agents capable of performing new services join the party, what the user can say and do expands accordingly.

In terms of human-computer interaction styles, we are pursuing forms of delegated communication that meet the following criteria: Users should be able to interact with an agent community in whatever way is the most productive and natural to them; this may include standard GUI devices (e.g., mouse, scroll bars), natural language, speech, drawing, pointing, etc. They should be able to access and task the agents from anywhere: their desktop, a telephone, their phone and their desktop together, any web browser, and through physical interactions with the real world. Agent interactions should adapt based on the set of input and output modalities the user has available. In addition, multiple users should be able to work together on a common task, directing groups of software components. As humans and agents collaborate, some agents should be capable of filling various social roles in the interaction: subordinate, colleague, advisor; most components remain invisible in the interaction process.

Topics of Exploration

In pursuit of this overarching vision, my research interests have come to include (and combine):

  • Technologies for extended enterprise management (data visibility, comprehension, and response)

  • Distributed Computing

  • Web Services

  • Software Agents

  • Multimodal Interfaces

  • Natural Language Processing

  • Spoken Language Dialog

  • Adaptive Interfaces (for varying classes of abilities and disabilities)

  • Collaborative (CSCW) Systems

  • Knowledge Management

  • Video and Image Analysis and Processing

  • Expert Systems

  • Ontologies

  • Distributed Robotics

  • Virtual and Augmented Realities