53
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 814 GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEB Marko Ruškan Zagreb, siječanj 2015

GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 814

GEOPROSTORNI SUSTAV OBJAVI-

PRETPLATI ZA WEB

Marko Ruškan

Zagreb, siječanj 2015

Page 2: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni
Page 3: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni
Page 4: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

Sadržaj

Uvod ...................................................................................................................................... 1

1. Model objavi-pretplati ....................................................................................................... 2

1.1. Objave ......................................................................................................................... 3

1.2. Pretplate ...................................................................................................................... 3

1.3. Posrednik .................................................................................................................... 3

1.4. Geoprostorni sustav objavi-pretplati .......................................................................... 4

2. Geoprostorne baze podataka .............................................................................................. 5

2.1. Modeliranje geoprostornih podataka .......................................................................... 6

2.1.1. Točke, linije i poligoni ........................................................................................ 6

2.1.2. Ograda ................................................................................................................. 7

2.2. Tipovi podataka .......................................................................................................... 7

2.2.1. Geometry ............................................................................................................. 8

2.2.2. Geography ........................................................................................................... 9

2.3. PostGIS funkcije za manipulaciju nad geoprostornim podatcima.............................. 9

3. Web-aplikacija (GeoPubSub) .......................................................................................... 11

3.1. Arhitektura web-aplikacije ....................................................................................... 11

3.1.1. Java Bean ........................................................................................................... 11

3.1.2. JSF stranice ........................................................................................................ 13

3.1.3. Konfiguracija servleta........................................................................................ 14

3.1.4. Usluge okvira JSF .............................................................................................. 14

3.1.5. Životni vijek aplikacije koja koristi okvir JSF .................................................. 15

3.2. Korisničko sučelje .................................................................................................... 17

3.2.1. Prijava i registracija ........................................................................................... 18

3.2.2. Početna stranica ................................................................................................. 21

3.2.3. Obavijesti ........................................................................................................... 22

3.2.4. Korisnikove objave ............................................................................................ 22

Page 5: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

3.2.5. Korisnikove pretplate ........................................................................................ 24

3.2.6. Korisničke postavke .......................................................................................... 27

4. Instalacija programske potpore ........................................................................................ 28

4.1. PostgreSQL i PostGIS .............................................................................................. 28

4.2. Glassfish ................................................................................................................... 37

4.3. JavaServer Faces i Primefaces .................................................................................. 42

Zaključak ............................................................................................................................. 44

Literatura ............................................................................................................................. 45

Sažetak ................................................................................................................................. 47

Summary .............................................................................................................................. 48

Page 6: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

1

Uvod

Dobivanjem pravih informacija u pravo vrijeme moguće su velike uštede vremena. Npr.

izbjegavanje prometne gužve nastale zbog prometne nesreće, ili izbjegavanje obilaska

trgovačkih centara u potrazi za raznim akcijskim popustima. Ovo su samo dva primjera iz

svakodnevnog života u kojima bi se mogao primijeniti sustav objavi-pretplati koji bi

korisnicima omogućio uštedu vremena zbog izbjegavanja nepotrebnog čekanja. Razvojem

interneta uvelike je povećana mogućnost dobivanja pravovremenih informacija krajnjim

korisnicima.

Razvojem Interneta model objavi-pretplati je postao jedan od najraširenijih sustava za

oglašavanje. Na primjer ukoliko ste se registrirali na stranicu od neke trgovine, obično se

prilikom registracije može dodati korisnikova adresa elektroničke pošte na koju će se

prosljeđivati obavijesti o novim artiklima ili o akcijama. Iz navedenog primjera daju se

naslutit dva ograničenja većine dosadašnjih sustava objavi-pretplati. Prvo ograničenje je da

obavijest uvijek šalje „trgovina“ tj. ukoliko želimo čuti mišljenje od drugih korisnika

(kritike) obično bismo ih morali potražiti na raznim forumima što opet ponekad može biti

vremenski zahtjevno. Što ako na primjer želite obavijesti od nekoliko različitih trgovina

koje se nalaze relativno blizu jedna druge (npr. trgovine u Arena Centru)? U tome slučaju

morali biste se registrirati na stranicu od svake trgovine posebno i tu uviđamo drugo

ograničenje.

Geoprostorni sustav objavi-pretplati zadržava sve prednosti klasičnog sustava objavi-

pretplati, a uz to rješava probleme nastale zbog spomenutih ograničenja. O ovom radu je

razvijen i prikazan jedan geoprostorni sustav objavi-pretplati, objašnjeno je od kojih se

komponenti sastoji i na koji način funkcionira.

U prvom poglavlju je dan detaljniji opis samog modela objavi-pretplati. Drugo poglavlje se

bavi programskom podrškom koja je potrebna za pravilno funkcioniranje sustava i na

kojemu je sustav razvijan. Drugim riječima opisuje komponente sustava. U trećemu

poglavlju je opisana razvijena web-aplikacija GeoPubSub. Opisan je način na koji se

koristi i koje su joj mogućnosti. Četvrto poglavlje se odnosi općenito na geoprostorne baze

podataka jer je takva baza podataka ključni dio jednog ovakvog sustava.

Page 7: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

2

1. Model objavi-pretplati

Kao što je u uvodu već napomenuto sustavi objavi-pretplati su već dugo u upotrebi i

najviše se koriste za dostavljanje obavijesti. Sustav objavi-pretplati omogućuje razmjenu

poruka između dvije vrste krajnjih korisnika koji se nazivaju objavljivači i pretplatnici. U

pravilu ova komunikacija je jednosmjerna i poruke se uvijek distribuiraju od objavljivača

prema pretplatnicima. Karakteristike koje još odlikuju ovaj sustav su perzistentnost,

asinkronost, vremenska neovisnost i transparentnost. Sustav je perzistentan što znači da će

poruke koje objave objavljivači biti dostavljene zainteresiranim pretplatnicima. Sustav je

asinkron što pak znači da objavljivač nakon što objavi poruku ne mora čekati na odgovor

od pretplatnika već dalje nastavlja sa radom. Sustav je vremenski neovisan u smislu da

objavljivači i pretplatnici ne moraju istovremeno biti spojeni da bi komunikacija bila

ostvarena jer je sustav posrednik u njihovoj komunikaciji i čuvat će poruke do ponovnog

spajanja. Transparentnost pak znači da objavljivači ne znaju tko su pretplatnici jer se o

isporuci brine sustav.

Sustav objavi-pretplati se sastoji od tri vrste sudionika. Objavljivači, pretplatnici i

posrednik. Što se tiče same arhitekture sustava ona može biti ili centralizirana ili

raspodijeljena. Kod centralizirane arhitekture postoji samo jedan posrednik i on sadrži

podatke o svim objavljivačima i pretplatnicima. Glavni nedostatak ovakve izvedbe je taj

što posrednik predstavlja usko grlo i jedinstvenu točku ispada. Zbog navedenih razloga

centralizirana izvedba je neskalabilna i performanse sustava opadaju s povećanjem broja

novih korisnika. Kod raspodijeljene arhitekture postoji mreža posrednika i svaki posrednik

je nadležan samo za dio pretplatnika odnosno objavljivača. Posrednici su u mogućnosti

