An architecture-driven software mobility framework

Software architecture has been shown to provide an appropriate level of granularity for assessing a software system's quality attributes (e.g., performance and dependability). Similarly, previous research has adopted an architecture-centric approach to reasoning about and managing the run-time adaptation of software systems. For mobile and pervasive software systems, which are known to be innately dynamic and unpredictable, the ability to assess a system's quality attributes and manage its dynamic run-time behavior is especially important. In the past, researchers have argued that a software architecture-based approach can be instrumental in facilitating mobile computing. In this paper, we present an integrated architecture-driven framework for modeling, analysis, implementation, deployment, and run-time migration of software systems executing on distributed, mobile, heterogeneous computing platforms. In particular, we describe the framework's support for dealing with the challenges posed by both logical and physical mobility. We also provide an overview of our experience with applying the framework to a family of distributed mobile robotics systems. This experience has verified our envisioned benefits of the approach, and has helped us to identify several avenues of future work.

[1]  Gabriel A. Moreno,et al.  Packaging Predictable Assembly , 2002, Component Deployment.

[2]  Steven A. Demurjian,et al.  A Binary Integer Programming Model for Optimal Object Distribution , 1998, OPODIS.

[3]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[4]  Marija Mikic-Rakic,et al.  Architecture-Level Support for Software Component Deployment in Resource Constrained Environments , 2002, Component Deployment.

[5]  Marija Mikic-Rakic,et al.  A Decentralized Redeployment Algorithm for Improving the Availability of Distributed Systems , 2005, Component Deployment.

[6]  Christine Julien,et al.  Egocentric context-aware programming in ad hoc mobile environments , 2002, SIGSOFT '02/FSE-10.

[7]  Cecilia Mascolo,et al.  CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications , 2003, IEEE Trans. Software Eng..

[8]  Richard N. Taylor,et al.  Policy-based self-adaptive architectures: a feasibility study in the robotics domain , 2008, SEAMS '08.

[9]  Matthias Scheutz,et al.  Development environments for autonomous mobile robots: A survey , 2007, Auton. Robots.

[10]  Sam Malek,et al.  Improving Availability in Large, Distributed Component-Based Systems Via Redeployment , 2005, Component Deployment.

[11]  Marija Mikic-Rakic,et al.  Architecture-driven software mobility in support of QoS requirements , 2008, SAM '08.

[12]  Nenad Medvidovic,et al.  Early prediction of software component reliability , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  Sam Malek,et al.  Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support , 2007, 29th International Conference on Software Engineering (ICSE'07).

[14]  Nenad Medvidovic,et al.  A Methodology and Framework for Creating Domain-Specific Development Infrastructures , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[15]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[16]  Giovanni Vigna,et al.  Designing Distributed Applications with Mobile Code Paradigms , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[17]  Sam Malek,et al.  Scenario-Driven Dynamic Analysis of Distributed Architectures , 2007, FASE.

[18]  G. Nemhauser,et al.  Integer Programming , 2020 .

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

[20]  Mark W. Maier,et al.  Software Architecture: Introducing IEEE Standard 1471 , 2001, Computer.

[21]  Jerome A. Rolia,et al.  The Method of Layers , 1995, IEEE Trans. Software Eng..

[22]  Bill N. Schilit,et al.  Context-aware computing applications , 1994, Workshop on Mobile Computing Systems and Applications.

[23]  Vijay Karamcheti,et al.  Constrained component deployment in wide-area networks using AI planning techniques , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[24]  John Hatcliff,et al.  CALM and Cadena: metamodeling for component-based product-line development , 2006, Computer.

[25]  Alvin T. S. Chan,et al.  MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing , 2003, IEEE Trans. Software Eng..

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

[27]  Richard N. Taylor,et al.  A comprehensive approach for the development of modular software architecture description languages , 2005, TSEM.

[28]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[29]  Jonathan F. Bard A Review of: “Integer Programming” Laurence A. Wolsey John Wiley & Sons, New York, 1998, 264 pages, ISBN 0-471 -28366-5, $59.95 , 2000 .

[30]  Jeff Magee,et al.  Using resemblance to support component reuse and evolution , 2006, SAVCBS '06.

[31]  Frank Leymann,et al.  Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More , 2005 .

[32]  Sam Malek,et al.  A user-centric approach for improving a distributed software system's deployment architecture , 2007 .

[33]  Marija Mikic-Rakic,et al.  Software Architectural Support for Handheld Computing , 2003, Computer.

[34]  Cecilia Mascolo,et al.  XMIDDLE: A Data-Sharing Middleware for Mobile Computing , 2002, Wirel. Pers. Commun..

[35]  Davide Brugali Software Engineering for Experimental Robotics (Springer Tracts in Advanced Robotics) , 2007 .

[36]  Francesco Tisato,et al.  Architectural Reflection: Realising Software Architectures via Reflective Activities , 2000, EDO.

[37]  David Garlan,et al.  Using Gauges for Architecture-Based Monitoring and Adaptation , 2001 .

[38]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[39]  Amy L. Murphy,et al.  LIME: a middleware for physical and logical mobility , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[40]  David Garlan,et al.  Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments , 2002, WICSA.

[41]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[42]  Jeff Magee,et al.  From goals to components: a combined approach to self-management , 2008, SEAMS '08.

[43]  P. Ciancarini,et al.  Software architecture and mobility , 1998, ISAW '98.

[44]  Richard N. Taylor,et al.  Towards a knowledge-based approach to architectural adaptation management , 2004, WOSS '04.

[45]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[46]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[47]  Sam Malek,et al.  Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems , 2008, CBSE.

[48]  Sam Malek,et al.  Providing middleware-level facilities to support architecture-based development of software systems in pervasive environments , 2006, MPAC '06.