You are on page 1of 33

Univerzitet u Beogradu Fakultet Organizacionih Nauka

Dr Milica Vukovi Marko Petrovi

Sadraj
Web servisi: definicija, model, arhitektura, ... Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL)

Primer Web servis Kursna lista Korisnici Web servisa Kursna lista

Web servisi Cilj


Omoguiti povezivanje poslovanja (Business to Business) odnosno, omoguiti programsko povezivanje distribuiranih softverskih komponenti bez obzira na kojoj su platformi realizovani, koji je programski jezik tom prilikom korien, kao i platforma na kojoj se izvravaju. Dva zahteva: Reusability & Interoperability

Web servisi Vizija


Postojanje miliona nezavisnih komponenata dostupnih preko Interneta koje su upotrebljive na bilo kojoj platformi i svim razvojnim jezicima.

Distribuirane softverske komponente

VB.NET/Windows XP C#/Windows 2000

Object Pascal/Win 98

Java/Linux

Web servisi

Definicije Web servisa


Web servisi su modularne, samoopisujue aplikacije koje se mogu objaviti,locirati i pozvati sa bilo koje take Web-a ili lokalne mree. Web servisi su distribuirane softverske komponente koje su dostupne kroz standardne Internet protokole. Web servisi su nova platforma za izgradnju interoperabilnih distribuiranih aplikacija. Ona predstavlja skup standarda koje aplikacije moraju da potuju kako bi se postigla interoperabilnost preko Web-a.

Model Web servisa


Uesnici

Uesnici
Artefakti

Operacije

Operacije Artefakti

Opis servisa Registar servisa

Pronalaenje

Objavljivanje

Servis Trailac servisa Povezivanje Prualac servisa Opis servisa

Arhitektura Web servisa


Interoperabilnost
Da bi se postigla interoperabilnost, neophodan je stek Web servisa kojim se definiu standari na svakom nivou

WSFL Web Services Flow Language UDDI Universal Description, Descovery and Integration UDDI Universal Description, Descovery and Integration WSDL Web Services Description Language SOAP Simple Object Access Potocol Transportni protokoli HTTP/FTP/SMTP/...

Tok servisa Otkrivanje servisa Objavljivanje servisa Opis servisa Razmena XML poruka Mrea

Stek Web servisa

Arhitektura Web servisa


Osnova bez koje se ne moe
Poslednja tri sloja steka Web servisa su neophodna da bi se obezbedio ili koristio bilo koji Web servis.

WSDL Web Services Description Language SOAP Simple Object Access Potocol HTTP HyperText Transport Protocol

Opis servisa Razmena XML poruka Mrea

Stek interoperabilnosti Web servisa

Simple Object Access Protocol - SOAP -

SOAP
SOAP je komunikacioni protokol, baziran na XML-u, za razmenu informacija izmeu raunara bez obzira na njihov operativni sistem, programsko okruenje ili objektni model. U okviru specifikacije, definisan je kao jednostavan protokol za razmenu informacija izmeu ureaja ravnopravnih komunikacionih mogunosti u decentralizovanom i distribuiranom okruenju kao to je Internet.

SOAP nije transportni protokol.

SOAP poruka
SOAP poruka je XML dokument SOAP poruke predstavlju sredstvo preko kojih aplikacije komuniciraju Osnovni delovi SOAP poruke su - element Envelope - element Header - element Body Poznavanjem ovih elemenata znamo gde se smetaju podaci, kako se poruka proiruje i kako se predstavlja greka.

Struktura SOAP poruke


Envelope Header Header entry Header entry Body

<Envelope ...> <Header> ... </Header> <Body> ... </Body> </Envelope>

Prijavljivanje greke
Prilikom razmene SOAP poruka moe nastati greka Body Fault faultcode faultstring faultactor detail
<Envelope ...> <Body> <Fault> <faultcode> ... </faultcode> <faultstring> ... </faultstring> <faultactor> ... </faultactor> <detail> ... </detail> </Fault> </Body> </Envelope>

SOAP kodiranje
Predstavljanje podataka unutar SOAP poruke naziva se SOAP kodiranje Odnosi se na podatke koji se nalaze unutar Body elementa Zato je vano kodiranje ? S obzirom da su poruke sredstvo preko kojih aplikacije komuniciraju, neophodno je da one budu formirane na nain koji im je razumljiv. Ovo se pre svega odnosi na aplikacije koje primaju poruku. - da li je 1234 broj ili obian tekst ? - to je tano integer (16, 32 ili 64 bita) ?

Uopteni sistem tipova


Visual Basic C# Oracle

Uopteni sistem tipova SQL Server ...

Java

Web Services Description Language - WSDL -

WSDL
Kako potencijalnom korisniku objasniti koje funkcije Web servis izlae i koje parametre svaka ta funkcija prihvata? Da li je SOAP dovoljan za to? Primer SOAP poruke kojim se ilustruje poziv Web servisa. Poreenje: poziv funkcije C++ biblioteke na osnovu nekog posedovanja header datoteke. primera, bez

Reenje je WSDL. Njime se definiu i opisuju Web servisi, ba kao to header datoteke definiu i opisuju tradicionalne binarne datoteke.

WSDL je gramatika bazirana na XML-u za opisivanje Web servisa.

