Monitoring von System- und Anlagendaten auf mobilen Geräten (Teil 4)

Zum Abschluss der Artikelserie befassen wir uns mit einigen wiederkehrenden Anforderungen an die Architektur einer App und diskutieren Lösungsmöglichkeiten für diese. Konkret geht es um zwei Themen. Erstens um die Synchronisation von Anwendungsdaten zwischen einer zentralen Serverkomponente und vielen mobilen Endgeräten und zweitens um das Senden von Push-Benachrichtigungen, ebenfalls von einer zentralen Serverkomponente, an mehrere Clients.

Jede App, die mit einer zentralen Serverkomponente Daten austauscht, steht vor einem Problem, wenn sie die Verbindung zum Server verliert und damit offline geht. Die einfachste aller Vorgehensweisen hierfür ist, dass die App nicht mehr verwendet werden kann, solange die Verbindung zum Server nicht mehr besteht. Aus Sicht des Benutzers ist dies allerdings nicht wünschenswert. Noch schlimmer ist es, wenn durch Verlust der Verbindung zum Server auch Benutzereingaben verloren gehen oder gerade ausgeführte Workflows unterbrochen werden. Um die App auch offline verwenden zu können, muss es einen lokalen Datenstand geben. Die App kann so auch ohne permanente Verbindung zum Server sinnvoll benutzt werden. Die zentrale Verwaltung der Daten findet jedoch weiterhin auf einem Server statt.

Um die beiden getrennten Datenstände konsistent zu halten, muss es einen Synchronisationsmechanismus geben. Dieser muss in beide Richtungen funktionieren, also sowohl vom Server zur App, als auch von der App zum Server. Gab es bspw. Änderungen auf dem Server während ein Client offline war, werden diese auf den Client synchronisiert, sobald dieser wieder erreichbar ist. Analog dazu werden Änderungen, die in der App im Offline-Zustand gemacht wurden, bei Wiederverfügbarkeit auch an den Server übertragen. Hier gibt es bereits bestehende Komponenten, die bei der Entwicklung einer App verwendetet werden können. Es gibt Möglichkeiten, die Serverkomponente bei einem Anbieter zu hosten. Alternativ kann die benötigte Infrastruktur auch selbst betrieben werden.

Eine weitere wiederkehrende Anforderung, die es auf technologischer und architektonischer Ebene zu lösen gilt, ist die Umsetzung von Push-Benachrichtigungen. Aus der Sicht eines Benutzers ist diese im Grunde genommen eine Mitteilung darüber, dass für eine bestimmte Applikation neue Daten anliegen. Ausgelöst wird dieses Ereignis meist von einer Serverkomponente. Um die Benachrichtigung an die Clients zu übertragen, gibt es verschiedenen Services. Diese sind plattformabhängig, z.B. Google Cloud Messaging für Android und Apple Push Notifications für iOS. Hier bietet sich die Verwendung einer Komponente zur Abstraktion der unterschiedlichen Schnittstellen an. Dadurch kann eine einzige Schnittstelle verwendet werden, über die alle Clients, unabhängig von deren Plattform, benachrichtigt werden können.

Im Rahmen der Artikelserie haben wir uns mit verschieden Aspekten im Bereich des Monitorings von System- und Anlagendaten auf mobilen Geräten befasst. Angefangen bei der Einordnung von mobilen Anwendungen im industriellen Umfeld, über konkrete Anwendungsszenarien, bis hin zu den Grundsatzentscheidungen, die vor der Entwicklung getroffen werden müssen. Zusammenfassend lässt sich sagen, dass es im System- und Anlagenumfeld vielfältige Möglichkeiten für den Einsatz mobiler Anwendungen gibt. Bei der Entwicklung einer App sollte allerdings im Vorfeld eine genaue Analyse des Anwendungsszenarios stattfinden, um die notwendigen Entscheidungen in Sachen Technologie und Architektur passend zu ihrem Anwendungsfall treffen zu können.

Sprechen Sie uns an und schildern Sie uns Ihre Anforderungen. Wir finden die für Sie passende Lösung und setzen diese für Sie um.

Kontakt:
Stefan Höfler
Software Developer, Business Unit Software Applications
E-Mail shr@mm-software.com

Author: Stefan Höfler, Software Developer