tehnologija web servisa

17
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.

Upload: milos-ilic

Post on 28-Nov-2014

80 views

Category:

Documents


3 download

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