Component composition errors and update atomicity: static analysis: Research Articles

Dynamic evolution inherently involves dynamic update and the issue of its atomicity. We show how this issue can be addressed in a similar manner to a communication failure via an extension to behavior protocols. First, we discuss the problem of defining a composition operator for behavior protocols so as to be able to reflect communication failures. Classical architecture description languages (ADLs) supporting behavior description, such as Wright and TRACTA, use a CSP-like parallel composition, which inherently yields only ‘successful traces’ ignoring non-accepted communication attempts. We show that component composition can produce several different types of behavior errors: bad activity, no activity, and divergence. The key idea behind bad activity is that real programs typically have an asymmetry of roles during event exchange: the caller is considered to be the initiator of the call while the callee has only a passive role. This contrasts with most formal systems, which treat communication symmetrically. We propose a new composition operator, ‘consent’, which reflects these types of errors by producing erroneous traces. By using the consent operator it can be statically determined whether the atomicity of a dynamic update of a component is implicitly guaranteed by the behavior of its current environment. Copyright © 2005 John Wiley & Sons, Ltd.

[1]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[2]  Jesper Andersson A deployment system for pervasive computing , 2000, Proceedings 2000 International Conference on Software Maintenance.

[3]  James M. Purtilo,et al.  Writing distributed programs in Polylith , 1990 .

[4]  Yolande Berbers,et al.  A meta-model driven methodology for state transfer in component-oriented systems , 2002 .

[5]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[6]  Stanislav Visnovsky,et al.  Modeling Software Components Using Behavior Protocols , 2004 .

[7]  Shing-Chi Cheung,et al.  Behaviour Analysis of Distributed Systems Using the Tracta Approach , 2004, Automated Software Engineering.

[8]  Frantisek Plasil,et al.  SOFA/DCUP: architecture for component trading and dynamic updating , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[9]  Christine Hofmeister Dynamic reconfiguration of distributed applications , 1993 .

[10]  Earl T. Barr,et al.  Runtime Support for Type-Safe Dynamic Java Classes , 2000, ECOOP.

[11]  Frantisek Plasil,et al.  Bounding component behavior via protocols , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

[12]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..