SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
palais des
congrès
Paris




7, 8 et 9
février 2012
De A à Z : Choisir une
  architecture pour sa
  solution applicative
  (ARC201)
7 février 2012

Stéphanie Hertrich                Benjamin Guinebertière
blogs.msdn.com/stephe             www.benjguin.com
Relation technique développeurs   Relation technique architectes
Microsoft France                  Microsoft France
Agenda

1.   Le besoin métier
2.   L’analyse et le choix des technologies
3.   La conception et les choix d’implémentation
4.   Conclusion
Ce que la session n’est pas

                   http://msdn.microsoft.com/en-
                   us/library/ff650706.aspx
Le besoin métier
Le besoin métier
  Application Cave à Vins
  Téléphone, tablette, Desktop,
  multi-plateforme
  Cas d’utilisation différents
    L’utilisateur emmène son
     téléphone au supermarché :
     aide au choix parmi les
     bouteilles en rayon par lecture
     du code-barre

      Chez moi sur le poste de
       travail, je parcours le catalogue
       complet des vins
Contraintes s’ajoutant au
Cahier des charges
  La plus belle app de cave à vins => Priorité à l’UX car
  concurrence importante sur ce type d’applications qui vise
  potentiellement tout le monde

  Déclinable facilement sur tout type de device (phone,
  tablette, desktop)

  Appli publique, collaborative, charge
  variable/indéterminée

  Identification du propriétaire de la cave : réutiliser son
  compte FB, Google, Live, …
L’analyse et le choix des
technologies
La plus belle app de cave à vins

 Constat
 UX réussie => bien intégrée et homogène avec l’ergonomie
 nativement proposée par le device


 Solution
   Utiliser les contrôles du langage natif
   Développer en langage natif des principales plateformes
   Le fallback pourrait être une interface web (PhoneGap)
Desktop : PivotViewer
 Pourquoi réinventer la roue ?
   IHM de manipulation de collection

 Ex : http://netflixpivot.cloudapp.net/
Desktop : PivotViewer

 Disponible
     en add-on avec Silverlight 4

     directement avec Silverlight 5



 Côté serveur
     Génération du contenu statique ou dynamique



 Côté client
     Associer des actions

     Personnaliser les couleurs, fond, police …
Déclinable facilement sur tout type
de device
  • Une appli par plate-forme cliente
  • Toujours les mêmes données
                                Data
                                DAL



                            LAN, WAN, …



      WP7     Silverlight     .Net                …
                                          Html5


    Faciliter l’accès aux données et aux services métiers
    Services http REST
Un service de données
interopérable :OData
                                    Data
                                    DAL
                                                  Réponse =
                                  OData           Flux XML/JSON

                                LAN, WAN, …

           Question =
             URI http
     WP7          Silverlight     .Net                      …
                                              Html5




Ex Netflix: les films des années 80 ayant une note > 4 et leur award
http://odata.netflix.com/Catalog/Titles?$filter=ReleaseYear le 1989
and ReleaseYear ge 1980 and AverageRating gt 4&$expand=Awards
OData

  Quelques précisions complémentaires au dessus de
  REST (~profil): Odata
    http://www.odata.org/developers/protocols/overview




  De nombreux SDK pour accélérer la consommation et la
  production
    http://www.odata.org/developers/odata-sdk

    Javascript, PHP, Java, ruby, Windows Phone
     7, Objective-
     C, .NET, Silverlight, Joomla, Drupal, MySql, RemObjec
     ts Data Abstract
BDD relationnelle ? C’est bon pour
nous ? Sql/noSql
 Considération               Sql               noSql
 Volumétrie                  Mo -> To          Mo -> Po
 Cas d’utilisation           Universel         Spécifique
 Maturité des technologies   Au moins 20 ans   Beaucoup de solutions très
                                               récentes
 Nature des données          Tables            Clefs/valeurs
                             Schéma fixe       Colonnes
                                               Documents
                                               Graphes
                                               …
 Montée en charge            Non linéaire      linéaire

    Fédérations SQL Azure
    Complémentarité
Application publique : Charge
indéterminée
   Plateforme Cloud ?
   Pourquoi ?

 !!! Le client est frileux : il ne veut pas être lié au Cloud de
 manière définitive          Inactivité
    Compute




                                                           Compute
     Prévoir une architecture réversible
              Utilisation                    Utilisation
                                                                                      Utilisation
                                                                                      Moyenne

                              Temps                                    Temps
   Compute




                                                           Compute




                            Utilisation Moyenne                      Utilisation Moyenne


                             Temps                                     Temps
