Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank

Werbung
Institut für Geodäsie und Geoinformationstechnik
Die Oracle-Schnittstelle
der Berliner 3D-Geodatenbank
Claus Nagel, Alexandra Stadler, Gerhard König, Thomas H. Kolbe
Technische Universität Berlin
Institut für Geodäsie und Geoinformationstechnik
Fachgebiet Methodik der Geoinformationstechnik
25. November 2008
Motivation
Institut für Geodäsie und Geoinformationstechnik
Geodaten-Sammelstelle
 Zusammentragen, vergleichen, anpassen, fortführen und
austauschen
 Daten beliebiger Herkunft
Voraussetzung:
Grundlegendes Datenmodell und Austauschformat
für 3D-Stadtmodelle
 Einheitliche Strukturierung garantiert
 Verwendung von CityGML
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Oracle 10g R2
Institut für Geodäsie und Geoinformationstechnik
Systementscheidung
 Unterstützung von räumlichen Datentypen (2D-4D)
 Datenbankverbindung zu kommerziellen GIS
 Methoden zur effizienten Verwaltung von Rasterdaten
 Workspace Manager (Versions- und Historienmanagement)
Designentscheidung
 Beschränkung auf Standard Datentypen von Oracle Spatial
 Abbildung des objektorientierten Datenmodells auf
relationales Schema
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
24. Juli 2008
CityGML: Überblick
Institut für Geodäsie und Geoinformationstechnik
Technisches
 Modelliert alle wesentlichen Bestandteile einer virtuellen Stadt
in ihrer Semantik, Geometrie, Topologie und Erscheinung
 GML-Anwendungsschema, XML-basiert
 Datenmodell und Austauschformat für virtuelle 3D Stadtmodelle
Geschichtliches
 Entwickelt in der SIG3D NRW unter Federführung von
 Prof. Thomas H. Kolbe (IGG TU Berlin)
 Dr. Gerhard Gröger (IGG Uni Bonn)
 Seit August 2008 internationaler Standard des
Open Geospatial Consortium (OGC)
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
CityGML: Auf dem Weg zum OGC-Standard
Institut für Geodäsie und Geoinformationstechnik
2006-03-06
2007-05-30
2008-02-04
2008-02-19
2008-03-20
CityGML 0.3.0
OGC Discussion Paper
CityGML 0.4.0
OGC Best Practices Paper
CityGML 1.0.0 (Proposal)
OGC Request for Comments
<<<<<<< Public Comment Phase >>>>>>>
CityGML 1.0.0
2008-08-20
OGC Implementation Specification
(after final OGC TC vote)
 Internationaler Standard
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
24. Juli 2008
CityGML: thematische Gliederung in Objektklassen
Institut für Geodäsie und Geoinformationstechnik
<<Feature>>
gml::_Feature
<<Feature>>
<<FeatureCollection>>
CityModel
ExternalReference
*
_CityObject
*
- informationSystem: anyURI
- externalReference:
ExternalObjectReferenceType
<<Feature>>
<<Feature>>
<<Feature>>
<<Feature>>
<<Feature>>
_Abstract
Building
_Transportation
Object
ReliefFeature
_WaterBody
_Vegetation
…
<<Geometry>>
LOD 0-4 GeometryProperty
gml::_Geometry
LOD 0-4 GeometryProperty
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
CityGML: Detailstufen in der Gebäudemodellierung
Institut für Geodäsie und Geoinformationstechnik
Gebäudemodell
ab LOD1
ab LOD2
ab LOD3
ab LOD4
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
CityGML: Kohärenz von Semantik und Geometrie
Institut für Geodäsie und Geoinformationstechnik
Semantik
Geometry
basierend
auf ISO 19107
Building
Composite
Solid
BuildingPart
...
Geometrie
Semantics
basierend
auf ISO 19109
BuildingPart
Roof
Surf.
Roof
Surf.
Wall
Surf.
Wall
Surf.
Door
Win
dow
Building
Installation
Solid
...
...
Solid
Poly
gon
Poly
gon
...
Composite
Surface
Poly
gon
Poly
gon
Poly
gon
Composite
Surface
...
...
‹#›
8
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Eine 3D-Geodatenbank für Berlin
Institut für Geodäsie und Geoinformationstechnik
 Auftraggeber
 Berliner Senatsverwaltung für Wirtschaft, Arbeit und Frauen
 Berlin Partner GmbH
 1. Projektphase
 Institut für Geodäsie und Geoinformationstechnik – Uni Bonn
 Datenbank-Prototyp (Oracle 10g R2 Spatial)
 Basierend auf CityGML (Version 0.3.0)
 Gebäude bis LOD3, DGM
 2. Projektphase
 Institut für Geodäsie und Geoinformationstechnik - TU Berlin
 Adaption auf aktuelle Version von CityGML (0.4.0)
 99% Unterstützung von CityGML
 Gebäude inklusive Innenraummodellierung und Adressierung
