NetStub: A Framework for Verification of Distributed Java Applications

Automated verification of distributed programs is a challenging problem. Since the behavior of a distributed program encompasses the behavior of the network, possible configurations of the network have to be investigated during verification. This leads to very large state spaces, and automated verification becomes infeasible. NetStub addresses this problem by decoupling the behavior of distributed programs from the behavior of the network. It consists of a set of stub classes that replace native methods used in network communication and enables verification of distributed Java applications by isolating their behavior from the network. NetStub supports two modes of verification: unit verification and integration verification. Integration verification checks multiple interacting distributed application components by running them in a single JVM and simulating the behavior of the network within the same JVM via stub classes. Unit verification targets a single component of a distributed application and requires that the user write an event generator class that utilizes the API exported by NetStub.

Related Publications

NetStub Java Project

Project Jar - NetStub project with source code. Contains Ant targets for compiling the code and running the distributed echo application in each of the three modes: integration, thread-based, and event-based.

Classes Jar - Compiled NetStub classes.

Related Links

This material is based upon work supported by the National Science Foundation under Grants CCF-0614002 and CCF-0341365.