Utiliser des providers d’identité
existants
(Facebook, Google, LiveID, …) Azure Access Control
     Par les APIs de chaque Par Windows
            fournisseur                    Services

       Gérer les règles au          L’application reconnaît
        niveau de l’application       ACS
       Gérer les différents         On configure ACS pour
        protocoles et formats         accepter des
        de jetons                     fournisseurs d’identité
       Les maintenir
Remplissons ce modèle

                                       Vues
                   Cinématique
    Interface
                                      Modèles
    Utilisateur
                        Accès aux services




                           Interfaces de services

    Service                       métier

                  Accès aux données      Accès aux services




          Entrepôt de données                   Service
Architecture à ce stade
                                                                  Pivot
          Silverlight              Objective-CPages              Viewer
   WP7                   iPhone     Nav               Desktop (Silverlight)
                                             Objets
                            Android
         OData Client                        métier
                                   OData Client
                                                                 OData            Client
                                                                 Client
                                     OData Client



               Access Control Services



                                                                                 Serveur
                                           OData                                 Web/App:
              Service                                                         Windows Server
                                               ?                                   ou
                                                                              Windows Azure


                                                                                  Données
                                          DB
La conception et les choix
d’implémentation
WCF Data Services :
OData pour .Net
WCF Data Services :
OData pour .Net
                       Sql         Sql
                      Server      Azure

                                  Chaine de connexion

                      Entity Framework                  Serveur

                         WCF Data
                         Services


        WCF Data         WCF Data          Client
        Services         Services          OData
                                                        Client
        Silverlight      Silverlight
                                          iPhone, …
        pour WP           Desktop
Windows Azure




                                                    WS-Federation


                                                      OpenID
Accélérateur Pour Windows Phone mais aussi iOS et
Android:
http://watwp.codeplex.com/
https://github.com/microsoft-dpe/wa-toolkit-ios
Architecture Réversible
 Besoins
   Déploiement des données et services à demeure ou Cloud
   Stockage des fichiers d’image à demeure ou sur les blobs
   Transparent pour les apps clientes

 Simple mais à prévoir dès le départ pour abstraire
 - Le choix de la base
 - Le choix du lieu de stockage des images

 Comment ?
   Fichiers de config azure pour chaine de connexion à la BDD
   Service de stockage des photos renvoyant une simple Uri
Srockage des photos
   Sur disque à demeure
   Sur les blobs dans Azure

 Création d’un service qui implémente l’abstraction du lieu de
 stockage

 Pour le client:
 1. Appel d’un service intermédiaire Uri GetUriForImage();
 2. PUT de l’image (Stream) sur l’Uri

 Sécurité par Shared Access Key sur Windows Azure
 http://nuget.org/packages/Phone.Storage.AccessControl
Upload: cas Windows Azure

                client


        (1)                   (3)


                            (2)
    Service d’images                 Blobs



  (1) GetUriForImage renvoie une Shared Access Signature demandée au service de
  stockage avec la clef du compte (2) pour
  (3) PUT directement vers le service de Blobs. L’URI contient l’adresse avec la clef
  temporaire
      Exemple:
       https://stockageazure.blob.core.windows.net/sample/wines/ChateauSample.jpg
       ?st=2012-01-20T16%3A33%3A20Z&se=2012-01-
       20T17%3A33%3A20Z&sr=c&sp=rw&sig=HgX671MAcaQvwAEB3ITXz5k8zct11
       3OR6iW5NpB67uE%3D
Upload: cas Windows Server

               client


        (1)           (2)




   Service d’images



                     (2)
                            (1) GetUriForImage renvoie vers le
                            service lui-même
              NTFS          (2) PUT vers le service d’images qui
                            fait suivre le stream vers le dossier
                            NTFS
Access Control Services +
Windows Phone + OData
                          1 credentials



                                 2 token

                                    5 validity
                      3 http Request ok/not ok
                      with token
                                                       4 check token validity

                                                           6 Compute
                                                           results or
                                                           security
                   7 OData results or                      exception
                   security exception      OData Service

NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD
Synthèse
          Silverlight                                                               Pivot Viewer
                                           Objective-C Pages                        (Silverlight)
  WP7                       iPhone           Nav                          Desktop
                                                          Objets
                                 Android
          WCF Data
                                           OData Client
                                                          métier                    WCF Data        Client
          Services                                                                  Services
                                               OData Client




             Access Control Services

                                                                                                    Serveur
                Photo Upload Service
                                                                        WCF Data Services

   Service File System      Blob Client


                                                                         Entity Framework




   File System                Blobs                                                                 Données
                                                                                    SQL Azure
                                                                   Sql Server
                                                                                      DB
