INTRODUCTIONAs computing resources become decentralized, the development of distributed applications receives increasing attention from the software engineering community. These applications are often complex and must satisfy strong reliability and availability constraints. To avoid stopping an entire distributed application for maintenance operations (e.g., repair, upgrade, etc.), it is essential to provide mechanisms allowing distributed applications to be reconfigured at run-time. Such mechanisms should ensure a proper functioning of the application regardless of run-time changes (e.g., creation or deletion of agents, replacement of agents, migration of agents across execution sites, modification of communication routes, etc). Moreover, these mechanisms should not induce heavy penalties on applications during maintenance operations. * This author was partially supported by CONACYT-SFERE and UAM Iztapalapa, Mexico.
AbstractDynamic reconfiguration increases the availability of distributed applications by allowing them to evolve at run-time. This paper deals with the formal specification and model-checking verification of a dynamic reconfiguration protocol used in industrial agent-based applications. Starting from a reference implementation in JAVA, we produced a specification of the protocol using the Formal Description Technique LOTOS. We also specified a set of temporal logic formulas characterizing the correct behaviour of each protocol primitive. Finally, we studied various finite state configurations of the protocol, on which we verified these requirements using the CADP protocol engineering tool set.