Using software product lines for runtime interoperability

Today, often small, heterogeneous systems have to cooperate in order to fulfill a certain task. Interoperability between these systems is needed for their collaboration. However, achieving this interoperability raises several problems. For example, embedded systems might induce a higher probability for a system failure due to constrained power supply. Nevertheless, interoperability must be guaranteed even in scenarios where embedded systems are used. To overcome this problem, we use services to abstract the functionality from the system which realizes it. We outline how services can be generated using software product line techniques to bridge the heterogeneity of cooperating systems. Additionally, we address runtime changes of already deployed services to overcome system failures. In this paper, we show the runtime adaption process of these changes which includes the following two points. First, we outline why feature-oriented programming is appropriate in such scenarios. Second, we describe the runtime adaption process of services with feature-oriented programming.

[1]  Jim Waldo,et al.  The Jini architecture for network-centric computing , 1999, CACM.

[2]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[3]  Thomas Leich,et al.  Aspectual Feature Modules , 2008, IEEE Transactions on Software Engineering.

[4]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

[5]  Thomas Leich,et al.  Pointcuts, advice, refinements, and collaborations: similarities, differences, and synergies , 2007, Innovations in Systems and Software Engineering.

[6]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[7]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[8]  Charles W. Krueger,et al.  New methods in software product line practice , 2006, CACM.

[9]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[10]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[11]  Optimizing JAsCo dynamic AOP through HotSwap and Jutta , 2004 .

[12]  Gunter Saake,et al.  Code generation to support static and dynamic composition of software product lines , 2008, GPCE '08.

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

[14]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[15]  Michael Stonebraker,et al.  "One Size Fits All": An Idea Whose Time Has Come and Gone (Abstract) , 2005, ICDE.

[16]  Sara Capecchi,et al.  Extending Java to dynamic object behaviors , 2003, Electron. Notes Theor. Comput. Sci..

[17]  Shigeru Chiba,et al.  A Selective, Just-in-Time Aspect Weaver , 2003, GPCE.

[18]  Gustavo Alonso,et al.  Dynamic AOP with PROSE , 2005, CAiSE Workshops.

[19]  Gustavo Alonso,et al.  Controlled, systematic, and efficient code replacement for running java programs , 2008, Eurosys '08.

[20]  Elena Giachino,et al.  Featherweight wrap Java , 2007, SAC '07.

[21]  Jonas Boner AspectWerkz - dynamic AOP for Java , 2004 .

[22]  Stephan Herrmann,et al.  Object Teams: Improving Modularity for Crosscutting Collaborations , 2002, NetObjectDays.

[23]  Sven Apel,et al.  Research challenges in the tension between features and services , 2008, SDSOA '08.

[24]  Jonas Bonér,et al.  What are the key issues for commercial AOP use: how does AspectWerkz address them? , 2004, AOSD '04.

[25]  S. Trujillo Product Lines that supply other Product Lines : A Service-Oriented Approach , 2006 .

[26]  Wolfgang Weck,et al.  Generic Wrappers , 2000, ECOOP.

[27]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[28]  Klaus R. Dittrich,et al.  Component Database Systems: Introduction, Foundations, and Overview , 2001, Compontent Database Systems.

[29]  Leire Bastida,et al.  Context-aware service composition: a methodology and a case study , 2008, SDSOA '08.

[30]  Klaus R. Dittrich,et al.  KIDS: Construction of Database Management Systems based on Reuse , 1997 .

[31]  Murali Sitaraman,et al.  Enhancements - Enabling Flexible Feature and Implementation Selection , 2004, ICSR.

[32]  Gunter Saake,et al.  Measuring Non-Functional Properties in Software Product Line for Product Derivation , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[33]  Jörgen Hansson,et al.  COMET: A Component-Based Real-Time Database for Automotive Systems , 2004, ICSE 2004.

[34]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[35]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[36]  Gerhard Weikum,et al.  Rethinking Database System Architecture: Towards a Self-Tuning RISC-Style Database System , 2000, VLDB.

[37]  Henrik Loeser,et al.  "One Size Fits All": An Idea Whose Time Has Come and Gone? , 2011, BTW.

[38]  Gunter Saake,et al.  Towards Unanticipated Runtime Adaptation of Java Applications , 2008, 2008 15th Asia-Pacific Software Engineering Conference.