You are on page 1of 25

Web Servisi

Miloš Cvjetković 24/07


Sadržaj

• Ciljevi Web Servisa


• Istorija Web Servisa
• Model Web Servisa
• Komponente Web Servisa
Ciljevi Web Servisa
Mogućnost programiranja Web-a.
Primer: Imate određeni Excel dokument
gde pratite vašu finasijsku situaciju :
računi u banci, krediti, primanja itd.
Ukoliko bi vam neke informacije bile
dostupne putem XML Web servisa,
Excel bi mogao sam da osvežava i
prezentuje osvežene podatke korisniku.
Definicija Web Servisa
Jedna veoma prosta definicija glasi:

“Web Servis je aplikaciona komponenta


dostupna preko otvorenih protokola.”
Istorija
Web servisi su proistekli iz prethodnih
tehnologija koje su služili istoj svrsi kao
što su RPC, ORPC (DCOM, CORBA i JAVA
RMI)

Web servisi pokušavaju da prevaziđu tri


glavna problema:
1. Interoperabilnost
2. Problem sa Firewall uređajima
3. Kompleksnost
Interoperabilnost
Raniji distrubuirani sistemi suočili su se
sa problemom interoperabilnosti zato jer
je svaki proizvođač implementirao njegov
format za distribuciju podataka.

• Developeri DCOM aplikacija striktno su se držali


Windows operativnog sistema
• Developeri RMI aplikacija isključivo su koristili JAVA
programski jezik.
Problemi sa Firewall uređajima
Postojala je problematična komunikacija
između aplikacija dve ili više kompanija.
Razlog tome što npr. CORBA ili DCOM koriste
nestandardne portove za tu komunikaciju.
Web servisi koriste standardan HTTP
protokol za komunikaciju pošto Firewall
uređaji dozvoljavaju protok podataka na portu
80 (HTTP)i time čine komunikaciju među
aplikacijama jednostavnu i dinimičnu.
Kompleksnost
Web servisi su developer-frendly servisni
sistemi

Mnogi od pomenutih starijih tehnologija kao


što su RMI, DCOM ili CORBA zahtevaju
dugačak proces učenja istih pre nego sto
počnemo sa implementacijom

Nove tehnologije i programski jezici u sve


većoj meri implementiraju Web Servise.
Konačna definicija Web Servisa
Dosta preciznija definicija glasi:

Web servisi su aplikacione komponente


koje:
•Komuniciraju preko otvorenih protokola
(HTTP,SMTP itd.)
•Procesuiraju XML poruke koristeći SOAP
•Opisuju te poruke koristeći XML Schemu
•Pružaju krajnji opis koristeći WSDL
•Mogu biti “pronađene” korišćenjem UDDI
Komponente Web Servisa
• XML – eXtensible Markup Language –
jedinstveni mehanizam za razmenu i prikazivanje
podataka
• SOAP – Simple Object Access Protocol –
standardni način za komunikaciju
• UDDI – Universal Description, Discovery
Integraton specification – mehanizam za
registrovanje i lociranje Web servisa
• WSDL – Web Services Description Language –
standardni meta jezik za opisivanje Web Servisa
Primer jednog Web Servisa
Kupac (koji može biti software klijent) naručuje robu
od servisa prodavca
Kupac nalazi servis prodavca koristeći UDDI
direktorijum
Prodavčev servis je Web Servis čiji je interfejs
definisan koristeći Web Services Description
Language (WSDL)
Kupac započinje proces kupovine na prodavčevom
servisu koristeći Simple Object Access Protocol
(SOAP) i WSDL definicije servisa prodavca
Kupac tačno zna šta očekuje u odgovoru SOAP
poruke zato jer je to definisano u WSDL-u
prodavčevog servisa
Model Web Servisa
Arhitektura Web Servisa je bazirana na interkaciji
između tri uloga:
1. Service provider
2. Service registry
3. Service requestor
A te interakcije mogu biti:
1. Operacije Publish
2. Operacije Find
3. Operacije Bind
Model Web Servisa
Model Web servisa predstavlja Publish, Find i Bind
paradigmu.

Web Service
Registar

1. Publish 2. Find

Web Service 3. Bind Web Service


