Tuesday, May 31, 2005
I am a WSDL and SOAP hater. I have worked on various IDL based systems (e.g., CORBA). When WSDL came out I just looked at it as another IDL. 2 years or so ago I worked with an early version of Apache Axis to build a web service. The web service had to interoperate with .NET. It was truly TRULY hell. Yes, "hello world" is easy and sending a couple dozen Strings around is doable, but try sending a very complex structure around and see how much fun it is. Especially if you are naive enough to think that WSDL is an IDL and you SHOULD start with it first to define your service contract like ... well every IDL before it. After a lot of work, I got it to work. It was a minor victory, but not something that I wanted to repeat. I've tried to avoid web services ever since. I think that WSDL and SOAP meant well, but are doomed. Sadly, much effort has been put into them by many infrastructure companies. By the looks of this theserverside.com article and the links hanging off of it, I am far from being alone in my opinion. How else could there be so many potential replacements for it? I shudder to think where it will all end. Will WSDL/SOAP be shot? Sure looks like it. That should throw a wrench in a couple companies’ product plans. I do like XML and think its a good choice for integration. I favor an event driven approach (e.g., pick a good messaging system (one that does pub/sub for real) or better yet, a good EDA vendor that runs on top of one like our product). I like EDA because it is so configurable and flexible. You don't have to embed the definition of everything in the service definition like you have to with WSDL and all WS-X specs. You just define a simple service - like an Action in struts / event handler in anything. You then use the infrastructure to configure what channels it listens on. EDA has its issues, it isn't a silver bullet, but it is far easier and practical for enterprise integration IMHO.