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
Voice: 412-268-5057
FAX: 412-268-5576
Faculty:
David Garlan
Peter Steenkiste
Bradley Schmerl
Graduate Students:
Bridget Spitznagel
Owen Cheng
Jichuan Chang
Jianing Hu
Ningning Hu
Staff:
Nancy Miller
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.
¨
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.
¨ 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.
"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.
"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
"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.
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.
·
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.