SlideShare une entreprise Scribd logo
1  sur  99
COURS IGL

                        COURS 6
              INTRODUCTION AUX                    Cours 6 :

               ARCHITECTURES DE                   Architectures
                                                  de logiciels

                       LOGICIELS



Mostefai Mohammed Amine – m_mostefai@esi.dz
Batata Sofiane – s_batata@esi.dz              1
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
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 de
architecturaux                      déploiement
                                                         3




Cours IGL, Copyright © 2011, ESI
COURS IGL

                                            Cours N° 6
                                            Introduction
                 Section 1 : Introduction   aux
                                            architectures
                                            logicielles




                                                  4




Cours IGL, Copyright © 2011, ESI
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
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
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
Cours 6 – Introduction Aux                SECTION 1 -
   Architectures de Logiciels              INTRODUCTION


Repré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
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
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
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
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
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
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
Cours 6 – Introduction Aux            SECTION 1 -
Architectures de Logiciels          INTRODUCTION


   Exemple – Site JSP




                                                         Cours IGL, Copyright © 2011, ESI
                             JDBC
              Serveur web           SGBD MySQL




Navigateur

                                                    15
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
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
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
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
Cours 6 – Introduction Aux                SECTION 1 -
    Architectures de Logiciels              INTRODUCTION


UML 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
COURS IGL

                                            Cours N° 6
                Section 1 : Introduction,   Introduction
                                            aux
                    débat (05 mns)          architectures
                                            logicielles




                                                  21




Cours IGL, Copyright © 2011, ESI
COURS IGL

                                         Cours N° 6
              Section 2 : Diagramme de   Introduction
                                         aux
                     composants          architectures
                                         logicielles




                                               22




Cours IGL, Copyright © 2011, ESI
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
SECTION 2 –
   Cours 6 – Introduction Aux
                                          DIAGRAMME DE
   Architectures de Logiciels              COMPOSANTS


Caracté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
SECTION 2 –
Cours 6 – Introduction Aux
                                     DIAGRAMME DE
Architectures de Logiciels            COMPOSANTS


  Représentation UML




                                                          Cours IGL, Copyright © 2011, ESI
                         Composant




                                                     25
SECTION 2 –
   Cours 6 – Introduction Aux
                                              DIAGRAMME DE
   Architectures de Logiciels                  COMPOSANTS


Caracté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
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
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
SECTION 2 –
Cours 6 – Introduction Aux
                                            DIAGRAMME DE
Architectures de Logiciels                   COMPOSANTS


  Interfaces - Exemple




                                                                 Cours IGL, Copyright © 2011, ESI
                       «interface»
                    IEmployeeManager
           +   getEmployeeById(int) : Employee
           +   addEmployee(Employee) : void




                                                            29
SECTION 2 –
    Cours 6 – Introduction Aux
                                                   DIAGRAMME DE
    Architectures de Logiciels                      COMPOSANTS


       Interfaces - Exemple


  Nom de
l’interface




                                                                        Cours IGL, Copyright © 2011, ESI
                                         «interface»
                                      IEmployeeManager
                              +   getEmployeeById(int) : Employee
                              +   addEmployee(Employee) : void
Opérations




                                                                   30
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
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
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
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
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
SECTION 2 –
Cours 6 – Introduction Aux
                                                          DIAGRAMME DE
Architectures de Logiciels                                 COMPOSANTS


      Composition



                                «client»




                                                                               Cours IGL, Copyright © 2011, ESI
                               Navigateur


                  getManager                postManager




                           «use»          «use»



                                   «UI»
                                   GUI




                                                                          36
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
SECTION 2 –
Cours 6 – Introduction Aux
                                                          DIAGRAMME DE
Architectures de Logiciels                                 COMPOSANTS


       Délégation

                                «client»
                               Navigateur




                                                                               Cours IGL, Copyright © 2011, ESI
                       getManager                        IGet

                                            «delegate»


                               IGet
                                                         IPost
                      postManager

                                            «delegate»


                             IPost




                                                                          38
