|
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
|