A protocol composition and execution framework embodies a programing model and a set of software tools to help the design, implementation, deployment, and execution of complex communication protocols built from the composition of small protocol components, also called micro-protocols.
Our research group has a significant experience in building and maintaining open-source protocol composition frameworks. We have created the Appia framework more than six years ago. During these last years we have used Appia in many different contexts including multi-user object-oriented environments, distributed real-time games, collaborative mobile applications, and database replication. One of the most used compositions for Appia is a group communication protocol suite. Today, Appia is hosted in an open source forge and used to support database replication solutions. The experience with applying Appia in such a diverse set of areas give a deep insight of the hits and misses of the current Appia architecture.
In particular, recent work on adaptive systems has unveiled some limitations of the architecture to support dynamic reconfiguration of protocol stacks. Namely, in most cases, when protocols need to be replaced in run-time, Appia requires all participants to coordinate, temporarily interrupt the message flow, reconfigure, and restart.
The Redico project intends to leverage on the significant experience of the group with protocol composition frameworks to build a new framework tailored to support dynamic reconfiguration. There are multiple challenges in addressing the problem, including:
- The new framework should support the seamless reconfiguration in run time. In particular, it should allow for different participants to run with different protocol configurations as long as these configurations are compatible. For instance, the sender may add to the message some protocol header and the corresponding protocol may no longer be configured at the destination, when the message is received. How to allow this behavior and still guarantee that header are processed in an optimized manner is an open research problem.
- The framework should provide strong support to ensure the consistency of the system configuration (at each site and among multiple sites). These consistency checks should be based on protocol dependencies and should be able to be checked in an efficient manner, to prevent the performance degradation of the system.
In addition to building a new protocol framework, the project aims at:
- Refactoring the existing group communication protocol suite to work on the new kernel.
- To design a new group communication protocol suite able to operate on hybrid networks, consisting of fixed (wired) nodes and mobile (wireless) nodes. In this sort of networks, run-time reconfiguration is required to allow a seamless transition from wired to wireless media without interruption of service. Interestingly, although there is a significant body of research on group communication both for wired and wireless networks, there is very little work on protocols for hybrid systems. Therefore, the definition of this stak is important output of the project. The new stack will use components from the existing stack (for wired networks) that will be complemented with new components suitable for the new environment.
We believe the development of a group communication protocol for hybrid networks is the perfect testbed for the new protocol composition framework, given that group protocols are multi-participant and complex, posing a very rich set of requirements for dynamic reconfiguration.