Mobile Lösungen – Mehr als nur Apps dank Cloud Backend
Mobile Lösungen – Eine Einführung
Als Benutzer mobiler Apps erwarten wir, dass unsere Daten jederzeit von jedem beliebigen Gerät aus abrufbar sind. Da unsere Daten vor dem Zugriff anderer geschützt sein sollen, benötigen wir einen Account. Am einfachsten ist es für uns, wenn wir dazu einen bereits vorhanden Account, z.B. aus einem Sozialen Netzwerk wir Twitter oder Facebook oder unser Geschäfts-Account aus dem Active Directory wiederverwenden können. Stimmt einer dieser Aspekte nicht, empfinden wir die App sehr schnell als nicht benutzerfreundlich und tauschen sie durch eine alternative App aus.
Wie aus diesen Anforderungen zu erkennen ist, besteht die typische Architektur einer Mobile Lösung aus mehr als nur der App auf dem Mobiltelefon.
Diese Ziele erfordern eine zentrale Datenspeicherung, auf die von allen Plattformen jederzeit zugegriffen werden kann. Eine Benutzerverwaltung ist nötig, um den Zugriff auf die Daten einzuschränken und mittels Push Notifikation sollen Benutzer über wichtige, aktualisierte Inhalte informiert werden. Um Geschäftsprozesse abzubilden, müssen andere Applikationen, wie zum Beispiel Web-Applikationen, ebenfalls auf diese Daten zugreifen. Damit all diese Anforderungen innert kürzester Frist umgesetzt werden können, bietet Windows Azure mit den Mobile Services, Websites, Azure Active Directory, etc. die passenden Bausteine.
Dem Entwicklungsteam steht mit dem Team Foundation Service dazu eine Kommunikationsplattform zur Verfügung, welche die Verwaltung von Anforderungen, Aufgaben und Source-Code mit automatischen Builds und Deployment in Windows Azure verbindet. Die Entwicklung einer solchen, typische mobilen Lösung mit in dieser Blog-Serie anhand der aktuellsten Werkzeugen vorgestellt.
Kontext
Folgende Abbildung zeigt den typischen Kontext einer Mobilen Lösung:
Unabhängig von Branche und Anwendungszweck einer App, bestehen mobile Lösungen aus technischer Sicht letztendlich immer aus einigen wenigen Komponenten:
- Mobile Clients unterschiedlichster Art (unterschiedliche Plattformen und Formfaktoren)
- Daten, die gespeichert werden
- Authentisierung und Autorisierung von Benutzern
- Benachrichtigung mittels Push-Notifikationen
- Logik die Prozesse steuert, welche die Daten filtern und verarbeiten
- Back-Office Mitarbeiter, die zur Erfüllung ihrer Aufgaben Zugriff auf die Daten benötigen, z.B. über Websites oder Webservices
- Entwickler und Betreiber
- ALM-Lösung (TFS online) für Entwicklung, Wartung und Betrieb der gesamten Lösung
Optional bestehen oft noch folgende Komponenten:
- Integration von Sozialen Netzwerken wie Twitter, Facebook, etc. ist besonders bei Consumer und Marketing-Applikation eine häufige Anforderung
- Integration weiterer Dienste, sowohl Systeme welche Inhous betrieben, wie auch fremde Dienste von Partnern
All dieses Herausforderungen in wartungsfreundlicher Art umzusetzen, ist keine triviale Aufgabe, zumal sich die Release Zyklen der unterschiedlichen Mobile Plattformen und
Backend Dienste nicht kontrollieren lassen.
Vereinheitlichung mittels Cloud-Technologien
Unzählige Entwickler stehen bei jeder zu entwickelnden mobilen Lösung wieder vor etwa den gleichen, oben beschriebenen, Herausforderungen. Damit nicht jedes mal wieder alles von neuem erstellt werden muss, bietet es sich an, hier eine Lösung zu verwenden, welche die Unterschiede einzelner Plattformen und Dienste vereinheitlicht. Der einfachste Weg, wäre hier ein Framework zu verwenden, doch sind die Herausforderungen nicht nur mittels Software alleine zu Lösen. Es wird auch noch eine Infrastruktur benötigt, die alles skalierbar und hoch verfügbar bereitstellt.
Die Windows Azure Mobile Services bieten hier eine entsprechende Lösung, indem Sie den Mobile Apps eine Abstraktionsschicht bzw. eine Zugriffsschicht auf die unterschiedlichsten Dienste, über ein einheitliches API zur Verfügung stellen. Dieses API besteht aus dem Mobile Services SDK, welches für alle gängigen Plattformen und Programmiersprachen zur Verfügung steht. Über das Management Portal wird definiert, welche Dienste (Implementationen) verwendet werden sollen. Hier können zum Beispiel die Identitiy Provider (Facebook, Twitter, Google, Microsoft Account (Live-ID) oder Azure Active Directory) konfiguriert werden, damit Sie von der Mobile App zur Authentifizierung verwendet werden können. Die unterschiedlichen Platform Notification Systems (PNS) für Push Benachrichtigung der unterschiedlichen Plattformen (iOS, Android, Windows 8, Windows Phone) sind hier ebenfalls konfigurierbar. Auch JavaScripts (Node.js) welche als Web-Services beim oder Scheduler-Tasks Logik ausführen, können hier hinterlegt werden.
Aus architektonischer Sicht, sieht das dies etwa wie folgt aus:
Dieser Artikel soll einen ersten überblick über die typische Architektur einer Mobilen Lösung geben. In weiteren Blogs wird im Detail auf die einzelnen Aspekte einer solchen Lösung eingegangen.
Weitere Details zum Thema erfahren Sie auch auf der unserem Anlass Enable your Developers to go mobile with the Cloud am 10. April 2014 im Technorama in Winterthur.