280 likes | 424 Views
WSDL. Jovica Živković. Osnove Web Servis -a. C ilj: omogućiti povezivanje distibuiranih softverskih komponenti bez obzira na kojoj su platformi realizovani, koji je programski jezik pri tom korišćen,kao i platforma na kojoj se izvršavaju.
E N D
WSDL Jovica Živković
OsnoveWeb Servis-a • Cilj: omogućiti povezivanje distibuiranih softverskih komponenti bez obzira na kojoj su platformi realizovani, koji je programski jezik pri tom korišćen,kao i platforma na kojoj se izvršavaju. • Vizija: Veliki broj nezavisnih komponenti dostupnih preko Interneta koje su upotrebljive na bilo kojoj platformi i svim razvojnim jezicima.
Definicija • Web servisi su modularne, samoopisujiće aplikacije koje se mogu objaviti,locirati i pozvati sa bilo koje tačke Web-a. • “Sistem dizajniran da podrži interakciju raznorodnih sistema preko mreže” –(W3C)
Aplikacione komponente • Diskretna jedinica programskog koda • Komuniciraju putem otvorenih protokola (HTTP, SMTP, FTP,...) • Samostalne i samoopisujuće • Bazirani na XML-u(univerzalni jezik za razmenu podatak na Internetu) • Web usluge mogu koristiti druge aplikacije • Lako pronalaženje pomoću mehanizma za traženje web servisa
Razlozi za korišćenje Web servisa • Interoperabilnost (interoperability) • SOA (Service Oriented Architecture) • Skalabilnost
Interoperabilnost • Sposobnost za zajednički rad različitih sistema,tehnika ili organizacija. • Standardizacija • Primer softvera -> više programa koristi isti format ili isti protokole
SOA – Service Oriented Architecture • Je pristup u razvoju softvera koji podrazumeva razdvajanje funkcija u odvojene sisteme, dostupne preko mreže. • Mogućnost korišćenja i kombinovanja već implementiranih funkcijonalnosti • “Oblikvišeslojneorganizacijeračunarskihsistemakojiobezbeđujedeljenjelogikeposlovanjaiinformacijaodstranerazličitihsoftverskihsistemainačinanjihovogkorišćenja”, Gartner
Skalabilnost • Potreba za menjenje postojećih skupa funkcionalnosti (povećanje ili smanjenje) uz minimalne troškove i najmanji mogući uticaj na rad sistema.
WSDL • WSDL (Web Services Description Language) – jezik za opisivanje web servisa. • Bazira se na XML-u • To je XML dokument • Koristi se za opis web servisa • Koristi se za lociranje Web servisa • Ustanovljen od strane konzorcijuma W3C, 26.06.2007
4 glavna elementa WSDL fajla za opis Web servisa: • WSDL dokument može da sadrži i druge elemente!
WSDL portovi • <portType> - “najvažniji element WSDL dokumenta” • Predstavlja definiciju “interfejsa” web servisa • definiše operacije koje mogu biti izvršene na dati web servis • definiše poruke koje se razmenjuju u toku komunikacije • Definiše tačke pristupa web servisu • Najčešće sadrži kombinaciju više message elemenata • Može se uporediti sa bibliotekom funkcija u programskim jezicima
<message> • definiše naziv poruke i opisuje poruku • sastoji od nijednog ili više delova (part)
Primer <messagename=”BookInfo”> <partname=”title” type=”xs:string”> Mark </part> <partname=”author” type=”xs:string”> Mr. T </part> </message> <portTypename=”Catalog”> <operationname=”GetBook”> <inputname=”Msg1” message=”BookInfo” /> </operation> </portType>
Request-Response operation <messagename="getBookRequest"> <partname=“title" type="xs:string"/></message><messagename="getBookResponse"><partname=“author" type="xs:string"/></message><portTypename=“Catalog"> <operationname="getAuthor"><inputmessage=" getBookRequest "/><outputmessage="getBookResponse"/> </operation></portType>
<types> Koji tipovi podataka se prenose? • Opisuje sve tipove podataka koje se koriste između klijenata i servera • WSDL preporučuje upotrebu XML Schema za definisanje tipova podataka • WSDL ne ograničava izbor jezika za definisanje tipova podataka, moguće je koristiti i druge jezike osim W3C XML Schema • Ugrađeni W3C XML Schema tipovi podataka ne moraju se eksplicitno importovati
<binding> - povezivanje • Definiše konkretan protokol i format podataka za portType • Može se koristiti • Standardni protokol (HTTP, SOAP, SMTP...) • Definisati nov • Bindind element ima dva atributa- name and type Name definiše ime bindinga, koje može biti proizvoljno, Type ukazuje na port za binding
<messagename="getTermRequest"> <partname="term" type="xs:string"/></message><messagename="getTermResponse"> <partname="value" type="xs:string"/></message><portTypename="glossaryTerms"> <operationname="getTerm"> <inputmessage="getTermRequest"/> <outputmessage="getTermResponse"/> </operation></portType><bindingtype="glossaryTerms" name="b1"> <soap:bindingstyle="document"transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operationsoapAction="http://example.com/getTerm"/> <input><soap:bodyuse="literal"/></input> <output><soap:bodyuse="literal"/></output> </operation></binding>
Ostali elementi • <import> Dodaje sadržaj datog namespace-a u tekući WSDL dokument <import namespace=http://www.nebitno.com/dodatniTipovi location=http://www.nebitno.com/schemas/dodatniTipovi.xsd/> Dodatni namespace definisan je u datom fajlu Preporučuje se navođenje apsolutne URL putanje zbog prenosivosti • <service> Koristi se kada je potrebno definisati konkretan endpoint za web servis, nije obavezan. Servis je skup portova, a svaki port predstavlja po jedan endpoint u komunikaciji. Moguće je definisati servis koji se sastoji od portova koji su dostupni na različitim adresama.
<servicename="NS Quantash Market"> <documentation>Currentpricesat the NS QuantashMarket</documentation> <portname="PricesPort" binding="PricesBinding"> <soap:addresslocation="http://www.nsmarket.co.yu/Quantash/Prices"/> </port> </service>
Preporuke • Operacijeweb servisa bi trebalo da predstavljaju "krupnije" poslovne transakcije – nije potrebno svaku metodu Java klase proglasiti za WSDL operaciju • Iako je WSDL definicija tesno vezana sa programskim kodom, u nju ne treba da uđeništa što korisnik ne bi trebalo da zna – WSDL definicija predstavlja metapodatke o programskom kodu • KorišćenjeW3C XML Schema tipova za postizanje maksimalne interoperabilnosti
Pitanja • Šta je WSDL? • Struktura WSDL-a? • Tipovi operacija? • PortType element? • Binding element?