A Generative Middleware Specialization Process for Distributed Real-Time and Embedded Systems

General-purpose middleware must often be specialized for resource-constrained, real-time and embedded systems to improve their response-times, reliability, memory footprint, and even power consumption. Software engineering techniques, such as aspect-oriented programming (AOP), feature-oriented programming (FOP), and reflection make the specialization task simpler, albeit still requiring the system developer to manually identify the system invariants, and sources of performance and memory footprint bottlenecks that determine the required specializations. Specialization reuse is also hampered due to a lack of common taxonomy to document the recurring specializations. This paper presents the GeMS (Generative Middleware Specialization) framework to address these challenges. We present results of applying GeMS to a Distributed Real-time and Embedded (DRE) system case study that depict a 21-35% reduction in footprint, and a ˜36% improvement in performance while simultaneously alleviating ˜97% of the developer efforts in specializing middleware.

[1]  Aniruddha S. Gokhale,et al.  Context-specific middleware specialization techniques for optimizing software product-line architectures , 2006, EuroSys.

[2]  Ron Cytron,et al.  Footprint and feature management using aspect-oriented programming techniques , 2002, LCTES/SCOPES '02.

[3]  Aniruddha S. Gokhale,et al.  POSAML: A visual modeling language for middleware provisioning , 2007, J. Vis. Lang. Comput..

[4]  Hans-Arno Jacobsen,et al.  Towards just-in-time middleware architectures , 2005, AOSD '05.

[5]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[6]  Wolfgang Schröder-Preikschat,et al.  Lean and Efficient System Software Product Lines: Where Aspects Beat Objects , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[7]  Eric Eide,et al.  Edicts: implementing features with flexible binding times , 2008, AOSD.

[8]  Michael Schrefl,et al.  Extending object-oriented systems with roles , 1996, TOIS.

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  George Varghese,et al.  Network Algorithmics-An Interdisciplinary Approach to Designing Fast Networked Devices , 2004 .

[11]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[12]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[13]  Charles Consel,et al.  Efficient Implementations of Software Architectures via Partial Evaluation , 1999, Automated Software Engineering.

[14]  Premkumar T. Devanbu,et al.  DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[16]  Hans-Arno Jacobsen,et al.  Generic Middleware Substrate Through Modelware , 2005, Middleware.

[17]  Premkumar T. Devanbu,et al.  An aspect-oriented approach to bypassing middleware layers , 2007, AOSD.

[18]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[19]  Aniruddha S. Gokhale,et al.  FORMS: Feature-Oriented Reverse Engineering-based Middleware Specialization for Product-Lines , 2011, J. Softw..

[20]  Aniruddha S. Gokhale,et al.  A platform-independent component modeling language for distributed real-time and embedded systems , 2005, 11th IEEE Real Time and Embedded Technology and Applications Symposium.

[21]  Wendy Roll Model-Based Integration of Reusable Component-Based Avionics Systems , 2003 .