Self-* software architectures and component middleware in pervasive environments

Software systems that execute in embedded and pervasive environments are frequently required to be self-monitoring, self-adapting, and self-healing. However, supporting these self-* capabilities in pervasive environments creates a number of unique engineering challenges. This paper first describes the challenges that we believe to be the most significant based on our experience developing real-world pervasive software applications with self-* capabilities. We then discuss each challenge in the context of four strategies commonly employed in self-* systems: dynamic software update, service discovery, transparent replication, and logical mobility. Finally, we explain how each strategy is implemented in our architectural middleware platform, Prism-MW.

[1]  Paola Inverardi,et al.  A Lightweight Infrastructure for Reconfiguring Applications , 2003, SCM.

[2]  J. S. Freudenberg Controller Area Network (CAN) , 2008 .

[3]  Bradley R. Schmerl,et al.  Software Architecture-Based Adaptation for Pervasive Systems , 2002, ARCS.

[4]  Chiyoung Seo,et al.  Exploring the Role of Software Architecture in Dynamic and Fault Tolerant Pervasive Systems , 2007, First International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments (SEPCASE '07).

[5]  Aniruddha S. Gokhale,et al.  Integrating publisher/subscriber services in component middleware for distributed real-time and embedded systems , 2004, ACM-SE 42.

[6]  D. Schmidt,et al.  Towards a Reflective Middleware Framework for QoS-enabled CORBA Component Model Applications , 2001 .

[7]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[8]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[9]  Sanjukta Bhowmick,et al.  Middleware for Dynamic Adaptation of Component Applications , 2006, Grid-Based Problem Solving Environments.

[10]  Asim Smailagic An evaluation of audio‐centric CMU wearable computers , 1999, Mob. Networks Appl..

[11]  Gregory D. Abowd,et al.  Software engineering issues for ubiquitous computing , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[12]  Mahadev Satyanarayanan,et al.  Pervasive computing: vision and challenges , 2001, IEEE Wirel. Commun..

[13]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[14]  Louise E. Moser,et al.  Totem: a fault-tolerant multicast group communication system , 1996, CACM.

[15]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[16]  George Coulouris,et al.  Distributed systems (3rd ed.): concepts and design , 2000 .

[17]  Priya Narasimhan,et al.  Eternal—a component‐based framework for transparent fault‐tolerant CORBA , 2002, Softw. Pract. Exp..

[18]  James H. Aylor,et al.  Computer for the 21st Century , 1999, Computer.

[19]  Priya Narasimhan,et al.  State synchronization and recovery for strongly consistent replicated CORBA objects , 2001, 2001 International Conference on Dependable Systems and Networks.

[20]  Sam Malek,et al.  A Tailorable Environment for Assessing the Quality of Deployment Architectures in Highly Distributed Settings , 2004, Component Deployment.