25
SOAP_1 SOAP alapismeretek A SOAP egy 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.w3schools.com/soap/

SOAP alapismeretek

  • Upload
    brant

  • View
    69

  • Download
    0

Embed Size (px)

DESCRIPTION

A SOAP egy 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.w3schools.com/soap/. SOAP alapismeretek. Mi is a SOAP valójában? A SOAP a Simple Object Access Protocol rövidítése. - PowerPoint PPT Presentation

Citation preview

Page 1: SOAP alapismeretek

SOAP_1

SOAP alapismeretek

A SOAP egy 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.w3schools.com/soap/

Page 2: SOAP alapismeretek

SOAP_2

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 W3C szabványként fejlesztik.

Page 3: SOAP alapismeretek

SOAP_3

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.w3.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.w3.org/2001/12/soap-encoding .

Page 4: SOAP alapismeretek

SOAP_4

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.

Page 5: SOAP alapismeretek

SOAP_5

SOAP alapismeretek

A SOAP üzenet váza

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

...

...

</soap:Header>

<soap:Body>

...

Page 6: SOAP alapismeretek

SOAP_6

SOAP alapismeretek

...

<soap:Fault>

...

...

</soap:Fault>

</soap:Body>

</soap:Envelope>

Page 7: SOAP alapismeretek

SOAP_7

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.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

...

Message information goes here

...

</soap:Envelope>

Page 8: SOAP alapismeretek

SOAP_8

SOAP alapismeretek

A SOAP üzenetnek mindig kell lennie egy a http://www.w3.org/2001/12/soap-envelope névtérrel társított Envelope elemének.

A SOAP encodingStyle 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:encodingStyle="URI"

Page 9: SOAP alapismeretek

SOAP_9

SOAP alapismeretek

Példa:

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

...

Message information goes here

...

</soap:Envelope>

Page 10: SOAP alapismeretek

SOAP_10

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.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

<m:Transxmlns:m="http://www.w3schools.com/transaction/"soap:mustUnderstand="1">234

</m:Trans>

</soap:Header>

...

</soap:Envelope>

Page 11: SOAP alapismeretek

SOAP_11

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"

Page 12: SOAP alapismeretek

SOAP_12

SOAP alapismeretek Példa

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

<m:Trans

xmlns:m="http://www.w3schools.com/transaction/"

soap:actor="http://www.w3schools.com/appml/">234

</m:Trans>

</soap:Header>

...

</soap:Envelope>

Page 13: SOAP alapismeretek

SOAP_13

SOAP alapismeretek

A SOAP mustUnderstand 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:mustUnderstand="0|1"

Page 14: SOAP alapismeretek

SOAP_14

SOAP alapismeretek

Példa

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

<m:Trans

xmlns:m="http://www.w3schools.com/transaction/"

soap:mustUnderstand="1">234

</m:Trans>

</soap:Header>...

</soap:Envelope>

Page 15: SOAP alapismeretek

SOAP_15

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.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body>

<m:GetPrice xmlns:m="http://www.w3schools.com/prices">

<m:Item>Apples</m:Item>

</m:GetPrice>

</soap:Body>

</soap:Envelope>

Page 16: SOAP alapismeretek

SOAP_16

SOAP alapismeretek

Egy lehetséges válasz:

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body>

<m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">

<m:Price>1.90</m:Price>

</m:GetPriceResponse>

</soap:Body>

</soap:Envelope>

Page 17: SOAP alapismeretek

SOAP_17

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: VersionMismatch, MustUnderstand, Client, Server

Page 18: SOAP alapismeretek

SOAP_18

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

Page 19: SOAP alapismeretek

SOAP_19

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

Page 20: SOAP alapismeretek

SOAP_20

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

Page 21: SOAP alapismeretek

SOAP_21

SOAP alapismeretek

Egy SOAP példa

A következő példában egy GetStockPrice kérést küldünk a szervernek. A kérésnek van egy StockName 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 /InStock HTTP/1.1

Host: www.stock.org

Content-Type: application/soap+xml; charset=utf-8

Content-Length: nnn

 

Page 22: SOAP alapismeretek

SOAP_22

SOAP alapismeretek

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.stock.org/stock">

<m:GetStockPrice>

<m:StockName>IBM</m:StockName>

</m:GetStockPrice>

</soap:Body>

</soap:Envelope>

Page 23: SOAP alapismeretek

SOAP_23

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.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

Page 24: SOAP alapismeretek

SOAP_24

SOAP alapismeretek

<soap:Body xmlns:m="http://www.stock.org/stock">

<m:GetStockPriceResponse>

<m:Price>34.5</m:Price>

</m:GetStockPriceResponse>

</soap:Body>

</soap:Envelope>

Page 25: SOAP alapismeretek

SOAP_25

SOAP alapismeretek

Kiegészítő technológiák:

WS Addressing

SOAP Attachments:

SOAP Message Transmission Optimization Mechanism (MTOM)

XML- binary Optimized Packaging (XOP)