Click here to load reader
Upload
mohammed-amine-mostefai
View
19.769
Download
1
Embed Size (px)
Citation preview
1
Cours 6 :Architectures de logiciels
COURS IGL
COURS 6INTRODUCTION AUX ARCHITECTURES DE
LOGICIELS
Mostefai Mohammed Amine – [email protected] Sofiane – [email protected]
Cours IGL, Copyright ©
2011, ESI
2
Présenter la notion d’architecture logicielleDonner un aperçu des principaux styles architecturauxDécouvrir le lien entre l’architecture et le déploiement
physique à travers le diagramme de déploiement
O B J EC T I FS D U C O U RSCours 6 – Introduction Aux Architectures de Logiciels
Objectifs du cours
3
Cours IGL, Copyright © 2011, ESI
Cours 6Introduction aux architectures logicielles
INTRODUCTION AU GÉNIE LOGICIELSection 1 :
Introduction
Section 2 : Diagramme de
composants
Section 2 : Styles
architecturaux
Section 5 : Diagramme de déploiement
4
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 1 : Introduction
Cours IGL, Copyright ©
2011, ESI
5
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 propriétés visibles et leur relations
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Définition
Cours IGL, Copyright ©
2011, ESI
6
L’architecture d’un système est sa conception de haut niveau
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
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Introduction
Cours IGL, Copyright ©
2011, ESI
7
L’architecture implique plusieurs choix dont les technologies , les produits et les serveurs à utiliser
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.
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Introduction
Cours IGL, Copyright ©
2011, ESI
8
Il existe plusieurs représentations graphiques des architectures
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
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Représentation des architectures
Cours IGL, Copyright ©
2011, ESI
9
Un composant est un module logiciel ou un entrepôt de données
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.
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Composants
Cours IGL, Copyright ©
2011, ESI
10
Un serveur est un module logiciel qui répond aux requêtes d’autres modules appelés clients
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
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Serveurs et clients
Cours IGL, Copyright ©
2011, ESI
11
Une application est un module logiciel qui a un rôle défini dans le système logiciel
Par exemple, une application d’envoi de mails
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Application
Cours IGL, Copyright ©
2011, ESI
12
Une base de données est un entrepôt stockant les données sous un format normalisé
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é
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Base de données
Cours IGL, Copyright ©
2011, ESI
13
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Vue C&C
Client Serveur
Base de données Application
Cours IGL, Copyright ©
2011, ESI
14
Le connecteur modélise une interaction entre deux composants
Un connecteur peut modéliser une interaction simple (appel de procédure) ou une interaction complexe (par exemple utilisation d’un protocole comme http)
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Connecteurs
Cours IGL, Copyright ©
2011, ESI
15
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Exemple – Site JSP
Navigateur
Serveur web SGBD MySQL
http
JDBC
Cours IGL, Copyright ©
2011, ESI
16
La vue logique d’une architecture logicielle définit les principaux composants d’une architecture sans se soucier des détails physiques (équipements, machines, …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.
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Vue Physique et Vue Logique
Cours IGL, Copyright ©
2011, ESI
17
Serveur 1
Exemple 1 : services déployés dans le même serveur
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Vue Physique et Vue Logique
Navigateur
Serveur web SGBD MySQL
http
JDBC
Cours IGL, Copyright ©
2011, ESI
18
Serveur 2Serveur 1
Exemple 2 : services déployés dans des serveurs différents
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Vue Physique et Vue Logique
Navigateur
Serveur web SGBD MySQL
http
JDBC
Cours IGL, Copyright ©
2011, ESI
19
Donne un aperçu de haut niveau du système qui va faciliter la communication et la compréhension
Aide à comprendre des systèmes existantsDé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é
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
Utilisation de l’architecture
Cours IGL, Copyright ©
2011, ESI
20
Plusieurs formalismes peuvent décrire une architecture logicielle
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
S EC T I O N 1 - I N T RO D U C T I O N
Cours 6 – Introduction Aux Architectures de Logiciels
UML et les architectures logicielles
21
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 1 : Introduction, débat (05 mns)
22
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 2 : Diagramme de composants
Cours IGL, Copyright ©
2011, ESI
23
Un composant est une unité autonome dans un systèmeUn composant définit un système ou un sous-système de
n’importe quelle taille ou complexitéLes diagrammes de composants permettent de modéliser
les composants et leurs interactionsLes composants d’un système sont facilement réutilisés
ou remplacés
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Composant
Cours IGL, Copyright ©
2011, ESI
24
Un composant est une unité modulaire avec des interfaces bien définies
Les interfaces définissent comment le composant peut être appelé ou intégré
Le composant est remplaçable et autonomeL’implémentation du composant est cachée (encapsulée)
aux entités externes
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Caractéristiques d’un composant
Cours IGL, Copyright ©
2011, ESI
25
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Représentation UML
Composant
Cours IGL, Copyright ©
2011, ESI
26
Un composant a un nom unique dans son contexteUn composant peut être étendu par un stéréotypeIl 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.
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Caractéristiques d’un composant
Cours IGL, Copyright ©
2011, ESI
27
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Exemples de stéréotypes
«service»Composant1
«client»Composant2
«database»Composant3
«subsystem»Composant4
Cours IGL, Copyright ©
2011, ESI
28
Un composant définit son comportement en terme d’interfaces fournies et interfaces requises
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
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Interfaces
Cours IGL, Copyright ©
2011, ESI
29
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Interfaces - Exemple
«interface»IEmployeeManager
+ getEmployeeById(int) : Employee+ addEmployee(Employee) : void
Cours IGL, Copyright ©
2011, ESI
30
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Interfaces - Exemple
«interface»IEmployeeManager
+ getEmployeeById(int) : Employee+ addEmployee(Employee) : void
Nom de l’interface
Opérations
Cours IGL, Copyright ©
2011, ESI
31
Une interface fournie définie les fonctions qu’un composant pourrait faire
Exemple : un serveur web peut gérer les requêtes HTTP de type get ou post
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Interfaces fournie
ServeurWebIGet
IPost
Cours IGL, Copyright ©
2011, ESI
32
Définit la (ou les interfaces) qu’un composant attend de son environnement
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Interfaces requise
NavigateurIGet
IPost
Cours IGL, Copyright ©
2011, ESI
33
Un assemblage entre deux composants est lorsqu’une même interface est requise pour un composant et fournie par l ’autre
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Assemblage
«client»Navigateur
«service»ServeurWeb
get
Cours IGL, Copyright ©
2011, ESI
34
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)
En d’autres mots, l’exécution de C1 requiert la présence de C2
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Utilisation
Component1 Component2«use»
Cours IGL, Copyright ©
2011, ESI
35
Un composant peut être lui-même composé d’autres composants. On parle alors de composition.
Par exemple, le navigateur est composé de getManager (gestionnaire des requêtes get), postManager (gestionnaire des requêtes POST) et GUI (interface)
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Composition
Cours IGL, Copyright ©
2011, ESI
36
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Composition
«client»Navigateur
getManager postManager
«UI»GUI
«use»«use»
Cours IGL, Copyright ©
2011, ESI
37
Un composant peut avoir des sous-composants qui incluent des interfaces fournies ou des interfaces requises
La délégation consiste à transférer les interfaces fournies / requises du composant interne vers le composant externe
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Délégation
Cours IGL, Copyright ©
2011, ESI
38
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Délégation
«client»Navigateur
IGet
IPost
getManager
IGet
postManager
IPost
«delegate»
«delegate»
Cours IGL, Copyright ©
2011, ESI
39
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Délégation – Exemple 2
«client»Navigateur
IGet
IPost
getManager
IGet
postManager
IPost
«service»Serveur
IGet
IPost
serverGetManagerIGet
serverPostManagerIPost
«delegate»
«delegate»
«delegate»
«delegate»
Cours IGL, Copyright ©
2011, ESI
40
Les paquets peuvent être aussi utilisés dans les diagrammes de composants pour organiser les composants
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Paquets
Cours IGL, Copyright ©
2011, ESI
41
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Paquets
«database»BDD
DataAccess
EmployeeAccess SalaryAccess
Presentation
EmployeeView SalaryView
«use» «use»
«use» «use»
Cours IGL, Copyright ©
2011, ESI
42
Les classes sont « packagées » dans des bibliothèquesPar exemple une bibliothèque est un fichier jar (java) ou
une assembly dll (.NET)Le diagramme de composants définit aussi le packaging
des classes du systèmeLe connecteur liant les classes aux composants est le
connecteur « realize »
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Composants et classes
Cours IGL, Copyright ©
2011, ESI
43
Un artifact est une pièce physique utilisée par le systèmeUn artifact peut être un document, un fichier, un code
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
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Artifacts
Artifact
Cours IGL, Copyright ©
2011, ESI
44
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Artifacts
bibliotheque.jar«library»
Bibliotheque«manifest»
Cours IGL, Copyright ©
2011, ESI
45
S EC T I O N 2 – D I A G R A M M E D E
C O M P O S A N T S
Cours 6 – Introduction Aux Architectures de Logiciels
Composants et classes
«library»Model
Model.jarClient Product
«executable»Program
Programlogiciel.exe
«manifest»«use»
«manifest»
46
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 2 : Diagramme de composants, débat (05 mns)
47
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 3 : Styles architecturaux
Cours IGL, Copyright ©
2011, ESI
48
Un style architectural est un modèle définissant comment sera le système
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
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Introduction
Cours IGL, Copyright ©
2011, ESI
49
Un style architectural aide à avoir un aperçu du système avant son développement
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éutilisationUn système peut s’appuyer sur plusieurs styles
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Bénéfices d’un style architectural
Cours IGL, Copyright ©
2011, ESI
50
Il existe plusieurs standardsLes styles standards les plus connus sont « pipe / filtre »,
« client/serveur », « 3 tiers / N-tiers », « architecture multi-couches », « MVC », « cloud computing »
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Styles standards
Cours IGL, Copyright ©
2011, ESI
51
Permet à l’information d’être traitée par plusieurs composants d’une manière séquentielle
La configuration détermine l’ordre des traitementsLe filtre est un composant qui traite l’informationLa pipe est un canal par lequel transite l’information
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Pipe / Filtre - Définition
Cours IGL, Copyright ©
2011, ESI
52
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Pipe / Filtre - Définition
«application»filtre1
«application»filtre2
«application»filtre3
pipe pipe
Cours IGL, Copyright ©
2011, ESI
53
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Pipe / Filtre - Fonctionnement
SourceDeDonnées «application»filtre1
pipe1 «application»filtre2
lire()
traiter()
ecrire()
lire()
traiter()
Cours IGL, Copyright ©
2011, ESI
54
Unix ShellWindows PowershellUnix Shell : cat fichier.txt | grep logiciel | wc : compte le
nombre de mots logiciel dans le fichier fichier.txt
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Pipe / Filtre - Exemples
Cours IGL, Copyright ©
2011, ESI
55
Forte décomposition du systèmesFiltres faciles à réutiliserFacilite la maintenanceLa dépendance entre les filtres est faible
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Pipe / Filtre - Avantages
Cours IGL, Copyright ©
2011, ESI
56
Ne convient pas aux applications à haute interactivitéLes performances dépendent des pipes
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Pipe / Filtre - Inconvénients
Cours IGL, Copyright ©
2011, ESI
57
MVC = Model View ControllerLe modèle représente les entités du systèmeLe contrôleur implémente la logique métier et la logique
des interactionsLa vue représente l’interface utilisateur
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
MVC - Définition
Cours IGL, Copyright ©
2011, ESI
58
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
MVC - Exemple
Modèle
Model::Page Model::Blog
Controleur
Controller::CMSHandler
VueHTML
Cours IGL, Copyright ©
2011, ESI
59
.NET : ASP.NET MVC, MonoRailJava : JavaServer Faces (JSF), StrutsRuby On RailsPython : Zope
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
MVC - Exemples
Cours IGL, Copyright ©
2011, ESI
60
Modèle de conception largement apprécié de la communauté de développeurs
Séparation de la logique de l’interfaceTestabilité accrue (les tests unitaires supportent le
modèle et le contrôleur)
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
MVC - Avantages
Cours IGL, Copyright ©
2011, ESI
61
Assez complexePlus d’efforts de développement car chaque tâche
concerne les trois couches
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
MVC - Inconvénients
Cours IGL, Copyright ©
2011, ESI
62
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
Le client envoie des requêtes au serveurLe serveur réagit au requêtes en renvoyant des réponsesL’interface utilisateur se trouve au niveau du client
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Client-Serveur - Définition
Cours IGL, Copyright ©
2011, ESI
63
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Client-Serveur – Fonctionnement
«client»client
«service»serveur
requête réponse
Cours IGL, Copyright ©
2011, ESI
64
Serveur web (IIS / Apache), Client web (FireFox / Chrome / Internet Explorer)
Serveur FTP (ftpd) / Client FTP (FileZilla)
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Client-Serveur - Exemples
Cours IGL, Copyright ©
2011, ESI
65
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Client-Serveur - Exemples
client FTP serveur FTP
demanderFichier()
trouverFichier()
:File
Cours IGL, Copyright ©
2011, ESI
66
AVANTAGESSéparation des tâchesSimple à utiliserINCONVÉNIENTSSouvent insuffisant pour des cas complexes
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Client-Serveur – Avantages et inconvénients
Cours IGL, Copyright ©
2011, ESI
67
Fragmente le système en plusieurs niveauxLe niveau présentation, le niveau logique ou le niveau
données sont des exemples de niveauxChaque niveau dépend uniquement du niveau qui est au
dessusExemple : applications web modernes
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Architecture N-Tiers - Définition
Cours IGL, Copyright ©
2011, ESI
68
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Architecture N-Tiers - Exemple
«client»client
«service»serveur web
«service»interpréteur
«database»BDD
Cours IGL, Copyright ©
2011, ESI
69
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
Architecture N-Tiers - Exemple
«client»client
«service»serveur web
«service»interpréteur
«database»BDD
get(url)
invoquer()
executerSQL()
:resultats
formaterResultats():HTML
:HTML
Cours IGL, Copyright ©
2011, ESI
70
AVANTAGESSéparation poussée des tâchesHaute flexibilitéINCONVÉNIENTSNécessite des ressources matérielles importantes
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
N-Tiers – Avantages et inconvénients
Cours IGL, Copyright ©
2011, ESI
71
SOA ou (Service-Oriented Architecture) est une évolution du modèle client-serveur
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
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
Cours 6 – Introduction Aux Architectures de Logiciels
SOA - Définition
Cours IGL, Copyright ©
2011, ESI
Les service sont autonomesLes services sont composables : créer un service à partir
d’autres servicesLes services sont réutilisablesLes services permettent leur découverte
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
72
Cours 6 – Introduction Aux Architectures de Logiciels
Caractéristiques des services
Cours IGL, Copyright ©
2011, ESI
Une architecture SOA est basé sur un consommateur de service , un fournisseur de service et un registre de services (Service Broker)
Le consommateur utilise le serviceLe fournisseur assure le serviceLe registre fait le lien entre le fournisseur et le
consommateur
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
73
Cours 6 – Introduction Aux Architectures de Logiciels
Composants de SOA
Cours IGL, Copyright ©
2011, ESI
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
74
Cours 6 – Introduction Aux Architectures de Logiciels
Composants de SOA
«client»consommateur
«service»registre
«client»fournisseur
contrat
«use» «use»
Cours IGL, Copyright ©
2011, ESI
Deux tendances permettent d’implémenter SOA : SOAP / WSDL / UDDI ou REST
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 webUDDI permet de découvrir un service webSOAP / WSDL / SOAP sont utilisées conjointementREST est un protocole basée sur HTTP uniquementDans REST, HTTP est le protocole de transmission et
aussi le service web en même temps
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
75
Cours 6 – Introduction Aux Architectures de Logiciels
SOA – Technologies
Cours IGL, Copyright ©
2011, ESI
Indépendance et facilité de découvertePermettent à l’utilisation des applications depuis
n’importe quel équipement (PC, mobile, etc…)
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
76
Cours 6 – Introduction Aux Architectures de Logiciels
SOA – Avantages
Cours IGL, Copyright ©
2011, ESI
Google Search Engine (web + application android + application iOs)
Youtube (web + application android + application WP7 + application blackberry + application iOs)
Facebook (web + applications mobiles)
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
77
Cours 6 – Introduction Aux Architectures de Logiciels
SOA – Exemples
Cours IGL, Copyright ©
2011, ESI
Le Cloud Computing est une technologie basée sur internet qui permet de fournir des ressources d’une manière évolutive sur internet
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
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
78
Cours 6 – Introduction Aux Architectures de Logiciels
Cloud Computing
Cours IGL, Copyright ©
2011, ESI
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
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éé
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
79
Cours 6 – Introduction Aux Architectures de Logiciels
Cloud Computing
Cours IGL, Copyright ©
2011, ESI
Google AppEngineAmazonWindows Azure
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
80
Cours 6 – Introduction Aux Architectures de Logiciels
Cloud Computing - Infrastructures
Cours IGL, Copyright ©
2011, ESI
Le cloud est dit privé lorsqu’une entreprise décide de mettre en œuvre le cloud dans sa propre infrastructure IT
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
81
Cours 6 – Introduction Aux Architectures de Logiciels
Cloud privé
Cours IGL, Copyright ©
2011, ESI
Office 365Google Documents
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
82
Cours 6 – Introduction Aux Architectures de Logiciels
SaaS basés sur le cloud
Cours IGL, Copyright ©
2011, ESI
Office 365Google Documents
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
83
Cours 6 – Introduction Aux Architectures de Logiciels
SaaS basés sur le cloud
Cours IGL, Copyright ©
2011, ESI
Idéal lorsqu’une entreprise ne veut pas (ou ne peut pas) se charger de l’infrastructure IT
Peut répondre à n’importe quelle chargeEvolution instantanée des SaaS (pas de besoin de
redéploiement)
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
84
Cours 6 – Introduction Aux Architectures de Logiciels
Avantages
Cours IGL, Copyright ©
2011, ESI
Grosses problématiques de sécurité : le client ne sait pas où sont ses données et si elles sont vraiment sécurisées
S EC T I O N 3 – S T Y L ES A R C H I T EC T U R AU X
85
Cours 6 – Introduction Aux Architectures de Logiciels
Inconvénients
86
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 4 : Diagramme de déploiement
Cours IGL, Copyright ©
2011, ESI
87
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
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)
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Introduction
Cours IGL, Copyright ©
2011, ESI
88
Le diagramme de déploiement est composé de nœuds et de connecteurs
Un nœud représente un équipement dans le systèmeUn connecteur représente une communication entre les
noeuds
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Introduction
Cours IGL, Copyright ©
2011, ESI
89
Dans UML 2, un nœud est illustré comme ceci :
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Noeud
Noeud
Cours IGL, Copyright ©
2011, ESI
90
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 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é
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Nœud
Cours IGL, Copyright ©
2011, ESI
91
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Nœud - Exemple
«device»PC Toshiba
«executionEnvironment»Windows 7
«executionEnvironment».NET Framework
«device»Serveur HP Pavillon
«executionEnvironment»Linux Ubuntu
«executionEnvironment»Java Runtime
Cours IGL, Copyright ©
2011, ESI
92
Un composant réside physiquement dans un nœudL’artifact est la manifestation physique d’un composant
où tout autre élément physique (document, exécutable, code source,…)
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Nœuds, composants et artifacts
Cours IGL, Copyright ©
2011, ESI
93
Les composants Listener et Diagnostic sont hébergés dans « Serveur »
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Exemple 1
«device»Serveur
Listener
Diagnostic
Cours IGL, Copyright ©
2011, ESI
94
Les composants Listener et Diagnostic sont hébergés dans « Serveur ». Les artifastc représentent les exécutables associés
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Exemple 2
«device»Serveur
Listener
Diagnostic
Listener.exe
Diagnostic.exe
«manifest»
«manifest»
Cours IGL, Copyright ©
2011, ESI
95
Le lien de communication est une association entre les nœuds modélisation la communication entre ces nœuds
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Lien de communication
Cours IGL, Copyright ©
2011, ESI
96
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Lien de communication - Exemple
«device»Serveur
«network»réseau local
«device»PC Client
+1
tcp
1
0..*
tcp
1
Cours IGL, Copyright ©
2011, ESI
97
S EC T I O N 4 – D I A G R A M M E D E
D É P LO I E M E N T
Cours 6 – Introduction Aux Architectures de Logiciels
Exemple d’architecture N/Tiers
«device»Serveur BDD
«database»BDD
«device»Serveur Application
Application web
Serveur web
PC Client
«executable»Navigateur
TCP HTTP
98
Cours IGL, Copyright © 2011, ESI
Cours N° 6Introduction aux architectures logicielles
COURS IGL
Section 4 : Diagramme de déploiement, débat (05
mns)
Cours IGL, Copyright ©
2011, ESI
99
UML Component Diagrams, Veronica Carrega, 2004Introduction to Software Architecture”David Garlanand
Mary Shaw, January 1994Analyse, Conception ObjetDiagrammes de déploiement, SIMMO/ENSM.SE, 2002
B I B L I O G R A P H I ECours 6 – Introduction aux architectures de logiciels
Bibliographie