THE 1990S

SOAP

In late 1997, Microsoft began exploring an idea that would transform communication between applications: using XML for remote procedure calls over HTTP. The ambition was simple: enable machines to communicate across networks with standard data types, without the complications of proprietary protocols. DevelopMentor, accustomed to collaborating with Microsoft, and Userland, which saw the Web as a publishing platform, joined the venture. The name SOAP emerged in early 1998.

But things quickly became complicated. The DCOM team at Microsoft put up strong resistance. Rather than adopting this new approach, they preferred to leverage the company’s dominant position to impose DCOM through HTTP tunneling. The in-house XML experts found the idea appealing but premature: they were waiting for the advanced features promised by XML Schema and namespaces. Faced with this deadlock, Userland took the initiative and published its own version of the specifications under the name XML-RPC during the summer of 1998.

In 1999, Microsoft made progress on XML Schema and integrated namespaces into its products. SOAP regained momentum, though the BizTalk team remained reluctant as their model was based on messaging, not remote procedure calls. On September 13, 1999, SOAP 0.9 was released for public review and submitted to the IETF. Three months later, SOAP 1.0 appeared with few changes.

In March 2000, the W3C announced it was considering activity around XML protocols. At the XTech conference, a lively session brought together several visionaries who debated future directions without reaching consensus. But May 8, 2000 marked a real turning point: SOAP 1.1 arrived at the W3C with IBM as co-author. This unexpected support changed everything. The new version proved much more modular and extensible, dispelling fears that SOAP would impose proprietary Microsoft technologies. IBM immediately published a Java implementation which it contributed to the Apache XML project for open source development. Skeptics began taking the protocol seriously. Sun expressed interest and worked to integrate web services into J2EE. Other vendors and open source projects followed suit.

In September 2000, the W3C formed a working group dedicated to the XML protocol, taking SOAP 1.1 as its starting point. After months of modifications, improvements, and difficult decisions about what to keep or abandon, SOAP 1.2 became an official recommendation in June 2003.

SOAP prevailed because it represented the best industrial compromise for standardizing XML-based multi-platform distributed computing. Its simplicity was its major asset: historically, architectures that achieved mass adoption did so thanks to this quality.

The protocol defines the unit of communication through an envelope that frames all information. A message contains a body where arbitrary XML can be placed, accompanied by headers that carry data outside the main body. The processing model establishes precise rules for handling messages when extensions come into play. SOAP faults handle errors by identifying their source and cause, while allowing the exchange of diagnostic information between participants.

Extensibility works through SOAP headers that carry extension data with the message and can target specific nodes along its path. SOAP offers a flexible data representation mechanism: it accepts data already serialized in various formats (text, XML) and provides a convention for representing abstract structures like programming language types in XML.

Remote procedure calls and their responses “map” naturally to SOAP messages. This is a common type of interaction in distributed computing that corresponds well to procedural language constructs. The binding framework defines an architecture for building bindings that send and receive SOAP messages over arbitrary transports. This framework notably serves to move SOAP messages across HTTP, the ubiquitous Internet protocol.

SOAP remains widely used in enterprises for application and service integration, especially with legacy systems. The banking and financial sectors are among its loyal users. Google employs it for most of its applications, as do PayPal, Amazon, and eBay. The protocol maintains its relevance thanks to its technical robustness and its ability to handle complex operations that require maintaining conversational state and contextual information. Its evolution enabled the development of web services and the rise of distributed computing.