Title stolen from Yasser Shohoud's book “Real World XML Web Services”, which is kinda my bible right now. In particular, Chapter 8: Interface-Based Web Service Development. This chapter has taught be a lot about what web services really are: beyond the VS.NET wizard generated ones that I've done - mostly an RPC style. Create a server object and basically make it available to the client.
Creating, or rather, re-using “standard” data definitions and message is very appealing. My project is an attempt to convert a distributed data acquistion system that I did in Corba to .NET. The application didn't use industry standard definitions for sensors, data, messages and API's because they really didn't exist or were “emerging”. One of the standards organization OPC (Ole for Process Control) is coming out with XML based standards. My plan is to use OPC supplied schemas in their XMLDA spec. Another standard set is SensorML.
I integrate these standards into my project and now see how to do it - or at least starting to. Starting from VS.NET, creating a web service, adding various attributes to the methods and hand editing the wsdl and xsd files is crude but does work.
I like the idea of designing data and messages first, especially using industry standard schemas. I also like the idea of being able to validate messages.
I think that I'm starting to understand what web services are really about - not RPC or distributed objects. One good article that I found today is http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000120.html
The last time that I mentioned standards in my blog, I was basically told to forget them and just code. I know how to code but am trying to learn better ways to do things that I've done. I've got a lot of reasons for working on my project, coding C# is not one of them - I do that all day at a different level.