tehnologija web servisa
TRANSCRIPT
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.
2
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
3
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.
4
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)
Primatelj usluge Pružatelj uslugeSOAP
3
WSDLWSDL
1
2Pružatelj Web
usluga objavljuje Web uslugu
Klijent pronalazipotrebnu Web
uslugu
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
5
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
6
- 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.
7
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.
8
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).
9
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.
10
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”>
11
<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,
12
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
13
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.
14
<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.
15
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>
16
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
17
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