godište II   |   broj 3  |   Zagreb |   20.2.2002. | 

Krešimir Dujmić 

 

Web orijentirane izvedbe asinkrone komunikacije - iskustva i problemi pri izgradnji internet zajednice FER-a

 
Uvod
Moguće tehnologije za izgradnju sustava koji podržava asinkronu komunikaciju
Sigurnost sustava
Korisna iskustva
Zaključak


Uvod

Da bismo mogli ostvariti udaljenu razmjenu materijala, sudjelovati u diskusijama, pružiti obavijesti ili anketirati ljude, potreban je medij ili tehnologija kojom ćemo takvu komunikaciju provesti. Izbor takve tehnologije trenutačno je velik pa se nameće pitanje koja je od njih najbolja i koju koristiti. Čini se da se u današnje vrijeme kao rješenje problema udaljene asinkrone komunikacije kristaliziraju Web aplikacije. Iako one nisu jedina moguća rješenja, zasigurno su tehnološki i financijski najprihvatljivija. U ovom su članku prikazane moguće tehnologije za izgradnju sustava koji podržava asinkronu komunikaciju i sigurnosne mogućnosti takvih sustava te iskustva i problemi s kojima smo susreli pri izgradnji Internet zajednice Fakulteta elektrotehnike i računarstva.

Moguće tehnologije za izgradnju sustava koji podržava asinkronu komunikaciju

Postoji čitava lepeza tehnologija kojima bismo mogli ostvariti sustav s asinkronom komunikacijom, koja je važan dio "učenja na daljinu", a u obzir ćemo uzeti samo web orijentirane tehnologije jer se one u današnje vrijeme razvijenoga interneta, koji teži daljnjemu razvitku, čine logičnima u tehnološkom i financijskom smislu. Razvojem dinamičkih web aplikacija otvorili su se putovi za komunikaciju ljudi putem interneta kakvu mi poznajemo. 

Dinamičke aplikacije karakterizira mogućnost da se dijelovi HTML kôda ili cijeli kôd generira dinamički. Za isti URL može biti isporučen potpuno drugačiji sadržaj. Veličina takvih aplikacija može se kretati od malih skripta do velikih uslužnih programa.

Dinamičke web aplikacije u osnovi možemo podijeliti na one koje se izvršavaju na strani klijenata i one koje se izvršavaju na strani poslužitelja.

Aplikacije koje se izvršavaju na strani klijenta 

  • Java (prenosi se kôd do računala klijenta i ondje se izvršava)
  • Java Script

Prednost ovakvih aplikacija su veća dinamičnost stranica u specifičnim uvjetima koji vladaju zbog http-a ili njemu sličnih protokola (https...), no problemi su u tome što se povećavaju zahtjevi prema klijentu, odnosno dolazi do sindroma debelog klijenta (engl. fat-client), tj. računalo klijent mora biti snažno i dobrih performansi. Drugi je problem u tome što se opterećuje mreža, a u slučaju da imamo sporu mrežu (npr. spajamo se putem modema), nastaju značajni problemi pri radu.

Aplikacije se izvršavaju na strani poslužitelja

  • Kôd aplikacije se izvršava na strani poslužitelja (Common Gateway Interface)
  • Java Servleti 
  • Server-side programski jezici koji se integriraju u HTML 
  • Professional Home Page (PHP)
  • Active Server Pages (ASP)
  • Perl kao Apache Modul
  • Java Server Pages (JSP)
  • ColdFusion (CF) Allaire (odnedavno Macromedia)

Prednost je skriptnih jezika poput PHP-a ili ASP-a u tome što se sve odvija na poslužitelju koji, doduše, mora biti jačih karakteristika, no razlika u cijeni je prihvatljiva. Od klijenta se u takvim uvjetima ne zahtijeva ništa osim da mogu pokrenuti pretraživač. S tim se smanjuje mrežni promet i povećava brzina izvršavanja. No, koju od tih tehnologija odabrati? Sve su one sličnih karakteristika i mogućnosti. Odabir se uglavnom svodi na odabir između OpenSource [1] besplatnih rješenja (PHP) i komercijalnih proizvoda (ASP, JSP, CF). Teško je reći koje je od tih rješenja bolje, svako ima svoje mane i prednosti, no jedno je sigurno: odlučite li se na Open Source rješenje, velika je vjerojatnost da ćete uzeti isti takav operativni sustav (Unix, Linux...) i bazu podataka (MySQL, PostgreSQL...), što vam osjetno smanjuje troškove jer su besplatni. Premda je riječ o tehnologijama koje su besplatne, ne znači da su one nužno i loše, dapače, ostvarena rješenja mogu se mjeriti s komercijalnim rješenjima u svim granama, jedino su malo složenija za konfiguriranje, što se možda i isplati s obzirom na uštedu od licenci, a i cijena tih proizvoda u našim uvjetima predstavlja značajnu prepreku. 

Jedna vrlo srodna tehnologija za ostvarivanje asinkrone komunikacije jesu popularne newsgrupe ili usenet. One imaju velike mogućnosti tipa autoriziranja, slanja datoteka, administracija, brzina... No gledano iz aspekta sustava u kojem asinkrona komunikacija predstavlja samo dio cjeline, njezino izdvajanje od te cjeline čini se kao loša ideja. Postoje načini kako ukomponirati podršku za čitanje newsgrupa preko webolikog sučelja tako da se sačuva kompaktnost, a da se pritom ne izgubi na funkcionalnosti. Protokol preko kojeg komuniciramo je NNTP (Network News Transfer Protocol), a već postoji podrška ugrađena u skriptne jezike za komunikaciju s NNTP poslužiteljem.

Asinkrona komunikacija u internet zajednici Fakulteta elektrotehnike i računarstva 
FerWeb predstavlja informacijski i kolaborativni sustav jer studenti i profesori surađuju zajedno i stvaraju internet zajednicu objavljujući vijesti, razmjenjujući materijale i informacije. Ideja je prebaciti pojmove kao što su npr. oglasne ploče predmeta ili studentske službe na internet, potaknuti studente da prestanu biti pasivni promatrači i čitatelji te da i oni pridonesu razvoju i unaprjeđenju nastave, da internet zajednica postane mjesto gdje će se čuti njihovo mišljenje i gdje će oni vidjeti mišljenje ostalih ljudi. Pošli smo od toga da prosječni profesor/student ne poznaje niti osnove HTML-a, a kako je HTML osnovni način komunikacije na webu, morali smo prilagoditi sustav korisniku, od kojeg ne zahtijevamo znanje HTML-a, koji za akciju prenošenja neke datoteke na poslužitelj (materijala s predavanja, točnih odgovora, rezultata ispita...) mora kliknuti nekoliko puta mišem. Ista stvar je i za objavu neke vijesti ili odgovora na neko studentsko pitanje u diskusijama. Sustav za svaki predmet koji postoji u bazi nudi objavu vijesti, sudjelovanje u diskusijama, objavu linkova, pravljenje ankete, objavu materijala, kalendar (imamo mogućnost upisa termina ispita, predavanja, labosa itd.), koji se automatski prenosi do studenata koji slušaju te ispite. Kada bismo željeli objavljivati vijesti za sve te predmete, trebala bi nam vojska novinara, a mi imamo studente i profesore koji to rade sami.

Pri izgradnji sustava FerWeba orijentirali smo se na otvorene OpenSource tehnologije. Za operativni sustav izabran je Debian GNU/Linux. Baza je PostgresSQL, iako su na raspolaganju bile i druge dobre OpenSource baze MySQL, no izabran je PostgresSQL zbog svojstva da kako se povećava opterećenje baze odziv i brzina rada pada linearno, a ne kao kod nekih drugih baza eksponencijalno. Jezik u kojem su pisane aplikacije je PHP, a koristimo i sustav templata Smarty [2], koji je jedan sloj iznad PHP-a i omogućuje lakši rad pri dizajnu i samoj prezentaciji podataka. Smarty se pokazao jako dobrim i zbog toga što povećava preglednost kôda i ubrzava rad sustava.

Sigurnost sustava 

Sigurnost sustava je ključna jer korisnici moraju biti sigurni da se njihovo ime ne može zlouporabiti i falsificirati, što povećava povjerenje korisnika i želju za nastavak suradnje. Sve lozinke idu preko sigurnog kriptiranog protokola (https), čime se smanjuje opasnost od provala i tzv. snifanja lozinki. Opasnosti URL-hackinga također su svedene na minimum. Za potrebe FER-a razvijen je sustav korisničkih dozvola koji omogućuje korisnicima da o tome na kojoj se trenutačno stranici nalaze ovisi i njihova razina prava (profesor koji predaje fiziku ne može uređivati stranicu matematike). Zbog velikoga broja djelatnika uveli smo skupne dozvole po organizacijskim cjelinama tako da smo oslobođeni mučnog unosa razine prava za svakoga od 500 djelatnika po svakoj stranici. Uzimajući u obzir da samo predmeta ima 400, to bi bio stvarno prevelik posao. Prava koja korisnik ima su: čitanje, izravno objavljivanje, objavljivanje uz odobrenje, pravo odobravanja objave (student može predložiti neku zanimljivu vijest, no prije nego što se ona pojavi na službenim stranicama predmeta profesor ili od njega ovlaštena osoba mora odobriti tu vijest), a to je način na koji dajemo profesorima kontrolu nad njihovim predmetima.

Korisna iskustva

