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

Slides:



Advertisements
Présentations similaires
Applications N-Tiers Rappels: architecture et méthodologie
Advertisements

1 Modéliser Ou comment RE-présenter sa connaissance.
Cilia, un framework de médiation ouvert, léger, multi-personnalités
Eléments de Génie Logiciel
Nos Partenaires Rencontres ASP.NET : Développement Rapide dApplications Web.
Service Software Factory François MERAND Responsable groupe architectes DPE – Division Plateformes & Ecosystème Microsoft France
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Les technologies d’intégration
19 septembre 2006 Tendances Logicielles MDD/MDA : Génération dapplications avec IBM Rational Software Architect Jean-Pierre Schoch –
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Concevoir, déployer et gérer les workflows
Patterns & Anti Patterns
LOG4430 : Architecture logicielle et conception avancée
Projet n°4 : Objecteering
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP slide 1 Cilia, un framework de médiation ouvert, léger, multi-personnalités.
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP slide 1 Cilia, un framework de médiation ouvert, léger, multi-personnalités.
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Rational Unified Process (RUP)
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Le Workflow et ses outils
Copyright © 2004, SAS Institute Inc. All rights reserved. Processus Stockés SAS une perspective analytique Sylvain Tremblay SAS Canada 25 avril 2006.
Interface Homme Machine IHM Pro
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
Page de garde Introduction aux Design Patterns ISIA, Mars 2003
Développement d’applications web
E.Dot – juillet 2005 Page 1 Projet R.N.T.L. e.Dot – Entrepôts de Données Ouverts sur la Toile – Organisation et Structuration.
le profil UML en temps réel MARTE
Sommaire Objectif de Peakup Principes de fonctionnement
Exploitation du modèle holonique dans un cadre combinant IAD et IHM
BPM & BPMS.
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
Patterns et maintenabilité dans lindustrie : un cas concret Christophe Saint-Marcel Silicomp Ingénierie.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Développement d’application web
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Conception des Réalisé par : Nassim TIGUENITINE.
Les étapes du cycle de développement du génie logiciel
Portée, arrimages et intervenants Évolution des méthodes
Toujours partir du besoin métier – Pas dune envie de linformatique Concevoir les services – puis concevoir leur implémentation Le vrai bénéfice est.
Processus d'un projet F.Pfister
Sensibilisation a la modelisation
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Patrons de conceptions de créations
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Design Patterns en programmation par objets. Plan  Design patterns –De quoi s’agit-il? –Pourquoi faut-il les utiliser?  Design patterns essentiels 
Supports de formation au SQ Unifié
Designs Patterns comment rendre son code faiblement couplé, et maintenable...
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Introduction à la plateforme .NET
Le web service
1 Laurent BONNET Stéphane GOUDEAU Architectes en Système d’information Division Développeurs et Plateforme d’Entreprise © 2005 Microsoft Corporation Un.
IFT 785 Approches Orientée Objets Plan de cours. Information générale Professeur : – Sylvain Giroux –
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Infrastructure SOA : Opérer ses services de façon industrielle
Notifications et Communication réseau D. BELLEBIA – 18/12/2007NSY208 CNAM.
L’enseignement de spécialité SLAM
Module 1 : Vue d'ensemble de Microsoft SQL Server
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
NServiceBus, l’”ESB” léger pour tous !
Web Services 17/01/2009.
CSC Proprietary 6/20/2015 9:42:54 AM 008_5849_ER_Red 1 BPM - SOA Logo du client Synthèse de notions “fondamentales” par Guillaume Feutren, Stagiaire *
Nicolas CLERC Consultant associé
UML : méthode Processus. Introduction(1) ● Cycles ● Spécification par cas d'utilisation ● Identifier les besoins ● Analyse par cas d'utilisation ● Affiner.
Transcription de la présentation:

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

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

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

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

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

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

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.

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)

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

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é

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é

.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 ??

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.

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

Les spécifications du processus

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

Abstraction de la connection: Facade

Facade et Médiateur: composition

Et L’observer? – avec le médiateur

Observer (suite) – avec le médiateur

L ’observer tout seul

Le BAM: point fort du médiateur

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

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

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

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)

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 00 02 04 06 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.

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

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

Un médiateur réactif

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)

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

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??