Expert Texture Home Contact me About Subscribe Digipede Connect on LinkedIn rwandering on Twitter rwandering on FriendFeed

The blogged wandering of Robert W. Anderson

On OO, SOA, and OOP-G

In Modeling Web Services using OO and moving on, Savas Parastatidis recently posted that object-orientation is a poor choice for modeling large-scale distributed applications. As he argues (and I agree), Service-Orientation is a better way to architect these applications.

My product, the Digipede Network, is built on a service-oriented architecture. So why do we Digipudlians talk so much about object-orientation (e.g. here and there)?

One reason is that our SDK makes it straight-forward for our customers to distribute their objects across a network of computers and perform work on them. They are generally using object-oriented development tools with .NET (e.g., Visual Studio with C# or VB) or COM objects. We take these objects and submit them into the Network (by value). The developer need not be troubled with the intricacies of the WSDL or Web services that underlie the architecture.

In other words, the tools are (mostly) OO, and the underlying services / architecture that supports the whole thing enables so much more. Our customers don’t need to get into that if they don’t want to.

Resonates with Developers
Another reason is that we connect a lot more quickly with developers by describing our model as a way to scale out OO applications quickly. The fact is that most businesses have existing non-SOA applications that can easily be distributed on the Digipede Network.

OO and SOA?
Of course, we don’t want to ignore SOA as this is our architecture and we want to enable these kinds of applications (we will be exposing rich Web services interfaces to our product in the coming year). To bring these two concepts of OO and SOA together, I have begun referring to this specific programming model as “object-oriented programming for grid over a services-oriented architecture”, or OOP-G over SOA and simply OOP-G for short.

Has a nice ring to it, no?



    John Bailo wrote @ January 3rd, 2006 at 10:20 am

Great reconceptualization.

I have been reading a lot of these OO-bashing articles lately.

The whole point of SOA is to decompose complexity. OO got a bad rap because its hard to model entire systems into gigantic objects that are the be all and end all.

COM moved us in the right direction with “component” architecture, but the difficulty of implementation interface in the VC++ model limited it.

Now there is web services — and people are just getting started on building simplistic services — but we want to leave the door open for developing more and more complicated objects.

I don’t think that it’s the end. To me, the next step in evolution are going from objects hosted within a centralized server, to a “grid” as you say, that hosts independent objects that are their own servers.

Also, these objects will start to take on the roles that databases have played — each record in a database being its own independent object/server component.

Yes OOP-G is a great concept!

    Robert W. Anderson wrote @ January 3rd, 2006 at 10:37 am

Thanks for the comment.

Yes, there has been a lot of OO bashing, but I do think it has to be taken in context which many bloggers exclude (I hope I’m not guilty of that . . .).

Our software is a step in the direction of per-record servers; with the servers exec’ed on distributed machines.


Your comment

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>