Izrada sajtova
SrpskiEnglishDeutscheSlonvenščina
PHP Developer

Arhitektura aplikacije web kalendar ::: projekat

Tema ovog rada je arhitektura aplikacije veb kalendar. Namena ove aplikacije je društveni veb kalendar koji će na jednom mestu publikovati sve događaje od interesa za jednu društvenu zajednicu. Kalendar je javan, što znači da svako može da vidi podatke o publikovanim događajima, a registrovani administratori organizacija mogu da publikuju podatke o događajima.


Potencijalni korisnici koji će biti zaiteresovani da publikuju svoje događaje su: vlada, ministarstva, agencije, opštine, javna komunalna preduzeća, kompanije, ambasade, osnovne i srednje škole, univerziteti, pozorišta, bioskopi, galerije i muzeji, sajmovi, udruženja, sindikati, sportski klubovi i sve druge organizacije koje imaju interesa da informišu javnost o događajima koje organizuju. Ovakav kalendar može da pomogne organizaciji da pravilno pranira vreme održavanja svojih događaja. Pojedinci i organizacije mogu da uvezu izabranu klasu događaja u svoj privatni kalendar i da ga dopunjuju svojim privatnim događajima. Korisnik uz datume i opis događaja može čuvati i druge datoteke (video, audio, slike ili dokumente).

Arhitekturu aplikacije ćemo posmatrati iz dva ugla: hardverski i softverski.

Aplikacija treba da je zasnovana na otvorenim standardima kako bi se omogućilo jednostavno proširivanje i prilagođavanje novim zahtevima i potreba tj. sistem treba da se odlikuje :

· Modularnim dizajnom

· Fleksibilnom, skalabilnom i sigurnom arhitekturom

· Brzom i pouzdanom komunikacijom

Troslojna arhitektura aplikacije:

· Sloj podataka
Potrebni podaci smešteni su na MySQL bazi podataka zajedno sa uskladištenim procedurama.

· Srednji sloj
Poslovna logika i pristup podacima obezbeđeni su preko satelita tj. nezavisnih kompajliranih komponenti i XML-a radi jednostvnog upravljanja, komunikacije i integracije različitih tipova i izvora podataka.

· Prezentacioni sloj
Kao klijente možemo posedovati razne PC Desktop aplikacije, Web aplikacije, Mobilne aplikacije

Aplikacije koje su orjentisane serveru zahtevaju jako malo prostora na disku, automatski se obnavljaju dodavanjem novih opcija ili unapredjivanjem postojecih. A glavni nedostatak ovakvih aplikacija je taj sto ih je nemoguce koristiti ukoliko nema konekcije ka Internetu, što se u današnje vreme jako retko dešava i na kratke vremenske intervale.

Klijent strana

Pod klijentom se podrazumeva bilo koji računar koji poseduje internet pretrazivac (Firefox, Internet Explorer, Safari, Opera, Chrome), a pokreće ga bilo koji operativni sistem (Windows, Linux, Max OS X…). Prikaz će biti prilagodjen i prikazu na prenosnim uredjaima (mobilni telefon ili pametni telefon), ali u smanjenoj veličini strane (izbačeni JS i smanjene ili izbačene slike).

Zbog veličine same aplikacije kao i planirane visoke posete potrebno je da se što više operacija prebaci na klijentsku stranu kako bi se rasteretio server. Sa klijentske strane će se koristiji JS biblioteka i AJAX. JS biblioteka koja ce biti koriscena je JQuery, zbog najvece stabilnosti, brzine i lakoće korišćenja, kao i jako velikog broja već gotovoih dodataka. To će omogućiti da se dosta procesorskog vremena rasporedi na računare klijenata.

Primena AJAX-a, a samim tim parcijalnog učitavanja strana takodje rasterećuje server, jer se ovako prilikom zahteva korisnika učitava najmanji mogući deo strane. Što znači da se značajno smanjuje protok klijent-server i broj upita koji su potrebni da se rezultat vrati, ovo još doprinosi lepšem osećaju korišćenja samog sajta, jer se stiče utisak približan desktop aplikaciji.

Klasični model rada Web aplikacije i AJAX model razlikuju se u nekoliko segmenata. Primarno se to odnosi na način dohvatanja podataka i mesto obrade podataka, što se vidi i na sledećoj slici.

Serverska strana

Na serverskoj strani zbog planirane visoke posete predviđena je multiserverska konfiguracija pod Linuxom. Centralni računar je multi procesorski 64-bitni računar, jer na 64-bitnim računarima znatno brže rade sve aplikacije, a naročito MySQL baza, što je za veb aplikaciju od presudnog značaja.

Pošto se pod funkcijom aplikacije podrazumeva i prilagođavanje audio i video materijala i slika za prikaz na sajtu (svaki audio materijal mora biti konvertovan u mp3, video u FLV, a slike u JPEG, a za svaki ovakav materijal i veličina mora biti prilagođena prikazu na internetu i na različitim mestima na sajtu) postoji i pomoćni server koji radi samo obradu ovakvog materijala.

Na pomoćnom serveru za obradu multimedije postoje biblioteke i alati za obradu odgovarajućih datoteka, smanjivanje, konverziju idr.

Za obradu audio i video fajlova koristićemo FFMPEG biblioteku. Ona je pogodna jer podržava veliki broj formata i raditi i na Linux-u. Pošto obrada datoteka može da traje duže od vremena predviđenog za dohvatanje WEB stranice, taj proces će biti izdeljen u 2 dela.

U prvoj posetilac podiže datoteku i ona se smešta na server. Posetilac pritom dobija obaveštenje da je datoteka podignuta i još nije spremna za upotrebu.

U drugoj fazi poseban skript koji se pokreće iz komandnog okruženja obrađuje podignute, a još uvek ne obrađene datoteke. Nakon uspešne obrade korisnik se obaveštava da je datoteka spremna za upotrebu.

Cilj obrade datoteka je smanjenje protoka izmedju servera i klinenata. Originalna datoteka se može čuvati na serveru ukoliko su hardverske mogućnosti, pre svega kapacitet hard diskova dovoljni. U suprotnom se uklanja.

U zavisnosti od pocetnog kapitala i procene posete moguće je odmah ukljuciti više lokalizovanih servera koji bi pokrivali oblasti visoke posete i time omogucavali da centralni server bude resterecen.

Sam sistem je pisan kombinacijom JAVA - PHP i to JAVA na “uskim grlima”, a PHP za stvari koje je neophodno napraviti za što kraće vreme. Za proizvodju JAVA stranica bice koriscen Tapestry http://tapestry.apache.org kao najbrži i najprilagodljivi JAVA framework.

Zbog iskustva samog tima u izradi PHP, MySQL veb aplikacija i dosta gotovih modula, ovakav model izrade će biti korišćen gde god je to moguće.
Zaključak

Na osnovu gore navedenih stvari zaključujem da je realizacija ovog projekta moguća, i relativno jeftina u prvim fazama, tj dok poseta ne naraste.

Održavanje sistema podrazumeva optimizaciju koda i arhitekture hardvera u skladu sa trenutnim zahtevima klijenata i trendovima. Sve to se postiže neprekidnim posmatranjem i analizom posete i potrosnje raspolozivih hardverskih resusrsa i direktnim anketiranjem korisnika sistema.