Professional Documents
Culture Documents
gilbert.raymond@softeam.fr
Version 1.0 fvrier 2007 copyright SOFTEAM 2007, www.softeam.fr Relecteur : Alain Delfin, consultant Softeam.
www.softeam.fr
fvrier 2007
Page 1 sur 30
Table des matires Introduction ............................................................................................................................................. 3 Principes et motivation............................................................................................................................ 4 Les lments de base de larchitecture .................................................................................................... 6 Composant de service ......................................................................................................................... 6 Bus dentreprise .................................................................................................................................. 7 Contrat de service................................................................................................................................ 7 Donnes dchanges et donnes persistantes ...................................................................................... 9 Typologie et modle en couches logiques............................................................................................. 11 Composant Entit.............................................................................................................................. 13 SOA et Processus .............................................................................................................................. 14 Composant Processus........................................................................................................................ 15 Composant Fonction ......................................................................................................................... 16 Composant Utilitaire et public .......................................................................................................... 17 Composant Prsentation.................................................................................................................... 17 Dmarche et identification .................................................................................................................... 18 Dmarche orient processus.............................................................................................................. 18 Dmarche oriente donne................................................................................................................ 19 Dmarche oriente application.......................................................................................................... 20 Gestion des versions.......................................................................................................................... 20 Spcification tendue et tests ............................................................................................................ 21 Cartographie et modles........................................................................................................................ 23 Cartographie des services.................................................................................................................. 23 Structure gnrale du systme........................................................................................................... 23 Dpendance dinterfaces ................................................................................................................... 24 Structuration du SI et application.......................................................................................................... 25 Application composite ...................................................................................................................... 25 Visibilit et structuration du SI ......................................................................................................... 26 SEA (Service Enterprise Architecture) ................................................................................................. 27 Glossaire................................................................................................................................................ 28
www.softeam.fr
fvrier 2007
Page 2 sur 30
Introduction
En quelques annes, larchitecture oriente service (SOA) est devenue un thme majeur pour les systmes dinformation dentreprise. Plus quune nouvelle technologie ou mthode, cest la convergence de plusieurs approches existantes, et lmergence dune forte adhsion des directions informatique et mtier un mme objectif : une meilleure agilit des systmes face aux transformations ncessaires.
Approches Approches Orientes Objets Orientes Objets
Approche par Approche par Composant Composant (Herzum & Sims) (Herzum & Sims)
EAI EAI
BPM BPM
SOA
Cependant, il ne sagit pas dune simple juxtaposition de techniques disparates. SOA intgre ces diffrentes pratiques dans un cadre organis : larchitecture des systmes, fortement guide par le mtier. En effet, les expriences prcdentes ont montr que les constructions trop focalises sur une approche unique ou guides par la technique nont pas apport de rponses satisfaisantes. Dans cette optique, larchitecture logique occupe une place centrale. Instrument privilgi pour la construction et la maintenance du systme, pivot sur lequel sarticulent le mtier et sa traduction logicielle, elle constitue la rfrence pour lorganisation des projets, la construction technique et le plan de progression. Toutefois, larchitecture logique nest pas un modle abstrait, ni une cartographie fonctionnelle cible lointaine. Il sagit plus pragmatiquement de la description des constituants du systme et de leurs relations. Ce document prsente larchitecture logique dans le cadre de notre approche SEA (Service Entreprise Architecture).
www.softeam.fr
fvrier 2007
Page 3 sur 30
Principes et motivation
SOA (Service Oriented Architecture) est un style darchitecture organis partir de services mtiers communs mutualiss pour un ensemble de lignes mtiers ou dapplications.
SOA is an approach to designing software that dissolves business applications into separate services that can be used independent of the applications of which theyre a part and computing platforms on which they run.
Jay DiMare, IBM Global Services, 2006
La motivation fondamentale vient du constat suivant : Le cloisonnement en silos applicatifs indpendants (blocs monolithiques) est une des sources majeures des difficults rencontres pour le traitement des volutions et la maintenance des systmes.
A la recherche de lagilit. Cette notion nest pas nouvelle: Les Systmes dInformation sont en constante volution et les obstacles rencontrs sont largement dbattus depuis des annes, mais ces questions acquirent aujourdhui une acuit particulire. Les organisations sont confrontes des demandes de changement toujours plus tendues et plus frquentes. Ces changements sont lis la fois aux rorganisations (fusion, acquisitions), louverture des processus et la multiplication des volutions des marchs: On lobserve par exemple dans le secteur des services de telecom, dans les banques assurances, le transport et lnergie, ou dans le commerce en ligne. Les applications construites et structures pour rpondre des besoins particuliers dans un contexte donn ne sont plus adaptes aux ralits prsentes. Les changements technologiques des dernires annes (nouvelles technologies) ajoutent encore des contraintes supplmentaires. Aux del dun certain stade, les cots induits par les modifications deviennent prohibitifs, et les dlais incompatibles avec les demandes mtiers. Le systme devient trop rigide, prisonnier de son architecture antrieure. Les volutions ralises dans ce cadre dtriorent la qualit du systme et accroissent encore ces difficults. Quelques constatations majeures : Lagilit dun systme dpend au premier ordre du systme rel dploy. Les diffrentes reprsentations, modles ou cartographies, si elles facilitent la tche, et sont souvent ncessaires, nliminent pas la nature des obstacles rencontrs. Les infrastructures technologiques transverses (middleware, web services, ) ne constituent jamais en soi de solutions radicales. On observe au contraire que les stratgies trop ancres sur les technologies masquent les ralits mtiers et peuvent aboutir des rsultats dcevants et contre productifs.
www.softeam.fr
fvrier 2007
Page 4 sur 30
Les systmes logiciels sont labors, dvelopps par des quipes. Le travail humain reste largement majoritaire dans nos mtiers et lorganisation, la gestion efficace des hommes est une des cls de la russite.
Larchitecture oriente service se base sur les principes suivants: Diviser pour rgner : Substituer la dcoupe strictement applicative par une structuration en composants plus rduits et potentiellement plus simples faire voluer. Alignement mtier : Construire et organiser le systme partir des ralits mtiers, qui doivent se retrouver dans ses constituants. Neutralit technologique : Assurer une indpendance totale entre les interfaces et les implmentations. Llment qui utilise un service ne doit pas tre contraint ni par la technologie dimplmentation, ni par sa localisation (potentiellement distribu). Mutualisation : Favoriser la rutilisation de services mtiers par plusieurs lignes mtiers ou applications. Permettre la construction de services de haut niveau par combinaison de services existants. Automatisation des processus mtier. Isoler la logique des processus mtiers sur des composants ddis qui prennent en charge les enchanements et les changes de flux dinformation. Echanges orients Document. Les informations changes par les services possdent une structure propre, guide par les besoins mtiers. On privilgie la transmission de contenus complets et utilisables au profit daccs direct aux structures de type objet ou relationnel.
La plupart des acteurs SOA prconisent une mise en uvre progressive, excluant les oprations de type big bang , avec une cohabitation entre les constituants divers (legacy, anciennes applications, ERP etc) et les services SOA. Cette cohabitation est facilite par la forte neutralit technologique, qui permet de dploiement de services sous forme de faades isolantes.
www.softeam.fr
fvrier 2007
Page 5 sur 30
Vue externe
Opration1 Opration2
Logique interne
Data
Vue interne
Services utiliss Services utiliss
La vue interne contient des informations relatives la logique interne comme le dtail des traitements, les algorithmes, les rfrentiels ou les bases de donne utilises. On y trouve galement les rfrences vers les services utiliss par le composant. Cette vue est masque aux consommateurs du composant de service. Elle est utilise notamment par les architectes, qui travaillent sur la vision globale du systme, et le positionnement du composant.
Vue externe Vue interne Liens de dpendance
La notion de composant ou de composant de service se retrouve notamment dans SCA (Service Component Architecture) propos par lorganisme Open SOA (www.osoa.org)
2
www.softeam.fr
fvrier 2007
Page 6 sur 30
Schmatiquement, larticulation des composants de service, avec leurs liens de dpendance, constitue la structure du systme [Figure 4]. Chaque composant de service peut invoquer les oprations de service dautres composants, dans la mesure ou les rgles de visibilit sont respectes.
Composants et services. Dans cette approche, le service dsigne le point de vue du consommateur, cest dire la vue externe du composant de service. Par exemple le service de gestion des commandes = vue externe du Composant gestion des commandes . Le catalogue des services publis sur un primtre est constitu par lensemble des vues externes des composants de service.
Les composants de service sont identifis et dfinis avant tout suivant une logique mtier, indpendamment de la technologie. On distingue pour ce faire le composant logique, qui fixe la structure du systme dans le cadre de larchitecture logique, et le composant logiciel, qui est sa traduction technique dploye.
Bus dentreprise
Le systme est constitu dun ensemble de participants communiquant qui jouent le rle de consommateur et de fournisseur de service. Les consommateurs de service peuvent tre divers : des applications, progiciels ou dautres composants de service. Les composants de service sont les fournisseurs de service du systme, dans lesquels on distingue deux familles: les composants qui prennent en charge directement limplmentation des services et ceux qui dlguent cette implmentation un tiers (mainframe, ERP, application existante). Il faut nanmoins prciser que dans ce cas de figure, le composant nest pas toujours assimil un simple passe-plat. Des traitements dadaptation sont frquemment ncessaires (format de donne, encapsulation de service) afin de mieux intgrer les besoins des consommateurs de service.
Application 1 Application 2
MainFrame
SGBD
ERP
Le bus dentreprise (ESB) agit comme la colonne vertbrale reliant ces participants dune manire banalise travers les interfaces de services. Cela permet notamment les modifications dimplmentation ou le remplacement des legacy sans remanier la structure de fonctionnement du systme.
Contrat de service
Le contrat de service3 joue un rle majeur : il dtaille les conditions dutilisation du service sous forme de pr et post conditions, protocoles, et contraintes non fonctionnelles (QoS, SLA4). En effet, la simple
Voir notamment: Reference Model for Service Oriented Architecture. OASIS. www.oasis-open.org
www.softeam.fr
fvrier 2007
Page 7 sur 30
spcification fonctionnelle des oprations de services ne suffit pas garantir le fonctionnement correct du systme dploy. Les contraintes non fonctionnelles [Tableau 1], comme le temps de rponse ou le nombre dinvocations par seconde permettent de fixer les termes du contrat oprationnel entre consommateur et fournisseur de service.
Tableau 1 - Contraintes non fonctionnelles Type de contraintes Disponibilit Exemples Taux dindisponibilit par an Plages horaires Contraintes de maintenance Temps de rponse moyen, minimum Nombre de transactions par seconde Taux derreur Politique de droits daccs Non rpudiation Journalisation Tableaux de bord, statistiques
Le protocole dutilisation dun composant de service dfinit les squences valides dinvocation des ses oprations [Figure 6]. A noter que les composants de service ne sont pas des objets : ils ne conservent aucun tat (une seule instance du composant est disponible). Les conditions portent sur des attributs des donnes dchange transmises lors de linvocation des oprations : dans lexemple [Figure 6] ltat est un attribut de typefacture transmis en entre de chaque opration du composant Facture.
Composant Facture
Interface dcriture mettre Cre crer(typeFacture): typeFacture modifier(typeFacture): typeFacture emettre(typeFacture): typeFacture regler(typeFacture): typeFacture annuler(typeFacture): typeFacture
annuler annuler
mise
Dans la mme optique, les pr et post conditions dtaillent encore les conditions dutilisation sur les oprations de service5.
4 5
QoS: Quality of Service. SLA: Service Level Agreement. Reprise des mthodes de programmation par contrat. fr.wikipedia.org/wiki/Programmation_par_contrat
www.softeam.fr
fvrier 2007
Page 8 sur 30
Donnes persistantes
Messages
Services
Applications
Bases
Services
Services
Services
Metadata
Les types de donne dchange (TDE) tablissent la smantique, la structure et le format de ces donnes. Ils peuvent tre dfinis laide de schmas XML (et ventuellement de classes UML). Chaque opration de service prcise les types de donne dchange en entre et en sortie.
Tableau 2 - Oprations de service: exemples Opration de service crerCommande validerCommande Entre(s) TDE_Commande TDE_Commande TDE_EtatValidation Sortie(s)
Les caractristiques des TDE sont les suivantes : On privilgie les messages gros grain , qui regroupent un ensemble dinformations exploitables directement par le mtier, et qui minimisent le nombre dinvocation dopration de service [Figure 8]. La structure et lorganisation des TDE nest pas contraint par des normalisations (entit-relation ou orient objet). On parle de contenu orient document, ou message, dans lequel on trouve une copie des lments proche de la vision mtier. (Par analogie avec le fonctionnement dune messagerie, ou chaque message est constitu dlments dont la cohrence est valide par le propos du message luimme).
www.softeam.fr
fvrier 2007
Page 9 sur 30
<commande> <client> <nom> Durand </nom> <noContrat> 27615 </noContrat> </client> <montant> 522 </montant> <date> 15O12007 </date> <ligneCommande> <noProduit> 432 </noProduit> <quantit> 3 </quantit> </ligneCommande> <ligneCommande> <noProduit> 603 </noProduit> <quantite> 1 </quantite> </ligneCommande> </commande> Figure 8 Exemple de donne d'change "TDE_Commande' (format XML)
Dans le cadre SOA, la gouvernance des donnes intgre la gestion des donnes persistantes, des donnes dchange et de leurs liens. La matrise de cette gestion est fondamentale et doit tre traite avec une attention particulire6. En effet, le contenu et la structure des donnes dchange sont en grande partie issus des donnes persistantes et le bon fonctionnement du systme ncessite la description dtaille de ces relations.
www.softeam.fr
fvrier 2007
Page 10 sur 30
Il existe un consensus aujourdhui pour btir les architectures de systmes partir dune typologie de services bien tablie, organise en couches logiques (Tableau 3). Schmatiquement, les processus sappuient sur un ensemble de services de plus bas niveau et daccs aux donnes.
Tableau 3 - Les diffrentes propositions de typologies de services Herzum & Sims7 ESOA8 Front end Application Processus Process centric Intermediary Entit Utilitaire Public enterprise Basic Microsoft9 Presentation Layer Business Process Business Service Data Service IBM10 Presentation Business process choreography Composite service Service Wikipedia11 Presentation Process Functionality Data Types SEA Prsentation Processus Fonction Entit Utilitaire Public
Nous avons choisi pour SEA de distinguer 4 types de composant: Prsentation, Processus, Fonction, Entit, organiss en 4 couches logiques de stabilit croissante, auxquels nous ajoutons les composants Utilitaire et Public, en charge des fonctions transverses et des changes avec les systmes externes.
7 8 9
Business Component Factory, Peter Herzum & Oliver Sims, Wiley Computing Publishing 2000 Enterprise SOA, Dirk Krafzig, Karl Banke, Dirk Slama, The Coad Series, 2005
An Overview of Service-Oriented Architecture in Retail, Moin Moinuddin, Microsoft Corporation, January 2007
10 11
Bernhard Borges, Kerrie Holley and Ali Arsanjani, IBM , 15 Sep 2004, SearchWebServices.com
This is the type of the service to help distinguish it in the layer in which it resides: Data, Functionality, Process, and Presentation. http://en.wikipedia.org/wiki/Service-oriented_architecture
www.softeam.fr
fvrier 2007
Page 11 sur 30
Les couches logiques de stabilit croissante tablissent la rgle de base de dpendance : un composant ne peut pas utiliser un composant dune couche dun niveau suprieur (par exemple, un composant Entit ne doit pas utiliser un composant Fonction ou Processus).
Prsentation Publics
Commande
Stabilit
Processus
Entits
Chaque type de composant joue un rle spcifique : Composant Prsentation: Mise en oeuvre du dialogue avec lutilisateur : IHM, gestion de la session utilisateur (Ce nest pas un composant de service proprement parler) Composant Processus: support de processus mtiers complets (rle dorchestration); sappuie notamment sur des composants de type Fonction et Entit Composant Fonction: Composition de services. Adaptations fonctionnelles ou traitements localiss. Composant Entit: Service daccs aux donnes persistantes (CRUD12), aux bases de donnes et rfrentiels. Composant Utilitaire: fournisseur de services dinfrastructure ou transversaux (messagerie, tableau de bord, ditique, annuaire) Composant Public : ddis aux services accessibles lextrieur du SI (B2B, partenaires)
Prsentation Achat Produit (Web)
Prsentation
Processus
processus
Processus Commande
Fonctions
Fonction
Entit
Entit
Catalogue
12
www.softeam.fr
fvrier 2007
Utilitaire
Commande Client Client
Fonction
Page 12 sur 30
Composant Entit
Les composants de service de type Entit sont focaliss sur un objet mtier cl du systme (par exemple Client, Contrat, Commande, ). Leur rle est de permettre un accs aux informations relatives cet objet mtier, le plus souvent associ une base de donne. On trouve typiquement les oprations de lecture, criture ou de requte [Figure 11]. On impose que tout accs un objet mtier cl passe par le composant Entit correspondant qui est unique. Par exemple, la cration, modification ou lecture dun objet Client passe obligatoirement par les oprations du composant Entit Client.
Interface de lecture Lire(noClient): TDE_Client Rechercher(criteres): listeDeClients Interface dcriture Crer(TDE_Client): TDE_Client Modifier(TDE_Client): TDE_Client
Client
Figure 11 - Composant de service "Client" avec ses deux interfaces (lecture et criture)
Les types de donne dchange (TDE) reprsentent la structure des flux changs via les oprations de service (entres et sorties des oprations). Plusieurs TDE sur le mme objet peuvent tre dclars [Figure 12], en fonction du dtail demand ou du point de vue.
Contenu dtaill Contenu dtaill
1
*
adresse
TDE_Client1
1 1 1
*
Entreprise Secteur
Profil
Coordonnes bancaires
*
Poste
*
Achats
* *
Mtier
adresse TDE_Client2
1
Coordonnes bancaires
Il y a une relation troite entre le composants Entit et le modle des objets mtiers: Pour chaque objet mtier cl, on doit trouver un composant Entit correspondant. Lidentification des objets mtiers cl dpend du contexte mtier et reprend les pratiques danalyse existantes. Par exemple, les objets mineurs ont peu de sens utiliss seuls (adresse du client). A linverse, les objets mtiers cl interviennent directement dans les processus, sous forme de flux, ou sont les plus utiliss comme tels
www.softeam.fr
fvrier 2007
Page 13 sur 30
par lutilisateur du systme. Finalement, les messages changs lors de lexcution des oprations de service sont constitus par une grappe dlments dont la racine est un objet mtier cl. Techniquement, ces messages sont gnralement transmis sous la forme de documents XML, et les types de donne dchange (TDE) dcrit par un schma (XSD) correspondant.
SOA et Processus
Dans le cadre SOA, lautomatisation des processus est un axe majeur, avec les notions dorchestration, composition de services ou de chorgraphie. Il sagit de centraliser la logique dun processus dans un composant ddi, qui prend en charge lenchanement et les rgles de gestion associes [Figure 13]. Cette approche tend rduire les impacts lis aux volutions du processus.
Commande Client Application Commande 1 Enregistrement commande Application Facturation Enregistrement facture Application Client Mise jour du profil Envoi facture
commande
facture
Client
Une clarification est nanmoins ncessaire : On distingue les processus mtiers transverses et les processus de traitement. Les premiers reprsentent les processus de bout en bout de lentreprise, qui dlivrent une valeur ajoute tangible lextrieur par une collaboration de plusieurs units et acteurs. Les seconds (processus de traitement) reprsentent le droulement dune activit spcifique et localise. Pour simplifier on parlera de processus mtiers et de processus de traitement.
On peut utiliser une identification plus formelle entre processus mtier et processus de traitement : un processus mtier est interruptible et possde un tat quil doit conserver entre deux interruptions. A linverse, un processus de traitement nest pas interruptible et ne maintient pas dtat en dehors de son excution.
Un processus mtier peut durer plusieurs jours, plusieurs mois ou plus : par exemple le traitement dun sinistre dassurance ou la livraison dun produit command [Figure 14]. Le processus de traitement au contraire a une dure limite et relve plus simplement dune opration informatique habituelle (par exemple le contrle et enregistrement dun dossier, le destockage dun produit).
www.softeam.fr
fvrier 2007
Page 14 sur 30
Client
Comptabilit
Valider la commande
OK
KO
Attente Fournisseur
Commande [Annule]
KO
Prparer la commande
OK
OK Fournisseur
Commande [Valide]
Commande [Prpare]
Facturation
Notification Livraison
Livraison effectue
Lautomatisation des processus mtiers (transverses) est prise en charge par les composants de type Processus. Cette automatisation est appele Orchestration de service (par analogie avec lorchestre qui comprend un grand nombre de musiciens diffrents collaborant lexcution dune symphonie sous le contrle du chef dorchestre). Les composants de types Fonction sont en charge des processus de traitement. Ils jouent galement le rle dadaptation et dagrgation (composition de service) entre les Entits et les processus mtiers ou la vision utilisateur.
Tableau 4 - Proprit des composants de service de type Processus, Fonctions et Entits Type Processus Fonction Rle Processus mtier transverse. Orchestration de service Processus de traitement, composition de services, adaptation Accs un objet mtier cl Type de participant Fournisseur et consommateur de service Fournisseur et consommateur de service Fournisseur de service Granularit13 Granularit leve. Transverse par nature. Granularit moyenne
Entit
Composant Processus
La distinction entre processus mtier et processus de traitement nest pas une simple question de vocabulaire. Le type de question pos par lautomatisation des processus mtiers est tout fait spcifique : la gestion des vnements et des tats du processus, les actions de compensations14, le nombre et la diversit des services utiliss. On est dans le domaine du BPM15, avec ses techniques
13 14
Les actions de compensation dfinissent les traitements raliser en cas derreur ou dexceptions dans le droulement du processus, pour retrouver un tat correct. BPM : Business Process Management. Gestion de processus mtier. BPEL : Business Process Execution Language. BPMN : Business Process Modeling Notation (www.bpmn.org). BAM : Business Activity Monitoring.
15
www.softeam.fr
fvrier 2007
Page 15 sur 30
sous-jacentes comme BPEL, les mthodes de description adapte (voir le langage BPMN), ou la supervision de processus (BAM). Les oprations de service Processus sont lies aux vnements du processus : dmarrage, arrt, ou spcifiques au mtier.
Interface Processus Commande
DemarrerProcess(TDE_Commande, Client): TDE_DossierCommande DepassementDelai (NoDossier) RepriseProcess(NoDossier, Partenaire) ConfirmerPrestation(NoDossier) AnnulationCommande(NoDossier)
Commande
TDE Dossier commande NoDossier: interger Etat : TypeEtat Dlai: Dure
Client
Processus Commande
Fournisseur
Le type de donne dchange du processus contient toutes les informations utiles ainsi que ltat du processus. Il est sauvegard chaque suspension du processus (attente dvnement). Le processus devient un objet part entire, avec un tat propre, distinct de ltat des autres objets mtiers (commande, facture). Cette distinction facilite le traitement des volutions du processus mtier, par le faible impact induit sur les autres composants. Par exemple, lajout dune double validation dans le processus de commande va modifier le processus sans impact sur les tats de lobjet commande. Processus humains et workflow Il faut noter que dans loptique SOA (et BPM), laccent est mis sur les processus mtiers non humain , c'est--dire avec pas ou peu dintervention humaine dans leur droulement. Cest dailleurs un des objectifs de lautomatisation des processus : rationaliser et rduire le poids des tches manuelles dans lexcution des processus mtiers. A linverse, les processus mtiers forte intervention humaine (un grand nombre dactivits sont ralises par des acteurs humains aids par le systme) relvent plus des outils de workflow. Ces outils prennent en compte lorganisation des quipes, la transmission des informations et la synchronisation des tches entre les diffrents acteurs impliqus dans le processus. Cependant, il ny a pas de frontire toujours nette entre ces deux domaines : dans la pratique, lintervention humaine est souvent ncessaire pour traiter les situations exceptionnelles. Une solution ad hoc peut tre mise en place dans ce cas sans faire intervenir un moteur de workflow dans le processus16.
Composant Fonction
Les composants Fonction occupent une place charnire dans cette architecture. On a vu prcdemment quils se chargent des processus de traitement, mais plus gnralement ils fournissent les services proches de la vision utilisateur, par composition de services de type Entit. On retrouve cette notion de composition dans les TDE des services de type Fonction, qui sont souvent dfinis comme une agrgation de TDE de composants de type Entit [Figure 16].
Le langage dexcution de processus BPEL ne couvre pas actuellement lintervention dacteurs humains dans le droulement des activits.
16
www.softeam.fr
fvrier 2007
Page 16 sur 30
Contrat client
TDE client
Client
Contrat
TDE contrat
Dans la pratique, les composants Fonction sont les moins aiss identifier. Les composants Processus proviennent directement des processus mtier de lentreprise, et les composants Entit des modles dinformation (objet mtier ou base de donne). Les composants Fonction sont mis en place graduellement par consolidations successives du systme.
Composant Prsentation
Les composants Prsentation pilotent le dialogue entre le systme et les acteurs externes. Ils assurent la gestion des interfaces homme machine et la maintenance du contexte session de lutilisateur. Techniquement, ce type de composant utilise les infrastructures prouves (client riche ou client web, tiers de distribution).
www.softeam.fr
fvrier 2007
Page 17 sur 30
Processus commande
Catalogue Client
Produit
Tarif
Stock
Commande
facture
Client
Les composants Prsentation ne sont pas des composants de service proprement dit : ils ne fournissent pas de services, sauf lutilisateur. Ils sont consommateurs de service pour tout autre type de composant. Dans le cadre dune architecture SOA, les composants Prsentation sont la fois un point dentre sur le systme et responsables de lintgration des contenus pour lutilisateur. Ils grent galement le dialogue, lvolution des donnes et leurs modifications au cours dune session.
Dmarche et identification
Il nexiste probablement pas de dmarche universelle pour lidentification et la construction des services. Le contexte de lentreprise, les mthodes ou les modles durbanisation utiliss sont autant de facteurs qui devront tre pris en compte. On peut nanmoins distinguer plusieurs dmarches types : Dmarche par processus mtiers Dmarche oriente donnes Dmarche oriente applications
Naturellement, ces dmarches types ne sexcluent pas (et ne sont pas exhaustives). Dans la ralit, le systme se constitue par une articulation de ces diffrentes approches, par consolidations successives, en parallle avec la vision globale de larchitecture.
www.softeam.fr
fvrier 2007
Page 18 sur 30
ddi (type Processus) entrane une rnovation des applications impactes qui facilitera la prise en compte des futures volutions. Elaboration des modles de processus mtiers. Ces modles reprsentent lenchanement des processus mtiers (activits, flux, acteurs) avec un point de vue matrise douvrage. Les flux changs par les activits tablissent une premire structure des types de donnes dchange (TBE) utiliss. Ces modles sont raliss laide de notations BPM ou de diagrammes dactivit UML [Figure 14]. Modles de processus excutable. Le passage de modles mtiers aux modles excutables ncessite la description dtaille de tous les lments (lensemble des chemins, les erreurs, les compensations ventuelles), et de prciser les services consomms par de processus. Ce travail permet gnralement didentifier de nouveaux services ou dajouter des oprations aux services existants (notamment services de type Fonction ou Utilitaire). Les modles sont de type BPEL, excutables laide dun outil ou traduits dans un langage de programmation. Cette reprsentation sert de base pour la spcification des services, avec lensemble des oprations ncessaires.
TarifGeneral
Catalogue
* Lot
* Tari fUnit * 1
* Produit
1 FicheTechnique 1 * Proprit
1 1 1 Fournisseur
Identification des objets mtiers cl. Comme il a dj t voqu prcdemment, cette identification sappuie fortement sur la connaissance fonctionnelle. Chaque objet mtier cl donne lieu un composant de service de type Entit, qui fournit les services daccs (cration, modification, suppression et requte). Dfinition des TDE. Pour chaque objet mtier cl (et donc pour chaque composant de type Entit), un ou plusieurs formats dchange est dfini. Ce format est naturellement bas sur les modles des objets mtiers, et consiste dcouper celui-ci sous la forme de format de type document (schma XML), qui seront changs lors de linvocation des oprations du service [17].
17
Voir notamment Enterprise Oriented Architecture, James McGovern, Oliver Sims, Ashish Jain, Mark Little, Springer, 2006, chapitre 2.
www.softeam.fr
fvrier 2007
Page 19 sur 30
Branchement des composants. Par leur nature particulire, les composants de type Entit obligent une modification dans les accs linformation. En effet, ces composants sont par dfinition dunique canal vers les donnes persistantes : les autres formes daccs doivent donc tre remanies (par exemple les lectures directes vers les bases de donnes).
Restructuration. Les composants de services doivent apparatre comme des lments stables, avec un consensus dinterprtation sans entraner une refonte complte du domaine. Dans le cas contraire, une reconstruction globale est souvent prfrable, avec une mise plat de lanalyse mtier. Les composants de services rsultants sont gnralement de type Fonction, proches de lutilisation mtier. Remarque. La mutualisation de service nest pas un objectif en soi. Il est inutile de dpenser du temps (et du budget !) dans la restructuration dapplications stables qui fonctionnent correctement.
V1
V2
V2
V2
Implmentations
www.softeam.fr
fvrier 2007
Page 20 sur 30
En toute rigueur, le dploiement dune nouvelle version dun composant de service entrane un cot (et un dlai) supplmentaire d en particulier aux tests ncessaires des diffrents consommateurs du service. Cette contrainte peut dans certains cas devenir contradictoire avec la souplesse recherche, et un dploiement de plusieurs versions dun mme composant est une solution envisageable. Par exemple [Figure 21], si 2 applications A et B utilisent le mme service, et que pour les besoins de lapplication B le service est modifi, la cxistence de deux versions du service permet le dploiement rapide le la nouvelle version sans impact sur lapplication A. Le bus de communication prend en charge le routage en fonction du consommateur de service.
Application A Application B Application A Application B Application A Application B
SX v1
SX v1
SX v2
SX v2
Transition Transition
Cependant, on vitera la multiplication de ce genre de situation, qui devra conserver son caractre transitoire. En effet, la prolifration de versions de service engendre des difficults de gestion qui annulent terme ses effets bnfiques. Lutilisation de rgles appropries permet de rduire ce type de risque, par exemple : Le nombre de composants de service dploys en plusieurs versions ne doit pas dpasser 15% du nombre total des composants. Pour un composant de service donn, le nombre de versions dployes est au maximum de 3
18
www.softeam.fr
fvrier 2007
Page 21 sur 30
Opration1 Opration2
Logique interne
Data
Vue interne
Services utiliss Services utiliss
Bouchons Bouchons
Au-del du strict point de vue de validation, qui facilite les travaux dintgration, les scnarios de test ajoutent une dimension concrte et exemplaire qui participe la comprhension du rle du composant. On retrouve cette approche avec les cas dutilisation UML, qui prcisent laide de scnarios types, la dynamique dutilisation et les rsultats attendus. Lensemble de ces lments disponibles pour le consommateur de service est appel spcification tendue, qui pourra inclure galement tous les documents et lments utiles la dfinition du service.
www.softeam.fr
fvrier 2007
Page 22 sur 30
Cartographie et modles
Cartographie des services
La cartographie des services est une vue synthtique des composants de services et de leur rpartition dans les diffrentes couches logiques (Prsentation, Processus, Fonction, Entit).
Site Web client
Prsentation
Suivi commande
Gestion tarif
Achat fournisseur
Messagerie
Commande Client
Tableaux de bord
Tarification
Public Utilitaire
Produit
Entit
Tarif
Stock
Client
Commande
facture
Transporteur
Rglement
Produit
Tarif
Stock
Client
Commande
facture
Transporteur
www.softeam.fr
fvrier 2007
Page 23 sur 30
Dpendance dinterfaces
Chaque composant de service peut potentiellement exposer plusieurs interfaces (qui contiennent chacune des oprations de services). Le lien de dpendance au niveau des interfaces permet une connaissance plus fine de la structure du systme et facilite les analyses dimpact.
Catalogue Client MAJ Tarifs
Lecture criture
Produit
Tarif
Stock
Produit
Tarif
La notation UML2 offre une reprsentation directe de composants laide des notions de Port, Part, Composant et Connecteur.
Catalogue client
lProduit
e Produit lT arif
e Tarif
lStock
e Stock
Produit
Tarif
Stock
Au-del dune certaine taille, lemploi dun outil de modlisation est un atout indispensable pour la gestion du systme. Il facilite llaboration en cohrence des diffrents points de vue, laudit automatique et lanalyse dimpact, la production dtat (HTML) pour la diffusion et le partage dinformation. La mise en uvre des techniques MDA19, par la production des constituants logiciels partir des modles assure une meilleure matrise des changements en rduisant la distance entre les aspects logiques et techniques.
19
www.softeam.fr
fvrier 2007
Page 24 sur 30
Structuration du SI et application
Application composite
la vue de ce type darchitecture, on peut lgitimement se demander o sont passes nos applications ? Sagit-il dune disparition de lentit logicielle qui structure la majorit des SI daujourdhui ? Les applications sont les lments tangibles du point de vue des utilisateurs du systme. Dans cette mesure, elles jouent un rle essentiel : la rponse aux besoins concrets, et la valeur ajoute du systme se concentre un moment sur le dialogue acteur-systme. La mise en uvre de SOA nimplique pas la suppression des applications : Au contraire, centre sur les objectifs mtiers, SOA tend amliorer la mise disposition dapplications toujours plus performantes et adaptes ses utilisateurs.
Le syndrome architectural. Comme avec dautres approches, il faut se garder de lcueil substituer les moyens aux objectifs . Les architectures comme les technologies ne constituent pas des buts en soi. Il sagit dinstruments (outils) mis en uvre pour rpondre des demandes mtier, qui sont mis en uvre dans le cadre dapplications concrtes.
Une application composite est constitue par un ensemble de composants qui concourent pour rpondre aux besoins ddis une ligne mtier ou une utilisation spcifique du systme. Typiquement on va trouver dans une application composite un composant Prsentation (IHM, session utilisateur) qui sappuit sur des composants de services de diverses natures (Processus, Fonction, Entit ).
Application A Application B
En terme dorganisation, les projets applicatifs ont en charge la livraison de lapplication auprs des clients utilisateurs (internes ou externes) correspondant aux cahiers des charges. Cette responsabilit implique la mise en uvre de toutes les activits ncessaires : analyse, conception, intgration, validation, construction de lIHM, dveloppement de composants spcifiques. Dans une architecture SOA, ces projets applicatifs vont potentiellement rutiliser et partager des composants de service, qui nappartiennent pas une application particulire. Le dveloppement, la maintenance et la gestion de ces composants mutualiss sont pris en charge par une organisation transverse qui assure la coordination fonctionnelle et technique.
Conflits dintrt. Il existe un risque de conflit dintrt entre les responsables des projets applicatifs et les objectifs SOA. Les premiers sont valus par leurs capacits fournir dans les dlais les lments correspondants aux cahiers des charges en respectant les cots fixs. La prise en compte de facteurs transverses peut tre peru comme une contrainte additionnelle. Le rle de la direction est fondamental pour assurer les coordinations et les actions permettant une collaboration efficace avec les quipes transverses.
www.softeam.fr
fvrier 2007
Page 25 sur 30
Remarque : SOA nimplique pas la refonte totale du SI, et dans la pratique, des applications anciennes modes coexistent avec les applications composites. Pragmatiquement certaines vont partiellement utiliser des services tout en conservant leurs structures initiales.
Visibilit et structuration du SI
La notion de primtre de visibilit dun service nest pas une question annexe et impacte lorganisation aussi bien que larchitecture. Le primtre de visibilit dun service prcise les lments qui ont le droit de lutiliser comme consommateur du service. En gnral la structuration des systmes dinformation se retrouve dans lorganisation des responsabilits des quipes. Les termes utiliss sont variables : domaine, sous-systme etc., bien que les dmarches durbanisation ont depuis quelques annes fix un vocabulaire plus homogne. Les composants de service, comme tout lment du systme dinformation doit tre positionn dans cette organisation gnrale, qui nest pas modifie par cette opration. Le primtre de visibilit est une proprit importante : un service limit une application et un service publi en ligne ne sont pas de mme nature. Le facteur cot va galement intervenir : un service disponible sur un large primtre ncessite des efforts supplmentaires sur les plans contractuel et technique.
Bonne pratique. Toujours dfinir le primtre dun service publi. La mutualisation de service implique un cot supplmentaire qui dpend en partie du primtre de visibilit du service. La disponibilit globale non structure de tous les services risque de provoquer des dysfonctionnements majeurs sur les plans organisationnel et technique.
Concrtement, le primtre de visibilit dun service est dfini partir des units dorganisation du systme (domaine, sous-systme etc.) [Figure 28]. Il peut galement tre dfini de manire plus explicite, par numration des consommateurs autoriss.
Systme A Sous-systme Sous-systme
Services de sous-systme
Systme dinformation
Systme B
Systme C
Le primtre de visibilit dun composant peut varier au cours de sa vie. Par exemple, un service expos dans un premier temps sur un sous-systme, accrot son primtre avec le temps pour couvrir tout le SI. Cette modification de visibilit, mme fonctionnalit quivalente implique gnralement une reformulation du contrat de service.
www.softeam.fr
fvrier 2007
Page 26 sur 30
Au del des effets de mode, la mise en uvre de SOA peut apporter une vritable valeur ajoute pour lentreprise. Cependant, comme pour tout changement, le succs passe par une matrise des risques et des objectifs. Les expriences passes ont montr que les cueils existent : par exemple, le manque de rsultat clair dans le dploiement des EAI, certainement due une orientation trop souvent focalise sur les solutions techniques et les offres diteurs. Une vision clairement oriente mtier, du pragmatisme dans les dcisions sans oublier des organisations motives sont parmi les points cl pour la russite de la dmarche.
20
Une description plus dtaille de SEA est disponible sur notre site www.softeam.fr
www.softeam.fr
fvrier 2007
Page 27 sur 30
Glossaire
Application composite BAM Application constitue par assemblage dun ensemble de composants. Business Activity Monitoring. Fournit un tableau de bord, des indicateurs de mesure de la performance mtier, des outils de monitoring, de reporting et permet le contrle du rendu fonctionnel des processus mtier ; associ de faon classique un outil de BPM et considr juste titre comme une application part entire. Business Process Execution Language. Conu par IBM, BEA et Microsoft, c'est la reprsentation XML dun processus excutable, qui peut tre dploye sur nimporte quel moteur de processus mtier. Llment premier dun processus BPEL est une activit , qui peut tre lenvoi dun message, la rception dun message, lappel dune opration (envoi dun message, attente dune rponse), ou une transformation de donnes. L'activit est dfinit par la combinaison de Services Web. BPEL utilise WSDL pour dcrire les actions d'un processus. Business Process Management. Terme gnrique dsignant la fois la modlisation et la traduction, l'aide d'un "moteur", des processus modliss dans la ralit de l'entreprise. A cela s'ajoute, bien videmment, des outils indicateurs, tableaux de bord de suivi de l'excution des processus et d'valuation de leur performance (voir BAM). Acronyme pour Business Process Management Notation (Notation pour la Gestion des Processus Mtiers) Utilise pour la modlisation graphique des processus mtier (pas lexcution). Particulirement pertinente dans le cadre de la modlisation des processus, de leur analyse et de leur simulation. Cette notation est sous le contrle de l OMG (Object Management Group). Composant de service Composant logiciel fournisseur de service divis en vue externe et vue interne. La vue externe est la partie service du composant, qui peut tre utilis par dautres lments du systme, jouant le rle de consommateur de service. La vue externe ( ou spcification de service) est constitue par un ensemble doprations de service regroupes en interface, le contrat et toutes les informations lies son utilisation (voir QoS et SLA). Composant de service qui donne un accs aux informations lies un objet mtier cl. Les oprations sont de type CRUD (Create, Read, Update, Delete). Composant de service qui prend en charge un processsus de traitement, ou une adaptation une vision mtier particulire, sous forme de composition de services. Composant de service ddi linteraction entre acteurs humains et le systme. Il prend en charge les IHM et la gestion de la session utilisateur.
BPEL
BPM
BPMN
Composant Entit
Composant Fonction
Composant Prsentation
www.softeam.fr
fvrier 2007
Page 28 sur 30
Composant de service qui automatise un processus mtier. Composant de service qui assure les changes avec les systmes externes (B2B, e-business) Composant de service ddi des fonctions transverses (annuaire, messagerie, ditique) non spcifiques au mtier de lentreprise. Le MDA est une dmarche de ralisation de logiciel, propose et soutenue par l'OMG. L'ide fondamentale est que les fonctionnalits du systme dvelopper sont dfinies dans un modle indpendant de la plate-forme (Platform Independent Model, PIM), en utilisant un langage de spcifications appropri, puis traduites dans un ou plusieurs modles spcifiques la plateforme (Platform Specific Model, PSM) pour l'implmentation concrte du systme. Organization for the Advancement of Structured Information Standards. Consortium international qui travaille pour la normalisation et la standardisation de formats de fichiers ouverts bass notamment sur XML. LOMG (Object Management Group) est une association amricaine but non-lucratif cre en 1989 dont l'objectif est de standardiser et promouvoir le modle objet sous toutes ses formes. LOMG est par exemple linitiative des normes UML et CORBA ou encore MDA et BPMN. Organisme international qui propose des normes SOA : SCA (Service Component Architecture) et SDO (Service Data Objects). Partenaires : BEA, IBM, IONA, Oracle, SAP, SUN, Siemens, TibCo.
OASIS www.oasis-open.org
OMG www.omg.org/
Processus qui reprsente le droulement dune activit localise, de courte dure et non interruptible. Processus de bout en bout de lentreprise, qui dlivre une valeur ajoute tangible lextrieur par une collaboration de plusieurs units et acteurs. Un processus mtier peut avoir une longue dure de vie et est potentiellement interrompu. Voir Processus mtier Quality of service. La qualit de service est une notion ne chez les oprateurs de tlcommunications vers 1997. On parle de contrat de niveau de service quand une entreprise exige de son oprateur une haute disponibilit de son rseau. La gestion du niveau de service s'est, depuis, tendue au systme d'information. Service Component Architecture (voir open SOA) Service Component Architecture aims to provide a model for the creation of service components in a wide range of languages and a model for assembling service components into a business solution activities which are at the heart of building applications using a service-oriented architecture.
SCA
Silo
Terme utilis pour dsigner une dcoupe verticale dun systme, par applications (silos applicatifs). Application architectures are typically created as independent
www.softeam.fr
fvrier 2007
Page 29 sur 30
work efforts that are usually owned by a specific organizational domain or entity. Applications are usually built to automate business applications within a single organization domain. Those single-domain applications are said to be "siloed." Avoiding common pitfalls in SOA adoption, Tilak Mitra, Executive IT Architect, IBM, juin 2006. SLA Service Level Agreement. Contrat dfinissant les engagements du fournisseur de service quant la qualit de sa prestation, et les pnalits engages en cas de manquement. Cette qualit doit tre mesure selon des critres objectifs accepts par les deux parties. Ex : temps de rtablissement du service en cas d'incident Type de Donne dEchange. Structure des informations changes par les messages ou les flux inter composants. Type des paramtres des oprations de service. Par opposition, les donnes persistantes sont les informations contenues dans les bases de donnes. Le World Wide Web Consortium, abrg W3C, est un consortium fond en octobre 1994 pour promouvoir la compatibilit des technologies du World Wide Web telles que HTML, XHTML, XML,, CSS, PNG, et SOAP Il s'agit d'une technologie permettant des applications de dialoguer distance via Internet, et ceci indpendamment des plates-formes et des langages sur lesquelles elles reposent. Pour ce faire, les services Web s'appuient sur un ensemble de protocoles Internet trs rpandus (XML, HTTP), afin de communiquer. Cette communication est base sur le principe de demandes et rponses, effectues avec des messages XML. Les services web sont dcrits par des documents WSDL (Web Service Description Language), qui prcisent les oprations pouvant tre invoques, leurs signatures et les points d'accs du service (URL, port .). Les services Web sont accessibles via SOAP, la requte et les rponses sont des messages XML transports sur HTTP.
TDE
W3C http://www.w3.org/
Web service
www.softeam.fr
fvrier 2007
Page 30 sur 30