chapitre 2: architectures logicielles

25
Chapitre 2: Architectures logicielles 1

Upload: others

Post on 09-Nov-2021

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapitre 2: Architectures logicielles

Chapitre 2: Architectures logicielles

1

Page 2: Chapitre 2: Architectures logicielles

Introduction

qObjectifs:Passaged’unearchitectureapplicativeversunearchitecturelogicielle

qArchitectureApplicativeq ellestructureleSIenblocsapplicatifscommunicantsq elledécritsousl’angletechniquelesapplications,lesfluxetlesmessageséchangésentreapplications

qArchitectureLogicielleq elleseconsacreàstructureretàconcevoiruneapplicationàpartirdesesspécificationsfonctionnelles

q ellestructureetdécomposedefaçonlogiquechaqueapplicationencouchesq elle introduitlesnotionsetconceptsdedécoupageencouches,composants,Frameworketdesignpatterns

2

Page 3: Chapitre 2: Architectures logicielles

Laméthodologie

qDansledomainedel’architecturedeSIaucuneméthodologien’aréussiàs’affirmeravecsuccès.

qApproche«topdown»(duprocessusaucode),avecdeuxcourantsprincipaux:q Approche«Données/Traitements»(Zachman,Merise...):l’approche«Données/Traitements»centrel’analysed’un problème surladonnéemanipulée;

q Approche«Composants»(RM-ODP,Catalysis...)quiadresseplusspécifiquement lesarchitecturesdessystèmes distribués :cemodèle aéteélaboresousl’influenceduframework ZachmanmaisguidéparleparadigmeOrienté Objet.

q Cesdeuxcourantsn’ontpasréussiàs’imposerpourdeuxprincipauxgriefs:qledogmatisme:lacroyancedansunedémarche top-down séquentielle (delastratégie aucode)

qlalourdeurdecesméthodologies :méthodologies verbeuses,manquantdepragmatisme

3

Page 4: Chapitre 2: Architectures logicielles

Laméthodologie

qDansledomainedel’architecturelogicielleunconsensuss’estcréecesdernièresannées autourduparadigmeobjetetdesméthodologiesbaséessurUML(Unified Process,RUP)oueXtreme Programming (XP)principalementpourlesraisonssuivantes:q Utilisationd’unlangagedemodélisation formeletstandardisé:UML(Unified ModelingLanguage)

q Puissanceetadéquation duparadigmeobjet(abstraction,encapsulation)pourlesac]vitésd’analyseetdeconceptionquipermetlamodélisationàdesniveauxsuccessifsd’abstraction

q Démarche itérative,etnonséquentielle,entrelesphasesderecueildesbesoins,analyse,conception,grace notammentauxniveauxd’abstractionproposés parlesmodèles

q Unificationdulangagedemodélisation UMLetdeslangagesdedéveloppement (Java,C#,etc.)autourd’unmeme paradigme(l’objet),cequifavoriselacontinuiteentrelesphasesdeconceptionetlesphasesd’implémentation

q Largeutilisationdepatternsdanslesphasesd’analyseetdeconception(Analysis Patterns,DesignPatterns)

4

Page 5: Chapitre 2: Architectures logicielles

Lerôledel’architecte

qIlapourrole de:

q Recenserlesbesoinstechniques(analysedel’existant,contraintes,besoinsexprimés)

q Définir lesprincipesdirecteursdel’architectureq Elaborerl’architectureapplicative,logicielleetphysiqueq Argumenterseschoixtechnologiquesq Identifierlesbesoinsenproduitstiersetframeworks techniques

5

Page 6: Chapitre 2: Architectures logicielles

Principesdirecteursdel’ArchitectureApplicativeqArchitectureApplicative

q EllestructureleSIenblocsapplicatifscommunicantsq Elledécrit sousl’angletechniquelesapplications,lesfluxetles messageséchangésentreapplications

qBlocapplicatifqModulelogicielexécutable ayantuneidentite,proposantdesservicesetayantuneinterface(prise)biendéfinie Approche«boite noire»

q ApprocheboitenoireqConnaissancedesentrées etsortiesdublocapplicatifqConnaissancedesfonc]onnalités etdestechnologiesqDanscettephaselesdétails dudécoupage internedublocapplicatifencouchesn’estpasétudie

