GIT-CERCS-05-22
Karsten Schwan, Brian F. Cooper, Greg Eisenhauer, Ada Gavrilovska, Matt Wolf, Hasan Abbasi, Sandip Agarwala, Zhongtang Cai, Vibhore Kumar, Jay Lofstead, Mohamed Mansour, Balasubramanian Seshasayee, Patrick Widener,
Autonomic Information Flows
Today's enterprise systems and applications implement functionality that is
critical to the ability of society to function. These complex distributed
applications, therefore, must meet dynamic criticality objectives even when
running on shared heterogeneous and dynamic computational and communication
infrastructures. Focusing on the broad class of applications structured as
distributed information flows, the premise of our research is that it is
difficult, if not impossible, to meet their dynamic service requirements
unless these applications exhibit autonomic or self-adjusting behaviors that
are `vertically' integrated with underlying distributed systems and
hardware. Namely, their autonomic functionality should extend beyond the
dynamic load balancing or request routing explored in current web-based
software infrastructures to (1) exploit the ability of middleware or systems
to be aware of underlying resource availabilities, (2) dynamically and
jointly adjust the behaviors of interacting elements of the software
stack being used, and even (3) dynamically extend distributed platforms
with enterprise functionality (e.g., network-level business rules for data
routing and distribution). The resulting vertically integrated systems can meet
stringent criticality or performance requirements, reduce potentially
conflicting behaviors across applications, middleware, systems,
and resources, and prevent breaches of the `performance firewalls' that
isolate critical from non-critical applications.
This paper uses representative information flow applications to
argue the importance of vertical integration for meeting criticality
requirements. This is followed by a description of the AutoFlow middleware,
which offers methods that drive the
control of application services with runtime knowledge of current resource
behavior. Finally, we demonstrate the opportunities derived from the
additional ability of AutoFlow to enhance such methods by also dynamically
extending and
controlling the underlying software stack, first to better understand its
behavior and second, to dynamically customize it to better meet current
criticality requirements.