XML Web Services i praktiken
Arkitekturen bakom Web Services SOAP WSDL Testning av Web Services ACT GXA – ”Global XML Architecture” WS-Security WS-… WSDK Vad kommer vi att ta upp?
Arkitekturen bakom Web Services SOAP WSDL Testning av Web Services ACT GXA – ”Global XML Architecture” WS-Security WS-… WSDK Vad kommer vi att ta upp?
Vad är en ”Web Service”? En webbsite utan gränssnitt En metod för att definera gränssnitt ovanpå transportprotokollet Interoperabilitet med XML Stödjer fyra protokoll HTTP GET HTTP POST HTTP SOAP Importera som en DLL Synkron eller asynkron överföring Arkitekturen bakom Web Services
SOAP “Simple Object Access Protocol” XML+HTTP = SOAP … … Modulärt genom tillägg Status SOAP 1.1 är för närvarande “W3C Note” SOAP 1.2 är i “Working Draft” och innehåller uppdateringar
Modularitet - SOAP 520W 3MPH
Modularitet – WS-Routing 520W 3MPH soap://tickers-r-us.org/stocks uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6
Modularitet – WS-Security 520W 3MPH soap://tickers-r-us.org/stocks uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6 dWJzY3JpYmVyLVBlc…..eFw0wMTEwMTAwMD
En ”Web Service” i ASP.NET =.ASMX Anropar funktionerna Arkitekturen bakom Web Services ASMX XSD WSDL DISCO UDDI WSDL Beskriver ”Web Services” och underliggande data DISCO Publicerar ”Web Services” UDDI
Arkitekturen bakom Web Services [WebService(Namespace= " Deklarerar gränssnittet Indikerar att klassen defineras som en “Web Service” System.Web.Services.WebService Basklassen för alla Web Services i.NET [WebMethod()] Varje metod som ska exponeras Värden kan returneras i vilket format som helst Vid flera returvärden, använd SOAP Kan också innehålla beskrivning, meddelandenamn, transaktionsattribut m.m.
WSDL Web Services Description Language Abstrakta definitioner “Types” “Messages” “PortType” Konkreta beskrivningar “Binding” “Service” Kan delas upp i flera dokument
WSDL Types Messages PortTypes Bindings Services Operations Ports Använder Modifierar Innehåller Abstrakt Konkret
Arkitekturen bakom Web Services UDDI: “Universal Description, Discovery and Integration” Specifikation som bestäms vid utveckling för att hitta och publicera gränssnitt Definerar inte implementationen eller detaljer om protokollen Kompletteras av WSDL Drivs av
Arkitekturen bakom Web Services SOAP WSDL Testning av Web Services ACT GXA – ”Global XML Architecture” WS-Security WS-… WSDK Vad kommer vi att ta upp?
Testning av ”Web Services” Visual Studio.NET skapar en testsida för varje Web Service Tillgänglig från.ASMX Kan bara testa HTTP GET Kan vara startpunkten för både test av funktioner och prestanda Kan testa HTTP Post med exempelvis FrontPage
Testning av ”Web Services” Application Center Test Möjliggör automatisk exekvering av webblösningar Full version i Application Center Server Utvecklarversion i Visual Studio.NET Enterprise Architect Edition Producerar XML baserade resultat Kan jämföra resultat sida vid sida Samla in data med “Performance Counters” Whitepaper vstudio/techinfo/articles/developerproductivity/apptesting.asp
Arkitekturen bakom Web Services SOAP WSDL Testning av Web Services ACT GXA – ”Global XML Architecture” WS-Security WS-… WSDK Vad kommer vi att ta upp?
Web Services idag… Idag… är alla stora leverantörer ombord och satsar är standardiseringen är på gång har Web Services fått en bred acceptans för interoperabilitet finns “.NET Framework” och Visual Studio.NET finns servrar, klienter och tjänster Hur kommer det sig? 1:a skälet: Enkelheten 2:a skälet: Den breda acceptansen
…och imorgon: GXA GXA är… idag drivet till stor del av Microsoft, IBM, BEA och VeriSign ett ramverk ovanpå SOAP/WSDL tillägg till huvuden i SOAP-meddelanden generella specifikationer GXA är inte… en produkt! ett “bara Microsoft” påhitt utan möjlighet att påverka
Vilka aktörer är inblandade? W3C World Wide Web Consortium Specifikationer och rekommendationer (XML) OASIS Specifikationer och rekommendationer (XML) ECMA Specifikationer och rekommendationer (t.ex. C#) WS-I Web Services Interoperability Group Erbjuder riktlinjer och ”best practices”
21 Designmål med GXA Generellt Oberoende av applikationstyp Baserat på standards Interoperabiltitet mellan leverantörer är nyckeln WS-I.org Federerat Ingen central administration eller kontroll Ingen “Single Point Of Failure” Modulärt Ska fungera “ensamt” och “tillsammans”
GXA Transportprotokoll på Internet XML, SOAP, WSDL GXA Visual Studio.NET Metadata Meddelandehantering Säkerhet Transaktioner
Metadata i GXA Varför behövs något ytterligare? WSDL+XSD erbjuder bara bastyper för Web Services WSDL kan inte beskriva QOS, förmågor, säkerhetsinställningar, transaktionskrav osv. WS-Inspection + UDDI erbjuder en del av detta GXA hanterar allt som resurser (t.ex. datatyper, transportpunkter, meddelanden)
WS-Inspection Inspektera och få information om tillgängliga tjänster Bygger på WSDL och UDDI <inspection xmlns=" xmlns:wsiluddi=" Aktiekomponent <description referencedNamespace=" location=" 4FA F79
Transaktioner i GXA Distribuerade kontrakt med hjälp av transaktioner Korta transaktioner använder 2PC Vanligt i databaser och OLTP-lösningar Långa transaktioner använder en koordinerad kompensationsmodell Vanligt i EAI lösningar En nyckelfaktor är addering av transaktioner
WS-Coordination Coordinator ActivationRegistration Protokoll YProtokoll X … CreateCoordinationContextRegister För att kunna koordinera transaktioner och hantera distribuerat arbete Möjligt att gömma applikationsspecifika protokoll
Meddelandehantering i GXA HTTP är bara ett av många transportsätt Hur hanteras en överföring på 5 timmar? 2-vägs kommunikation är också komplext! Tillförlitlig överföring är allmänt svårt Osorterad överföring på grund av olika transportvägar
WS-Referral För att konfigurera SOAP ”routrar” att skapa en meddelandeväg for…if…go… soap://b.org soap://c.org
WS-Routing Används för att beskriva färdväg och alternativ returväg för meddelanden Sändare A Mottagare D Mellanhand B Mellanhand C soap://D.com/some/endpoint soap://B.com soap://C.com soap://A.com/some/endpoint uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6
WS-Routing Den “slutgliga destinationen” är inte alltid den enda aktörern Brandväggar används flitigt Att ange tillbaka-väg “Reverse Path” underlättar trafiken I kombination med WS-Referral defineras en rik mekanism Meddelande kan routas beroende på egenskaper Eliminerar flaskhalsar och begränsningar i DNS med URL’s Möjlliggör dynamisk routing och genvägar
Säkerhet i GXA SSL över HTTP kan vara en flaskhals Bunden till simpla autentiseringsmodeller Ärver det som är dåligt från klassiska webb-applikationer Säkerhet på transport-protokolls-nivå bryts ofta ner på “multi-hop”/”store-and-forward” ACL-baserad modell kan vara komplext att skala på Internet
Säkerhet i GXA “Policy” “Claims” “Token” GXA säkrar meddelande oberoende av transportsätt “Utsagor” (Claims) representerar rättigheter, privilegier, identiteter m.m. Tjänster använder “policies” för att kräva “utsagor” “Tokens” bevisar en eller flera utsagor
WS-Security En specifikation för säkra XML Web Services Tar över… SOAP-SEC Microsoft’s WS-Security, WS-License “IBM’s security token and encryption “ Utnyttjar bland annat XML DIGSIG XML Encryption XML Schema SOAP
WS-Security Utvecklas vidare mot… WS-Trust WS-Privacy WS-Authorization WS-SecureConversion WS-Federation WS-Policy Specifikationer
WSDK Web Services Development Kit Första versionen innehåller… WS-Routing WS-Security DIME (”Direct Internet Message Encapsulation”) Lägger till funktionalitet till Visual Studio.NET SoapContext.Referrals SoapContext.Security SoapContext.Path SoapContext.Attachments
Vad har vi talat om? Arkitekturen bakom Web Services SOAP WSDL Testning av Web Services ACT GXA – ”Global XML Architecture” WS-Security WS-… WSDK
För mer information Microsoft sidor om XML Web Services Standardiseringsarbetet ”Building XML Web Services…” Scott Short ISBN: