aplikacija mobilni ocenjevalec moodle na … · pametni telefoni so znani tudi kot dlan čniki, ki...
TRANSCRIPT
APLIKACIJA MOBILNI OCENJEVALEC
MOODLE
SISTEMU ANDROID
Bojan Križanec
APLIKACIJA MOBILNI OCENJEVALEC
MOODLE NA OPERACIJSKEM
SISTEMU ANDROID
Diplomsko delo
Maribor, julij 2012
APLIKACIJA MOBILNI OCENJEVALEC
NA OPERACIJSKEM
APLIKACIJA MOBILNI OCENJEVALEC
MOODLE NA OPERACIJSKEM
SISTEMU ANDROID
Diplomsko delo
Študent: Bojan Križanec
Študijski program: Fakulteta za elektrotehniko računalništvo in informatiko –
FERI RI – VS
Smer: Logika in sistemi
Mentor prof. dr. Janez Brest
Somentor: doc. dr. Iztok Fister
Lektor: Primož Gmeiner, univ. dipl. prev. in tolm. za ang. jez. ter prof.
slovenščine
i
ii
ZAHVALA
Mentorju se zahvaljujem za pomoč in nasvete pri
pripravi diplomskega dela, prav tako pa se
zahvaljujem somentorju.
Hvala tudi podjetju Raiffeisen Banka d. d. za
financiranje študija ter sodelavcem za podporo in
pomoč pri študiju. Zlasti pa se zahvaljujem Mihu
Gaberšku za pomoč pri izvedbi diplomskega dela
in podjetju Telekom d. d., ki mi je posodilo mobilni
telefon za preskušanje.
Posebna zahvala gre družini in prijateljem, ki so mi
stali ob strani in me spodbujali v težkih trenutkih
študija.
iii
Mobilni ocenjevalec Moodle na operacijskem
sistemu Android
Ključne besede: Android, mobilna platforma, mobilna omrežja, razvoj programske
opreme, Moodle.
UDK: 004.42:004.77(043.2)
Povzetek
V tem diplomskem delu predstavljamo rešitev mobilnega ocenjevanja študentov v učnem
sistemu Moodle na mobilnih napravah Android. Podajamo tudi kratek zgodovinski razvoj
mobilne telefonije in nekaterih pomembnejših mobilnih operacijskih sistemov. Podrobneje
opisujemo sistem Android, podatkovno zbirko SQLite, mobilne komunikacije, spletne
storitve in učni sistem Moodle. Na koncu je predstavljena še uporaba mobilne aplikacije.
iv
Moodle mobile-grader application on Android
Key words: Android, mobile platform, mobile networks, software development,
Moodle.
UDK: 004.42:004.77(043.2)
Abstract
In this thesis, we have demonstrated a solution how to implement a mobile assessment of
students in learning system Moodle on Android mobile devices. We have presented a
brief historical development of mobile telephony and some of the major mobile operating
systems. The Android system, SQLite database, mobile communications, internet
services and learning system Moodle are described in detail. At the end, we have
demonstrated the use of the given mobile application.
v
KAZALO VSEBINE
1 UVOD .............................................................................................................. 1
1.1 CILJI IN TEZE DIPLOMSKEGA DELA ................................................................................. 1
1.2 PREDPOSTAVKE IN OMEJITVE DIPLOMSKEGA DELA ................................................... 1
1.3 PREDVIDENE METODE DIPLOMSKEGA DELA ................................................................. 1
2 MOBILNO IN VSEPRISOTNO RAČUNALNIŠTVO ........................................ 2
2.1 MOBILNE NAPRAVE ............................................................................................................ 3
2.1.1 Pametni telefoni .............................................................................................................. 4
2.2 MOBILNA OMREŽJA ............................................................................................................ 5
2.3 MOBILNE PLATFORME ....................................................................................................... 8
2.3.1 Android ........................................................................................................................... 8
2.3.2 Podatkovna zbirka SQLite ............................................................................................ 11
2.4 MOBILNE APLIKACIJE ...................................................................................................... 14
2.4.1 Razvoj mobilnih aplikacij .............................................................................................. 16
2.5 SPLETNE STORITVE .......................................................................................................... 18
2.5.1 Storitveno usmerjena arhitektura ................................................................................. 18
2.5.2 Spletna storitev Moodle ................................................................................................ 22
3 MOBILNI OCENJEVALEC ............................................................................ 25
3.1 OPIS ZAHTEVE ................................................................................................................... 25
3.2 KONCEPT REŠITVE............................................................................................................ 26
3.2.1 Pregled arhitekture ....................................................................................................... 26
3.2.2 Pregled funkcionalnosti ................................................................................................ 27
3.3 RAZVOJ REŠITVE............................................................................................................... 30
3.3.1 Logični pregled ............................................................................................................. 30
3.3.2 Uporabniški vmesnik .................................................................................................... 31
3.3.3 Podatkovna zbirka ........................................................................................................ 40
3.3.4 Komunikacijski modul ................................................................................................... 41
vi
4 DELOVANJE APLIKACIJE ........................................................................... 42
4.1 UPORABNIŠKI VMESNIK ................................................................................................... 42
4.1.1 Zagon in prijava v aplikacijo ......................................................................................... 42
4.1.2 Nastavitev parametrov aplikacije .................................................................................. 43
4.1.3 Prenos podatkov ........................................................................................................... 44
4.1.4 Ocenjevanje .................................................................................................................. 44
4.1.5 Reševanje konfliktov ..................................................................................................... 45
4.2 PRESKUS DELOVANJA ..................................................................................................... 46
4.2.1 Preskusno okolje .......................................................................................................... 46
4.2.2 Preskusni podatki ......................................................................................................... 48
4.2.3 Scenariji uporabe .......................................................................................................... 49
4.3 REZULTATI .......................................................................................................................... 52
5 SKLEP ........................................................................................................... 53
6 VIRI ................................................................................................................ 54
7 PRILOGE .......................................................................................................... I
A. LASTNOSTI PROGRAMSKE OPREME .................................................................................... I
B. NAMESTITEV ........................................................................................................................... III
C. OSEBNI PODATKI.................................................................................................................... IV
vii
KAZALO SLIK
SLIKA 2.1: HTC DREAM ...................................................................................................................................... 8
SLIKA 2.2: SISTEMSKA ARHITEKTURA ANDROID (VIR: [4].) .............................................................................. 11
SLIKA 2.3: SQLITE, VSTAVLJENA V GOSTUJOČE PROCESE (VIR: [25].) .............................................................. 12
SLIKA 2.4: ARHITEKTURA SQLITE (VIR: [25].) ................................................................................................... 13
SLIKA 2.5: ŽIVLJENJSKI CIKEL APLIKACIJE ANDROID (VIR: [26].)....................................................................... 15
SLIKA 2.6: RAZVOJNO OKOLJE ECLIPSE ............................................................................................................ 17
SLIKA 2.7: PRIMER ZGRADBE XML (VIR: [30].) ................................................................................................. 19
SLIKA 2.8: PREGLED ZAHTEV SOA (VIR: [29].) .................................................................................................. 20
SLIKA 2.9: FORMAT JSON (VIR: [34].) .............................................................................................................. 22
SLIKA 3.1: ARHITEKTURA ODJEMALCA/STREŽNIKA ......................................................................................... 26
SLIKA 3.2: DIAGRAM UPORABE ....................................................................................................................... 27
SLIKA 3.3: DIAGRAM PREHAJANJA STANJ OCENE V ODJEMALCU ................................................................... 28
SLIKA 3.4: MOODLE TABELE............................................................................................................................. 29
SLIKA 3.5: ZGRADBA ODJEMALCA ................................................................................................................... 30
SLIKA 3.6: POVEZAVA AKTIVNOSTI .................................................................................................................. 31
SLIKA 3.7: DIAGRAM POTEKA AKTIVNOSTI LOGIN .......................................................................................... 32
SLIKA 3.8: DIAGRAM POTEKA AKTIVNOSTI MENU .......................................................................................... 33
SLIKA 3.9: DIAGRAM POTEKA AKTIVNOSTI SETUP ........................................................................................... 34
SLIKA 3.10: DIAGRAM POTEKA AKTIVNOSTI GRADE........................................................................................ 36
SLIKA 3.11: DIAGRAM POTEKA AKTIVNOSTI DATA .......................................................................................... 37
SLIKA 3.12: DIAGRAM POTEKA AKTIVNOSTI CONFLICT ................................................................................... 39
SLIKA 3.13: PODATKOVNA ZBIRKA OCENJEVALCA .......................................................................................... 40
SLIKA 4.1: UPORABNIŠKI VMESNIK LOGIN ....................................................................................................... 42
SLIKA 4.2: UPORABNIŠKI VMESNIK MENU....................................................................................................... 43
SLIKA 4.3: UPORABNIŠKI VMESNIK SETUP ....................................................................................................... 43
SLIKA 4.4: UPORABNIŠKI VMESNIK DATA ........................................................................................................ 44
SLIKA 4.5: UPORABNIŠKI VMESNIK GRADE ...................................................................................................... 45
SLIKA 4.6: UPORABNIŠKI VMESNIK CONFLICT ................................................................................................. 46
SLIKA 4.7: PRESKUSNO OKOLJE (EMULATOR ANDROID IN TELEFON) ............................................................. 47
SLIKA 4.8: PRESKUSNO OKOLJE (POVEZAVA WLAN-WLAN) ............................................................................ 47
SLIKA 4.9: PRESKUSNO OKOLJE (POVEZAVA WLAN-LAN) ................................................................................ 48
SLIKA 4.10: UPORABNIKI NA STREŽNIKU MOODLE ......................................................................................... 48
SLIKA 4.11: NALOGE PREDMETA NA STREŽNIKU MOODLE ............................................................................. 48
viii
SLIKA 4.12: VNOS NASLOVA STREŽNIKA .......................................................................................................... 49
SLIKA 4.13: PRENOS PODATKOV ...................................................................................................................... 49
SLIKA 4.14: IZBIRA OCENJEVALCA IN OCENJEVANJE ....................................................................................... 50
SLIKA 4.15: PRISOTNOST KONFLIKTOV IN NJIHOVO REŠEVANJE ..................................................................... 50
KAZALO TABEL
TABELA 2.1: DELEŽ MOBILNIH PLATFORM ........................................................................................................ 5
TABELA 2.2: RAZLIČICE OPERACIJSKEGA SISTEMA ANDROID .......................................................................... 10
ix
UPORABLJENE KRATICE
AES – Advanced Encryption Standard
CCMP – Cipher Block Chaining Message Authentication Code Protocol
EAP – Extensible Authentication Protocol
EDGE – Enhanced Data rates for Global Evolution
GPS – Global Positioning System
GPRS – General Packet Radio Service
GSM – Global System for Mobile communications
HDTV – High-definition television
HSPA+ – High-speed Packet Access
HSDPA – High Speed Downlink Packet Access
HTTP – HyperText Transfer Protocol
HTTPS – HyperText Transfer Protocol Secure
IrDA – Infrared Data Association
JSON – JavaScript Object Notation
LAN – Local Area Network
LTE – Long term Evolution
MIME – Multipurpose Internet Mail Extensions
MMS – Multimedia Messaging Service
MOODLE – Modular Object-Oriented Dynamic Learning Environment
NMT – Nordic Mobile Telephone
NTT – Nippon Telegraph and Telephone
PSK – Pre-shared Key
RADIUS – Remote Authentication Dial In User Service
REST – Representational State Transfer
RFID – Radio-frequency identification
RPC – Remote Procedure Call
SMS – Short Message Service
SOA – Service Oriented Architecture
SOAP – Simple Object Access Protocol
SSL – Secure Socket Layer
TKIP – Temporal Key Integrity Protocol
TLS – Transport Layer Security
UDDI – Universal Description, Discovery and Integration
x
UID – User identifier
UMTS – Universal Mobile Telecommunications System
VoIP – Voice over Internet Protocol
WAP – Wireless Application Protocol
WEP – Wired Equivalent Privacy
Wi-Fi – Wireless Fidelity
WiMAX – Worldwide Interoperability for Microwave Access
WLAN – Wireless Local Area Network
WPA/WPA2 – Wi-Fi Protected Access
WSDL – Web Services Description Language
WWW – World Wide Web
XML – Extensible Markup Language
1
1 UVOD
V diplomskem delu želimo izdelati aplikacijo mobilni ocenjevalec Moodle in prikazati njeno
delovanje na mobilnem telefonu z odprtokodnim operacijskim sistemom Android.
1.1 CILJI IN TEZE DIPLOMSKEGA DELA
V nalogi želimo doseči naslednje cilje:
– preučiti operacijski sistem Android za mobilne telefone, arhitekturo mobilnih
aplikacij in načine povezovanja mobilnih naprav v spletno omrežje prek mobilnega
lokalnega omrežja WLAN,
– preučiti storitveno usmerjeno arhitekturo (angl. Service Oriented Architecture,
krajše SOA) skupaj s komunikacijskimi protokoli XML, SOAP, UDDI in WDSL,
– seznaniti se s programskimi orodji za razvoj vseprisotnih aplikacij (Eclipse JDT,
Android SDK),
– izdelati mobilno aplikacijo za operacijski sistem Android v razvojnem okolju
Eclipse JDT in jo preskusiti v praksi.
1.2 PREDPOSTAVKE IN OMEJITVE DIPLOMSKEGA
DELA
Diplomsko delo je omejeno samo na mobilne telefone z operacijskim sistemom Android in
programskim okoljem Java.
1.3 PREDVIDENE METODE DIPLOMSKEGA DELA
Pri pripravi diplomskega dela uporabimo deskriptivne in komparativne metode s
preučitvijo domače in tuje literature. Na podlagi pridobljenega znanja izdelamo realno
aplikacijo in analiziramo njeno delovanje v praksi.
2
2 MOBILNO IN VSEPRISOTNO RAČUNALNIŠTVO
Mobilno in vseprisotno računalništvo sta pojma, s katerima se srečujemo vsakodnevno na
vseh področjih in ki nas dejansko spremljata na vsakem koraku (doma, v službi, trgovini,
avtomobilu, javnem prevozu, pri športnih dejavnostih in zabavi itd.).
Idejni oče vseprisotnega (angl. Ubiquitous) računalništva je ameriški znanstvenik Mark
Weiser, ki je leta 1991 izpostavil njegova osnovna načela:
– namen računalnika je, da vam pomaga narediti nekaj drugega;
– najboljši računalnik je tihi, nevidni služabnik;
– več kot lahko narediš z intuicijo, pametnejši si – računalnik bi moral razširiti svojo
nezavednost;
– tehnologija bi morala ustvariti mir, kar pomeni, da bi računalnik moral biti tisti, ki
obvešča, vendar ne zahteva naše pozornosti.
Vseprisotno računalništvo pomeni tretji val v računalništvu, ki se začenja zdaj. Najprej so
bili veliki računalniki, ki si jih je delilo veliko ljudi. Zdaj smo v dobi osebnega računalništva,
ko imamo vsak svoj računalnik. Sledi vseprisotno računalništvo ali doba mirne tehnologije,
ki se izgubi v našem družbenem okolju [1].
Zamisli tega računalništva so:
– izginjajoča strojna oprema (angl. Disappearing Hardware),
– razširjena in navidezna resničnost (angl. Augmented Reality, Virtual Reality),
– interakcija človek – računalnik (angl. Human-Computer Interaction, krajše HCI),
– brezžična komunikacija (angl. Wireless Communication),
– satelitska navigacija (angl. Global Positioning System, krajše GPS),
– pametne kartice (angl. Smart-Cards) in radiofrekvenčna identifikacija (angl. Radio-
Frequency Identification, krajše RFID),
– odkrivanje varnostnih storitev (angl. Security Service Discovery).
Vseprisotno računalništvo temelji na mobilnih napravah. Mobilne naprave, povezane na
splet prek mobilnih omrežij, tvorijo zapleten ekosistem, katerega deli delujejo v simbiozi.
Mobilni ekosistem sestavljajo naslednji elementi:
– mobilne naprave,
– mobilna omrežja,
3
– mobilne platforme,
– mobilne aplikacije in
– spletne storitve.
Navedeni elementi so podrobneje predstavljeni v nadaljevanju.
2.1 MOBILNE NAPRAVE
Z razvojem elektronike in računalniškega programiranja je nastalo veliko število naprav, ki
jih uporabljamo vsakodnevno. Takšne vseprisotne naprave delimo glede na namen
uporabe na:
– naprave za dostop do informacijskih storitev (angl. Information access services), ki
jih zastopajo pametni telefoni in inteligentne naprave (angl. Intelligent appliances),
kot je GPS,
– naprave za nadzor (angl. Smart control), ki vključujejo različne senzorje, pametne
kartice, sisteme za radijska identifikacijo (RFID),
– naprave za zabavo (angl. Entertainment system), kot so kamere, spletna televizija
(angl. Internet Protocol Television, krajše IPTV) ter glasbeni in video predvajalniki.
Te naprave se z drugimi napravami v lokalnem omrežju povezujejo prek žičnih (USB,
LAN) ali brezžičnih (IrDA, Bluetooth, WLAN) omrežij, na splet se povezujejo prek
brezžičnih (WLAN) ali mobilnih omrežij (GSM, GPRS, EDGE, UMTS), nekatere pa se
povezujejo tudi v sisteme GPS. Od navedenih mobilnih naprav se najpogosteje
uporabljajo pametni telefoni, ki se jim bomo povsem posvetili v nadaljevanju. Ti so dovolj
majhni za prenašanje in zmogljivi, saj nam z vgrajenimi moduli (fotoaparat, GPS, WLAN,
Bluetooth, radio itd.) in naloženimi aplikacijami omogočajo najrazličnejše dejavnosti, kot
so:
– brskanje po spletu in dostop do družabnih omrežij,
– navigacija z vgrajenimi sprejemniki GPS in naloženimi zemljevidi,
– fotografiranje in snemanje videov,
– poslušanje radia in predvajanje glasbenih datotek,
– gledanje videoposnetkov in televizije,
– igranje iger,
– snemanje zvokov,
– pisanje zapiskov,
– branje dokumentov, elektronskih knjig in revij,
4
– pošiljanje in branje sporočil SMS in MMS ter e-pošte in
– telefoniranje.
Poleg zgoraj naštetih funkcionalnosti so v vseh mobilnih operacijskih sistemih nameščeni
še različni pripomočki (računalo, koledar, pretvorniki valut itd.). Prav tako se nenehno
daljša seznam različnih aplikacij, ki jih lahko naložimo na telefon bodisi brezplačno bodisi
za plačilo že od nekaj evrov naprej.
2.1.1 Pametni telefoni
Pametni telefon je mobilni telefon, ki ponuja naprednejše računalniške zmogljivosti in
povezljivost kot sodobni osnovnofunkcijski telefoni. Pametni telefoni so znani tudi kot
dlančniki, ki imajo vgrajen mobilni telefon. Za osnovnofunkcijske telefone se šteje, da so
zmožni poganjati aplikacije, ki so razvite na platformi Java, mikro izdaja (angl. Micro
Edition, krajše ME). Pametni telefoni uporabniku dopuščajo, da sam naloži in zaganja
zahtevnejše aplikacije ter poganjajo platforme, ki so narejene v prid razvijalcem aplikacij.
Lahko jih štejemo za osebne žepne računalnike z dodanimi funkcijami mobilnega telefona,
saj so ti telefoni navadni računalniki, vendar veliko manjši.
Rast povpraševanja po pametnih telefonih z zmogljivim procesorjem, veliko spomina,
velikimi zasloni in odprtim operacijskim sistemom je trg povprečnih telefonov prehitela za
več let [2]. Glede na študijo podjetja ComScore [3] je bilo v letu 2011 več kot 97,9 milijona
ljudi v ZDA, starejših od 13 let, lastnikov pametnih telefonov.
V današnjem času imamo na tržišču veliko proizvajalcev pametnih telefonov in
operacijskih sistemov. Med najbolj razširjenimi so naslednji operacijski sistemi, ki smo jih
razvrstili po abecednem redu in jim pripisali nekaj večjih proizvajalcev mobilnih naprav, ki
jih uporabljajo:
– Android (Acer, HTC, LG, Motorola, Samsung, Sony) [4],
– BlackBerry (RIM) [5],
– iOS (Apple) [6],
– Symbian (Motorola, Nokia, Panasonic, Samsung, Sony Ericsson) [7],
– Windows Phone (Acer, Dell, Fujitsu, HTC, LG, Nokia, ZTE) [8].
Android je postal najbolj razširjen mobilni OS v letu 2010, kot kaže tabela 2.1.
5
Tabela 2.1: Delež mobilnih platform
2.2 MOBILNA OMREŽJA
Prvo komercialno celično omrežje je leta 1979 v Tokiu postavilo japonsko telegrafsko in
telefonsko podjetje Nippon Telegraph and Telephone (NTT), pri čemer je šlo za mestno
omrežje. V naslednjih petih letih se je razširilo in pokrilo območje celotne Japonske in tako
postalo prvo nacionalno omrežje 1G. Leta 1981 je nastal podoben sistem NMT tudi v
skandinavskih državah, ki je bil edino mobilno omrežje z možnostjo mednarodnega
gostovanja [9]. Prvo generacijo 1G predstavljajo standardi, katerih značilnost so analogni
radijski signali za povezavo do radijskih anten. V naslednjih letih se je razvoj na področju
mobilnih komunikacij neprestano širil in izpopolnjeval z uporabo digitalne tehnologije.
Vsaka naslednja generacija je prinesla številne izboljšave in večje hitrosti prenosa
podatkov. Pomembnejše od njih so:
1. Generacija 2G: objavljena leta 1991, digitalna tehnologija: – standard:
• globalni sistem za mobilne komunikacije (angl. Global Sistem for Mobile Communication, krajše GSM),
– storitve: • besedilna sporočila (angl. Short Message System, krajše SMS) in • elektronska pošta.
2. Generacija 2.5G: – standardi:
• splošna paketna radijska storitev (angl. General Packet Radio Service, krajše GPRS),
6
• brezžični aplikacijski protokol (angl. Wireless Application Protocol, krajše WAP),
– storitve: • večpredstavnostna sporočila (angl. Multimedia Messaging Service,
krajše MMS) in • internetne storitve (angl. World Wide Web, krajše WWW).
3. Generacija 2.75G: – tehnologija:
• nadgrajene podatkovne hitrosti v razvoju GSM (angl. Enhanced Data rates for GSM Evolution, krajše EDGE) [10].
4. Generacija 3G: objavljena leta 2001: – tehnologije:
• univerzalni mobilni telekomunikacijski sistem (angl. Universal Mobile Telecommunications System, krajše UMTS),
• visokohitrostni paketni dostop (angl. High Speed Packet Access, krajše HSPA+),
• visokohitrostni paketni prenos (angl. High Speed Downlink Packet Access, krajše HSDPA,
– storitve: • videokonferenca, • prenos video- in TV-vsebin [11].
5. Generacija 4G: objavljena leta 2011: – standardi:
• dolgoročni razvoj (angl. Long term evolution, krajše LTE), • brezžični širokopasovni prenos podatkov (angl. Worldwide
Interoperability for Microwave Access, krajše WiMAX), – storitve:
• prenos govora prek internetnega protokola (angl. Voice over Internet Protocol, krajše VoIP),
• televizija visoke ločljivosti (angl. High-definition television, krajše HDTV),
• 3D-televizija [12]. 6. Generacija 5G: v razvoju.
Za mobilno komunikacijo se šteje komunikacija, ki jo uporabljamo za brezžično povezavo
mobilnih naprav v omrežja. Med najpogosteje uporabljanimi so že omenjeni UMTS (3G)
[12], Bluetooth [13] in Wi-Fi [14], ki ga uporabljamo v naši aplikaciji.
Brezžično omrežje Wi-Fi (angl. Wireless Fidelity) deluje v dveh frekvenčnih območjih
(standard 802.11a – 5 GHz ter standarda 802.11b in 802.11g – 2,4 GHz) z hitrostjo do
54 Mbit/s, novejši standard 802.11n pa naj bi dosegal hitrost do 540 Mbit/s. Značilne
7
dostopne točke (angl. access point) do brezžičnega omrežja uporabljajo standard 802.11b
ali 802.11g. Njihov doseg je do 32 m v zaprtih prostorih oziroma do 95 m na prostem.
Uporablja se za dostop mobilnih naprav do interneta ali lokalnega omrežja prek dostopnih
točk WLAN (zasebna domača in poslovna omrežja, javna omrežja univerz, hotelov,
različnih informacijskih točk ipd.) [14].
Za varnejše povezovanje v brezžično omrežje uporabljamo naslednje standarde šifriranja:
– standard zasebnosti kot v žičnem omrežju (angl. Wired Equivalent Privacy, krajše
WEP) je izviren standard šifriranja brezžičnih omrežij. Kot kaže ime, je bil njegov
namen vzpostaviti raven varnosti brezžičnih omrežij na raven navadnih. Vendar
mu to žal ni uspelo, saj so bile napake hitro odkrite in izkoriščene. Na voljo je
precej odprtokodnih programov, ki jih napadalci uporabljajo za vlom z iskanjem
vzorcev v šifriranju. WEP delimo glede na velikost ključev. Pogosti dolžini sta 128
in 256 bitov. Daljši kot je ključ, boljša je varnost pred napadalci [15].
– standard zaščitenega brezžičnega dostopa (angl. Wi-Fi protected access, krajše
WPA) [16] je zgodnja različica varnostnega standarda 802.11i, ki ga je za
nadomestitev WEP razvila organizacija Wi-Fi Alliance. Šifrirni protokol za
zagotavljanje začasne integritete (angl. Temporal Key Integrity Protocol, krajše
TKIP) je bil razvit kot izboljšava za WEP, ki bi se lahko kot strojna oprema naložila
tudi na sedanje naprave 802.11 [17]. WPA prav tako ponuja omejeno podporo za
napredni standard šifriranja (angl. Advanced Encryption Standard, krajše AES)
[18], za katerega obstajata dve različici:
• WPA Enterprise je narejen za poslovna omrežja in zahteva
avtentikacijski strežnik RADIUS. To zahteva bolj zapleteno postavitev,
hkrati pa zagotavlja dodatno varnost (npr. zaščita pred napadi iz slovarja
na kratkih geslih). Za avtentikacijo uporablja razširljiv avtentikacijski
protokol (angl. Extensible Authentication Protocol, krajše EAP) [19].
• WPA Personal je namenjen za uporabo v domačih ali manjših poslovnih
omrežjih. Za varno povezavo uporablja deljeni zasebni ključ (angl. Pre-
shared Key, krajše PSK) [20]. Vsaka naprava v brezžičnem omrežju
dostopne točke uporablja isti 256-bitni ključ, ki je ustvarjen iz gesla ali
fraze, vpisane na dostopni točki.
Standard WPA2 je ime za dokončan standard 802.11i. Glavna razlika med WPA2 in WPA
je polna podpora algoritmu AES-CCMP [21]. Oba standarda – WPA in WPA2 – podpirata
avtentikacijske metode EAP, ki uporabljajo strežnike RADIUS in ključe PSK.
8
2.3 MOBILNE PLATFORME
Mobilna platforma zajema vrsto arhitekture, operacijski sistem, razvojno in izvajalno
okolje, ki je prilagojeno za mobilne naprave. Danes je v uporabi nekaj različnih mobilnih
platform, ki smo jih že navedli v poglavju 2.1:
– Android, – Blackberry, – iOS, – Symbian in – Windows Phone.
V nadaljevanju obravnavamo samo mobilno platformo Android, saj je naša aplikacija
napisana zanjo.
2.3.1 Android
Android je izšel leta 2008 ter je odprtokodni (temelji na odprtokodnem operacijskem
sistemu Linux) operacijski sistem za pametne telefone in ostale prenosne naprave.
Proizvedlo ga je podjetje Google, in sicer skupaj z drugimi proizvajalci strojne in
programske opreme (npr. Intel, HTC, ARM, Motorola, Samsung).
Prvi pametni telefon s sistemom Android je bil HTC Dream (slika 2.1), znan tudi kot T-
Mobile G1. Programska oprema je vsebovala tudi Googlove aplikacije, kot so zemljevid,
koledar, Gmail in brskalnik.
Slika 2.1: HTC Dream
Za razvoj operacijskega sistema Android je najzaslužnejše podjetje Google, ki je zaradi
tega ustanovilo poslovno združenje več podjetij, imenovano Open Handset Alliance
(OHA), ter pod svoje okrilje vzelo hitro rastoče podjetje Android Inc. Poslovno združenje
so ustanovili oziroma predstavili javnosti 5. novembra 2007, s prizadevanjem skupnega
9
razvoja odprtih standardov na področju telefonije in ostalih prenosnih naprav, saj poslovno
združenje teži k razvoju inovacij na področju mobilne telefonije in prenosnih naprav, prav
tako pa želi te telefone približati uporabnikom z vedno cenejšimi in boljšimi pametnimi
telefoni ter prenosnimi napravami.
Prednost uporabe platforme Android je v tem, da je odprtokodna, kar omogoča cenejše in
lažje razvijanje programov. Precejšnjo prednost občutijo tudi uporabniki, saj so programi
za ta operacijski sistem večinoma brezplačni in dosegljivi prek spletne aplikacije Google
Play (prvotno Android Market), ki vsebuje že več kot 500.000 aplikacij. Poleg te je še
veliko drugih strani, s katerih je mogoče prenašati aplikacije za operacijski sistem Android.
Vse to omogoča cenejši in lažji razvoj pametnih telefonov (proizvajalcem ni treba več
razvijati operacijskih sistemov, lahko pa razvijajo posamezne komponente sistema).
Operacijski sistem Android je enostaven, odziven, omogoča večopravilnost in se
samodejno sinhronizira z Googlovimi storitvami [4].
Imena različic so poimenovana po sladicah, ki si sledijo po abecednem redu. Trenutno je
uradna najnovejša različica 4.0.3 (marec 2012). Njihove pomembnejše izboljšave smo
prikazali v tabeli 2.2 [22 in 23] V pripravi pa je tudi nova različica 5.0 z imenom Jelly Bean,
ki naj bi izšla jeseni 2012. Med novostmi, ki naj bi bile vgrajene v novi različici, se
omenjajo:
– raziskovalec (angl. File Manager): za organizacijo datotek,
– spletni brskalnik Google Chrome: trenutno deluje kot samostojna aplikacija,
– izboljšana učinkovitost baterij in nadzor nad porabo energije [24].
RAZLIČICA
Android
IME
API nivo
DATUM
IZIDA
NOVE POMEMBNEJŠE FUNKCIJE
1.0/1.1 1/2 9. 2. 2009 – budilka, kamera, računalo, glasba, slike, – preskusna različica uporabniškega vmesnika, – pregledovalnik za internet, e-pošta, – SMS, kontakti, zemljevidi (StreetView).
1.5
popravek
Cupcake
3
maj 2009 – dodajanje medijskih datotek na internet, – dodana večjezična podpora, – povezava Bluetooth, – zaslonske animacije, večzaslonska podpora, – pospeševalnik (angl. Accelometer) za menjavanje
aplikacij, – zaslonska (angl. On-screen) tipkovnica, – stereo podpora Bluetooth.
1.6
popravek
Donut
4
15. 9. 2009 – izboljšana podpora za razvijalce (SDK, AVD), – nov Android Market.
10
2.0/2.1
popravek
Eclair
7
26. 10. 2009 – hitrejši in bolj odzivni operacijski sistem, – novi uporabniški vmesniki, – Bluetooth 2.1.
2.2
popravek
Froyo
8
– nameščanje programov na spominsko kartico, – vizualno popravljen in spremenjen uporabniški
vmesnik, – spremenjen Android Market z možnostjo samodejne
posodobitve aplikacij.
2.3
popravek
Gingerbread
9 in 10
6. 12. 2010 – novi senzorji (giroskop, barometer), – orodja za kopiranje in lepljenje datotek, – podpora za širše ločljivosti zaslona (XVGA in večji), – VoIP, – komunikacija v bližnjem polju (angl. Near Field
Communication) za prenos vsebin med dvema napravama.
3.0–3.2
prenovljen OS
Honeycomb
11–13
začetek 2011 – izboljšan za naprave z večjimi zasloni (tablet), – nova virtualna in holografska podoba uporabniškega
vmesnika, – izboljšana 2D- in 3D-grafika, – bogata večpredstavnost, – sistemsko odlagališče (angl. ClipBoard) za kopiranje
vsebin (copy-paste), – večjedrne procesorske arhitekture, – USB-podpora.
4.0–4.03
popravek
Ice cream
sandwich
14 in 15
2011/2012
– izboljšana večopravilnost, – izboljšan besedilni vnos in preverjanje črkovanja, – dodan nov glasovni vnos, – boljša galerija in obdelava slik, brskalnik Chrome, – inovacija sistemov za izmenjava aplikacij, kontaktov,
glasbe, videa, zdravstvenega stanja itd. (Android Beam, Wi-Fi direct, Bluetooth HDP),
– prepoznava obraza (Face Unlock) za varovanje naprav.
Tabela 2.2: Različice operacijskega sistema Android
Zgradba operacijskega sistema
Operacijski sistem Android je sestavljen iz petih elementov (slika 2.2):
– aplikacij,
– aplikacijskega ogrodja,
– knjižnic, prevajalnika in
– jedra Linux (angl. kernel).
11
Slika 2.2: Sistemska arhitektura Android (Vir: [4].)
V aplikacijskem ogrodju se nahajajo vse sistemske aplikacije, ki se uporabljajo za
koordiniranje aplikacij.
Knjižnice so temeljni del operacijskega sistema Android. Navaden uporabnik
operacijskega sistema ne more dostopati do njih. Uporabljajo jih razvijalci za dostop do
strojnih komponent naprave. Operacijski sistem Android za prevajanje kod aplikacij
uporablja sprotni prevajalnik (angl. Just In Time compiler, krajše JIT). Ta omogoča prenos
aplikacij na več različnih prenosnih naprav, in to brez ponovnega pisanja izvorne kode.
Jedro Linux vsebuje gonilnike za vso podprto strojno opremo (zaslon, tipkovnica, kamera,
modul Wi-Fi, audio modul ipd.).
2.3.2 Podatkovna zbirka SQLite
SQLite je odprtokodna relacijska podatkovna zbirka. Objavljena je bila leta 2000 in
ustvarjena zato, da aplikacijam omogoči urejanje podatkov brez nepotrebnega
upravljanja. Za razliko od večine drugih relacijskih zbirk nima ločenega strežniškega
procesa. SQLite bere in piše neposredno v običajne datoteke. Je zgoščena, ker je celotna
12
zbirka z vsemi tabelami in vključenimi lastnostmi shranjena v eni datoteki na disku, in je
lahko manjša od 350KB, kar je odvisno od uporabljene platforme in izboljšav prevajalnika.
Datotečni format zbirke je prenosljiv med različnimi platformami in ga lahko prosto
prenašamo med 32- in 64-bitnimi sistemi ali različnimi arhitekturami. Zaradi teh lastnosti je
zelo primerna za mobilne naprave, kar potrjuje uporaba te zbirke v številnih aplikacijah.
Vgrajena je tudi v operacijski sistem Android.
SQLite je vstavljena (angl. embedded) podatkovna zbirka, kar pomeni, da se ne izvaja kot
samostojen proces, ampak se sočasno izvaja znotraj aplikacije v njenem procesorskem
prostoru. Prednost obstoja podatkovnega strežnika znotraj aplikacije je v tem, da ni
potrebna nobena dodatna omrežna konfiguracija ali upravljanje. Odjemalec in strežnik se
izvajata sočasno v istem procesu, kar zmanjša upravljanje mrežnih klicev, poenostavi
upravljanje zbirke in olajša izvajanje aplikacije. Slika 2.3 kaže sinergijo SQLite z različnimi
procesi.
Slika 2.3: SQLite, vstavljena v gostujoče procese (Vir: [25].)
SQLite ima elegantno, modularno arhitekturo, ki uporablja nekatere precej edinstvene
pristope k upravljanju relacijskih podatkovnih zbirk. Sestavljena je iz osmih ločenih
modulov v skupinah znotraj treh glavnih podsistemov (slika 2.4).
13
Slika 2.4: Arhitektura SQLite (Vir: [25].)
Ti moduli razdelijo povpraševalne procese v diskretne naloge, ki se izvajajo kot tekoči
trak. Vrh sklada sestavi ukaz, sredinski del ga izvede, spodnji del pa obravnava
skladiščenje in povezavo z operacijskim sistemom. Kljub svoji majhnosti podpira velik del
nabora znakov ANSI SQL92. Konfiguracija in upravljanje zbirke sta preprosti in minimalni.
Deluje v vsakem okolju, njegova prenosljivost med platformami pa omogoča uporabo
zbirke, ustvarjene npr. v sistemu SUN, na računalnikih Apple Macintosh, v sistemih
Windows ali celo na mobilnih telefonih brez pretvorb in sprememb.
Modularna arhitektura omogoča inovativen pristop in enostavnost kode. Je prilagodljiva in
prosto dostopna za uporabo ter omogoča vstavljanje zunanjih zbirk. Delovanje zbirke je v
primerjavi z ostalimi zbirkami načeloma hitro in odzivno. Primerna je za uporabo v majhnih
in srednje velikih aplikacijah. Njene omejitve se kažejo v sočasnosti branja zbirke in
pisanja vanjo. Dovoljuje hkratno branje več bralcev in samo enega pisatelja. Pisatelj
izključno zaklene zbirko pri pisanju in takrat nihče ne more brati podatkov. Težava se
pojavi pri pogostem pisanju v zbirko, pri čemer lahko pride do zastoja.
Prav tako je zbirka omejena glede na velikost. Kljub temu da lahko obsega do 2 TB, je
lahko glavni pomnilnik (RAM), potreben za izvedbo transakcij, kritičen. Za vsak MB zbirke
je rezerviranih 256 bajtov za izvedbo (npr. za zbirko, veliko 100 GB, je rezerviranih
25 MB), kar je lahko za velike zbirke pomemben dejavnik. Praktična omejitev velikosti
zbirke je nekaj 10 GB. Pri skupni rabi zbirke SQLite prek omrežnih datotečnih sistemov
lahko latenca teh sistemov povzroči težave v odzivnosti podatkovne zbirke [25].
14
2.4 MOBILNE APLIKACIJE
Aplikacije za mobilne naprave Android so večinoma napisane v programskem jeziku Java.
Poleg Jave lahko za izdelavo aplikacij uporabljamo tudi jezik XML. Izvajalne aplikacije
sestavimo v paket Android s končnico .apk.
Vsaka aplikacija se zažene v svojem procesu. Operacijski sistem ustvari proces šele, ko
mu pošljemo zahtevo za izvajanje aplikacije. Ko z izvajanjem aplikacije zaključimo, se
proces zapre. To omogoča uporabo pomnilnika tudi drugim aplikacijam. Vsak posamezen
proces se prevede posebej, kar omogoči osamitev aplikacij, da delujejo neodvisno druga
od druge. Vsaki aplikaciji se ob zagonu dodeli identifikacijska koda (angl. User identifier,
krajše UID), ki se ji nato dodajo pravice za uporabo strojne opreme [26].
Gradniki aplikacij Android so naslednji:
– aktivnosti (angl. Activities): aplikacija Android je zbirka nalog oziroma aktivnosti.
Vsaka aktivnost je odgovorna za shranjevanje in obnovitev stanja;
– namere (angl. Intents): asinhroni sporočilni mehanizem, ki ga lahko zahteva
določena aktivnost (npr. pošlji e-sporočilo);
– storitve (angl. Services): tečejo v ozadju brez interakcije z uporabnikom (npr.
predvajalnik glasbe);
– ponudnik vsebine (angl. Content Provider): namenjen porazdelitvi globalnih
podatkov med aplikacijami (npr. imenik).
Celotni življenjski cikel aktivnosti (slika 2.5) se začne s klicem funkcije onCreate(Bundle),
pri čemer se sprožijo vse potrebne globalne spremenljivke in komponente. Končajo se s
klicem onDestroy(), ki sprosti vse zasedene vire in ustavi niti.
15
Slika 2.5: Življenjski cikel aplikacije Android (Vir: [26].)
Vidni čas aplikacije, v katerem vidimo njeno delovanje, se začne s funkcijo onStart() in
konča s funkcijo onStop(). V tem času uporabnik vidi aktivnost na zaslonu, čeprav lahko
teče v ozadju in ne komunicira z uporabnikom. Med tema metodama se vzdržujejo
sredstva, ki so potrebna za delovanje aktivnosti. Metodi se lahko kličeta večkrat, ko
aktivnost postane vidna ali skrita za uporabnika. Aktivnost po klicu funkcije onResume()
preide v ospredje pred ostalimi aplikacijami in omogoči komunikacijo z uporabnikom,
dokler ne gre v čakajoče stanje po klicu funkcije onPaused(). Aktivnost lahko večkrat
menja stanje [26].
16
Vire aplikacij Android, ki jih obravnava prevajalnik virov (ang. resource compiler), so
naslednje:
– lokalizirani nizi znakov,
– bitne zbirke (bitmap) in
– ostale nekodirane informacije (v obliki AVI, PDF ipd.).
Viri se nahajajo v naslednjih mapah projekta:
– res/drawable: grafične datoteke PNG, JPG (slike ozadja, gumbov ipd.),
– res/layout: datoteke XML (opis zunanje podobe zaslona aktivnosti),
– res/values: datoteke .XML (besedilni opisi, ki jih lahko prevedemo v ustrezen jezik
za prikaz v aplikaciji).
Prevedeni in izboljšani viri tvorijo razred R, ki ga aplikacija uporablja pri izvajanju.
Varnost aplikacij je urejena tako, da:
– vsaka aplikacija teče v svojem procesu,
– ima vsaka aplikacija pridružen določen UID,
– je dostop do kritičnih operacij omejen,
– dostope reguliramo v datoteki AndroidManifest.xml [27].
Navajamo nekaj primerov
• INTERNET: dostop do spletnega omrežja,
• READ_CONTACTS: dostop do branja imenika,
• WRITE_CONTACTS: dostop do pisanja v imenik,
• ACCESS_COARSE_LOCATION: dostop do mest z brezžično povezavo,
• ACCESS_FINE_LOCATION: dostop do mest GPS,
• CHANGE_WIFI_STATE: dovoljeno spreminjanje stanja brezžične povezave.
2.4.1 Razvoj mobilnih aplikacij
Za razvoj mobilne aplikacije smo na računalnik namestili naslednja orodja:
– Java JDK 6 (angl. Java Development ToolKit): okolje, namenjeno razvoju
programov v programskem jeziku Java. Vsebuje Java Run Time Environment
(vmesnik za zagon programov Java), knjižnice, prevajalnik in potrebne datoteke za
pisanje aplikacij;
– Eclipse SDK 3.6.2: razvojno okolje za pisanje programov (slika 2.6);
17
Slika 2.6: Razvojno okolje Eclipse
– Android SDK (angl. Software Development Kit): celovit paket razvijalskih orodij za
platforme Android. Vsebuje knjižnice, SQLite, razhroščevalnik, emulator za
mobilnike, dokumentacijo, primere in navodila za razvoj aplikacij;
– vtičnik za Eclipse ADT (angl. Android Development Tools): vmesnik za okolje
Eclipse, ki ustvari zmogljivo integrirano okolje, v katerem lahko razvijamo aplikacije
Android. V tem okolju ustvarjamo nove projekte, izdelujemo uporabniške
vmesnike, urejamo datoteke XML, razhroščamo programe itd.;
– gonilnik za mobilni telefon Samsung (preskusno okolje);
– SQLite Database Browser v2.0: raziskovalec za pregledovanje vsebine zbirke v
operacijskem sistemu Android;
– MySQL WorkBench v5.2: orodje za preskušanje povezave do Moodle zbirke in
pregled ter ažuriranje vsebine tabel zbirke;
– Moodle 2.0: za namestitev preskusnega strežnika Moodle smo na računalnik
prenesli najnovejšo različico Moodle 2.0 iz spletne strani razvijalca;
– podatkovno zbirko SQLite;
– MS Visio 2007: orodje za risanje skic in diagramov;
– digitalni fotoaparat Canon.
18
2.5 SPLETNE STORITVE
Mobilne aplikacije uporabljajo spletne storitve (angl. Web Service) za prenos podatkov
med odjemalcem in strežnikom ter so ena od proizvodov storitveno usmerjene arhitekture
(angl. Service Oriented Architecture, krajše SOA). Ta je zdaj precej razširjena in jo zato
podrobneje obravnavamo v nadaljevanju tega poglavja.
2.5.1 Storitveno usmerjena arhitektura
Storitveno usmerjena arhitektura temelji na ločevanju poslov v module ali storitve, ki
komunicirajo med seboj. Sestavljajo jo naslednji protokoli:
– protokol za dostop do preprostih objektov (angl. Simple Object Access Protocol,
krajše SOAP),
– razširljivi označevalni jezik (angl. Extensible Markup Language, krajše XML),
– protokol za iskanje storitev prek spleta (angl. Universal, Discovery and Integration,
krajše UDDI) in
– opisni jezik spletnih storitev (angl. Web Services Description Language, krajše
WSDL).
SOAP je protokol za izmenjavo sporočil spletnih storitev (angl. Web Servisov) v
decentraliziranem, porazdeljenem okolju, ki je zasnovan v jeziku XML in pogosto
uporabljen v spletnih storitvah. Spada v aplikacijsko raven spletnega nabora protokolov.
Tehnologijo, ki omogoča uspešno izvajanje oddaljenih metod (programska koda) prek
spleta, imenujemo klic za oddaljeni postopek (angl. Remote Procedure Call, krajše RPC).
Takšnih tehnologij je več in SOAP je ena od tehnologij RPC. Zasnovan je tako, da z
uporabo protokola HTTP in standarda XML omogoča uspešno izvajanje take kode z
minimalnim naborom omejitev prek mreže. SOAP lahko uporabljamo tudi prek drugih
protokolov za prenos (SMTP, TCP in HTTPS), saj omogoča izvajanje metod med izvorom
in ponorom prek protokola HTTP. SOAP je sestavljen iz treh delov:
– ovojnice, ki določa okvir (framework) za opisovanje tega, kar je v sporočilu, in
določitev, kdo naj upravlja z njim in ali je to izbirno ali pomembno,
– množice pravil kodiranja, ki jih opredeli mehanizem, ki se lahko uporabi za
izmenjavo primerkov podatkovnih tipov, ki jih določajo aplikacije, in
– dogovora za predstavitev oddaljenih klicev postopkov in njihovih odgovorov [28 in
29].
19
XML je razširljivi označevalni jezik, ki ga pogosto srečujemo na spletu. Gre za preprosti
računalniški jezik, podoben označevalnemu jeziku HTML, ki omogoča format za
opisovanje strukturiranih podatkov ali arhitekturo za prenos podatkov in njihovo izmenjavo
med več omrežji. XML spreminja mnogo vidikov računalništva, zlasti na področju
komunikacije med aplikacijami in strežniki. Prav tako pa ga je mogoče razširiti, saj ponuja
možnost, da si lahko sami izmislimo imena oznak (angl. TAG), kot je npr. <quiz> na sliki
2.7.
Slika 2.7: Primer zgradbe XML (Vir: [30].)
Zelo je uporaben za komunikacije, saj ima zelo preprosto in pregledno zgradbo. XML je
sestavljen iz treh delov:
– podatkovnega: vanj shranimo podatke v določeni obliki z želenimi oznakami,
– deklarativnega: skrbi za to, da lahko pri dodajanju novih podatkov vidimo, kaj
označuje določena oznaka,
– predstavitvenega: z njim oblikujemo izpis podatkov [30].
UDDI je neodvisni protokol za opisovanje, iskanje in integracijo poslovnih storitev prek
omrežja. Prvotno je bil predlagan kot jedro standarda spletnih storitev. Zasnovan je tako,
da posluša sporočila SOAP in jim s potrebnimi protokoli in obliko, opisano v dokumentih
WSDL, zagotovi dostop do spletnih storitev, navedenih v njegovem imeniku [31].
WSDL je jezik za opis spletnih storitev, ki določa, kako kličemo storitev, kakšne parametre
ta pričakuje in kakšne podatkovne strukture vrne kot rezultat [32].
20
Slika 2.8: Pregled zahtev SOA (Vir: [29].)
Slika 2.8 kaže več odjemalcev, ki zahtevajo odziv storitev. Ponudniki storitev so lahko
hkrati prosilci in izvajalci storitev. To omogoča združevanje več storitev, s katerimi lahko,
če so združene, rešimo zahtevnejše naloge.
Arhitektura SOA temelji na načelu ločevanja opravil, ločenih kot moduli storitev, ki med
seboj komunicirajo s sporočili. Platforme SOA podpirajo samo nekatere od sporočilnih
protokolov. Ti protokoli so naslednji:
– protokol za prenos hiperteksta (angl. HyperText Transfer Protocol, krajše HTTP),
– objektni zapis JavaScript (angl. JavaScript Object Notation, krajše JSON) in
– predstavitveni prenos stanj (angl. Representational State Transfer, krajše REST)
HTTP je komunikacijski protokol med odjemalci in strežniki. Odjemalec HTTP, kot je na
primer spletni brskalnik, navadno začne zahtevo tako, da skozi določena vrata (angl. Port)
z oddaljenim gostiteljem vzpostavi povezavo TCP. Privzeta številka vrat za protokol HTTP
je 80. Strežnik HTTP na privzetih vratih „posluša“, ali je prišlo do novega zahtevka:
– CONNECT: zahtevek za vzpostavitev tunela SSL,
– DELETE: zahtevek za izbris izbrane datoteke s strežnika,
– GET: zahtevek za pridobitev vsebine datoteke,
– HEAD: zahtevek za pridobitev metaoznak,
– OPTIONS: zahtevek, ki vrne seznam zahtevkov HTTP, ki so na voljo na strežniku,
– POST: zahtevek za pridobitev vsebine datoteke, ki vsebuje informacije za strežnik,
21
– PUT: v zahtevku se strežniku sporoči, da je treba nanj prenesti določeno datoteko,
ali
– TRACE: zahtevek, ki od strežnika zahteva, da mu vrne zahtevek (tako lahko
ugotovimo, ali so vmesni strežniki spremenili zahtevek).
Zahtevku sledi sporočilo, kot večnamenska razširitev za elektronsko pošto (angl.
Multipurpose Internet Mail Extensions, krajše MIME), ki vsebuje sklop obveznih in
neobveznih podatkov za obveščanje strežnika (podatek o gostitelju „Host“ je na primer
obvezen), čemur lahko sledi neobvezno polje naključnih podatkov. Ko strežnik prejme tak
zahtevek in morebitno sporočilo, na to odgovori na primer z „200 OK“ in lastnim
sporočilom, katerega vsebina je na primer zahtevana datoteka, sporočilo o napaki ali
kakšna druga informacija.
Zavarovana različica HTTP oziroma varni protokol za prenos hiperteksta (angl. HyperText
Transfer Protocol Secure, krajše HTTPS) uporablja sloj varnih vtičnic (angl. Secure
Socket Layer, krajše SSL) in varnost transportnega sloja (angl. Transport Layer Security,
krajše TLS), da zakodira promet in ga tako zaščiti pred vmesnimi opazovalci. Ta
komunikacijski protokol navadno uporablja privzeto številko vrat 443 [33].
JSON je preprosti jezikovno neodvisni besedilni format za izmenjavo podatkov, ki ga je
lahko brati in pisati, zato je uporabljan v mnogo programskih jezikih. Zasnovan je v
objektnem zapisu JavaScript in narejen v dveh strukturah, tj. kot:
– zbirka parov imen/vrednosti: v različnih jezikih je realiziran kot objekt, zapis,
struktura, imenik, zgoščevalna tabela, seznam ali niz ter
– urejen seznam vrednosti: niz, vektor, seznam ali sekvenca.
Na sliki 2.9 je prikazana zgradba JSON, ki jo sestavljajo objekti, nizi in vrednosti:
– objekt je neurejena zbirka parov imen/vrednosti. Začne se z levim zavitim
oklepajem ({) in konča z desnim (}). Vsakemu imenu sledi dvopičje in njegova
vrednost, pari pa so med seboj ločeni z vejico;
– niz je urejena zbirka vrednosti, ki se začne z levim oglatim oklepajem ([) in konča z
desnim (]). Vrednosti so med seboj ločene z vejico;
22
– vrednost je lahko niz med dvojnim narekovajem, število, logična vrednost, objekt
ali niz. Te strukture se lahko gnezdijo [34].
Platforma Android ima vgrajeno podporo JSON, ki omogoča pretvorbo objektov Java v
objekte JSON in obratno [34]
Arhitektura REST [26] je bila razvita na osnovi protokola HTTP/1.0 in uporablja njegove
značilnosti. Sestoji iz odjemalca in strežnika. Odjemalec odda zahtevo strežniku, ki
zahtevo obdela in vrne ustrezen odgovor [35]
2.5.2 Spletna storitev Moodle
Modularno objektno usmerjeno dinamično učno okolje (angl. Modular Object-Oriented
Dynamic Learning Environment, krajše Moodle) je odprtokodni učni sistem (angl. Course
Management System, krajše CMS), ki se uporablja za različna spletna izobraževanja
(univerze, šole, podjetja, individualno poučevanje ipd.).
Slika 2.9: Format JSON (Vir: [34].)
23
Moodle je leta 1999 (prvi prototip) ustvaril Martin Dougiamas, računalniški znanstvenik in
izobraževalec, ki se je na univerzi v Perthu (Avstralija) ukvarjal s podporo študijskega
sistema. Napisan je v jeziku PHP. Kot izvajalno okolje potrebuje spletni strežnik Apache,
njegove vsebine pa so tako kot spletne storitve dostopne prek odjemalcev HTML.
Osnovna struktura sistema Moodle je organizirana okrog tečajev, ki so osnovne strani ali
področja znotraj sistema, v katerem učitelji svojim študentom predstavljajo različne učne
vsebine. Tečaji lahko vsebujejo vsebine za leta učenja, samostojne seje ali ustrezne
kombinacije, kar je odvisno od učiteljev ali ustanove, uporablja pa jih lahko samo en učitelj
ali skupina učiteljev. Razdeljeni so v kategorije, ki lahko vsebujejo različna področja. Na
primer v kategorijo „Znanost“ so lahko vključeni tečaji iz biologije, kemije in fizike [36].
V tečaje lahko vključujemo različne aktivnosti, dodajamo učne vsebine, določamo vloge
posameznikom, dodajamo bloke na straneh, kar je odvisno od namena tečaja in vloge
uporabnika [36 in 37]. Aktivnosti, ki jih lahko določimo znotraj strani ali predmeta, so
naslednje:
– naloga,
– klepet,
– podatkovna zbirka,
– imenik,
– forum,
– slovar,
– kviz,
– anketa,
– delavnica,
– osebe.
Vloge, ki jih določi skrbnik (administrator) strani, so lahko:
– skrbnik: lahko dostopa do predmetov in jih spreminja,
– izvajalec: lahko počne kar koli v predmetu, spremlja aktivnosti in ocenjuje
udeležence.
– izvajalec brez pravic urejanja: lahko poučuje in ocenjuje udeležence pri predmetu,
ne more pa spreminjati aktivnosti.
– udeleženec: nima posebnih pravic pri predmetu. V glavnem lahko samo sodeluje
in dostopa do učnih vsebin.
24
Nekateri bloki, ki jih lahko vključimo, so naslednji:
– aktivnosti,
– spletni dnevniki,
– koledar,
– komentarji,
– dogodki,
– seznam predmetov,
– navigacija,
– novice,
– družabne aktivnosti,
– zaznamki,
– YouTube.
25
3 MOBILNI OCENJEVALEC
Mobilni ocenjevalec je aplikacija, postavljena na arhitekturo odjemalca/strežnika. Pri tem
je naloga strežnika zagotoviti spletne storitve, do katerih lahko dostopamo z odjemalcem
HTTP, in dostop do podatkovne zbirke. Odjemalec poskrbi za uporabniški vmesnik, s
katerim komunicira z uporabnikom, in funkcije za dostop do spletnih storitev strežnika. V
nadaljevanju poglavja najprej opisujemo zastavljene zahteve, nato predstavimo zamisel
za rešitev in na koncu to rešitev še opišemo.
3.1 OPIS ZAHTEVE
Potrebujemo aplikacijo, ki deluje na mobilnem telefonu z operacijskim sistemom Android
in se uporablja za ocenjevanje študentov učnega sistema Moodle na terenu (v učilnici, na
vajah, doma, ipd.) v povezanem (povezan z omrežjem sistema Moodle) ali nepovezanem
(ni povezave s sistemom Moodle) načinu. Med telefonom in strežnikom Moodle
prenašamo podatke o študentih, nalogah in njihovih ocenah prek dosegljivega
brezžičnega omrežja.
Osnovne zahteve funkcionalnosti aplikacije so:
– prenos podatkov o študentih in nalogah s strežnika Moodle v lokalno zbirko
telefona,
– omogočiti ocenjevalcu izbiro sedanjih študentov in dodajanje podatkov o novih (po
potrebi),
– omogočiti ocenjevalcu izbiro prenesenih nalog,
– vpisovanje ocen študentov,
– lokalno shranjevanje podatkov v zbirko na telefonu,
– prenos ocen na strežnik Moodle,
– reševanje morebitnih konfliktov (npr. podvojene ocene za določeno nalogo).
Poleg naštetih zahtev je treba omogočiti še nastavitev osnovnih parametrov za delovanje
aplikacije (npr. naslov strežnika Moodle in podatki o ocenjevalcu).
26
3.2 KONCEPT REŠITVE
Koncept rešitve, ki jo opisujemo v tem poglavju, predstavlja uporabljeno arhitekturo
aplikacije in vrste funkcionalnosti odjemalca.
3.2.1 Pregled arhitekture
Arhitektura aplikacije, kot je prikazana slika 3.1, je sestavljena iz odjemalca in strežnika s
podatkovno zbirko. Komunikacija med odjemalcem in spletnimi storitvami na strežniku
poteka prek brezžičnega omrežja po protokolu REST.
omrežje Wifi
JSON
odjemalec strežnik HTTP
podatki
spletne storitve
SQL
HTTP / REST
Slika 3.1: Arhitektura odjemalec/strežnik
Prenos podatkov od strežnika do odjemalca poteka tako, da odjemalec z oddaljenim
strežnikom najprej vzpostavi povezavo TCP prek določenih vrat (privzeto 80), na katerih
strežnik posluša, če prihaja do zahtev. Ko je povezava vzpostavljena, odjemalec pošlje
zahtevo HTTP POST na spletno storitev strežnika, ta pa zahtevo posreduje podatkovni
zbirki strežnika kot poizvedbo SQL. Rezultat poizvedbe spletna storitev pretvori v obliko
JSON in ga kot niz pošlje odjemalcu. Ta ga pretvori v ustrezno obliko in vpiše podatke v
lokalno podatkovno zbirko. Prenos ponovimo za vsako od tabel v zbirki posebej in poteka
po naslednjih korakih:
– pripravimo podatke za povezavo:
• vpišemo naslov strežnika,
• oblikujemo ukazni niz za povezavo v obliki „URL=protokol+naslov
strežnika+pot do spletne storitve+uporabnik+format“;
– preverimo povezavo, tj.:
• dostopnost brezžičnega omrežja in vzpostavitev povezave,
• dosegljivost strežnika (status HTTP);
27
– pošljemo zahtevo HTTP Post do spletne storitve:
• spletna storitev se poveže z zbirko strežnika ali drugače:
� pošljemo poizvedbo SQL v zbirko strežnika,
� preberemo rezultat poizvedbe,
� oblikujemo rezultat v niz formata JSON;
– sprejmemo poslane podatke od spletne storitve (HTTP Get);
– preoblikujemo sprejete podatke in jih vpišemo v lokalno zbirko.
V nasprotni smeri poteka prenos podatkov od odjemalca do strežnika tako, da odjemalec
najprej oblikuje podatke iz zbirke v format JSON, nato pošlje zahtevo HTTP Post spletni
storitvi strežnika, ki zahtevo za vpis podatkov posreduje v podatkovno zbirko strežnika kot
poizvedbo SQL.
3.2.2 Pregled funkcionalnosti
Spletna storitev „Moodle offline grader“ z debelim odjemalcem (večina podatkov se obdela
v odjemalcu) za operacijski sistem Android. Aplikacija nadomešča dosedanje ročno
zapisovanje ocen. Omogoča hitro in učinkovito ocenjevanje študentov na vajah v
povezanem in nepovezanem načinu. To pomeni, da bosta morala odjemalec in storitev
izvajati dvosmerno sinhronizacijo podatkov in olajšati reševanje konfliktov v podatkih.
Slika 3.2: Diagram uporabe
Diagram uporabe na sliki 3.2 kaže, kako smo razširili veljavni sistem Moodle. Naša
aplikacija deluje kot posrednik med sistemom in ocenjevalcem. Naloge ocenjevalca so, da
podeli oceno ter reši morebitne konflikte v ocenah, ki se pojavijo, če je ocena naloge za
določenega študenta že vpisana v sistem Moodle, do česar bo po našem mnenju prihajalo
zelo redko. Odjemalec v operacijskem sistemu Android shranjuje trenutne ocene, s
podatki iz sistema Moodle
je bil rešen, lahko odjemalec uveljavi oceno
ko bo vzpostavljena povezava
Slika 3.3:
Diagram na sliki 3.3 kaže
ocene. Vsaka naloga in študent predstavljata dvojico, ki
Dokler je ocena shranjena
prenosu podatkov se vse ocene (tudi stanje neocenjen
stanjem na strežniku. Če je usklajevanje uspešno,
Pri konfliktu pa se ocena postavi
lahko poteka tako, da se ocen
ocene je prav tako lahko neuspešno. V tem primeru ocena ostane v vrsti konflikt
Podatkovno zbirko na strežniku
medsebojnih povezav. Za d
tabele:
– mdl_user: s podatki– mdl_assignments: z nalogami– mdl_assignment_submission
pa bo reševal morebitne konflikte v ocenah.
lahko odjemalec uveljavi oceno v sistemu Moodle takoj, ko bo
tavljena povezava [38].
: Diagram prehajanja stanj ocene v odjemalcu
prehajanje stanj (usklajeno, neusklajeno, konflikt)
. Vsaka naloga in študent predstavljata dvojico, ki prepozna posamezno oceno.
shranjena v odjemalcu, je neusklajena s stanjem na strežniku.
vse ocene (tudi stanje neocenjeno se šteje za ocen
je usklajevanje uspešno, se ocena odstrani iz vrste
a postavi v vrsto ocen, ki jih mora ocenjevalec uskladiti ro
ocena zavrže, vsili ali pusti v čakalni vrsti konfliktov.
lahko neuspešno. V tem primeru ocena ostane v vrsti konflikt
na strežniku Moodle sestavlja množica tabel (okrog
. Za delovanje naše mobilne aplikacije potrebujemo
s podatki o udeležencih (študentih), z nalogami in
mdl_assignment_submission: z vpisanimi ocenami.
28
bo reševal morebitne konflikte v ocenah. Če konflikta ni ali
ko bo to mogoče in
odjemalcu
(usklajeno, neusklajeno, konflikt) posamezne
posamezno oceno.
je neusklajena s stanjem na strežniku. Ob
oceno) usklajujejo s
odstrani iz vrste za obdelavo.
v vrsto ocen, ki jih mora ocenjevalec uskladiti ročno. To
akalni vrsti konfliktov. Vsiljevanje
lahko neuspešno. V tem primeru ocena ostane v vrsti konfliktov [34].
okrog 200) in njihovih
ujemo samo naslednje
29
Slika 3.4: Moodle tabele
Slika 3.4 kaže tabele strežnika Moodle, ki jih uporabljamo za prenos podatkov v lokalno
zbirko SQLite na mobilni napravi prek spletnih storitev:
• ws_read_us: vrne podatke o študentih iz tabele mdl_user,
• ws_read_as: vrne podatke o nalogah iz tabele mdl_assignment,
• ws_read_sb: vrne podatke o ocenjenih nalogah študentov na strežniku iz tabele
mdl_assignment_submission,
• ws_write: vpiše naše ocene v tabelo mdl_assignment_submission in
• ws_delete_s: izbriše izbrane ocene iz tabele mdl_assignment_submission.
Puščice kažejo smer pretoka podatkov (branje ali pisanje). Zase prenašamo vsebine
samo določenih polj tabel iz zbirke sistema Moodle v lokalno zbirko in obratno.
30
3.3 RAZVOJ REŠITVE
V tem poglavju predstavljamo rešitev, ki smo jo uporabili pri razvoju naše aplikacije, ter
zgradbo in opis delovanja posameznih modulov.
3.3.1 Logični pregled
Aplikacija mobilni ocenjevalec Moodle je zgrajena modularno, kot kaže slika 3.5,
sestavljajo pa jo naslednji moduli, ki jih bomo podrobneje opisali v nadaljevanju poglavja:
– uporabniški vmesnik, sestavljen iz več aktivnosti, ki omogočajo:
• prijavo v aplikacijo: aktivnost Login,
• izbiro posameznih aktivnosti: aktivnost Menu,
• vnos naslova strežnika in izbiro ocenjevalca: aktivnost Setup,
• izbiro nalog, študentov in vnos ocen: aktivnost Grade,
• prenos podatkov: aktivnost Data in
• reševanje konfliktov: aktivnost Conflict;
– podatkovna zbirka, namenjena lokalnemu shranjevanje podatkov o študentih,
nalogah, ocenah in nastavitvah, ter
– komunikacijski modul, ki omogoča povezovanje do strežnika Moodle in prenos
podatkov med lokalno zbirko in strežnikom prek brezžičnega omrežja.
Slika 3.5: Zgradba odjemalca
31
3.3.2 Uporabniški vmesnik
Uporabniški vmesnik naše aplikacije je sestavljen iz več aktivnosti (posamezni sklopi
aplikacije, ki opravljajo določeno funkcijo), kot kaže slika 3.6, ki jih bomo opisali v
nadaljevanju.
Slika 3.6: Povezava aktivnosti
Vsaka od teh aktivnosti je namenjena izvajanju določenih opravil, kot so:
– LOGIN: za prijavo v aplikacijo,
– MENU: za izbiro posameznih aktivnosti,
– SETUP: za vnos nastavitev strežnika, izbiro ocenjevalca, dodajanje novih
študentov ali brisanje določenih tabel,
– GRADE: za vnos ocen študentov,
– DATA: za prenos podatkov na strežnik Moodle in z njega,
– CONFLICT: za reševanje konfliktov ocen.
Podatki, ki jih z uporabniškim vmesnikom uporabljamo in obdelujemo, se zapisujejo in
posodabljajo v lokalni podatkovni zbirki MoodleDB, ki jo podrobneje predstavljamo v
nadaljevanju in je vgrajena v aplikacijo. Prav tako so vse slike ozadja in gumbov, njihova
velikost in razporeditev v uporabniškem vmesniku, vgrajene v aplikacijo in določene v
ustreznih datotekah XML za vsako aktivnost posebej. Za besedilne opise vnosnih polj in
napisov skrbi datoteka strings.xml, ki se lahko prevede v ustrezen jezik, ki ga naprava, na
kateri uporabljamo aplikacijo, podpira in ki ga izberemo na sami napravi. Ta različica
aplikacije omogoča nastavitev angleškega ali slovenskega jezika za uporabniški vmesnik.
32
3.3.2.1 Login
Pri zagonu aplikacije začnemo v aktivnosti LOGIN, ki zahteva veljavno uporabniško ime in
geslo. Lahko uporabimo programsko določeno (običajno ob prvi prijavi) ali pa veljavno
geslo trenutnega ocenjevalca, ki je vpisano v sistem Moodle.
Slika 3.7: Diagram poteka aktivnosti LOGIN
Diagram na sliki 3.7 kaže potek dogodkov ob prijavi. Ko vpišemo uporabniško ime in geslo
ter pritisnemo gumb za prijavo, se iz lokalne zbirke s funkcijo readData() preberejo podatki
ocenjevalca iz tabele TEACHER in podatki uporabnika iz tabele STUDENTS. Vneseni
podatki se primerjajo s prebranimi, in če ne ustrezajo, se prijava zavrne (prikažemo
obvestilo), pri čemer se vrnemo na začetek. Pri uspešni prijavi pa se odpre aktivnost
MENU in tako lahko začnemo uporabljati aplikacijo.
3.3.2.2 Menu
Aktivnost MENU se prikaže po uspešni prijavi v aplikacijo in je namenjena izbiranju
posameznih aktivnosti. Na diagramu (slika 3.8) so prikazane funkcije aktivnosti, ki se
izvajajo ob določenih dogodkih.
33
Slika 3.8: Diagram poteka aktivnosti MENU
Pri nastanku aktivnosti, ki se začne s funkcijo onCreate(), najprej s funkcijo getOCid() iz
lokalne zbirke MoodleDB preberemo identifikacijsko oznako (id) ocenjevalca iz tabele
TEACHER, s funkcijo getConfNum() pa preberemo število konfliktov iz tabele
CONFLICTS. Če ocenjevalec ne obstaja (npr. ko prvič naložimo aplikacijo ali še nismo
prenesli seznama uporabnikov s strežnika), onemogočimo prikaz gumba za ocenjevanje.
Enako velja za gumb konflikti, kadar nimamo nobenega konflikta ocen ali kadar ocen
nismo prenesli na strežnik.
Ostale gumbe prikažemo in lahko s klikom nanje (funkcija onClick()) sprožimo zagon
aktivnosti SETUP (za vnos nastavitev strežnika), DATA (za prenos podatkov) ali aktivnost
LOGIN za izhod iz aplikacije. Poleg teh je še gumb za informacije, s katerim ob kliku nanj
iz lokalne datoteke strings.xml preberemo informacije o aplikaciji (ime, različico, avtorja in
datum izdelave) in jih prikažemo na zaslonu.
3.3.2.3 Nastavitve
Aktivnost omogoča vnos in izbiro ocenjevalca, dodajanje študenta in nastavitev naslova
strežnika. Mogoči scenariji so:
– obvezen vnos ocenjevalca ob prvi uporabi aplikacije,
– zamenjava ocenjevalca (npr. če isti mobilni telefon uporablja več ocenjevalcev, v
meniju izberemo drugega),
34
– vnos študenta, ki ga nimamo v zbirki in bo pristopil k izpitu,
– sprememba naslova IP strežnika Moodle.
Diagram na sliki 3.9 kaže pomembnejše funkcije in pretok podatkov v uporabniškem
vmesniku.
Slika 3.9: Diagram poteka aktivnosti SETUP
Pri zagonu aktivnosti iz lokalne datoteke strings.xml najprej preberemo besedilne zapise,
ki jih uporabljamo v glavnem izbirnem meniju SpinnerSetup, s funkcijo getDataST() pa
preberemo podatke o študentih iz tabele STUDENTS, ki jih kasneje prikažemo v izbirnem
meniju SpinnerSetUser. Glede na izbiro glavnega menija se ustrezno spreminjajo opisi
vnosnih polj, ki jih preberemo iz datoteke strings.xml, in vsebina vnosnih polj ocenjevalca,
ki jih preberemo iz tabel TEACHER, ter tistih od strežnika, ki jih preberemo iz tabele DB.
Te podatke lahko spreminjamo ali jih pustimo nespremenjene.
Izbrani ali vneseni podatki se s pritiskom na gumb „Shrani“ shranijo v izbrano tabelo v
lokalni podatkovni zbirki SQLite na telefonu:
– podatki ocenjevalca se prepišejo z vnesenimi podatki v tabelo TEACHER,
35
– podatki študenta se sočasno dodajo v tabelo STUDENTS in NEWSTUDENTS,
– podatki strežnika se prepišejo z vnesenimi podatki v tabelo DB.
Pri vnosu se preverja (dolžina niza – min. 2 znaka, razen vpisne številke – 1 znak) vnos
praznih polj, pri čemer vpis v zbirko ni mogoč, dokler niso izpolnjena vsa polja, ker so vsi
podatki obvezni.
Gumb „Briši“ omogoča ročno brisanje vseh vnosov v poljih izbrane tabele in ga
uporabimo:
– če predamo telefon drugemu ocenjevalcu in ne želimo, da vidi naše shranjene
podatke ocenjevalca ali strežnika – izbrišemo vnose v tabeli TEACHER ali DB,
– če smo dodajali nove študente in jih ne potrebujemo več – izbrišemo vnose v
tabelo NEWSTUDENTS.
Ostalih tabel ne moremo brisati ročno, ampak se ob določenih pogojih, ki jih bomo opisali
v naslednjih aktivnostih, izbrišejo samodejno.
3.3.2.4 Ocenjevanje
Diagram na sliki 3.10 kaže funkcionalnost aktivnosti za ocenjevanje. Ob zagonu aktivnosti
najprej preberemo podatke iz tabel STUDENTS in ASSIGNMENTS, dopolnjenih pri
prenosu podatkov s strežnika Moodle, ki jih vpišemo v spustne menije spinnerST in
spinnerAS, ter identifikacijsko oznako ocenjevalca.
V spustnih menijih izberemo študenta in nalogo, ki jo ocenjujemo, poleg tega pa vnesemo
še oceno izbranega študenta in dodamo ustrezen komentar. Ko vnesene podatke
potrdimo z gumbom, s funkcijo showTime() najprej preberemo trenutni sistemski datum in
čas telefona, nato pa v funkciji writeData() preberemo še identifikacijsko oznako izbrane
naloge iz tabele ASSIGNMENTS (funkcija getidN()) in vse skupaj vpišemo v tabelo
GRADE. V pojavnem oknu prikažemo seznam ocenjenih študentov, ki jih s funkcijo
getOcenjeni() preberemo iz tabele GRADE, in število nalog, ki smo jih že ocenili (število
ocenjenih/število prijavljenih študentov × število nalog).
Slika
Ocenjevanje ni mogoče, če nismo najprej izbrali ocenjevalca v
3.3.2.5 Prenos podatkov
Je aktivnost za prenos podatkov med
na sliki 3.11. Na začetku s funkcijo getDBhost()
tabele TEACHER in naslov strežnika iz tabele DB ter preverimo
povezave ni, se aktivnost zaklju
območju znanega omrežja
samodejno povezal v omrežje,
povezani v omrežje, znotraj katerega
možnostma:
– gumb : prenos podatkov (študentov
– gumb : prenos podatkov (vpisanih ocen študentov) na strežnik.
Slika 3.10: Diagram poteka aktivnosti GRADE
če nismo najprej izbrali ocenjevalca v aktivnost
za prenos podatkov med telefonom in strežnikom Moodle, ki ga
s funkcijo getDBhost() najprej preberemo podatke ocenjevalca iz
tabele TEACHER in naslov strežnika iz tabele DB ter preverimo brezžič
zaključi, v nasprotnem primeru se prikaže ikona
omrežja WLAN in imamo vključeno samodejno povezavo, se bo telefon
povezal v omrežje, v nasprotnem primeru moramo to storiti ro
povezani v omrežje, znotraj katerega je strežnik Moodle, lahko izbiramo med dvema
prenos podatkov (študentov in nalog) s strežnika na telefon
prenos podatkov (vpisanih ocen študentov) na strežnik.
36
aktivnosti SETUP.
, ki ga kaže diagram
najprej preberemo podatke ocenjevalca iz
brezžično povezavo. Če
se prikaže ikona . Če smo v
eno samodejno povezavo, se bo telefon
moramo to storiti ročno. Ko smo
strežnik Moodle, lahko izbiramo med dvema
strežnika na telefon,
prenos podatkov (vpisanih ocen študentov) na strežnik.
37
Slika 3.11: Diagram poteka aktivnosti DATA
Prenos podatkov s strežnika na telefon (gumb ) poteka tako, da se telefon prek
brezžične povezave poveže s strežnikom, katerega naslov smo vnesli v aktivnosti
SETUP. Če je povezava uspešna, se najprej pobrišejo podatki v tabelah STUDENTS in
ASSIGNMENTS. Nato pa se s strežnika Moodle prek spletnih storitev ws_read_us in
ws_read_as prenesejo novi podatki o študentih in nalogah v zbirko telefona.
38
Pri prenosu podatkov s telefona na strežnik (gumb ) se telefon prek brezžične
povezave poveže s strežnikom, katerega naslov smo vnesli v aktivnosti SETUP. Če je
povezava uspešna, najprej pobrišemo tabeli CONFLICTS in SUBMISSION, nato pa s
strežnika prek spletne storitve ws_read_sb prenesemo vnesene ocene v tabelo
SUBMISSION (funkcija loadSubmission()). S funkcijo loadData() preberemo ocene iz
tabele GRADE in vsako posebej primerjamo z ocenami iz tabele SUBMISSION, ki so že
bile vpisane. Če sta oceni enaki ali če gre pri naši oceni za dodanega študenta, se
identifikacijski oznaki ocen vpišeta v tabelo CONFLICTS, v nasprotnem primeru se naša
ocena prek spletne storitve ws_write vpiše v tabelo assignment_submission na strežniku
Moodle in izbriše iz tabele GRADE.
Pri prenosu grafično prikažemo potek prenesenih podatkov v odstotkih in obvestilo o
uspešnem prenosu podatkov.
3.3.2.6 Seznam konfliktov
Pri zagonu aktivnosti (onCreate()) v funkciji getData() najprej preberemo podatke iz tabele
CONFLICTS (identifikacijska oznaka naše ocene in identifikacijska oznaka vpisane
ocene). Kot kaže diagram na sliki 3.12, se na podlagi teh podatkov iz tabel STUDENTS,
SUBMISSIONS in GRADE zberejo še ostali podatki, ki se prikažejo v ListView. Ti so
naslednji:
– naziv naloge,
– ime in priimek študenta,
– identifikacijska oznaka vnosa v ocene,
– ime in priimek ocenjevalca,
– vpisana ocena,
– datum in čas vpisa ocene ocenjevalca in komentar,
– identifikacijska oznaka vnosa v ocene na strežniku,
– ime in priimek ocenjevalca,
– datum in čas prenosa na strežnik in komentar.
39
Slika 3.12: Diagram poteka aktivnosti CONFLICT
Vsak konflikt na seznamu (ListView) lahko označimo in izberemo ustrezno rešitev:
– uveljavi: pomeni, da se NE strinjamo z vpisano oceno in želimo prenesti svojo
oceno. S to rešitvijo poženemo funkcijo delData(), ki izbriše trenutno oceno na
strežniku prek spletne storitve ws_delete_sb in iz tabele CONFLICT;
– zavrzi: pomeni, da se strinjamo z vpisano oceno in bomo svojo izbrisali iz tabele.
To opravi funkcija getGradeID(), ki izbriše našo oceno iz tabele GRADE in vse
zapise z identifikacijsko oznako te ocene iz tabele CONFLICTS;
– odloži: pomeni, da se trenutno ne moremo odločiti, katera ocena naj se obdrži in
bomo to storili prihodnjič. V tem primeru ocene ostanejo nespremenjene in se
vrnemo nazaj v aktivnost MENU.
Za prenos uveljavljenih ocen se vrnemo v aktivnost DATA, od koder pošljemo ocene na
strežnik.
40
3.3.3 Podatkovna zbirka
Za shranjevanje podatkov smo na telefonu z operacijskim sistemom Android uporabili
podatkovno zbirko SQLite, katere strukturo in relacijski model kaže slika 3.13.
Slika 3.13: Podatkovna zbirka ocenjevalca
1. Tabeli STUDENTS in ASSIGNMENTS se prek aktivnosti DATA dopolnita s podatki
iz podatkovne zbirke strežnika Moodle iz tabel mdl_user in mdl_assignments. V
tabelo STUDENTS lahko dodajamo študente tudi z ročnim vnosom v aktivnosti
SETUP. Dodani študenti se vpišejo tudi v tabelo NEWSTUDENTS.
2. Tabeli DB in TEACHER se dopolnita samo ročno v aktivnosti SETUP, in sicer
preden začnete uporabljati aplikacijo.
3. Tabela GRADE se dopolni v aktivnosti GRADE iz tabel STUDENTS (userID, user)
in TEACHER (teacherid) ter z ročnim vnosom ocene, datum in čas pa se vneseta
samodejno (sistemski čas telefona) v obliki DD.MM.LLLL HH:MM:SS (datetime) in
v zapisu UNIX – sekunde od leta 1970 (timemod).
4. Podatki iz tabele GRADE se prek aktivnosti DATA prenesejo na strežnik Moodle v
tabelo mdl_assignments_submission.
41
3.3.4 Komunikacijski modul
Sestavljen je iz programskega dela odjemalca in strojnega dela mobilne naprave.
Programski del je skrit znotraj aktivnosti DATA in predstavlja funkcije za prenos podatkov
s strežnika ali nanj prek spletnih storitev in modula Wi-Fi naprave. Ker so si funkcije
večinoma podobne, bomo predstavili samo funkcijo (Algoritem 1) za prenos uporabniških
podatkov (ocenjevalcev in študentov) sistema Moodle.
Algoritem 1: Prenos podatkov o študentih
42
4 DELOVANJE APLIKACIJE
V tem poglavju predstavljamo delovanje aplikacije s ponazoritvijo zunanje podobe in
funkcionalnosti uporabniškega vmesnika, opisujemo preskusno okolje, v katerem smo
preskušali delovanje aplikacije v različnih scenarijih uporabe, in navajamo preskusne
podatke.
4.1 UPORABNIŠKI VMESNIK
Pri prvi uporabi aplikacije in za prenos podatkov s strežnika Moodle in nanj se je treba
prek brezžične povezave povezati v omrežje z dostopom do strežnika Moodle.
Uporabniški vmesnik je sestavljen iz več aktivnosti, katerih funkcionalnost smo že
podrobneje opisali v poglavju 3.3.2. V nadaljevanju pa predstavljamo uporabo aplikacije.
4.1.1 Zagon in prijava v aplikacijo
Po zagonu aplikacije se odpre aktivnost LOGIN (slika 4.1), kjer se prijavimo s svojim
uporabniškim imenom in geslom, ki je nastavljeno na strežniku Moodle.
Slika 4.1: Uporabniški vmesnik LOGIN
Če še nimamo uporabniških podatkov na napravi (npr. ob prvi prijavi), se moramo prijaviti
s programsko določenim uporabniškim imenom „ocenjevalec“ in geslom „mobilni“, s
katerim lahko vnesemo naslov strežnika, prenesemo podatke z njega in izberemo
ocenjevalca. Ker s tem uporabniškim imenom ne moremo ocenjevati študentov in prenesti
podatkov na strežnik Moodle, se moramo ponovno prijaviti v aplikacijo z uporabniškim
imenom izbranega ocenjevalca.
43
Po uspešni prijavi se odpre aktivnost MENU (slika 4.2), kjer izbiramo posamezne
aktivnosti z nameščenimi gumbi.
Slika 4.2: Uporabniški vmesnik MENU
4.1.2 Nastavitev parametrov aplikacije
Parametre aplikacije nastavljamo v aktivnosti SETUP, kjer je mogoče izbrati:
– strežnik: vpišemo naslov IP strežnika;
– ocenjevalca: s seznama izberemo ocenjevalca, s čimer dopolnimo polja ime,
priimek in osebna številka. Če je seznam prazen, moramo pred tem prenesti
podatke s strežnika;
– študenta: v polja vpišemo vpisno številko, ime in priimek.
Slika 4.3: Uporabniški vmesnik SETUP
44
Slika 4.3 kaže vse mogoče izbire nastavitev. Pred prvim prenosom podatkov moramo
najprej vpisati naslov IP strežnika Moodle (izbira strežnik) in ga shraniti v lokalno zbirko
(gumb za shranjevanje). Po uspešnem prenosu podatkov s strežnika izberemo še
ocenjevalca (izbira ocenjevalec). Nove študente dodajamo pred ocenjevanjem.
4.1.3 Prenos podatkov
Za prenos podatkov se je treba najprej povezati v omrežje. V aktivnosti MENU (slika 4.2)
poženemo aktivnost DATA (slika 4.4), s katero s strežnika prenesemo podatke o
uporabnikih in nalogah v lokalno zbirko telefona (gumb ).
Slika 4.4: Uporabniški vmesnik DATA
Po uspešnem prenosu lahko študente ocenjujemo na terenu, kar opravimo v aktivnosti
GRADE (slika 4.5). Ko končamo ocenjevanje, se ponovno povežemo z omrežjem, vrnemo
v aktivnost DATA in prenesemo ocene na strežnik (gumb ).
4.1.4 Ocenjevanje
Ocenjevanje poteka v aktivnosti GRADE (slika 4.5), kjer izberemo študenta in nalogo,
vpišemo oceno in komentar ter potrdimo vnesene podatke. To ponovimo za vse študente
in naloge. Vpisane ocene se nam prikažejo v oknu znotraj aktivnosti. Ko končamo
ocenjevanje, lahko vpisane ocene prenesemo na strežnik. Če imamo aktivno brezžično
povezavo in dostop do strežnika, lahko to storimo takoj.
45
Slika 4.5: Uporabniški vmesnik GRADE
4.1.5 Reševanje konfliktov
Prenos ocen na strežnik poteka dvosmerno. Ko z gumbom poženemo prenos v
aktivnosti DATA (slika 4.4), se s strežnika najprej v lokalno zbirko prenesejo vnesene
ocene. Nato se vsaka naša ocena primerja z vnesenimi, ki smo jih prenesli. Pri primerjavi
uporabljamo več kriterijev:
– če že obstaja zapis z enakim študentom in nalogo, se v tabelo konfliktov vpišeta
številka identifikacijske oznake vpisa v tabelo ocen in identifikacijska oznaka vpisa
prenesenih ocen. Vpisana ocena se ne briše;
– če ocena za študenta in nalogo ne obstaja, se ocena vpiše med vpisane ocene na
strežniku;
– če smo med ocenjevanjem dodajali študente, ki še niso vpisani na strežniku, se
ocena za te študente vpiše v tabelo konfliktov.
Zadnja faza ocenjevanja je reševanje konfliktov. Če obstajajo konflikti (neusklajene ocene
– diagram na sliki 3.3), se aktivira gumb „Konflikti“ v aktivnosti MENU (slika 4.2), s katerim
pridemo do seznama konfliktov (slika 4.6). S seznama izberemo konflikte (lahko več
hkrati), ki jih lahko rešimo na dva načina:
– uveljavi: v tem primeru se vpisane ocene izbrišejo s strežnika in se nanj vpišejo
naše ocene. Hkrati se iz tabel CONFLICTS in GRADE izbrišejo vsi zapisi s temi
ocenami. Tako je ocena usklajena;
– zavrzi: naše neusklajene ocene se v tem primeru izbrišejo iz tabele ocen in
konfliktov. Ostanejo samo ocene, vpisane na strežniku.
46
Slika 4.6: Uporabniški vmesnik CONFLICT
Kadar se ne moremo odločiti za določeno oceno, jo lahko pustimo neusklajeno do
prihodnjič in izberemo gumb „Odloži“, s katerim zapustimo aktivnost konfliktov. Ocena
ostane vpisana v naši zbirki do naslednjega prenosa, ko se lahko ponovno odločimo, kaj
bomo storili z njo.
4.2 PRESKUS DELOVANJA
Aplikacija je bila razvita z razvojnim orodjem Eclipse SDK različice 3.6.2 na prenosnem
računalniku HP EliteBook 8540p s pomnilnikom RAM 4 GB v operacijskem sistemu
Windows 7 Professional 32-bit, v katerem je bil nameščen tudi preskusni strežnik Moodle.
4.2.1 Preskusno okolje
Preskušanje delovanja aplikacije je potekalo v preskusnem okolju (slika 4.7) z navidezno
napravo Android (angl. Android Virtual Device, krajše AVD) na platformi Android 2.1-
update 1 ob uporabi emulatorja z lokalno povezavo in mobilnega telefona Samsung
GALAXY Apolo GT-I5800 prek domačega brezžičnega omrežja za preskus izmenjave
podatkov s strežnikom Moodle.
47
Slika 4.7: Preskusno okolje (emulator Android in telefon)
Prenos podatkov med odjemalcem in strežnikom, ki smo ga izvajali na naslednja dva
načina:
– popolnoma brezžično (WLAN-WLAN): pri katerem sta bila strežnik in telefon
povezana prek brezžičnega usmerjevalnika (slika 4.8);
– brezžično-žično (WLAN-LAN): v tem primeru je bil strežnik neposredno priključen
na domače lokalno omrežje, do katerega smo dostopali s telefonom prek
brezžičnega usmerjevalnika (slika 4.9).
Slika 4.8: Preskusno okolje (povezava WLAN-WLAN)
48
Slika 4.9: Preskusno okolje (povezava WLAN-LAN)
4.2.2 Preskusni podatki
Preskusni podatki študentov so bili ročno vneseni v lokalno nameščen strežnik Moodle.
Imena študentov so imena izmišljenih oseb ali prepoznavnih likov iz različnih medijev
(stripi, risani filmi, komiki, filmi ipd.). Nekaj od teh kaže slika 4.10. Dodanih je tudi nekaj
nalog (slika 4.11).
Slika 4.10: Uporabniki na strežniku Moodle
Slika 4.11: Naloge predmeta na strežniku Moodle
49
4.2.3 Scenariji uporabe
Pri uporabi aplikacije je mogočih več scenarijev uporabe, ki smo jih preskusili v praksi.
4.2.3.1 Scenarij 1
Ta scenarij predstavlja običajno uporabo aplikacije s pričakovanim najpogostejšim tokom
dogodkov:
– uporabnik prenese podatke o študentih, oddajah in ocenah v lokalno hrambo v
odjemalcu;
– ocenjevalec z odjemalcem ocenjuje študente „na terenu“ in dodaja ocene;
– ko je ocenjevalec v dosegu omrežja, odjemalec pridobi trenutno stanje podatkov;
– če se podatki na strežniku v tem času niso spremenili, obvelja ustrezna ocena, v
nasprotnem primeru pa se od ocenjevalca zahteva rešitev konflikta;
– ocenjevalec lahko pri ugotovljenem konfliktu zavrže svojo oceno, jo vsili ali odloži
reševanje konflikta za kasneje;
– med uveljavljanjem ocene spletna storitev sistema Moodle ponovno ugotavlja
konflikt podatkov. Pri konfliktu se ocena zavrne, odjemalec pa ocenjevalcu ponudi
reševanje konflikta [34].
V nastavitvah aplikacije (slika 4.3, izbira strežnika) smo najprej vnesli naslov IP
računalnika z nameščenim strežnikom Moodle (slika 4.12), od koder smo uspešno
prenesli podatke o študentih in nalogah v aktivnosti DATA (slika 4.13) .
Slika 4.12: Vnos naslova strežnika
Slika 4.13: Prenos podatkov
50
Nato smo v nastavitvah izbrali ocenjevalca s seznama prenesenih uporabnikov. Izbrane
študente smo ocenili in dodali komentarje k ocenam v aktivnosti GRADE (slika 4.14).
Slika 4.14: Izbira ocenjevalca in ocenjevanje
Po končanem ocenjevanju smo podatke o ocenah prenesli nazaj na strežnik. Med
prenosom na strežnik so se ocene preverjale z vpisanimi. Ker je bilo nekaj ocen že
vpisanih, so se pojavili konflikti, na uporabniškem vmesniku aktivnosti MENU pa se je
pojavil gumb za prikaz konfliktov, s katerim smo odprli seznam (slika 4.15).
Slika 4.15: Prisotnost konfliktov in njihovo reševanje
51
Na seznamu konfliktov smo izbrali prvo oceno in jo uveljavili. Stara ocena se je na
strežniku izbrisala, nova pa se je prenesla nanj in izbrisala s seznama konfliktov in ocen.
Drugo oceno smo zavrgli in jo tako izbrisali s seznama ocen in konfliktov. Ker je bil
seznam prazen, se je pri vrnitvi v aktivnost MENU skril gumb za prikaz konfliktov.
4.2.3.2 Scenarij 2
Ta scenarij opisuje prisotnost neznanega študenta (predvidoma zelo redek dogodek):
– med ocenjevanjem ali uveljavljanjem ocene se lahko zgodi, da v podatkovni zbirki
nimamo podatkov o študentu (izbris, izmenjava študentov, študent brez statusa
ipd.);
– v tem primeru se v odjemalcu ocena shrani kot konflikt, ki ga je treba rešiti;
– konflikt lahko rešimo tako, da zavržemo svojo oceno ali odložimo reševanje za
kasneje;
– kasneje lahko, če bomo v sistem Moodle dodali novega študenta, izbiramo med
tremi možnostmi: vsili oceno, zavrzi oceno ali odloži reševanje konflikta [34].
V nastavitvah (SETUP, slika 4.3) smo dodali novega študenta in mu vpisali oceno. Pri
prenosu ocen na strežnik je prišlo do konflikta, ker študenta ni bilo v zbirki.
4.2.3.3 Scenarij 3
Scenarij obravnava pojav neznanega ali spremenjenega predmeta ali naloge (predvidoma
zelo redek primer):
– med ocenjevanjem ali uveljavljanjem ocene se lahko zgodi, da podatki o predmetu
ali nalogi niso več veljavni. Tudi v tem primeru se v odjemalcu ocena shrani kot
konflikt;
– če je še vedno mogoče podeliti oceno, nam odjemalec ponudi možnost vsiljevanja
naše ocene, v nasprotnem primeru pa nam ponudi samo možnost, da zavržemo
oceno ali odložimo reševanje konflikta za kasneje [34].
52
4.3 REZULTATI
Aplikacijo Mobilni ocenjevalec smo preskušali v lokalnem omrežju z brezžično povezavo s
strežnikom po scenarijih 1 in 2, opisanih v poglavju 4.2.3. Nismo pa preskušali scenarija
3, ker v aplikaciji ne preverjamo časovnih omejitev nalog.
Pri prvem vnosu nastavitev naslova IP strežnika je treba najprej izbrisati vnosno polje z
gumbom in šele nato vnesti novo, v nasprotnem primeru se vneseni podatki ne
shranijo. Prenos podatkov s strežnika ali nanj deluje samo, če imamo vključeno brezžično
povezavo in smo v omrežje povezani zaradi varnosti, ker se pri prenosu s strežnika
najprej pobrišejo tabele s podatki o študentih in nalogah oziroma konfliktih in nato
ponovno napolnijo z novimi podatki. Prenos podatkov poteka brez težav in ga je mogoče
ponoviti večkrat brez podvajanja podatkov. Najprej v nastavitvah izberemo ocenjevalca, s
katerim se prijavimo v aplikacijo, da lahko ocenjujemo študente. Pri ocenjevanju izbiramo
študente (ne izberemo pa uporabnika, ki smo ga izbrali za ocenjevalca) in naloge s
seznama, ki se ustvari iz prenesenih podatkov.
Preverjanje konfliktov je potekalo tako, da smo najprej s strežnika prenesli vpisane ocene
in jih pred oddajo na strežnik primerjali z ocenami v ocenjevalcu. Če sta bila študent in
naloga pri obeh ocenah enaka, se je ustvaril konflikt, ki se je vpisal v seznam. Prav tako
se je konflikt ustvaril pri ročno dodanih študentih in takrat, ko smo enega od njih izbrisali iz
zbirke na strežniku. Pri reševanju konfliktov se je določen zapis, pri katerem smo uveljavili
svojo oceno, uspešno izbrisal iz zbirke na strežniku in s seznama konfliktov. Pri zavrnitvi
ocene pa se je izbrisal iz lokalne zbirke in s seznama.
Preskus smo ponovili večkrat, pri čemer ni prihajalo do napak. Rezultati delovanja
aplikacije so bili v skladu s pričakovanimi.
53
5 SKLEP
V tem diplomskem delu smo predstavili izdelano aplikacijo za mobilno ocenjevanje
študentov v sistemu Moodle v operacijskem sistemu Android. Rezultati preskušanja so
pokazali dosežene vrste funkcionalnosti, ki smo si jih zastavili v poglavju 3.1.
Aplikacija uporablja aplikacijsko arhitekturo odjemalec/strežnik, sestavljeno iz dveh
nivojev. Prvi nivo predstavlja uporabniški vmesnik v odjemalcu, ki ga lahko namestimo na
mobilni telefon ali tablični računalnik. Drugi nivo predstavljajo spletne storitve, ki so
nameščene na strežniku Moodle in skrbijo za prenos podatkov med odjemalcem,
strežnikom in njegovo podatkovno zbirko. Z vmesnikom upravljamo podatke, ki smo jih
prenesli s strežnika in jih prenašamo nazaj.
Prenos podatkov o študentih in ocenah smo zaradi varstva podatkov omejili na lokalno
omrežje WLAN za dostop do strežnika Moodle, saj je prenos mogoč le v aktivni povezavi
z omrežjem. Ocene so shranjene na telefonu v lokalni zbirki, dokler se uspešno ne
prenesejo na strežnik, in se pobrišejo šele, ko so usklajene (niso v konfliktu). Zagotovljeno
je sprotno osveževanje podatkov, ker pri vsakem prenosu s strežnika najprej prenesemo
vpisane ocene v lokalno zbirko in jih sproti primerjamo s svojimi, ki jih pošiljamo nazaj na
strežnik.
Aplikacija je napisana v angleškem in slovenskem jeziku, s čimer je dosežena zahtevana
lokalizacija, prav tako pa jo je mogoče še dodatno razširiti v ustrezne jezike. Izbira jezika
aplikacije se izvede z izbiro lokalnih nastavitev telefona.
Razširjanje sistema z dodatnimi vrstami funkcionalnosti ne pomeni nobenih bistvenih
tehničnih ovir. Smiselno bi bilo nadgraditi sedanjo aplikacijo z možnostjo dodajanja
študentov v zbirko strežnika ali izdelati novo aplikacijo, s katero bi se lahko študenti
povezovali na strežnik Moodle prek brezžične ali mobilne povezave in pregledovali svoje
ocene ali dodane vsebine. Vendar analiza uporabe ni pokazala bistvenih pridobitev pri
nadgrajevanju odjemalca.
V prihodnje bo morda smiselno analizirati možnost uporabe samodejnega ocenjevalca, ki
bi znal samodejno izvajati preskuse oddanih nalog in predlagati ocene.
54
6 VIRI
[1] Weiser Mark, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Mark_Weiser [maj 2012].
[2] Pametni telefoni, wikipedia. Dostopno na:
http://sl.wikipedia.org/wiki/Pametni_telefon [december 2011].
[3] Študija podjetja Comshore. Dostopno na:
http://www.comscore.com/Press_Events/Press_Releases/2012/2/comScore_Reports_De
cember_2011_U.S._Mobile_Subscriber_Market_Share [januar 2012].
[4] Operacijski sistem Android, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Android_(operating_system) [marec 2012].
[5] Operacijski sistem BlackBerry, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/BlackBerry [marec 2012].
[6] Operacijski sistem iOS, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/IOS [marec 2012].
[7] Operacijski sistem Symbian, wikipedia.Dostopno na:
http://en.wikipedia.org/wiki/Symbian [marec 2012].
[8] Operacijski sistem Windows Phone, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Windows_Phone [marec 2012].
[9] Prva generacija mobilnih komunikacij, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/1G [december 2011].
[10] Druga generacija mobilnih komunikacij, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/2G [december 2011].
[11] Tretja generacija mobilnih komunikacij, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/3G [december 2011].
[12] Četrta generacija mobilnih komunikacij, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/4G [december 2011].
[13] Standard brezžične komunikacije Bluetooth, wikipedia. Dostopno na:
http://sl.wikipedia.org/wiki/Bluetooth [januar 2012].
[14] Standard brezžične komunikacije WI-FI. Dostopno na:
http://en.wikipedia.org/wiki/Wifi [januar 2012].
[15] Standard WEP, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy [april 2012].
[16] Standard WPA, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access [april 2012].
55
[17] Protokol TKIP, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Temporal_Key_Integrity_Protocol [april 2012].
[18] Standard AES, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard [april 2012].
[19] Protokol EAP, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol [april 2012].
[20] Privatni ključ PSK, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Pre-shared_key [april 2012].
[21] Algoritem AES-CCMP. Dostopno na:
http://msdn.microsoft.com/enus/library/windows/hardware/ff543742.aspx [april 2012].
[22] Različice operacijskega sistema Android, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Android_version_history [december 2011].
[23] Razvojno okolje Android SDK. Dostopno na:
http://developer.android.com/sdk/index.html [april 2012].
[24] Maity, P. Android 5.0 Jelly Bean. – What We Know So Far, 29.3.2012. Dostopno na:
http://www.ibtimes.com/articles/321251/20120329/android-5-0-jelly-bean-features-
release.htm [maj 2012].
[25] Podatkovna zbirka SQLite. Dostopno na:
http://www.sqlite.org [december 2011].
[26] Android developer. Življenjski cikel aplikacije. Dostopno na:
http://developer.android.com/reference/android/app/Activity.html [januar 2012].
[27] Android Manifest Permission. Dostopno na:
http://www.androidjavadoc.com/1.0_r1/android/Manifest.permission.html [januar 2012].
[28] Kaj je SOAP. Presentia d.o.o, 4.5.2010. Dostopno na:
http://www.presentia.si/baza-znanja-helpdesk/2010/kaj-je-soap/ [junij 2012].
[29] Knutsen, J. Web Services on Mobile Android Devices. NTNU 2009, str. 10–12.
[30] Označevalni jezik XML, wikipedia. Dostopno na:
http://sl.wikipedia.org/wiki/XML [maj 2012].
[31] Protokol UDDI, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integration [maj 2012].
[32] Opisni jezik spletnih storitev WSDL, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/Wsdl [maj 2012].
[33] Protokol HTTP, wikipedia. Dostopno na:
http://sl.wikipedia.org/wiki/HTTP [december 2011].
56
[34] Objektni JavaScript zapis JSON. Dostopno na:
http://www.json.org/ [december 2011].
[35] Protokol REST, wikipedia. Dostopno na:
http://en.wikipedia.org/wiki/REST [december 2011].
[36] Cole, J., Foster, H. Using Moodle: Teaching with the popular Open Source
management system (2nd Edition). O'Reilly Media Inc. Sebastopol, 2008.
[37] Učni sistem Moodle. Dostopno na:
http://Moodle.org [december 2011].
[38] Tutek, S.: FURPS Za projekt Moodle offline grader, Fakulteta za elektrotehniko,
računalništvo in informatiko, Univerza v Mariboru, 2010.
I
7 PRILOGE
A. LASTNOSTI PROGRAMSKE OPREME
Zahteve za strojno in programsko opremo
Naša razširitev sistema Moodle z dodatno spletno storitvijo ne bo bistveno povečala
obremenjenosti strežnika, kar pomeni, da zahteve po strojni opremi ostanejo primerljive s
sistemom Moodle.
Odjemalec bo zahteval strojno opremo (ali emulator), na katerem teče operacijski sistem
Android 2.1 (API level 7) ali novejši z vsaj 10 Mbit prostega pomnilnika.
Za komunikacijo med strežnikom in odjemalcem bo poskrbela brezžična povezava.
Priporočena je uporaba brezžične povezave WLAN zaradi stroškov in varnosti prenosa
podatkov.
Zanesljivost
S podano razširitvijo se zanesljivost sistema ne bo bistveno spremenila. Pri izpadu
odjemalca se lahko vedno vrnemo na ročno ocenjevanje. Če sistem Moodle na strežniku
ne deluje, podatki ostanejo shranjeni na mobilni napravi.
Prenosljivost spletne storitve
Programski paket, ki smo ga izdelali, je razširitev sedanjega sistema Moodle.
Prenosljivost med platformami je torej zagotovljena s prenosljivostjo tolmača oziroma
prevajalnika PHP in podatkovne zbirke.
Prenosljivost odjemalca
Težava v zvezi s prenosljivostjo odjemalca je veliko večja, saj je trg mobilnih naprav zelo
razdrobljen. Poslovna logika odjemalca in uporabniški vmesnik sta napisana v
programskem jeziku Java, kar zagotavlja visoko stopnjo prenosljivosti, žal pa so knjižnice
za uporabniški vmesnik omejene na platformo Android. Razširljivost na ostale platforme ni
težavna, zahteva pa dodatno delo in vire.
Kot izvajalci smo se čim bolj potrudili, da izdelamo kar najbolj prenosljiv kod. Za
doseganje visoke prenosljivosti smo uporabili veliko visokonivojskih metod, ki so že del
II
sistema Moodle, in se čim bolj izognili nizkonivojskim posegom v podatkovno zbirko ter
razvijanju lastne logike. Naša spletna storitev se izvaja kot samostojni modul ali razširitev
sistema Moodle, kar je tudi zmanjšalo soodvisnosti programskega koda.
Prenosljivost odjemalca
Ker smo odjemalca v celoti razvili z javanskimi tehnologijami in ker so javanske aplikacije
znane po zelo visoki stopnji prenosljivosti, večjih težav ne pričakujemo. Tudi knjižnice za
izdelavo grafičnega vmesnika je razvilo veliko in zanesljivo podjetje, kar nam daje visoko
stopnjo zaupanja v stabilno in prenosljivo delovanje odjemalca med različnimi različicami
platforme.
Lokalizacija
Aplikacija za odjemalca je napisana v angleškem in slovenskem jeziku. Uporabili smo
standardni javanski pristop i18n z uporabo javanskih paketov „Resource Bundle“. Nizi so
našteti v datotekah lastnosti v kodnem naboru UTF-8. Kar pomeni, da je celotno aplikacijo
zelo enostavno prevesti v ustrezen jezik.
Varnost
Vse varnostne mehanizme smo povzeli po sistemu Moodle. Uporabniško ime in geslo je
povzeto s sistema Moodle. Pogoj za uporabo odjemalca je vsaj ena uspešna prijava v
sistem Moodle, saj odjemalec brez podatkov o predmetih, študentih, nalogah in oddajah
ne bo uporaben.
Za višjo raven varnosti priporočamo ustrezno zaščito sistema Moodle z uporabo
šifriranega protokola HTTPS in ustrezno nastavljen požarni zid.
Razširljivost
Pravne omejitve – razviti programski paket smo objavili v skladu z eno od licenc
brezplačne programske opreme, kar strankam omogoča višjo stopnjo neodvisnosti in
nadzora stroškov vzdrževanja in nadgrajevanja.
III
B. NAMESTITEV
Namestitev spletne storitve
– datoteko ZIP razširite v podmapo webservice v sistemu Moodle,
– v vseh novih datotekah je treba podatke za povezavo v vrstici
$link = mysql_connect('server','username','password') ustrezno spremeniti v
podatke, ki veljajo za lokalni strežnik.
Namestitev odjemalca v operacijskem sistemu Android
Najlažji način:
– v spletni trgovini Android Market (Google Play) poiščite aplikacijo „Moodle offline
grader“ in jo namestite.
Drugi način:
– namestite si Android Software Development Kit (SDK),
– poženite ukazno lupino (npr. terminal za Linux ali cmd za Windows),
– postavite se v mapo tools nameščene programske opreme SDK,
– na mobilni napravi vključite možnost USB debugging,
– mobilno napravo povežite z računalnikom,
– poženite ukaz adb z argumentoma install in potjo do datoteke APK
(primer: adb install c:\tmp\grader.apk).
IV
C. OSEBNI PODATKI
Naslov študenta
Bojan Križanec
Kočno ob Ložnici 31A
2318 Laporje
e-pošta: [email protected]
Kratek življenjepis
Rojen sem 23.2.1966 v Mariboru
Šolanje:
– Osnovna šola Gustava Šiliha Laporje – Srednja elektro-računalniška šola (SERŠ) Maribor, smer Elektrotehnik-elektronik – Fakulteta za elektrotehniko, računalništvo in informatiko Maribor, VS študijski
program Računalništvo in informatika, smer Logika in sistemi