Upload
microsoft-technet-france
View
4
Download
0
Tags:
Embed Size (px)
DESCRIPTION
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications Web et Mobiles
Citation preview
#azurecampInteractions en « temps réel » pour les applications Web et Mobiles
Julien CORIOLANDInfinite Square
Stéphane GOUDEAU Microsoft France
Windows Azure Camp: nos partenairesSPONSORS MICROSOFT AZURE CAMP
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• …
Notre scénario IOT pour illustrer la session…
demo #azurecamp
Applications universelles WeatherStation et IOTMonitor
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
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
• …
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,
…
demo #azurecamp
NodejsHub : Implémentation d’un serveur de sockets avec Socket.io
demo #azurecampTransition… de Socket.io à SignalR
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
demo #azurecamp
Debugging d’une application SignalR
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
demo #azurecamp
Remontée d’alertes via Azure Notification Hub
Une revue des flux applicatifs …
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
Boostez votre projet cloud!
Remportez un Hands-On
avec nos spécialistes Azure le 3 juillet
Inscrivez-vous sur notre stand!
© 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.