# AIS Service ___ ## Übersicht ### Architektur Entwurf ![Übersichtsbild der geplanten Architektur](architektur.jpg "Architektur") ### Web - "Laufzettel" In der Übersicht nur Daten aus der Datenbank, vorerst keine Daten aus Wetris. Überlegungen: - Wie können ein- bzw. ausgehende Schiffe erkannt werden? - Nach "langer" Zeit wird ein Alarm im "Randgebiet" erkannt. Je nach Anfang/Ende ist es ein eingehender oder ausgehender Anlauf. - Muss ein Anlauf getrackt werden oder reicht eine "Menge" an Alarmen? - Das Datenmodell muss den Anlauf vermutlich abbilden, aber in der DB reichen vermutlich die Alarme. - Wann erreicht ein Schiff die Zone? (aka, wann wird der Alarm ausgelöst) - kein aktueller Alarm für die Zone __und__ - Die Position wird bereits für n Sekunden innerhalb der Zone reported (avoid jitter) - Im Alarm muss gespeichert werden, wann 1) die Zone "zuerst" erreicht wurde 2) der Zeitpunkt des letzten Reports innerhalb der Zone 3) keine Referenz sondern Kopie der Position/Timestamp? - Alarm / Zuordnung sind unabhängig von der Gruppe. Die Gruppe / der Zulauf ergibt sich erst in der Webanwendung. (Ist das sinnvoll?) - Für die Abfrage in der Gruppe der Zonen Außenweser/Binnenweser: Jeweils "neuester" Alarm: - wenn kein weiterer Alarm: o : unspezifisch - wenn vorh. Alarm in Zone mit niedrigere Seq : <- eingehend - wenn vorh. Alarm in Zone mit höherer Seq : -> abgehend ## Stand Dez 22 Nächste geplante Schritte: - Gebiete müssen einer Gruppe zugeordnet werden, damit wir Laufzettel für mehrere getrennte, aufeinanderfolgende Gebiete erstellen können (z.B. Weser und Elbe). - Erstellung eines AIS-Admin Tools, um Gebiete zu verwalten (KML Import, Löschen, Zuweisen von MMSI/IMO zu den Gebieten). Das Tool kann nur auf dem Server verwendet werden (obviously) und wird der Einfachheit halber einfach ein Winforms Projekt. - Verbesserte HTML Übersicht analog zu dem Laufzettel (Einfahrtzeit in die Gebiete) ![Aktueller Laufzettel](AnalogerLaufzettel.jpg "Laufzettel") ## Stand Sep/Okt.22 Entscheidung, den leidlich laufenden AIS Service zu verbessern, da aktiv nicht mehr an WETRIS weitergearbeitet wird. Aufgaben: * Prüfen und Debuggen des aktuellen Stands (sinnvoll?) * Anlage einer neuen, effizienteren Datenbankstruktur (kein SQL Server!) * Vollständige Implementierung aller Telegramm-Arten * verbesserte Architektur (s.u. Bild) * Webservice-Endpunkt, der aktuelle Lage als Liste liefert * Zonen Alarm * Einfaches Frontend zur Einrichtung von Zonen * (Backup) Evaluierung alternativer Datenquellen ## Referenzen * [NMEA 0183](https://de.wikipedia.org/wiki/NMEA_0183) * [AIS Wikipedia](https://en.wikipedia.org/wiki/Automatic_identification_system) * [AIVDM/AIVDO protocol decoding](https://gpsd.gitlab.io/gpsd/AIVDM.html) * [AIS Documentation (PDF)](itu-m.1371-4-201004.pdf)