Quarterly Technical Status Report: Architecture-based Adaptation of Complex Systems (Rainbow)

 

Agreement/Contract Number: F30602-00-2-0616

For the period of: January – March 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

Jichuan Chang

Jianing Hu

Ningning Hu

 

Staff:

Nancy Miller

 

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 3 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:

¨        been working on understanding and documenting adaptive architectural styles with Acme. To support software adaptation we need to first explicitly model adaptive architectural styles, adaptive systems and their adaptation rules. Our approach is to study adaptive styles by modeling them in Acme language, and find out how to effectively support the representation of such styles/systems by extending current language. So far we are investigating the Workspace style proposed by Nicholas Graham.

¨        been experimenting and designing the repair strategies for a specific adaptive example. This is being applied to several simple example systems. We would like to come up with a general design for the repair mechanism by first implementing the application-specific adaptation rules by hand.

¨        started work on the specification of a gauge runtime infrastructure, which generally allows the attachment of gauges to models (such as architectural models) and specifies the communication between them. We anticipate releasing this work as a proposal in the next quarter.

¨        been investigating the implementation of a wrapper to integrate Remos with the Probe Runtime Infrastructure (RTI). However, we have encountered some problems with this integration, the primary problem being that the Probe RTI is not well suited to a query response mechanism (where consumers of probes query the values), which is how Remos has been used mostly. We have had discussions with Bob Balzer, the author of the Probe RTI, and the results of this remain unclear.

¨        been developing a simple, dynamically-adaptive file transfer system that will be used as the basis for our demonstration in June. Using statistics gathered about the compression ratio of different types of files, we have been developing a predictive mechanism that can choose a compressed-connector over an uncompressed-connector where appropriate to meet file transfer deadlines. Remos is used to query the bandwidth available to the file transfer system to help in making these decisions.

 

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 extended  the composable connectors tool support to provide code generation for connector transformations for Java Message Service connectors. She has collected some examples of modifications that are sometimes desired by users of event-style connectors such as JMS. Previously, this tool could only generate code for Java RMI RPC connectors, so the addition of a different style of connector is helping to more generally validate the theoretical basis of this work.

Standardized Notations and Representations of Software Architecture: In this component of our research, we are concerned with maintaining the Acme architecture description language and supporting interoperability between it and other languages. In this quarter, we have:

¨        continued work on mapping architectural concepts to the UML Real-Time Profile, and has begun tool support to translate Acme architectural descriptions into a format that can be read by Rational Rose/RT. This work has been integrated with Garlan’s previous work on Acme/UML mappings. The aim is to provide some tool support to facilitate integration between AcmeStudio and Rational Rose/RT.

¨        begun work on extending Acme with a construct allowing the definition of groups. This is in response to the definition of xArch in the previous quarter, which had a grouping facility to define arbitrary groups of elements that, for example, are executing on a particular machine, or were written by the same developer. In order to facilitate integration between tools using xArch and our Acme tools, we have decided to add this grouping concept to Acme.

¨        developed  Acme extensions to xArch to provide the full range of Acme concepts in schemas built on top of xArch. This collection of schemas is called xAcme. An exporter for AcmeStudio was developed, allowing AcmeStudio to save Acme description in the xAcme format.

3.0 Notable Accomplishments, Breakthroughs & Technology Transition

¨        Release of xAcme, the Acme extensions to xArch:
http://www.cs.cmu.edu/~acme/pub/xAcme/.

¨        We transitioned a version of AcmeLib (for Java) to the group at Veridian/PSR for use in their Venice tool.

4.0 Collaboration Activities

¨        We met with the group at Veridian/PSR to discuss in detail the integration of Acme with Venice, and developed a short term plan for the June demo, and a long term plan for full integration.

¨        We met with John Spencer of the Open Group to continue our discussions on the development of ADML (Architecture Description Markup Language), and the possible integration of this development with the xArch work.

¨        David Garlan continued work with the OMG to develop a proposal for the introduction of software architecture concepts into UML 2.0.

¨        David Garlan began collaboration with Lucent, who will be providing industrial funding to support integrating Acme with UML/RT, and transitioning of that technology into Lucent.

5.0 Publications and Presentations

Submitted

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

Accepted

"Mapping Architectural Concepts to UML-RT," Shang-Wen Cheng, and David Garlan, in 2001 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'2001), Monte Carlo Resort, Las Vegas, Nevada, USA, June, 2001. To appear

Published

"Capturing Software Architecture Design Expertise With Armani," Robert Monroe, CMU School of Computer Science Technical Report CMU-CS-98-163. Version 2.3, revised January 2001.

"A feasibility study of the HLA bridge," Jürgen Dingel, David Garlan, and Craig A. Damon, Carnegie Mellon University School of Computer Science Technical Report CMU-CS-01-103, March, 2001.

"Software Architecture," David Garlan, Encyclopedia of Software Engineering, John Wiley & Sons, 2001.

6.0 Travel

David Garlan and Bradley Schmerl attended the Open Group Washington Regional Meeting. David Garlan presented the invited talk: “Advances in Effective Languages for Architecture Definition”

David Garlan and Bradley Schmerl attended the DASADA PI meeting in Monterey, CA, January 30-February 2, 2001.

Bradley Schmerl gave the invited talk “Advances in Effective Languages for Architecture Definition” at the Open Group Conference, San Jose, CA, February 6-8, 2001.

David Garlan attended the UML Working Group on Architectural Representation in UML meeting in Ft. Lauderdale, FL, February 5, 2001.

 

7.0 Funding Summary

8.0 Overall Project Status: [green]

9.0 Plans For The Next Reporting Period

 

·        Release the Gauge Runtime Infrastructure Proposal, after having it reviewed by members of the Common Extensible Design Notation Working Group.

·        Release a set of tools to support the development of gauges using Siena as the underlying communication infrastructure. This toolkit will allow the attachment of gauges to Acme descriptions, and support generating class stubs for developers to develop gauges, as well as consumers to control gauges and interpret values reported by gauges.

·        We will develop an xAcme importer, to allow xAcme descriptions to be read in to AcmeStudio.

·        We plan to integrate AcmeStudio with Rational Rose/RT, so that AcmeStudio can save in a format that Rational Rose/RT can read.