Geschichte Motivation und Herausforderungen -...

Preview:

Citation preview

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

Recommended