Quarterly Technical Status Report: Architecture-based Adaptation of Complex Systems (Rainbow)
Agreement/Contract
Number: F30602-00-2-0616
For the period of:
July – September 2001
David Garlan,
Principal Investigator
School of Computer
Science, Carnegie Mellon University
5000 Forbes Ave
Pittsburgh, PA 15213
Voice: 412-268-5057
FAX: 412-268-5576
Faculty:
David Garlan
Peter Steenkiste
Bradley Schmerl
Graduate Students:
Bridget Spitznagel
Owen Cheng
Ningning Hu
Research Programmers:
Hong Yan
Arthur Chang
Neil Halelemein
The goal of the Rainbow project is to adapt complex systems by analyzing and adapting their architectures. The architecture of a system describes the intentions of a designer, and can be used to express the expectation of quality of service attributes. Existing analysis tools have been used to check to see whether these architectures can satisfy these attributes statically. Our approach is to migrate these techniques so that they can be used in dynamic adaptation, so that software architectures are analyzed at runtime. If the architectures fail to meet quality attributes then repair strategies are used to adapt the architecture (and thence the implementation) so that these quality attributes can be achieved. Our hypotheses are:
We
plan to use tools developed at CMU to support the Acme architecture description
language to in this project, in addition to the Remos system to provide us with
probes into network performance. We will describe architectures and adaptations
for applications where network performance is and important factor.
In addition to this specific work, we will also provide infrastructure support for extensions to Acme and associated tool support that will be required by other DASADA program participants. Thus, we are involved in the Gauges Infrastructure Working Group and the Resource Constrained Systems Working Group.
During this quarter we made progress on 4 fronts.
Gauge infrastructure for architecture-based adaptability: In this component of our research we are adapting Acme-based tools to serve as run-time models that allow us to visualize system behavior (via gauges) and make architecture-driven system adjustments.
In this quarter, we have:
·
As a test of the generality of the gauge
infrastructure, we have been implementing the gauge infrastructure using Java
RMI. Previously, we used Siena as an implementation base. The use of RMI is
helping to show us weaknesses in the design, and in the Siena implementation.
These weaknesses manifest themselves as a reliance on Siena, where none should
be. In other words, there have been places in the API where Siena was visible,
but should in fact be hidden from developers. This will result in the release
of a new version of the gauge infrastructure for RMI and Siena, as well as an
updated proposal, in the next quarter.
· We began developing Protocol Gauges to monitor protocols defined using a CSP-like language. The initial effort involved implementing a toy state tracer Java program in mid-July, based on the output of the Jeff Magee and Jeff Kramer's Labeled Transition System Analyzer (LTSA), which takes a CSP-like definition as input. We have obtained the source for the LTSA, and will continue development using it.
· We are writing a Gauge Developers’ Manual, which will detail how to write gauges using our infrastructure.
· We have explored a number of ways of collecting cheaper bandwidth information in probes.
Repair strategies: In this component of our research, we are developing extensions to Acme and tool support that allow repair to be specified and effected.
·
We elaborated an adaptation example, based on a
client-server web application. This example was used as motivation for
designing a framework that is based on the availability of an architectural
style at runtime. An architectural style is used as a basis for defining
constraints and repair strategies; constraint violation triggers repair
strategies that change an architectural model before changing the underlying
implementation.
Composable Connectors:
In this component of our research we are developing new techniques to enable us to develop rich forms of interaction in a systematic way. The underlying idea is to find a set of transformations that can be used to adapt simple interaction mechanisms (such as RPC or Publish/Subscribe) to add support for qualities like reliability and security. During this period we implemented a demonstration of the Java RMI connector-transforming tool’s capabilities. In a simple client-server system which was implemented for the demo, dependability-enhancing transformations were applied to the Java RMI connector to cause it to automatically resend dropped requests and, if requests are dropped repeatedly (suggesting server failure), to redirect the client’s requests to a backup server. (To simulate communication failures, the demo system’s primary server returns RemoteException for some fraction of requests, and eventually terminates itself to mimic server failure.) This demonstration illustrates: ability to generate implementations of a transformed RMI connector; ability to compose multiple interacting transformations; and that the specific connector transformation instances used are able to mask some kinds of errors and thus increase system dependability.
Standardized Notations and Representations of Software Architecture: In this component of our research, we are concerned with maintaining the Acme architecture description language, supporting interoperability between it and other languages, and providing tool support for its use.
· The visualization aspect of AcmeStudio has been debugged and revamped, with new features in how visual styles are defined and used. Among the new features: the ability to transfer styles from one machine to another; better use of bitmaps and icons to define visual styles; and definition of visual variant ordering.
· We began a redesign of AcmeLib, the aim of which is to make consistent the C++ and Java versions.
· AcmeStudio was changed so that gauges can be attached. Properties, meta-properties, and property types have been developed that define a convention to be used to specify gauges in Acme. AcmeStudio takes advantage of this convention to visually create and attach gauges defined in an Acme family.
None in this quarter.
"Exploiting Architectural Style for Self-repairing Systems," Shang-Wen Cheng, David Garlan, Bradley Schmerl, João Pedro Sousa, Bridget Spitznagel, and Peter Steenkiste, September 2001.
"Bridging the HLA: A Case Study in Composing Publish-Subscribe Systems," Jurgen Dingel, David Garlan, and Craig Damon, September, 2001.
"Using Gauges for Architecture-Based Monitoring and Adaptation," David Garlan, Bradley Schmerl, and Jichuan Chang, In the Working Conference on Complex and Dynamic Systems Architecture, Brisbane, Australia, 12-14 Decemeber, 2001. To appear
"Reconciling the Needs of Architectural Description with Object-Modeling Notations," David Garlan, Andrew J. Kompanek, and Shang-Wen Cheng, Science of Computer Programming, Special UML Edition, Stuart Kent and Bran Selic (Eds), Elsevier Press.
"A Compositional Approach for Constructing Connectors," Bridget Spitznagel, and David Garlan, The Working IEEE/IFIP Conference on Software Architecture, Royal Netherlands Academy of Arts and Sciences Amsterdam, The Netherlands, August 28-31, 2001.
· Attended the NASA Blue Panel Meeting to recommend changes to NASA Director. NASA Ames, July 12
· Gave four invited talks on Software Architecture in Turku, Finland, August 13-16.
· Presented the “A Compositional Approach for Constructing Connectors” paper at the IEEE/IFIP Conference on Software Architecture in Amsterdam, August 28-31, 2001.
Funding received as of September 2001: $414, 660
Funding expenditures and open commitments as of September 2001: $234,109