• Rezultati Niso Bili Najdeni

prstnega odtisa

N/A
N/A
Protected

Academic year: 2022

Share "prstnega odtisa"

Copied!
82
0
0

Celotno besedilo

(1)

UNIVERZA V LJUBLJANI

FAKULTETA ZA RA ˇ CUNALNIˇ STVO IN INFORMATIKO

Dorde Kesi´c

Oblaˇ cna spletna aplikacija za podporo sistemu za verifikacijo na podlagi

prstnega odtisa

DIPLOMSKO DELO

NA UNIVERZITETNEM ˇSTUDIJU

Mentor: doc. dr. Peter Peer Asistent: uni. dipl. ing. Jernej Bule

Ljubljana, 2013

(2)

Rezultati diplomskega dela so intelektualna lastnina Fakultete za raˇcunalniˇstvo in in- formatiko Univerze v Ljubljani. Za objavljanje ali izkoriˇsˇcanje rezultatov diplomskega dela je potrebno pisno soglasje Fakultete za raˇcunalniˇstvo in informatiko ter men- torja.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

(3)
(4)
(5)

IZJAVA O AVTORSTVU diplomskega dela

Spodaj podpisani Dorde Kesi´c, z vpisno ˇstevilko 63030109,

sem avtor diplomskega dela z naslovom:

Oblaˇcna spletna aplikacija za podporo sistemu za verifikacijo na podlagi prstnega odtisa.

S svojim podpisom zagotavljam, da:

• sem diplomsko delo izdelal samostojno pod mentorstvom doc. dr. Petra Peera in uni. dipl. ing. Jerneja Buleta,

• so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter kljuˇcne besede (slov., angl.) identiˇcni s tiskano obliko diplomskega dela,

• soglaˇsam z javno objavo elektronske oblike diplomskega dela v zbirki

“Dela FRI”.

V Ljubljani, dne 15.10.2013 Podpis avtorja:

(6)
(7)

Zahvala

Zahvaljujem se starˇsem, ki so mi stali ob strani in omogoˇcili ˇstudij, sestri Ani za vso pomoˇc in podporo, vsem prijateljem ter uni. dipl. ing. Jerneju Buletu in doc. dr. Petru Peeru za pomoˇc in vodenje pri opravljanju diplomskega dela.

(8)
(9)

Diplomsko delo

posveˇ cam druˇ zini in oˇ zjemu krogu prijateljev, ki so me

motivirali in podpirali v ˇ casu ˇ studija

(10)
(11)

Kazalo

Povzetek 1

Abstract 3

1 Uvod 5

2 Pregled sorodnih del 7

2.1 Opisi sistemov . . . 7

2.1.1 Sistemi za preverjanje prisotnosti s prstnim odtisom . . . 7

2.1.2 Avtentikacija v sistemih za uˇcenje na spletu . . . 11

2.1.3 Biometriˇcna avtentikacija in sledenje za sisteme s splet- nimi izpiti . . . 11

2.2 Primerjava in varnost v naˇsi aplikaciji . . . 15

3 Arhitektura sistema 17 3.1 Strojna oprema . . . 18

3.2 Oblaˇcne storitve [13] . . . 20

3.2.1 Kaj so oblaˇcne storitve? . . . 20

3.2.2 Modeli oblaˇcnih storitev . . . 21

3.2.2.1 Programska oprema kot storitev . . . 21

3.2.2.2 Platforma kot storitev . . . 21

3.2.2.3 Infrastruktura kot storitev . . . 22

3.2.3 Prednosti oblaˇcnih storitev . . . 22

3.2.4 Oblaˇcna storitev FingerIdent . . . 22

3.2.5 Oblaˇcna platforma Windows Azure . . . 23

3.3 Sestavni deli aplikacije . . . 26

3.3.1 Krmilnik strani . . . 27

3.3.2 Upravljavec s storitvami (ServiceManager) . . . 31

3.3.3 Generiranje poroˇcil . . . 31

3.3.4 PRG . . . 33

(12)

4 Razvoj aplikacije 35

4.1 Opis . . . 35

4.1.1 Zahteve aplikacije . . . 35

4.1.2 Uporabniˇski vmesnik . . . 36

4.2 Uporabljene tehnologije in orodja za razvoj aplikacije . . . 36

4.2.1 Dreamweaver . . . 36

4.2.2 PHP . . . 39

4.2.2.1 Zend Framework 2 . . . 40

4.2.2.2 TCPDF . . . 41

4.2.3 jQuery . . . 42

4.2.3.1 Izbirniki CSS . . . 44

4.2.3.2 Veriˇzenje metod . . . 44

4.2.3.3 Uporaba ovojnice in implicitnih iteracij . . . 45

4.3 Navodila za uporabo aplikacije . . . 45

4.3.1 Uporabniˇski modul . . . 45

4.3.1.1 Registracija uporabnika . . . 45

4.3.1.2 Prijava uporabnika . . . 47

4.3.2 Administrativni modul . . . 48

4.3.2.1 Podstran — Domov . . . 48

4.3.2.2 Podstran — Uporabniki . . . 49

4.3.2.3 Podstran — ˇStudenti . . . 50

4.3.2.4 Podstran — Predmeti . . . 51

4.3.2.5 Podstran — Koledar . . . 52

5 Rezultati testa aplikacije 55 5.1 Sploˇsni testi . . . 55

5.2 Hitrostni testi . . . 57

5.2.1 Registracija . . . 57

5.2.2 Prijava . . . 57

5.2.3 Izpis strani s statistikami . . . 58

5.2.4 Generiranje poroˇcil . . . 58

6 Zakljuˇcek 59

Seznam slik 61

Seznam tabel 62

Literatura 64

(13)

Seznam uporabljenih kratic in simbolov

• Ajax — Asynchronous JavaScript and XML

• API — Application Programming Interface

• BLOB — Binary Large OBject

• CSS — Cascading Style Sheets

• DOM — Document Object Model

• FTP — File Transfer Protocol

• HTML — HyperText Markup Language

• IaaS — Infrastructure as a Service

• IIS — Internet Information Services

• JPEG — Joint Photographic Experts Group

• MVC — Model-View-Controller

• PaaS — Platform as a Service

• PDF — Portable Document Format

• PDF/A — Portable Document Format Archive

• PHP — PHP: Hypertext Preprocessor

• PNG — Portable Network Graphics

• PRG — Post/Redirect/Get

• RWD — Responsive Web Design

• SaaS — Software as a Service

• SMS — Short Message Service

• STFP — Secure File Transfer Protocol

(14)

• SVG — Scalable Vector Graphics

• SVN — Apache Subversion

• WebDAV — Web Distributed Authoring and Versioning

• WYSIWYG — What You See Is What You Get

• XHTML — Extensible HyperText Markup Language

• ZF2 — Zend Framework 2

(15)

Povzetek

Diplomska naloga obravnava razvoj in implementacijo spletne aplikacije za podporo sistemu za verifikacijo na podlagi prstnega odtisa. Gre za oblaˇcno aplikacijo za upravljanje z dostopi, ki uporablja oblaˇcno storitev, nameˇsˇceno na istem “oblaku”. Oblaˇcna storitev, imenovana FingerIdent [1], omogoˇca uporabo biometriˇcne verifikacije s prstnim odtisom. Dostopi do storitve pa se opravljajo s pomoˇcjo klicev WebAPI.

V uvodnem poglavju je opisano, kaj je upravljanje z dostopi, za kaj se uporablja in kako se ta domena preslika na naˇs problem. Sledi poglavje, v katerem so opisane reˇsitve s podroˇcja upravljanja dostopov. Tretje poglavje diplomskega dela opisuje arhitekturo naˇse reˇsitve. Opisane so strojne kompo- nente, potrebne za pravilno delovanje in arhitektura aplikacije. ˇCetrto poglavje se posveˇca razvoju aplikacije. Naˇstete so osnovne zahteve, podan je kratek opis aplikacije, predstavljene so uporabljene tehnologije in orodja za razvoj, opisana so navodila za uporabo. Peto poglavje vsebuje rezultate testiranja.

Testirali smo hitrosti procesov registracije, prijave, izpisa strani s statistikami in generiranja poroˇcil v obliki dokumentov PDF. V zakljuˇcku diplomskega dela je podana analiza rezultatov testiranja in moˇznosti za nadgradnjo aplikacije.

Kljuˇ cne besede:

spletna aplikacija, biometrija, prstni odtis, oblak, oblaˇcna storitev, PHP, Zend Framework 2

1

(16)

2

(17)

Abstract

The thesis addresses the development and implementation of the web appli- cation which supports a fingerprint verification system. It is about a cloud application for access control, which uses a cloud service deployed on the same

“cloud”. The cloud service, called FingerIdent [1], enables the use of a biomet- ric verification with fingerprint. The application accesses the service through a WebAPI call.

The introductory chapter describes what is access control, what it is used for and how it is mapped to our problem. The next chapter discusses the solutions for the field of access control management. Third chapter of the thesis presents the architecture of our solution. In this part the hardware components required for the proper functioning and the architecture of our application are described in more detail. The forth chapter describes the development of the web application. It provides the information about basic demands, it also gives the application description and it presents the technologies and tools used for the development. The application user guide can be found in the last section of this chapter. The fifth chapter consists of the testing results. We tested the speed of registration and login processes, the loading time of the statistics page and the time required for the generation of reports in form of PDF documents.

The thesis conclusion presents the analysis of the testing results and possible application improvements.

Key words:

web application, biometrics, fingerprint, cloud, cloud service, PHP, Zend Framework 2

3

(18)

4

(19)

Poglavje 1 Uvod

Sistemi za nadziranje dostopov (angl. access control systems) so fiziˇcni ali elektronski sistemi, ki so namenjeni nadziranju dostopov do doloˇcenih virov.

Najbolj preprost primer fiziˇcnega sistema za nadziranje dostopa so vrata, ki se jih da zakleniti. Elektronski sistemi za nadziranje dostopov ponavadi skr- bijo za mreˇzno varnost, lahko pa jih uporabljamo tudi v druge namene, npr.

za beleˇzenje dogodkov, vezanih na doloˇcene subjekte. Klasiˇcen primer, kjer je uporaba takˇsnega sistema nujna, je identifikacija in beleˇzenje delavcev ob prihodu v sluˇzbo.

