Veb-aplikacija

апликација која користи веб-прегледач као клијент

Veb-aplikacija je aplikacija kojoj se pristupa od strane korisnika preko mreže kao što je internet ili intranet. Termin takođe označava i primenu kompjuterskog softvera koji je kodiran u veb-pretraživaču koji podržava programske jezike (kao što su Javaskript, u kombinaciji sa jezikom koji služi za obeležavanje kao što je HTML) i oslanja se na zajedničkom veb-pretraživaču da donese izvršnu aplikaciju.

Veb-aplikacije su popularne zbog sveprisutnosti veb-pretraživača, a pogodnost korišćenja veb-pregledača kao klijenta se ponekad zove „tanki/mršavi klijent”. Sposobnost da se ažurira i održava veb-aplikacija bez distribucije i instaliranja softvera na hiljade potencijalnih klijentskih računara je ključni razlog za njihovu popularnost. Uobičajene veb-aplikacije uključuju slanje pošte, internet trgovinu, aukciju, te mnoge druge funkcije.

Portal Horde (snimak ekrana)

Istorija uredi

U ranijim računarskim modelima, npr. u klijent-server periodu, zahtevi za aplikacije su deljeni između koda koji je na serveru i koda koji je instaliran na svakom klijentskom računaru. Drugim rečima, aplikacija ima svoj klijentski program, a to je njegov korisnički interfejs i mora da se posebno instalira na ličnom računaru svakog korisnika. Nadogradnja koda na serverskoj strani će obično zahtevati i nadogradnju koda na klijentskoj strani, dajući na taj način povoljniju cenu i smanjujući produktivnost.

Nasuprot tome, veb-aplikacije koriste veb-dokumente napisane u nekom od standardnih formata kao što su HTML i ЈаvaScript, koji su podržani od strane različitih veb-pretraživača. Veb-aplikacija se može smatrati kao specifična varijanta klijent-server softvera, gde klijentski softver preuzima na mašini prilikom posete odgovarajuće veb-stranice, primenom standardnih postupaka kao što je HTTP protokol. Tokom sesije, veb-pretraživač tumači i prikazuje stranice, te deluje kao univerzalni klijent za bilo koju veb-aplikaciju.

U početku veba, svaka veb-stranica dostavljala se klijentu kao statički dokument; redosled stranica može da obezbedi interaktivno iskustvo ukoliko je korisniku unos vraćen preko elemenata veb-formulara ugrađenog u HTML stranici.

Godine 1995. Netskejp (eng. Netscape) je uveo skript koji se izvršava na strani klijenta, poznat kao JavaScript. Dakle, umesto slanja podataka na server da bi generisali celu stranicu, ugrađeni skriptovi sa preuzete stranice mogu da obavljaju različite zadatke, kao što su validacija unosa ili prikazivanje/skrivanje delova stranica.

Godine 1996, makromedija uvodi Fleš (engl. Flash) — vektorsku grafiku koja se može dodati pretraživaču kao dodatak od. plagin (engl. Plug-in), kako bi se omogućio prikaz animacije na veb-stranici. To omogućava upotrebu skript-jezika za izvršavanje programa na strani klijenta bez potrebe za komunikaciju sa serverom.

Godine 1999, koncept „veb-aplikacija” je uveden u jeziku Java, kao Servlet Specification verzija 2.2. U to vreme i JavaScript i XML su već bili razvijeni, ali Ajax još uvek nije postojao.

Godine 2005, nastaje termin Ајаx zajedno sa aplikacijama kao što su Džimejl, a klijentske strane ponovo bivaju povezane. Skriptovi počinju da komuniciraju sa serverom tako što će skladištiti/preuzimati podatake bez preuzimanja cele veb-stranice.

Godine 2011, HTML5 biva završen, sa grafičkim i multimedijalnim mogućnostima bez potrebe za dodacima na strani klijenta. HTML5 je obogatio semantički sadržaj dokumenata. WebGL API je otvorio put naprednoj 3D grafici baziranoj na HTML5 i ЈаvaScript jeziku.

Interfejsi uredi