prosljeđivati obavijesti drugim posrednicima koji imaju zainteresirane pretplatnike.

Posrednici usmjeravaju obavijesti koje objavljuju objavljivači prema zainteresiranim

pretplatnicima. Posrednik mora imati tablicu usmjeravanja da bi bio u mogućnosti

usmjeriti obavijest prema zainteresiranom. Održavanje tablice usmjeravanja se ostvaruje

izmjenom kontrolnih poruka između posrednika (koje nisu niti obavijesti niti pretplate) i na

ovaj način se generira dodatni promet unutar mreže. Raspodijeljena izvedba je skalabilna

što znači da se performanse bitno ne mijenjaju povećanjem broja novih korisnika u

sustavu. Ne postoji jedinstvena točka ispada sustava jer čak i ako se dogodi da neki

posrednik prestane sa radom ostatak sustava će i dalje funkcionirati i nakon nekog vremena

Page 8: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

3

tablice usmjeravanja u ostalim posrednicima će se ažurirati. Jedino pretplatnici tj.

objavljivači za koje je ispali posrednik bio direktno nadležan neće biti u mogućnosti

primati željene obavijesti tj. objavljivati nove obavijesti. Raspodijeljena arhitektura je

složenija od centralizirane i više informacija o njenoj izvedbi može se naći u [1].

U radu je korištena centralizirana arhitektura.

1.1. Objave

Objave definiraju objavljivači, a namijenjene su pretplatnicima. Objave se sastoje od dvije

sadržaja i meta-podataka. Sadržaj objave može biti slika, tekst, internet poveznica ili pak

nešto drugo. Meta-podaci se koriste za filtriranje obavijesti i to su obično ključne riječi

preko kojih pretplatnici definiraju koje obavijesti žele primiti. U geoprostornom sustavu

objavi-pretplati meta-podacima pripadaju zemljopisna dužina i širina koje određuju

lokaciju obavijesti.

1.2. Pretplate

Pretplate definiraju pretplatnici i njima izražavaju zainteresiranost za određene obavijesti.

Pretplatnicima se ne prosljeđuju sve obavijesti, već samo one za koje je pretplatnik

zainteresiran. Da bi ovo bilo moguće neophodno je obavijesti filtrirati. Pretplatu možemo

promatrati kao filtar za obavijesti definiran od strane pretplatnika. Primjer jedne pretplate

bi bio da korisnik definira pretplatu kojom izražava zainteresiranost samo za obavijesti

vezane za Svjetsko rukometno prvenstvo. U geoprostornom sustavu objavi-pretplati

postoje tri vrste pretplata, a to su pretplata na točku, na liniju i na područje.

1.3. Posrednik

Posrednik vodi računa o tome da obavijesti koje objave objavljivači dospiju do

zainteresiranih pretplatnika. Kako je ranije navedeno postoje izvedbe sustava sa jednim

posrednikom tj. centralna arhitektura i izvedbe sa više posrednika koji tvore mrežu

posrednika tj. raspodijeljena arhitektura. U ovom radu posrednik je izveden kao poslužitelj

koji održava bazu podataka u koju sprema obavijesti (i meta podatke i sadržaj), pretplate i

Page 9: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

4

podatke o korisnicima. Filtriranje se vrši definiranjem i izvršavanjem upita nad

geoprostornom bazom podataka i prikazom rezultata izvođenja upita korisnicima.

1.4. Geoprostorni sustav objavi-pretplati

U geoprostornom sustavu objavi-pretplati jedna od najvažnijih informacija lokacija, bilo da

se radi o objavi ili pretplati. Korištenje geoprostorne baze podataka je neophodno za

efikasno izvršavanje upita koji sadrže podatke o lokaciji. Geoprostorne baze podataka

sadrže mehanizme koji omogućuju pohranu geoprostornih objekata (točke, linije,

poligoni...), kao i određivanje njihovih međusobnih odnosa. Pod međusobnim odnosima se

najviše misli na pripadnost točke nekom poligonu ili na međusobnu udaljenost između dva

geoprostorna objekta. U radu je prezentiran sustav kod kojega su korisnici ujedno i

objavljivači i pretplatnici što pak znači da svaki korisnik može objavljivati obavijesti, ali i

definirati pretplate. Ostvarene su tri vrste pretplata. Pretplata na točku, na liniju i na

područje. Prilikom definiranja pretplata na točku i na liniju korisnik definira i udaljenost

izraženu u metrima unutar koje će primiti postojeće obavijesti.

Page 10: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

5

2. Geoprostorne baze podataka

Konvencionalni sustavi baza podataka razvijaju se već jako dugo i uspješno se primjenjuju

uglavnom za upravljanje velikim skupovima podataka u poslovnim i administrativnim tzv.

standardnim aplikacijama. U zadnje vrijeme javlja se sve veća potreba za bazama podataka

koje se koriste u nestandardnim aplikacijama. Ove aplikacije obično rade sa tehničko-

znanstvenim podatcima. Dosadašnje metode i modeli ne zadovoljavaju potrebe ovih

nestandardnih aplikacija jer se domena podataka koje koriste ove aplikacije u potpunosti

razlikuje od domene podataka konvencionalnih baza podataka. Neke od domena su

računarski podržano projektiranje (CAD), geoinformacijski sustavi (GIS), uredski

informacijski sustavi, aplikacije iz kemije, medicine i biologije i slično. Iz navedenih

razloga postoji potreba za daljnjim razvojem novih tehnologija baza podataka tzv.

nestandardnih sustava baza podataka.

Kako se u ovom radu bavimo podacima vezanim za prostor potrebna nam je baza podataka

koja može upravljati geometrijskim i prostornim podatcima. Postoji nekoliko naziva za

nestandardne sustave baza podataka koji imaju podršku za ovakvu vrstu podataka, a to su

slikovni, rasterski, geoprostorni, geometrijski, geografski ili prostorni sustavi baza

podataka. U ovom poglavlju fokus će biti na geoprostornom sustavu premda se mnogi

njegovi aspekti mogu prenijeti i na geometrijske i prostorne sustave.

Geoprostorni sustav baze podataka je sustav baze podataka sa svim značajkama

standardnog sustava te dodatnim mogućnostima za reprezentaciju, analizu i manipulaciju

objekata u prostoru. Konvencionalni modeli podataka, upitni jezici i metode pristupa

podatcima projektirani su imajući na umu jednostavne tipove podataka koji se mogu

reprezentirati alfanumeričkim podatcima, kao što su cijeli brojevi, realni brojevi i nizovi

znakova. U nestandardnim aplikacijama javlja se i dodatna potreba za upravljanjem

podacima sa kompleksnom strukturom i semantikom. Rješenju ovih problema često se

pristupalo na način da se prošire već postojeći modeli podataka ili upitnih jezika.

Razvojem ovih sustava došlo se do zaključka da su za modeliranje geometrijskih podataka

i njihovu adekvatnu prezentaciju neophodni specijalizirani tipovi podataka koji se nazivaju

prostorni, geometrijski ili geoprostorni tipovi podataka.

Page 11: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

6

Geoinformacijski sustav je informacijski sustav za upravljanje, analizu, predočavanje i

distribuciju geoprostornih informacija. Geoprostorne informacije su informacije o

