Windows Azure pour les applications mobiles, tablettes, multi-écransThomas ContéArchitecteMicrosofthttp://twitter.com/tomcontetconte@microsoft.com
AgendaPourquoi le Cloud pour les Devices?Cas client: Mobiles RepublicTour d’horizon de Windows AzureIdentitéStockageServicesCommunicationsPourquoi 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 Republicvidéo
Architecture de News Republic
Toolkits Windows Azure pouriOS, Android & Windows Phoneannonce
Windows Azure Toolkits pour les MobilesAnnonce officiellehttp://blogs.technet.com/b/microsoft_blog/iOS:https://github.com/microsoft-dpe/watoolkitios-libhttps://github.com/microsoft-dpe/watoolkitios-sampleshttps://github.com/microsoft-dpe/watoolkitios-docWindows Phone 7:http://watoolkitwp7.codeplex.com
Vued’ensemble de Windows AzureEnvironnement d’exécution évolutifSupporte .NET, C++, PHP, Ruby, Python, …Gestion automatisée des servicesComputeStockage évolutif, hautement disponibleBlobs, Tables, Queues, DrivesAPIs REST et nombreuses librairiesStorageBase de données relationnelle SQLOutils & développement familiersDatabase
Compute
Web Role et Worker RoleLe Web Role a IISPas le Worker Role“DLL avec un Main()”Les deuximplémententRoleEntryPoint
MultitenancyVouspouvezavoir plus d’une application Web tournantdansvotre Web Role
Montée en charge dans Windows AzureLe Web Role reçoit des messagesLe Web Role poste des messages dans une QueueLe WorkerRole surveille la QueueLe WorkerRole accomplit une action (ici, envoie des notifications)(2)(4)Worker RoleWeb RoleMPNS(3)(1)
Windows Azure Computedémo
Windows Azure AppFabric CachingCache mémoire distribuéOn interagit avec le cache directement via une librairie .NETSession State Provider pour les applications Windows AzureFourni sous forme de service prêt à l’emploiOn configure un AppFabricNamespaceOn choisit la taille du cacheOn écrit le code qui accède au serviceAPIs .NET familières & homogènesMême APIs que pour Windows Server AppFabricDisponible depuis fin AvrilAccessible depuis le portail windows.azure.com
Windows Azure AppFabricCachingdémo
Build Fast Web Applications with Windows Azure AppFabricCachinghttp://channel9.msdn.com/Events/MIX/MIX11/SVC01
Windows Azure Content Delivery NetworkPlusieurs 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 CDNActivé depuis le portail d’administration Windows AzureIntégré avec le stockageNouveautés récentes:Delivery depuis des instances Windows Azure ComputeSupport de HTTPSCTP de Smooth Streaming
Performance & Latence50ms
Performance & Latence100ms50ms
Performance & Latence200ms100ms50mshttp://www.research.ibm.com/people/n/nahum/papers/sigmetrics01-slides.ppt
Performance & Latence
Windows Azure Traffic ManagerÉquilibre le trafic sur de multiples Hosted ServicesIntégré dans le portail Windows Azure PlatformTrois scénarios activés pour la CTP:Tolérance aux pannesRound RobinPerformanceRedirige le trafic vers un autre déploiement en fonctione de la disponibilitéTraficéquilibrésur les déploiements en fonction d’un ratio fixeEnvoie l’utilisateur sur le déploiement le plus proche/performant
Stockage
StockageSQL AzureBase de données relationnelleHautement disponibleFournie sous forme de serviceWindows Azure TablesStockage structuré, non-relationnelMassivement évolutifODataWindows Azure BlobsStockage de fichiersREST
Stockage dans le Portail
Windows Azure Blobs: Public BlobsLe 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(2)WebRole(3)(1)
Exemple: Public ContainerContainer ACL = Full Public Read AccessAutres valeurs possibles:Public Read Access for Blobs OnlyNo Public Read Accesshttp://tcontepub.blob.core.windows.net/images/?restype=container&comp=list
Exemple: jQuery
jQuery+jQuery Mobile+PhoneGap
Windows Azure Blobs: SASLe 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 directementWebRole(2)(3)(1)
Windows Azure Tables: Proxy CallsPas de SAS pour les TablesLe client envoie les données à un Web RoleLe Web Role implémente un service ou un HttpHandlerLe Web Role interagit avec le Table Storage(2)WebRole(1)
Ne stockez pas les clefs sur le device!C’estcommecroiser les effluves!C’estmal!Et si je collaisl’access key dansmonappli?
Exemple avec OData: OGDI / govdata.euOData == 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 ODataLe client interagit avec le Web Role via ODataLe Web Role stocke les données dans SQL Azure(2)WebRole(1)
Identité
Identité: les Options“Fait maison” (e.g. login + mot de passe, token)Modèle spécifiqueASP.NET Membership ProvidersUtiliser 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.0Authentification 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 IdentityFoundation SDKAPI REST de gestion du servicePour intégration avec vos applicationsDisponible en productionNo charge during promotion periodendingJanuary 1, 2012Lowcostafter 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 Azurehttp://bit.ly/wp7acs
Communications
CommunicationsDeux modèles de communicationInitiée par le DeviceInitiée par le Cloud
Communicationinitiée par le DeviceHTTP-based, request/responseChoix de frameworksWCF 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 CloudPush NotificationsConnexion établie entre le téléphone et le Microsoft Push Notification ServiceÉconomise batterie et bande passantePas de garantie de réceptionTrois types de notifications pushRaw – envoie un message à une applicationToast – envoie un message à l’utilisateurTile – met à jour image, titre ou nombre
Abonnement aux notifications pushLe 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éphoneMPNSWeb Role(3)(1)(2)(4)
Windows Azure & Windows PhoneWindows Azure Toolkit for Windows Phonehttp://watoolkitwp7.codeplex.com/Application Windows PhoneApplication Windows AzureService 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 autorisationsServices compatibles avec les toolkitsiOS & Android
Windows Azure Toolkit for Windows Phonedémo
Windows Phone & Windows AzureBuilding Windows Phone 7 Applicationswith the Windows Azure Platformhttp://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 AccessWindows Azure PassIntroductory TrialAccès 30 joursgratuit sans carte bleueRessources:Compute:  3 Small InstancesStorage:  3 GB + 250K tansactionsData Transfer:   3GB in & 3GB outDatabase:  2 x 1GB Web EditionAbonnement:http://www.windowsazure.fr/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
ReMix11 Paris: Windows Azure & développement mobile

