Implementierung

Aufgepasst! Unten auf dieser Seite finden Sie ein Video, dass einen kleinen praktischen Teil dieser Arbeit demonstriert!

ArcGIS for Server inklusive der GeoEvent Extension wurde auf einer virtuellen Maschine mit dem Betriebssystem Microsoft Windows Server 2012 R2 Standard in der 64-Bit-Version und 8GB Arbeitsspeicher installiert. Innerhalb des Netzwerks der Hochschule für Technik und Wirtschaft Dresden bzw. über eine VPN-Verbindung ist die virtuelle Maschine aufrufbar. Die Verbindung zur virtuellen Maschine kann über eine Remotedesktopverbindung hergestellt werden.
Die Installation von ArcGIS for Server wurde nach der Anleitung aus dem Modul Geodatenmanagement des Studiengangs Geoinformatik und Management durchgeführt. Anschließend wurde die GeoEvent Extension nach den Installationsanweisungen von Esri installiert. Zusätzlich wird empfohlen, den ArcGIS Web-Adaptor zu installieren, der eine Verknüpfung zwischen ArcGIS Server und dem vorinstallierten Webserver schafft, sodass ArcGIS for Server einfach unter folgender URL: http://{ip_der_vm}/arcgis/manager aufrufbar ist. Der ArcGIS GeoEvent Manager kann über die URL: https://{ip_der_vm}:6143/geoevent/manager erreicht werden.

Vor der Konfiguration des GeoEvent Services wurde ein Feature Service mit Hilfe von ArcMap, in ArcGIS for Server veröffentlicht. Die Speicherung des Feature Service erfolgt in einer PostgeSQL-Datenbank, die im GeoEvent Manager registriert werden muss. Für die räumlichen Vergleiche der GeoEvents mit den GeoFences werden diese vom GeoFence-Layer des Feature Service in den GeoEvent Manager importiert. Außerdem war zu überprüfen, ob die benötigten Ports für den Input der Daten durch die Firewall freigegeben waren. Mangels eines Sensors, der mit der GeoEvent Extension kommunizieren kann, wurden im Rahmen dieser Arbeit nur Testdaten verwendet, die in den vorinstallierten GeoEvent Simulator geladen wurden. Der GeoEvent Simulator bietet dem Nutzer die Möglichkeit, einen echten Sensor nachzuahmen, indem eine CSV-Datei mit Testdatensätzen eingeladen wird. Der Simulator sendet in einem vom Nutzer bestimmten Intervall die Daten an eine bestimmte IP-Adresse und Port.

GeoEventService

Basierend auf den Überlegungen des Entwurfs zum GeoEvent Service wurden die einzelnen Aktionen des Aktivitätsdiagramms den verfügbaren Elementen der GeoEvent Extension zugeordnet. So ist für den Empfang der Daten ein Input-Konnektor (siehe Abbildung „Dresden_In“) hinzugefügt worden, der einen bestimmten Port überwacht und die dort ankommenden Daten an die restlichen Komponenten des Services, nach der Zuweisung einer bestimmten GeoEvent Definition, weiterleitet. Der Input-Konnektor erzeugt aus den empfangenen Daten die GeoEvents, die anschließend von den Prozessoren analysiert und verändert werden. Für die Berechnung der Geschwindigkeit aus der Distanz zum vorherigen Event und der vergangenen Zeit, wurde auf den „Motion Calculator Processor“ zurückgegriffen. Der „Motion Calculator Processor“ wurde vom GeoEvent Team entwickelt und in der ArcGIS GeoEvent Gallery zur Verfügung gestellt. Dieser Prozessor ist in der Lage die Entfernung, Zeitspanne, Höhe, Geschwindigkeit, Beschleunigung, Richtung und einige Statistiken aus GeoEvents zu kalkulieren. Danach werden Felder, die bei der weiteren Verarbeitung nicht benötigt werden, durch einen „Field Reducer“ entfernt. Die zu entfernenden Felder werden in einer kommaseparierten Liste eingegeben. Da die GeoEvent Definitions der beiden soeben beschriebenen Prozessoren „Motion Calculator“ und „Field Reducer“ nur temporär sind, werden die Felder der GeoEvents einer benutzerdefinierten GeoEvent Definition zugeordnet. Zum Zeitpunkt der Arbeit sind nur die Felder Objekt-ID, die bei der Erzeugung der GeoEvents automatisch hinzugefügt wird, Sensor-ID, Zeit, Geometrie und die Geschwindigkeit implementiert wurden. Die Umsetzung der Zuordnung der Felder wird mit einem „Field Mapper“ realisiert. Da nun die GeoEvents auf die anschließenden Analysen vorbereitet sind, werden sie an die jeweiligen Prozessoren weitergeleitet. In der Bedienoberfläche wird der „Field Mapper“ mit jedem Prozessor verknüpft, wobei jeder Prozessor für die jeweilige Aktion steht. Die GeoEvents für die Darstellung in einem Kartenclient werden direkt zu einem Output-Konnektor gesendet. In diesem Fall werden die GeoEvents sowohl an einen Stream Service als auch an einen Feature Service gesendet. Für das Prüfen ob eine bestimmte Bedingung eintritt, werden „Incident-Detector“ Prozessoren verwendet. Dies ist der Fall bei folgenden Aktionen:

Für die Aktionen des Prüfens der Geschwindigkeit und dem Prüfen ob ein GeoFence betreten oder verlassen wurde, ist für den Output-Konnektor die Position des GeoEvents notwendig. Beim Prüfen der Geschwindigkeit wird die aktuelle mit der erlaubten bzw. eingestellten Geschwindigkeit verglichen. Sollte die Geschwindigkeit des GeoEvents über der erlaubten liegen, dann wird im Incident-Prozessor ein GeoEvent erzeugt. Dieses Event wird anschließend zu einem „Update a Feature“-Output-Konnektor geleitet. Der gleiche Output-Konnektor wird bei dem räumlichen Vergleich der GeoFences mit den GeoEvents verwendet. Im Gegensatz zu der vorherigen Aktion ist die Referenz dieses Mal kein Wert, sondern eine Geometrie zu der die topologische Beziehung, bzw. die Änderung dieser, bestimmt wird. Aufgrund des Geometrietyps der GeoFences (Polygon) sowie dem Geometrietyp der GeoEvents (Point) werden die Filter: „ENTER“ und „EXIT“ in je einem Incident-Prozessor verwendet. Auch die an dieser Stelle entstehenden Benachrichtigungen werden an den bereits vorhandenen „Update a Feature“ Output-Konnektor gesendet. Eine farbliche Differenzierung der verschiedenen Events kann durch unterschiedliche eindeutige Attribute erreicht werden. Zum Beispiel kann für jeden der drei Incident-Prozessoren ein anderer Benachrichtigungstyp festgelegt werden. Der Output-Konnektor, für diese drei Prozessoren, sendet die Incident-Events (mit Positionsinformationen) an den Feature Service. Die Events werden im Benachrichtigungs-Layer des Feature Service gespeichert. Ein Stream Service wird für das Anzeigen der aktuellen Positionen verwendet (in Abbildung „Dresden_Stream_out“). Dabei werden, die direkt vom „Field Mapper“ kommenden, GeoEvents an den „Senden der Daten an einen Stream Service“-Output-Konnektor weitergeleitet. Außerdem werden die Positionen im Positions-Layer des veröffentlichten Feature Service gespeichert.


Zum Video:

  1. Im ersten Moment ist der GeoEventSimulator zu sehen. Mit Hilfe diesem werden Testdaten an einen beliebigen Socket (IP-Adresse + Port) geschickt.
  2. Die zweite Übersicht ist die Ansicht des Geo Event Monitors im GeoEvent Manager der GeoEvent Extension. In diesem Monitor lassen sich die konfigurierten Services, Input-Konnektor und Output-Konnektor überwachen. Es sind hereinkommende und verlassende GeoEvents erkennbar.
  3. Als nächstes ist der Karten-Client zusehen. In diesem Fall wurde in ArcGIS Online eine Karte erstellt und die Layer des Feature-Service eingebunden.
    • Benachrichtigungs-Layer: Benachrichtigungen werden durch Dreiecke dargestellt.
      (Grün - Geschwindigkeitsbegrenzung; Rot - Betreten eines GeoFence; Blau - Verlassen eines GeoFence)
    • Positions-Layer:
      Die schwarz dargestellten Punkte
    • GeoFence-Layer:
      Blaues Polygon (Bereich der HTW)
    Jeder dieser Layer wird aller 6 Sekunden aktualisiert. Ein schnelleres Abfragen durch den Client ist leider nicht möglich. Für das Anzeigen der aktuellen Position wurde zusätzlich der angelegte Stream-Service abonniert.
    • Stream-Service: Darstellung durch blauen Punkt