Simple object access protocol

What Is Simple Object Access Protocol?

Simple Object Access Protocol (SOAP) is a messaging protocol for exchanging structured information between distributed systems over a network. It uses XML as its message format and is transport-agnostic, most commonly carried over HTTP or HTTPS. SOAP was developed to allow programs running on different operating systems and built with different technologies to communicate through a standard, vendor-neutral envelope format. The protocol was submitted to the World Wide Web Consortium in 1998 and its 1.2 specification became a W3C Recommendation in June 2003.

SOAP emerged from work at Microsoft in the late 1990s, drawing on earlier XML-RPC concepts developed by Dave Winer. The initial 1.1 specification, authored by contributors from DevelopMentor, IBM, Lotus, Microsoft, and UserLand Software, was published as a W3C Note in May 2000. It codified the use of XML namespaces and a defined envelope structure to enable interoperability across heterogeneous enterprise systems, and became a cornerstone of the Service-Oriented Architecture (SOA) movement that dominated enterprise software integration through the 2000s.

Message Structure and Encoding

A SOAP message is an XML document with a mandatory Envelope element as its root. The Envelope contains an optional Header and a required Body. The Header carries processing directives such as authentication tokens, transaction identifiers, or routing instructions, each of which may be marked as mandatory (mustUnderstand="1") so that intermediary nodes that cannot process it must reject the message rather than silently ignore it. The Body carries the actual payload, which may be a remote procedure call, a response, or a fault notification. SOAP defines its own encoding rules for serializing application data types into XML, though the SOAP 1.2 specification made these encoding rules optional in favor of literal XML schema-based encoding, which is the approach used in virtually all modern SOAP services.

Transport Binding and Web Services

SOAP's transport independence allows it to run over HTTP, SMTP, or other protocols, although HTTP became the dominant binding in practice because it traverses firewalls easily and maps naturally to the request-response communication pattern. In HTTP usage, a SOAPAction header field identifies the intent of the request to intermediaries and firewalls. SOAP is typically used alongside WSDL (Web Services Description Language), which describes the operations a service exposes, and UDDI (Universal Description, Discovery, and Integration), which provides a registry for finding services. Together these three specifications defined the WS-* stack, a suite of interoperability standards backed by major vendors and industry groups including OASIS and the W3C.

Relationship to REST and Modern APIs

SOAP's formal contract model and built-in support for WS-Security, WS-ReliableMessaging, and WS-AtomicTransaction gave it strengths in enterprise integration scenarios requiring guaranteed delivery, transactional semantics, or fine-grained security. REST-based APIs using JSON have largely displaced SOAP in new web and mobile development since the mid-2000s, owing to REST's lighter payload format and lower implementation overhead. SOAP remains prevalent in financial services, healthcare systems, and government platforms where existing integrations predate REST adoption and where WS-Security features such as XML signature and encryption are contractually required.

Applications

Simple Object Access Protocol has applications in a wide range of fields, including:

Loading…