ReMix11 Paris: Windows Azure & développement mobile

  • 1.
    Windows Azure pourles applications mobiles, tablettes, multi-écransThomas ContéArchitecteMicrosofthttp://twitter.com/tomcontetconte@microsoft.com
  • 2.
    AgendaPourquoi le Cloudpour les Devices?Cas client: Mobiles RepublicTour d’horizon de Windows AzureIdentitéStockageServicesCommunicationsPourquoi Windows Phone + Windows Azure?Windows Azure Toolkit for Windows PhoneEt pour les devices non Microsoft?
  • 3.
    Pourquoi le Cloud?Servicesuniversels, 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
  • 4.
  • 5.
  • 6.
    Toolkits Windows AzurepouriOS, Android & Windows Phoneannonce
  • 7.
    Windows Azure Toolkitspour les MobilesAnnonce officiellehttp://blogs.technet.com/b/microsoft_blog/iOS:https://github.com/microsoft-dpe/watoolkitios-libhttps://github.com/microsoft-dpe/watoolkitios-sampleshttps://github.com/microsoft-dpe/watoolkitios-docWindows Phone 7:http://watoolkitwp7.codeplex.com
  • 8.
    Vued’ensemble de WindowsAzureEnvironnement d’exécution évolutifSupporte .NET, C++, PHP, Ruby, Python, …Gestion automatisée des servicesComputeStockage évolutif, hautement disponibleBlobs, Tables, Queues, DrivesAPIs REST et nombreuses librairiesStorageBase de données relationnelle SQLOutils & développement familiersDatabase
  • 9.
  • 10.
    Web Role etWorker RoleLe Web Role a IISPas le Worker Role“DLL avec un Main()”Les deuximplémententRoleEntryPoint
  • 11.
    MultitenancyVouspouvezavoir plus d’uneapplication Web tournantdansvotre Web Role
  • 12.
    Montée en chargedans Windows AzureLe Web Role reçoit des messagesLe Web Role poste des messages dans une QueueLe WorkerRole surveille la QueueLe WorkerRole accomplit une action (ici, envoie des notifications)(2)(4)Worker RoleWeb RoleMPNS(3)(1)
  • 13.
  • 14.
    Windows Azure AppFabricCachingCache mémoire distribuéOn interagit avec le cache directement via une librairie .NETSession State Provider pour les applications Windows AzureFourni sous forme de service prêt à l’emploiOn configure un AppFabricNamespaceOn choisit la taille du cacheOn écrit le code qui accède au serviceAPIs .NET familières & homogènesMême APIs que pour Windows Server AppFabricDisponible depuis fin AvrilAccessible depuis le portail windows.azure.com
  • 15.
  • 16.
    Build Fast WebApplications with Windows Azure AppFabricCachinghttp://channel9.msdn.com/Events/MIX/MIX11/SVC01
  • 17.
    Windows Azure ContentDelivery NetworkPlusieurs 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.
  • 18.
    Windows Azure CDNActivédepuis le portail d’administration Windows AzureIntégré avec le stockageNouveautés récentes:Delivery depuis des instances Windows Azure ComputeSupport de HTTPSCTP de Smooth Streaming
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
    Windows Azure TrafficManagerÉquilibre le trafic sur de multiples Hosted ServicesIntégré dans le portail Windows Azure PlatformTrois scénarios activés pour la CTP:Tolérance aux pannesRound RobinPerformanceRedirige le trafic vers un autre déploiement en fonctione de la disponibilitéTraficéquilibrésur les déploiements en fonction d’un ratio fixeEnvoie l’utilisateur sur le déploiement le plus proche/performant
  • 25.
  • 26.
    StockageSQL AzureBase dedonnées relationnelleHautement disponibleFournie sous forme de serviceWindows Azure TablesStockage structuré, non-relationnelMassivement évolutifODataWindows Azure BlobsStockage de fichiersREST
  • 27.
  • 28.
    Windows Azure Blobs:Public BlobsLe 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(2)WebRole(3)(1)
  • 29.
    Exemple: Public ContainerContainerACL = Full Public Read AccessAutres valeurs possibles:Public Read Access for Blobs OnlyNo Public Read Accesshttp://tcontepub.blob.core.windows.net/images/?restype=container&comp=list
  • 30.
  • 32.
  • 33.
    Windows Azure Blobs:SASLe 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 directementWebRole(2)(3)(1)
  • 34.
    Windows Azure Tables:Proxy CallsPas de SAS pour les TablesLe client envoie les données à un Web RoleLe Web Role implémente un service ou un HttpHandlerLe Web Role interagit avec le Table Storage(2)WebRole(1)
  • 35.
    Ne stockez pasles clefs sur le device!C’estcommecroiser les effluves!C’estmal!Et si je collaisl’access key dansmonappli?
  • 36.
    Exemple avec OData:OGDI / govdata.euOData == 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'
  • 38.
    SQL Azure: ServiceODataLe client interagit avec le Web Role via ODataLe Web Role stocke les données dans SQL Azure(2)WebRole(1)
  • 39.
  • 40.
    Identité: les Options“Faitmaison” (e.g. login + mot de passe, token)Modèle spécifiqueASP.NET Membership ProvidersUtiliser un fournisseur d’identité existant(e.g. Live Id, Facebook, etc.)Déléguer la gestion de l’identitéAccess Control Service
  • 41.
    Access Control Service2.0Authentification 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 IdentityFoundation SDKAPI REST de gestion du servicePour intégration avec vos applicationsDisponible en productionNo charge during promotion periodendingJanuary 1, 2012Lowcostafter the promotion: $1.99 per 100,000 transactions
  • 42.
    Pour en savoirplus…Authenticating Users in a Windows Phone 7 App via Access Control Service, OData Services and Windows Azurehttp://bit.ly/wp7acs
  • 43.
  • 44.
    CommunicationsDeux modèles decommunicationInitiée par le DeviceInitiée par le Cloud
  • 45.
    Communicationinitiée par leDeviceHTTP-based, request/responseChoix de frameworksWCF REST,OData,WebRequest,etc.Choix de formatsSOAP,JSON,POX,etc.
  • 46.
    WCF Web APis:"There's a URI for That“http://channel9.msdn.com/Events/MIX/MIX11/FRM14
  • 47.
    Communication initiée parle CloudPush NotificationsConnexion établie entre le téléphone et le Microsoft Push Notification ServiceÉconomise batterie et bande passantePas de garantie de réceptionTrois types de notifications pushRaw – envoie un message à une applicationToast – envoie un message à l’utilisateurTile – met à jour image, titre ou nombre
  • 48.
    Abonnement aux notificationspushLe 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éphoneMPNSWeb Role(3)(1)(2)(4)
  • 49.
    Windows Azure &Windows PhoneWindows Azure Toolkit for Windows Phonehttp://watoolkitwp7.codeplex.com/Application Windows PhoneApplication Windows AzureService 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 autorisationsServices compatibles avec les toolkitsiOS & Android
  • 50.
    Windows Azure Toolkitfor Windows Phonedémo
  • 51.
    Windows Phone &Windows AzureBuilding Windows Phone 7 Applicationswith the Windows Azure Platformhttp://channel9.msdn.com/Events/MIX/MIX11/SVC02
  • 52.
    Et pour lesdevices non Microsoft?“Developing iPhone and iPad Apps that Leverage Windows Azure”http://channel9.msdn.com/Events/MIX/MIX11/EXT18
  • 53.
    Windows Azure PlatformAccessWindows Azure PassIntroductory TrialAccès 30 joursgratuit sans carte bleueRessources:Compute: 3 Small InstancesStorage: 3 GB + 250K tansactionsData Transfer: 3GB in & 3GB outDatabase: 2 x 1GB Web EditionAbonnement:http://www.windowsazure.fr/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