ARCHITECTURE
ARCHITECTURE
Architecture
multi-niveaux
Architecture logicielle
Architecture un tier
Architecture deux-tier
Architecture 3 tier
Architecture n-tier
Développer un style architectural
Comment ça se passera ?
ARCHITECTURE LOGICIELLE
Architecture logicielle ?
Noyau de l’application
Locaux
Traitements Logique des traitements
Globaux
Gestion des traitements
ARCHITECTURE UN-TIER
Architecture un-tier
Présentation
Dans ce type d’architecture, les trois couches applicatives
sont intimement liées et s’exécutent sur le même ordinateur.
Présentation (suite)
Dans un contexte multi-utilisateurs, on peut rencontrer deux
types d’architectures
Présentation
Traitements
Terminal passif
Données
Architecture un-tier
Facilité d’administration
Haute disponibilité
Limitations
Limitations
ARCHITECTURE 2-TIER
Architecture 2-tier
Présentation
Encore appelé client-serveur de 1ère génération ou client-
serveur de données, le client se contente de déléguer la
gestion des données à un service spécialisé.
Présentation (suite)
La gestion des données est prise en charge par un SGBD
centralisé, le plus souvent hébergé sur un serveur dédié,
interrogé en utilisant un langage de requête, généralement
SQL.
Dialogue client-serveur
Le modèle client-serveur met en œuvre une conversation
entre deux programmes que l'on peut opposer à l'échange
figé ``maître-esclave'' qu'entretiennent les applications sur
site central avec leurs terminaux passifs.
Dialogue client-serveur
Architecture 2-tier
Le middleware
Architecture 2-tier
Le middleware : exemples
SQL*Net : Interface propriétaire pour accéder aux bases
de données Oracle
ODBC : Interface standardisée isolant le client du serveur
de données. C'est l'implémentation par Microsoft du
standard CLI
DCE : Permet l’appel à des procédures distantes depuis
une application
Architecture 2-tier
ARCHITECTURE 3-TIER
Architecture 3-tier
Serveur de transaction
Architecture 3-tier
Dans un cookie
Limitations
Limitations (suite)
Limitations (fin)
De plus les solutions mises en œuvre sont relativement
complexes à maintenir et la gestion des sessions compliquée
Les contraintes semblent inversées par rapport à
l’architecture 2-tier: le client est soulagé, mais le serveur est
fortement sollicité.
Comment ça se passera ?
ARCHITECTURE N-TIER
Architecture n-tier
Présentation
Elle est pensée pour palier aux limitations des architectures 3-
tier et concevoir des applications puissantes et simples à
maintenir.
Présentation (suite)
Cette approche met en œuvre une approche objet pour
offrir une plus grande souplesse d’implémentation et faciliter
la réutilisation des développements
Architecture n-tier
Présentation (fin)
Théoriquement ce type d’architecture supprime tous les
inconvénients des architectures précédentes :
Utilisation d’interfaces-utilisateurs riches
Séparation nette de tous les niveaux de l’application
Grande capacité d’extension
Les niveaux
L’appellation ‘n-tier’ pourrait faire penser que cette
architecture met en œuvre un nombre indéterminé de
niveaux de service, alors qu’il sont au maximum trois.
L’approche objet
De plus en plus conceptuelle, elle permet de masquer la
complexité des mécanismes mis en œuvre
Architecture n-tier
Le modèle CORBA
Le système CORBA permet, au travers du protocole IIOP,
l’utilisation d’objets structurés dans un environnement
hétérogène.
Diagramme de packages
Package: Collection d’éléments de modélisation UML (e.g.
classes, use cases, etc.) groupés ensemble car liés
logiquement.
Il faut essayer de maximiser la cohésion au sein de
package (éléments liés) et minimiser le couplage entre
ceux-ci.
Dépendance: Un package est dépendant d’un autre s’il
l’utilise…
Modèle architectural
Diagramme de composants
Offre une vue de haut niveau de l’architecture du
système.
Utilisé pour décrire le système d’un point de vue
implémentation.
Permet de décrire les composants d’un système et les
interactions entre ceux-ci.
Illustre comment grouper concrètement et physiquement
les éléments (objets, interfaces, etc.) du système au sein
de modules qu’on appelle composants.
Modèle architectural
Diagramme de déploiement
Modèle architectural
Il est très utilisé en IHM, mais peut être appliqué dans bien
d’autres cas.
Architecture n-tier par l’exemple
Responsabilités :
• Le sujet notifie les observers quand il change, et leur
permet de s’enregistrer.
• Les observers acceptent les notifications.
Architecture n-tier par l’exemple
import java.util.Observer;
public void update
import java.util.Observable;
(Observable obs, Object
public class TextObserver implements
obj)
Observer
{
{
if (obs == ov){
private ObservableObject ov = null;
System.out.println(ov.getValue(
public TextObserver
));
(ObservableObject ov)
}
{
}
this.ov = ov;
}
}
Architecture n-tier par l’exemple
Dès qu’un message est posté, tous les abonnés sont notifiés
• L’architecture;
• Les classes;
• Les données.
Architecture n-tier par l’exemple
Exemple en Java
• Une vue listant les différents volumes et qui
ajoutera chaque nouveau volume dans une
liste déroulante : JFrameListVolume
Architecture n-tier par l’exemple
Exemple en Java
• Une vue permettant de modifier le volume à l’aide
d’un spinner avec un bouton permettant de
valider le nouveau volume : JFrameSpinnerVolume
Architecture n-tier par l’exemple
Exemple en Java
• Une vue permettant de modifier le nouveau
volume avec un champ texte avec un
bouton permettant de valider le nouveau
volume : JFrameFieldVolume
Architecture n-tier par l’exemple
http://baptiste-wicht.developpez.com/tutoriels/conception/mvc/
Architecture n-tier par l’exemple
Remarques
• L’architecture doit supporter la séparation
entre métier, interfaces homme-machine et
données.
Pattern « Delegate »
Problème :
Pattern « Delegate »
Solution
• Réduire le couplage entre la présentation et
les composants métiers
• Masquer l’implémentation du composant
• Permettre des changements d’implémentation
dans touts les composants métier sans toucher
les couches supérieures.
Quelques Design Patterns
Pattern « Delegate »
Pattern « Facade »
Pattern « Facade »
Pattern « Facade »
But :
• Mettre à disposition de l’application au moyen
d’interfaces, les méthodes dont elle a réellement
besoin afin de faciliter son flot d’exécution
Quelques Design Patterns
Pattern « DAO »
• L’accès aux sources de données varie selon la
source des données (base de données
relationnelles, ERP, …)
Pattern « DAO »
• L’accès aux sources de données varie selon la
source des données (base de données
relationnelles, ERP, …)
Pattern « DAO »
• Les servlets, pages JSP, …, peuvent à tout moment
voir besoin d’accéder à une source de données
• Les API de gestion de base de données ainsi que
leurs possibilités varient selon leur constructeur.
• La portabilité de l’application est grandement
affectée par les API propriétaires
• Les composants d’accès aux données doivent
être transparents pour l’application