views:

105

answers:

2

We are developping a web application that uses external web services as the main data source. The web services have been created and are maintained by one of our close partners. Even though they are supposed to work all the time, they are not 100% reliable. From time to time, they stop being reachable or they start throwing exceptions.

What would be a good way of monitoring external web services and getting informed when something wrong happens?

Limitation:

  • Web services are host externally on our partner's servers
  • We don't have the source code of these web services
  • We have no control over the general infrastructure

I thought of creating a simple .NET application that calls the web services regularly and report when there is a problem (by email, in a log file or in a db). But maybe you have better ideas?

+2  A: 

I thought of creating a simple .NET application that calls the web services regularly and report when there is a problem (by email, in a log file or in a db). But maybe you have better ideas?

As well as reporting to your company that the services are down, you might also want to inform the vendor, eg by emailing their tech support or placing an automated call to their hotline or something.

If these services are business critical, perhaps you can agree an SLA with the vendor as part of your contract.

I don't know of anything else you can do, except maybe to implement local caching of the data if this makes sense in your scenario. This would insulate you, at least a little, from temporal failures in the web services.

Winston Smith
+1  A: 

G'day,

There's a few aspects you have to consider here.

Are the external web services living behind a load-balancing layer? In that case, you're pretty much limited as to the usefullness of what you can report back to the other company.

Do you have SLAs in place with the company to help ensure the provision of their web services? If you do, then you'll need to support any claims with recorded data which changes the extent of the monitoring needed.

What about asking external companies like Gomez to monitor the company's web service application for you? They have an excellent range of services. BTW I don't work for Gomez, just use their services.

Does your company have SLAs with any customers for the provision of your application? Once again, if you do, you're going then need to mitigate the cost of any such penalties by definitely having SLAs with the other company.

Edit: I forgot to say that any probes you do should be of at least two types.

  1. availability of the external platform, and
  2. availability of your particular service

HTH

'Avahappy,

Rob Wells