Dealing with non-determinism in communications within Java applications
Alessio Bechini, R. Lapadula, Cosimo Antonio Prete · Proceedings 25th EUROMICRO Conference. Informatics: Theory and Practice for the New Millennium · 1999
New software technologies and languages have made easier (and maybe less error-prone) the development of distributed applications. Especially Java allows straightforward use of connection-oriented communications, typically utilized for accessing resources and services in Internet. Communication mechanisms over computer network could yield a non-deterministic behavior in distributed applications. A possible solution for checking effects related to non-deterministic behaviors is the insertion of tracing and replay capabilities into the programming environment. This paper investigates on the main causes of non-determinism in communications within Java distributed applications, and shows a solution for dealing with them providing tracing and replay capabilities. Such a solution relies on the automatic transformation of the application source code; It takes full advantage of the object-oriented structure of Java and it is portable over any standard implementation of the Java Virtual Machine.