Squirrel: architecture driven resource management

Resource management is critical to guarantee Quality of Service when various stakeholders share the execution environment, such as cloud or mobile environments. In this context, providing management techniques compatible with standard practices, such as component models, is essential. Resource management is often realized through monitoring or process isolation (using virtual machines or system containers). These techniques (i) impose varying levels of overhead depending on the managed resource, and (ii) are applied at different abstraction levels, such as processes, threads or objects. Thus, mapping components to system-level abstractions in the presence of resource management requirements can lead to sub-optimal systems. We propose Squirrel, an approach to tune component deployment and resource management in order to reduce management overhead. At runtime, Squirrel uses an architectural model annotated with resource requirements to guide the mapping of components to system abstractions, providing different resource management capabilities and overhead. We present an implementation of Squirrel, using a Java component framework, and a set of experiments to validate its feasibility and overhead. We show that choosing the right component-to-system mappings at deployment-time reduces performance penalty and/or volatile main memory use.

[1]  BinderWalter Portable and accurate sampling profiling for Java , 2006 .

[2]  Yves Mahéo,et al.  A java middleware platform for resource-aware distributed applications , 2003, Second International Symposium on Parallel and Distributed Computing, 2003. Proceedings..

[3]  Walter Binder,et al.  Program transformations for light-weight CPU accounting and control in the Java virtual machine , 2008, High. Order Symb. Comput..

[4]  Grzegorz Czajkowski,et al.  Multitasking without compromise: a virtual machine evolution , 2001, SIGP.

[5]  Jean-Marc Jézéquel,et al.  Making Components Contract Aware , 1999, Computer.

[6]  Stefan Kowalewski,et al.  A real-time extension to the Android platform , 2012, JTRES '12.

[7]  Walter Binder,et al.  Portable and accurate sampling profiling for Java , 2006, Softw. Pract. Exp..

[8]  Olivier Barais,et al.  Scapegoat: An Adaptive Monitoring Framework for Component-Based Systems , 2014, 2014 IEEE/IFIP Conference on Software Architecture.

[9]  Saneyasu Yamaguchi,et al.  Measuring and Improving Application Launching Performance on Android Devices , 2013, 2013 First International Symposium on Computing and Networking.

[10]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[11]  Brice Morin,et al.  Security-driven model-based dynamic adaptation , 2010, ASE '10.

[12]  Rouven Krebs,et al.  Multi-tenancy Performance Benchmark for Web Application Platforms , 2013, ICWE.

[13]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[14]  Stéphane Frénot,et al.  I-JVM: a Java Virtual Machine for component isolation in OSGi , 2009, 2009 IEEE/IFIP International Conference on Dependable Systems & Networks.

[15]  Armin R. Mikler,et al.  NetPIPE: A Network Protocol Independent Performance Evaluator , 1996 .

[16]  Brice Morin,et al.  A dynamic component model for cyber physical systems , 2012, CBSE '12.

[17]  Luc Moreau,et al.  Resource aware programming , 2005, TOPL.

[18]  Orran Krieger,et al.  Efficient sleep/wake-up protocols for user-level IPC , 1998, Proceedings. 1998 International Conference on Parallel Processing (Cat. No.98EX205).

[19]  Sara Bouchenak,et al.  Techniques for implementing efficient Java thread serialization , 2003 .

[20]  Koutheir Attouchi,et al.  Adaptive monitoring of end-user OSGi-based home boxes , 2012, CBSE '12.

[21]  Rachid Guerraoui,et al.  OO distributed programming is not distributed OO programming , 1999, CACM.