140 likes | 250 Views
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 ă
E N D
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ă • Implementarea arhitecturii • Lipsurile stivei
SOAP • Simple Object Access Protocol • Protocol standard pentru impachetarea mesajelor comunicate de aplicaţii • Oferă un învelişîn care informaţia este transportată • Se bazează pe XML • Oferă 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 platforma • Tipuri de mesaje – RPC şi EDI • Definirea 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 forma de 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 mesaj Informaţ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 Microsoft Defineş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 HTML Se 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 Avantaje SOAP este capabil sa fie folosit de mai multe protocoale de transport Oferind 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