‹#›
 Weitere thematische Module: Appearance, Gewässer, Verkehrsnetz, …
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Funktionsumfang der 3D-Geodatenbank
Institut für Geodäsie und Geoinformationstechnik
von CityGML vererbte Eigenschaften
Generische
(prototypische)
3D-Objekte
Gebäude inkl.
Innenraummodellierung
(LOD 4)
umfassende
thematische
Modellierung
Digitale
Geländemodelle
(DGM)
Verwaltung von
DGMs und Luftbildern
(WebServices)
Referenzierung
von externen
Datenquellen
Versionsmanagement
Oberflächendaten
Import und
Export von
CityGML-Files
2. Projektphase
Gebäude bis
LOD 3
(rekursive)
Gruppierung
von Objekten
1. Projektphase
Flexible
3D-Geometrien
Zusatz
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Entwicklungsablauf
Institut für Geodäsie und Geoinformationstechnik
Entwicklung eines Import/Exporttools
für CityGML-Instanzdokumente
CityGML
Xsd Schema
<xs:complexType
name="CityModelType">
<xs:complexContent>
<xs:extension
...
Java
Bindung
(JAXB)
Schema-basierte
Klassen
SQL
Abfragen
public class CityModel {
…}
(Imp/Export
Tool)
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Vereinfachung des Datenmodells von CityGML
Institut für Geodäsie und Geoinformationstechnik
Entwicklung eines Import/Exporttools
für CityGML-Instanzdokumente
CityGML
Xsd Schema
<xs:complexType
name="CityModelType">
<xs:complexContent>
<xs:extension
...
Java
Bindung
(JAXB)
Schema-basierte
Klassen
SQL
Abfragen
public class CityModel {
…}
(Imp/Export
Tool)
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Vereinfachung des Datenmodells von CityGML
Institut für Geodäsie und Geoinformationstechnik
 CityGML = umfangreiches Datenmodell mit Erweiterungsmechanismen
 Thematisches Modell deckt breites Spektrum an Anwendungsfeldern ab
 Komplexe Relationen innerhalb einzelner thematischer Module
 Vergleichbare Hierarchien auf Seite der Geometrie
 Analyse bisheriger Berlin DB ergab:
Weniger komplexes Schema ist ausreichend!
 Anpassung der CityGML-Möglichkeiten and die Projektbedürfnisse
 Vereinfachtes Datenmodell
 Optimaler Workflow
 Effiziente Prozessierung
 Abstimmung mit Projektpartner 3DGeo
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Auflistung durchgeführter Vereinfachungen
Institut für Geodäsie und Geoinformationstechnik
 Multiplizitäten von Attributen
0..*  0..1
 Kardinalitäten von Relationen
(und damit auch ihre Typen)
n:m  1:n oder n:1
 Rekursionen
parent-id und root-id
 Datentypanpassung
codetype, color vector  String
Aggregation  Komposition
gml-Geometrie  SDO_GEOMETRY
 Projektspezifische Klassen und
Klassenattribute
Orthophotos, Adressrepräsentation,
Metadaten
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Vereinfachte Abbildung der GML-Geometrieklassen
Institut für Geodäsie und Geoinformationstechnik
 CityGML = GML3-Anwendungsschema
 unterstützt eine Teilmenge der in GML3 spezifizierten Geometrieklassen
(ebene Geometrien)
bRepMember
1..*
<<Geometry>>
_BRepGeometry
+isSolid : boolean [1]
+isComposite : boolean [1]
+isTriangulated : boolean [1]
0..1
<<Geometry>>
BRepAggregate
<<Geometry>>
Polygon
+geometry : Polygon [1]
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Attribute der Klasse _BRepGeometry
Institut für Geodäsie und Geoinformationstechnik
+isSolid:
1… Geometrie ist geschlossen  bildet einen Solid
0… Geometrie ist nicht geschlossen  bildet eine Surface
+isComposite:
1… Geometrie ist zusammenhängend  bildet einen Composite
0… beliebige Geometrieanordnung  bildet einen Multi
+isTriangulated:
1… Geometrie ist trianguliert  bildet eine TriangulatedSurface
0… Geometrie ist nicht trianguliert  keine TriangulatedSurface
Effizinte XLink-Behandlung erfordert zusätzlich:
+isXLink:
isXLink kennzeichnet aufeinander verweisende Geometrien
beim Export entfällt Prüfung auf mehrfach vorkommende Geometrien
 Performancesteigerung!
+isReverse:
Geometrie in DB immer im korrekten Drehsinn gespeichert
 direkte Verarbeitung sichergestellt
für Export von XLinks wird der Drehsinn aus dem Originalfile benötigt
isReverse kennzeichnet den Drehsinn einer Geometrie im Originalfile
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Ableitung des relationalen Datenbankschemas
Institut für Geodäsie und Geoinformationstechnik
Entwicklung eines Import/Exporttools
für CityGML-Instanzdokumente
CityGML
Xsd Schema
<xs:complexType
name="CityModelType">
<xs:complexContent>
<xs:extension
...
Java
Bindung
(JAXB)
Schema-basierte
Klassen
SQL
Abfragen
public class CityModel {
…}
(Imp/Export
Tool)
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Abbildung von Vererbungshierarchien
Institut für Geodäsie und Geoinformationstechnik
bRepMember
1..*
<<Geometry>>
_BRepGeometry
+isSolid : boolean [1]
+isComposite : boolean [1]
+isTriangulated : boolean [1]
0..1
<<Geometry>>
BRepAggregate
<<Geometry>>
Polygon
+geometry : Polygon [1]
BRepGeometry
ID: NUMBER <<PK>>
IS_SOLID : BOOLEAN
IS_COMPOSITE : BOOLEAN
IS_TRIANGULATED : BOOLEAN
BRepAggregate
ID: NUMBER <<PK>><<FK>>
BRepAggregate
ID: NUMBER <<PK>>
IS_SOLID : BOOLEAN
IS_COMPOSITE : BOOLEAN
IS_TRIANGULATED : BOOLEAN
Polygon
Polygon
ID: NUMBER <<PK>>
IS_SOLID : BOOLEAN
IS_COMPOSITE : BOOLEAN
IS_TRIANGULATED : BOOLEAN
GEOMETRY : SDO_GEOMETRY
BRepGeometry
ID: NUMBER <<PK>>
TYPE : VARCHAR2(30)
IS_SOLID : BOOLEAN
IS_COMPOSITE : BOOLEAN
IS_TRIANGULATED : BOOLEAN
GEOMETRY : SDO_GEOMETRY
ID: NUMBER <<PK>><<FK>>
GEOMETRY : SDO_GEOMETRY
 Ansätze zur Abbildung von Vererbungshierarchien
 Umsetzung der Geometrieklasse
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Wie kommt Geometrie in die Datenbank?
Institut für Geodäsie und Geoinformationstechnik
<bldg:lod1Solid>
<gml:Solid>
<gml:exterior>
<gml:CompositeSurface gml:id="lod1Surface">
<gml:surfaceMember>
<gml:Polygon gml:id="Left1">
<gml:exterior>
<gml:LinearRing gml:id="LeftRing1">
<gml:posList srsDimension="3"> 0.0 0.0 0.0 10.0
0.0 0.0 10.0 0.0 4.0 0.0 0.0 4.0 0.0 0.0 0.0
</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
...
<gml:surfaceMember>
SURFACE_GEOMETRY
<gml:Polygon gml:id="Roof1">
ID
GMLID
PARENT
<gml:exterior>
_ID
<gml:LinearRing gml:id="RoofRing1">
<gml:posList srsDimension="3"> 0.01 0.0UUID_xyz
4.0 10.0
0.0 4.0 10.0 5.0 4.0 0.0 5.0 4.0 20.0 lod1Surface
0.0 4.0
1
</gml:posList>
3
Left1
2
</gml:LinearRing>
</gml:exterior>
4
Front1
2
</gml:Polygon>
5
Right1
2
</gml:surfaceMember>
</gml:CompositeSurface>
6
Back1
2
</gml:exterior>
7
Roof1
2
</gml:Solid>
‹#› </bldg:lod1Solid>
6
3
7
5
4
Datenbank ?
LOD1 building
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
ROOT
_ID
IS_
SOLID
IS_COM
POSITE
GEOMETRY
1
1
0
1
0
1
1
0
0
LoD1 surface 3
1
0
0
LoD1 surface 4
1
0
0
LoD1 surface 5
1
0
0
LoD1 surface 6
1
0
0
LoD1 surface 7
25. November 2008
Wie werden Texturen zugeordnet?
Institut für Geodäsie und Geoinformationstechnik
<app:appearanceMember>
<app:Appearance>
<app:theme>Summer</app:theme>
…
<app:surfaceDataMember>
<app:ParameterizedTexture gml:id="roofTexture">
<app:imageURI>roof.png</app:imageURI>
<app:wrapMode>wrap</app:wrapMode>
<app:target uri="#Roof1">
<app:TexCoordList>
<app:textureCoordinates ring="#RoofRing1">
0.0 0.0 1.0 0.0 1.0 1.0 0.0 1.0 0.0 0.0
</app:textureCoordinates>
TEXTUREPARAM
</app:TexCoordList>
SURFACE_
IS_TEXTURE
</app:target>
GEOMETRY
_PARAME
</app:ParameterizedTexture>
_ID
TRIZATION
</app:surfaceDataMember>
…
7
1
</app:Appearance>
</app:appearanceMember>
…
WORLD_TO
_TEXTURE
TEXTURE_
COORDINATES
SURFACE
_DATA_ID
-
0.0 0.0 1.0 0.0 1.0
1.0 0.0 1.0 0.0 0.0
x
10,5,4
0,1
1,1
0,5,4
7
10,0,4
0,0,4
0,0
‹#›
roof.png
1,0
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Entwicklung eines Import/Exporttools
Institut für Geodäsie und Geoinformationstechnik
Entwicklung eines Import/Exporttools
für CityGML-Instanzdokumente
CityGML
Xsd Schema
<xs:complexType
name="CityModelType">
<xs:complexContent>
<xs:extension
...
Java
Bindung
(JAXB)
Schema-basierte
Klassen
SQL
Abfragen
public class CityModel {
…}
(Imp/Export
Tool)
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Entwicklung eines Import/Exporttools: Überblick
Institut für Geodäsie und Geoinformationstechnik
Datenimport
CityGML
Eingabedatei
____
____
____
____
_____
____
_____
____
CityGML
lesen
folgt
Features
CityModel cityModel1 =
new CityModel () ;
…
Instanz von
citygml4j
XSD Schema
<xs:complexType
name="CityModelType">
<xs:complexContent>
…
</xs:complexType>
Java
Bindung
folgt
____
____
____
____
_____
____
_____
____
public class CityModel {
…}
Instanz von
CityGML
Ausgabedatei
Schema-basierte
Klassen
CityGML
schreiben
Features
CityModel cityModel1 =
new CityModel () ;
…
Datenbank
-import
angewendet
ImportFunktionalität
ExportFunktionalität
Oracle
Datenbank
___
___
___
___
___
___
statischer
 Kern der
