DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited.
Test & Evaluation/Science & Technology ProgramNet-Centric Systems Test (NST)
Test Technology Area
Virtual Management Information Base (VMIB) OverviewScott Oppenlander (Principal Investigator)
March 2012
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 2
Acknowledgement
This project is funded by the Test Resource Management Center (TRMC) Test and Evaluation/Science & Technology (T&E/S&T) Program through the U.S. Army Program Executive Office for Simulation, Training and Instrumentation (PEO STRI) under contract number W900KK-10-C-0022.
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 3
What is the business problem?
• The emphasis on development and integration of net centric programs has resulted in diverse and interrelated web services to test and troubleshoot.
• Debugging complex SOA environments requires costly and scarce on-site subject matter experts (SME).
• Test range time with live assets is expensive and scheduled months in advance. Time spent investigating web service failures instead of testing interoperability with live assets is wasted funding.
• The additional time required to debug complex SOA environments directly drives the schedule and budget overruns when deploying a system. This leads to delays in providing the warfighter with the tools required to accomplish their mission.
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 4
Example – Document Retrieval
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 5
Pitfalls of net-centricity
• Applications that invoke web services must be written to gracefully handle all possible return values and exceptions.
• Target web services must be written both to gracefully handle all conditions as well as to return meaningful information in the case of exception conditions.
• Chained web services (i.e. web services that themselves invoke web services) do not return the root cause of failure
• Different web services are frequently coded and maintained by different vendors and agencies, each with variable coding practices, support procedures, opacity, and general helpfulness.
• Susceptible to time synchronization, server certificate or trust store issues.
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 6
Consequence of Failureorg.mc4j.ems.connection.EmsInvocationException: Exception on invocation of [findMonitorDeadlockedThreads]org.mc4j.ems.connection.EmsConnectException: Connection failure nullat org.mc4j.ems.impl.jmx.connection.bean.operation.DOperation.invoke(DOperation.java:127)at org.rhq.plugins.jmx.MBeanResourceComponent.invokeOperation(MBeanResourceComponent.java:547)at org.rhq.plugins.jmx.MBeanResourceComponent.invokeOperation(MBeanResourceComponent.java:517)at org.rhq.plugins.jmx.ThreadDataMeasurementComponent.invokeOperation(ThreadDataMeasurementComponent.java:65)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:616)at org.rhq.core.pc.inventory.ResourceContainer$ComponentInvocationThread.call(ResourceContainer.java:525)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)at java.util.concurrent.FutureTask.run(FutureTask.java:166)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)at java.lang.Thread.run(Thread.java:636)Caused by: MBeanException: null Cause: javax.management.InstanceNotFoundException: java.lang:type=Threading is not registered.at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:180)at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:163)at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)... 3 moreCaused by: javax.management.InstanceNotFoundException: java.lang:type=Threading is not registered.at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:523)at org.jboss.mx.server.registry.BasicMBeanRegistry.getValue(BasicMBeanRegistry.java:561)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:616)at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)... 48 more
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 7
How can VMIB help?
• Visibility inside the encryption boundary to examine messages
• Detection and diagnosis of failure in chained web services
• Open interface allows “bring your own” analytics
• Simple to install and back out
• Pairing of SOAP requests and responses
• No code or service endpoint modifications required. No proxy agents to configure.
• Toolkit allows users to write custom instrumentation
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 8
Chained web services
SOAP re
sponse
SOAP response
SOAP response
JVM JVM
JVM
JVM
VMIB agent
VMIB agent
VMIB agent
VMIB agent
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 9
Installation
JVMVMIB probe
VMIB client
• Shut down JVM
• Copy VMIB probe .jar files
• Update $JAVA_OPTS
• Restart JVM
• Deploy VMIB client application
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 10
Concept of Operations
HSQLDB(in-memory database)
VMIB client application VMIB analytics
Other analytics
Other analytics
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 11
VMIB Components
• Probe – captures information about classes and exceptions as specified on the command line. The JVM under test is modified in memory by the VMIB probe to provide instrumentation.
• Log4VMIB – a small, high speed bridge class that accepts data from the VMIB probe and inserts it into the HSQL database.
• HSQL (hyper structured query language database) – a small, high performance, in memory database that acts as a buffer between the probe and the agent.
• Agent – an application that extracts instrumentation from the HSQL database and publishes it via web service.
• Hub – VMIB analytics and visualization on a separate server.
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 12
Supported Platforms and Protocols
• Java 5 and 6
• JBoss-WS 4.2.2
• JAX-WS 2.1
• Apache CXF 2.2 and 2.3
• Weblogic 10.3
• SOAP
• JSON
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 13
Future Features and Issues
• Disconnected operations
• Limited bandwidth
• Prioritization of traffic
• Bandwidth throttling
• Tiered hubs
• Address accreditation questions
• Investigate automated generation of instrumentation
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 14
Contact Information
Scott [email protected]
(214) 766-1804
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited. 15
Questions
?