Provider Klijent
XML
• XML je skraćenica za eXtensible Markup
Language
• XML je jezik za označavanje vrlo sličan HTML-u
• XML je dizajniran da OPIŠE PODATKE
• XML tagovi nisu predefinisani. Korisnik mora
pre korišćenja definisati tagove.
• Kao takav predstavlja perfektan izbor koji će
omogućiti komunikaciju podataka Web Servisa
između različitih platformi
SOAP
SOAP originalno znači “Simple Object Access
Protocol”
Web Servisi pružaju korisnu funkcionalnost svojim
Web korisnicima koristeći standardni Web protokol
zvani SOAP
SOAP je standardni XML “rečnik” koji omogućava
programima na različitim računarima da komuniciraju
kroz različite tipove mreža. SOAP je jednostavan
opisni jezik kojim se opisuju poruke koje se
razmenjuju.
SOAP uobičajeno koristi HTTP za transport poruka
gde HTTP poruka nosi SOAP poruku kao svoj korisni
deo.
Karakteristike SOAP-a
SOAP ima tri osnovne karekteristike:

1.Fleksibilnost – dodatne komponente


tehnologije Web Servisa za sigurnost i rutiranje
su jos u fazi razvoja
2.Neutralnost – SOAP za transport može koristit
bilo koji sloj aplikacionog nivoa HTTP, SMPT itd.
3.Nezavisnost – SOAP dozovljava korišćenje bilo
kog programskog jezika
Struktura SOAP poruke
SOAP poruka je običan XML dokument koji
sadrži sledeće elemente:
Obavezni Envelope element koji zapravo
identifikuje XML dokument kao SOAP poruku
Opcioni Header element koji sadrži header
informacije
Obavezni Body element koji sadrži informacije
za poziv i odgovor Web Servisa
Opcioni Fault element koji pruža informacije o
tome šta treba uraditi ukoliko dođe do greške
prilikom procesuiranja poruke.
SOAP Zahtev
POST /InStock HTTP/1.1
Host: www.stock.org
Content-Type: application/soap+xml; charset=utf-8 Content-Length: 150

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding”>

<soap:Body xmlns:m="http://www.stock.org/stock">  
  <m:GetStockPrice>
<m:StockName>IBM</m:StockName>    
 </m:GetStockPrice>
</soap:Body>
</soap:Envelope>
SOAP Odgovor
HTTP/1.1 200 OK
Content-Type: application/soap; charset=utf-8
Content-Length: 126

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-
envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-
encoding">

<soap:Body xmlns:m="http://www.stock.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
Sigurnost podataka kod SOAP-a
SOAP kao protokol za transport podataka
koristi HTTP protokol, tako da se sigurnost
može povećati korišćenjem SSL-a.

Ali SOAP može koristiti veliki broj raznih


aplikacionih protokola (SMTP npr.), izbor
protokola koji će koristiti zavisi od sigurnosnih
zahteva u konkretnoj implementaciji.

Sigurnosna specifikacija Web Servisa definiše


kompletni sistem za enkripciju podataka.
WSDL
WSDL – skraćenica za Web Services Description
Language
WSDL je XML “rečnik” kojim se opisuju Web
Servisi. On dozvoljava da developeri opišu Web
Servis kao i konkretne mogućnosti.
WSDL specificira šta Request poruka mora da
sadrži i u kom obiliku će biti Response poruka
na konkretan zahtev. To je “ugovor” između
Web Servisa i klijenta koji želi koristiti taj servis
WSDL još sadrži i informacije gde se Web Servis
nalazi i koji aplikacioni protokol koristi za
komunikaciju sa klijentima
Struktura WSDL-a
WSDL je takođe običan XML dokument

On definiše Web Servis koristeći sledeće


glavne elemente:

•port type – operacije koje obavlja Web Servis


•message – poruke koje koristi Web Servis
•types – tipove podataka koje koristi Web Servis
•binding – protokol koji se koristi za komunikaciju
Primer WSDL dokumenta
<message name="GetStockPriceRequest">
<part name="stock" type="xs:string"/>
</message>
<message name="GetStockPriceResponse">
<part name="value" type="xs:string"/>
</message>

<portType name=“StocksRates">
<operation name=“GetStockPrice">
<input message=“GetStockPriceRequest"/>
<output message=“GetStockPriceResponse"/>
</operation>
</portType>
UDDI
UDDI je skraćenica od Universal
Decription, Discovery and integration

UDDI je direktorijum koji čuva


informacije o Web Servisima, poput
telefonskog imenika

UDDI je direktorijum interfejsa Web


Servisa opisanog od strane WSDL-a.
HVALA NA PAŽNJI 

You might also like