Microsoft Word - sekulic-diplomski.doc
|
|
- Ваја Арсић
- пре 5 година
- Прикази:
Транскрипт
1 SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 780 GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA UREĐAJE S OPERACIJSKIM SUSTAVOM ANDROID Antun Sekulić Zagreb, srpanj 2014.
2 sveuetltsre u ZAGREBU FAKU LTET ELEKTROTEHNIKE I NNCUruARSTVA ODBOR ZA DIPLOMSKI RAD PROFILA Zagreb, 10. ozujka DIPLOMSKI ZADATAK br. 780 Pristupnik: Studij: Profil: Antun Sekuli6 I nformacijska i komunikacijska tehnologija Telekomunikacije i informatika Zadatak: Geoprostorn i s ustav objavi -pretplati za uredaie s operacijs ki m sustavom Android Opis zadatka: U modelu objavi-pretplati postoje dvije vrste korisnika, a to su pretplatnici objavljivadi. Pretplatnici aktiviraju pretplate kojima se pretplacuju na podatke koje objavljuju objavljivadi. Sustav objavi-pretplati je posrednik u komunikaciji izmedu objavljivada i pretplatnika. On usporeduje nove objave s aktivnim pretplatama i isporuduje ih zainteresiranim pretplatnicima. Usporedba izmedu objava i pretplata se u postoje6im sustavima objavi-pretplati temelji na njihovom sadrzaju i najdes6e je definirana Booleovom funkcijom. VaS zadatak je osmisliti, programskizvesti i testirati geoprostorni sustav objavi-pretplati u kojem su objave i pretplate definirane kao geoprostomi objekti (npr. todke, linije, poligoni) s dodatno pridruzenim sadrzajem. Pri tome definirajte i programski izvedite realne funkcije usporedbe razliditih vrsta geoprostomih objekata. Osim toga, proudite i odaberite pogodne nadine za unos i vizualizaciju geoprostornih pretplata i objava na uredajima s operacijskim sustavom Android. lsporuku objava pretplatnicima ostvarite kori5tenjem programskog okvira Google Cloud Messaging for Android (GCM) koji omogucava prosljedivanje poruka na uredaje s operacijskim sustavom Android bez- prethodnog eksplicitnog zahtjeva korisnika. Ostvareni geoprostorni sustav objavi-pretplati ispitajte na odabranom studijskom sludaju. Svu potrebnu literaturu i uvjete zarad osigurat 6e Vam Zavod za telekomunikacije. Zadatak uruden pristupniku : 14. olujka Rok za predaju rada: 30. lipnja Mentor: o Y q?t''< rt' Predsjednik odbora za diplomski rad profila:
3
4 Sadržaj Uvod Arhitektura sustava Model objavi-pretplati Objave Pretplate Poslužitelj Geoprostorni sustav obajvi-pretplati Operacijski sustav Android Komponente aplikacija Usluga GCM Slanje poruka PostgreSQL baza podataka Dodatak PostGIS Određivanje udaljenosti između geoprostornih objekata Geoprostorni poslužitelj objavi-pretplati Implementacija poslužitelja Zadaće aplikacijskog poslužitelja Obrađivanje korisničkih zahtjeva Pohranjivanje podataka u bazu Slanje poruka GCM poslužitelju Poslužitelj baze podataka Klijentska aplikacija Stvaranje i otkazivanje pretplata Stvaranje objava Prikazivanje primljenih objava... 39
5 3.4. Implementacija klijntske aplikacije Analiza rada sustava Analiza pohranjivanja pretplata Analiza objavljivanja objava Zaključak Literatura Sažetak Summary Privitak Podešavanje GCM i Google Map usluge Testiranje poslužitelja... 56
6 Uvod U današnje vrijeme se suočavamo s velikom količinom informacija koje dolaze iz raznih izvora poput televizije, radija, interneta i sve više s naših pametnih telefona. Vrlo se lako može dogoditi da smo propustili informaciju koja nam je u tom trenutku važna. Primjer takve situacije bi bila prometna nesreća na putu kojim obično vozimo s posla do kuće. Pretpostavimo li da je vijest o nesreći prenesena preko radio postaje koju nismo slušali, posljedica neprimanja informacije bi mogla biti višesatno čekanje u prometnoj gužvi. U radu je prezentiran i ostvaren model sustava objavi-pretplati koji koristi geoprostorne objekte za definiranje objava i pretplata kojim bi se mogao riješiti opisan problem. U prvom poglavlju dan je opis sustava objavi- pretplati, kao i komponenti koje se koriste za ostvarivanje geoprostornog sustava objavi-pretplati. U drugom poglavlju se ulazi u detaljniju analizu i implementaciju samoga poslužitelja, dok je u trećem poglavlju opisana klijentska aplikacija i način na koji se koristi. U zadnjem poglavlju napravljena je analiza rada poslužitelja, pošto on predstavlja usko grlo u radu sustava. 1
7 1. Arhitektura sustava Za ostvarivanje sustava objavi-pretplati koji svoje objave i pretplate definira pomoću lokacije potrebno je razumjeti kako radi klasični objavi sustav pretplati i od kojih se komponenti sastoji. Pri razvoju geoprostornog sustava objavi-pretplati javlja se nekoliko problema. Glavni problemi su implementacija pokretnog klijenta koji može primati i slati objave, i definiranje geoprostornih objektata koje razmjenjuju klijenti i poslužitelj. Također, potrebno je riješiti problem pohrane i obrade geoprostornih objekta na poslužitelju Model objavi-pretplati Kod informacijskih sustava u kojima je potrebno razmjenjivati veliki broj poruka između velikog broja subjekata, često se koristi programski obrazac objavi-pretplati. Ovakav model oblikovanja sustava prvi se put spominje u [1] pri opisu podsustava za distribuciju vijesti. Model objavi-pretplati definira postojanje dvije vrste krajnjih čvorova koji međusobno razmjenjuju poruke preko poslužitelja. Prva vrsta su objavljivači (publishers) koji stvaraju objave, a druga vrsta subjekata su pretplatnici (subscribers) koji primaju objave od interesa. Važno je naglasiti da objavljivači i pretplatnici nikada ne komuniciraju izravno jedni s drugima i jedni ne znaju za postojanje drugih, već umjesto toga komuniciraju isključivo preko poslužitelja 1.2. Objave Kako bi ostvarili ovakav sustav razmjene objava, nužno je da se svaka objava koju objavljivač stvori sastoji od dvije vrste podataka. Prva vrsta podataka je sam sadržaj objave koji se želi prenijeti pretplatnicima i on može biti bilo kojeg formata. Tako postoje objave u kojima se prenose slike, tekstualni podatci, multimedijalni zapisi i drugo. Osim toga, svaka objava sadrži i drugu vrstu podataka koju nazivamo metapodatcima. Metapodatci su u suštini ključne riječi koje opisuju samu objavu i na temelju njih će poslužitelj odrediti koje pretplatnike zanima koja objava. Za razne objavi-pretplati sustave postoje razne vrste 2
8 metapodataka. Tako na primjer, ako je generirana objava neka vrsta vijesti koju prenosi određena novinska agencija, metapodatci bi mogli opisivati tip generirane vijesti (npr. sport, vremenska prognoza, crna kronika i slično) Pretplate Pretplatnici kao krajnji primatelji objava unaprijed definiraju koje vrste objava žele primati definiranjem pretplata. Određivanje pretplata se svodi na određivanje metapodatka koji zanimaju pretplatnika i njihovo dojavljivanje poslužitelju. Svaki pretplatnik dojavljuje poslužitelju i svoju adresu na koju želi primati objave. Svaki poslužitelj omogućuje pretplatnicima definiranje pretplata iz poznatog skupa metapodataka s kojim poslužitelj zna raditi. Tako na primjer pretplate mogu bit samo vijesti vezane za sport, određeni sportski klub ili samo za određenu nogometnu utakmicu, ako se radi o sustavu objavipretplati koji je specijaliziran za sportske vijesti Poslužitelj Poslužitelj kao centralno mjesto u objavi-pretplati sustavu, mora održavati bazu podatka u kojoj su pohranjene informacije o pretplatnicima. Ako sustav nudi određene vremenske operacije nad objavama, potrebno je pohranjivati i sve pristigle objave od objavljivača. Primjer vremenske operacije bi bilo definiranje vremena kada pretplatnici žele primati objave. U takvom sustavu bi poslužitelj pohranjivao objave za pojedinog korisnika i isporučivao ih u navedenom trenutku. Suprotni, jednostavniji primjer rada je prosljeđivanje objava pretplatnicima onda kada ih objavljivači generiraju. Nakon primanja objave od objavljivača, poslužitelj provodi određeno filtriranje i grupiranje objava i korisnika, te prosljeđuje objave na temelju tih operacija. Komunikacija poslužitelja s pretplatnicima je dvosmjerna, što znači da pretplatnici poslužitelju dojavljuju svoje pretplate, a poslužitelj pretplatnicima isporučuje objave. Komunikacija između poslužitelja i objavljivača je jednosmjerna, što znači da objavljivači samo prosljeđuju svoje objave poslužitelju Geoprostorni sustav obajvi-pretplati U geoprostornom sustavu objavi-pretplati objave i pretplate, osim standardnih meta podataka, sadrže i informacije o lokaciji. U takvom sustavu se pretplatnici pretplaćuju na 3
9 određeno područje za koje žele primati obavijesti, a objavljivači u svaku objavu uključuju podatke o njenoj lokaciji. U takvom sustavu poslužitelj mora znati raditi s geoprostornim objektima kao što su točke, linije i poligoni. To znači da poslužitelj mora posjedovati mehanizme pohrane takve vrste podatka i određivanje njihovih međusobnih odnosa. Ovdje se prvenstveno misli na definiranje njihove međusobne udaljenosti. Mehanizam određivanja udaljenosti između objekata se koristi u određivanju korisnika kojima će se proslijediti određena objava. Aplikacija koju koriste pretplatnici treba pružati korisničko sučelje pomoću kojega se mogu definirati prostorne pretplate. Isto tako i objavljivači pri stvaranju obavijesti trebaju korisničko sučelje preko kojega će generirati objave i odrediti prostorne informacije za te objave Operacijski sustav Android Operacijski sustav Android je jedan od najpopularnijih operacijskih sustava za pametne telefone i tablete, a u zadnje vrijeme se koristi i u velikom broju drugih uređaja. Primjer su pametni televizori i pametni ručni satovi. Operacijski sustav je razvijen na jezgri opercijskog sustava Linux, i javno je dostupan (open source), što ga je učinilo vrlo popularnim u razvijateljskoj zajednici (developers community), kako i kod velikog broja kompanija koje žele jeftini operacijski sustav za svoju potrošačku elektroniku. Vodeće svjetske kompanije kao što su Samsung, HTC, LG i Motorola razvijaju pametne telefone i tablete bazirane na ovom operacijskom sustavu. Aplikacije za Android operacijski sustav su pretežno pisane u programskom jeziku Java i prevedene pomoću Android SDK alata u izvršni kod koji se pokreće na Dalvik virtualnom stroju. No aplikacije je moguće razvijati i u nekoliko drugih programskih jezika i tehnologija, kao što su HTML5 i Scala. Svaka aplikacija za Android se izvodi unutar svojeg sigurnog prostora na operacijskom sustavu (sandbox). Pošto je Android višekorisnički operacijski sustav, svaka aplikacija se tretira kao zasebni korisnik kojem je dodijeljen jedinstveni korisnički ID, koji koristi samo operacijski sustava i nepoznat je aplikaciji. Sustav potom dodjeljuje dozvole za rad svim datotekama u aplikaciji za dodijeljeni ID aplikacije, tako da im samo aplikacija u čijem su 4
10 vlasništvu može pristupiti. Dodatno, svaki proces u operacijskom sustavu se izvršava na vlastitom virtualnom stroju, kako bi ga se izoliralo od ostalih aplikacija Komponente aplikacija Svaku aplikaciju za Android operacijski sustav pisanu u programskom jeziku Java, možemo logički podijeliti u nekoliko osnovnih građevinskih blokova, tj. u logičke cjeline koje obavljaju određenu vrstu posla. Svaka komponenta predstavlja točku kroz koju sustav može pristupiti aplikaciji. Ne predstavljaju sve komponente konkretni ulaz u aplikaciju preko kojih joj korisnik može pristupiti, ali svaka komponenta postoji kao zasebni entitet i obavlja specifičnu ulogu. Postoji pet vrsta osnovnih komponenti od kojih svaka definira svoj životni ciklus, tj. kako nastaje i kada će biti uništena i dodatno manifest datoteka. Manifest datoteku sadrži svaka aplikacija. U njoj se nalazi opis aplikacije sa svim njezinim komponentama, kao i informacije koje koristi operacijski sustav za pokretanje i izvođenje aplikacije. Aktivnost (activity) je osnovna komponenta svake aplikacije. Ona omogućava prikazivanje korisničkog sučelja i interakciju između korisnika i aplikacije. Postoji nekoliko vrsta aktivnosti koje mogu zauzimati razne veličine zaslona, ali pretežno se koriste tako da zauzimaju cijeli zaslon. Većina aplikacija se najčešće sastoji od više aktivnosti od kojih svaka obavlja svoj posao. Pri promjeni aktivnosti operacijski sustav vodi računa o održavanju FIFO stoga (First In First Out) na koji se pohranjuje prethodna aktivnost. Kada korisnik pritisne tipku za povratak (back), sa stoga se uzima prethodna stavljena aktivnost i ona postaje glavna aktivnost. Životni ciklus svake aktivnosti počinje pozivom metode oncreate(), a završava pozivom metode ondestroy(). U životnom ciklusu svake aktivnosti postoji još nekoliko metoda, koje također poziva operacijski sustav. Tako još postoji metoda onstart(), koja se poziva neposredno prije nego aktivnost postane vidljiva korisniku, onresume(), koja se poziva kada je aktivnost postala vidljiva, onpause(), koja se poziva kada će se aktivnost zaustaviti i metoda onstop() koje se poziva kada se aktivnost zaustavi. Za aktivnost kažemo da je aktivna ako se nalazi, gledano po pozivima metoda, između poziva onresume() i onpause(). U aktivnoj fazi korisnik može vršiti interakciju s aktivnosti. Kada korisnik prestane 5
11 koristiti trenutnu aktivnost, tj. kada se pozove metoda onpause(), aktivnost će prijeći u pauzirano stanje. Pauzirano stanje označava da sustav u radnoj memoriji drži sve podatke o aktivnosti i da je ona još uvijek vezana za upravitelja prozorima (window manager). Sustav ju može brzo vratiti u aktivno stanje pozivom metode onresume() ako to korisnik zatraži. Ako je pozvana metoda onstop(), to označava da je aktivnost otišla u pozadinu (background). U ovom stanju sustav još uvijek u radnoj memoriji drži većinu informacija o aktivnost, ali ona nije vezana za upravitelja prozorima i sustav ju može obrisati iz memorije ako neka druga aktivnost s višim prioritetom zahtijeva dodatnu radnu memoriju. Ako se to dogodi, pri ponovnom stvaranju obrisane aktivnosti ponovno se poziva metoda oncreate(). Također je moguće vraćanje korisnika na aktivnost koja je u pozadini prije nego ju sustav obriše iz radne memorije. Tada se prvo poziva metoda onrestart(), pa zatim metoda onstart(). Slika 1.1 Životn ciklus aktivnosti, preuzeto s [2] 6
12 Aktivnost se stvara nasljeđivanjem klase Activity. Svaka aktivnost u aplikaciji mora imati svoju definiciju u manifest.xml datoteci, unutar oznaka aplikacije (application tag). <manifest... > <application... > <activity android:name=".exampleactivity" />... </application... >... </manifest > Kod 1.1 Definiranje aktivnosti u manifest datoteci Dodatno, početna aktivnost mora sadržavati parametre kojima se obavještava sustav da nju prvu pokrene pri paljenju aplikacije. <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> Kod 1.2 Definiranje dodatnih parametara aktivnosti Pokretanje nove aktivnosti iz trenutne se ostvaruje pozivanjem metode startactivity(), kojoj predajemo objekt Intent koji opisuje aktivnost koju želimo pokrenuti. Intent intent = new Intent(this, SignInActivity.class); startactivity(intent); Usluga (service) predstavlja komponentu sustava koja izvršava operacije u pozadini na zasebnoj dretvi. Ova komponenta ne sadrži korisničko sučelje i uglavnom se koristi kada želimo obavljati neke radnje bez blokiranja korisničkog sučelja. Primjer takve operacije bi bilo puštanje glazbe, dohvaćanje podatka s mreže, snimanje ili čitanje podataka s diska. 7
13 Dodatna razlika između aktivnosti i usluge je u tome što se usluga jedne aplikacije može izvršavati u pozadini čak i ako je druga aplikacija trenutno preuzela fokus, to jest, trenutno je aktivna. Usluge omogućavaju spajanje s drugim komponentama (binding), koje ne moraju biti dio aplikacije kojoj pripada usluga. Time je moguće ostvariti međuprocesnu komunikaciju (interprocess communication, IPC). Usluga može imati dva oblika: Pokrenuta usluga (started service) je usluga koja je pokrenuta od strane druge komponente poput aktivnosti pozivanjem metode startservice(). Jednom pokrenuta, usluga se izvodi u pozadini neodređeno dugo, čak i ako je komponenta koja ju je pokrenula zaustavljena. Ovakva vrsta usluge se koristi kada želimo obaviti određeni posao na drugoj dretvi, neovisno o aplikaciji koju koristimo. Samoj usluzi se prepušta logika zaustavljanja kada završi s poslom. Primjer korištenja ovakve usluge bio bi dohvat podataka s mreže ili reprodukcija glazbe. Povezana usluga (bounded service) nastaje povezivanjem druge komponente s uslugom pozivom metode bindservice(). Usluga tada pruža sučelje preko kojega ta komponenta može komunicirati s njom. Povezana usluga je pokrenuta onoliko dugo dok ima komponenti koje su povezane s njom. Komponenta prekida vezu s uslugom pozivom metode onunbind(). Isto kao i aktivnosti, usluge je potrebno navesti u manifest datoteci unutar oznaka aplikacije kako bi operacijski sustav bio svjestan njihovog postojanja. <manifest... >... <application... > <service android:name=".exampleservice" />... </application> </manifest> Kod 1.3 Definiranje usluge u manifest datoteci 8
14 Pokretanje usluga iz drugih komponenti se izvodi pozivom metode startservice()kojoj predajemo Intent koji opisuje uslugu koju želimo pokrenuti. Intent intent = new Intent(this, HelloService.class); startservice(intent); Slika 1.2 Životni ciklus usluge, preuzeto s [2] Pružatelji sadržaja (content providers) su komponente koje predstavljaju objekte koji upravljaju skupom podataka koji se može dijeliti između aplikacija. Podaci kojima upravljaju se mogu pohranjivati na datotečni sustav operacijskog sustava, u bazu podataka SQLite, na mrežnog poslužitelja ili u bilo koji drugi oblik trajne pohrane podataka kojoj aplikacija može pristupiti. Tako na primjer sam operacijski sustav Android definira nekoliko javnih pružatelja sadržaja pomoću kojih možemo pristupiti kontaktima koji su spremljeni na uređaju, SMS porukama i slično. Iako im je primarna namjena dijeljenje podataka između aplikacija, ove komponente su također korisne pri radu s privatnim skupom podataka jer pružaju jednostavno sučelje za upravljanje s podacima. 9
15 Kao i prethodne dvije komponente, i pružatelji sadržaja moraju biti navedeni u manifest datoteci. <provider android:authorities="list" android:enabled=["true" "false"] android:exported=["true" "false"]... >... </provider> Kod 1.4 Definiranje pružatelja sadržaja u manifest datoteci Primatelji objavljenih namjera (broadcast receivers) su komponente koje od operacijskog sustava primaju objave globalnih namjera. Ovim načinom komunikacije operacijski sustav može jednostavno obavijestiti sve zainteresirane aplikacije o određenom događaju. Tako na primjer Android redovno šalje poruke o stanju baterije, gašenju ekrana i stanju mreže. Aplikacije također mogu odašiljati ovakvu vrstu obavijesti svim zainteresiranim aplikacijama. Iako ova komponenta ne definira vlastito korisničko sučelje, može stvoriti statusnu obavijest (notification) o tome da se dogodio neki događaj u operacijskom sustavu. Fragmenti (fragments) su komponente sustava koje se prvenstveno koriste za prikazivanje sadržaja unutar aktivnosti. Modeliranje sadržaja unutar fragmenta omogućava aktivnosti da promjenom aktivnog fragmenta promjeni sadržaj na ekranu. U suprotnom slučaju bi za promjenu sadržaja bilo potrebno promijeniti aktivnu aktivnost, što ponekad nije praktično rješenje. Fragmenti također omogućuju separaciju programske logike čime se postiže bolja preglednost i iskoristivost napisanog koda. 10
16 Usluga GCM Google Cloud Messaging for Android (GCM) je usluga koja omogućava razmjenu kratkih poruka, veličine do 4 kb, između poslužitelja i klijentske aplikacije koja se izvodi na uređaju s Android operacijskim sustavom. Razmjena poruka je dvosmjerna, što znači da poslužitelj može klijentu poslati poruku, i klijent mu može odgovoriti. Svaka aplikacija koja se izvodi na operacijskom sustavu Android može, ako ima dopuštenje korisnika, zatražiti od GCM poslužitelja svoj jedinstveni identifikator (push ID). Ovaj identifikator omogućuje da Android zna točno kojoj aplikaciji treba proslijediti poruku od GCM poslužitelja. Kada aplikacija dobije jedinstveni identifikator mora ga dojaviti aplikacijskom poslužitelju. U modelu komunikacije objavi-pretplati dobiveni identifikator predstavlja korisnikovu adresu na kojoj želi primati objave. U sustavu GCM razlikujemo dvije vrste poslužitelja kao što je prikazano na slici 1.3: Spojni poslužitelji su niz poslužitelja između klijenta i aplikacijskog poslužitelja. Oni su zaduženi za prihvat, pohranjivanje i prosljeđivanje poruke od aplikacijskog poslužitelja do klijenta. Ovim poslužiteljima upravlja tvrtka Google. Aplikacijski poslužitelj kojima upravlja razvijatelj aplikacije. Njegova osnovna uloga je pohrana korisničkih pretplata i identifikatora (push ID) koje dobiva od klijenata, kao i prosljeđivanje poruka GCM spojnom poslužitelju. Slika 1.3 Arhitektura sustava za slanje poruka, preuzeto s [2] 11
17 Aplikacijski poslužitelj je zadužen za pohranjivanje korisnikovog jedinstvenog identifikatora s drugim relevantnim podatcima o tom korisniku, kao što su na primjer njegove pretplate. Slanje poruke od aplikacijskog poslužitelja do korisnika se odvija posredstvom GCM poslužitelja. Tijelo i format poruke koja se šalje od aplikacijskog poslužitelja do GCM poslužitelja ovisi o protokolu koji se koristi za komunikaciju. Trenutno je moguće odabrati HTTP ili XMPP (Extensible Messaging and Presence Protocol) [13] protokol. Za slanje poruke pomoću HTTP protokola potrebno je poslati HTTP POST zahtjev na adresu GCM poslužitelja (točna adresa u privitku). Za slanje tekstualnih poruka HTTP zahtjev mora sadržavati sljedeća HTTP zaglavlja: Authorization: key = 'ključ aplikacije' Content-Type: aplication/json (ako šaljemo JSON objekt kao poruku) ili application/x-www-form-urlencoded;charset=utf-8 ako šaljemo običan tekst kao poruku. Kod 1.3 HTTP zaglavlja za slanje poruke GCM poslužitelju Pretplatnike kojima želimo poslati poruke navodimo u JSON polju imena registration_id. Podatke koje šaljemo navodimo u JSON objektu ime data. Content-Type:application/json Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA { "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH- 1RYqx..."], "data" : {... }, } Kod 1.4 Tijelo HTTP zahtjeva 12
18 Slanje poruka Općeniti redoslijed izvođenja operacija potrebnih za slanje poruka između klijentske aplikacije i aplikacijskog poslužitelja je prikazana na UML sekvencijskom dijagramu na slici 1.4: 1. Registracija za uslugu GCM. Klijentska aplikacija zatražuje od GCM poslužitelja svoj jedinstveni identifikator (push ID). Svaka aplikacija koja želi koristiti uslugu GCM mora u svojoj manifest datoteci dodati sljedeće zahtjeve za dopuštenje korisnika: <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.google.android.c2dm.permission.receive" /> <uses-permission android:name="ime_paket_aplikacije.permission.c2d_message" /> Kod 1.5 Navođenje dopuštenja u manifest datoteci Prvi zahtjev se odnosi na dozvolu za pristup Internet mreži, dok se druga dva odnose na korištenje usluge GCM. 2. Obavještavanje aplikacijskog poslužitelja. Nakon što je aplikacija dobila push ID od GCM poslužitelja, mora ga dojaviti aplikacijskom poslužitelju s drugim važim parametrima potrebnim za rad usluge. Ova se komunikacija najčešće odvija preko HTTP protokola, gdje klijent pošalje HTTP POST zahtjev sa svim parametrima na adresu aplikacijskog poslužitelja, na što aplikacijski poslužitelj odgovara s porukom o uspješnosti ili o pogrešci registracije. 3. Slanje poruke GCM poslužitelju. Sljedeći korak je slanje poruke od aplikacijskog do GCM poslužitelja. Kao što je ranije opisano, moguće je koristiti HTTP ili XMPP protokol. Pri primitku poruke, GCM poslužitelj određuje hoće li pohraniti poruku, ako je klijent trenutno nedostupan, ili će ju 13
19 odmah proslijediti. Aplikacijski poslužitelj može odrediti koliko dugo GCM treba čuvati poruku, odnosno koliko dugo je poruka aktivna, dodavanjem dodatnog parametra time_to_live u zaglavlje poruke. Ako istekne vrijeme definirano u ovom zaglavlju GCM poslužitelj neće proslijediti poruku klijentu kada on postane dostupan. Također, moguće je definirati parametar delay_while_idle, koji ukazuje GCM poslužitelju da pošalje samo zadnju poruku kada klijent postane aktivan. Drugim riječima, ako je klijent dostupan primati će sve poruke, a ako je nedostupan u trenutku generiranja poruka, dobit će samo zadnju poruku kada postane dostupan. 4. Slanje poruke od GCM poslužitelja do klijenta Kada je klijent dostupan GCM poslužitelj prosljeđuje poruku klijentu. Pri primitku poruke, Android operacijski sustav prosljeđuje poruku pomoću posebne namjere objavljivanja (broadcast intent) do aplikacije koja ima potrebne ovlasti (permissions). Ovim se ujedno osigurava da će jedino klijentska aplikacija pročitati sadržaj poruke, obraditi ga i izvesti odgovarajuće akcije kao što su prikazivanje obavijesti, puštanje zvuka kojim se indicira nova poruka i slično. 5. Slanje odgovora aplikacijskom poslužitelju. Nakon što je GCM poslužitelj proslijedio poruku svim klijentima odgovara aplikacijskom poslužitelju statusnom porukom u kojoj se nalaze informacije o uspješno i neuspješno poslanim porukama. 14
20 Slika 1.4 UML sekvencijski dijagram komunikacije za slanje poruka 1.4. PostgreSQL baza podataka PostgreSQL je objektno-relacijska baza podataka (Object-Relational Database Management System, ORDBMS) otvorenog koda (open source) napisana u programskom jeziku C. U razvoju je od godine, i moguće ju je pokrenuti na većini operacijskih sustava. PostgreSQL je odabran radi svojih mogućnosti jednostavnog pohranjivanja i rada s geoprostornim objektima. Pošto je baza besplatna i jednostavno se podešava vrlo je popularna pri radu s geoinformacijskim sustavima Dodatak PostGIS Baza podataka PostgreSQL je proširiva s nizom dodataka koji omogućuju mnoge dodatne funkcije. Jedan od tih dodataka je i PostGIS koji omogućuje pohranjivanje i rad s geometrijskim i geoprostornim objektima. Također omogućuje i izvršavanje cijelog niza dodatnih lokacijski vezanih upita nad skupom podataka u bazi. Primjer jednog takvog upita nad bazom podataka u kojoj imamo tablice grad i superheroj, u kojima su 15
21 spremljene lokacije gradova s njihovim imenima, i lokacije superheroja s njihovim imenima bi bio: SELECT superheroj.ime FROM grad, superheroj WHERE ST_Contains(grad.lokacija, superheroj.lokacija) AND grad.ime = Gotham ; Kod 1.6 Primjer upita u bazi podataka PostgreSQL U ovom upitu želimo dobiti sva imena superheroja koji se trenutno nalaze na lokaciji koja se zove Gotham. Rezultat ovog upita je naravno Batman. U ovom primjeru je važno uočiti korištenje funkcije ST_Contains() koja vraća vrijednost tipa boolean. Funkcija prima dva parametra geometrijskoj kolekcij geoma i geomb, a vraća boolean vrijednost true ako i samo ako u geometrijskoj kolekciji geomb postoji barem jedna točka koja se nalazi u geometrijskoj kolekciji geoma. U suprotnom vraća boolean vrijednost false. Rad s ovim objektima se temelji na normama koje je definirala Međunarodna organizacija za standardizaciju (International Organization for Standardization ISO) i OGC (Open Geospatial Consortium). OCG je međunarodni dobrovoljni konzorcij osnovan Postoji preko 400 komercijalnih, vladinih, neprofitnih i istraživačkih organizacija diljem svijeta koje su pristupile ovom konzorciju s ciljem organizacije i standardizacije geoprostornih sadržaja i usluga. Dodatak PostGIS omogućuje rad s metodama koje definira OpenGIS [14]. Metode možemo podijeliti u pet osnovnih kategorija: 1. Upravljačke metode Omogućavaju upravljanje s bazom podataka koja koristi geoprostorne objekte, točnije za manipulaciju tablica u bazi. Tako postoje metode za dodavanje i brisanje stupca, za pohranu geoprostornih objekata i općenito za podešavanje tablica. 2. Relacijske metode Pomoću relacijskih metoda ispitujemo relacije između dva geoprostorna objekta. Popis najčešće korištenih relacijskih funkcije s kratkim opisom je dan u tablici
22 3. Metode za obradu objekta Ove metode definiraju operacije pomoću kojih možemo obrađivati geoprostorne objekte. Primjer nekih od operacija za obradu je dan u tablici 1.2 s kratkim opisom svake metode. 4. Pomoćne metode Pomoćne metode definiraju pomoćne operacije nad objektima. Tako postoje metode za pretvaranje geoprostornog objekta u tekstualni zapis (ST_AsText()), razne metode za dohvaćanje određenih točaka u raznim objektima kao što su linije i poligoni i slične metode. 5. Metode za konstrukciju objekata Metode za konstrukciju objekata omogućuju stvaranje objekata. Tako postoje metode za stvaranje objekta iz raznih formata tekstualnog zapisa (ST_GeomFromText(), ST_PointFromText(), ST_LinestringFromText(),... ) Tablica 1.1 Primjer relacijskih metoda u dodatku PostGIS Ime metode ST_Distance() ST_DWithin() ST_Within() ST_Equals() Kratki opis Vraća udaljenost između dva geoprostorna objekta u odabranoj mjernoj jedinici Vraća boolean vrijednost true ako se objekti nalaze unutar definirane udaljenosti jedan od drugoga. Vraća boolean vrijednost true ako se objekt A u potpunosti nalazi unutar objekta B Vraća boolean vrijednost true ako su objekti prostorno jednaki. Preporučuje se koristiti za usporedbu umjesto = ST_Intersects() Vraća boolean vrijednost true ako se objekti prostorno presijecaju ST_Touches() Vraća boolean vrijednost true ako se objekti prostorno dodiruju 17
23 Tablica 1.2 Primjer upravljačkih metoda u dodatku PostGIS Ime metode Kratki opis ST_Centroid() Vraća točku koja predstavlja centar objekta ST_Area() ST_Length() ST_Buffer() Vraća površinu objekta ako je on poligon ili multi-poligon objekt Vraća dužinu krivulje u odabranoj mjernoj jedinici Vraća objekt koji sadrži sve točke koje se nalaze na određenoj udaljenosti od predanog objekta. Dobiveni objekt predstavlja okolno područje. Pri radu s dodatkom PostGIS razlikujemo dvije vrste prostornih objekata. To su geometrijski i geoprostorni objekti. Geometrijski objekti definiraju objekte u Kartezijevom koordinatnom sustavu. Pogodni su za korištenje ako baza podataka obuhvaća manje geografsko područje nad kojim Kartezijev koordinatni sustav pruža dovoljno dobru aproksimaciju. Postoji više metoda za rad s geometrijskim objektima nego s geoprostornim objektma. Izvođenja metoda koje kao parametar primaju geoprostorne ili geometrijske objekte traje kraće pri radu s geometrijskim objketima, tj. metode su tada procesorski manje zahtjevne. Geoprostorni objekti definiraju objekte u sferoidnom koordinatnom sustava, što omogućava određivanje lokacije korisnika na temelju geografske širine i geografske dužine što je pogodno ako se u bazu podataka spremaju podatci očitani s raznih GPS [15] prijamnika. Generalno pružaju manje metoda nego geometrijski objekti i metode su procesorski zahtjevnije. Njihovo korištenje se preporučuje ako modeliramo bazu podataka za veliko geografsko područje i ako pohranjujemo podatke u obliku geografske širine i dužine. 18
24 Slika 1.5. Kartezijev i sferoidni koordinatni sustav, preuzeto s [3] Dodatak PostGIS omogućuje rad s nekoliko objekta od kojih su najvažniji točka (point), linija (linestring) i poligon (polygon). Svaki od ovih objekta može biti geometrijski ili geoprostorni. Objekt točka predstavlja jednu točku u prostoru. U Kartezijevom sustavu se određuje s dva parametra x i y koordinatom, dok se u sferoidnom koordinatnom sustavu određuje s geografskom širinom i dužinom. Slika 1.6. Primjer točke u dodatku PostGIS Objekt linija predstavlja niz točaka u prostoru koje povezane čine krivulju. Definira se nizom uređenih parova x i y koordinata za Kartezijev koordinantni sustav i nizom uređenih parova geografske širine i dužine za sferoidni koordinatni sustav. 19
25 Slika 1.7 Primjer linije u dodatku PostGIS Objekt poligon predstavlja zatvoreno područje u prostoru. Definicija mu je ista kao kod objekta linija osim činjenice da početna i zadnja točka moraju imati identične koordinate kako bi se naglasilo da se radi o zatvorenoj krivulji. Slika 1.8 Primjer poligona u dodatku PostGIS Određivanje udaljenosti između geoprostornih objekata Korištenjem dodatka PostGIS za bazu podataka PostgreSQL moguće je jednostavno dohvaćanje svih unosa u tablici koji se nalaze proizvoljno daleko od nekog objekta u prostoru. Pretpostavimo da imamo tablicu korisnici u kojoj su pohranjene njihove lokacije (koje mogu biti točka, linija ili poligon) u prostoru i njihovi identifikator. U klasičnim bazama 20
26 podataka nemoguće je izgraditi upit kojim bi se dohvatili svi korisnici koji su udaljeni manje od 20 metara od nekog poligona u prostoru. U PostGIS-u bi taj upit izgledao: SELECT DISTINCT user_id FROM korisnici WHERE ST_DWITHIN(ST_GeographyFromText(POLYGON), korisnici.lokacija,20); Kod 1.7 Primjer upita koji uzima u obzir udaljenosti objekata U navedenom upitu koristimo funkciju ST_DWITHIN() kojoj predajemo dva geoprostorana objekta i broj koji pretstavlja okolno područje. U ovom slučaj okolno područje je 20 metara. Funkciji je moguće predati i još jedan parametar, zastavicu tipa boolean kojom se označava da li se izračun treba provoditi u sferoidnom (zastavica postavljena na true) ili u Kartezijevom (zastavica postavljena na false) koordinatnom sustavu. Pošto smo funkciji predali dva geoprostorna objekta, ova zastavica je automatski postavljena na true, ali ako želimo ubrzati rad ove funkcije možemo ju postaviti na false, čime gubimo na preciznosti izračuna udaljenosti. Funkcija ST_GeographyFromText() pretvara tekstovni zapis poligona u odgovarajući geoprostorni objekt. Ideja po kojoj se određuje udaljenost između dva poligona je sljedeća [4]. Pretpostavimo da imamo dva poligona kao na slici 1.9 između kojih želimo odrediti udaljenost. Slika 1.9 Dva poligona između kojih se računa udaljenost, [4] 21
27 Prvi korak je pronalaženje linije koja povezuje poligone. Pošto svaki poligon možemo opisati kvadratom, najjednostavnije je povezati središta tih kvadrata kao što se vidi na slici Slika 1.10 Linija koja spaja središta opisnih kvadrata poligona, [4] Sljedeći korak je određivanje najbližih vrhova poligona. Ovaj problem se rješava povlačenjem okomice iz svakog vrha na spojnu liniju poligona. Slika 1.11 Određivanje dva najbliža vrha Za svaki okomiti pravac pamtimo gdje presijeca x os koordinatnog sustava. Određivanje najbližih pravaca se sada svodi na uspoređivanje presjecišta x osi. Tako dolazimo do pravca koji prolazi kroz točku P5 u prvom poligonu, i do pravca koji prolazi kroz točku 22
28 P12 u drugom poligonu. Sada računamo udaljenost između točaka P5 I P12. Pošto ne tražimo minimalnu udaljenost između dva vrha poligona, nego između dva poligona općenito, moramo testirati i stranice poligona. Da bi to napravili izmjerit ćemo udaljenosti između bridova i vrhova poligona. Tako mjerimo udaljenost između bridova vrha P5 (P4- P5 i P5-P6) i bridova vrha P12 (P11-P12 i P12-P13). Također mjerimo i udaljenosti između svih šest vrhova međusobno (P4, P5, P6, P11, P12, P13), i kombinacije s pripadajućim bridovima. Naravno ne mjerimo udaljenosti između vrhova istog poligona, nego samo kombinacije vrhova susjednih poligona koje promatramo. Kao rezultat odabiremo najmanju izmjerenu udaljenosti, koja je u ovom slučaju udaljenosti između vrha P6 i vrha P13. Slika 1.12 Minimalna udaljenostu u prvom koraku izračuna Sada znamo da je udaljenost koju tražimo između udaljenosti P6, P13 i udaljenosti između dva paralelna pravca. Sljedeći korak je ponavljanje cijelog postupka za sljedeći vrh koji je najbliži paralelnim pravcima, uz ograničenje da je bliže od najdalje izračunate udaljenosti iz prethodnog koraka. Tako dolazimo do vrha P8 u prvom poligonu. Pošto smo uspoređivali udaljenosti između susjednih vrhova i bridova, došli smo do minimalne udaljenosti između dva poligona, vrha P8 i stranice P12,P13 kako što je prikazano na slici
29 Slika 1.13 Krajnja minimalna udaljenost poligona Računanje udaljenosti između drugih objekata se svodi na jednostavniji slučaj od opisanog, ovisno o kojim se objektima radi. Važno je napomenuti da s ovakvim pristupom možemo odrediti udaljenosti samo objekta koji se ne presijecaju. 24
30 2. Geoprostorni poslužitelj objavi-pretplati Geoprostorni poslužitelj objavi-pretplati se sastoji od dvije glavne komponente: Aplikacijski poslužitelj Poslužitelj baze podataka Aplikacijski poslužitelj prihvaća i obrađuje korisničke zahtjeve, dok poslužitelj baze podataka je zadužen za pohranu i obradu podataka. Drugim dijelovima objavi-pretplati sustava ova dva poslužitelja izgledaju poput jednoga, tj. druge komponente ne znaju za postojanje poslužitelja baze podataka. Slika 2.1 prikazuje UML slijedni dijagram koji opisuje slijed poruka koje razmjenjuju klijent, aplikacijski poslužitelj, baza podatak i GCM poslužitelj. Slika 2.1 UML sekvencijski dijagram komunikacije poslužitelja 25
31 Implementacija poslužitelja Razvijeni aplikacijski poslužitelj je napisan u programskom jeziku Java unutar NetBeans 8.0 razvojnog okruženja kao web aplikacija koja se izvodi na GlassFish poslužitelju verzije 4. Za pohranu podataka korišten je PostgreSQL poslužitelj baze podataka s PostGIS dodatkom. Aplikacijski poslužitelj razvijen je kao RESTful web usluga (Representational State Transfer, REST). REST usluga je model koji definira način na koji će se stvarati, čitati, osvježavati i brisati podatci na poslužitelju koristeći HTTP pozive. Poslužitelj komunicira s klijentima razmjenjujući JSON (JavaScript Object Notation) poruke. Iz tog razloga u projekt su dodane dvije biblioteke (libraries) json-simple jar i org.json jar preuzete sa [5], [6] koje omogućuju ovu funkcionalnost. JSON je otvoreni standard za formatiranje tekstualnih poruka po principu ključ-vrijednost. [7]. Za samu komunikaciju s GCM poslužiteljom zadužena je biblioteka gcm-server.jar, preuzeta sa [8] Zadaće aplikacijskog poslužitelja Razvijeni aplikacijski poslužitelja ima tri osnovne zadaće: Obrađivanje korisničkih zahtjeva Pohranjivanje podataka u bazu Slanje poruka GCM poslužitelju Slika 2.2 prikazuje UML dijagram razreda poslužitelja. Obrada korisničkih zahtjeva izvršava se u klasama PublishResource i SubscriptionResource. Pohranjivanje podataka u bazu izvršava se u razredu Database, dok je klasa GCMService zadužena za slanje poruka GCM poslužitelju. 26
32 Slika 2.3 UML dijagram klasa aplikacijskog poslužitelja Obrađivanje korisničkih zahtjeva Za obrađivanje korisničkih zahtjeva definirana su dva REST web servisa koji su zaduženi za obradu pretplata i objava Obrada pretplata Kada se korisnik želi pretplatiti na novo područje poslati će poslužitelju zahtjev HTTP POST sa potrebnim parametrima, a ako želi otkazati pretplatu poslat će zahtjev HTTP DELETE. Samim time poslužitelj na adresi za obradu pretplata razlikuje ove dvije metode i ovisno o njima primjenjuje odgovarajuću logiku za dodavanje i brisanje pretplata iz baze podataka. Obrada pretplata se izvršava u klasi SubscriptionsResource koji predstavlja REST servis za obradu zahtjeva pristiglih na adresu /GeoAppServer/resources/subscriptions. Metoda postjson() prima zahtjeve HTTP POST. Tijelo zahtjeva treba sadržavati niz znakova koji predstavlja JSON objekt u kojem se nalaze parametri geom, koji predstavlja geografsku lokaciju za koju se korisnik želi pretplatiti i parametar push_id koji predstavlja push ID korisnika koji se pretplaćuje. Nakon što je pozvana metoda postjson(), u njoj se provodi parsiranje primljenog JSON objekta koji se nalazi u varijabli tipa string i dobiveni podatci se predaju bazi podataka na daljnju obradu. Primjer jednog takvog objekta bio bi: 27
33 { "geom":"point ( )", "push_id":"apa91bemyqv9w14nfuwefk8o4xeylztlrdeijwsecmdhlu1ethkn... } Kod 2.1 Primjer JSON objekta koji se razmjenjuje između klijena i poslužitelja Ako je poslužitelj uspješno zaprimio i pohranio pretplatu šalje odgovor u obliku objekta string u kojem je zapisan JSON objekta u kojemu se nalazi ključ status i vrijednost OK. {"status":"ok"} Ako se dogodila pogreška, poslužitelj odgovara s istom porukom ali s vrijednošću ERROR. Ako je klasa primila zahtjev HTTP DELETE on se prosljeđuje deletejson() metodi. Ova metoda očekuje dva parametra push_id i geom koji su predani u obliku standardnog HTTP upita (query), što znači da su navedeni u samoj adresi zahtjeva nakon znaka '?' odvojeni znakom '&' jedan od drugoga. Predani parametri su URL kodirani kako bi se mogli prenositi preko mreže. Primjer jednog takvog zahtjeva bi bio: s?push_id=apa91bemyqv9w14nfuwefk8o4xeylztlrdeijwsecm...&geom= POINT+% %29 Kod 2.2 Primjer HTTP DELETE zahtjeva Metoda predaje primljene parametre bazi podataka koja provodi brisanje pretplate. Poslužitelj u odgovoru šalje vrijednost JSON objekta s parametrom status i vrijednostima OK ako je otkazivanje pretplate izvedeno uspješno ili vrijednosti ERROR ako je došlo do pogreške. 28
34 Obrada objava Kada objavljivač stvori novu objavu dojavljuje ju poslužitelju na adresu na kojoj poslužitelj očekuje nove objave. Pri primanju objave aplikacijski poslužitelj šalje bazi podataka upit za svim klijentima za koje se pristigla objava odnosi. Nakon dobivanja odgovor od baze podataka, popis klijenata i pristigla obavijest se prosljeđuju klasi koja će te podatke proslijediti GCM poslužitelju. Klasa PublishResource predstavlja REST servis koji je zadužen za obradu zahtjeva pristiglih na adresu /GeoAppServer/resources/publish. Na tu adresu objavljivači zahtjevom HTTP POST dojavljuju poslužitelju svoje objave. Klasa ima samo jednu metodu postjson()koja prima jedan parametar tipa string koji predstavlja JSON objekt u kojemu se nalaze tri para ključ-vrijednost. Vrijednost koja se nalazi pod ključem geom označava lokaciju za koju se odnosi objava a sam tekst objave se nalazi pod ključem message. Vrijednost pod ključem distance predstavlja dodatno područje oko objave (buffer). Dodatno područje tako definira prsten određene debljine oko područja objave. Pri dohvaćanju korisnika kojima treba isporučiti pristiglu objavu, dohvatit će se i korisnici čije se pretplate ne nalaze ununtar područja objave ali se nalaze u okolnom području. Primjer jedne takve objave bio bi: { "message":"poplava u Zagrebu", "geom":"polygon (( , , , , ))" "distance":20, } Kod 2.3 Primjer JSON objekta objave Nakon što poslužitelj primi i parsira tijelo objave, dohvaća iz baze podataka sve korisnike koji su pretplaćeni na područje u objavi i prosljeđuje listu korisnika i samu objavu klasi GCMService koja je zadužena za komunikaciju s GCM poslužiteljem. GCMService.sendPost(message, location, users); 29
35 Pohranjivanje podataka u bazu Pošto aplikacijski poslužitelj iz više klasa mora komunicirati s bazom podataka, sva logika oko komunikacije izdvojena je u posebnu klasu Database. Ona pruža svim ostalim komponentama aplikacijskog poslužitelja metode za pohranu, brisanje i dohvaćanje podataka iz baze. Time je postignuto skrivanje baze podataka od drugih dijelova aplikacijskog poslužitelja. Klasa Database je izvedena po programskom obrascu singleton, što znači da se tijekom rada poslužitelja instancira samo jedan objekt ove klase. Sam razred ima tri javno dostupne metode pomoću kojih drugi objekti mogu komunicirati s bazom podataka. Kada neki objekt želi komunicirati s bazom podataka dohvaća instancu razreda pozivajući javnu statičku metodu getinstance() koja provjerava da li već postoji objekt ove klase. Ako ne postoji stvara ga i vraća referencu na stvoreni objekt, a ako već postoji samo se vraća referenca na njega. Klasa Database pri instanciranju stvara objekt razreda Connection koji se zna povezati na bazu podataka koristeći biblioteku postgresql jdbc41.jar preuzetu s [9]. try { connection = DriverManager.getConnection( "jdbc:postgresql:// :5432/geodb", "antun", ""); } catch (SQLException e) { System.out.println("Connection Failed! Check output console"); } Kod 2.4 Spajanje na poslužitelja baze podataka Za pohranjivanje novih pretplata u bazu koristi se metoda insertsubscriptions() koja prima dva parametra tipa string, korisnikov ID i reprezentaciju geoprostornog objekta. Ubacivanje se izvodi stvaranjem novog objekta PreparedStatement i pozivanjem metode execute() nad tim objektom. 30
36 PreparedStatement preparedstatement = connection.preparestatement("insert INTO subscription (user_id, geom) VALUES (?, ST_GeographyFromText(?)) "); preparedstatement.setstring(1, userid); preparedstatement.setstring(2, geoobject); preparedstatement.execute(); Kod 2.5 Primjer stvaranja INSERT upita na bazu podataka Pri stvaranju upita na bazu koristi se PostGIS metoda ST_GeographyFromText() koja pretvara reprezentaciju geoprostornog objekta iz stringa u sam geoprostorni objekt s kojim baza zna raditi. Metoda deletesubscriptions() se koristi za brisanje pretplata iz baze podataka. Isto ako i metoda insertsubscriptions() prima dva parametra, id korisnika i lokacijski objekt koji se želi obrisati. Rezultat izvođenja metode ovisi o uspješnosti operacije brisanja i isti je kao kod metode insertsubscriptions(). PreparedStatement preparedstatement = connection.preparestatement("delete FROM subscription WHERE user_id =? AND geom = ST_GeographyFromText(?);"); preparedstatement.setstring(1, userid); preparedstatement.setstring(2, geoobject); preparedstatement.execute(); Kod 2.6 Primjer stvaranja DELETE upita na bazu podataka Kada je potrebno dohvatiti određene korisnike iz baze, koristi se metoda selectusers() koja prima dva parametra, geoprostorni objekt i okolno područje. Metoda se koristi kada je potrebno dohvatiti sve korisnike za koje se odnosi pretplata na nekom geoprostornom području. Upravo to područje je predano metodi, zajedno s okolnim područjem oko svake pretplate. Ako nije predano okolno područje, ono se postavlja na 20 metara. Kada se ne bi koristilo okolno područje, geoprostorni objekti poput linija i točaka ne bi se mogli grupirati kao obuhvaćeno područje osima ako se objava ne bi nalazila na identičnim koordinatama kao i oni ili ako se područje obavijesti ne prostire preko njih. Za 31
37 grupiranje korisnika se koristi PostGIS metoda ST_DWITHIN(). Kao rezultat izvođenja selectusers() metoda vraća listu ID-eva korisnika koje treba obavijestiti. PreparedStatement preparedstatement = connection.preparestatement("select DISTINCT user_id FROM subscription WHERE " + "ST_DWITHIN (ST_GeographyFromText(?),subscription.geom,?);"); preparedstatement.setstring(1, geoobject);preparedstatement.setstring(2, distance); ResultSet resultset = preparedstatement.executequery(); Kod 2.7 Primjer stvaranja SELECT upita na bazu Slanje poruka GCM poslužitelju Nakon što poslužitelj dobije obavijest od objavljivača i dohvati popis svih korisnika koje treba obavijestiti, prosljeđuje tu informaciju klasi GCMService koja zna komunicirati s GCM poslužiteljem. Ova klasa ima jednu javnu statičnu metodu sendpost() koja prima tekst obavijesti, string reprezentaciju geoprostornog objekta i listu id-eva korisnika kojima treba isporučiti obavijest. Poruka koja se isporučuje GCM poslužitelju nastaje stvaranjem objekta klase Message. U tom objektu se definiraju svi potrebni parametri potrebni za isporučivanje poruke korisnicima. Poruka se zatim prosljeđuje objektu klase Sender. Pri stvaranju objekta sender potrebno je predati API ključ generiran za korištenje usluge GCM. Postupak generiranja ključa je opisan u privitku. Za slanje poruke koristi se metoda send() razreda Sender kojoj predajemo objekt tipa Message, popis korisnika kojima šaljemo poruku i cijeli broj koji predstavlja broj pokušaja slanja. Metoda send() vraća objekt MulticastResult koji predstavlja odgovor poslužitelja GCM. 32
38 Sender sender = new Sender(SENDER_ID); Message message = new Message.Builder().collapseKey(collapseKey).timeToLive(30).delayWhileIdle(true).addData("message", textmessage).adddata("location", loacation).build(); MulticastResult result = sender.send(message, users, 1); Kod 2.8 Slanje poruke GCM poslužitelju 2.3. Poslužitelj baze podataka Kao poslužitelj baze podataka koristi se poslužitelj PostgreSQL. Na poslužitelju je stvorena baza podataka imena geodb u kojoj se nalazi jedan tablica imena subscription. Tablica se sastoji od tri stupca. U prvi stupac se pohranjuje korisnikov ID kao character tip veličine do 255 znakova. U drugom stupcu se pohranjuju geoprostorni objekti kao tipovi geography, dok se u trećem stupcu pohranjuje primarni ključ tablice tipa bigint. Slika 2.4 Tablica subscription u bazi podataka 33
39 Sam poslužitelj pokrenut je na vratima (port) 5432 i iz aplikacijskog poslužitelja mu se pristupa korištenjem postgresql jdbc41.jar biblioteke preuzete s [8] koja zna komunicirati s ovim poslužiteljem. 34
40 3. Klijentska aplikacija U razvijenom geoprostornom sustavu objavi-pretplati pretplatnik može stvarati svoje objave i prosljeđivati ih aplikacijskom poslužitelju koji će ih proslijediti drugim zainteresiranim korisnicima. U tu svrhu razvijena klijentska aplikacija uz stvaranje i otkazivanje pretplata za određeno područje i primanje obavijesti za ta područja, može i stvarati obavijesti za bilo koje područje. Klijentska aplikacija korisnicima omogućava tri glavne aktivnosti: 1. Stvaranje i otkazivanje pretplata 2. Stvaranje objava 3. Prikazivanje primljenih objava Nakon pokretanja aplikacije korisniku se prikazuje karta s usluge Google Maps na kojoj je prikazana njegova trenutna lokacija i njegove aktivne pretplate. Na slici 3.1 a) je vidljiva situacija kada korisnik nema definiranih pretplata, dok su na slici 3.1 b) vidljive tri pretplate. Slika 3.1 Početni zaslon aplikacije bez pretplata a) i s pretplatama b) 35
41 Ako pritisnemo na gumb u gornjem lijevom kutu, otvorit će se navigacijska ladica u kojoj se nalazi izbornik s tri osnovne kontrole: 1. Prikazivanje karte za stvaranje objava i pretplata 2. Izbornik za otkazivanje pretplata 3. Izbornik za pregledavanje pristiglih objava Slika 3.2 Navigacijska ladica 3.1. Stvaranje i otkazivanje pretplata Za stvaranje nove pretplate potrebno je u navigacijskoj ladici odabrati Map i na prikazanom zaslonu pri gornjem desnom rubu ekrana odabrati gumb ADD nakon čega se ponudi izbornik za dodavanje nove pretplate prikazan na slici 3.3 a). Prvi korak pri stvaranju pretplate je odabir prostornog objekta na koji se želimo pretplatiti. Može se pretplatiti na točku, liniju ili poligon. Kako bi se lakše snalazili u svojim pretplatama moguće je definiranje imena pretplate u polju za unos teksta (Subscription name). Pritiskom gumba Cancel otkazuje se dodavanje nove pretplate a pritiskom na gumb Add vraća se na prethodno vidljivu kartu. Pritiskom na kartu dodaju se točke koje će definirati pretplatu (slika 3.3 b). 36
42 Slika 3.3 a) Izbornik za stvaranje nove pretplate, b) Definiranje točaka pretplate Korisnik u svakom trenutku može odustati pritiskom gumba CANCEL koji se nalazi u gornjem desnom rubu ekrana. Pritiskom na kvačicu u gornjem lijevom rubu ekrana smatra se da je korisnik završio definiranje pretplate i ona se dojavljuje aplikacijskom poslužitelju. Za otkazivanje pretplata potrebno je odabrati Unsubscribe u navigacijskoj ladici nakon čega se prikazuje izbornik s popisom svih definiranih pretplata (slika 3.4 a). Za svaku pretplatu se prikazuje ime koje joj je korisnik dodjelio, tip pretplate i od koliko se točaka u prostoru ona sastoji. Pritiskom na pretplatu korisniku se nudi opcija otkazivanja, tj. brisanja te pretplate (slika 3.4 b). 37
43 Slika 3.4 a) Popis korisnikovih pretplata, b) Potvrda za brisanje određene pretplate 3.2. Stvaranje objava Za stvaranje nove objava potrebno je u navigacijskoj ladici odabrati Map i u gornjem desnom rubu ekrana pritisnuti gumb PUBLISH. Korisniku se prikazuje izbornik za stvaranje nove objave koji je sličan stvaranju nove pretplate. Potrebno je odabrati tip geoprostornog objekta za koji se stvara objava, unijeti tekst objave i definirati okolno područje oko obavijesti (slika 3.5 a). Pritiskom na gumb ADD vraća se na prethodnu kartu na kojoj je potrebno odrediti područje objave (slika 3.5 b). Kada je korisnik odredio lokaciju objave, pritiskom na kvačicu u gornjem desnom rubu ekrana šaljemo ju poslužitelju. 38
44 Slika 3.5 a) Izbornik za stvaranje nove objave, b) Definiranje lokacije objave 3.3. Prikazivanje primljenih objava Odabirom stavke Notification u navigacijskoj ladici, korisniku se prikazuje popis objava koje je primio (slika 3.6 a). Svaka objava sadrži vrijeme kada ju je korisnik primio, i samu poruku. Pritiskom na određenu objavu prikazuje se lokacija objave (slika 3.6 b). 39
45 Slika 3.6 a) Popis pristiglih objava, b) Pregledavanje lokacije definirane u objavi 3.4. Implementacija klijntske aplikacije Klijentska aplikacija je razvijena kako novi projekt unutra razvojnog okruženja Android Studio. Ovo razvojno okruženje koristi dodatak Gradle [10] za izgradnju jednom napisane aplikacije, i ako želimo u aplikaciju uključiti dodatne biblioteke potrebno ih je navesti unutar datoteke build.gradle. Klijentska aplikacija koristi usluge GCM i Google Map, koje se nalaze unutar dodatka Google Play Service, koji se nalazi unutar Android SDK pa je potrebno navesti taj dodatak unutar build.gradle datoteke. dependencies { compile filetree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:4.3.23' compile 'com.android.support:appcompat-v7:19.+' compile 'com.android.support:support-v4:19.+' } Kod 3.1 Navođenje biblioteka u build.gradle 40
46 Implementacija ranije opisanih funkcionalnosti aplikacije je podijeljena u pet logičkih cjelina. Aktivnosti Aplikacija sadrži tri aktivnosti. Početna aktivnost je StartActivity u kojoj se od GCM poslužitelja zahtjeva push ID i vrši se dojavljivanje ID-a aplikacijskom poslužitelju. Glavna aktivnost u aplikaciji je DrawerActivity. Ova aktivnost u sebi sadrži logiku za prikazivanje navigacijske ladice, kao i logiku za izmjenu fragmenata. MapPopUp aktivnost se koristi pri prikazivanju Google Map karte kada korisnik pregledava pristigle objave. Specifičnost ove aktivnosti je da je definirana kao dialog aktivnost, što označava da se neće prikazati preko cijelog zaslona uređaja, nego će se pojaviti kao objekt iznad postojeće aktivnosti. Fragmenti Logika ranije opisanih kontrola aplikacije je izdvojena u zasebne fragmente. Tako se logika prikazivanja izbornika u navigacijskoj ladici nalazi u fragmentu NavigationDrawerFragment. Logika za prikazivanje karte na kojoj se vide korisnikove pretplate i njegova lokacija se nalazi u fragmentu GeoMapFragment koji nasljeđuje MapFragment definiran u dodatku Google Play Service. GeoMapFragment se prikazuje kada je u navigacijskoj ladici odabran Map izbornik. Za prikazivanje dodatnog izbornika na pritisak tipki PUBLISH i ADD koristi se fragment GeoDialogFragmetn. NotificationFragment se koristi za prikazivanje pristiglih obavijesti, a fragment UnsubscribeFragment za prikazivanje trenutnih pretplata i otkazivanje istih. NotificationFragment i UnsubscribeFragment fragmenta nasljeđuju ListFragment fragment koji omogućava prikazivanje liste objekata. Za prikazivanje listi koriste se klase koje nasljeđuju ArrayAdapter klasu. Ova klasa zna prikazivati listu objekata na zaslonu u formatu koji se definira u zasebnoj xml datoteci. Za prikazivanje liste obavijesti koristi se klasa NotificationAdapter koja prikazuje listu GeoObject objekata. Opis izgleda jednog reda u listi dan je u datoteci notification_row.xml. Za prikazivanje liste pretplata koristi se klasa SubscribtionAdapter koja također prikazuje listu objekata tipa GeoObject, a definicija jednog reda dana je u datoteci subscribtion_row.xml. Baza podataka 41
47 Podaci u aplikaciji se pohranjuju u bazu podataka SQLite čiji se opis nalazi u datoteci SqliteHelper. Baza podataka se sastoji od dvije tablice u koje se pohranjuju korisnikove pretplate i primljene obavijesti. Upiti na bazu podataka su definirani u klasi GeoDataSource koja nudi metode za rad s bazom podataka drugim komponentama u sustavu. Model Kako bi se pojednostavio rad s geoprostornim objektima u aplikaciji definirana je enumeracija GeomType koja definira postojanje tri vrste objekta (točka, linija i poligon). Svaki od ovih objekata sadrži informacije kao što su ime, id, datum kada je stvoren i obavezna lista točaka od koji se sastoji objekt. Svi ti parametri se nalaze u klasi GeoObject čiji objekti predstavljaju geoprostorne objekte, tako da kada se u aplikaciji radi s pretplatama, radi se zapravo s objektima tipa GeoObject. Za opis obavjesti koristi se klasa LocationMessage koja sadrži tekst pristigle objave i objekt GeoObject razreda koji predstavlja područje definirano u objavi. Općenito Klasa GcmBroadcastReceiver predstavlja primatelja objavljenih namjera koji prima objave pristigle od poslužitelja GCM i prosljeđuje ih usluzi GcmIntentService koja ih obrađuje. Ova usluga parsira pristiglu objavu i stvara statusnu obavijest. Za komunikaciju s aplikacijskim poslužiteljom zadužena je klasa NetworkCommunicator koja definira statične metode za slanje objava i pretplata. Ova klasa koristi volley.jar biblioteku preuzetu s [11] za ostvarivanje komunikacije. U klasi Constants su zapisane općenite konstante i informacije potrebne za rad aplikacije. 42
48 4. Analiza rada sustava Usko grlo sustava je aplikacijski poslužitelj i poslužitelj baze podataka pa je stoga neophodno znati njegove mogućnosti i ograničenja prije nego se krene optimizirati ovako razvijeni sustav. Pri analizi rada ova dva poslužitelja promatrano je kako poslužitelji pohranjuju korisničke pretplate i koliko brzo mogu obrađivati korisničke objave Analiza pohranjivanja pretplata Za mjerenje brzine pohranjivanja pretplata razvijena je aplikacija koja generira korisničke pretplate i dojavljuje ih poslužitelju. Implementacija aplikacije opisana je u privitku. Aplikacija za testiranje stvara deset dretvi koje simuliraju po jednog korisnika. Svaka dretva šalje na poslužitelja 1000 slučajno generiranih točaka na području radijusa 68 km. Ukupno srednje vrijeme obrade korisničkih zahtjeva tako iznosi sekundi. Na slici 4.1 je prikazan graf s vremenima izvršavanja svake dretve za tri odvojena pokretanja aplikacije, tj. za tri odvojena mjerenja. Slika 4.1 Graf s vremenima izvršavanja svake dretve za testiranje 43
PuTTY CERT.hr-PUBDOC
PuTTY CERT.hr-PUBDOC-2018-12-371 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA PUTTY... 4 3 KORIŠTENJE ALATA PUTTY... 7 3.1 POVEZIVANJE S UDALJENIM RAČUNALOM... 7 3.2 POHRANA PROFILA KORISNIČKIH SJEDNICA...
ВишеMicrosoft Word - privitak prijedloga odluke
Informatički sustav za prikupljanje, simulaciju i prikaz podataka o cijenama javnih komunikacijskih usluga (dalje: Sustav e-tarife) Zagreb, HRVATSKA AGENCIJA ZA POŠTU I ELEKTRONIČKE KOMUNIKACIJE Roberta
ВишеRecuva CERT.hr-PUBDOC
Recuva CERT.hr-PUBDOC-2019-5-379 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA RECUVA... 4 3 KORIŠTENJE ALATA RECUVA... 7 4 ZAKLJUČAK... 13 Ovaj dokument izradio je Laboratorij za sustave i signale Zavoda za
ВишеWeb programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju
Osnovni pojmovi WEB tehnologije korišteni u kolegiju Ivan Vazler Odjel za matematiku Sveučilište u Osijeku 16. listopada 2013. WWW - World Wide Web World Wide Web (WWW) svjetska mreža računala s izvorima
ВишеDocument ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata
ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata Gospodarski subjekti Definicija: U skladu s Direktivom 2014/40/EU gospodarski subjekt svaka
Вишеeredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij
eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prijavama koje građani mogu slati Upravnom odjelu za komunalno
ВишеKORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA
KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA SADRŽAJ 1. UVOD... 3 1.1. Cilj i svrha... 3 1.2. Područje primjene... 3 2. POJMOVI I SKRAĆENICE... 4 3. PREDUVJETI KORIŠTENJA... 5 4. PREGLED APLIKACIJE...
ВишеSlide 1
OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik
ВишеSlide 1
Kako jednostavnije preći na višu verziju Formsa Ivan Lovrić, Vedran Latin 14.10.2009. Sadržaj prezentacije Predmet migracije Razlozi za migraciju Infrastruktura potrebna za migraciju Pilot migracija Migracija
Вишеkriteriji ocjenjivanja - informatika 8
8. razred Nastavne cjeline: 1. Osnove informatike 2. Pohranjivanje multimedijalnih sadržaja, obrada zvuka 3. Baze podataka - MS Access 4. Izrada prezentacije 5. Timska izrada web stranice 6. Kritički odnos
ВишеOpći uvjeti korištenja servisa e-Račun za državu povezivanjem_obveznici javne nabave_052019_konačna verzija
Opći uvjeti korištenja servisa e-račun za državu povezivanjem web servisom za obveznike javne nabave 1. Uvod i značenje pojmova 1.1. Ovim Općim uvjetima korištenja servisa e-račun za državu (u daljnjem
ВишеSveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba
Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Baze podataka Tema: Osnovna SELECT naredba Vježbu pripremili:
ВишеMicrosoft PowerPoint - podatkovni promet za objavu.pptx
1 2 3 Što je složaj protokola (protocol suite)? Pojedini protokol se odnosi samo na jedno pitanje koje omogućava komunikaciju. Kada se kombinira više protokola, grupa protokola koja je rezultat takve kombinacije
ВишеMicrosoft Word - 13-Mreze.doc
MREŽE RAČUNALA Mreža (engl. network) skup (sustav) povezanih računala i njihovih perifernih uređaja koji omogućava brzu razmjenu podataka među njima neovisno o njihovoj udaljenosti te zajedničku upotrebu
ВишеPPT
Sve što trebate znati o eračunima u javnoj nabavi U našem priručniku smo ukratko pojasnili što nam je donio Zakon o elektroničkom izdavanju računa u javnoj nabavi. ZAKONSKA REGULATIVA Stupanjem na snagu
ВишеMicrosoft PowerPoint - 06 Uvod u racunarske mreze.ppt
Uvod u računarske mreže v.as.mr. Samir Lemeš slemes@mf.unze.ba Univerzitet u Zenici - 2008 Uvod u računarske mreže Terminologija Primjer povezivanja dva računara Pojam protokola OSI referentni model Protokoli
ВишеMicrosoft Word - IP_Tables_programski_alat.doc
1. IP Tables alat (pregled naredbi) 1.1. Osnovne IP Tables naredbe za filtriranje paketa U ovom poglavlju opisane su osnovne IP Tables naredbe korištene za filtriranje paketa. S programskim paketom IP
ВишеSmjernice za korištenje sustava online prijava Ukoliko imate pristupno korisničko ime i lozinku ili ste navedeno dobili nakon zahtjeva za otvaranje no
Smjernice za korištenje sustava online prijava Ukoliko imate pristupno korisničko ime i lozinku ili ste navedeno dobili nakon zahtjeva za otvaranje novog korisničkog računa (poslati zahtjev na javnipoziv.opp@havc.hr
ВишеNIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.
Projekt e-građani KORISNIČKA UPUTA za aplikaciju Verzija 1.1 Zagreb, srpanj 2014. Naslov: Opis: Korisnička uputa za aplikaciju Dokument sadrži upute korisnicima aplikacije u sustavu e-građani Ključne riječi:
Више8 2 upiti_izvjesca.indd
1 2. Baze podataka Upiti i izvješća baze podataka Na početku cjeline o bazama podataka napravili ste plošnu bazu podataka o natjecanjima učenika. Sada ćete izraditi relacijsku bazu u Accessu o učenicima
ВишеPDO
PDO Marijan Šuflaj FER, 2018 Sadržaj PDO Osnove Izvršavanje upita Ranjivosti Dohvaćanje rezultata upita PDO - PHP Data Objects Jednostavno i konzistetno sučelje za pristup bazama podataka iz PHP-a Isti
ВишеDrugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na
Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja 2019. Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na papirima". 1. (2) Opisati pristupni sklop za izravni
ВишеAlgoritmi SŠ P1
Državno natjecanje iz informatike Srednja škola Prvi dan natjecanja 2. ožujka 219. ime zadatka BADMINTON SJEME MANIPULATOR vremensko ograničenje 1 sekunda 1 sekunda 3 sekunde memorijsko ograničenje 512
ВишеInženjering informacionih sistema
Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)
ВишеE-RAČUN ZA POSLOVNE SUBJEKTE ZAPRIMANJE I SLANJE E-RAČUNA JE LAKO, PROVJERITE U FINI KAKO...
ZA POSLOVNE SUBJEKTE ZAPRIMANJE I SLANJE A JE LAKO, PROVJERITE U FINI KAKO... 2 ZA POSLOVNE SUBJEKTE Servis e-račun je internetski servis za elektroničku razmjenu računa između poslovnih subjekata (dobavljača
ВишеSveučilište u Zagrebu
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA RAČUNALNA FORENZIKA SEMINAR VoIP enkripcija Ivan Laznibat Zagreb, siječanj, 2017. Sadržaj 1. Uvod... 1 2. VoIP enkripcija... 3 2.1 PKI (eng.
ВишеTest ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime
Test ispravio: () () Ukupan broj bodova:. veljače 04. od 3:00 do 4:00 Ime i prezime Razred Škola Županija Mentor Sadržaj Upute za natjecatelje... Zadaci... Upute za natjecatelje Vrijeme pisanja: 60 minuta
ВишеEUROPSKA KOMISIJA Bruxelles, C(2018) 3697 final ANNEXES 1 to 2 PRILOZI PROVEDBENOJ UREDBI KOMISIJE (EU) /... o izmjeni Uredbe (EU) br. 1301
EUROPSKA KOMISIJA Bruxelles, 13.6.2018. C(2018) 3697 final ANNEXES 1 to 2 PRILOZI PROVEDBENOJ UREDBI KOMISIJE (EU) /... o izmjeni Uredbe (EU) br. 1301/2014 i Uredbe (EU) br. 1302/2014 u pogledu odredaba
Више23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi
3. siječnja 0. od 3:00 do 4:00 RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovitelji Sadržaj Zadaci. 4.... Zadaci 5. 0.... 3 od 8 Zadaci. 4. U sljedećim pitanjima na pitanja odgovaraš upisivanjem
ВишеPowerPoint Template
e-račun upute za slanje e-računa iz softwera dataline 1 S A D R Ž A J 1. UVOD 1.1. DATA BIRO d.o.o., Buzet 1.2. E-račun 2. PODEŠAVANJE PARAMETARA ZA RAD 2.1. Matični podaci poduzeća 2.2. Matični podaci
ВишеPravilnik o načinu i uvjetima sprječavanja i suzbijanja zlouporaba i prijevara u pružanju usluga elektroničke pošte
HRVATSKA AGENCIJA ZA POŠTU I ELEKTRONIČKE KOMUNIKACIJE Temeljem članka 12. stavka 1. i članka 107. stavka 12. Zakona o elektroničkim komunikacijama (»Narodne novine«br. 73/08), Vijeće Hrvatske agencije
ВишеMultiBoot Korisnički priručnik
MultiBoot Korisnički priručnik Autorsko pravo 2006., 2007. Hewlett- Packard Development Company, L.P. Informacije sadržane u ovom dokumentu podložne su promjenama bez najave. Jedina jamstva za HP-ove proizvode
ВишеKorisničke upute za podnošenje zahtjeva za rješavanje spora (žalbe)
Korisničke upute Verzija 2.0 HRVATSKA REGULATORNA AGENCIJA ZA MREŽNE DJELATNOSTI Roberta Frangeša Mihanovića 9, 10000 Zagreb / OIB: 87950783661 / Tel: (01) 7007 007, Fax: (01) 7007 070 / www.hakom.hr Sadržaj
ВишеПовезивање са интернетом
Драгана Стопић Интернет Интернет је најпознатија и највећа светска мрежа која повезује рачунаре и рачунарске мреже у једну мрежу, у циљу сарадње и преноса информација употребом заједничких стандарда. INTERnational
ВишеČesto postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako
Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako instalirati (novi) finin certifikat? 4. Kako ispisati
ВишеRačunarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1
Računarske mreže Čas 2 Ivana Tanasijević e-mail: ivana@matf.bg.ac.rs Matematički fakultet, Beograd 1 Utvrđivanje gradiva sa prethodnog časa: popunjavanje adresne strukture, kreiranje soketa, privezivanje
ВишеSveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske o
Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske optike (lom i refleksija svjetlosti). Određivanje žarišne daljine tanke leće Besselovom metodom. Teorijski dio Zrcala i leće su objekti
ВишеUVJETI KORIŠTENJA INTERNETSKE STRANICE Korisnik posjetom web stranicama potvrđuje da je pročitao i da u cijelosti prihvaća o
UVJETI KORIŠTENJA INTERNETSKE STRANICE WWW.TELE2.HR Korisnik posjetom www.tele2.hr web stranicama potvrđuje da je pročitao i da u cijelosti prihvaća ove Uvjete korištenja web stranice www.tele2.hr (dalje
ВишеSVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Leo Siniša Radošić Modreni upravitelj zaporkama ZAVRŠNI RAD Varaždin,
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Leo Siniša Radošić Modreni upravitelj zaporkama ZAVRŠNI RAD Varaždin, 2018. SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE
ВишеOpenVPN GUI CERT.hr-PUBDOC
OpenVPN GUI CERT.hr-PUBDOC-2019-7-384 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA OPENVPN GUI... 5 3 KORIŠTENJE ALATA OPENVPN GUI... 17 4 ZAKLJUČAK... 27 Ovaj dokument izradio je Laboratorij za sustave i signale
ВишеSlide 1
predmet Inženjerska informatika Operativni sistem dr Anica Milošević Koji operativni sistemi postoje? Microsoft Windows Linux Suse Red Hat Ubuntu Unix 26.1.2018. 2 Šta je Windows operativni sistem? Operativni
ВишеRad u mrežnom okruženju Osnove informatike s primjenom računala
Rad u mrežnom okruženju DHCP 1/2 DHCP (Dynamic Host Configuration Protocol) je mrežni protokol koji omogućava automatiziranu dodjelu IP adresa računalu prema parametrima kao što su: mrežna maska koja će
ВишеProgramiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
ВишеVjezbe
SOFTVERSKO INŽENJERSTVO Vježbe 8: Activity dijagrami Robert Manger Sveučilište u Zagrebu PMF-Matematički odsjek Akademska godina 2018/2019. Sadržaj Vježbi 8 Općenito o activity dijagramima Aktivnosti,
ВишеCARNET Webmail Upute za korištenje
CARNET Webmail https://webmail.carnet.hr Upute za korištenje Sadržaj O Webmailu... 2 Prijava u sustav... 3 Korisničko sučelje... 5 Nova poruka... 5 Pregled poštanskog sandučića... 8 Pregled sadržaja poruke...
ВишеMicrosoft Word - InveoP_01.docx
0 INVEO-P Inveo-P je jedinstveno rješenje na tržištu razvijeno upravo za paušalne obrte i jedino koje paušalnim obrtima omogućava potpuni pregled poslovanja. Razvijen je kao integrirano poslovno rješenje
ВишеKvantna enkripcija
19. studenog 2018. QKD = Quantum Key Distribution Protokoli enkriptirane komunikacije koji koriste tzv. tajni ključ zahtijevaju da on bude poznat isključivo dvjema strankama (pošiljatelju i primatelju
ВишеPowerPoint Presentation
УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe
ВишеSlide 1
Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Projektovanje Namenskih Računarskih Struktura 1 Sistemi zasnovani na Androidu Uvod u Android platformu
ВишеUNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET MIHAJLO PUPIN ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo (RADNA
UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET MIHAJLO PUPIN ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo (RADNA VERZIJA) Autori: Ljubica Kazi Biljana Radulovic Dalibor
ВишеLorem ipsum dolor sit amet lorem ipsum dolor
Početna prezentacija za korisnike Ključna aktivnost 1: Mobilnost u svrhu učenja: Razmjene mladih i Mobilnost osoba koje rade s mladima Završno izvješće Mobility tool Projektni ciklus Završno izvješće 1.
ВишеOBAVIJEST PZZ KORISNICIMA Poštovani korisnici programskog rješenja Last2000. Za Vas smo pripremili sljedeće novosti u programu: NOVOSTI
28.12.2016. - OBAVIJEST PZZ KORISNICIMA Poštovani korisnici programskog rješenja Last2000. Za Vas smo pripremili sljedeće novosti u programu: NOVOSTI U VERZIJI 16.1.19.0. Dodatno zdravstveno osiguranje
ВишеSVEUČILIŠTE U ZAGREBU FAKULTET ORANIZACIJE I INFORMATIKE VARAŽDIN Antonio Glešić Aplikacija za razmjenu tekstualnih poruka unutar tematskih skupina ZA
SVEUČILIŠTE U ZAGREBU FAKULTET ORANIZACIJE I INFORMATIKE VARAŽDIN Antonio Glešić Aplikacija za razmjenu tekstualnih poruka unutar tematskih skupina ZAVRŠNI RAD Varaždin, 2018. SVEUČILIŠTE U ZAGREBU FAKULTET
ВишеPHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji
PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji podrška za IBM DB2, Oracle, Ingres, MySQL, PostgreSQL,
ВишеInstalacija i konfiguracija DriveAngela na operativni sistem Apple ios
Instalacija i konfiguracija DriveAngela na operativni sistem Apple ios www.driveangel.ba Primanje SMS poruke Početak instalacije DriveAngela na Vaš mobilni uređaj započinje primanjem SMS poruke u kojoj
ВишеPROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije
PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije korake. Uz dobro razrađen algoritam neku radnju ćemo
ВишеALIP1_udzb_2019.indb
Razmislimo Kako u memoriji računala prikazujemo tekst, brojeve, slike? Gdje se spremaju svi ti podatci? Kako uopće izgleda memorija računala i koji ju elektronički sklopovi čine? Kako biste znali odgovoriti
ВишеInstalacija i konfiguracija DriveAngela na operativni sistem Android
Instalacija i konfiguracija DriveAngela na operativni sistem Android www.driveangel.ba Primanje SMS poruke Početak instalacije DriveAngela na Vaš mobilni uređaj započinje primanjem SMS poruke u kojoj se
ВишеPodružnica za građenje
Dodatak A OPIS USLUGA DODATAK A-1 PROJEKTNI ZADATAK Revizija scenarija i algoritama Regionalnih centara za nadzor i upravljanje prometom na autocestama Zagreb, srpanj 2019. 1. Uvod Sve veći porast prometa
Више(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)
1. C. Imamo redom: I. ZADATCI VIŠESTRUKOGA IZBORA 9 + 7 6 9 + 4 51 = = = 5.1 18 4 18 8 10. B. Pomoću kalkulatora nalazimo 10 1.5 = 63.45553. Četvrta decimala je očito jednaka 5, pa se zaokruživanje vrši
ВишеSignal NCERT-PUBDOC
Signal NCERT-PUBDOC-2018-4-359 Sadržaj 1 UVOD... 3 2 INSTALACIJA APLIKACIJE SIGNAL... 4 3 KORIŠTENJE APLIKACIJE SIGNAL... 8 3.1 SLANJE PORUKA... 8 3.2 NESTAJUĆE PORUKE... 10 3.3 PROVJERA SIGURNOSNOG BROJA...
ВишеJMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.
Mreže računala Završni ispit Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter. Predajete samo papire koje ste dobili. Rezultati, uvid u ispit i upis ocjena:... Zadatak
ВишеOpenDNS Family Shield CERT.hr-PUBDOC
OpenDNS Family Shield CERT.hr-PUBDOC-2019-6-381 Sadržaj 1 UVOD... 3 2 INSTALACIJA USLUGE OPENDNS FAMILY SHIELD... 5 2.1 KONFIGURACIJA NA OPERACIJSKOM SUSTAVU WINDOWS 10... 5 2.2 KONFIGURACIJA NA KUĆNOM/UREDSKOM
ВишеNastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit 1.2. Brojevi zapisan
Nastavna cjelina: 1. Osnove IKT-a Kataloška tema: 1.6. Paralelni i slijedni ulazno-izlazni pristupi računala 1.7. Svojstva računala Unutar računala podatci su prikazani električnim digitalnim signalima
ВишеKorisničko uputstvo mobilne aplikacije Digitalni Kiosk 1
Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1 Sadržaj Opis mobilne aplikacije Digitalni Kiosk... 3 Pokretanje aplikacije... 3 Registracija/Kreiranje novog korisničkog naloga... 3 Dodavanje platne
ВишеMicrosoft Word - IZ-AT-UT-OPR-Pojmovnik-v5.0
POJMOVNIK o značenju pokazatelja i načinu ispunjavanja periodičkih upitnika o pregledu tržišta elektroničkih komunikacija u Republici Hrvatskoj Ovim dokumentom određuje se način ispunjavanja periodičkih
ВишеMicrosoft PowerPoint - LB7-2_WCCF_2010.ppt
WinCC flexible alat za konfiguriranje HMI na operaterskom panelu Praktikum automatizacije LB7-2 Pregled predavanja WinCC flexible izgled, organizacija, princip rada Primjer Praktikum automatizacije --
ВишеGdin Nikola Kovač
Intranet za izdavatelje Korisnički priručnik Uvod Intranet za izdavatelje je usluga Zagrebačke burze namjenjena unosu financijskih izvještaja i vijesti od strane izdavatelja vrijednosnih papira uvrštenih
ВишеRačunarski praktikum I - Vježbe 01 - Uvod
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 01 - Uvod v2018/2019. Sastavio: Zvonimir Bujanović Gradivo i način polaganja Gradivo: osnove jezika
ВишеSveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Određivanje relativne permitivnosti sredstva Cilj vježbe Određivanje r
Sveučilište J.J. Strossmayera Fizika 2 Predložak za laboratorijske vježbe Cilj vježbe Određivanje relativne permitivnosti stakla, plastike, papira i zraka mjerenjem kapaciteta pločastog kondenzatora U-I
ВишеMicrosoft PowerPoint - LB7-2_WCCF_2012.ppt
Praktikum automatizacije ak.g. 2011/2012 Laboratorijski blok 7 (Interaktivna vježba) LB7-2 Konfiguracija sučelja čovjek-stroj na operaterskom panelu unutar programskog paketa Step7 WinCC Flexible Četvrtak,
ВишеKATALOG ZNANJA IZ INFORMATIKE
KATALOG ZNANJA IZ INFORMATIKE Nacionalni savjet za obrazovanje je na 27. sjednici održanoj 17. marta 2014. godine utvrdio izmjene predmetnoga programa INFORMATIKA za I razred gimnazije. Na zahtijev Pedagoško-psihološke
ВишеPOSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE
ZNAČAJ RAČUNARSKIH KOMUNIKACIJA U BANKARSKOM POSLOVANJU RAČUNARSKE MREŽE Računarske mreže su nastale kombinacijom računara i telekomunikacija dve tehnologije sa veoma različitom tradicijom i istorijom.
ВишеMicrosoft Word - 24ms241
Zadatak (Branko, srednja škola) Parabola zadana jednadžbom = p x prolazi točkom tangente na tu parabolu u točki A? A,. A. x + = 0 B. x 8 = 0 C. x = 0 D. x + + = 0 Rješenje b a b a b a =, =. c c b a Kako
ВишеMicrosoft Word - V03-Prelijevanje.doc
Praktikum iz hidraulike Str. 3-1 III vježba Prelijevanje preko širokog praga i preljeva praktičnog profila Mali stakleni žlijeb je izrađen za potrebe mjerenja pojedinih hidrauličkih parametara tečenja
ВишеKorisnicke upute za uslugu "Moj e-racun"
USLUGA ZA INVESTITORE "Moj e-račun" -korisnička uputa- Stranica 1 Obim usluge Uslugom se nudi uvid investitorima koji imaju otvoren račun u sustavu Središnje Depozitarne Agencije (u daljnjem tekstu: Agencije)
ВишеMicrosoft Word - 6. RAZRED INFORMATIKA.doc
Kriteriji ocjenjivanja i vrednovanja INFORMATIKA - 6. razred Nastavne cjeline: 1. Život na mreži 2. Pletemo mreže, prenosimo, štitimo, pohranjujemo i organiziramo podatke 3. Računalno razmišljanje i programiranje
ВишеTrimble Access Software Upute za korištenje V2.0 Geomatika-Smolčak d.o.o.
Trimble Access Software Upute za korištenje V2.0 Geomatika-Smolčak d.o.o. 1. Uvod Ove upute su pisane s ciljem da se kroz rad na konkretnom primjeru omogući brži početak korištenja Trimble Access Software-a.
ВишеRAD SA PROGRAMOM
JOPPD obrazac Podešavanje programa Nakon prvog ulaska u program Obračun plaća 2014 potrebno je pokrenuti opciju Korekcije od 01.01.2014. godine. Program će pokušati ispravno povezati postojeće podatke
ВишеVALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (npis I ejs)
VALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (NPIS I EJS) POREZNA UPRAVA FEDERACIJE BOSNE I HERCEGOVINE Sektor za informacione tehnologije Sarajevo,
ВишеDijagrami sekvenci
Dijagrami sekvenci Izrada dijagrama sekvenci Dijagram sekvenci koristi se za specifikaciju vremenskih zahteva u opisu složenih scenarija opis toka poruka između objekata kojima se realizuje odgovarajuća
ВишеSlide 1
Roland Miklid Patrik Frankovid Zoran Frlan HEP d.d. Sektor za informatiku i telekomunikacije Sadržaj Uvod O projektu i njegovim fazama Oracle Forms & Reports Web servisi & B2B WebLogic BI Publisher Flex
ВишеProgramiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni podsjetnik. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
ВишеGLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu 098/ Sažetak Glazbena učilica je projekt osmišljen kao nadopuna
GLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu beusmarko@gmail.com 098/938-8295 Sažetak Glazbena učilica je projekt osmišljen kao nadopuna nastavnom programu solfeggia u osnovnim glazbenim školama.
ВишеMicrosoft Word - predavanje8
DERIVACIJA KOMPOZICIJE FUNKCIJA Ponekad je potrebno derivirati funkcije koje nisu jednostavne (složene su). Na primjer, funkcija sin2 je kompozicija funkcija sin (vanjska funkcija) i 2 (unutarnja funkcija).
ВишеSveucilište u Zagrebu
Proširivanje Pythona programskim jezicima C/C++ Ivo Majić Mentor: Doc. dr. sc. Domagoj Jakobović Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Ak. god. 2011/12 Ivo Majić (FER) Sveučilište
ВишеUpute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa
1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa koju možete pronaći na sljedećem linku: http://wordpress.org/download/ Kliknite na
ВишеHxD CERT.hr-PUBDOC
HxD CERT.hr-PUBDOC-2019-3-376 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA HXD... 4 3 KORIŠTENJE ALATA HXD... 9 3.1 SUČELJE HXD-A... 9 3.2 PREGLEDAVANJE DATOTEKA... 12 3.3 IZMJENA DATOTEKA... 13 3.4 SIGURNO
ВишеPROPISNIK O KALENDARU NATJECANJA
PRAVILNIK O KALENDARU NATJECANJA HRVATSKOG SPORTSKOG PLESNOG SAVEZA U Zagrebu 18.01.2018 godine. SADRŽAJ I. OPĆE ODREDBE... 2 II. UPIS SPORTSKIH PLESNIH NATJECANJA U KALENDAR NATJECANJA... 3 III. PRIJAVE
Више1. DODATNE USLUGE Pored prethodno navedenih osnovnih usluga, privatni korisnik može odabrati i sledeće dodatne usluge koje su podijeljene po kategorij
1. DODATNE USLUGE Pored prethodno navedenih osnovnih usluga, privatni korisnik može odabrati i sledeće dodatne usluge koje su podijeljene po kategorijama: Besplatne dodatne usluge Dodatne usluge sa naplatom
ВишеDaljinski upravljiva utičnica
Zvonimir Miličević;Martin Berić SEMINARSKI RAD - SPVP Projekt u sklopu Pametna kuća Poznavanje ugradbenih računalnih sustava Načini upravljanja na daljinu 14. lipnja 2018 Sažetak Svakome se dogodilo da
ВишеMicrosoft Word - 24ms221
Zadatak (Katarina, maturantica) Kružnica dira os apscisa u točki (3, 0) i siječe os ordinata u točki (0, 0). Koliki je polumjer te kružnice? A. 5 B. 5.45 C. 6.5. 7.38 Rješenje Kružnica je skup svih točaka
ВишеCARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:
Sadržaj... 1 1. Predgovor... 2 2. Prijava u sustav... 2 3. Postavke... 3 4. Kreiranje zahtjeva za nadzorom razrednih knjiga... 4 5. Pregled razredne knjige... 6 5.1 Dnevnik rada... 7 5.2 Imenik... 11 5.3
ВишеWAMSTER Prezentacija
WAMSTER Mi smo Studio Elektronike Rijeka d.o.o. tvrtka za razvoj tehnoloških rješenja u automatici i elektronici tvrka osnovana 2006. na temelju komercijalizacije rezultata magistarskog rada locirani u
ВишеArtakom d.o.o. Zaštita osobnih podataka općenito Artakom d.o.o. obvezuje se na zaštitu Vaših osobnih podataka temeljem Uredbe (EU) 2016/679 Europskog
Artakom d.o.o. Zaštita osobnih podataka općenito Artakom d.o.o. obvezuje se na zaštitu Vaših osobnih podataka temeljem Uredbe (EU) 2016/679 Europskog parlamenta i vijeća od 27.04.2016.o zaštiti pojedinca
ВишеMicrosoft Word - PLC na Ethernet mrezi.doc
E-mail i WEB servisi na PLC-u Goran Malčić dip.ing. Tehničko veleučilište u Zagrebu Elektrotehnički odjel goran.malcic@tvz.hr Bilo je samo pitanje vremena kada će neki od proizvođača industrijske opreme
ВишеSlide 1
Središnji ured sustava za vođenje maloprodajom Rovinj, 17.10.2008. Ivan Ćurić, dipl. ing. rač. Infoart d.o.o. Bužanova 3, Zagreb icuric@infoart.hr POSiA Upravljanje maloprodajom Cjelovito rješenje Srednji
ВишеKAKO POHRANITI SVOJ RAD U REPOZITORIJ
KAKO POHRANITI SVOJ RAD U REPOZITORIJ? POHRANJIVANJE ZAVRŠNIH I DIPLOMSKIH RADOVA Upute za studente Ove su upute rezultat rada članova Radne skupine za edukaciju i podršku sustava Dabar u sastavu: Ivana
ВишеMicrosoft Word - Svrha projekta.doc
S V E U Č I L I Š T E U Z A G R E B U FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Zavod za elektroničke sustave i obradbu informacija FER 2 program, 1. godina diplomskog studija Kolegij: Sustavi za praćenje
ВишеUPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS
UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS Sadržaj AUTOMATSKO PODEŠAVANJE... 3 PODEŠAVANJE PUTEM MTS VODIČA... 3 PODEŠAVANJE PUTEM SMS PORUKE... 3 PODEŠAVANJE PUTEM USSD MENIJA... 3 MANUELNO PODEŠAVANJE
Више