August 2003 - Posts

More real world web services ...

In my last entry I mentioned something about using industry standard data type and messages.  Also I mentioned the great article “Web Services are not Distributed Objects” http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000120.html, Yasser Shohoud's book on Interface based web services,  and some of his other articles  and thought I was on to something regarding the “real world”.  I also have read the “At your service“ articles on Industry Standard WSDL http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservice/html/service02062002.asp At my work, our application makes heavy use of web services. These services are based on VS.NET wizard generated code: you create a service (object?) and add a bunch of methods to it.  Seems kind of RPCish?

I am interested in data acquisition stuff and looked at what the process control industry is doing.  In particular, OPC (http://opcfoundation.org)  I requested and received access to the new XML Data Access spec and retrieved a wsdl document for the xmlda service.  Looking at it I was surprised to find that they are also using a remote object rpc style.  The soap is document/literal, I'm talking about the way a developer looks at the code.  Create a proxy object and call methods on it.  One method (Browse) has 16 arguments, some of them are out types.  I would have thought that a better way would be to create the a Browse query xml message, a browser query response using xml schemas and go from there.  This is the path I was headed down on my “learning“ project anyway. 

Any way I guess the real world is still operating differently than I thought or hoped.  Unfortunately, I'm not a member of OPC and there is no one here that is interested in going beyond what we have done with web services.  I'd love to get into discussions with someone.  Need to get out more I guess.

 

Posted by cloudycity | with no comments

Real World Web Services

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.

Posted by cloudycity | with no comments
More Posts