De A à Z : Choisir une architecture pour sa solution applicative
-
Upload
microsoft -
Category
Technology
-
view
177 -
download
1
description
Transcript of De A à Z : Choisir une architecture pour sa solution applicative
![Page 1: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/1.jpg)
palais des congrès Paris
7, 8 et 9 février 2012
![Page 2: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/2.jpg)
7 février 2012
Stéphanie Hertrichblogs.msdn.com/stepheRelation technique développeursMicrosoft France
De A à Z : Choisir une architecture pour sa solution applicative (ARC201)
Benjamin Guinebertière www.benjguin.comRelation technique architectesMicrosoft France
![Page 3: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/3.jpg)
Agenda
1. Le besoin métier2. L’analyse et le choix des technologies3. La conception et les choix d’implémentation4. Conclusion
![Page 4: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/4.jpg)
http://msdn.microsoft.com/en-us/library/ff650706.aspx
Ce que la session n’est pas
![Page 5: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/5.jpg)
Le besoin métier
![Page 6: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/6.jpg)
Application Cave à VinsTéléphone, tablette, Desktop, multi-plateformeCas 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
Le besoin métier
![Page 7: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/7.jpg)
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, …
Contraintes s’ajoutant au Cahier des charges
![Page 8: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/8.jpg)
L’analyse et le choix des technologies
![Page 9: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/9.jpg)
ConstatUX réussie => bien intégrée et homogène avec l’ergonomie nativement proposée par le device
SolutionUtiliser les contrôles du langage natifDévelopper en langage natif des principales plateformesLe fallback pourrait être une interface web (PhoneGap)
La plus belle app de cave à vins
![Page 10: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/10.jpg)
Pourquoi réinventer la roue ?IHM de manipulation de collection
Ex : http://netflixpivot.cloudapp.net/
Desktop : PivotViewer
![Page 11: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/11.jpg)
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 …
Desktop : PivotViewer
![Page 12: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/12.jpg)
• Une appli par plate-forme cliente • Toujours les mêmes données
Þ Faciliter l’accès aux données et aux services métiers
Þ Services http REST
Déclinable facilement sur tout type de device
DataDAL
WP7 Silverlight .Net Html5 …
LAN, WAN, …
![Page 13: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/13.jpg)
Ex Netflix: les films des années 80 ayant une note > 4 et leur awardhttp://odata.netflix.com/Catalog/Titles?$filter=ReleaseYear le 1989 and ReleaseYear ge 1980 and AverageRating gt 4&$expand=Awards
Un service de données interopérable :OData
Data
DAL
WP7 Silverlight .Net Html5
Réponse =Flux XML/JSON
Question = URI http
…
LAN, WAN, …
OData
![Page 14: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/14.jpg)
Quelques précisions complémentaires au dessus de REST (~profil): Odata http://
www.odata.org/developers/protocols/overview
OData
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, RemObjects Data Abstract
![Page 15: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/15.jpg)
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 TablesSchéma fixe
Clefs/valeursColonnesDocumentsGraphes…
Montée en charge Non linéaire linéaire
BDD relationnelle ? C’est bon pour nous ? Sql/noSql
Fédérations SQL AzureComplémentarité
![Page 16: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/16.jpg)
Plateforme Cloud ?Pourquoi ?
!!! Le client est frileux : il ne veut pas être lié au Cloud de manière définitive
Prévoir une architecture réversible
Application publique : Charge indéterminée
Utilisation
Com
pute
Temps
Utilisation
Inactivité
“Puissance Ponctuelle“
Com
pute
Temps
“Pics Imprévisibles“
Utilisation Moyenne
Utilisation MoyenneCom
pute
Temps
“Croissance Rapide “
Com
pute
Temps
Utilisation Moyenne
“Pics Prévisibles“
![Page 17: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/17.jpg)
Par les APIs de chaque fournisseur
Par Windows Azure Access Control Services
Gérer les règles au niveau de l’application
Gérer les différents protocoles et formats de jetons
Les maintenir
L’application reconnaît ACS
On configure ACS pour accepter des fournisseurs d’identité
Utiliser des providers d’identité existants(Facebook, Google, LiveID, …)
![Page 18: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/18.jpg)
InterfaceUtilisateur
Service
ServiceEntrepôt de données
métier
Accès aux données Accès aux services
Interfaces de services
Accès aux services
Modèles
VuesCinématique
Remplissons ce modèle
![Page 19: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/19.jpg)
Android
OData Client
Objets métier
PagesNav
DB
WP7
OData Client
Silverlight
Architecture à ce stade
Client
Serveur Web/App:Windows Server
ouWindows Azure
Données
Desktop
OData Client
Pivot Viewer
(Silverlight)iPhone
OData Client
Objective-C
Service
OData
Access Control Services
?
![Page 20: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/20.jpg)
La conception et les choix d’implémentation
![Page 21: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/21.jpg)
WCF Data Services :OData pour .Net
WCF Data Services
Entity Framework Provider
HTTP
.NET Provider Custom Providers
Entity Framework.NET Types +
IQueryable/IUpdatable
Business Logic/Authentication/Authorization
![Page 22: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/22.jpg)
WCF Data Services : OData pour .Net
Entity Framework
Sql Serve
r
Sql Azure
WCF Data Services
WCF Data Services
WCF Data Services
Silverlight pour WP
Silverlight Desktop
iPhone, …
Client OData
Client
Serveur
Chaine de connexion
![Page 23: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/23.jpg)
Accélérateur Pour Windows Phone mais aussi iOS et Android:http://watwp.codeplex.com/https://github.com/microsoft-dpe/wa-toolkit-ioshttps://github.com/microsoft-dpe/wa-toolkit-android
Windows Azure
WS-Federation
OpenID
![Page 24: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/24.jpg)
BesoinsDéploiement des données et services à demeure ou CloudStockage des fichiers d’image à demeure ou sur les blobsTransparent 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 BDDService de stockage des photos renvoyant une simple Uri
Architecture Réversible
![Page 25: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/25.jpg)
Sur disque à demeureSur 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
Srockage des photos
![Page 26: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/26.jpg)
(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=HgX671MAcaQvwAEB3ITXz5k8zct113OR6iW5NpB67uE%3D
Upload: cas Windows Azure
client
Service d’images Blobs
(1) (3)
(2)
![Page 27: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/27.jpg)
(1) GetUriForImage renvoie vers le service lui-même(2) PUT vers le service d’images qui fait suivre le stream vers le dossier NTFS
Upload: cas Windows Server
client
Service d’images
NTFS
(1) (2)
(2)
![Page 28: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/28.jpg)
Access Control Services + Windows Phone + OData
1 credentials
2 token
OData Service
3 http Requestwith token
4 check token validity
5 validity ok/not ok
7 OData results or security exception
6 Compute results or security exception
NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD
![Page 29: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/29.jpg)
Service
WP7
WCF Data Services
Silverlight
Android
OData Client
Objets métier
Pages
Nav
Synthèse
Client
Serveur
Données
Desktop
WCF Data Services
Pivot Viewer
(Silverlight)iPhone
OData Client
Objective-C
SQL Azure DB
Sql Server
Entity Framework
WCF Data Services
Access Control Services
BlobsFile System
Photo Upload Service
File System Blob Client
![Page 30: De A à Z : Choisir une architecture pour sa solution applicative](https://reader038.fdocument.pub/reader038/viewer/2022102815/557d36e5d8b42a585f8b4ad4/html5/thumbnails/30.jpg)
7 février 2012
Stéphanie Hertrichblogs.msdn.com/stepheRelation technique développeursMicrosoft France
De A à Z : Choisir une architecture pour sa solution applicative (ARC201)
Benjamin Guinebertière www.benjguin.comRelation technique architectesMicrosoft France