Mobile Backend in der Azure Mobile Services / Websites / Active Directory / …
Cloud
Kontext
Mobile Users
Social Networks
Others TFS online
Back-Office
Push
Data
Auth
Website
Logic
DevOps
Windows Azure Mobile Service
Data
(SQL DB)
Beispielapplikation
Portal Website
Neu!
Neu!
Push
PushPush
Neu!
?
?
?
Active
Directory
Portal WebsiteTeam
Mobile
Service
Team
Anforderungen
AnforderungenAnforderungenAnforderungen
3
5
5
Portal mit Azure Website
ASP.NET MVC 5 Web Applikation Entity Framework Code First
Bootstrap Framework, JQuery
Azure Active Directory Integration Identity and Access
Auslesen der Benutzer aus dem Active Directory mittles Graph API
Azure SQL Database Speichern der Projekte
Gemeinsam genutzte Datenbank mit Website und Mobile Service
Mobile Backend mit Mobile Services
Mobile Services
Identity Providers
f …
Acc
ess
Laye
r
Other Cloud
Services
Storage PNS
Mobile Services Data
Mobile Services Data Problem: «Geheimnisse sollen geheim bleiben» (Connection-Strings, …)
Lösung: Web-Service (REST) Mobile Service
Basiert auf Node.js (JavaScript-Server) oder ASP.NET WebAPI (Preview)
Kapselt Datenzugriff mit Webservice
Ermöglicht Ausführung von Code bei Datenzugriff auf Daten-Tabellen
Data
(SQL DB)
Connection String
(Username, Secret)
Mobile
Service
Auth
Mobile Services Data: Beispiel (Node.js)
Table Scripts Für CRUD Operationen (Funktionen):
read
insert
delete
update
Rechte pro Funktion Jeder
Jeder mit Application Key
Nur authentisierte Benutzer
Nur Scripts und Admins
Mobile Services Logic
API JavaScript oder .NET WebAPI basierter Web-Service (REST)
Nicht an Tabellen gekoppelt
Zugriff auf andere Azure Dienste
Libraries für Node.Js bzw. .NET
Storage (SQL-Azure, Blob, Table, Queues, Service Bus)
Management API
Windows Store Partners (Sengrid, Twillio, Pusher)
Scheduler Zeitintervall oder «manuelle Anfrage»
Kein Webservice-Endpunkt
Mobile Services Authentication
Mobile Services Identity gemeinsames API für unterschiedliche Identity Provider:
Microsoft Account, Facebook, Twitter, google,Azure Active Directory (preview)
Code Server-side-Scripts: user-object Beispiel AAD: user.getIdentities({
success: function (identities) {var objectId = identities.aad.oid;console.log(objectId);
}}); Client-Side: App.MobileService.CurrentUservar user = await App.MobileService.LoginAsync("aad");var user = awaitApp.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook);
Mobile Services Push Notification
Mobile
Service
1. PNS Handle abrufen2. PNS Handle im App
Backend speichern
Plattform
Notification
System
App Backend
Mobile App
3. Benachrichtigung senden
4. Gerät benachrichtigen
Mobile Services Push Notification
Platform Notification Systems (PNS) Windows 8: Windows Push Notification Service Windows Phone: Microsoft Push Notification Service iOS: Apple Push Notification Service Android: Cloud To Device Messaging
Klassische Push-Infrastruktur Plattformabhängigkeit: Pro Plattform eine Schnittstelle Eingeschränkte Skalierbarkeit Weiterleitung an einzelne Geräte nicht an Gruppen
Service Bus Push Notification
Benachrichtigungshubs (Notification Hubs) Gemeinsame Schnittstelle für alle wichtigen Plattformen
Beliebiges Backend (Cloud or on-premises, .NET, PHP, Java, Node, etc.)
Pub/Sub-Routing an Tags zur Benachrichtigung von Gruppen
Skalierung
Service Bus Push Notification
Mobile
Service
1. PNS Handle abrufen2. PNS Handle (und Tags) in
App Backend speichern
Plattform
Notification
System
App Backend
Mobile App
3. Benachrichtigung an
Benachrichtigungshub
senden
4. Geräte
benachrichtigen
Benachrichtigungshub
2. PNS Handle (und Tags)
in Benachrichtigungshub
registrieren
3. Benachrichtigung senden
Lean Startup Process
Ideen
Code
Daten
Lean Startup, see: http://theleanstartup.com/principles
Messen
Lernen
Erstellen
Visual Studio
Source Verwaltung
Testautomatisierung
Keine Server aufsetzen
Continuous Integration
Frameworks für gängige
Plattformen
…
Schneller entwickeln
Schneller messen
TFS Templates
for Scrum and Agile
Task / Bug Tracking
Conituous Feedback
DevOps
(TFS & SystemCenter)
Benutzerverhalten:
Application Insights Telemetry Big Data Analysis mit HDInsight
…
Schneller lernen
Load Testing
Performance Analysis
Usage Statistics / Dashboards
Monitoring of Cloud Services
Intelli Trace
….
ALM in Cloud Projekten
Technologie
Tools Vorgehen
Architektur
ALM
Visual Studio online / TFS
Azure SDK
Windows AzureWindows Phone
AgileProjektmanagementKollaboration
Anforderungen
Anforderungen
Scrum
Qualität
Bausteine
Abstraktion
Abläufe
SchichtenKontextAndroid iOS
Windows 8
Visual Studio 2013
Verfügbarkeit
Skalierbarkeit
VerteilungDev-Ops
Identity
Integration
Application
Insights
Zusammenfassung
Das sind die 3 wichtigsten Punkte, die wir Ihnen erzählen wollten:1. Mobile Lösungen sind mehr als nur Apps
2. Mobile Services bieten Lösungen zu allen wesentlichen Aspekten von mobilen Backends
3. Agiles Vorgehen benötigt entsprechende Infrastruktur. Die Cloud ist ein «Enabler» dafür.
Besten Dank für Ihre Aufmerksamkeit
Für allfällige Fragen stehen wir Ihnen jederzeit gerne zur Verfügung:
Martin Weber
Noser Engineering AG
Rudolf-Diesel-Strasse 3
8404 Winterthur
+41 52 234 56 11
www.noser.com
blog.noser.com