Izrada mobilne aplikacije u elektroniÄkom zdravstvu [749,87 KiB] - FER
Izrada mobilne aplikacije u elektroniÄkom zdravstvu [749,87 KiB] - FER
Izrada mobilne aplikacije u elektroniÄkom zdravstvu [749,87 KiB] - FER
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVADIPLOMSKI RAD br. 3085IZRADA MOBILNE APLIKACIJE UELEKTRONIČKOM ZDRAVSTVUMarina BrezinaZagreb, lipanj 2009.
Zahvaljujem doc.dr.sc. Darku Huljeniću i djelatnicima tvrtke Ericsson Nikola Tesla napruženim resursima i pomoći pri izradi diplomskoga rada, svom mentoru, doc.dr.sc. MarijuKušeku na savjetima, te svojoj obitelji i prijateljima na podršci koju su mi pružali tijekomstudija.ii
SadržajSadržaj ..................................................................................................................................................... iiiPopis oznaka i kratica .............................................................................................................................. viUvod ........................................................................................................................................................ 11. Elektroničko zdravstvo .................................................................................................................... 21.1 Informatizacija zdravstva u Hrvatskoj ..................................................................................... 31.2 Usluge na granici zdravstva i informacijske tehnologije ............................................................... 41.3 Health 2.0 ...................................................................................................................................... 62. Mobilno zdravstvo ........................................................................................................................... 72.1 Primjena programa mobilnoga zdravstva ..................................................................................... 82.1.1 Edukacija i osvješćivanje ......................................................................................................... 92.1.2 Udaljeno prikupljanje podataka ............................................................................................. 92.1.3 Udaljeno nadziranje.............................................................................................................. 102.1.4 Komunikacija i trening osoblja zaposlenoga u sustavu zdravstvene skrbi ........................... 102.1.5 Praćenje zaraza i širenja epidemija ...................................................................................... 102.1.6 Podrška dijagnostici i liječenju ............................................................................................. 102.2 Tehnologije korištene u mobilnom <strong>zdravstvu</strong> i njihove mogućnosti .......................................... 113. Korištene tehnologije i razvojna okruženja ................................................................................... 123.1 Java .............................................................................................................................................. 123.2 Java Micro Edition ................................................................................................................. 123.3 Java Servlet ............................................................................................................................ 133.4 NetBeans 6.5.1 ...................................................................................................................... 143.5 SQL ......................................................................................................................................... 143.6 Microsoft SQL Server 2005 Express Edition .......................................................................... 153.7 Microsoft SQL Management Studio ...................................................................................... 154. Idejno rješenje diplomskoga zadatka ............................................................................................ 16iii
9.2.1 Uvod u UML .......................................................................................................................... 409.2.2 Dijagram uporabnog slučaja za opisani scenarija ................................................................. 419.2.3 Slijedni dijagram za opisani scenarij ..................................................................................... 429.2.4 Dijagram klasa za opisani scenarij ........................................................................................ 43Zaključak ................................................................................................................................................ 44Literatura ............................................................................................................................................... 45Dodatak ................................................................................................................................................. 48Sažetak................................................................................................................................................... 51v
Popis oznaka i kraticaAPICACLDCengl.GISGPSGUIHIVHTTPHTTPSJ2MEJVMMIDPPDASMSSSLTBCTLSUMLURIURLXMLApplication Programming InterfaceCertification AuthorityConnected Linited Device ConfigurationengleskiGeographic Information SystemGlobal Positioning SystemGraphical User InterfaceHuman Papiloma VirusHyperText Transfer ProtocolHyperText Transfer Protocol SecureJava Micro EditionJava Virtual MachineMobile Information Device ProfilePersonal Digital AssistentShort Message SystemSecure Socket LayerTuberculosisTransport Layer SecurityUnified Modeling LanguageUniform Resource IdentifierUniform Resource LocatoreXtensible Markup Languagevi
UvodNa evoluciju pokretnih ureñaja utječe cijeli niz faktora, meñu kojima prednjače tehnološkeinovacije i ponašanje potrošača, globalizacija i eliminacija ekonomskih granica, te povrhsvega olakšanje propisa za promicanje trgovine. Sve navedeno dovodi do stvaranja novihsudionika tržišta i nove dinamike ekosustava koji stvara novu i otvorenu arhitekturu sustava.Godine 1991. Mark Weiser u svom članku „The Computer of the Twenty First Century“ [1]opisuje korištenje računala kao „svijet u kojemu su računala i ljudi nenametljivo ujedinjeni“.Ulogu računala sve više preuzimaju pokretni ureñaji koji se više ne koriste isključivo u svrhukomuniciranja s dragim osobama, već poprimaju i niz drugih funkcionalnosti. Za desetakgodina postojat će niz različitih pokretnih ureñaja od kojih će svaki imati jedinstvenuprimjenu i jednostavno će se bežičnim putem spajati na mrežu pomoću odašiljača koji će senalaziti na zgradama, kućama, vozilima, pa čak i na našoj odjeći. Gotovo sve što koristimoimat će sposobnost povezivanja na globalni mrežni sustav. Evolucijom mrežnih tehnologija,meñuopreme i mobilnih ureñaja ulazimo u eru u kojoj ćemo u svakome trenutku svakoj osobibiti dostupni. Pokretni ureñaji postali su glavno sredstvo za planiranje naših aktivnosti pa takoimaju i mogućnost olakšavanja posla liječnicima koji se godinama muče nepotrebnompapirologijom.Cilj ovog diplomskoga rada je iskoristiti performanse naprednih pokretnih telefona koji imajumogućnost bežičnog spajanja na mrežu i napraviti aplikaciju za terenskog liječnika koja ćemu omogućiti prikupljanje, pohranjivanje i sinkroniziranje podataka o pacijentu sa središnjimposlužiteljem u stvarnovremenskim okvirima, pružajući mu mogućnosti za rad u sigurnosnimuvjetima. Na taj način liječniku se omogućuje da lako i jednostavno barata podacima opacijentima izvan ordinacije i bude u potpunosti neovisan o svojoj trenutnoj lokaciji ivremenskim ograničenjima. Ovakav način korištenja predstavlja napredak u dosadašnjimzdravstvenim sustavima, u kojima je ponajveći problem predstavljala gomila papirologije iloša usklañenost podataka o pacijentima. <strong>Izrada</strong> <strong>mobilne</strong> <strong>aplikacije</strong> u elektroničkome<strong>zdravstvu</strong> trebala bi olakšati liječnički posao i pomoći im da bolje iskoriste napredne tehničkemogućnosti pokretnih ureñaja.1
1. Elektroničko zdravstvoElektroničko zdravstvo (2), (3), (4) (engl. eHealth, e-Health) relativno je nov termin nastaokrajem 90-ih godina 20. stoljeća. Najprije se koristio u industrijsko-komercijalnim krugovima,a potom je početkom 21. stoljeća prihvaćen i u akademskim vodama. Elektroničko zdravstvoje pojam koji označava novi, efikasniji način pružanja zdravstvenih usluga temeljen nasuvremenim tehnologijama uz vrlo visok stupanj integracije sustava, povećavajući mobilnostliječnika i pacijenata. U sustavu zdravstvene zaštite primjenom elektroničkoga zdravstvaobjedinjuju se elektronički procesi i komunikacija meñu liječnicima te se pokušavajupoboljšati performanse klasičnih zdravstvenih sustava.Ponekad se ovaj pojam nekonzistentno koristi: jedna strana tvrdi da se radi o podskupuzdravstvene informatike, dok druga strana definira elektroničko zdravstvo u užem smislu kaokorištenje zdravstvenih usluga preko Interneta. Sve više zemalja uvodi informacijsku ikomunikacijsku tehnologiju u zdravstveni sustav kroz elektroničke zdravstvene kartone,telemedicinu, upravljanje znanjem o zdravlju, virtualne zdravstvene timove, mobilnozdravstvo, liječenje temeljeno na prikupljenim podacima o obrañenim slučajevima teupravljanje specijalističkim medicinskim podacima. Elektroničko zdravstvo obuhvaća nizusluga koje se ostvaruju izmeñu medicinskih i informacijskih tehnologija. Cilj mu jeomogućiti lakše i uspješnije liječenje pacijenata i kvalitetniju medicinsku uslugu bezopterećenja administracijom.Zdravstveni podaci, prema svim europskim propisima, spadaju meñu vrlo osjetljive podatke tenjihova obrada i nepropisno korištenje može imati vrlo negativne posljedice na životepojedinaca. Ako se tome pridodaju i veliki troškovi zdravstva te pitanje političkoga pristupa,zaključujemo da se pri implementaciji elektroničkoga zdravstva otvara skup socijalnih,financijskih, političkih, kliničkih i tehničkih pitanja.Uvoñenje informacijskih i komunikacijskih tehnologija uvijek je skupo, a pogotovo ako seradi o sustavima s velikom složenošću. S obzirom da zdravstvo pripada takvoj grupi, razloziza uvoñenje novih tehnologija moraju biti financijski opravdani, dakle podrazumijevajuracionalizaciju i smanjenje troškova. Čak se i najbogatije države svijeta suočavaju sograničenim resursima koji se mogu koristiti za zdravstvene usluge. Razlozi tome su starenjepopulacije, uvoñenje novih i skupih lijekova te veliki napredak u razvoju tehnike i tretmana zaprevenciju i liječenje.2
Slika 1. Najčešće korištene <strong>aplikacije</strong> u ordinacijama opće prakse (preuzeto iz [4])Iz prikazanoga dijagrama vidljivo je da je elektroničko zdravstvo zastupljeno u pojedinimpodručjima liječničke prakse. Takoñer se može zaključiti da će u idućih par godina doći doevidentne tendencije porasta usluga temeljenih na elektroničkom <strong>zdravstvu</strong> proporcionalnorazvoju adekvatnih tehnologija.1.2 Usluge na granici zdravstva i informacijske tehnologijeElektroničko zdravstvo je pojam koji obuhvaća cijeli niz usluga koje se nalaze na granicimedicine i zdravstva s jedne strane te informacijske tehnologije s druge strane. Neke od njihsu:1. ELEKTRONIČKI MEDICINSKI ZAPISI (9) (engl. Electronic Medical Record)omogućuju razmjenu podataka o pacijentima izmeñu različitih djelatnika zaposlenih uzdravstvenoj skrbi (npr. liječnika opće prakse, liječnika specijalista, ljekarnika);2. TELEMEDICINA (10) (engl. Telemedicine) je primjena suvremenihtelekomunikacijskih i medicinskih tehnologija za osiguranje govornih, podatkovnihi/ili slikovnih (odnosno višemedijskih) komunikacija izmeñu meñusobno udaljenihliječnika i pacijenata ili izmeñu liječnika i liječnika u cilju olakšavanja i poboljšavanjarazmjene informacija za medicinske, zdravstvene, razvojne i obrazovne namjene.Prijenos se može odigravati u ili izvan stvarnog vremena.4
Osnovni akteri telemedicinskih primjena su: čovjek i telemedicinski ureñaji kao izvorinformacija, mreža i ureñaji za prijenos podatata te čovjek i telemedicinski ureñaj kaoodredište podataka. Opisano je moguće vidjeti na Slici 2.Slika 2. Osnovni princip funkcioniranja telemedicinskih principa (preuzeto iz [11])3. ZDRAVSTVENA INFORMATIKA (12) (engl. health informatics, medicalinformatics) znanstvena je disciplina koja objedinjuje računalnu znanost i medicinskuskrb. Bavi se izvorima, ureñajima i metodama potrebnima za optimizacijuprikupljanja, spremanja, dohvaćanja i upotrebu informacija u <strong>zdravstvu</strong> i biomedicini.Alati zdravstvene informatike ne uključuju samo računala već i kliničke smjernice,formalne medicinske terminologije te informacijske i komunikacijske sustave;4. ZDRAVSTVENA INFORMATIKA POTROŠAČA (13) (engl. Consumer HealthInformatics) označava pružanje informacija orijentirano grañanima: i zdraviindividualci i pacijenti žele biti informirani o medicinskim temama. Pojam je definiraoGunther Eysenbach, redoviti profesor na University Health Network u Torontu:zdravstvena informatika potrošača je grana zdravstvene informatike koja analizirapotrebe potrošača za informacijama te proučava i implementira metode za njihovudostupnost. Ona takoñer modelira i integrira želje i zahtjeve potrošača u medicinskiinformacijski sustav korištenjem modernih računala i telekomunikacijskih ureñaja;5
5. UPRAVLJANJE ZNANJEM O ZDRAVLJU (2) (engl. Health knowledgemanagement) označava pružanje informacija specijalistima (npr. čitanje najnovijihmedicinskih časopisa, vodiči kroz praksu, epidemiološka praćenja);6. VIRTUALNI ZDRAVSTVENI TIMOVI (2) (engl. Virtual healthcare teams) sastojese od profesionalaca koji surañuju i dijele informacije o pacijentima putem digitalneopreme;7. MOBILNO ZDRAVSTVO (2) odnosi se na upotrebu mobilnih ureñaja u prikupljanjupodataka o pacijentima. Detaljniji opis nalazi se u idućem poglavlju.Medicinska istraživanja koriste koordinatnu mrežu elektroničkoga zdravstva koja pružamoćnu upotrebu računala i koristi njihove sposobnosti za upravljanje nad golemom količinomheterogenih podataka.1.3 Health 2.0Važno je napomenuti da se u današnje vrijeme sve više razvija Health 2.0 (14), termin kojipredstavlja sponu izmeñu zdravstvene skrbi, elektroničkog zdravstva i Weba 2.0 te sve višedolazi u upotrebu nakon bujice članaka u uglednim svjetskim novinama, čiji su autori raznipoznati cijenjeni fizičari i medicinski stručnjaci. Health 2.0 je oblik zdravstvene skrbikarakteriziran mogućnošću da brzo širi, klasificira i sažima pojedinačne zdravstveneinformacije s ciljem poboljšanja postojećeg zdravstvenog sustava. Jedno od mogućihobjašnjenja zbog kojih uz Health stoji njegov vlastiti termin „2.0“ jest postojanje njegovihopćenitih aplikacija u cjelokupnom zdravstvenom sustavu, a posebice u svom potencijalu zabezgraničnim javnim promicanjem zdravstva.6
2. Mobilno zdravstvoMobilno zdravstvo (15) (engl. mHealth, m-Health) relativno je novi termin koji se koristi umedicinskoj i javnoj zdravstvenoj praksi i označava korištenje medicinskih ureñaja uz pomoćpokretnih ureñaja, kao što su pokretni telefoni, ureñaji za nadziranje pacijenata, osobnidigitalni asistent (engl. Personal Digital Assistent, PDA) te ostale naprave koje koriste bežičnipristup Internetu. Aplikacije mobilnoga zdravstva koriste pokretne ureñaje za prikupljanjezdravstvenih podataka o pacijentima, dostavljanje zdravstvenih informacija onima kojima supotrebne, nadziranje stanja pacijenata u stvarnom vremenu te izravno pružanje njegepacijentima (pomoću već objašnjene telemedicine).Mobilno zdravstvo objedinjuje upotrebu pokretnih telekomunikacija i višemedijskihtehnologija koje su integrirane kroz sve veći broj pokretnih i bežičnih zdravstvenih sustava.Pokretne tehnologije omogućuju sve veću decentralizaciju zdravstvenih sustava. Iako suministarstva zdravstva u mnogim zemljama voljna istražiti napredne mogućnosti pokretnihureñaja i ostalih informacijsko-komunikacijskih tehnologija s namjerom poboljšanjapostojećih sustava zdravstvene skrbi, nedostatak sveobuhvatnih modela, baza znanja idostupnih podataka predstavlja velik problem.Danas u svijetu postoji sve veći interes za korištenjem mobilnih ureñaja u svrhe koje im nisubile prvobitna namjena. Pokretni telefoni omogućavaju zemljama u razvoju da prijeñu izsvijeta fiksne telefonije, karakteristične za 20. stoljeće, u svijet <strong>mobilne</strong> telefonije kojakarakterizira tehnološki početak 21. stoljeća. Pokretni ureñaji koriste se u raznimokruženjima. Primjeri primjene u <strong>zdravstvu</strong> su <strong>aplikacije</strong> za nadzor bolesti i praćenje izbijanjaepidemija (npr. malarije, HIV-a, TBC-a) te dijagnostiku i terapiju bolesnoga pacijenta.Tehnologija implementacije pokretnih ureñaja u zdravstveni sektor ima za posljedicupromicanja zdravoga načina života, bolje i lakše donošenje odluka liječnika i specijalista, kaoi pacijenata, te unaprijeñenje kvalitete zdravstvene zaštite.Povećani interes za korištenjem pokretnih ureñaja u <strong>zdravstvu</strong> uključuje upotrebu tehnologijakoje imaju sljedeće performanse:- sustavi s mogućnostima hitnog odziva (npr. kod prometnih nesreća),- koordinacija, upravljanje i nadzor ljudskih resursa,- pokretna sinkrona (glasovna) i asinkrona (SMS) telemedicinska djagnostika i udaljenapodrška odlučivanju,7
- klinička njega i udaljeno nadziranje pacijenata i- mogućnosti nadziranja i izvještavanja zdravstvenih sustava.Povećavana upotreba tehnologije može pomoći smanjenju zdravstvenih troškova i povećanojučinkovitosti u zdravstvenim sustavima. Ona takoñer može pomoći u poboljšanju kliničkenjege i javne zdravstvene usluge koje zdravstvenim djelatnicima omogućavaju stručnu praksui komunikaciju te smanjuju zdravstvene nejednakosti primjenom novog pristupa zapoboljšanje zdravlja izolirane populacije.2.1 Primjena programa mobilnoga zdravstvaMobilni ureñaji imaju široko područje primjene. Meñu glavne spadaju udaljeno nadziranje iupravljanje, podrška dijagnostici i liječenju, itd. Rapodjela programa primjene mobilnogazdravstva [16] s obzirom na područje primjene prikazana je na Slici 3.Slika 3. Raspodjela programa primjene mobilnoga zdravstva (preuzeto iz [16])Programi mobilnoga zdravstva najviše se koriste za udaljeno prikupljanje podataka (engl.Remote Data Collection, 14%), udaljeno nadziranje (engl. Remote monitoring, 10%), podrškudijagnostici i liječenju (engl. Diagnostic and Treatment Support, 9%), praćenje zaraza iširenja epidemija (engl. Diseases and Epidemic Outbreak Tracking, 7%), edukaciju iosvješćivanje (engl. Education and Awareness, 6%) te naposlijetku, za komunikaciju i treningosoblja zaposlenog u sustavu zdravstvene skrbi (engl. Communication and Training forHealth Care Workers, 5%).8
2.1.1 Edukacija i osvješćivanjeSistemom kratkih poruka, popularnim SMS-om (engl. Short Message System), omogućen jejeftin, efikasan i skalabilan način pružanja raznih usluga za široko područje zdravstvenihproblema. SMS poruke s informacijama o testiranjima, metodama liječenja i dostupnostizdravstvenih usluga šalju se direktno na mobilni telefon. SMS alarmi imaju nenametljiveprednosti i pružaju povjerljivost primateljima u okruženju gdje su bolesti (npr. AIDS/HIV)najčešće tabu tema. U zemljama u razvoju SMS alarmi pokazali su se izuzetno efektnima zaciljanu populaciju koja je teže dostupna i živi u ruralnim područjima u kojima nedostajeadekvatne zdravstvene zaštite i medicinskih djelatnika.SMS poruke se mogu koristiti kako jednosmjerni alarmi ili kao interaktivni alat korišten zazdravstvene usluge povezan s edukacijom i komunikacijom. Npr., osoba se putem SMS-amože prijaviti za anketu o AIDS-u i saznati gdje se nalazi najbliži centar za testiranje. Ovametoda koristi se u zemljama poput Indije, Ugande i Južnoafričke Republike s namjerompromoviranja edukacije o AIDS-u, testiranja i pružanja korisnih informacija.U promicanju zdravstvene svijesti programi za edukaciju i osvješćivanje imaju jako pozitivanutjecaj. SMS poruke su jeftine, dostupne svakome i poštuju načela o privatnosti korisnika.2.1.2 Udaljeno prikupljanje podatakaPrikupljanje podataka jedna je od krucijalnih komponenti u javnim zdravstvenim programima.Pružatelji zdravstvenih usluga na nacionalnoj i lokalnoj razini trebaju precizne podatke da bimogli izmjeriti utjecaj postojećih politika i programa te po potrebi oblikovati nove. Uzemljama u razvoju izuzetno je važno prikupljanje podataka na terenu jer velik postotakstanovništva rijetko posjećuje bolnice i domove zdravlja. Proces prikupljanja podataka jeefikasniji i vjerodostojniji ako se radi pomoću SmartPhone ureñaja, osobnih digitalnihasistenata ili mobilnih telefona nego da se koristi klasična papirologija. Odgovorna osoba(najčešće liječnik) može ručno unositi podatke o pacijentu u pokretni ureñaj i slati ih nasredišnju bazu podataka.9
2.1.3 Udaljeno nadziranjeUdaljeno nadziranje jedno je od najprikladnijih područja rada pogodnih za korištenje pomoćunaprednih mobilnih tehnologija. Udaljeno nadziranje otvara nove mogućnosti za liječenjepacijenata koji se nalaze u područjima s ograničenim brojem bolničkih kreveta inemogućnostima kliničkoga liječenja. Aplikacije koje se koriste u ovom segmentu koristejednosmjernu ili dvosmjernu komunikaciju za nadzor zdravstvenih uvjeta i dogovaranjetermina zdravstvenih pregleda. Neke <strong>aplikacije</strong> takoñer uključuju senzore za nadzor uvjeta ukojima se nalaze pacijenti na bolničkom i izvanbolničkom liječenju.2.1.4 Komunikacija i trening osoblja zaposlenoga u sustavu zdravstvene skrbiAkutni manjak zdravstvenih djelatnika veliki je izazov s kojim se suočavaju zemlje u razvoju,ali i razvijene zemlje. Treniranje novih, sposobnih kadrova i poboljšavanje sposobnostipostojećih zaposlenika od esencijalne je važnosti za unaprijeñivanje sustava zdravstvenezaštite. Povezivanje djelatnika zaposlenih u zdravstvenoj skrbi s izvorima informacija putemmobilnih tehnologija snažna je osnova za osnaživanje sposobnosti zaposlenika pošto pružapodršku koja im je potrebna za efikasno izvoñenje njihovih zadataka.2.1.5 Praćenje zaraza i širenja epidemijaIzbijanje infektivnih bolesti često nije dovoljno kontrolirano i ukoliko se na vrijeme ne uoči,može prerasti u epidemiju. To su bolesti poput kolere, tuberkuloze i tropske groznice.Pokretni ureñaji imaju mogućnost da brzo „uhvate“ i pošalju podatke o pojavi zaraze te setime može puno napraviti u prevenciji bolesti.2.1.6 Podrška dijagnostici i liječenjuPodrška dijagnostici i liječenju od životne su važnosti u zdravstvenoj skrbi. Aplikacijemobilnoga zdravstva u ovom području dizajnirane su da pružaju dijagnoze i savjete zaliječenje za udaljenje djelatnike zaposlene u zdravstvenoj skrbi korištenjem bežičnog pristupainformacijskim bazama podataka te kontaktiranjem drugog medicinskog osoblja.10
2.2 Tehnologije korištene u mobilnom <strong>zdravstvu</strong> i njihove mogućnostiKljučne pokretne tehnologije važne za mobilno zdravstvo uključuju [15]:- <strong>mobilne</strong> telefone,- PDA ureñaje i „pametne telefone“ (SmartPhones),- ureñaje za nadzor pacijenata,- pokretne telemedicinske ureñaje,- MP3 ureñaje za mLearning i- mikroračunala.Područja interesa mobilnoga zdravstva uključuju neke od sljedećih primjena:- sustave za hitno interveniranje,- koordinaciju, upravljanje i nadzor pacijenata,- kliničku njegu i udaljeno nadziranje pacijenata,- zdravstveno orijentirane mLearning metode korištene za javne primjene,- trening i profesionalni razvoj medicinskog osoblja i- promociju zdravlja.GLASOVNA KOMUNIKACIJA najčešće se koristi kao dvosmjerna veza izmeñu dvijeosobe, iako se sve više koriste automatizirani sustavi koji mogu omogućiti snimanje ikorištenje glasovnih informacija umjesto stvarne osobe.PODATKOVNA KOMUNIKACIJA i pristup podacima se primarno odnosi na vizualizacijustatičnog teksta, no može se i proširiti u interaktivne algoritme za potporu odlučivanju ikomunikacijske mogućnosti kroz integraciju e-maila i SMS-a. Upotpunjujući upotrebu GIS-a(engl. Geographic Information System) i GPS-a (engl. Global Positioning System) spokretnim tehnologijama, moguće je omogućiti „označavanje“ glasa ili traženog podataka naodreñenoj lokaciji. Ova kombinacija pokazala se izvrsnom za hitne medicinske intervencije inadziranje širenja zaraza.11
3. Korištene tehnologije i razvojna okruženjaU ovome poglavlju ukratko su opisani svi alati korišteni za dobivanje konačne verzijediplomskoga rada. Radi se o alatima potrebnima za stvaranje <strong>aplikacije</strong> i alatima kojiomogućavaju efikasno i učinkovito upravljanje i manipuliranje podacima pospremljenima ubazu podataka.3.1 JavaJava [17] uključuje niz računalnih softverskih proizvoda i specifikacija nastalih unutar tvrtkeSun Microsystems. Svi skupa pružaju sustav za razvoj aplikacijskoga softvera koji se možeimplementirati u različite razvojne okoline. Java se danas koristi u raznim aspektimaprogramerskih djelatnosti, od primjene na mobilnim ureñajima ograničenih resursa, pa sve doprimjene kod golemih Web poslužitelja i poduzetničkih aplikacija.Nezaobilazan pojam vezan uz Javu je Javina platforma – mjesto na kojemu se razvijaju ipokreću programi napisani u programskom jeziku Java. Platforma se sastoji od nizaprograma. Svaki od njih ima ograničen skup mogućnosti. Osnovne komponente platformečine Java jezični prevoditelj (engl. compiler), skup biblioteka (engl. libraries) te okolina zaizvoñenje (engl. runtime environment) u kojoj se Javin bytecode (tj. posrednički jezik za JavaVirtual Machine (JVM)) izvodi prema pravilima navedenima u specifikaciji virtualnog stroja(engl. virtual machine).Srce Javine platforme čini koncept virtualnog stroja koji izvršava Javin bytecode, neovisan osklopovlju ili operacijskom sustavu. Iako su programi napisani u Javi neovisni o platformi,kod koji pripada Java Virtual Machine (JVM) i izvršava ove programe to ipak nije. Svakioperacijski sustav ima svoj vlastiti JVM.3.2 Java Micro EditionJava Micro Edition [18] (često poznata i pod nazivom J2ME, Java 2 Platform, Java ME iliMicro Edition) je specifikacija podskupa Javinih platformi usmjerena na pružanje odreñenihkolekcija Java API-ja namijenjenih razvoju softvera za male, resursno ograničene ureñaje.12
Java Micro Edition je proizvod tvrtke Sun Microsystems i nadogradnja tehnologije poznatepod nazivom PersonalJava. Radi se o vrlo popularnom alatu za kreiranje igrica za mobitele,pošto one u procesu razvoja mogu biti testirane na računalnom emulatoru i kasnije se lakoimplementiraju na mobilni ureñaj.Za rad s okruženjem Java Micro Edition nužno je poznavati CLDC (engl. Connected LinitedDevice Configuration), koji posjeduje ograničen skup Javinih klasa potrebnih da bi Javavirtual machine (JVM) mogla normalno funkcionirati. Osnovna namjena CLDC-a jeklasificiranje mnogobrojnih ureñaja u fiksne konfiguracije.Java Micro Edition ureñaji implementiraju profil (engl. profile). Najpoznatiji korišteni profilje Mobile Information Device Profile namijenjen pokretnim ureñajima (mobitele i PDAureñaje.)Posebno za mobitele koristi se MIDP (engl. Mobile Information Device Profile) koji koristiGUI (engl. Graphical User Interface) API i osnovni GUI koji podržava izradu 2D igrica.Aplikacije koje su napisane unutar ovoga profila nazivaju se MIDleti. Gotovo svi novimobilni ureñaji podržavaju MIDP jer je danas to de facto standard za igrice na mobitelima.MIDlet je Javin aplikacijski okvir za Mobile Information Device Profile (MIDP) koji setipično koristi na mobilnim ureñajima koji podržavaju Javu ili na aplikacijama. PrimjerMIDleta je igrica koja se pokreće na mobitelu.3.3 Java ServletServleti [19] su objekti programskoga jezika Java koji dinamički procesiraju principzahtjev/odgovor: klijent šalje HTTP (engl. HyperText Transfer Protocol) zahtjev premaposlužitelju, servlet na poslužitelju ga prihvaća te formira za klijenta traženi odgovor. JavaServlet API dopušta osobama koje razvijaju softver da dinamički dodaju sadržaj na Webposlužitelj korištenjem Java platforme. Generirani sadržaj je najčešće HTML (engl.HyperText Markup Language), iako se može raditi i o XML (engl. eXtensible MarkupLanguage) podacima.Servleti koriste kontejnere (engl. container), specijalizirane Web poslužitelje koji podržavajuizvedbu servleta. Kombiniraju osnovnu funkcionalnost Web poslužitelja sa specifičnimdodacima i optimizacijskim metodama te mogućnostima da automatski prevode specifičanURL (engl. Uniform Resource Locator) u servletske zahtjeve. Individualni servleti registrirani13
su kod servletskog kontejnera pružajući mu informaciju o svojoj funkcionalnosti iobavještavaju ga da li koriste URL ili neki drugi lokator resursa. Kontejner ima mogućnostinicijalizacije servleta u slučaju kada je to potrebno i dostavlja im primljene zahtjeve. Mnogikontejneri mogu dinamički dodavati i uklanjati postojeće servlete iz sustava te vrlo brzo iefikasno uvoditi nove servlete bez da pritom utječu na one postojeće.Svaki servlet ima svoj životni ciklus koji se sastoji od sljedećih koraka:1. prilikom pokretanja se klasa Servlet puni posredstvom kontejnera;2. kontejner poziva metodu init() koja inicijalizira servlet i mora se pozvati prijenego poslužitelj primi zahtjev. Ovo je metoda koja se poziva samo jednom ucijelom životnom ciklusu servleta;3. nakon inicijalizacije servlet može primati zahtjeve klijenta. Svaki zahtjev seobrañuje unutar zasebne dretve. Kontejner za svaki primljeni zahtjev pozivametodu service() koja odreñuje vrstu zahtjeva i poziva odgovarajuću metoduunutar koje će zahtjev biti obrañen. Ukoliko ne postoji odgovarajuća metoda,poziva se metoda iz roditeljske klase i najčešće rezultira pogreškom koja se vraćaklijentu;4. naposlijetku kontejner poziva metodu destroy() koja povlači servlet izupotrebe. Ovo je metoda koja se, poput metode init(), poziva samo jednom uživotnom tijeku servleta.3.4 NetBeans 6.5.1NetBeans [20] je integrirana razvojna okolina za razvijatelje softvera. U njoj je vrlojednostavno napraviti cijeli niz programa, kao što su, <strong>aplikacije</strong> za mobitel i Web <strong>aplikacije</strong>, ito u programskim jezicima kao što su Java, C/C++, PHP, JavaScript, Groovy i Ruby.NetBeans je neovisan o platformi na kojoj se izvodi.3.5 SQLSQL [21] (engl. Structured Query Language) najpopularniji je računalni jezik za izradu,pronalaženje, ažuriranje i brisanje podataka iz relacijskih sustava baze podataka. SQL jestandardiziran od strane organizacija ANSI i ISO.14
3.6 Microsoft SQL Server 2005 Express EditionMicrosoft SQL Server 2005 Express Edition [22] je poslužitelj baze podataka koncipiran narelacijskom modelu. Radi se o integriranom sustavu za obradu i analizu podataka kojiomogućuje organizacijama da pouzdano upravljaju kritičnim informacijama unutar svogposlovnog okruženja. Microsoft SQL Server 2005 Express Edition je vrlo stabilan prozvodkoji je potvrdio svoje kvalitete već u ranijem izdanjima. Podržava veliku količinu aplikacija teima mogućnosti razvoja novih funkcionalnosti.3.7 Microsoft SQL Management StudioMicrosoft SQL Management Studio [23] je vrlo jednostavan, korisniku blizak grafički alat zaupravljanje sustavima Microsoft SQL Server 2005 i Microsoft SQL Server 2005 ExpressEdition with Advanced Services. Kompatibilan je i sa Microsoft SQL Server DatabaseEngine.15
4. Idejno rješenje diplomskoga zadatkaIdeja za projekt eHealthMobile, na temelju kojega je rañen ovaj diplomski rad, nastala je uljeto 2008. u sklopu Summer Campa tvrtke Ericsson Nikola Tesla. Na njemu su radili studenti4. godine smjera Telekomunikacije i informatika s Fakulteta elektrotehnike i računarstva.Projekt je pružao samo osnovne funckionalnosti i morao je biti proširen i nadograñendodatnim mogućnostima.Diplomski rad napisan je u programskom jeziku Java i kreiran u razvojnom okruženjuNetBeans uz bazu podataka Microsft SQL Server 2005 Express Edition. Podaci koji suzapisani u bazi podataka vrlo se lako mogu provjeriti korištenjem grafičkog alata MicrosoftSQL Server Management Studio.Cilj diplomskoga zadatka je unaprijediti i poboljšati performanse postojeće <strong>mobilne</strong> <strong>aplikacije</strong>za terenskog liječnika. Problem s kojim se susrećemo kod postojeće <strong>aplikacije</strong> je unesinkroniziranosti podataka izmeñu globalnog poslužitelja i podataka koji se lokalnopospremaju u pokretni telefon. Stoga se praktični dio <strong>aplikacije</strong> dijeli na dva dijela.Prvi dio čini klijentski dio koji koristi osoba (najčešće terenski liječnik) koji se koristimogućnostima <strong>mobilne</strong> <strong>aplikacije</strong> (MIDlet; Java Micro Edition platforma) i bežičnim putemšalje podatke na poslužiteljsku stranu i od njega prima podatke o uspješnom ili neuspješnompospremanju istih u bazu podataka. Ukoliko podaci nisu uspješno poslani, klijent imamogućnost ponovnog slanja podataka poslužitelju.Drugi dio <strong>aplikacije</strong> čini poslužiteljska strana na kojoj je implementirana baza podataka ukoju se pohranjuju i iz koje se dohvaćaju podaci koje zahtijeva klijent.Obje strane meñusobno komuniciraju i razmijenjuju podatke o pacijentima upotrebomservleta. Komunikacija klijenta i poslužitelja je sinkrona: klijent je blokiran dok ne dobijeodgovor od strane poslužitelja. Opisanu komunikaciju moguće je vidjeti na Slici 4.Slika 4. Grafički prikaz ideje diplomskoga zadatka16
5. Lokalni zapis informacijaSituacija koja je bila prisutna na početku omogućavala je liječniku na terenu da u mobilniureñaj unosi podatke o pacijentima te o njihovim bolestima, cjepivima i zarazama. Na Slici 5moguće je vidjeti zaslon mobitela u trenutku unosa podataka o pacijentu:Slika 5. Zaslon mobitela u trenutku unosa podataka o pacijentuSvi uneseni podaci lokalno se pospremaju u zapise tipa RecordStore (24). Oni se sastojeod kolekcije permanentno zapisanih podataka koji ostaju sačuvani i u slučajevima višestukihpokretanja MIDleta. Zapisi su jedinstveno identificirani pomoću identifikatora (recordID)koji imaju cjelobrojnu vrijednost. recordID meñu zapisima ima ulogu primarnog ključa.Prvi u nizu zapisa ima recordID jednak 1. Dodavanjem svakog idućeg zapisa recordIDse automatski povećava za jedan u odnosu na prethodni zapis. Npr., ako je recordIDtekućeg zapisa jednak n, tada je recordID sljedećeg zapisa jednak n + 1.17
Alternativan način pospremanja podataka o pacijentima je korištenje tekstualnih datoteka ilipak baze podataka za mobitele. Niti jedno od predloženih rješenja nije se pokazalo dobrim nitiefikasnim.Problem kod korištenja tekstualnih datoteka je u nekompatibilnosti i neprimijenjivostidatotečnog sustava pokretnog telefona i emulatora. Naime, prilikom svakog pokretanja<strong>mobilne</strong> <strong>aplikacije</strong> otvara se novo privremeno spremište unutar kojega se nalazi i tekstualnadatoteka u koju se pospremaju zapisi o pacijentu. Zatvaranjem <strong>aplikacije</strong> briše se i privremenospremište, a skupa s njim i datoteka u kojoj su se nalazili podaci. Nakon dugotrajnogpokušavanja da se izbjegne navedeni problem, zaključeno je da predloženo rješenje u svakomslučaju ne može biti dobro zbog nejedinstvenosti datotečnog sustava na pojedinom pokretnomureñaju. Prilikom svakog pokretanja na mobitelu morala bi se gledati raspoloživost memorijete ponovno namještati staza do datoteke, što može biti vrlo zahtjevno i problematično.Jedno od predloženih rješenja bilo je i korištenje baze podataka za mobitele, no takve izvedbese danas još uvijek rijetko koriste. Napravljeno je nekoliko pokušaja s bazom Mimer SQLMobile 9.3, no razvojna okolina ga nije podržavala bez dodatnih biblioteka. Čak i nakonnjihovog dodavanja rješenje se nije pokazalo optimalnim zbog velike sporosti u pristupupodacima.Korištenje RecordStore strukture zapisa pokazalo se kao optimalno rješenje za lokalnupohranu podataka. Naime, podaci o pacijentima i njihovim bolestima ne zauzimaju velikiprostor u memoriji i rješenja poput baze podataka za mobitele ovdje jednostavno nemajunikakvu praktičnu ulogu osim što dodatno kompliciraju situaciju. Podacima uRecordStore strukturi jednostavno se pristupa putem jedinstvenog cjelobrojnogidentifikatora.Jedini problem koji se pojavio u predloženom rješenju je u tome što se podaci uRecordStore pohranjuju kao bolje bajtova (eng. byte) i prilikom kasnijeg dohvata semoraju prebacivati u tip podataka String. Zbog toga je kreirana posebna metoda kojoj jenamjena rješavanje navedenog problema.18
5.1 Lokalno pospremanje informacija u mobilni ureñajU diplomskome radu koristilo se nekoliko struktura tipa RecordStore za pospremanjepodataka o pacijentima: u jednu su se pospremali osobni podaci pacijenta (ime, prezime,očevo ime, datum roñenja i spol); u preostale su se pospremali podaci o alergijama, cjepivimai bolestima, s istom shemom strukture koja sadrži datum kada je problem uočen, naziv bolesti(odnosno, alergije ili cjepiva) te reakciju na iste. Stvorena je i jedna struktura sa zapisima odnevnim zadacima (engl. tasks) te jedna velika struktura imena savedData u koju sepospremaju sve aktivnosti koje je liječnik obavljao do trenutka slanja podataka kroz mrežuprema poslužitelju. Takva struktura, u prenesenom značenju, ima gotovo istu uloga kaolokalna baza podataka jer se svakome zapisu jedinstveno pristupa putem identifikatora(recordID). Kada liječnik pošalje te podatke na mrežu, podaci u lokalnoj „bazi podataka“(tj. strukturi tipa RecordStore) se brišu ako na mobilni ureñaj doñe potvrda da su podaciuspješno pohranjeni u bazu podataka na poslužitelju. Ako je slanje podataka bilo neuspješno,podaci ostaju sačuvani do trenutka u kojemu liječnik uspijeva obaviti uspješno slanje svihpodataka središnjem računalu.19
6. Baza podataka6.1 Problem sinkronizacije lokalnih i globalnih podatakaLokalni zapis podataka vrlo je praktičan liječniku koji putuje iz mjesta u mjesto i unosipodatke o pacijentima u svoj pokretni telefon. No, povratkom u ordinaciju javlja se problemmeñusobne usklañenosti, odnosno sinkronizacije informacija o pacijentu s podacima koji senalaze u njegovom zdravstvenom kartonu. Moguće rješenje je da liječnik prilikom unosapodataka u pokretni telefon odmah preko mreže šalje podatke poslužitelju, no vrlo je važnouzeti u obzir činjenicu da nisu sva područja na kojima liječnici djeluju prekrivena bežičnommrežom i liječnik ne može uvijek u trenutku obavljene akcije slati podatke središnjemposlužitelju. Umjesto toga, liječnik ima mogućnost lokalnog pospremanja podataka i uželjenom trenutku, kada bude u dometu mreže, pošalje podatke poslužitelju umjesto da ihručno unosi u računalo kada se vrati u ordinaciju. Stoga je od esencijalne važnosti osiguratifunkcionalnu bazu podataka na poslužiteljskome računalu koje će omogućiti liječniku daefikasno raspolaže podacima o pacijentu.6.2 Elementi strukture baze podatakaBaza podataka [25] je zbirka zapisa pohranjenih u računalu na sustavni i organizirani način.Svaki se zapis obično prepoznaje kao skup elemenata. Računalni program korišten zaupravljanje i ispitivanje baze podataka naziva se SUSTAV ZA UPRAVLJANJE BAZOMPODATKA (SUBP).Svaka baza podataka ima vlastiti opis vrste sadržanih činjenica i taj opis naziva se SHEMA.Shema opisuje predmete koji su prikazani u bazi podataka te odnose meñu njima. Sve shemesu vremenski nepromjenjive, osim ako je zbog nekih razloga došlo do njenogprestrukturiranja uslijed dodavanja ili oduzimanja nekih elemenata. Shema je zapravokonačan niz ATRIBUTA, tj. obilježja kojima je jednoznačno odreñena vrsta svojstva.Redoslijed atributa u shemi je nebitan.Postoje različiti oblici organiziranja sheme, tj. modeliranja baze podataka koje nazivamoMODELI BAZA PODATAKA (ili MODELI PODATAKA). Danas je u najširoj upotrebi20
ODNOSNI MODEL, koji prikazuje sve informacije u obliku odnosnih tablica koje se sastojeod redova i stupaca.Za slaganje redova podataka u različitim tablicama koriste se posebni atributi koje nazivamoKLJUČEVIMA. Ako se ključ koristi za jedinstveno identificiranje reda u tablici, tada se onnaziva JEDINSTVENIM KLJUČEM. Kada se jedan od jedinstvenih ključeva na preferiraninačin koristi za povezivanje s retkom tablice, radi se o PRIMARNOM KLJUČU tablice.Ukoliko je atribut (ili skup atributa) u nekoj tablici ujedno i primarni ključ u nekoj drugojtablici, tada ga nazivamo STRANIM KLJUČEM.6.3 Model entitet-vezaModel entitet-veza [26] (u daljnjem tekstu MEV) opisuje dio realnoga svijeta pomoćusljedećih osnovnih elemenata strukture:- entiteta,- njihovih meñusobnih veza i- odgovarajućih atributa.Svi navedeni elementi razlučuju se na temelju informacija o strukturi podataka.Autor MEV-a je Peter Chen koji je 1976. godine opisao Entity-Relationship Model. Tijekomvremena model se razvijao tako da danas postoji nekoliko varijanti MEV-a. Osnovni model jeproširen novim konceptima, omogućen je opis viših tipova veza, no većina varijanti se bitnone razlikuje. MEV se koristi isključivo za opis konceptualnog modela podataka. Konceptualnashema u MEV-u prikazana je u obliku DIJAGRAMA ENTITETI-VEZE (u daljnjem tekstuDEV). Postoji više grafičkih prikaza DEV-a od kojih se najčešće koristi Chenov prikaz (natemelju osnovnog proširenog MEV-a) i Martinov prikaz. Za potrebe diplomskoga rada koristitće se Chenov prikaz. Opis osnovnih ideja i grafičkog prikaza elemenata DEV-a dan je unastavku.6.3.1 Entitet, veza i atributEntitet [26] je stvaran ili apstraktan predmet, dogañaj, objekt ili koncept koji je bitan zainformacijski opis sustava koji se modelira. On se prema svojima atributima razlikuje odostalih elemenata u sustavu. Svi entiteti koj imaju iste atribute opisa grupiraju se u TIP21
ENTITETA, a svaki od njih se prepoznaje po svojem nazivu i skupu atributa koji ga opisuju.Entitet može biti identifikacijski JAK ili SLAB. Odnosi izmeñu tipova entiteta opisuju seelementom veza. Ako tip entiteta promatramo kao skup entiteta, tada se matematički vezamože izraziti kao matematičko pridruživanje elemenata skupova. Veza može bitijednoznačna, uvjetna ili višeznačna. Pridruživanje je:- JEDNOZNAČNO ako je svakom članu jednog tipa entiteta (skupa) A pridružen jedani samo jedan član tipa entiteta B. Kardinalnost se označava oznakom 1, 1;- UVJETNO ako je svakom članu jednog tipa entiteta (skupa) A pridružen jedan ilinijedan član tipa entiteta B. Kardinalnost se označava oznakom 0, 1;- VIŠEZNAČNO ako je svakom članu jednog tipa entiteta (skupa) A pridružen nijedan,jedan ili više članova tipa entiteta B. Kardinalnost se oznčava oznakom 0, M.Atributi predstavljaju obilježja tipova entiteta. Domena atributa definira moguće vrijednostikoje atribut može poprimiti.Kako bi se svaki entitet koji pripada odreñenom tipu entiteta mogao jednoznačno odrediti uodnosu na sve ostale entitete tog tipa entiteta, koristi se koncept ključa, koji je objašnjen napočetku ovoga poglavlja.6.3.2 Chenov grafički prikaz modela entiteti-vezeElementi koji čine MEV, odnosno DEV su: elementarni tip entiteta, odnos (veza), izvedeni tipentiteta i atribut. Uz liniju odnosa se stavlja oznaka E za egzistencijalno slabe entitete ioznaka I za identifikacijski slabe entitete. Svi elementi DEV-a se imenuju.Osnovni grafički elementi Chenovog prikaza MEV-a (prikaz jakog, slabog tipa entiteta,ključnih i neključnih atributa te veza) prikazani su na Slici 6.NAZIV_TIPA_ENTIETAjaki tip entitetaNAZIV_TIPA_ENTIETAslabi tip entiteta0, 1 NAZIV1, Mveza 1 VEZEveza 2NAZIV ATRIBUTAvezaNAZIV_ATRIBUTAneključni atributključni atributSlika 6. Grafički prikaz elemenata MEV-a prema Chenu (preuzeto iz [26])22
6.3.3 Primjena Chenovog dijagrama na primjeru odnosa u DoctorAppEntiteti korišteni u bazi podataka DoctorApp su sljedeći: LIJEČNIK (engl. doctor),PACIJENT (engl. patient), CJEPIVO (engl. vaccine), ALERGIJA (engl. allergy), BOLEST(engl. disease) i ZADATAK (engl. task). Jedan ili više liječnika (kardinalnost 1, M) u sustavmože, ali i ne mora unositi novoga pacijenta (kardinalnost 0, M), a svaki pacijent može imatinula ili više (kardinalnost 0, M) primljenih cjepiva, alergija i/ili bolesti. Liječnik takoñer imanula ili više zadataka koje mora obaviti (kardinalnost 0, M)Entiteti, veze i atributi prikazani Chenovim dijagramom prikazani su u Tablicama 1-3 upoglavlju 7.4. Naziv tablice odgovara imenu entiteta. Nazivi stupaca u tablici odgovarajuatributima entiteta. Ključni atributi su podcrtani.Entitet LIJEČNIK nema posebnih atributa. Stupci, odnosno atributi, Day, Month i Year uTablici 1 označavaju dan, mjesec i godinu roñenja pacijenta. Stupci Name, Surname,FatherName i Sex označavaju ime, prezime, očevo ime i spol pacijenta. Uz Tablicu 2važno je napomenuti da atribut ID_foreign ima ulogu stranoga ključa. Radi se oidentifikacijskom broju pacijenta, odnosno primarnom ključu ID u tablici dbo.Patients.Atribut Description odnosi se na opis cjepiva, bolesti ili alergija, dok atribut Reactionopisuje rekaciju na iste. Atributi Day, Month i Year označavaju dan, mjesec i godinuuočenoga problema (alergije ili bolesti), odnosno primljenoga cjepiva. Entitet ZADATAK(engl. task, tablica dbo.Tasks) ima svoj vlastiti identifikator (ID_T), te atribute kojioznačavju točan datum izvršenja zadatka (Day, Month i Year), opis zadataka (atributDescription) te ime, prezime i očevo ime pacijenta za kojega se odreñeni zadatak moranapraviti (Name, Surname, FatherName).Prikaz tipa entiteta prema Chenovoj notaciji za opisanu situaciju nalazi se na Slici 7.23
DOCTOR1,MIDNameSurnameFatherNameDayMonthYearSexenters0,M 0,MPATIENTTASKhasID_TDayMonthYearDescriptionNameSurnameFatherNameID_AID_foreign0,M 0,M 0,MALLERGY DISEASE VACCINEID_DID_foreignID_VID_foreignDescriptionDescriptionDescriptionDayDayDayMonthYearReactionMonthYearReactionMonthYearReactionSlika 7. Prikaz tipa entiteta prema Chenu24
6.4 Baza podataka na poslužiteljuNa poslužitelju se nalazi organizirana baza podataka. U ovome primjeru baza podataka zovese DoctorApp i sadrži pet tablica vrlo slične strukture. Imena tablica koje sadrži bazapodataka su: dbo.Patients, dbo.Allergies, dbo.Vaccines,dbo.Diseases i dbo.Tasks. Svaka tablica ima primarni ključ, a to je cijeli broj kojiodgovara rednom broju zapisa podataka u lokalno korištenoj strukturi tipa RecordStore.Dakle, tablice koje se nalaze u bazi podataka na poslužiteljskoj strani ekvivalenti su podacimau strukturama RecordStore koje se koriste kao spremište za lokalni zapis podataka.Tablice dbo.Patients i dbo.Tasks imaju primarni ključ koji je jednak rednom brojuzapisa pacijenta, odnosno liječnikovog zadatka, u lokalno spremište. Tablicedbo.Allergies, dbo.Vaccines, dbo.Diseases imaju primarni ključ koji jejednak rednom broju zapisa o alergiji (odnosno cjepivu ili zarazi) u lokalnom spremištu, no uzprimarni sadrže i strani ključ, a to je redni broj pacijenta pomoću kojega se jednoznačno možeodrediti od kojega problema pati pojedina bolesna osoba.Tablice 1-3 prikazuju shemu pojedine tablice. Sve tablice nalaze se unutar baze DoctorApp.dbo.PatientsID Name Surname FatherName Day Month Year SexTablica 1. Struktura tablice dbo.Patientsdbo.Allergies, dbo.Diseases, dbo.VaccinesID_x ID_foreign Description Day Month Year ReactionTablica 2. Struktura tablica dbo.Allergies, dbo.Diseases i dbo.Vaccinesdbo.TasksID_T Day Month Year Description Name Surname FatherNameTablica 3. Struktura tablice dbo.TasksUz Tablicu 2 važno je napomenuti da primarni ključ, koji se nalazi u prvome stupcu, namjestu vrijednosti x ima vrijednost A za tablicu dbo.Allergies, D zadbo.Diseases te V za tablicu dbo.Vaccines.Podacima u bazi podataka dinamički se pristupa korištenjem SQL funkcija SELECT,INSERT, UPDATE i DELETE koje su programski ostvarene unutar programa naposlužiteljskoj strani. Unutar istoga programa radi se i povezivanje na bazu podataka teautorizacija korisnika o kojima će biti riječ u kasnijim poglavljima.25
7. Komunikacija klijenta i poslužitelja7.1 Osnovni model klijent-poslužiteljRačunalna mreža je sustav koji povezuje slične ili različite ureñaje u jednu cjelinu. Utelekomunikacijskim mrežama povezuju se ureñaji za obradu podataka i komunikacijskiureñaji smješteni na različitim lokacijama. Najčešće korištena arhitektura utelekomunikacijskim mrežama je model klijent-poslužitelj (27), (28).Način funckioniranja modela klijent-poslužitelj:1. poslužiteljski proces započinje na računalu na kojemu je smješten, pokreće se, a zatimprelazi u sleep mod i čeka da ga kontaktira klijentski proces tražeći od njega nekuuslugu;2. klijentski proces putem mreže šalje zahtjev do poslužitelja i traži od njega odreñenuuslugu;3. kada poslužiteljski proces dovrši posao koji je od njega zahtijevao klijent, ponovnoodlazi u sleep mod i čeka sljedeći zahtjev za nekom uslugom.Poslužitelji se najčešće koriste za komunikacijske usluge, transakcijske usluge te za usluge zabaze podataka, a upravo to je i uloga poslužitelja u ovome diplomskome radu. Osnovnaprednost korištenja arhitekture klijent-poslužitelj je ta što je baza podataka nezavisna odaplikacija jer integritet baze osigurava njenu nezavisnost od aplikacija koje nad njom rade.7.2 HTTPProtokol koji se koristi za razmjenu poruka izmeñu klijenta i poslužitelja je HTTP (29) (engl.HyperText Transfer Protocol). Radi se o protokolu aplikacijskog sloja koji se koristi koddistribuiranih informacijskih sustava koji meñusobno surañuju. Tipično je da HTTP klijentpošalj zahtjev i uspostavlja TCP (engl. Transmission Control Protocol) konekciju naodreñena vrata (engl. port) na poslužitelju. Ako nije drukčije definirano, radi se opodrazumijevanim vratima 80. HTTP poslužitelj osluškuje zahtjeve klijenta na definiranimvratima. Kada primi zahtjev, poslužitelj vraća klijentu statusnu liniju te vlastitu poruku kojuformira na temelju zahtjeva klijenta. Svaka poruka ima svoje zaglavlje i tijelo.26
Resursi kojima se pristupa putem HTTP-a jednoznačno su definirani putem URI-ja (engl.Uniform Resource Identifier) ili URL-a (engl. Uniform Resource Locator), koristeći pritomhttp ili https sheme.Opća sintaksa URI-ja ima sljedeću strukturu:URI = scheme “:“ hier – part [“?“ query] [“#“ fragment]shema autoritet upit fragment7.2.1 Zahtjevi i metodeZahtjevi klijenata sastoje se od sljedećih elemenata: linije zahtjeva, zaglavlja, prazne linije iopcionalnog tijela poruke.Najčešće korištene metode u zahtjevima klijenata su: GET, HEAD i POST. Metoda GETkorištena je u diplomskome radu i zahtijeva od poslužitelja odreñeni resurs.7.2.2 Sigurnosni HTTPTrenutačno se koriste dvije metode za uspostavu sigurnosne HTTP konekcije: HTTPS URIshema i HTTP 1.1 Upgrade header, definiran u dokumentu RFC 2817, no njegova upotrebajoš uvijek nije široko prihvaćena. HTTPS URI shema je dominantna metoda za uspostavusigurnosne HTTP konekcije i zabilježava se prefiksom https:// umjesto http://7.3 Formiranje zahtjeva na klijentskoj straniKao što je već detaljno objašnjeno u prethodnim poglavljima, podaci se lokalno pospremaju ustrukture tipa RecordStore. Svakome zapisu jednoznačno se pristupa korištenjemidentifikatora recordID. U opisanu strukturu podaci se zapisuju kao niz bajtova i kasnijese, prilikom dohvaćanja, pretvaraju u podatke tipa String da bismo mogli vidjeti njihovekonkretne vrijednosti.27
Kada liječnik želi poslati podatke središnjem poslužitelju, odnosno obaviti sinkronizaciju,jedino što mora uzeti u obzir je činjenica da mora imati pristup mreži. Na Slici 9 nalazi seprikaz zaslona mobilnog ureñaja u trenutku kada liječnik odluči obaviti sinkronizaciju:Slika 8. Izgled zaslona mobilnog ureñaja u trenutku sinkronizacijeŠto se dogaña u programskome kodu kada se radi sinkronizacija? U posebnoj metodi dohvaćase struktura tipa RecordStore koja se naziva savedData i u koju su pohranjene sveaktivnosti koje je liječnik do odreñenog trenutka napravio, npr. unos osobnih podataka opacijentu, unos cjepiva i informacija o bolesti, zadaci koje mora obaviti, itd. U jednometrenutku liječnik odlučuje napraviti sinkronizaciju, odnosno slati podatke kroz mrežu da bi biliusklañeni s podacima na središnjem poslužitelju. Zato odabire opciju Syncronize. Podacise dohvaćaju iz strukture SavedData, pretvaraju se u podatke tipa String te se formirapodatak koji se putem URI-ja šalje poslužitelju. Primjer jednog opisanog URI-ja nalaze se naSlici 10.28
Slika 9. Primjer zahtjeva poslanoga poslužitelju putem URI-jaU navedenom primjeru nalaze se podaci o pacijentu: njegovo ime, prezime, očevo ime, dan,mjesec i godina roñenja te spol, dok se na početku nalazi ime tablice u koju se podaci morajupospremiti. Svi navedeni podaci moraju se odvojiti zarezom jer se unutar URI-ja ne smijunalaziti razmaci. Pritom se koristi metoda GET.Ukoliko je podatak uspješno poslan i pospremljen u bazu podataka, liječnik će primiti sljedećiodgovor: You have successfully stored your data! U trenutku kada jepodatak uspješno poslan središnjem poslužitelju isti se briše u lokalnom spremištu.Ukoliko je došlo do neupješnog pohranjivanja podataka u bazu podataka na središnjemposlužitelju, liječnik će dobiti sljedeću poruku: Data failed to store! U tom slučajuneće doći do brisanja podataka u lokalnoj strukturi storedData i liječnik ima mogućnostponovnog slanja podataka. Ako liječnik nema pristup mreži, podaci se neće poslatiposlužitelju, ali će ostati zabilježeni u lokalnom spremištu i prilikom ponovnog pokretanja<strong>aplikacije</strong>, uz uvjet da je omogućen pristup mreži, može doći do retransmisije.29
Zahtjevi se formiraju korištenjem metoda iz klase StatusForm. Njihova detaljnaspecifikacija nalazi se u komentarima unutar izvornoga koda.7.4 Primanje zahtjeva na poslužiteljskoj straniPoslužitelj prima zahtjev od klijenta preko URI-ja u dijelu koji se naziva upit (engl. query) ikoji se sastoji od ključa (engl. key) i vrijednosti (engl. value). Vrijednost ključa udiplomskome radu je Data. Na poslužiteljskoj strani implementiran je servlet, objektprogramskoga jezika Java koji dinamički procesira zahtjeve klijenta i formira odgovor. Uposlužiteljskoj klasi, koja se zove ServletClass, dobavlja se vrijednost (poslana kao upitu URI-ju) korištenjem metode getParameter(String key). Dobivenu vrijednost trebapospremiti u odgovarajuću tablicu u bazi podataka, no prije toga treba obaviti parsiranjevrijednosti jer se radi o nizu podataka meñusobno odvojenih zarezom. Primjer primljenevrijednosti moguće je vidjeti na Slici 10.dbo.Patients,9,Marko,Horvat,Ivica,2,3,2002,mSlika 10. Vrijednost (engl. value) primljena putem URI-jadbo.Patients označava ime tablice u koju treba pospremiti vrijednost, 9 je redni broj,odnosno jedinstveni identifikator pacijenta, Marko je ime pacijenta, Horvat je njegovoprezime, Ivica je ime oca, 2 je dan roñenja, 3 označava mjesec roñenja, 2002 godinuroñenja, dok oznaka m označava da se radi o osobi muškoga spola.Vrijednost primljena u opisanom obliku ne može se jednostavno pospremiti u tablicu bazepodataka već se svaka od navedenih informacija o pacijentu mora odvojiti (engl. parse) ipospremiti u zasebno polje. Iz navedenog razloga posebno je kreirana klasaDataManipulation i unutar nje metoda parseString(value), koja kao parametarprima vrijednost primljenu putem URI-ja. Metoda parseString razdvaja podatak popodatak i svaki zasebno sprema u polje tipa String. Tako dobiveno polje se putemkonstruktora šalje klasi Connect, unutar koje je implementirana metoda za povezivanje nabazu podataka (DoctorApp) te niz metoda za operacije nad podacima u bazi podataka.Operacije koje je moguće primijentiti nad podacima su: SELECT, INSERT, UPDATE iDELETE.Sadržaj pojedine tablice u bazi podataka moguće je provjeriti pozivanjem metode koja imaulogu operacije SELECT (npr. metoda executeSelectStatement_Patients).30
Alternativan i puno jednostavniji način provjere sadržaja baze podataka je korištenjegrafičkoga alata Microsoft SQL Management Studio.Ako se sve navedene i opisane aktivnosti uspješno provedu, servlet na poslužiteljskoj straniformira odgovor o uspješnom pospremanju u bazu podataka i šalje ga klijentu. U slučaju daoperacije nisu uspješno provedene, šalje se odgovor o neuspješnom pospremanju podataka ubazu podataka i klijent ima mogućnost ponovnog slanja istih.Uzrok slanja odgovora o neispravnom pospremanju podataka je neispravna struktura poslanihpodataka ili neispravno povezivanje na bazu podataka iz poslužiteljske klase. Takoñer jemoguće da klijent nema pristup mreži i zbog toga je podatke nemoguće poslati poslužitelju.8. Sigurnosni mehanizmiBaza podataka mora biti zaštićena od nedopuštenih i zlonamjernih radnji. Osnovni načinzaštite (30) je ograničenje fizičkog pristupa do samog računala i njegovih terminala. Osimfizičke zaštite, postoji i softverski način zaštite kojime se ograničava rad s bazom podataka iljudima koji imaju mogućnost fizičkog pristupanja računalu i terminalima.Postoji nekoliko vidova zaštite koji se mogu koristiti kao meñusobna kombinacija uosiguravanju sigurnosti baze podataka:- identifikacija korisnika,- ovlaštenja za rad nad bazom podataka i- pogledi kao mehanizam zaštite.U diplomskome radu korištena je identifikacija korisnika na razini <strong>aplikacije</strong> i dodjelaovlaštenja za rad nad bazom podataka. Osiguran je i siguran prijenos podataka preko mrežekorištenjem kombinacije HTTP-a i kriptografskog protokola, odnosno HTTPS-a.8.1 Identifikacija korisnikaIdentifikacija korisnika uvedena je već na razini <strong>aplikacije</strong>. U programskome kodu definiranoje korisničko ime (engl. username) i lozinka (engl. password), koje korisnik (liječnik) morapoznavati da bi uopće imao mogućnost pokretanja <strong>aplikacije</strong> na mobilnom ureñaju iupravljanjem podacima o pacijentima. Korisnik se predstavlja navoñenjem korisničkogimena, a svoj identitet potvrñuje navoñenjem lozinke. Za daljnu upotrebu <strong>aplikacije</strong> bitno je31
navesti da su uvedena tri korisnička profila po sistemu korisničko_ime/lozinka:doctor/123, horvat/horvat i kovac/kovac. Identifikacija korisnika najprije se radina lokalnoj razini, u samome programskome kodu <strong>aplikacije</strong>. Zaslona pokretnog telefona utrenutku identifikacije moguće je vidjeti na Slici 11.Slika 11. Identifikacija korisnikaOsiguravanje provjere autentičnosti nije dovoljno ostvariti samo na strani <strong>aplikacije</strong> zbog togašto je moguće da isti korisnik ima mogućnost lokalne pohrane podataka, a nema mogućnostpristupanja podacima pohranjenima na središnjem poslužitelju. Zbog toga se prilikomsinkronizacije, odnosno slanja podataka o pacijentima kroz mrežu prema poslužitelju, moraraditi dodatna potvrda autentičnosti koja u URI-ju prenosi korisničko ime i lozinku liječnika.Ukoliko poslužitelj identificira liječnika, podaci će biti pospremljeni u bazu podataka naposlužitelju. U slučaju da liječnik nema pravo pristupa bazi podataka, zahtjev zasinkoronizacijom će biti odbijen.Za potrebe diplomskoga rada uvedeno je pravilo da liječnik s korisničkim imenom doctorima pravo pristupa bazi podataka na poslužitelju. Liječnici s korisničkim imenom horvat i32
kovac mogu samo lokalno unositi podatke i ne mogu raditi sinkronizaciju sa središnjimposlužiteljem.8.2 Sigurni prijenos podataka preko mrežeZa sigurni prijenos podataka preko mreže koristi se sigurnosni HTTP, odnosno HTTPS (31)(engl. HyperText Transfer Protocol Secure), o kojemu je već bila riječ u poglavlju 8.2.2. Radise o kombinaciji HTTP-a i kriptografskog protokola. HTTPS veze se često koriste kodtransakcija i izmjene povjerljivih informacija unutar informatičkih sustava.HTTPS nije poseban protokol, već koristi „obični“ HTTP korištenjem SSL (engl. SecureSocket Layer) ili TLS (engl. Transport Layer Security) veze. Ovakav način komunikacijeosigurava zaštitu od prisluškivanja i narušavanja sigurnosti u komunikaciji dviju strana.Da bi Web poslužitelj mogao prihvatiti HTTPS konekciju, bilo je potrebno napraviti sljedećeakcije:- otvaranje veze s https://URL,- osigurati da poslužitelj (Tomcat 6.0) bude siguran,- generirati vlastiti certifikat i uvesti ga u projekt i- koristiti MEKeyTool isporučen s J2ME Wireless Toolkit za upravljanje certifikatima.8.2.1 Uvid u SSLProtokol SSL [32] dozvoljava klijentu i HTTP poslužitelju sigurnu vezu. Omogućavašifriranje, autorizaciju izvora i integritet podataka.Šifriranje štiti podatke od neautorizirane upotrebe pretvarajući ih prije slanja u skup podatakakoji na prvi pogled nema nekog posebnog značenja. Podatke može šifrirati klijent i/iliposlužitelj. U diplomskome radu podaci se šifriraju na klijentskoj strani.Autorizacija izvora je metoda potvrñivanja identiteta pošiljatelja. Kada prvi put klijent pokušauspostaviti vezu s poslužiteljem putem sigurne veze, poslužitelj predstavlja klijenta skupomuvjerenja napisanih u obliku certifikata. Certifikate izdaje certifikacijsko tijelo (engl.certification authority, CA). Certifikat potvrñuje da javni ključ pripada entitetu imenovanom uslužbenom dokumentu.33
Integritet (cjelovitost) odnosi se na prijenos podataka. Cjelovitost podataka govori nam da sepodaci tijekom prijenosa nisu mijenjali.SSL je danas de facto standard za sigurnosne komunikacije. Vrlo je koristan zbog mogućnostipregovaranja o šifriranju i algoritmima za provjeru autentičnosti. Na početku komunikacije(engl. handshake) klijent i poslužitelj pregovaraju o šifriranju i dešifriranju (engl. ciphersuites). Moguće je da nemaju dovoljno „zajedničkih“ algoritama i u tom slučaju dolazi doneuspješnog ostvarivanja veze.Iako SSL dopušta i klijentu i poslužitelju provjeru autentičnosti, uobičajeno je da se samoposlužitelj autentificira u SSL sloju. Klijenti najčešće rade provjeru autentičnosti naaplikacijskom sloju korištenjem lozinke koja se šalje preko zaštićenog kanala.8.2.2 Otvaranje sigurnosne vezeAplikacija na pokretnom telefonu mora imati mogućnost komuniciranja s programom naposlužitelju koji pristupa bazi podataka. Komunikacija je jednostavno riješena slanjemzahtjeva u URI-ju, što je vrlo detaljno objašnjeno u prethodnim poglavljima.Podaci izmeñu liječnika i klijenta strogo su povjerljivi i vrlo je bitno osigurati njihovu zaštituprilikom putovanja kroz mrežu. Stoga se u shemi URI-ja ne koristi već uobičajeni http većsigurnosno pojačani https. Poslužitelj osluškuje zahtjeve na vratima 8443.Prvi korak u ostvarivanju sigurnosne komunikacije putem HTTPS-a je promjena URI-jaunutar klase StatusForm u sljedeći oblik:https://localhost:8443/probaWeb/probaServletAko se ovaj URL pokreće iz internetskog preglednika (npr. Internet Explorera), pojavit će seokvir koji će nam pružiti mogućnost da vidimo, odbijemo ili postavimo certifikat. Akoodaberemo mogućnost za postavljanjem certifikata, imat ćemo mogućnost vidjeti internetskustranicu skrivenu iza sigurnosne veze. Svaki idući pokušaj za dohvaćanjem iste stranice nećeizazivati pojavljivanje okvira (tj. sigurnosnog alarma koji dolazi kao njegov naslov).Opisani proces identično vrijedi i za bežične ureñaje. Ako se s bežičnog ureñaja pokušauspostaviti veza na sigurnosnu stranicu čiji je certifikat generiralo certifikacijsko tijelo kojeureñaj ne prepoznaje, moguće je odbiti ili prihvatiti certifikat. Svaki ureñaj koji ima podršku34
za provjeru autentičnosti ima spremište (keystore) u koje posprema certifikate. U kasnijimpoglavljima bit će objašnjeno kako se certifikati dodaju u spremište.Prije uspostavljanja sigurnosne veze izmeñu klijenta i poslužitelja treba obaviti sjednicurukovanja (engl. handshake session). Web poslužitelj šalje svoj certifikat ureñaju zbogprovjere autentičnosti i pritom se dogovaraju o parametrima sjednice. Ako ureñaj prepoznacertifikacijsko tijelo koje je izdalo certifikat te ako oba entiteta koja sudjeluju u komunikacijiimaju dovoljno „zajedničkih“ algoritama, moguće je uspostaviti vezu. Za diplomski radkorišten je J2ME Wireless Toolkit, koji dolazi isporučen s datotekom koja ima uloguspremišta za odreñen broj certifikata. Ako je certifikat izdan od strane samoga sebe umjestood strane certifikacijskoga tijela ili ako ga je izdalo certifikacijsko tijelo koje nije u spremištu,moguće ga je unijeti u isto korištenjem tehnika opisanih u kasnijim poglavljima i u Dodatku.8.2.3 Osiguravanje sigurnog poslužiteljaDiplomski rad napravljen je u razvojnoj okolini Net Beans 6.5.1 koja dolazi u paketu spodrazumijevanim poslužiteljem imena Glassfish. Prilikom rada u sigurnosim uvjetimaGlassfish nije zadovoljio tražene zahtjeve pa je umjesto njega korišten poslužitelj Pro ApacheTomcat 6.0. Da bi komunikacija klijenta i poslužitelja bila sigurna, od esencijalne je važnostiučiniti poslužitelj sigurnim i sposobnim za upravljanje HTTPS vezama.Osiguravanje poslužitelja može se jednostavno podijeliti u dva koraka:1. korištenjem naredbe keytool unutar komandne linije stvara se spremištecertifikata. Nakon stvaranja spremišta potrebno je unijeti niz informacija, odmjesta u kojemu se nalazimo, organizacije, pa do onoga najbitnijega – IP adrese.Na kraju se koristi lozinka, koja je podrazumijevano postavljena na changeit.Naredba keytool kreira novu datoteku, odnosno spremište certifikata, imena.keystore;2. unutar konfiguracijskih datoteka poslužitelja Tomcat nalazi se datotekaserver.xml. Unutar nje treba postaviti opcije detaljno opisane u Dodatku.Prilkom pokretanja poslužitelja Tomcat koriste se novi certifikati prethodno generiraninaredbom keytool. Certifikat je izdan od strane samoga sebe, dakle nije odobren od stranecertifikacijskoga tijela. Zbog toga će se prilikom prvog pokretanja pojaviti okvir sasigurnosnim alarmom prilikom prvog slanja zahtjeva. Korisnik <strong>aplikacije</strong> mora jednostavno35
odabrati opciju za prihvaćanjem certifikata. Razlog zbog kojega mu možemo vjerovati je tajšto smo ga ipak sami izdali.Prilikom pokretanja MIDleta suočit ćemo se s nizom iznimaka koje nas upozoravaju nakorištenje „lošeg“ certifikata. To se dogaña zbog toga što certifikat stvoren za poslužiteljTomcat nije potvrñen od strane certifikacijskoga tijela, a samim time nije podržan ni od straneJ2ME Wireless Toolkita. Srećom, unutar istoimenog alata nalazi se još jedan alat:MEKeyTool (Mobility Equipment Key Tool), koji ispunjava sve tražene zahtjeve.Svrha alata MEKeyTool je upravljanje javnim ključevima certifikacijskih tijela. MEKeyToolnalazi se unutar JAR datoteke. Alatu je moguće zadavati naredbe za dodavanje (import) ibrisanje (delete) javnih ključeva za certifikate. Takoñer je moguće i vidjeti javne ključeveprovjerenih certifikata. Ono što je bilo potrebno napraviti je unošenje Tomcatovog javnogključa u spremište MEKeyTool korištenjem naredbe –import. Opisani postupak nalazi se uDodatku.Nakon što je opisanim postupcima ostvareno da Tomcat postane sigurnosni poslužitelj,aplikacija se pokreće na uobičajeni način. Poslužitelj prima HTTPS zahtjeve od klijenta tepristupa bazi podataka na već objašnjeni način.8.3 Ovlaštenja za rad nad bazom podatakaPoslužiteljski orijentirana baza podataka, kakva se i koristi u diplomskome radu, ima podržankorisnički koncept sličan onome koji omogućuje razlikovanje korisnika unutar računalnogoperacijskog sustava. Obično se preporučuje kreiranje individualnih korisničkih profila kojiće moći pristupati bazi podataka. Tehnički je moguće napraviti dijeljene profile ili omogućitistvaranje samo jednog profila za svaki tip korisnika koji pristupa bazi. U većim i složenijimsustavima posljednje se rješenje najčešće izbjegava jer je u praksi vrlo čest slučaj zlouporabeovlasti, no za potrebe diplomskoga rada ovo rješenje je i više nego zadovoljavajuće. Pristupbazi podataka ima liječnik koji je prije pristupa bazi podataka morao proći i lokalnuautorizaciju, odnosno identifikaciju korisnika na pokretnom ureñaju.Metode za kreiranje korisničkih profila variraju od platforme do platforme. Microsoft SQLServer podupire upotrebu sheme Windows NT Integrated Security, koja omogućava korisnikuidentifikaciju putem svog Windows NT korisničkog profila i pritom se ne treba postavljati36
dodatno korisničko ime i lozinka za pristup bazi podataka. Ovaj pristup vrlo je popularanmeñu administratorima baza podataka.Meñutim, u sustavima s malim skupom korisnika uobičajeno je kreirati korisničke profile idodijeliti im dozvole koje će zadovoljiti sve njihove zahtjeve za rad nad podacimapospremljenima u bazi podataka. Upravo to je i pristup korišten u diplomskome radu.Korištenjem alata Microsoft SQL Server Management Studio na razini cijelog sustava, unutardirektorija Security, u dijelu nazvanome Logins, kreiran je novi korisnik sa (skraćenood system administrator) s lozinkom „123“. U odjeljku Server Roles dodijeljene su musljedeće uloge: public i sysadmin. U dijelu koji se odnosi na User Mappingkorisnik ima pravo raditi operacije nad bazom podataka DoctorApp. Da bi sve uspješnofunkcioniralo, u odjeljku Status potrebno je postaviti sljedeće postavke:Permission to connect to database engine: GRANTLogin: ENABLEDBazi podataka dinamički se pristupa iz programa koji se nalazi na poslužitelju. Prilikomuspostave veze s bazom podataka u programu se prilikom prvog pokretanja mora navestitočno ime baze podataka (DoctorApp), vrata (port) na kojima će se slušati zahtjevi – uovom slučaju radi se o vratima 1433, te korisničko ime i lozinka (sa i 123). Detaljni opisuspostave veze izmeñu programa na poslužitelju i baze podataka dan je u Dodatku.37
9. Korištenje <strong>aplikacije</strong> i implementacijaSvi navedeni i opisani teoretski dijelovi omogućili su ispravan i funkcionalan rad <strong>aplikacije</strong>.U ovome poglavlju bit će opisan tipičan scenarij izvoñenja korištenjem UML dijagrama.9.1 Primjer izvoñenja <strong>aplikacije</strong>Da bi se lakše stvorila slika o radu <strong>aplikacije</strong>, u nekoliko točaka navest će se redoslijedizvršavanja pojedine akcije na mobilnom ureñaju. Akcije su poredane kronološkim redomizvršavanja.1. Liječnik pokreće aplikaciju na pokretnom ureñaju prema uputama u Dodatku.Otvara se zaslona Select one to launch i liječnik odabire opciju app.2. Lječnik pokreće mobilni ureñaj i otvara se ekran na kojemu se obavljaidentifikacija korisnika s korisničkim imenom doctor i lozinkom 123.3. Liječnik se uspješno identificira i otvara se izbornik sa sljedećim mogućnostima:• Add Patient• Search Patient• Tasks• Synchronize4. Liječnik odabire opciju Add Patient i unosi sljedeće podatke:Name: MarkoSurname: HorvatFather's name: IvicaDay: 2Month: 3Year: 2003Sex: m5. Liječnik potvrñuje unos pritiskom gumba Submit.6. Liječnik odlučuje dodati informaciju o cjepivu te odabire gumb Menu i odabireopciju Vaccines.7. Otvara se prozor Received Vaccines. Liječnik odabire opciju AddVaccine i unosi sljedeće podatke:38
Day: 5Month: 5Year: 2009Reaction: alergija8. Liječnik potvrñuje unos pritiskom gumba Save.9. Liječnik se vraća na pacijentove podatke pritiskom gumba Chart.10. Liječnik pritišće gumb s oznakom Menu i odabire opciju Allergies.11. Liječnik pritišće gumb s opcijom Menu i odabire opciju Allergies.12. U prozoru Previous Allergies odabire opciju Add Allergy i upisujesljedeće podatke:Day: 10Month: 10Year: 2009Reaction: osip13. Liječnik potvrñuje unos pritiskom gumba Save.14. Liječnik se vraća na početni izbornik višestrukim pritiskom gumba Back.15. Liječnik želi poslati podatke bazi podataka na centralnome poslužitelju i odabireopciju Synchronize.16. U prozoru Synchronize odabire gumb Synchronize i šalje podatke.17. Program na poslužitelju prima podatke, obrañuje ih i posprema u bazu podataka.18. Program šalje potvrdu o uspješnom pospremanju dobivenih informacija u bazupodataka.19. Liječnik zatvara aplikaciju.Na Slici 12 moguće je vidjeti zaslone mobitela u trenutku izvoñenja pojedine aktivnostiliječnika.39
1 2 3 45 6 7 8Slika 12. Scenarij izvoñenja <strong>aplikacije</strong>9.2 UML9.2.1 Uvod u UMLUML (33), (34), (35) (engl. Unfied Modeling Language) sjedinjen je model jezika kojiomogućava konstrukciju sustava za stvaranje shematskoga plana razvoja nekog sustava. Lakoje razumljiv i čitljiv te olakšava komunikaciju meñu tehničkim osobljem.UML razlikuje nekoliko dijagrama za prikaz aktivnosti. Dijagrami mogu biti statički ilidinamički i svaki ima svoje karakteristike po kojima se razlikuje od ostalih.Dijagrami koji se koriste u diplomskome radu za prikaz aktivnosti su: dijagram uporabnogslučaja, dijagram tijeka i dijgram klasa.40
9.2.2 Dijagram uporabnog slučaja za opisani scenarijaNa Slici 14 moguće je vidjeti UML-ov dijagram uporabnog slučaja za scenarij opisan upoglavlju 10.1.Slika 13. Dijagram uporabnog slučaja41
9.2.3 Slijedni dijagram za opisani scenarijNa Slici 14 moguće je vidjeti UML-ov slijedni dijagram za scenarij opisan u poglavlju 10.1.Slika 14. Dijagram tijeka42
9.2.4 Dijagram klasa za opisani scenarijNa Slici 15 moguće je vidjeti UML-ov dijagram klasa na klijentskoj strani, dok se na Slici 16nalazi dijagram klasa za poslužiteljsku stranu. Scenarij je opisan u poglavlju 10.1.Slika 15. Dijagram klasa na klijentskoj straniSlika 15. Dijagram klasa na poslužiteljskoj strani43
ZaključakKrajem 20. i početkom 21. stoljeća dvije velike grane ljudskih djelatnosti, tj. medicina itehnika, sve više dolaze u doticaj i isprepliću se na razne načine. Informatizacija zdravstvapostaje prisutna u liječničkim ordinacijama, domovima zdravlja, ljekarnama, bolnicama,privatnim klinikama. Uvoñenje elektroničkih zdravstvenih kartona i formiranje virtualnihzdravstveni timova samo su neki od pokazatelja integracije računala i zdravstva.Aplikacija napravljena za diplomski rad samo je mali korak u integraciji zdravstva i računala.Iskorištene su napredne mogućnosti mobilnih ureñaja koji podržavaju najsuvremenije tehnikei mogu se bežično povezivati na mrežu. Uspješno je ostvarena lokalna pohrana podataka opacijentima te se liječniku, odnosno korisniku <strong>aplikacije</strong>, omogućava slanje podataka izlokalnog spremišta na središnji poslužitelj s bazom podataka, uz pretpostavku da korisnik imapristup mreži. U slučaju odspojenog načina rada, odnosno nedostupnosti ili nemogućnostipristupa mreži, liječnik ima mogućnost retransmisije podataka. Izmjena podataka izmeñuliječnika i baze podataka na poslužitelju je sinkronizirana jer liječnik ne može nastaviti sradom dok ne dobije odgovor o uspješnom ili neuspješnom slanju podataka poslužitelju.Prilikom korištenja <strong>aplikacije</strong> nije zanemarena činjenica o tajnosti podataka izmeñu liječnika ipacijenta. Aplikacija je već na samom početku osigurana od neovlaštenog pristupa tražeći odliječnika da se identificira. Uneseni podaci sigurnim se putem šalju preko mreže korištenjemsigurnosnog protokola, dok se poslužiteljski program prilikom pokretanja i povezivanja nabazu podataka mora „predstaviti“ imenom i lozinkom koji definiraju korisnika u skupukorisničkih profila. Dakle, ostvarena je trostruka zaštita od neovlaštenog pristupa i zlouporabepodataka.Cilj definiran diplomskim zadatkom je ostvaren, no aplikacija otvara još niz mogućnosti kojeje moguće ostvariti u budućim projektima. Jedna od njih je identifikacija baze na središnjemsustavu, pošto je baza podataka napravljena interno za potrebe zadatka. Moguće jeunaprijediti grafičko sučelje te omogućiti dodatne funkcionalnosti za upravljanje podacima opacijentima. Sigurnost se može povećati dodjeljivanjem dodatnih dozvola za rad nad bazompodataka, a moguće je i unaprijediti performanse same baze. Mogućnosti su razne, a njihovarealizacija ovisi o budućim potrebama za razvoj elektroničkog zdravstva. Sudeći po porastubroja oboljenih u svijetu, interesa neće manjkati te možemo očekivati sve veću sinergijuzdravstva i tehnike u godinama koje dolaze.44
Literatura1. Mark Weiser: „The Computer for the 21st Century“ – Scientific American Special Issue onCommunications, Computers and Networks, rujan 1991.2. eHealth, s Interneta, http://en.wikipedia.org/wiki/EHealth, 28. svibnja 2009.3. Tonković, Stanko: Predavanja iz Biomedicinske informatike, veljača 2009.4. e-ZDRAVLJE, JEDINSTVO RAZLIČITOSTI, s Interneta,http://www.trend.hr/clanak.aspx?BrojID=37&KatID=10&ClanakID=458&Stranica=2#537,28. svibnja 2009.5. The rigth prescription for Europe's eHealth, s Interneta,http://ec.europa.eu/information_society/activities/health/policy/index_en.htm,28. svibnja 2009.6. What is the i2010 strategy?, s Internetahttp://ec.europa.eu/information_society/eeurope/i2010/strategy/index_en.htm,28.svibnja 2009.7. eHealth: Ozdravite iz računalo, s Interneta,http://www.ebizmags.com/ezdravlje-ozdravimo-uz-ict/, 28. svibnja 2009.8. e-Zdravstvo, s Interneta,http://www.e-hrvatska.hr/sdu/hr/ProgramEHrvatska/Provedba/e-Zdravstvo.html,28. svibnja 2009.9. Electronic medical record, s Interneta,http://en.wikipedia.org/wiki/Electronic_Medical_Records, 28. svibnja 2009.10. Telemedicine, s Interneta, http://en.wikipedia.org/wiki/Telemedicine, 28. svibnja 2009.11. Telemedicina, s Interneta, http://www.medic4all.it/telemedicina/anytime-anyware.jpg,28. svibnja 2009.12. Health informatics, s Interneta, http://en.wikipedia.org/wiki/Health_informatics,28.svibnja 2009.45
13. Consumer health informatics, s Interneta,http://en.wikipedia.org/wiki/Consumer_Health_Informatics, 28. svibnja 2009.14. Health 2.0, s Interneta, http://en.wikipedia.org/wiki/Health_2.0, 28. svibnja 2009.15. mHealth, s Interneta, http://en.wikipedia.org/wiki/MHealth, 28. svibnja 2009.16. Meeting Health Needs Through a Broad Array of Applications, s Interneta,28. svibnja 2009.17. Java (programming language), s Interneta,http://en.wikipedia.org/wiki/Java_(programming_language), 28. svibnja 2009.18. Java Platform, Micro Edition, s Interneta,http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition, 28. svibnja 2009.19. Java Servlet, s Interneta, http://en.wikipedia.org/wiki/Java_Servlet, 28. svibnja 2009.20. NetBeans – Development Simplified, s Interneta, http://www.netbeans.org/features/,28. svibnja 2009.21. SQL, s Interneta, http://hr.wikipedia.org/wiki/SQL, 28. svibnja 2009.22. SQL Server 2005 Express Edition, s Interneta,http://www.microsoft.com/Sqlserver/2005/en/us/express.aspx, 28. svibnja 2009.23. Microsoft SQL Server Management Studio Express, s Interneta,http://www.globalproblems-globalsolutionsfiles.org/unf_website/assets/publications/technology/mhealth/mHealth_applications.pdf,http://www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=en, 28. svibnja 2009.24. Class RecordStore, s Interneta,http://www.blackberry.com/developers/docs/4.0.2api/javax/microedition/rms/RecordStore.html, 28. svibnja 2009.25. Baza podataka, s Interneta, http://hr.wikipedia.org/wiki/Baza_podataka, 28. svibnja 2009.26. Skočir, Zoran; Matasić, Ivan; Vrdoljak, Boris: Organizacija obrade podataka, Zagreb2007.27. Client-server, s Interneta, http://en.wikipedia.org/wiki/Client-server, 28. svibnja 2009.46
28. Petrović, Ivana: Klijent – poslužitelj,www.efos.hr/informatika/so/ppt/Ivana_petrovic_klijent%20server.ppt, 28. svibnja 2009.29. Hypertext Transfer Potocol, s Interneta,http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol, 28. svibnja 2009.30. Batistić, Ivan: Integritet i sigurnost podataka, s Interneta,http://grdelin.phy.hr/~ivo/Nastava/Baze_podataka/predavanja-2004/17_pred.pdf,28. svibnja 2009.31. HTTP Secure, s Interneta, http://en.wikipedia.org/wiki/Https, 28. svibnja 2009.32. Secure Java MIDP Programming Using HTTPS with MIDP, s Interneta,http://developers.sun.com/mobility/midp/articles/https/, 28. svibnja 2009.33. Projektiranje i održavanje programske podrške, s Interneta,http://www.etfos.hr/upload/OBAVIJESTI/obavijesti_strucni/86006uml.pdf, 28. svibnja 2009.34. Kušek, Mario: UML (Unfied Modeling Language), s Interneta,http://www.tel.fer.hr/files/treca/ilj/uml1.pdf, travanj 2007.35. Kušek, Mario: UML (Unified Modeling Language), s Interneta,http://www.tel.fer.hr/files/treca/ilj/uml2.pdf, travanj 2007.36. Malić, Romina: Usluge i <strong>aplikacije</strong> e-Zdravstva za pokretnu korisničku opremu(diplomski rad), travanj 2009.47
Dodatak1. Upute za pokretanje <strong>aplikacije</strong> detaljno su opisane u literaturi [36]. Jedina izmjena je utome što naglasak nije stavljen na opciju Tasks već na Synchronize. Prilikompokretanja <strong>aplikacije</strong> mora se navesti lozinka za otvaranje spremišta ključeva i lozinkaza par ključeva aliasa „s1as“. U oba slučaja lozinka je changeit. Nakon svihkoraka opisanih u [36] liječnik (odnosno korisnik <strong>aplikacije</strong>) ima mogućnostsinkronizacije s bazom podataka na poslužitelju odabirom opcije Synchronize uglavnom izborniku. Odabirom istoimenog gumba podaci se kroz mrežu šalju premaposlužitelju koji korisniku vraća odgovor o uspješnom ili neuspješnom pospremanjupodataka u bazu. Važno je napomenuti da se u slučaju pacijenta s više prezimenaizmeñu uvodi znak _ (engl. underscore), npr. prezime Horvat Kovač unosi se kao:Surname: Horvat_Kovac2. Da bi baza podataka ispravno radila, potrebno je instalirati Microsoft SQL Server2005 Express Edition sa sljedeće stranice:http://www.microsoft.com/DownLoads/details.aspx?familyid=220549B5-0B07-4448-8848-DCC397514B41&displaylang=enDovoljno je slijediti uputstva za instalaciju. Nakon uspješnog postavljanja na računalo,potrebno je otići u: Start → All Programs → Microsoft SQL Server2005 → Configuration Tools → SQL Server ConfigurationManager. U padajućem izborniku izabrati Network Configurations ipostaviti slušanje na vratima 1433 i definirati IP adresu računala na kojoj se nalazibaza podataka. Nakon toga treba pokrenuti poslužitelj desnim klikom miša i odabiromopcije Run. U mrežnim postavkama mora se deaktivirati Firewall odabiromopcije OFF.Veza prema bazi radi se unutar alata Net Beans 6.5.1 sljedećim postupkom:Databases → Drivers → Microsoft SQL Server 2005. Otvara seizbornik unutar kojega se specificira IP adresa računala na kojem se nalazi bazapodataka, port na kojemu će se slušati, ime baze podataka te putanja do odgovarajućegdrivera (u diplomskom radu koristi se sqljdbc4.jar). Ukoliko je sve uspješnopostavljeno, u padajućem izborniku otvorit će se ikona s vezom prema bazi. Potrebno48
je desnim klikom miša kliknuti na ikonu, odabrati opciju Connect te upisatikorisničko ime sa i lozinku 123.3. Za jednostavno praćenje sadržaja pojedine tablice unutar baze podataka potrebno jeskinuti alat SQL Server Management Studio sa sljedeće stranice:http://www.microsoft.com/downloadS/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=enZa uspješnu instalaciju dovoljno je slijediti uputstva. Prilikom instalacije potrebno jeodabrati opcije: Authentication: SQL Server Authentication,Login: sa, Password: 124. Postavljanje uloga (rola) detaljno je objašenjenou poglavlju o sigurnosti.4. Da bi se ostvarila HTTPS veza izemñu klijenta i poslužitelja, potrebno je, meñuostalim, Tomcat poslužitelj učiniti sigurnim. To se radi na sljedeći način:- u komandnoj potrebno je ući u direktorij Java\bin i stvoriti spremište certifikatasljedećom naredbom: keytool –genkey –alias s1as –keyalg; nakon togatrebat će unijeti niz informacija, pri čemu treba paziti da se za postavke imena navedeIP adresa računala; lozinka koja se koristi je changeit; stvorit će se nova datotekaimena .keystore koja će biti smještena unutar home direktorija;- unutar datoteka c:\tomacat\conf\server.xml treba maknuti komentare zaSSL/HTTP 1.1 Connector da izgleda na sljedeći način:;49
- posljednji korak je uvoženje javnog ključa u podrazumijevano spremište alataMEKeyTool iz stvorenoga spremišta:java –jar bin\MEKeyTool.jar -import –alias s1as –keystorec:\documents and settings\qmahmoud\.keystore –storepasschangeit50
SažetakDiplomski rad istražuje različite scenarije korištenja aplikacija na pokretnim telefonima uelektroničkome <strong>zdravstvu</strong>. Naglasak prilikom izrade rada stavljen je na sigurnost, odspojeninačin rada i sinkronizaciju podataka. Sigurnost je riješena na razini <strong>aplikacije</strong>, uvoñenjemkorisničkih imena i lozinki koje identificiraju korisnika, i na razini baze podataka, gdje seuvodi posebna rola (uloga) koja predstavlja korisnika. Podaci se prilikom slanja kroz mrežuprema poslužitelju osiguravaju korištenjem sigurnosnog protokola. Odspojeni način radariješen je pospremanjem podataka u strukturu koja čuva informacije u slučaju višestrukogpokretanja <strong>aplikacije</strong> i nemogućnosti rada s istom. Sinkronizacija podataka predstavljaizmjenu lokalno pospremljenih podataka s bazom podataka koja se nalazi na poslužitelju.Izvedivost je prikazana na studijskom primjeru <strong>aplikacije</strong>.51