objektima i pojavama čiji je referentni sustav definiran na površini Zemlje.

2.1. Modeliranje geoprostornih podataka

Za modeliranje geoprostornih objekata koriste se apstraktni tipovi podataka. Kao osnovne

apstrakcije se koriste točka, linija i poligon. Točka reprezentira geometrijski aspekt objekta

za koji je relevantan samo položaj u prostoru, ali ne i njegova veličina (npr. na kartama

velikog mjerila grad se modelira kao točka). Linija, odnosno niz povezanih linija temeljna

je apstrakcija za niz povezanih objekata u prostoru (npr. ceste i rijeke). Poligon je

apstrakcija za objekte koji se prostiru u dvodimenzionalnom prostoru (npr. granica države,

jezero, zemljišna čestica i slično.).

Temeljna svojstva geoprostornih objekata moguće je podijeliti na geometrijska (tj.

prostorna) i ne-geometrijska (tj. tematska). Tematska svojstva se odnose na alfanumeričke

podatke koji opisuju objekt (npr. naziv rijeke, ime grada i slično.). Među geometrijskim

svojstvima razlikujemo metrička i topološka. Metrička opisuju oblik, položaj i veličinu

prostornog objekta u referentnom sustavu, dok se topološke karakteristike odnose na

relacije među geoprostornim objektima. Za referentni sustav se obično uzima Kartezijev

koordinatni sustav. Oblik geoprostornog objekta opisuje apstrakciju strukture

geometrijskog objekta (točka, linija, poligon, trokut, pravokutnik, kružnica i slično.).

Položaj objekta označuje njegov položaj u odnosu prema izabranom referentnom

koordinatnom sustavu. Uvođenjem metrike omogućuje se računanje veličina, kao što je

udaljenost između dva objekta, površina poligona, duljina linije i sl. Relacije među

geoprostornim objektima se odnose na susjedstvo, uključenost, povezanost i slično.

2.1.1. Točke, linije i poligoni

Točka T u euklidskoj ravnini R2 definirana je kao par (x,y) dviju Kartezijevih koordinata.

Pravocrtni segment (linija) definiran je dvjema krajnjim točkama T1 i T2. Krivuljni segment

definiran je dvjema krajnjim točkama i matematičkom jednadžbom krivulje. Krivuljni

segment s, sa krajnjim točkama T1 i T2, može aproksimirati polilinijom, definiranom nizom

točaka Q1,...,Qn pri čemu vrijedi

Page 12: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

7

Regija je zatvoren, povezan i pravilan podskup euklidskog prostora R2. Poligon P u R

2 je

dio prostora omeđen sa zatvorenim putem, sastavljen od konačnog niza pravolinijskih

segmenata. Može se opisati nizom točaka T0, T1, ... , Tn-2, Tn-1, Tn. Dužine T0T1, T1T2, ... ,Tn-

1Tn, TnT1 nazivaju se rubovima poligona. Točke T0, T1, ... , Tn-2, Tn-1, Tn nazivaju se

vrhovima poligona. Jednostavni poligon P = (T0, T1, ... , Tn-2, Tn-1, Tn) ima sljedeća

svojstva:

1) Svi vrhovi su različiti ⇒ .

2) Svako tjeme pripada samo jednom rubu na kojemu se nalazi.

3) Sastoji se samo od linijskih segmenata koji se ne presijecaju.

Definicija poligona je preuzeta iz izvora [22].

2.1.2. Ograda

Ograda geometrijskog objekta g, na udaljenosti d je poligon koji sadrži sve točke unutar

udaljenosti d od geometrijskog objekta g.

Slika 1. Geometrijski objekt (lijevo) i njegova ograda (desno)

2.2. Tipovi podataka

Prilikom izrade ove web-aplikacije korištena je baza podataka PostgreSQL sa dodatkom

PostGIS. U PostGIS-u postoje dva osnovna tipa geoprostornih podataka, Geometry i

Geography. Zbog ovoga postoje i dvije vrste objekata točka, linija i poligon, jedna je

Page 13: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

8

tipa Geometry dok je druga tipa Geography. Moguće je pretvaranje jednog tipa u drugi

i obratno. Postoji nekoliko vrlo bitnih razlika između ova dva tipa. Jedna od najbitnijih

razlika je referentni sustav koji koriste. Na slici 2 su prikazani Kartezijev i Sferoidni

koordinatni sustav.

U Kartezijevom sustavu udaljenost između dvije točke je ujedno i najmanja udaljenost.

Drugim riječima obje točke se nalaze u istoj ravnini i spojene su dužinom. Dok u

Sferoidnom sustavu udaljenost između dvije točke prikazujemo krivuljom koja leži na

sferi. Ukoliko je udaljenost između dvije točke u Sferoidnom sustavu dovoljno mala ovaj

sustav možemo aproksimirati Kartezijevim sustavom.

Slika 2. Kartezijev (lijevo) i Sferoidni (desno) koordinatni sustav, preuzeto s [9]

2.2.1. Geometry

Geometry kao referentni sustav koristi Kartezijev koordinatni sustav i zbog toga je

vremenski manje zahtjevan. Trenutno podržava veći broj funkcija za manipulaciju nad

geoprostornim podatcima. Potrebno je manje vremena za izvršavanje upita tj. funkcije koje

koriste tip Geometry su manje procesorski zahtjevne. Preporuča se korištenje kada su

objekti u geografskom smislu blizu (npr. unutar države, općine, regije i sl.). Manje je

precizan od tipa Geography zbog činjenice da je zemlja sferoidnog oblika, međutim

Page 14: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

9

daje dovoljno precizne podatke kada su objekti na manjem geografskom području zbog

toga što je aproksimacija Zemljine površine dovoljno dobra na manjim područjima.

Povećanjem udaljenosti između objekata preciznost se smanjuje (npr. definitivno se ne

preporuča računati udaljenost između točki tipa Geometry u New Yorku i Zagrebu).

2.2.2. Geography

Geography kao referentni sustav koristi sferoidni koordinatni sustav. Izračuni u

ovakvom sustavu su mnogo kompleksniji i zbog toga su zahtjevniji što se tiče vremena

procesiranja. To je ujedno i jedan od razloga zašto postoji puno manje funkcija koje koriste

ovaj tip podataka, drugi razlog je taj što je ovaj tip uveden relativno nedavno. Ovaj tip

podataka se koristi ukoliko su objekti relativno daleko jedan od drugoga i kada nam je

preciznost jako važna. Funkcije koje kao rezultat vraćaju brojčanu vrijednost (npr. funkcije

koje računaju udaljenost ili površinu), uvijek vraćaju rezultat izražen u metrima.

2.3. PostGIS funkcije za manipulaciju nad geoprostornim

podatcima

U ovom poglavlju bit će riječi o najvažnijim funkcijama koje koristi PostGIS za

manipulaciju nad geoprostornim podatcima. Više informacija se može pronaći u izvorima

[18], [19] i [20].

Funkcije možemo podijeliti u nekoliko skupina:

Funkcije za kreiranje geoprostornih objekata

Funkcije za ispis podataka

Funkcije za računanje metrike

Relacijske funkcije

