Da unser Bürohaus gleich neben dem Bahnhof Stadelhofen liegt, erreicht man die S-Bahn in einer Minute. Wenn man nun schon am Schreibtisch wüsste, dass der Zug Verspätung hat, könnte man also noch etwas länger sitzen bleiben. Und so eine Nachricht wäre sicher auch nützlich, wenn man an einem anderen Ort unterwegs ist…
S-Bahn vor der Erfindung von Smartphones 😉
Da mein iPod auch bei längeren Wartezeiten zuverlässig für gute Unterhaltung sorgt, muss ich zugeben, dass mir die paar Minuten Wartezeit auf einen verspäteten Zug nichts ausmachen. Ausserdem gibt es schon nette Apps der SBB, welche einen über die Verspätungen ausgewählter Züge (und vieles mehr) informieren. Als Übungsanlage für unseren internen Creativity Day war die Aufgabenstellung oben aber ganz gut geeignet, um einige Dinge auszuprobieren: Event-Verarbeitung in FME Server, Azure, Pushover,…
FME ist eine Software zur Format-Umwandlung, Prozessierung und Überprüfung von räumlichen und nicht räumlichen Daten. Format- und Modelltransformationen können in sogenannten Workspaces definiert werden. Zur Transformation von Daten führt man den Workspace entweder in einer Desktop-Applikation (FME Desktop) oder auf einem FME Server aus.
In der Vergangenheit konnten Workspaces in FME Server entweder durch eine Benutzerinteraktion oder zu vordefinierten Zeiten gestartet werden. Seit FME Server 2012 ist es möglich, die Ausführung von Workspaces durch Ereignisse auslösen zu lassen. So ein Ereignis kann alles mögliche sein: ein Messwert eines Sensors, die Positionsmeldung einer Smartphone-App aber auch eine einfache E-Mail. FME Server unterstützt verschiedene Protokolle, über welche Ereignisse übermittelt werden können. Davon ist HTTP wohl für viele Anwendungen die naheliegendste Lösung.
Für die Abfrage der Verspätungsmeldungen haben wir einen recht einfachen Workspace entwickelt. Zuerst ermitteln wir die nächste ÖV-Haltestelle zu einem Punkt, der in unserem Fall die Positionsmeldung eines Smartphones ist. Mit dieser Information fragen wir den Dienst transport.opendata.ch ab (weitere Infos), um den Fahrplan bzw. die Verspätungsmeldungen für diese Station zu bekommen. Wenn Verspätungsmeldungen vorliegen schicken wir diese per Push-Nachricht an das Smartphone. Dafür haben wir den Dienst Pushover genutzt.
Aus unserer Sicht stechen vor allem zwei Stärken der Event-Prozessierung mit FME Server hervor: Einerseits können Ereignisse mit einem Raumbezug sehr einfach verarbeitet werden, da die ganze Palette von FME-Werkzeugen zur Verfügung steht. Andererseits ist ist die Entwicklungszeit sehr kurz: Für den oben beschriebenen Prototypen haben wir rund einen Tag aufgewendet, wobei in diesem Aufwand der Aufbau der Infrastruktur enthalten ist.
Potenzial für den FME-Einsatz sehen wir vor allem bei Fragestellungen mit Geofencing. Der „Geofence“ – ein virtueller Zaun – definiert dabei ein bestimmtes Gebiet. Wenn darin ein bestimmtes Ereignis auftritt, löst dies eine Aktion aus. Beispielsweise kann ein System eine Benachrichtigung senden, wenn ein Objekt den Geofence betritt oder verlässt.
Übrigens: Esri unterstützt ab ArcGIS 10.2 ebenfalls Events. Darüber berichten wir vielleicht zu einem späteren Zeitpunkt mal.
PS 1: Many thanks to Safe: Firstly for providing us with a demo license to try out events and notifications in FME Server ourselves. Secondly to Steve from the Safe support team for providing us with a very quick answer to a configuration issue.
PS 2: Zum Schluss noch eine kleine Werbung in eigener Sache: Ich wurde von Safe als „FME Certified Professional“ zertifiziert.