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

E-mail: garlan@cs.cmu.edu

WWW Homepage: http://www.cs.cmu.edu/~garlan

Voice: 412-268-5057

FAX: 412-268-5576

 

 

1.0 Participants

 

Faculty:

David Garlan

Peter Steenkiste

Bradley Schmerl

 

Graduate Students:

Bridget Spitznagel

Owen Cheng

Ningning Hu

 

Research Programmers:

Hong Yan
Arthur Chang
Neil Halelemein

2.0 Ongoing Research & Development

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.

3.0 Notable Accomplishments, Breakthroughs & Technology Transition

·        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.

4.0 Collaboration Activities

None in this quarter.

5.0 Publications and Presentations

Submitted

"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.

Accepted

"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.

Published

"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.

6.0 Travel

David Garlan:

·        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.

Bridget Spitznagel:

·        Presented the “A Compositional Approach for Constructing Connectors” paper at the IEEE/IFIP Conference on Software Architecture in Amsterdam, August 28-31, 2001.

7.0 Funding Summary

Funding received as of September 2001: $414, 660

Funding expenditures and open commitments as of September 2001: $234,109

8.0 Overall Project Status: [green]

9.0 Plans For The Next Reporting Period