Machine-to-machine transactions automate mundane information functions, as well
as control of our physical environment, to suit our wishes. Following our
scripted instructions, software agents handle our appointments by fielding
requests as the arrive by mail, by phone, or over the network, then consulting
our schedules and deciding whether to accept the requests, decline them, or
gather additional information and defer the decision to us. Other agents
control environmental systems as we enter a room to match our accustomed
comfort level. We squint less in front of e-mail, browser screens, and remote
controls, because machines both listen to what we say and do more themselves.
We do the interesting tasks and offload the rest on our machines, using
intuitive ways to program devices and systems to do the things we want.
The automation subsystem provides technologies for encapsulating objects, both
physical and virtual, so that their actions can be automated. It also provides
scripting technologies that automate new processes in response to direct
commands, or by observing, imitating, and fine-tuning established processes.
Basic automation objects are "black boxes" of low-level actions that can be
managed by higher-level automation processes. The objects can be either
physical or virtual. A basic physical object senses or actuates a
physical entity—it may sense the temperature or whether an office door is
open, and it may crank up the heat or send an image to a display. A basic
virtual object collects, generates, or transforms information—it may
extract designated items from incoming electronic forms, operate on them in a
designated manner, and send the results to a particular device.
A common intelligent interface connects basic physical objects to the network.
The interface consists of a chip containing a microprocessor, a network
adapter, main memory, and non-volatile storage. It makes different sensors,
actuators, and appliances more powerful, provides device status information,
reduces the bandwidth they require, and downloads commands and new low-level
Any software object can be a basic virtual object. Electronic forms are
particularly common basic virtual objects, because they serve as convenient
"interfaces" for exchanging information among people and organizations.
The automation architecture provides mechanisms for composing modular
components, such speech, vision, and appliances, and for controlling their
behavior based on user scripts. The architecture allows distributed objects
(or agents) to refer to one another by function and capability, without respect
to their location. Objects communicate using a universal streaming data "bus"
standard. They can move around, be re-connected dynamically, and seamlessly
resume previously established connections with one another. The scripting
language enables users to specify easily and rapidly the tasks they wish to
The automation subsystem uses a top-level watch-reason-automate "loop" to
monitor and filter information of interest to the automation process, to select
appropriate automation regimes for given tasks, and to implement those regimes.
The scripting language enables users to customize automation regimes in
response to context changes and other factors too complicated to handle
automatically, either in the original script or in the watch-reason-automate
GOALS guides the automatic construction of component-based
systems by searching for one or more techniques, each of which constitutes a
recipe for resolving a class of goals. Goals are resolved by a negotiation
between a system object (called a context) and a set of applicable technique
objects. Typically, the context creates and explores a goal tree,
heuristically choosing the most satisfactory branch to implement. The goal
tree persists as a record of the logic by which the implementation was chosen,
so that it can be reevaluated as network connections break or new resources
become available. (Chris
Terman, Steve Ward, Computer
Presentation manager (Larry Rudolph, Oxygen Research Group, LCS)