From ORBs to Web services

TheServerSide Interop Blog has covered Web services extensively. But not to the inclusion of other methods of achieving interoperability. One premise we have pursued – one that is not a natural fit with the Silver Bullet mentality of most software marketing, is that Web services is not the be-all and end-all – not the answer to every question. Okay, so that’s out of the way.  The matter came up as part of our recent discussion with Alex Krapf of Codemesh, maker of Juggernaut.

We asked Alex about Web services. He said: “I think of Web services as the CORBA of our day.” We asked why he said that.

Alex said: “In the old days, everybody was into CORBA – everybody but Microsoft. And it was the way to create language-portable distributed solutions.  When Web services started, it started with SOAP. And essentially what people did was they said ‘we will create human readable messages.’ XML was the hot thing. So, they said, ‘let’s use XML to talk one to the other.’ A fine idea - why not?”

We interrupted, saying that XML was verbose. On top of that, it was tentatively suggested, Web services, and SOAP especially, gained initial traction because they were simple. But they immediately became more complicated, as essential ‘nice to haves’ like reliability and security came into play.

Yes, Alex agreed. Web service hit the problems associated with being verbose and ‘mission critical.’

Engineering problems
“They were following the same progression that CORBA followed,” he said. “CORBA started out as something relatively simple. That had a bunch of technical benefits for object-oriented programmers. In order to be successful you had to be a good client-server programmer. You needed to have a grasp of the languages you were using.”

“You needed to be a good engineer to be successful in CORBA,” Krapf said. “And we are getting to the point where you also have to be a good engineer to be successful in Web services.”

The benefits gained through Web services, you might say, are related to services being ‘out of the box.’ With CORBA, for example, “you had to pay extra for a naming service. Most people just didn’t have access to them,” Krapf said. Essentially, the objective was for distributed objects to discover the server, and that could be a problem. There were a lot of ways in which this discovery could occur.
 
Different ORBs [from Hitachi, form Iona, from IBM, etc.] could go about discovering servers, and the common naming service was intended to shield you from that by providing for the discovery of arbitrary objects, he said.

Krapf continued:

We now have a much richer programming environment available to us. We have all these built-in types in Java and .NET, hash tables and distributed types and queues, and all those wonderful things. . So when they came up with Webb services, it was like CORBA on steroids right from the beginning. You had all these services available to you just by the virtue of using .NET or Java. It was easy for you to build things on top of the standard. That helped and also fueled I think some of the successes of Web services.But because it was fairly simple you could get into places that you couldn’t get to very easily before.You could write your XML message to an endpoint; to a small device. And that device did not have to have all the full functionality stack. You did not have to have a full ORB running. All it needs to be able to do is figure out where the message body starts and where it ends.

Of course this Web services movement is the most significant since CORBA. The free Web services stack that comes with an application server is there and ready to use, right?

Of course this Web services movement is the most significant since CORBA. The free Web services stack that comes with an application server is there and ready to use, right?Krapf said he is asked this question a lot. There are caveats. “It is essential,” said Krapf to distinguish whether or not you are solving a distributed services problem that you might have had – now with different characteristics – some years ago - one where you used CORBA.”

“If it is like that, then you can use the Web Services,” he said.

But if it is a language integration problem, then Web services is probably not appropriate for you, Alex said.

Read Part 1 | Read Part 2


Leave a Reply