O WWW konceptu

Koncept World Wide Web-a (ili kraće Web) je prvi put zaživeo ranih devedesetih godina prošlog veka.

Web se može definisati kao skup međusobno povezanih hipertekst dokumenata kojima se pristupa pomoću interneta. Razvijen u okviru CERN-a, u Ženevi, prvobitno je služio naučnicima koji su imali potrebu da lako pristupe određenim informacijama koje su bile sadržane u vidu hipertekst dokumenata.

Od tog perioda pa do danas Web nije promenio svoje temelje na kojima se bazira :

  • Server-klijent arhitektura bazirana na HTTP protokolu – predstavlja podelu uloga među računarima. Računari klijenti su one mašine koje putem mreže (internet,intranet,lan) šalju određene zahteve za podacima server mašinama koje ih opslužuju. U kontekstu WWW-a, klijent je pretraživač, najčešće lociran na klijent-mašini pomoću kojeg korisnik šalje zahtev za određenom stranicom server-mašini na kojoj je instaliran web server. Traženi dokument se pronalazi a potom kao odgovor prosleđuje nazad klijentu. Prethodno opisani postupak ne bi bio moguć bez HTTP komunikacionog protokola pomoću kojeg klijent i server računari razmenjuju zahteve i odgovore.
  • Način imenovanja i referenciranja resursa (URL) – Unified Resoruce Locator, ili kraće URL, predstavlja tekstualni niz koji reprezentuje web adresu određenih resursa (dokumenata,slika…) koji su pohranjeni na server računarima širom interneta.

Na primer adresa http://www.helpwithpcs.com/jargon/url.htm  predstavlja jedan od primera URL-a.

  • Jezik za generisanje hipertekst dokumenata (HTML) – HyperText Markup Language ili HTML je jezik namenjen izradi HTML dokumenata. Njegovu sintaksu čine tzv. oznake (tzv. ‘tagovi’) pomoću kojih se uređuje sadržaj i struktura HTML dokumenata. Pretraživači ne prikazuju ove oznake ali ih interpretiraju kako bi se sadržaj HTML dokumenata prikazao na željeni način.

O web aplikacijama

Prvobitni koncept Web-a je sadržao nekoliko hiljada hipertekst dokumenata koji su međusobno mogli biti povezani. Sadržaj tih dokumenata je obično bio sačinjen od teksta statičke sadržine  koji se mogao izmeniti samo ručno. Već u početnoj fazi razvoja Web-a softver inženjeri su uvideli da klijent-server arhitektura pruža moćnu platformu u okviru koje bi korisnici pomoću pretraživača pokretali aplikacije na lokalnom ili udaljenom serveru.

Na primer, korisnik bi mogao na klijent računaru pomoću web pregledača da pošalje zahtev za određenim podacima server računaru. Server računar bi mogao, pomoću određenog programskog koda, da prikupi zahtevane podatke iz baze podataka, te podatke da formatira u okviru HTML dokumenta i isti prosledi klijent računaru. Pogledajmo sledeći prikaz kao uvod u arhitekturu web aplikacija :

Šematski prikaz arhitekture web aplikacija

Arhitektura web aplikacija

Ideja da pomoću prosleđenog URL-a klijent poziva određeni programski kod, tаčnije skriptu, koja se potom izvršava na server računaru, i koji, kao rezultat obrađenog zahteva vraća HTML dokument dinamične sadržine, uslovila je razvoj web aplikacija i skript jezika.

Za izgradnju web aplikacija uglavnom se koriste skript jezici. Osnovna razlika između skript jezika i programskih jezika (C, C++, Java,Visual Basic…) leži u tome što programski kod koji je napisan u programskim jezicima mora prvo biti kompajliran (tj. preveden u mašinski kod) da bi se mogao izvršavati.

Kod skriptnih jezika programski kod se izvršava u trenutku njegovog pokretanja i to pomoću posebnog programa (interpretera) koji istovremeno interpretira i izvršava napisani programski kod. Skriptni jezici koji služe za izgradnju web aplikacija su podeljeni u dve velike grupe.

Skriptni jezici koji se izvršavaju na klijent računarima – (npr. JavaScript,VB script) – njihov ugnježđeni kod u HTML dokumentu se izvršava u okviru pretraživača na klijent računarima. Pretežno se koriste za struktuiranje prikaza sadržaja i uređivanje interfejsa web aplikacija, interakciju sa korisnikom i drugo.

Skriptni i programski jezici koji se izvršavaju na server računarima – (npr. PHP) –  grupa jezika koji uglavnom služe izgradnji glavnih funkcionalnosti web aplikacija. Dakle, pomoću njih se najčešće realizuje poslovna logika same aplikacije. Naredna ilustracija prikazuje tipičan način funkcionisanja web aplikacija.

Kao što vidimo na prethodnom prikazu, web aplikacije se koriste u okviru web čitača (web browsers).

Tipičan ciklus izvršavanja neke funkcionalnosti web aplikacija započinje akcijom korisnika koji putem web čitača okida neki link (funkcionalnost) web aplikacije.

Dati zahtev se, putem razgranate internet mreže, upućuje Web serveru (posebna klasa softvera i/ili računara namenjenih usluživanju web stranica) na kojem je web aplikacija instalirana.

Zahtev za određenim sadržajem obično izvršava skriptu (kod) koja u, zavisnosti od prirode zahteva a pre vraćanja krajnjeg sadržaja (HTML stranice) web čitaču, može da uputi dodatne zahteve kao što je npr. učitavanje podataka sa servera baze podataka koji je lociran na istom ili udaljenom serveru.

Po izvršavanju logike skirpte obično se kao odgvor na upućeni zahtev generiše HTML dokument koji se putem internet mreže dostavlja klijentu (web čitaču)  koji obrađuje dati dokument i prikazuje ga krajnjem korisniku.

 

Tipovi web aplikacija

Najčešća podela web aplikacija se vrši po kriterijumu namene zbog kojih se koriste. Tako na primer imamo neke od sledećih tipova web aplikacija :

  • društvene mreže (Facebook, MySpace, Twitter)
  • aplikacije za uređivanje i deljenje slika (Snapfish, Flickr, Photobucket, Shutterfly)
  • kalendari (Google Calendar, O2 Calendar, Yahoo! Calendar)
  • aplikacije za dopisivanje (chat-avenue, omgpop, czateria, Meebo)
  • aplikacije za kupovinu putem interneta (Amazon)
  • adresari (Yellow.com, White Pages, AnyWho)
  • cms aplikacije i aplikacije za uređivanje blogova  (Blogger, Word Press, Tumbir)
  • webmail servisi (Gmail, Yahoo Mail, HotMail)
  • aplikacije geografskih mapa (Google Maps, MapQuest)
  • internet pretraživači (Google, Bing, Yahoo)
  • web aplikacije drugih namena…
Poznate web aplikacije
Poznate web aplikacije

Web aplikacije – prednosti i mane

Web aplikacije danas predstavljaju značajnu klasu softvera bez kojih se današnjica ne može zamisliti.

Sa njihovom pojavom početkom devedesetih godina 20. veka pa do danas doživele su vrtoglav rast kada je u pitanju broj korisnika koji ih svakodnevno koristi.

Razvojem internet i web tehnologija, web aplikacije predstavljaju ozbiljnog konkurenta uobičajnim desktop aplikacijama kada je u pitanju izbor platforme na čijim osnovama će se implementirati ideja nekog softverskog rešenja.

Razlozi ovakve konstatacije leže u činjenici da su internet aplikacije dostupne u bilo koje vreme, sa bilo kog mesta, na većini elektronskih uređaja koji služe komunikaciji. Osim toga, web aplikacije nije potrebno nadograđivati na uređajima sa kojih im se pristupa jer njima se pristupa identično kao i ostalim web stranicama.

Naravno, njihova popularnost ne bi došla do izražaja da nisu potpomognute internet tehnologijama poput  AJAX-a, server i klijent skript jezika.

Istoimene prednosti su ujedno i mane web aplikacija.

Sama arhitektura web aplikacija je višeslojne prirode zbog čega implementacija ovakvih rešenja zahteva poznavanje značajnog broja web i internet tehnologija, skriptnih i programskih jezika, mrežne arhitekture, baza podataka i drugo.

S obzirom da se pozivaju i koriste u okiru web čitača (a znamo da ih ima više) mogu da postoje međusobne razlike u prikazu i funkcionisanju iste web aplikacije u različitim web čitačima.

Reč je o međusobnoj nekompatibilnosti web čitača. Iako je ovaj problem danas u većini slučajeva rešiv zahvaljujući međusobnom usaglašavanju standarda rada web čitača i sve većoj primeni opšteprihavćenih biblioteka koda u razvoju web aplikacija (npr. JavaScript biblioteka) te razlike su danas značajno umanjene, ipak postoje slučajevi u kojima je korišćenje web aplikacija u određenim web čitačima na neki način degradirano jer se obično starije verzije određenih web čitača ne uzimaju u obzir pri implementaciji nekog web rešenja iako se ima na umu što veća pokrivenost web čitača i njihovih verzija.

Kako se arhitektura web aplikacija zasniva na klijent-server arhitekturi time se web aplikacije najčešće opslužuju sa jednog (ili više) udaljenog server računara. Ukoliko dođe do bilo kakve opstrukcije u radu servera, web aplikacija postaje neupotrebljiva za vreme dok je server iz bilo kog razloga nedostupan.

Takođe, ugodnost korišćenja web aplikacije zavisiće i od performansi mrežne arhitekture i samih server računara i njihovih mogućnosti usluživanja klijenata koji zahtevaju određene funkcionalnosti web aplikacije.