SECTION 2 –
Cours 6 – Introduction Aux
                                                            DIAGRAMME DE
Architectures 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
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
SECTION 2 –
Cours 6 – Introduction Aux
                                                                               DIAGRAMME DE
Architectures de Logiciels                                                      COMPOSANTS


         Paquets

                                                  «database»
                                                     BDD




                                                                                                    Cours IGL, Copyright © 2011, ESI
                     DataAccess
                                          «use»           «use»




                         EmployeeAccess                        SalaryAccess




                                  «use»                            «use»
                     Presentation



                             EmployeeView                         SalaryView




                                                                                               41
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
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
SECTION 2 –
Cours 6 – Introduction Aux
                             DIAGRAMME DE
Architectures de Logiciels    COMPOSANTS


        Artifacts




                                                  Cours IGL, Copyright © 2011, ESI
                                             44
SECTION 2 –
Cours 6 – Introduction Aux
                             DIAGRAMME DE
Architectures de Logiciels    COMPOSANTS


 Composants et classes




                                                  Cours IGL, Copyright © 2011, ESI
                                             45
COURS IGL

                                       Cours N° 6
           Section 2 : Diagramme de    Introduction
                                       aux
          composants, débat (05 mns)   architectures
                                       logicielles




                                             46




Cours IGL, Copyright © 2011, ESI
COURS IGL

                                                Cours N° 6
                           Section 3 : Styles   Introduction
                                                aux
                            architecturaux      architectures
                                                logicielles




                                                      47




Cours IGL, Copyright © 2011, ESI
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
Cours 6 – Introduction Aux             SECTION 3 – STYLES
    Architectures de Logiciels              ARCHITECTURAUX


Bé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
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
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
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
Cours 6 – Introduction Aux                                                   SECTION 3 – STYLES
  Architectures de Logiciels                                                    ARCHITECTURAUX


Pipe / Filtre - Fonctionnement

       SourceDeDonnées            «application»               pipe1             «application»
                                     filtre1                                       filtre2




                                                                                                                 Cours IGL, Copyright © 2011, ESI
                         lire()



                                                  traiter()

                                                   ecrire()

                                                                      lire()


                                                                                                traiter()




                                                                                                            53
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
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
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
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
Cours 6 – Introduction Aux                                   SECTION 3 – STYLES
Architectures de Logiciels                                    ARCHITECTURAUX


     MVC - Exemple

                                    Vue
                                    HTML




                                                                                  Cours IGL, Copyright © 2011, ESI
                                  Controleur

                          Controller::CMSHandler




                                   Modèle

                    Model::Page                Model::Blog



                                                                             58
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
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
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
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
Cours 6 – Introduction Aux                             SECTION 3 – STYLES
   Architectures de Logiciels                              ARCHITECTURAUX


Client-Serveur – Fonctionnement



                                   «service»




                                                                               Cours IGL, Copyright © 2011, ESI
                                    serveur




                         requête                réponse




                                     «client»
                                      client

                                                                          63
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
Cours 6 – Introduction Aux                                   SECTION 3 – STYLES
Architectures de Logiciels                                    ARCHITECTURAUX


Client-Serveur - Exemples

             client FTP                       serveur FTP




                                                                                    Cours IGL, Copyright © 2011, ESI
                          demanderFichier()



                                                            trouverFichier()




                                :File




                                                                               65
Cours 6 – Introduction Aux               SECTION 3 – STYLES
      Architectures de Logiciels                ARCHITECTURAUX


Client-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
Cours 6 – Introduction Aux             SECTION 3 – STYLES
   Architectures de Logiciels              ARCHITECTURAUX


Architecture 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
Cours 6 – Introduction Aux                  SECTION 3 – STYLES
  Architectures de Logiciels                   ARCHITECTURAUX