Standardni sistemi uporabljajo za identifikacijo metode, kot so gesla, iden- tifikacijske kartice, PIN kode ipd. Z vidika varnosti so takˇsne metode pomanj- kljive. Identifikacijsko kartico lahko nekam zaloˇzimo ali nam jo nekdo ukrade.

Z vdori na streˇznike, kjer so shranjene informacije o uporabnikih, lahko pride do kraje gesel - varnostnih lukenj je tu kar nekaj.

Alternativni naˇcin identifikacije in verifikacije, ki se v zadnjih letih z razvo- jem tehnologije vse veˇc uporablja, predstavljajo sistemi z uporabo biometrije.

Biometrija je proces zbiranja, prouˇcevanja in shranjevanja podatkov o posa- meznikovih fiziˇcnih lastnostih z namenom identifikacije in avtentikacije. Bio- metrija se ˇze uporablja za potrebe drˇzavne administracije kot tudi za potrebe zasebnih podjetij. Najbolj pogoste oblike uporabe biometrije so: skeniranje oˇcesne mreˇznice, oˇcesne ˇsarenice, prstnih odtisov, prepoznava glasu in fo- tografij.

Problemi, ki jih je moˇc reˇsiti z uporabo sistema za nadziranje dostopov, se porajajo tudi na fakultetah. Nekatera predavanja so namreˇc obvezna, zato je treba beleˇziti prisotnosti posameznih ˇstudentov. Identifikacija in verifikacija velikega ˇstevila ljudi (nekaj sto) v kratkem ˇcasu je za ˇcloveka skoraj neizvedljiva naloga. V ta namen smo v sklopu diplomskega dela razvili spletno aplikacijo,

5

(20)

6 Poglavje 1: Uvod

ki s pregledom prstnega odtisa in s pomoˇcjo oblaˇcnega sistema za verifikacijo beleˇzi prisotnosti. Z vpeljavo zajema slike prstnega odtisa se poveˇca tudi stopnja zaˇsˇcite proti goljufanju, saj je prstne odtise zelo teˇzko ponarediti.

Sistem je primarno namenjen ˇstudentom, z rahlimi prilagoditvami pa bi ga lahko uporabljala tudi podjetja. Prednosti tako zasnovanega sistema so v tem, da je vse skupaj nameˇsˇceno na spletu in deluje neodvisno od prostora.

Delovanje je omogoˇceno z vsake lokacije, kjer je na voljo z naˇso aplikacijo kompatibilen bralnik prstnih odtisov.

(21)

Poglavje 2

Pregled sorodnih del

V tem poglavju smo pod drobnogled vzeli dela s podroˇcja nadziranja dostopov, beleˇzenja prihodov in avtentikacije ter preuˇcili njihove koncepte in varnostne prijeme, ki zagotavljajo avtentiˇcnost uporabnika. Da bi bila problemska dome- na ˇcim bolj podobna naˇsi, smo se osredotoˇcili predvsem na sisteme namenje- ne izobraˇzevanju in preverjanju prisotnosti. Komercialnih reˇsitev z uporabo biometrije je za takˇsne sisteme zelo malo, zato so v nadaljevanju opisane zan- imive moˇznosti in reˇsitve.

Varnost je tu kljuˇcnega pomena. Vedno se najdejo osebe, ki bodo goljufale bodisi pri beleˇzenju prisotnosti bodisi pri reˇsevanju izpitov ipd. Del pozornosti smo zato namenili varnosti in opravili pregled za morebitne varnostne luknje v naˇsi aplikaciji.

2.1 Opisi sistemov

2.1.1 Sistemi za preverjanje prisotnosti s prstnim odti- som

V tem podpoglavju smo se osredotoˇcili na sisteme, ki imajo enak namen kot naˇsa aplikacija: beleˇzenje prisotnosti z zajemom slike prstnega odtisa. Nji- hov cilj je avtomatizacija beleˇzenja prisotnosti v izobraˇzevalnih ustanovah z uporabo biometrije.

Veˇcina reˇsitev iz tega podroˇcja je v osnovi zelo podobnih. Najprej se opravi zajem prstnega odtisa, ki se nato obdela in shrani v podatkovno bazo. Na osnovi shranjenih podatkov je moˇzno delati razliˇcne poizvedbe. Tudi naˇsa ap- likacija deluje na tak naˇcin.

7

(22)

8 Poglavje 2: Pregled sorodnih del

Zanimiva je reˇsitev beleˇzenja prisotnosti z uporabo prenosnega modula za zajem prstnega odtisa [2]. Sistem sestavljata prej omenjeni prenosni modul in gostujoˇci raˇcunalnik. Z napravo se upravlja prek aplikacije z grafiˇcnim vmes- nikom, nameˇsˇcene na raˇcunalniku. Prek nje se dodajajo imena ˇstudentov, uvozijo oziroma izvozijo podatki o prisotnosti ipd. Na prvih predavanjih se s pomoˇcjo naprave opravi registracija ˇstudentov, nato pa se podatke izvozi v samo aplikacijo. Pred vsakim predavanjem se napravo zopet prikljuˇci na raˇcunalnik in uvozi seznam ˇstudentov, ki jih je treba avtenticirati. To poteka na prenosnem modulu, tako da vsak ˇstudent odda svoj prstni odtis. Po pre- davanjih se naprava prikljuˇci na raˇcunalnik in opravi se izvoz podatkov o pris- otnosti.

Prenosna naprava za zajem prstnega odtisa deluje na baterije. Srce sistema je modul s prstnimi odtisi (angl. fingerprint module). Mikrokrmilnik usmerja celoten sistem. Sestavljen je iz modula s prstnimi odtisi, ure, gumbov in ekrana. Z uporabo gumbov je mogoˇce izbrati razliˇcne moˇznosti. Naprava komunicira z gostujoˇcim raˇcunalnikom prek vmesnika USB (angl. universal serial bus). Na ekranu so prikazani status in podrobnosti za vsakega ˇstudenta.

Ura v napravi se uporablja za beleˇzenje ˇcasa. Moˇzno jo je tudi sinhronizirati z gostujoˇcim sistemom. Naprava je prikazana na sliki 2.1.

Slika 2.1: Brezˇziˇcna naprava za zajem prstnih odtisov [2].

(23)

2.1 Opisi sistemov 9

Aplikacija z grafiˇcnim vmesnikom na gostujoˇcem raˇcunalniku je v pomoˇc pri urejanju prisotnosti ˇstudentov. Z uporabo te aplikacije je moˇzno prenesti seznam ˇstudentov v prenosni modul. Raˇcunalnik lahko prebere podrobnosti o prisotnosti iz prenosnega modula prek vmesnika USB in podatke shrani v podatkovno bazo. Struktura sistema je prikazana na sliki 2.2.

Slika 2.2: Arhitektura sistema za beleˇzenje prisotnosti s prenosnim modulom za zajem slik prstnih odtisov [2].

Malo drugaˇcen pristop k reˇsevanju problema beleˇzenja prisotnosti pred- stavlja verifikacija prstnega odtisa prek omreˇzja [3]. Arhitektura sistema je prikazana na sliki 2.3.

Uporaba sistema se zaˇcne z dodajanjem podatkov o novem ˇstudentu. Vpis poteka na streˇzniku. Najprej se ˇstirikrat opravi zajem prstnega odtisa, na tej osnovi sistem pripravi predlogo in jo skupaj s ˇstudentovo identifikacijsko ˇstevilko shrani v podatkovno bazo za poznejˇse primerjanje.

Verifikacija ˇstudentove prisotnosti se opravi v ˇcasu predavanj. Na streˇznik

(24)

10 Poglavje 2: Pregled sorodnih del

se prek omreˇzja prenese predloga prstnega odtisa, kjer se opravi primerjava in beleˇzenje prisotnosti. Varnost je zagotovljena s prenosom predlog v kriptirani obliki. Informacije o ˇstudentih, profesorjih, urniku in prisotnosti so obdelane na streˇzniku, kjer je tudi nameˇsˇcena podatkovna baza. Za operacije, kot so poizvedbe o prisotnosti ipd., jo lahko uporabljajo tudi klienti.

Poleg beleˇzenja prisotnosti ima sistem zmoˇznost generiranja poroˇcil, ki jih lahko vidi le administrator. Moˇzno je generirati dnevna poroˇcila o prisotnosti, poroˇcila o vseh ˇstudentih za doloˇcen predmet, poroˇcila o ˇstudentih s prenizkim odstotkom prisotnosti itd. Poroˇcila je na zahtevo mogoˇce posredovati naprej profesorjem in ostalim nadrejenim.

Takoj, ko se predavanja zakljuˇcijo, se avtomatsko generira poroˇcilo in poˇslje po e-poˇsti profesorju, ki je vodil predavanja. Podatki o profesorju so shranjeni v podatkovni bazi. Poleg tega se posodobi dnevno poroˇcilo o prisotnosti na spletni strani fakultete. V primeru prenizke prisotnosti ˇstudenta, se o tem obvesti starˇse prek sporoˇcila SMS (angl. Short Message Service). Podatki o telefonskih ˇstevilkah starˇsev so tudi shranjeni v podatkovni bazi. Na ta naˇcin naj bi se poveˇcala uˇcinkovitost ˇstudentov.

Slika 2.3: Arhitektura sistema za beleˇzenje prisotnosti z verifikacijo prstnega odtisa prek omreˇzja [3].

(25)

2.1 Opisi sistemov 11

2.1.2 Avtentikacija v sistemih za uˇ cenje na spletu

Spletno uˇcenje (angl. online learning, e-learning) je naˇcin izobraˇzevanja prek raˇcunalniˇskega omreˇzja, predvsem interneta, kjer v veˇcini primerov ni inter- akcije med osebo, ki se izobraˇzuje in inˇstruktorjem. V spletnem uˇcnem okolju je moˇzno dostopati do uˇcnih vsebin kadarkoli in z vsake lokacije, ki omogoˇca uporabo interneta. Ker postaja spletno uˇcenje vse bolj sprejemljivo, se veliko ustanov spopada s problemom ohranjanja celovitosti ˇsolskega procesa. Treba je namreˇc zagotoviti, da je udeleˇzenec res “obiskoval” doloˇcen predmet ipd.

