Serie: Eigene Anwendungen auf Microsoft Azure - Teil 5: Mobile Services
Microsoft Azure bietet zur Ausführung eigener Anwendungen in der Public Cloud vier Optionen: Virtual Machines, Cloud Services, Websites und Mobile Services. Diese Blog-Serie gibt Hinweise zur Entscheidung für die zu einem konkreten Vorhaben beste Alternative, Die Serie ist unterteilt in 7 Teile:
- Teil 1: Überblick über die Ausführungsoptionen
- Teil 2: Virtual Machines
- Teil 3: Cloud Services
- Teil 4: Websites
- Teil 5: Mobile Services
- Teil 6: Auswahl des besten Ausführungsmodells
- Teil 7: Wechsel des Ausführungsmodells
Dieser Teil geht auf Mobile Services ein.
Konzept der Mobile Services
Mobile Services bauen auf der Website Plattform auf. Während Websites auf ganz allgemeine Web-Anwendungen abzielen, gehen Mobile Services eine Abstraktionsebene höher: Mobile Services sind spezielle Websites, die für den Einsatz als Backend für Mobile Anwendungen optimiert sind und damit eine sehr schnelle Umsetzung ermöglichen. Mitunter werden Mobile Services aufgrund dieser Eigenschaft der Servicekategorie BaaS (= Backend-as-a-Service) zugeordnet.
Mobile Anwendungen, d.h. leichtgewichtige Anwendungen, die auf mobilen Endgeräten ausgeführt werden, sind häufig über Backend-Services vernetzt. Über diese Dienste tauschen die einzelnen Clients Daten aus, speichern Daten, führen Authentifizierung durch etc. Microsoft Azure Mobile Services bieten eine Sammlung genau solcher, häufig benötigter Dienste auf Microsoft Azure an. Zu diesen Diensten gehören unter anderem folgende Funktionen:
- Benutzerauthentifizierung (via Microsoft Account, Facebook, Twitter und Google ID) mit entsprechender Zugriffskontrolle bei Service-Aufrufen
- Speicherung von Daten in Blob, Table, Queue Service oder SQL Database
- Kommunikation via Service Bus
- Push Notifications
- Zeitgesteuerte Ausführung serverseitiger Skripte
Darüber hinaus ist es möglich, neben den Daten-basierten Schnittstellen (für das Schreiben, Lesen, Ändern, Löschen von Daten) eigene Schnittstellen mit in .NET oder JavaScript implementierter Funktionalität implementieren.
Die vorkonfigurierten Microsoft Azure Mobile Services können ohne größeren Programmieraufwand sehr einfach als Backend-Dienste für verschiedene Client-Umgebungen eingesetzt werden. Folgende Tabelle gibt einen Überblick über die derzeit unterstützten Client-Umgebungen und darüber, mit welcher Backend-Variante (.NET und/oder JavaScript) diese eingesetzt werden können.
Client-Umgebung | Mobile Service in JavaScript | Mobile Service in .NET |
---|---|---|
iOS | ● | ● |
Windows Phone | ● | ● |
Windows Store C# | ● | ● |
Windows Store JavaScript | ● | ● |
Xamarin iOS | ● | ● |
Xamarin Android | ● | ● |
Android | ● | ● |
HTML | ● | |
PhoneGap | ● | |
Sencha | ● | |
Appcelerator | ● |
Es können Vorlagen für entsprechende neue Apps oder Code Fragmente für bestehende Apps aus dem Portal heruntergeladen werden. Die Entwicklung einfacher mobiler Anwendungen, die Cloud Dienste nutzen sollen, vereinfacht sich dadurch deutlich. In vielen Fällen können per Copy-Paste Datenbankzugriffe in der betreffenden Client-Umgebung implementiert werden.
Entwicklung von Mobile Services
Mobile Services basieren auf Websites. Die Implementierung kann entweder über JavaScript (dann wird als Grundlage eine vorkonfigurierte Node.js-Installation verwendet) oder über .NET (C#) (dann wird eine vorkonfigurierte ASP.NET-Umgebung als Grundlage verwendet) erfolgen. Bei der JavaScript-Variante können die Funktionalitäten direkt über das Portal eingegeben werden. Für einfachere Szenarien ist dies ideal.
Im Falle von .NET kann vom Portal eine Visual-Studio-Solution heruntergeladen werden. Diese basiert letztlich auf einer Website-Anwendung, d.h. sie enthält sämtlichen Code, der dann in Form eines Mobile Service ausgeführt wird. Damit hat ein Entwickler stärkere Eingriffsmöglichkeiten in die internen Abläufe. Die Solution kann (z.B. zu Testzwecken) auch lokal ausgeführt werden und dann via WebDeploy in einen Mobile Service auf Azure deployt werden.
Fazit
Rein technisch gesehen, können die von Mobile Services abgedeckten Funktionalitäten auch mit Websites umgesetzt werden. Während bei Websites jedoch gewisser Programmieraufwand anfällt, wird dieser bei Mobile Services minimiert. In vielen Fällen können Backend-Zugriffe mit vorgefertigten Code-Fragmenten per Copy-Paste implementiert werden. Daher gilt die Regel:
- Wenn für Mobile Anwendungen Backend-Dienste bereitgestellt werden sollen, sind Mobile Services erste Wahl, da hier die Entwicklerproduktivität mit Abstand am höchsten ist.
Für Funktionalitäten, die über Mobile Services nicht umgesetzt werden können, lassen sich Mobile Services mit anderen Ausführungsmodellen (Websites, Cloud Services, Virtual Machines) kombinieren.
Weitere Informationen
Informationen zu Mobile Services
- Offizielle Dokumentation zu Mobile Services
https://azure.microsoft.com/en-us/services/mobile-services/ - Technische Dokumentation zu Mobile Services
https://msdn.microsoft.com/en-us/library/azure/jj554228.aspx
Informationen zur allgemeinen Entscheidung für ein Ausführungsmodell
- Azure Dokumentation: Azure Execution Models
https://azure.microsoft.com/en-us/documentation/articles/fundamentals-application-models/ - Azure Web Sites, Cloud Services and Virtual Machines comparison
https://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/