ST_MakePoint(Longitude, Latitude) – prima vrijednosti zemljopisne dužine i

širine (tim redoslijedom), a vraća objekt tipa točka.

Page 15: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

10

ST_GeomFromText(WellKnownText, srid) – prima geometrijski zapis u dobro

poznatom obliku koji je čitljiv za ljude, i identifikacijski broj referentnog sustava, a

vraća objekt tipa Geometry.

ST_SetSRID(geometry, srid) – prima objekt tipa Geometry i identifikacijski broj

referentnog sustava, a vraća primljeni objekt tipa Geometry sa postavljenim

identifikacijskim brojem referentnog sustava.

ST_AsText(geometry) – prima objekt tipa Geometry i vraća njegov zapis u obliku

koji ljudi mogu pročitati.

ST_AsGeoJSON(geometry) – prima objekt tipa Geometry i vraća zapis u standardnom

GeoJSON formatu.

ST_Area(geometry) – prima objekt tipa Geometry i vraća rezultat koji predstavlja

površinu objekta. Oblik rezultata ovisi o referentnom sustavu.

ST_Length(geometry) – prima objekt tipa Geometry i vraća duljinu tog objekta.

Oblik rezultata ovisi o referentnom sustavu.

ST_Distance(geometry, geometry) – prima dva objekta tipa Geometry i vraća

udaljenost između njih. Oblik rezultata ovisi o referentnom sustavu.

ST_DWithin(geometry, geometry, radius) – prima dva objekta tipa Geometry i

radius, a vraća tip boolean koji je istina ako se ova dva objekta nalaze na

međusobnoj udaljenosti koja je manja ili jednaka radiusu, dok u protivnom vraća laž.

ST_Contains(geometry, geometry) – prima dva objekta tipa Geometry i radius, a

vraća tip boolean koji je istina ako prvi objekt u potpunosti sadrži drugi objekt,

dok u protivnom vraća laž.

ST_Buffer(geography, radius) – prima objekt tipa Geography i radius, a vraća

tip Geography koji predstavlja sve točke koje se nalaze na udaljenosti manjoj od

radiusa od predanog objekta. Radius je izražen u metrima.

Page 16: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

11

3. Web-aplikacija (GeoPubSub)

Sustav GeoPubSub implementira model geoprostornog sustava objavi-pretplati. Korisnici

mogu na jednostavan način upravljati objavama i pretplatama vezanim za neko

zemljopisno područje. Korisničko sučelje je jednostavno i vrlo intuitivno namijenjeno

širem broju korisnika. Korisnici ne moraju imati neka dodatna predznanja već je dovoljno

osnovno poznavanje interneta.

3.1. Arhitektura web-aplikacije

Većina web-aplikacija se može podijeliti na dva dijela, prezentacijski sloj i poslovnu

logiku. Prezentacijski sloj je odgovoran za izgled aplikacije. Iz konteksta aplikacije koja se

izvršava unutar internet preglednika izgled je definiran HTML oznakama, stilom teksta,

veličinom fonta i slično. Poslovna logika je implementirana unutar Java koda i ona

određuje način na koji se aplikacija ponaša. Dobar dizajn podrazumijeva da ova dva dijela

budu odvojena.

Za izradu web-aplikacije je korištena JavaServer Faces (JSF) tehnologija i u nastavku će

biti objašnjeno kako i na koji način funkcionira JSF. U JSF-u grafički izgled aplikacije je

definiran u web stranicama dok je poslovna logika implementirana unutar Javinih zrna

(Java Bean).

3.1.1. Java Bean

Javino zrno je klasa koja prenosi svojstva i događaje programskom okviru (framework), (u

ovom slučaju JSF-u). Svojstvo (property) je imenovana vrijednost određenog tipa koja

može biti pisana i/ili čitana. U ovu svrhu moraju postojati standardne metode set odnosno

get.

Na primjeru sa slike 3 vidimo da klasa UserBean ima svojstvo (u ovom slučaju varijablu)

ime koja je tipa String i deklarirana je kao private što pak znači da joj se ne može pristupiti

izvan klase. Izvan ove klase varijabla ime bi bila potpuno nevidljiva da ne postoje metode

setName i getName. Metoda setName prima jedan parametar, varijablu tipa String i

Page 17: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

12

postavlja vrijednost varijable ime na vrijednost primljenog parametra i ne vraća nikakvu

vrijednost. Metoda getName ne prima nikakav parametar i vraća vrijednost varijable ime

tipa String.

Slika 3. Primjer set i get metode

U specifikaciji Javinog zrna dozvoljeno je postaviti samo metodu setter ili samo getter

(ovisno o željenoj razini sigurnosti). JSF ne podržava svojstva koja se mogu samo

zapisivati. Kod JSF ulaznih komponenti uvijek se koriste svojstva koja se mogu i čitati i

pisati, dok se kod izlaznih komponenti mogu koristiti svojstva koja se mogu samo čitati.

Managed bean je Javino zrno koje je vidljivo iz JSF stranice. Svaki managed bean mora

imati definirano ime i doseg.

Slika 4. Primjer deklaracije Managed bean-a

Iz slike 4 vidimo da je managed bean zove „user“ i da mu je doseg na području sesije što

pak znači da se varijabla ime može dohvatiti sa više različitih JSF stranica. Svaki korisnik

koji koristi web-aplikaciju dobiva svoju instancu bean objekta. Managed beans se koriste

na sljedeći način: kada se ime managed bean-a pojavi u JSF stranici, JSF pozove objekt

Page 18: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

13

toga imena ili ga stvori ako još uvijek ne postoji. U bean se spremaju svi podatci koji se

pojavljuju u JSF stranici bilo da se radi o ulaznim ili izlaznim podatcima.

3.1.2. JSF stranice

Za svaki novi prikaz unutar internet preglednika potrebna je nova JSF stranica. Sve JSF

stranice imaju ekstenziju .xhtml. JSF stranica je HTML stranica koja je u isto vrijeme i

valjani XML dokument. Unutar oznake html potrebno je deklarirati sljedeće imenske

prostore (namespaces):

Slika 5. JSF namespaces

Umjesto standardnih HTML oznaka (head, body i form) koriste se JSF oznake

(h:head, h:body i h:form). Umjesto HTML oznake input koriste se

h:inputText, h:inputSecret i h:commandButton. Na slijedećem primjeru

koda prikazano je na koji način se povezuju podatci sa JSF stranice sa managed bean

svojstvima.

Slika 6. Povezivanje JSF stranice i managed bean-a

Unutar JSF stranice nalazi se oznaka prikazana na slici 6 koja označava da se radi o

ulaznom tekstu koji je spremljen u varijablu ime koja se nalazi unutar managed bean-a

korisnik. Unutar #{...} se nalazi kod (tj. izraz) koji se izvršava prilikom učitavanja

stranice. Prilikom prikaza stranice JSF locira bean korisnik i pozove metodu getName

Page 19: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

14

kako bi dohvatio trenutnu vrijednost varijable ime. Kada korisnik ispuni obrazac JSF

pozove metodu setName i postavlja vrijednost varijable ime na vrijednost koju je

korisnik uveo preko obrasca. Komponenta h:commandButton ima atribut action koji

