An architecture shift from single to multiple component-chains in middleware design

Summary
Adaptive and reflective middleware helps developers build applications that adapt to the dynamic context of distributed environments. It uses the component-based meta-model. Thus an application consists of a set of function-independent interacting components, which form a component chain. Existing middleware supports only one component chain for each program of a distributed application and the chain structure can be run-time reconfigured through structure reflection so that the application can adapt its behavior to the dynamic contextual information. However, the reconfiguration is risky in distributed applications if unconstrained. For example, changing a data compression component in one program requires a corresponding change of the decompression component in peer programs. Therefore, synchronization protocols are required for safe reconfiguration to synchronize the behaviors of the distributed programs. Existing middleware only supports synchronization in the application reconfiguration process through a synchronous mode. Operations of the distributed programs being reconfigured have to be suspended until the reconfiguration is completed, which results in long delays of seconds or even tens of seconds in the reconfiguration process.

We have proposed and implemented MARCHES (Middleware for Adaptive Robust Collaborations across Heterogeneous Environments and Systems) [1][2][3], an adaptive and reflective middleware framework for engineering real-time distributed adaptive applications. Different from traditional middleware that supports the single component-chain based application architecture, MARCHES maintains multiple component chains, and the local reconfiguration process is done by switching active and inactive component chains. Based on the architecture, MARCHES employs an active-message oriented synchronization protocol to synchronize the distributed application behavior in an asynchronous mode. It solves the problem of the long reconfiguration delay by eliminating the operation suspension time in the reconfiguration process. Evaluation results show that the reconfiguration time achieved by MARCHES is in a range of hundreds of microseconds and the extra costs introduced by the multi-chain architecture in MARCHES are extremely low, which can be afforded by PDAs and even sensors. Compared with the second-level reconfiguration performance offered by existing middleware, MARCHES provides a context-aware reflective middleware framework for distributed real-time and embedded systems.


A chronological list of related work
Adaptive and reflective middleware:1990s
Context-aware reflective middleware - single component chain:MobiPADS, CARISMA, 2003
Context-aware reflective middleware - multiple component chains:our MARCHES work [2][3], 2008-2011


Reference
[1] Qiang Wang and Liang Cheng, AwareWare: an adaptation middleware for heterogeneous environments, in the Proceedings of 2004 IEEE International Conference on Communications (ICC 2004), Vol. 3, pp. 1406-1410, Paris, June 20-24, 2004.
[2] Shengpu Liu and Liang Cheng, Active Message Oriented Adaptation Middleware for Collaborative Applications in Heterogeneous Environments, in the Proceedings of 2008 IEEE International Conference on Communications (ICC 2008), Beijing, China, May 19-23, 2008.
[3] Shengpu Liu and Liang Cheng, A context-aware reflective middleware framework for distributed real-time and embedded systems, Journal of Systems and Software, Vol. 84, No. 2, pp. 205-218, February 2011.


Back to home