Génie Logiciels : Introduction aux architectures

18 540 vues

Publié le

Une présentation introd

0 commentaire
17 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
18 540
Sur SlideShare
0
Issues des intégrations
0
Intégrations
308
Actions
Partages
0
Téléchargements
1 068
Commentaires
0
J’aime
17
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×