SOAP alapismeretek A SOAP egyszer XML alap protokoll

  • Slides: 25
Download presentation
SOAP alapismeretek A SOAP egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások

SOAP alapismeretek A SOAP egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások információt cseréljenek a HTTP-én keresztül. Forrás: http: //www. w 3 schools. com/soap/ SOAP_

SOAP alapismeretek Mi is a SOAP valójában? – A SOAP a Simple Object Access

SOAP alapismeretek Mi is a SOAP valójában? – A SOAP a Simple Object Access Protocol rövidítése. – A SOAP egy kommunikációs protokoll. – A SOAP az alkalmazások közötti kommunikációra való. – A SOAP az üzenetek küldésének formátuma. – A SOAP-ot az Internet segítségével való kommunikációra tervezték. – A SOAP platform független. – A SOAP nyelv független. – A SOAP az XML-en alapul. – A SOAP egyszerű és bővíthető. – A SOAP lehetővé teszi a tűzfalakon (firewall) való közlekedést. – A SOAP-ot W 3 C szabványként fejlesztik. SOAP_

SOAP alapismeretek A SOAP szintaxisa A SOAP építőkövei • A SOAP üzenet egy olyan

SOAP alapismeretek A SOAP szintaxisa A SOAP építőkövei • A SOAP üzenet egy olyan közönséges XML dokumentum, amely a következő elemeket tartalmazza: • a kötelező Envelope (boríték) elem, amely az XML dokumentumot SOAP üzenetként azonosítja, • az opcionális Header (fej) elem, amely a header információkat tartalmazza, • az előírásos Body (törzs) elem, amely a hívási és válasz információkat tartalmazza, • az opcionális Fault (hiba) elem, amely az üzenet feldolgozása során előfordult hibákról nyújt információkat. A fenti elemek mindegyikét a SOAP boríték esetén a http: //www. w 3. org/2001/12/soap-envelope alapértelmezett (default) névtérben deklarálták, a SOAP kódolás és adattípusok default névtere pedig http: //www. w 3. org/2001/12/soap-encoding. SOAP_

SOAP alapismeretek Szintaktikai szabályok • • • a SOAP üzenetet az XML felhasználásával kell

SOAP alapismeretek Szintaktikai szabályok • • • a SOAP üzenetet az XML felhasználásával kell kódolni, a SOAP üzenetnek a SOAP Envelope névteret kell használnia, a SOAP üzenetnek a SOAP Encoding névteret kell használnia, a SOAP üzenetnek tilos DTD hivatkozást tartalmaznia, a SOAP üzenetnek tilos XML feldolgozási utasításokat (processing instructions) tartalmaznia. SOAP_

SOAP alapismeretek A SOAP üzenet váza <? xml version="1. 0"? > <soap: Envelope xmlns:

SOAP alapismeretek A SOAP üzenet váza <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> <soap: Header> . . . </soap: Header> <soap: Body> . . . SOAP_

SOAP alapismeretek . . . <soap: Fault> . . . </soap: Fault> </soap: Body>

SOAP alapismeretek . . . <soap: Fault> . . . </soap: Fault> </soap: Body> </soap: Envelope> SOAP_

SOAP alapismeretek A kötelező SOAP Envelope elem a SOAP üzenet gyökér eleme. Ez az

SOAP alapismeretek A kötelező SOAP Envelope elem a SOAP üzenet gyökér eleme. Ez az elem az XML dokumentumot SOAP üzenetként definíálja. <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soapenvelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> . . . Message information goes here . . . </soap: Envelope> SOAP_

SOAP alapismeretek A SOAP üzenetnek mindig kell lennie egy a http: //www. w 3.

SOAP alapismeretek A SOAP üzenetnek mindig kell lennie egy a http: //www. w 3. org/2001/12/soapenvelope névtérrel társított Envelope elemének. A SOAP encoding. Style attribútumot a dokumentumban használt adattípusok definíálására használjuk. Ez az attribútum bármely SOAP elemen megjelenhet, és ez ennek az elemnek és gyerek elemeinek tartalmára fog vonatkozni. A SOAP elemnek nincs default kódolása. Szintaxisa soap: encoding. Style="URI" SOAP_

