Principes d'architecture applicative

Documents pareils
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Refonte front-office / back-office - Architecture & Conception -

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

DotNet. Plan. Les outils de développement

Expert technique J2EE

Auto-évaluation Aperçu de l architecture Java EE

Environnements de Développement

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Diagrammes de Package, de déploiement et de composants UML

Catalogue des Formations

Cours en ligne Développement Java pour le web

Urbanisme du Système d Information et EAI

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Messagerie asynchrone et Services Web

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

10. Base de données et Web. OlivierCuré

SITE WEB E-COMMERCE ET VENTE A DISTANCE

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Programme ASI Développeur

UML (Paquetage) Unified Modeling Language

Projet Active Object

Chapitre I : le langage UML et le processus unifié

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

RTDS G3. Emmanuel Gaudin

Master Sciences et Technologies Mention Informatique Spécialité E-Services en Alternance

Conception, architecture et urbanisation des systèmes d information

CQP Développeur Nouvelles Technologies (DNT)

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Nouvelles Plateformes Technologiques

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Catalogue des Formations Techniques

BES WEBDEVELOPER ACTIVITÉ RÔLE

OMGL6 Dossier de Spécifications

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

Ingénierie des Modèles. Méta-modélisation

Compte Rendu d intégration d application

Un serveur d'archivage

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Mercredi 15 Janvier 2014

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Formation en Logiciels Libres. Fiche d inscription

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Intégration de systèmes

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Java pour le Web. Cours Java - F. Michel

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Application web de gestion de comptes en banques

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Les frameworks au coeur des applications web

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Vérifier la qualité de vos applications logicielle de manière continue

IFT2255 : Génie logiciel

SÉCURITÉ POUR LES ENTREPRISES UN MONDE NUAGEUX ET MOBILE. Sophia-Antipolis 01/07/2013 Cyril Grosjean

Description de la formation

Urbanisation des systèmes d information

Université de Bangui. Modélisons en UML

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

Présentations personnelles. filière IL

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Introduction à la plateforme J2EE

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Applications distribuées: le retour du client "riche"

Introduction aux applications réparties

1 JBoss Entreprise Middleware

Formation : Langues : Types d Intervention et Secteurs d Activité :

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

Prise en compte des ressources dans les composants logiciels parallèles

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Module BD et sites WEB

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

Projet de Veille Technologique

J2EE in practice. Olivier Liechti Patrik Fuhrer. Department of Informatics. Computer Science Master Course - SH 2004/05

LE CENTRE DE RÉFÉRENCE PROFESSIONNELLE TIC DE BRUXELLES TAKE I.T. EASY FORMATION TECHNIQUES IT & WEB POUR INFORMATICIENS

Introduction : présentation de la Business Intelligence

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Présentation du PL/SQL

Patrons de Conception (Design Patterns)

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Transcription:

Principes d'architecture applicative Introduction Jean-Jacques LE COZ

Définition L'architecture logicielle décrit de manière symbolique et schématique les différents composants : D'un ou de plusieurs programmes informatiques Leurs interrelations Et leurs interactions

Styles architecturaux Architecture en appels et retours Approche par décomposition fonctionnelle Basée sur l'utilisation de fonctions Forme dérivée Extension modulaire Extension au paradigme objet Architecture distribuée

Styles architecturaux Architecture en couches Approche par bibliothèques Une bibliothèque spécialisée utilise des bibliothèques moins spécialisées qui elles-même utilisent des bibliothèques génériques Conséquence du concept de réutilisation

Styles architecturaux Architecture centrée sur les données Composant central responsable du CRUD Base de données Datawarehouse Séparation des données, des traitements et de la présentation Intégration par les données Nécessite une grande stabilité Peu extensible

Styles architecturaux Architecture en flot de données Composants reliés par flux de données Sans valeur ajoutée Architecture par lot (batch) En réseau et avec transformations Architecture de médiation

Styles architecturaux Architecture orientée objets Les composants intègrent Données Comportements (traitements) Communication et coordination Mécanisme de passage de messages Extension de l'architecture en appels et retours Trois piliers Encapsulation, héritage, polymorphisme

Styles architecturaux Architecture orientée agents Les agents utilisent de manière intelligente les autres agents Établissement de dialogues avec les autres agents Négociation et échange

Historique Périodes 1960 1970 Programmation structurée Programmation modulaire Diagramme de flux, langage Simula 1970 1980 Séparation Architecture statique Dépendance fonctionnelle Architecture dynamique Activité, séquence, réseaux de Pétri

Historique Périodes 1980 1990 Architecture orientée objet Architecture client-serveur Centrée sur les données 1990 2000 UML, Patrons de conception SGBD R/O Réseaux ouverts (Internet) Architecture à 3 couches web

Historique Périodes 2000 2010 XML Médiation de données Développement orienté agent KQML (Knowledge Query Manipulation Language)