Software
angewendet
Datenbank
-export
Datenexport
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Herausforderungen der CityGML/GML Verarbeitung
Institut für Geodäsie und Geoinformationstechnik
 Unterstützung von Instanzdokumenten beliebiger Dateigröße
 GML bietet ein mächtiges, komplexes Datenmodell
 XML ist „geschwätzig”
 Dateigröße von Instanzdokumenten wächst schnell
(1 Mio. LOD1 Gebäude benötigen ca. 7GB Speicherplatz)
 Effiziente und performante Verarbeitung
 beliebige Verschachtelungstiefe von CityGML/GML Objekten führt zu
komplexen XML-Datenstrukturen  effiziente Verarbeitung?
 Nebenläufige Prozesse zur Erhöhung der Performance  Entkopplung?
 XLink-Verweise
 CityGML/GML: “Property”-Elemente können per XLink auf entfernte
Objekte verweisen
 Vorwärts- und Rückwärtsverweise innerhalb einer Datei möglich
 Korrekte Abbildung in Datenbank erfordert Auflösung von XLinks
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Unterstützung beliebig großer CityGML-Dateien
Institut für Geodäsie und Geoinformationstechnik
Umsetzung eines zweistufigen Verfahrens
1. Partielles Einlesen von XML-Dokumenten
 Datenstrombasiertes, ereignisorientiertes XML-Parsen
 Simple API for XML (SAX)
 Sequentielles Einlesen von XML-Elementen in den Hauptspeicher
 keine Beschränkung der absoluten Dateigröße
 Problem: SAX-Ereignisse zustandslos  Kontext geht verloren,