SOAP alapismeretek Példa: <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w

SOAP alapismeretek Példa: <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding">. . . Message information goes here. . . </soap: Envelope> SOAP_

SOAP alapismeretek Az opcionális Header elem a SOAP üzenet alkalmazás specifikus információit tartalmazza, mint

SOAP alapismeretek Az opcionális Header elem a SOAP üzenet alkalmazás specifikus információit tartalmazza, mint pl. a hitelesítés, fizetési mód, stb. <? xml version="1. 0"? > <soap: Envelopexmlns: soap="http: //www. w 3. org/2001/12/soapenvelope"soap: encoding. Style="http: //www. w 3. org/2001/12/ soap-encoding"> <soap: Header> <m: Transxmlns: m="http: //www. w 3 schools. com/transaction/"so ap: must. Understand="1">234 </m: Trans> </soap: Header>. . . </soap: Envelope> SOAP_

SOAP alapismeretek A SOAP üzenet a küldőtől a fogadóig az üzenet útvonalán különböző végpontokat

SOAP alapismeretek A SOAP üzenet a küldőtől a fogadóig az üzenet útvonalán különböző végpontokat érintve haladhat. A SOAP üzenet nem minden részét szánjuk a SOAP üzenet utolsó végpontjának, hanem csak az üzenet útvonal egy vagy több végpontjának. A SOAP actor attribútumát a Header elem egy bizonyos végponthoz való címzéséhez használhatjuk. Szintaxisa soap: actor="URI" SOAP_

SOAP alapismeretek Példa <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w

SOAP alapismeretek Példa <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> <soap: Header> <m: Trans xmlns: m="http: //www. w 3 schools. com/transaction/" soap: actor="http: //www. w 3 schools. com/appml/">234 </m: Trans> </soap: Header>. . . </soap: Envelope> SOAP_

SOAP alapismeretek A SOAP must. Understand attribútumot annak jelzésére használhatjuk, hogy vajon a header

SOAP alapismeretek A SOAP must. Understand attribútumot annak jelzésére használhatjuk, hogy vajon a header bejegyzést a fogadónak fel kell-e dolgoznia vagy sem. Szintaxisa soap: must. Understand="0|1" SOAP_

SOAP alapismeretek Példa <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w

SOAP alapismeretek Példa <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> <soap: Header> <m: Trans xmlns: m="http: //www. w 3 schools. com/transaction/" soap: must. Understand="1">234 </m: Trans> </soap: Header>. . . </soap: Envelope> SOAP_

SOAP alapismeretek A kötelező SOAP Body elem tartalmazza a tényleges SOAP üzenetet, melyet az

SOAP alapismeretek A kötelező SOAP Body elem tartalmazza a tényleges SOAP üzenetet, melyet az üzenet legutolsó végpontjának szántunk. <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> <soap: Body> <m: Get. Price xmlns: m="http: //www. w 3 schools. com/prices"> <m: Item>Apples</m: Item> </m: Get. Price> </soap: Body> </soap: Envelope> SOAP_

SOAP alapismeretek Egy lehetséges válasz: <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http:

SOAP alapismeretek Egy lehetséges válasz: <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> <soap: Body> <m: Get. Price. Response xmlns: m="http: //www. w 3 schools. com/prices"> <m: Price>1. 90</m: Price> </m: Get. Price. Response> </soap: Body> </soap: Envelope> SOAP_

SOAP alapismeretek Az opcionális SOAP Fault elemet a SOAP üzenet hiba és státusz információinak

SOAP alapismeretek Az opcionális SOAP Fault elemet a SOAP üzenet hiba és státusz információinak tárolására használjuk. A SOAP Fault elemnek a következő alelemei vannak: • • <faultcode> : a hiba azonosítására szolgáló kód, <faultstring> : a hiba ember által olvasható magyarázata, <faultactor> : információ arról, hogy ki okozta a hibát, <detail> : a Body elemhez kapcsolódó alkalmazás specifikus hiba információt tartalmaz. SOAP Fault kódok: Version. Mismatch, Must. Understand, Client, Server SOAP_

