Dynamic Sequence Diagram Viewer released

Thursday, 28 June 2007 | Labels: , | |

My day job is EAI/SOA design & implementation. I often run into the need to write something to monitor short/long running processes for testing or monitoring purposes. I've written a sequence diagram generator for this purpose before but it suffered a number of shortcomings:

  1. It was a Java API that needed to be hosted somewhere and executed on the server
  2. Each time the diagram changed or the status of a message changed, the diagram needed to be regenerated. This also lead to caching problems.
  3. The diagram is very static.
To solve these issues I decided to use this project as a reason to learn Actionscript 3 and write the whole thing as a Flash Control. I'll be finishing it up over the next few weeks:

Features:
  1. Self contained .SWF file that generates sequence diagrams from and XML description.
  2. The diagram is explorable. Mouse over items to see if any further information is available. Items can be minimized to improve readability of large diagrams.
  3. Columns can be dragged to re-order them.
  4. Comments can be added,dragged and linked to items.
  5. Integrates (via STOMP) with JMS message brokers to recieve diagrams and dynamic updates via queues and topics. The diagram is dynamicly updated on the users page with no further server action.
Development Environment/Tools:
Seeing as this was developed with all open source tools, I'll also publish the source, probably on Goggle Code.

You can find it here.

5 comments:

  1. Yanic says:

    Hi Richard,

    I came over to check out your SD visualizer.

    So I tried it and it just says 'waiting for input'. Is there something I'm supposed to do to give it what it wants?

    Best regards,
    Yanic

    http://www.tracemodeler.com

  2. Richard says:

    At the bottom left of the control there is a 'Next Test Case' button. Click it (and any other buttons that appear there) to cycle through the test cases.

  3. yanic says:

    Nice, I especially like the way you've animated targets when they're dropped.

    Some minor issues, when I LEFT-DRAG a target left/right and the mouse cursor leaves the target box, releasing the left mouse button won't end the drag (so in effect you end up dragging with no buttons pressed and have to press/release again to release the target).

    Also, I couldn't open the example /examples/eg1.xml ?

    I see you've added support for combined fragments? Have you thought about how you'll get the generator to use them (perhaps by consolidating multiple traces)?

    Best regards,
    Yanic

    http://www.tracemodeler.com

  4. Richard says:

    Hi,
    Thanks, not quite finished yet. I just fixed the drag drop issue - problem with event propagation.

    I'll upload the xml examples now. Its not the prettiest format but its nor meant to be human readable really.

    What do you mean by combined traces?

  5. yanic says:

    An execution trace represents only one specific code path, so it is difficult to recognize ALT combined fragments.

    I was wondering if the examples were made by automatically combining multiple traces, or created by hand for demonstration purposes.

    Best regards,
    Yanic

    http://www.tracemodeler.com