By Noah | May 17, 2010
Ten years ago today, at the 9th International Web Conference in Amsterdam, we held a panel discussion to introduce the SOAP networking protocol to the Web community. Just a week before, the SOAP 1.1 specification had been posted as a W3C Note. Many legitimate criticisms have been aimed at SOAP in the years since, but it and XML-rpc were big steps toward the creation of simple, data-driven Web applications, and toward the widespread availability of portable, standardized, information integration protocols. A large number of SOAP implementations were built, almost immediately, for a wide variety of languages, and of course vendors such as BEA, IBM and Microsoft eventually provided very deep SOAP integration with their middleware stacks.
Unfortunately, SOAP was ultimately positioned at the base of a stack that is far too complex to be appealing to the sorts of communities that now, for good reason, gravitate toward JSON-over-REST. Whether XML could ever have been a good base for such simple applications is an interesting question, but a serious effort was never really made. WSDL, WSA, and WS-Security were from the start complex, heavyweight technologies that fit best into systems built using sophisticated tooling.
SOAP and the associated WS-* standards are indeed widely used today in conjunction with systems like Websphere and .Net, and I suppose that’s a good thing as far as it goes. Conversely, REST is good for many things, but it doesn’t scale to high-end application-to-application communication. I think we missed a chance to build something far simpler than WS-*, something that would have scaled from very simple to quite robust, and that would have achieved better consistency and integration for more users and more applications.
Nonetheless, SOAP was at least an important step on the way to building simple, data-driven Web applications, and perhaps it’s had some more success than that. Either way, it’s been 10 years.