označava koja stranica će se prikazati sljedeća. Na ovaj način se ostvaruje navigacija

između stranica.

3.1.3. Konfiguracija servleta

Prilikom postavljanja JSF aplikacije na poslužitelj, potrebno je imati određene oznake

unutar datoteke web.xml. Putanja do web.xml datoteke je

imewebaplikacije/web/WEB-INF/web.xml.

Slika 7. Konfiguracija Faces servleta

3.1.4. Usluge okvira JSF

Okvir JSF je odgovoran za interakciju sa klijentima, pruža alate koji povezuju vizualnu

prezentaciju, aplikacijsku logiku i poslovnu logiku web-aplikacije.

Slika 8. Okvir JSF, preuzeto s [4]

Page 20: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

15

3.1.5. Životni vijek aplikacije koja koristi okvir JSF

Pogledajmo što se u pozadini događa s ovakvom aplikacijom nakon što u pregledniku

Weba unesemo adresu JSF aplikacije koja predstavlja ulaznu točku. Nakon što unesemo

http://localhost:8080/GeoPubSub/faces/login.xhtml inicijalizira se JSF kod

i pročita se stranica login.xhtml. Stranica sadrži oznake, a svaka oznaka ima svog

rukovatelja (handler). Prilikom učitavanja stranice izvršava se kod rukovoditelja.

Rukovatelji izgrađuju stablo komponenata. Ovo stablo je struktura koja sadrži Java objekte

za svaki ulazno izlazni element sadržan unutar stranice. Primjer stabla je prikazan na slici

9.

Slika 9. Stablo komponenata, preuzeto s [4]

U sljedećem koraku dolazi do generiranja HTML koda. U ovom koraku sav tekst koji nije

dio JSF-ovskih oznaka postaje vidljiv unutar internet preglednika, a sve JSF-ovske oznake

su pretvorene u HTML. Ovaj proces se naziva kodiranje. Prilikom kodiranja svaka ulazno-

izlazna komponenta dobiva jedinstveni broj koji služi za identifikaciju te komponente i

pridružena joj je vrijednost iz odgovarajućeg managed bean-a. Ovako kodirana stranica

šalje se pregledniku u kojemu se prikazuje korisniku.

Slika 10. Kodiranje i dekodiranje JSF stranica, preuzeto s [4]

Page 21: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

16

Nakon što je stranica prikazana korisniku, korisnik unosi podatke tj. ispunjava polja

obrasca. Klikom na dugme preglednik šalje obrazac s podacima koje je ispunio korisnik

nazad poslužitelju. Ovaj obrazac je formatiran kao zahtjev POST. Zahtjev POST je dio

protokola HTTP. Podaci iz obrasca se spremaju u tablicu s raspršenim adresiranjem (hash

table) na strani poslužitelja kojoj imaju pristup sve komponente. Komponente iz ove

tablice uzimaju podatke i interpretiraju ih. Ovaj proces se naziva dekodiranje. Kodiranje i

dekodiranje su dva najvažnija koraka u životnom ciklusu JSF-ovske aplikacije. Ove faze su

dosta poopćene i u nastavku je prikazana detaljnija podjela faza životnog ciklusa JSF-

ovske aplikacije.

Specifikacija okvira JSF definira 6 različitih faza kroz koje prolazi aplikacija:

1. Vraćanje prikaza (Restore View)

2. Primjena zahtijevanih vrijednosti (Apply Request Values)

3. Procesiranje validatora (Process Validations)

4. Ažuriranje varijabli modela (Update Model Values)

5. Pozivanje aplikacije (Invoke Application)

6. Prikaz odgovora (Render Response)

Faza vraćanja prikaza vraća stablo komponenti zatražene stranice ako postoji od prije a ako

ne (tj. ako se stranica poziva po prvi puta) onda se stablo kreira. Ako nisu zatraženi nikakvi

podatci za prikaz JSF preskače na fazu prikaza odgovora (ovo se događa prilikom prvog

poziva stranice), u protivnom aplikacija ulazi u fazu primjene zahtijevanih vrijednosti. U

ovoj fazi JSF prolazi kroz sve objekte sadržane u stablu komponenti i svaki objekt

provjerava koje vrijednosti su namijenjene njemu i sprema ih. Ove vrijednosti se nazivaju

lokalnim vrijednostima. Prilikom dizajniranja JSF-ovske stranice koriste se validatori koji

provjeravaju lokalne vrijednosti. Kod validatora se izvršava u fazi obrade validatora. U

koliko validatori ne izbace grešku aplikacija ulazi u fazu ažuriranja varijabli modela, dok u

protivnom sljedeća faza je prikaz odgovora. U fazi ažuriranja varijabli modela

pretpostavlja se da su uneseni ispravni podatci i ažuriraju se zrna povezana uz određene

komponente. U fazi pozivanja aplikacije izvršava se action metoda komponente dugme

ili poveznice i odabire se sljedeća stranica. Na kraju faza prikaza odgovora kodira odgovor

i šalje ga internet pregledniku. Nakon što korisnik priloži obrazac, klikne poveznicu ili na

neki drugi način pošalje novi zahtjev ciklus započinje ispočetka.

Page 22: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

17

Slika 11. JSF životni ciklus, preuzeto s [4]

3.2. Korisničko sučelje

GeoPubSub se sastoji od deset JSF-ovskih stranica. Prije korištenja aplikacije korisnici se

moraju registrirati.

Slika 12. Navigacijski dijagram web-aplikacije GeoPubSub

Page 23: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

18

3.2.1. Prijava i registracija

Slika 13. Prijava korisnika

Preduvjet za korištenje sustava je registracija korisnika. Registrirani korisnici nakon

prijave mogu u potpunosti koristiti sustav, dok novi korisnici prije korištenja moraju

obaviti postupak registracije. Prilikom prijave korisnika provjeravaju se podaci koje unese

korisnik s podacima o korisniku pohranjenima u bazi podataka. Autentifikacija je uspješna

u koliko su ti podaci isti. U protivnom se pojavljuje obavijest o pogrešci (slika 14).

Slika 14. Pogreška prilikom prijave korisnika

Page 24: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

19

Slika 15. UML sekvencijski dijagram – uspješna prijava korisnika

Slika 16. Registracija novog korisnika

Prilikom registracije novog korisnika potrebno je unijeti podatke o novom korisniku.

Potrebno je ispuniti sva polja. U koliko neko polje nije ispunjeno javlja se poruka o

pogrešci. Na slici 16 prikazan je obrazac za registraciju novog korisnika. U ovom koraku

korisnika može nastaviti sa registracijom ili odustati. Prilikom registracije provjerava se

korisničko ime sa već postojećim korisničkim imenima registriranih korisnika i ako postoji

isto ime javlja se poruka o pogrešci (slika 17). U ovom slučaju novi korisnik treba odabrati

novo korisničko ime.

Page 25: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

20

Slika 17. Poruka o pogrešci prilikom registracije korisnika

Slika 18. Potvrda registracije

Page 26: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

21

Slika 19. UML sekvencijski dijagram postupka registracije novog korisnika

Prilikom potvrde registracije korisniku se još jednom prikazuju podaci (slika 18) iz obrasca

za registraciju. U ovom koraku korisnik može odustati od registracije, nastaviti sa

