Has anyone implemented a custom auditing solution for a custom soap processor?
I’m a bit unclear as to what type of information is worth auditing for web services. I can understand why I might want to log each incoming request and especially requests that generate SOAP-FAULT responses, but I’m not sure if I can use the baseline Integration Server functionality to achieve this. I suppose I could simply enable auditing in the target flow services that my custom soap processor invokes, but I’m curious if anyone has implemented a more robust/customized solution.
Mark eludes to the creation of audit services in this thread ([URL=“wmusers.com”]wmusers.com), but some specifics would be appreciated!
When I think of audit trails, I usually think of logging who invoked a service, at what time, with what inputs, from what IP address, with what results.
Since you really don’t have much of a “pipeline” at the point at which the custom soap processor runs, it is not too interesting to log the pipeline somewhere.
I would suggest creating audit trail tables and populating them using insert services that subscribe to a message you publish to the broker. You would need a call to pub.flow:getTransportInfo to get usernames, IP addresses, etc. and then publish that info and the raw soap message for the input message with some uniquely assigned conversation ID. Capture the output that will pass back through your soap processor and publish a similar message (using the same conversation ID) with the results of the web service invocation.
Publishing messages to the broker allows your auditing to occur with less impact on the service invocation itself. If auditing is a got-to-have then the messages should be guaranteed. Otherwise, they can be volatile to speed things up further.
Great suggestions! I’m all too familiar with using the broker to perform asynchronous auditing but I was totally unaware of the getTransportInfo service. Thanks!