Fog Creek Software
Discussion Board




An idea for a framework (does such a thing exist?)

Hi all,

Here's an idea for a framework I thought about because I can make use of it in my project. Maybe such a thing exists,
if so, I'd like pointers; if not, I'll start working on it myself.

The project is for Java, so ...

I want something that would make it easier for various modules to be able to instrument themselves so they can
write logs, which can later be parsed again for replaying
the original behavior. (If that helps, consider something like
a recordable app on a Mac, where AppleScript can be used
to play it back).

DEBEDb
Tuesday, August 10, 2004

Such things exist in the the Process Control world and are called data historians.  I saw a site that replayed historian data from the East Coast blackouts.

Is this anything like what you are talking about?

Slaphead
Tuesday, August 10, 2004

Could JMX be what you require?
Well part of it.

James Ladd
Tuesday, August 10, 2004

Slaphead: (re data historians): please elaborate: I googled
for "process control" and/or for "data historian", and while I find similar ideas, I do not see the same framework. This is
more fine-grained, let's say, on level of/ to be used with something like JUnit.

James Ladd: (re JMX): it's also similar, but I want more lower-level/finer-grained stuff. Down to classes, basically.

DEBEDb
Tuesday, August 10, 2004

Historians are optimized for storing time-series data (i.e. a tuple of source, time and value).  Data retrieval and time correlation is very simple.  Where they tend to break down is storing data for ever changing topologies.  If you are trying to capture the state of dynamically created elements in a system then they aren't very effective.

I been lectured in the past on how state machines are the most efficient method for storing log files.  This involves interpreting the log at collection time rather than storing complete records for post-processing.  I would be interested to know what implementations exist for such a thing.

Slaphead
Tuesday, August 10, 2004

Slaphead: yeah; without experience in your field I kind of see what you're getting at. You're implying a very generic solution working for a certain domain; I want something much more basic.

DEBEDb
Tuesday, August 10, 2004


Aspect Oriented Programming is all about providing log traces and such which are totally outside the existing application, so that may be a place for you to look at.

KC
Tuesday, August 10, 2004

There was a research project named jRapture done at Case Western Reserve University that had just that goal.  If you google, you can find papers about it.  I don't know if there is a publicly available version or not.

madking
Tuesday, August 10, 2004

You could also look at the omniscient debugger  (http://www.lambdacs.com/debugger/ODBDescription.html)
which is supposed to record all actions in the program.  It also seemed interesting to me from a support perspective (eg turn it on, reproduce the issue and send it to us), but the overhead seems very high...

Billy Boy
Tuesday, August 10, 2004

KC: Yes, this is very much an AOP-like concern. The question is whether to roll my own or something like that exists, even in AOP framework (though I prefer only using
AOP that are provided dynamically, like via JMangler,
because of some other concerns -- mainly, basically, organizational).

madking: thanks for the pointer, googled it, will continue. So far only found a paper, but sounds interesting.


Billy Boy: I've seen ODB before, but thanks for the reminder, didn't occur to me!

DEBEDb
Tuesday, August 10, 2004

Anyone knows whether Abbot (http://abbot.sourceforge.net/) can be made to work with things other than GUI?

DEBEDb
Tuesday, August 10, 2004

*  Recent Topics

*  Fog Creek Home