Mais conteúdo relacionado Semelhante a Génie Logiciels : Introduction aux architectures (20) Mais de Mohammed Amine Mostefai (20) Génie Logiciels : Introduction aux architectures1. 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