De A à Z : Choisir une
  architecture pour sa
  solution applicative
  (ARC201)
7 février 2012

Stéphanie Hertrich                Benjamin Guinebertière
blogs.msdn.com/stephe             www.benjguin.com
Relation technique développeurs   Relation technique architectes
Microsoft France                  Microsoft France

Weitere ähnliche Inhalte

Was ist angesagt?

Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeOuadie LAHDIOUI
 
Hello AngularJS - Back to the future
Hello AngularJS - Back to the futureHello AngularJS - Back to the future
Hello AngularJS - Back to the futureOuadie LAHDIOUI
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyonClement Bouillier
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSOAT
 
Multitenancy avec JPA ou Hibernate
Multitenancy avec JPA ou HibernateMultitenancy avec JPA ou Hibernate
Multitenancy avec JPA ou HibernateFlorian Beaufumé
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
MVVM par Karim PIerre Maalej
MVVM par Karim PIerre MaalejMVVM par Karim PIerre Maalej
MVVM par Karim PIerre MaalejCocoaHeads France
 
Windows azure media services : Plateforme VOD
Windows azure media services : Plateforme VODWindows azure media services : Plateforme VOD
Windows azure media services : Plateforme VODMicrosoft Technet France
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftLeTesteur
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetupAspectize
 
Nuxeo Tech Talk AngularJS
Nuxeo Tech Talk AngularJSNuxeo Tech Talk AngularJS
Nuxeo Tech Talk AngularJSNuxeo
 
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 20167 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016Sébastien Le Marchand
 
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...Worteks
 

Was ist angesagt? (20)

Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitée
 
Hello AngularJS - Back to the future
Hello AngularJS - Back to the futureHello AngularJS - Back to the future
Hello AngularJS - Back to the future
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Java Server Faces - Beyond
Java Server Faces - BeyondJava Server Faces - Beyond
Java Server Faces - Beyond
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVC
 
Multitenancy avec JPA ou Hibernate
Multitenancy avec JPA ou HibernateMultitenancy avec JPA ou Hibernate
Multitenancy avec JPA ou Hibernate
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
MVVM par Karim PIerre Maalej
MVVM par Karim PIerre MaalejMVVM par Karim PIerre Maalej
MVVM par Karim PIerre Maalej
 
WPF MVVM
WPF MVVMWPF MVVM
WPF MVVM
 
Windows azure media services : Plateforme VOD
Windows azure media services : Plateforme VODWindows azure media services : Plateforme VOD
Windows azure media services : Plateforme VOD
 
Starter Kits
Starter KitsStarter Kits
Starter Kits
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoft
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetup
 
Nuxeo Tech Talk AngularJS
Nuxeo Tech Talk AngularJSNuxeo Tech Talk AngularJS
Nuxeo Tech Talk AngularJS
 
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 20167 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
 
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
 

Ähnlich wie De A à Z : Choisir une architecture pour sa solution applicative

Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureMicrosoft
 
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...Microsoft Technet France
 
Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services PlatformGregory Renard
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataMicrosoft
 
Comment intégrer une application ASP.NET dans Windows Azure
Comment intégrer une application ASP.NET dans Windows AzureComment intégrer une application ASP.NET dans Windows Azure
Comment intégrer une application ASP.NET dans Windows AzureMicrosoft Technet France
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introductionMoez Re
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNukeMicrosoft
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012Cyril P
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudMicrosoft
 
Introduction à Samsung bada
Introduction à Samsung badaIntroduction à Samsung bada
Introduction à Samsung badaBeMyApp
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
Microsoft - Solution Virtualisation Windows Server 08
Microsoft - Solution Virtualisation Windows Server 08Microsoft - Solution Virtualisation Windows Server 08
Microsoft - Solution Virtualisation Windows Server 08actualblog
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 

Ähnlich wie De A à Z : Choisir une architecture pour sa solution applicative (20)

Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows Azure
 
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
System Center 2012 | Administrez vos clouds privé et public Windows Azure ave...
 
Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services Platform
 
Azure Mesh Et Surface
Azure Mesh Et SurfaceAzure Mesh Et Surface
Azure Mesh Et Surface
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
 
