Please everyone, repeat after me… there are NO OBJECTS in service-orientation

At least there are no objects that we can see. Objects may be used in an implementation of a service but there are no objects in the architecture (either remote or local). In a post that seems to miss this point, Sean Landis talks about "SOAs - Separating Hype from Reality". Here's a quote from his post...

"Web Services breaks one of the key doctrines identified in the classic "Note on Distributed Computing": Local vs. remote objects. The argument made by Waldo, Wolrath, et. al., is that there is a fundamental difference between local and remote objects and any distributed system that attempts to hide that difference is fundamentally flawed."

As I said, there are NO OBJECTS and hence there is no need to hide the difference between remote and local.

I agree with his comments on Grid computing though 🙂

(link via Stefan's blog).

3 responses to “Please everyone, repeat after me… there are NO OBJECTS in service-orientation”

  1. Sean Landis
    You’re playing word games. The important point that Waldo, et. al., were making was that any approach that hides the remoteness of an object [or service] is going to lead to big problems. The paper pre-dates SOA so the context relied on the notion of distributed objects because that was the lingo of the day.
  2. Sean Landis
    BTW, if you haven’t read “Note on Distributed Computing,” you really should. If you have any interest in SOA you will find that many of today’s distributed technologies rely on the ideas described in that work. Today we take much of it for granted, but if you were around when CORBA was emerging, and if you can put yourself back in time, you can glimpse just how influential this work was.
  3. Hey Sean, I have read the “Note on Distributed Computing”. I agree that much of the discussion is relevant but I insist that there is a difference between services and objects. I agree that we shouldn’t hide the fact that services are remote entities. I always argue against the use of tools like WSDL2Java and WSDL.EXE that present a local object view (once the generated classes are instantiated) of a service. I agree that this is wrong and Jim Webber and I have been advocating for building distributed applications using the message-oriented paradigm where communication is explicit. Unlike the distributed objects paradigm, however, in service-orientation we don’t have to deal with issues with state, concurrent access to it, etc. in the same way we deal in object-orientation. We are in a more loosely-coupled environment than distributed objects encourage us. Please note that i am not saying that loose-coupling is not possible with distributed-objects; just that it is more difficult. CORBA has shown us exactly that (me thinks). Finally… I personally see a big difference between an “object” and a “service” so I don’t think I am playing with words.