Web Services Introduction Jan Odstril Pehled Web services
Web Services Introduction Jan Odstrčil
Přehled • • Web services - technologie WSDL, SOAP, UDDI Advanced Web services – aplikace a použití Platformy pro Web services WS-I – úvodní představení WS-I Basic Profile 1. 1 Otázky a odpovědi
Web services - technologie • Nezávislá na platformě, jazyce, hardware • Samopopisující, loosely coupled • Založená na standardech Internetu a XML • WSDL – jazyk pro popis Web services založený na XML – XSD – datové typy popsány v XML Schema • SOAP – protokol pro výměnu zpráv založených na XML – HTTP typicky využíváno jako transportní vrstva • UDDI – platformově nezávislá service registry – založené na XML
Web services - technologie
WSDL • Web Services Description Language • otevřený standard podporovaný W 3 C • popis služby a její komunikace v XML • využívá XML Schema pro popis typů
WSDL • Definitions – hlavní tag uzavírající dokument • Types – sekce pro definici datových typů – obsahuje komplexní typy jako XML Schema • Message – definice zprávý – jak příchozí tak odchozí – Definuje parametry a návratové hodnoty
WSDL • Operation – Definuje operaci (metodu) služby – Obsahuje obvykle input a output message • Port. Type – definuje rozhraní Web service deklarativně – obsahuje operace – Nehovoří o určité instanci, nelze se připojit
WSDL • Binding – definuje způsob jak se budou posílat zprávy – Konkrétní protokol a datový formát (document/literal, rcp/encoded) • Port – endpoint – adresa a binding • Service – skupina souvisejících endpointu
WSDL • • <? xml version="1. 0"? > <definitions name="Stock. Quote" • • • target. Namespace="http: //example. com/stockquote. wsdl" xmlns: tns="http: //example. com/stockquote. wsdl" xmlns: xsd 1="http: //example. com/stockquote. xsd" xmlns: soap="http: //schemas. xmlsoap. org/wsdl/soap/" xmlns="http: //schemas. xmlsoap. org/wsdl/"> • • • <types> <schema target. Namespace="http: //example. com/stockquote. xsd" xmlns="http: //www. w 3. org/2000/10/XMLSchema"> <element name="Trade. Price. Request"> <complex. Type> <all> <element name="ticker. Symbol" type="string"/> </all> </complex. Type> </element> <element name="Trade. Price"> <complex. Type>
WSDL • <message name="Get. Last. Trade. Price. Input"> • <part name="body" element="xsd 1: Trade. Price. Request"/> • </message> • <message name="Get. Last. Trade. Price. Output"> • <part name="body" element="xsd 1: Trade. Price"/> • </message> • • • <port. Type name="Stock. Quote. Port. Type"> <operation name="Get. Last. Trade. Price"> <input message="tns: Get. Last. Trade. Price. Input"/> <output message="tns: Get. Last. Trade. Price. Output"/> </operation> </port. Type>
WSDL <binding name="Stock. Quote. Soap. Binding" type="tns: Stock. Quote. Port. Type"> • <soap: binding style="document" transport="http: //schemas. xmlsoap. org/soap/http"/> • <operation name="Get. Last. Trade. Price"> • <soap: operation soap. Action="http: //example. com/Get. Last. Trade. Price"/> • <input> • <soap: body use="literal"/> • </input> • <output> • <soap: body use="literal"/> • </output> • </operation> • </binding> • • • <service name="Stock. Quote. Service"> <documentation>My first service</documentation> <port name="Stock. Quote. Port" binding="tns: Stock. Quote. Binding"> <soap: address location="http: //example. com/stockquote"/> </port> </service> • </definitions>
WSDL • Documentation – wsdl je samo-dokumentované • Import - dokumenty je možné importovat – vhodné pro oddělení statické definice datových typů a portu od instance – Instance obsahuje binding, service a import <wsdl: definitions name="nmtoken"? target. Namespace="uri"? > <import namespace=„http: //my. S. org" location=„ http: //my. S. org/wsdl/Stock. Type. wsdl"/> <wsdl: documentation>…text… </wsdl: documentation>
SOAP • Simple Object Access Protocol • Protokol pro výměnu zpráv založených na XML • HTTP typicky využíváno jako transportní vrstva • SMTP také vhodný pro transport SOAP
SOAP • Různé druhy kódování zpráv – RPC / Encoded – Document / Literal – Wrapped / Literal • Definováno v binding sekci WSDL
SOAP rpc/encoded • public void my. Method(int x, float y); • • • <message name="my. Method. Request"> <part name="x" type="xsd: int"/> <part name="y" type="xsd: float"/> </message> <message name="empty"/> • • • <port. Type name="PT"> <operation name="my. Method"> <input message="my. Method. Request"/> <output message="empty"/> </operation> </port. Type>
SOAP rpc/encoded • • <soap: envelope> <soap: body> <my. Method> <x xsi: type="xsd: int">5</x> <y xsi: type="xsd: float">5. 0</y> </my. Method> </soap: body> </soap: envelope> • • Jednoduchý zápis ve wsdl Jméno operace je v message – rychlé předání implementaci Type encoding info (xsi: type="xsd: int") zabírá moc místa Není ve shodě s WS-I
SOAP wrapped/literal • • <soap: envelope> <soap: body> <my. Method> <x>5</x> <y>5. 0</y> </my. Method> </soap: body> </soap: envelope> • • Složitý zápis ve wsdl Jméno operace je v message – rychlé předání implementaci Type encoding info (xsi: type="xsd: int") zabírá moc místa Je ve shodě s WS-I
UDDI • Universal Description, Discovery and Integration – otevřený standard podporovaný OASIS – umožňuje publikaci, vyhledávání, kategorizaci – v počátcích globální UDDI registry (MS, IBM, SAP) • 3 základní komponenty – White Pages — adresy, kontakty – Yellow Pages — kategorizace podle standardních taxonomii; – Green Pages — technické informace o services zveřejněných společnostmi
UDDI • business. Entity – informace o straně publikující service • business. Service – popisné informace o určité skupině technických services • binding. Template – technické informace endpointu služby a implementační specifikaci • t. Model – popis specifikaci pro služby, základ pro technícký popis
UDDI
UDDI • • • • • <t. Model authorized. Name=". . . " operator=". . . " t. Model. Key=". . . "> <name>Stock. Quote Service</name> <description xml: lang="en"> WSDL description of a standard stock quote service interface </description> <overview. Doc> <description xml: lang="en">WSDL source document. </description> <overview. URL> http: //stockquote-definitions/stq. wsdl </overview. URL> </overview. Doc> <category. Bag> <keyed. Reference t. Model. Key="uuid: C 1 ACF 26 D-9672 -4404 -9 D 70 -39 B 756 E 62 AB 4" key. Name="uddi-org: types" key. Value="wsdl. Spec"/> </category. Bag> </t. Model>
Advenced Web services • WS - Reliable Messaging – jednoduché posílání, spolehlivé • WS - Attachment – posílání velkých dokumentů / binárních • WS – Security – rozšíření SOAP message o security – chrání pomocí integrity zprávy – message authentication
Web services – aplikace a použití • Více než informace o počasí • Aplikace dostupné jako služba „masám“ – Google Search API, e. Bay – Sales. Force (CRM, lze rozšířit, integrovat) – Mobile Portal Content • Integrační scénáře – banka koupí banku – jedna divize s druhou • Intereoperabilita vítězí nad „efektivitou“
Web services – aplikace a použití
Platformy pro Web services
Platformy pro Web services • • Microsoft. Net Apache Axis Sun J 2 EE, JAX-WS JAX-B Systinet Server for Java / C++ web. Methods Glue IONA Artix IBM
WS-I – úvodní představení • Web Services Interoperability Organization • Otevřená organizace zaměřená na podporu interopertabilty Web services – různé platformy, jazyky, operační systémy • Přibližně 130 členů: BEA, IBM, Accenture, CA, Daimler. Chrysler, DISA, HP, Microsoft, Nokia, OMG, SAP, Sun, web. Methods
WS-I – doporuční, profiles, tools • Samotná specifikace obvykle nestačí – nepřesná, konflikt s jinou specifikací / verzí • Poskytuje doporučení, návody a nástroje – profile – sada specifikací určité verze, říká jak je používat dohromady – demo aplikace – demonstruje interoperabilitu profilu – testovací nástroje – testují shodu implementace s profilem
WS-I – rozšířené služby • Pro členy poskytuje další služby • Organizuje interoperability setkání – několikadenní setkání na určité téma – snaha o živé ověření interoperability a případné testování • Publikuje výsledky o interop setkáních • Organizuje poskytování testovacích Web service pro pravidelné testy
WS-I – existující profily • • XML Schema Work Plan Basic Profile 1. 1 Attachment Profile 1. 0 Basic Security Profile 1. 1
WS-I Basic Profile 1. 1 • Sada Web services specifikací rozšířená o – vyjasnění, upřesnění, rozvedení, interpretace • Zaměřuje se na: – Zprávy (SOAP) – Popis služeb (WSDL, XSD) – Publikace a vyhledávání služeb (UDDI) – Zabezpečení (HTTPS)
WS-I Basic Profile 1. 1 • Conformance requrements – požadavané kritérium které je třeba splnit – MUST, SHOULD, MAY • Conformance Targets – Indikuje na co je Conformance requrements aplikován – SOAP message – WSDL document – UDDI t. Model
WS-I Basic Profile 1. 1 • Conformance requrements – požadavané kritérium které je třeba splnit – MUST, SHOULD, MAY • Conformance Targets – Indikuje na co je Conformance requrements aplikován – SOAP message – WSDL document – UDDI t. Model
BP 1. 1 Test Assertions • Dokument obsahuje sadu testovacích assertion • Assertion je ve stavu OK nebo FAILED • Testovací tool implementuje požadované assertions a generuje reporty o stavu
WSDL Assertions - ukázka • BP 2700 – The wsdl: definitions is a well-formed XML 1. 0 document • BP 2202 – The XML declaration statement uses UTF-8 or UTF-16 for the encoding. • BP 2098 – The "location" attribute is specified for the wsdl: import element, and has a non-empty value. • BP 2104 – The target. Namespace attribute on the wsdl: definitions element for the imported WSDL description has the same value as the namespace attribute on the wsdl: import element that imported the WSDL description.
UDDI a SOAP Assertions • BP 3002 – The uddi: binding. Template element contains a uddi: access. Point element, with a non-empty value. • BP 1004 – The request message is a POST message, without any use of framework extension.
Otázky a odpovědi
- Slides: 38