Environnements de Développement



Documents pareils
Environnements de Développement

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

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

Les Architectures Orientées Services (SOA)

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

Compte Rendu d intégration d application

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

Messagerie asynchrone et Services Web

Intégration de systèmes

Cours Bases de données

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)

Les nouvelles architectures des SI : Etat de l Art

Urbanisation des Systèmes d'information

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

BES WEBDEVELOPER ACTIVITÉ RÔLE

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

CORBA. (Common Request Broker Architecture)

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

Cisco Certified Network Associate

Formation en Logiciels Libres. Fiche d inscription

Devenez un véritable développeur web en 3 mois!

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

Mise en œuvre des serveurs d application

Java pour le Web. Cours Java - F. Michel

Fiche de l'awt Intégration des applications

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

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Architectures d'intégration de données

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

Urbanisme du Système d Information et EAI

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

UE 8 Systèmes d information de gestion Le programme

Projet Active Object

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Bases Java - Eclipse / Netbeans

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

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

CQP Développeur Nouvelles Technologies (DNT)

Programmation Web. Madalina Croitoru IUT Montpellier

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

Cloud Computing et SaaS

Moderniser. le système d information et le portefeuille applicatif.

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

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

Quels fondements, services fonctionnalités et limites de l intranet?

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

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)

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

Cours CCNA 1. Exercices

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

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

Windows Internet Name Service (WINS)

WEA Un Gérant d'objets Persistants pour des environnements distribués

PROSOP : un système de gestion de bases de données prosopographiques

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

Introduction aux applications réparties

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

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

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

CAHIER DES CHARGES D IMPLANTATION

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

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

Simplifier l intégration des systèmes RH et garantir une version unique des données de l employé. D

Merise. Introduction

Annuaires LDAP et méta-annuaires

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Architectures n-tiers Intergiciels à objets et services web

PG208, Projet n 3 : Serveur HTTP évolué

Module BD et sites WEB

NFP111 Systèmes et Applications Réparties

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Introduction à la conception de systèmes d information

1.2 - Définition Web 2.0 ( wikipedia )

Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Architectures web/bases de données

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

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

CONCEPT de MICRO-DOMOTIQUE. Système STANTOR-DOMODULOR

Programme ASI Développeur

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Architecture Orientée Service, JSON et API REST

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Patrons d architecture des Systèmes d Information

1 Introduction à l infrastructure Active Directory et réseau

L accès à distance du serveur

Application web de gestion de comptes en banques

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

Module BDR Master d Informatique (SAR)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Mercredi 15 Janvier 2014

Transcription:

Institut Supérieur des Etudes Technologiques de Kébili Unité d Enseignement : Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information

Syllabus du cours 2 Objectifs Généraux Comprendre les architectures logicielles ainsi que leurs composants; Comprendre les principaux patrons de conception (Design Patterns) Etre capable de mettre en oeuvre certains patrons de conception Décrire une architecture logicielle et produire la documentation correspondante Pré-requis POO, UML, JAVA, GL1&2

Organisation du cours 3 I. Fondements de l architecture logicielle II. Styles Architecturaux III.Architecture J2EE IV. Les Patrons de Conception V. Conception Architecturale VI. Thèmes Connexes de GL

Chapitre II: 4 Les Styles Architecturaux Unité d enseignement: Environnements de Développement

PLAN Veuillez nous suivre 5 Définition Styles Interactifs Conclusion Références Styles Généraux Styles Distribués

Définition 6 Un style architectural Est un patron (modèle) décrivant une architecture logicielle permettant de résoudre un problème particulier Définit: un ensemble de composants et de connecteurs (et leur type) Les règles de configuration des composants et connecteurs (topologie) Une spécification du comportement du patron Des exemples de systèmes construits selon ce patron Constitue un modèle éprouvé et enrichi par l expérience de plusieurs développeurs Compréhensibilité, maintenance, évolution, réutilisation, performance, documentation, etc.

