Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
COURS IGL                        COURS 6              INTRODUCTION AUX                    Cours 6 :               ARCHITEC...
Cours 6 – Introduction Aux                                            OBJECTIFS DU COURS   Architectures de Logiciels     ...
INTRODUCTION                                     Section 2 :   AU GÉNIE    Section 1 :                                    ...
COURS IGL                                            Cours N° 6                                            Introduction   ...
Cours 6 – Introduction Aux                   SECTION 1 -   Architectures de Logiciels                 INTRODUCTION        ...
Cours 6 – Introduction Aux                SECTION 1 -   Architectures de Logiciels              INTRODUCTION         Intro...
Cours 6 – Introduction Aux                   SECTION 1 -   Architectures de Logiciels                 INTRODUCTION        ...
Cours 6 – Introduction Aux                SECTION 1 -   Architectures de Logiciels              INTRODUCTIONReprésentation...
Cours 6 – Introduction Aux                  SECTION 1 -   Architectures de Logiciels                INTRODUCTION          ...
Cours 6 – Introduction Aux                   SECTION 1 -   Architectures de Logiciels                 INTRODUCTION      Se...
Cours 6 – Introduction Aux                  SECTION 1 -   Architectures de Logiciels                INTRODUCTION          ...
Cours 6 – Introduction Aux                  SECTION 1 -   Architectures de Logiciels                INTRODUCTION       Bas...
Cours 6 – Introduction Aux                   SECTION 1 -Architectures de Logiciels                 INTRODUCTION         Vu...
Cours 6 – Introduction Aux                 SECTION 1 -   Architectures de Logiciels               INTRODUCTION         Con...
Cours 6 – Introduction Aux            SECTION 1 -Architectures de Logiciels          INTRODUCTION   Exemple – Site JSP    ...
Cours 6 – Introduction Aux                 SECTION 1 -   Architectures de Logiciels               INTRODUCTION Vue Physiqu...
Cours 6 – Introduction Aux                         SECTION 1 -   Architectures de Logiciels                       INTRODUC...
Cours 6 – Introduction Aux                   SECTION 1 -   Architectures de Logiciels                 INTRODUCTION Vue Phy...
Cours 6 – Introduction Aux                   SECTION 1 -   Architectures de Logiciels                 INTRODUCTION  Utilis...
Cours 6 – Introduction Aux                SECTION 1 -    Architectures de Logiciels              INTRODUCTIONUML et les ar...
COURS IGL                                            Cours N° 6                Section 1 : Introduction,   Introduction   ...
COURS IGL                                         Cours N° 6              Section 2 : Diagramme de   Introduction         ...
SECTION 2 –   Cours 6 – Introduction Aux                                           DIAGRAMME DE   Architectures de Logicie...
SECTION 2 –   Cours 6 – Introduction Aux                                          DIAGRAMME DE   Architectures de Logiciel...
SECTION 2 –Cours 6 – Introduction Aux                                     DIAGRAMME DEArchitectures de Logiciels          ...
SECTION 2 –   Cours 6 – Introduction Aux                                              DIAGRAMME DE   Architectures de Logi...
SECTION 2 –   Cours 6 – Introduction Aux                                             DIAGRAMME DE   Architectures de Logic...
SECTION 2 –   Cours 6 – Introduction Aux                                             DIAGRAMME DE   Architectures de Logic...
SECTION 2 –Cours 6 – Introduction Aux                                            DIAGRAMME DEArchitectures de Logiciels   ...
SECTION 2 –    Cours 6 – Introduction Aux                                                   DIAGRAMME DE    Architectures ...
SECTION 2 –   Cours 6 – Introduction Aux                                                    DIAGRAMME DE   Architectures d...
SECTION 2 –   Cours 6 – Introduction Aux                                              DIAGRAMME DE   Architectures de Logi...
SECTION 2 –   Cours 6 – Introduction Aux                                                 DIAGRAMME DE   Architectures de L...
SECTION 2 –   Cours 6 – Introduction Aux                                             DIAGRAMME DE   Architectures de Logic...
SECTION 2 –   Cours 6 – Introduction Aux                                           DIAGRAMME DE   Architectures de Logicie...
SECTION 2 –Cours 6 – Introduction Aux                                                          DIAGRAMME DEArchitectures d...
SECTION 2 –   Cours 6 – Introduction Aux                                             DIAGRAMME DE   Architectures de Logic...
SECTION 2 –Cours 6 – Introduction Aux                                                          DIAGRAMME DEArchitectures d...
SECTION 2 –Cours 6 – Introduction Aux                                                            DIAGRAMME DEArchitectures...
SECTION 2 –   Cours 6 – Introduction Aux                                              DIAGRAMME DE   Architectures de Logi...
SECTION 2 –Cours 6 – Introduction Aux                                                                               DIAGRA...
SECTION 2 –   Cours 6 – Introduction Aux                                              DIAGRAMME DE   Architectures de Logi...
SECTION 2 –   Cours 6 – Introduction Aux                                             DIAGRAMME DE   Architectures de Logic...
SECTION 2 –Cours 6 – Introduction Aux                             DIAGRAMME DEArchitectures de Logiciels    COMPOSANTS    ...
SECTION 2 –Cours 6 – Introduction Aux                             DIAGRAMME DEArchitectures de Logiciels    COMPOSANTS Com...
COURS IGL                                       Cours N° 6           Section 2 : Diagramme de    Introduction             ...
COURS IGL                                                Cours N° 6                           Section 3 : Styles   Introdu...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUX        ...
Cours 6 – Introduction Aux             SECTION 3 – STYLES    Architectures de Logiciels              ARCHITECTURAUXBénéfic...
Cours 6 – Introduction Aux                SECTION 3 – STYLES   Architectures de Logiciels                 ARCHITECTURAUX  ...
Cours 6 – Introduction Aux               SECTION 3 – STYLES   Architectures de Logiciels                ARCHITECTURAUX    ...
Cours 6 – Introduction Aux                    SECTION 3 – STYLES    Architectures de Logiciels                     ARCHITE...
Cours 6 – Introduction Aux                                                   SECTION 3 – STYLES  Architectures de Logiciel...
Cours 6 – Introduction Aux                  SECTION 3 – STYLES   Architectures de Logiciels                   ARCHITECTURA...
Cours 6 – Introduction Aux                  SECTION 3 – STYLES   Architectures de Logiciels                   ARCHITECTURA...
Cours 6 – Introduction Aux               SECTION 3 – STYLES   Architectures de Logiciels                ARCHITECTURAUX  Pi...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUX       M...
Cours 6 – Introduction Aux                                   SECTION 3 – STYLESArchitectures de Logiciels                 ...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUX        ...
Cours 6 – Introduction Aux                SECTION 3 – STYLES   Architectures de Logiciels                 ARCHITECTURAUX  ...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUX     MVC...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUX  Client...
Cours 6 – Introduction Aux                             SECTION 3 – STYLES   Architectures de Logiciels                    ...
Cours 6 – Introduction Aux              SECTION 3 – STYLES   Architectures de Logiciels               ARCHITECTURAUX   Cli...
Cours 6 – Introduction Aux                                   SECTION 3 – STYLESArchitectures de Logiciels                 ...
Cours 6 – Introduction Aux               SECTION 3 – STYLES      Architectures de Logiciels                ARCHITECTURAUXC...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUXArchitec...
Cours 6 – Introduction Aux                  SECTION 3 – STYLES  Architectures de Logiciels                   ARCHITECTURAU...
Cours 6 – Introduction Aux                                           SECTION 3 – STYLES  Architectures de Logiciels       ...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUXN-Tiers ...
Cours 6 – Introduction Aux               SECTION 3 – STYLES   Architectures de Logiciels                ARCHITECTURAUX    ...
Cours 6 – Introduction Aux               SECTION 3 – STYLES   Architectures de Logiciels                ARCHITECTURAUX Car...
Cours 6 – Introduction Aux            SECTION 3 – STYLES   Architectures de Logiciels             ARCHITECTURAUX      Comp...
Cours 6 – Introduction Aux                    SECTION 3 – STYLESArchitectures de Logiciels                     ARCHITECTUR...
Cours 6 – Introduction Aux           SECTION 3 – STYLES   Architectures de Logiciels            ARCHITECTURAUX      SOA – ...
Cours 6 – Introduction Aux               SECTION 3 – STYLES   Architectures de Logiciels                ARCHITECTURAUX    ...
Cours 6 – Introduction Aux             SECTION 3 – STYLES   Architectures de Logiciels              ARCHITECTURAUX        ...
Cours 6 – Introduction Aux              SECTION 3 – STYLES   Architectures de Logiciels               ARCHITECTURAUX      ...
Cours 6 – Introduction Aux               SECTION 3 – STYLES   Architectures de Logiciels                ARCHITECTURAUX    ...
Cours 6 – Introduction Aux      SECTION 3 – STYLES    Architectures de Logiciels       ARCHITECTURAUXCloud Computing - Inf...
Cours 6 – Introduction Aux              SECTION 3 – STYLES   Architectures de Logiciels               ARCHITECTURAUX      ...
Cours 6 – Introduction Aux   SECTION 3 – STYLES  Architectures de Logiciels    ARCHITECTURAUX   SaaS basés sur le cloud O...
Cours 6 – Introduction Aux   SECTION 3 – STYLES  Architectures de Logiciels    ARCHITECTURAUX   SaaS basés sur le cloud O...
Cours 6 – Introduction Aux              SECTION 3 – STYLES   Architectures de Logiciels               ARCHITECTURAUX      ...
Cours 6 – Introduction Aux                SECTION 3 – STYLES   Architectures de Logiciels                 ARCHITECTURAUX  ...
COURS IGL                                         Cours N° 6              Section 4 : Diagramme de   Introduction         ...
SECTION 4 –   Cours 6 – Introduction Aux                                            DIAGRAMME DE   Architectures de Logici...
SECTION 4 –   Cours 6 – Introduction Aux                                          DIAGRAMME DE   Architectures de Logiciel...
SECTION 4 –   Cours 6 – Introduction Aux                                            DIAGRAMME DE   Architectures de Logici...
SECTION 4 –   Cours 6 – Introduction Aux                                              DIAGRAMME DE   Architectures de Logi...
SECTION 4 –Cours 6 – Introduction Aux                                      DIAGRAMME DEArchitectures de Logiciels         ...
SECTION 4 –   Cours 6 – Introduction Aux                                             DIAGRAMME DE   Architectures de Logic...
SECTION 4 –   Cours 6 – Introduction Aux                                              DIAGRAMME DE   Architectures de Logi...
SECTION 4 –   Cours 6 – Introduction Aux                                            DIAGRAMME DE   Architectures de Logici...
SECTION 4 –   Cours 6 – Introduction Aux                                            DIAGRAMME DE   Architectures de Logici...
SECTION 4 –   Cours 6 – Introduction Aux                                                          DIAGRAMME DE   Architect...
SECTION 4 –  Cours 6 – Introduction Aux                                                        DIAGRAMME DE  Architectures...
COURS IGL                                         Cours N° 6              Section 4 : Diagramme de   Introduction         ...
Cours 6 – Introduction aux               BIBLIOGRAPHIE   architectures de logiciels         Bibliographie UML Component D...
Upcoming SlideShare
Loading in …5
×

