Hi y'all! Back to blogging for now, it seems. :)
A brief Glen-update before we proceed to the subject of this post - I've been having a pretty good year so far, and have been doing a lot of thinking about social technologies and how to make them work better together. I've been doing a fair bit of tweeting, and enjoying the progress on foaf+ssl. I'm consulting right now, helping out a university with an ESB RFP, which is fun in that I'm enjoying being on the client side of one of these things for once. :) I've got my eyes open looking for the Next Step, which might be continued consulting or might involve taking a Real Job. Will keep you posted.
OK. So I've been thinking about debugging complex SOA interactions which might involve multiple layers of intermediaries - proxies on the client side, ESBs, etc. What I want is either the ability to collect log information in a message as it flows through nodes along a message path, or the ability to have each node log some information to a remote logging service, correlated in some way so it's clear all the logs relating to a given message flow (process/composition) are together. There are certainly some SOA Management products out there on the market (AmberPoint, Actional, etc) which can handle this kind of thing, but I'd like a simple, ideally Open Source solution.
Along these lines, are there any common SOAP extensions that function similarly to either traceroute or syslog? What I want is something like either this:
<soap:header>
<dbg:tracepad role="next" relay="true">
<step nodeid="identifier of this node">
Each node along the way has the opportunity/responsibility to
add a "step" containing whatever information it feels like injecting.
It then ensures that this header is inserted into the outgoing
message(s) heading further down the message path.
</step>
</dbg:tracepad>
</soap:header>
...where debugging info can collect in the message, or like this:
<soap:header>
<dbg:log role="next" relay="true">
<id>correlator-for-this-process</id>
<logger>http://example.com/logService</logger>
</dbg:log>
</soap:header>
Of course both of these ideas require plugins (Axis2 Modules, JAX-WS Handlers, etc) that support the desired functionality for all the platforms you want it to work with.
Is this a niche waiting to be filled, or does this exist already in some non-proprietary form?UPDATE : look at that, Mark Little was clearly thinking along the same lines recently - check out his InfoQ article asking about SOA testing tools...