Was versteht man unter Interoperabilität von Simulatoren?
Interoparabilität von Simulatoren dient dem Training komplexer Szenarien im Verbund. Es ist der Austausch von
Begegungsdaten (z.B. Flugzeugdynamik) und Status (z.B. Fahrwerk ein/aus)
Audiodaten (z.B. Sprechfunk)
Audio/Videodaten (z.B. Instructor, Operator, Überwachung)
über Vernetzungsstandards:
DIS (UDP Broad-/Multicast)
HLA (Middleware, RTI, OOP)
=> Das Zusammenwirken von Simulatoren
Was versteht man unter Vernetzung dislozierter Systeme?
Es ist die Zusammenschaltung von örtlich verteilten Simulatoren und beteiligter IT zu einem Simulations- und Trainignsverbund über ein Wide-Area-Network (WAN) oder ein Local-Area-Network (LAN).
Was bedeutet die Abkürzung OOP?
Objektorientierte Programmierung
Was ist eine Klasse im Zusammenhang mit OOP?
Eine Klasse ist eine Zusammenfassung von:
Daten = Attributen = Eigenschaften = Member Variables
Member Variables
Funktionen = Operationen = Methoden = Member Functions
Member Functions
Einteilung in public, protected und private Members
public
protected
private
Was ist ein Objekt im Zusammenhang mit OOP?
Ein Objekt (oder auch Instanz) ist eine Ausprägung einer Klasse.
Beispiel:
LINE 1: #include “myClass.h”Importieren der Klasse
LINE 1: #include “myClass.h”
LINE 2: myClass meineKlasse;Erstellen einer Instanz der Klasse myClass mit dem Namen meineKlasse.
LINE 2: myClass meineKlasse;
myClass
meineKlasse
Was ist Vererbung im Zusammenhang mit OOP?
Vererbung bedeutet, dass es eine Basisklasse gibt, die von einer abgeleiteten Klasse erweitert oder eingeschränkt wird.
Dies ermöglicht:
Wiederverwendbarkeit von Klassen
Übernahme der Atribute und Methoden der Basisklasse
class childClass: public ParentClass {…};
Nennen Sie einen der Hauptvorteile von OOP?
Der Hauptvorteil von OOP ist die Wiederverwendbarkeit und Datenabstraktion von Klassen durch sog. Vererbung
Skizzieren Sie die Funktionsweise einer verteilten Simulation mit Shared Memory.
Shared Memory ermöglicht es mehreren Programmen auf einen gemeinsamen Speicher zuzgreifen.
Siehe Bild Folie 3 - mit RAM Stack
Welche Grundfunktionen benötigt eine Shared Memory Schnittstelle?
Erzeugen create()
Verbinden connect()
Write ()
Read()
Disconnect()
Clear()
Was bedeutet Betriebssystem-spezifisch im Kontext Programmierung?
Es bedeutet, dass bestimmte Funktionen von verschiedenen Betrisbsystemen unterschiedlich gehandhabt werden und nicht zwingend zueinander kompatibel sind.
Nennen Sie die Vor- und Nachteile einer verteilten Simulation mit Shared Memory.
Vorteile:
Einfache Programmierung
Hochperformant
gut für zyklische Daten
Auf allen OS verfügbar
Nachteile:
Betriebssystemspezifisch
Bedingt geeignet für zeitdiskrete Ereignisse
nicht Netzwerkfähig
keine Standardisierte Datenschnittstelle
Was bedeutet die Abkürzung UDP?
Ein sog. verbindungsloses Protokoll zur Übermittlung von Datagrammen
Was versteht man unter einem verbindungslosen Protokoll?
Ein verbindungsloses Protokoll ist
unzuverlässig
Datagramme können verloren gehen
unsortiert
Reihenfolge der Datagramme kann nicht garantiert werden
ungeschützt
Daten können verfälscht werden
Das verbindungslose Protokoll kann nicht sicherstellen, dass die gesendeten Daten auch empfangen werden.
Erklären Sie die Begriffe Unicast, Multicast und Broadcast.
Unicast
Nachricht an einen bestimmten Host
Multicast
Nachricht an eine Gruppe von Hosts
Broadcast
Nachricht an alle Hosts
Welche Netzwerkmethoden benötigt ein UDP-Sender?
Ein Sender benötigt im wesentlichen die folgenden Methoden:
writeDatagram() - Methode zum senden
writeDatagram()
Socket - Schnittstelle
Socket
netinit() - Win32 Methode für Netzwerkfunktionen
netinit()
netcleanup() - Win32 Methode zum beenden von Netzwerkfunktionen
netcleanup()
Die Methoden netinit() und netcleanup() werden von Windows NT-Systemen durch die Bibliothek wsock32.lib zur Verfügung gestellt.
Windows NT
wsock32.lib
Welche Netzwerkmethoden benötigt ein UDP-Empfänger?
Ein Empfänger benötigt im wesentlichen die folgenden Methoden:
readDatagram() - Methode zum Empfangen
readDatagram()
bind() - Methode zum “binden” an einen Port
bind()
Skizzieren Sie die Funktionsweise einer verteilten Simulation mit UDP.
Bei einer verteilten Simulation mittels UDP stellt ein System über UDP Daten in Form von Datagrammen bereit.
Diese können von einem oder mehreren Empfängern (Uni-, Multi- oder Broadcast) empfangen werden.
Eine Rückmldung an den Sender findet nicht statt.
Skizzieren Sie den Ablaufplan eines UDP-Senders.
Create Socket
writeDatagramm()
Skizzieren Sie den Ablaufplan eines UDP-Empfängers.
if(recv = readDatagram() > 0)
Diskutieren Sie die Vor- und Nachteile des UDP-Protokolls.
Netzwerkfähig
Performant - schnell, ideal für zeitkritische Anwendungen
Verfügbarkeit: auf allen Betriebssystemen verfügbar
Verbindungslos: Bootreihenfolge Server/Client egal
System-spezifisch: Windows != Linux
Datagramme können fehlerhaft ankommen
Was bedeutet die Abkürzung TCP?
TCP ist eine bidirektionale Verbindung zwischen zwei Endpunkten.
Skizzieren Sie den Ablaufplan eines TCP-Clients.
WinSocket initialisieren
WinSocket
TCPSocket anfordern
TCPSocket
connect mit Server
connect
send/recv - Daten übermitteln
send
recv
WinSocket beenden
Skizzieren Sie den Ablaufplan eines TCP-Servers.
bind - an Port “binden”
bind
listen - Warteschlange konfigurieren
listen
accept - Warten auf Client-Verbindungswunsch
accept
send/recv - Daten übertragen
auf neue Verbindung warten
Welche Netzwerkmethoden benötigt ein TCP-Client?
TCPSocket - initialisieren
connect() - Verbinden mit Server
connect()
Wleche Netzwerkmethoden benötigt ein TCP-Server?
bind() - an Port “binden”
listen() - Warteschlange konfigurieren
listen()
accept() - neue Verbindung akzeptieren
accept()
send()/recv() - Daten übermitteln
send()
recv()
Diskutieren Sie die Vor- und Nachteile des TCP-Protokolls.
Bidirketionale Verbindung - sicherstellen das Empfänger bereit ist
Sortiert - Reihenfolge der Daten ist gewährleistet
Fehlererkennung - Fehler können erkannt werden (Checksum)
häufigste Verwendung (z.B. Webserver)
Etwas langsamer als UDP
festgelegte Startreihenfolge Server(1)/Client(2)
Aufwändiger zu Programmieren
TCP ist eher geeignet für zeitdiskrete Daten.
Wofür stehen die Abkürzungen DIS und PDU?
DIS ist ein Standard für den Datenaustausch zwischen Simulatoren in Echtzeit.
PDU sind standardisierte Nachrichten die über einen Header und Data - Bereich verfügen. PDU sind Bestandteil von DIS.
Header
Data
Was ist eine PDU? Nennen Sie exemplarisch vier PDUs.
Eine PDU ist eine Protocol Data Unit, also eine standardisierte Nachricht zur Informationsübertragung zwischen Simulatoren.
Beispiele für PDUs:
Entity State PDU
Information über Zustand einer Entität (Typ, Position, Geschwindigkeit, …)
Fire PDU
Detonation PDU
Collision PDU
Shutdown PDU
Auf welchem Low-Level Netzwerkprotokoll basiert DIS?
Der Distributed Interactive Simulation - Standard basiert auf dem UDP-Protokoll.
Zum Einsatz kommen vor allem:
UDP Mulitcast
UDP Broadcast (255.255.255.255)
Aus welchen Bestandteilen besteht die Entity State PDU?
Identification of the entity that issued the PDU
Identification of the force to which the entity belongs
Specific entity type
Location information:
Location with respect to the world
Velocity
Orientation
Information required for representing entitys appearance
Apperance (normal, on fire, smoking, dust cloud)
Markings
presence of parts, variable parameters
Capabilites of the entity
Resupply
Repair
Welche Information wird im Entity Identifier Record hinterlegt?
32 Bit: Simulation Adress
16 Bit (unsigned): Site Number
16 Bit (unsigned): Application Number
16 Bit: Entity Number
Welche Information wird im Entity Type Record hinterlegt?
8 Bit: Enitity Kind
8 Bit: Domain
16 Bit: Country
8 Bit: Category
8 Bit: Subcategory
8 Bit: Specific
8 Bit: Extra
(1,2,78,40,14,0,0) => (Platform, Air, Germany, Trainer, Beech, None, None )
(1,2,78,40,14,0,0)
(Platform, Air, Germany, Trainer, Beech, None, None )
Berechnen Sie die notwendige Datenrate für das zyklische Übertragen einer Entity State PDU der Größe 1152 Bit im 20ms Takt. Wie groß ist die Netzwerklast bei einer verteilten Simulation mit insgesamt 20 Entitäten?
Entity State: 1152 Bit
Abtastrate: 20ms -> 1/0,02s = 50 Hz
Übertragungsrate: 50Hz * 1152 Bit => 57.600 Bit/s
20 Entitäten: 20 * 57.600 Bit/s = 1.152.000 Bit/s -> 1,15 MBit/s
Somit ist eine Datenrate von 1.152.000 Bit/s nötig.
Erklären Sie den Begriff “Dead Reckoning”.
Zur Reduktion der notwendigen Datenrate wird das sog. Dead Reckoning benutzt.
Es approximiert den zukünftigen Verlauf mittels Dead Reckoning Model (DRM) auf Sender- / Empfängerseite.
Die Daten werden seltener abgeglichen und die übergänge mittels PT1- Filter gegättet.
Diskutieren Sie die Vor- und Nachteile des DIS-Standards.
keine zentrale Komponente nötig
Robust, verbindungsloses Protokoll
Einfache Inbetriebnahme
kostengünstig
hohe Netzwerklast
Objektmodell sehr starr, Änderungen nur schwer möglich -> Änderung an allen Simulatoren nötig
Wofür stehen die Abkürzungen HLA und RTI?
Es ist ein “nachfolger” von DIS, das auf einer zentralen Komponente, der RTI, beruht.
Zentrale Systemkomponente im HLA-System. Es überwacht den Simulationsablauf und verteilt die Daten mittels TCP und UDP.
Erläutern Sie die Begriffe “Föderate” und “Föderation”.
Föderate
Föderate sind Einzelsimulationen, also einzelne Kopmonenten innerhalb einer Gesamtsimulation, der sog. Föderation. (z.B. eine BO-105 oder ein 2D/3D - Viewer)
Föderation
Die Föderation ist die Gesamtheit aller Einzelsimulationen. Also der Zusammenschluss aller Einzelkomponenten.
Welche Aufgaben übernimmt die RTI?
Die Run-Time Infrastructure:
überwacht den Simulationsablauf.
verteilt die Daten an die Einzelsimulationen.
kommuniziert über TCP / UDP.
Das Föderat nutzt den sog. publish um Daten an diem RTI zu senden. Die RTI nutzt den sog. subscribe um die Daten an die Föderate zu senden.
publish
subscribe
Was wird mit einem FOM definiert?
FOM sind standardisierte Beschreibungen welche Informationen zwischen Föderaten ausgetauscht wird.
Dabei kommt der Objektorientierte Ansatz von HLA zum tragen.
Wofür steht die Abkürzung RPR-FOM?
Nennen Sie ein Beispiel für eine Objektklasse aus dem RPR-FOM.
BaseEntity.PhysicalEntity.Platform.Aircraft
…
Nennen Sie ein Beispiel für eine Interaktionsklasse aus dem RPR-FOM.
WeaponFire
MunitionDetonation
Welche Funktion übernimmt das Audiologikmodell?
Wirkt auf der Empfängerseite
Entscheidet ob und wie gut der Audiostream hörbar ist
Wie werden in der HLA Sprachdaten übertragen?
Serialisierter Audiostream
Als Folge Von HLA Daten als RadioSignal.EncodedAudioRadioSignal
Skizzieren Sie einen Simulationsverbund bestehend aus 4 Simulatoren welche über HLA miteinander kommunizieren.
Diskutieren Sie die Vor- und Nachteile des HLA-Standards.
gute Netzwerkausnutzung
FOM durch Vererbung gut erweiterbar
In RTI sind alle Daten verfügbar, z.B. zur Überwachung, Diagnose, Logging
Kommerzielle RTI teuer
Komplexe Installation
Programmierung der Föderate aufwändig
Gegeben ist die Klasse MyAircraft. Erzeugen Sie ein Objekt der Klasse ExEntity.
MyAircraft
ExEntity
ExEntity myAircraft;
Gegeben ist die Klasse MyAircraft. Setzen Sie die Objekteigenschaft id auf den Wert 5 .
id
5
myAircraft.setId(5);
Gegeben ist die Klasse MyAircraft. Verwenden Sie die Methode getSpeed() zum Abfragen der Geschwindigkeit. Geben Sie das Ergebnis mit cout auf dem Bildschrim aus.
getSpeed()
cout
double speed = myAircraft.getSpeed();
cout << “Geschwindigkeit: “ << speed << endl;
Gegeben ist die Klasse MyAircraft. Rufen Sie die Methoden draw() und move() auf.
draw()
move()
myAircraft.draw();
myAircraft.move();
Was bewirkt die Anweisung class ExEntity: public Entity {…};?
class ExEntity: public Entity {…};
Die Klasse ExEntity erweitert die Basisklasse Entity
Was bedeutet Serialisieren im Zusammenhang mit verteilter Simulation?
Das Serialisieren überführt eine strukturierte Datenabbildung in eine sequenzielle Darstellung. Dadurch können Daten für die Übermittlung mittels UDP oder TCP vorbereitet werden.
Was ist der Hauptunterschied zwischen dem http und https Protokoll?
http
https
Verschlüsselung - SSL
https: hypertext transfer protocol secure
Nennen Sie drei Beispiele für Client/Serveranwendungen ?
Webserver
E-Mail Server
HLA-Systeme
Welche RTI wurde bei der Vernetzungsübung eingesetzt?
PitchRTI
Für was stehen die Abkürzungen http,https,API,DHCPundDNS?
API
DHCP
DNS
Hypertext Transfer Protocol
Hypertext Transfer Protocol Secure
Application Programming Interface
Domain Name Service
Dynamic Host Control Protocol
Was ist eine IPv4Adresse? Geben Sie ein Beispiel für eine IPv4Adresse an.
IPv4
8.8.8.8 - Google
5 OOP
3 Netzwerkprotokolle
3 DiS
4 HLA
3 Client Server
Zuletzt geändertvor 2 Jahren