Zürcher Fachhochschule
Institut für angewandteInformationstechnologie InIT
Visualisierung von Transponder-Daten mittels Mashup
Mitarbeiter:
■ Michael Jäger
■ Andreas Loeber■ Daniel Kramarz
■ Marco Vergari
■ Prof. Dr. Marcel Rupf
■ Prof. Dr. Karl Rege
2© 2007 InIT / School of Engineering
■ Geschichte
■ Motivation
■ Technologie
■ Architektur
■ Backend
■ Frontend
■ Herausforderungen
■ Ausblick
■ Fragen
Übersicht
4© 2007 InIT / School of Engineering
Geschichte
■ Vorgängerprojekte■ ADS-B Empfänger (Gruppe M.Rupf) mit einfacher lokaler Visualisierung auf PC
■ Internet Information Broker: "Crawler/Datensammler für Comparis entwickelt)■ Machbarkeitsstudie: Darstellung auf Google Maps als Semesterarbeit
5© 2007 InIT / School of Engineering
Motivation und Herausforderungen
■ Kombination verschiedener aktueller Technologien
■ Google Maps Mashup - mit unterschiedlichen (verteilten) Datenquellen■ Echtzeit Daten von eigenem ADS-B Empfänger■ Frei verfügbare Daten aus dem Web via Internet Information Broker (IIB)
■ Kostenpflichtiger Web Service (SOAP)
■ Weitere Herausforderungen■ Echtzeit Datendarstellung in Google Maps (noch eher selten gezeigt)
■ Serviceorientierte Architektur (SOA) über Organisationsgrenzen hinweg■ Eigentlich nicht geplant: Betrieb einer Ajax basierten Google Maps Anwendung
6© 2007 InIT / School of Engineering
Kollisionswarnung TCAS
GPS
Dat
en
GPS Daten
RADAR
Air Traffic Control
ADS-B Empfänger
TransponderMode A/CMode S
TransponderMode A/CMode S
Technologie: Transponder und ADS-B
8© 2007 InIT / School of Engineering
Technologie: eingesetzte Software
■ Programmierumgebung: Java 6, .NET 2.0
■ Web Server: Tomcat, Apache
■ Kommunikationsprotokoll: SOAP
■ Datenbank: MySQL
■ Datenbeschaffer: IIB (basierend auf XSLT, XML, .NET 2.0 …)
■ Datenbankzugriff: JPA (Java Persistence API)
■ Browser Interaktion: AJAX/JSON
■ JavaScript Bibliotheken: prototype und script.aculo.us
■ Kartendienst: Google Maps
Alles basierend auf frei verfügbarer und/oder Open-Source Software
9© 2007 InIT / School of Engineering
Architektur
■ Data Collector: Sammelt Daten und sie bereitet auf■ ADS-B: Daten als Web Service
■ Internet Information Broker: Für beliebige Daten frei aus dem Internet■ Web Services von kommerziellen Anbieter
■ Working Datastore: Datenbank zur Entkopplung
■ Data Provider: Bereitstellung der Daten für Klienten
Data Collector
Working Datastore
Data Provider
Other Data Source
IIBIIB
ADS-BADS-B BrowserBrowserSOAP
HTTP/AJAX
SOAP
*
* *
* an der ZHAW Entwickelt
*
Backend Frontend
10© 2007 InIT / School of Engineering
Backend: Data Collector - die Teile
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
IIBIIB
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6
11© 2007 InIT / School of Engineering
IIBIIB
Data Consumer - im Detail
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6
■ Sammelt die Positionsdaten der verschiedenenEmpfänger
■ Versieht sie mit einem Zeitstempel
■ Mittels einer Priority Queue werden die Datensynchronisiert.
12© 2007 InIT / School of Engineering
Data Consolidator - im Detail
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
IIBIIB
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6
Data Consolidator
■ Meldungen aus der Queue abarbeiten
■ Fehlende Flugdaten ergänzen■ wenn nötig extrapolieren■ wenn möglich interpolieren
■ Daten in den Working Datastore speichern
13© 2007 InIT / School of Engineering
Data Consolidator - fehlende Flugdaten
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
IIBIIB
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6
■ ADS-B "Telegramme" mit Flugdaten und/oderFluglage ca. alle 250 ms
■ Problem:■ Es müssen mehrere "Telegramme" empfangen werden,
damit die vollständigen Daten vorliegen.
■ Der Empfang kann wegen topographischen Hindernissenzwischenzeitlich (oder vollständig) unterbrochen sein
■ Für die Darstellung ist es aber notwendig, dass die Datenkontinuierlich (im Sekundentakt) geliefert werden können
■ Lösung für Fluglage: Extrapolation und Interpolationder fehlenden Flugdaten
14© 2007 InIT / School of Engineering
Data Consolidator - Extrapolation und Interpolation
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
IIBIIB
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6
■ Extrapolation
■ Interpolation
angezeigte Flugspur
angezeigte extrapolierteFlugspur
letztes empfangenesSignal mit Position und Fluglage
reale Flugspur
wieder empfangenesSignal mit Position und Fluglage
angezeigte interpolierteFlugspur
yyyy
xxxx
dtctbtaty
dtctbtatx
+++=
+++=23
23
)(
)(
310
2
2210
T
xx
T
vva xx
x ∆−+
∆+
=
0xx vc =
201 332
10
T
xx
T
vvb xx
x ∆−+
∆−−
=
0xd x =
360060 ⋅⋅+= tV
LatLat NSaltneu
)cos(360060 alt
EWaltneu Lat
tVLonLon
⋅⋅⋅
+=
15© 2007 InIT / School of Engineering
Flight Information Updater - das Mashup
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
IIBIIB
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6Flight InformationUpdater■ Reichert Daten aus unterschiedlichen Quellen an
■ Datenbank: früher erfasste Daten
■ Live: mit Hilfe von kommerziellen Datenanbieter (Flightstats)
■ Live: mit Hilfe von Internet Information Broker (IIB)
■ Hier wird das eigentliche Mashup durchgeführt■ Alle Daten werden via Web Services (SOAP) bezogen
■ Problem: Assoziation der Daten bei unabhängigen,heterogene Datenbeständenz.B. ICAO, IATA
16© 2007 InIT / School of Engineering
IIBIIB
Internet Information Broker (IIB)
Working Datastore1
Data Consumer(Thread)
QueueADS-BADS-B
SOAP
ADS-BADS-B
Data Consolidator
Flight InformationUpdater
Historical Datastore
SOAP
Data Collector
FlightStats Web Service
2
4
3
5
6
■ Extrahiert Daten aus dem Internet■ Der IIB ist ein Crawler, der die Information aus
beliebigen (HTML basierten) Web Seiten extrahieren und alsWeb Service (via SOAP) zur Verfügung stellen kann
■ Gesteuert durch einfach zu erstellende XSLTSkripte
■ IIB-XSLT-Builder als komfortables Werkzeug zurErstellung dieser Skripte
20© 2007 InIT / School of Engineering
Frontend: der Data Provider
Working Datastore Working Datastore
Web Data Provider
GEarth Data Provider
HTTP/AJAX
KML
DP-Servlet
21© 2007 InIT / School of Engineering
Technologie für Data Provider: Google Maps
■ Browser basierter weltweiter Kartendienst■ Strassenkarten und Satellitenbilder■ sehr gute Qualität, verschiedene Auflösungen
■ sehr günstige Bedingungen für nicht kommerzielle Anwender
■ Eigene Daten lassen sich programmatisch (via Java Script) hinzufügen
■ Google Java Script Bibliothek stellt verschiedene geometrische Primitivenzur Verfügung
■ Markers (für Flugzeuge)■ Polylines (für Flugspuren)
■ Custom Overlays (für Schatten, Beschriftungen und Flughafen-Symbole)
■ …
■ Jedoch bisher meist für Anreicherung mit statischen Daten verwendet z.B.Immobiliendaten, Standorte von Verbrechen, ...
22© 2007 InIT / School of Engineering
Technologie für Data Provider: Ajax
■ Traditionelle Web Anwendung■ HTML Seite wird geladen
■ Daten werden in Formular eingegeben
■ Daten werden zum Server geschickt■ nächste HTML Seite wird geladen, usw.
■ Ajax Modell■ HTML Seite wird geladen
■ Daten werden in Formular eingegeben
■ schon während/nach der Eingabe werden die Datenvia Java Script zum Server geschickt und validiert
■ Vorteile
■ verbesserte Benutzerfreundlichkeit
■ in Summe weniger Datentransfer■ Nachteile
■ verschiedene Technologien beherrschen
■ Unterschiede der Java Script Impl. im Browser
23© 2007 InIT / School of Engineering
Technologie für Data Provider: Kombination
■ Kombination von Google Maps mit Ajax
■ Flugspuren■ werden mittels Ajax vom Server nachgeladen■ als Google Maps Polylines dargestellt■ Flughöhe bestimmt Farbe; standard Polylines unterstützen keine
Farbverläufe
■ Performance im Browser (beim Client)■ leidet stark je mehr Polyline-Fragmente auf der Karte eingezeichnet
werden (nur ca. 200 Fragmente möglich)
24© 2007 InIT / School of Engineering
Probleme: Performance im Browser■ Flugzeuge (+Flugspuren) werden entfernt sobald nicht mehr im Sichtfeld
■ Anzahl Stützpunkte für Polylines abhängig von Krümmungsradius
■ Flugspuren werden inkrementell aufgebaut
■ Extrapolierte Punkte setzen und später ersetzen durch interpolierte
■ NEU von Google: Server Side Rendering (aber dadurch höhere Anforderung anServer/Netzwerk)
25© 2007 InIT / School of Engineering
Server Performance
■ Viele (Ajax) Anfragen an Server (mehrere 100 pro Sekunde)
■ Zur Zeit auf einem einzelnen Server■ 2 Xeon Quadcode 1.86 GHertz, 8 GB Memory, 4 *300 GB SAS RAID
■ Massnahmen:■ Cluster Architektur mit 4 VMs:1 Apache Frontend, z.Z. 2 Tomcat Backends, 1 Data
Collector und DB
■ Trennung von statischen und dynamischen Daten -> weniger Last auf Backend
■ Vereinheitlichung der Anfragen, Frontend-Caching kann greifen
■ ….
■ Hohe Schwankungsrate (kurzzeitig 80% der Schulnetz-Bandbreite)■ Traffic Shaper, mod_bw und adaptive Updaterate (noch nicht implementiert)
26© 2007 InIT / School of Engineering
Weitere zu lösende Probleme
■ Nicht alle Flugzeuge mit Mode-S Transponder ausgerüstet (ca 80%)
■ Erkennung von Mode-A/C Signalen und Triangulation mit 3 Empfängern (DA 08)
■ An gewissen Orten kein Empfang (z.B. Südanflug)
■ Lösung: zweiter besser positionierter Empfänger (z.B. ETH Hönggerberg)
■ Zuordnung der Daten für Mashup (ICAO - IATA Problematik)
■ Lösung: Flugpläne und bessere Heuristiken
27© 2007 InIT / School of Engineering
Ausblick
TagesverlaufFlugspuren
WetterRegen / Wind
Globaler FlugverkehrTechnorama
ZH GISals GoogleMapsOverlay
28© 2007 InIT / School of Engineering
Web-Applikation - Demohttp://radar.zhaw.ch
29© 2007 InIT / School of Engineering
Fragen?
oder später auch
karl.rege <at> zhaw.ch