Comment intégrer une application ASP.NET dans Windows Azure
Comment intégrer une application ASP.NET dans Windows AzureComment intégrer une application ASP.NET dans Windows Azure
Comment intégrer une application ASP.NET dans Windows Azure
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introduction
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNuke
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012
 
Framework .net overview
Framework .net overviewFramework .net overview
Framework .net overview
 
Open Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le CloudOpen Data Ready ! Libérez vos données avec OData et le Cloud
Open Data Ready ! Libérez vos données avec OData et le Cloud
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Introduction à Samsung bada
Introduction à Samsung badaIntroduction à Samsung bada
Introduction à Samsung bada
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Le Cloud pour l'Education
Le Cloud pour l'EducationLe Cloud pour l'Education
Le Cloud pour l'Education
 
Microsoft - Solution Virtualisation Windows Server 08
Microsoft - Solution Virtualisation Windows Server 08Microsoft - Solution Virtualisation Windows Server 08
Microsoft - Solution Virtualisation Windows Server 08
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 

Mehr von Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Mehr von Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

De A à Z : Choisir une architecture pour sa solution applicative

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. De A à Z : Choisir une architecture pour sa solution applicative (ARC201) 7 février 2012 Stéphanie Hertrich Benjamin Guinebertière blogs.msdn.com/stephe www.benjguin.com Relation technique développeurs Relation technique architectes Microsoft France Microsoft France
  • 3. Agenda 1. Le besoin métier 2. L’analyse et le choix des technologies 3. La conception et les choix d’implémentation 4. Conclusion
  • 4. Ce que la session n’est pas http://msdn.microsoft.com/en- us/library/ff650706.aspx
  • 6. Le besoin métier Application Cave à Vins Téléphone, tablette, Desktop, multi-plateforme Cas d’utilisation différents  L’utilisateur emmène son téléphone au supermarché : aide au choix parmi les bouteilles en rayon par lecture du code-barre  Chez moi sur le poste de travail, je parcours le catalogue complet des vins
  • 7. Contraintes s’ajoutant au Cahier des charges La plus belle app de cave à vins => Priorité à l’UX car concurrence importante sur ce type d’applications qui vise potentiellement tout le monde Déclinable facilement sur tout type de device (phone, tablette, desktop) Appli publique, collaborative, charge variable/indéterminée Identification du propriétaire de la cave : réutiliser son compte FB, Google, Live, …
  • 8. L’analyse et le choix des technologies
  • 9. La plus belle app de cave à vins Constat UX réussie => bien intégrée et homogène avec l’ergonomie nativement proposée par le device Solution Utiliser les contrôles du langage natif Développer en langage natif des principales plateformes Le fallback pourrait être une interface web (PhoneGap)
  • 10. Desktop : PivotViewer Pourquoi réinventer la roue ? IHM de manipulation de collection Ex : http://netflixpivot.cloudapp.net/
  • 11. Desktop : PivotViewer Disponible  en add-on avec Silverlight 4  directement avec Silverlight 5 Côté serveur  Génération du contenu statique ou dynamique Côté client  Associer des actions  Personnaliser les couleurs, fond, police …
  • 12. Déclinable facilement sur tout type de device • Une appli par plate-forme cliente • Toujours les mêmes données Data DAL LAN, WAN, … WP7 Silverlight .Net … Html5 Faciliter l’accès aux données et aux services métiers Services http REST
  • 13. Un service de données interopérable :OData Data DAL Réponse = OData Flux XML/JSON LAN, WAN, … Question = URI http WP7 Silverlight .Net … Html5 Ex Netflix: les films des années 80 ayant une note > 4 et leur award http://odata.netflix.com/Catalog/Titles?$filter=ReleaseYear le 1989 and ReleaseYear ge 1980 and AverageRating gt 4&$expand=Awards
  • 14. OData Quelques précisions complémentaires au dessus de REST (~profil): Odata  http://www.odata.org/developers/protocols/overview De nombreux SDK pour accélérer la consommation et la production  http://www.odata.org/developers/odata-sdk  Javascript, PHP, Java, ruby, Windows Phone 7, Objective- C, .NET, Silverlight, Joomla, Drupal, MySql, RemObjec ts Data Abstract
  • 15. BDD relationnelle ? C’est bon pour nous ? Sql/noSql Considération Sql noSql Volumétrie Mo -> To Mo -> Po Cas d’utilisation Universel Spécifique Maturité des technologies Au moins 20 ans Beaucoup de solutions très récentes Nature des données Tables Clefs/valeurs Schéma fixe Colonnes Documents Graphes … Montée en charge Non linéaire linéaire Fédérations SQL Azure Complémentarité
  • 16. Application publique : Charge indéterminée Plateforme Cloud ? Pourquoi ? !!! Le client est frileux : il ne veut pas être lié au Cloud de manière définitive Inactivité Compute Compute Prévoir une architecture réversible Utilisation Utilisation Utilisation Moyenne Temps Temps Compute Compute Utilisation Moyenne Utilisation Moyenne Temps Temps
  • 17. Utiliser des providers d’identité existants (Facebook, Google, LiveID, …) Azure Access Control Par les APIs de chaque Par Windows fournisseur Services  Gérer les règles au  L’application reconnaît niveau de l’application ACS  Gérer les différents  On configure ACS pour protocoles et formats accepter des de jetons fournisseurs d’identité  Les maintenir
  • 18. Remplissons ce modèle Vues Cinématique Interface Modèles Utilisateur Accès aux services Interfaces de services Service métier Accès aux données Accès aux services Entrepôt de données Service
  • 19. Architecture à ce stade Pivot Silverlight Objective-CPages Viewer WP7 iPhone Nav Desktop (Silverlight) Objets Android OData Client métier OData Client OData Client Client OData Client Access Control Services Serveur OData Web/App: Service Windows Server ? ou Windows Azure Données DB
  • 20. La conception et les choix d’implémentation
  • 21. WCF Data Services : OData pour .Net
  • 22. WCF Data Services : OData pour .Net Sql Sql Server Azure Chaine de connexion Entity Framework Serveur WCF Data Services WCF Data WCF Data Client Services Services OData Client Silverlight Silverlight iPhone, … pour WP Desktop
  • 23. Windows Azure WS-Federation OpenID Accélérateur Pour Windows Phone mais aussi iOS et Android: http://watwp.codeplex.com/ https://github.com/microsoft-dpe/wa-toolkit-ios
  • 24. Architecture Réversible Besoins Déploiement des données et services à demeure ou Cloud Stockage des fichiers d’image à demeure ou sur les blobs Transparent pour les apps clientes Simple mais à prévoir dès le départ pour abstraire - Le choix de la base - Le choix du lieu de stockage des images Comment ? Fichiers de config azure pour chaine de connexion à la BDD Service de stockage des photos renvoyant une simple Uri
  • 25. Srockage des photos Sur disque à demeure Sur les blobs dans Azure Création d’un service qui implémente l’abstraction du lieu de stockage Pour le client: 1. Appel d’un service intermédiaire Uri GetUriForImage(); 2. PUT de l’image (Stream) sur l’Uri Sécurité par Shared Access Key sur Windows Azure http://nuget.org/packages/Phone.Storage.AccessControl
  • 26. Upload: cas Windows Azure client (1) (3) (2) Service d’images Blobs (1) GetUriForImage renvoie une Shared Access Signature demandée au service de stockage avec la clef du compte (2) pour (3) PUT directement vers le service de Blobs. L’URI contient l’adresse avec la clef temporaire  Exemple: https://stockageazure.blob.core.windows.net/sample/wines/ChateauSample.jpg ?st=2012-01-20T16%3A33%3A20Z&se=2012-01- 20T17%3A33%3A20Z&sr=c&sp=rw&sig=HgX671MAcaQvwAEB3ITXz5k8zct11 3OR6iW5NpB67uE%3D
  • 27. Upload: cas Windows Server client (1) (2) Service d’images (2) (1) GetUriForImage renvoie vers le service lui-même NTFS (2) PUT vers le service d’images qui fait suivre le stream vers le dossier NTFS
  • 28. Access Control Services + Windows Phone + OData 1 credentials 2 token 5 validity 3 http Request ok/not ok with token 4 check token validity 6 Compute results or security 7 OData results or exception security exception OData Service NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD
  • 29. Synthèse Silverlight Pivot Viewer Objective-C Pages (Silverlight) WP7 iPhone Nav Desktop Objets Android WCF Data OData Client métier WCF Data Client Services Services OData Client Access Control Services Serveur Photo Upload Service WCF Data Services Service File System Blob Client Entity Framework File System Blobs Données SQL Azure Sql Server DB
  • 30. De A à Z : Choisir une architecture pour sa solution applicative (ARC201) 7 février 2012 Stéphanie Hertrich Benjamin Guinebertière blogs.msdn.com/stephe www.benjguin.com Relation technique développeurs Relation technique architectes Microsoft France Microsoft France

Hinweis der Redaktion

  1. BenjNous ne traiterons pas tout en 1 h !