When constructing software systems from existing components, the engineer i
s faced with the problem of potential conflicts in the interactions among t
he components. Of particular difficulty is guaranteeing compatibility in th
e dynamic interaction behavior. Using an architectural description of the s
ystem and its intended components, the engineer can reason about the intera
ctions early and at a high level of abstraction. In this paper we give a ca
se study of the Compressing Proxy system, which was first investigated by G
arlan, Kindred, and Wing. We present architectural specifications and analy
ses of two versions of the system. One version is a seemingly obvious meldi
ng of the components. The other is a solution to deadlock problems uncovere
d by formal analyses of the first version. We use the Chemical Abstract Mac
hine as an example of an architectural description formalism that can help
uncover architectural mismatches in the behavior of components. (C) 1999 El
sevier Science B.V. All rights reserved.