registracijom i u tom slučaju podatci će biti spremljeni u bazu podataka ili se mogu vratiti

na prethodni korak i promijeniti neki podatak koji su možda krivo unijeli. Nakon uspješne

registracije korisnik je preusmjeren na početnu stranicu.

3.2.2. Početna stranica

Slika 20. Početna stranica

Page 27: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

22

Na slici 20 prikazana je početna stranica web-aplikacije GeoPubSub. Crvenom bojom su

prikazani gumbi za navigaciju, plavom mapa, a zelenom dozvola o dijeljenju lokacije.

Dijeljenje lokacije se pak odnosi na postavljanje središta mape. U kodu je definirano da

središte mape bude lokacija Fakulteta elektrotehnike i računarstva, međutim ukoliko

korisnik dozvoli dijeljenje lokacije u tom slučaju u središtu mape je trenutna lokacija

korisnika. Prilikom učitavanja početne stranice iz baze se dohvaćaju podaci o obavijestima

za koje je prijavljeni korisnik zainteresiran tj. za koje ima definirane pretplate i na mapi se

prikazuju najvažnije obavijesti.

3.2.3. Obavijesti

Ova stranica je gotovo ista kao i početna. Razlika je u tome što se ovdje prikazuju sve

obavijesti za koje korisnik ima definirane pretplate.

3.2.4. Korisnikove objave

Korisnik može dodavati nove obavijesti, ali može i brisati obavijesti koje je ranije objavio.

Klikom na gumb Nova objava učitava se stranica novaobjava.xhtml koja je vrlo

slična početnoj, ali na desnoj strani (prikazano crvenom bojom na slici 21) je obrazac za

dodavanje novih obavijesti. Postoje tri vrste obavijesti, obavijest na lokaciju (točka),

obavijest na liniju i obavijest na područje. Prilikom dodavanja nove obavijesti korisnik

prvo odabire vrstu obavijesti (točka, linija ili područje), zatim je potrebno ispuniti obrazac.

Nakon obrasca potrebno je klikom na mapu (prikazano plavom bojom na slici 21) odabrati

lokaciju. U koliko je riječ o objavi na točku preostaje još jedino kliknuti na gumb Dodaj

objavu. U koliko je riječ o objavi duž linije potrebno je dodati barem dvije točke prije

nego se obavijest objavi. Odabirom prve točke na stranici nema vidljive razlike, ali već

odabirom druge točke na mapi se iscrtava linija. Odabirom svake nove točke linija se

povećava spajanjem sa prethodnom točkom. Kada korisnik doda željene točke potrebno je

kliknuti na gumb Dodaj objavu. U slučaju da korisnik unese krivu točku može kliknuti

na gumb Nova objava i početi proces ispočetka. U koliko je riječ o objavi na nekom

području proces je gotovo isti kao i za liniju, jedina razlika je u tome da će se zadnja točka

spojiti s prvom kada korisnik klikne na gumb Dodaj objavu.

Page 28: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

23

Slika 21. Obrazac za dodavanje nove obavijesti

Korisnik definira naslov obavijesti i sadržaj. Klikom na gumb Dodaj objavu podaci o

obavijesti se spremaju u bazu podataka i prikazuju se korisnicima koji imaju definiranu

pretplatu na lokaciji nove obavijesti, dok klikom na gumb Nova objava korisnik

odustaje od objavljivanja obavijesti i započinje s definiranjem nove objave, podaci se u

ovom slučaju ne spremaju u bazu podataka već se odbacuju (prikazano zelenom bojom na

slici 21).

Slika 22. UML sekvencijski dijagram – dodavanje nove objave

Page 29: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

24

Klikom na gumb Briši objavu učitava se stranica brisiobjave.xhtml koja je

prikazana na slici 23.

Slika 23. Brisanje objava

Nakon što se učita stranica brisiobjave.xhtml na mapi su prikazane sve objave koje je

objavio prijavljeni korisnik (slika 23 označeno plavom bojom). Klikom na obavijest

pojavljuje se prozor sa sadržajem obavijesti. Sa desne strane se nalazi popis svih objava

koje je objavio korisnik (slika 23 označeno crvenom bojom). U koliko se želi obrisati neka

obavijest ili više njih potrebno ih je prvo selektirati i zatim kliknuti na gumb Obriši (na

slici 23 označeno zelenom bojom).

3.2.5. Korisnikove pretplate

Korisnik može definirati pretplate i može brisati već postojeće pretplate koje je prije

definirao na sličan način kao i objave. Klikom na gumb Nova pretplata učitava se

stranica novapretplata.xhtml i ovdje korisnik može definirati novu pretplatu.

Postoje tri vrste pretplata. Pretplata na točku, liniju i na područje. Prilikom definiranja

pretplate na točku i na liniju korisnik specificira i udaljenost, izraženu u metrima, unutar

koje će se prikazivati objave. Svaka od ove tri vrste pretplata može biti ili Boolean ili Top

k/w (na slici 24 prikazano žutom bojom). Ukoliko korisnik odabere tip Boolean onda će se

prikazati sve obavijesti na definiranoj lokaciji, a ako odabere tip Top k/w onda će se

Page 30: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

25

prikazati najboljih k obavijesti od zadnjih w obavijesti. Više o ovim vrstama pretplata

možete naći u izvoru [24].

Slika 24. Dodavanje nove pretplate

Na slici 24 je prikazana stranica novapretplata.xhtml. Unutar crvene boje je

prikazan obrazac za dodavanje nove pretplate. Nova pretplata na točku se dodaje na način

da se odabere vrsta pretplate točka (unutar crvenog područja na slici 24), zatim se klikne na

mapu (unutar plavog područja na slici 24) na lokaciju na kojoj želimo pretplatu, zatim se

unesu ostali podatci u obrazac i klikne se na gumb Dodaj pretplatu (označeno

zelenom bojom na slici 24). Ukoliko želimo dodati pretplatu na liniju postupak je vrlo

sličan kao i za točku, ali razlika je ta što se nakon odabira vrste pretplate treba odabrati više

točaka unutar mape (barem dvije). Nakon što kliknemo na lokaciju početne točke linije, na

mapi se ne vidi nikakva primjena. Nakon odabira lokacije druge točke na karti se iscrtava

linija. Odabirom svake sljedeće točke stvara se linija između nje i prethodne točke. Jednom

kad korisnik doda sve željene točke, pretplata se stvara klikom na gumb Dodaj

pretplatu i biva pohranjena u bazu podataka. U slučaju da korisnik unese krivu točku u

bilo kojem trenutku može kliknuti na gumb Nova pretplata (označeno zelenom

bojom na slici 24) i započeti cijeli proces definiranja pretplate ispočetka. Dodavanje

Page 31: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

26

pretplate na područje je veoma slično dodavanju pretplate na liniju. Razlika je u tome što

nije potrebno dodavati udaljenost već će se prikazati samo obavijesti koje se nalaze unutar

definiranog područja. Prilikom dodavanja točaka koje definiraju područje treba imati na

umu da će se zadnja linija poligona dodati sama.

Slika 25. Brisanje pretplate

Na slici 25 je prikazana stranica brisipretplate.xhtml. Vrlo je slična stranici za

