Traveler: trace navigator (experimental)

experimental version of 1999.10.11
Copyright (c) 1999 Massachusetts Institute of Technology.
This software is provided "as is" without express or implied warranty.

Traveler: trace navigator (experimental)

Traveler provides means Recording history can be particularly important in concurrent programs where nondeterministic scheduling means the arrival order of threads may not always repeat itself on subsequent runs. Traveler "travels across space and back in time" to show what happened.

Nested activities: Traveler displays thread activity as a familiar trace of nested activities. FutureFactorial computes factorial as a product of the range of integers from 1 to n, illustrating a concurrent recursive divide and conquer on the range of integers to be multiplied. Each call to rangeproduct shown at right is from a separate thread of a future, so here the nested calls are concurrent.
Biographies: Threads may interact through shared objects; in Java, they usually access shared objects via synchronized methods and blocks. The outcome may therefore depend on the order in which the threads enter synchronized regions. At the right is part of the biography of an Account from which threads have concurrently made deposits and withdrawals. [image from earlier version.]
Traveler provides means to navigate from nested call renderings to biography renderings and vice versa.

Applet: Try the Traveler applets page to explore these capabilities on the examples.

See Traveler javadoc for more details.

Traveler Release Notes

+ 1999-10-11: Reorganized biographies to better record recursive synchronization blocks and methods (e.g., synchronized methods that call other synchronized methods): synchronizationRecords now contain separate records for entry and exit, and the entry and exit are what appear on the biography. Also started ActivityRecordMethods to simplify iterating.

1999-07-05: Added alternate trace recorder, TraceRecorderObservable, and its associated classes, which incrementally update display of an activity's direct children and display of biography's activities as a program progresses. See also for example code using it (initialized at bottom in initFrameApplet).

1999-06-09: first experimental release.

Prior and Related Systems

Traveler is based in part on ideas from the system presented in "Traveler: the Apiary Observatory", ECOOP'1987 for the Acore actor core language. Differences: This page describes research done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for this research was provided in part by the System Development Foundation, the Advanced Research Projects Agency of the Department of Defense under contracts MDA972-95-1-0018 (North East Regional Consortium Grant) and N66001-95-C-8611 (Computer Aided Education and Training Initiative), and the MIT Department of Electrical Engineering and Computer Science. Support for this research has also been received from IBM, which has generously donated Thinkpad pen computers, and from Microsoft, which has generously donated software.