La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Comment devenir un bon Architecte ? Épisode 3 – Mes 3 patterns préférés Frank Guiducci.

Présentations similaires


Présentation au sujet: "Comment devenir un bon Architecte ? Épisode 3 – Mes 3 patterns préférés Frank Guiducci."— Transcription de la présentation:

1 Comment devenir un bon Architecte ? Épisode 3 – Mes 3 patterns préférés Frank Guiducci

2 Agenda 2 Des Patterns et de leur utilisation Description des 3 patterns Les patterns pour les développeurs Support des patterns en.Net avant 3.0 Les patterns pour les architectes: Un détour par larchitecture dentreprise Les apports fondamentaux de.Net 3.x pour le développement dapplication et larchitecture dentreprise

3 3 De la littérature A Pattern Language - Towns Buildings Construction A Pattern Language - Towns Buildings Construction C. Alexander et al Oxford University Press, 1977 Design Patterns Design Patterns Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Addison-Wesley, 1995 Enterprise Solution Patterns using Microsoft.NET Enterprise Solution Patterns using Microsoft.NET Microsoft Patterns & Practices, 2003 Integration Patterns Microsoft Patterns & Practices, 2004 Pattern-Oriented Software Architecture Pattern-Oriented Software Architecture Buschmann et al Wiley, 1996 Pattern-Oriented Software Architecture Vol.2 Pattern-Oriented Software Architecture Vol.2 Schmidt et al Wiley, 2000 Patterns of Enterprise Application Architecture Patterns of Enterprise Application Architecture Martin Fowler Addison-Wesley, 2003 Enterprise Integration Patterns Enterprise Integration Patterns Gregor Hohpe, Bobby Woolf Addison-Wesley, 2004

4 4 Patterns: Elements of Reusable O-O Sw Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides « … Simple and elegant solutions to specific problems … » « Design patterns capture solutions that have developed and evolve over time » « They arent the designs people tend to generate initially » « They reflect untold redesign end recoding as developers have struggled for greater reuse and flexibility in their software. » Utilisable Pour du développement Comme de larchitecture dentreprise

5 Fondamentalement Du bon sens et de lexpérience avec un nom bizarre Structure: Problème / Solution / Conséquence Comprendre et adapter/adopter Composer Un pattern est un élément clé du cycle de vie du logiciel Conception Evolution Ses buts Simplifie le développement Rend larchitecture plus lisible, prévisible et maintenable Le côté obscur: La sur-architecture Les guerres de religion 5

6 6 Des patterns aux exécutables Implementations des patterns, Blocks, Frameworks & Serveurs logiques Sélection de Patterns Liaison des Patterns à la plate forme octets & machines

7 7 Scenari Baseline Architectures (Apps blanches - squelettes) Patterns et modèle de Référence Block Library Composition dimplémentation des patterns pour répondre aux exigences des scenari Limplementation des patterns comprend des blocks et du code généré par des outils (cf Software factories et DSL) Scénari dArchitecture Ex: client soumettant des demandes unidirectionnelles de services via files de messages, SOAP, Transaction englobant les files de messages et des actions métiers, … Outils Selection de Pattern Implementation de patterns Utilisation de Block Génération de code Configuration Selection de patterns dapplication distribuée Composition adhoc de patterns Une bibliothèque de block génériques configurables Les blocks ou leur composition peuvent implémenter des patterns, en incorporer ou non. AbstraitCode

8 8 Facade « fournit une interface unifiée à un ensemble dinterfaces de sous systeme(s). Une facade définit une interface de plus haut niveau qui rend le(s) sous-système(s) plus simple à utiliser » Fournit un niveau dabstraction plus élevé Simplifie lutilisation du (des) sous-système(s) Fournit une vue par defaut simple et adaptée à la plupart des clients Découple les sous-systeme(s) des clients (Sunrise / Sunset…) Permet une architecture en couches Une facade peut avoir une fonction intrinsèque (transformations, gestion detat, gestion de communication (retry…), gestion des transactions…) Facade vs mediator: une facade est unidirectionnelle, un mediator permet un comportement cooperatif (multidirectionnel)

9 9 Observeur Observer (aka dependents – publish/subscribe) « Définit une relation 1:many de dépendance entre objets de manière à ce que quand un objet change détat tous ses dépendants soient notifiés et mis à jour » Application: Une abstraction qui a deux aspects indépendants que lon veut faire évoluer indépendamment. Quand la modification dun objet nécessite la modification dun nombre inconnu dobjets. Quand un objet doit informer dautre objets sans présumer de leur type (couplage lache). Attention: Mise à jour en cascade et définition du changement