brisanje objava. Sa desne strane su prikazani nazivi pretplata (označeno crvenom bojom na

slici 25). Postupak brisanja je isti kao i za brisanje objava. Na desnoj strani se selektiraju

pretplate koje se žele obrisati i klikne se na gumb Obriši. Klikom na pojedinu pretplatu,

korisniku se prikazuju podatci o toj pretplati (prikazano na slici 26).

Page 32: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

27

Slika 26. Informacije o pretplati

3.2.6. Korisničke postavke

Slika 27. Postavke

Na slici 27 prikazana je stranica postavke.xhtml. Ovdje korisnik može promijeniti

podatke koje je definirao prilikom registracije. Još mu je omogućena primjena teme web-

aplikacije. Na ovaj način korisnik može promijeniti izgled cjelokupne web-aplikacije

prema vlastitom ukusu. Nakon izmjene podatci se spremaju u bazu podataka.

Page 33: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

28

4. Instalacija programske potpore

4.1. PostgreSQL i PostGIS

PostgreSQL je objektno-relacijska baza podataka otvorenog koda. Nastala je 1995. godine

i razvija je otvorena zajednica programera. Postoje verzije za većinu današnjih operacijskih

sustava. Predstavlja jednu od najboljih nekomercijalnih baza podataka i postoje brojni

dodatci koji omogućuju razne funkcionalnosti. Jedan takav dodatak je i PostGIS i on

omogućuje rad sa geoprostornim i geometrijskim podatcima.

Priložena verzija baze podataka je postgresql 9.3.5, preuzeta sa internet stranice

http://www.enterprisedb.com/products-services-training/pgdownload#windows i

namijenjena je za 64-bitni operacijski sustav Windows 7. Nastavak PostGIS je preuzet sa

http://www.postgresql.org/ftp/postgis/pg9.3/v2.1.3/win64/.

U nastavku su prikazane upute za instalaciju PostgreSQL baze podataka i PostGIS

dodatka.

Slika 28. Instalacija PostgreSQL baze podataka

Page 34: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

29

Slika 29. Odabir mape u koju će se instalirati PostgreSQL

Slika 30. Odabir mape u koju će biti spremljene korisničke baze podataka

Page 35: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

30

Slika 31. Definiranje lozinke za pristup bazi podataka

Slika 32. Definiranje porta za pristup bazi podataka

Page 36: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

31

Slika 33. Definiranje lokalnih postavki

Slika 34. Potvrda instalacije

Page 37: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

32

Slika 35. Završetak instalacije PostgreSQL baze podataka

Slika 36. Prihvaćanje licenčnog ugovora za PostGIS dodatak

Page 38: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

33

Slika 37. Odabir komponenti za instalaciju

Slika 38. Odabir mape u koju će se instalirati PostGIS

Page 39: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

34

Slika 39. Postavljanje varijabli okoline

Slika 40. Omogućavanje korištenja drivera

Page 40: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

35

Slika 41. Postavljanje varijabli okoline

Slika 42. Završetak instalacije PostGIS dodatka

Page 41: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

36

Na slikama 28 – 35 je prikazan postupak instalacije PostgreSQL baze podataka, dok je na

slikama 36 – 42 prikazan postupak instalacije dodatka PostGIS.

Nakon što je instalirana baza podataka PostgreSQL i dodatak PostGIS potrebno je kreirati

određene tablice koje će biti korištene od strane web-aplikacije.

Slika 43. Stvaranje baze podataka

Slika 44. Stvaranje tablica

Na slikama 43 i 44 je prikazan postupak stvaranja baze podataka i tablica.

Page 42: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

37

Slika 45. Entity-Relationship dijagram

Na slici 45 je prikazan ER dijagram baze podataka koju koristi web-aplikacija GeoPubSub.

Sa slike vidimo da jednu objavu može stvoriti samo jedan korisnik. Isto vrijedi i za

pretplatu, dok jedan korisnik može stvoriti više objava i više pretplata. Atributi idautor

iz tablica objave i pretplate su referenciraju atribut idkorisnika iz tablice

korisnici.

4.2. Glassfish

Web-aplikacija GeoPubSub se izvodi na poslužitelju GlassFish 4.1 preuzetom s [21]. U

nastavku je opisan postupak instalacije i konfiguracije poslužitelja GlassFish 4.1.

Page 43: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

38

Potrebno je kopirati mapu glassfish4 na tvrdi diska računala (u ovom slučaju to je C:).

Kako bi omogućili komunikaciju između poslužitelja GlassFish i baze podataka potrebno

je kopirati JDBC drivere za bazu podataka PostgreSQL (koji se nalaze u mapi

...\GeoPubSub\postgresql-9.2-1002.jdbc4.jar) u mapu

C\\glassfish4\glassfish\domains\domain1\lib. Nakon toga potrebno je iz naredbenog retka

(start > cmd.exe > Run as administrator) pokrenuti poslužitelj na način da se pozicionira u

mapu C\\glassfish4\glassfish\bin i pokrene naredba asadmin start-domain.

Slika 46. Pokretanje poslužitelja GlassFish

Nakon ovoga potrebno je u preglednik upisati adresu localhost:8080 nakon čega se

pojavljuje strani prikazana na slici 47. Na ovoj stranici potrebno je kliknuti na poveznicu

(označeno crvenom bojom) kako bi se nastavilo sa podešavanjem poslužitelja.

Slika 47. Početna stranica poslužitelja GlassFish

Page 44: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

39

Slika 48. Administrativno sučelje poslužitelja GlassFish

Klikom na poveznicu sa slike 47 prikazuje se administrativno sučelje poslužitelja

GlassFish (prikazano na slici 48). Kako bi web-aplikacija ispravno funkcionirala potrebno

je ostvariti komunikaciju između poslužitelja i baze podataka. Ovo se postiže definiranjem

resursa od strane poslužitelja.

Slika 49. Dodavanje resursa

Page 45: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

40

Slika 50. Učitavanje konfiguracijske datoteke

Datoteka glassfish-resources.xml sadrži parametre potrebne za spajanje na bazu

podataka.

Slika 51. Definiranje parametara za spajanje na bazu podataka

Page 46: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

41

Slika 52. Provjera povezanosti

Na slikama 49 – 52 prikazan je postupak definiranja resursa (tj. povezivanje sa poslužitelja

i baze podataka). Nakon ovoga potrebno je još dodati web-aplikaciju na poslužitelj.

Slika 53. Dodavanje web-aplikacije

Page 47: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

42

Slika 54. Odabir web-aplikacije

Na slikama 53 i 54 prikazan je postupak dodavanja web-aplikacije GeoPubSub na

poslužitelj GlassFish. Nakon ovoga potrebno je u preglednik upisati adresu

localhost:8080/GeoPubSub kako bi se započelo sa korištenjem web-aplikacije.

4.3. JavaServer Faces i Primefaces

Izrada web-aplikacije zahtjeva programski okvir koji generira stranice u HTML, prima

podatke od korisnika i upravlja navigacijskim tokom. Podrška za Model-View-Controller

(MVC) pokazala se kao najbolji izbor za programski okvir. U MVC okviru upravljač

preuzima ulazne podatke od korisnika i odlučuje koji pogled prikazati kao sljedeći. Pogledi