6

Page 7: Chapitre 2: Architectures logicielles

Principesdirecteursdel’ArchitectureApplicativeqPourdéfinir lesfluxéchangés,nousallonsnousbasersurlesprincipesdirecteursdel’architecture

qExemples:qToujoursprivilégier l’utilisationdesstandardstechniquesdumarchéHTTP,XML,XSL,HTML, Javascript,DOM/DHTML,WebServices(SOAP,WSDL,UDDI),J2EE,.NET,FTP,…

qUtilisationdeslangagesXML(XML,XMLSchema,SOAP,WSDL,ebXML,...)commeformatpivotpourlesmessageséchangés

qLeséchanges synchronesentreblocsapplicatifssontréalisés enutilisantSOAP/HTTP

qLeséchanges asynchronesentreblocsapplicatifssontréalisés enutilisantunMOM...

7

Page 8: Chapitre 2: Architectures logicielles

Unedémarcheen4étapes

• Décrire defacon détaillée (fonctionnelle,applicativeettechnique)chacundesblocsapplicatifs(interne,externe,filialeoupartenaire).• Construireunecartographieapplicativedétaillée présentant touslesflux(synchrones/asynchrones,TP/batch)etmessageséchangés entrelesblocsapplicatifs(interne,externe,filialeoupartenaire)• Construirelamatricedesfluxàpartirdelacartographieapplicativedesflux• Apartirdescasd’utilisationidentifierunnombrelimitédecinématique représentativedel’utilisationdusystème

8

Page 9: Chapitre 2: Architectures logicielles

Définitions:Architecturelogicielle

qArchitectureLogicielleq Elleseconsacreàstructureretàconcevoiruneapplicationàpartirdesesspécificationsfonctionnelles

q Ellestructureetdécomposedefaçonlogiquechaqueapplicationencouchesq Elleintroduitlesnotionsetconceptsdedécoupageencouches,modules,composants,designpatternsetFrameworks

qApproche«boîteblanche»q Découpageinternedublocapplicatifencouchesmotifsdeconception(DesignPatterns)

q Framework(«cadredetravail»)etservicestechniques(gestiondestransactions,logs,traces,gestiondesfichiersdeconfiguration...)

9

Page 10: Chapitre 2: Architectures logicielles

Construireenassemblant

qLacapitalisationetlaréutilisationayanttoujoursétédespréoccupationsmajeuresdel’industrieinformatique,l’architectedisposeaujourd’huid’unepalettebienpluslarge:q Laconceptiondescouchessebasefortementsurdespratiqueséprouvées(designpatternsoumotifsdeconception)validésparl’industrieetrépondantgénéralementàdesproblématiquesrécurrentes

q Enassociantmotifsdeconceptionetlibrairies,lesframeworks constituentle«cadredetravail»

10

Page 11: Chapitre 2: Architectures logicielles

Unedémarcheen4étapes

qDemanièreitérativeetincrémentalel’architectevadanslaphased’architecturelogicielle:1. Définirlemodèled’architectureencouchesetentiersàmettreenœuvrepourchacundes

blocsapplicatifs2. Préconiserdesmotifsdeconceptionàmettreenœuvrepourlescouches3. Préconiserleslibrairies,composants,Frameworks etoutilsàutiliserpour:

qL’implémentation descouches logicielles (présentation/coordination/services/ domaine/persistance, gestiondelogs,...)

qLafabricationde l’application (conception,développement, testsunitaires, intégration,packaging)qLamiseenproductionetle suivi(déploiement, configuration, surveillance, suividelaqualitedeservice, suivideserreurs)

4. Guiderlesphasesdeconceptionetdedéveloppementens’assurantquelesconcepteursetlesdéveloppeursontbiencomprisl’architecture

11

Page 12: Chapitre 2: Architectures logicielles

Frameworkdedéveloppement

q Lamiseenœuvred’unframeworkdedéveloppementestunélémentfondamentalpourlaréussiteduprojet.

q Unframework (cadredetravail)correspondàunensembled’outilsdumarché,debibliothèques,despécifiquesetdeméthodologiesquivisentàfaciliter,cadreretaccélérerlesdéveloppementsduprojet.q Leframeworkdedéveloppement,élaboréenphased’étudeetconsolidéenphased’implémentation,estfondamentalàlabonneréussiteduprojet:q ildéfinitlecadredetravailetlesengagementsdechacunedesparties,fonctionnellesettechniques,enspécifiantleprocessusdedéveloppement

q ilpermetdemieuxécorréler lesaspectstechniquesdel’implémentationdesfonctionnalités

q ilcontraintetstandardiselesdéveloppementsq ildiminuelesrisquesliésauprojet

12

Page 13: Chapitre 2: Architectures logicielles

Structurationdesapplications

q L’architectestructurelesystèmeselonplusieurs«vues»:q Vueencouches(layerview):vue«logique»montrantledécoupagedesfonctionsdel’application• Chaquecoucheasespropresresponsabilités etutiliselacouchesituée endessousd’elle• Enfonctionduprojet,lesarchitectesenrichissentetélaguent lemodèle.• Lastructurationestalorsguidée parlescontraintesexprimées etexistantesPrésentation Controleur Services DomainePersistance

q Vueenniveaux(tier view):vue«physique»delastructurationdel’application(n-tiers)

13

Page 14: Chapitre 2: Architectures logicielles

Structurationdesapplications (suite)

• Lastructurationdesapplicationssetraduitparunedécompositionlogiquedechaqueapplicationen5couches:• Présentation• Contrôleur• Services• Domaine• Persistance

• Préconisationdemodèlesetmotifsdeconception(exp.MVC)

14

Page 15: Chapitre 2: Architectures logicielles

LacouchePrésentation

• LacouchePrésentationgèreetassurel'affichagedel'interfacegraphiqueutilisateuroulesInterfacesHomme-Machine(IHM:fenêtres,pages,composantsgraphiques...)• Cettecoucheintègreprincipalement:

• lagestiondudomainevisuel• l'interactionaveclesutilisateurs• l'interceptiondesévènementsutilisateursetl'appelàlacoucheContrôleur• lagestiondumulticanal(web,voix,mobile,fax)• lesservicesdeportail(agrégation d’IHM,bouquetsdeservices)• lesservicesd’impression(impressionsPDF,gestiondetemplates...

15

Page 16: Chapitre 2: Architectures logicielles

LacoucheContrôleur

• LacoucheContrôleurgère:• lecontrôledelacinématiquedesécrans• l’invocationdesappelsdeservices• leserreursetlesexceptionsquipeuventêtrelevées• lessessions/espacedetravailutilisateur• leshabilitationsetlesdroitsd’accès

• DanscertainsFramework,lacoucheContrôleurpeutprendreencomptelalangueetletypedeterminaldel’utilisateur

16

Page 17: Chapitre 2: Architectures logicielles

LacoucheServices