Rekonstruktion komplexer Datenstrukturen aufwendig
 Aufspaltung der CityGML Datei in kleinere Stücke („XML-Chunks“)
 Sinnvolle Teilung bspw. anhand von CityObject Instanzen
<cityObjectMember> CityObject Instanz </cityObjectMember>
 Zwischenspeicherung der zugehörigen SAX-Ereignisse
 Hauptspeicherverbrauch bestimmt sich nach der Größe der XMLChunks, nicht mehr nach der Dateigröße
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Unterstützung beliebig großer CityGML-Dateien
Institut für Geodäsie und Geoinformationstechnik
Umsetzung eines zweistufigen Verfahrens
2. Bindung der XML-Chunks an Java-Klassen
 Objektorientierte Sicht auf XML-Daten
 Java Architecture for XML Binding (JAXB)
 Generierung einer Java-Klassenhierarchie aus einer XML-Schemainstanz
 Abbildung komplexer XML-Datenstrukturen auf Java-Objektbaum
(Unmarshalling) und umgekehrt (Marshalling)  Effiziente Verarbeitung
 Problem: Überführung des gesamten Instanzdokuments in eine in-memory
Repräsentation  Hauptspeicherbedarf bestimmt sich nach Dateigröße
 Schrittweise Bindung der einzelnen XML-Chunks
 XML-Chunks werden unabhängig voneinander in Objektbäume übersetzt
 Hauptspeicherverbrauch bestimmt sich nach der Größe der Teilbäume
 Freigabe von Hauptspeicher nach Verarbeitung eines XML-Chunks
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Performante Datenverarbeitung
Institut für Geodäsie und Geoinformationstechnik
Verarbeitung eines Instanzdokuments durch (quasi-)parallele,
interagierende Prozesse (Threads)
 Nebenläufige Verarbeitung durch Entkoppelung anhand der einzelnen
CityObject Instanzen (XML-Chunks)
 Parallelisierung abhängig von Anzahl an Prozessoren/Prozessorkernen
 Kontextwechsel
 überhöhte Lebenszyklus- und Ressourcenverwaltung
 Thrashing durch Mangel an Arbeitsspeicher
 Wiederverwendung von Threads durch Verwaltung in Thread-Pools
 Kombination von Thread-Pools zu komplexen Prozessketten
Thread Pool
Thread Pool
Worker
Worker
Worker
Worker
‹#›
Queue
Queue
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Auflösung von XLink-Verweisen
Institut für Geodäsie und Geoinformationstechnik
Nebenläufige, partielle Verarbeitung von CityGML Dateien
 Verarbeitung beliebig großer Instanzdokumente
 Performante Verarbeitung durch (quasi-)parallele Prozesse
 Problem: Auflösung von XLink-Verweisen auf entfernte CityObject
Instanzen wird komplexer
 Rückwärtsverweise
 CityObject bereits verarbeitet: SQL-Abfrage in Datenbank?
 CityObject wird parallel verarbeitet: Interprozess-Kommunikation?
 Vorwärtsverweise
 CityObject wird parallel verarbeitet: Interprozess-Kommunikation?
 CityObject noch nicht verarbeitet: ?
 Einstufige Strategie erfordert Repräsentation des kompletten