V nadaljevanju je predstavljena ena izmed arhitektur [4], ki je ustrezna za sisteme s spletnim uˇcenjem. Sistem s takˇsno arhitekturo je zmoˇzen iden- tifikacije uporabnika in nadzora njegovih aktivnosti. Zdruˇzuje stalno, ponav- ljajoˇce prepoznavanje obraza s periodiˇcnim ujemanjem prstnih odtisov. Za zajem slik obraza se uporablja navadna spletna kamera, s katero je mogoˇce na preprost, nevsiljiv naˇcin, brez interakcije z uporabnikom nadzirati njegove aktivnosti. Za veˇcjo varnost se po potrebi lahko vkljuˇci snemanje zvoka in slike. Da bi bila identifikacija na osnovi biometrije ˇse bolj natanˇcna, se poleg ponavljajoˇcega prepoznavanja obraza uporablja tudi ujemanje prstnih odtisov na zahtevo. Prstni odtisi se nato primerjajo s podatki na pametni kartici.

Uporaba pametne kartice izloˇci potrebo po mreˇzni povezljivosti s streˇznikom.

Medtem ko uporabnik sedi pred raˇcunalnikom, kamera takoj analizira nje- gov obraz in ga primerja s seznamom odobrenih “obraznih” in “prstnih” gesel v podatkovni bazi. ˇCe najde ujemanje, se dostop do raˇcunalnika odobri. Po zaˇcetni odobritvi, sistem neprekinjeno nadzoruje obraz pred raˇcunalnikom in ga avtomatsko zaklene, ˇce se uporabnik odmakne ali njegovo mesto zavzame druga oseba. Ko jo enkrat doloˇcena uporabnikova identiteta, se omogoˇci dostop do zasebnega kodirnega kljuˇca (angl. private cipher key), ki je shranjen na pametni kartici. Kljuˇc se nato uporablja za varen prenos raznih vsebin.

Zdruˇzitev stalnega prepoznavanja obraza z ujemanjem prstnih odtisov doda avtentikaciji na daljavo varnost, a hkrati povzroˇci stroˇsek, zaradi potrebe po nakupu in namestitvi dodatne strojne in programske opreme (npr. ˇcitalec prstnih odtisov, programska oprema za prepoznavanje).

2.1.3 Biometriˇ cna avtentikacija in sledenje za sisteme s spletnimi izpiti

Uˇcinkovit naˇcin preverjanja znanja je t. i. spletni izpitni sistem (angl. online examination system). Prednosti takˇsnega sistema je veliko. ˇStudent, ki ne

(26)

12 Poglavje 2: Pregled sorodnih del

ˇzivi blizu fakultete, lahko opravlja izpit od doma. Sistem je tudi okolju pri- jazen, saj ni nepotrebnega tiskanja izpitnih listov. Toda spletni uˇcni sistemi se sooˇcajo z velikim problemom — kako zagotoviti avtentiˇcnost ˇstudenta med opravljanjem izpita. Ravno zaradi tega se univerze s spletnimi uˇcnimi sistemi zanaˇsajo na opravljanje izpitov v ˇzivo, torej v okolju kjer je prisotna oseba, ki je zadolˇzena za nadzor ˇstudentov. Takˇsni pogoji zagotavljajo ˇstudentovo identiteto, kar je teˇzko doseˇci v virtualnem okolju. V nadaljevanju so opisane biometriˇcne reˇsitve, s katerimi je moˇzno v doloˇceni meri premostiti problem nadzorovanja ˇstudenta v ˇcasu opravljanja izpita. Spodaj opisane reˇsitve je moˇzno uporabiti tudi v spletnih uˇcnih okoljih, predstavljenih v prejˇsnjem pod- poglavju.

Ena izmed moˇznih reˇsitev je vpeljava varnostnega sistema, ki temelji na oˇcesni ˇsarenici [5]. ˇSarenica vsakega oˇcesa je unikatna. Dve ˇsarenici z istimi matematiˇcnimi lastnostmi ne obstajata, pa tudi ˇce gre za enojajˇcne dvojˇcke.

ˇSarenica ostane nespremenjena skozi celo ˇzivljenje posameznika, razen ˇce ta doˇzivi kakˇsno hudo travmo ali zboli za redko boleznijo. Za razliko od mreˇznice je jasno vidna iz daljave, kar omogoˇca preprost zajem slike. Skeniranje ˇsarenice je podobno navadnemu slikanju. Opravi se lahko na razdalji od 10 centimetrov do nekaj metrov. Uporaba leˇc ali oˇcal ponavadi ne ovira zajema slike ˇsarenice.

Kot napravo za zaznavanje lastnosti ˇsarenice se uporablja digitalna kamera.

Ker so te nameˇsˇcene na veliki veˇcini novejˇsih prenosnih raˇcunalnikov, je to za uporabnika zelo priroˇcno.

Slika 2.4: Zajem slike ˇsarenice in shranjevanje podatkov ob registraciji upora- bnika [5].

Avtentikacijski proces se zaˇcne ˇze s ˇstudentovim pristopom v spletno uˇcno okolje. Ob registraciji je treba priloˇziti dokumente, med katerimi je tudi

(27)

2.1 Opisi sistemov 13

ˇstudentova slika. Iz slike se razberejo biometriˇcne lastnosti ˇsarenice. Celoten proces se odvija na streˇzniku. Generirana koda se shrani v podatkovno bazo streˇznika skupaj z identifikacijsko ˇstevilko ˇstudenta. Slika 2.4 prikazuje posto- pek shranjevanja podatkov. Vsak izpit se nato zaˇcne s preverjanjem ˇstudentove identitete. V spletno uˇcno okolje se ˇstudent prijavi z identifikacijsko ˇstevilko in sliko oˇcesne ˇsarenice, ki deluje kot neke vrste “fiziˇcno geslo” in zagotavlja avtentiˇcnost uporabnika (postopek je prikazan na sliki 2.5). Med pisanjem

Slika 2.5: Postopek prijave na izpit [5].

izpita je treba uporabnika nadzorovati, saj bi se lahko zgodilo, da se ta le vpiˇse v sistem, nato pa nekdo drug namesto njega opravlja izpit. V ta namen se periodiˇcno opravlja skeniranje ˇsarenice brez uporabnikove vednosti. Podatki se obdelajo in preveri se, ali se uporabnik ujema s tistim, ki se je vpisal ob zaˇcetku izpita.

Identifikacija s ˇsarenico velja za enega bolj robustnih naˇcinov prepozna- vanja ljudi. ˇSarenica je najbolj unikatna, podatkovno bogata fiziˇcna struk- tura ˇcloveˇskega telesa. Deluje celo, ko ljudje nosijo oˇcala ali kontaktne leˇce.

Prepoznavanje ˇsarenice je kritiˇcna faza procesiranja slike. Podroˇcja, ki so napaˇcno zaznana kot del ˇsarenice, ustvarjajo ˇsum v biometriˇcni predlogi. Pred- lagani model je moˇzno uporabiti za izvajanje pomembnih nalog, kot je nadzi- ranje ˇstudentove identitete med opravljanjem izpita. Toda moˇznost zlorabe ni izkljuˇcena, ˇce upoˇstevamo ˇcloveˇski faktor.

(28)

14 Poglavje 2: Pregled sorodnih del

Periodiˇcno preverjanje uporabnika pa ni edina reˇsitev tega problema. Zani- miv pristop k nadzorovanju predstavlja uporaba avtentikacije ob spremembah [6]. Tak sistem je nevsiljiv in raˇcunsko nezahteven. Avtentikacijske zahteve se izvedejo le ob doloˇcenih spremembah med interakcijo s sistemom. ˇSe ena korist, ki jo prinaˇsa sistem z nadzorom ob spremembah, je odstranitev neprestane uporabe biometrije, ki je lahko zelo moteˇca (npr. zajem prstnega odtisa) in raˇcunsko zahtevna (npr. prepoznavanje obraza).

Na sliki 2.6 je prikazan visoko nivojski sistemski diagram. Sistem je razdel- jen na tri module; avtentikacijski modul, sledilni modul in modul za klasi- fikacijo groˇzenj (angl. threat classification module). Avtentikacijski modul

Slika 2.6: Visoko nivojski diagram sistema za nadziranje ob spremembah [6].

omogoˇca uporabo katerekoli avtentikacijske metode, bodisi klasiˇcne bodisi biometriˇcne. Uporaba biometriˇcnih metod zagotavlja viˇsjo stopnjo varnosti.

Pozitiven rezultat avtentikacijskega procesa omogoˇca ˇstudentu, da pristopi k

(29)

2.2 Primerjava in varnost v naˇsi aplikaciji 15

izpitu. Ob tem se tudi sproˇzi sledilni modul, ki je potreben za sledenje ˇstudenta prek videa. Modul za klasifikacijo groˇzenj sprejema podatke od sledilnega mod- ula. Na osnovi teh podatkov se pridobijo nivoji za klasifikacijo rizika. Ti so razdeljeni na nizko riziˇcno groˇznjo (angl. low-risk threat), poviˇsano riziˇcno groˇznjo (angl. elevated-risk threat) in visoko riziˇcno groˇznjo (angl. high-risk threat).

Sistem je v stanju nizke riziˇcne groˇznje, ko ni sprememb v prisotnosti ˇstudenta oz. so te nepomembne (npr. spremembe zaradi premikanja telesa).

Spremembe so doloˇcene na osnovi podatkov, ki jih priskrbi sledilni modul. V tem stanju sledilni modul nadaljuje izvajanje v zanki, ne da bi pri tem motil ˇstudenta. Ko je sistem v stanju poviˇsane riziˇcne groˇznje, je ˇstudentova prisot- nost ˇze vpraˇsljiva. Na tej stopnji se uporabi nevsiljiva metoda (npr. zaznavanje obraza) za verifikacijo ˇstudentove prisotnosti. Ena izmed koristi, ki jo prinaˇsa modul za klasifikacijo groˇzenj, je sposobnost ponovne klasifikacije prisotnosti v nizko oz. visoko riziˇcno stanje. Visoko riziˇcno stanje se sproˇzi, ko pride do velike spremembe, ki predstavlja groˇznjo za sistem oz. ob neuspeˇsni verifikaciji v stanju poviˇsanega rizika. V tej toˇcki se ˇstudenta zmoti in poˇslje se zahteva za ponovno avtentikacijo. Ta se sproˇzi samo v visoko riziˇcnem stanju.