Architecture N-Tiers - Exemple

                                 «database»
                                    BDD




                                                                   Cours IGL, Copyright © 2011, ESI
                                   «service»
                                 interpréteur




                                  «service»
                                 serveur web




                                   «client»
                                    client


                                                              68
Cours 6 – Introduction Aux                                           SECTION 3 – STYLES
  Architectures de Logiciels                                            ARCHITECTURAUX


Architecture 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
Cours 6 – Introduction Aux             SECTION 3 – STYLES
   Architectures de Logiciels              ARCHITECTURAUX


N-Tiers – Avantages et inconvénients


AVANTAGES
 Séparation poussée des tâches




                                                               Cours IGL, Copyright © 2011, ESI
 Haute flexibilité
INCONVÉNIENTS
 Nécessite des ressources matérielles importantes




                                                          70
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
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
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
Cours 6 – Introduction Aux                    SECTION 3 – STYLES
Architectures de Logiciels                     ARCHITECTURAUX


   Composants de SOA


                          «service»
                           registre




                                                                   Cours IGL, Copyright © 2011, ESI
                  «use»               «use»




      «client»                                   «client»
   consommateur                                fournisseur



                                              contrat




                                                              74
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
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
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
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
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
Cours 6 – Introduction Aux      SECTION 3 – STYLES
    Architectures de Logiciels       ARCHITECTURAUX


Cloud Computing - Infrastructures

 Google AppEngine
 Amazon




                                                         Cours IGL, Copyright © 2011, ESI
 Windows Azure




                                                    80
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
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
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
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
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
COURS IGL

                                         Cours N° 6
              Section 4 : Diagramme de   Introduction
                                         aux
                    déploiement          architectures
                                         logicielles




                                               86




Cours IGL, Copyright © 2011, ESI
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
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
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
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
SECTION 4 –
Cours 6 – Introduction Aux
                                      DIAGRAMME DE
Architectures 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
SECTION 4 –
   Cours 6 – Introduction Aux
                                             DIAGRAMME DE
   Architectures de Logiciels                 DÉPLOIEMENT


Nœ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
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
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
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
SECTION 4 –
   Cours 6 – Introduction Aux
                                                          DIAGRAMME DE
   Architectures de Logiciels                              DÉPLOIEMENT


Lien de communication - Exemple


                   «device»                  «device»
                   Serveur                   PC Client




                                                                               Cours IGL, Copyright © 2011, ESI
                   +1                              0..*


                        tcp                  tcp



                        1                          1

                               «network»
                              réseau local



                                                                          96
SECTION 4 –
  Cours 6 – Introduction Aux
                                                        DIAGRAMME DE
  Architectures de Logiciels                             DÉPLOIEMENT


Exemple 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
COURS IGL

                                         Cours N° 6
              Section 4 : Diagramme de   Introduction
               déploiement, débat (05    aux
                                         architectures
                         mns)            logicielles




                                               98




Cours IGL, Copyright © 2011, ESI
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

Contenu connexe

Tendances

Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Cours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptCours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptSylia3
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI Heithem Abbes
 
Cycle de développement du logiciel
Cycle de développement du logicielCycle de développement du logiciel
Cycle de développement du logicielMajid CHADAD
 
patron de conception
patron de conception patron de conception
patron de conception Shili Mohamed
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)Heithem Abbes
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logicielMohamed Diallo
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)Heithem Abbes
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...ENSET, Université Hassan II Casablanca
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 

Tendances (20)

Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Cours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptCours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.ppt
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
 
Cycle de développement du logiciel
Cycle de développement du logicielCycle de développement du logiciel
Cycle de développement du logiciel
 
Chp1 intro conception
Chp1 intro conceptionChp1 intro conception
Chp1 intro conception
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
 
patron de conception
patron de conception patron de conception
patron de conception
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 

Similaire à Génie Logiciels : Introduction aux architectures

A SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdfA SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdfBabacarDIOP48
 
Cours chapitre2 2012
Cours chapitre2 2012Cours chapitre2 2012
Cours chapitre2 2012Yves Caseau
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptxPrinceLankoand
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à SysmlYassine SIDKI
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeNarjes Weslati
 
Adaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et ExpérimentationsAdaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et ExpérimentationsMadjid KETFI
 
TP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxTP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxSouadZid
 
Composants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiComposants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiMadjid KETFI
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLuc Desruelle
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLuc Desruelle
 

Similaire à Génie Logiciels : Introduction aux architectures (20)

A SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdfA SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdf
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
 
Cours chapitre2 2012
Cours chapitre2 2012Cours chapitre2 2012
Cours chapitre2 2012
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Eclipse Impress
Eclipse ImpressEclipse Impress
Eclipse Impress
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
 
Cy35558564
Cy35558564Cy35558564
Cy35558564
 
Lecon 1.1
Lecon 1.1Lecon 1.1
Lecon 1.1
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à Sysml
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicative
 
Adaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et ExpérimentationsAdaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et Expérimentations
 
TP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxTP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docx
 
Composants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiComposants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGi
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applications
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et Applications
 
cours2diagStatiq.pdf
cours2diagStatiq.pdfcours2diagStatiq.pdf
cours2diagStatiq.pdf
 
Objecteering
ObjecteeringObjecteering
Objecteering
 
Chp1 intro conception
Chp1 intro conceptionChp1 intro conception
Chp1 intro conception
 

Plus de Mohammed Amine Mostefai

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Mohammed Amine Mostefai
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationMohammed Amine Mostefai
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsMohammed Amine Mostefai
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionMohammed Amine Mostefai
 

Plus de Mohammed Amine Mostefai (20)

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - Personnalisation
 
Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de Documents
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - Introduction
 
Pratiques agiles
Pratiques agilesPratiques agiles
Pratiques agiles
 
Introduction à Scrum
Introduction à ScrumIntroduction à Scrum
Introduction à Scrum
 
Méthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XPMéthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XP
 
Le Manifeste Agile
Le Manifeste AgileLe Manifeste Agile
Le Manifeste Agile
 
Méthodes Agiles - Généralités
Méthodes Agiles - GénéralitésMéthodes Agiles - Généralités
Méthodes Agiles - Généralités
 
Introduction aux technologies mobiles
Introduction aux technologies mobilesIntroduction aux technologies mobiles
Introduction aux technologies mobiles
 
Workflow Foundation - Cours 5
Workflow Foundation - Cours 5Workflow Foundation - Cours 5
Workflow Foundation - Cours 5
 
Workflow Foundation Module 4
Workflow Foundation Module 4Workflow Foundation Module 4
Workflow Foundation Module 4
 
Présentation cloud journée azure
Présentation cloud   journée azurePrésentation cloud   journée azure
Présentation cloud journée azure
 
Wf module3
Wf module3Wf module3
Wf module3
 
Microsoft Workflow Foundation - Cours 2
Microsoft Workflow Foundation - Cours 2Microsoft Workflow Foundation - Cours 2
Microsoft Workflow Foundation - Cours 2
 
Introduction to Workflow Foundation
Introduction to Workflow FoundationIntroduction to Workflow Foundation
Introduction to Workflow Foundation
 
Le Langage CSS
Le Langage CSSLe Langage CSS
Le Langage CSS
 
Sécurisation des applications ASP.NET
Sécurisation des applications ASP.NETSécurisation des applications ASP.NET
Sécurisation des applications ASP.NET
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 

