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
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
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
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
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
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
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
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
Agenda Simulation Kernel Virtualized JVM Input / Output Models Calibration Case Study 9 2011 Nuno Alexandre Carvalho M INHA
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
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
Simulation Kernel public class Foo { public static void main(...){ int i = 0; while (i<100) i++; } } 12 2011 Nuno Alexandre Carvalho M INHA
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
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
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
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
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
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
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
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
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
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
Recommend
More recommend