Prednosti takˇsnega sistema so v zmanjˇsanju nepotrebnih zahtev po ponovni avtentikaciji. Poslediˇcno je sistem manj obremenjen, saj ni periodiˇcnega izra- ˇcunavanja, ki ga povzroˇca biometriˇcna avtentikacija. V sploˇsnem je ta pristop zelo preprost, raˇcunsko uˇcinkovit in nemoteˇc.

2.2 Primerjava in varnost v naˇ si aplikaciji

Zajem biometriˇcnih lastnosti se lahko uporablja enomodalno (angl. unimodal) ali multimodalno (angl. multimodal). Multimodalen naˇcin uporabe je znaˇcilen za sisteme, kjer je potrebna veˇckratna interakcija z doloˇceno osebo. Sem spadajo spletna uˇcna okolja, sistemi za opravljanje raznih certifikatov, sis- temi s spletnimi izpiti ipd. Naˇsa aplikacija je zasnovana na enomodalen naˇcin.

Edina interakcija, ki jo opravi ˇstudent s sistemom, je zajem prstnega odtisa ob prihodu na predavanja.

V naˇsi situaciji potrebe po periodiˇcnem oz. veˇckratnem preverjanju pri- sotnosti ni, saj so ˇstudenti med predavanji na oˇceh profesorja in ne morejo zapustiti predavalnice brez njegove vednosti. Na ta naˇcin je poskrbljeno za varnost in ni prostora za goljufanje. Edini naˇcin beleˇzenja laˇzne prisotnosti bi bil s ponarejanjem prstnih odtisov, kar je pa zelo teˇzko izvedljivo. Prstne odtise je teˇzko ponarediti zaradi njihove raznolikosti, trajnosti in natanˇcnosti.

(30)

16 Poglavje 2: Pregled sorodnih del

Ravno zaradi tega je verifikacija s prstnim odtisom najbolj dominantna oblika verifikacije v komercialnih aplikacijah.

Sistem, ki smo ga razvili, je najbolj podoben sistemu za verifikacijo prek omreˇzja, opisanega na koncu podpoglavja 2.1.1. Bistvena razlika je v tem, da se primerjava prstnih odtisov v naˇsem sistemu ne odvija na streˇzniku, temveˇc se zato uporabi klic WebAPI, ki posreduje podatke naprej oblaˇcni storitvi FingerIdent [1]. Ta se nahaja v “istem” oblaku kot naˇsa oblaˇcna spletna aplikacija, zato vse poteka zelo hitro.

(31)

Poglavje 3

Arhitektura sistema

Slika 3.1: Arhitektura sistema.

17

(32)

18 Poglavje 3: Arhitektura sistema

Aplikacijo sestavljata uporabniˇski in administrativni modul, kot je prika- zano na sliki 3.1. Uporabniˇski modul je namenjen ˇstudentom, implementirani pa ima funkcionalnosti za registracijo in prijavo ˇstudentov. Oba postopka se opravita s pomoˇcjo bralnika prstnih odtisov in oblaˇcne storitve FingerIdent [1].

Administrativni modul uporabljajo profesorji. Njegov glavni namen je vpogled v statistiko o prisotnosti posameznih ˇstudentov oz. predmetov in generiranje poroˇcil.

Zgradbo sistema bi lahko loˇcili na krmilnike, modele oz. logiˇcno plast in poglede. Vsaka zahteva, ki pride v sistem poˇzene krmilnik, ki ji pripada. Ob zagonu krmilnika se najprej opravi inicializacija sistema, nato pa obdelava zahteve. Ta se v celoti izvede v krmilniku. Bolj natanˇcen opis in podrobno- sti o krmilniku so predstavljene v podpoglavju 3.3.1. Krmilniki uporabljajo logiˇcno plast za manipulacijo s podatki. To so skupine razredov za reˇsevanje doloˇcene problemske domene (npr. za klice WebAPI se uporablja razred v paketu WebAPI, za delo s ˇstudenti se uporabljajo razredi v paketu Student, itd). Po konˇcani obdelavi podatkov jih je treba predstaviti ˇse vizualno. To je naloga pogledov. Preusmeritev na posamezen pogled se opravi s klicem posebne metode krmilnika. Dinamiˇcna vsebina pogledov je zapolnjena s spre- menljivkami pogleda, ki se prav tako, pred klicem funkcije za preusmeritev, definirajo v krmilniku.

3.1 Strojna oprema

Za pravilno delovanje aplikacije potrebujemo samo bralnik prstnih odtisov. Mi smo uporabili napravo SecuGen Hamster Plus [12], ki je prikazana na sliki 3.2.

Slika 3.2: Bralnik prstnih odtisov SecuGen Hamster Plus [12].

(33)

3.1 Strojna oprema 19

Naprava je zelo kompaktna, lahka in prenosljiva. Na raˇcunalnik se prikljuˇci prek vhoda USB (angl. universal serial bus). Zajem slike prstnega odtisa se lahko opravi s katerimkoli prstom. Velikost zajete slike je 260 x 300 slikovnih toˇck pri loˇcljivosti 500 DPI (angl. dots per inch). Senzor naprave je zelo kvaliteten, odporen je na praske, udarce, vibracije in elektrostatiˇcne ˇsoke.

Ce ˇˇ zelimo to napravo uporabljati, jo je potrebno na nek naˇcin integrirati v spletno stran. Prvi naˇcin je uporaba kontrole ActiveX. Ta je nezaˇzelen, saj kontrole ActiveX delujejo samo v Microsoftovih brskalnikih Internet Explorer (z namestitvijo posebnega vtiˇcnika pa tudi v brskalnikih Google Chrome).

Drugi naˇcin je z uporabo vtiˇcnika Java Applet, ki ga podpirajo vsi brskalniki.

Slika 3.3 prikazuje integracijo naprave v spletno stran s kontrolo ActiveX, slika 3.4 pa integracijo z vtiˇcnikom Java Applet.

1 < o b j e c t

2 id = " o b j F P "

3 s t y l e = " w i d t h : 149 px ; h e i g h t : 182 px ;"

4 c l a s s i d = " C L S I D : D 5 4 7 F D D 7 -82 F6 -44 e8 - AFBA - 7 5 5 3 A D C E E 7 C 8 "

5 c o d e b a s e = " p a t h / to / f p A c t i v e X / s g f p l i b x . ocx "

6 n a m e = " o b j F P "

7 v i e w a s t e x t >

8 < p a r a m n a m e =" C o d e N a m e " v a l u e ="1" >

9 </ object >

Slika 3.3: Kontrola ActiveX za integracijo bralnika prstnih odtisov v spletno stran.

1 < a p p l e t

2 c o d e = " org . me . sg . s g _ a p p l e t "

3 n a m e = " s g _ a p p l e t "

4 c o d e b a s e = " p a t h / to / f p A p p l e t "

5 a r c h i v e = " A p p l e t D e m o . jar , F D x S D K P r o . jar , commons - codec - 1 . 7 . jar "

6 w i d t h = " 2 6 3 "

7 h e i g h t = " 4 3 0 "

8 h s p a c e = "0"

9 v s p a c e = "0"

10 a l i g n = " m i d d l e " >

11 </ applet >

Slika 3.4: Java Applet za integracijo bralnika prstnih odtisov v spletno stran.

(34)

20 Poglavje 3: Arhitektura sistema

3.2 Oblaˇ cne storitve [13]

3.2.1 Kaj so oblaˇ cne storitve?

Naˇcin uporabe programske in strojne opreme se je v zadnjem ˇcasu zelo spre- menil. Uporaba storitev, nameˇsˇcenih na lokalnih raˇcunalnikih in streˇznikih, se zmanjˇsuje, medtem ko se vse veˇc uporabljajo oblaˇcne storitve. Na kratko povedano so to na zahtevo dostopne storitve na internetu. Na sliki 3.5 je prikazan koncept uporabe oblaˇcnih storitev.

Slika 3.5: Oblaˇcne storitve [13].

Oblaˇcne storitve so nameˇsˇcene na streˇznikih ponudnikov, kar je v nasprotju s tradicionalnim pristopom nameˇsˇcanja opreme na lokalne streˇznike podjetja.

Raˇcunalniˇstvo v oblaku je naˇcrtovano na naˇcin, da omogoˇca preprost, fleksi- bilen dostop do aplikacij, virov in razliˇcnih storitev. Slednje so najveˇckrat nameˇsˇcene v virtualnih okoljih in so v celoti vzdrˇzevane iz strani ponud- nika. Uporabniki jih lahko dinamiˇcno prilagajajo glede na lastne potrebe.

Ker ponudnik storitev priskrbi strojno in programsko opremo, potrebno za pravilno delovanje, ni potrebe po lastni porabi virov za vzdrˇzevanje. Primeri oblaˇcnih storitev vkljuˇcujejo spletna podatkovna skladiˇsˇca (angl. online data storages), reˇsitve na podroˇcju varnostnih kopij, e-poˇstne storitve ipd.

(35)

3.2 Oblaˇcne storitve [13] 21

3.2.2 Modeli oblaˇ cnih storitev

Osnovni modeli oblaˇcnih storitev so:

• programska oprema kot storitev (angl. SaaS – Software as a Service),

• platforma kot storitev (angl. PaaS – Platform as a Service),

• infrastruktura kot storitev (angl. IaaS – Infrastructure as a Service).

Najbolj osnoven model je infrastruktura kot storitev, sledita platforma kot storitev in na vrhu sklada programska oprema kot storitev. Vsak viˇsji model uporablja podrobnosti niˇzjega modela. Povezave med modeli oblaˇcnih storitev so prikazane na sliki 3.6.

Slika 3.6: Povezave med modeli oblaˇcnih storitev [13].

3.2.2.1 Programska oprema kot storitev

Gre za storitveni model, kjer ponudnik omogoˇci uporabo doloˇcenih aplikacij.

Te aplikacije so nameˇsˇcene na oddaljenih raˇcunalnikih, torej nahajajo se v

“oblaku” in so v lasti ponudnika. Povezava z uporabnikom poteka prek inter- neta, obiˇcajno s spletnim brskalnikom ali namensko programsko opremo.

3.2.2.2 Platforma kot storitev