SOAP alapismeretek SOAP HTTP kötés (binding) HTTP kérés: POST /item HTTP/1. 1 Host: 189.

SOAP alapismeretek SOAP HTTP kötés (binding) HTTP kérés: POST /item HTTP/1. 1 Host: 189. 123. 345. 239 Content-Type: text/plain Content-Length: 200 HTTP válaszok: 200 OK Content-Type: text/plain Content-Length: 200 400 Bad Request Content-Length: 0 SOAP_

SOAP alapismeretek SOAP HTTP kötés (binding) A SOAP metódus egy HTTP kérés/válasz, amely megfelel

SOAP alapismeretek SOAP HTTP kötés (binding) A SOAP metódus egy HTTP kérés/válasz, amely megfelel a SOAP kódolási szabályainak. HTTP + XML = SOAP A SOAP kérés lehet egy HTTP POST vagy egy HTTP GET kérés. A HTTP POST kérés legalább két HTTP fejet specifikál: Content-Type és Content. Length (tartalom típus és tartalom hosszúság). A Content-Type fej egy SOAP kérés és válasz esetén meghatározza az üzenet MIME típusát és a kérés vagy válasz XML törzsében használt karakter kódolást. Szintaxisa: Content-Type: MIMEType; charset=character-encoding Példa: POST /item HTTP/1. 1 Content-Type: application/soap+xml; charset=utf-8 SOAP_

SOAP alapismeretek Egy SOAP kérés és válasz Content-Length feje a kérés vagy válasz törzsében

SOAP alapismeretek Egy SOAP kérés és válasz Content-Length feje a kérés vagy válasz törzsében lévő bájtok számát adja meg. Szintaxisa: Content-Length: bytes POST /item HTTP/1. 1 Content-Type: application/soap+xml; charset=utf-8 Content-Length: 250 SOAP_

SOAP alapismeretek Egy SOAP példa A következő példában egy Get. Stock. Price kérést küldünk

SOAP alapismeretek Egy SOAP példa A következő példában egy Get. Stock. Price kérést küldünk a szervernek. A kérésnek van egy Stock. Name paramétere, és válaszként egy Price paraméter lesz visszaküldve. A függvény névtere a http: //www. stock. org/stock címen van defíniálva. A SOAP kérés a következő: POST /In. Stock HTTP/1. 1 Host: www. stock. org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn SOAP_

SOAP alapismeretek <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3.

SOAP alapismeretek <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> <soap: Body xmlns: m="http: //www. stock. org/stock"> <m: Get. Stock. Price> <m: Stock. Name>IBM</m: Stock. Name> </m: Get. Stock. Price> </soap: Body> </soap: Envelope> SOAP_

SOAP alapismeretek A SOAP válasz pedig: HTTP/1. 1 200 OK Content-Type: application/soap; charset=utf-8 Content-Length:

SOAP alapismeretek A SOAP válasz pedig: HTTP/1. 1 200 OK Content-Type: application/soap; charset=utf-8 Content-Length: nnn <? xml version="1. 0"? > <soap: Envelope xmlns: soap="http: //www. w 3. org/2001/12/soap-envelope" soap: encoding. Style="http: //www. w 3. org/2001/12/soapencoding"> SOAP_

SOAP alapismeretek <soap: Body xmlns: m="http: //www. stock. org/stock"> <m: Get. Stock. Price. Response>

SOAP alapismeretek <soap: Body xmlns: m="http: //www. stock. org/stock"> <m: Get. Stock. Price. Response> <m: Price>34. 5</m: Price> </m: Get. Stock. Price. Response> </soap: Body> </soap: Envelope> SOAP_

SOAP alapismeretek Kiegészítő technológiák: WS Addressing SOAP Attachments: SOAP Message Transmission Optimization Mechanism (MTOM)

SOAP alapismeretek Kiegészítő technológiák: WS Addressing SOAP Attachments: SOAP Message Transmission Optimization Mechanism (MTOM) XML- binary Optimized Packaging (XOP) SOAP_