Comparing autonomic and proactive
computing.
by Want, Roy^Pering, Trevor^Tennenhouse, David
Autonomic (1) and proactive (2) computing both provide solutions to
issues that limit the growth of today's computing systems. In the
1990s, the ubiquitous computing vision (3) extended what has been
traditionally called distributed systems, a field in which the
application focus has been primarily office automation.
To date, the natural growth path for systems has been in supporting
technologies such as data storage density, processing capability, and
per-user network bandwidth, with growth increasing annually for 20 years
by roughly a factor of 2 (disk capacity), 1.6 (Moore's Law), and
1.3 (personal networking; modem to DSL [Digital Subscriber Line]),
respectively. The usefulness of Internet and intranet networks has
fueled the growth of computing applications and in turn the complexity
of their administration. The IBM autonomic vision seeks to solve some of
the problems from this complexity by using eight principles of system
design to overcome current limitations. These principles include the
ability of systems to self-monitor, self-heal, self-configure, and
improve their performance. Furthermore, systems should be aware of their
environment, defend against attack, communicate with use of open
standards, and anticipate user actions. The design principles can be
applied both to individual components and to systems as a whole, the
latter providing a holistic benefit that satisfies a larger number of
users.
At Intel Research we enthusiastically support the aims of autonomic
systems and at the same time consider how computing systems will be used
in the future. To date, the familiar personal computer (PC)
infrastructure has been applied most effectively in the realm of the
office and the home. Going forward, we are intrigued by other areas of
human endeavor that are ripe for the application of computer-based
technology. Proactive computing extends our horizon by recognizing a
need to monitor and shape the physical world, targeting professions that
have complex real-world interactions but are currently limited by the
degree of human involvement required. We are addressing some of the
challenges that exist beyond the scope of earlier ubiquitous computer
systems to enable future environments involving thousands of networked
computers per person. Proactive system design is guided by seven
underlying principles: connecting with the physical world, deep
networking, macro-processing, dealing with uncertainty, anticipation,
closing the control loop, and making systems personal.
An emphasis on human-supervised systems, rather than
human-controlled or completely automatic systems, is an overarching
theme within proactive computing. Computer-to-user ratios have been
changing over time: 1:many turned into 1:1 with the advent of the PC in
the 1980s, and into many:1 with the explosion of mobile devices in the
new millennium. Currently, most people in the United States typically
own (sometimes indirectly) many tens of computers, ranging from portable
devices to consumer electronics. These systems compete for human
attention, an increasingly scarce resource in modern living. Before the
sheer number of devices overwhelms us, solutions need to be found to
remove people from the control loop wherever possible, elevating their
interaction to a supervisory role. One way would be to use pure
artificial intelligence, a lofty goal that will not be attainable in the
near future. Proactive computing, therefore, focuses on human-supervised
operation, where the user stays out of the loop as much as possible
until required to provide guidance in critical decisions.
A simple present-day example that illustrates a human-supervised
system is a modern home central heating system. Such systems typically
have a simple regime for morning, day, evening, and night temperature
settings. Normally, the system operates untended and unnoticed; however,
users can readily override these settings at any time if they feel hot
or cold, or to address an impending energy crisis. Furthermore, if the
system were instrumented with a sensor network and knowledge of a
family's calendar, the temperature and energy consumption could be
optimized proactively to allow for in-house microclimates, late
workdays, and family vacations. However, extending this example to more
complex systems is quite a challenge--most decisions do not simply
become a selection between "too hot" or "too cold."
As illustrated in Figure 1, there is considerable intellectual
overlap between research into autonomic and proactive systems. Both
autonomic and proactive systems are necessary to provide us with tools
to advance the design of computing systems in a wide range of new
fields. In the following sections we provide an overview of the issues,
technology directions, and examples of why both these visions are
necessary.
[FIGURE 1 OMITTED]
Extending the application domain
Enabling a computing future that goes beyond the current in-home
and in-office application domains will require the adoption of new
design principles. Here we examine three of the seven proactive
principles: connecting with the physical world, real-time/closed-loop
operation, and techniques that allow computers to anticipate user needs.
Readers interested in the remaining four are directed to a description
of proactive computing on the Web at http://www.intel.com/research.
Connecting to the physical world. Most of our computing
infrastructure to date connects personal computers through networks to
arrays of servers. The resulting systems provide us with a virtual
environment allowing us to author, process, and file information, which,
through people, can have an indirect influence on the physical world. To
enable a world in which computing aids us in our day-to-day tasks, the
physical world must be instrumented so that computer systems can have
direct and intimate knowledge of our environment, ultimately using that
information to effect change. Corresponding examples are microclimate
weather forecasts, monitoring road traffic, and determining where people
might be located in an earthquake-damaged building.
Needless to say, there are a number of inherent problems in
building such a system. First, there are pragmatic issues such as
maintenance, connectivity, and finding suitable power supplies. Second,
we are describing systems that, when applied on a city or national
scale, have never before been built. The coordination and management
issues take on a new level of difficulty; new protocols need to be
created to enable appropriate data flow; and power management becomes a
critical parameter for sensors that must operate from independent energy
sources. Applying sensors to the physical world on a national or global
scale is a daunting task, but as our societies become more complex and
population densities increase, the payback will be worth it.
Scaling systems to a size large enough to monitor the physical
world raises immediate problems of administration and utilization--the
very problem that autonomic computing sets out to solve--and we cannot
simply look to existing computer systems for guidance. However, by using
simple nodes that can be individually and comprehensively characterized,
it may be possible to learn more about the techniques required to
maintain larger networks of conventional computers, informing both
proactive and autonomic system builders. Multihop wireless sensor
networks, such as the networks we are working on in collaboration with
our colleagues at the University of California, Berkeley, (4,5) have
exactly this characteristic.
Real-time and closed loop operation. If we expect our computers to
become more integrated with the physical world, real-time response will
become a critical factor that needs to be supported by all computer
systems. In the 1960s, computer systems were either fully interactive,
putting humans in the control loop, or completely inflexible, built on a
dedicated control system. In order to integrate systems fully into
real-world tasks, the systems must be able to respond faster than is
possible with a person in the control loop: they must have real-time
response to physical-world events.
If general-purpose computing systems were redesigned to make
real-time guarantees, many new proactive applications would be possible
and perhaps even begin to appear as mass-market shrink-wrapped software
in major retail stores. However, the underlying issue is that most
software systems make no guarantee of a real-time response, instead
hiding behind layers of abstraction without considering the response
time induced by varying conditions. Those of us familiar with the
embedded systems world typically resort to specialized software based on
real-time operating systems (RTOS) for critical control applications,
capabilities that are not supported by most general platforms.
Anticipation. Anticipation is a cornerstone of proactive computing.
For systems to be truly proactive, they need to in some sense predict
the future. Our research is currently focusing on the use of context,
statistical reasoning, and data-handling, all summarized below, as a
baseline for anticipating a user's needs. Utilizing these
techniques, and others, will allow systems to quickly handle real-world
situations and provide the appropriate level of user interaction.
COPYRIGHT 2003 All Rights
Reserved. Reproduced with permission of the copyright holder. Further reproduction or distribution is prohibited without permission.
Copyright 2003, Gale Group. All rights
reserved. Gale Group is a Thomson Corporation Company.
NOTE: All illustrations and photos have been removed from this article.