V tem storitvenem modelu ponudnik omogoˇca uporabo platforme, ki tipiˇcno vkljuˇcuje operacijski sistem, okolje za izvajanje doloˇcenih programskih jezikov, podatkovno bazo in spletni streˇznik. Razvijalci programske opreme lahko razvijejo in namestijo svoje programske reˇsitve na oblaˇcni platformi brez do- datnih stroˇskov nakupa in upravljanja osnovne strojne in programske plasti.

(36)

22 Poglavje 3: Arhitektura sistema

3.2.2.3 Infrastruktura kot storitev

To je najosnovnejˇsi storitveni model. Oblaˇcni ponudniki ponujajo raˇcunalniˇsko infrastrukturo v obliki fiziˇcnih ali bolj pogosto virtualnih raˇcunalnikov. Oblaki IaaS pa omogoˇcajo tudi uporabo drugih virov. Sem spadajo streˇzniki, shramba podatkov, poˇzarni zidovi, izenaˇcevalci obremenitve (angl. load balancers) in druge storitve. Za namestitev svojih aplikacij morajo uporabniki na oblaˇcno infrastrukturo predhodno namestiti operacijski sistem, ki ga potem tudi sami vzdrˇzujejo. Oblaˇcni ponudniki tipiˇcno zaraˇcunajo uporabo storitvenega mod- ela IaaS glede na dodeljene in porabljene vire.

3.2.3 Prednosti oblaˇ cnih storitev

Uporaba oblaˇcnih storitev oz. upravljanje s podatki v “oblaku” je lahko zelo koristno. Nekatere prednosti, ki jih prinaˇsa ta tehnologija, so:

• cenovna uˇcinkovitost,

• ogromen prostor za shranjevanje podatkov,

• varnostno kopiranje in obnovitev podatkov,

• neodvisnost lokacije od naprave,

• skalabilnost,

• zanesljivost,

• preprostost in hitrost nameˇsˇcanja programske opreme,

• samodejna posodobitev sistema,

• varnost,

• prijaznost do okolja,

• fleksibilnost.

3.2.4 Oblaˇ cna storitev FingerIdent

Sistem FingerIdent predstavlja celovit sistem za biometriˇcno verifikacijo upo- rabnikov. Nastal je na Fakulteti za raˇcunalniˇstvo in informatiko v okviru diplomske naloge z naslovom Sistem za verifikacijo osebe na podlagi prstnega odtisa [7]. Zastavljen je modularno in posamezne sklope sistema je enostavno integrirati v druge sisteme.

Naˇsa aplikacija dostopa do sistema za biometriˇcno verifikacijo s pomoˇcjo oblaˇcne storitve, ki je bila razvita v sklopu diplomske naloge [1]. Na ta naˇcin

(37)

3.2 Oblaˇcne storitve [13] 23

je moˇzna uporaba sistema s katerekoli lokacije, kjer je omogoˇcen dostop do interneta, neodvisno od prostora.

Programski vmesnik (angl. application programming interface) oblaˇcne storitve FingerIdent ponuja naslednje funkcije:

• add (funkcija za dodajanje novega uporabnika),

• auth (funkcija za avtentikacijo uporabnika),

• delete (funkcija za izbris uporabnika),

• edit (funkcija za urejanje uporabnikovih podatkov),

• userCheck (funkcija za preverjanje obstoja uporabnika).

3.2.5 Oblaˇ cna platforma Windows Azure

Slika 3.7: Sestavne komponente oblaˇcne platforme Windows Azure [8].

Windows Azure [14] je oblaˇcna raˇcunska platforma in infrastruktura, nare- jena pri Microsoftu. Namenjena je razvoju, gostovanju in upravljanju aplikacij in storitev prek globalne mreˇze Microsoftovih podatkovnih centrov. Zagotavlja platformo kot storitev (PaaS) in infrastrukturo kot storitev (IaaS). Podpira mnogo razliˇcnih programskih jezikov, orodij, ogrodij in sistemov. Aplikacije se izvajajo na operacijskem sistemu Windows Azure. V osnovi nudi raˇcunsko izvajalno okolje v oblaku in oblaˇcno shrambo podatkov. Platforma Windows Azure je uradno izˇsla 1. februarja 2010 [15].

V platformo je vgrajena zmoˇznost samodejnega upravljanja s storitvami, ki omogoˇca nadgradnjo aplikacij brez vpliva na njihovo delovanje oz. zmogljivost.

(38)

24 Poglavje 3: Arhitektura sistema

Windows Azure podpira razliˇcne platforme in programske jezike. Nekatere izmed podprtih tehnologij so XML (angl. eXtensible Markup Language), REST (angl. REpresentational State Transfer), SOAP (angl. Simple Object Access Protocol), Ruby, Eclipse, Python in PHP.

Windows Azure je zasnovan tako, da podpira tako Microsoftove kot ostale platforme. Sestavljen je iz treh plasti, ki so v podporo oblaˇcnim aplikacijam in podatkom. Sestavne komponente (slika 3.7) so:

• compute,

• storage,

• fabric.

Slika 3.8: Aplikacija v izvajanju na platformi Windows Azure [8].

Komponenta “Compute” skrbi za izvajanje aplikacij. Ne glede na to, kaj aplikacija poˇcne, mora biti implementirana kot ena ali veˇc vlog. Kot je prikazano na sliki 3.8, Windows Azure tipiˇcno poˇzene veˇc instanc vsake vloge, med katere s pomoˇcjo vgrajenega izenaˇcevalca obremenitve razporedi zahteve. Uporabnik prenese svojo aplikacijo na oblaˇcno platformo Windows Azure prek spletnega portala skupaj s konfiguracijo, kjer definira ˇstevilo in- stanc posamezne vloge, ki jih ˇzeli pognati. Trenutno so razvijalcem na voljo naslednje vloge:

• spletna vloga (angl. web role) — namenjena je preprosti izdelavi spletnih aplikacij,

(39)

3.2 Oblaˇcne storitve [13] 25

• delavska vloga (angl. worker role) — namenjena je izvajanju kode napisane za sisteme Windows,

• virtualizirana vloga (angl. virtual machine role) — namenjena je ustvar- janju novih virtualnih okolij.

Slika 3.9: Shramba podatkov na platformi Windows Azure [8].

Sposobnost izvajanja kode je temeljni del oblaˇcne platforme, toda to ni do- volj. Aplikacije potrebujejo tudi prostor za trajno hrambo podatkov, za kar je odgovorna plast “Storage”. S podatki je moˇzno upravljati na veliko razliˇcnih naˇcinov, zato Windows Azure ponuja kar nekaj moˇznosti. Te so prikazane na sliki 3.9. Najpreprostejˇsi naˇcin shranjevanja podatkov je z zbirko binarnih podatkov BLOB (angl. Binary Large OBject). Vsak vsebnik lahko vsebuje eno ali veˇc takˇsnih zbirk. BLOB-i so primerni samo za nekatere situacije, saj niso strukturirani. Za druge situacije so na voljo tabele. BLOB-i in tabele so namenjeni shranjevanju in dostopu do podatkov. Tretja moˇznost, vrste, pa imajo drugaˇcen namen. Primarna funkcija je omogoˇcanje asinhrone komu- nikacije med instancami spletnih in delavskih vlog. Ne glede na izbrani naˇcin shranjevanja so zaradi varnosti vsi podatki shranjeni trikrat.

Vse aplikacije platforme in vsi podatki so shranjeni v Microsoftovih po- datkovnih srediˇsˇcih. Znotraj vsakega podatkovnega srediˇsˇca obstaja krmilnik

“Fabric”. Njegova naloga je upravljanje s stroji, ki so namenjeni platformi Windows Azure. Krmilnik “Fabric” je prikazan na sliki 3.10. Dejansko je to porazdeljena aplikacija, ki je razmnoˇzena med mnoˇzico strojev. Lasti si vse

(40)

26 Poglavje 3: Arhitektura sistema

Slika 3.10: Krmilnik “Fabric” na platformi Windows Azure [8].

vire (raˇcunalnike, izenaˇcevalce obremenitve ipd.) v svojem okolju. Naloge krmilnika so:

• nadzor nad aplikacijami, ki se trenutno izvajajo,

• izbira streˇznika za zagon in izvajanje novih aplikacij,

• ustvarjanje virtualnih strojev za instance vlog.

V vsaki instanci spletnih in delavskih vlog (toda ne v instancah virtualiziranih vlog) krmilnik upravlja tudi z operacijskim sistemom — sem spada nadgradnja sistema in ostale sistemske programske opreme, kar omogoˇca razvijalcem, da se osredotoˇcijo samo na razvoj aplikacij — ni jim treba skrbeti za upravljanje s platformo. Krmilnik “Fabric” vedno predvideva, da se izvajata vsaj dve instanci vsake vloge. Tako lahko eno ugasne in posodobi programsko opremo brez prekinjanja delovanja celotne aplikacije. To je eden izmed razlogov, zaradi katerega ni priporoˇcljivo izvajati samo ene instance katerekoli vloge Windows Azure.

3.3 Sestavni deli aplikacije

Aplikacijo smo razvili na platformi Windows 7 in streˇzniku Apache, ki ima vgrajeno podporo za PHP in omogoˇcene razˇsiritve intl [16], cURL [17] in SQL- SRV [18]. Prva je potrebna za pravilno delovanje prevajalnika (angl. transla- tor) knjiˇznice Zend Framework 2, druga za klice WebAPI in tretja za delo s

(41)

3.3 Sestavni deli aplikacije 27

podatkovnimi bazami oblaˇcne platforme Windows Azure. Arhitektura sistema je prikazana na sliki 3.1.

V grobem aplikacija deluje na naslednji naˇcin: krmilnik se zaˇzene in ob- dela zahtevo, definirajo se spremenljivke pogleda in opravi se preusmeritev na datoteko s pogledom. Ta strategija se imenuje krmilnik strani (angl. page controller). Bolj natanˇcno je opisana v naslednjem podpoglavju.

3.3.1 Krmilnik strani

V osnovi je krmilnik strani abstrakten razred PHP z dvema pomembnima metodama. Prva je abstraktna, ki jo mora implementirati vsak razred, ki krmilnik razˇsirja. Namenjena je obdelavi zahteve (interakcije s podatkovnimi bazami, nastavljanje spremenljivk ipd.). Druga metoda skrbi za preusmeritev na datoteko s pogledom in zakljuˇci izvajanje zahteve. Slika 3.11 prikazuje osnovno zgradbo krmilnika, razˇsiritveni razred krmilnika in kako ga zagnati.

