Académique Documents
Professionnel Documents
Culture Documents
NFE107 - Cours U ARSI 5 - Vision Informatique Logique - Architecture Logicielle - V1.0
NFE107 - Cours U ARSI 5 - Vision Informatique Logique - Architecture Logicielle - V1.0
NFE107
Chapitre 5
Vision Informatique Logique
Architectures Applicative et Logicielle
Dfinitions
Architecture Logicielle
Elle se consacre structurer et concevoir une application partir de ses spcifications fonctionnelles
Elle structure et dcompose de faon logique chaque application en couches
Elle introduit les notions et concepts de dcoupage en couches, modules, composants, design patterns et
frameworks
Construire en assemblant
A lorigine, les matriaux de base de larchitecte logiciel sont les langages de programmation et
les librairies associes
La conception des couches se base fortement sur des pratiques prouves (design patterns ou motifs de
conception) valids par lindustrie et rpondant gnralement des problmatiques rcurrentes
En associant motifs de conception et librairies, les frameworks constituent le cadre de travail
4.
Larchitecte doit :
veiller ce que larchitecture conue soit bien apprhende par les quipes de conception et de dveloppement
cadrer la dmarche de conception et de dveloppement.
Sa mission consiste
A bien documenter son architecture, afin que les quipes de conception et de dveloppement soient guides
respectivement dans la conception et limplmentation des couches et lutilisation des motifs de conception, composants et
frameworks
Proposer le framework du projet, constitu de motifs de conception et de librairies, qui va cadrer :
Une couche dabstraction permettant de rendre limplmentation indpendante des librairies ou briques choisies trouvera
tout naturellement sa place dans un tel socle (notion de mta-framework).
La productivit est une proccupation grandissante dans les projets. Larchitecte, pourra prconiser dans son
architecture de dveloppement les outils de productivit (gnrateurs, L4G personnaliss, ) compatibles
avec les contraintes du projet (budgets, culture des personnes).
Larchitecte peut imposer des pratiques (tests unitaires, documentation automatique) qui permettent de mieux
assurer la qualit de la ralisation.
Larchitecte participe dcrire dans le dtail le processus de dveloppement de bout en bout (de la
conception lintgration : guides de dveloppement, patterns, mthodologie dintgration continue) en
contraignant lutilisation des outils, des librairies, composants et frameworks dans le contexte du projet
Cours U&ARSI 5 - Vision Informatique Logique Architecture Applicative - v1.0
Framework de dveloppement
Chapitre 5
Vision Informatique Logique
Architectures Applicative et Logicielle
Structurer
La structuration du systme peut tre vue sous diffrents angles, selon que lon
considre :
Vue en couches (layer view) : vue logique montrant le dcoupage des fonctions de
lapplication
2.
La vue en couches
de matriser la complexit des applications (dveloppement, changes entre les applications, interactions
entre objets)
doptimiser les temps de dveloppement, en factorisant certaines briques applicatives
disoler les problmatiques denchanements de processus en dfinissant et en dlimitant le primtre du
contrle de lintgrit transactionnelle (locale et distribue)
de favoriser la communication :
10
lintrieur dune application, en structurant les changes entre les diffrentes couches
entre les applications en prcisant les principes de communication lie aux couches de diverses applications
Le passage dune couche vers une autre doit imprativement se faire via des interfaces qui
reprsentent chacune un service daccs (introduction de la notion de contrats de services)
La cohrence entre lurbanisme (qui conoit les plans des SI dans une perspective de
fonctionnement rationnel et dvolutivit) et larchitecture dun projet (qui en construit les blocs
applicatifs), est dautant plus aise assurer si lon parvient dcouper les blocs applicatifs
selon les couches du modle de larchitecture applicative logique
Cours U&ARSI 5 - Vision Informatique Logique Architecture Applicative - v1.0
Modle en 5 couches
11
Prsentation
Contrleur
Services
Domaine
Persistance
Couche prsentation
12
Les crans, qui assurent la restitution de l'tat du systme sur un terminal graphique et permettent la
saisie de donnes et la demande d'excution de traitements
Les ditions, qui assurent la restitution de l'tat du systme en vue d'une impression. Un cran de
prvisualisation accompagne gnralement chaque dition
Client lger :
Client lourd :
Dans ce modle, l'ensemble des crans de l'application sont stocks ou gnrs sur le poste client et doivent avoir
t dploys sur celui-ci pralablement l'excution
Ce type de client n'impose priori pas de restriction sur le contenu et l'ergonomie des crans
En rgle gnrale, une complexit croissante va de pair avec une taille croissante de l'application tlcharger
13
Dans ce modle, aucun dploiement n'est ralis sur le poste client l'exception d'un navigateur Web
Les diffrents crans de l'application sont gnrs en temps rel ct serveur et tlchargs par le poste client
Couche Contrleur
Dans certains frameworks, la couche Contrleur peut prendre en compte la langue et le type de
terminal de lutilisateur
Larchitecture applicative de gestion des interactions utilisateur est gnralement mise en uvre
autour du motif de conception MVC (Modle-Vue-Contrleur):
14
le Modle reprsente lensemble des composants qui sont chargs de raliser des appels la couche
Services et de mettre les rsultats de lappel la disposition de la Vue
la Vue reprsente l'interface utilisateur.
le Contrleur gre la synchronisation entre la Vue et le Modle. Le contrleur ragit aux actions de
lutilisateur en effectuant les actions ncessaires sur le Modle. Le Contrleur surveille les modifications
du modle et informe la Vue des mises jour ncessaires.
Cours U&ARSI 5 - Vision Informatique Logique Architecture Applicative - v1.0
Le modle MVC
15
Couche Services
Elle gre les services mtiers qui enchanent des rgles mtiers (processus mtier) et
des appels la couche Domaine
16
Couche Domaine
La couche Domaine est concentre sur le mtier de lentreprise, commun toutes les
applications
Elle contient les Objets Mtier qui implmentent le modle mtier. Ils offrent la couche
Services une abstraction pour la manipulation unitaire ou multiple des occurrences de
donnes, ainsi que la mise en uvre des rgles de gestion associes
Exemple bancaire : lopration de virement de compte compte
17
Couche Persistance
Elle contient un niveau dabstraction de donnes les DAO (Data Access Object) qui
prennent en charge l'accs la source de donnes (SGBDR, fichiers XML, CICS, ).
Ils offrent une vision objet des occurrences dentits du modle physique de donnes
18
de crer, rechercher, modifier et supprimer des composants objets mtiers dans le respect
des proprits transactionnelles classiques
dutiliser le mcanisme de projection objet vers relationnel (mapping Objet / Relationnel) qui
consiste en la transformation de la reprsentation des donnes en une reprsentation objet
doffrir le support, des contextes transactionnels issus de la couche domaine
Cours U&ARSI 5 - Vision Informatique Logique Architecture Applicative - v1.0
Couches Transverses
Couche Scurit
Services de scurit : SSO, authentification, gestion des habilitations, intgrit, nonrpudiation La scurit nest pas une couche isole, mais transverse aux autres couches:
19
authentification des utilisateurs et contrle des habilitations au niveau des services IHM,
scurisation des traitements (authentification, habilitations grosse maille et habilitations fines),
scurisation des changes, scurisation des donnes
Les architectes peuvent tre amens effectuer des dcoupages plus fins lorsque les
contraintes deviennent plus industrielles
20
La sparation des traitements dans une couche Service a pour objectif de permettre leur rutilisation
entre des processus automatiques (arrive de messages en provenance de systmes externes) et
des oprations manuelles effectues via les IHMs
Une couche Domaine est pertinente dans le cas o les traitements effectuer sont nombreux, portent sur
des entits mtiers identifies, rcurrentes et ont une importante dure de vie
Le recours une couche Echanges (comprenant les couches Connectivit, Transformation et
Routage) permet dintgrer des sources dinformations multiples et htrognes, en les transformant en
un ensemble plus rduit de formats pivots pour les router vers les traitements adquats. Elle propose des
services dchanges entre traitements (changes synchrones, asynchrones), entre systme de
persistance (synchronisation de rfrentiels, ETL, ...), services de garantie de livraison de message,
Message Broker (Transformation, Routage, DataFlow), services de gestion de transactions tendues
(processus, compensation)
La vue en niveaux
21
La vue en niveaux (la tier view) donne une vision plus physique de la structuration
de lapplication. Les niveaux (ou tiers) peuvent tre rpartis physiquement sur
diffrents composants matriels.
Des modles standards de rpartition de niveaux ont t dfinis dans les projets par
lindustrie au fur et mesure de lvolution des capacits matrielles et des besoins
Modle 1 tiers
22
Les donnes sont stockes sur un fichier local ou partages sur un serveur de
fichiers
Le modle 2 tiers
23
Cest avec ce type darchitectures que lon a pu gagner en flexibilit et se passer des
onreux systmes centraux
Modle n-tiers
24
Le modle N-tiers est celui mis en uvre dans le cadre des projets web
Chapitre 5
Vision Informatique Logique
Architectures Applicative et Logicielle
Qualit de service
Les points concernant la qualit de service doivent tre abords ds les phases darchitecture
applicative logique et logicielle, notamment sur les problmatiques suivantes :
Scurit
Faire apparatre les blocs applicatifs impacts par les aspects scurit :
Performances
Continuit de Service
26
identification,
authentification,
gestion des habilitations,
intgrit, confidentialit et non rpudiation (donnes et changes)
Faire apparatre les composants produits impacts par les mcanismes de basculement sur incident (transparent ou
non), et les composants applicatifs galement impacts par ces mcanismes (faire apparatre lventuel besoin de
partage/rplication de contexte de session,
Identifier les besoins en termes de Haute disponibilit (mcanismes de loadbalancing, gestion du fail-over)
Chapitre 5
Vision Informatique Logique
Architectures Applicative et Logicielle
28
Dans une architecture oriente manipulation dobjets, on remarque tout de suite le nombre de
liens entre la couche Coordination et les objets mtiers de la couche Domaine.
Le code client doit traiter directement avec le modle objet de la couche Domaine, ce qui a pour
consquence de lier celle-ci trs fortement un modle spcifique et requiert un nombre
d'appels important entre les deux couches.
La multiplication des appels entre couches pose problme lors de la mise disposition
distance des objets mtiers. De plus le nombre d'objets manipuler rduit l'indpendance entre
couches et complexifie la prise en main de la couche mtier
29
SOA (suite)
30
Dans une SOA un niveau d'indirection supplmentaire est introduit sous la forme de la couche
Services.
La couche Coordination ne manipule plus directement les objets mtiers, mais passe par des
appels de services. Les objets mtiers se trouvent dans des bibliothques de classes
directement charges dans le mme processus que les services, le cot des appels aux objets
mtiers est alors trs faible.
Les services agissent comme des boites noires faisant abstraction de la complexit du
modle objet, prsentant un ensemble de fonctionnalits restreints et permettant de rduire les
changes entre les couches
SOA (suite)
Un service doit assurer un rle bien dfini et non redondant (les services doivent tre factoriss)
Un contrat de service prcisant le contrat dinterface et la qualit de service doit tre dfini entre
le(s) fournisseur(s) de services et le(s) consommateur(s)
Un service doit pouvoir tre utilis par plusieurs types de consommateurs :
31
Internes ou
Externes (clients, filiales, partenaires, )
Un service doit pouvoir tre utilis par exemple pour un traitement batch (asynchrone multivalu) et pour un traitement TP (synchrone mono-valu)
Le terme service a un sens plus large que son utilisation dans le cadre de Services Web. On
peut faire de la SOA sans Service Web. Lorientation service renvoie une faon de concevoir
le SI avant de renvoyer une implmentation technique de cette conception
SOA (suite)
Un service est cr dans le contexte d'une application, mais il doit tre conu de
faon pouvoir tre utilis dans d'autres contextes
Les services doivent tre conus pour tre utiliss aussi bien en local qu' distance
Dcouplage entre les couches et optimisation des changes afin dassurer de plus
grandes facilits dvolutivit et de rutilisation, il convient de dcoupler les couches
les unes des autres
32