SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Zavod za telekomunikacije Kolegij: Osnove upravljanja mrežom SEMINARSKI RAD TEHNOLOGIJA WEB SERVISA Vesna Jelčič Zagreb, siječanj 2007.
1.1. Usluge... 3 1.2 Web usluge... 4 2. TEHNOLOGIJA WEB USLUGA, STANDARDI, ARHITEKTURE...5 2.1 Web usluge i uslužno usmjerena arhitektura (Service Oriented Architecture- SOA)... 5 2.1.1. XML Web usluge... 5 2.1.2. Uslužno orijentirana arhitektura (SOA)... 6 2.1.3. Uloge Web usluga... 7 2.2. Web Services Description Language (WSDL)... 10 2.2.1 WSDL dokument... 10 2.3. Simple Object Access Protocol (SOAP)... 14 2.4. Universal Description, Discovery and Integration (UDDI)... 16 3. ZAKLJUČAK...16 4. LITERATURA...17 2
1. Uvod 1.1. Usluge Usluge su samoopisujuće otvorene komponente koje podržavaju brzu i jeftinu kompoziciju distribuiranih aplikacija. Ponuđene su od organizacija koje pružaju usluge. One osiguravaju implementaciju usluga, dobavljaju njihove opise i omogućuju slične tehničke i poslovne podrške. Kako usluge mogu biti ponuđene od raznih poduzetnika i komuniciraju putem Interneta, organizacije omogućuju distribuiranu infrastrukturu za internu i vanjsku aplikacijsku integraciju i suradnju. Opisi usluga služe za oglašavanje njihovih mogućnosti, sučelja i kvalitete. Objavljivanjem takvih informacija o raspoloživim uslugama pružaju se potrebna sredstva za otkrivanje, selekciju, povezivanje i kompoziciju usluga. Opis mogućnosti usluge definira konceptualnu svrhu i očekivane rezultate (koristeći izraze i pojmove koji su definirani u aplikacijskoj domeni). Opis sučelja usluge objavljuje potpis usluge (njegove ulaz/izlaz/greška parametre i tipove poruka). Očekivano ponašanje usluge tijekom izvršavanja specificirano je u opisu ponašanja. QoS definira važne funkcionalne i nefunkcionalne atribute kvalitete kao što su troškovi, performanse, sigurnosni atributi, integritet, pouzdanost, sposobnost rasta i dostupnost. Klijenti usluge (krajnje organizacije ili pojedinci koji koriste određenu uslugu) kao i organizacije koje integriraju više usluga u novu, jedinstvenu uslužnu ponudu, koriste opise usluga kako bi dosegli svoje ciljeve. 3
1.2 Web usluge Evolucijom informacijskih znanosti javila se potreba za kompleksnijom komunikacijom između klijenta i servera. Iz tog razloga nastaju Web usluge koje pružaju generičku, standardiziranu klijent-server paradigmu za pokretanje programa na serveru. Najrašireniji način korištenja Web usluga je jednostavno pozivanje metoda na udaljenim računalima. Registar Web usluga (servisni broker) (UDDI) Klijent pronalazi potrebnu Web uslugu 2 WSDL WSDL 1 Pružatelj Web usluga objavljuje Web uslugu Primatelj usluge 3 SOAP Pružatelj usluge Slika 1. Dohvat Web usluge Slika 1 prikazuje način rada Web usluga. Brojevi iznad ili pokraj strelica upućuju na redoslijed izvršavanja. Korakom broj jedan pružatelj usluge objavljuje opis usluge. U koraku broj 2 locira se određena usluga na Web-u. Korak broj tri obično se naziva spajanje sa uslugom, a omogućuje ga SOAP. WSDL- Web Services Description Language; opisuje sučelje (XML) usluge (opis usluge) UDDI- Universal Description, Discovery and Integration; protokol koji objavljuje opise Web usluga; standardni mehanizam za dinamičko otkrivanje opisa usluga SOAP- Simple Object Access Protocol; protokol za izmjenu XML poruka koristeći HTTP protokol 4
Veza između gore navedenih specifikacija prikazana je na slici 2. Slika 2. Veza tehnologija Web usluga 2. Tehnologija Web usluga, standardi, arhitekture 2.1 Web usluge i uslužno usmjerena arhitektura (Service Oriented Architecture- SOA) 2.1.1. XML Web usluge Najrašireniji i najuspješniji tip usluge je XML usluga. Na taj tip usluge postavljaju se dva temeljna zahtjeva: - komunikacija Internet protokolima (najčešće HTTP) - komunikacija putem XML dokumenata Standardna Web usluga trebala bi - omogućiti opis usluga koji barem sadrži WSDL dokument - biti sposobna prenijeti XML dokument koristeći SOAP (preko HTTP-a) Zajedničko svim Web uslugama je: - mogu se ponašati i kao primatelji i kao pružatelji usluga 5
- da budu registrirane kod agenta za otkrivanje preko kojeg mogu biti locirane Klijent koji pokreće zahtjev za Web uslugom je također Web usluga kao što je prikazano na sljedećoj slici (slika 3): Slika 3. Uloge Web usluga Svako sučelje izloženo preko klijentove usluge također je kvalificirano kao usluga (iz koje druge usluge mogu crpiti informacije). Samim time Web usluge se ne mogu smjestiti u standardni klijent-server model, već ostvaruju peer-to-peer sistem u kojem svaka usluga može igrati ulogu klijenta ili servera. 2.1.2. Uslužno orijentirana arhitektura (SOA) SOA predstavlja vid softverske arhitekture koji osnažuje korištenje slabo povezanih usluga s ciljem ostvarivanja potreba poslovnih procesa i korisnika. Resursi na računalnoj mreži prilagođeni SOA okruženju dostupni su kao neovisne usluge kojima se može pristupiti ne poznavajući pozadinsku implementacijsku platformu. SOA može biti implementirana korištenjem raznih tehnologija poput REST-a, RPC-a, DCOM-a, CORBA-e ili Web usluga. Također može biti implementirana ne koristeći niti jedan od navedenih protokola; npr. može koristiti datotečni sustav za prijenos podataka u skladu sa specifikacijom sučelja među procesima kompatibilnim sa SOA konceptima. Poanta je da neovisne usluge sa definiranim sučeljima mogu biti pozvane (sa ciljem izvršavanja određenog zadatka) na standardan način bez da usluga ima ikakvog predznanja o pozvanoj aplikaciji i bez da aplikacija zna na koji će način usluga izvršiti svoj zadatak. 6
SOA je dizajnirajući model za povezivanje računalnih resursa (uglavnom aplikacija i podataka) s ciljem ostvarivanja zadovoljavajućeg rezultata za korisnike usluga. OASIS definira SOA-u kao paradigmu za organizaciju i korištenje sposobnosti koje mogu biti pod kontrolom različitih domena. SOA omogućuje jedinstven način ponude, otkrivanja, interakcije i korištenja mogućnosti za postizanje željenih učinaka u skladu sa preduvjetima i očekivanjima. Slika 4. Elementi SOA-e SOA može biti temeljena na standardima Web usluga koje su postigle široku primjenu (npr. koristeći SOAP). Ti standardi (također znani kao specifikacije Web usluge) omogućuju bolje međudjelovanje i ograđivanje od korištenja isključivo jednog, predloženog softvera. SOA se obično definira kao usluge predstavljene stogom protokola Web usluga. Osnovni nivo standarda Web usluge koji odgovara SOA-i uključuje XML, HTTP, SOAP, WSDL i UDDI. Međutim, sustav da bi bio uslužno orijentiran ne mora nužno koristiti niti jedan od navedenih standardna, a može ih koristiti sve. 2.1.3. Uloge Web usluga Web usluge mogu igrati različite uloge ovisno o scenariju interakcija. Ovisno o kontekstu kojim se gleda i o stanju trenutnog zadatka koji se izvršava, ista Web usluga može mijenjati uloge ili igrati više uloga u isto vrijeme. 7
Pružatelj usluge Kada se ponaša kao pružatelj usluge, Web usluga daje javno sučelje preko kojeg može biti pozvana. Pružatelj usluge promovira sučelje Web usluge objavljujući njen opis. Analogno klijent-server modelu, pružatelj usluge je u ulozi servera (slika 4) Slika 5. Web usluga u ulozi pružatelja usluge Pružatelj usluge može se također ponašati i kao primatelj usluge. Npr. Web usluga može imati ulogu pružatelja usluge kada primatelj usluge zahtjeva od njega da izvrši neku funkciju. Kasnije se ona ponaša kao primatelj usluge jer kontaktira primatelja usluge (koji sada ima ulogu pružatelja usluge) tražeći statusne informacije. Primatelj usluge Primatelj usluge je pošiljatelj Web poruke koja predstavlja zahtjev za Web uslugom ili aplikacija koja zahtjeva određenu Web uslugu. Shodno analogiji klijent-server modela, primatelj usluge ima ulogu klijenta (slika 5). 8
Slika 6. Web usluga u ulozi primatelja usluge Pri komunikaciji sa pružateljom usluge, kod dobivanja zahtjeva za statusom, primatelj usluge i sam postaje pružatelj usluge jer odgovara na taj zahtjev. Posrednik Posredničke Web usluge primaju poruku od primatelja Web usluge i prosljeđuju je pružatelju usluge. U tom smislu posrednik djeluje i kao pružatelj usluge (pri primitku poruke) i kao primatelj usluge (pri njenom prosljeđivanju) (slika 6). Slika 7. Web usluga u ulozi posrednika između pružatelja i primatelja usluge Postoje različiti tipovi posrednika. Neki su pasivni i samo prosljeđuju poruke, dok drugi aktivno procesiraju poruku prije samog prosljeđivanja. U praksi se posrednicima dopušta samo izmjena zaglavlja, a ne i sadržaja poruke, kako bi se očuvao njen integritet. 9
U posredničkoj strukturi Web usluga razlikujemo još i pojmove početni pošiljatelj (Web usluga koja započinje prijenos poruke) te konačni primatelj (Web usluga koja predstavlja posljednju etapu puta poruke, tj. odredište) 2.2. Web Services Description Language (WSDL) Web usluge trebaju biti definirane na konzistentan način kako bi ih druge usluge i aplikacije otkrile te izgradile sučelje prema njima. Web usluge se opisuju jednom od specifikacija W3C-a WSDL jezikom. Okruženje Web usluga uvodi integracijski sloj, koji utemeljuje standardno, opće poznato i podržano programsko sučelje (slika 7). Slika 8. Integracijski sloj WSDL omogućuje komunikaciju između tih slojeva dajući standardizirani opis krajnjih točaka. 2.2.1 WSDL dokument Sagledavajući svaki konstrukt definicije, najbolje će se razumjeti kako je jedna Web usluga definirana pomoću WSDL dokumenta. <definitions> <message name= BookInfo > 10
<part name= title type= xs:string > Field Guide </part> <part name= author type= xs:string > Mr. T </part> </message> <interface name= Catalog > <operation name= GetBook > <input name= Msg1 message= BookInfo /> </operation> </interface> <service> <binding name= Binding1 > <operation name= GetBook > <input name= Msg1 message= BookInfo /> </operation> </binding> <endpoint name= End1 binding= Binding1 > detalji implementacije </endpoint> </service> <types> <xsd:schema targetnamespace= http://www.examples.ws xmlns= http://www.w3.org/2000/10/xmlschema > </xsd:schema> </types> <documentation> Tekstualni opis usluge; dokumentacija </documentation> </definitions> Korijenski element definitions je kontejner cijele definicije usluge. Jedna WSDL definicija može sadržavati skupove sljedećih primarnih konstrukata: interface, 11
message, service i binding. Prva dva konstrukta predstavljaju definiciju sučelja usluge, dok zadnja dva pružaju detalje o njenoj implementaciji. Slika 9. Preslikavanje značajki Web usluge u WSDL dokument Definicija sučelja <message name= BookInfo > <part name= title type= xs:string > Field Guide </part> <part name= author type= xs:string > Mr. T </part> </message> <interface name= Catalog > <operation name= GetBook > <input name= Msg1 message= BookInfo /> </operation> </interface> Pojedinačna sučelja usluge reprezentirana su interface elementima, od kojih svaki sadrži grupu logički povezanih operacija. U komponentno-orijentiranoj arhitekturi WSDL interface je usporediv sa sučeljem komponente, dok je operacija ekvivalentna metodi komponente jer predstavlja jednu akciju ili funkciju. Izvršavanje jedne operacije, koja se sastoji od grupe ulaznih i izlaznih poruka, podrazumijeva prijenos tih poruka između pružatelja i primatelja usluge. Te su poruke predstavljene konstruktima message čija se imena kasnije referenciraju u input i 12
output elementima konstrukata operation. Svaki message element može sadržavati jedan ili više ulaznih ili izlaznih parametara koji pripadaju nekoj operaciji. Ti se parametri definiraju part elementima. U komponentno-orijentiranoj arhitekturi WSDL part je ekvivalent ulaznom parametru ili povratnoj vrijednosti metode komponente. Definicija implementacije Pomoću elemenata definicije implementacije, WSDL dokument može izgradit konkretne detalje povezivanja za protokole kao što su SAOP i HTTP. <service> <binding name= Binding1 > <operation name= GetBook > <input name= Msg1 message= BookInfo /> </operation> </binding> <endpoint name= End1 binding= Binding1 > detalji implementacije </endpoint> </service> Unutar WSDL dokumenta, konstrukt service predstavlja jednu ili više krajnjih točaka na kojima je Web usluga dostupna. Te krajnje točke, reprezentirane endpoint elementima, sadrže informacije o protokolu i lokaciji. Element binding pridružuje informacije o protokolu i obliku poruke operacijama. Operation konstrukt u binding bloku mora imati dvojnika u interface konstruktu. Dodatni konstrukti U dodatne konstrukte ubrajaju se types i documentation. 13
<types> <xsd:schema targetnamespace= http://www.examples.ws xmlns= http://www.w3.org/2000/10/xmlschema > </xsd:schema> </types> Types element nosi dodatno obilježje koje se koristi kao podrška tipovima podataka za definiciju Web usluga. Taj konstrukt omogućuje integraciju XSD shema u dokument definicije. <documentation> Tekstualni opis usluge; dokumentacija </documentation> Na posljetku, element documentation omogućuje integraciju dodatnih bilješki i napomena. 2.3. Simple Object Access Protocol (SOAP) SOAP je protokol za razmjenu XML poruka preko računalne mreže koristeći HTTP protokol. SOAP formira temeljni sloj stoga Web usluga omogućujući temeljni okvir za izmjenu poruka koji apstraktniji slojevi mogu nadograđivati. Postoji nekoliko različitih tipova poruka u SOAP-u, ali najrašireniji je poziv udaljenim procedurama (Remote Procedure Call RPC) tip poruka u kojem jedan čvor u mreži (klijent) šalje zahtjev drugom čvoru (server), a server odmah vraća odgovor na primljeni zahtjev. SOAP je sljedbenik XML-a i RPC-a iako koristi drugačiji prijenos, interakcijsku neutralnost i omot/zaglavlje/tijelo poruke. Iako su i SMTP i HTTP odgovarajući protokoli za prijenos SOAP poruka, uvažen je HTTP jer dobro podržava današnju Internet infrastrukturu; SOAP dobro surađuje sa firewall-ima koristeći HTTP. 14
XML je izabran kao standard SOAP poruke zbog njegove proširenosti i truda u open source razvoju. Samim time razni besplatni alati olakšavaju nadogradnju implementacija baziranih na SOAP-u. Slabosti SOAP-a su: - Zbog dugačkog XML formata, SOAP može biti sporiji nego konkurentne tehnologije poput CORBE. Ovo ne bi smio biti problem ukoliko se prenose kratke poruke. - Kada se oslanja na HTTP kao prijenosni protokol i ne koristi WS-adresiranje ili ESB, uloge komunicirajućih strana su fiksne. Samo jedna strana (klijent) može koristiti usluge druge strane. Zbog toga programeri koriste cikličko ispitivanje rađe nego notifikaciju u takvim slučajevima. - Oslanja se na WSDL koji je vanjski standard. Ne postoji standardan način dinamičkog otkrivanja Web usluga (metoda, parametara) već je nužno primiti WSDL poruku o Web usluzi. Slijedi primjer SOAP poruke koju šalje klijent pri zahtjevu za konkretnim podatkom od pružatelja usluge. Primatelj želi znati koji podatak odgovara ID-u 827635. <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <getproductdetails xmlns="http://warehouse.example.com/ws"> <productid>827635</productid> </getproductdetails> </soap:body> </soap:envelope> Odgovor pružatelja usluge na zahtjev primatelja je sljedeća SOAP poruka: <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <getproductdetailsresponse xmlns="http://warehouse.example.com/ws"> <getproductdetailsresult> <productname>toptimate 3-Piece Set</productName> <productid>827635</productid> <description>3-piece luggage set. Black Polyester.</description> <price>96.50</price> <instock>true</instock> </getproductdetailsresult> </getproductdetailsresponse> </soap:body> </soap:envelope> 15
2.4. Universal Description, Discovery and Integration (UDDI) UDDI je neovisan o platformi, bazira se na XML-u, a koristi se za objavu liste usluga i međusobno otkrivanje istih. Također definira način na koji usluge ili softverske aplikacije surađuju putem Interneta. UDDI poslovna registracija sastoji se od tri dijela: - Bijele stranice: adresa, kontakt i poznati identifikatori - Žute stranice: industrijska kategorizacija - Zelene stranice: tehničke informacije o usluzi UDDI je jedan od osnovnih standarda Web usluga. Dizajniran je kako bi mu mogle pristupiti SOAP poruke i ispitati njegov sadržaj ne bi li omogućile pristup WSDL dokumentima, opisujući korištene protokole i oblike poruka, kako bi mogli pristupati Web uslugama opisanima u UDDI direktoriju. UDDI je integriran u interoperabilnost Web usluge (Web-service Interoperability WS-I) kao centralni nosioc infrastrukture Web usluga. Do kraja 2005. godine više od 70% kompanija iz skupine Fortune 500 imalo je u planu koristiti ili su već koristile u javnoj ili privatnoj domeni UDDI. Mnoge od tih kompanija su se pretplatile na neku od SOA arhitektura. UDDI specifikacije podržavaju javno pristupačan jedinstveni poslovni registar u kojem je nazivlje usluga konfigurirano od strane UDDI brokera. Javni poslovni registar omogućuje pristup informacijama bilo kojoj klijentskoj aplikaciji. 3. Zaključak Pojavom Interneta počela je globalizacija svijeta u svim segmentima ljudskog života, ponajprije računalnom. Tehnologije se rađaju i koriste zahvaljujući svojim pozitivnim aspektima i raširenosti, ili pak izumiru zbog svojih nedostataka ili slabe rasprostranjenosti. U moru Web tehnologija, Web usluge se ističu nad ostalima, ponajprije radi centraliziranosti (UDDI), dobre definicije pojedine Web usluge (WSDL) te lakoće komunikacije među strankama (SOAP). Također, Web usluge danas imaju izuzetno široku primjenu. Jedna od primjena je i u domeni upravljanja komunikacijskim 16
mrežama i uslugama. Web usluga kao krajnja točka u komunikaciji između primatelja i pružatelja usluge opisana je varijabilnim upravljačkim sučeljem dostupnim primatelju usluge. Koristeći specifikacije iz tog sučelja, primatelj usluge može kontrolirati kvalitetu usluge, ostvariti dogovor o razini usluge, nadzirati izvršavanje određenog zadatka i neposredno upravljati životnim ciklusom određene usluge. Upravljanje korištenjem Web usluge vrlo je korisno, štoviše, neophodno kada Web usluga predstavlja hardversku komponentu koja izvršava neki zadatak ili npr. kompleksniju komponentu koja predstavlja sintezu poslovnih procesa ili aplikacijski server. 4. Literatura http://wiki.apache.org/ws/frontpage/axis/axisgeneral http://en.wikipedia.org/wiki/service-oriented_architecture http://en.wikipedia.org/wiki/soap http://en.wikipedia.org/wiki/uddi http://www.phptr.com/articles/article.asp?p=336265&seqnum=1&rl=1 http://infolab.uvt.nl/pub/papazogloump-2003-52.pdf Web Services Distributed Management Using Web Services (MUWS 1.0) Part 1 17