Principales Familles 7 Les styles d architectures logicielles se répartirent sur quatre familles comme suit: 1. Styles Généraux :Filtres et Canaux, Architecture avec référentiel de données (shared data), multicouches. 2. Styles Interactifs :Basé évènement, Model View Controller (MVC). 3. Styles Distribués : n-tiers, SOA. 4. Adaptatifs : micro-kernel, réflexion

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 8 Convient bien aux systèmes de traitement et de transformation de données Composants = filtre ; Connecteur = canal Filtre: Reçoit ses données d un ou plusieurs canaux d entrée, effectue la transformation/traitement des données et envoie les données de sortie produites sur un ou plusieurs canaux de sorties Canal: Unidirectionnel au travers duquel circulent un flot de données (stream). Exemples :application de traitement de texte, de traitement de signaux, Compilateur (analyse lexicale, syntaxique, sémantique)

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 9 Exemple: Système de traitement du son Encodeur pour sortie de microphone Filtrer l écho Filtrer le bruit Retirer les fréquences non vocales Égaliser les les intervalles dynamiques Encodeur de bruit ambiant Décompresser Recevoir Transmettre Compresser Encoder la sortie des haut-parleurs

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 10 Avantages Bon pour traitement en lot (batch) Très flexible Analyse facilitée : performance, synchronisation, goulot d étranglement, Se prête bien à la décomposition fonctionnelle d un système Inconvénients Mauvais pour le traitement interactif

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 11 D un point de vue conception Diviser pour régner : les filtres peuvent être conçus séparément Cohésion : les filtres sont un type de cohésion fonctionnelle Couplage : les filtres n ont qu une entrée et une sortie en général Abstraction : les filtres cachent généralement bien leurs détails internes Réutilisabilité : les filtres peuvent très souvent être réutilisés dans d autres contextes Réutilisation : il est souvent possible d utiliser des filtres déjà existants pour les insérer dans le pipeline

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 12 Utilisée dans le cas où des données sont partagées et fréquemment échangées entre les composants Deux types de composants : référentiel de données et accesseur de données Les référentiels constituent le medium de communication entre les Accesseurs Connecteur : relie un accesseur à un référentiel Rôle de communication, mais aussi possiblement de coordination, de conversion et de facilitation

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 13 Variantes: Style tableau noir (Blackboard) :les référentiels sont des agents actifs. Lorsqu ils reçoivent une données, ils informent tous les accesseurs concernés afin de synchroniser l accès. Exemple: Environnement de programmation (compilateur), JVM (Java), Le noyau du système Linux. Style référentiel passif:les référentiels sont des simples vocations de stockage. Les composants accède aux référentiels comme ils le désirent. Exemples: application de bases de données, systèmes centrés sur les données (e.g. système bancaire, système de facturation,etc.),

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 14 Avantages: Avantageux pour les applications impliquant des tâches complexes sur les données, nombreuses et changeant souvent. Une fois le référentiel bien défini, de nouveaux services peuvent facilement être ajoutés Inconvénients: Le référentiel peut facilement constituer un goulot d étranglement, tant du point de vue de sa performance que du changement

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 15 Fondé sur la relation «peut utiliser» entre modules (etnon composants). Une couche est un incrément. vue «logique» montrant le découpage des fonctions de l application indépendante des considérations physiques une couche offre un service au couches externes met à profit la notion d abstraction, les couches externes sont plus abstraites que les couches internes. Exemple: Modèle OSI

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 16 On distingue deux variantes du système multicouche: Système fermé: une couche n a accès qu aux couches adjacentes. Les connecteurs ne relient que les couches adjacentes; Système ouvert:toutes les couches ont accès à toutes les autres. Les connecteurs peuvent relier deux couches quelconques

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 17 Système Fermé Système Ouvert

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 18 Notion de couche applicative: La structuration des applications se traduit par une décomposition logique en couches applicatives(couches logicielles) au sein d'une même application ou système. Le découpage en couche permet de modifier l'implémentation d'une couche sans impacter les autres couches applicatives. Les couches communiquent entre elles au travers d'un modèle d'échange «les contrôleurs», et chacune d'entre elles propose un ensemble de services rendus.

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 19 Couche Présentation: Elle gère et assure l'affichage des Interfaces Homme-Machine (IHM: fenêtres, pages, composants graphiques...) On distingue trois catégories d'ihm pour les applications interactives : Client léger : Aucun déploiement n'est réalisé sur le poste client à l'exception d'un navigateur Web (page HTML simple statique) Les différents écrans de l'application sont générés en temps réel côté serveur et téléchargés par le poste client. Client lourd : L'ensemble des écrans de l'application sont stockés ou générés sur le poste client et doivent avoir été déployés sur celui-ci préalablement à l'exécution: (Applets,Flash..) Client riche (Smart Client) : Compromis entre le client léger et le client lourd Plusieurs options sont disponibles pour le développement d'ihm riches, à savoir Ajax, Flex, Microsoft Silverlight, Google Web Toolkit qui permettent d exécuter directement le code dans le navigateur

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 20 Couche Métier: Elle correspond aux traitements qu effectue l application. Implémentation de la logique des cas d utilisation (use-case fonctionnels) Cette couche doit : implémenter la logique métier gérer la sécurité applicative gérer les transactions gérer les appels aux objets métiers. Exemple bancaire : Services métiers: l opération de virement de compte à compte. Objets métiers: le compte bancaire et le client et leurs règles de gestion respectives.

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 21 Couche Persistance: Nommée aussi couche d accès aux données. Elle prend en charge l'accès à la source de données (SGBDR, fichiers XML, LDAP, ). La couche Persistance offre les fonctionnalités de base qui permettent: de créer, rechercher, modifier et supprimer des composants objets métiers dans le respect des propriétés transactionnelles classiques. d utiliser le mécanisme de projection objet vers relationnel (mapping Objet / Relationnel) qui consiste en la transformation de la représentation des données en une représentation objet.

