Autonomic personal computing.
by Bantz, David F.^Bisdikian, Chatschik^Challener, David^Karidis,
John P. ^Mastrianni, Steve^Mohindra, Ajay^Shea, Dennis G.^Vanover,
Michael
Autonomic personal computing is defined here as personal computing
on autonomic computing systems. It shares the goals of personal
computing--responsiveness, ease of use, and flexibility--with those of
autonomic computing--simplicity of use, availability, and security. In
most cases these goals are complementary. For example, autonomic
computing enhances ease of use because it eliminates or simplifies some
user responsibilities. But personal computing implies flexibility of
location and of the hardware and software configuration, and this
complicates the job of achieving autonomic behavior. It is easier to
configure, heal, optimize, and protect a system in an environment that
does not change. If we can achieve autonomic behavior while still
meeting the unique needs of personal computing, millions of users will
benefit worldwide.
The intention of this paper, then, is to identify the unique
demands and opportunities of autonomic computing with personal devices.
Our ground rules are that we seek to achieve autonomic behavior of a
personal computing system--personal computers (PCs) and their peers,
networks, and servers--not just the PC alone. We also limit our focus to
application platforms, not to applications themselves. This distinction
is somewhat equivocal and quantitative, however, because
yesterday's applications are often tomorrow's platforms.
In what follows, we first look deeper into the meaning of the
autonomic attributes of personal computing, which are different from
fault-tolerant attributes. We then categorize technologies as they
relate to achieving autonomic behavior in different variations: within
the PC, in PC communities, and in more general systems that include
servers. We give some examples of the state of the art and identify
missing or incomplete capabilities. We describe some general
considerations for an architecture that supports autonomic personal
computing, identify some issues, and suggest a direction for future
research and development.
Autonomic personal computing
A computing system is autonomic if it possesses at least one of
four attributes: self-configuring, self-healing, self-optimizing, and
self-protecting. Autonomic personal computing exhibits and constrains
these attributes in unique ways.
Self-configuring. A system is self-configuring to the extent that
it automates the installation and setup of its own software in a manner
responsive to the needs of the platform, the user, the peer group, and
the enterprise. Personal computing often involves user-initiated
configuration change, and a self-configuring system understands the
implications of these changes and accommodates them automatically.
Self-healing. A system is self-healing to the extent that it
monitors its own platform, detects errors or situations that may later
manifest themselves as errors, and automatically initiates remediation.
Fault tolerance (1) is one aspect of self-healing behavior, although the
cost constraints of personal computing often preclude the redundancy
required by many fault-tolerant solutions.
Self-optimizing. A system is self-optimizing to the extent that it
automatically optimizes its use of its own resources. This optimization
must be done with respect to criteria relevant to the needs of a
specific user, his or her peer group, and the enterprise. Resource
management (2) is one aspect of self-optimizing behavior.
Self-protecting. A system is self-protecting to the extent that it
automatically configures and tunes itself to achieve security, privacy,
function, and data protection goals. This behavior is of very high value
to personal computing, which is exposed to insecure networks, an
insecure physical environment, frequent hardware and software
configuration changes, and often inadequately trained end users who may
be operating under conditions of high stress. Security (3) is one aspect
of self-protecting behavior.
Examples of current autonomic personal computing behavior
Autonomic behavior is not new; computing systems have incorporated
various forms of autonomic behavior for many years. Autonomic function
creates autonomic behavior.
First, we introduce a categorization of autonomic function in terms
of where it is implemented, and then we discuss several examples that
exhibit autonomic behavior in current practice.
Autonomic function can be implemented locally, drawing on locally
maintained measurements and knowledge. It can be implemented among
members of a peer group, sharing measurements and knowledge particular
to that group. It can also be implemented using globally available
network-resident resources, in which case, measurements and knowledge
are maintained for all clients. In the most general case, autonomic
functions are implemented in all three ways, with different functions
having a preferred implementation, resulting in the following
categories:
* Local autonomic function--Locally, autonomic decisions can be
made using knowledge that the personal computer stores or can obtain by
itself, for example, from its Common Information Model (CIM) (4)
database. Local functions include automatic auditing of software
configurations, local backup, surveys of the connectivity environment,
and power management.
* Peer group autonomic function--Peer group functions require the
cooperation of a local community. They include spontaneous grid
computing services and knowledge sharing.
* Network-based autonomic function-Network-based functions enhance
and extend the core autonomy of the PC. Examples include software
updating, backup and restore, virus updates, and mobility support
services.
Local autonomic function. Microsoft Corporation has included some
local autonomic features in the Windows ** XP (5) operating system, and
many other autonomic features are provided by third-party utilities.
Although an exhaustive review is beyond the scope of this paper, in the
following subsections we describe some examples of local autonomic
behavior that can be found in current practice.
Installation, configuration, and maintenance. The life cycle of a
personal computer begins when it is delivered, set up, and personalized
to the needs of its new user. Part of this personalization involves
creating a replicable software configuration appropriate to the needs of
a group of users (imaging), and part involves selectively moving the
user's data and preferences from a previous platform to the new one
(migration).
Technology now exists for simplifying the imaging process. In
IBM's ImageUltra, a single hardware-independent super-image is
created and distributed to the PC. The super-image adapts to the
platform and is customized to user needs based on a key. This key, which
may be specific to a particular user or common to a group, is either
distributed electronically or entered manually by the user or an
administrator. A utility program transforms the super-image into the
final one.
Once the system has the correct image, the user's specific
information, settings, and application files need to be transferred.
Windows XP includes a utility for accomplishing this transfer, with a
good deal of human intervention. IBM has a comparable solution (the
System Migration Agent) for Microsoft operating systems prior to Windows
XP. The core logic for this product is still central to IBM'S large
enterprise solution for automating the migration of user content for
large numbers of systems. The Ghost ** product from Symantec Corporation
also implements image capture, redeployment, and migration.
Change management deals with updates to system and application
software after the initial installation. The Microsoft XP Automatic
Update mechanism works well for updates that can be applied without
special considerations, but some enterprises require tight policy-driven
control over their configurations. The IBM Update Connector supports
either user-initiated or centrally administrated updates. The CNET
Networks, Inc. CatchUp is a personal Web-based service that
automatically analyzes the software configuration of a system and
identifies needed updates.
Break/fix primarily concerns situations in which the system was
once in the correct state and needs to return to that state or one close
to it. The Microsoft Windows Installer saves a valid state for the core
of the operating system and for selected applications. The saved state
is accessible to the user, and thus vulnerable to user error or to a
security breach. IBM's solution, Rapid Restore Pc, saves the
complete state on a hidden partition of the hard drive of a system. Both
of these solutions have only limited autonomic behavior because they
require informed human intervention.
Communications. Some automation of communications tasks has become
possible because of networking support services based on open standards.
Using the Dynamic Host Configuration Protocol (DHCP) and domain name
system (DNS) services, client devices self-configure in a network based
on Transmission Control Protocol/Internet Protocol (TCP/IP).
Unfortunately, other parameters are not generally available from
these services. Mail server addresses, Web proxy addresses and types,
security settings such as for virtual personal networks, and wireless
access point settings all require manual intervention to configure
today.
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.