SOFTVERSKA ARHITEKTURA ZA TRANSFORMACIJU 

GEOPROSTORNIH PODATAKA 

SOFTWARE ARCHITECTURE FOR TRANSFORMATION OF 

GEOSPATIAL DATA 

Đorđe Obradović, Milan Segedinac

{obrad, mseg}@uns.ns.ac.yu

Fakultet tehničkih nauka, Novi Sad

Sadržaj

-

  U   radu   je   prikazana   arhitektura   sistema   za 

transformaciju   geoprostornih   podataka   definisanih   u 
GML   jeziku   u   POJO   Java   objektni   model.   Sistem   je  
specificiran   korišćenjem   UML-a   i   implementiran   u 
programskom jeziku Java.  Šabloni za kreiranje napisani 
su   u   freemarker   jeziku   a   model   podataka   se   dobija  
preuzimanjem opisa objekata preko WFS servisa.

Abstract

-  

The   paper   presents   the   architecture   of   the 

system aimed for transformation of the geospatial data 
defined   in   GML   into   POJO   Java   object   model.   The  
szsstem is specified  using UML and implemented in Java  
programming language.  The  code templates  have been 
implemented in freemarker language and the data model  
is based on definition accurired from WFS service. 

1. UVOD

U   geografskim   informacionim   sistemima   (GIS) 
integracija   podataka   je   veoma   čest   problem.   Različiti 
sistemi koriste po pravilu različite načine reprezentacije 
geoprostornih   podataka.   Razvojem   infrastrukture 
geoprostornih podataka postoji veoma izražena potreba da 
se   geoprostorni   podaci   učine   dostupnijima.   Razvoj 
standarda u ovoj oblast pomaže da se implementiraju alati 
za jedinstven pristup ovoj vrsti podataka kao i servisima 
koji podatke obezbeđuju. Najbolji primer za to su rezultati 
koje je postigla neprofitna organizacija  

Open Geospatial 

Consortium

 

OGC

,   razvojem   standarda   za   opis 

geoprostornih   podataka   kao   i   servisa.   Tako   je   usvojen 
GML    (

Geography  Markup   Language

)   standard  [1]  za 

opis   i   prenos   geoprostornih   podataka   koji   predstavlja 
prošireni  XML jezik dostupan različitim  platformama  i 
tehnologijama   i   WFS   (

Web   Feature   Service   Interface 

Standard

) standard  [2]  za opis  servisa  za pristup ovim 

podacima.     Međutim   i   dalje   postoji   problem   veoma 
kompleksnih procedura   za transformaciju   tako opisanih 
podataka u Java objekte, odnosno u objekte pomoću kojih 
je   moguće   izvršiti   implementaciju   softvera   za   složene 
geoprostorne procese. 

Postoje   dva   načina   transformacije:   (1)   transformacija 
podataka   u   generički   objekat   (

Feature

)   koji   ima 

dinamički definisane atribute; (2) konkretna (

POJO-Plain 

Old   Java   Object

)   Java   klasa   sa   statički   definisanim 

atributima. 

U prvom slučaju različite klase geoprostornih podataka 
mapiraju   se   na   jedinstveni   Java   objekat   a   vrednosti   se 
upisuju   u   dinimički   kreirane   atribute.   Ovaj   pristup 
implementiran   je   u   biblioteci   Geotools   [4].   Nedostatak 

ovakvog   pristupa   je   nemogućnost   provere   validnosti 
podataka za vreme kompajliranja. 

Drugi   pristup   podrazumeva   da   se   geoprostorni   podaci 
transformišu u Java objekte generisan 'po meri', odnosno 
na   osnovu   metapodataka   koji   karakterišu   grupu 
geoprostornih   podataka.   Rad   sa   ovakvim   objektima 
obezbeđuje kotrolu validnosti i za vreme kompajliranja a 
ne samo u toku izvršavanja i značajno olakšava razvoj. 
Razvoj je olakšan jer se za vreme implementacije mogu 
koristiti alati razvojnih okruženja za dopunjavanje koda, 
kontrolu   tipova   i   praćenje   povezanosti   sa   ostalim 
delovima.   Nedostatak   ovog   pristupa   je   potreba   za 
dodatnim   kodiranjem   u   kojem   se   na   osnovu   meta 
podataka kreiraju same POJO klase kao i implementacija 
posebnih procedura za transformaciju i popunjavanje tako 
kreiranih Java objekata. 

U   radu   je   opisana   arhitektura   sistema   baziranog   na 
drugom pristupu i generator izvornog koda kojim se ceo 
proces automatizuje. Generator je implementiran kao Java 
aplikacija koja koristi šablone u kojima je opisan format, 
a model podataka kreira se na osnovu metapodataka koji 
se   dobijaju   preko   WFS.   Kao   osnovna   komponenta 
generatora iskorišćen je programski paket 

freemarker 

koji 

poseduje poseban jezik (

freemarker language

) i koji je, 

zbog svoje rasprostranjenosti i jednostavnosti, ugrađen u 
IDE (Integrisano razvojno okruženje) 

eclipse. 

2. KORIŠĆENI STANDARDI I TEHNOLOGIJE