Prvo pitanje koje se treba postaviti kada se razvija nekakav sustav je: "Treba li nam on i hoće li ga ljudi koristiti kada ga napravimo?" Dobar način povećavanja broja korisnika jest mogućnost da se student predstavi nadimkom. To navodi studente da postave pitanja koja možda nisu htjeli/smjeli/željeli postaviti profesoru osobno, premda ne tvrdimo da je ta praksa poželjna. Ne možemo reći da se studenti boje dolaziti na konzultacije, ali im je možda prihvatljivije postaviti koje delikatnije pitanje putem interneta nego otići na konzultacije i razgovarati s profesorom. Da bi sudjelovali u diskusijama ili objavljivali neke sadržaje, studenti moraju biti logirani. Imaju mogućnost da se predstave svojim pravim imenom ili nadimkom. Kako studenti češće biraju nadimke, dolazi do problema u komunikaciji s profesorima. Evo izvadaka iz diskusije koja je nastala na stranicama jednoga predmeta. Ovakvih sličnih rasprava bilo je na više mjesta i iz različitih predmeta.

Student s nadimkom LuckyLuciano postavio je pitanje na koje je nastavnik odgovorio, ali s komentarom: "Već sam napomenula u nekoj od rasprava da minimum pristojnosti i kulture nalaže uredno potpisivanje punim imenom i prezimenom. Vidim da se uredno pravite da niste to primijetili, što mnogo govori o Vama i o drugima nalik Vama."

Njegov odgovor je bio:"Na internetu se ljudi i inače predstavljaju nadimcima te im se na taj način jamči neka tajnost podataka. Smatram da se na taj način može slobodnije raspravljati o osjetljivijim temama bez straha od konzekvenci. A ako Vi na taj način ne želite raspravljati, onda birajte s kime ćete voditi rasprave na forumima. Uvijek ostaje sloboda izbora, a i činjenica je da ste Vi jedina osoba koja konstantno inzistira na potpisivanju, dok na ostalim forumima to nitko ne traži."

Tu smo došli do pitanja treba li omogućiti studentima da se potpisuju nadimcima ili samo pravim imenom i prezimenom. 

Student svoj nadimak ne može mijenjati, tako da se u svakom trenutku zna tko je što poslao i objavio, a mora biti logiran da bi nešto objavio, no bez obzira na to, profesorima je nelagodno komunicirati s ljudima koji se nisu potpisali. Provedena je online anketa među studentima i nastavnicima treba li studentima omogućiti sudjelovanje u raspravama uz to da se predstavljaju nadimcima. Sudjelovalo je 200 studenta i djelatnika:

Treba li se uvesti (sustavno) potpisivanje osoba pravim imenom i prezimenom na ovom webu?

Da (djelatnik sam)
10.2%
Da (student sam)
30,2%
Ne (djelatnik sam)
2,0%
Ne (student sam i mislim da će me djelatnici "zapamtiti")
14,1%
Ne (student sam; ne želim zbog drugih razloga)
21,0%
Svejedno mi je (djelatnik sam)
2,0%
Svejedno mi je (student sam)
20,5%

Prema ovome bismo mogli zaključiti kako studentima ne smeta da se potpisuju pravim imenom, a djelatnicima je to dosta važno. Savjet: ako krenete s praksom da se studenti moraju potpisivati imenom i prezimenom, tako dalje i nastavite, ali ako ste im omogućili potpisivanje nadimcima, nemojte im oduzeti to pravo jer bi moglo doći do negativnih reakcija studenata ili možda čak do gubitka povjerenja.

Zaključak

Sustav FerWeb nije konačno rješenje problema asinkrone komunikacije, ali se čini da je smjer kojim smo krenuli onaj pravi. Web orijentirana aplikacija koju smo izgradili služi svojoj svrsi i broji više od tisuću aktivnih korisnika, što govori samo za sebe. Web rješenja čine se boljima od ostalih mogućnosti i zbog samoga okružja u kojem se nalaze, a takvo web okružje poznato je korisnicima-amaterima jer su ga do sada imali prilike koliko-toliko upoznati. Naša odluka da koristimo OpenSource otvorena rješenja (operativni sustav, baza...) može se u svakom trenutku zamijeniti nekim drugim, možda komercijalnim rješenjem, no to je upravo jedan od razloga zbog kojih smo se odlučili na njih.

Problemi s kojima smo se susreli:

  • Povećanjem broja korisnika poslužitelj usporava i pada, no nije dovoljno reći "kupimo bolji poslužitelj", "ubacimo više RAM-a". Snažniji poslužitelj stoji oko 15.000 eura, što je velik trošak za akademske prilike.
  • Imamo 3.500 novinara amatera koji rade početničke pogreške. 
  • Upoznati ljude s mogućnostima i nagovoriti na prednosti.
  • Moramo računati na velik trud koji se mora uložiti u razvoj i oblikovanje sustava.

Pred korisnicima su izazovi novog doba, koji zahtijevaju promjenu od sadašnjega razmišljanja, što uopće nije lako.


[1] OpenSource kao ideja svodi se na to da je izvorni kôd programskog proizvoda dostupan. Primjeri OpenSource proizvoda su: Apache (Web poslužitelj), MySQL baza, PHP, Linux, PostgreSQL.
[2] Smarty je napisan u PHP-u i dan u OpenSource 

 

autor | cijeli članak | literatura | sažetak| abstract | pdf inačica | naslovnica