10 10 Mediateur Mediator « Définit un objet qui encapsule une interaction entre objets. Le médiator prone un couplage lache en evitant que les objets ne soient directement connectés et permet de faire évoluer linteraction independamment des participants.» Utilisation: Un ensemble dobjets communique de manière bien définie mais complexe. Quand la reutilisation dun objet est difficile car il est connecté et communique avec dautres objets. Un comportement qui est distribué entre différentes classes et qui doit être paramétrable facilement Benefices Comportement centralisé (definition, administration) Decouple les intervenants et les mediateurs: (indépendance dans la réutilisation) Simplify les relations entre objets: de (many to many) à ( 1 to many) Facilité de maintenance, dévolution et dadministration Abstraction de la coopération entre objets Focus sur linteraction vs le comportement individuel Contrôle centralisé

11 Eléments dutilisation des patterns pour le développement dune application 11 Façade: Principalement dans le design de composants Définition dinterfaces pour une classe Utilisation de web services Observer Très utile dans les IHM Systèmes Distribués (connectés?...) Mediateur Communication entre composants Communication avec lextérieur Composition – en liaison avec la façade Structuration de la communication entre les éléments du système distribué

12 .Net facilite-t-il lutilisation de ces patterns (avant.Net 3.0) 12 Façade Interfaces Web Services Observer Events et delegates Pub/Sub sur MSMQ Mediateur ??

13 13 Lévolution du système dinformation De 6 à 28 interfacesDe 6 à 28 interfaces De 4 à 8 technologies différentesDe 4 à 8 technologies différentes « 40% des budgets IT sont dépensés en intégration dapplication » Source Gartner Group. « 20% à 80% du coût dune nouvelle application est le coût de son interfaçage » Source Forrester Research.

14 La base des solutions dEAI, aka Serveurs dintégration… aka BizTalk chez Microsoft 14 Connection Abstraction de la couche technique Transformations Facade Bus - EDA Pub / Sub sur MiddleWare de messaging (corba, MSMQ, MQSeries,…) Observer Processus métiers / Technique BAM Médiateur

15 Les spécifications du processus 15

16 Implémentation du processus: Médiateur (version pro-active) 16

17 Abstraction de la connection: Facade 17

18 Facade et Médiateur: composition 18

19 Et Lobserver? – avec le médiateur 19

20 Observer (suite) – avec le médiateur 20

21 L observer tout seul 21

22 Le BAM: point fort du médiateur 22

23 23 Du framework de développement à larchitecture dentreprise:.Net 3.x

24 24 Du framework de développement à larchitecture dentreprise:.Net 3.x

25 25 Façade Séparation contrat de service et de limplémentation Façade pour ladmin et pour le développeur Séparation du schéma et de linterprétation pour le déploiement Observer WCF async callback Mediateur: (enfin) Workflow Foundation: un médiateur pour tous Séparation du schéma et de linterprétation pour le déploiement

26 Quest quun workflow? Une abstraction pour décrire un scénario réel Un ensemble dActivités qui coordonne des humains ou des logiciels ou des composants… Matérialise un état dans un cadre très large (au delà de lEAI et du workflow humain)

27 WF Unification : Workflow Foundation Un framework généraliste pour permettre de BATIR nimporte quelle application devant réagir à des stimuli externes modélisant linteraction entre entités (la caractéristique principale étant que lapplication peut attendre les stimuli durant une période indéterminée).

28 Point-clé pour WF: flexibilité Les Commandes validées dans les 48 heures et envoyées dans les 30 jours Vérification de la validation de la commande par le fournisseur Persistence Flexibilité Suivi Workflow exécuté sur 30 jours Ou: scénarios à très faible latence modification du worklow en cours dexécution Ou: workflow rigides Visualisation de létat du workflow ou: pas de tracking Etat de la commande ? Etape suivante ?

29 Les différents formalismes Sequentiel Structure séquentielle, workflow formel Le workflow contrôle le déroulement Machine à Etats Les événements externes gèrent le workflow Informel et adaptatif Rules Driven Règles et données gère le comportement Conditions simples, policies evoluées

30 Un médiateur réactif 30

31 Activités: extensibilité Librairie dactivités de base Activités OOB, Types de workflows, types de base Générique Activity libraries define workflow constructs Librairie dactivités spécifique Créer / Etendre / Composer des activités App-specific building blocks First-class citizens Packages de workflow métiers Activités et workflow métiers Bonnes pratiques / connaissance métier (IP)

32 Architecture ouverte et extensible Choix du designer (visuels ou code) Activités extensibles Choix de lhébergement De la persistance Du tracking De la communication Humains Applications métiers Host Process Windows Workflow Foundation Windows Workflow Foundation Workflow Custom Activity Library Visual Designer Base Activity Library Rules Engine Runtime Engine Runtime Services

33 Agenda 33 Des Patterns et de leur utilisation Description des 3 patterns Les patterns pour les développeurs Support des patterns en.Net avant 3.0 Les patterns pour les architectes: Un détour par larchitecture dentreprise Les apports fondamentaux de.Net 3.x pour le développement dapplication et larchitecture dentreprise QUESTIONS??


Télécharger ppt "Comment devenir un bon Architecte ? Épisode 3 – Mes 3 patterns préférés Frank Guiducci."

Présentations similaires


Annonces Google