Za implementaciju sistema korićeni su sledeći   osnovni 
standardi i tehnologije: GML, WFS, Geoserver, Geotools, 
FreeMarker i Xstream.

GML

  je XML gramatika za predstavljanje geoprostornih 

podataka.     GML   jezik   služi   za   modeliranje   i     prenos 
podataka   između   korisnika   i   proizvođača   prostornih 
podataka.   Kao   i   većina   drugih   XML   gramatika   GML 
dokumenti   sadrže   opis   strukture   podataka   zajedno   sa 
samim podacima. Na ovaj način je omogućena razmena 
geoprostornih   podataka   između   više   aplikacija.   GML 
jezikom   geografski   podaci   predstavljaju   se   tačkama, 
linijama   i   poligonima   (slika   1).   Postoje   inicijative   za 
specijalizaciju odnosno kreiranje gramatika za specijalne 
primene kao što su saobraćajnice, mostovi zgrade itd. 

WFS

  je   standard   kojim   je   regulisan   način   pristupa 

geoprostornim   podacima.   Obuvaćeno   je   pretraživanje   i 
preuzimanje geoprostornih podataka na osnovu prostornih 
i   neprostornih   ograničenja,   kreiranje   novih   podataka, 

preuzimanje opisa osobina klasa geoprostornih podataka, 
brisanje, ažuriranje i zaključavanje.

Geoserver

  (1.7.1)   je   server   napisan   u   programskom 

jeziku   Java   čiji   izvorni   kod   je   otvoren   za   korišćenje   i 
proširenje bez posebnih uslova licenciranja. Dizajniran je 
za   potrebe   interoperabilnosti   i     razmene   geoprostornih 
podataka   između   najznačajnijih   izvora   prostornih 
podataka korišćenjem otvorenih standarda. Geoserver je 
referentna implementacija WFS standarda, Web Coverage 
Service (WCS) standarda kao i Web Map Service (WMS) 

standarda   i   trenutno   predstavlja   centralnu   komponentu 
skupa alata čije zajedničko ime je 

Geoprostorni web.

Geoserver  je implementiran kao web aplikacija i moguće 
ga   je   instalirati   na   postojeći   aplikativni   server   ili   ga 
pokrenuti   kao   samostalnu   aplikaciju.   Ima   module   za 
preuzimanje   podataka   iz   različitih   izvora   kao   što   su: 
Shape   file   DataStore,   Post   GIS   DataStore,   Oracle 
DataStore, DB2 DataStore, ArcSDE DataStore. 

Slika 1. UML reprezentacija GML gramatike za opis geoprostornih atributa

Geotools

  je   biblioteka   Java   klasa   implementirana   u 

skladu sa (LGPL) licencom otvorenog koda. Bibliotekom 
su   implementirane   osnovne   metode   za   manipulaciju 
prostornim podacima neophodnim za implementaciju GIS 
softverskog sistema. Razvijena biblioteka iskorišćena je 
kao   jezgro   u   više   projekata   (Geoserver, 
WebFeatureServer,   WebMapServer)   i   desktop   Java 
aplikacijama   za   implementaciju   složenih   geoprostornih 
procesa.   Korišćenjem   ove   biblioteke   omogućeno   je 
parsiranje   GML   datoteka   i   njihova   konverzija   u   Java 
objektni model prikazan na slici 2. 

Na slici je prikazan samo deo klasa koje se koriste ili se 
kreiraju  prilikom   parsiranja   GML  datoteke.   Kao   što  se 
vidi na slici, veoma velika kompleksnost java objektnog 
modela predstavlja potencijalno mesto za grešku koju je 
moguće   otkriti   tek   za   vreme   izvršavanja.   U   procesu 
implementacije poslovne logike procedure se oslanjaju na 
ovaj   kompleksni   Java   objektni   model,   što   predstavlja 
otežavajući faktor u razvoju inače kompleksnih aplikacija. 

U   odeljku   3.   prikazana   je   arhitektura   u   kojoj   se 
kompleksan   Java   objektni   model   enkapsulira   jednom 
POJO   klasom   i   odgovorajućom   Service   klasom.   POJO 
klasa   enkapsulira   model   podataka   a   Service   klasa 
enkapsulra   osnovne   metode   za   pristup  

findAll

create

update

 i 

delete

 

.

Freemarker

  je   biblioteka   java   klasa   implementirana   u 

skladu sa (BSD) licencom otvorenog koda a namenjena je 
za   generisanje   tekstualnih   datoteka   na   osnovu   Java 
objekata i datoteke u kojoj je šablon opisan freemarker 
jezikom. FreeMarker koristi se za generisanje bilo koje 
vrste tekstualnih datoteka HTML, XML, RTF, properties, 
JAVA   ili   čak   za   servlet   bazirane   aplikacije 
implementirane   u   skladu   sa   MVC   (Model   View 
Controler) obrascem ponašanja.

  Ideja razdvajanja modela podataka od prikaza u ovom 
radu   iskorišćena   je   da   se   razdvoji   obrazac   ponašanja 
(šablon) od konkretnog modela podatka.

 

background image

Želiš da pročitaš svih 6 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti