Upload
nguyenliem
View
218
Download
0
Embed Size (px)
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET PROMETNIH ZNANOSTI
Neven Anđelović
Ivan Cvitić
Marko Gović
RAZVOJ SUSTAVA ZA UPRAVLJANJE REPOM STUDENTSKE
SLUŽBE FAKULTETA PROMETNIH ZNANOSTI
Zagreb, 2013.
Ovaj rad izrađen je na Zavodu za informacijsko komunikacijski promet pod vodstvom doc. dr.
sc. Ivane Ćavar i predan je na natječaj za dodjelu Rektorove nagrade u akademskoj godini
2012/2013.
POPIS KRATICA
ASP - Active Server Pages (aktivne poslužiteljske stranice)
CSS - Cascading Style Sheets (kaskadni stilski uzorci)
DBMS - Database Management System (sustav upravljanja bazom podataka)
FCFS - First Come – First Served (prvi došao – prvi poslužen)
HCTM - Hawaii Council of Teachers of Mathematics (Vijeće predavača matematike,
Hawaii)
HTML - HyperText Markup Language (jezik za opis internetskih stranica )
IEEE - Institute of Electrical and Electronics Engineers (Institut inženjera
elektrotehnike )
JMBAG - Jedinstveni Matični Broj Akademskog Građana
MSDNAA - Microsoft Developer Network Academic Alliance (Microsoft mreža za razvoj
namijenjena akademskoj zajednici)
MVC - Model View Controller (Microsoft okruženje za razvoj Internet stranica)
OIB - Osobni Identifikacijski Broj
RQM - Referada Queue Management (naziv sustav upravljanja repom studentske
službe čiji razvoj je prikazan ovim radom)
SMS - Short Message Service (usluga slanja kratkih tekstualnih poruka putem
mobilnih terminalnih uređaja)
SQL - Structured Query Language (strukturirani jezik za upite)
UML - Unified Modeling Language (jezik za ujedinjeno modeliranje)
VB - Visual Basic (objektu usmjereni programski jezik )
XML - EXtensible Markup Language (jezik za označavanje podataka)
SADRŽAJ
1. UVOD ................................................................................................................................. 1
2. PREGLED DOSADAŠNJIH ISTRAŽIVANJA ............................................................. 3
3. SUSTAVI POSLUŽIVANJA ........................................................................................... 5
3.1. Općenito o sustavima posluživanja ............................................................................. 5
3.2. Kendallova oznaka ...................................................................................................... 6
4. PROBLEM POSLUŽIVANJA KORISNIKA STUDENTSKE SLUŽBE
FAKULTETA PROMETNIH ZNANOSTI ........................................................................... 8
4.1. Karakteristike sustava „RQM@fpz“ ........................................................................... 9
4.2. Algoritam za procjenu očekivanog vremena do posluživanja ..................................... 9
5. OPIS TEHNOLOGIJA KORIŠTENIH PRI PROJEKTIRANJU I IZGRADNJI
SUSTAVA ............................................................................................................................... 12
5.1. Sustavi baza podataka ................................................................................................ 13
5.1.1. Baza podataka .................................................................................................... 14
5.1.2. Strukturirani jezik za upite ................................................................................. 15
5.2. Tehnologija ASP.NET ............................................................................................... 16
5.3. Programski jezik C# .................................................................................................. 17
6. RAZVOJ BAZE PODATAKA SUSTAVA „RQM@fpz“ ........................................... 19
6.1. Utvrđivanje i analiza zahtjeva ................................................................................... 20
6.2. Modeliranje baze podataka ........................................................................................ 23
6.2.1. Konceptualno modeliranje ................................................................................. 23
6.2.2. Logičko modeliranje ........................................................................................... 24
6.3. Implementacija .......................................................................................................... 26
6.3.1. Pohranjena procedura „dolazni“ ...................................................................... 27
6.3.2. Pohranjena procedura „posluzivanje“ .............................................................. 28
6.3.3. Pohranjena procedura „dohvatNeposluzenih“ ................................................. 30
6.3.4. Pohranjena procedura „sljedeciRedniBroj“ ..................................................... 30
6.3.5. Pohranjena procedura „aktivnostRadnogMjesta“ ............................................ 31
6.3.6. Pohranjena procedura „prosjecnoVrijemePosluzivanja“ ................................. 32
6.3.7. Okidač „trajanjePosluzivanja“ .......................................................................... 32
6.3.8. Okidač „ocekivanoVrijemeDoPosluzivanja“ .................................................... 33
6.4. Testiranje ................................................................................................................... 33
6.5. Održavanje ................................................................................................................. 34
7. RAZVOJ MODULA SUSTAVA „RQM@fpz“ ........................................................... 35
7.1. Modul „RQM.kiosk“ ................................................................................................. 35
7.2. Modul „RQM.služba“ ................................................................................................ 37
7.3. Modul „RQM.info“ ................................................................................................... 40
7.4. Modul „RQM.web“ ................................................................................................... 42
8. MOGUĆNOSTI IMPLEMENTACIJE I PROŠIRENJA RAZVIJENOG
SUSTAVA….. ......................................................................................................................... 44
9. ZAKLJUČAK ................................................................................................................. 45
ZAHVALE .............................................................................................................................. 47
LITERATURA ....................................................................................................................... 48
SAŽETAK ............................................................................................................................... 50
SUMMARY ............................................................................................................................. 51
POPIS SLIKA ......................................................................................................................... 52
PRILOG 1 ............................................................................................................................... 53
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
1
1. UVOD
Sustavi posluživanja u raznim oblicima oduvijek su prisutni u ljudskom društvu. Samim
time prisutan je i rep, kao sastavni dio sustava posluživanja, ali i vrijeme čekanja u njemu.
Brzim razvojem tehnologije uvidjela se mogućnost njezinog povezivanja sa razvijenom,
matematički temeljenom, teorijom repova i sustava posluživanja. Objedinjavanjem dviju
znanstvenih grana stvorena je osnovica za automatizacijom upravljanja repom u sustavima
posluživanja.
Potaknuti problemom čekanja korisnika u repu studentske službe Fakulteta prometnih
znanosti, autori ovoga rada razvili su sustav „RQM@fpz“. Svrha razvijenog sustava je
upravljanje repom studentske službe s ciljem pružanja veće kvalitete usluge i predstavlja
prijedlog rješenja već spomenutog problema.
Struktura ovoga rada podijeljena je unutar devet poglavlja uključujući uvod kao prvo i
zaključak kao zadnje, deveto poglavlje.
Unutar drugog poglavlja navedeno je nekoliko istraživanja i radova iz područja
upravljanja repovima i sustava posluživanja koji su objavljeni u proteklih nekoliko godina.
Trećim poglavljem ukratko je objašnjena teorija sustava posluživanja kao temelj razvoja
algoritma za procjenu očekivanog vremena do posluživanja korisnika. Također, razjašnjena je
i osnovna terminologija sustava posluživanja koju je nužno poznavati za daljnje
razumijevanje tematike.
U sklopu četvrtog poglavlja opisan je problem posluživanja korisnika studentske službe
Fakulteta prometnih znanosti. Definirani su i Kendallovom oznakom opisani teoretski modeli
na kojima se temelji posluživanje korisnika studentske službe, te je opisan i algoritam za
procjenu očekivanog vremena do posluživanja korisnika.
Za potrebe razvoja sustava korišteno je nekoliko tehnologija i programskih jezika koji su
opisani petim poglavljem.
Šestim poglavljem opisan je razvoj baze podataka sustava „RQM@fpz“ od prikupljanja
zahtjeva preko razrade konceptualnog, relacijskog i fizičkog modela, pa sve do njezine
implementacije, testiranja i održavanja. U sklopu potpoglavlja kojim je opisana
implementacija baze podataka opisane su pohranjene procedure i okidači korišteni u svrhu
unosa, dohvata i obrade podataka.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
2
Sedmim poglavljem opisan je razvoj četiri modula sustava „RQM@fpz“, modul
„RQM.kiosk“, modul „RQM.služba“, modul „RQM.info“ i modul „RQM.web“. Osim opisa
razvoja prikazane su komponente od kojih se pojedini modul sastoji, te način rada i
komunikacije sa bazom podataka.
Osmim poglavljem ukratko je opisana mogućnost implementacije razvijenog sustava u
već postojeći informacijsko komunikacijski sustav Fakulteta prometnih znanosti, te su
navedene mogućnosti unaprjeđenja planiranih u budućnosti.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
3
2. PREGLED DOSADAŠNJIH ISTRAŽIVANJA
Teorija repa i sustavi posluživanja predmet su istraživanja dugi niz godina. Kako su
sustavi posluživanja primjenjivi u mnogim znanstvenim i poslovnim granama, njihov razvoj,
pa tako i razvoj sustava za upravljanje repom od velikog su značaja. Zbog brzog razvoja
Internet mreže i velikog porasta količine mrežnih paketa koji se njome prenose često je
predmetom istraživanja primjena teorije repa upravo u području upravljanja zagušenjem u
Internet prometu. Usprkos važnosti i popularnosti Internet mreže, istraživanja vezana za
upravljanje repom ne zaostaju niti u drugim područjima, te će u nastavku ovoga poglavlja biti
navedena neka od relevantnih koja su provedena posljednjih godina.
1. Radom (Iannone, R. i sur. 2007), objavljenim na godišnjoj HCTM (engl. Hawaii
Council of Teachers of Mathematics) konferenciji, prikazan je prijedlog modela za
optimizaciju repa čekanja u zdravstvenim institucijama. Model je temeljen na
kategorizaciji korisnika (pacijenata) prema prioritetima i planiranju kapaciteta
infrastrukture koji se pridjeljuju korisnicima, [1].
2. Istraživanjem (Wang, H. K., 2008), objavljenim u International Journal of Advanced
Manufacturing Technology, analiziran je model sustava posluživanja sa konačnim
kapacitetom izvorišta. Korisnici su grupirani u više klasa bez prioriteta gdje svaka
klasa korisnika ima jednaku vjerojatnost za posluživanjem. Analizom su određeni
optimalni kapacitet sustava i optimalan broj potrebnih poslužitelja, [2].
3. Rad (Xiao, H., Zhang, G., 2010) objavljen u sklopu međunarodne IEEE (engl. Institute
of Electrical and Electronics Engineers) konferencije opisuje primjenu teorije repa u
optimizaciji pružanja bankovnih usluga. U radu je prikazan razvijeni model
posluživanja koji opisuje posluživanje korisnika u bankama, prijedlozi podizanja
kvalitete usluge primjenom izračunatog optimalnog modela posluživanja, te izračun
optimalnog broja poslužitelja potrebnih za povećanje efikasnosti posluživanja, [3].
4. U radu (Dao, R. i sur. 2011) objavljenom u sklopu međunarodne IEEE konferencije
opisan je model optimizacije broja poslužitelja proizvodnog pogona sa stohastičkim
dolascima korisnika pred sustav posluživanja, [4].
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
4
5. Rad (Guo, P., Zhang, Z. G., 2013), objavljen u Manufacturing and Service Operation
Management, opisuje sustav upravljanja repom u kojemu se poslužitelji dinamički
mijenjaju u ovisnosti o duljini repa. Korisnici sustava posluživanja imaju mogućnost
plaćanja naknade u svrhu povećanja prioriteta i bržeg dolaska na posluživanje. Pri
ulasku u rep korisniku se dostavljaju osnovne statističke informacije poput očekivanog
vremena boravka u repu i broja aktivnih poslužitelja, [5].
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
5
3. SUSTAVI POSLUŽIVANJA
3.1. Općenito o sustavima posluživanja
Sustavi posluživanja pojavljuju se u različitim inačicama i izvedbama, od posluživanja u
bankovnim sustavima pa sve do obrade paketa u telekomunikacijskim čvorovima. Glavni cilj
sustava posluživanja je postizanje što bolje kvalitete usluge za korisnike i upravljanje repom
čekanja, [8]. Sustav posluživanja modeliran i opisan u ovom radu je implementiran na način
da će izdati potvrdu s rednim brojem korisniku koji je upravo stigao, a službenica na radnom
mjestu će, čim zatražena usluga postane dostupna, pozvati redni broj korisnika na
posluživanje. Na taj način eliminira se potreba da korisnik fizički stoji u repu dok čeka na
posluživanje.
Sustavi posluživanja su sustavi u kojima postoje korisnici koji zahtijevaju uslugu od
poslužitelja. Takvi sustavi su sačinjeni od tri glavna dijela: korisnik, rep i poslužitelj. Korisnik
je osoba ili neki drugi entitet (npr. mrežni paket) koji zahtijeva posluživanje. Oni u sustav
pristižu iz „izvorišta“, gdje se nalazi dolazno pučanstvo, odnosno, populacija. Izvorište se
može smatrati beskonačno veliko ako je broj korisnika u izvorištu toliki da na vjerojatnost
dolazaka korisnika na posluživanje ne utječe broj korisnika koji su prije otišli u sustav
posluživanja i nalaze se ili u repu ili kod poslužitelja. U suprotnom, izvorište je konačno, [6].
Rep je skup korisnika koji čekaju na posluživanje, [6]. Rep se karakterizira maksimalnim
brojem korisnika koji mogu istovremeno biti u njemu. Postoje dvije vrste repova: beskonačni
i konačni repovi. Uobičajena pretpostavka je da je rep beskonačan, čak i u situacijama gdje
postoji relativno velika gornja granica mogućeg broja korisnika u repu, zato što analiza
sustava posluživanja postaje dodatno kompleksna ako je gornja granica mogućeg broja
korisnika u repu velika.
Poslužiteljsko mjesto je dio sustava posluživanja gdje se nalaze poslužitelji koji obavljaju
posluživanje korisnika. Poslužitelj može biti osoba (npr. blagajnica) ili neki drugi entitet (npr.
web poslužitelj). Bitne karakteristike poslužitelja su njihov broj i način rada. Broj poslužitelja
može biti od jedan do neizmjerno, te se njihov broj može mijenjati ili ostati nepromjenjiv u
vremenu. Za poslužitelje koji su međusobno isti i istodobno rade iste poslove, kaže se da rade
serijski, a za poslužitelje koji su isti i istodobno rade različite poslove, kaže se da su paralelni,
[6].
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
6
Slikom 1 dan je shematski prikaz sustava posluživanja. Dolazni korisnici pristižu iz
dolaznog pučanstva, te ulaze u sustav posluživanja. Ako rep ne postoji, korisnici direktno idu
na posluživanje kod poslužitelja. U slučaju da je broj dolaznih korisnika veći nego broj
korisnika koji se može poslužiti na poslužiteljima, stvara se rep. Način na koji korisnici ulaze
u rep, kako se ponašaju i kako odlaze iz repa naziva se disciplina posluživanja. Dok korisnici
borave u repu oni mogu odustati od čekanja ili čekati na posluživanje. Nakon što korisnik
dođe do poslužitelja, te ga poslužitelj posluži, on izlazi iz sustava posluživanja.
Slika 1: Shematski prikaz sustava posluživanja, [6]
3.2. Kendallova oznaka
Sir Maurice Kendall je 1953. godine predložio skraćeni način opisivanja glavnih obilježja
sustava posluživanja. Kendallova oznaka se sastoji od šest simbola, [6], [7]:
A | S | s | c | p | D
Simbol A označava razdiobu međudolaznih vremena korisnika. Razdiobe mogu biti
razne, te se označavaju slovima. M označava eksponencijalnu razdiobu, odnosno,
eksponencijalno distribuirana vremena dolazaka korisnika, D označava determinističku
razdiobu gdje su vremenski intervali konstantni, Ek označava Erlangovu razdiobu k-tog reda,
G označava opću, tj. proizvoljnu distribuciju vremenskih intervala.
Simbol S definira razdiobu trajanja posluživanja. Vrste razdioba su iste kao za
međudolazna vremena.
Simbol s označava broj istovrsnih paralelnih poslužitelja. Ako se radi o zapisu „C(n)“,
tada se radi o C broju serijskih poslužitelja spojenih u n koraka ili stadija.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
7
Simbol c prikazuje kapacitet sustava, tj. najveći dopušteni broj korisnika u sustavu
posluživanja, dok simbol p prikazuje kapacitet izvorišta kao najveći dopušteni broj korisnika u
izvorištu. Posljednji simbol označava disciplinu posluživanja u konkretnom sustavu
posluživanja.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
8
4. PROBLEM POSLUŽIVANJA KORISNIKA STUDENTSKE SLUŽBE
FAKULTETA PROMETNIH ZNANOSTI
Studentska služba Fakulteta prometnih znanosti namijenjena je studentima za obavljanje
administrativnih poslova koji se javljaju tijekom studija, primjerice, upisi akademskih godina,
preuzimanje potvrda, te prijava završnih i diplomskih radova. Studenti se trenutno poslužuju
na četiri radna mjesta (u nastavku rada pod terminom radna mjesta podrazumijevaju se
poslužitelji studentske službe namijenjeni posluživanju korisnika), s tim da je treće po redu
radno mjesto namijenjeno prvenstveno prioritetnim korisnicima za prijavu i predaju završnih i
diplomskih radova.
Čekanje na posluživanje u repovima je često stresna i vremenski dugotrajna aktivnost.
Velike gužve pred studentskom službom se redovito javljaju za vrijeme upisa nove
akademske godine kada više desetaka studenata čekaju na posluživanje na pojedinom radnom
mjestu. Često se događa da studenti trebaju izaći iz repa uplatiti školarinu ili obaviti nekakvu
drugu radnju i time izgube svoje mjesto u repu, te taj dan gotovo sigurno neće doći na red za
posluživanje. Također, učestali su pokušaji ulaska u red čekanja u neskladu s vremenima
dolazaka korisnika u studentsku službu, te se među studentima javlja još veća nervoza i
napetost.
Uporabom sustava „RQM@fpz“ gužve pred studentskom službom bi se drastično
umanjile, efikasnije bi se upravljalo repom čekanja, povećala bi se učinkovitost službenica u
studentskoj službi, te bi se omogućilo ugodno čekanje i pravednost pri pozivanju na
posluživanje koja je temeljena na rednim brojevima potvrde. Studenti bi mogli za vrijeme
čekanja na posluživanje obavljati druge aktivnosti poput odlaska na konzultacije,
popunjavanja potrebnih obrazaca ili obavljanje poslova privatne prirode. Krajnja svrha ovog
sustava je pružanje studentima, kao korisnicima, najbolje moguće usluge i izbjegavanje
višesatnog čekanja u repu u kapacitetom ograničenom prostoru pred studentskom službom.
Također, uvođenjem modeliranog sustava posluživanja uvelike bi se doprinijelo ugodnijoj
radnoj okolini službenicama studentske službe, kao i produktivnijem i učinkovitijem
obavljanju radnih aktivnosti.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
9
4.1. Karakteristike sustava „RQM@fpz“
Karakteristike sustava posluživanja „RQM@fpz“ se mogu se promatrati kroz dva
specifična modela posluživanja. U slučaju prioritetnih korisnika, sustav se može promatrati
kao jednoposlužiteljski Poissonov sustav posluživanja s beskonačnim izvorištem. Kendallova
oznaka koja ga opisuje glasi: M|M|1|K|∞|FCFS.
Funkcije razdiobe međudolaznih vremena i trajanja posluživanja su eksponencijalne. Broj
poslužitelja je jedan, s obzirom da prioritetni korisnici mogu biti posluženi samo na trećem
poslužitelju, odnosno radnom mjestu. U sustavu može biti najviše K korisnika jer je broj
korisnika ograničen radnim vremenom studentske službe, stoga će svim korisnicima koji
imaju očekivano vrijeme do posluživanja veće od radnog vremena studentske službe biti
uskraćen ulazak u rep, odnosno, sustav. Izvorište nema ograničenja, a pravilo izlaska iz repa
ka poslužitelju je FCFS (engl. First Come – First Served).
U drugom slučaju kada u repu nema prioritetnih korisnika, sustav je gotovo identičan kao
u slučaju prioritetnih korisnika. Kendallova oznaka primjenjiva na ovaj model posluživanja
glasi: M|M|4|K|∞|FCFS. Razlika je u broju poslužitelja gdje uz postojeća tri za neprioritetne
korisnike, poslužitelj za prioritetne korisnike započinje posluživati neprioritetne korisnike.
Sustav je takve strukture sve dok se u repu ne pojavi prioritetni korisnik. On u tom slučaju
odmah odlazi na posluživanje nakon završetka posluživanja neprioritetnog korisnika na
poslužitelju za prioritetne korisnike. Takvo pravilo izlaska iz repa se naziva prednosno
posluživanje s odgodivim prekidima. Konkretno, prioritetni korisnik pri ulasku u rep odmah
staje na njegovo čelo i čeka završetak posluživanja korisnika koji se u tom trenutku nalazi kod
poslužitelja, te odmah potom odlazi na posluživanje, [6]. U realnim uvjetima za očekivati je
da će se sustav „RQM@fpz“ ponašati kao kombinacija gore navedenih specifičnih modela.
4.2. Algoritam za procjenu očekivanog vremena do posluživanja
Autori ovog rada razvili su algoritam namijenjen procjeni očekivanog vremena do
posluživanja pojedinog korisnika, koji će biti opisan u nastavku. Algoritam za računanje
očekivanog vremena do posluživanja pohranjen je unutar baze podataka u okidaču
„ocekivanoVrijemeDoPosluzivanja“. Važno je naglasiti da očekivano vrijeme do posluživanja
ispisano na potvrdi može varirati u odnosu na vrijeme kad korisnik dođe na posluživanje.
Kada prvi neprioritetni korisnik zatraži potvrdu, na njoj se ispisuje predefinirano prosječno
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
10
vrijeme posluživanja. Temeljem prethodnih analiza, od Fakulteta je dobiven podatak kako je
prosječno vrijeme posluživanja jednog korisnika tri minute. Svaki sljedeći neprioritetni
korisnik na svojoj potvrdi ima ispisanu vrijednost predefiniranog prosječnog vremena
posluživanja sve dok se ne završi posluživanje prvog neprioritetnog korisnika i na temelju
vremena posluživanja dalje se počinje računati novo dinamičko prosječno vrijeme
posluživanja koje će polučiti realnije vrijeme čekanja. Prosječno vrijeme za neprioritetne
korisnike se računa na način da se ukupno vrijeme posluživanja neprioritetnih korisnika
podijeli s brojem posluženih neprioritetnih korisnika. Identičan način se koristi i za računanje
prosječnog vremena posluživanja prioritetnih korisnika.
Pomoću izraza 1 izračunava se očekivano vrijeme do posluživanja za neprioritetne
korisnike uz uvjet da u repu nema prioritetnih korisnika.
(1)
gdje je:
Tci– očekivano vrijeme do posluživanja za i-tog neprioritetnog korisnika gdje i poprima
vrijednosti u intervalu [1, K], [min]
nn – broj neprioritetnih neposluženih korisnika u trenutku t čiji trenutak ulaska u rep čekanja
je raniji od trenutka ulaska i-tog neprioritetnog korisnika
T0 – prosječno vrijeme posluživanja neprioritetnog korisnika [min]
c – broj poslužitelja
Vrijednost T0 se računa kao aritmetička sredina vremena posluživanja svih neprioritetnih
korisnika. U trenutku kada u rep uđe prioritetni korisnik, očekivano vrijeme do posluživanja
se više ne može odrediti pomoću izraza 1.
Dolaskom prvog prioritetnog korisnika u sustav, isti se odmah svrstava na čelo repa.
Očekivano vrijeme do posluživanja za prioritetne korisnike je dano izrazom 2.
( ) [ ] (2)
gdje je:
Tpi – očekivano vrijeme do posluživanja i-tog prioritetnog korisnika gdje i poprima vrijednosti
u intervalu [1, K], [min]
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
11
z3 – indikator zauzetosti trećeg poslužiteljskog mjesta neprioritetnim korisnikom u trenutku
evidentiranja prioritetnog korisnika u repu
T0 – prosječno vrijeme posluživanja neprioritetnog korisnika [min]
np(i-1) – broj prioritetnih korisnika u repu čiji trenutak ulaska u rep čekanja je raniji od trenutka
ulaska i-tog korisnika
Tp0 – prosječno vrijeme posluživanja prioritetnog korisnika [min]
Ukoliko je u trenutku ulaska prioritetnog korisnika u rep čekanja, treće poslužiteljsko
radno mjesto zauzeto neprioritetnim korisnikom, indikator z3 poprima vrijednost 1, a ukoliko
je u danom trenutku treće poslužiteljsko radno mjesto slobodno, indikator z3 poprima
vrijednost 0 i prioritetni korisnik može odmah pristupiti posluživanju. U slučaju da je z3 = 1,
Tp1 se ne utvrđuje kao razlika T0 i vremena koje je neprioritetni korisnik (koji u trenutku
dolaska prioritetnog korisnika zauzima kapacitet trećeg poslužiteljskog radnog mjesta) već
proveo u posluživanju, jer bi dobivena vrijednost mogla poprimiti negativne iznose.
Kada i-ti neprioritetni korisnik uđe u rep u trenutku kada u repu čekaju obje kategorije
korisnika, njegovo očekivano vrijeme do posluživanja se utvrđuje temeljem izraza 3.
[
( ( ) )]
( )
(3)
U tom slučaju očekivano vrijeme do posluživanja je jednako umnošku broja
neprioritetnih korisnika koji čekaju na posluživanje, a u rep su ušli ranije od i-tog korisnika, i
prosječnog vremena posluživanja neprioritetnih korisnika na c – 1 poslužitelja jer se u
trenutku izračunavanja očekivanog vremena do posluživanja jedan poslužitelj koristi za
posluživanje prioritetnih korisnika.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
12
5. OPIS TEHNOLOGIJA KORIŠTENIH PRI PROJEKTIRANJU I
IZGRADNJI SUSTAVA
Sustav upravljanja repom studentske službe Fakulteta prometnih znanosti, „RQM@fpz“,
razvijen je primjenom više tehnologija i podržanih razvojnih okruženja koja će biti opisana u
nastavku ovoga poglavlja.
Struktura sustava „RQM@fpz“ podijeljena je u tri osnovna segmenata čiji je logički
raspored prikazan slikom 2.
Stu
de
nts
ka
sl
užb
a
Ko
risn
ičk
i te
rmin
aln
i u
ređ
aji
Internet
Web poslužitelj
Poslužitelj baze podataka
Računalo za prijavu u sustav
Info zaslon
RQM.web
RQM.kiosk
RQM.info
RQM.služba
SQL
Slika 2: Logička shema sustava
Prvi segment je poslužiteljski i odnosi se na bazu podataka namijenjenu implementaciji
na poslužitelj Fakulteta prometnih znanosti. Baza podataka razvijena je u Microsoft SQL
Server 2008R2 razvojnom okruženju. Unutar same baze podataka, osim njezine strukture,
definirane su pohranjene procedure i okidači koji upravljaju podacima u smislu unosa novih i
izmjene postojećih podataka.
Drugi segment su klijentske aplikacije razvijene korištenjem programskog jezika C# u
Microsoft Visual Studio 2010 razvojnom okruženju, a namijenjene su instalaciji na klijentska
računala studentske službe (modul „RQM.služba“), kiosk računalo putem kojega se izvršava
prijava korisnika u sustav (modul „RQM.kiosk“), te povezivanje sa zaslonima u predvorju
Fakulteta prometnih znanosti u svrhu informiranja korisnika o trenutnom stanju repa (modul
„RQM.info“).
Treći segment obuhvaća web aplikaciju (modul „RQM.web“) namijenjenu
implementaciji na web poslužitelj Fakulteta prometnih znanosti. Web aplikacija je razvijena je
korištenjem .NET tehnologije i C# programskog jezika također pomoću Microsoft Visual
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
13
Studio 2010 razvojnog okruženja, a namijenjena je informiranju korisnika o trenutnom stanju
repa putem Interneta.
5.1. Sustavi baza podataka
Mogućnost trajne pohrane podataka na memorijski prostor računala prisutna je gotovo
koliko i sama računala. Navedena mogućnost podržana je u svim programskim jezicima, pa
tako primjerice jezici poput C, C#, Pascal i mnogi drugi, mogu stvoriti datoteku na tvrdom
disku računala te u nju upisivati podatke, ali isto tako mogu otvoriti već postojeću datoteku i
iz nje čitati, izvršavati promjene ili brisati podatke, [9].
Kako bi se izbjeglo individualno stvaranja datoteka i zapisivanje podataka u njih, te kako
bi se samim time povećala produktivnost, kvaliteta i pouzdanost u razvoju aplikacija
temeljenih na pohrani i pretrazi podataka, razvijen je sustav baze podataka (engl. Database
System). Sustav baze podataka sastoji se od tri glavne komponente, baza podataka (engl.
Database), sustav upravljanja bazom podataka (engl. Database Management System, DBMS)
i strukturirani jezik za upite (engl. Structured Query Language, SQL), [9], [10].
Kako je već spomenuto, pojedina aplikacija ne stvara vlastite datoteke u memoriji
računala već su pohrana i pristup podacima centralizirani, tj. zajednički su za sve aplikacije
koje koriste određene podatke. Pristup podacima u bazama podataka nije direktan već se
izvršava putem SQL upita i sustava za upravljanje bazom podataka, specijaliziranog
programskog alata razvijenog isključivo u svrhu upravljanja bazom i posredovanja između
korisnika (engl. Client) i poslužitelja (engl. Server). Opisani način pristupanja podacima u
bazi prikazan je slikom 3, [9].
Su
sta
v b
aze
po
da
tak
a
korisnik
Baza podataka
SQL upit
DBMS
korisnikkorisnik
Slika 3: Princip pristupa podacima u bazi podataka
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
14
5.1.1. Baza podataka
Baza podataka je skup međusobno povezanih podataka pohranjenih na memoriji računala
koji su dostupni korisnicima i aplikacijama za dohvat, upisivanje i manipulaciju. Kako
korisnici i aplikacije koje koriste bazu podataka ne bi morali poznavati detalje fizičkog
prikaza podataka, tijekom vremena razvijeno je nekoliko modela baza podataka na koju bi se
korisnici referencirali. Model baze podataka je zapravo njezina idealizirana logička struktura
[9], [11].
Od početaka uporabe baza podataka razvijeno je ukupno četiri osnovna modela, [9]:
1) Mrežni model
2) Hijerarhijski model
3) Relacijski model
4) Objektni model
Veliki nedostatak mrežnog i hijerarhijskog modela je što poveznice između tablica
moraju biti unaprijed poznate i ugrađene u bazu prilikom njene izgradnje, što je ograničavalo
dinamiku pri manipulaciji podacima zapisanim u takvoj bazi, [11]. Relacijski model koristi se
već više od trideset godina, unatoč uvjerenju da je prelazak na objektno zasnovanu
metodologiju neizbježan.
Relacijski model baze podataka razvio je krajem 60-ih godina 20. stoljeća dr. E. F. Codd,
[12]. Prva testiranja novog modela bila su spora i neučinkovita radi nedovoljne procesorske i
memorijske snage tadašnjih računala. Razvojem računala, odnosno njihove učinkovitosti u
smislu brzine obrade podataka paralelno se povećavala i učinkovitost relacijskih baza
podataka. Naziv relacija je zapravo matematički izraz za tablicu kojom su predstavljeni
podaci pohranjeni u bazi, a sastoje se od redaka i stupaca. Tablice su međusobno povezane
putem ključa, tj. zajedničkog atributa, [9],[11].
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
15
5.1.2. Strukturirani jezik za upite
Strukturirani jezik za upite (SQL) je programski jezik koji je prihvaćen kao standard kada
je u pitanju upravljanje podacima u relacijskim bazama podataka. Razvoj SQL-a tekao je
paralelno sa razvojem relacijskog modela baza podataka. SQL je razvijen u sklopu projekta
SystemR kompanije sa Donaldom Chamberlineom na čelu projektnog tima, a zasniva se na
relacijskom računu s time da je matematička notacija zamijenjena engleskim ključnim
riječima. Veliku ulogu u širenju SQL jezika imala je kompanija Oracle Corp. koja je ga je
ugradila u vlastiti DBMS čime je taj jezik postao dostupan na raznim računalnim platformama
[9].
Osim postavljanja samih upita, SQL dopušta definiranje relacija, njihovo ažuriranje
(umetanje, izmjena, brisanje), sortiranje i formatiranje ispisa, aritmetičke operacije te petlje
(FOR, WHILE) i kontrolu toka izvođenja koda (IF-THEN), [10].
Neke od najčešće korištenih naredbi u SQL-u su:
SELECT naziv_atributa FROM naziv_tablice WHERE uvjet
- koristi se za dohvat atributa iz tablice prema određenim uvjetima
INSERT INTO naziv_tablice (naziv_atributa)
VALUES (naziv_atributa)
- koristi se za umetanje zapisa u definiranu tablicu
UPDATE naziv_tablice
SET naziv_atributa=vrijednost_atributa
WHERE uvjet
- koristi se za ažuriranje definirane tablice
CREATE PROCEDURE naziv_procedure
AS SQL_izraz
- koristi se za kreiranje pohranjene procedure
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
16
5.2. Tehnologija ASP.NET
ASP.NET (engl. Active Server Pages. NET) je jedna od najraširenijih tehnologija koja se
koristi za pristup sadržaju putem web preglednika. Koristi HTML (engl. HyperText Markup
Language), CSS (engl. Cascading Style Sheets), JavaScript i poslužiteljske procese kako bi
se omogućio ne ometani rad web stranica. Postao je popularan zbog jednostavnosti korištenja
poput opcije drag-and-drop. Opcija omogućava programerima odabir sadržaja kao što je tipka
te postavljanje na željeno mjesto unutar aplikacije. ASP.NET će generirati kod umjesto
programera. Također, omogućava programerima da odaberu jedan od tri različita modela
izrade (programiranja) web stranica. Modeli su: web stranica, MVC (engl. Model View
Controller) i web forme. Svi modeli su sadržani u C# programskom jeziku, [16].
Preteča ASP.NET-a je ASP (engl. Active Server Pages). ASP je prva tehnologija koja
omogućava pokretanje pozadinskih procesa na IIS (engl. Internet Information Server)
poslužitelju. Omogućava pokretanje procesa na web stranici pomoću IIS poslužitelja a ASP
paketi koji se pokreću imaju .asp ekstenziju i najčešće su pisani u VBScripts i Jscript
skriptnom jeziku, [19].
ASP.NET je nova generacija ASP-a. ASP nije kompatibilan sa ASP.NET, dok ga
ASP.NET može sadržavati. Sadrži veliku bazu korisničkih kontrolera, veću podršku za
komponente koje su bazirane na XML-u (engl. EXtensible Markup Language) i integriranu
korisničku autentifikaciju te stranice koje su pisane u ASP.NET imaju ekstenziju .aspx, a
najčešće su pisane u VB (engl. Visual Basic) ili C# programskim jezicima. U trenutku kada
web preglednik zahtijeva ASP.NET datoteku ASP.NET program dohvaća traženu datoteku,
učitava i sastavlja je te pokreće procese koji se u njoj nalaze. Zahtijevana datoteka (sadržaj) se
vraća web poslužitelju u HTML obliku, [16].
HTML bi se mogao najbolje prevesti kao prezentacijski jezik za izradu web stranica.
Hipertekst je dokument koji se piše, odnosno, stvara uporabom HTML jezika te se oblikuju i
stvaraju tzv. hiperveze, odnosno, veze koje povezuju hipertekst dokumente u jednu cjelinu.
Važno je napomenuti da HTML nije programski jezik te da se njime ne mogu izvršiti nikakve
operacije, to je jezik za opis (povezivanje) hipertekstualnih dokumenata te su njegove
datoteke obične tekst datoteke koje su označene .html ili .htm ekstenzijama. Poveznice koje se
nalaze unutar HTML dokumenata omogućavaju povezivanje dokumenata, te uređuju
hijerarhijsku strukturu čime se određuje način, odnosno, izgled sadržaja koji se prikazuje na
Internet stranici, [17].
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
17
CSS bi se najbolje mogao prevesti kao grafički jezik koji se koristi za grafičku izvedbu
dokumenata izrađenih pomoću HTML jezika. U počecima razvijanja, prikazivanja i korištenja
web stranica nije postojao CSS već su njegove funkcionalnosti bile implementirale u web
stranice putem HTML jezika. Takav način izrade web stranica nije bio praktičan te se ubrzo
uočila potreba za grafičkim jezikom koji bi omogućio uređivanje izgleda i raspored sadržaja
na web stranicama pošto HTML nikada nije bio namijenjen sadržavanju tzv. tagova kako bi se
omogućilo uređivanje dokumenta koji je napravljen HTML jezikom. Izdavanjem inačice 4.0
HTML-a, grafička izrada web stranica se izbacila iz HTML dokumenata te se „preselila“
unutar odvojenih CSS datoteka kako bi se olakšala grafička izrada. CCS definira kako će
elementi HTML biti prikazani na web stranici. Dokumenti koji su pohranjeni u CSS formatu
imaju .css ekstenziju. Uvođenjem CSS-a je omogućena promjena sadržaja više web stranica
odjednom izvođenjem promjena nad jednom datotekom za razliku od prijašnjih inačica
HTML-a koji nisu imali CSS gdje se morala svaka HTML datoteka uređivati zasebno, [17].
JavaScript je skriptni jezik koji omogućava stvaranje interaktivnih web stranica.
Interaktivnost je potrebna radi, inače, statičkih HTML stranica, te je ugrađen u sve inačice
web preglednika kao što su Internet Explorer, Google Chrome i dr. Programski kod koji je
napisan mora biti uključen ili se mora referencirati na HTML dokument kako bi se mogao
izvršiti unutar web preglednika. To znači da uvođenjem JavaScript web stranice više ne
moraju biti statičke (koristi statički HTML) već mogu uključivati programe koji su
interaktivni sa korisnikom i podržavaju dinamičko stvaranje HTML sadržaja, [18].
5.3. Programski jezik C#
C# (C sharp) je jednostavan objektno orijentiran programski jezik razvijen od strane
Microsofta. Prva verzija (C# 1.0) pojavila se 2001. godine, te su se potom ubrzo pojavile nove
verzije ovog programskog jezika. Posljednja verzija C#-a (C# 5.0) je predstavljena u
kolovozu 2012. godine. Ovaj programski jezik dizajniran je da bude jednostavan, siguran,
objektno orijentiran i brz. Jednostavnost se manifestira kroz samo osamdeset ključnih riječi i
desetak tipova, [14]. Siguran je za upis koda jer se traženje pogrešaka (engl. debugging)
obavlja za vrijeme pisanja koda, a ne samo nakon pokretanja. C# kao objektno orijentirani
programski jezik se sastoji od više različitih objekata koji mogu imati iste, slične ili potpuno
specifične osobine. Te osobine se nazivaju atributima. Pored atributa objekti imaju i svoju
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
18
funkcionalnost opisanu blokovima koda koje sadrže nizove naredbi, koje se nazivaju
metodama.
Programiranje korištenjem objektno orijentirane paradigme1
sastoji se od sljedećih
koraka, [15]:
- identificiranje objekata
- identificiranje atributa objekata i njihovih vrijednosti
- identificiranje funkcionalnosti objekata
- klasifikacija objekata u klase
- definiranje klasa
- identificiranje komunikacije između objekata.
1 Programska paradigma – osnovni stil računalnog programiranja
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
19
6. RAZVOJ BAZE PODATAKA SUSTAVA „RQM@fpz“
Razvoj baze podataka predstavlja složen zadatak koji zahtjeva primjenu raznovrsnih
metoda i alata te se takvom projektnom zadatku, nužno, mora pristupati studijski i planski.
Prema [9], razvoj baze podataka moguće je podijeliti u pet osnovnih cjelina, koje se još
nazivaju i razvojnim ciklusom i općenito su karakteristika programskog inženjerstva:
1) Utvrđivanje i analiza zahtjeva
2) Modeliranje (konceptualno i logičko)
3) Implementacija
4) Testiranje
5) Održavanje.
Baza podataka predstavlja osnovicu cjelokupnog „RQM@fpz“ sustava, a razvijena je s
idejom rasterećenja klijentskih računala. Prema tome sve operacije poput izračunavanja
očekivanog vremena do posluživanja i izračuna prosječnog vremena posluživanja izvršavaju
se na poslužitelju baze podataka. Ovakav pristup razvoju sustava osigurava smanjenu količinu
prometa unutar mreže, a time i brži rad modula sustava. Kako bi ovaj način razvoja bio
ostvariv, upravljanje podacima u bazi nužno je provesti putem pohranjenih procedura pri
čemu moduli sustava bazi podataka dostavljaju samo vrijednosti traženih parametara, te
prihvaćaju vrijednosti novih parametara kao rezultat obrade unutar pohranjene procedure.
Pohranjene procedure korištene su i zbog svojih drugih prednosti poput enkapsulacije2 (engl.
encapsulation) logike upita ili algoritama, lakšeg upravljanja iznimkama i sl. Njihovom
uporabom povećana je i sigurnost sustava pošto se na bazu podataka ne postavljaju SQL upiti
iz modula sustava čime je smanjena mogućnost izvršavanje SQL injection3 metode napada,
[20].
2 Hrvatski prijevod „začahurenost“ nije zadovoljavajući
3 Metoda napada kojom se bazi podataka šalje prilagođen SQL upit s ciljem otkrivanja povjerljivih podataka ili
stjecanja kontrole nad sustavom
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
20
6.1. Utvrđivanje i analiza zahtjeva
Prilikom izrade baze podataka potrebno je utvrditi i analizirati zahtjeve koji će pred nju
biti postavljeni. Kako bi to bilo moguće potrebno je poznavati procese i postupke koji se
odvijaju unutar studentske službe. Također potrebno je definirati procedure i postupke koji će
se obavljati nad podacima pohranjenima unutar baze podataka.
Studentska služba Fakulteta prometnih znanosti trenutno se sastoji od četiri radna mjesta.
Tijekom radnog vremena studentske službe korisnici imaju mogućnost dolaska na
posluživanje. Sva četiri radna mjesta studentske službe namijenjena su posluživanju korisnika
bez prioriteta što obuhvaća sve korisnike osim onih koji prijavljuju ili predaju završne i
diplomske radove. Prioritetni korisnik, odnosno korisnik koji predaje diplomski ili završni rad
prilikom dolaska u studentsku službu ima prioritet posluživanja na radnom mjestu broj 3.
Proces posluživanja korisnika u studentskoj službi opisan ja UML dijagramom aktivnosti
prikazanim slikom 4.
dolazak studenta pred studentsku službu
ulazak studenta u rep
broj studenata u repu>0
čekanje
radno vrijeme studentske službe isteklo
[false]
[true]
student ne ulazi u rep
[provjera broja studenata]
[true]
[false]
posluživanje studenta
odlazak iz studentske službe
posluživanje na radnom mjestu br. 3
prioritetni student
[false] [true] broj prioritetnih studenata u repu>0
[false]
[provjera broja studenata]
čekanje
[true]
Slika 4: UML dijagram aktivnosti posluživanja studenta u studentskoj službi
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
21
Nakon implementacije sustava RQM@fpz proces posluživanja korisnika bio bi
izmijenjen u nekim segmentima, što je moguće vidjeti iz UML dijagrama aktivnosti
prikazanog slikom 5.
Korisnik prije posluživanja u studentskoj službi mora izvršiti prijavu u sustav RQM@fpz.
Prijava se vrši unošenjem JMBAG4-a te odabirom kategorije A ili kategorije B. Kategorija A
označava sve korisnike koji zahtijevaju posluživanje osim onih koji zahtijevaju posluživanje
vezano uz diplomske i završne radove, te oni pripadaju kategoriji B. Korisnici kategorije B su
korisnici sa prioritetom posluživanja na radnom mjestu broj 3. Prijavni podaci korisnika
upisuju se u bazu podataka te se izračunava očekivano vrijeme do posluživanja. Sustav izdaje
korisniku potvrdu koja sadrži redni broj i kategoriju posluživanja, datum i vrijeme izdavanja
potvrde, očekivano vrijeme do posluživanja, te opcionalno dodatne informacije. Korisnik
status repa može provjeravati na dva načina, putem info zaslona u predvorju Fakulteta ili
putem web stranice. Nakon objave rednog broja na info zaslonu koji odgovara rednom broju
na potvrdi korisnik odlazi na posluživanje na radno mjesto ispisano uz redni broj na info
zaslonu. Službenica na radnom mjestu poslužuje dolazećeg korisnika.
4 JMBAG (Jedinstveni Matični Broj Akademskog Građana) – broj koji jedinstveno određuje svaku osobu
akademske zajednice
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
22
dolazak studenta u studentsku službu
pristupanje računalu za prijavu na posluživanje
unos JMBAG-a i odabir kategorije
[katogorija B] [kategorija A]
preuzimanje potvrde koja sadrži redni broj i očekivano vrijeme do posluživanja kategorije A
preuzimanje potvrde koja sadrži redni broj i očekivano vrijeme do posluživanja kategorije B
provjera informacija o posluživanjuna zaslonu/web stranici
redni broj sa potvrde je prikazan
[false]
[true]
odlazak na posluživanje na radno mjesto prikazano putem info zaslona
provjera informacija o posluživanjuna zaslonu/web stranici
redni broj sa potvrde je prikazan
[false]
odlazak na posluživanje na radno mjesto prikazano putem info zaslona
[true]
kraj posluživanja
odlazak iz studentske službe
radno vrijeme studentske službe isteklo/očekivano vrijeme do posluživanja prelazi
radno vrijeme službe
[false]
[true]
Ispis poruke studentu o nemogućnosti posluživanja
Slika 5: Proces posluživanja studenta u studentskoj službi nakon implementacije sustava „RQM@fpz“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
23
6.2. Modeliranje baze podataka
6.2.1. Konceptualno modeliranje
Temeljem, prethodno, pojednostavljeno opisanog procesa posluživanja studenata u
studentskoj službi moguće je pristupiti konceptualnom modeliranju baze podataka. U prvom
koraku potrebno je izlučiti entitete, atribute i veze kao osnovu daljnjeg razvoja.
Entitet je skup objekata od interesa iz realnog svijeta sa naglašenim zajedničkim
svojstvima, [10],[13]. Entiteti koji se mogu izlučiti iz opisanog procesa su:
a) Student – entitet koji predstavlja studente Fakulteta (korisnike) koji zahtijevaju
posluživanje u studentskoj službi,
b) Radno mjesto – poslužitelj na koji dolaze korisnici na posluživanje,
c) Službenica studentske službe – entitet koji obavlja posluživanje korisnika na radnom
mjestu,
d) Potvrda – entitet koji je nužan u razvoju baze podataka u smislu jedinstvene pohrane
svake prijave studenta u sustav.
Veze su odnosi između entiteta od interesa čijom se uspostavom izražava njihova
povezanost, [9]. Između definiranih entiteta moguće je uspostaviti slijedeće veze:
a) Jedan korisnik preuzima nula ili mnogo potvrda [0..*], jedna potvrda preuzeta je od
samo jednog korisnika [1..1],
b) Jedna službenica studentske službe poslužuje nula ili mnogo potvrda [0..*], jedna
potvrda poslužena je kod samo jedne službenice studentske službe [1..1],
c) Na jednom radnom mjestu obrađuje se nula ili mnogo potvrda [0..*], jedna potvrda
obrađena je na samo jednom radnom mjestu [1..1].
Nakon definiranih entiteta i veza među njima potrebno je još samo definirati atribute.
Atributi su obilježja ili svojstva entiteta koja su od značaja za izradu baze podataka, [13].
Primjer nekih atributa od značaja pridodanih pojedinom entitetu su:
a) Student (JMBAG, OIB5, ime, prezime),
b) Radno mjesto (broj radnog mjesta),
c) Službenica studentske službe (ime, prezime),
5 OIB (Osobni Identifikacijski Broj) – broj koji jedinstveno određuje svakog državljanina Republike Hrvatske
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
24
d) Potvrda (datum izdavanja potvrde, kategorija, redni broj, očekivano vrijeme do
posluživanja).
Na osnovi definiranih entiteta, veza i atributa razrađena je konceptualna shema baze
podataka prikazana slikom 6. Entiteti su prikazani unutar pravokutnika, veze unutar rombova,
a atributi unutar elipse. Između entiteta, također su naznačeni i kardinaliteti koji se nalaze na
poveznicama između entiteta i veze.
Radno mjesto poslužuje obrađujePotvrda Službenica
Student
preuzima
(1,1) (0,n) (0,n) (1,1)
(0,n)
(1,1)
rBroj
ticketID
datumIzdavanja
vrOdlaska vrDolaska
ocekVr
vrPosluzivanja
pri
prezime
ime JMBAG
OIB
slID
slIme
slPrezime
rmID
brRM
aktivnost
Slika 6: Grafički prikaz konceptualne sheme (Chenov dijagram)
6.2.2. Logičko modeliranje
Glavni cilj logičkog modeliranja baze podataka jest stvoriti relacijsku shemu baze
podataka. Relacijska shema, prikazana slikom 7, opisuje logičku strukturu baze u skladu s
pravilima relacijskog modela podataka, a od konceptualne sheme se razlikuje u mogućnosti
implementacije putem DBMS-a. Prilikom logičkog modeliranja potrebno je definirati relacije
(tablice) koje odgovaraju entitetima iz konceptualnog modela. Tablice se sastoje od stupaca i
redaka pri čemu stupci odgovaraju atributima iz konceptualnog modela, a redci predstavljaju
vrijednosti pojedinog atributa.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
25
RadnoMjesto
PK rmID
brRM aktivnost
Sluzbenica
PK slID
slIme slPrezime
Student
PK jmbag
oib ime prezime
Ticket
PK,FK3 rmIDPK ticketID
datumIzdavanja pri rBroj vrDolaska vrOdlaskaFK2 jmbagFK1 slID vrPosluzivanja ocekVr
Slika 7: Grafički prikaz relacijske sheme
Logičkim modeliranjem definirani su primarni ključevi pojedine tablice te tipovi
podataka pojedinog atributa, što je vidljivo iz rječnika podataka prikazanog tablicom 1.
Kako su već u samome početku modeliranja uočeni svi potrebni entiteti, atributi i veze,
ne postoji potreba za dodatnom normalizacijom baze podataka.
Tablica 1: Rječnik podataka
IME PODATKA TIP
PODATKA OPIS TABLICA
JMBAG varchar(10) jedinstvena oznaka studenta Student
OIB varchar(11) OIB studenta Student
ime varchar(max) ime studenta Student
prezime varchar(max) prezime studenta Student
rmID tinyint jedinstvena oznaka radnog mjesta RadnoMjesto
brRM tinyint broj radnog mjesta RadnoMjesto
aktivnost bit oznaka da li je radno mjesto
otvoreno za posluživanje RadnoMjesto
slID tinyint jedinstvena oznaka službenice
studentske službe Sluzbenica
slIme varchar(max) Ime službenice Sluzbenica
slPrezime varchar(max) Prezime službenice Sluzbenica
ticketID integer jedinstvena oznaka potvrde Potvrda
datumIzdavanja datetime Datum/vrijeme izdavanja potvrde Potvrda
pri bit izabrana kategorija studenta Potvrda
rBroj smallint redni broj izdane potvrde Potvrda
vrDolaska datetime vrijeme dolaska na posluživanje Potvrda
vrOdlaska datetime vrijeme odlaska sa posluživanja Potvrda
vrPosluzivanja time vrijeme od početka do kraja
posluživanja Potvrda
ocekVr time očekivano vrijeme do posluživanja
studenta Potvrda
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
26
6.3. Implementacija
Implementacija baze podataka temelji se na zapisivanju, prethodno razrađenog, logičkog
modela SQL jezikom, poštujući sintaksu i ostala pravila pisanja SQL koda. Krajnji cilj
implementacije je stvaranje fizičkog zapisa baze na tvrdi disk klijentskog računala ili
poslužitelja. Većinu detalja unutar fizičkog modela određuje DBMS putem ugrađenih pravila.
Definiranje atributa pojedine tablice izvršava se prema već razrađenom rječniku podataka.
Slikom 8 prikazan je izvorni SQL kod implementacije baze putem MS SQL Server 2008R2
razvojnog okruženja. Unutar koda definirani su i atributi te primarni i strani ključevi kao i
atributi čija vrijednost je obavezna (NOT NULL).
Uz implementiranu bazu podataka kreirane su pohranjene procedure i okidači za
umetanje, ažuriranje i dohvat podataka iz baze u svrhu manipulacije podacima putem
razvijenih modula RQM@fpz sustava koji će biti prikazani u kasnijim poglavljima ovoga
rada.
Slika 8: Izvorni SQL kod implementacije baze podataka
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
27
6.3.1. Pohranjena procedura „dolazni“
Pohranjena procedura „dolazni“ kreirana je s ciljem umetanja novog zapisa u tablicu
„Potvrda“, što je vidljivo na slici 10. Zbog opsežnosti izvornog SQL koda, način rada
pohranjene procedure prikazan je UML dijagramom aktivnosti (slika 9).
provjera JMBAG-a
/ vrijednosti JMBAG i pri (modul RQM.kiosk)
[false]
JMBAG zapisan u bazi podataka
obavjest o pogrešno upisanom JMBAG-u
[true]
provjera broja izdanih potvrdau trenutnom danu
broj potvrda>0
redni broj=MAX(redni broj) + 1
[true]
redni broj = 1
[false]
pri = vrijednost pri iz RQM.kiosk
datum izdavanja potvrde=trenutni datum/vrijeme
umetanje zapisa u tablicu "Potvrda"
umetanje zapisa u tablicu "Potvrda"
/ aktiviranje okidača ocekivanoVrijemeDoPosluzivanja
JMBAG= JMBAG iz RQM.kiosk
Slika 9: UML dijagram aktivnosti za pohranjenu proceduru „dolazni“
Prilikom umetanja novog zapisa potrebno je postaviti vrijednosti sljedećih atributa:
1) „ticketID“ – primarni ključ tablice čija se vrijednost unosi automatski dodavanjem
novog zapisa,
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
28
2) „datumIzdavanja“ – datum i vrijeme izdavanja potvrde, poprima vrijednost trenutnog
vremena sustava,
3) „pri“ – kategorija koju korisnik odabire prilikom prijave putem modula
„RQM.kiosk“, poprima vrijednost „1“ za kategoriju „A“ ili vrijednost „0“ za
kategoriju „B“,
4) „rBroj“ – redni broj potvrde. Početni redni broj je 1, a zadnji ovisi o broju korisnika
prijavljenih u sustav tijekom dana. Početkom novog dana redni brojevi polaze
ponovno od broja 1,
5) JMBAG – unosi ga korisnik putem modula „RQM.kiosk“ prilikom prijave u sustav.
Kako je JMBAG strani ključ u tablici „Potvrda“, a primarni ključ u tablici „Student“,
unos JMBAG-a koji ne postoji u tablici „Student“ rezultirat će pogreškom sustava
zbog kršenja pravila očuvanja referencijalnog integriteta,
6) „ocekVr“ – očekivano vrijeme do posluživanja, izračunava se dinamički, algoritmom
implementiranim unutar okidača koji će biti objašnjen naknadno.
6.3.2. Pohranjena procedura „posluzivanje“
Uloga pohranjene procedure „posluzivanje“ u bazi podataka je ažuriranje tablice
„Potvrda“. Izvršavanje pohranjene procedure poziva se iz modula „RQM.služba“ koji
dostavlja vrijednosti parametara „rmID“ (ID radnog mjesta) i „slID“ (ID službenice
studentske službe). Na temelju dostavljenih vrijednosti pohranjena procedura ažurira slijedeće
atribute, što je i vidljivo iz slike 11:
1) „vrDolaska“ – atribut koji označava datum i vrijeme dolaska potvrde (korisnika) na
posluživanje i poprima vrijednost vremena sustava u trenutku pozivanja pohranjene
procedure iz modula RQM.služba
Slika 10: Tablica „Potvrda“ nakon izvršavanja pohranjene procedure „dolazni“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
29
2) „vrOdlaska“ - atribut koji označava datum i vrijeme odlaska potvrde sa posluživanja i
poprima vrijednost vremena sustava u trenutku pozivanja pohranjene procedure iz
modula „RQM.služba“. Pozivom pohranjene procedure slijedno se ažurira atribut
„vrOdlaska“ potvrde koja je trenutno na posluživanju i atribut „vrDolaska“ potvrde
koja je slijedeća zapisana u tablici „Potvrda“
3) „rmID“ – primarni ključ tablice „RadnoMjesto“ i strani ključ tablice „Potvrda“.
Vrijednost parametra „rmID“ pohranjenoj proceduri dostavlja modul „RQM.služba“
koja se zapisuje u tablici „Potvrda“ i označava radno mjesto na kojemu se izvršava
posluživanje. Sustav će rezultirati pogreškom ukoliko vrijednost ne postoji u tablici
„RadnoMjesto“ u cilju očuvanja referencijalnog integriteta.
4) „slID“ – primarni ključ tablice „Sluzbenica“ i strani ključ tablice „Potvrda“.
Vrijednost parametra „slID“ pohranjenoj proceduri dostavlja modul „RQM.služba“, te
se ista zapisuje unutar tablice „Potvrda“ i označava službenicu studentske službe koja
obavlja posluživanje. Pravilo referencijalnog integriteta mora biti poštivano kao i kod
prethodno opisanog atributa, „rmID“.
5) „vrPosluživanja“ – atribut koji poprima vrijednost trajanja posluživanja, odnosno,
proteklo vrijeme od početka do kraja posluživanja. Vrijednost atributa ažurira okidač
„trajanjePosluzivanja“ koji će biti opisan naknadno.
Zbog opširnosti izvornog SQL koda, pohranjena procedura opisana je UML dijagramom
aktivnosti u sklopu priloga 1.
Iz ažurirane tablice „Potvrda“, prikazane slikom 11, vidljivo je kako radno mjesto broj 1
ne ažurira zapise gdje atribut „pri“ ima vrijednost „0“. Razlog tomu je što se potvrde sa
prioritetom poslužuju isključivo na radnom mjestu broj 3.
Slika 11: Tablica „Potvrda“ nakon ažuriranja putem pohranjene procedure „posluzivanje“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
30
6.3.3. Pohranjena procedura „dohvatNeposluzenih“
Jedna od opcija modula „RQM.služba“, „RQM.info“ i „RQM.web“ je prikaz broja
korisnika u repu prema kategoriji. U svrhu dostave traženih vrijednosti kreirana je pohranjena
procedura „neposluzeni“. Navedena procedura na temelju vrijednosti parametra „pri“,
primljenog od nabrojanih modula, prebrojava zapise u bazi gdje je vrijednost atributa
„vrDolaska“ NULL što označava da potvrda još nije obrađena. Izvorni SQL kod opisane
pohranjene procedure prikazan je slikom 12.
Slika 12: Izvorni SQL kod pohranjene procedure „dohvatNeposluzenih“
6.3.4. Pohranjena procedura „sljedeciRedniBroj“
Jedna od najvažnijih informacija koju moduli sustava „RQM@fpz“ imaju mogućnost
prikazati je redni broj potvrde koja se počinje posluživati. Ta informacija je ključna
korisnicima sustava kako bi znali kada je njihov red za posluživanje, kao i službenici
studentske službe koja na temelju te informacije može provjeriti ima li dolazeći korisnik
ispravan redni broj na fizičkoj (ispisanoj) potvrdi.
Moduli sustava zadaju vrijednost parametra „rmID“ na temelju kojega pohranjena
procedura vrši dohvat rednog broja („rBroj“) iz tablice „Potvrda“ gdje zadana vrijednost
„rmID“ odgovara vrijednosti atributa „rmID“ u zapisima tablice te gdje je vrijednost atributa
„vrOdlaska“ NULL. Izvorni SQL kod pohranjene procedure vidljiv je na slici 13.
Slika 13: Izvorni SQL kod pohranjene procedure „sljedeciRedniBroj“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
31
6.3.5. Pohranjena procedura „aktivnostRadnogMjesta“
Izračun očekivanog vremena do posluživanja temelji se, između ostaloga, na broju radnih
mjesta studentske službe koji aktivno poslužuju korisnike. Prilikom obavljanja određenih
administrativnih poslova službenica studentske službe nije u mogućnosti posluživati korisnike
te je samim time radno mjesto službenice neaktivno. U svrhu kontrole aktivnosti radnih
mjesta potrebno je bazi podataka osigurati mehanizam koji će pratiti njihovu aktivnost.
Opisani problem riješen je dodavanjem atributa „aktivnost“ tablici „RadnoMjesto“ koji može
poprimiti dvije vrijednosti, „0“ i „1“. Vrijednost „0“ je zadana vrijednost atributa i označava
radno mjesto neaktivnim, dok vrijednost „1“ označava da je radno mjesto aktivno te se na
njemu vrši posluživanje korisnika.
Promjena vrijednosti atributa „aktivnost“ izvršava se putem pohranjene procedure
„aktivnostRadnogMjesta“, čiji je izvorni SQL kod prikazan slikom 14.
Slika 14: Izvorni SQL kod za pohranjenu proceduru „aktivnostRadnogMjesta“
Prilikom pokretanja modula „RQM.služba“, pohranjenoj proceduri dostavlja se vrijednost
parametra „@rmID“ koji odgovara radnom mjestu na kojemu je modul pokrenut te vrijednost
„1“ parametra „@aktivnost“. Na temelju dostavljenih vrijednosti parametara izvršava se
ažuriranje odgovarajućeg retka u tablici „RadnoMjesto“ koja je prikazana slikom 15.
Prilikom zatvaranja modula, vrijednost parametra „@aktivnost“ mijenja se iz „1“ u „0“ te se
tablica ponovno ažurira.
Slika 15: Prikaz tablice „RadnoMjesto“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
32
6.3.6. Pohranjena procedura „prosjecnoVrijemePosluzivanja“
Pohranjena procedura „prosjecnoVrijemePosluzivanja“, čiji je izvorni SQL kod prikazan
slikom 16, namijenjena je dohvatu prosječnog vremena posluživanja korisnika pojedine
kategorije. Vrijednost pohranjene procedure prosljeđuje se, na zahtjev, modulu „RQM.info“
koji prosječno vrijeme posluživanja prikazuje kao informaciju na info zaslonu.
Slika 16
6.3.7. Okidač „trajanjePosluzivanja“
Okidač „trajanjePosluzivanja“ izvršava se po ažuriranju retka tablice „Potvrda“ od strane
pohranjene procedure „posluzivanje“ s ciljem postavljanja vrijednosti atributa
„vrPosluzivanja“. Atribut „vrPosluzivanja“ označava vrijeme trajanja posluživanja jedne
potvrde i rezultat je razlike atributa „vrOdlaska“ i „vrDolaska“ što je vidljivo iz slike 11.
Slika 17: Izvorni SQL kod za okidač „trajanjePosluzivanja“
Iz slike 17, redak 4, vidljivo je kako se okidač izvršava tek kada se izvrši ažuriranje
atributa „vrOdlaska“ što označava završetak posluživanja jedne potvrde.
Slika 16: Izvorni SQL kod pohranjene procedure "prosjecnoVrijemePosluzivanja"
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
33
6.3.8. Okidač „ocekivanoVrijemeDoPosluzivanja“
Očekivano vrijeme do posluživanja je parametar koji se izračunava dinamički, a u
ovisnosti je o broju aktivnih radnih mjesta, prethodnim vremenima trajanja posluživanja,
broju korisnika u repu, te odabranoj kategoriji tj. prioritetu.
Okidač „ocekivanoVrijemeDoPosluzivanja“ izvršava se prilikom umetanja novog zapisa
u tablicu „Potvrda“ od strane pohranjene procedure „dolazni“. Unutar samog okidača
implementiran je algoritam za izračun očekivanog vremena, a njegovo izvršavanje rezultira
ažuriranjem atributa „ocekVr“, unutar tablice „Potvrda“, dobivenom vrijednošću.
6.4. Testiranje
Testiranje baze podataka je zahtjevan i neizbježan zadatak koji je nužno provoditi kako bi
se postigla željena funkcionalnost. Izvodi se, nerijetko, velikim brojem iteracija unosa
podataka i njihove analize kako bi se otkrile i otklonile eventualne pogreške nastale tijekom
razvoja.
Baza podataka, razvijena za sustav „RQM@fpz“, testirana je unosom preko 4000 zapisa
(vidljivo na slikama 10 i 11, vrijednost atributa „ticketID“) tijekom perioda od pet mjeseci.
Testiranje je provedeno s ciljem ispravljanja razvojnih pogrešaka prilikom kreiranja fizičke
strukture baze, kreiranja pohranjenih procedura i okidača, te s ciljem provjere ponašanja baze
u različitim okolnostima. Također, tijekom razvoja modula sustava, baza je testirana u svrhu
prilagodbe određenih pohranjenih procedura s ciljem uspostave funkcionalnosti i stabilnosti
razvijenog sustava.
Način testiranja provodio se u dvije faze. Tijekom prve faze baza je testirana putem SQL
razvojnog okruženja, odnosno manualnim pokretanjem pohranjenih procedura te analizom
podataka zapisanih u bazi. Drugom fazom, u testiranje su uključeni i razvijeni moduli sustava
putem kojih se vršio unos, ažuriranje i dohvat podataka čime su otkrivene i ispravljene
određene pogreške.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
34
6.5. Održavanje
Održavanje baze podataka predstavlja kontinuiran i složen proces koji započinje njezinim
ulaskom u redovnu uporabu. Ovim potpoglavljem biti će ukratko objašnjen način na koji je
planirano održavanje baze podataka nakon njezinog ulaska u redovnu uporabu.
Prema [9], postupak održavanja baze podataka planiran je na tri razine:
1) Korekcijsko održavanje – odnosi se na ispravljanje pogrešaka koje nisu otkrivene
tijekom faze testiranje,
2) Perfekcijsko održavanje – obuhvaća izmjenu ili prilagodbu početne sheme radi
prilagodbe novim aplikacijama ili modulima sustava koji nisu postojali u početku,
3) Adaptacijsko održavanje – podrazumijeva prilagodbu baze u slučaju korištenja
DBMS-a koji se nije koristio tijekom razvoja baze.
Održavanje obuhvaća, također, i periodičko stvaranje sigurnosnih kopija baze podataka,
potpunih i diferencijalnih, odnosno njihove kombinacije kako bi se mogao izvršiti njezin
oporavak u slučaju gubitka podataka, [13]. Vrlo je bitan i periodički pregled i analiza
dnevničkih zapisa kako bi se na vrijeme uočile i ispravile određene pogreške i poteškoće u
radu baze.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
35
7. RAZVOJ MODULA SUSTAVA „RQM@fpz“
7.1. Modul „RQM.kiosk“
Aplikacija „RQM.kiosk“ je modul sustava „RQM@fpz“, a namijenjena je korisnicima
koji žele koristiti usluge studentske službe Fakulteta prometnih znanosti. Korisnici se pomoću
nje prijavljuju na posluživanje, te ih se svrstava u rep. Izgled aplikacije prikazan je na slici 18.
Korisnici će se moći upoznati s popisom administrativnih poslova vezanih za određenu
kategoriju posluživanja putem info plakata u predvorju Fakulteta, te na službenim stranicama
Fakulteta.
Slika 18: Izgled aplikacije „RQM.kiosk“
Sama aplikacija se sastoji od polja za unos JMBAG-a, tipki za unos brojeva i brisanje, te
dvije tipke za odabir kategorije. Unos JMBAG-a se vrši na način da korisnik putem dodirnika
(engl. touchscreen) upisuje vlastiti JMBAG, te potom odabire željenu kategoriju. Nakon toga
korisniku se ispisuje potvrda s oznakom odabrane kategorije, rednim brojem, JMBAG-om,
vremenom kada je potvrda zatražena, te očekivanim vremenom do posluživanja.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
36
Aplikacija „RQM.kiosk“ je izgrađena u razvojnom alatu Microsoft Visual Studio 2010,
pri čemu su korištene Microsoft .NET komponente čije ponašanje je definirano programskim
jezikom C#. Microsoft .NET komponente korištene pri izradi aplikacije su sljedeće:
- textbox za upis JMBAG-a – „unosJMBAG“
- tipke za unos brojeva od 0 do 9 – „tipka0“…“tipka9“
- tipka za brisanje cijelog unosa „C“ – „tipkaBrisiSve“
- tipka za brisanje zadnjeg unesenog broja „←“ – „tipkaBrisi“
- tipka za odabir kategorije A – „kategorija_A“
- tipka za odabir kategorije B – „kategorija_B“
Za potrebe unosa JMBAG-a kreirane su tipke s vrijednostima od 0 do 9. Prilikom pritiska
na tipku u polje za unos (engl. textbox) se upisuje vrijednost koja je definirana samom tipkom.
U slučaju da korisnik želi izbrisati zadnji uneseni broj u textbox, to će učiniti pritiskom na
tipku „←“. Brisanje cjelokupnog sadržaja textboxa se obavlja tipkom „C“.
Nakon što je korisnik unio svoj JMBAG, odabire kategoriju posluživanja pritiskom na
odgovarajuću tipku. Prilikom odabira kategorije aplikacija izvršava nekoliko operacija. Prvo
što aplikacija radi jest povezivanje sa bazom podataka. Sljedeća operacija jest slanje
vrijednosti ulaznih parametara pohranjenoj proceduri „dolazni“ u bazi podataka. Te
vrijednosti su netom upisani JMBAG i odabrana kategorija. Zatim se izvršava ažuriranje baze
podataka s novim ulaznim parametrima i provjera se postoji li uneseni JMBAG u bazi
podataka, te se provjerava je li očekivano vrijeme do posluživanja manje od radnog vremena
studentske službe. U slučaju da uneseni JMBAG ne postoji u bazi podataka, korisniku se na
zaslonu ispisuje poruka „NEISPRAVAN JMBAG!“. Ukoliko JMBAG postoji u bazi
podataka, korisniku se ispisuje potvrda i briše se sadržaj upisan u textboxu, te idući korisnik
može koristiti aplikaciju. U slučaju kada očekivano vrijeme do posluživanja prelazi radno
vrijeme studentske službe, korisniku se na zaslonu ispisuje poruka „OČEKIVANO VRIJEME
DO POSLUŽIVANJA PRELAZI RADNO VRIJEME STUDENTSKE SLUŽBE“.
Prethodno navedeni procesi prikazani su UML sekvencijalnim dijagramom na slici 19.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
37
Korisnik RQM.kiosk Baza podataka
unos traženih podataka (JMBAG, kategorija)
slanje vrijednosti unesenih parametara (JMBAG, kategorija)
unos zapisa
izračun očekivanog vremena do posluživanja
ispis potvrde
slanje vrijednosti traženih parametara
izdavanje potvrde
Slika 19: Prikaz procesa izdavanja potvrde pomoću modula „RQM.kiosk“
Ispisana potvrda sadrži JMBAG kao način zaštite od njezine zloupotrebe, tj. da ne bi
dolazilo do zamjene potvrda među korisnicima ili da korisnik ne bi nasumično ispisivao
potvrde za svoje kolege koje će tek naknadno doći i time eventualno poremetiti prosječno
vrijeme posluživanja jer dotični korisnici nisu na vrijeme stigli na posluživanje. Potvrda
također sadrži i vrijeme izdavanja potvrde, oznaku kategorije i redni broj posluživanja, te
očekivano vrijeme do posluživanja.
7.2. Modul „RQM.služba“
Aplikacija „RQM.služba“ je modul sustava „RQM@fpz“, a namijenjena je korištenju
službenicama studentske službe Fakulteta prometnih znanosti. Funkcije aplikacije
„RQM.služba“ moguće je podijeliti u dvije skupine. Prva funkcija je pozivanje korisnika u
repu na posluživanje, dok je druga funkcija pružanje uvida u trenutno stanje repa. Izgled
aplikacije prikazan je na slici 20.
Pri dizajnu aplikacije stavljen je naglasak prema jednostavnosti izgleda sučelja jer je
predviđeno da aplikacija bude u always on top modu, kako bi što manje ometala službenice
studentske službe u radu na računalu.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
38
Slika 20: Grafičko sučelje modula „RQM.služba“
Sučelje aplikacije sačinjavaju četiri glavna dijela. Prvi dio je prikaz sistemskog vremena.
U drugom dijelu se nalazi prikaz trenutnog stanja repa, odnosno, koliko korisnika pojedine
kategorije trenutno čeka na posluživanje, dok se u trećem dijelu prikazuje sljedeći dolazni
redni broj. Četvrti dio sučelja aplikacije je tipka za pozivanje sljedećeg korisnika na
posluživanje.
Za potrebe sustava „RQM@fpz“ izrađene su četiri različite aplikacije „RQM.služba“.
Svaka aplikacija u programskom kodu ima implementiranu vrijednost odgovarajućeg radnog
mjesta zbog izbjegavanja postavljanja dodatnog izbornika za odabir radnog mjesta unutar
grafičkog sučelja aplikacije, čime je očuvana jednostavnost izgleda same aplikacije.
Aplikacija „RQM.služba“ je izrađena, poput aplikacije „RQM.kiosk“, u razvojnom alatu
Microsoft Visual Studio 2010, pri čemu su korištene Microsoft .NET komponente čije
ponašanje je definirano programskim jezikom C#. Microsoft .NET komponente korištene pri
izradi aplikacije su sljedeće:
- label za prikaz vremena sustava– „vrijeme“
- label za prikaz broja korisnika u repu za kategoriju „A“ – „kat_A_u_red“
- label za prikaz broja korisnika u repu za kategoriju „B“ – „kat_B_u_red“
- label za prikaz rednog broja potvrde koja sljedeća dolazi na posluživanje –
„sljedeciRB“
- tipka za pozivanje sljedećeg korisnika na posluživanje – „sljedeciStudent“
- timer za povlačenje vrijednosti sistemskog vremena – „vrijeme1“
- timer za osvježavanje broja korisnika u repu za kategoriju „A“ – „kat_A“
- timer za osvježavanje broja korisnika u repu za kategoriju „B“ – „kat_B“
- timer za osvježavanje rednog broja potvrde – „sljedeciRB“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
39
U gornjem desnom kutu grafičkog sučelja aplikacije je postavljen prikaz datuma i
sistemskog vremena. Osvježavanje trenutnog vremena sustava se obavlja pomoću brojača
(engl. timer) „vrijeme1“, sama vrijednost ispisuje se u oznaci (engl. label) „vrijeme“.
U svrhu pružanja uvida službenicama u trenutno stanje repa postavljena su dva labela u
kojima se prikazuje trenutno stanje repa za pojedinu kategoriju. Vrijednosti u njima
osvježavaju se pomoću dva timera „kat_A“ i „kat_B“ koji su programirani da svaku sekundu
iz baze podataka, putem pohranjene procedure „dohvatNeposluzenih“, vrše dohvat trenutnog
stanja repa.
Kada se na izlazu iz repa pojavi korisnik koji dolazi na posluživanje, redni broj njegove
potvrde će se prikazati u labelu „sljedeciRB“. Pritiskom na tipku „sljedeciStudent“ se poziva
pohranjena procedura „sljedeciRedniBroj“ koja vrši dohvat vrijednosti rednog broja potvrde
iz baze podataka s kojom će sljedeći korisnik doći na posluživanje.
Početak posluživanja novog korisnika vrši se pritiskom tipke „sljedeciStudent“, što
rezultira ažuriranjem tablice „Potvrda“ u bazi podataka. U labelu koji sadrži broj korisnika u
repu, vrijednost broja se umanjuje za jedan, odnosno, prikazuje se novo trenutno stanje. Po
završetku posluživanja, ponovnim pritiskom na tipku „sljedeciStudent“ završava se
posluživanje trenutnog korisnika i poziva se sljedeći korisnik iz repa na posluživanje.
Istovremeno se vrši ažuriranje tablice „Potvrda“ u bazi podataka putem pohranjene procedure
„posluzivanje“ koja upisuje vrijeme odlaska korisnika s poslužiteljskog mjesta i paralelno
upisuje vrijeme dolaska novog korisnika na posluživanje. Slika 21Slika 21 prikazuje proces
koji aplikacija obavlja prilikom posluživanja korisnika.
Službenica RQM.služba Baza podataka
tipka "SLJEDEĆI STUDENT"
vrijednosti parametra (slID, rmID)
ažuriranje tablice "Potvrda"
vrijednost sljedeceg rednog broja
prikaz dolaznog rednog broja
dohvat sljedečeg rednog broja
Slika 21: UML sekvencijalni dijagram posluživanja korisnika putem modula „RQM.služba“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
40
7.3. Modul „RQM.info“
Aplikacija „RQM.info“ je modul sustava „RQM@fpz“ namijenjen korisnicima Fakulteta
prometnih znanosti koji koriste usluge studentske službe. Aplikacija prikazuje redne brojeve
koji se trenutno poslužuju na radnim mjestima studentske službe, vrijednosti broja korisnika
pojedine kategorije koji čekaju na posluživanje, te prosječno vrijeme posluživanja za pojedinu
kategoriju. Grafičko sučelje aplikacije „RQM.info“ prikazano je na slici 22. Sama aplikacija
se prikazuje na zaslonu koji je postavljen u predvorju Fakulteta. Modul „RQM.info“ je
izrađen kako bi korisnici koji čekaju na posluživane mogli pratiti proces posluživanja i imati
uvid u trenutno stanje repa. Prilikom pozivanja sljedećeg korisnika na posluživanje, oglasit će
se zvučni signal koji će upozoriti da se jedno radno mjesto oslobodilo.
Slika 22: Grafičko sučelje modula „RQM.info“
Aplikacija „RQM.info“ je, poput prethodne dvije, izgrađena u razvojnom alatu Microsoft
Visual Studio 2010, pri čemu su korištene Microsoft .NET komponente čije ponašanje je
definirano programskim jezikom C#. Microsoft .NET komponente korištene pri izradi
aplikacije su sljedeće:
- labeli za prikaz rednog broja potvrde koji se trenutno poslužuje na radnom mjestu 1 do
radnog mjesta 4 – „RB_radno_mjesto_1“, … „RB_radno_mjesto_4“
- label za prikaz trenutnog broja korisnika kategorije „A“ u repu – „kat_A_u_repu“
- label za prikaz trenutnog broja korisnika kategorije „B“ u repu – „kat_B_u_repu“
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
41
- label za prikaz prosječnog vremena posluživanja kategorije „A“ – „pros_vri_kat_A“
- label za prikaz prosječnog vremena posluživanja kategorije „B“ – „pros_vri_kat_B“
- timer za ažuriranje rednog broja potvrde koja se trenutno poslužuje na radnom mjestu
1 – „tick_RM_1“
- timer za ažuriranje rednog broja potvrde koja se trenutno poslužuje na radnom mjestu
2 – „tick_RM_2“
- timer za ažuriranje rednog broja potvrde koja se trenutno poslužuje na radnom mjestu
3 – „tick_RM_3“
- timer za ažuriranje rednog broja potvrde koja se trenutno poslužuje na radnom mjestu
4 – „tick_RM_4“
- timer za ažuriranje broja korisnika kategorije „A“ u repu – „tick_kat_A_rep“
- timer za ažuriranje broja korisnika kategorije „B“ u repu – „tick_kat_B_rep“
- timer za ažuriranje vrijednosti prosječnog vremena posluživanja kategorije „A“ –
„tick_pros_vri_kat_A“
- timer za ažuriranje vrijednosti prosječnog vremena posluživanja kategorije „B“ –
„tick_pros_vri_kat_B“
Kada službenica u aplikaciji „RQM.služba“ pritisne tipku „sljedeciStudent“, korisnik koji
se nalazi na izlazu iz repa se poziva na posluživanje na radno mjesto s kojeg je odaslan
zahtjev za početak posluživanja. Pri tom se u bazi podataka upisuje vrijeme početka
posluživanja i identifikacijski broj radnog mjesta „rmID“. Timeri za osvježavanje rednog
broja potvrde svaku sekundu ažuriraju aplikaciju s novim stanjem u bazi podataka i kada se
promjena dogodi, u label za prikaz rednog broja potvrde upisuju novi redni broj koji
pohranjena procedura „sljedeciRedniBroj“ šalje ka aplikaciji kao izlaznu vrijednost.
Korisnicima je omogućeno praćenje trenutnog stanja repa koje se ispisuje u labelima za
prikaz trenutnog stanja repa za pojedinu kategoriju. Princip rada je identičan kao i kod modula
„RQM.služba“. Pomoću timera „tick_kat_A_rep“ i „tick_kat_B_rep“ svaku sekundu se
ažurira vrijednost broja korisnika u repu za pojedinu kategoriju. Dohvat vrijednosti vrši se
putem pohranjene procedure „dohvatNeposluzenih“ u bazi podataka.
U svrhu dodatne informiranosti korisnika o stanju repa omogućen je i uvid u prosječno
vrijeme posluživanja korisnika za pojedinu kategoriju. Timeri za ažuriranje vrijednosti
prosječnog vremena kategorija A i B svakih 30 sekundi iz baze podataka vrše dohvat
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
42
vrijednosti prosječnog vremena koju kao izlaznu vrijednost daje pohranjena procedura
„prosjecnoVrijemePosluzivanja“.
7.4. Modul „RQM.web“
„RQM.web“ je naziv web aplikacije koja je jedan od modula sustava „RQM@fpz“. Svrha
aplikacije je informiranje korisnika sustava o trenutnom statusu izdane potvrde. Važno je
napomenuti da korisnik mora imati omogućen pristup Internetu putem svojeg osobnog ili
prijenosnog računala, mobilnog terminalnog uređaja ili tablet računala kako bi mu bila
omogućena usluga. Jednostavan dizajna sučelja omogućuje lakše i brže snalaženje korisnika
unutar same aplikacije koja je podijeljena u tri dijela, što je vidljivo iz slike 23.
Slika 23: Grafičko sučelje modula "RQM.web"
Prvi dio aplikacije namijenjen je unosu rednog broja ispisanog na potvrdi u za to
definirano polje. Nakon unosa rednog broja potvrde aplikacija se, pritiskom na tipku
„PROVJERI“ povezuje sa bazom podataka s ciljem dohvata podataka.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
43
Drugi dio aplikacije prikazuje detalje potvrde, odnosno njezin redni broj, kategoriju te
ono što je korisniku od značaja, očekivano vrijeme do posluživanja. Iako je korisniku na
fizičkoj potvrdi već ispisano očekivano vrijeme do posluživanja njegovog rednog broja,
vrijednost tog parametra mijenja se dinamički u ovisnosti o vremenu i prosijeku posluživanja
korisnika. Informacije su dobivene povezivanjem web aplikacije i baze podataka. Samim time
ovakav način provjere omogućuje korisniku da u bilo kojem trenutku zatraži provjeru
očekivanog vremena do posluživanja.
Treći dio aplikacije prikazuje informacije koje imaju orijentacijsko značenje, odnosno
služe za informiranje korisnika o stanju repa i prosječnom vremenu posluživanja za pojedinu
kategoriju.
Aplikacija se može koristiti i ako korisniku nije dodijeljena potvrda. Korisnik pritiskom
na tipku „PROVJERI“ koja se nalazi u prvome dijelu aplikacije izvršava povezivanje sa
bazom podataka kako je već navedeno. „RQM.web“ će prikazati informacije dobivene od
strane baze podataka u trećem dijelu aplikacije pod nazivom „DODATNE INFORMACIJE“,
ostale informacije se ne će prikazati pošto korisnik nije unio broj potvrde.
Modul „RQM.web" razvijen je korištenjem Microsoft Visual Studio 2010 razvojnog
alata. Prilikom razvoja korištena je Microsoft .NET tehnologija u .NET Framework 3.5
inačici. Ponašanje korištenih komponenti definirano je programskim jezikom C#, a
komponente korištene pri izradi aplikacije su sljedeće:
- textbox za unos rednog broja ispisanog na potvrdi –„unos_potvrde“
- tipka za provjeru očekivanog vremena do posluživanja – „pro_vri“
- label za prikaz trenutnog broja korisnika kategorije „A“ u repu –„ kat_A_u_repu“
- label za prikaz trenutnog broja korisnika kategorije „B“ u repu –„ kat_B_u_repu“
- label za prikaz prosječnog vremena posluživanja kategorije „A“- „pros_vri_kat_A“
- label za prikaz prosječnog vremena posluživanja kategorije „B“- „pros_vri_kat_B“
- label za prikaz očekivanog vremena do posluživanja korisnika –„vri_kor“
Kada korisnik unese redni broj ispisan na potvrdi u aplikaciju „RQM.web“ te stisne tipku
„POTVRDI“, aplikacija izvršava spajanje na bazu podataka radi ažuriranja. Poveznica za
pristup aplikaciji biti će postavljena na početnoj web stranici Fakulteta prometnih znanosti
radi veće dostupnosti korisnicima.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
44
8. MOGUĆNOSTI IMPLEMENTACIJE I PROŠIRENJA RAZVIJENOG
SUSTAVA
Sustav upravljanja repom „RQM@fpz“, čiji je razvoj prikazan ovim radom, namijenjen
je implementaciji unutar već postojećeg informacijsko komunikacijskog sustava Fakulteta
prometnih znanosti. Implementacija sustava izvršila bi se na već postojeće kapacitete koji se
koriste na Fakultetu, te na dodatno pribavljenu potrebnu opremu. Postojeći kapaciteti
uključuju web poslužitelj, poslužitelj baze podataka, računala studentske službe i
komunikacijsku mrežu Fakulteta, dok dodatno pribavljena oprema podrazumijeva računala za
prijavu korisnika u sustav koja sadrže pisač za ispis potvrde i zaslon osjetljiv na dodir, te
zaslon za prikaz informacija o stanju repa. Uz određene adaptacije, sustav je moguće
implementirati i na druge fakultete Sveučilišta u Zagrebu.
Mogućnosti proširenja sustav je mnogo. U narednim inačicama sustava planiran je:
1) razvoj modula sustava namijenjenog statističkoj analizi prikupljenih podataka, koji bi bio
korišten u svrhu potpore pri odlučivanju (npr. donošenje odluke o povećanju broja radnih
mjesta u periodu vršnog opterećenja ili adaptacija vremenskog intervala dostupnosti
poslužiteljskih radnih mjesta korisnicima)
2) podrška za prijavu u sustav putem studentske x-ice i podržanog čitača,
3) mogućnost prijave u sustav putem web stranice ili e-mail adrese,
4) prikaz dodatnih informacija vezanih za Fakultet prometnih znanosti putem modula
„RQM.info“ (npr. obavijesti organizacije nastave),
5) podrška za slanje obavijesti o stanju repa korisniku putem SMS (engl. Short Message
Service) poruke,
6) razvoj aplikacije za mobilne terminalne uređaje čiji rad se zasniva na najzastupljenijim
mobilnim operativnim sustavima (iOS, Windows Mobile, Android),
7) kontinuirano unaprjeđenje algoritma za procjenu očekivanog vremena do posluživanja
temeljem podataka prikupljenih od RQM@fpz sustava.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
45
9. ZAKLJUČAK
Sustav upravljanja repom studentske službe, „RQM@fpz“, razvijen je iz potrebe za
učinkovitijom organizacijom i upravljanjem posluživanja studenata u studentskoj službi
Fakulteta prometnih znanosti. Sustav je razvijen primjenom već postojećih tehnologija, te
znanjima koja su autori ovoga rada usvojili tijekom studija.
Radom je definirana osnovna terminologija sustava posluživanja, koji ujedno predstavlja
i teoretske osnove kreiranog sustava. Također, opisan je i način rada studentske službe
Fakulteta, kao i sam problem posluživanja korisnika. U svrhu što efikasnijeg upravljanja
repom studentske službe, autori su predložili i implementirali, algoritam za procjenu
očekivanog vremena do posluživanja korisnika. Razvijeni algoritam temelji se na teoretski
postavljenim modelima opisanim Kendallovom oznakom, te je u kasnijem razvoju
implementiran u bazu podataka.
Radom su objašnjene struktura i funkcionalnost sustava, koji se sastoji od baze podataka
te četiri korisnička modula namijenjen za prijavu („RQM.kiosk“), obradu („RQM.služba“) i
informiranje korisnika („RQM.info“, „RQM.web“). Za centralni dio sustava je postavljena
baza podataka na koju se moduli sustava povezuju s ciljem unosa, ažuriranja i dohvata
podataka. Izvršeno je povezivanje i testiranje komponenti sustava. Testiranje je izvršeno u
izoliranoj okolini s podacima koji su preuzeti i odobreni od strane Fakulteta prometnih
znanosti što je omogućilo otkrivanje i korigiranje određenih razvojnih pogrešaka.
Tehnologije i razvojni alati korišteni u radu preuzeti su sa službene edukacijske web stranice
tvrtke Microsoft (engl. Microsoft Developer Network Academic Alliance, MSDNAA), pristup
kojoj je osiguran od strane Zavoda za informacijsko komunikacijski promet Fakulteta
prometnih znanosti. Razvijeni sustav je u potpunosti funkcionalan. Trenutačno je u pred
implementacijskoj fazi te se čeka nabava potrebne fizičke opreme kako bi se sustav mogao u
potpunosti implementirati.
Na samome kraju rada ukratko su navedene mogućnosti implementacije sustava unutar
već postojeće informacijske komunikacijske infrastrukture Fakulteta. Dane su i mogućnosti
daljnjeg proširenja i unaprjeđenja razvijenog sustava. Jedna od priloženih mogućnosti
proširenja se odnosi potporu pri odlučivanju. „RQM@fpz“ sustav može dati informacije na
kojem se mogu temeljiti upravljačke odluke u vidu adaptacije kapaciteta studentske službe u
skladu s povećanim korisničkim zahtjevima (npr. vršno opterećenje prilikom upisa u novu
akademsku godinu) i pružanje niza drugih upravljačko korisnih informacija.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
46
Implementacijom „RQM@fpz“ sustava unutar informacijsko komunikacijske
infrastrukture Fakulteta omogućuje se povećanje dostupnosti informacija koje su od značenja
korisnicima, djelatnicama studentske službe, te Fakultetu kako je već prethodno navedeno. Na
temelju informacija korisnicima je omogućen uvid u trenutno stanje rada studentske službe,
koliki je broj korisnika koji se nalazi u repu i koliko je prosječno vrijeme posluživanja po
kategorijama te njihovo vlastito očekivano vrijeme do posluživanja. Djelatnice studentske
službe imaju konstantan uvid koliki je broj korisnika u repu te koji idući korisnik dolazi na
posluživanje.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
47
ZAHVALE
Zahvaljujemo se mentorici doc. dr. sc. Ivani Ćavar na izrazitom trudu i pomoći tijekom
izrade ovoga rada. Također, zahvaljujemo se Zavodu za informacijsko komunikacijski promet
na ustupljenoj infrastrukturi i prostorijama, te asistentima sa Zavoda za inteligentne
transportne sustave i sistem administratoru Fakulteta prometnih znanosti Zdravku Šašeku,
dipl.ing. na korisnim savjetima.
Autori
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
48
LITERATURA
1. Iannone, R., Pepe, C., Riemma, S.: A proposal of a management framework to
optimize waiting queue in helthcare organization. University of Salerno, Salerno,
(2007)
2. Wang, K. H.: Optimal management of a finite M/M/R queueing system with
multiple customer classes. National Chung-Hsing University, Taichung, (2006)
3. Xiao, H., Zhang, G.: The Queuing Theory Application in Bank Service Optimization.
Institute of I nformation & System Engineering, Zhengzhou, (2010)
4. Dao, R.: A Queueing Model without Customer Waiting Applied in Flexible Production
Line to Optimize the Number of Servers. Faculty of Mechanical and Electrical
Engineering, Kumming, (2011)
5. Guo, P., Zhang, Z. G.: Strategic queuing behavior and its ipact on system
performance in service systems with the congestion-based staffing policy. Western
Washington University, Bellingham, (2013)
6. Begović, M.: Podvorbeni sustavi. Fakultet prometnih znanosti, Zagreb, (2006)
7. Riska, A.: Aggregate Matrix-analytic Techniques and their Applications, College of
William & Mary, Williamsburg, (2002)
8. Daigle, J. N.: Queueing theory with applications to packet telecommunication.
Springer, Boston, (2005)
9. Manger, R.: Baze podataka. Element, Zagreb, (2012)
10. Elmasri, R., Navathe, S. B.: Fundamentals of Database Systems, 6th Edition.
Addison-Wesley, Boston, (2011)
11. Date, C. J.: An Introduction to Database Systems, 8th Edition. Addison-Wesley,
Boston, (2004)
12. Codd, E. F.: Relation Database: A Practical Foundation for Productivity. IBM San
Jose Research Laboratory, San Jose, (1981)
13. Carić, T.: Napredne baze podataka (separati s predavanja). Fakultet prometnih
znanosti, Zagreb, (2011)
14. Liberty, J.: Programming C#, Third Edition. O'Rilley Media, Sebastopol, (2003)
15. Standard ECMA-334.: C# language specification“. ECMA International, Geneva,
(2006)
16. Kalata, K.: Introduction to ASP.NET 2.0 Third Edition. Course Technology, Boston,
(2007)
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
49
17. Duckett, J.: Beginning Web Programming with HTML, XHTML, and CSS 2nd Edition.
Wiley Publishing, Indianapolis, (2008)
18. Gosselin, D.: JavaScript fifth edition. Course Technology, Boston, (2011)
19. Preuzeto s Internet stranice :
http://www.edb.utexas.edu/minliu/multimedia/Intro%20to%20ASP.pdf, travanj, 2013.
20. Preuzeto s Internet stranice: http://palizine.plynt.com/issues/2006Jun/injection-stored-
procedures/, travanj, 2013.
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
50
SAŽETAK
Neven Anđelović, Ivan Cvitić, Marko Gović
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
Ovim radom prikazan je razvoj sustava upravljanja repom studentske službe Fakulteta
prometnih znanosti, „RQM@fpz“. Nakon opisa procesa posluživanja korisnika studentske
službe, definirani su teoretski modeli sustava posluživanja, opisani Kendallovom oznakom.
Definirani modeli predstavljaju temelj razvoja algoritma čija je svrha procjena očekivanog
vremena do posluživanja korisnika. Algoritam je implementiran u razvijeni „RQM@fpz“
sustav u svrhu pružanja dodatnih korisničkih informacija. Radom su također opisane
tehnologije, metode i alati primijenjeni tijekom razvoja, kao i sam razvoj svih komponenata
sustava.
Sustav se sastoji od baze podataka i četiri korisnička modula korištena u svrhu dohvata,
unosa i izmjene podataka unutar baze. Modul „RQM.kiosk“ namijenjen je prijavi korisnika u
sustav posluživanja studentske službe, odnosno izdavanju potvrde temeljem koje se korisnik
svrstava u rep. Upravljanje posluživanjem korisnika izvodi se putem modula „RQM.služba“
namijenjenog službenicama studentske službe koje pritiskom na tipku započinju ili završavaju
posluživanje pojedinog korisnika. Moduli „RQM.info“ i „RQM.web“ namijenjeni su
informiranju korisnika studentske službe o stanju repa, broju korisnika u repu, prosječnom
vremenu posluživanja pojedine kategorije i očekivanom vremenu do posluživanja određenog
korisnika. Na kraju rada okvirno je opisana planirana implementacija sustava unutar
informacijsko komunikacijske infrastrukture Fakulteta, kao i mogućnosti budućih nadogradnji
i unaprjeđenja.
Ključne riječi: sustavi upravljanja repom, studentska služba, sustavi posluživanja
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
51
SUMMARY
Neven Anđelović, Ivan Cvitić, Marko Gović
Development of the queue management system for students’ administration service on
Faculty of Transport and Traffic Sciences
This paper presents a development of the queue management system for students’
administration service on Faculty of Transport and Traffic Sciences called “RQM@fpz”.
After describing the process of servicing students in administration service, theoretical models
of queuing are defined and described with Kendall’s notation. Defined theoretical models are
used for development of algorithm that is used to calculate the expected time until service for
each student. Afterwards that algorithm is implemented in developed “RQM@fpz” system
and used for providing additional information about queue. Technologies, methods and tools
used in development of “RQM@fpz” system are also described in this paper alongside
description of development of all components of the system.
“RQM@fpz” queue management system consists of database and four different
modules that are used to add or change data within database. “RQM.kiosk” module is
intended to be used by students to enter the queue by giving each of them a ticket.
Management of serving students is performed by “RQM.služba” module. When clerk presses
a button, the service of one student is started or finished. “RQM.info” and “RQM.web”
modules are intended to give information about queue status in real-time such as number of
students in queue, average time of processing one student of each category and expected time
until service. Last chapter in this paper describes possibilities of implementation of
“RQM@fpz” system and making it part of existing information communication system of
Faculty of Transport and Traffic Sciences, as well as possibilities of future upgrades and
enhancements.
Keywords: queue management system, students’ administration service, queue systems
Razvoj sustava za upravljanje repom studentske službe Fakulteta prometnih znanosti
52
POPIS SLIKA
Slika 1: Shematski prikaz sustava posluživanja, [6] .................................................................. 6
Slika 2: Logička shema sustava................................................................................................ 12
Slika 3: Princip pristupa podacima u bazi podataka................................................................. 13
Slika 4: UML dijagram aktivnosti posluživanja studenta u studentskoj službi ....................... 20
Slika 5: Proces posluživanja studenta u studentskoj službi nakon implementacije sustava
„RQM@fpz“ ............................................................................................................................ 22
Slika 6: Grafički prikaz konceptualne sheme (Chenov dijagram) ........................................... 24
Slika 7: Grafički prikaz relacijske sheme ................................................................................. 25
Slika 8: Izvorni SQL kod implementacije baze podataka ........................................................ 26
Slika 9: UML dijagram aktivnosti za pohranjenu proceduru „dolazni“ ................................... 27
Slika 10: Tablica „Potvrda“ nakon izvršavanja pohranjene procedure „dolazni“.................... 28
Slika 11: Tablica „Potvrda“ nakon ažuriranja putem pohranjene procedure „posluzivanje“ .. 29
Slika 12: Izvorni SQL kod pohranjene procedure „dohvatNeposluzenih“ .............................. 30
Slika 13: Izvorni SQL kod pohranjene procedure „sljedeciRedniBroj“ .................................. 30
Slika 14: Izvorni SQL kod za pohranjenu proceduru „aktivnostRadnogMjesta“ .................... 31
Slika 15: Prikaz tablice „RadnoMjesto“ ................................................................................... 31
Slika 16: Izvorni SQL kod pohranjene procedure "prosjecnoVrijemePosluzivanja" .............. 32
Slika 17: Izvorni SQL kod za okidač „trajanjePosluzivanja“ .................................................. 32
Slika 18: Izgled aplikacije „RQM.kiosk“ ................................................................................ 35
Slika 19: Prikaz procesa izdavanja potvrde pomoću modula „RQM.kiosk“ ........................... 37
Slika 20: Grafičko sučelje modula „RQM.služba“ ................................................................. 38
Slika 21: UML sekvencijalni dijagram posluživanja korisnika putem modula
„RQM.služba“.... ...................................................................................................................... 39
Slika 22: Grafičko sučelje modula „RQM.info“ ...................................................................... 40
Slika 23: Grafičko sučelje modula "RQM.web" ...................................................................... 42
53
PRILOG 1
UML dijagram aktivnosti pohranjene procedure „posluzivanje“.
(rmID=3) AND (broj zapisa gdje je pri=0)>0
/ ID radnog mjesta (rmID) i ID sluzbenice (slID) (modul RQM.služba)
[true]
minimalni neposluženi(ticketID)<>maksimalni posluženi (ticketID)
[true]
ažuriranje retka sa
MIN(ticketID) gdje je pri=0
vrOdlaska IS NULL,
rmID=vrijednost rmID (modul RQM.služba)
slID= vrijednost slID (modul RQM.služba)
ažuriranje retka u tablici Potvrda
ažuriranje retka sa
MIN(ticketID) gdje je pri=0
i vrDolaska/vrODlaska IS NULL
ažuriranje retka u tablici Potvrda
vrDolaska=trenutni datum/vrijemermID=vrijednost rmID (modul RQM.služba)slID= vrijednost slID (modul RQM.služba)
[false] ažuriranje retka u tablici Potvrda
ažuriranje retka sa
MIN(ticketID) gdje je pri=1
i vrDolaska/vrODlaska IS NULL
vrDolaska=trenutni datum/vrijemermID=vrijednost rmID (modul RQM.služba)slID= vrijednost slID (modul RQM.služba)
vrOdlaska= trenutni datum/vrijeme
[false]
ažuriranje retka sa
MAX(ticketID) gdje je pri=0
vrOdlaska IS NULL,
rmID=vrijednost rmID (modul RQM.služba)
slID= vrijednost slID (modul RQM.služba)
ažuriranje retka u tablici Potvrda
vrOdlaska= trenutni datum/vrijeme
minimalni neposluženi(ticketID)=maksimalni posluženi (ticketID)
[true]
ažuriranje retka sa
MAX(ticketID) gdje je pri=1
vrDolaska IS NULL,
rmID=vrijednost rmID (modul RQM.služba)
slID= vrijednost slID (modul RQM.služba)
ažuriranje retka u tablici Potvrda
vrOdlaska= trenutni datum/vrijeme
[false] ažuriranje retka u tablici Potvrda
ažuriranje retka sa
MIN(ticketID) gdje je pri=1
vrDolaska IS NULL,
rmID=vrijednost rmID (modul RQM.služba)
slID= vrijednost slID (modul RQM.služba)
vrOdlaska= trenutni datum/vrijeme