Opis servisa pokriva sve detalje koji su neophodni za komunikaciju sa servisom, to ukljuuje format poruke, transportne protokole i lokaciju servisa.

Element Types
Koristi se za opisivanje tipova ili struktura podataka koji e se koristiti u porukama Strukture podataka opisane ovim elementom su apstraktni tipovi Sintaksa za definisanje elementa types ... <types> ... </types> ...

Element Message
Sastoji se od jednog ili vie elemenata part, pri emu svaki taj element part ukazuje na odreeni tip koji je definisan elementom types. Nazivi message elemenata su proizvoljni, ali se unutar WSDL dokumenta ne smeju pojaviti dva sa istim nazivom. Ovo isto vai i za part elemente. Elementi part se koriste za logiko razdvajanje podataka unutar poruke Sintaksa za definisanje elementa message
... <message name=nmtoken> <part name=nmtoken element=qname | type=qname/> </message> ...

WSDL elementi
Part ... ... ... Message ...

Element PortType
Predstavlja imenovani skup apstraktnih operacija i obuhvaenih apstraktnih poruka, odnosno skup poruka koje su grupisane u operacije, pri emu operacija predstavlja jedinicu rada servisa. Svaku operaciju mogu da ine input, output i fault poruka, a to koje e se od njih pojaviti zavisi od tipa operacije. Ove operacije se mogu porediti sa metodama. (ulazni i izlazni parametri metode input i output elementi) Sintaksa za definisanje elementa PortType ... <portType name="nmtoken"> <operation name="nmtoken"> <input name="nmtoken" message="qname"/> <output name="nmtoken" message="qname"/> <fault name="nmtoken" message="qname"/> </operation> </portType> ...

WSDL elementi
Part ... ... ... Message Apstraktan tip krajnje take Operation ... ...

PortType

Element Binding
Elementom Binding se definie kako je operacija povezana sa odreenim protokolom, odnosno definie se format poruke i detalji vezani za protokol. Sintaksa za definisanje elementa Binding je slina sintaksi elementa PortType, ali se svaka operacija prevodi u operaciju za odreeni protokol. ... <binding name="nmtoken" type="qname"> ... <operation name="nmtoken"> ... <input name="nmtoken"> ... </input> <output name="nmtoken"> ... </output> <fault name="nmtoken"> ... </fault> </operation> </binding> ...

WSDL elementi
Part ... ... ... Message Apstraktan tip krajnje take Operation ... ...

PortType

Konkretan tip krajnje take

Binding

...

Element Port
Element Port povezuje definisani element Binding sa adresom, ime se zapravo predstavlja stvarna mrena krajnja taka odnosno stvarne mrene krajnje take na kojima servis komunicira.

Svaki Port ukazuje na prethodno definisani element Binding i na samo jednu adresu.

Sintaksa za definisanje elementa Port ... <service ...> <port name=''nmtoken'' binding=''qname''> ... </port> </service> ...

WSDL elementi
Part ... ... ... Message Abstraktan tip krajnje take Operation ... ...

PortType

Konkretan tip krajnje take Instanca krajnje take

Binding

...

...

Port

...

Element Service
Element servis predstavlja kolekciju elemenata Port. Servis moe da sadri vie port-ova koji koriste isti portType, ali imaju razliita povezivanja i/ili adrese. U tom sluaju portovi predstavljaju alternative. Korisnik vri izbor na osnovu protokola za komunikaciju ili na osnovu udaljenosti adrese. Sintaksa za definisanje elementa PortType ... <service name=nmtoken> <port ...> </port> </service> ...

WSDL elementi
Part ... ... ... Message Abstraktan tip krajnje take Operation ... ...

PortType

Konkretan tip krajnje take Instanca krajnje take

Binding

...

...

Port

...

Servis

Service

...

Primer Web servis Kursna lista

Projektni zahtev
Potrebno je kreirati Web servis Narodne banke Jugoslavije kojim se omoguava da potencijalni korisnici, preko Interneta dobiju sve potrebne informacije u vezi sa zvaninom kursnom listom. Informacije se odnose na srednji, prodajni i kupovni kurs odreene valute. Pored ovih informacija, Web servis treba da omogui i uvid u iznos koji se dobija prilikom konverzije iz jedne u drugu valutu, kao i uvid u proviziju koja se tom prilikom naplauje. Znai, ovim Web servisom potrebno je omoguiti da se deo poslovanja Narodne banke Jugoslavije izloi na Internet. Posle kreiranja, Web servis oglasiti na adresi ''http://www.nbj.com/servisi/kursnalista''. Ovo e biti lokacija na kojoj e potencijalni korisnici moi da komuniciraju sa Web serisom.

Koriena arhitektura
Prezentacioni sloj

Podsloj poslovnih pravila

Podsloj pristupa podacima

Sloj podataka

Infrastruktura Web servisa Kursna lista


Registar http://www.uddi.com 1 Lociranje servisa Link ka discovery dokumentu Discovery http://www.nbj.com/kursnalista.disco 3 Zahtev za discovery dokumentom Discovery document Description http://www.nbj.com/kursnalista.asmx?wsdl 5 Zahtev za opisom servisa Opis servisa Poziv servisa 7 Zahtev Odgovor 8 6 Web servis 4 2 Registar servisa

Korisnik Web servisa

You might also like