Seveda bi v praksi razred Controller shranili v loˇceno datoteko in ga le vkljuˇcili v ostale. Razˇsiritveni razred in zagon samega krmilnika je najbolje definirati kar v isti datoteki.

1 a b s t r a c t c l a s s C o n t r o l l e r {

2 a b s t r a c t f u n c t i o n p r o c e s s () ;

3

4 p r o t e c t e d f u n c t i o n f o r w a r d ( $ v i e w F i l e ) {

5 i n c l u d e ( $ v i e w F i l e ) ;

6 e x i t () ;

7 }

8 }

9

10 c l a s s F o o C o n t r o l l e r e x t e n d s C o n t r o l l e r {

11 p u b l i c f u n c t i o n p r o c e s s () {

12 // o b d e l a v a z a h t e v e

13 // ...

14 // p r e u s m e r i t e v na d a t o t e k o s p o g l e d o m

15 $this - > f o r w a r d ( ’ v i e w s / foo . php ’) ;

16 }

17 }

18

19 $ c o n t r o l l e r = new F o o C o n t r o l l e r () ;

20 $ c o n t r o l l e r - > p r o c e s s () ;

Slika 3.11: Abstraktni in razˇsiritveni razred krmilnika strani ter njegov zagon.

(42)

28 Poglavje 3: Arhitektura sistema

Prednost krmilnika strani je v tem, da so opravila, ki so skupna vsem zahtevam, ki pridejo v sistem, shranjena in se tudi izvajajo na enem mestu.

Aplikacijo je treba pripraviti na delovanje, preden se zaˇcne obdelava zahteve.

Konkretno v naˇsem primeru se ob konstrukciji krmilnika preveri ali obstaja objekt “upravljavec s storitvami” (angl. service manager) in se po potrebi zaˇzene metoda init, ki pripravi aplikacijo na delovanje. Naloge metode init:

• definicija poti za vkljuˇcitev datotek (angl. include path),

• sprememba trenutne delovne mape (angl. current working directory) na korensko mapo aplikacije,

• definicija funkcije za avtomatsko nalaganje razredov,

• zagon “upravljavca s storitvami”,

• zagon seje,

• priprava prevajalnika.

Metoda init za inicializacijo aplikacije je prikazana na sliki 3.12.

Krmilnik strani smo za potrebe naˇse aplikacije prilagodili. V glavnem abs- traktnem krmilniku smo definirali polje z nastavitvami, predprocesne metode in pomoˇzne metode, ki jih lahko uporablja vsak razˇsiritveni krmilniˇski razred.

Metodo za procesiranje zahteve smo ovili v metodo, ki skrbi za predproce- siranje. Uporaba je skoraj enaka, le da po konstrukciji krmilnika izvrˇsimo klic na predprocesno metodo, ki po izvedbi vseh opravil kliˇce glavno procesno metodo. Slika 3.13 prikazuje implementacijo abstraktnega krmilnika naˇse ap- likacije, razˇsiritvenega krmilnika in njegov zagon.

(43)

3.3 Sestavni deli aplikacije 29

1 f u n c t i o n _ _ c o n s t r u c t () {

2 if ( i s _ n u l l ( s e l f :: $sm ) ) $this - > i n i t () ;

3 }

4

5 p r i v a t e f u n c t i o n i n i t () {

6 $ a p p l i c a t i o n R o o t = $ _ S E R V E R [ ’ D O C U M E N T _ R O O T ’]. $this - > s e t t i n g s [ ’ rootDir ’];

7

8 s e t _ i n c l u d e _ p a t h ( g e t _ i n c l u d e _ p a t h () . P A T H _ S E P A R A T O R .

$ a p p l i c a t i o n R o o t ) ;

9

10 c h d i r ( $ a p p l i c a t i o n R o o t ) ;

11

12 s p l _ a u t o l o a d _ r e g i s t e r ( f u n c t i o n ( $ c l a s s ) {

13 $ c l a s s = s t r _ r e p l a c e ( ’\\ ’ , ’/ ’ , $ c l a s s ) ;

14 if ( s t r p o s ( $class , ’ Zend ’) !== f a l s e && f i l e _ e x i s t s ( ’ l i b r a r i e s / ’. $ c l a s s . ’. php ’) )

15 r e q u i r e _ o n c e ( ’ l i b r a r i e s / ’. $ c l a s s . ’. php ’) ;

16 e l s e if ( f i l e _ e x i s t s ( ’ c l a s s e s / ’. $ c l a s s . ’. php ’) )

17 r e q u i r e _ o n c e ( ’ c l a s s e s / ’. $ c l a s s . ’. php ’) ;

18 e l s e if ( f i l e _ e x i s t s ( $ c l a s s . ’. php ’) )

19 r e q u i r e _ o n c e ( $ c l a s s . ’. php ’) ;

20 }) ;

21

22 s e l f :: $sm = new Z e n d \ S e r v i c e M a n a g e r \ S e r v i c e M a n a g e r ( new Z e n d \ Mvc \ S e r v i c e \ S e r v i c e M a n a g e r C o n f i g ( $this - > g e t S e r v i c e C o n f i g () ) ) ;

23

24 s e l f :: $sm - > get ( ’ Session ’) ;

25

26 $ t r a n s l a t o r = s e l f :: $sm - > get ( ’ T r a n s l a t o r ’) ;

27 $ t r a n s l a t o r - > s e t L o c a l e ( ’ sl_SI ’) ;

28 $ t r a n s l a t o r - > a d d T r a n s l a t i o n F i l e ( ’ p h p A r r a y ’ , ’ t r a n s l a t o r / sl / Z e n d _ V a l i d a t e . php ’ , ’ default ’ , ’ sl_SI ’) ;

29 $ t r a n s l a t o r - > a d d T r a n s l a t i o n F i l e ( ’ p h p A r r a y ’ , ’ t r a n s l a t o r / sl / Z e n d _ A u t h e n t i c a t i o n . php ’ , ’ default ’ , ’ sl_SI ’) ;

30 Z e n d \ V a l i d a t o r \ A b s t r a c t V a l i d a t o r :: s e t D e f a u l t T r a n s l a t o r (

$ t r a n s l a t o r ) ;

31 }

Slika 3.12: Inicializacija aplikacije.

(44)

30 Poglavje 3: Arhitektura sistema

1 a b s t r a c t c l a s s C o n t r o l l e r {

2 // n a s t a v i t v e

3 // ...

4 // p r e d p r o c e s n e m e t o d e

5 // ...

6

7 p r o t e c t e d f u n c t i o n p r o c e s s () {

8 // k l i c i m e t o d za p r e d p r o c e s i r a n j e

9 / / . . .

10 // po k o n c u p r e d p r o c e s i r a n j a

11 $this - > d o P r o c e s s () ;

12 }

13 a b s t r a c t f u n c t i o n d o P r o c e s s () ;

14

15 p r o t e c t e d f u n c t i o n f o r w a r d ( $ v i e w F i l e ) {

16 i n c l u d e ( $ v i e w F i l e ) ;

17 e x i t () ;

18 }

19

20 // p o m o ˇzne m e t o d e

21 // ...

22 }

23

24 c l a s s F o o C o n t r o l l e r e x t e n d s C o n t r o l l e r {

25 p u b l i c f u n c t i o n d o P r o c e s s () {

26 // o b d e l a v a z a h t e v e

27 // ...

28 // p r e u s m e r i t e v na d a t o t e k o s p o g l e d o m

29 $this - > f o r w a r d ( ’ v i e w s / foo . php ’) ;

30 }

31 }

32

33 $ c o n t r o l l e r = new F o o C o n t r o l l e r () ;

34 $ c o n t r o l l e r - > p r o c e s s () ;

Slika 3.13: Implementacija abstraktnega in razˇsiritvenega krmilnika naˇse ap- likacije ter njegov zagon.

(45)

3.3 Sestavni deli aplikacije 31

3.3.2 Upravljavec s storitvami (ServiceManager)

Zelo pomembno vlogo v aplikaciji igra t. i. “upravljavec s storitvami” (angl.

service manager) [19], kot so ga poimenovali v ogrodju Zend Framework 2. Im- plementira naˇcrtovalski vzorec lokatorja storitev (angl. service locator design pattern). Ta vzorec uporablja centrali register, ki na zahtevo vrne informacije, potrebne za izvrˇsitev doloˇcene naloge.

Zagon lokatorja storitev se opravi ob konstrukciji krmilniˇskega objekta (v metodi init), dostop pa je omogoˇcen prek pomoˇzne metode, definirane v abs- traktnem krmilniku. Njegova glavna naloga je ustvarjanje oz. vraˇcanje ˇze skonstruiranih objektov. Storitve oz. objekti, ki jih lokator storitev vraˇca, so:

• objekt za delo s sejo,

• objekt z zahtevo,

• objekt za delo s sporoˇcili,

• objekt s prevajalnikom,

• objekti za delo s tabelami podatkovnih baz,

• avtentikacijska storitev,

• avtorizacijska storitev.

Lokator storitev deluje po principu lenega nalaganja (angl. lazy loading).

Znaˇcilnost tega je, da se objekti naloˇzijo v trenutku, ko jih doloˇcena skripta za- hteva. To prinaˇsa kar nekaj prednosti, glavna je krajˇsi ˇcas izvajanja. Izognemo se nepotrebnemu nalaganju objektov, ki jih trenutna skripta za svoje izvajanje ne potrebuje. Naloˇzeni objekti ostanejo shranjeni v registru. Vsaka nasled- nja zahteva po tem objektu vrne ˇze prej ustvarjeno instanco, kar pripomore k hitrejˇsemu izvajanju. Seveda ˇzelimo vˇcasih z vsako zahtevo vrniti nov objekt.

Upravljavec storitev ponuja tudi to moˇznost.

3.3.3 Generiranje poroˇ cil

Izpis statistike in generiranje poroˇcil sta kljuˇcna procesa aplikacije. Na sliki 3.14 je prikazan razredni diagram, ki ponazarja medsebojno povezavo med krmilnikom in razredi za generiranje poroˇcil. Postopek generiranja poroˇcila:

1. v krmilniku skonstruiramo objekt, ki razˇsirja razred StatAbstractMan- ager; napolnimo ga s podatki, ki so dostopni iz krmilnika; dodamo mu tudi upravljavca s storitvami;

(46)

