Softverska arhitektura za transformaciju geoprostornih podataka
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.

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