Thursday, December 6, 2007

Active vs Passive monitoring in SOA Management

OK, so you hear a lot about SOA Monitoring and why it's important. You also hear words like Active monitoring and Passive monitoring. I think everyone has his or her own definition of what these terms mean. In our case, our product JaxView performs both active & passive monitoring of a single Web service and also active & passive monitoring of a collection of services where these services are the backend applications that support a business process.

So what is Active monitoring? Active monitoring is essentially mimicking how a Web service performs and responds when a synthetic request is sent to the Web service and response is received, on a schedule. So the monitoring application will create and send a synthetic request, sending it to the service and measuring how long that transaction took, while also monitoring the response to make sure it's a valid response at the same time monitoring the actual response. As an example, let's say a Web service response includes the inventory number for an item for sale. You want to actively understand what that number is. So with an active monitor you can create a synthetic SOAP request that queries the Web service and then monitors that response. If the response is below a specific threshold, the monitoring engine will send off an alert. Now this alert could be an email to someone that tells them to go refill that item, or it may invoke a refilling service that will increase the inventory number.
Active monitoring also will give you a heart beat of the Web service, so in case the Web service is down it can alert someone or execute a script to re-launch the web service.
We also see people invoking their web service actively to keep the Web service initialized, therefore allowing it to perform better when a "real client" accesses it. The initialization time can sometimes be huge compared to the actual service performance time.

What is Passive Monitoring?
Passive monitoring is basically monitoring of real time client interaction with the Web service. Basically sitting back and looking at the message flow from "real clients" and generating metrics around that. These metrics could be SLA metrics, showing who is accessing the web service, how often, and how the web service performs for each individual client. Passive monitoring is extremely important as it allows you to look at the real user runtime data and in some cases use that data to increase your testing coverage in QA. As an example, let's say the Web service developer would like you to monitor for a specific fault code, and if that fault code is detected in a response from the Web service, to send him the actual request that caused that fault. Then that request can be used in the QA to extend the testing coverage. This just a very simple example of why passive monitoring is important.

AA
www.managedmethods.com

2 comments:

soaslave said...

I liked your post on active vs. passive management.Currently I dont know if a web service is up or down, but sine we only have 2 webservices, my management will not spend money on a tool. Do you know of any free offerings out there?

Anonymous said...

Yes Currently you can use our product JaxView from Managed Methods (www.managedmethods.com)to get 5 free web services active monitors. You can download it off of our web site.