Current trends suggest that future software components will need to discover and adapt to dynamic changes in available software services and network connections. This implies that future systems may appear as collections of components that combine and recombine dynamically in reaction to changing conditions. Such environments demand new analysis approaches and tools for software design, implementation, and testing. Our work considers how one might rigorously assess the robustness of distributed software systems in response to dynamic change, such as process, node, and link failures. More particularly we seek techniques that can be applied early in the development process to test the behavior and resilience of dynamic distributed systems, and to compare and contrast various approaches to design such systems. As a challenging application we investigate service discovery protocols. We adopt an architecture-based approach that entails the following general steps: (1) construct an architectural model of each discovery protocol, (2) identify and specify relevant consistency conditions that each model should satisfy, (3) define appropriate metrics for comparing the behavior of each model, (4) construct interesting scenarios to exercise the models and to probe for violations of consistency conditions, and (5) compare the results from executing similar scenarios against each model. We elaborate our approach, using Jini as a specific example, and show how Jini can be analyzed using Rapide, an Architecture Description Language (ADL). Our analyses take two forms: property analysis and event analysis. Both depend upon Rapide's ability to execute a specification and to generate events. We use property analysis to investigate robustness to dynamic change, while we use event analysis to discern underlying causes of observed behavior and performance. We argue that static, natural-language specifications largely miss collective behavior arising when various components interact together in a distributed system. We show that a single architectural model can be used to understand both logical and performance properties of a distributed system design. We evaluate how well Rapide supported our modeling and analyses. We also recommend improvements in ADLs to help test and analyze designs for distributed systems.
Citation: Proceedings of Working Conference on Complex and Dynamic Systems Architecture
Pub Type: Journals
architecture description languages, discovery protocols, fault-tolerant networks