Přeskočit na obsah

SOAP: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Sioux7 (diskuse | příspěvky)
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í [[Hyper Text Transfer Protocol|HTTP]].
'''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]], a zapůjčuje si jeho způsob přenosu dat a další vlastnosti. Obálka, hlavička a tělo komunikace je ale pravděpodobně z [[WDDX]].
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ě).
[[Hyper Text Transfer Protocol|HTTP]] i [[Simple Mail Transfer Protocol|SMTP]] se dají použít jako aplikační vrstva pro protokol SOAP. Ale [[Hyper Text Transfer Protocol|HTTP]] dosáhl daleko většího použití. Je to především proto, že [[Hyper Text Transfer Protocol|HTTP]] je prakticky základ pro dnešní [[Internet|Internetovou infrastrukturu]]. Díky tomu může SOAP jednoduše procházet přes [[firewall]]. To je hlavní výhoda oproti jiným distribuovaným protokolům, jako je například [[DCOM]], které jsou většinou na firewallu zakázány.


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 stojí to hodně [[procesor|procesorového]] času a [[operační paměť|operační paměti]]. Oproti tomu [[CORBA]], [[GIOP]] nebo [[DCOM]] zápis zpráv pro komunikaci daleko kratší a [[binární]], tedy pro člověka nečitelný. Na druhou stranu vývoj počítaču jde rychle dopředu a přestává to být na obtíž. Byla již vytvořena i [[binární XML|binární forma XML]].


== 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 ==
Zde je příklad, jak může vypadat zpráva od klienta, který se ptá na informace o produktu ze skladu pomocí [[webová služba|webové služby]]. Klient se dožaduje informací o produktu označeném ID 827635:

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:


<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>
<popis>Čokoláda hořka, bílá a smetanová</popis>
<description>Čokoláda hořká, bílá a smetanová</description>
<cena>98,50</cena>
<price>98,50</price>
<naSkladu>ano</naSkladu>
<inStock>ano</inStock>
</getProductDetailsResult>
</getProductDetailsResult>
</getProductDetailsResponse>
</getProductDetailsResponse>
Řádek 50: Řádek 50:
</soap:Envelope></pre>
</soap:Envelope></pre>


== Odkazy ==


=== Externí odkazy ===
==Zdroje==
*[http://www.w3schools.com/soap/ W3Schools SOAP Tutorial] (Pozn: Není to zcela aktuální)
* [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}}


[[Kategorie:Internet]]
{{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

Na tento článek je přesměrováno heslo Simple Object Access Protocol. Tento článek pojednává o aplikačním protokolu pro přenos serializovaných objektů pomocí XML, na různých síťových protokolech. Možná hledáte: SOA, Service Oriented Architecture, (česky architektura orientovaná na služby), ať už XML-SOAP, HTTP-REST nebo obecně jakýchkoli webových služeb.

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).

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>

Externí odkazy

[editovat | editovat zdroj]