Kurs: XML tehnologije i veb servisi
Modul: Distribuirane aplikacije
Autor: Vladimir Marić
Naziv jedinice: Pregled distribuiranih aplikacija
Materijali vezani uz ovu lekciju:
-
Test pregled distribuiranih aplikacija -
Pregled distribuiranih aplikacija (PDF dokument)
Tradicionalne distribuirane aplikacije
Distribuirane aplikacije su one aplikacije za ciju je obradu potrebno više fizicki razdvojenih racunara, podaci koje koristi aplikacija se takode nalaze na više fizickih lokacija. Glavni razlozi uvodenja distribuiranih aplikacija su: cena Mainframe racunara, vlasništvo nad podacima i sigurnost. Dve tradicionalne vrste distribuiranih aplikacija su pozivi udaljenih procedura i arhitekture bazirane na porukama.
Slika 1. Tradicionalne distribuirane aplikacije
Pozivi udaljenih procedura
To su pozivi procedura koje se nalaze na udaljenom sistemu. Poziv udaljene funkcije je veoma slican pozivu lokalne funkcije. Pozivi funkcije su sinhroni, tj. nit u kojoj se izvršava aplikacija je blokirana sve dok udaljena procedura ne vrati rezultat. Teško je voditi racuna o prioritetima zahteva jer rade po principu ko prvi dode, biva prvi opslužen. Javlja se i problem sa otkrivanjem tj. pronalaženjem udaljenih procedura. Ne može se na jednostavan nacin izvršiti dinamicko uravnoteženje opterecenja.
Arhitekture bazirane na porukama
Arhitekture bazirane na porukama su razvijene na bazi proizvoda koji se zasnivaju na obradi redova poruka. Jedan od takvih proizvoda je Microsoft Message Queuing. Ovo su asinhrone arhitekture koje su bazirane na razmeni poruka. Postoji problem interoperabilnosti razlicitih sistema koji su bazirani na redovima poruka jer za njihovu realizaciju nije korišcen opšteprihvaceni standard. Asinhrona obrada omogucava klijentu da obavlja odredene poslove dok ceka na izvršenje vremenski zahtevnih operacija. Postoji problem sa pakovanjem i raspakivanjem sadržaja poruka koje se razmenjuju. Poruke mogu stizati razlicitim redosledom od onog kojim su poslate što u nekim situacijam može izazvati velike probleme, narocito u situacijama kada je neophodan tacan raspored poruka.
Veb standardi
Udaljeni pozivi procedura i arhitekture bazirane na porukama su uspešno implementirane od strane brojnih organizacija, ali ovakve implementacije imaju brojne nedostatke. Distribuirani objektni modeli (binarni protokoli) kao što su: Distributed Component Object Model(DCOM), Java Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA) imaju limitacije koje su karakteristicne za binarne protokole. Jedan od problema je problem sa Firewall –ovima. Binarni protokoli su Point-to Point i neophodno je otvorito odredeni opseg portova da bi komunikacija bila moguca. Takode je veliki problem interoperabilnosti razlicitih objektnih modela. Problem je i korišcenje razlicitih formata podataka od strane razlicitih protokola. HTML je markerski jezik koji omogucava da se putem tagova kaže Browser-u kako da rasporedi i formatira odredene elemente na veb strani. HTTP je protokol koji omogucava slanje zahteva i primanje odgovora u formi HTML dokumenata. Zbog nekih nedostataka HTML, pre svega zbog nemogucnosti da opiše strukturu podataka i vezu medu podacima, uveden je XML kao univerzalni format podataka. Veb serveri komuniciraju koristeci HTTP protokol. Veb serveri primaju klijentske zahteve i šalju im oddgovor. Kompletna komunikacija se obavlja bez potrebe za otvaranjem dodatnih portova.
Pojam veb servisa
Veb servis je URL adresibilan skup funkcionalnosti koji služi kao gradivni blok za kreiranje distribuiranih aplikacija. Bazirani su na internet tehnologijama. Primer veb servisa je Microsoft Passport, autentifikacioni servis, a funkcionalnostima servisa se pristupa kroz HTTP zahteve.
To su crne kutije, obezbeduju funkcionlnost i obezbeduju interfejse za korišcenje te funkcionalnosti.
Karakteristike veb servisa
Mogu da obezbede staticke podatke (npr. demografske resurse) kao i visoko dinamicke podatke (npr. korišcenje veb servisa za rezervaciju hotelskog smeštaja). Veb servis može da referencira neki drugi veb servis da bi obezbedio potrebnu funkcionalnost. Veb servis može biti kreiran u bilo kom programskom jeziku. Postojece komponente i biblioteke je jednostavno transformisati u veb servis.
Buducnost distribuiranih aplikacija
Veb servisi se pozivaju koristeci SOAP koji je platformski neutralan protokol. Korišcenje industrijski podržanih standarda rešava problem interoperabilnosti distribuiranih aplikacija baziranih na veb servisima. Bilo koji veb servis može da komunicira sa drugim veb servisom.
Veb servis može biti pisan u bilo kom programskom jeziku. Veb servisi se nalaze na najvišem mestu na steku veb tehnologija.
Stek veb tehnologija
Na slici 2. je prikazan simbolicki stek veb tehnologija na kome se naglašava da se veb servisi nalaze na najvišem mestu. Odnosno da veb servisi predstavljaju buducnost distribuiranih aplikacija.
Slika 2. Stek veb tehnologija
Veb tehnologije i .NET
Veb tehnoligije koje se nalaze na razlicitom mestu na steku su implementirane u .NET okruženju. TCP/IP predstavlja najniži nivo na tehnološkom steku, moguce je dozvoliti distribuiranim elementima aplikacije da komuniciraju koristeci TCP/IP protokol. Klase koje to omogucavaju nalaze se u System.Net.Sockets prostoru imena.
Sockets dozvoljavaju korišcenje sesija u aplikaciji. Odgovarajuce klase koje omogucava implementaciju Socket-a nalaze se u prostoru imena System.Net.Sockets.
HTTP omogucava komunikaciju sa veb servisom. HTTP omogucava komunikaciju kroz Firewall-ove korporacija. Klase koje omogucavaju implementaciju HTTP komunikacije nalaze se u prostoru imena System.Net.
Binarni formati se implementiraju korišcenjem prostora imena System.Runtime.Remoting.
SOAP tehnologija se koristi za komunikaciju sa XML veb servisom. Klase koje omogucavaju ovu komunikaciju u .NET –u, nalaze se u prostoru imena System.Web.Services.