web servisi
DESCRIPTION
Elektornsko poslovanje - Domaci radWeb ServisiTRANSCRIPT
Web ServisiMiloš Cvjetković 24/07Nemanja Tomić 07/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.
1. Publish 2. Find
3. Bind
Web ServiceRegistar
Web Service Provider
Web Service 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-8Content-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