Génie Logiciels : Introduction aux architectures

25,044 views

Published on

Une présentation introd

Génie Logiciels : Introduction aux architectures

  1. 1. COURS IGL COURS 6 INTRODUCTION AUX Cours 6 : ARCHITECTURES DE Architectures de logiciels LOGICIELSMostefai Mohammed Amine – m_mostefai@esi.dzBatata Sofiane – s_batata@esi.dz 1
  2. 2. Cours 6 – Introduction Aux OBJECTIFS DU COURS Architectures de Logiciels Objectifs du cours Présenter la notion d’architecture logicielle Donner un aperçu des principaux styles architecturaux Cours IGL, Copyright © 2011, ESI Découvrir le lien entre l’architecture et le déploiement physique à travers le diagramme de déploiement 2
  3. 3. INTRODUCTION Section 2 : AU GÉNIE Section 1 : LOGICIEL Diagramme de Introduction Cours 6 composants Introduction aux architectures logicielles Section 2 : Section 5 : Styles Diagramme dearchitecturaux déploiement 3Cours IGL, Copyright © 2011, ESI
  4. 4. COURS IGL Cours N° 6 Introduction Section 1 : Introduction aux architectures logicielles 4Cours IGL, Copyright © 2011, ESI
  5. 5. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Définition L’architecture d’un programme ou d’un système informatique est la structure (ou les structures) du système qui comprend les éléments logiciels, leurs Cours IGL, Copyright © 2011, ESI propriétés visibles et leur relations 5
  6. 6. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Introduction L’architecture d’un système est sa conception de haut niveau Cours IGL, Copyright © 2011, ESI N’importe quel système complexe est composé de s ous- systèmes qui interagissent entre eux La conception de haut niveau est le processus qui consiste à identifier ces sous-systèmes ainsi que les relations qu’ils entretiennent entre eux L’architecture d’un système est le résultat de ce processus 6
  7. 7. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Introduction L’architecture implique plusieurs choix dont les technologies, les produits et les serveurs à utiliser Cours IGL, Copyright © 2011, ESI Il n’y a pas une architecture unique permettant de réaliser le système, il y en a plusieurs. Le concepteur ou l’architecte tâchera de choisir la meilleure architecture possible selon plusieurs critères dont la nature du projet, les compétences de l’équipe, les budgets et outils disponibles, …etc . 7
  8. 8. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTIONReprésentation des architectures Il existe plusieurs représentations graphiques des architectures Cours IGL, Copyright © 2011, ESI Une des représentations les plus utilisées est la représentation C&C : Composants et Connecteurs Un composant est un module logiciel (application, bibliothèque, module, …etc.) ou un entrepôt de données (base de données, système de fichiers, …etc.) Le connecteur représente les interactions entre les composants La représentation C&C est un graphe contenant des composants et des connecteurs 8
  9. 9. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Composants Un composant est un module logiciel ou un entrepôt de données Cours IGL, Copyright © 2011, ESI Un composant est identifié par son nom qui indique son rôle dans le système Les composants communique entre eux en utilisant des ports (ou interfaces) Les architectures utilisent des composants standards : serveurs, bases de données, application, clients, …etc. 9
  10. 10. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Serveurs et clients Un serveur est un module logiciel qui répond aux requêtes d’autres modules appelés clients Cours IGL, Copyright © 2011, ESI Généralement, les services et les clients sont hébergés dans des machines différentes et communiquent via le réseau (intranet / internet) Par exemple, le service http répond aux requêtes des clients qui sont les navigateurs web 10
  11. 11. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Application Une application est un module logiciel qui a un rôle défini dans le système logiciel Cours IGL, Copyright © 2011, ESI Par exemple, une application d’envoi de mails 11
  12. 12. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Base de données Une base de données est un entrepôt stockant les données sous un format normalisé Cours IGL, Copyright © 2011, ESI L’interrogation et la modification des données se fait en utilisant un langage spécial appelé SQL La plupart des bases de données obéissent au modèle relationnel Un SGBD (Système de Gestion de Base de Données) est une base de données puissante et accessible sur le réseau conçue généralement pour les gros systèmes SQL Server, Oracle, MySQL, PostgreSQL sont des exemples de SGBD connus sur le marché 12
  13. 13. Cours 6 – Introduction Aux SECTION 1 -Architectures de Logiciels INTRODUCTION Vue C&C Client Serveur Cours IGL, Copyright © 2011, ESI Base de données Application 13
  14. 14. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Connecteurs Le connecteur modélise une interaction entre deux composants Cours IGL, Copyright © 2011, ESI Un connecteur peut modéliser une interaction simple (appel de procédure) ou une interaction complexe (par exemple utilisation d’un protocole comme http) 14
  15. 15. Cours 6 – Introduction Aux SECTION 1 -Architectures de Logiciels INTRODUCTION Exemple – Site JSP Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQLNavigateur 15
  16. 16. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue Physique et Vue Logique La vue logique d’une architecture logicielle définit les principaux composants d’une architecture sans se soucier des détails physiques (équipements, machines, Cours IGL, Copyright © 2011, ESI …etc.) La vue physique s’intéresse au déploiement physique des différents services La vue physique est peu précise lors de la conception. Elle devient concrète lors de la phase de déploiement. 16
  17. 17. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue Physique et Vue Logique Exemple 1 : services déployés dans le même serveur Serveur 1 Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQL Navigateur 17
  18. 18. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue Physique et Vue Logique Exemple 2 : services déployés dans des serveurs différents Serveur 1 Serveur 2 Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQL Navigateur 18
  19. 19. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Utilisation de l’architecture Donne un aperçu de haut niveau du système qui va faciliter la communication et la compréhension Cours IGL, Copyright © 2011, ESI Aide à comprendre des systèmes existants Décompose le système en sous-systèmes et sous-modules ce qui réduit la complexité et facilite la distribution des tâches Facilite l’évolution du système en remplaçant uniquement le sous-système désiré 19
  20. 20. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTIONUML et les architectures logicielles  Plusieurs formalismes peuvent décrire une architecture logicielle Cours IGL, Copyright © 2011, ESI  UML 2 est un bon moyen de représenter une architecture logicielle  Le diagramme de composants peut servir à représenter la vue logique d’une architecture  Le diagramme de déploiement peut servir à représenter la vue physique d’une architecture 20
  21. 21. COURS IGL Cours N° 6 Section 1 : Introduction, Introduction aux débat (05 mns) architectures logicielles 21Cours IGL, Copyright © 2011, ESI
  22. 22. COURS IGL Cours N° 6 Section 2 : Diagramme de Introduction aux composants architectures logicielles 22Cours IGL, Copyright © 2011, ESI
  23. 23. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composant Un composant est une unité autonome dans un système Un composant définit un système ou un sous-système de Cours IGL, Copyright © 2011, ESI n’importe quelle taille ou complexité Les diagrammes de composants permettent de modéliser les composants et leurs interactions Les composants d’un système sont facilement réutilisés ou remplacés 23
  24. 24. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTSCaractéristiques d’un composant Un composant est une unité modulaire avec des interfaces bien définies Cours IGL, Copyright © 2011, ESI Les interfaces définissent comment le composant peut être appelé ou intégré Le composant est remplaçable et autonome L’implémentation du composant est cachée (encapsulée) aux entités externes 24
  25. 25. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Représentation UML Cours IGL, Copyright © 2011, ESI Composant 25
  26. 26. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTSCaractéristiques d’un composant Un composant a un nom unique dans son contexte Un composant peut être étendu par un stéréotype Cours IGL, Copyright © 2011, ESI Il existe des stéréotypes standard pour les composants comme « subsytem », « database » ou « executable » L’utilisateur peut ajouter ses propres stéréotypes à condition que ça soit consistant avec l’objectif du diagramme Dans le cadre d’architectures logicielle, ces stéréotypes peuvent être utilisés : « service », « client », … etc. 26
  27. 27. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Exemples de stéréotypes Cours IGL, Copyright © 2011, ESI «service» «client» «database» «subsystem»Composant1 Composant2 Composant3 Composant4 27
  28. 28. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces Un composant définit son comportement en terme d’interfaces fournies et interfaces requises Cours IGL, Copyright © 2011, ESI Une interface est une collection d’opérations ayant un lien sémantique et qui n’ont pas d’implémentation L’implémentation des interface se fait par une ou plusieurs classes implémentant le composant Les noms d’interfaces commencent par « I » (convention) Un contrat entre C1 et C2 est défini quand C1 fournit une interface I qui est requise par C2 28
  29. 29. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Interfaces - Exemple Cours IGL, Copyright © 2011, ESI «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void 29
  30. 30. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces - Exemple Nom del’interface Cours IGL, Copyright © 2011, ESI «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : voidOpérations 30
  31. 31. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces fournie Une interface fournie définie les fonctions qu’un composant pourrait faire Exemple : un serveur web peut gérer les requêtes HTTP de Cours IGL, Copyright © 2011, ESI type get ou post IGet ServeurWeb IPost 31
  32. 32. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces requise Définit la (ou les interfaces) qu’un composant attend de son environnement Cours IGL, Copyright © 2011, ESI Navigateur IGet IPost 32
  33. 33. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Assemblage Un assemblage entre deux composants est lorsqu’une même interface est requise pour un composant et fournie par l’autre Cours IGL, Copyright © 2011, ESI get «client» «service» Navigateur ServeurWeb 33
  34. 34. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Utilisation Un composant C1 dépend d’un autre composant C2 lorsque C1 requiert C2 pour son implémentation (C1 appelle un des services de C2) Cours IGL, Copyright © 2011, ESI En d’autres mots, l’exécution de C1 requiert la présence de C2 Component1 Component2 «use» 34
  35. 35. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composition Un composant peut être lui-même composé d’autres composants. On parle alors de composition. Cours IGL, Copyright © 2011, ESI Par exemple, le navigateur est composé de getManager (gestionnaire des requêtes get), postManager (gestionnaire des requêtes POST) et GUI (interface) 35
  36. 36. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Composition «client» Cours IGL, Copyright © 2011, ESI Navigateur getManager postManager «use» «use» «UI» GUI 36
  37. 37. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Délégation Un composant peut avoir des sous -composants qui incluent des interfaces fournies ou des interfaces requises Cours IGL, Copyright © 2011, ESI La délégation consiste à transférer les interfaces fournies / requises du composant interne vers le composant externe 37
  38. 38. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Délégation «client» Navigateur Cours IGL, Copyright © 2011, ESI getManager IGet «delegate» IGet IPost postManager «delegate» IPost 38
  39. 39. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Délégation – Exemple 2 «client» «service» Cours IGL, Copyright © 2011, ESI Navigateur Serveur «delegate» IGet getManager serverGetManager IGet IGet «delegate» IGet IPost IPost postManager «delegate» serverPostManager «delegate» IPost IPost 39
  40. 40. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Paquets Les paquets peuvent être aussi utilisés dans les diagrammes de composants pour organiser les composants Cours IGL, Copyright © 2011, ESI 40
  41. 41. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Paquets «database» BDD Cours IGL, Copyright © 2011, ESI DataAccess «use» «use» EmployeeAccess SalaryAccess «use» «use» Presentation EmployeeView SalaryView 41
  42. 42. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composants et classes Les classes sont « packagées » dans des bibliothèques Par exemple une bibliothèque est un fichier jar (java) ou Cours IGL, Copyright © 2011, ESI une assembly dll (.NET) Le diagramme de composants définit aussi le packaging des classes du système Le connecteur liant les classes aux composants est le connecteur « realize » 42
  43. 43. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Artifacts Un artifact est une pièce physique utilisée par le système Un artifact peut être un document, un fichier, un code Cours IGL, Copyright © 2011, ESI source ou n’importe quel élément ayant une relation avec le système La dépendance avec le stéréotype « manifest » indique qu’un artifact est la représentation physique d’un composant. Par exemple, un fichier jar est une représentation physique d’une classe java 43
  44. 44. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Artifacts Cours IGL, Copyright © 2011, ESI 44
  45. 45. SECTION 2 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels COMPOSANTS Composants et classes Cours IGL, Copyright © 2011, ESI 45
  46. 46. COURS IGL Cours N° 6 Section 2 : Diagramme de Introduction aux composants, débat (05 mns) architectures logicielles 46Cours IGL, Copyright © 2011, ESI
  47. 47. COURS IGL Cours N° 6 Section 3 : Styles Introduction aux architecturaux architectures logicielles 47Cours IGL, Copyright © 2011, ESI
  48. 48. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Introduction Un style architectural est un modèle définissant comment sera le système Cours IGL, Copyright © 2011, ESI Comme les systèmes ont des points communs, ces systèmes auront des architectures qui se ressemblent. Le regroupement de ces architectures est appelé « style architectural » Un style architectural définit quels sont les composants, les connecteurs et les contraintes définissant l’architecture d’un système 48
  49. 49. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXBénéfices d’un style architectural Un style architectural aide à avoir un aperçu du système avant son développement Cours IGL, Copyright © 2011, ESI Le styles sont indépendants des technologies. Plusieurs technologies peuvent réaliser un certain style. Par exemple des serveur sous Linux et des clients sous Windows. Facilite la réutilisation Un système peut s’appuyer sur plusieurs styles 49
  50. 50. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Styles standards Il existe plusieurs standards Les styles standards les plus connus sont « pipe / filtre », Cours IGL, Copyright © 2011, ESI « client/serveur », « 3 tiers / N-tiers », « architecture multi-couches », « MVC », « cloud computing » 50
  51. 51. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Définition Permet à l’information d’être traitée par plusieurs composants d’une manière séquentielle Cours IGL, Copyright © 2011, ESI La configuration détermine l’ordre des traitements Le filtre est un composant qui traite l’information La pipe est un canal par lequel transite l’information 51
  52. 52. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Définition Cours IGL, Copyright © 2011, ESI pipe pipe«application» «application» «application» filtre1 filtre2 filtre3 52
  53. 53. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXPipe / Filtre - Fonctionnement SourceDeDonnées «application» pipe1 «application» filtre1 filtre2 Cours IGL, Copyright © 2011, ESI lire() traiter() ecrire() lire() traiter() 53
  54. 54. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Exemples Unix Shell Windows Powershell Cours IGL, Copyright © 2011, ESI Unix Shell : cat fichier.txt | grep logiciel | wc : compte le nombre de mots logiciel dans le fichier fichier.txt 54
  55. 55. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Avantages Forte décomposition du systèmes Filtres faciles à réutiliser Cours IGL, Copyright © 2011, ESI Facilite la maintenance La dépendance entre les filtres est faible 55
  56. 56. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Inconvénients Ne convient pas aux applications à haute interactivité Les performances dépendent des pipes Cours IGL, Copyright © 2011, ESI 56
  57. 57. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Définition MVC = Model View Controller Le modèle représente les entités du système Cours IGL, Copyright © 2011, ESI Le contrôleur implémente la logique métier et la logique des interactions La vue représente l’interface utilisateur 57
  58. 58. Cours 6 – Introduction Aux SECTION 3 – STYLESArchitectures de Logiciels ARCHITECTURAUX MVC - Exemple Vue HTML Cours IGL, Copyright © 2011, ESI Controleur Controller::CMSHandler Modèle Model::Page Model::Blog 58
  59. 59. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Exemples .NET : ASP.NET MVC, MonoRail Java : JavaServer Faces (JSF), Struts Cours IGL, Copyright © 2011, ESI Ruby On Rails Python : Zope 59
  60. 60. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Avantages Modèle de conception largement apprécié de la communauté de développeurs Cours IGL, Copyright © 2011, ESI Séparation de la logique de l’interface Testabilité accrue (les tests unitaires supportent le modèle et le contrôleur) 60
  61. 61. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Inconvénients Assez complexe Plus d’efforts de développement car chaque tâche Cours IGL, Copyright © 2011, ESI concerne les trois couches 61
  62. 62. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur - Définition Le système est composé de deux composants principaux se trouvant généralement dans des machines séparées : le client et le serveur Cours IGL, Copyright © 2011, ESI Le client envoie des requêtes au serveur Le serveur réagit au requêtes en renvoyant des réponses L’interface utilisateur se trouve au niveau du client 62
  63. 63. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXClient-Serveur – Fonctionnement «service» Cours IGL, Copyright © 2011, ESI serveur requête réponse «client» client 63
  64. 64. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur - Exemples Serveur web (IIS / Apache), Client web ( FireFox / Chrome / Internet Explorer) Cours IGL, Copyright © 2011, ESI Serveur FTP (ftpd) / Client FTP (FileZilla) 64
  65. 65. Cours 6 – Introduction Aux SECTION 3 – STYLESArchitectures de Logiciels ARCHITECTURAUXClient-Serveur - Exemples client FTP serveur FTP Cours IGL, Copyright © 2011, ESI demanderFichier() trouverFichier() :File 65
  66. 66. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXClient-Ser veur – Avantages et inconvénients AVANTAGES  Séparation des tâches Cours IGL, Copyright © 2011, ESI  Simple à utiliser INCONVÉNIENTS  Souvent insuffisant pour des cas complexes 66
  67. 67. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXArchitecture N-Tiers - Définition Fragmente le système en plusieurs niveaux Le niveau présentation, le niveau logique ou le niveau Cours IGL, Copyright © 2011, ESI données sont des exemples de niveaux Chaque niveau dépend uniquement du niveau qui est au dessus Exemple : applications web modernes 67
  68. 68. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXArchitecture N-Tiers - Exemple «database» BDD Cours IGL, Copyright © 2011, ESI «service» interpréteur «service» serveur web «client» client 68
  69. 69. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXArchitecture N-Tiers - Exemple «client» «service» «service» «database» client serveur web interpréteur BDD Cours IGL, Copyright © 2011, ESI get(url) invoquer() executerSQL() :resultats formaterResultats() :HTML :HTML 69
  70. 70. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXN-Tiers – Avantages et inconvénientsAVANTAGES Séparation poussée des tâches Cours IGL, Copyright © 2011, ESI Haute flexibilitéINCONVÉNIENTS Nécessite des ressources matérielles importantes 70
  71. 71. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA - Définition SOA ou (Service-Oriented Architecture) est une évolution du modèle client-serveur Cours IGL, Copyright © 2011, ESI SOA est basée sur des services faiblement couplés, indépendants des protocoles, basés sur les standards et distribués Chaque ressource disponible sur le réseau est utilisée comme un service 71
  72. 72. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Caractéristiques des services Les service sont autonomes Les services sont composables : créer un service à partir Cours IGL, Copyright © 2011, ESI d’autres services Les services sont réutilisables Les services permettent leur découverte 72
  73. 73. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Composants de SOA Une architecture SOA est basé sur un consommateur de service, un fournisseur de service et un registre de services (Service Broker) Cours IGL, Copyright © 2011, ESI Le consommateur utilise le service Le fournisseur assure le service Le registre fait le lien entre le fournisseur et le consommateur 73
  74. 74. Cours 6 – Introduction Aux SECTION 3 – STYLESArchitectures de Logiciels ARCHITECTURAUX Composants de SOA «service» registre Cours IGL, Copyright © 2011, ESI «use» «use» «client» «client» consommateur fournisseur contrat 74
  75. 75. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA – Technologies Deux tendances permettent d’implémenter SOA : SOAP / WSDL / UDDI ou REST Cours IGL, Copyright © 2011, ESI SOAP est un protocole basé sur XML permettant de véhiculer des données via HTTP en utilisant XML WSDL permet de décrire un service web UDDI permet de découvrir un service web SOAP / WSDL / SOAP sont utilisées conjointement REST est un protocole basée sur HTTP uniquement Dans REST, HTTP est le protocole de transmission et aussi le service web en même temps 75
  76. 76. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA – Avantages Indépendance et facilité de découverte Permettent à l’utilisation des applications depuis Cours IGL, Copyright © 2011, ESI n’importe quel équipement (PC, mobile, etc…) 76
  77. 77. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA – Exemples Google Search Engine (web + application android + application iOs) Cours IGL, Copyright © 2011, ESI Youtube (web + application android + application WP7 + application blackberry + application iOs) Facebook (web + applications mobiles) 77
  78. 78. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud Computing Le Cloud Computing est une technologie basée sur internet qui permet de fournir des ressources d’une manière évolutive sur internet Cours IGL, Copyright © 2011, ESI Le Cloud Computing décharge le client de l’infrastructure IT puisqu’elle fournit le matériel et l’infrastructure Le Cloud Computing est la base du SaaS (Software As A Service) Avec le SaaS, les utilisateurs ne se soucient plus de l’évolution et de la maintenance des logiciels 78
  79. 79. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud Computing Le Cloud Computing permet aux entreprises une réduction des coûts car le client ne paye que le stockage et l’utilisation des processeurs Cours IGL, Copyright © 2011, ESI Une structure basée sur le cloud est théoriquement infaillible car lorsque les serveurs actuels ne peuvent plus répondre à la demande, un nouveau serveur virtuel est automatiquement créé 79
  80. 80. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUXCloud Computing - Infrastructures Google AppEngine Amazon Cours IGL, Copyright © 2011, ESI Windows Azure 80
  81. 81. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud privé Le cloud est dit privé lorsqu’une entreprise décide de mettre en œuvre le cloud dans sa propre infrastructure IT Cours IGL, Copyright © 2011, ESI 81
  82. 82. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SaaS basés sur le cloud Office 365 Google Documents Cours IGL, Copyright © 2011, ESI 82
  83. 83. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SaaS basés sur le cloud Office 365 Google Documents Cours IGL, Copyright © 2011, ESI 83
  84. 84. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Avantages Idéal lorsqu’une entreprise ne veut pas (ou ne peut pas) se charger de l’infrastructure IT Cours IGL, Copyright © 2011, ESI Peut répondre à n’importe quelle charge Evolution instantanée des SaaS (pas de besoin de redéploiement) 84
  85. 85. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Inconvénients Grosses problématiques de sécurité : le client ne sait pas où sont ses données et si elles sont vraiment sécurisées Cours IGL, Copyright © 2011, ESI 85
  86. 86. COURS IGL Cours N° 6 Section 4 : Diagramme de Introduction aux déploiement architectures logicielles 86Cours IGL, Copyright © 2011, ESI
  87. 87. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Introduction Le diagramme de composants s’intéresse à l’architecture d’un point de vue logique tandis que le diagramme de déploiement s’y intéresse d’un point de vue physique Cours IGL, Copyright © 2011, ESI Le diagramme de déploiement s’intéresse aux relations entre les relations entre les composants et les équipements Les équipements hébergeant des unités logicielles sont appelés nœuds (nodes) 87
  88. 88. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Introduction Le diagramme de déploiement est composé de nœuds et de connecteurs Cours IGL, Copyright © 2011, ESI Un nœud représente un équipement dans le système Un connecteur représente une communication entre les noeuds 88
  89. 89. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Noeud Dans UML 2, un nœud est illustré comme ceci : Cours IGL, Copyright © 2011, ESI Noeud 89
  90. 90. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Nœud Dans UML, un nœud peut aussi avoir un stéréotype pour préciser la nature du nœud «cdrom», «cd-rom», «computer», «disk array», «pc», «pc Cours IGL, Copyright © 2011, ESI client», «pc server», «secure», «server», «storage», «unix server», «user pc» sont des exemples de stéréotypes Deux stéréotypes très importants : « device » et « execution environment » Le stéréotype « device » représente un équipement hardware Le stéréotype « execution environment » détermine un environnement où les processus s’exécutent : par exemple un framework ou un système d’exploitation Les nouds peuvent être imbriqué 90
  91. 91. SECTION 4 –Cours 6 – Introduction Aux DIAGRAMME DEArchitectures de Logiciels DÉPLOIEMENT Nœud - Exemple Cours IGL, Copyright © 2011, ESI «device» «device» PC Toshiba Serveur HP Pavillon «executionEnvironment» «executionEnvironment» Windows 7 Linux Ubuntu «executionEnvironment» «executionEnvironment» .NET Framework Java Runtime 91
  92. 92. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENTNœuds, composants et artifacts Un composant réside physiquement dans un nœud L’artifact est la manifestation physique d’un composant Cours IGL, Copyright © 2011, ESI où tout autre élément physique (document, exécutable, code source,…) 92
  93. 93. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Exemple 1 Les composants Listener et Diagnostic sont hébergés dans « Serveur » «device» Cours IGL, Copyright © 2011, ESI Serveur Listener Diagnostic 93
  94. 94. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Exemple 2 Les composants Listener et Diagnostic sont hébergés dans « Serveur ». Les artifastc représentent les exécutables associés Cours IGL, Copyright © 2011, ESI 94
  95. 95. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Lien de communication Le lien de communication est une association entre les nœuds modélisation la communication entre ces nœuds Cours IGL, Copyright © 2011, ESI 95
  96. 96. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENTLien de communication - Exemple «device» «device» Serveur PC Client Cours IGL, Copyright © 2011, ESI +1 0..* tcp tcp 1 1 «network» réseau local 96
  97. 97. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENTExemple d’architecture N/Tiers Cours IGL, Copyright © 2011, ESI «device» «device» PC Client Serveur BDD Serveur Application Application web «database» TCP HTTP BDD «executable» Navigateur Serveur web 97
  98. 98. COURS IGL Cours N° 6 Section 4 : Diagramme de Introduction déploiement, débat (05 aux architectures mns) logicielles 98Cours IGL, Copyright © 2011, ESI
  99. 99. Cours 6 – Introduction aux BIBLIOGRAPHIE architectures de logiciels Bibliographie UML Component Diagrams, Veronica Carrega, 2004 Introduction to Software Architecture”David Garlanand Cours IGL, Copyright © 2011, ESI Mary Shaw, January 1994 Analyse, Conception Objet Diagrammes de déploiement, SIMMO/ENSM.SE, 2002 99

×