30
palais des congrès Paris 7, 8 et 9 février 2012

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

Embed Size (px)

DESCRIPTION

En partant d’un besoin concret qui tient compte des nouveaux usages, nous évaluerons des architectures pouvant servir de squelette à notre solution applicative. Quelles technologies nous aideront à mettre en œuvre au mieux cette solution, et plus généralement, quelles sont les questions à se poser pour bien choisir une architecture et les technologies qui lui seront associées ? Cette session est la première du parcours « De A à Z : Concevoir et développer une solution applicative ». Nous y choisirons les technologies qui seront mises en œuvre dans la solution, tout au long de ce parcours d’une journée. Elle peut être suivie de manière totalement indépendante puisque seul le scénario métier sert de fil rouge dans le parcours.

Citation preview

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

palais des congrès Paris

7, 8 et 9 février 2012

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

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

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

http://msdn.microsoft.com/en-us/library/ff650706.aspx

Ce que la session n’est pas

Benjamin Guinebertière
j'ai remonté cette diapo et changé son titre car en position 23, c'est trop tard pour dire qu'on ne traitera pas tout en 1h!
Page 5: De A à Z : Choisir une architecture pour sa solution applicative

Le besoin métier

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

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

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

L’analyse et le choix des technologies

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

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

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

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

Benjamin Guinebertière
Je pense qu'il faut au moins prévoir en mode réactif une réponse à la question: "vous pensez que Silverlight est une solution pérenne".Réponses: supporté pendant encore 10 ans, sans doute plus longtemps que l'application, compétences XAML, databiding réutilisables en dehors de Silverlight, compétences proches de celles de WP, etc.
Page 12: De A à Z : Choisir une architecture pour sa solution applicative

• 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

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

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

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é

Benjamin Guinebertière
La slide me semble terminée. Il y a une animation, c'est pour cela qu'on ne voit pas le tableau
Page 16: De A à Z : Choisir une architecture pour sa solution applicative

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

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

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

Benjamin Guinebertière
voir par exemple en termes d'inspiration: http://www.andromda.org/docs/andromda-documentation/getting-started-java/application-architecture.htmlhttp://msdn.microsoft.com/en-us/library/ee658127.aspx
Page 19: De A à Z : Choisir une architecture pour sa solution applicative

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

La conception et les choix d’implémentation

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

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

Benjamin Guinebertière
pourquoi .NET Provider est en rouge dans le schéma?
Page 22: De A à Z : Choisir une architecture pour sa solution applicative

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

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

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

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

(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

(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

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

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

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