Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
NFE107
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
Dcoupage interne du bloc applicatif en couches motifs de conception (Design Patterns) Framework ( cadre de travail ) et services techniques (gestion des transactions, logs, traces, gestion des fichiers de configuration...)
Construire en assemblant
A lorigine, les matriaux de base de larchitecte logiciel sont les langages de programmation et les librairies associes La capitalisation et la rutilisation ayant toujours t des proccupations majeures de lindustrie informatique, larchitecte dispose aujourdhui dune palette bien plus large :
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
La standardisation aidant, les composants deviennent un ingrdient essentiel de cet assemblage. Certains diteurs proposent, pour des domaines fonctionnels verticaux, de vritables progiciels supportant les standards
Rfrences Design Patterns, par Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley) Core J2EE Patterns : http://java.sun.com/blueprints/corej2eepatterns/index.html Microsoft .NET Patterns : http://msdn.microsoft.com/architecture/
Dfinir le modle darchitecture en couches et en tiers mettre en uvre pour chacun des blocs applicatifs Prconiser des motifs de conception mettre en uvre pour les couches Prconiser les librairies, composants, frameworks et outils utiliser pour :
Limplmentation des couches logicielles (prsentation / coordination / services / domaine / persistance, gestion de logs, ) La fabrication de lapplication (conception, dveloppement, tests unitaires, intgration, packaging) La mise en production et le suivi (dploiement, configuration, surveillance, suivi de la qualit de service, suivi des erreurs)
4.
Guider les phases de conception et de dveloppement en sassurant que les concepteurs et les dveloppeurs ont bien compris larchitecture
Cours U&ARSI 5 - Vision Informatique Logique Architecture Applicative - v1.0
veiller ce que larchitecture conue soit bien apprhende par les quipes de conception et de dveloppement cadrer la dmarche de conception et de dveloppement. 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 :
Les concepteurs dans leur conception du fonctionnel et les dveloppeurs dans leur implmentation du fonctionnel.
Sa mission consiste
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). par les concepteurs pour spcifier (conception UML, intranet documentaire) par les dveloppeurs lors du dveloppement et des tests (environnement de dveloppement, gestionnaires de sources, tests unitaires, automatisation des dploiements).
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
La mise en uvre dun framework de dveloppement est un lment fondamental pour la russite du projet. Un framework (cadre de travail) correspond un ensemble doutils du march, de bibliothques spcifiques et de mthodologies qui visent faciliter, cadrer et acclrer les dveloppements du projet. Le framework de dveloppement, labor en phase dtude et consolid en phase dimplmentation, est fondamental la bonne russite du projet :
il dfinit le cadre de travail et les engagements de chacune des parties, fonctionnelles et techniques, en spcifiant le processus de dveloppement il permet de mieux dcorrler les aspects techniques de limplmentation des fonctionnalits il contraint et standardise les dveloppements il diminue les risques lis au projet
Cours U&ARSI 5 - Vision Informatique Logique Architecture Applicative - v1.0
Structurer
La structuration du systme peut tre vue sous diffrents angles, selon que lon considre :
le dcoupage logique hors de tout contexte dexcution (machines, OS et rseaux) le dcoupage physique (prenant en compte le contexte dexcution)
Vue en couches (layer view) : vue logique montrant le dcoupage des fonctions de lapplication
elle est indpendante des considrations physiques la littrature propose des modles standards de structuration qui couvrent les types classiques dapplications le modle de rfrence est le modle 5 couches, qui sapplique aux applications munies dune interface graphique manipulant des donnes persistantes
2.
La vue en couches
La structuration des applications en couches permet :
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 :
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
10
Modle en 5 couches
La structuration des applications se traduit par une dcomposition logique de chaque application en 5 couches :
Chaque couche a ses propres responsabilits et utilise la couche situe en dessous delle En fonction du projet, les architectes enrichissent et laguent le modle. La structuration est alors guide par les contraintes exprimes et existantes
11
Couche prsentation
La couche Prsentation gre et assure l'affichage de l'interface graphique utilisateur ou les Interfaces Homme-Machine (IHM : fentres, pages, composants graphiques...) Cette couche intgre principalement :
la gestion du domaine visuel l'interaction avec les utilisateurs l'interception des vnements utilisateurs et l'appel la couche Contrleur la gestion du multicanal (web, voix, mobile, fax) les services de portail (agrgation dIHM, bouquets de services) les services dimpression (impressions PDF, gestion de templates)
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
12
Client lger :
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
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
Couche Contrleur
La couche Contrleur gre :
le contrle de la cinmatique des crans linvocation des appels de services les erreurs et les exceptions qui peuvent tre leves les sessions / espace de travail utilisateur les habilitations et les droits daccs
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):
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
14
Le modle MVC
15
Couche Services
La couche Services correspond aux traitements queffectue lapplication Elle reprsente limplmentation de la logique des cas dutilisation (use-case fonctionnels) proprement parler Cette couche doit :
implmenter la logique mtier grer la scurit applicative grer les transactions tendues (processus, compensation) grer lintgrit transactionnelle (transactions locales et distribues) grer les appels aux objets mtiers de la couche Domaine
Elle gre les services mtiers qui enchanent des rgles mtiers (processus mtier) et des appels la couche Domaine
16
Couche Domaine
La couche Domaine gre l'intgrit du modle mtiers . Cette couche intgre principalement:
la gestion des rgles mtiers lmentaires (sans tat, sans processus) la fourniture des moyens d'accs l'information (SGBDR, Mainframe...) le respect des proprits transactionnelles de la couche persistance
La couche Domaine recense les objets mtiers manipules par lapplication 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
lopration de virement de compte compte est un lment de la couche Services le compte bancaire et le client et leurs rgles de gestion respectives, se situent dans la couche Domaine
17
Couche Persistance
La couche Persistance intgre principalement :
la persistance complte du Systme d'Informations (donnes structures ou non structures, gres entre autres via un SGBDR, annuaire LDAP, transaction CICS, ...) La fourniture des services de stockage des donnes, moteurs relationnels, bases objets, bases XML la cration, la modification, la suppression d'occurrences des objets mtiers
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 La couche Persistance offre les fonctionnalits de base qui permettent :
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:
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
Indpendamment des fonctionnalits des applications et de leur dcoupage en couches logicielles, on retrouve des composants et services de base communs (Core Services) et transverses lensemble des couches :
gestion des traces statistiques et logs gestion des erreurs gestion des proprits de configuration gestion des fichiers de messages (internationalisation, messages derreurs) monitoring
19
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)
20
La vue en niveaux
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. On identifie un changement de niveau ds quun module logiciel doit passer par un intermdiaire de communication (middleware) pour en invoquer un autre. Si lutilisation du middleware est en gnral transparente pour les dveloppeurs, elle nest pas sans impact sur larchitecture. Larchitecte doit donc matriser les caractristiques (client/serveur, publication/abonnement, scurit, support du transactionnel, ) et en justifier lusage. 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
21
Modle 1 tiers
Le modle 1 niveau (ou tiers) correspond un binaire dans lequel sexcutent toutes les couches, de la prsentation la persistance. Cest lexemple de lapplication utilise en monoposte ou sur un rseau de serveurs de fichiers, ainsi que de lapplication sur systme central. Les donnes sont stockes sur un fichier local ou partages sur un serveur de fichiers
22
Le modle 2 tiers
Le modle 2 niveaux (ou tiers), encore appel client/serveur premire gnration , repose sur lutilisation de moteurs de bases de donnes relationnelles. Ces moteurs permettent de distribuer la gestion de la persistance sur un serveur Ce modle a typiquement permis de mieux rpondre au besoin daccs concurrents et de supporter dimportants volumes Cest avec ce type darchitectures que lon a pu gagner en flexibilit et se passer des onreux systmes centraux Lapplication dentreprise peut ainsi tre accde depuis un ordinateur personnel avec des standards de prsentation moderne
23
Modle n-tiers
La littrature parle du modle gnrique N-tiers (ou N-niveaux) Le modle N-tiers est celui mis en uvre dans le cadre des projets web Exemple : tiers impliqus dans le modle darchitecture J2EE
24
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 :
identification, authentification, gestion des habilitations, intgrit, confidentialit et non rpudiation (donnes et changes)
Performances
Mentionner les points lis aux temps de rponse. En ce qui concerne dventuels mcanismes de rpartition de charge, faire apparatre les composants progiciels impacts par ces mcanismes, et les composants applicatifs galement impacts par ces mcanismes (faire apparatre notamment les ventuels besoin de gestion daffinit de session)
Continuit de Service
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)
26
28
La rutilisation et la composition : partage de modules entre applications La prennit : implique le support des technologies existantes et venir L'volutivit : la majeure partie des applications sont amenes voluer dans le temps afin de pouvoir rpondre aux nouveaux besoins fonctionnels L'ouverture et l'interoprabilit : partager des modules applicatifs entre plates-formes et environnements La distribution : pouvoir utiliser ces modules distance et les centraliser au sein de l'entreprise par exemple La performance
29
SOA (suite)
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
30
SOA (suite)
Un service (local ou distant) est un module :
Pouvant tre invoqu en mode synchrone ou asynchrone Charg d'une fonction particulire Prsentant une interface bien dfinie
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 :
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
31
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
La communication entre les couches dpend de larchitecture physique de lapplication. Lorsque les couches se trouvent sur des machines physiquement distinctes, des mcanismes tels que le remoting ou les Services Web peuvent tre mis en uvre Lorsque les couches dune application se trouvent toutes sur la mme machine, il convient doptimiser la performance en privilgiant des appels directs entre les couches
32