Plan wykÅ‚adu żð Koncepcja usÅ‚ug WEB żð Struktura systemu korzystajÄ…cego z usÅ‚ug WEB Technologie Internetowe żð Wymiana komunikatów w systemie usÅ‚ug WEB żð ProtokoÅ‚y stosowane w usÅ‚ugach WEB żð WysyÅ‚anie żądania: XML RPC, HTTP POST, HTTP GET, HTTP POST + SOAP (w skrócie SOAP) UsÅ‚ugi WEB (Web Services) żð Odpowiedz na żądanie: XML żð Opis struktury usÅ‚ugi: WSDL żð OgÅ‚aszanie informacji o usÅ‚udze: UDDI, DISCO żð Pokaz tworzenia prostej usÅ‚ugi WEB żð PrzykÅ‚ady usÅ‚ug WEB dostÄ™pnych w Internecie żð Podsumowanie, literatura 2 Koncepcja usÅ‚ug WEB żð UsÅ‚ugi WEB (WEB Services, XML WS) sÄ… jednÄ… z metod pozwalajÄ…cych na udostÄ™pnianie procedur realizujÄ…cych okreÅ›lone zadania z przeznaczeniem do ich zdalnego UsÅ‚ugi WEB (Web Services) wykorzystania przez inne aplikacje poprzez sieć Internet żð Z zaÅ‚ożenia WS powinny być niezależne od platformy oraz jÄ™zyka w którym zostaÅ‚y utworzone żð Do transportu informacji WS używajÄ… protokoÅ‚u HTTP, Informacje podstawowe dlatego nazywane sÄ… usÅ‚ugami WEB żð W stosowanych obecnie WS informacje zapisywane sÄ… zazwyczaj w dokumentach XML, stÄ…d czÄ™sto spotykana jest nazwa XML WS 4 WS gdzie jesteÅ›my? Infrastruktura WS Gartner s Hype Curve Key: Time to plateau Pur chased a e App lication B D ta S t 1* Fi nan cial s Package Fo r ma t B e sage Visibility M s qu e u e Do wn Load Pr og r am Down Fi le Ext ract Pr og ra m program Loa d Fi le Pr ogra m Purchased Less than two years Ex t r a ct progra m Financial s P ac ka ge Screen pplication Load Appli cat io n A scrap e A B Dat a Set 1* program DB r epl i cati on Appli cat ion C Format B Ex t r a ct Lo a d Messa g e r queue Grid Computing prog a m pr og r am Down sact Biometrics Program Pro g ram Load Progr am Down Program Tran io n Pro g ram Fil e Extr act Program f i le program Load Da Se 1 Program Pro gram D t 1 * Program ta t Fi le Two to five years Fo rma t A ataSe * Messag e Fo rma t C Ext ract p rogram queue Screen Load scr ape DB repli cat ion pplication program A A App licati on C Ex tr ac t Load pr ogram pr ogram Program Program Program Tra nsa c tion Pr o gram f ile Five to 10 years Data Set 1 Pro g ram Progr am Format A Data Set 1** Message Format C queue Natural-language Web Services Beyond 10 years Purch ased search Fi n an cials Packag e Applica tion B Da ta S e t 1 * For ma t B Message queu e Down Loa d Program wn Fi le Extract Program Do pr ogram Load Fi le Pr ogram Screen Extr act progr a m Identity services Loa d scrape pr ogram Ap pl i cati o n A Application C P u r ch ased DB replication Financials P ackage Extract Load Dat a Set 1* p rogram program Application B Program Progr am Format B Program Tran sacti o n P r ogr am Message file queue Data S e t 1 Pr ogr am Pr ogr a m Do wn Virtual Format A Data Set 1** Mess age Format C Load Prog ram Extract Pro g r am Down que ue File Load program Personal digital Pr og r am File Ext ract prog ram Scr een Wireless private Load scrape Application C Purchased Application A pr ogr am DB replicat ion Financials Package Nanocomputing assistant phones Extr act Loa d Application B Data Set 1* pr ogr a m pr ogr a m Prog ram Program Form at B Text-to- LANs/802.11 networks Prog ra m T Pro gram ransaction fi le Message Da ta Set 1 Pr ogram Pr ogram Data Set 1** queue Fo rmat A Me ssag e Format C Down Extr act Dow n speech queue Load Program Pr ogram File program Load File E-tags Program Extract program Screen Load Application A scr ape Application C program DB replicat ion Ex tra ct Lo ad Speech recognition in program pro gra m Program Pr ogram Pr ogram Tr an sa ction Program file call centers Data Se t 1 Program Progr am Data Se t 1** Peer-to-peer For mat A Message Form at C Voice over IP que ue computing Personal Bluetooth fuel cells WAP/ Public key infrastructure Wireless People-to-People Web Web Location Speech recognition on desktops sensing Peak of Technology inflated Trough of Slope of Plateau of Application-to-Application Web trigger expectations disillusionment enlightenment productivity Maturity Source: Gartner Group June 2002 5 6 1 Typowa architektura WS WS podstawowe funkcjonalnoÅ›ci żð Oprócz podstawowej funkcji jakÄ… jest udostÄ™pnianie Application 1 Application 2 procedur wykonujÄ…cych okreÅ›lone operacje (np. dostarczania żądanej treÅ›ci) zazwyczaj wymaga siÄ™ aby XML WS miaÅ‚y też pewne dodatkowe cechy uÅ‚atwiajÄ…ce ich stosowanie żð WS powinien zawierać wÅ‚asnÄ… dokumentacjÄ™. W najprostszym przypadku może to być informacja tekstowa przeznaczona dla programistów korzystajÄ…cych z danego WS. W bardziej zaawansowanym wariancie opis może być zrealizowany w specjalnym jÄ™zyku wyprowadzonym z XML i przeznaczony do automatycznego odczytu przez inne narzÄ™dzia żð WS powinien być widoczny i możliwy do odnalezienia w sieci. W zwiÄ…zku z tym powinien być dostÄ™pny mechanizm pozwalajÄ…cy na opublikowanie informacji o istnieniu 7 8 danego WS WS stos protokołów żð Każda funkcjonalność WS realizowana jest przez odpowiedni protokół żð Zbiór tych protokołów tworzy strukturÄ™ stosu UsÅ‚ugi WEB (Web Services) Odnajdywanie UDDI, DISCO Opisywanie WSDL, XML, Schema, Docs Protokół SOAP Formatowanie wiadomoÅ›ci SOAP, XML-RPC Kodowanie XML Transport HTTP, SMTP i inne 9 WS protokół SOAP SOAP format wiadomoÅ›ci żð SOAP (Simple Object Acces Protocol) stanowi mechanizm POST /StockQuote HTTP/1.1 HTTP Post Host: www.stockquoteserver.com opakowywania danych (m.in. zapytaÅ„ i odpowiedzi) w Content-Type: text/xml; charset="utf-8" Content-Length: nnnn przesyÅ‚anej wiadomoÅ›ci SOAP Envelope SOAPAction: http://myservice.com/GetStock" żð SOAP bazuje na formacie XML, korzystajÄ…c z SOAP Head xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" odpowiedniej przestrzeni nazw SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> żð Standard SOAP okreÅ›la trzy podstawowe elementy: żð Specyfikacja koperty SOAP (SOAP envelope) xmlns:t= http://example1.com/" SOAP Body SOAP-ENV:mustUnderstand="1"> żð Zasady kodowania (zapisywania) różnych typów danych 5
żð Zasady zdalnego wywoÅ‚ywania procedur (RPC conventions) żð Elementem głównym (root) wiadomoÅ›ci SOAP jest DEF
element o nazwie Envelope
żð Element Envelope może zawierać dwa podelementy: żð Header (opcjonalny) zawierajÄ…cy dodatkowe informacje żð Body (obowiÄ…zkowy) zawierajÄ…cy zasadniczÄ… wiadomość 11 12 2 SOAP zdalne wywoÅ‚ywanie procedur SOAP zdalne wywoÅ‚ywanie procedur
xmlns:soap xmlns:soap public int Add (int x, =http://schemas.xmlsoap =http://schemas.xmlsoap SOAP RPC HTTP int y) .org/soap/envelope/> .org/soap/envelope/> { WEB Service return x + y 1 1 } 2 2
13 14 SOAP zdalne wywoÅ‚ywanie procedur SOAP kodowanie danych żð Standard SOAP obejmuje schemat kodowania SOAP Encoding definiujÄ…cy sposób w jaki dane sÄ… szeregowane
w wiadomoÅ›ci SOAP xmlns:soap żð Poniższy przykÅ‚ad pokazuje sposób zapisu danej =http://schemas.xmlsoap HTTP tablicowej w wiadomoÅ›ci SOAP .org/soap/envelope/> WEB Service 3
... 15 16 WS protokół WSDL żð WSDL (Web Service Description Language) stanowi jÄ™zyk pozwalajÄ…cy na sformalizowany zapis opisu danej usÅ‚ugi przeznaczony głównie do automatycznego przetwarzania UsÅ‚ugi WEB (Web Services) przez inne programy (np. klientów WS) żð Na podstawie analizy dokumentu WSDL klient potrafi komunikować siÄ™ z WS żð WSDL bazuje na formacie XML, korzystajÄ…c z odpowiedniego schematu Protokół WSDL żð Elementem głównym (root) dokumentu WSDL jest element o nazwie definitions 18 3 WS protokół WSDL WS protokół WSDL żð Element definitions zawiera pięć rodzajów podelementów: żð types zawiera schemat wiadomoÅ›ci XML przesyÅ‚anych i odbieranych przez dany WS żð message wiąże wiadomość z jej definicjÄ… zawartÄ… w schemacie (ważne w przypadku, gdy WSDL zawiera różne definicje schematowe) żð portType definiuje zbiór interfejsów (operacji), które dana usÅ‚uga WEB może udostÄ™pnić żð binding wiąże definicjÄ™ portType z okreÅ›lonym protokoÅ‚em żð service definiuje zbiór punktów koÅ„cowych (portów) udostÄ™pnionych przez usÅ‚ugÄ™ WEB 19 20 WS protokół WSDL xmlns="& /XMLSchema" xmlns:SOAPENC="& /soap/encoding/"/> UsÅ‚ugi WEB (Web Services)
21 WS protokół UDDI żð UDDI (Universal Description, Discovery and Integration) jest usÅ‚ugÄ… katalogowÄ… umożliwiajÄ…cÄ… publikowanie informacji dotyczÄ…cych oferowanych usÅ‚ug WEB oraz UsÅ‚ugi WEB (Web Services) odnalezienie tych usÅ‚ug przez potencjalnych klientów żð Serwer UDDI stanowi rejestr usÅ‚ug i umożliwia ich wyszukiwanie wg okreÅ›lonych kryteriów żð Architektura nieco zbliżona do DNS Protokół DISCO 23 4 WS protokół DISCO WS ogólna architektura żð DISCO (od Discovery) stanowi mechanizm umożliwiajÄ…cy odkrycie i przeglÄ…danie usÅ‚ug WEB dziaÅ‚ajÄ…cych na konkretnym komputerze żð Obecnie DISCO jest rozwiÄ…zaniem firmowym zwiÄ…zanym głównie ze Å›rodowiskiem MS Visual Studio 25 26 UsÅ‚ugi WEB (Web Services) Tworzenie prostej usÅ‚ugi WEB 28 PrzykÅ‚adowe usÅ‚ugi WEB żð http://webapi.allegro.pl UsÅ‚ugi WEB (Web Services) żð http://code.google.com/ żð http://www.webservicex.net żð http://www.xmethods.net PrzykÅ‚ady usÅ‚ug WEB dostÄ™pnych w Internecie 30 5 WS podsumowanie żð UsÅ‚ugi WEB stanowiÄ… metodÄ™ pozwalajÄ…cÄ… na udostÄ™pnianie w sieci okreÅ›lonych procedur i zdalne ich wykorzystywanie w aplikacjach klienckich UsÅ‚ugi WEB (Web Services) żð Stosowanie usÅ‚ug Web jest szczególnie korzystne w Å›rodowiskach heterogenicznych oraz miÄ™dzysieciowych żð W homogenicznym Å›rodowisku LAN (lub na pojedynczej maszynie) bardziej sprawdzajÄ… siÄ™ takie rozwiÄ…zania jak DCOM i .NET remoting Podsumowanie żð ZaletÄ… WS jest praca poprzez standardowy port 80, który zazwyczaj nie jest blokowany na firewall ach żð Stanowi to jednoczeÅ›nie wadÄ™, gdyż może otwierać drogÄ™ do wykorzystania bÅ‚Ä™dów w warstwie aplikacyjnej, co zmusza z kolei do stosowania bardziej zaawansowanych systemów FW i IDS dziaÅ‚ajÄ…cych w warstwie aplikacyjnej 32 WS podsumowanie Literatura żð Obecnie trwajÄ… intensywne prace nad standaryzacjÄ… żð S. Short: Zastosowanie XML do tworzenia usÅ‚ug mechanizmów zapewniajÄ…cych bezpieczeÅ„stwo WS internetowych na platformie Microsoft .NET , APN żð W3C - http://www.w3c.org Promise, Warszawa 2003 żð XML Encryption żð L. Felipe, C. Kurt: Architektura usÅ‚ug WEB i jej żð XML Digital Signatures specyfikacje: Klucz do zrozumienia WS-* , APN Promise, żð WS-I - http://www.ws-i.org Warszawa 2005 żð WS Security Profile żð Książki o XML, ASP.NET, C#, VB.NET żð OASIS - http://www.oasis-open.org żð WS-Security żð Internet... żð SAML - Security Assertion Markup Language żð XACML - Extensible Access Control Markup Language żð XKMS - XML Key Management Specification 33 34 6