You are on page 1of 15

Acme: An Architecture Description Interchange Language

David Garlan Robert Monroe David Wile


Computer Science Department USC/Inf. Sciences Institute
Carnegie Mellon University 4676 Admiralty Way
Pittsburgh, PA 15217 USA Marina del Rey, CA 90292 USA

Abstract data stores, and anticipated dimensions of evo-


lution [7, 8, 13].
Numerous architectural description languages Architectural design has always played a
(ADLs) have been developed, each providing strong role in determining the success of com-
complementary capabilities for architectural plex software-based systems: the choice of an
development and analysis. Unfortunately, each appropriate architecture can lead to a prod-
ADL and supporting toolset operates in isola- uct that satis es its requirements and is eas-
tion, making it dicult to integrate those tools ily modi ed as new requirements present them-
and share architectural descriptions. Acme is selves, while an inappropriate architecture can
being developed as a joint e ort of the software be disastrous.
architecture research community as a com- Despite its importance to software systems
mon interchange format for architecture de- engineers, the practice of architectural design
sign tools. Acme provides a structural frame- has been largely ad hoc, informal, and id-
work for characterizing architectures, together iosyncratic. As a result, architectural designs
with annotation facilities for additional ADL- are often poorly understood by developers; ar-
speci c information. This scheme permits sub- chitectural choices are based more on default
sets of ADL tools to share architectural infor- than solid engineering principles; architectural
mation that is jointly understood, while tol- designs cannot be analyzed for consistency
erating the presence of information that falls or completeness; architectural constraints as-
outside their common vocabulary. In this pa- sumed in the initial design are not enforced as
per we describe Acme's key features, rationale, a system evolves; and there are virtually no
and technical innovations. tools to help the architectural designers with
their tasks.
1 Introduction In response to these problems a number of
researchers in industry and academia have pro-
The software architecture of a system de nes posed formal notations for representing and
its high-level structure, exposing its gross or- analyzing architectural designs. Generically
ganization as a collection of interacting com- referred to as \Architecture Description Lan-
ponents. A well-de ned architecture allows an guages" (ADLs), these notations usually pro-
engineer to reason about system properties at vide both a conceptual framework and a con-
a high level of abstraction. Typical proper- crete syntax for characterizing software archi-
ties of concern include protocols of interaction, tectures. They also typically provide tools for
bandwidths and latencies, locations of central parsing, unparsing, displaying, compiling, ana-