su zaslužni za prikaz HTML stranice u internet preglednicima. Model učahurava podatke

iz obrazaca koji se nalaze unutar internet stranice i u koje korisnik unosi podatke.

JavaServer Faces (JSF) je standardni Java EE programski okvir. JSF je dobro dizajniran,

jednostavan za korištenje i orijentiran na ulazno-izlazne komponente. Tehnologija

Primefaces omogućava izradu korisničkog sučelja za web-aplikacije na jednostavan način

tj. dovoljno je osnovno predznanje o tehnologiji HTML. Predstavlja proširenje tehnologije

JavaServer Faces (JSF). Primeface je nastao 2009. godine i otvorenog je koda. Od samoga

početka ima veliku potporu od strane tvrtke Oracle. Trenutno zadnja verzija je 5.1 ali je za

Page 48: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

43

izradu web-aplikacije GeoPubSub korištena verzija 5.0. Primefaces sadrži komponentu

gmap koja omogućuje izradu interaktivnih karti. Neka od obilježja JSF-a i Primeface-a su:

podržavaju događaje, koriste facelete, podržavaju tehnologiju ajax, omogućuju

jednostavnu navigaciju između stranica, podržavaju validaciju, upravljaju iznimkama...

Više informacija može se naći u izvorima [2] i [3].

Page 49: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

44

Zaključak

U radu je razvijen i predstavljen geoprostorni sustav objavi-pretplati koji se sastoji od web-

aplikacije GeoPubSub i geoprostprne baze podataka PostGIS. Za pristup sustavu

neophodno je da korisnici imaju pristup Internetu zbog toga što web-aplikacija GeoPubSub

koristi uslugu Google maps. za prikaz geografske karte. Korištenjem usluge, korisnici na

vrlo jednostavan i intuitivan način mogu objavljivati obavijesti na željenim lokacijama.

Podržane su tri vrste geografskih lokacija: točka, linije i područje (tj. poligon). Jedna od

mogućih primjena ovog sustava je objavljivanje popunjenosti smještajnih mjesta u

turističkim središtima. Turisti bi na ovaj način vrlo jednostavno mogli doći do informacija

o smještaju u turističkom središtu u kojemu žele provesti odmor. Sustav bi se dodatno

mogao poboljšati na način da se korisnicima omogući detaljnije definiranje pretplata koje

bi obuhvaćalo i pretplate na sadržaj, a ne samo na geoprostorne objekte komponentu.

Dodatno bi se moglo korisnicima omogućiti i objavljivanje različitog višemedijskog

sadržaja kao što su slike ili audio zapisi i slično.

Page 50: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

45

Literatura

[1] Ivana Podnar Žarko, Mario Kušek, Ignac Lovrek, Raspodijeljeni sustavi - radna

inačica udžbenika 2011.

[2] Çivici Çağatay, Primefaces user guide 5.0.

[3] Mert Çalışkan, Oleg Varaksin, PrimeFaces Cookbook, Packt Publishing 2013.

[4] David Geary, Cay Horstmann, Core JavaServer Faces – third edition, Prentice Hall

2010.

[5] Ed Burns, Chris Schalk, JavaServer Faces 2.0: The Complete Reference, McGraw-

Hill 2010.

[6] Zdravko Galić, Geoprostorne baze podataka, Golden marketing – Tehnička knjiga

2006.

[7] PRIMEFACES SHOWCASE, http://www.primefaces.org/showcase/, 27.1.2015

[8] POSTGIS WORKSHOP, http://workshops.boundlessgeo.com/postgis-

intro/index.html, 27.1.2015.

[9] POSTGIS WORKSHOP, http://workshops.boundlessgeo.com/postgis-

intro/geography.html, 27.1.2015.

[10] POSTGIS MANUAL, http://postgis.net/docs/index.html, 27.1.2015.

[11] VIVIDSOLUTIONS GEOMETRY JAVADOC,

http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/geom/Geometry.

html, 27.1.2015.

[12] GEOJSON SPECIFIKACIJA, http://geojson.org/geojson-spec.html, 27.1.2015.

[13] GEOTOOLS JAVADOCS, http://docs.geotools.org/latest/javadocs/, 27.1.2015.

[14] JAVA WEB TUTORIAL,

http://www.javaguicodexample.com/javawebmysqljspjstljsf5_1.html, 27.1.2015.

Page 51: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

46

[15] POSTGRESQL JAVA TUTORIAL, http://zetcode.com/db/postgresqljavatutorial/,

27.1.2015.

[16] Bruce Eckel, Misliti na Javi, Mikro knjiga, 2002.

[17] Antun Sekulić, Geoprostorni sustav objavi-pretplati za uređaje s operacijskim

sustavom Android, Diplomski rad, Fakultet elektrotehnike i računarstva, Zavod za

telekomunikacije, 2014.

[18] POSTGIS 2.2.0 MANUAL, http://postgis.net/docs/manual-

dev/reference.html#Management_Functions, 27.1.2015.

[19] POSTGIS 2.2.0 MANUAL, http://postgis.net/docs/manual-

dev/PostGIS_Special_Functions_Index.html, 27.1.2015.

[20] POSTGIS WORKSHOP, http://workshops.boundlessgeo.com/postgis-intro/postgis-

functions.html, 27.1.2015.

[21] GLASSFISH, https://glassfish.java.net/download.html, 31.1.2015.

[22] Yuan Ye, Fan Guangrui, Ou Shiqi, An Algorithm for Judging Points Inside or

Outside A Polygon, School of Software Engineering, HuaZhong University of

Science & Technology Wuhan, China, 2013.

[23] CREATING A CONNECTION POOL,

http://www.hildeberto.com/2010/02/creating-a-connection-pool-to-postgresql-on-

glassfish-v3.html, 27.1.2015.

[24] Krešimir Pripužić, Model usporedbe „k najboljih“ u sustavima objavi-pretplati

temeljen na klizećem prozoru, Doktorska disertacija, Fakultet elektrotehnike i

računarstva, Zavod za telekomunikacije, 2010.

Page 52: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

47

Sažetak

U radu je prikazan implementaciju geoprostornog sustava objavi pretplati. Sustav koristi

PostgreSQL bazu podataka sa dodatkom PostGIS za spremanje geoprostornih objekata. Pri

izradi sustava je korištena tehnologija JavaServer Faces (posebno biblioteka Primefaces

5.0). Sustav je prvenstveno namijenjen za korisnike stolnih računala sa pristupom na

internet. Sustav je razvijan u razvojnom okruženju NetBeans i pokretan je na poslužitelju

GlassFish.

Page 53: GEOPROSTORNI SUSTAV OBJAVI- PRETPLATI ZA WEBbib.irb.hr/datoteka/768557.Final_0036435494_53.pdfsveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva diplomski rad br. 814 geoprostorni

48

Summary

This paper describes implementation geospatial publish-subscribe system. System use

PostgreSQL data base with PostGIS extension for storing geospatial objects. In systems

creation its used JavaServer Faces tehnology (especialy Primeface 5.0 library). System is

primarily intended for users that have computers with internet connection. System is

developed on NetBeans integrated development environment and it is executed on

GlassFish server.