• LacoucheServicescorrespondauxtraitementsqu’effectuel’application• Ellereprésentel’implémentationdelalogiquedescasd’utilisation(use-casefonctionnels.• Cettecouchedoit:

• implémenter lalogiquemétier• gérer lasécuriteapplicative• gérer lestransactionsétendues (processus,compensation)• gérer l’intégritetransactionnelle(transactionslocalesetdistribuées)• gérer lesappelsauxobjetsmétiers delacoucheDomaine

17

Page 18: Chapitre 2: Architectures logicielles

LacoucheDomaine

• LacoucheDomainegère l'intégritedumodèle «métiers ».Cettecoucheintègreprincipalement:• lagestiondesrègles métiers «élémentaires »(sansétat,sansprocessus)• lafournituredesmoyensd'accèsàl'information(SGBDR,Mainframe...)• lerespectdespropriétés transactionnellesdelacouchepersistance

• LacoucheDomainerecenselesobjetsmétiers manipuléesparl’application• LacoucheDomaineestconcentréesurlemétier del’entreprise,communàtouteslesapplications

18

Page 19: Chapitre 2: Architectures logicielles

LacouchePersistance

• LacouchePersistanceintègre principalement:• Lapersistancecomplète duSystème d'Informations(données structurées ounonstructurées,gérées entreautresviaunSGBDR,annuaireLDAP,transactionCICS,...)• Lafournituredesservicesdestockagedesdonnées,moteursrelationnels,basesobjets,basesXML...• Lacréation,lamodification,lasuppressiond'occurrencesdesobjetsmétiers

• Ellecontientunniveaud’abstractiondedonnées lesDAO(DataAccessObject)quiprennentenchargel'accèsàlasourcededonnées(SGBDR,fichiersXML,CICS,...).Ilsoffrentunevisionobjetdesoccurrencesd’en]tés dumodèle physiquededonnées

19

Page 20: Chapitre 2: Architectures logicielles

LescouchesTransverses

• CoucheSécurite• Servicesdesécurite:SSO,authentification,gestiondeshabilitations,intégrite,non-répudiation...Lasécuriten’estpasunecoucheisolée,maistransverseauxautrescouches:• authentification desutilisateurs etcontrole des habilitations auniveaudes services IHM,sécurisation

des traitements(authentification, habilitations grossemaille ethabilitations fines...),• sécurisation deséchanges, sécurisation desdonnées...

• CoucheServicesTechniques(Core Services)• Indépendamment desfonc]onnalités desapplicationsetdeleurdécoupage encoucheslogicielles,onretrouvedescomposantsetservicesdebasecommuns(Core Services)ettransversesàl’ensembledescouches:• gestion des traces• statistiques etlogs• gestion des erreurs• gestion des propriétés deconfiguration• gestion des fichiers demessages (internationalisation, messages d’erreurs) monitoring...

20

Page 21: Chapitre 2: Architectures logicielles

Typologies des Architectures

21

Page 22: Chapitre 2: Architectures logicielles

L’ArchitectureOrientéeObjets

• Dansunearchitectureorientéemanipulationd’objets,onremarquetoutdesuitelenombredeliensentrelacoucheCoordinationetlesobjetsmétiersdelacoucheDomaine.

• Lecodeclientdoittraiterdirectementaveclemodèle objetdelacoucheDomaine,cequiapourconséquencedeliercelle-citrès fortementàunmodèle spécifique etrequiertunnombred'appelsimportantentrelesdeuxcouches.

• Lamultiplicationdesappels entrecouchesposeproblème lorsdelamiseàdispositionàdistancedesobjetsmétiers.Depluslenombred'objetsàmanipulerréduit l'indépendance entrecouchesetcomplexifielapriseenmaindelacouchemétier

22

Page 23: Chapitre 2: Architectures logicielles

L’ArchitectureOrientéeServices(SOA)

• L’architectureSOAconsisteàtraitertouteapplicationdusystèmed’informationcommeunfournisseurdeservices• LeprincipalenjeudelaSOAétant laréutilisation desservices,ceux-cidoiventetre pensés nonseulementenfonctiond’unprojetimmédiat,maisaussisurlelongtermepourserviràd’autresapplications• Celaimpliquel’interactionavecl’existant(systèmes,plates-formesetapplications),etuneouvertureversuneréutilisation futuredesnouveauxmodulesfonctionnelsoutechniques.• DansuneSOAunniveausupplémentaireestintroduitsouslaformedelacoucheServices.

23

Page 24: Chapitre 2: Architectures logicielles

L’ArchitectureOrientéeServices(SOA)(Suite)

• LacoucheCoordinationnemanipuleplusdirectementlesobjetsmétiers,maispassepardesappelsdeservices.Lesobjetsmétiers setrouventdansdesbibliothèquesdeclassesdirectementchargées danslememe processusquelesservices,lecout desappelsauxobjetsmétiersestalorstrès faible• Lesservicesagissentcommedes«boitesnoires»faisantabstractiondelacomplexitédumodèleobjet,présentantunensembledefonctionnalitésrestreintsetpermettantderéduire leséchanges entrelescouches

24

Page 25: Chapitre 2: Architectures logicielles

Bibliographie:•DesignPatterns,parErichGamma,RichardHelm,RalphJohnson,JohnVlissides (Addison-Wesley)•Core J2EEPatternshttp://java.sun.com/blueprints/corej2eepatterns/index.html•Microsoft.NETPatternshttp://msdn.microsoft.com/architecture/

25