Simple Object Access Protocol

SOAP (celým názvom Simple Object Access Protocol) je protokolom na výmenu správ založených na XML prostredníctvom siete, hlavne pomocou HTTP.

Schéma

Formát SOAP tvorí základnú vrstvu komunikácie medzi webovými službami a poskytuje prostredie na tvorbu zložitejšej komunikácie.

Existuje niekoľko rôznych druhov šablón komunikácie prostredníctvom protokolov SOAP. Najznámejší z nich je RPC šablóna, kde jeden z účastníkov komunikácie je klient a na druhej strane je server. Server ihneď odpovedá na požiadavky klienta.

SOAP je nástupca XML-RPC, od ktorého si požičiava jeho spôsob prenosu dát a ďalšie vlastnosti. Obálka, hlavička a telo komunikácie je ale pravdepodobne z WDDX.

Pôvodne ho navrhol Dave Winer, Don Box, Bob Atkinson a Mohsen Al-Ghosein v roku 1998 za podpory firmy Microsoft (kde tou dobou Atkinson a Al-Ghosein pracovali). Dnes je SOAP špecifikácia spravovaná XML skupinou tvoriacou internetové protokoly z W3C konzorcia.

Formy prenosu

HTTP aj SMTP sa dajú použiť ako aplikačná vrstva pre protokol SOAP. Ale HTTP dosiahol omnoho väčšie využitie. Je to predovšetkým preto, že HTTP je prakticky základom pre dnešnú Internetovú infraštruktúru. Vďaka tomu môže SOAP jednoducho prechádzať cez firewall. To je jeho hlavná výhoda oproti iným distribuovaným protokolom, ako je napríklad DCOM, ktoré sú väčšinou firewallom blokované.

XML formát bol zvolený ako štandard na prenos SOAP správ pre jeho rozšírenosť a dostupnosť vývojových nástrojov ponúkaných ako opensource alebo freeware a teda voľne k používaniu.

Zdĺhavá syntax XML má svoje výhody aj nevýhody. Je jednoducho čitateľná pre človeka, ale počítač ju musí zložito parsovať a stojí to dosť procesorového času a operačnej pamäte. Oproti tomu CORBA, GIOP alebo DCOM má zápis správ na komunikáciu ďaleko kratší a binárny, teda pre človeka nečitateľný. Na druhej strane vývoj počítačov ide rýchle dopredu a prestáva to byť na ťarchu. Bola už vytvorená aj binárna forma XML.

Slabé stránky

Veľký zápis komunikácie.

Príklad

Príklad správy od klienta, ktorý sa pýta na informácie o produkte na sklade pomocou webovej služby. Klient sa dožaduje informácie o produkte označenom ID 827635:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <getProductDetails xmlns="http://warehouse.example.com/ws">
       <productID>827635</productID>
     </getProductDetails>
   </soap:Body>
 </soap:Envelope>

Tu je odpoveď webovej služby pre klienta.

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <getProductDetailsResponse xmlns="http://warehouse.example.com/ws">
       <getProductDetailsResult>
         <productName>Čokoláda sada 3 chutí</productName>
         <productID>827635</productID>
         <popis>Čokoláda horká, biela a smotanová</popis>
         <cena>98,50</cena>
         <naSklade>áno</naSklade>
       </getProductDetailsResult>
     </getProductDetailsResponse>
   </soap:Body>
 </soap:Envelope>

Zdroje

Tento článok je čiastočný alebo úplný preklad článku SOAP na českej Wikipédii (číslo revízie nebolo určené).

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.