''SOAP, the Simple Object Access Protocol, provides a simple and lightweight mechanism for exchanging structured and typed information (objects) between peers in a decentralized, distributed environment using XML [ExtensibleMarkupLanguage]. It consists of three parts: an envelope that defines what is in a message and what to do with it; a set of encoding rules for expressing datatypes, and a convention for implementing RemoteProcedureCall''''''s and responses. Summed up, SOAP is a serialization protocol.'' *''XML documents for encoding of invocation requests and responses.'' *''XML Schema for describing the types'' *''XML Namespaces for describing the requests.'' *''Transmission of SOAP envelopes via HyperTextTransferProtocol (HTTP), SimpleMailTransferProtocol (SMTP), or other protocols. Section 5 of the spec specifically addresses HTTP bindings.'' See SoapDiscussion, SoapDoesntRequireHttp, RestInSoap. ---- '''Links:''' *http://www.w3.org/TR/SOAP ''(and W3C XmlProtocol group)'' *http://www.develop.com/soap *http://msdn.microsoft.com/xml/general/soapspec-v1.asp *http://www.iona.com/soap *http://msdn.microsoft.com/xml/general/soapspec_issues.asp *http://soap.weblogs.com/ *http://www.alphaworks.ibm.com/tech/soap4j *http://xml.apache.org/soap *http://www.soaplite.com * HpSoapProject * WebServices ---- Implementations of SOAP: * MicrosoftCorporation released SOAP for Windows on (6/5/00) as SoapToolkit. '''It will be removed by Apr2005'''. It's based on Microsoft's ComponentObjectModel (COM) and has support for the 1.1 spec. More information is available at http://msdn.microsoft.com/webservices/building/soaptk/default.aspx. On this wiki please use MicrosoftXml for discussions and information sharing regarding this. * WebService implemented using various Soap implementations has to be tailored before they can interconnect. See http://www.fawcette.com/vsm/2002_01/magazine/columns/webservices/default_pf.aspx for some examples of what else is needed. * DevelopMentor has already provided implementations for the PerlLanguage, the JavaLanguage (see http://discuss.develop.com/archives/wa.exe?A2=ind9912&L=soap&F=&S=&P=26408) (CM), and of course COM. (though somewhat ironically, at the time of this writing, the COM implementation has yet to be released! ;) * IBM's implementation: http://www.alphaworks.ibm.com/tech/soap4j (now handed over to the Apache project) * Apache Project implementation of SOAP in Java, derived from IBM work: http://xml.apache.org/soap * There is an Apache (web server) module "mod_soap" (http://soap.sourceforge.net/). * Scarab (http://casbah.org/Scarab/) is an open source communications library implementing protocols, formats, and interfaces for writing distributed applications, with an emphasis on low-end and lightweight implementations. There are implementations of Scarab in Java, Python, Perl, and C. * soaplib.py (http://www.pythonware.com/products/soap/) for the PythonLanguage. * SOAP Smalltalk Reference Implementation(http://wiki.cs.uiuc.edu/CampSmalltalk) * SoapLite http://www.soaplite.com * Ximian's C Library implementation http://lists.gnome.org/archives/gnome-announce-list/2001-May/msg00045.html * A PHP SOAP server - NuSOAP: http://dietrich.ganx4.com/nusoap/index.php There are '''tons''' of other implementations at: http://www.soapware.org/directory/4/implementations ---- Particular things to note: *SOAP does not tie you to any MicroSoft technology (see the list of implementations above). *SOAP does not ''necessarily'' tie you to the HyperTextTransferProtocol. Other TransportProtocols can be used to transmit the packets. For example, the SimpleMailTransferProtocol is often discussed for queuing packets. Early versions of SOAP seemed to tie you to the HTTP; there was some discussion of whether or not that was true below. However, the latest specification clearly states: It is worth noting that the rules governing XML payload format in SOAP are entirely independent of the fact that the payload is carried over an HTTP transport. -- DrewMarsh (refactored 2/10/2000) ---- A writeup on SOAP Basics, taken from Professional XML Web Services, can be found at http://www.vbip.com/books/1861005091/chapter_contents.asp ---- Is it called SOAP, because it creates bubbles without content? -- AnonymousCoward ---- CategoryWebServices CategoryAcronym CategoryXml