1
lyzing, or simulating architectural descriptions existence of dangling connections). Such gratu-
written in their associated language. itous redundancy is clearly a waste of resources
Examples of ADLs include Aesop, Adage, for individual researchers as well as the commu-
Meta-H, C2, Rapide, SADL, UniCon, and nity as a whole.
Wright [5, 3, 2, 11, 10, 12, 14, 1]. Although all Finally, for many practitioners, deeper se-
of these languages are concerned with architec- mantic di erences between di erent ADLs are
tural design, each provides certain distinctive a second-order issue. First and foremost they
capabilities: Aesop supports the use of archi- need a way to describe their architectural struc-
tectural styles; Adage supports the description tures at all|any way that allows them to
of architectural frameworks for avionics navi- record system structures at an appropriate
gation and guidance; Meta-H provides speci c level of abstraction will do. Currently, however,
guidance for designers of real-time avionics con- adopting an existing ADL requires a substan-
trol software; C2 supports the description of tial investment to install the ADL tools and
user interface systems using a message-based learn to use them e ectively, along with a sig-
style; Rapide allows architectural designs to be ni cant \lock-in" to the selected ADL.
simulated, and has tools for analyzing the re- One way to ameliorate these problems would
sults of those simulations; SADL provides a for- be to provide an interchange language for soft-
mal basis for architectural re nement; UniCon ware architecture. Ideally, such a language
has a high-level compiler for architectural de- would permit the integration of di erent tools
signs that support a mixture of heterogeneous by providing a common form for interchanging
component and connector types; Wright sup- architectural descriptions. It could also serve
ports the speci cation and analysis of interac- as a basis for generic, ADL-neutral structural
tions between architectural components. analyses, allowing tool writers to develop ar-
The proliferation of ADLs and their support- chitectural analysis tools that are compatible
ing toolsets1 is both a blessing and a curse. On with multiple ADL's. Further, it could clar-
the positive side, di erent ADLs have explored ify the relationship between di erent ADLs and
di erent facets of the overall architectural de- the analyses that they provide.
sign problem. By exposing di erent features of Acme is an architecture description language
architectural design and ways to exploit those with precisely those goals. It is being devel-
features, collectively they are helping to deepen oped as a joint e ort of the software architec-
our understanding of the roles that architec- ture research community to provide a common
tural description can play in software develop- intermediate representation for a wide variety
ment. At this early stage in the development of architecture tools. Acme is based on the
of a discipline of software architecture, research premise that there is sucient commonality in
exploration of multiple approaches to architec- the requirements and capabilities of ADLs that
tural description is both appropriate and nec- meaningful ADL-independent information can
essary. be shared. Acme attempts to embody those
On the negative side, however, each ADL commonalities while also allowing the incor-
typically operates in a stand-alone fashion, poration of ADL-speci c information, so that
making it dicult to combine facilities of one auxiliary information can be retained. This
ADL with those of another. Furthermore, there scheme permits subsets of ADL tools to share
are many common aspects of architectural de- whatever architectural information is jointly
sign support that are reimplemented afresh for understood by those tools, while tolerating the
each ADL. Examples include graphical tools presence of information that falls outside their
for visualizing and manipulating architectural common vocabulary.
structures, facilities for storing architectural In this paper we describe the main features of
designs, and certain domain-independent forms Acme, its rationale, and technical innovations.
of analysis (such as checking for cycles, or the While Acme is still too new to tell whether it
1 In the remainder of this paper we will simply use will succeed as a community-wide tool for ar-
the term \ADL" to refer to both the language and its chitectural interchange, we believe it is impor-
supporting toolset. tant to expose its language design and philos-

2
ophy to the broader software engineering com- for groups of ADL developers to standard-
munity at this stage for feedback and critical ize aspects of architectural speci cation
discussion. To do this we will focus primar- that are not explicitly included in Acme
ily on the key design choices made by the lan-  To provide expressive descriptions that are
guage. easy for humans to read and write. The
language should allow compact, direct ex-
pression of architectural structures and id-
2 Language Rationale ioms.
2.1 Goals While these goals are complementary, taken
individually they lead to quite di erent choices
The design of a language should re ect its in- in design. In particular, the primary goal of
tended purpose. If, for example, the primary supporting interchange of software architecture
purpose of a language is to support formal anal- descriptions between di erent ADLs argues for
ysis, then minimality of features and semantic a simple, easy-to-parse language, while the sec-
simplicity are likely top-level concerns. If, on ondary goal of ease of reading and writing
the other hand, the primary purpose of a lan- for humans argues for expressive language fea-
guage is to support a domain-speci c design ac- tures. In the remainder of this paper we will see
tivity (such as for control systems in chemical how Acme attempts to achieve the main goal
plants), then closely matching the engineers' of architectural description interchange while
natural design vocabulary is crucial. It is im- accommodating the secondary goals.
portant, therefore, to be clear about the in-
tended purposes of Acme.
The primary purpose of Acme is to provide 2.2 Reconciling Standardization
an interchange format for architectural devel- and Diversity
opment tools and environments. As such, the The existence of multiple languages arises in
language should make it possible to integrate numerous other domains including document
a broad variety of separately-developed ADL formatting, programming, graphical encodings,
tools by providing an intermediate form for ex- and hypertext. As with ADLs, such diversity
changing architectural information. creates problems for users of these languages.
In addition to its primary goal of inter- A number of approaches have been used to cope
change, Acme was designed with the following with problems of language heterogeneity.
secondary goals in mind. These goals are listed
in decreasing order of importance. 1. Pick one: Let the community or mar-
ketplace decide on a single dominant lan-
 To provide a representational scheme that guage, and coerce future tool development
will permit the development of new tools to occur around that language.
for analyzing and visualizing architectural 2. Design a \union" language: Design a
structures. The language should provide language that incorporates all of the fea-
an architectural vocabulary that makes it tures of all of the languages, and thereby
straightforward for tool writers to map allow users to express anything that they
their intuitions about architectural struc- could have expressed in any of the individ-
tures into the forms expressible in the lan- ual languages.
guage. 3. Design an \intersection" language:
 To provide a foundation for developing Pick a least common denominator lan-
new, possibly domain-speci c, ADLs. The guage that includes the aspects of archi-
language should not preempt the ability tectural description that are shared by all
to build on its core capabilities with addi- ADLs.
tional constructs and semantics. 4. Give up: Admit that language diversity
 To serve as a vehicle for creating conven- is simply too large to try to nd any co-
tions and standards for architectural infor- ordinated solution at present. This usu-
mation. The language should make it easy ally results in a large number of pairwise

3
(or sometimes n-way) conversions to han- Second, although there is little beyond the
dle speci c instances of language interop- use of architectural structure about which
erability. all ADLs agree, signi cant subsets of exist-
With respect to ADLs, none of the tech- ing ADLs do agree on certain kinds of extra-
niques is particularly appealing. As we noted structural information. For example, both
earlier, the rst alternative is inappropriate. Rapide and Wright represent interactions in
Given the relative immaturity of our under- terms of events. Both Aesop and SADL are
standing about architectural modelling and concerned with the expression of stylistic in-
analysis, it would be foolhardy to legislate a variants. Aesop, UniCon, and Meta-H all pro-
single xed language at this time. Moreover, vide capabilities for expressing properties that
each of the existing languages can do some permit real-time schedulability analysis.
things well, but may be weak in other respects. These two observations suggest that a plausi-
The second alternative|a union language|is ble path towards integration of ADL facilities is
likewise unrealistic. Not only are the capabili- to design a language that centers on the shared
ties of di erent ADLs signi cantly di erent at a structural core of architectural description, but
semantic level (hence making language synthe- that also permits the inclusion of other aspects
sis dicult), but it is not yet clear what kinds of architectural description that may be rele-
of capabilities one would ideally want in a such vant to one or more ADL. In this way all ADLs
a language. The third alternative|an inter- can communicate structural aspects of an ar-
section language|is not likely to be successful chitecture in a uniform manner, while permit-
either. The range of constructs provided by dif- ting variability about other aspects of an archi-
ferent ADLs is suciently broad that it would tectural design. To the extent that subsets of
be dicult to nd a single semantic core to ADL tools can agree on those additional as-
which the capabilities could be translated. pects, they can also take advantage of that
This would suggest that the only alternative shared information. Over time, one can well
is the fourth: give up, and live with a prolifer- imagine that as the software architecture com-
ation of specialized inter-ADL solutions. How- munity develops a better understanding of the
ever, all is not lost. To understand why, con- value of certain classes of architectural infor-
sider the following two observations about ar- mation, representation conventions will emerge
chitecture description languages. that can be used by the interchange language.
First, an examination of existing ADLs re- This is the essence of Acme. The language
veals that there is, in fact, considerable agree- provides a xed vocabulary (or ontology) for
ment about the role of structure in architec- representing architectural structure. Addition-
tural description. One of the results of the ally it provides an open semantic framework
First International Workshop on Architectures in which architectural structures can be anno-
for Software Systems [4] was that virtually all tated with ADL-speci c properties. In this way
ADLs take as their starting point the need to Acme achieves the bene ts of both an intersec-
express an architectural design as a hierarchi- tion and a union language: the shared struc-
cal collection of interacting components. On tural core represents an intersection of the ex-
top of this structural skeleton di erent ADLs pressive capabilities of most ADLs, while the
then add various kinds of additional informa- use of annotations accommodates the union of
tion, such as run-time semantics, code frag- ADL-speci c concerns.
ments, protocols of interaction, design ratio-
nale, resource consumption, topological invari-
ants, and processor allocations. In some cases 3 Acme
this additional information could in principle
be understood and manipulated by tools for We now describe Acme, highlighting its key fea-
some other ADL. (For example several tools tures with a small illustrative example.2 These
could share a common interpretation of the 2 We will stress the main ideas behind the language
visual information for displaying the architec- design. Additional details and examples can be found
ture.) in [6].

4
key features are:
1. an architectural ontology consisting of
seven basic architectural design elements; RPC
Client Server
2. a exible annotation mechanism support-
ing association of non-structural infor-
mation using externally de ned sublan-
guages;
3. a template mechanism for abstracting Figure 1: Simple Client-Server Diagram
common, reusable architectural idioms
and styles; and
4. an open semantic framework for reasoning System simple_cs = {
about architectural descriptions. Component client = { Port send-requestt }
Component server = { Port receive-request }
Connector rpc = { Roles {caller, callee} }
3.1 Acme Architectural Design Attachments : {
Element Types client.send-request to rpc.caller ;
server.receive-request to rpc.callee }
Acme is built on a core ontology of seven }
types of entities for architectural representa-
tion: components, connectors, systems, ports, Figure 2: Simple Client-Server System in Acme
roles, representations, and rep-maps. These are
illustrated in Figures 3 and 4.
Of the seven types, the most basic elements
of architectural description are components , Components' interfaces are de ned by a set
connectors , and systems. of ports. Each port identi es a point of inter-
action between the component and its environ-
 Components represent the primary compu- ment. A component may provide multiple in-
tational elements and data stores of a sys- terfaces by using di erent types of ports. A
tem. Intuitively, they correspond to the port can represent an interface as simple as a
boxes in box-and-line descriptions of soft- single procedure signature, or more complex in-
ware architectures. Typical examples of terfaces, such as a collection of procedure calls
components include such things as clients, that must be invoked in certain speci ed or-
servers, lters, objects, blackboards, and ders, or an event multi-cast interface point.
databases. Connectors also have interfaces that are de-
 Connectors represent interactions among ned by a set of roles. Each role of a connec-
components. Computationally speaking, tor de nes a participant of the interaction rep-
connectors mediate the communication resented by the connector. Binary connectors
and coordination activities among compo- have two roles such as the caller and callee roles
nents. Informally they provide the \glue" of an RPC connector, the reading and writing
for architectural designs, and intuitively, roles of a pipe, or the sender and receiver roles
they correspond to the lines in box-and- of a message passing connector. Other kinds of
line descriptions. Examples include simple connectors may have more than two roles. For
forms of interaction, such as pipes, proce- example an event broadcast connector might
dure call, and event broadcast. But con- have a single event-announcer role and an ar-
nectors may also represent more complex bitrary number of event-receiver roles.
interactions, such as a client-server proto- As a simple illustrative example, Figure 1
col or a SQL link between a database and shows a trivial architectural drawing contain-
an application. ing a client and server component, connected
 Systems represent con gurations of com- by an RPC connector. Figure 2 contains its
ponents and connectors. Acme description. The client component is de-

5
clared to have a single send-request port, and tem, detailed typing information (such as types
the server has a single receive-request port. The of data communicated between components),
connector has two roles designated caller and protocols of interaction, scheduling constraints,
callee . The topology of this system is declared and information about resource consumption.
by listing a set of attachments. To accommodate the wide variety of auxil-
Acme supports the hierarchical description iary information Acme supports annotation of
of architectures. Speci cally, any component architectural structure with lists of properties.
or connector can be represented by one or Each property has a name, an optional type,
more detailed, lower-level descriptions. (See and a value. Any of the seven kinds of Acme
Figure 4.) Each such description is termed a architectural design entities can be annotated.
representation in Acme. The use of multiple Figure 4 shows several properties attached to a
representations allows Acme to encode mul- hypothetical architecture.
tiple views of architectural entities (although From Acme's point of view the properties are
there is nothing built into Acme that supports uninterpreted values. Properties become useful
resolution of inter-view correspondences). It only when a tool makes use of them for analysis,
also supports the description of encapsulation translation, and manipulation. In Acme the
boundaries, as well as multiple re nement lev- \type" of a property indicates a \sublanguage"
els. with which the property is speci ed. Acme
When a component or connector has an ar- itself prede nes simple types such as integer,
chitectural representation there must be some string, and boolean. Other types must be in-
way to indicate the correspondence between the terpreted by tools: these tools use the \name"
internal system representation and the external and \type" indicator to gure out whether the
interface of the component or connector that is value is one that they can process. The default
being represented. A rep-map (short for \rep- behavior of a tool that does not understand a
resentation map") de nes this correspondence. speci c property or property type should be to
In the simplest case a rep-map provides only an leave it uninterpreted but preserve it for use
association between internal ports and exter- by other tools. This is facilitated by requiring
nal ports (or, for connectors, internal roles and standard property delimiter syntax so that a
external roles).3 In other cases the map may tool can know the extent of a property without
be considerably more complex. For those cases having to interpret its contents.
the rep-map is essentially a tool-interpretable Figure 5 shows the simple client-server sys-
placeholder|similar to the use of properties tem elaborated with several properties. For
described in the following section. example, several of the properties indicate
how the elements relate to constructs in tar-
3.2 Acme Properties get ADLs|such as Aesop and UniCon styles.
Likewise, the \protocol" property of the RPC
The seven classes of design element outlined connector is declared to be in the \Wright"
above are sucient for de ning the structure of language and would only be meaningful to a
an architecture as a hierarchical graph of com- tool that knows how to process that language.
ponents and connectors. (For simplicity we have elided the speci cation:
But there is clearly more to architectural de- see [1] for details.)
scription than structure. As discussed earlier, Of course, in order for properties to be use-
currently there is little consensus about exactly ful when interchanged between di erent ADLs,
what should be added to the structural infor- there must be a common understanding of their
mation: each ADL typically has its own set meaning. As we have noted, Acme does not
of auxiliary information that determines such explicitly de ne those meanings, but it does
things as the run-time semantics of the sys- allow for the shared use of properties when
3 Note that rep-maps are not connectors: connec-
those meanings do exist. We anticipate that
tors de ne paths of interaction, while rep-maps iden- over time Acme will serve as a vehicle for con-
tify an abstractionrelationshipbetween sets of interface ventionalization of properties that are useful to
points. more than one ADL.

6
System
Component Connector

Role Port

Figure 3: Elements of an Acme Description

Client Server

Representations

Properties

shape = rect. ... Throughput =


width = 100 while(data) 5 kbps
height = 50 read(response); max_connect =
color = blue ... 10
... Small-memory High-Performance
Representation Representation
Visualization Performance
Spec. Source Code Data Small-mem-RM : RepMap High-Perf-RM : RepMap

Figure 4: Representations and Properties of a Component

7
System simple_cs = {
Component client = {
Port send-request;
Properties { Aesop-style : style-id = client-server;
UniCon-style : style-id = cs;
source-code : external = "CODE-LIB/client.c" }}

Component server = {
Port receive-request;
Properties { idempotence : boolean = true;
max-concurrent-clients : integer = 1;
source-code : external = "CODE-LIB/server.c" }}

Connector rpc = {
Roles {caller, callee}
Properties { synchronous : boolean = true;
max-roles : integer = 2;
protocol : Wright = "..." }}

Attachments {
client.send-request to rpc.caller ;
server.receive-request to rpc.callee }
}

Figure 5: Client-Server System with Properties in Acme

Several property sublanguages are currently scriptions need to be repeatedly speci ed. Con-
being developed. One is a standard for spec- sider, for example, extending the simple client-
ifying visualization properties to be used by server system described in Figure 5 to include
graphical editors to display architectural de- multiple clients and multiple servers. Although
scriptions. Another sublanguage is being de- there is signi cant common structure underly-
veloped to describe temporal constraints on an ing each of the clients and servers in the design,
architectural description. Details of these sub- the language facilities presented thus far would
languages are beyond the scope of this report, require the architect to explicitly specify this
but can be found in [6]. structure for each design element.
To address this problem the Acme language
3.3 Acme Templates and Style includes templates, a typed, parametrized
macro facility for speci cation of recurring pat-
De nition terns. These patterns are used (or instantiated)
The Acme features described thus far are suf- by applying them to the appropriate types of
cient to de ne an architectural instance, and, parameters. Templates de ne syntactic struc-
in fact, form the basis for the core capabilities tures that can be expanded in place to produce
of Acme parsing and unparsing tools. As a rep- new declarations. They are quite exible, per-
resentation that is good for humans to read and mitting the de nition of attachments as well as
write, however, these features leave much to be individual components and connectors.
desired. Speci cally, they provide no facilities The utility of templates is further extended
for abstracting architectural structure. As a re- when they are grouped into collections of ar-
sult, common structures in complex system de- chitectural styles. In Acme, a style de nes a

8
set of related templates that make up the com- for architectures. Rather, Acme relies on an
mon vocabulary of a family of systems. Styles open semantic framework that provides a ba-
provide a mechanism for capturing and reusing sic structural semantics while allowing speci c
common structures and idioms in architectural ADLs to associate computational or run-time
design. behavior with architectures using the property
Figure 6 illustrates the use of a client-server construct.
style, which de nes client , server and rpc tem- The open semantic framework provides a
plates. This example extends the simple client- straightforward mapping of the structural as-
server example of Figure 5 by turning the pects of the language into a logical formalism
client and server speci cations into templates, based on relations and constraints. In this
and declaring a system instance with multi- framework, an Acme speci cation represents a
ple clients and multiple servers. As illustrated, derived predicate, called its prescription. This
the client and server templates are straight- predicate can be reasoned about using logic or
forward constructs that create a new client or it can be compared for delity with real world
server component with the set of ports passed artifacts that the speci cation is intended to
as an actual parameter. The rpc template is describe.
slightly more sophisticated than the client and To illustrate, consider the simple client-
server templates in that it not only declares an server example architecture speci cation of
rpc connector but also attaches a client to a Figures 1 and 2, where a client is linked to a
server. The \de ning(conn:Connector)" clause server through a single connector. This system
indicates that a unique identi er conn needs has the following prescription:
to be generated each time this template is ex-
panded. As a result of the de ning clause it is exists client, server, rpc |

possible to refer to the newly created connector component(client) ^


component(server) ^
within the template's body, as is required for connector(rpc) ^
the template to attach the new connector to the attached(client.send-request,
passed in components. Use of this style leads rpc.caller) ^
to concise descriptions of architectures and per- attached(server.receive-request,
mits the explicit delineation of reusable archi- rpc.callee)
tectural structures.
Although Acme is not intended to be a full- These predicates can be reasoned about
edged ADL, the addition of templates and using standard rst-order logical machinery.
styles greatly enhance the readability and ab- They can also be used as the formal speci -
straction capabilities of the language. Both cation of an implementation. (In this case,
templates and styles can, however, be elimi- it requires that one be able to nd the arti-
nated by direct expansion. This permits Acme facts client and server that purport to be com-
tools to translate any Acme description into ponents, a connector artifact rpc, and attach-
the more primitive core language for straight- ments that are speci ed by the predicate.)
forward interchange. As a result, Acme is able This simple translation scheme is, however,
to satisfy the secondary goals of readability and not quite sucient. Two implicit aspects of
support for abstraction without compromising the speci cation also need to be included in
Acme's primary goal of supporting the inter- the prescription: the rst is the closed world
change of software architecture descriptions be- assumption which states that all components,
tween heterogeneous ADL's. connectors, ports and roles have been identi ed
by the existential variables in the speci cation,
all attachments have been speci ed, and that
3.4 Acme's Open Semantic no more exist; Second, the existential variables
Framework must refer to distinct entities. With these ad-
Acme is primarily concerned with the archi- ditions, the example's prescription reads:
tectural structure of systems, and hence does exists client, server, rpc |
not embody speci c computational semantics component(client) ^

9
Style client-server = {

Component Template client(rpc-call-ports : Ports) = {


Ports rpc-call-ports;
Properties { Aesop-style : style-id = client-server;
Unicon-style : style-id = cs;
source-code : external = "CODE-LIB/client.c" }}

Component Template server(rpc-receive-ports : Ports) = {


Ports rpc-receive-ports;
Properties { Aesop-style : style-id = client-server;
Unicon-style : style-id = cs; ... }}

Template rpc(caller_port, callee_port : Port) defining (conn : Connector) =


{ conn = Connector {
Roles {caller, callee}
Properties { synchronous : boolean = true;
max-roles : integer = 2; }
protocol : Wright = "..." }}
Attachments { conn.caller to caller_port;
conn.callee to callee_port; }}
}

System complex_cs : client-server = {


c1 = client(send-request); c2 = client(send-request);
c3 = client(send-request); s1 = server(receive-request);
s2 = server(receive-request);

rpc(c1.send-request, s1.receive-request);
rpc(c2.send-request, s1.receive-request);
rpc(c3.send-request, s2.receive-request);
}

Figure 6: Client-Server System Using Templates and Style

component(server) ^ In addition to basic structural information,


connector(rpc) ^ properties also need to be handled. Property
attached(client.send-request, names correspond to predicates that take the
rpc.caller) ^ entity to which the property applies as an ar-
attached(server.receive-request,
gument and return the value of that property
rpc.callee) ^
name for the given entity. The values of prop-
client != server ^
server != rpc ^
erties are treated as primitive atoms, without
client != rpc ^
their own semantics. So, for example,
(for all y:component (y) =>
Component client = {
y = client | y = server) ^
Port send-request;
(for all y:connector(y) => y = rpc) ^
Properties {
(for all p,q: attached(p,q) =>
Aesop-style : style-id = client-server;
(p=client.send-request ^
UniCon-style : style-id = cs} }
q=rpc.caller)
| (p=server.receive-request ^
q=rpc.callee))
adds to the prescription the clauses:

10
Aesop-style(client) = client-server ^ Despite its simplicity, however, Acme pro-
Unicon-style(client) = cs vides a non-trivial basis for architectural rep-
resentation and analysis|addressing the sec-
Although the value of a property is consid- ond goal. Three features contribute to this.
ered an atomic entity in terms of Acme's struc- First is the use of explicit connectors. This
tural semantics, tools that manipulate and an- permits new architectural glue to be de ned,
alyze Acme descriptions can interpret the prop- and elevates Acme above typical module in-
erty values as needed. An example of this ap- terconnection languages in which only a small
proach is the protocol property of the RPC con- set of connector types (usually procedure call
nector speci ed in the \Wright" sublanguage in and shared variables) are supported. Second is
example 5. the use of multiple representations. As noted
earlier, this permits the encoding of multiple
Connector rpc = { views, re nement relations, and simple encap-
Roles {caller, callee} sulation schemes. Third is the use of templates
Property protocol : Wright = "..."; } and styles for encapsulating reusable patterns
and idioms.
Tools that don't understand the meaning of With respect to analysis, it is worth com-
the Wright sublanguage can ignore the value menting here on Acme's type system. Acme
of this property, processing it as an uninter- provides a xed set of types, including the
preted string. Tools that do understand the seven basic architectural types (component,
Wright sublanguage can interpret the value of connector, etc.) and simple property types (in-
the protocol speci cation to discover more de- teger, boolean, string). Within this set Acme
tailed ADL-speci c semantics of the connector. supports a strong typing discipline. (For ex-
ample, the actual and formal parameters of a
template must agree.) However, Acme does
4 Discussion not treat templates as type constructors them-
selves. So, for example, a template that cre-
Returning to the language design goals enu- ates a pipe connector does not actually intro-
merated earlier, we can now see how Acme at- duce a new type of connector|rather it pro-
tempts to reconcile the competing goals for the vides shorthand for creating a standard con-
language. nector, endowed with pipe features (e.g., input
Acme addresses its primary goal|the need and output roles).
for an ADL interchange format|by providing The decision to use this relatively weak type
an extremely simple basis for architectural rep- system was based primarily on methodological
resentation. Essentially, any tool that can han- considerations. In general, for architectural de-
dle the seven basic architectural element types scription it is more important that the parts
(components, connectors, etc.) can interact have the right structure (and properties) than
with other architectural tools. The simplic- that they are declared using a particular set of
ity of the structural core of Acme (i.e. Acme forms. So for example, if I create an architec-
without templates and styles) is re ected in tural description in which all of the connectors
the fact that its BNF occupies only a single \look like" pipes, I should be able to use it in
page. For most ADLs it is trivial to write a all of the contexts that I could have used the
parser and an unparser for that core language. same description declared with a pipe construc-
Moreover, any architectural description using tor template. This increases the exibility of
the more expressive capabilities of templates the language, but at the cost of requiring anal-
can be automatically translated into the sim- ysis tools to do the checking that a type system
pler core language. Of course, the more a given would otherwise have provided for free.
tool can take advantage of property annota- The third goal for Acme|providing a foun-
tions, the more it can do with the descriptions dation for new ADL development|is sup-
(in the form of analysis, code generation, trans- ported in three ways. First, the core constructs
formation, etc.). of Acme provide a baseline for architectural de-

11
scription that are a good starting point for al- 5 Example
most any ADL. Second, the template mecha-
nism permits the packaging of common syntac- To illustrate how Acme can be used to sup-
tic forms; speci c ADLs can be de ned simply port architectural interchange, we brie y de-
by xing a set of template libraries (or styles) scribe our experience integrating Wright and
and then restricting developers to those forms. Rapide using Acme.4
Third, Acme's open semantic framework does Wright is an ADL that allows one to specify
not preempt the development of more detailed and analyze the abstract behavior of architec-
ADL-speci c semantics. By binding very few tures [1]. Components and connectors behav-
decisions about the computational semantics of iors are speci ed using a event/process notation
an Acme description, language designers who based on CSP [9]. In particular, connector se-
build new ADLs on top of Acme can supply mantics are de ned by a protocol that speci es
those ADLs with whatever semantic model is the behavior of participating components. The
appropriate for the extended language. Wright toolset allows one to use a commercial
model checking technology to statically check
Acme's fourth goal is to serve as a vehicle for properties such as: (a) whether a component
conventionalization about standards for archi- interface (also speci ed by a process) is consis-
tectural information. This is supported by the tent with the connector to which it is attached;
property mechanism, which permits the use of (b) whether a connector is internally consistent;
new sublanguages for property types and val- and (c) whether a con guration of components
ues. Although the success of this approach will and connectors is complete (in the sense that
depend on the willingness of the architectural there are sucient connections to satisfy the
community to build consensus around common interface requirements of the components).
properties that many ADLs are capable of han- Rapide is an ADL that allows one to spec-
dling, early indications are that this is already ify systems in terms of partially ordered sets of
happening. events [10]. Component computations are trig-
gered by received events, and in turn trigger
other computations by sending events to other
It is worth emphasizing that this goal sets components. The Rapide toolset permits simu-
Acme apart from most other language design lation of such descriptions, animation of those
e orts. Typically a language is designed as a simulations, and analysis of the resulting trace
fully-formed, complete artifact. It is then pre- graphs to check for anomalous behavior.
sented to a community of users, who will either Rapide and Wright are similar in several re-
adopt it or not. Acme is di erent. It recognizes spects. Both are targeted at modelling ab-
that architectural representation is an evolv- stract behavior of architectural designs, both
ing, multi-faced target. Rather than attempt- use the notion of events to de ne behaviors,
ing to completely pin the target down, Acme and both share a basic structural model of in-
instead provides the context in which interested terconnected, communicating components.
parties can participate in developing standards But they also di er in signi cant ways. First,
and conventions for representing and analyz- from a user's point of view the two languages
ing architectural information centered around o er di erent, but complementary capabili-
a shared core of basic concepts. ties for analysis: Wright supports static anal-
ysis using model checking technology, while
The nal goal for Acme is to provide an ex- Rapide supports dynamic analysis using sim-
pressive notation for architects. While expres- ulation technology. Second, notationally the
siveness is invariably a subjective quality, Acme formalisms used to characterize event behav-
has attempted to address the issue by adopting ior are di erent: Wright adopts the functional
a rich set of base architectural types, by pro- 4 A complete description of this work is beyond the
viding a exible template encapsulation mech- scope and space limitations of this paper. Here we sum-
anism, and by allowing the de nition of new marize the salient features to illuminate the bene ts
property sublanguages. and limitations of Acme in practice.

12
ACME
ACME Annotated
Native Annotated With Native
Wright With Wright Rapide
Wright and
Properties Rapide
Properties

Wright to ACME Wright to Rapide ACME to Rapide


Translator Semantic Conversion Tool Translator
(Operates on ACME)

Figure 7: Wright-to-Rapide Translation via Acme

style of CSP, while Rapide uses an imperative ily unparsed to native Rapide text. In both of
model. Third, the two languages di er in their these steps Acme libraries provide basic pars-
treatment of connectors. Rapide provides a ing and unparsing routines that greatly sim-
small, xed set of primitive connectors, while plify the process.
Wright permits the description of new types of The hard work occurs in the middle step.
connectors. Fourth, Rapide supports dynamic The key challenge was to bridge the semantic
recon guration of architectures, while Wright gap between Wright and Rapide. There were
focuses on static con gurations. two main aspects of this. The rst was to map
As developers of the Wright toolset we from the functional style of Wright to the im-
wanted to take advantage of Rapide tools to perative style of Rapide. This turned out to be
add simulation and animation capabilities for straightforward, using standard program trans-
our architectural descriptions. To do this formation techniques.
we used Acme as an interchange format be- The second, and more substantive aspect was
tween the two toolsets. As illustrated in Fig- to deal with the problem that connectors are
ure 7, Wright descriptions (developed using not rst class in Rapide, but are in Wright.
our Wright tools) are shipped to Rapide tools We considered two approaches. The rst was
via Acme interchange in three steps. First, to limit the translation to those Wright speci-
Wright descriptions are translated into Acme. cations that use the connector types under-
Next, a Wright-Rapide translator traverses the stood by Rapide. The second was to map
Acme representation to produce a new one non-trivial connectors in Wright to components
that includes Rapide speci cations. The re- in Rapide. We decided to adopt the second
sulting Acme description is then translated into approach, since it would permit a larger set
Rapide text, which can be processed by Rapide of Wright speci cations to be mapped in to
tools. Rapide.5 Thus the Wright-Rapide translator
The rst and third steps are straightforward. rst converts each non-trivial connector into a
Wright architectural structure maps easily into 5The downside is that the original Wright descrip-
the Acme ontology described earlier. Speci - tion and the resulting Rapide descriptionno longer have
cations of component and connector behavior isomorphic structure, complicating the mapping of re-
are also easily mapped into annotations of the sults of Rapide tools to the original descriptions. Note
also that the richer capabilities of Rapide to describe
structural graph. Similarly, Acme descriptions dynamic architectures was not an issue since we were
annotated with Rapide speci cations are eas- only interested in one-way translation.

13
component, and uses simple event-binding con- our initial experience with the ve ADLs listed
nectors to connect the parts. It then transforms above, the prognosis looks good.
each Wright semantic annotation into a Rapide There are currently a number of Acme-based
semantic annotation. tools available. These tools include (a) an
Acme provided two key bene ts compared to Acme-Web visualization tool that converts a
a direct, non-Acme based, translation between textual Acme description into a \World-Wide-
Wright and Rapide. First, it substantially sim- Weblet" that can be viewed using standard web
pli ed the handling of the structural aspects of browsers6 ; (b) a system that animates pipe-
the architectural description and translation. and- lter architectures described with Acme;
This made it straightforward to map Wright (c) a web-based Acme repository for templates,
structures into Acme, and also to transform styles, and architectural descriptions: and (d)
the original descriptions into (non-isomorphic) an \expander" tool that converts architectural
Rapide structures. Second, it had the im- descriptions using templates and styles into a
portant side e ect of augmenting the Wright simple \core" description (without templates)
toolset with a set of Acme-based tools. Once that can be more readily interchanged between
Wright is translated into Acme we can use tools.
Acme tools for graphical browsing, conversion Current work on Acme is centered around
to web documents, and persistent storage. three activities. First, we are extending our
tools to provide better capabilities for analysis
of Acme descriptions and working with other
6 Current Status, On-going ADL developers to create tools that expand
Work the set of ADLs that can translate to and from
Acme. Second, we are continuing our e orts
Work to date on Acme has focused on devel- to develop community-based consensus around
oping a coherent language that satis es the re- common attributes. In particular, we hope to
quirements of a diverse set of stakeholders and develop a standard for characterizing trace be-
goals. We have completed the design of the havior that will allow broad-based reuse of ar-
initial release of the Acme language. Over the chitectural \animation" tools.
past two years the preliminary language design Third, we are exploring richer semantic mod-
has been discussed at several meetings of re- els along two major dimensions: constraint
searchers and practitioners, who have provided logic families and property families. Along the
critical feedback and guidance. This is the rst rst dimension we are exploring temporal logic
written account of the language to appear at a to express dynamic aspects of architectural evo-
conference. lution. In order to specify properties of en-
Actual use of Acme has taken two forms. tire architecture families|styles, re nements,
The rst has been the exploration of language or dynamic architectures|the closed world and
capabilities through case studies of system ar- uniqueness assumptions mentioned earlier will
chitectures. The most complex of these was need to be relaxed.
an architecture for a missile command sys- The second dimension of exploration is to
tem, involving about a dozen pages of Acme. enable better semantic discrimination of types
The Second has been a set of case studies of properties. In general, an Acme speci ca-
in which we use Acme to support the inter- tion's prescription is never an end in itself, but
change of architectural designs between vari- rather forms the hypothesis (the justi cation,
ous ADLs. Currently, we are able to transfer really) that some other, more important predi-
designs via Acme between UniCon and Aesop, cates hold. For example, a derivative property
as well as from Wright to Rapide. Tools to sup- from the combination of \Aesop-style(client) =
port more sophisticated interchange between client-server" and cycle-freeness might be that
Rapide, Wright, and SADL are in development. certain kinds of deadlock are impossible. We
Although our experience with inter-ADL ex- 6 Examples and information about the tool can be
change is not yet broad enough to declare Acme found through the URL:
a success as an interchange language, based on http://www.cs.cmu.edu/~able/acme-web/

14
need to be able to distinguish such derived Foundations of Software Engineering, pages
predicates from those that are stated axiomat- 179{185. ACM Press, December 1994.
ically about an architectural speci cation. [6] D. Garlan, B. Monroe, and D. Wile. ACME:
An interchange language for software architec-
Acknowledgements ture, 2nd edition. Technical report, Carnegie
Mellon University, 1997.
The Wright-Rapide translation was largely car- [7] D. Garlan and D. Perry. Introduction to the
ried out by Zhenyu Wang, whom we grate- special issue on software architecture. IEEE
fully acknowledge. The research reported here Transactions on Software Engineering, 21(4),
was sponsored by the Wright Laboratory, Aero- April 1995.
nautical Systems Center, Air Force Materiel [8] D. Garlan and M. Shaw. An introduction
Command, USAF, and the Advanced Research to software architecture. In V. Ambriola
Projects Agency (ARPA) under grants F33615- and G. Tortora, editors, Advances in Soft-
93-1-1330 and N66001-95-C-8623; and by Na- ware Engineering and Knowledge Engineer-
tional Science Foundation under Grant CCR- ing, pages 1{39, Singapore, 1993. World Sci-
9357792 and a Graduate Research Fellowship. enti c Publishing Company. Also appears as
Views and conclusions contained in this docu- SCS and SEI technical reports: CMU-CS-94-
ment are those of the authors and should not 166, CMU/SEI-94-TR-21, ESC-TR-94-021.
be interpreted as representing the ocial poli- [9] C. Hoare. Communicating Sequential Pro-
cies, either expressed or implied, of Wright Lab- cesses. Prentice Hall, 1985.
oratory, the US Department of Defense, the [10] D. C. Luckham, L. M. Augustin, J. J. Kenney,
United States Government, or the National Sci- J. Veera, D. Bryan, and W. Mann. Speci ca-
ence Foundation. The US Government is au- tion and analysis of system architecture using
thorized to reproduce and distribute reprints Rapide. IEEE Transactions on Software En-
for Government purposes, notwithstanding any gineering, Special Issue on Software Architec-
copyright notation thereon. ture, 21(4):336{355, April 1995.
[11] N. Medvidovic, P. Oreizy, J. E. Robbins, and
R. N. Taylor. Using object-oriented typing to
References support architectural design in the C2 style.
In SIGSOFT'96: Proceedings of the Fourth
[1] R. Allen and D. Garlan. Formalizing architec- ACM Symposium on the Foundations of Soft-
tural connection. In Proceedings of the 16th ware Engineering. ACM Press, October 1996.
International Conference on Software Engi- [12] M. Moriconi, X. Qian, and R. Riemenschnei-
neering, pages 71{80, Sorrento, Italy, May der. Correct architecture re nement. IEEE
1994. Transactions on Software Engineering, Special
[2] P. Binns and S. Vestal. Formal real-time ar- Issue on Software Architecture, 21(4):356{372,
chitecture speci cation and analysis. In Tenth April 1995.
IEEE Workshop on Real-Time Operating Sys- [13] D. E. Perry and A. L. Wolf. Foundations for
tems and Software, New York, NY, May 1993. the study of software architecture. ACM SIG-
[3] L. Coglianese and R. Szymanski. DSSA- SOFT Software Engineering Notes, 17(4):40{
ADAGE: An Environment for Architecture- 52, October 1992.
based Avionics Development. In Proceedings [14] M. Shaw, R. DeLine, D. V. Klein, T. L. Ross,
of AGARD'93, May 1993. D. M. Young, and G. Zelesnik. Abstractions
[4] D. Garlan, editor. Proceedings of the First for software architecture and tools to support
International Workshop on Architectures for them. IEEE Transactions on Software Engi-
Software Systems, Seattle, WA, April 1995. neering, Special Issue on Software Architec-
Published as CMU Technical Report CMU- ture, 21(4):314{335, April 1995.
CS-95-151, April 1995.
[5] D. Garlan, R. Allen, and J. Ockerbloom. Ex-
ploiting style in architectural design environ-
ments. In Proceedings of SIGSOFT'94: The
Second ACM SIGSOFT Symposium on the

15

You might also like