DistEA: Efficient Dynamic Impact Analysis for Distributed Programs

DistEA, short for Disttributed program dynamic impact analysis based on Execute After relations between methods, is a technique for efficiently predicting potential impacts of proposed changes to distributed systems running in multiple processes concurrently on separated machines. It also names a tool that implemented this technique for Java software systems. The technique is less precise than distributed slicing but still safe with respect to the concrete of executions used by the analysis. Note that although distributed dynamic slicing has been proposed but only for a partial design, there has not yet been a dynamic slicer that is shown to be fully working on real-world distributed programs up to this date. Also, even if such a dynamic slicer is fully implemented as currently designed, it is expected to be too heavyweight to be practically applicable, or at least much more expensive than DistEA.

DistEA targets distributed systems where separated processes on distributed machines communicate through socket-based netowrk I/Os, unlike some existing peer techniques which are limited to event-based systems only. This work was partially motivated by the dynamic impact analysis based on the Execute-After Sequence (EAS), a technique that works on single-process programs only, though. In a nutshell, DistEA monitors network I/Os during the runtime of the distributed program under analysis; in the meanwhile, by timestamping distributed method-execution events with Lamport timestamps (per-process logic clocks), it partially orders those distributed method events; then, based on the execution order of methods concurrently executed in multiple processes (corresponding to concurrent executions of the multiple distributed components in the subject system), it computes dynamic impact sets based on the safe assumption that any methods executed after a query could be possibly impacted by any changes to be made in that query.

This is the project homepage for DistEA, where the usage information is hosted and the internal working of DistEA is illustrated. The DistEA tool is implemented on top of our data-flow analysis and instrumentation library DUA-forensics, which is based on the Soot byte-code analysis and optimization framework. Both DistEA and DUA-forensics can be downloaded, with other third-party libraries, using the links provided on this page.

How DistEA works


Generated on 4 Apr 2015 by  doxygen 1.6.1