Web Services: The glue or just more rock and scissors?
XML and SOAP messages may mask the the underlying infrastructure from developers but the data center still needs to be brand aware.
There are many conversations on the topic of Java vs. .NET and how Web Services might be the holy grail or glue to bring it all together. Philip Brittan points out some interesting things in his Microsoft and Web Services weblog entry that got me to thinking about this.
At the end of the day, customers need to do 2 things:
- Run application X (In a typical enterprise, it is more like application X to some power)
- Better manage the cost of the infrastructure required to run application X
The sheer number of applications needed within the enterprise brings with it complexity and integration issues that are daunting. Enter Web Services. The nice thing about Web Services is that application X and application X' (along with their developers) do not need to know that much about the other in terms of language or Operating System, or platform. In theory, as long as all applications can send a receive SOAP based XML messages intelligently they should have no opinion regarding how the other applications are constructed.
So, In the B2B world, Web Services makes it easier to connect applications in the same way that TCP/IP made it easier to connect systems (This analogy will be important later). Internally, Web Services just gave your developers a reason to "roll their own" and not standardize on a middleware platform. Applications no longer need to be on the same platform to work well together, so, developer's can go back to picking the OS or platform de Jour that will best pad their resume.
Enter the datacenter. Nothing has changed for these underdogs. They still need to figure out how to get all of these incompatible brands to work together. What is important to them is:
- Reduce the cost and wide variety of skill sets required to support application X
- Standardization of infrastructure to reduce duplication
Web Services, today, does not help the datacenter. It does not drive standardization across infrastructure. I think it does the opposite because developers no longer have a catalyst to use a common platform. They can get their applications to work together regardless of what they are written in or what they run on.
So, if you think that Web Services removes the burden of picking a platform you are dead wrong. The .NET middleware stack and the J2EE middleware stack do not integrate (easily or without a lot of voodoo). At the very least, it's safe to say that "Web Services infrastructure" does not connect as easily as TCP/IP infrastructure.
Using both .NET and J2EE, as I hear so many enterprises claim, will actually drive up costs because there will continue to be silos and duplication across platforms. It will also be the leading cause of suicides among datacenter managers.
Ironically, Microsoft (who's solution is based on .NET) and IBM (who's solution is based on J2EE) love telling people how they work together to solve customers issues using Web Services as the glue. I'd say they are rock and scissors. The only question is which will cut you and which is the blunt object.