experimental evaluation of distributed middleware with a
play

Experimental Evaluation of Distributed Middleware with a Virtualized - PowerPoint PPT Presentation

Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, Joo Bordalo, Filipe Campos and Jos Pereira HASLab / INESC TEC Universidade do Minho MW4SOC11 December 12, 2011 2011 Nuno Alexandre


  1. Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC’11 December 12, 2011 2011 Nuno Alexandre Carvalho M INHA

  2. Motivation Service oriented architectures span a wide range of application scenarios Geographically dispersed Deployed outside enterprise information systems Comprehensive evaluation requirements Correctness Performance 2 2011 Nuno Alexandre Carvalho M INHA

  3. Motivation Current evaluation solutions Simulation models : useful while the whole system isn ’ t available , but can only validate design and not the middleware and service implementation Actual deployment : most realistic but costly and time consuming , also requires the availability of the entire system 3 2011 Nuno Alexandre Carvalho M INHA

  4. Overview Traditional experimental middleware evaluation JVM n ... Target application JVM 2 Target middleware JVM 1 Target application Target application Platform libraries (java.*) Target middleware Target middleware Java Interpreter / JIT Compiler Platform libraries (java.*) Platform libraries (java.*) Java Interpreter / JIT Compiler Java Interpreter / JIT Compiler Network 4 2011 Nuno Alexandre Carvalho M INHA

  5. Overview Traditional experimental middleware evaluation Multiple instances of an application are deployed in multiple JVMs JVMs are scattered across JVM n ... Target application JVM 2 Target middleware JVM 1 multiple physical hosts Target application Target application Platform libraries (java.*) Target middleware Target middleware Java Interpreter / JIT Compiler Platform libraries (java.*) Platform libraries (java.*) The amount of the Java Interpreter / JIT Compiler Java Interpreter / JIT Compiler required hardware Network resources is o f en prohibitive 5 2011 Nuno Alexandre Carvalho M INHA

  6. Overview M INHA middleware evaluation JVM ... Virtual JVM n Virtual JVM 1 Target application Target application Target middleware Virtual JVM 1 Bytecode instrumentation Target middleware Target application Target middleware MINHA Platform libraries (java.*) Java Interpreter / JIT Compiler 6 2011 Nuno Alexandre Carvalho M INHA

  7. Overview M INHA middleware evaluation Reproduces the same distributed run within a single JVM JVM ... Application and middleware Virtual JVM n Virtual JVM 1 Target application Target application Target middleware Virtual JVM 1 classes for each vJVM are Bytecode instrumentation Target middleware Target application Target middleware automatically transformed MINHA Platform libraries (java.*) Java Interpreter / JIT Compiler Some simulation models are developed from scratch , others are produced by translating native libraries 7 2011 Nuno Alexandre Carvalho M INHA

  8. Overview M INHA middleware evaluation advantages Global observation without interference JVM ... Virtual JVM n Virtual JVM 1 Target application Simulated components Target application Target middleware Virtual JVM 1 Bytecode instrumentation Target middleware Target application Target middleware Large scale scenarios MINHA Platform libraries (java.*) Java Interpreter / JIT Compiler Automated “ What - If ” analysis 8 2011 Nuno Alexandre Carvalho M INHA

  9. Agenda Simulation Kernel Virtualized JVM Input / Output Models Calibration Case Study 9 2011 Nuno Alexandre Carvalho M INHA

  10. Simulation Kernel Event - based simulation kernel Abstract resource management primitives JVM ... Virtual JVM n Virtual JVM 1 Target application Target application Target middleware Virtual JVM 1 Target middleware Target application Target middleware Simulated events and resources Platform libraries (java.*) Java Interpreter / JIT Compiler 10 2011 Nuno Alexandre Carvalho M INHA

  11. Simulation Kernel Combination of real and simulated code : Measuring the time of execution and management of a simulated processor Allowing sequential Java code to execute by eliminating the inversion of control resultant from the event simulation JVM ... Virtual JVM n Virtual JVM 1 Target application Target application Target middleware Virtual JVM 1 Target middleware Target application Target middleware Time virtualization Simulated events and resources Platform libraries (java.*) Java Interpreter / JIT Compiler 11 2011 Nuno Alexandre Carvalho M INHA

  12. Simulation Kernel public class Foo { public static void main(...){ int i = 0; while (i<100) i++; } } 12 2011 Nuno Alexandre Carvalho M INHA

  13. Simulation Kernel JVM class load public class Foo { public static void main(...){ start int i = 0; while (i<100) i++; } } 12 2011 Nuno Alexandre Carvalho M INHA

  14. Simulation Kernel JVM class load public class Foo { public static void main(...){ start int i = 0; while (i<100) i++; } For simplicity, let’s assume } that this segment is a thread 12 2011 Nuno Alexandre Carvalho M INHA

  15. Simulation Kernel Thread JVM class load public class Foo { public static void main(...){ start() start int i = 0; while (i<100) i++; } For simplicity, let’s assume } that this segment is a thread 12 2011 Nuno Alexandre Carvalho M INHA

  16. Simulation Kernel Thread JVM class load public class Foo { public static void main(...){ event.run() start() start int i = 0; while (i<100) i++; } For simplicity, let’s assume } that this segment is a thread 12 2011 Nuno Alexandre Carvalho M INHA

  17. Simulation Kernel Simulation Thread JVM Thread class load public class Foo { st.pause() st.wakeup() public static void main(...){ event.run() start() start startTime() int i = 0; while (i<100) i++; } For simplicity, let’s assume } stopTime() that this segment is a thread st.pause() 12 2011 Nuno Alexandre Carvalho M INHA

  18. Simulation Kernel Simulation Thread JVM Thread class load public class Foo { st.pause() simulation time delta st.wakeup() public static void main(...){ event.run() start() start startTime() int i = 0; while (i<100) i++; real } time delta For simplicity, let’s assume } stopTime() that this segment is a thread st.pause() 12 2011 Nuno Alexandre Carvalho M INHA

  19. Virtualized JVM Re fl ect real time of execution of a sequence of code in the occupation of a simulated processor Blocking operations ( thread synchronization and I / O ) must be intercepted and translated into corresponding simulation primitives Code executing in di ff erent virtual instances cannot interfere directly through shared variables 13 2011 Nuno Alexandre Carvalho M INHA

  20. Virtualized JVM Bytecode manipulation : custom class loader that uses ASM Java bytecode JVM manipulation and analysis framework ... to rewrite classes Virtual JVM 2 Virtual JVM 1 Target application Target application Target middleware Translat Target middleware Isolation : each virtual JVM has its own Translated platform libraries (moved.java.*) Bytecode separate instance of the class loader Bytecode instrumentation acting like a sandbox Bytecode instrumentation Time virtualization Simulated events and Interaction : A subset of classes , containing the simulation kernel and Platform libraries (java. models , are kept global providing a Java Interpreter / JIT controlled channel for virtual JVMs to interact 14 2011 Nuno Alexandre Carvalho M INHA

  21. Virtualized JVM Bytecode manipulation : custom class loader that uses ASM Java bytecode JVM manipulation and analysis framework ... to rewrite classes Virtual JVM 2 Virtual JVM 1 Target application Target application Target middleware Translat Target middleware Isolation : each virtual JVM has its own Translated platform libraries (moved.java.*) Bytecode separate instance of the class loader Bytecode instrumentation acting like a sandbox Bytecode instrumentation Time virtualization Simulated events and Interaction : A subset of classes , containing the simulation kernel and Platform libraries (java. models , are kept global providing a Java Interpreter / JIT controlled channel for virtual JVMs to interact 14 2011 Nuno Alexandre Carvalho M INHA

  22. Virtualized JVM Bytecode manipulation : custom class loader that uses ASM Java bytecode JVM manipulation and analysis framework ... to rewrite classes Virtual JVM 2 Virtual JVM 1 Target application Target application Target middleware Translat Target middleware Isolation : each virtual JVM has its own Translated platform libraries (moved.java.*) Bytecode separate instance of the class loader Bytecode instrumentation acting like a sandbox Bytecode instrumentation Time virtualization Simulated events and Interaction : A subset of classes , containing the simulation kernel and Platform libraries (java. models , are kept global providing a Java Interpreter / JIT controlled channel for virtual JVMs to interact 15 2011 Nuno Alexandre Carvalho M INHA

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend