Interview mit Susanne Braun

Synchronisation im Zeitalter von Mobile, Cloud und Smart Data
Kommentare

Im Zeitalter von Smart Data, Cloud und Mobile Computing ist die Allgegenwart und Verfügbarkeit von geschäftskritischen Daten selbstverständlich geworden. Doch was bedeutet dies für all die mobilen Geräte, die wir heutzutage als ständige Begleiter bei uns tragen?

Immer mehr setzt sich die Ansicht, ja die Erwartung, durch, dass sich Smartphones in Funklöchern intelligent verhalten und beispielsweise Apps „smooth“ in den Offlinemodus wechseln. Dieser soll dann das weitere Abarbeiten von geschäftskritischen Prozessen sowie die Modifikation der Daten erlauben.

Susanne Braun hat als wissenschaftliche Mitarbeiterin am Fraunhofer Institut für Experimentelles Software Engineering in Kaiserslautern einen weltweit agierenden Industriekunden bei der Realisierung eines App-Ecosystems begleitet. Eine besondere Herausforderung im Rahmen dieses Projekts stellte die Entwicklung der Offlinefähigkeit sowie eines geeigneten Synchronisationsverfahrens dar. Denn verfügbare Lösungen am Markt sind eher spärlich gesät und meist für komplexe Anwendungsfälle nicht geeignet. Dazu gesellt sich das Problem, dass die Verwendung von existierenden Produkten häufig mit erheblichen Risiken verbunden gewesen wäre. Worauf man bei der Konzeption und Realisierung eines skalierbaren Synchronisationsverfahrens für mobile Daten im Kontext eines App-Ecosystems achten muss, erklärt Susanne Braun in ihrer Session „Nie wieder offline? Synchronisation im Zeitalter von Mobile, Cloud und Smart Data“ auf der diesjährigen MobileTech Conference in München (23. – 26. März). Wir haben uns im Vorfeld mit Susanne Braun unterhalten und sie zu den erwähnten Herausforderungen, Risiken und Lösungsansätzen befragt.

Warum gibt es eigentlich immer noch so wenige (gute) Lösungen, um Apps auch sinnvoll im Offlinebetrieb zu nutzen?

Susanne Braun: Weil Apps im Offlinebetrieb auf einem Replikat der eigentlichen Datenbank arbeiten und dieses Replikat später wieder mit der eigentlichen Datenbank synchronisiert werden muss. Man hat bereits in den 90er Jahren erkannt, dass replizierte Datenbanken, die den mobilen Offlinebetrieb unterstützen, nicht skalieren, sofern man transaktionale Sicherheit nach den ACID-Prinzipien garantieren möchte. Diese Problematik gibt es auch in anderen Anwendungsbereichen, und aus diesem Grund gibt es einen berechtigten Trend hin zu NoSQL-Datenbanken, die deutlich schwächere Konsistenzlevel wie BASE anbieten. Dies bedeutet aber auch, dass man entweder zur Laufzeit Anomalien, die durch Nebenläufigkeit und Offlinebetrieb entstehen können, in Kauf nimmt oder dass man diese in der Applikation behandeln muss. Dies hat zur Folge, dass entweder die Usability leidet oder die eigentliche Applikation um einiges komplexer und damit schwieriger zu implementieren sein wird. Es bedeutet aber auch, dass es keine fertige Lösung geben kann, die für alle Anwendungen optimal in Bezug auf Skalierbarkeit, Konsistenz und Usability ist. Beim Design und der Realisierung eines Synchronisationsverfahrens für ein mobiles App Ecosystem sollten Requirements-Engineers, UX-Engineers und Softwarearchitekten von Anfang an eng zusammenarbeiten, um zu einer guten Lösung zu kommen.

MobileTech-Conference-2015

MobileTech-Conference-2015

Mobile Innovation & Enterprise Mobility Die MobileTech Conference ist die führende Konferenz für Mobile Technologien und Innovation im deutschsprachigen Raum. Als Impulsgeber der Mobile-Branche führt sie erfahrene Experten aus allen Bereichen der mobilen Produktentwicklung zusammen. Den Teilnehmern stehen mehr als 60 international bekannte Experten aus dem Mobile-Umfeld zur Seite, die ihr praktisches Know-how und hilfreiche Tipps weitergeben. Im Fokus des Konferenzprogramms steht die  erfolgreiche Entwicklung und Umsetzung von Mobile Services – sowohl im Consumer- als auch im Enterprise-Umfeld. Vom 23.-26. März findet die MobileTech Con in München statt. Bis heute, den 29. Januar, profitieren Sie noch von attraktiven Frühbucherpreisen. Alle Infos zu Konferenz, Programm und Speakern unter: http://mobiletechcon.de

Bei den wenigen existenten Lösungen bestehen darüber hinaus oft Risiken. Welche sind das und worin liegen sie begründet?

Susanne Braun: Für die Realisierung von Offlinebetrieb und Synchronisation bekommt man häufig die Replikationsprodukte von einigen wenigen Datenbanksystemherstellern angepriesen. Diese Systeme sind komplex und häufig ist im Vorfeld nicht klar, ob sie für den konkreten Anwendungsfall tatsächlich so gut skalieren, wie vom Hersteller versprochen. Dabei ist man normalerweise auch stark auf die Beratungsleistung des jeweiligen Herstellers angewiesen. Bei den neueren NoSQL-Systemen gibt es häufig noch keine klare Vorstellung, wie sich BASE auf den konkreten Anwendungsfall und für verschiedene Concurrency-Szenarien tatsächlich auswirkt. Dies steht in starkem Gegensatz zum üblichen Einsatz der etablierten relationalen Systeme, die derart hohe Isolation und Datenkonsistenz bereitstellen, dass Synchronisation mehr oder weniger vollständig an das Datenbanksystem ausgelagert werden kann und sich Entwickler und Architekten praktisch keine Gedanken darüber machen müssen. Im Vorfeld schwer einschätzbar ist auch, inwieweit die APIs der existierenden Produkte es zulassen die Behandlung von Konflikten sinnvoll mit der Business-Logik zu verzahnen. Und falls dies nicht oder nur eingeschränkt möglich ist, welche Auswirkung hat dies dann auf die Usability? Usability hat im mobilen Umfeld einen sehr hohen Stellenwert und ist ein wichtiges Kriterium für die Akzeptanz einer App. Es gibt bisher beispielsweise auch keine wirklich guten UI-Konzepte für die Behandlung von Änderungskonflikten auf dem mobilen Endgerät. Somit wären Produkte, die die Behandlung von Konflikten ausschließlich auf dem mobilen Client vorsehen, aus unserer Sicht keine guten Kandidaten. Entscheidet man sich für ein NoSQL-System, das mit einem Replikationsfeature ausgestattet ist, wie zum Beispiel Couchbase, so hat man einen starken Lock-In für ein bestimmtes Datenbanksystem im Frontend und im Backend. Diese Datenbanken werden aber von den mobilen Betriebssystemen und den entsprechenden App-Entwicklungsframeworks offiziell gar nicht unterstützt. Gerade im Android-Bereich gibt es eine enorme Vielfalt an Hardware- und Betriebssystemversionen und –varianten. Somit besteht hier auch das Risiko, dass das reibungslose Zusammenspiel zwischen Betriebssystem, App-Entwicklungsframework und Datenbank nicht immer und für die Zukunft gegeben ist. Normalerweise werden Apps auch nicht auf der grünen Wiese entwickelt, sondern stellen Erweiterungen und mobile Clients für bereits bestehenden Anwendung dar. In diesem Fall liegen die Anwendungsdaten schon vor und verteilen sich oft über mehrere verschiedene Datenbanksysteme. Es ist dann meistens gar nicht möglich alle diese Daten in eine neue NoSQL-Datenbank zu migrieren. Agiert die NoSQL-Datenbank lediglich als Cache und Synchronisations-Layer für bereits bestehende Datenbanken, so muss die NoSQL-Datenbank immer noch mit den anderen existierenden Datenbanken synchronisiert werden und man hat die Komplexität lediglich an eine andere Stelle verschoben.

Verkompliziert das Aufkommen von Smart Data die Bereitstellung von Lösungen oder ist dieser Aspekt nur eine Frage der Skalierung?

Susanne Braun: Nicht unbedingt. Smart Data stellt natürlich besondere Anforderungen an die Skalierbarkeit der Systeme. Andererseits kann Smart Data sogar verwendet werden, um clevere Algorithmen für die Konfliktbehandlung zu implementieren.

In Ihrer Session sprechen Sie über Konzeption und Realisierung eines skalierbaren Synchronisationsverfahrens in App-Ecosystems. Ohne zu viel zu verraten: Was sind die Eckpfeiler eines solchen Verfahrens?

Susanne Braun: Unser Verfahren bedient sich existierender Konzepte wie MVCC (Multi-Version-Concurrency-Control) und verwendet Smart-Data-Ansätze, um einen cleveren Conflict-Resolution-Algorithmus zu implementieren.

Bestehen in puncto Synchronisationsverfahren grundsätzliche Unterschiede zwischen den wichtigsten Plattformen iOS und Android?

Susanne Braun: Es gibt natürlich unterschiedliche Programmiersprachen und Frameworks wie ORM-Mapper, so dass man gezwungen ist, client-seitige-Funktionalität mehrfach zu implementieren.

Welche Herausforderungen sehen Sie für Synchronisationsverfahren am Horizont? Auf welche Entwicklungen sollten sich App-Developer und Softwarearchitekten heute schon einstellen?

Susanne Braun: Wir haben aktuell einen berechtigten Trend hin zu NoSQL-Datenbanken, die aus den gestiegenen Anforderungen an Skalierbarkeit nur abgeschwächte Konsistenzlevel wie BASE anbieten. Dadurch müssen Anomalien, die durch Nebenläufigkeit und Offlinebetrieb entstehen können, zunehmend in der Applikation behandelt werden und können nicht mehr auf das Datenbanksystem abgewälzt werden. Es ist aber äußerst herausfordernd Synchronisation zu designen und zu implementieren. Requirements-Engineers, UX-Engineers und Softwarearchitekten müssen hier eng zusammenarbeiten, damit Skalierbarkeit, Usability und Daten-Konsistenz nicht auf der Strecke bleiben.

Susanne BraunSusanne Braun ist Wissenschaftliche Mitarbeiterin am Fraunhofer Institut für Experimentelles Software Engineering in Kaiserslautern und beschäftigt sich dort mit dem Thema „Scalable Mobile Software Architecture“. Zuvor war sie bereits mehr als fünf Jahre als Software-Entwicklerin und Architektin bei Capgemini und der Accso GmbH tätig. Bei der Accso GmbH hat sie den Themenbereich Android-Entwicklung verantwortet und war maßgeblich am Aufbau des Geschäftszweig für mobile Anwendungen beteiligt.

Aufmacherbild: Large group of skydivers flying in formation of flower against blue sky Foto via Shutterstock / Urheberrecht: bikeriderlondon

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -