SOAP: Porovnání verzí
m oprava obratu |
m →Externí odkazy: +Portaly:Internet, cleanup za použití AWB |
||
(Není zobrazeno 60 mezilehlých verzí od 46 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
{{možná hledáte|tento=aplikačním protokolu pro přenos serializovaných objektů pomocí XML, na různých síťových protokolech|jiný=SOA, [[Service Oriented Architecture]], (česky ''architektura orientovaná na služby''), ať už [[Extensible Markup Language|XML]]-SOAP, [[Hypertext Transfer Protocol|HTTP]]-[[REST]] nebo obecně jakýchkoli webových služeb|redirect=Simple Object Access Protocol}} |
|||
'''SOAP''' (celým názvem '''Simple Object Access Protocol''') je [[Protokol (informatika)|protokolem]] |
|||
[[Soubor:SOAP.svg|náhled|vpravo|220px]] |
|||
pro výměnu zpráv založených na [[XML]] přes síť, hlavně pomocí [[ |
'''SOAP''' (původně '''Simple Object Access Protocol''') je [[Protokol (informatika)|protokolem]] pro výměnu zpráv založených na [[Extensible Markup Language|XML]] přes síť, hlavně pomocí [[Hypertext Transfer Protocol|HTTP]]. |
||
Formát SOAP tvoří základní vrstvu komunikace mezi webovými službami a poskytuje prostředí pro tvorbu složitější komunikace. |
Formát SOAP tvoří základní vrstvu komunikace mezi webovými službami a poskytuje prostředí pro tvorbu složitější komunikace. |
||
Existuje několik různých druhů šablon pro komunikaci na protokolu SOAP. Nejznámější z nich je RPC šablona, kde jeden z účastníků komunikace je klient a na druhé straně je server. Server ihned odpovídá na požadavky klienta. |
Existuje několik různých druhů šablon pro komunikaci na protokolu SOAP. Nejznámější z nich je [[Remote procedure call|RPC]] šablona, kde jeden z účastníků komunikace je klient a na druhé straně je server. Server ihned odpovídá na požadavky klienta. |
||
SOAP je nástupce [[XML-RPC]], |
SOAP je nástupce [[XML-RPC]], ačkoliv si zapůjčuje jeho způsob přenosu dat a další vlastnosti. Obálka, hlavička a tělo komunikace je ale pravděpodobně z [[WDDX]]. |
||
Původně ho navrhl [[Dave Winer]], [[Don Box]], [[Bob Atkinson]] a [[Mohsen Al-Ghosein]] v roce [[1998]] za podpory firmy [[Microsoft]] (kde tou dobou Atkinson a Al-Ghosein pracovali). Dnes je SOAP specifikace držena [[XML Protocol Working Group|XML skupinou]] tvořící [[Protokol (informatika)|internetové protokoly]] z [[World Wide Web Consortium|W3C konsorcia]]. |
Původně ho navrhl [[Dave Winer]], [[Don Box]], [[Bob Atkinson]] a [[Mohsen Al-Ghosein]] v roce [[1998]] za podpory firmy [[Microsoft]] (kde tou dobou Atkinson a Al-Ghosein pracovali). Dnes je SOAP specifikace držena [[XML Protocol Working Group|XML skupinou]] tvořící [[Protokol (informatika)|internetové protokoly]] z [[World Wide Web Consortium|W3C konsorcia]]. |
||
==Formy přenosu== |
== Formy přenosu == |
||
⚫ | Jako aplikační vrstva pro protokol SOAP lze použít protokol [[Hypertext Transfer Protocol|HTTP]] i [[SMTP]] (ale HTTP dosáhl daleko většího uplatnění; je to především proto, že HTTP je prakticky základ dnešní [[Internet|internetové infrastruktury]]). Díky tomu může SOAP jednoduše procházet přes [[firewall]], což je jeho hlavní výhoda oproti jiným distribuovaným protokolům, jakým je např. [[DCOM]], které jsou na firewallu většinou zakázány. |
||
Jako standard pro přenos SOAP zpráv byl zvolen formát [[Extensible Markup Language|XML]]. Tento formát byl vybrán pro svou rozšířenost a dostupnost vývojových nástrojů nabízených jako [[opensource]] nebo [[freeware]] (právě proto, že tyto lze používat volně). |
|||
⚫ | |||
⚫ | Zdlouhavá syntaxe [[Extensible Markup Language|XML]] má své výhody i nevýhody. Je jednoduše čitelná pro člověka, ale počítač ji musí složitě parsovat, a to stojí hodně [[Mikroprocesor|procesorového]] času a [[Operační paměť|operační paměti]] (oproti tomu [[CORBA]], [[GIOP]] nebo [[DCOM]] mají zápis zpráv pro komunikaci daleko kratší, [[binární]], který je ale pro člověka nečitelný). Na druhou stranu vývoj počítačů jde rychle dopředu, v důsledku čehož tato nevýhoda přestává být na obtíž. Pro úplnou bagatelizaci nejcitelnější nevýhody XML je namístě dodat, že již byla vytvořena [[Binární XML|binární forma XML]]. |
||
[[XML]] formát byl zvolen jako standard pro přenos SOAP zpráv pro jeho rozšířenost a dostupnost vývojových nástrojů jako [[opensource]]. Tedy volně k používání. |
|||
⚫ | Zdlouhavá syntaxe [[XML]] má své výhody i nevýhody. Je jednoduše čitelná pro člověka, ale počítač ji musí složitě parsovat a |
||
== Slabé stránky == |
== Slabé stránky == |
||
Velký zápis komunikace. |
Velký zápis komunikace. |
||
Složitost. |
|||
Pomalé zpracování jednotlivými systémy (složité na parsovaní a validaci). |
|||
== Ukázka == |
== Ukázka == |
||
⚫ | |||
⚫ | |||
<pre> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
<pre> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
||
Řádek 34: | Řádek 34: | ||
</soap:Envelope></pre> |
</soap:Envelope></pre> |
||
Zde je odpověď webové služby pro klienta |
Zde je odpověď webové služby pro klienta: |
||
<pre> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
<pre> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
||
Řádek 40: | Řádek 40: | ||
<getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> |
<getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> |
||
<getProductDetailsResult> |
<getProductDetailsResult> |
||
<productName>Čokoláda sada 3 chutí</productName> |
<productName>Čokoláda, sada 3 chutí</productName> |
||
<productID>827635</productID> |
<productID>827635</productID> |
||
< |
<description>Čokoláda hořká, bílá a smetanová</description> |
||
< |
<price>98,50</price> |
||
< |
<inStock>ano</inStock> |
||
</getProductDetailsResult> |
</getProductDetailsResult> |
||
</getProductDetailsResponse> |
</getProductDetailsResponse> |
||
Řádek 50: | Řádek 50: | ||
</soap:Envelope></pre> |
</soap:Envelope></pre> |
||
== Odkazy == |
|||
=== Externí odkazy === |
|||
==Zdroje== |
|||
*[ |
* [https://www.w3schools.com/xml/xml_soap.asp W3Schools SOAP Tutorial] (pozn: Ne zcela aktuální) |
||
*[http://www.w3.org/TR/soap12-part0/ W3C SOAP: Základy] |
* [http://www.w3.org/TR/soap12-part0/ W3C SOAP: Základy] |
||
*[http://www.w3.org/TR/soap12-part1/ W3C SOAP: Stavba zpráv] |
* [http://www.w3.org/TR/soap12-part1/ W3C SOAP: Stavba zpráv] |
||
*[http://www.w3.org/TR/soap12-part2/ W3C SOAP: Dodatky] |
* [http://www.w3.org/TR/soap12-part2/ W3C SOAP: Dodatky] |
||
{{Autoritní data}} |
|||
{{Portály|Internet}} |
|||
[[Kategorie:Internet]] |
|||
[[bn:সিম্পেল অবজেক্ট এক্সেস প্রোটকল]] |
|||
[[Kategorie:Anglické zkratky]] |
|||
[[ca:SOAP]] |
|||
[[da:SOAP]] |
|||
[[de:SOAP]] |
|||
[[en:SOAP]] |
|||
[[eo:SOAP]] |
|||
[[es:SOAP]] |
|||
[[eu:SOAP]] |
|||
[[fa:پروتکل دسترسی آسان به اشیاء]] |
|||
[[fi:SOAP]] |
|||
[[fr:Simple Object Access Protocol]] |
|||
[[gl:Simple Object Access Protocol]] |
|||
[[he:SOAP]] |
|||
[[hu:SOAP]] |
|||
[[id:SOAP]] |
|||
[[it:SOAP]] |
|||
[[ja:Simple Object Access Protocol]] |
|||
[[nl:Simple Object Access Protocol]] |
|||
[[pl:Simple Object Access Protocol]] |
|||
[[pt:SOAP]] |
|||
[[ru:SOAP]] |
|||
[[sv:SOAP]] |
|||
[[uk:SOAP]] |
|||
[[zh:SOAP]] |
Aktuální verze z 7. 7. 2023, 21:04
SOAP (původně Simple Object Access Protocol) je protokolem pro výměnu zpráv založených na XML přes síť, hlavně pomocí HTTP.
Formát SOAP tvoří základní vrstvu komunikace mezi webovými službami a poskytuje prostředí pro tvorbu složitější komunikace.
Existuje několik různých druhů šablon pro komunikaci na protokolu SOAP. Nejznámější z nich je RPC šablona, kde jeden z účastníků komunikace je klient a na druhé straně je server. Server ihned odpovídá na požadavky klienta.
SOAP je nástupce XML-RPC, ačkoliv si zapůjčuje jeho způsob přenosu dat a další vlastnosti. Obálka, hlavička a tělo komunikace je ale pravděpodobně z WDDX.
Původně ho navrhl Dave Winer, Don Box, Bob Atkinson a Mohsen Al-Ghosein v roce 1998 za podpory firmy Microsoft (kde tou dobou Atkinson a Al-Ghosein pracovali). Dnes je SOAP specifikace držena XML skupinou tvořící internetové protokoly z W3C konsorcia.
Formy přenosu
[editovat | editovat zdroj]Jako aplikační vrstva pro protokol SOAP lze použít protokol HTTP i SMTP (ale HTTP dosáhl daleko většího uplatnění; je to především proto, že HTTP je prakticky základ dnešní internetové infrastruktury). Díky tomu může SOAP jednoduše procházet přes firewall, což je jeho hlavní výhoda oproti jiným distribuovaným protokolům, jakým je např. DCOM, které jsou na firewallu většinou zakázány.
Jako standard pro přenos SOAP zpráv byl zvolen formát XML. Tento formát byl vybrán pro svou rozšířenost a dostupnost vývojových nástrojů nabízených jako opensource nebo freeware (právě proto, že tyto lze používat volně).
Zdlouhavá syntaxe XML má své výhody i nevýhody. Je jednoduše čitelná pro člověka, ale počítač ji musí složitě parsovat, a to stojí hodně procesorového času a operační paměti (oproti tomu CORBA, GIOP nebo DCOM mají zápis zpráv pro komunikaci daleko kratší, binární, který je ale pro člověka nečitelný). Na druhou stranu vývoj počítačů jde rychle dopředu, v důsledku čehož tato nevýhoda přestává být na obtíž. Pro úplnou bagatelizaci nejcitelnější nevýhody XML je namístě dodat, že již byla vytvořena binární forma XML.
Slabé stránky
[editovat | editovat zdroj]Velký zápis komunikace. Složitost. Pomalé zpracování jednotlivými systémy (složité na parsovaní a validaci).
Ukázka
[editovat | editovat zdroj]Zde je příklad, jak může vypadat zpráva od klienta, který se ptá na informace o produktu ze skladu pomocí webové služby. Klient se dožaduje informací o produktu označeném 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>
Zde je odpověď webové služby pro 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> <description>Čokoláda hořká, bílá a smetanová</description> <price>98,50</price> <inStock>ano</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
Odkazy
[editovat | editovat zdroj]Externí odkazy
[editovat | editovat zdroj]- W3Schools SOAP Tutorial (pozn: Ne zcela aktuální)
- W3C SOAP: Základy
- W3C SOAP: Stavba zpráv
- W3C SOAP: Dodatky