6.5 Mani pulation of Recovered Software Architecture
at Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.5.1 Manipulation via Reflection . . . . . . . . . . . . . . 131
6.5.2 Programming Model . . . . . . . . . . . . . . . . . . . 132
6.5.3 Graphical Tool . . . . . . . . . . . . . . . . . . . . . . . 132
6.6 Performance Evaluation . . . . . . . . . . . . . . . . . . . . . . . 134
6.7 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.8 Conclusion and Future Work . . . . . . . . . . . . . . . . . . . 136
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7 Supporting Runtime Software Architecture:
A Bidirectional-Transformation-Based Approach ........ 139
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.2 Runtime Software Architecture . . . . . . . . . . . . . . . . . . 141
7.2.1 An Illustrative Example . . . . . . . . . . . . . . . . . 141
7.2.2 A Formal Description of Runtime
Software Architecture . . . . . . . . . . . . . . . . . . 142
7.3 Main taining Causal Connections
by Architecture-System Synchronization . . . . . . . . . . . 144
7.3.1 The Four Properties . . . . . . . . . . . . . . . . . . . . 144
7.3.2 The Challenges . . . . . . . . . . . . . . . . . . . . . . . 144
7.4 Architecture-System Synchronization
Based on Bi-transformation . . . . . . . . . . . . . . . . . . . . 145
7.4.1 Enabling Techniques . . . . . . . . . . . . . . . . . . . 145
7.4.2 The Synchronization Algorithm. . . . . . . . . . . . 146
7.4.3 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.4.4 Discussion About the Algorithm
and the Properties . . . . . . . . . . . . . . . . . . . . . 149
7.5 Gene rating Synchronizers for Legacy Systems . . . . . . . 150
7.5.1 Implementing the Generic Synchronization
Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.5.2 Generating Specific XMI Parsers
and System Adapters . . . . . . . . . . . . . . . . . . . 151
7.6 Case Studies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.6.1 C2-JOnAS . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.6.2 Client/Server-JOnAS . . . . . . . . . . . . . . . . . . . 154
7.6.3 Other Case Studies . . . . . . . . . . . . . . . . . . . . 155
7.6.4 Summary and Discussion . . . . . . . . . . . . . . . . 155
7.7 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.8 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8 Low-Disruptive Dynamic Updating of Internetware
Applications ................................... 163
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2 Dyna mic Updating: Eager Versus Lazy . . . . . . . . . . . . 165
8.3 Javelus: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.4 Dyna mic Patch Generation . . . . . . . . . . . . . . . . . . . . . 167
8.4.1 Identifying Changed Classes . . . . . . . . . . . . . . 167
8.4.2 Default Transformation and Custom
Transformers. . . . . . . . . . . . . . . . . . . . . . . . . 168
xx Contents