Q:
Šta su to uopšte Web Servisi i čemu služe?
A: Ulogu i značaj Web Servisa najlakše možemo razumeti ako se poslužimo primerom. Pogledajmo jednu tipičnu Web aplikaciju kao što je recimo Systran-ov on-line prevodilac (
http://www.systransoft.com ). Kako radi ova aplikacija? Korisnik startuje neki web browser, pošalje http zahtev za gorepomenuti URL i dobije HTML stranu na kojoj je između ostalog forma za unos teksta i izbor jezika. Kada unese tekst, korisnik pritisne "Translate" i na taj način pošalje sledeći http zahtev server aplikaciji; ona prevede traženi tekst i vrati HTML stranu na kojoj se između ostalog nalazi i prevod traženog teksta. Dakle, Systran-ova aplikacija ne samo da prevodi tekst već i određuje na koji način će taj prevod biti prikazan kod korisnika. Da bi se ovaj prevodilac koristio, neophodno je imati web browser koji je podržan od strane Systran-a.
E sad, pretpostavimo da je Systran napravio svoj on-line prevodilac tako da izloži svoju osnovnu funkciju (prevođenje teksta) bez određivanja vizuelnog interfejsa kod prevodioca. Ta aplikacija bi očekivala tekst "zapakovan" u neki standardan format, prevela bi tekst i vratila ga onom ko je tražio prevod u tom istom formatu, bez ikakvih uputstava na koji način taj prevod treba prikazati. Upravo to rade Web servisi: oni "ponude" funkcije korisničkim programima preko interneta. Format kojim se razmenjuju poruke se zove SOAP i baziran je na XML - u. Zbog toga se ponekad upotrebljava i naziv XML Web servisi.
Q:
Koje su prednosti Web servisa u odnosu na "klasične" Web aplikacije.
A: Prednosti su sledeće:
1. Fleksibilniji su. Klasične Web aplikacije se mogu koristiti samo uz pomoć Web browser-a, pri čemu korisnik nema nikakvog uticaja na to kako će rezultat izgledati na njegovom ekranu, osim ako ne napravi program koji će da iz dobijenog HTML-a "izvlači" interesantne podatke i prikazuje ih na željeni način. Web servise mogu da koriste najrazličitiji programi: počev od drugih Web servisa, preko Web aplikacija, GUI programa ili čak tzv. command-line aplikacija. Recimo servis za prevod teksta koji smo pomenuli kao primer, može da koristi Altavista.com, program za obradu teksta kao što je MS Word, može se napraviti i programčić u Unix tradiciji koji bi radio u stilu "ttx -ef mytextfile" (prevod sadržaja fajla mytextfile sa engleskog na francuski), a mogao bi da bude korišćen i sa npr. mobilnih telefona ili ručnih računara koji imaju vezu sa internetom. Svi ovi različiti "klijenti" bi koristili jedan isti Web servis i autori tog servisa ne bi morali ni da znaju kakve sve različite aplikacije ga koriste.
2. Štedljiviji su po pitanju opterećenja mreže i resursa servera. Ako opet pogledamo primer sa Systran-ovom Web aplikacijom, videćemo da ona najpre mora da pošalje korisniku HTML sa formom za unos teksta, a posle prevoda šalje mu ne samo prevedeni tekst, već i HTML kod koji opisuje kako taj tekst treba da bude prikazan. Web servis bi primio jedan zahtev sa originalnim tekstom i poslao jedan odgovor sa prevedenim tekstom - nikakav dodatni HTML.
3. Lakši su za razvoj, testiranje i održavanje. Kod Web aplikacije je neophodno odraditi ne samo funkciju programa, već i dizajn i sve to dobro istestirati sa raznim browserima i platformama. Ko je probao da uskladi da Web aplikacija izgleda dobro na različitim browserima zna kakva je to muka (pitajte autora ovog sajta), a kad se napravi neka izmena, proces testiranja ide iz početka. Sa Web servisima svega toga jednostavno nema. Autor servisa brine o funkciji - prikaz je na klijentima.
Q:
Znači li to da će Web servisi zameniti Web aplikacije koje rade sa HTML-om?.
A: Ne, osim u retkim slučajevima. Web servisi imaju svoj spektar primene koji je mnogo širi od onog koje pokrivaju Web aplikacije. Međutim, u mnogim slučajevima je još uvek bolje raditi sa HTML prikazom nego praviti specijalizovane programe koji će tumačiti podatke dobijene od servera. ES je primer Web aplikacije koja treba da ostane u ovom obliku, mada nije nemoguće dodati i Web servis.-menad�erskom delu firme. Rezul