Što je web usluga?
Web usluga je standardizirani medij za širenje komunikacije između klijenta i poslužiteljskih aplikacija na World Wide Webu. Web usluga je softverski modul koji je dizajniran za izvršavanje određenog skupa zadataka.
- Web usluge u računalstvu u oblaku mogu se tražiti putem mreže i u skladu s tim se mogu i pozivati.
- Kada se pozove, web usluga mogla bi pružiti funkcionalnost klijentu koji poziva tu web uslugu.
U ovom uputstvu za Web usluge naučit ćete osnove web usluga -
- Kako WebServices rade?
- Zašto vam treba web usluga?
- Vrsta web usluge
- Prednosti web usluga
- Arhitektura web usluga
- Karakteristike web usluga
- SOAP web usluge.
- ODMORNE web usluge.
- Svaki SOAP dokument mora imati korijenski element poznat kao element
. Korijenski element prvi je element u XML dokumentu. - "Omotnica" je pak podijeljena u 2 dijela. Prvo je zaglavlje, a sljedeće tijelo.
- Zaglavlje sadrži podatke usmjeravanja, što je u osnovi informacija koja XML dokumentu govori kojem klijentu treba biti poslan.
- Tijelo će sadržavati stvarnu poruku.
Kako WebServices rade?
Gornji dijagram prikazuje vrlo pojednostavljen prikaz kako bi web usluga zapravo funkcionirala. Klijent bi pozivao niz poziva web usluga putem zahtjeva prema poslužitelju koji bi bio domaćin stvarnoj web usluzi.
Ti se zahtjevi podnose putem takozvanog poziva udaljene procedure. Pozivi na daljinski postupak (RPC) pozivi su upućeni metodama koje hostira relevantna web usluga.
Kao primjer, Amazon nudi web uslugu koja pruža cijene proizvoda koji se prodaju putem interneta putem amazon.com. Prednji kraj ili prezentacijski sloj mogu biti u .Netu ili Javi, ali bilo koji programski jezik mogao bi komunicirati s web uslugom.
Glavna komponenta dizajna web usluge su podaci koji se prenose između klijenta i poslužitelja, a to je XML. XML (proširivi jezik za označavanje) je pandan HTML-u i jednostavan je za razumjeti posredni jezik koji razumiju mnogi programski jezici.
Dakle, kada aplikacije međusobno razgovaraju, zapravo razgovaraju u XML-u. To pruža zajedničku platformu za razvijanje aplikacija na različitim programskim jezicima za međusobno razgovore.
Web usluge koriste nešto poznato kao SOAP (Simple Object Access Protocol) za slanje XML podataka između aplikacija. Podaci se šalju putem uobičajenog HTTP-a. Podaci koji se s web usluge šalju aplikaciji nazivaju se SOAP porukom. SOAP poruka nije ništa drugo nego XML dokument. Budući da je dokument napisan u XML-u, klijentska aplikacija koja poziva web uslugu može biti napisana na bilo kojem programskom jeziku.
Zašto vam treba web usluga?
Suvremene poslovne aplikacije koriste se raznim programskim platformama za razvoj web aplikacija. Neke se aplikacije mogu razvijati na Javi, druge na .Netu, dok neke na Angular JS, Node.js itd.
Ove heterogene aplikacije najčešće trebaju neku vrstu komunikacije da bi se dogodile između njih. Budući da su izgrađeni pomoću različitih razvojnih jezika, postaje stvarno teško osigurati točnu komunikaciju između aplikacija.
Ovdje dolaze web usluge. Web usluge pružaju zajedničku platformu koja omogućava da više aplikacija izgrađenih na različitim programskim jezicima imaju mogućnost međusobne komunikacije.
Vrsta web usluge
Postoje uglavnom dvije vrste web usluga.
Da bi web usluga bila u potpunosti funkcionalna, postoje određene komponente koje moraju biti na mjestu. Te komponente moraju biti prisutne bez obzira na to koji se razvojni jezik koristi za programiranje web usluge.
Pogledajmo ove komponente detaljnije.
SOAP (protokol za pristup jednostavnom objektu)
SOAP je poznat kao transportno neovisni protokol za razmjenu poruka. SOAP se temelji na prijenosu XML podataka kao SOAP poruka. Svaka poruka ima nešto što je poznato kao XML dokument. Samo struktura XML dokumenta slijedi određeni obrazac, ali ne i sadržaj. Najbolji dio web usluga i SOAP-a je taj što se svi šalju putem HTTP-a, što je standardni web protokol.
Evo od čega se sastoji SOAP poruka
Dijagram u nastavku prikazuje jednostavan primjer komunikacije putem SOAP-a.
O SOAP-u ćemo detaljno razgovarati u ovom vodiču.
WSDL (jezik opisa web usluga)
Web usluga se ne može koristiti ako je nije moguće pronaći . Klijent koji poziva web uslugu trebao bi znati gdje web usluga zapravo boravi.
Drugo, klijentska aplikacija mora znati što web usluga zapravo radi, kako bi mogla pozvati pravu web uslugu. To se postiže uz pomoć WSDL-a, poznatog kao jezik opisa web usluga. Datoteka WSDL opet je datoteka temeljena na XML-u koja u osnovi govori klijentskoj aplikaciji što web usluga radi. Korištenjem WSDL dokumenta klijentska aplikacija mogla bi razumjeti gdje se web usluga nalazi i kako se može koristiti.
Primjer web usluge
Primjer WSDL datoteke za web usluge dat je u nastavku.
Važni aspekti koje treba napomenuti o gornjim primjerima web usluga WSDL deklaracije su sljedeći:
-
- parametar poruke u definiciji WSDL koristi se za definiranje različitih podatkovnih elemenata za svaku operaciju koju izvodi web usluga. Dakle, u gornjim primjerima web usluga imamo dvije poruke koje se mogu razmijeniti između web usluge i klijentske aplikacije, jedna je "TutorialRequest", a druga je "TutorialResponse". TutorialRequest sadrži element nazvan "TutorialID" koji je tipa string. Slično tome, operacija TutorialResponse sadrži element nazvan "TutorialName" koji je ujedno i vrsta niza. -
- Ovo zapravo opisuje operaciju koju može izvršiti web usluga, a koja se u našem slučaju naziva Tutorial. Ova operacija može potrajati 2 poruke; jedna je ulazna poruka, a druga je izlazna poruka. - ovaj element sadrži protokol koji se koristi. Dakle, u našem slučaju definiramo ga da koristi http ( http://schemas.xmlsoap.org/soap/http ). Također specificiramo druge detalje za tijelo operacije, poput prostora imena i treba li poruku kodirati.
Pojedino ćemo razgovarati o "WDSL-u" u ovom vodiču.
Univerzalni opis, otkrivanje i integracija (UDDI)
UDDI je standard za opisivanje, objavljivanje i otkrivanje web usluga koje pruža određeni pružatelj usluga. Pruža specifikaciju koja pomaže u hostiranju informacija na web uslugama.
Sada smo raspravljali u prethodnoj temi o WSDL-u i kako sadrži informacije o tome što web usluga zapravo radi. Ali kako klijentska aplikacija može pronaći WSDL datoteku kako bi razumjela razne operacije koje nudi web usluga? Dakle, UDDI je odgovor na ovo pitanje i nudi spremište na kojem se mogu hostirati WSDL datoteke. Tako će klijentska aplikacija imati potpuni pristup UDDI-u, koji djeluje kao baza podataka koja sadrži sve WSDL datoteke.
Baš kao što telefonski imenik ima ime, adresu i telefonski broj određene osobe, na isti će način UDDI registar imati relevantne informacije za web uslugu . Tako da klijentska aplikacija zna gdje je može pronaći.
Prednosti web usluga
Već razumijemo zašto su se uopće pojavile web usluge, a to je pružanje platforme koja različitim aplikacijama omogućuje međusobni razgovor.
No, pogledajmo popis prednosti web usluga zašto je važno koristiti web usluge.
-
Izlaganje poslovne funkcionalnosti na mreži - Web usluga je jedinica upravljanog koda koja pruža neku vrstu funkcionalnosti klijentskim aplikacijama ili krajnjim korisnicima. Na ovu se funkciju može pozivati putem HTTP protokola, što znači da se na nju može pozivati i putem Interneta. Danas su sve aplikacije na Internetu što svrhu web usluga čini korisnijom. To znači da web usluga može biti bilo gdje na Internetu i pružiti potrebne funkcije po potrebi.
-
Interoperabilnost među aplikacijama - web usluge omogućuju različitim aplikacijama da međusobno razgovaraju i međusobno dijele podatke i usluge. Sve vrste aplikacija mogu međusobno razgovarati. Dakle, umjesto pisanja određenog koda koji mogu razumjeti samo određene aplikacije, sada možete napisati generički kôd koji mogu razumjeti sve aplikacije
-
Standardizirani protokol koji svi razumiju - web usluge koriste standardizirani industrijski protokol za komunikaciju. Sva četiri sloja (Service Transport, XML Messaging, Service Description i Service Discovery slojevi) koriste dobro definirane protokole u stogu protokola web usluga.
-
Smanjenje troškova komunikacije - Web usluge koriste SOAP preko HTTP protokola, tako da postojeći jeftini internet možete koristiti za implementaciju web usluga.
Arhitektura web usluga
Svakom okviru je potrebna neka vrsta arhitekture kako bi se osiguralo da cjelokupni okvir funkcionira po želji, slično, i u web uslugama. Web Services Arhitektura se sastoji od tri različite uloge kao što je dano u nastavku:
- Pružatelj - davatelj kreira web uslugu i čini je dostupnom klijentskoj aplikaciji koja je želi koristiti.
- Podnositelj zahtjeva - podnositelj zahtjeva nije ništa drugo doli klijentska aplikacija koja treba kontaktirati web uslugu. Klijentska aplikacija može biti .Net, Java ili bilo koja druga aplikacija utemeljena na jeziku koja traži neku vrstu funkcionalnosti putem web usluge.
- Posrednik - Posrednik nije ništa drugo doli aplikacija koja omogućuje pristup UDDI-u. UDDI, kao što je raspravljeno u prethodnoj temi, omogućuje klijentskoj aplikaciji lociranje web usluge.
Dijagram u nastavku prikazuje kako davatelj usluga, zahtjev za uslugom i registar usluga međusobno komuniciraju.
- Objavi - Davatelj obavještava brokera (registar usluga) o postojanju web usluge korištenjem sučelja za objavljivanje brokera kako bi uslugu učinio dostupnom klijentima
- Pronađi - Podnositelj zahtjeva konzultira brokera kako bi pronašao objavljenu web uslugu
- Obvezivanje - Podatkom koji je od posrednika (registra usluga) prikupio podatke o web usluzi, podnositelj zahtjeva može povezati ili pozvati web uslugu.
Karakteristike web usluge
Web usluge imaju sljedeće posebne karakteristike ponašanja:
-
Oni se temelje na XML-u - Web usluge koriste XML za predstavljanje podataka na slojevima predstavljanja i prijenosa podataka. Korištenje XML-a eliminira svaku ovisnost o umrežavanju, operacijskom sustavu ili platformi jer je XML uobičajeni jezik koji svi razumiju.
-
Labavo povezani - Labavo povezani znače da klijent i web usluga nisu međusobno vezani, što znači da, čak i ako se web usluga s vremenom promijeni, ne bi trebala promijeniti način na koji klijent poziva web uslugu. Usvajanje slabo povezane arhitekture teži da softverske sustave učini upravljivijima i omogućuje jednostavniju integraciju između različitih sustava.
-
Sinkrona ili asinkrona funkcionalnost - Sinkronicitet se odnosi na vezivanje klijenta za izvršenje usluge. U sinkronim operacijama klijent će zapravo pričekati da web usluga dovrši operaciju. Primjer za to je vjerojatno scenarij u kojem se izvodi operacija čitanja i pisanja baze podataka. Ako se podaci čitaju iz jedne baze podataka, a zatim zapisuju u drugu, tada se operacije moraju izvoditi u slijedu. Asinkrone operacije omogućuju klijentu da pozove uslugu, a zatim paralelno izvršava druge funkcije. Ovo je jedna od uobičajenih i vjerojatno najpoželjnijih tehnika za osiguravanje da se druge usluge ne zaustave kada se izvodi određena operacija.
-
Sposobnost podrške pozivima udaljenih procedura (RPC) - web usluge omogućavaju klijentima pozivanje procedura, funkcija i metoda na udaljenim objektima pomoću protokola temeljenog na XML-u. Daljinski postupci izlažu ulazne i izlazne parametre koje web usluga mora podržavati.
-
Podržava razmjenu dokumenata - Jedna od ključnih prednosti XML-a je njegov generički način predstavljanja ne samo podataka već i složenih dokumenata. Ti dokumenti mogu biti jednostavni poput predstavljanja trenutne adrese ili složeni kao predstavljati cijelu knjigu.