Styles Généraux Filtres & Canaux Architecture avec référentiel Multicouches 22 Le mapping objet relationnel crée une illusion d une BD Orientée Objet à partir d une BD relationnelle publicclassobj{ private int id; private String name; Table publicobj(){ } public Obj(String name){ this.name = name; } public void setid(int i){ id=i; }. } Classe Java correspondante

Styles Interactifs Basée évènements MVC 23 Composant: ils sont de nature abstraite, exposant des procédures et des événements. Procédure: Composant graphique Evénement = clic de souris, détection d un signal par un capteur, arrivée d un message, etc. Connecteur:Des liaisons entre des procédures et des événements. Un composant annonce un événement et tous les composants qui se sont enregistrés comme observateurs de cet événement sont prévenus. Appropriée pour les systèmes dont les composants doivent interagir avec l environnement. Exemples :La bibliothèque de composants graphiques Qt, Eclipse, Ajax, Erlang, JoCaml, Triggers de BD.

Styles Interactifs Basée évènements MVC 24 Séparer la couche interface utilisateur des autres parties du système Composé de trois types de composants Modèle : rassemble des données du domaine, des connaissances du système. Contient les classes dont les instances doivent être vues et manipulées Vue : utilisé pour présenter/afficher les données du modèle dans l interface utilisateur Contrôleur : contient les fonctionnalités nécessaires pour gérer et contrôler les interactions de l utilisateur avec la vue et le modèle

Styles Interactifs Basée évènements MVC 25 Est perçue par Utilisateur utilise Vue agit sur Contrôleur Met à jour Modèle Manipule

Styles Interactifs Basée évènements MVC 26

Styles Interactifs Basée évènements MVC 27 Modèle : noyau de l application Enregistre les vues et les contrôleurs qui en dépendent Notifie les composants dépendants des modifications aux données Vue : interface (graphique) de l application Crée et initialise ses contrôleurs Affiche les informations destinées aux utilisateurs Implante les procédure de mise à jour nécessaires pour demeurer cohérente Consulte les données du modèle Contrôleur : partie de l application qui prend les décisions Accepte les événement correspondant aux entrées de l utilisateur Traduit un événements (1) en demande de service adressée au modèle ou bien (2) en demande d affichage adressée à la vue Implémente les procédures indirectes de mise à jour des vues si nécessaire

Styles Interactifs Exemple du MVC pour le web: Basée évènements MVC 28

Styles Interactifs Basée évènements MVC 29 Avantages: Indépendance par rapport à l interface utilisateur, plusieurs vues pour le même modèle approprié pour les systèmes interactifs, particulièrement ceux impliquant plusieurs vues du même modèle de données. Peut être utilisé pour faciliter la maintenance de la cohérence entre les données distribuées Inconvénients: dans le cas d applications offrant des interfaces simples on aboutit à une complexité inutile

Styles Distribués n-tiers SOA 30 La vue en niveaux (tiers) donne une vision plus «physique» de la structuration de l application. Les niveaux peuvent être répartis physiquement sur différents composants matériels: N.b.L architecture multicouches est généralement utilisée pour décrire la structure interne (non distribuée) d un composant qui peut lui-même appartenir à une architecture (distribuée) n-partie. Composants :chaque niveaux est représenté par un composant qui joue le rôle de client et/ou de serveur Connecteurs :relient un client à un serveur. Connexion asymétrique. Doit supporter les communication distantes (e.g., requêtes RPC, HTTP, TCP/IP) Exemples: Architecture 1-tiers, Architecture 2-tiers, Architecture 3-tiers, Architecture n-tiers

Styles Distribués n-tiers SOA 31 Architecture Centralisée (1-tiers) Les trois couches applicatives sont liées et s'exécutent sur le même ordinateur. Serveur (Mainframe) Client léger : passif utilisé pour l affichage terminale. Inconvénients: Dépendance totale d un système centralisé Dépendance d un constructeur Coûts de maintenance très élevés Possibilités graphiques et multimédia très limitées

