web servisi

25
Web Servisi Miloš Cvjetković 24/07 Nemanja Tomić 07/07

Upload: milos-cvjetkovic

Post on 29-Nov-2014

8.943 views

Category:

Technology


1 download

DESCRIPTION

Elektornsko poslovanje - Domaci radWeb Servisi

TRANSCRIPT

Page 1: Web Servisi

Web ServisiMiloš Cvjetković 24/07Nemanja Tomić 07/07

Page 2: Web Servisi

Sadržaj

• Ciljevi Web Servisa

• Istorija Web Servisa

• Model Web Servisa

• Komponente Web Servisa

Page 3: Web Servisi

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.

Page 4: Web Servisi

Definicija Web Servisa

Jedna veoma prosta definicija glasi:

“Web Servis je aplikaciona komponenta dostupna preko otvorenih protokola.”

Page 5: Web Servisi

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

Page 6: Web Servisi

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.

Page 7: Web Servisi

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.

Page 8: Web Servisi

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.

Page 9: Web Servisi

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

Page 10: Web Servisi

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

Page 11: Web Servisi

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

Page 12: Web Servisi

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

Page 13: Web Servisi

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

Page 14: Web Servisi

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

Page 15: Web Servisi

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.

Page 16: Web Servisi

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

Page 17: Web Servisi

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.

Page 18: Web Servisi

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>

Page 19: Web Servisi

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>

Page 20: Web Servisi

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.

Page 21: Web Servisi

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

Page 22: Web Servisi

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

Page 23: Web Servisi

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>

Page 24: Web Servisi

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.

Page 25: Web Servisi

HVALA NA PAŽNJI