CityGML goes relational: Eine Oracle

Werbung
Institut für Geodäsie und Geoinformationstechnik
CityGML goes relational:
Eine Oracle-Schnittstelle
für das neue Berliner Stadtmodell
Dipl.-Ing. Alexandra Stadler
Technische Universität Berlin
Institut für Geodäsie und Geoinformationstechnik
Fachgebiet Methodik der Geoinformationstechnik
13. Oktober 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
2
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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 Kolbe (IGG TU Berlin)
 Dr. Gerhard Gröger (IGG Uni Bonn)
 Auf dem Weg zum internationalen Standard des Open Geospatial
Consortium (OGC)
3
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
CityGML: Auf dem Weg zum OGC-Standard
Institut für Geodäsie und Geoinformationstechnik
2002-05
2006-03-06
2007-05-30
2008-02-04
2008-02-19
2008-03-20
2008-08-20
CityGML Kick-Off
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
OGC Implementation Specification
(after final OGC TC vote)
 Internationaler Standard
4
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
5
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
CityGML: Detailstufen in der Gebäudemodellierung
Institut für Geodäsie und Geoinformationstechnik
Gebäudemodell
ab LOD1
ab LOD2
ab LOD3
ab LOD4
6
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
...
...
7
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
8
 Gebäude inklusive Innenraummodellierung und Adressierung
 Weitere thematische Module: Appearance, Gewässer, Verkehrsnetz, …
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Funktionsumfang der 3D-Geodatenbank
Institut für Geodäsie und Geoinformationstechnik
Gebäude bis
LOD 3
(rekursive)
Gruppierung
von Objekten
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
Flexible
3D-Geometrien
Zusatz
1. Projektphase
von CityGML vererbte Eigenschaften
9
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
public class CityModel {
…}
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
(Imp/Export
Tool)
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
SQL
Abfragen
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
10
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
public class CityModel {
…}
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
(Imp/Export
Tool)
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
SQL
Abfragen
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
11
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Vereinfachung des Datenmodells von CityGML
Institut für Geodäsie und Geoinformationstechnik
 Thematisches Modell deckt breites Spektrum an Anwendungsfeldern ab
 Komplexe Relationen innerhalb einzelner thematischer Module
 Vergleichbare Hierarchien auf Seite der Geometrie
bRepMember
1..*
<<Geometry>>
_BRepGeometry
+isSolid : boolean [1]
+isComposite : boolean [1]
+isTriangulated : boolean [1]
0..1
<<Geometry>>
BRepAggregate
<<Geometry>>
Polygon
+geometry : Polygon [1]
12
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
public class CityModel {
…}
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
(Imp/Export
Tool)
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
SQL
Abfragen
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
13
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Ableitung des relationalen Datenbankschemas
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
14
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
public class CityModel {
…}
UML Schema
Vereinfachung
des komplexen
Datenmodells
von CityGML
(Imp/Export
Tool)
Datenexport
Datenimport
Oracle
Datenbank
Schemavereinfachung
a
vereinfachtes
UML Schema
c
SQL
Abfragen
DatenbankErzeugung
Abbildung
Klassen 
Tabellen
Relationales
Datenbankschema
SQL DDL
Befehle
(JDeveloper)
b
Ableitung des relationalen Datenbankschemas
15
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Entwicklung eines Import/Exporttools: Überblick
Institut für Geodäsie und Geoinformationstechnik
Datenimport
CityGML
Eingabedatei
____
____
____
____
_____
____
_____
____
CityGML
lesen
folgt
Xsd Schema
<xs:complexType
name="CityModelType">
<xs:complexContent>
<xs:extension
...
Java
Bindung
Zugriffsschicht
Schema-basierte
Klassen
public class CityModel {
…}
Instanz von
CityGML
____
____
____
____
_____
____
_____
____
CityModel cityModel1 =
new CityModel () ;
…
Instanz von
folgt
Ausgabedatei
Features
CityGML
schreiben
Features
CityModel cityModel1 =
new CityModel () ;
…
Datenbank
-import
angewendet
ImportFunktionalität
ExportFunktionalität
Oracle
Datenbank
___
___
___
___
___
___
statischer
 Kern der
Software
angewendet
Datenbank
-export
Datenexport
16
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Charakteristika des Import/Exporttools
Institut für Geodäsie und Geoinformationstechnik
 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: 90min, Export: 10min
 Vergabe von weltweit eindeutigen IDs (UUIDs)
 Benutzerdefinierter Import und Export durch Filteroptionen
 GML ID, GML Name
 Blockweiser Import/Export zur Datenkachelung (nach IDs, mittels
Bounding Boxes)
 Auswahl von Objektklassen
 Veröffentlichung als Open Source Software
17
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Unterstützung beliebig großer CityGML-Dateien
Institut für Geodäsie und Geoinformationstechnik
Partielle Verarbeitung von XML-Dokumenten
 Datenstrom-basiertes, ereignisorientiertes XML-Parsen
 Simple API for XML (SAX)
 Sequentielles Einlesen von XML-Elementen in den Hauptspeicher
 keine Beschränkung der absoluten Dateigröße auf <4GB
 Problem: SAX-Ereignisse zustandslos  Referenzen gehen verloren
und deren Bindung an Java-Klassen
 Objektorientierte Sicht auf XML-Daten
 Java Architecture for XML Binding (JAXB)
 Abbildung einer XML-Schemainstanz auf ein Java-Objektmodell
 Kommunikation mit dem Objektmodell über (Un)Marshalling
kombiniert in einem 2-stufigen Verfahren
18
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Nebenläufigkeit der Datenverarbeitung
Institut für Geodäsie und Geoinformationstechnik
(Quasi-)parallele Ausführung mehrerer interagierender Prozesse
 Entkopplung durch Verarbeitung in separaten Threads
 Parallelisierung abhängig von Anzahl an Prozessoren/Prozessorkernen
 Achtung: Kontextwechsel
 überhöhte Lebenszyklus- und Ressourcenverwaltung
 Thrashing durch Mangel an Arbeitsspeicher
 Wiederverwendung von Threads durch Verwaltung in Thread Pools
Verzögerungen aufgrund von Thread-Erzeugung entfallen
Thread Pool
Thread Pool
Worker
Worker
Worker
Worker
Queue
Queue
19
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Datenimport – Schritt 1
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
Buffer
Queue
CityGML
Eingabedatei
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
Temporärer
Buffer
SAX Parser
Parser Thread
(1 Instanz)
TopLevel Feature
Queue
JAXB
Unmarshaller
Featureerzeugung
Converter
Thread
(begrenzte Anzahl
von Instanzen)
20
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
Importer Thread
(begrenzte Anzahl
von Instanzen)
commit
XLink Thread
___
___
___
mit separater
XLink Speicherung
(temporär)
(begrenzte Anzahl
von Instanzen)
21
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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)
22
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Datenexport – Schritt 1
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
____
_____
____
___
___
___
___
___
___
Exportfilter
Splitter Thread
SQL
(1 Instanz)
TopLevel Feature
ID Queue
Oracle
Datenbank
___
___
___
Datenbankausgabe
___
___
___
Feature
SQL
Feature / Geometrie Anfrage
Exporter Thread
23
(begrenzte Anzahl von Instanzen)
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Datenexport – Schritt 2
Institut für Geodäsie und Geoinformationstechnik
____
_____
____
____
_____
____
_____
____
____
_____
____
____
____
_____
____
___
___
___
___
___
___
Buffer
Queue
CityGML
Ausgabedatei
Temporärer
Buffer
Feature
JAXB
Marshaller
CityGML
schreiben
____
_____
____
____
_____
____
_____
____
____
_____
____
____
_____
_____
____
Exporter Thread
IO Writer Thread
(begrenzte Anzahl von Instanzen)
(1 Instanz)
24
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Benutzeroberfläche
Institut für Geodäsie und Geoinformationstechnik
25
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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
26
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 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].
27
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Institut für Geodäsie und Geoinformationstechnik
Fragen ?
Dipl.-Ing.
Alexandra Stadler
stadler @ 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
28
Alexandra Stadler - CityGML goes relational: Eine Oracle-Schnittstelle für das neue Berliner Stadtmodell
13. Oktober 2008
Herunterladen