Styles Distribués n-tiers SOA 32 Architecture 2-tiers Architecture décentralisée L ensemble des traitements applicatifs est géré par le poste client : Client lourd La gestion des données est prise en charge par un SGBD centralisé. Avantages: Environnement graphique et multimédia avancé Intégration facile de la micro informatique Inconvénients Risque de surcharge du client Syndrome du «client obèse»

Styles Distribués n-tiers SOA 33 Architecture 3-tiers Architecture Distribuée Tous ces niveaux étant indépendants, ils peuvent être implantés sur des machines différentes Le poste client ne supporte plus l'ensemble des traitements (client riche ou léger) Facilité de déploiement Sécurité : pas d exposition du schéma de la base de données La manipulation des données est indépendante du support physique de stockage.

Styles Distribués n-tiers SOA 34 Architecture 3-tiers Navigateur Présentation Traitement Tier 1 : Client Tier 2:Serveur d applications Client: Gestion de la présentation Serveur applicatif:lien entre clients et plusieurs serveurs de BD Serveur de données:gestion accès à BD données Base de données Tier 3:Base de données

Styles Distribués n-tiers SOA 35 Architecture n-tiers La littérature parle du modèle générique «N-tiers»(ou N-niveaux) Rajoute des étages / couches en plus La couche applicative n'est pas monolithique Le modèle N-tiers est celui mis en œuvre dans le cadre des projets web Exemple : tiers impliqués dans le modèle d architecture J2EE

Styles Distribués n-tiers SOA 36 Résumé sur l architecture multi-tiers

Styles Distribués n-tiers SOA 37 SOA est apparu en 1996 dans une note de recherche du Gartner Group. «L architecture orientée service constitue un style d architecture basée sur le principe de séparation de l activité métier en une série de services.» «Ces services peuvent être assemblés et liés entre eux selon le principe de couplage lâche pour exécuter l application désirée.» «Ces services sont définis a un niveau supérieur de la traditionnelle approche composants» Gartner - Septembre 2005

Styles Distribués n-tiers SOA 38 Programmation structure = robuste et réutilisable Langage purement procéduraux -> Code réutilisable? = (fonctions + des procédures) Fichier sépare Programmation Orientée Objet (POO)-> Code réutilisable? = définition et l'assemblage de briques logicielles (Objets) ; Envoie des messages grâce aux appels des méthodes Solutions de transports au delà des frontière des SI --->>> Problèmes de compatibilité entre plateformes Besoin de standardisation et la mise en commun des protocoles ( SOAP, XML,.) La pensé orientée services

Styles Distribués n-tiers SOA 39 Dans une SOA un niveau d'indirection supplémentaire est introduit sous la forme de la couche Services. Composant: Services Connecteurs :Techniques et protocoles de communication entre service : Bus de communication, HTTP, Les services agissent comme des «boites noires», encapsule ces traitements et données et masque ainsi l hétérogénéité du système d information.

Styles Distribués n-tiers SOA 40 Vision POO et SOA? -> savoir où se situent les différences Modèle orienté objets (POO) Modèle orienté services (SOA)

Styles Distribués n-tiers SOA 41 La notion de «service» est le concept phare. Les Services Web sont juste un moyen de les implémenter. La mise en place d'une architecture SOA répond à un besoin de: réutilisation des traitements, interopérabilité, fiabilité, sécurité, hétérogénéité.

Styles Distribués n-tiers SOA 42 Les services: Le service est un composant clef de l'architecture Orientée Services. Consiste en une fonction ou fonctionnalité bien définie. Expose une interface qui définit le traitement offert sous la forme d un message d entrée et d un autre de réponse. Exprime un niveau «logique» d accès aux traitements et pas un niveau «physique» d implémentation.

Styles Distribués n-tiers SOA 43 Les services: Partage les caractéristiques suivantes d un objet: Modulaire (ensemble de fonctionnalités qui font sens) Partage les caractéristiques suivantes d un composant Boite noire (séparation interface/implémentation) Indépendant de la localisation Neutralité vis-à-vis des protocoles de transport Correspond à un périmètre fonctionnel que l on souhaite exposer à des consommateurs (il a une granularité plus forte qu un composant) Est faiblement couplé (indépendant des autres services) Expose un petit nombre d opérations offrant un traitement de bout en bout Sans état

Styles Distribués n-tiers SOA 44 Les 4 propriétés du service à retenir: Un Service est Autonome Un Service expose un Contrat in out Conditions Générales de Vente Règlement Intérieur Vos droits/vos devoirs Les services communiquent par Les Frontières entre services messages sont Explicites