remix11 paris: windows azure & développement mobile
TRANSCRIPT
Windows Azure pour les applications mobiles, tablettes, multi-écrans
Thomas ContéArchitecteMicrosoft
http://twitter.com/tomconte [email protected]
Agenda
Pourquoi le Cloud pour les Devices?Cas client: Mobiles RepublicTour d’horizon de Windows Azure
IdentitéStockageServicesCommunications
Pourquoi Windows Phone + Windows Azure?Windows Azure Toolkit for Windows PhoneEt pour les devices non Microsoft?
Pourquoi le Cloud?
Services universels, accessibles par tous les matérielsInfrastructure à la demande, sans ticket d’entréeInfrastructure évolutive pour faire face aux pics ou à la montée en charge (e.g. effet Marketplace)Platform As A Service (PAAS): vous vous concentrez sur l’application, pas l’infrastructure
Mobiles Republic
vidéo
Architecture de News Republic
Toolkits Windows Azure pouriOS, Android & Windows Phone
annonce
Windows Azure Toolkits pour les Mobiles
Annonce officiellehttp://blogs.technet.com/b/microsoft_blog/
iOS:https://github.com/microsoft-dpe/watoolkitios-lib https://github.com/microsoft-dpe/watoolkitios-samples https://github.com/microsoft-dpe/watoolkitios-doc
Windows Phone 7:http://watoolkitwp7.codeplex.com
Vue d’ensemble de Windows Azure
Compute
Storage
Database
Environnement d’exécution évolutifSupporte .NET, C++, PHP, Ruby, Python, …Gestion automatisée des servicesStockage évolutif, hautement disponibleBlobs, Tables, Queues, DrivesAPIs REST et nombreuses librairies
Base de données relationnelle SQLOutils & développement familiers
Compute
Web Role et Worker Role
Le Web Role a IISPas le Worker Role
“DLL avec un Main()”Les deux implémentent RoleEntryPoint
Multitenancy
Vous pouvez avoir plus d’une application Web tournant dans votre Web Role
Montée en charge dans Windows Azure
1. Le Web Role reçoit des messages
2. Le Web Role poste des messages dans une Queue
3. Le Worker Role surveille la Queue
4. Le Worker Role accomplit une action (ici, envoie des notifications)
MPNS
Worker Role
Web Role
(1)
(2)
(3)
(4)
Windows Azure Compute
démo
Windows Azure AppFabric CachingCache mémoire distribué
On interagit avec le cache directement via une librairie .NETSession State Provider pour les applications Windows Azure
Fourni sous forme de service prêt à l’emploiOn configure un AppFabric NamespaceOn choisit la taille du cacheOn écrit le code qui accède au service
APIs .NET familières & homogènesMême APIs que pour Windows Server AppFabric
Disponible depuis fin AvrilAccessible depuis le portail windows.azure.com
Windows Azure AppFabric Caching
démo
Build Fast Web Applications with Windows Azure AppFabric Caching
http://channel9.msdn.com/Events/MIX/MIX11/SVC01
Windows Azure Content Delivery Network
Plusieurs Terabits par seoncde de capacité disponibles dans 24 emplacement dans le monde avec
99.95% de disponibilité. Le CDN s’adapte automatiquement à la charge sans intervention utilisateur. Utilisé par Microsoft en interne depuis 3 ans – maintenant disponible pour les clients Windows Azure.
Windows Azure CDN
Activé depuis le portail d’administration Windows AzureIntégré avec le stockageNouveautés récentes:
Delivery depuis des instances Windows Azure ComputeSupport de HTTPS
CTP de Smooth Streaming
Performance & Latence
50ms
Performance & Latence
50ms
100ms
Performance & Latence
50ms
100ms
200ms
http://www.research.ibm.com/people/n/nahum/papers/sigmetrics01-slides.ppt
Performance & Latence
Windows Azure Traffic Manager
Performance
Envoie l’utilisateur sur le déploiement le
plus proche/performant
Tolérance aux pannesRedirige le trafic vers
un autre déploiement en fonctione de la
disponibilité
Round Robin
Trafic équilibré sur les déploiements en fonction d’un ratio
fixe
Équilibre le trafic sur de multiples Hosted ServicesIntégré dans le portail Windows Azure PlatformTrois scénarios activés pour la CTP:
Stockage
Stockage
SQL AzureBase de données relationnelleHautement disponibleFournie sous forme de service
Windows Azure TablesStockage structuré, non-relationnelMassivement évolutifOData
Windows Azure BlobsStockage de fichiersREST
Stockage dans le Portail
Windows Azure Blobs: Public Blobs
Le client envoie des données à un Web RoleLe Web Role stocke les données dans des BlobsLe client peut accéder aux Blobs publics directement
WebRole
(1)
(2)
(3)
Exemple: Public Container
Container ACL = Full Public Read AccessAutres valeurs possibles:
Public Read Access for Blobs OnlyNo Public Read Access
http://tcontepub.blob.core.windows.net/images/?restype=container&comp=list
Exemple: jQuery
jQuery+
jQuery Mobile+
PhoneGap
Windows Azure Blobs: SAS
Le client récupère une Shared Access Signature via un Web RoleLe client stocke des données directement dans le Blob StorageLe client peut toujours récupérer les Blobs publics directement
WebRole
(1)
(2) (3)
Windows Azure Tables: Proxy Calls
Pas de SAS pour les Tables
Le client envoie les données à un Web RoleLe Web Role implémente un service ou un HttpHandler
Le Web Role interagit avec le Table Storage
WebRole
(1)
(2)
Ne stockez pas les clefs sur le device!
Et si je collais l’access key dans
mon appli?
C’est comme croiser les effluves!
C’est mal!
Exemple avec OData: OGDI / govdata.eu
OData == WCF Data ServicesProtocole REST d’accès aux données: http://www.odata.org/
Open Government Data Initiativehttp://ogdi.codeplex.com/
Accès simplifié aux flux de données publicshttp://data.govdata.eu/v1/frOpenData/Sanisettes?
$filter=arrondissement eq '75015'
SQL Azure: Service OData
Le client interagit avec le Web Role via ODataLe Web Role stocke les données dans SQL Azure
WebRole
(1)
(2)
Identité
Identité: les Options
“Fait maison” (e.g. login + mot de passe, token)Modèle spécifiqueASP.NET Membership Providers
Utiliser un fournisseur d’identité existant(e.g. Live Id, Facebook, etc.)
Déléguer la gestion de l’identitéAccess Control Service
Access Control Service 2.0
Authentification via fournisseurs d’identité multiplesS’intègre avec Live ID, Facebook, Yahoo, & Google, and ADSupporte WS-Federation, WS-Trust, OpenID 2.0, OAuth 2.0
Modèle de développement .NET familierEn utiliant le Windows Identity Foundation SDK
API REST de gestion du servicePour intégration avec vos applications
Disponible en productionNo charge during promotion period ending January 1, 2012Low cost after the promotion: $1.99 per 100,000 transactions
Pour en savoir plus…
Authenticating Users in a Windows Phone 7 App via Access Control Service, OData
Services and Windows Azure
http://bit.ly/wp7acs
Communications
Communications
Deux modèles de communicationInitiée par le DeviceInitiée par le Cloud
Communication initiée par le Device
HTTP-based, request/responseChoix de frameworks
WCF REST,OData,WebRequest,etc.
Choix de formatsSOAP,JSON,POX,etc.
WCF Web APis: "There's a URI for That“
http://channel9.msdn.com/Events/MIX/MIX11/FRM14
Communication initiée par le Cloud
Push NotificationsConnexion établie entre le téléphone et le Microsoft Push Notification ServiceÉconomise batterie et bande passantePas de garantie de réception
Trois types de notifications pushRaw – envoie un message à une applicationToast – envoie un message à l’utilisateurTile – met à jour image, titre ou nombre
Abonnement aux notifications push
Le téléphone ouvre une channelLe téléphone envoie l’URL à l’application AzureL’appli pousse les notifications via cet URLMicrosoft Push Notification Service notifie le téléphone
MPNSWeb Role
(1)(2)
(3)
(4)
Windows Azure & Windows Phone
Windows Azure Toolkit for Windows Phonehttp://watoolkitwp7.codeplex.com/
Application Windows PhoneApplication Windows Azure
Service d’authentification basé sur Membership Provider ASP.NET + Windows Azure TablesService d’obtention de SAS pour les WA BlobsProxy HttpHandler vers les WATInterface Web MVC de gestion des autorisations
Services compatibles avec les toolkits iOS & Android
Windows Azure Toolkit for Windows Phone
démo
Windows Phone & Windows Azure
Building Windows Phone 7 Applicationswith the Windows Azure Platform
http://channel9.msdn.com/Events/MIX/MIX11/SVC02
Et pour les devices non Microsoft?
“Developing iPhone and iPad Apps that Leverage Windows Azure”
http://channel9.msdn.com/Events/MIX/MIX11/EXT18
Windows Azure Platform Access
Windows Azure Pass
Accès 30 jours gratuit sans carte bleueRessources:
Compute: 3 Small InstancesStorage: 3 GB + 250K tansactions Data Transfer: 3GB in & 3GB outDatabase: 2 x 1GB Web Edition
Abonnement:http://www.windowsazure.fr/
Introductory Trial
Jusqu’au 30 juin 2011Ressources:
Compute: 750 extra small hours + 25 smallStorage: 500MB + 10K transactionsData Transfer: 500MB in & 500MB outDatabase: 1GB Web Edition (90 days)
Abonnement:www.windowsazure.fr