Kroz Јаva, ЈаvaScript, DHTML, Flash, Silverlight i druge tehnologije, omogućene su metode, kao što su crtanje na ekranu, reprodukcija zvuka te pristup tastaturi i mišu. Mnogi servisi su iskombinovali sve ovo u poznatom interfejsu koji je blizak izgledu operativnog sistema. Tehnike opšte namene kao što je „prevuci-i-pusti” ove tehnologije takođe podržavaju. Veb-programeri često koriste skriptove na klijentskoj strani da doprinesu funkcionalnosti, a posebno da se stvori interaktivni doživljaj koji ne zahteva osvežavanje stranica. Tehnologije su razvijene tako da koordiniraju skriptove na klijentskoj strani sa tehnologijama na serverskoj strani, kao što je РНР. Ајах, tehnika za veb-razvoj koja koristi kombinaciju različitih tehnologija, primer je stvaranja interaktivnog iskustva.

Struktura uredi

Aplikacije su obično podeljene na logičke delove pod nazivom „slojevi”, gde je svakom sloju dodeljena uloga. Tradicionalne aplikacije su sačinjene samo od jednog sloja, koji se nalazi na klijentskoj mašini, ali prirodno veb-aplikacije podešavju sebe za n-slojni pristup. Iako su moguće mnoge varijacije, najčešća struktura je troslojna aplikacija. U svojoj najuobičajenijoj formi, tri sloja se nazivaju prezentacija, aplikacija i skladištenje, u ovom redosledu. Veb-pretraživač je prvi sloj (prezentacija); kao pokretač koji koristi neke tehnologije sa dinamičkim veb-sadržajem (kao što su ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Perl, Python, Ruby) je srednji sloj (aplikaciona logika), a baza podataka je treći sloj (skladištenje). Veb-pretraživač šalje zahteve srednjem sloju, koji ih opslužuje pravljenjem upita i ažuriranjem baze podataka, te generiše korisnički interfejs.

Za složenije aplikacije, troslojno rešenje može biti nedovoljno, pa je potrebno da se koristi n-slojni pristup, gde je najveća dobit deljenje aplikacionog sloja, koji počiva na samom aplikativnom sloju. Još jedna prednost je dodavanje integracionog sloja koji razdvaja sloj podataka od ostalih slojeva, pružajući interfejs za pristup podacima koga je lako koristiti.

Postoje neki koji Wide Web aplikaciju vide kao dvoslojnu arhitekturu. To može biti „pametni” klijent koji obavlja sve poslove i upite i „glupi” server, klijent koji se oslanja na „pametni” server. Klijent bi se bavio prezentacionim slojem, server bazom podataka, a aplikacioni sloj će biti na jednom od njih (ili na oba). To povećava stabilnost aplikacija i razdvaja ekran i bazu podataka, ali još uvek ne omogućava pravu specijalizaciju slojeva, tako da većina aplikacija prerasta ovaj model.

Korišćenje u poslovne svrhe uredi

Nova strategija za kompanije aplikativnog softvera je da omogući pristup veb-softveru koji je prethodno distribuiran kao lokalna aplikacija. U zavisnosti od vrste aplikacije, može se zahtevati razvoj potpuno drugačijih interfejsa baziranih na pretraživaču ili samo prilagođavanje postojeće aplikacije da koristi različite prezentacione tehnologije. Ovi programi omogućavaju korisniku da plaća mesečnu ili godišnju naknadu za korišćenje softverskih aplikacija, bez potrebe da ga instalira na lokalnom disku. Kompanija koja prati ovu strategiju je poznata kao provajder usluga aplikacija (engl. ASP), koja trenutno privlači veliku pažnju u softverskoj industriji.

Narušavanja bezbednosti za ove vrste aplikacija su veliki problem jer mogu da uključuju i informacije preduzeća kao i privatne podatake korisnika. Zaštita imovine je važan deo svake veb-aplikacije i postoje neke ključne operativne oblasti koje moraju biti uključene u proces razvoja. To uključuje procese za autentifikaciju, autorizaciju, logovanje i dr.

Pisanje veb-aplikacija uredi

Pisanje veb-aplikacija se često pojednostavljuje softverima otvorenog koda kao što su Django, Ruby on Rails[1] i sl., koji predstavljaju razvojno okruženje veb-aplikacija. Oni omogućavaju brz razvoj aplikacija tako što dozvoljavaju razvojnom timu da se fokusira na delove njihovoe aplikacije koje su jedinstvene za njihove ciljeve, bez rešavanja uobičajenih problema u razvoju. Iako su mnogi od ovih razvojnih okruženja otvorenog koda, oni nisu obavezni za korišćenje.

Upotreba razvojnih okruženja u veb-aplikacijama često može da smanji broj grešaka u programu, čineći kod jednostavnijim i omogućavajući jednom timu da se koncentriše na ravojno okruženje, dok se drugi fokusiraju na određene slučajeve korišćenja. U aplikacijama koje su izložene stalnom hakovanju na internetu, problemi vezani za bezbednost mogu biti posledica greške u programu. Razvojna okruženja mogu promovisati korišćenje najboljih praksi, kao što su GET posle POST-a.

Pored toga, postoji potencijal za razvoj aplikacija na internet operativnim sistemima, iako trenutno nema puno održivih platformi koje odgovaraju ovom modelu.

Primeri aplikacija uredi

Primeri veb-aplikacija su jednostavni kancelarijski softveri (programi za obradu teksta, onlajn unakrsne tabele i prezentacioni alati), ali tu spadaju i neke naprednije aplikacije kao što su kompjuterski dizajn, video montaža i dr.

Prednosti uredi

  • Veb-aplikacije ne zahtevaju složenu „izbaci” proceduru za upotrebu u velikim organizacijama. Kompatibilni internet pretraživač je sve što je potrebno.
  • Pretraživači aplikacije obično zahtevaju malo ili nimalo prostora na klijentu.
  • Oni ne zahtevaju postupak nadogradnje jer se sve nove funkcije sprovode na serveru i automatski dostavljaju korisnicima.
  • Veb-aplikacije se lako integrišu u veb-procedurama na serverskoj strani, kao što su imejl i pretraživanje.
  • Oni takođe pružaju kompatibilnost na više platformi u većini slučajeva (npr. Windows, Mac, Linux itd.) jer rade u okviru prozora veb-pretraživača.

Mane uredi

  • Veb-aplikacije zahtevaju apsolutno kompatibilne veb-pretraživače. Ako prodavac pregledača odluči da ne implementira određene funkcije ili napusti određenu platformu ili verziju operativnog sistema, to može uticati na veliki broj korisnika.
  • Aplikacije pretraživača se oslanjaju na pristup datotekama na udaljenim serverima preko interneta. Stoga, kada se veza prekine, aplikacija prestaje biti upotrebljiva. Međutim, ako se koristi HTML5 API kao što je oflajn keširanje veb-aplikacija, može se preuzeti i instalirati na lokalnom nivou za oflajn korišćenje.
  • Budući da mnoge veb-aplikacije nisu otvorenog koda, postoji gubitak fleksibilnosti, ne dozvoljavajući prilagođavanja na softveru i sprečavajući korisnike od pokretanja aplikacija oflajn (u većini slučajeva). Međutim, ako je licenciran, vlasnički softver se može prilagoditi i pokrenuti na željeni server zakonitih prava.
  • Oni u potpunosti zavise od mogućnosti servera da dostavlja aplikacije. Ako preduzeće ode u stečaj a server se isključi, korisnici imaju malo pristupa. Tradicionalno instaliran softver čuva funkcionalnost i nakon propasti kompanije koja ga je proizvela (mada neće biti apdejta/ažuriranja ili pružanja usluga).
  • Isto tako, kompanija ima mnogo veću kontrolu nad softverom i funkcionalnosti. Oni mogu da izbace nove funkcije kad god žele, čak i ako korisnik želi da sačeka dok se bagovi/greške ne otklone pre nadogradnje. Opcija jednostavnog preskakanja slabije verzije softvera često nije dostupna. Kompanija može ubacivati neke neželjene funkcije korisnicima ili smanjiti troškove smanjenjem protoka. Naravno, kompanije će pokušati da zadrže poverenje svojih klijenata, ali korisnici veb-aplikacija imaju u ovakvim slučajevima manje opcija osim ukoliko proizvođač ponudi bolji proizvod.
  • Kompanija može — teoretski — da prati bilo šta što korisnici rade. To može izazvati probleme privatnosti.

Vidi još uredi

Reference uredi