Génie Logiciels : Introduction aux architectures

  • 1. COURS IGL COURS 6 INTRODUCTION AUX Cours 6 : ARCHITECTURES DE Architectures de logiciels LOGICIELS Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz 1
  • 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. 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 de architecturaux déploiement 3 Cours IGL, Copyright © 2011, ESI
  • 4. COURS IGL Cours N° 6 Introduction Section 1 : Introduction aux architectures logicielles 4 Cours IGL, Copyright © 2011, ESI
  • 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. 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. 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. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Repré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. 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. 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. 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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Exemple – Site JSP Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQL Navigateur 15
  • 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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION UML 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. COURS IGL Cours N° 6 Section 1 : Introduction, Introduction aux débat (05 mns) architectures logicielles 21 Cours IGL, Copyright © 2011, ESI
  • 22. COURS IGL Cours N° 6 Section 2 : Diagramme de Introduction aux composants architectures logicielles 22 Cours IGL, Copyright © 2011, ESI
  • 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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Caracté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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Représentation UML Cours IGL, Copyright © 2011, ESI Composant 25
  • 26. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Caracté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. 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. 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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces - Exemple Cours IGL, Copyright © 2011, ESI «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void 29
  • 30. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces - Exemple Nom de l’interface Cours IGL, Copyright © 2011, ESI «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void Opérations 30
  • 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. 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. 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. 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. 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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composition «client» Cours IGL, Copyright © 2011, ESI Navigateur getManager postManager «use» «use» «UI» GUI 36
  • 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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Délégation «client» Navigateur Cours IGL, Copyright © 2011, ESI getManager IGet «delegate» IGet IPost postManager «delegate» IPost 38
  • 39. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures 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. 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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Paquets «database» BDD Cours IGL, Copyright © 2011, ESI DataAccess «use» «use» EmployeeAccess SalaryAccess «use» «use» Presentation EmployeeView SalaryView 41
  • 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. 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. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Artifacts Cours IGL, Copyright © 2011, ESI 44
  • 45. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composants et classes Cours IGL, Copyright © 2011, ESI 45
  • 46. COURS IGL Cours N° 6 Section 2 : Diagramme de Introduction aux composants, débat (05 mns) architectures logicielles 46 Cours IGL, Copyright © 2011, ESI
  • 47. COURS IGL Cours N° 6 Section 3 : Styles Introduction aux architecturaux architectures logicielles 47 Cours IGL, Copyright © 2011, ESI
  • 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Bé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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Fonctionnement SourceDeDonnées «application» pipe1 «application» filtre1 filtre2 Cours IGL, Copyright © 2011, ESI lire() traiter() ecrire() lire() traiter() 53
  • 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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Exemple Vue HTML Cours IGL, Copyright © 2011, ESI Controleur Controller::CMSHandler Modèle Model::Page Model::Blog 58
  • 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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur – Fonctionnement «service» Cours IGL, Copyright © 2011, ESI serveur requête réponse «client» client 63
  • 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur - Exemples client FTP serveur FTP Cours IGL, Copyright © 2011, ESI demanderFichier() trouverFichier() :File 65
  • 66. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Architecture 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Architecture N-Tiers - Exemple «database» BDD Cours IGL, Copyright © 2011, ESI «service» interpréteur «service» serveur web «client» client 68
  • 69. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Architecture 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX N-Tiers – Avantages et inconvénients AVANTAGES  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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Composants de SOA «service» registre Cours IGL, Copyright © 2011, ESI «use» «use» «client» «client» consommateur fournisseur contrat 74
  • 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. 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. 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. 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. 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. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud Computing - Infrastructures  Google AppEngine  Amazon Cours IGL, Copyright © 2011, ESI  Windows Azure 80
  • 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. 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. 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. 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. 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. COURS IGL Cours N° 6 Section 4 : Diagramme de Introduction aux déploiement architectures logicielles 86 Cours IGL, Copyright © 2011, ESI
  • 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. 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. 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. 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. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures 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. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Nœ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. 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. 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. 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. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Lien 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. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Exemple 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. COURS IGL Cours N° 6 Section 4 : Diagramme de Introduction déploiement, débat (05 aux architectures mns) logicielles 98 Cours IGL, Copyright © 2011, ESI
  • 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