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 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 l’architecture d’entreprise Les apports fondamentaux de .Net 3.x pour le développement d’application et l’architecture d’entreprise

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

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 aren’t 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 l’architecture d’entreprise

5 Fondamentalement Du bon sens et de l’expé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 l’architecture plus lisible, prévisible et maintenable Le côté obscur: La sur-architecture Les guerres de religion

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

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

8 Facade Facade « fournit une interface unifiée à un ensemble d’interfaces 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 d’abstraction plus élevé Simplifie l’utilisation 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 d’etat, gestion de communication (retry…), gestion des transactions…) Facade vs mediator: une facade est unidirectionnelle, un mediator permet un comportement cooperatif (multidirectionnel)

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 l’on veut faire évoluer indépendamment. Quand la modification d’un objet nécessite la modification d’un nombre inconnu d’objets. Quand un objet doit informer d’autre objets sans présumer de leur type (couplage lache). Attention: Mise à jour en cascade et définition du changement

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 l’interaction independamment des participants.» Utilisation: Un ensemble d’objets communique de manière bien définie mais complexe. Quand la reutilisation d’un objet est difficile car il est connecté et communique avec d’autres 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 d’administration Abstraction de la coopération entre objets Focus sur l’interaction vs le comportement individuel Contrôle centralisé

11 Eléments d’utilisation des patterns pour le développement d’une application
Façade: Principalement dans le design de composants Définition d’interfaces 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 l’exté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 l’utilisation de ces patterns (avant .Net 3.0)
Façade Interfaces Web Services Observer Events et delegates Pub/Sub sur MSMQ Mediateur ??

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

14 La base des solutions d’EAI, aka Serveurs d’intégration… aka BizTalk chez Microsoft
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

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

17 Abstraction de la connection: Facade

18 Facade et Médiateur: composition

19 Et L’observer? – avec le médiateur

20 Observer (suite) – avec le médiateur

21 L ’observer tout seul

22 Le BAM: point fort du médiateur

23 Du framework de développement à l’architecture d’entreprise: .Net 3.x

24 Du framework de développement à l’architecture d’entreprise: .Net 3.x

25 Du framework de développement à l’architecture d’entreprise: .Net 3.x
Façade Séparation contrat de service et de l’implémentation Façade pour l’admin et pour le développeur Séparation du schéma et de l’interprétation pour le déploiement Observer WCF async callback Mediateur: (enfin) Workflow Foundation: un médiateur pour tous

26 Qu’est qu’un workflow? Une abstraction pour décrire un scénario réel
Un ensemble d’Activités qui coordonne des humains ou des logiciels ou des composants… Matérialise un état dans un cadre très large (au delà de l’EAI et du workflow humain)

27 Unification : Workflow Foundation
4/2/2017 8:19 AM Unification : Workflow Foundation Un framework généraliste pour permettre de BATIR n’importe quelle application devant réagir à des stimuli externes modélisant l’interaction entre entités (la caractéristique principale étant que l’application peut attendre les stimuli durant une période indéterminée). WF SharePoint Exchange BizTalk CMS UIP (MVC) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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

31 Activités: extensibilité
Librairie d’activités de base Activités OOB, Types de workflows, types de base Générique Activity libraries define workflow constructs Librairie d’activité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
Visual Designer Workflow Choix du designer (visuels ou code) Activités extensibles Choix de l’hébergement De la persistance Du tracking De la communication Humains Applications métiers Custom Activity Library Windows Workflow Foundation Base Activity Library Rules Engine Runtime Engine Runtime Services Host Process

33 Agenda 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 l’architecture d’entreprise Les apports fondamentaux de .Net 3.x pour le développement d’application et l’architecture d’entreprise 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