Modélisation de l'architecture Approche par les vues Liaison entre les vues Modèles Modèle d'analyse Modèle 4+1 vues (Krutchen) Cas d'utilisation (use case) Vues Logique, processus, réalisation, déploiement

Objectifs Structuration Couplage Souplesse Réduction de la complexité

Structuration Structuration en couches Séparation Logique de présentation Logique de service Logique de manipulation des données Permet le déploiement en environnement distribué

Couplage Le couplage entre les couches est faible Le couplage des composants à l'intérieur d'une couche est fort Facilite les tests de chaque couche de manière indépendante

Souplesse Matérialisation des couches dans des paquetages (package) séparés Assemblage, groupement de composants Souplesse de déploiement

Réduction de la complexité Le comportement des composants est connu à l'avance Il y a une logique d'enchainement entre les composants Le périmètre des composants est réduit et banalisé Le travail de développement est simplifié car fortement cadré

Modèle en couches Couches internes Présentation, Adaptation, Service, Métier, Accès aux données Couche externe Médiation

Schéma de définition des couches

Couche présentation Affichage à l'utilisateur IHM (Interface Homme Machine) Plusieurs instances de présentation Deux types de composants Rendu à l'utilisateur (IHM) Logique d'enchaînement des IHM MVC, MVC2, HMVC

Composants de la couche Présentation

Composants de la couche présentation Composants de la couche rendu Portlet WebForm Servlet, JSP ASP, ASP.NET JavaFX, RCP, XUL Swing ActiveX, WinForm Composants de logique d'enchainement JSF, Struts, etc. Listener

Couche adaptation Ensemble de façades orienté (use case) cas d'utilisation Pour masquer la complexité du métier et des services Indépendant des technologies de l' IHM Ensemble de composants effectuant l'adaptation entre le modèle métier et le modèle de présentation

Composants de la couche Adaptation

Couche service Expose l'implémentation de l'ensemble des cas d'utilisation (use case) De manière interne (services internes) De manière externe (services externes) Service orienté use case Pour chaque cas expose une méthode Implémentation de l'interaction entre l'acteur et le système

Composants de la couche service

Services internes Services qui implémentent des cas d'utilisation qui n'ont pas besoin d'être connus par des systèmes externes : Service orienté cas d'utilisation Type de service transactionnel Service transversal Chaque activité = 1 transaction dans le SI Service pour plusieurs cas d'utilisation Patron ApplicationService, finder

Patron de conception Application Service

Services externes Services mis à disposition pour le reste du système d'information : Service sans état Service distribué Exemple : Web service

Couche métier Vue sous forme d'objets métier sur le modèle de stockage des données Trois types de composants : Objet métier Fabrique d'objet métier (CRUD) Objet technique Implémentation de règles extrinsèques aux objets métier manipulation, intégrité, etc.

Composants de la couche métier

Couche d'accès aux données Encapsule l'accès au support de stockage des objets métier Transparence de la localisation Utilisée par les fabriques d'objets métier Solutions Patron DAO (Data Access Object) Cadriciel (Framework de persistance)

Couche de médiation Assure le découplage entre les différentes applications du SI Au niveau couche service Routage, transformation, adaptation de protocoles et d'orchestration Couche externe aux applications Unique point de passage depuis ou vers l'extérieur d'une application

Composants de la couche de médiation

Notion de façade Chaque cas d'utilisation est implémenté par une seule façade. Elle masque le nombre et la nature des services utilisés dans la couche service pour implémenter le cas d'utilisation.

Exemple de façade sur trois composants de la couche service

Notion d'agrégat La complexité du modèle métier impose : De créer des objets dédiés à l'affichage Afin de masquer cette complexité aux développeurs d'ihm Exemple : Les modèles de certains composants Swing (TableModel, TreeModel, ) DTO (Data Transfer Object)

Paquetage A chaque implémentation de la couche présentation est associée la même couche adaptation Quelques limitations à la réutilisation Mais maximisation de la réutilisation

Couche service Basée sur le patron façade Composants Exposent des interfaces Orientés cas d'utilisation Indépendants des cas d'utilisation Réutilisables Événementiels Transactionnels Sécurisés

Couche métier Factorisation des concepts métier Abstraction vis à vis du stockage Cycle de vie des objets métier Pris en charge par des fabriques Cadriciels de persistance EJB3, JPA (JAVA EE, JAVA SE) ObjectSpaces (.Net)

Couche d'accès aux données Couche optionnelle Objets DAO (Data Access Object) Un DAO = un objet métier Délégué de la fabrique Communication Par DTA (Data Transfer Object) Par Value Object

Couche médiation Support de l'urbanisation Quartiers, blocs Assure l'indépendance entre applications Producteurs, consommateurs de services Fonctions des composants Adaptation des formats entre applications Exposition d'un service sous un protocole différent de son implémentation Orchestration, bus, connectivité