soap - simple object access protocol -

Post on 03-Jan-2016

42 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Pu ş ca ş Radu , 342 C5. SOAP - Simple Object Access Protocol -. Servicii Web. Ce sunt serviciile Web? Ce rol are un serviciu Web? Cum arat ă un serviciu Web?. Arhitecturi bazate pe servicii Web. Just-In-Time integration – integrarea dinamic ă a serviciilor, independent de platform ă - PowerPoint PPT Presentation

TRANSCRIPT

SOAP-Simple Object Access Protocol-

Puşcaş Radu , 342 C5

Servicii Web

Ce sunt serviciile Web?

Ce rol are un serviciu Web?

Cum arată un serviciu Web?

Arhitecturi bazate pe servicii Web

Just-In-Time integration – integrarea dinamică a serviciilor, independent de platformă

Implementarea arhitecturiiLipsurile stivei

SOAP

Simple Object Access ProtocolProtocol standard pentru impachetarea mesajelor

comunicate de aplicaţiiOferă un înveliş în care informaţia este

transportatăSe bazează pe XMLOferă un set de reguli pentru transformarea

datelor folosite de aplicaţii in XML-uri

Mesaje XML

Oferă o cale accesibilă aplicaţiilor pentru a comunica între ele

Independete de platformaTipuri de mesaje – RPC şi EDIDefinirea unui XML

- <phoneNumber>(123) 456-7890</phoneNumber>- <phoneNumber>

<areaCode>123</areaCode><exchange>456</exchange><number>7890</number>

</phoneNumber>- <phoneNumber area="123" exchange="456" number="7890" />- <phone area="123">

<exchange>456</exchange><number>7890</number>

</phone>

Mesaje SOAP

Conţinutul unui mesaj SOAP Header

Blocuri de informaţie Body

Datele de trimis

In header sunt incluse informaţii despre rutare, autentificare, conext, livrare

In body, poate intra orice sub formade XML

Exemplu de mesaj SOAP

<s:Envelope xmlns:s="http://www.w3.org/2001/06/soap-envelope"> <s:Header> <m:transaction xmlns:m="soap-transaction" s:mustUnderstand="true"> <transactionID>1234</transactionID> </m:transaction> </s:Header> <s:Body> <n:purchaseOrder xmlns:n="urn:OrderService"> <from> <person>Christopher Robin</person> <dept>Accounting</dept> </from> <to> <person>Pooh Bear</person> <dept>Honey</dept> </to> <order> <quantity>1</quantity> <item>Pooh Stick</item></order> </n:purchaseOrder> </s:Body></s:Envelope>

SOAP faults

Un tip de mesajInformaţia conţinută:

fault code fault string fault actor fault details

Standard faults: VersionMismatch MustUnderstand Server Client

SOAP fault - exemplu

<s:Envelope xmlns:s="...">

<s:Header>

<f:Misunderstood qname="abc:transaction"

xmlns:="soap-transactions" />

</s:Header>

<s:Body>

<s:Fault>

<faultcode>MustUnderstand</faultcode>

<faultstring>

Header(s) not understood

</faultstring>

<faultactor>http://acme.com</faultactor>

</s:Fault>

</s:Body>

</s:Envelope>

Căi şi actori

Un mesaj SOAP poate trece prin mai mulţi intermediari pană să ajungă la destinaţie

Standardul SOAP nu defineşte o metodă pentru definirea unei căi către destinaţia finală

Atributul “actor”

SOAP routing protocol

Implementat de MicrosoftDefineşte un standard pentru header-ele block

pentru specificarea informaţiilor despre rutare<s:Header>

<m:path xmlns:m="http://schemas.xmlsoap.org/rp/" s:mustUnderstand="true">

<m:action>http://www.im.org/chat</m:action>

<m:to>http://D.com/some/endpoint</m:to>

<m:fwd>

<m:via>http://B.com</m:via>

<m:via>http://C.com</m:via>

</m:fwd>

<m:rev><m:via/></m:rev>

<m:from>mailto:johndoe@acme.com</m:from>

</m:path>

</S:Header>

Tipuri

Sunt definite 3 moduri pentru definirea unui tip:

1. Folosirea xsi:type pentru fiecare nod<person><name xsi:type="xsd:string">John Doe</name></person>

2. Referirea unui XML Schema care defineşte un anumit tip

<person xmlns="personschema.xsd"><name>John Doe</name></person>

3. Referirea unui XML Schema care defineşte un element particular in interiorul lui

<person xmlns="urn:some_namespace"><name>John Doe</name> </person>

SOAP in HTTP

HTTP e cel mai folosit protocol pentru transmiterea de mesaje SOAP

SOAP oferă tratament special pentru HTMLSe foloseşte modelul Request – Respond

POST /StockQuote HTTP/1.1

Content-Type: text/xml

Content-Length: nnnn

SOAPAction: "urn:StockQuote#GetQuote"

<s:Envelope

xmlns:s="http://www.w3.org/2001/06/soap-envelope">

...

</s:Envelope>

Avantaje şi dezavantaje

AvantajeSOAP este capabil sa fie folosit de mai multe

protocoale de transportOferind suport pentru HTTP, poate trece usor prin

firewall-uri/proxy fară a fi nevoie de modificarea protocolului

Dezavantaje Datorită formatului XML poate fi lent in cazul mesajelor

mari Datorită folosirii HTTP pentru transport in loc de WS-

Addressing sau ESB, rolurile sunt fixate in cadru comunicării

top related