380 likes | 567 Views
Web Services Introduction. Jan Odstrčil. Přehled. Web services - technologie WSDL, SOAP, UDDI Advanced Web services 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.
E N D
Web Services Introduction Jan Odstrčil
Přehled • Web services - technologie • WSDL, SOAP, UDDI • Advanced Web services • 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
WSDL • Web Services Description Language • otevřený standard podporovaný W3C • 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 • PortType • 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="StockQuote" • targetNamespace="http://example.com/stockquote.wsdl" • xmlns:tns="http://example.com/stockquote.wsdl" • xmlns:xsd1="http://example.com/stockquote.xsd" • xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" • xmlns="http://schemas.xmlsoap.org/wsdl/"> • <types> • <schema targetNamespace="http://example.com/stockquote.xsd" • xmlns="http://www.w3.org/2000/10/XMLSchema"> • <element name="TradePriceRequest"> • <complexType> • <all> • <element name="tickerSymbol" type="string"/> • </all> • </complexType> • </element> • <element name="TradePrice"> • <complexType>
WSDL • <message name="GetLastTradePriceInput"> • <part name="body" element="xsd1:TradePriceRequest"/> • </message> • <message name="GetLastTradePriceOutput"> • <part name="body" element="xsd1:TradePrice"/> • </message> • <portType name="StockQuotePortType"> • <operation name="GetLastTradePrice"> • <input message="tns:GetLastTradePriceInput"/> • <output message="tns:GetLastTradePriceOutput"/> • </operation> • </portType>
WSDL <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> • <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> • <operation name="GetLastTradePrice"> • <soap:operation soapAction="http://example.com/GetLastTradePrice"/> • <input> • <soap:body use="literal"/> • </input> • <output> • <soap:body use="literal"/> • </output> • </operation> • </binding> • <service name="StockQuoteService"> • <documentation>My first service</documentation> • <port name="StockQuotePort" binding="tns:StockQuoteBinding"> • <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"? targetNamespace="uri"?> <import namespace=„http://myS.org" location=„ http://myS.org/wsdl/StockType.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 myMethod(int x, float y); • <message name="myMethodRequest"> • <part name="x" type="xsd:int"/> • <part name="y" type="xsd:float"/> • </message> • <message name="empty"/> • <portType name="PT"> • <operation name="myMethod"> • <input message="myMethodRequest"/> • <output message="empty"/> • </operation> • </portType>
SOAP rpc/encoded • <soap:envelope> • <soap:body> • <myMethod> • <x xsi:type="xsd:int">5</x> • <y xsi:type="xsd:float">5.0</y> • </myMethod> • </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> • <myMethod> • <x>5</x> • <y>5.0</y> • </myMethod> • </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 — kategorizacepodle standardních taxonomii; • Green Pages — technické informaceoserviceszveřejněných společnostmi
UDDI • businessEntity • informace o straně publikující service • businessService • popisné informace o určité skupině technických services • bindingTemplate • technické informace endpointu služby a implementační specifikaci • tModel • popis specifikaci pro služby, základ pro technícký popis
UDDI • <tModel authorizedName="..." operator="..." tModelKey="..."> • <name>StockQuote Service</name> • <description xml:lang="en"> • WSDL description of a standard stock quote service interface • </description> • <overviewDoc> • <description xml:lang="en">WSDL source document. • </description> • <overviewURL> • http://stockquote-definitions/stq.wsdl • </overviewURL> • </overviewDoc> • <categoryBag> • <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" • keyName="uddi-org:types" • keyValue="wsdlSpec"/> • </categoryBag> • </tModel>
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, eBay • SalesForce (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“
Platformy pro Web services • Microsoft .Net • Apache Axis • Sun J2EE, JAX-WS JAX-B • Systinet Server for Java / C++ • webMethods 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, DaimlerChrysler, DISA, HP, Microsoft, Nokia, OMG, SAP, Sun, webMethods
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 tModel
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 tModel
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 • BP2700 • The wsdl:definitions is a well-formed XML 1.0 document • BP2202 • The XML declaration statement uses UTF-8 or UTF-16 for the encoding. • BP2098 • The "location" attribute is specified for the wsdl:import element, and has a non-empty value. • BP2104 • The targetNamespace 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 • BP3002 • The uddi:bindingTemplate element contains a uddi:accessPoint element, with a non-empty value. • BP1004 • The request message is a POST message, without any use of framework extension.