Web Service Tips

I know you're not meant to apologise for going quiet on a blog, but things have definitely been quiet around here recently. It's only good news from my point of view, work has really taken off over the last few weeks.

For the last week I have been mostly designing and implementing some pretty complex WS-I compliant web services to be hosted on a 7.0.2 Domino server. This is harder (and surprisingly more fun) than it sounds as Domino's web services implementation in 7 is pretty outdated these days. Basically there are a few things I would point you at to get you started...

Julian's article about web services is a great starting point for complex web services, but because it's a couple of years old now it only takes you so far.

Then you need to have a look at this article about web services in Domino 8 which offers quite a lot of ND 7 specific content, especially about manually editing WSDL files to make them WS-I compliant. To be honest I found this to be a case of trial and error, there are a *lot* of obscure rules which have to be complied with, especially if you're passing arrays or Base64 encoded data (both of which, of course, I am doing).

The actual writing of the services is pretty simple, they're basically just agents, but then next challenge is doing some load testing. Enter Soap UI a free tool which provides some great tools. It allows you to consume your new service very easily which is cool for testing. But then the really useful tool is a load testing implementation which allows you to really stress test your service to see what happens when you're running 500 requests a second against it. Believe me it's not pretty! So now I have to spend some time making the services really bullet proof in terms of error handling and performance.

I may be a little odd, but I really enjoy doing this sort of work. And luckily, for the moment, I'm able to spend almost all of my time writing code. Long may it last!