SOAP (dříve známý rovněž jako Protokol přístupu k jednoduchým objektům) je jednoduchý protokol pro výměnu informací v decentralizovaném distribuovaném prostředí. Zpráva SOAP je přenos informací od odesílatele k příjemci. Zprávy SOAP lze kombinovat, a provádět tak vzory požadavek-odezva.
SOAP je nezávislý na transportních službách, ale většinou je přenášen přes HTTP, aby fungoval se stávající infrastrukturou Internetu. SOAP zpřístupňuje vazbu a použití objevených webových služeb pomocí definování cesty pro směrování zpráv. SOAP se používá k dotazování UDDI na webové služby. Pracovní plocha podporuje SOAP 1.1.
SOAP je protokol založený na XML, který definuje tři části každé zprávy:
SOAP podporuje dva různé styly komunikace:
Vzdálené volání procedury (RPC): Vyvolání operace, která vrátí výsledek. Zpravidla se používá s kódováním SOAP, které není ve shodě s WS-I.
Styl dokumentu: Známý rovněž jako styl orientovaný na dokumenty nebo styl orientovaný na zprávy. Tento styl zajišťuje dolní vrstvu abstrakce a vyžaduje více programování.
V prostředích distribuovaného zpracování dat definují styly kódování, jak mohou být překládány hodnoty údajů definované v aplikaci do určitého formátu protokolu nebo z něj. Proces překladu je znám jako serializace a deserializace.
Specifikace SOAP definuje styl kódování SOAP:
Kódování SOAP: Styl kódování SOAP vám umožňuje serializaci nebo deserializaci hodnot datových typů z datového modelu SOAP. Tento styl kódování je definován ve standardu SOAP 1.1 a není ve shodě s WS-I.
WSDL definuje styl kódování literálového XML:
Literálový XML: Termín literálový znamená, že dokument by měl být čten tak-jak-je, neboli nezakódovaný. Dokument je serializován jako XMI, což znamená, že zpráva XML je ve shodě se schématem ve WSDL. Při použití literálového kódování se každá část zprávy odkazuje na konkrétní definici schématu. Literálové kódování je ve shodě s WS-I.
Účelem datového modelu SOAP je poskytnout na jazyku nezávislou abstrakci pro datové typy používané běžnými typy programovacích jazyků. Skládá se z:
Všechny prvky a identifikátory datového modelu SOAP jsou definovány v URI oboru názvů. Standard SOAP definuje pravidla pro konstruování datových typů. Projektově specifické schéma XML musí definovat skutečné datové typy. Prvky specifikace SOAP jsou definovány v http://schemas.xmlsoap.org/soap/envelope/ a http://schemas.xmlsoap.org/soap/encoding/
Dnes jsou k dispozici různé implementace protokolu SOAP. Například, základna Apache nabízí Apache SOAP, který vznikl z projektu IBM nazvaného SOAP4J, a také běhové prostředí Apache Axis a IBM WebSphere. Poskytované nástroje webových služeb podporují implementace Apache SOAP 2.3, Axis 1.0 a IBM WebSphere.
Mapování definuje přiřazení mezi stanoveným názvem prvku XML, názvem třídy Java a stylem kódování. Mapování určuje, jak bude za daného kódování příchozí prvek XML s úplným kvalifikovaným názvem převeden na třídu Java a naopak.
Podrobnější informace o Apache SOAP viz xml.apache.org/soap. Podrobnější informace o SOAP viz www.w3.org/TR/SOAP.