I'm trying to get a handle on when to use web services and when not to. The more I look at it, the more I get the impression that web services have a limited application. I'm hoping my impressions will be confirmed or corrected.
From what I can see, the purported advantage of the web services model is that we can have meta-data with data, we can validate data, we can have platform independant data structures, and we can send this data over HTTP. Also, we can expose a service we may be offering to folks who can discover what we can provide them by asking us what we can do, and there is the UDDI bit about creating a services directory.
Now, I can understand where this might be very useful when you're dealing with a sort of Uber-CORBA/COM world where you can plug-and-play into a cornucopia of objects just waiting to be manipulated. However, it seems to me that, beyond this model, there is more work that is associated with implementing web services than it would be worth if you were just exchanging data say between disperate systems in a homogenous organisation. I can already include meta-data with my data in HTML. I can already validate my data quite easily from HTML. I don't really need to worry about platform independant data structures when I'm exchaning data between two or more different servers and processing it in a Servlet, PHP, ASP, CGI or whatever. I know what I'm dealilng with based on how I define my HTML fields, and work with the data accordingly. In other words, outside of a strict services model, where I'm offering my services to you and you know nothing about me, I don't see the advantage. It seems to me that as far as data exchange is concerned, I can do everything with plain old HTML and HTML processing scripts that I can do in the web services model, without all the extra overhead (including data structures, like arrays - i.e., checkboxes).