Autonomizing Legacy Systems
|
Abstract:
Various technologies are being proposed and developed for building
new autonomic systems, but these do not address the problem of dealing
with legacy components. Autonomic capabilities are increasingly
needed in "systems of systems" assembled from pre-existing components.
How can we construct self-managing, self-configuring, self-healing,
self-protecting, context-sensing and continuously self-optimizing
systems from legacy components? This talk discusses one proposed
approach to “autonomizing” legacy systems and assembling autonomic
systems-of-systems.
In
particular, we seek to enable autonomic properties through a solution
orthogonal to the legacy systems’ main business, control and communication
logic. Although the autonomicity is realized in an externalized
manner, this infrastructure becomes an integral part of the system-of-systems,
co-existing and cooperating with the systems’ functional mechanisms.
We
have proposed and have begun development of a three-tiered infrastructure:
At the lowest level, data is collected from a running system. It
is instrumented with non-invasive probes that report raw data up
to the gauge level. The gauges map the probe data into the system
architectural model as well as into a specific metric model for
the measurements. The "decision" layer can then analyze the implications
of the interpreted data on overall system functionality and performance,
and determine whether to deploy new (or disable existing) gauges
and probes, or deploy software effectors to reconfigure or adapt
individual components or the system itself, possibly changing its
structure by introducing new modules or modifying configuration
parameters. In this manner we attempt to augment an existing system-of-systems
with a decentralized control mechanism that can both determine local
optimizations and orchestrate full-system reconfigurations.
The
part of this effort conducted in the Programming Systems Lab at
Columbia University is in collaboration with Bob Balzer and Dave
Wile of Teknowledge, David Garlan and Bradley Schmerl of CMU, Nathan
Combs of BBN, George Heineman of WPI, David Wells of OBJS, and their
colleagues and students.
Gail E. Kaiser is a Professor of Computer Science and the Director
of the Programming Systems Laboratory in the Computer Science
Department at Columbia University. She was named as an NSF Presidential
Young Investigator in Software Engineering in 1988, and she has
authored or co-authored over 100 publications in a range of software
systems and borderline AI areas, most recently World Wide Web
technologies, collaborative work, process/workflow, extended transaction
models, and software development environments and tools. Her current
research focuses on groupspaces (Internet-scalable hypermedia
collaborative information management environments and tools),
groupviews (teamwork-oriented user interfaces drawing from popular
socializing and game-playing metaphors), and continual validation
(live monitoring and reconfiguration of distributed component-based
systems).
Professor Kaiser is on the editorial board of IEEE Internet Computing,
was a founding associate editor of ACM Transactions on Software
Engineering from 1989 until 1998, chaired the 1995 ACM SIGSOFT
Symposium on Foundations of Software Engineering, and has served
on over thirty conference program committees as well as reviewing
frequently for conferences, journals, NSF, NSERC and other funding
agencies. She received her Ph.D. and M.S. from CMU and her Sc.B.
from MIT.
|