Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Web usluge
Web usluge
Web usluge
Sadržaj
Uvod…………………………………………………………………………………………………………………..……..3
Ideja i način rada Web usluga………………………………………………………………..…..…4
Slojevi Web usluga i protokoli……………………………………………………………………………...…..6
XML (eXtensible Markup Language)……………………………………………….……....……7
SOAP (Simple Object Access Protocol) ………………………………………………..………..9
WSDL (Web Service Description Languages)…………………………………………...….12
UDDI (Universal Description, Discovery and Integration)……………………..…….15
Zaključak…………………………………………………………………………………………………………..…….17
Web usluge
Uvod
Napretkom informacijskih znanosti javila se potreba za složenijom komunikacijom između
klijenta i servera. Iz tog razloga nastaju Web usluge koje pružaju generičku, standardiziranu
klijent-server poveznicu za pokretanje programa na serveru.
Neki od razloga razvoja Web usluga su karakteristike interneta: heterogenost (izolirani otoci
sadržaja u korisničkim bazama podataka i web portalima), nestrukturiran (većina informacija
prezentirana na Webu nije strukturirana tako da omogući razmjenu između strojeva, nego je
naglasak na preglednom prikazu za ljudsko oko), neklasificiran (nema mjerila kvalitete) i
nestandardiziran (do pojave XML Web usluga nije postojao široko prihvaćeni standard za
razmjenu podataka). Internet je također: strojno povezan (omogućuje razmjenu podataka između
aplikativnih softvera i web portala), integriran (podaci se ne prepisuju, nego dohvaćaju direktno s
mjesta nastanka), te user-friendly (umjesto zamornog pretraživanja, korisnik sve informacije o
traženom sadržaju dobiva na jednom mjestu).
Web usluge su definirane od strane W3C-a kao “programski sustav stvoren za podršku računalo-
računalo interakciju preko mreže.“ Web uslugama se može pristupiti preko mreže, kao što je
internet, i mogu biti izvršene na udaljenom sustavu kada se neka usluga zatraži. Definicija
W3C web usluga obuhvaća mnogo različitih sistema, ali u uobičajena uporaba se temelji na
odnosu klijenata i servera koji komuniciraju preko XML poruka koje slijede SOAP standarda. U
takvim sustavima, često se nalazi opis operacija koji je razumljiv računalima dan sa uslugom
napisanom u WSDL-om(Web Services Description Language).
Web aplikacije su aplikacije koje se izvode na Web-u i one su ugrađene u Web pretraživače i
uglavnom ih može koristiti bilo koji pretraživač na bilo kojoj platformi. Prava snaga Web usluga
predstavlja mogućnost integracije različitih aplikacija putem standardiziranog načina
komuniciranja. Također je prednost korištenja Web usluga i u tome što ne ovise o arhitekturi
racunala na kojem se izvode pa se na taj nacin rješava problem heterogenosti racunalne okoline.
Slika 1.1. prikazuje način rada Web usluga.
Rad usluge zapoćinje kada pružatelj usluge objavljuje opis usluge, tj objavljuje Web uslugu
(objavljivanje). Zatim se locira određena usluga na Web-u, odnosno klijent pronalazi potrebnu
Web uslugu (pronalaženje). Zadnji korak se obično naziva “spajanje sa uslugom”, a omogućuje
ga SOAP (povezivanje).
Web usluge
Slika 1.1 Uloge Web usluga
Web usluge kao tehnologija predstavljaju logičan nastavak razvoja interneta prema labavo
povezanoj (loosely connected) strukturi, koja će pomalo zamijeniti karakterističnu heterogenost
interneta. Upravo zato mnoge tvrtkr danas ulažu u razvoj Web usluga (servisa), jer oni
prevladavaju nekompatibilnosti između postojećih formata podataka i računalnih sustava, te time
snizuju troškove slanja podataka preko računalnih mreža.
Ideja i način rada Web usluga
Web usluge su građene na nekoliko tehnologija koje rade zajedno sa određenim standardima koji
osiguravaju sigurnost i upravljivost, te se mogu kombinirati bez obzira na sučelje. Web usluge,
dakle, kombiniraju najbolje dijelove komponentno orijentiranog razvoja i Web-a. Služe za
izgradnju raspodijeljenih računalnih sustava zasnovanih na otvorenim Internet standardima, te
opisuju standardizirani način integriranja web-baziranih aplikacija koristeći XML, SOAP,
WSDL i UDDI o kojima ćemo u daljnjem tekstu više govoriti.
Dakle, pod Web uslugom se podrazumijeva bilo koja softverska aplikacija koja je dostupna
preko mreže (Internet ili intranet) i koja koristi standardizirani XML sustav poruka za razmjenu
podataka. Razmjena se odvija tako da korisnik poziva Web uslugu slanjem upita u XML
formatu, a poslužitelj u istom formatu vraća rezultat obrade.
Budući da se sva komunikacija odvija uz pomoć XML-a, Web usluge nisu vezane ni za jedan
operacijski sustav ili razvojno okruženje, čime se nadilaze nekompatibilnosti među postojećim
softverima.
Web usluge
Karakteristike infrastrukture Web servisa su:
- Web usluga poslužitelj i korisnik Web usluga su spojeni na Internet, te mogu
komunicirati međusobno i s drugim servisima
- način komunikacije mora odgovarati nekom široko prihvaćenom standardu - obično
su to SOAP poruke, a mogu i biti HTTP-GET ili HTTP-POST zahtjevi
- rad Web usluga ne ovisi o operacijskom sustavu, objektnom modelu niti o
programskom jeziku, sve dok se Web uslugu i korisničke aplikacije pridržavaju
otvorenih standarda
Web usluga radi na principu da korisnik šalje upit prema poslužitelju. Korisnik ima privid da
komunicira preko Interneta direktno sa Web uslugom, a u stvari komunicira sa proxy klasom,
koja je lokalna korisniku. Zadatak proxy-a je da obavi sve komunikacijske pojedinosti niske
razine potrebne za slanje podataka preko Interneta do poslužitelja. Proxy isto tako prima
rezultate i prezentira ih korisniku. Sve je to moguće uz uvjet da je proxy prethodno registriran
kod korisničke aplikacije.
Web usluge
Slojevi Web usluga i protokoli
Web usluge svoju funkcionalnost postižu pomoću standardnih protokola, dakle, način
komunikacije mora odgovarati nekom široko prihvaćenom standardu. To su standardni protokoli
koji su prihvaćeni među vodećim informatičkim tvrtkama (Microsoft, Sun, IBM, itd).
Slika 2.1 Slojevi Web usluga i protokoli
Service Transport sloj je odgovoran za prenos poruka između aplikacija i u njega su uključeni
sljedeći protokoli: HTTP, SMTP, FTP, itd.
XML Messaging sloj se koristi za razumijevanje poruka za razmenjivanje koje se
implementiraju u XML formatu i uključuje protokole XML-RPC i SOAP.
Service Description sloj definira javni interfejs za određeni Web servis i opisuje se kroz WSDL
protokol.
Service Discovery je odgovoran za centraliziranje usluga u zajednički i jedinstveni registar koji
omogučuje jednostavno objavljivanje i pronalaženje usluga. Otkrivanje servisa trenutno se
obrađuje kroz UDDI protokol.
Grupa protokola koji omogućuju rad Web usluga su:
XML (eXtensible Markup Language)
SOAP (Simple Object Access Protocol)
WSDL (Web Service Description Languages)
UDDI (Universal Description, Discovery and Integration)
Za lakše razumijevanje navedenih protokola možemo zamisliti Web uslugu kao običan telefonski
razgovor. XML predstavlja samu konverzaciju, SOAP definira pravila kako nekoga nazvati,
WSDL opisuje o kakvom se razgovoru radi, a UDDI predstavlja telefonski imenik.
Web usluge
XML (eXtensible Markup Language)
XML je jezik za označavanje podataka. Ideja je bila stvoriti jedan jezik koji će biti jednostavno
čitljiv i ljudima i računalnim programima. Način realizacije je vrlo jednostavan: odgovarajući
sadržaj treba se uokviriti odgovarajućim oznakama koje ga opisuju i imaju poznato ili lako
shvatljivo značenje. Format oznaka u XMLu vrlo je sličan formatu oznaka u npr. HTML jeziku.
Danas je XML jezik vrlo raširen i koristi se za različite namjene: odvajanje podataka od
prezentacije, razmjenu podataka, pohranu podataka, povećavanje dostupnosti podataka i izradu
novih specijaliziranih jezika za označavanje. XML je standardizirani jezik i za njegovu
standardizaciju brine se World Wide Web Consortium.
XML je fleksibilan način kreiranja podataka zajedničke strukture. Takav zapis podataka
omogućava istodobni prijenos dvije stvari: podaci i njihova struktura. Oznake (tag) čine ga
samoopisnim i lako razumljivim među ljudima, ali i programima. XML mogu koristiti pojedinci,
grupa pojedinaca ili razne tvtke koje žele razmjenjivati informacije na konzistentan način.
XML je nastao iz SGML-a (Standard Generalized Markup Language) i napravljen je specijalno
za web dokumente. On omogućuje korisnicima da stvore sami svoje tagove, dozvoljavajući
prijenos, provjeru i interpretaciju podataka između aplikacija i između organizacija.
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 document
- 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
- biti registrirane kod agenta za otkrivanje preko kojeg mogu biti locirane
Web usluge
XML dokument je obična tekstualna datoteka. Njezin sadržaj je vidljiv i pristupačan čovjeku,
bez ikakvog posebnog programa kao i svakom računalnom programu koji može čitati tekstualne
datoteke. Razmjena između sustava na različitim platformama najčešće ide na način da jedan
sustav ispiše svoje podatke u dogovorenom formatu u tekstualnu datoteku, a drugi sustav ih
pročita. Format tih datoteka obično je bio pozicijski (svi podaci u jednom retku, a svaki podatak
ima određenu duljinu) ili delimiterski (podaci razdvojeni posebnim znakom - delimiterom npr.
zarez ili točka-zarez). Problem kod toga je što je za svaku posebnu razmjenu potrebno raditi novi
format prema dogovoru strana u razmjeni. osim toga ti formati su neintuitivni. Kada pogledate
tekstualnu datoteku u pozicijskom formatu bez dokumentacije toga formata nećete moći niti
naslutiti kakvi podaci se u njoj nalaze. XML omogućuje da svaka strana opiše podatke koje ima,
odnosno one koje im trebaju odgovarajućim oznakama koje su čitljive i čovjeku i koje dosta
dobro opisuju podatak koji se unutar određene oznake nalazi.
Slika 2.2.1 Primjer jednostavne XML datoteke
Web usluge
SOAP (Simple Object Access Protocol)
SOAP je aplikacijski protokol i kao takav može raditi iznad bilo kojeg prijenosnog protokola.
Današnji Internet prepun je zastupnika i zaštitnih stijena koje dozvoljavaju jedino promet preko
HTTP protokola. U cilju pouzdanog povezivanja aplikacija, SOAP mora omogućiti prijenos
podataka kroz zastupnike i zaštitne stijene. To se postiže postavljanjem SOAP-a , u mrežnoj
arhitekturi, iznad HTTP-a.
Postavljanje SOAP-a iznad HTTP-a znači da su SOAP poruke dio HTTP poruka i kao takve
mogu se prenositi preko svih mreža koje propuštaju HTTP protokol. HTTP je dobar izbor i zbog
toga što je neovisan o platformi i uredajima koji ga koriste. Kako bi postigao platformsku
neovisnost SOAP za predstavljanje podataka koristi XML. Kao i HTTP, XML je platformski
neovisan. Zahvaljujući tome SOAP omogućava komunikaciju izmedu aplikacija bez obzira na
platformu na kojoj se izvode i mrežu na kojoj su postavljeni.
Osnovna prednost SOAP-a je u tome što je jednostavan. Na ovaj način nastoji se poticati
proizvođače da ga usvoje i upotrebljavaju.
Slika 2.2.2. Arhitektura SOAP poruke
Web usluge
SOAP nije zamišljen da riješi sve problem raspodijeljenih sustava, već da definira onaj minimum
koji je potreban da bi aplikacije mogle međusobno komunicirati. SOAP se zasniva na prometu
SOAP poruka od pošiljatelja (sender) do primatelja (recipient). Da bi se shvatio SOAP, najbolje
je na SOAP poruke gledati kao poruke koje se razmjenjuju izmedu klijenta i Web usluga.
Arhitektura SOAP poruke sastoji se od omotnice (envelope) koja može imati zaglavlje (header) i
mora imati tijelo (body). Unutar tijela SOAP poruke nalaze se podaci (teret) koje treba prenijeti
od pošiljatelja do primatelja.
U osnovi SOAP poruka je dobro definirani XML dokument koji se sastoji od <envelope> i
<body> elemenata koji pripadaju imeniku SOAP omotnice, kao što je prikazano na slici 2.2.3.:
Slika 2.2.3. SOAP poruka
SOAP poruka može imati nekoliko oblika koji se razlikuju po tome kako izgledaju podaci
smješteni unutar tijela poruke. Kako bi se podaci poslali unutar SOAP poruke, potrebno ih je
serijalizirati. Ako se aplikacija piše u objektnom jeziku to znači da se objekti, koji se žele poslati,
moraju prevesti u XML dokument. Da bi se takav XML dokument poslao primatelju, može se
jednostavno stvoriti SOAP poruka i unutar tijela poruke umetnuti XML dokument. Na ovakav
način stvaraju se UDDI poruke.
Dakle, SOAP je jednostavan protokol za razmjenu informacija u decentraliziranom,
distribuiranom okruženju. Baziran je na XML message protokolu koji je standardiziran od strane
World Wide Web Consortium (W3C). Pomoću SOAP-a se može implementirati RPC stil
komunikacije u kojem SOAP poruka sadrži pozivajuću funkciju i parametre koje prosljeđuje
funkciji. Uobičajeno je da takvu poruku šalje korisnik, a poslužitelj vraća poruku s rezultatom
pokrenute funkcije. SOAP također podržava "dokumentni stil" aplikacije u kojima je SOAP
samo omotač oko XML dokumenta. Takve aplikacije su fleksibilne i zato se danas koristi ta
prednost prilikom kreiranja Web usluga.
Web usluge
SOAP protokol obuhvaća:
- ovojnicu, koja definira framework za opisivanje sadržaja poruke, definiranje
primatelja i važnost poruke
- SOAP pravila kodiranja koja definiraju mehanizam serijalizacije koji se koristi
prilikom prijenosa instanci aplikacijski definiranih tipova podataka
- SOAP RPC opis, koji definira kako koristiti SOAP za implementaciju poziva
udaljenih procedura (RPC)
- SOAP dokument se sastoji od obavezne SOAP ovojnice (envelope), opcionalnog
SOAP zaglavlja (header) i obaveznog SOAP tijela (body).
SOAP Evenlope sadrži encondingStyle atribut koji definira korištena pravila serijalizacije u toj
SOAP poruci. Taj se atribut može pojaviti u bilo kojem elementu i prenosi se na sve podređene
elemente (child elements) koji ne sadrže vlastiti atribut.
SOAP Header je prvi podređeni element SOAP evenlope elementa. Podređeni elementi header
elementa (child elements) moraju biti identificirani. Svaki element može sadržavati atribut
mustUnderstand kojim se primatelju naznačuje da je obvezno procesiranje zaglavlja (vrijednost
atributa =1). SOAP poruka koja putuje do određene destinacije obično na svom putu prolazi kroz
skup posrednika. Za tu svrhu postoji poseban atribut actor koji definira kojim je sve
posrednicima namijenjena poruka.
SOAP Body element je podređeni element SOAP evenlope elementa koji se koristi za prijenos
parametara metoda i poruka o greški.
SOAP je lako povezati s HTTP protokolom, koji je podržan od skoro svih operacijskih sustava.
Web usluge
WSDL (Web Service Description Languages)
WSDL je standard za dokumentiranje usluga koje pruža Web servis. Notacija koju koristi je
bazirana na standardnoj XML shemi. To znači da je WSDL višeplatformski, neovisan o
sklopovlju i programskom okruženju te je zato pogodan za opisivanje sučelja Web usluga.
WSDL u jednoj XML datoteci definira sve što je potrebno za pisanje korisničkog softvera koji
koristi usluge Web servisa.
WSDL opisuje sučelja mrežnih usluga, protokole koje podržava mrežna usluga i lokaciju na
kojoj je usluga smještena. Aplikacija koja želi koristiti neku mrežnu uslugu koristi WSDL
datoteku kako bi doznala lokaciju te usluge, dostupne funkcijske pozive i način pristupa njima
(za svaki funkcijski poziv WSDL opisuje njegov oblik). Korisnik koji poziva uslugu aplikacije
prvo od poslužitelja dobiva WSDL datoteku, a onda koristi informacije iz te datoteke kako bi
oblikovao SOAP zahtjev. Moguće je odrediti sintaksu za poziv funkcije bez WSDL-a, samo iz
dostupne dokumentacije, ali pri tom je u komunikaciju uključen čovjek koji je podložan
greškama. S WSDL-om se taj postupak može automatizirati. WSDL opis Web usluga može se
podijeliti u 2 temeljna dijela kako je prikazano na slici 2.2.4.
Slika 2.2.4. Prikaz WSDL opisa Web usluga
Web usluge
Elementi u strukturi WSDL dokumenta:
portType – definira operacije koje web usluga izvršava
message - definira poruke koje web usluga koristi
types - definira tipove podataka koje web usluga koristi
binding - definira komunikacijske protokole koje web usluga koristi
definitions – korijenski element
operation – apstraktna definicija operacija koje usluga podržava
port – predstavlja jednu mrežnu točku koja se sastoji od mrežne adrese i binding
elementa na koji se referencira
service – kolekcija port elemenata
Osnovna struktura WSDL dokumenta:
WSDL tipovi operacija:
One-way – operacija može primiti poruku, ali ne vraća odgovor
Request-response – operacija može primiti poruku i vraća odgovor (ovo je najčešće
korišteni tip operacije)
Solicit-response – operacija može poslati zahtjev i čekati na odgovor
Notification – operacija može poslati zahtev, ali ne čeka odgovor
Web usluge
WSDL definira uslugu (servis) kao set apstraktnih, krajnjih točaka mreže (network end-points),
tj. portova. Poruke su apstraktni opisi podataka koji se izmjenjuju. Nadalje, WSDL uključuje
operacije koje opisuju pod-akcije Web servisa. Apstraktna definicija portova, poruka i operacija
je odvojena od konkretnog korištenja u instanci, što omogućuje ponovnu upotrebu tih definicija.
Tek se u posljednjoj fazi procedure izvršavanja tim definicijama dodijele konkretne vrijednosti.
Slika 2.2.5. Struktura WSDL-a
Može se reći da WSDL pruža razrađen mehanizam za definiranje Web servisa. Zbog njihove
kompleksnosti, čovjeku je WSDL dokumente teško čitati i shvatiti. Ali to nije problem budući da
se pri stvaranju WSDL dokumenata većinom koriste programski alati.
Web usluge
UDDI (Universal Description, Discovery and Integration)
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 (opisuju pružatelja usluge)
- Žute stranice: industrijska kategorizacija
- Zelene stranice: tehničke informacije o usluzi (opisuju sučelje servisa - WSDL)
Slika 2.2.6. Pretraživanje UDDI registra
UDDI je jedan od osnovnih standarda Web usluga (servisa). 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
Web usluge
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. Njegove
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.
Implementacija UDDI specifikacije je UDDI Business Registry. Namijenjen je klijentima koji
žele objaviti svoje usluge i onima koji određene usluge traže. Taj telefonski imenik Web usluga
koristi standardnu industrijsku klasifikaciju za kategoriziranje poslovnih i drugih tipova usluga.
Korisnici mogu pretraživati UDDI Registry po industrijskim i proizvodnim kategorijama, te po
zemljopisnoj lokaciji. Kao rezultat pretraživanja dobiva se XML datoteka koja sadrži informacije
(linkovi, tehnički podaci, itd) na temelju kojih se mogu naći servisi koji odgovaraju zahtjevima.
Web usluge
Zaključak
Pojavom Interneta počela je globalizacija svijeta u svim područjima ljudskog života, a prije
svega 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.
Ističu se zbog centraliziranosti (UDDI), dobre definicije pojedine Web usluge (WSDL), te lakoće
komunikacije (SOAP).
Najrašireniji način korištenja Web usluga je jednostavno pozivanje metoda na udaljenim
računalima. Da bi se Web poslovanja odvijala bez teškoća, te da bi bila profitabilna potrebno je
osigurati dobro upravljanje i visok stupanj pouzdanosti Web usluga.
Web usluge kao krajnja točka u komunikaciji između korisnika i pružatelja usluga opisana je
upravljačkim interfejsom dostupnim korisniku. Koristeći te specifikacije, korisnik servisa može
kontrolirati kvalitetu usluge, ostvariti dogovor o razini usluge, nadzirati izvršavanje određenog
zadatka i neposredno upravljati životnim ciklusom određene usluge.
Veliki plus za SOAP i Web usluge je podrška od strane velikih kompanija kao što su IBM i
Microsoft.