A REAL service definition
June 3rd, 2007
A REAL service definition
Published on June 3rd, 2007 @ 05:03:02 pm , using 550 words, 1986 views
Based on several comments and articles I've read, I tend to think that SOA and Web Services are being misunderstood. Maybe I’m the one that is wrong, but just in case I will try to explain here what I understand. I guess the first thing to do is to define what a service is.
Base on the Web Service Architecture specification, a service is “… an abstract resource that represents a capability of performing tasks that represents a coherent functionality from the point of view of provider entities and requester entities.”
I want to point out the fact that a service is a “resource”, it can perform some tasks, and it represents functionality. A service has an ID that will let us find it in the networking cloud. It has a description and it has an interface. That interface “… is the abstract boundary that a service exposes. It defines the types of messages and the message exchange patterns that are involved in interacting with the service, together with any conditions implied by those messages.”
Let’s put it in other words. A Service is a coherent functionality offered by a web resource. To communicate with it, you use its interface. It will accept messages interchanged in a predefined pattern.
But there is an important fact: “To be used, a service must be realized by a concrete provider agent.”, WSA spec says. In other words, a service is an abstract model of a resource. That functionality is to be realized by a concrete agent, may it be software or hardware. Let think of it as a functional cloud, accessed by messages delivered to a port.
An Example may help.
Pages: 1 · 2
Trackback address for this post
2 comments
I finally worked out how to post to your blog. Like I said on TSS I your loan example is an example of a RESTful service. You don't mention REST, but I think it would be useful here.
I've presented a similar example on my blog:
http://pab-data.blogspot.com/2006/10/rest-epiphany.html
I'd like to take another slant though. One thing that strikes me is that very often implementation drives architecture, which is why I believe the two are often intimately related.
I believe the WS-* specs you speak of are an example of this. A Procedure is a language construct and exists in that functional cloud you speak of. Yet WS-* elevates a procedure to an architectural construct, the RPC.
The "Service as a Resource" idea is ommitted and replaced with a programming concept familiar to C/C++/Java language programmers.
You mention using "document style" WSDL. This is new to me, perhaps you can explain or provide a pointer. AFAIK WSDL and SOAP is mostly focused on RPC.
I think the mistakes you speak of are prevalent, but i wouldn't blame the developers, IMO they are implicit in the specs and standards.
So my 2 cents are always question the spec!


