18
#azurecamp Interactions en « temps réel » pour les applications Web et Mobiles Julien CORIOLAND Infinite Square Stéphane GOUDEAU Microsoft France

[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Embed Size (px)

DESCRIPTION

[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Citation preview

Page 1: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

#azurecampInteractions en « temps réel » pour les applications Web et Mobiles

Julien CORIOLANDInfinite Square

Stéphane GOUDEAU Microsoft France

Page 2: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Windows Azure Camp: nos partenairesSPONSORS MICROSOFT AZURE CAMP

Page 3: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Interactions en « temps réel » : Pourquoi faire ?• Tableaux de bord affichant une information « Live » (ex : prix d’une

action• Applications collaboratives (ex: Réponse à un « chat »)• Suivi de l’avancement d’une tâche• Application métier répondant à des mises à jour multiples et

simultanées• Evènement dans un jeu• Remontée d’alerte et push sur les mobiles• …

Page 4: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Notre scénario IOT pour illustrer la session…

Page 5: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

demo #azurecamp

Applications universelles WeatherStation et IOTMonitor

Page 6: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Interactions « temps réel » pour le Web• Limites du protocole HTTP

• « Half duplex » et sans état• De multiples contournements liés aux usages du Web 2.0

• WebSockets : • Evolution du protocole (IETF) et de l’API (W2C)• Connexion persistante et bidirectionnelle• Pré-requis

• Un serveur http piloté par évènement• Etre supporté par le browser et par le serveur

• Implémentation via de nombreux frameworks :• Socket.io• SignalR• ...

• De multiples possibilités d’hébergement sur Azure : Azure Web Site, Cloud Service PaaS, Cloud Service IaaS, Azure Mobile Service

Page 7: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Node.js + Socket.io• node.js est un framework Open Source événementiel permettant de

développer des applications réseau en JavaScript • Tous les requêtes sont asynchrones et s’exécutent sur un seul thread• Utilise le moteur JavaScript V8 de Google et un wrapper C++ optimisé pour gérer les

I/O

• Environnement extrêmement modulaire:• « socket.io » :

• Connexions WebSockets et long polling• Affinité de session requise en multi-nodes sur les scénarios long polling

• « IISNode » : node.js hébergé dans IIS• Gestion des processus• Scalabilité sur des serveurs multi-cœurs

• …

Page 8: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Browser Web

Moteur JavaScript

Code client javaScript

Framework Client : AngularJS, Knockout,

Microsoft Azure

Node.js + Socket.io : Symétrie Client / Serveur

VM, WebRole, Site Web, Mobile Service

HTML/JSON

WebSockets

node.js

Moteur JavaScript V8

Code serveur javaScript

Modules node.js :Express, Socket.io,

Page 9: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

demo #azurecamp

NodejsHub : Implémentation d’un serveur de sockets avec Socket.io

Page 10: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

demo #azurecampTransition… de Socket.io à SignalR

Page 11: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

SignalR• SignalR 2.x est un framework Open Source

• Communication asynchrone d'un client (javaScript + jQuery) avec un serveur .Net• Push d’événements serveur vers le navigateur client• Connexion WebSockets et long polling

• Deux modèles de programmation • Persistent Connection

• API de bas niveau : Sémantique de connexion, reconnexion & déconnection• Broadcast vers tous les clients, groupes or des clients ciblés

• Hubs• Fondé sur l’API PersistentConnection• RPC client-serveur *ET* server-client• Génération automatique du proxy client (JavaScript)

• Support du Cross-Origin Resource Sharing (CORS)• De multiples possibilités d’hébergement sur Windows :

• ASP.NET, OWIN, Self-Host,…

• Mécanismes natif de scaleout via différents backplanes

Page 12: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

demo #azurecamp

Debugging d’une application SignalR

Page 13: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Interactions « temps réel » Mobile

• Service Azure Notification Hubs fondé sur Windows Notifications Service• Windows / Windows Phone• iOS, Androïd…

• Centralisation des notifications push pour toutes vos applications mobiles

• SDK ultra simple pour envoyer des notificationsMicrosoft Azure

APNs WNSApp back-

end

iOS app Windows 8.x / Phoneapp

Android app

MPNS

GCM

Notification Hub

Page 14: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

demo #azurecamp

Remontée d’alertes via Azure Notification Hub

Page 15: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Une revue des flux applicatifs …

Page 16: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Resources techniques• SignalR

• www.asp.net/signalr• http://github.com/signalr/signalr• http://www.campusmvp.net/blog/signalr-iv-hubs

• Nodejs• http://www.windowsazure.com/en-us/develop/nodejs• https://github.com/WindowsAzure/azure-sdk-for-node • https://npmjs.org/package/azure• https://nodejstools.codeplex.com

• Microsoft Azure Notification Hubs• http://azure.microsoft.com/en-us/documentation/services/notification-hubs/• http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-windows-store-dotnet-get-start

ed/

• Série de blogs « IoT / Real Time » sur notre scénario de démo d’aujourd’hui (à venir)• http://blogs.infinitesquare.com/b/beedoo• http://blogs.msdn.com/b/stephgou

Page 17: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

Boostez votre projet cloud!

Remportez un Hands-On

avec nos spécialistes Azure le 3 juillet

Inscrivez-vous sur notre stand!

Page 18: [AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles

© 2012 Microsoft Corporation. Tous droits réservés. Microsoft, Windows et les autres noms de produits sont des marques déposées ou des marques commerciales de Microsoft aux États-Unis et/ou dans d'autres pays.Les informations contenues dans ce document sont fournies uniquement à titre indicatif. Elles représentent l'opinion actuelle de Microsoft Corporation sur les points cités à la date de cette présentation. Microsoft s'adapte aux conditions fluctuantes du marché et ce document ne doit pas être interprété comme un engagement de la part de Microsoft ; de plus, Microsoft ne peut pas garantir la véracité de toute information présentée après la date de la présentation. MICROSOFT EXCLUT TOUTE GARANTIE, EXPRESSE, IMPLICITE OU STATUTAIRE, EN CE QUI CONCERNE CETTE PRÉSENTATION.