Instanzdokuments im Hauptspeicher
Implementierung einer zweistufigen Strategie
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
XLink-Verweise: Zweistufige Strategie
Institut für Geodäsie und Geoinformationstechnik
1. Erste Stufe
 Speicherung von CityObject Instanzen in Datenbank ohne
Berücksichtigung ihrer XLink-Verweise
 Zwischenspeicherung der XLink-Verweise in temporären Tabellen
 Quelle: Tabellenname + Primärschlüssel
 Ziel: GML-ID des referenzierten Elements
 Eventuell: Zusatzinformationen
 Effiziente Datenstruktur zur Abbildung “GML-ID  Tabellenname +
Primärschlüssel” (im Hauptspeicher + Überlaufspeicher in Datenbank)
2. Zweite Stufe: Post-Processing
 Abfrage der temporären XLink-Tabellen
 Auflösung des XLink-Ziels über Datenstruktur im Hauptspeicher
 Entsprechende Prozessierung des XLinks
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Datenimport – Schritt 1
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
Buffer
Queue
CityGML
Eingabedatei
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
TopLevel Feature
Queue
Temporärer
Buffer
citygml4j
SAX Parser
Parser Thread
(1 Instanz)
Featureerzeugung
Converter
Thread
(begrenzte Anzahl
von Instanzen)
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Datenimport – Schritt 2
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
TopLevel Feature
Queue
SQL-Befehl
Queues
Importfilter
Oracle
Datenbank
Datenbankupdate
Geodaten
___
___
___
commit
___
___
___
SQL Erzeugung
XLink
Information
XLinks
XLink
Queue
commit
Importer Thread
XLink Thread
(begrenzte Anzahl
von Instanzen)
(begrenzte Anzahl
von Instanzen)
___
___
___
mit separater
XLink Speicherung
(temporär)
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Datenimport – Schritt 3
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
XLink Resolver
Queue
Oracle
Datenbank
___
___
___
___
___
___
XLink
Splitter
SQL-Befehl
Queue
Oracle
Datenbank
Datenbankupdate
SQL-Erzeugung
___
___
___
___
___
___
XLinks
___
___
___
mit separater
XLink Speicherung
(temporär)
XLink
Splitter Thread
(1 Instanz)
commit
mit aufgelösten
XLinks
XLink
Resolver Thread
(begrenzte Anzahl
von Instanzen)
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Datenexport – Schritt 1
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
____
_____
____
___
___
___
___
___
___
Exportfilter
Splitter Thread
SQL
(1 Instanz)
TopLevel Feature
ID Queue
Oracle
Datenbank
___
___
___
SQL
Datenbankausgabe
___
___
___
Feature
Feature / Geometrie Anfrage
Exporter Thread
‹#›
(begrenzte Anzahl von Instanzen)
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Datenexport – Schritt 2
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
____
_____
____
___
___
___
___
___
___
Buffer
Queue
CityGML
Ausgabedatei
Temporärer
Buffer
Feature
CityGML
schreiben
citygml4j
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
Exporter Thread
IO Writer Thread
(begrenzte Anzahl von Instanzen)
(1 Instanz)
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Performance-Messung…
Institut für Geodäsie und Geoinformationstechnik
Import
Dataset
1.1 mio LOD1
buildings
10.927 LOD2
buildings
fully
textured
 w/o
textures
File size
Time
Features
/ second
No. of
workers
1:15h
228
4
2:25h
121
Export
Geometry /
Appearance /
XLinks
Time
Features
/ second
No. of
workers
11511040 /
0/0
38min
455
10
1
11511040 /
0/0
1:57h
150
1
4.3min
42
4
2min
91
4
7,5 GB
163 MB
+
57 MB
163 MB
25
min
7
4
434714 /
43348 /
391006
6.5
min
28
4
434714 /
0 / 391006
Database server: 2 x Intel Xeon Dual Core@3GHz, 6GB RAM, SCSI Raid 5 Disk Array,
Windows Server 2003 SP2, 100MBit LAN
‹#›
Client running the import/export tool: Intel Core2 CPU [email protected], 2GB RAM,
WindowsXP SP2, 100MBit LAN
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Charakteristika des Import/Exporttools
Institut für Geodäsie und Geoinformationstechnik
Volle Unterstützung von CityGML 1.0.0, 0.4.0, 0.3.1, 0.3.0
Unterstützung beliebig großer CityGML-Dateien (>4GB)
Nebenläufigkeit der Datenverarbeitung durch Multithreading
Hohe Performance auch auf Standard-Systemen
 7GB Datei (>1mio LOD1-Gebäude)  Import: 75min, Export: 38min
Unterstützung von XLinks
Benutzerdefinierter Import und Export durch Filteroptionen
 GML ID, GML Name
 Blockweiser Import/Export zur Datenkachelung (mittels Bounding
Boxes)
 Auswahl von Objektklassen
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Charakteristika des Import/Exporttools
Institut für Geodäsie und Geoinformationstechnik
Zwei Schnittstellen
 Graphische Benutzerschnittstelle (GUI) zur Benutzung
durch Endanwender
 Kommandozeilen-Schnittstelle (CLI) zur einfachen
Einbettung der Import/Export-Funktionalität in
Drittanwendungen
Basiert auf Open Source Bibliothek citygml4j des IGG
 CityGML Programmbibliothek für Java
 Ermöglicht das einfache Lesen, Verarbeitung und Schreiben von
CityGML Instanzdokumenten
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Geplante Erweiterungen
Institut für Geodäsie und Geoinformationstechnik
 Matchingfunktionalität
 Erkennung korrespondierender Objekte
 Verlinkung und Austausch von Informationen
 Entfernen redundanter Informationen
 Weiterführende Nutzung als Backend für Web Services
 Web Feature Services (WFS) können existierende Import- und
Exportfunktionalität nutzen
 Alternative zur graphischen Benutzeroberfläche
 Erweiterung der Exportfunktionalität um standardisierte Formate
 KML etc.
 Performanceoptimierung
 Optimale Verteilung auf physischen Platten
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Verfügbarkeit
Institut für Geodäsie und Geoinformationstechnik
 Open Source Veröffentlichungen des IGG, TU Berlin
 3D Geodatenbank
 Import/Exporttool
 citygml4j
 Verfügbar sind
 SQL-Skripte, Quellcode, ausführbare Binärdateien,
Programmbibliotheken, Dokumentation, Tutorials, etc.
 Lizenz: GNU Lesser Public General License v3 (LGPL)
 Link: http://www.igg.tu-berlin.de/1746/
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Referenzen
Institut für Geodäsie und Geoinformationstechnik
 3D city database (2007), www.3dcitydb.org [letzter Zugriff: 2008-06-20].
 Döllner J, Kolbe TH, Liecke F, Sgouros T, Teichmann K (2006) The Virtual
3D City Model of Berlin - Managing, Integrating, and Communicating
Complex Urban Information, In: Proceedings of the 25th Urban Data
Management Symposium UDMS, Aalborg 2006.
 Emgård L, Zlatanova S (2007) Implementation alternatives for an
integrated 3D Information Model, In: Advances in 3D Geoinformation
Systems, Springer-Verlag, pp. 313-330.
 GNU Lesser General Public License,
http://www.gnu.org/copyleft/lgpl.html [letzter Zugriff: 2008-06-20].
 Gröger G, Kolbe TH, Czerwinski A (2007), Candidate OpenGIS
Implementation Specification (City Geography Markup Language), Version
0.4.0, OGC Doc. No. 07-062, Open Geospatial Consortium 2007.
 Snowflake Software, GO Loader product page (2008),
http://www.snowflake software.co.uk/products/goloader/index.htm
[letzter Zugriff: 2008-06-20].
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Institut für Geodäsie und Geoinformationstechnik
Fragen ?
Claus Nagel
Alexandra Stadler
Gerhard König
Thomas H. Kolbe
{ nagel|stadler|koenig|kolbe} @ igg.tu-berlin.de
Technische Universität Berlin
Institut für Geodäsie und Geoinformationstechnik
Fachgebiet Methodik der Geoinformationstechnik
Straße des 17. Juni 135, 10623 Berlin
‹#›
Nagel, Stadler, König, Kolbe: Die Oracle-Schnittstelle der Berliner 3D-Geodatenbank
25. November 2008
Herunterladen