32 Poglavje 3: Arhitektura sistema

2. v krmilniku skonstruiramo objekte, ki razˇsirjajo razred StatAbstract- Class; vsak tak razred predstavlja del statistike; nato v vsakega posebej dodamo pripadajoˇce slike grafov v formatu SVG.; slike grafov so dostopne iz krmilnika;

3. vse objekte s statistikami iz koraka ˇst. 2 dodamo v objekt iz prvega koraka;

4. na objektu iz prvega koraka poˇzenemo metodo za generiranje poroˇcila.

Slika 3.14: Razredni diagram za generiranje poroˇcil.

Konkreten primer generiranja ˇstudentovega poroˇcila je prikazan z diagra- mom zaporedja na sliki 3.15. Podoben postopek velja tudi za proces generi- ranja poroˇcila doloˇcenega predmeta. Najprej prek razredov za komunikacijo s tabelami podatkovne baze pridobimo podatke o ˇstudentu in njegovih vpisih.

Nato skonstruiramo objekt StatManager, mu dodamo upravljavca s storitvami ter nastavimo podatke o ˇstudentu in njegovih vpisih v sistem. Na koncu skon- struiramo ˇse objekte z deli statistike in z metodo “addSvg” dodamo slike z grafi. Vsak tak objekt ˇse dodamo v objekt StatManager in pokliˇcemo metodo

“getPdf”, ki generira dokument PDF.

(47)

3.3 Sestavni deli aplikacije 33

Slika 3.15: Diagram zaporedja za postopek generiranja ˇstudentovega poroˇcila.

3.3.4 PRG

PRG (angl. Post/Redirect/Get) [20] je naˇcrtovalski vzorec, ki se uporablja pri razvoju spletnih vsebin. Vkljuˇcili smo ga tudi v naˇso aplikacijo. Uporablja se za prepreˇcevanje dvojnega poˇsiljanja obrazcev.

Problem nastane, ko uporabnik po poslanem zahtevku POST osveˇzi stran.

Zahtevek POST se zopet izvrˇsi, podatki pa se na streˇzniˇski strani obdelajo na enak naˇcin, kot so se ob prvem zahtevku. Klasiˇcna posledica takˇsnega zaporedja dogodkov so dvojni zapisi v podatkovni bazi.

Z uvedbo vzorca PRG se teh nevˇseˇcnosti znebimo. PRG deluje tako, da po obdelavi zahtevka opravi preusmeritev na isto stran. Nov tip zahtevka je tako GET. Problem in reˇsitev z uvedbo PRG sta bolj nazorno prikazana na slikah 3.16 in 3.17.

(48)

34 Poglavje 3: Arhitektura sistema

Slika 3.16: Problem dvojnega poˇsiljanja obrazcev [20].

Slika 3.17: Reˇsitev problema dvojnega poˇsiljanja obrazcev z uvedbo naˇcrtovalskega vzorca PRG [20].

(49)

Poglavje 4

Razvoj aplikacije

4.1 Opis

Aplikacijo smo razvili po principu od zgoraj navzdol [21]. Znaˇcilnost tega pristopa je, da se najprej razvije uporabniˇski vmesnik, nato pa model in logiˇcna plast, ki posreduje podatke uporabniˇskemu vmesniku.

Aplikacija je razdeljena na dva modula — uporabniˇski in administrativni.

Uporabniˇski modul je namenjen registraciji novih uporabnikov in njihovi pri- javi v sistem. Glavna naloga administrativnega modula je izpis in generi- ranje poroˇcil o vpisih uporabnika v sistem. Poleg tega so implementirane ˇse funkcionalnosti za dodajanje novih administratorjev, urejanje njihovih dovo- ljenj, manipuliranje z uporabniki ipd.

4.1.1 Zahteve aplikacije

Osnove zahteve za razvoj celotne aplikacije:

• registracija uporabnika z zajemom prstnega odtisa,

• prijava uporabnika z uporabniˇskim imenom in prstnim odtisom oz. ges- lom,

• pregled uporabnikovih prijav v sistem in prikaz razliˇcnih statistik,

• izpis statistik oz. generiranje poroˇcil v obliki dokumenta PDF,

• ostale pomoˇzne funkcionalnosti, vezane na upravljanje z uporabniki.

35

(50)

36 Poglavje 4: Razvoj aplikacije

4.1.2 Uporabniˇ ski vmesnik

Za uporabniˇski vmesnik (angl. user interface) smo izbrali ˇze v naprej pri- pravljeno predlogo Canvas [22], ki nam omogoˇca odzivno spletno oblikovanje (angl. responsive web design — RWD) [23]. Naˇcin oblikovanja RWD prilagaja videz uporabniˇskega vmesnika velikosti zaslona in napravi, s katero dostopamo do aplikacije. Prilagoditve so vidne tako, da se doloˇcenim elementom spremeni videz in/ali poloˇzaj. Do sprememb pride pri doloˇcenih ˇsirinah zaslona, ki so definirane v stilski datoteki CSS, s ˇcimer prepreˇcimo nastanek vodoravnega drsnega traka, zaradi katerega bi bila stran manj pregledna.

Na slikah 4.1, 4.2 in 4.3 so vidne razlike v videzu uporabniˇskega vmesnika pri razliˇcnih ˇsirinah zaslona.

Slika 4.1: Videz uporabniˇskega vmesnika pri ˇsirini zaslona 1920 slikovnih toˇck.

4.2 Uporabljene tehnologije in orodja za razvoj aplikacije

4.2.1 Dreamweaver

Dreamweaver [24] je integrirano razvojno okolje (angl. integrated development environment — IDE) [25], ki so ga prvotno razvili v podjetju Allaire Systems, danes pa si ga lasti Adobe Systems. Na voljo je za Mac in Windows operacijske sisteme. Novejˇse razliˇcice programa imajo vgrajeno sintaktiˇcno poudarjanje in podporo za veˇcino spletnih tehnologij, ki so danes v uporabi. Mednje sodijo npr. CSS, JavaScript, ASP.NET, ColdFusion, JSP in PHP.

(51)

4.2 Uporabljene tehnologije in orodja za razvoj aplikacije 37

Slika 4.2: Videz uporabniˇskega vmesnika pri ˇsirini zaslona 1024 slikovnih toˇck.

Namenjen je spletnemu oblikovanju in razvoju spletnih aplikacij, ima vgra- jen urejevalnik WYSIWYG oz. t. i. pogled za oblikovanje (angl. design view), ki omogoˇca predogled strani ob razvijanju kode. Med pogledi je moˇzno tudi preklapljati. Lahko urejate samo izvorno kodo, lahko uporabljate samo ob- likovni naˇcin ali pa vkljuˇcite obe moˇznosti, tako da si oba naˇcina delita zaslon istoˇcasno.

Urejevalnik izvorne kode ima nekaj standardnih zmoˇznosti, kot so sin- taktiˇcno poudarjanje, samodejno dokonˇcanje kode, skrivanje/razkrivanje vrstic med pripadajoˇcimi oklepaji in zaklepaji ter nekaj bolj naprednih, npr. prever- janje pravilnosti sintakse v resniˇcnem ˇcasu in introspekcija kode za generira- nje nasvetov pri oblikovanju kode. Dreamweaver ima zelo dobro podporo za ustvarjanje in manipuliranje z raznimi elementi HTML, zato je moˇzno v ob- likovnem naˇcinu zelo hitro razviti obliko spletne strani oz. spletne aplikacije.

Za predogled spletnih strani Dreamweaver uporablja integriran brskalnik, po- nuja pa tudi moˇznost predogleda v lokalno nameˇsˇcenih spletnih brskalnikih.

Tako kot ostali urejevalniki, namenjeni spletnim vsebinam, Dreamweaver uredi datoteke najprej na lokalni ravni, nato pa jih prenese na oddaljen streˇznik s

(52)

38 Poglavje 4: Razvoj aplikacije

Slika 4.3: Videz uporabniˇskega vmesnika pri ˇsirini zaslona 765 slikovnih toˇck.

pomoˇcjo protokolov FTP, SFTP ali WebDAV. Od razliˇcice CS4 naprej je pod- prt tudi sistem za nadzor razliˇcic SVN.

Nekatere dodatne uporabne lastnosti oz. zmoˇznosti programa:

• prenos in sinhronizacija datotek,

• sposobnost iskanja in zamenjave besedila ˇcez celotno datoteko prek is- kalnega niza ali regularnega izraza,

• funkcija predloge,

• vedenjska ploˇsˇca (angl. behaviors panel) omogoˇca uporabo osnovnih funkcij jezika Javascript brez predhodnega kodirnega znanja,

(53)

4.2 Uporabljene tehnologije in orodja za razvoj aplikacije 39

• integracija z ogrodjem Adobe Spry Ajax omogoˇca preprost dostop do dinamiˇcno generiranih vsebin in vmesnikov,

• zmoˇznost vgraditve zunanjih razˇsiritev (angl. third-party extensions) predvsem v jezikih HTML in JavaScript za razˇsiritev glavne funkcional- nosti aplikacije.

Uporabniˇski vmesnik okolja je prikazan na sliki 4.4.

Slika 4.4: Uporabniˇski vmesnik Adobe Dreamweaver CS6.

4.2.2 PHP

PHP [26] je odprtokodni programski jezik, ki se izvaja na strani streˇznika.

Namenjen je predvsem spletnemu razvijanju in razvoju dinamiˇcnih spletnih vsebin. Uporablja se tudi kot sploˇsno namenski programski jezik. V izvirni ra- zliˇcici je bila PHP kratica za Personal Home Page (slov. osebna spletna stran), danes pa je to triˇcrkovni rekurzivni akronim za PHP: Hypertext Preproces- sor (slov. PHP: predprocesor hiperteksta). PHP primarno teˇce na spletnem streˇzniku, kjer jemlje izvorno kodo za vhod in generira spletno stran kot izhod.

Kot samo ime namiguje, se koda predprocesira na streˇzniˇski strani, preden se generira izhod. Skozi zgodovino se je razvil tudi v tej smeri, da ga je moˇzno uporabljati v ukaznem naˇcinu in celo za ustvarjanje grafiˇcnih aplikacij (npr. z razˇsiritvijo PHP-GTK [27]).

(54)

40 Poglavje 4: Razvoj aplikacije

PHP je moˇzno namestiti na veliki veˇcini danaˇsnjih streˇznikov ali pa kot samostojno lupino (angl. standalone shell) na skoraj vseh operacijskih sistemih in platformah. Trenutno je nameˇsˇcen na veˇc kot 244 milijonov spletnih straneh in 2,1 milijon spletnih streˇznikov [28].

Sintaksa je zelo podobna sintaksi programskih jezikov C in Perl, kar omogo- ˇca izkuˇsenim programerjem, ki se prej niso ukvarjali s PHP-jem, hitro uˇcenje in razvijanje spletnih vsebin. Ukaze lahko vgradite kar v datoteko s kodo HTML. Napisani morajo biti med posebnima nizoma znakov, ki oznaˇcujeta zaˇcetek in konec kode PHP — <?php (ali samo <? v krajˇsi obliki, ki je odsvetovana) in ?>. Glavna zmoˇznost PHP-ja je zelo dobro upravljanje z nizi in polji. Podprto je tudi objektno usmerjeno programiranje [9] (angl.

object oriented programming). Z uporabo standardnih in opcijskih razˇsiritev se lahko aplikacija PHP sporazumeva s podatkovnimi bazami, kot so MySQL ali Oracle, riˇse grafe, ustvarja dokumente PDF in upravlja z datotekami XML.

Svoje razˇsiritvene module lahko napiˇse vsak uporabnik (npr. v programskem jeziku C) in tako omogoˇci PHP-ju vmesnik za funkcije v ˇze obstojeˇci knjiˇznici.

PHP je trenutno razdeljen na dve veˇcji razliˇcici: PHP 4 in PHP 5, razvijajo pa ˇze PHP 6. Razvoj PHP 4 se je konˇcal 31. decembra 2007. Kritiˇcne popravke so izdajali ˇse slabo leto pozneje, do 8. avgusta 2008. Danes sta tako najbolj v uporabi razliˇcici 5.4.x in 5.3.x, najnovejˇsa razliˇcica pa nosi oznako 5.5.

4.2.2.1 Zend Framework 2

Zend Framework 2 [29] je odprtokodno ogrodje za razvijanje spletnih aplikacij in spletnih storitev, ki uporablja PHP 5.3 ali novejˇso razliˇcico. ZF2 (angl.

Zend Framework 2) uporablja 100 % objektno usmerjeno kodo in izkoriˇsˇca veˇcino novih funkcionalnosti PHP 5.3, predvsem imenske prostore (angl. name- spaces), pozne statiˇcne vezave (angl. late static binding), lambda funkcije (angl. lambda functions) in zaprtja (angl. closures). ZF2 se je razvil iz uspeˇsne predhodne razliˇcice Zend Framework 1. Ta razliˇcica je ˇstela veˇc kot 15 milijonov prenosov.

Struktura komponent je zelo edinstvena. Vsaka komponenta je narejena brez odvisnosti od ostalih oz. je odvisnost zelo majhna. Za testiranje pravil- nega delovanja kode razvijalci uporabljajo PHPUnit. ZF2 sledi principu ob- jektno usmerjenega naˇcrtovanja SOLID [30]. Ta arhitektura omogoˇca razvi- jalcem, da za svoje potrebe uporabijo katerokoli komponento sistema. Razvi- jalci ogrodja ZF2 so takˇsen naˇcin uporabe poimenovali ”uporabi-po-ˇzelji”(angl.

”use-at-will”design). Tudi naˇsa aplikacija uporablja ZF2 kot samostojno knji- ˇznico. Uporabili smo le nekatere storitve celotnega ogrodja (npr. razrede

(55)

4.2 Uporabljene tehnologije in orodja za razvoj aplikacije 41

ServiceManager, TableGateway, Form, InputFilter, Validator). Bolj klasiˇcen naˇcin uporabe ogrodja, namenjen predvsem kompleksnejˇsim in veˇcjim projek- tom, je uporaba celotnega sistema MVC [10]. ˇCe ZF2 uporabimo na ta naˇcin, dobimo zelo fleksibilno ogrodje za razvijanje spletnih aplikacij.

Zend Framework 2 ponuja ˇse knjiˇznice za preprost dostop do danes najpo- pularnejˇsih spletnih storitev kot so Flicker, Twitter in celo Windows Azure, ˇze prej omenjeno robustno, visoko zmogljivo implementacijo sistema MVC, abstrakcijo podatkovne baze, ki jo je zelo preprosto uporabljati, in razrede za delo z obrazci, ki imajo implementirane funkcije za prikaz, validacijo in filtriranje ter sledijo najnovejˇsim standardom HTML5. Ostale komponente, kot so Zend\Authentication in Zend\Permissions\Acl, ponujajo avtentikacijo in avtorizacijo uporabnika prek vseh akreditacijskih skladiˇsˇc (angl. credential stores). Za potrebe naˇse aplikacije se avtorizacija opravlja prek podatkovne baze in sicer se preverja e-poˇsta uporabnika in njegovo geslo.

Glavni sponzor projekta ZF2 je Zend Technologies, so pa tudi ˇstevilna druga podjetja prispevala k razvoju ogrodja. Podjetja kot so Google, Microsoft in StrikeIron sodelujejo z Zendom, da bi razvijala vmesnike za spletne storitve in ostale tehnologije, ki jih ˇzelijo ponuditi razvijalcem ZF2.

4.2.2.2 TCPDF

TCPDF [31] je zastonjska, odprtokodna knjiˇznica za generiranje dokumentov PDF, napisana v programskem jeziku PHP. Za delovanje ne potrebuje nobenih zunanjih razˇsiritev. Podpira kodiranje UTF-8, standard Unicode, jezike RTL (angl. right to left languages), XHTML, JavaScript, digitalne podpise, ˇcrtne kode in veliko veˇc.

V naˇsi aplikaciji smo knjiˇznico TCPDF uporabili za generiranje poroˇcil o ˇstudentovi prisotnosti pri predmetih in za poroˇcila o obiskanosti posameznega predmeta.

Glavne znaˇcilnosti knjiˇznice TCPDF:

• za osnovne funkcije niso potrebne nobene zunanje knjiˇznice,

• podpira vse standardne velikosti strani, uporabniˇsko definirane velikosti in meje ter enote za merjenje (angl. units of measure),

• podpira kodiranje UTF-8, standard Unicode in jezike RTL,

• med naborom ˇcrk so TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 in CID-0,

• definirane so metode, ki lahko pretvorijo kode XHTML in CSS, JavaScript ter obrazce v obliko PDF,

(56)

42 Poglavje 4: Razvoj aplikacije

• podpira odstranjevanje glifov ˇcrk (angl. font subsetting),

• podpira slikovne formate JPEG, PNG in SVG,

• podpira ˇcrtne kode 1D in 2D,

• dodane so funkcije za avtomatsko urejanje glave in repa strani,

• generirane PDF dokumente je moˇzno zakodirati in jim dodati digitalni podpis,

• omogoˇceno je dodajanje zaznamkov in kazal,

• za laˇzje urejanje videza dokumenta so dodane tudi predloge XOBject,

• stran je moˇzno razdeliti v veˇc stolpcev,

• knjiˇznica ima funkcije za avtomatiˇcno zaznavanje prelomov strani in vrstic, poravnavo teksta ter oˇstevilˇcenje strani,

• dokumente je moˇzno izvoziti v formatu PDF/A-1b [32].

4.2.3 jQuery

jQuery je odprtokodna knjiˇznica napisana v skriptnem jeziku JavaScript. Njen namen je poenostaviti interakcijo med dokumenti HTML oz. natanˇcneje struk- turo DOM. jQuery omogoˇca preprosto “sprehajanje” po dokumentih, enos- tavno manipulacijo z dokumenti, animacije na elementih DOM, interakcijo Ajax (angl. Asynchronous JavaScript and XML) in razvijanje kode, ki deluje v vseh sodobnih brskalnikih (angl. cross-browser development).

Dandanes je veˇcina vtiˇcnikov JavaScript napisana s pomoˇcjo jQueryja. Za boljˇso interakcijo in veˇcjo dinamiˇcnost naˇse aplikacije smo jih nekaj vkljuˇcili tudi mi. Vtiˇcniki, ki smo jih uporabili v aplikaciji:

• Bootstrap-rowlink,

• Datatables,

• Datepicker,

• HighCharts,

• jQuery Validation,

• Lou-Multiselect,

• QuickSearch.

Zelo pomembno vlogo, ˇce ne celo najpomembnejˇso, igra tu vtiˇcnik HighCharts [33], ki smo ga uporabili za izris grafov na strani. Posredno smo to knjiˇznico

Reference

POVEZANI DOKUMENTI

Trenutno analizirajo uporabnosti štirih metod prepoznavanja – prstnega odtisa, ša- renice, obraza in glasu – tako s teh- nološkega stališča kot tudi s stališča

Svetlomer je majhnih dimenzij, prikljuˇ ci se na audio izhod iOS naprave in omogoˇ ca enako natanˇ cno merjenje svetlobe kot profesionalni svetlomeri.. Diplomsko delo se osredotoˇ ca

To virtualizacijo lahko prav tako kot virtualizacijo strojne opreme izva- jamo doma na osebnem raˇ cunalniku.. ˇ Ce pa ˇ zelimo, lahko navidezni raˇ cunalnik najamemo pri enem

Pri nekaterih pro- blemih, ki so zelo primerni za raˇ cunanje na GPE, kot je tudi Mandelbrotova mnoˇ zica, se lahko zgodi, da v konfiguraciji ene CPE in ene GPE, GPE za- kljuˇ ci z

Površine platen se kažejo kot bojno polje, na katerem so se spopadli najrazličnejši materiali in od vsakega srečanja ostajajo sledi, odtisi.. Obenem se srečamo z razširjajočo

Lahko pa iz slike 2.14 sklepamo, da je nizka obokanost stopala zna č ila za vsa tista stopala, katerih č rta, ki poteka skozi sredino petega prsta in sredino pete odtisa

Znotrajvrstno variabilnost smo ugotavljali z metodo raznolikosti dolžin pomnoženih fragmentov (AFLP) in metodo prstnega odtisa z nukleotidnim začetnikom bakteriofaga M13 (M13

Iz male komunalne čistilne naprave z zmogljivostjo čiščenja 50 PE, v skladu s temi standardi, se lahko odvaja očiščena odpadna voda neposredno v površinsko vodo prek