Architecture soa (architecture orientée services)( Télécharger le fichier original )par Virginie ELIAS CNAM Nantes - Pays de la Loire - Ingénieur en Informatique 2009 |
3.4.4.2 Seconde réalisationLes spécifications SOAml ont été mises à dispositions le 13 janvier 2009 par l'OMG. Il a fallu attendre le 23 mars pour qu'un plugin MagicDraw baptisé CAMEO SOA+ béta 1 soit proposé pour intégrer ce nouveau profil SOAml dans une approche MDA. Illustration 143 : Nouveau Profil SOAml intégré à MagicDraw 16.1 Se déclinent 6 diagrammes plus adaptés à l'approche des services et de l'ESB :
Toutes ces technologies reprennent le principe d'orientation de services. Cependant, ces nouvelles tendances ne doivent pas s'ajouter au mille-feuilles technologique existant. C'est par l'effort des urbanistes et autres architectes, que le système d'information deviendra moins rigide et utile aux métiers. Pour que ce premier niveau de maturité soit atteint, seules les organisations mettant en oeuvre une réelle gouvernance, et disposant d'un budget (car soutenues par les directions générales), pourront faire bouger les lignes. La SOA n'est pas une recette miraculeuse mais en premier lieu, la prise de conscience qu'un travail de fond doit être réalisé. Les principales réussites en la matière ont de commun cette longue mise à plat de l'existant, avant toute nouvelle mise en oeuvre technique. La SOA doit probablement être perçue comme un nouveau métier, qui s'inscrit en ligne directe avec la stratégie de l'entreprise, reposant sur une approche fondamentalement différente de celle existante aujourd'hui, tant au niveau technique que méthodologique. Elle nécessite une conduite au changement tant les conséquences sont multiples, et s'accompagne d'un plan de communication et de formation des acteurs du SI mais aussi des utilisateurs métiers. L'offre SOA s'est aujourd'hui largement répandue au niveau des différentes solutions informatiques. Comme toute mini-révolution, SOA s'est installée dans les esprits et fera peu à peu son chemin. Et comme toujours, une nouvelle technologie la relèguera un jour au rang des anciens concepts. Comme cela a été expliqué dans la première partie (« Etat de l'Art » de l'intégration), une nouvelle strate technologique répond toujours à un besoin du moment. Aussi, imaginer aujourd'hui, ce que serait la nouveauté de demain, revient à révéler la fragilité de l'Architecture SOA et de tenter d'y répondre. Dans ce mémoire, un parallèle a été fait entre les systèmes multi-Agents (SMA) et les composants SOA : autonomes, déterministes, dotés d'un couplage lâche. Si l'on observe l'évolution des SMA, on constate qu'ils se sont « dynamisés », afin d'entrer dans l'univers du jeu de rôle par exemple. Ainsi, dès la première utilisation, les scénarios internes au jeu sont modifiés, en fonction du comportement du joueur observé. L'agent enrichit donc ses connaissances au fil du temps. Il ne s'agit plus de calculer une solution à partir de paramètres stables, mais de proposer une solution acceptable en fonction de la nouvelle organisation et des changements perçus. Les métiers de la Simulation sont également bénéficiaires de ces systèmes multi-agents dynamiques. Aujourd'hui, SOA n'est pas réellement dynamique. Le routage, les processus sont autant d'éléments inscrits dans le marbre. Pour que la SOA soit hissée au rang des architectures dynamiques et ce, afin d'accroitre son adaptabilité à son environnement, il faudrait qu'elle puisse assembler spontanément ses propres composants et ceux d'autres architectures, afin de répondre à une problématique non envisagée initialement. Le résultat de récentes recherches158(*) entreprises par l'INRIA, avancent le terme de « SOA dynamique » ou D-SOA comme « élément important pour les architectures (...) du futur, surtout dans le contexte dynamique des réseaux sociaux et de l'Internet des Objets ». Pour l'instant les domaines étudiés sont ceux des services de petits supports tels que les Smartphones et les PDA, en supposant de les doter d'une JVM159(*). Les perspectives de l'ingénierie informatique constituent ainsi la clef de voute des architectures de demain. Un auteur, parmi d'autres, RACCOON160(*), illustrait en 1997 cette perpétuelle évolution de la manière suivante : Illustration 144 : Les cycles de l'évolution IT (Source: Raccoon, Fifty Years of Progress in Software Engineering, [RAC-FYP]) Mais qu'en est-il aujourd'hui de cette projection confrontée à la réalité : Instruction Procédurale Module Objet Composant Service Modèle ??? Mainframe Mini Station PC Web Station Ubi Station161(*) M2M ??? http/Html Xml ??? M2M (Machine to Machine) B2C B2B Intérêt Axe temporel 1944 1958 1973 1988 2000 2005 2010 Illustration 145 : Extrapolation des cycles de Raccoon La D-SOA (SOA dynamique) s'appuie sur le principe d'une passerelle OSGi (Open Services Gateway initiative) qui rend indépendant le consommateur du service, quelque soit leur localisation. Dans le principe, le bus dédié au consommateur est connecté, comme d'autres bus dédiés, à un bus JMS constitué de connecteurs OSGi. Pour illustrer l'intérêt de ce bus à grande échelle, il est possible de prendre l'exemple d'un usager se trouvant hors de son foyer et souhaitant contrôler le réseau domotique de son habitation (température, caméra de surveillance, compteur électrique, moniteur cardiaque ...). Pour reprendre le nom donné au prochain salon MtoM de Paris-Porte de Versailles en 2010 : « Les objets deviennent intelligents et communiquent » entre eux. Enfin, la modélisation, ingrédient majeur à la construction d'une architecture SOA, n'est pas suffisamment intégrée à ce jour. Les articulations des différentes phases : « Cartographie Processus Métiers », « Processus Modèles Modèles UML», « Modèles UML Code» ne sont pas matures et constituent une fragilité certaine pour l'édifice tout entier qui doit pouvoir être flexible et donc rester souple. Nul doute que les consortiums présents et à venir seront de grands contributeurs à l'avancée de cette intégration par les modèles, indispensable à toute forme d'architecture. Les pages à suivre rassemblent l'index bibliographique, les acronymes et les différentes annexes cités en référence dans ce mémoire. Bibliographie SOA (Services Oriented Architecture) [ANQ-URBA] ; Club Urba-EA ; ANQUETIL, Philippe; BONNE, Jean-Christophe; CARPENTIER, Denis. Urbanisme des SI et gouvernance : Retours d'expériences et bonnes pratiques. Coll. InfoPro - Management des systèmes d'information Paris : Dunod, 2006. 274 p. ISBN 2-10-049678-6. Le Club Urba (Urbanisme du SI -Enterprise Architecture) est une association qui rassemble 55 grandes entreprises et administrations constituant un lieu d'échanges entre urbanistes, architectes, responsables d'études et MOA.
[BEU-MCC]; BEUGNARD, Antoine; Making Components Contract Aware. Coll. Computer. pp. 38-45, juillet 1999. Antoine Beugnard est enseignant et chercheur en informatique. Il est l'auteur de nombreux ouvrages touchant à l'assemblage des composants.
[BRI-IPM] ; BRIOL, Patrice ; L'ingénierie des processus métiers - De l'élaboration à l'exploitation. Belgique, éditeur lulu.com, 2008. 361 p. ISBN 978-1-4092-0040-6. Patrice Briol est architecte d'applications chez E-Consult (membre du groupe Altran).
[FOU-GUID] ; FOURNIER-MOREL, Xavier; GROJEAN, Pascal; PLOUIN, Guillaume. SOA le Guide de l'architecte. Coll. InfoPro - Management des systèmes d'information. Paris : Dunod, 2006. 302p. ISBN 2-10-049972-6. Xavier FOURNIER MOREL est consultant au sein du pôle conseil et veille technologique du groupe SQLI. [MAU-VITR] ; MAUFRAS. L'architecture de Vitruve, Tome III. Traduction nouvelle. Paris, éditeur C. L. F. Panckoucke, 1847. Texte latin et français en regard. Vitruve : Ingénieur et architecte romain (1er siècle av. J.C.), auteur de 10 volumes consacrés à l'architecture. [POP-LEA] ; POPPENDIECK, Mary et Tom; Lean Software Development. Canada, éditeur Addison Wesley professional, 2003. 240 p. ISBN 978-0321150783. Mary et Tom POPPENDIECK créent le Lean Software Developement en 2003, selon les principes fondateurs du Lean. [LOG-PUR] ; LONGEPE, Christophe; Le Projet d'Urbanisation du SI démarche pratique avec cas concrêt. Coll. InfoPro - Management des systèmes d'information, Paris : Dunod, 2006 ; 3ème édition. 396 p. ISBN 2-10-050093-7. Christophe LONGEPE est Directeur de l'urbanisme et des référentiels Groupe Société Générale. [LON-MXM] ; LONJON. Antoine ; THOMASSON Jean-Jacques. Modélisation XML. Coll. Architecte logiciel ; Edition Eyrolles, 2006 ; 498p. ISBN 2-212-11521-0. Antoine LONJON est Directeur de l'offre citée dans ce mémoire chez Mega. Il participe à l'élaboration des standards au sein de l'OMG et autres consortiums de normalisation de l'industrie de logiciel (la norme Business Process Spécification Schema, ebXML, la notation Business Process Modeling Notation pour les processus métiers ainsi qu'à la dernière version 2.0 d'UML). [RAC-FYP] ; RACCOON; Fifty Years of Progress in Software Engineering. Coll. ACM SIGSOFT Software Notes: volume 22, no 1, Janvier 1997, New-York. ISSN: 0163-5948. [VDB-PROF] ; VAN DEN BERG, Martin; VAN OMMEREN, Erik; BIEBERSTEIN, Norbert. SOA for profit. Bruxelles : Sogeti et IBM, 2007. 256 p. ISBN 907-5-41-4188. Thèse(s), Mémoire(s) ou exposé(s) de thèse(s) [AIM-VHC] ; AIME, Xavier. Visualisation d'alignements d'ontologies ; Mémoire Ingénieur Cnam en Informatique, Centre Régional Associé de Nantes, XXX 200N. [GUI-PMA] ; GUITTON, Julien. Planification multi-agent pour la composition dynamique de Services Web ; Rapport de stage - Master 2 Recherche Intelligence Interaction Information, Université Joseph Fourier - Grenoble 1 - Informatique et Mathématique Appliquée, juin 2006. [TOU-ACS] ; TOUZI, Jihed. Aide à la conception de Système d'Information Collaboratif, support de l'interopérabilité des entreprises ; Thèse soutenue au Centre de Génie Industriel - Ecole des Mines d'Albi - novembre 2007. [LIT-CAA] ; LITTLE, Todd. Context-Adaptive Agility: Managing Complexity and Uncertainty. IEEE Software, vol 22, no.3, PP.28-35, Mai/juin 2005. Todd LITTLE est Responsable de développements chez Landmark Graphics, leader dans la vente de solutions dans le domaine pétrolier et gazier, auteur de plusieurs articles concernant les mesures d'estimation de projet. [LEG-LST] ; LÉGERON, Patrick. Le stress au travail : de la performance à la souffrance. Droit Social, no.12, P.2, Décembre 2004. Patrick LÉGERON est Docteur Psychiatre, praticien attaché, service hospitalo-universitaire, Centre hospitalier Sainte-Anne, Paris. Il est Directeur de STIMULUS, cabinet de conseil sur le stress professionnel [MON-RFA] ; MALINGRE, Virginie. 2006, année record pour les fusions-acquisitions. Le monde, 22 décembre 2006. [CHA-CONT] ; CHAPPELL, David. Using the ESB Service Container. Site disponible sur http://www.onjava.com/pub/a/onjava/excerpt/esb_ch6/index.html David CHAPELL est Vice Président et responsable de la technologie de SOA chez Oracle Corporation. [BON-CSOA] ; BONNET, Pierre. Cadre de Référence Architecture SOA - Meilleures Pratiques. Site disponible sur http://pie.bonnet.ifrance.com/ON-seminaire-SOA-Webservice-Part01.pdf Pierre BONNET est expert en architecture des Systèmes d'Information orientée objets et services. [RAF-BLAN] ; RAFAL, Olivier. Livre blanc - GUIDE SOA 2008. 2008. Olivier RAFAL est Rédacteur en chef de LeMondeInformatique.fr. [OCT-SYST] ; Consultant OCTO Technology. Livre blanc - Architectures de systèmes d'information. Novembre 2002 [OCT-EAI] ; Consultant OCTO Technology. Livre blanc - Intégration des Applications d'Entreprise. 2000 [OCT-SOA] ; Consultant OCTO Technology. Livre blanc - Architecture Orientée Services (SOA) - Une politique d'interopérabilité. 2005
OCTO Technology a été fondé en 1998. C'est un cabinet spécialisé en Architecture de Systèmes d'Information. [FOR-EAE] ; Forrester Research. Evaluez l'agilité de votre entreprise. 2007. Site disponible sur http://www.sap.com/france/campagnes/Mega_Program_Driving_Efficiency/Evaluez_Reactivite_Votre_Entreprise_Forrester.pdf. [FOR-APE] ; Forrester Research : Carey Schwaber, Randy Heffner. Agile Processes Enable SOA Success : The Story Behind The Correlation In Agile And SOA Adoption. 2006. Site disponible sur http://www.forrester.com/Research/Document/Excerpt/0,7211,38853,00.html Forrester Research est un vieux cabinet d'études indépendant (25 ans) coté en bourse dont les chiffres et les prévisions sont très suivis. Sigles, Acronymes et Lexique de termes 3-tiers, architecture à trois niveaux est l'application du modèle plus général qu'est le multi-tiers. L'architecture logique du système est divisée en trois niveaux ou couches : présentation, métier, données. A2A (Application to Application) : caractérise l'échange d'information entre deux applications de la même entreprise. API (Application Programming Interface) : interface pour les applications permettant de communiquer. B2B (Business to Business) : caractérise le type de commerce électronique conduit entre entreprises. B2C (Business to Consumer) : caractérise le type de commerce électronique conduit entre une entreprise et une personne privée. BAM (Business Activity Monitoring) : comprend l'acquisition, l'agrégation, l'analyse et la présentation en temps réel de données associées à des processus d'entreprise. BEA MessageQ : BPDM (Business Process Definition Metamodel): proposition de l'OMG. BPEL : langage de description des procédures d'entreprise. Ce langage a été défini dans sa version 2.0 par une spécification du consortium OASIS à la fin du mois de mars 2007. BPM (business process managment) : approche consistant à modéliser informatiquement les processus métiers de l'entreprise, aussi bien dans leur aspect applicatif qu'humain. BPMI : Business Process Management Initiative) : consortium de standardisation. BPML (Business Process Modeling Language) : langage basé sur XML, permet de modéliser les processus métier. BPMN (Business Process Management Notation): premier standard du Business Process Management. BRMS (Business rules management system) : système de gestion des règles métier C/C++ : langage de programmation existant depuis 1985 et largement utilisé depuis 1995, non propriétaire, et permettant la programmation sous de multiples paradigmes comme, par exemple, la programmation procédurale, la programmation orientée objet. CICS (Customer Information Control System) : système qui permet d'effectuer des opérations transactionnelles (en général consultation ou mise à jour de bases de données ou de fichiers) avec une très grande économie de moyens. CIM (Computation Independent Model) : parfois appelé Business Model, il s'agit de représenter l'entreprise. Architecture client/serveur : mode de communication entre plusieurs ordinateurs d'un réseau qui distingue un ou plusieurs postes clients du serveur (actifs): chaque logiciel client peut envoyer des requêtes à un serveur (passif). COM (Component Object Model) : composant utilisé en programmation pour permettre le dialogue entre programmes, très présent dans le monde Microsoft Windows. Communication asynchrone (Asynchronous Communication) : type d'échange non bloquant dans lequel une application envoie un message à l'autre sans attendre la réponse, afin que les applications puissent opérer indépendamment. Communication synchrone (Synchronuous Communication) : type d'échange bloquant dans lequel une application envoie un message à l'autre en attendant la réponse, de telle sorte que les applications opèrent en dépendance. Compensation : mécanisme de retour arrière par exemple lorsqu' un traitement de virement échoue en cours de route. Si un mouvement de débit a déjà été créé sur le compte d'origine, alors la compensation sera de créditer de la même somme le compte. Datawarahouse : entrepôt de données qui se caractérise par des données orientées « métiers » (...) non volatiles (...) présentées selon différents axes d'analyse ou « dimensions ». DTD (Document Type Definition) : document permettant de décrire un modèle de document SGML ou XML EAI (Intégration d'applications d'entreprise) : architecture intergicielle permettant à des applications hétérogènes de gérer leurs échanges. EAM (Enterprise Architecture Modeling) : outil de modélisation de l'architecture d'entreprise. Eclipse : IDE libre d'IBM, fonctionnant à partir de plugin spécifiques. EDI (Electronic Data Interchange) : échange de données électroniques organisées selon des messages à plusieurs niveaux, avec en-têtes de trois caractères et des codages longueur - champ, standardisé dans les années 80. Edifact (Échange de données informatisées pour l'administration, le commerce et le transport) : norme des Nations unies décrivant des modalités techniques pour l'échange de données informatisé (EDI) dans différents secteurs industriels. Endpoints : point d'accès à un service. ERP (Enterprise Resource Planning) ou Progiciel de gestion intégré (PGI) ESB (Enterprise Service Bus) : est une architecture fonctionnant comme un bus entre des clients et des fournisseurs de services EJB (Enterprise JavaBeans) : Extension des JavaBeans permettant de réaliser des composants réutilisables sur n'importe quelle plate-forme Java. ETL (Extract, Transform and Load) : technologie informatique permettant d'effectuer des synchronisations (« alimentation », « extraction », « transformation », « constitution » ou « conversion », souvent combinés) massives d'information d'une base de données vers une autre FIX (Financial Information eXchange) : standard de message développé dans le but de faciliter les échanges d'informations relatifs aux transactions boursières. Hash-coding : Technique logicielle permettant d'attribuer un emplacement de mémoire grâce à un calcul faisant intervenir directement l'Information à ranger ou à retrouver. HL7 (Health Level 7) : standard qui devient internal, définissant un format pour les échanges informatisés de données cliniques, financières et administratives entre systèmes d'information hospitaliers. Http (HyperText Transfer Protocol): dans le protocole de transfert Hyper Texte, une méthode est une commande spécifiant un type de requête demandant au serveur d'effectuer une action. Cette action concerne une ressource identifiée par l'URL qui suit le nom de la méthode. SSL est une forme sécurisée de HTTP. Hub : point central où convergent les informations du système. IBM WebSphere MQ, anciennement MQ Series est une famille de logiciels, développé par IBM depuis 1992. Service de messagerie inter-applicative (ou MOM : Message Oriented Middleware), permettant la communication entre différentes applications, via l'utilisation de files d'attente. IDE (Environnement Intégré de Développement) : Outils se présentant comme un ensemble de consoles intégrées qui permet la gestion complète du cycle de vie des composants techniques et fonctionnels entrant dans la composition d'un système d'information conforme à une architecture SOA. ITIL (Information Technology Infrastructure Library) : ensemble de 5 ouvrages recensant les bonnes pratiques en matière informatique (la dernière version : Version 3, est sortie en mai 2007). On trouve le berceau d'Itil en Angleterre dès la fin des années 1980. Le gouvernement Thatcher souhaite mettre en concurrence systématique les prestations informatiques internes des services publics avec l'offre du marché (Market testing). Java : langage de programmation orienté objet avec la particularité principale que les logiciels écrits en java sont très facilement portables sur plusieurs systèmes d'exploitation tels que Unix, Microsoft Windows, Mac OS ou Linux avec peu ou pas de modifications. JCA (Java connector architecture) : solution de J2EE pour résoudre le problème d'intégration entre le monde J2EE et le système d'information d'entreprise JBI (Java Business Intégration) : spécification normalisant ces intégrations via un jeu d'API permettant à tout fournisseur de pouvoir se connecter à un conteneur JBI pour échanger des messages avec le reste du SI. JMS (Java Message Service) : Interface Java standard d'accès à un système de messagerie (ex MOM) pour l'échange fiable de messages entre applications ou machines. Noter que JMS ne standardise pas le système de messagerie utilisé. JVM (Java Virtual Machine, en français Machine virtuelle Java) : machine virtuelle permettant d'interpréter et d'exécuter le bytecode Java. KAI (Key Agility Indicator) : notion d'évaluation de l'agilité avancée par Tami Cannizzaro, directeur SOA chez IBM. Legacy System : vieux Mainframe plébiscités par les utilisateurs qui refusent parfois de changer d'application auxquels ils sont attachés Liberty Alliance : aussi connu sous le nom de Project Liberty, projet réunissant depuis 2001 des acteurs industriels, informatiques, bancaires et gouvernementaux sous la forme d'un consortium afin de définir des spécifications de protocoles de fédération d'identité et de communication entre services web. M2M (machine to machine) : technologie permettant des communications entre machines sans intervention humaine. Mappage (mapping) : définition d'une correspondance entre deux objets de même nature mais pas de même forme. MDA (Model driven architecture,) : Démarche de réalisation de logiciel, proposée et soutenue par l'OMG. C'est une variante particulière de l'ingénierie dirigée par les modèles. Le principe de base du MDA est l'élaboration de modèles indépendants de plate-formes (Platform Independent Model, PIM) et la transformation de ceux-ci en modèles dépendants de plates-formes(Platform Specific Model, PSM) pour l'implémentation concrète du système. Les techniques employées sont donc principalement des techniques de modélisation et des techniques de transformation de modèles. MOM (Message Oriented Middleware) : système de messagerie pour la transmission de messages entre applications. Monde clos : Hypothèse selon laquelle tout ce qui n'est pas dit est faux. Netbeans : IDE libre en java édité par SUN et open source depuis 2000. OASIS : consortium mondial qui travaille pour la normalisation et la standardisation de formats de fichiers ouverts basés notamment sur XML. Créé en 1993, il compte 3500 membres faisant partie de 600 organisations dans 100 pays. OASIS est structuré en groupes de travail appelés les Technical Committees. OMG : organisme à but non lucratif, créé en 1989 à l'initiative de grandes sociétés (HP, Sun, Unisys, American Airlines, Philips...). Aujourd'hui, l'OMG fédère plus de 850 acteurs du monde informatique. Son rôle est de promouvoir des standards qui garantissent l'interopérabilité entre applications orientées objet, développées sur des réseaux hétérogènes. Ontologie : cherche à représenter le sens des concepts d'un domaine et les relations qui les lient. ORB : s'apparente à un bus permettant les échanges de messages entre objets. Orchestration : système qui
permet de superviser les chaînes applicatives dont les maillons sont des
services. OW2 : ObjectWeb est un consortium actif d'industriels internationaux (INRIA, Bull, France Télécom, Thales Group ou Red Hat) engagé en matière de Commerce électronique, d'EAI, de Services web. Il s'engage sur le respect de standard de l'OMG (Object Management Group), le JCP (Java Community Process ), OSGi (Open Services Gateway initiative). OWL : est un dialecte XML basé sur une syntaxe RDF. Il fournit les moyens pour définir des ontologies Web structurées. OWL-S : OWL pour les services. Pare-feu : élément du réseau, qui a pour fonction de faire respecter la politique de sécurité en définissant quels sont les types de communication autorisés ou interdits. Parseur (Parser) : module analysant et décodant les balises d'un document XML afin de permettre à l'application utilisant ce parseur de traiter les données. PDM (Plateform Description Model) : correspond au modèle de transformation du PIM vers le PSM. Petals : bus d'entreprise orienté services (ESB) hautement distribué, construit sur les spécifications JBI. Le projet est dirigé par EBM Websourcing, et développé selon les orientations du consortium OW2. PRA (Plan de Reprise d'Activité) : plan permettant d'assurer, en cas de crise majeure ou importante d'un centre informatique, la reconstruction de son infrastructure et la remise en route des applications. QOS : La qualité de service (QoS, Quality of Service) est la capacité à véhiculer un type de trafic donné, en termes de disponibilité, débit, délais de transmission etc ... RDF : langage de base du Web sémantique. RDF-S : RDFS fournit des éléments de base pour la définition d'ontologies ou vocabulaires destinés à structurer des ressources RDF. Référentiel de Méta-données : sert à décrire l'ensemble des règles, définitions, transformations et processus associés à une donnée. Réification : action de transposer une abstraction en un objet concret. Rose : Logiciel de modélisation UML édité par Rational Software. Il permet de générer automatiquement du code Java, C++ ou Visual Basic à partir du modèle objet. RPC (Remote Procédure Call) : protocole permettant de faire des appels de procédures sur un ordinateur distant à l'aide d'un serveur d'application. Scalabilité : capacité d'un composant à être utilisé sur des plates-formes beaucoup plus petites et plus grosses. Service Web (Web Service) : groupe de fonctions accessibles par un client Web en SOAP, codées en WSDL. Servlet : application Java qui permet de générer dynamiquement des données au sein d'un serveur HTTP. SMA (systèmes multi-agent) : ensemble d'agents situés dans un certain environnement et interagissant selon une certaine organisation. Un agent est une entité caractérisée par le fait qu'elle est, au moins partiellement, autonome. Ce peut-être un processus, un robot, un être humain, etc... SOAML (Service-oriented architecture Modeling Language) : Langage de modélisation SOA. Soap (Simple Object Access Protocol) : protocole de RPC orienté objet bâti sur XML. Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre protocole, comme SMTP. Taxonomie ou taxinomie : science qui a pour objet de décrire les organismes vivants et de les regrouper en entités appelées taxons afin de pouvoir les identifier puis les nommer, et enfin les classer. Tuxedo (Transactions for Unix, Extended for Distributed Operations) : logiciel middleware destiné à gérer les transactions dans un environnement distribué pour systèmes Unix, conçu en 1983. UDDI (Universal Discovery, Description and Integration) : spécification d'accès en langage XML à un catalogue de services offerts par des fournisseurs de services, permettant à un consommateur de services de localiser et d'obtenir les caractéristiques de services dont il a besoin afin de pouvoir invoquer les fournisseurs de ces services. UML (Unified Modeling Language ou langage de modélisation unifié) : langage graphique de modélisation des données et des traitements. Pour approfondir : http://www.uml.org. UPMS (UML Profile and Metamodel for Service) : spécification de l'OMG appliquée aux Services via les profils UML. URI (Uniform Resource Identifier) : chaîne de caractères identifiant une ressource sur un réseau Workflow : décrit le circuit de validation, les tâches à accomplir entre ldifférents acteurs d'un processus, les délais, les modes de validation, et fournit à chacun des acteurs les informations nécessaires pour la réalisation de sa tâche WS-Federation : spécification développées par BEA Systems, BMC Software, CA, Inc., IBM, Layer 7 Technologies, Microsoft, Novell, définissant les mécanismes de sécurité. WS-I (Web Services Interoperability) : consortium d'industriels de l'industrie du logiciel : BEA, IBM, Microsoft, Oracle, HP, SAP, INTEL et SUN) oeuvrant à la promotion de l'interopérabilité entre plate-formes par la rédaction des spécifications des Services Web annotés : WS-*. Le WS-I a été initié en 2000. WSDL (Web Services Description Language) : normalisation regroupant la description des éléments permettant de mettre en place l'accès à un service web. Pour cela il utilise le langage XML, dans sa version 2.0 approuvé par le W3C. W3C (World Wide Web Consortium) organisme de normalisation a but non-lucratif, fondé 1994. Consortium actif dans la promotion des technologies Web telles que HTML, XHTML, XML, RDF, CSS, PNG, SVG et SOAP, le W3C n'émet aucune norme, mais des recommandations considérés comme des standards industriels. XMI (XML Metadata Interchange) : définit un format d'échange standard entre ateliers logiciels. XML (Extensible Markup Language) : méta-language développé par le W3C permettant de définir des langages de marquage de documents ou de messages, au centre d'un ensemble de standards dédiés à la communication dans les systèmes d'information. XPDL (XML Process Definition Language) : standard de la Workflow Management Coalition qui permet de définir un processus métier avec XML, pour ensuite l'utiliser dans un moteur de workflow. XSD (XML Schema Description) : recommandation par le W3C en mai 2001 est un langage de description de format de document XML permettant de définir la structure d'un document XML. Zero Latency : L'information doit ou est immédiatement disponible à un autre point du système. Illustration 1 : Cartouche Mémoire 8 Illustration 2 : Libre interprétation de l'Architecture selon Vitruve 11 Illustration 3 : la Rome Antique où l'ominiprésence de la religion 11 Illustration 4 : Interfaçage Point à Point 14 Illustration 5 : ETL : le plat de spaghettis semble plus organisé 15 Illustration 6 : Constitution d'un ETL 16 Illustration 7 : EAI : le plat de spaghettis semble plus ordonnancé et mieux distribué 17 Illustration 8 : Constitution d'un E.A.I. 20 Illustration 9 : Cas d'utilisation / Services 26 Illustration 10 : Service SU - Get FTP 27 Illustration 11 : Service SA pointant sur un SU FTP 27 Illustration 12 : Constitution d'un ESB 28 Illustration 13 : Articulation Référentiel / UDDI 29 Illustration 14 : Diagramme de séquence d'exécution d'un service 30 Illustration 15 : Diagramme de séquences d'un échange In Out se terminant normalement 31 Illustration 16 : Diagramme de séquences d'un échange In Out se terminant en erreur 31 Illustration 17 : ESB + BPM + BAM + IDE : les Clefs de l'agilité ? 32 Illustration 18 : Différentiation Service / Composant 35 Illustration 19 : Service 36 Illustration 20 : Cycle de vie des services ITIL 36 Illustration 21 : Extrapolation de la représentation des cas d'utilisation pour illustrer les Opérations 37 Illustration 22 : Phases d'orchestration vues au travers d'un diagramme d'activités réalisé sous Magicdraw 38 Illustration 23 : Diagramme de Composants réalisé sous Magicdraw 38 Illustration 24 : Couplage fort 39 Illustration 25 : Couplage faible 39 Illustration 26 : Pré et post conditions d'un service 40 Illustration 27 : Erreur véhiculée dans un message SOAP 41 Illustration 28 : Pré et post conditions d'un service 41 Illustration 29 : Traduction XML des contraintes via MagicDraw 42 Illustration 30 : Données d'échange et Format pivot XML (Master Data Managment) 43 Illustration 31 : Répartition entre domaine privé et domaine public 45 Illustration 32 : Gains pour le département Informatique 52 Illustration 33 : Etapes de la démarche MDA 58 Illustration 34 : Articulation MDA 59 Illustration 35 : Réalisation Model Driven Architecture (MDA) 61 Illustration 36 : BPEL : Demande de Prêt réalisé avec Netbeans 6.5 63 Illustration 37 : Traduction XML du BPEL (extrait des Acteurs) 63 Illustration 38 : D'UML vers BPEL et WSDL 65 Illustration 39 : Mise en place d'un processus 65 Illustration 40 : Sous Estimation de la charge par Todd Little 69 Illustration 41 : Conduite de projet classique, diagramme de Timing UML 2.0 69 Illustration 42 : Projet Lean, diagramme de Timing UML 2.0 70 Illustration 43 : Interactions au sein d'un projet 71 Illustration 44 : Courbe du stress 71 Illustration 45 : Le Cycle itératif 72 Illustration 46 : Bilan de fin d'itération 74 Illustration 47 : Cellule transverse chargée de gérer les services 75 Illustration 48 : Proposition de fiche de service 76 Illustration 49 : Cartographie macroscopique réalisé sous Netbeans 77 Illustration 50 : Méta-modèle du Processus 79 Illustration 51 : Constitution d'une Architecture SOA (clin d'oeil à Vitruve) 85 Illustration 52 : Standardisation des Web Service 86 Illustration 53 : La Galaxie XML 87 Illustration 54 : Grid XML des Animaux de la Ferme, réalisé avec XmlSpy 89 Illustration 55 : Extrait XML du 1ère Atelier 89 Illustration 56 : Illustration et extrait XSD, réalisés avec XmlSpy 90 Illustration 57 : Triplet RDF 91 Illustration 58 : URI 92 Illustration 59 : Extrait RDF, réalisé avec XmlSpy 92 Illustration 60 : RDFS 93 Illustration 61 : Réification 93 Illustration 62 : Langage OWL Lite 94 Illustration 63 : Langage OWL DL et Full 95 Illustration 64 : Diagramme de classe correspondant à l'ontologie décrite en exemple 96 Illustration 65 : Correspondance sémantique de deux ontologies 97 Illustration 66 : Ontologie de présentation déduite des deux autres ontologies 97 Illustration 67 : Ontologie des services 98 Illustration 68 : Ontologie du ServiceProfile 99 Illustration 69 : Ontologie du ServiceModel 100 Illustration 70 : Correspondance entre OWL-S et WSDL 101 Illustration 71 : Expression d'une définition de paramètres OWL-S 102 Illustration 72 : Expression d'un pré condition OWL-S 102 Illustration 73 : Comparaison BEA des coûts selon une approche traditionnelle et SOA 106 Illustration 74 : Productions de la Coopérative Terrena en 2006 109 Illustration 75 : Organisation par pôles des Productions de la Coopérative 109 Illustration 76 : Echanges inter-outils 110 Illustration 77 : Cartographie actuelle façon Package UML 113 Illustration 78 : Cartographie actuelle, façon MEGA 113 Illustration 79 : XSD du processus d'alimentation des tiers réalisé avec XmlSpy 115 Illustration 80 : Extrait de l'inventaire XML des activités d'alimentation de tiers 116 Illustration 81 : Diagramme Causes-Effets d'Ishikawa 120 Illustration 82 : Extrait SOAml 121 Illustration 83 : Architecture logicielle de l'agent 122 Illustration 84 : Système de transition d'états appliqué à notre échange de fichier Tiers 123 Illustration 85 : Diagramme Etat-Transition de l'objet Message 124 Illustration 86 : Exemple de représentation d'un état 126 Illustration 87 : Diagramme de classes de l'Agent, réalisé sous magicdraw 127 Illustration 88 : Diagramme de communication, réalisé sous Magicdraw 129 Illustration 89 : Diagramme de classes, réalisé sous Magicdraw 130 Illustration 90 : Cas d'utilisation UML de la communication actuelle 131 Illustration 91 : Processus métier actuel, BPMN réalisé avec Magicdraw 132 Illustration 92 : Les Consommateurs et le Fournisseur 133 Illustration 93 : Diagramme d'activité actuel 135 Illustration 94 : Diagramme de séquence de l'activité d' « Attente de fin de transfert » 139 Illustration 95 : Diagramme de séquence de l'activité « Contrôle du contenant » 141 Illustration 96 : Entête d'un Message SOAP 142 Illustration 97 : Couche Transport 143 Illustration 98 : Diagramme de séquence de la distribution 144 Illustration 99 : Composants de la démarche MDA aboutissant aux étapes de réalisation 149 Illustration 100 : Composants SOA : Objets pivots et métiers, interfaces et services 151 Illustration 101 : Cartographie cible Selon les règles de Longépé 152 Illustration 102 : Les trois types d'objets selon Jacobson 153 Illustration 103 : Cas d'utilisation obtenu par lecture de la cartographie cible 154 Illustration 104 : Diagramme BPMN réalisé sous Magicdraw 155 Illustration 105 : Diagramme de classe obtenu à partir du BPMN 156 Illustration 106 : Diagramme d'Etats Transitions obtenu à partir du BPMN 157 Illustration 107 : Diagramme de Séquences obtenu à partir du BPMN 158 Illustration 108 : Diagramme d'Activités obtenu à partir du BPMN 159 Illustration 109 : SOA, une architecture interopérable 160 Illustration 110 : Interaction Processus-Composants-Ressources 161 Illustration 111 : Début d'ontologie réalisée avec Protégé 162 Illustration 112 : Extrait xml de la personne morale 163 Illustration 113 : Typologies d'adresse référencées par l'INSEE présentées via XmlSpy 163 Illustration 114 : Inclusion de Module d'information 164 Illustration 115 : Représentation XmlSpy d'un Xml Schema de la Personne Physique selon l'Insee 165 Illustration 116 : Tiers, une Ontologie à trois niveaux 171 Illustration 117 : Diagramme de Classe des Tiers réalisé sous MagicDraw 172 Illustration 118 : BPEL réalisé sous Magicdraw à partir d'un diagramme BPMN valide 174 Illustration 119 : Diagramme XML réalisée à partir d'un diagramme de classes au profil UML standard 177 Illustration 120 : Adaptations manuelles impactées au modèle XML 178 Illustration 121 : Exposition d'un service pour le consommateur 179 Illustration 122 : Interface entre le composant de détection de fichier et le composant de transformation 179 Illustration 123 : Exemple de modelisation d'un service de données ou CRUD 180 Illustration 124 : Diagramme WSDL du CRUD d'extraction réalisé sous MagicDraw 182 Illustration 125 : Code WSDL du CRUD d'extraction 182 Illustration 126 : Modélisation d'un composant selon les spécifications UML 2.0, réalisé sous MagicDraw 184 Illustration 127 : Notation UML 2 pour l'assemblage des composants 184 Illustration 128 : Diagramme WSDL du service de transformation réalisé sous MagicDraw 185 Illustration 129 : Code WSDL du service de transformation 185 Illustration 130 : Cycle de vie d'un document XML Tiers 186 Illustration 131 : Document XML VQTIERS 190 Illustration 132 : Assemblage de la transformation pour la JBI (Jbi.xml) 191 Illustration 133 : Représentation graphique de la connexion des deux services unitaires, réalisé sous Netbeans 192 Illustration 134 : Représentation graphique du WSDL, réalisé sous XmlSpy 193 Illustration 135 : Paramètre du service 193 Illustration 136 : Mapping de transformation XSLT entre le message Input et Output, réalisé sous Netbeans 194 Illustration 137 : Traduction XML dans le fichier to_grc.xsl 194 Illustration 138 : Représentation graphique du transfert du fichier XML par FTP, réalisé sous Netbeans 195 Illustration 139 : Assemblage du transfert FTP pour la JBI (Jbi.xml) 196 Illustration 140 : Représentation graphique de l'orchestration, réalisée sous Netbeans 197 Illustration 141 : Actions du processus BPEL (extrait du PUT_GRC.bpel) 198 Illustration 142 : Assemblage File, FTP, XSLT, BPEL, réalisé sous Netbeans 199 Illustration 143 : Nouveau Profil SOAml intégré à MagicDraw 16.1 203 Illustration 144 : Les cycles de l'évolution IT 207 Illustration 145 : Extrapolation des cycles de Raccoon 208 Illustration 146 : Classe sous Rose 235 Illustration 147 : la "Demande de Prêt" 235 Illustration 148 : Export XMI 236 Illustration 149 : Extrait de la traduction BPEL 237 Illustration 150 : Déploiement du Processus 238 Illustration 151 : Déploiement des services 238 Illustration 152 : Spécification SOAml des Services d'après l'OMG 241 Illustration 153 : Spécification SOAml des Contrats de Services d'après l'OMG 242 Illustration 154 : Collaboration UML autour d'une vente 242 Illustration 155 : Architecture des Services de transfert d'information appliquée à SOAML 243 Tableau 1 : Services Vs Composants 46 Tableau 2 : Richesse des standards en matière de processus Métiers 64 Tableau 3 : Principaux Outils BPM 80 Tableau 4 : Principaux Outils BAM 80 Tableau 5 : Versions UDDI 82 Tableau 6 : Principaux UDDI 82 Tableau 7 : Mots clefs permettant la construction d'un process composite 101 Tableau 8 : triplet RDF 125 Tableau 9 : Bonnes pratiques SOA 139 Tableau 10 : Fiche Service 181 Tableau 11 : Mapping UML / BPEL 236 Dessin 1 : Portrait, époque Renaissance, de Marcus Vitruvius Pollio (-90 à -20) 1 CJ : Catégories juridiques (extrait)1 PERSONNE PHYSIQUE 2 GROUPEMENT DE DROIT PRIVÉ NON DOTÉ DE LA PERSONNALITÉ MORALE 21 Indivision 2110 Indivision entre personnes physiques 2120 Indivision avec personne morale 22 Société créée de fait 2210 Société créée de fait entre personnes physiques 2220 Société créée de fait avec personne morale 23 Société en participation 2310 Société en participation entre personnes physiques 2320 Société en participation avec personne morale 2385 Société en participation de professions libérales 2700 Paroisses hors zone concordataire 2900 Autre groupement de droit privé non doté de la personnalité morale 3 PERSONNE MORALE DE DROIT ÉTRANGER 31 Personne morale de droit étranger immatriculée au RCS 3110 Représentation ou agence commerciale d'état ou organisme public étranger immatriculée au RCS 3120 Société étrangère immatriculée au RCS 32 Personne morale de droit étranger non immatriculée au RCS 3205 Organisation internationale 3210 Etat, collectivité ou établissement public étranger 3220 Société étrangère non immatriculée au RCS 3290 Autre personne morale de droit étranger 4 PERSONNE MORALE DE DROIT PUBLIC SOUMISE AU DROIT COMMERCIAL 41 Etablissement public ou régie à caractère industriel ou commercial 4110 Etablissement public national à caractère industriel ou commercial doté d'un comptable public 4120 Etablissement public national à caractère industriel ou commercial non doté d'un comptable public 4130 Exploitant public 4140 Etablissement public local à caractère industriel ou commercial 4150 Régie d'une collectivité locale à caractère industriel ou commercial 4160 Institution Banque de France 5 SOCIÉTÉ COMMERCIALE 51 Société coopérative commerciale particulière 5191 Société de caution mutuelle 5192 Société coopérative de banque populaire 5193 Caisse de crédit maritime mutuel 5194 Caisse (fédérale) de crédit mutuel 5195 Association coopérative inscrite (droit local Alsace et Moselle) 52 Société en nom collectif 5202 Société en nom collectif 5385 Société d'exercice libéral en commandite par actions 54 Société à responsabilité limité (SARL) 5410 SARL nationale 5415 SARL d'économie mixte 5422 SARL immobilière pour le commerce et l'industrie (SICOMI) 5460 Autre SARL coopérative 5485 Société d'exercice libéral à responsabilité limitée 5498 SARL unipersonnelle 5499 Société à responsabilité limitée (s.a.i.) 55 Société anonyme (SA) à conseil d'administration 5505 SA à participation ouvrière à conseil 5510 SA nationale à conseil 5515 SA d'économie mixte à conseil 5520 Société d'investissement à capital variable (SICAV) à conseil 5522 Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil 5525 Société anonyme immobilière d'investissement à conseil 5530 Société anonyme d'aménagement foncier et d'équipement rural (SAFER) à conseil 5531 Société anonyme mixte d'intérêt agricole (SMIA) à conseil 5532 Société anonyme d'intérêt collectif agricole à conseil 5547 SA coopérative de production de HLM à conseil 5548 SA de crédit immobilier à conseil 5551 SA coopérative de consommation à conseil 5555 SA coopérative de transport à conseil 5558 SA coopérative ouvrière de production et de crédit à conseil 5559 SA union de sociétés coopératives à conseil 5560 Autre SA coopérative à conseil 5585 Société d'exercice libéral à forme anonyme à conseil d'administration 5599 SA à conseil d'administration (s.a.i.) 56 Société anonyme (SA) à directoire 5605 SA à participation ouvrière à directoire 5610 SA nationale à directoire 5615 SA d'économie mixte à directoire 5620 Société d'investissement à capital variable (SICAV) à directoire 5622 Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire 5625 Société immobilière d'investissement à directoire 5630 SAFER anonyme à directoire 5631 Société mixte d'intérêt agricole (SMIA) 5632 Société d'intérêt collectif agricole (SICA) 5642 Société d'attribution anonyme à directoire 5643 Société coopérative de construction anonyme à directoire 5646 SA de HLM à directoire 5647 SA coopérative de production HLM à directoire 5648 SA de crédit immobilier à directoire 5651 SA coopérative de consommation à directoire 5652 SA coopérative de commerçants-détaillants à directoire 5653 SA coopérative artisanale à directoire 5654 SA coopérative (d'intérêt) maritime à directoire 5655 SA coopérative de transport à directoire 5658 SA coopérative ouvrière de production et de crédit à directoire 5659 SA union de sociétés coopératives à directoire 5660 Autre SA coopérative à directoire 5685 Société d'exercice libéral à forme anonyme à directoire 5699 SA à directoire (s.a.i.) 5710 SAS, société par actions simplifiée 5720 SASU, société par actions simplifiée unipersonnelle 6 AUTRES PERSONNES MORALES IMMATRICULÉES AU REGISTRE DU COMMERCE ET DES SOCIÉTÉS 6100 Caisse d'Épargne et de Prévoyance 62 Groupement d'intérêt économique (GIE) 6210 Groupement européen d'intérêt économique (GEIE) 6220 Groupement d'intérêt économique (GIE) 63 Société coopérative agricole 6316 Coopérative d'utilisation de matériel agricole en commun (CUMA) 6317 Société coopérative agricole 6318 Union de sociétés coopératives agricoles 64 Société non commerciale d'assurance 6411 Société d'assurance à forme mutuelle 6412 Société mutuelle d'assurance 6413 Union de sociétés mutuelles d'assurance 6414 Autre société non commerciale d'assurance 65 Société civile 6521 Société civile de placement collectif immobilier (SCPI) 6532 Société civile d'intérêt collectif agricole (SICA) 6533 Groupement agricole d'exploitation en commun (GAEC) 6534 Groupement foncier agricole 6535 Groupement agricole foncier 6536 Groupement forestier 6537 Groupement pastoral 6539 Société civile foncière 6540 Société civile immobilière 6541 Société civile immobilière de construction-vente 6542 Société civile d'attribution 6543 Société civile coopérative de construction 6554 Société civile coopérative (d'intérêt) maritime 6558 Société civile coopérative entre médecins 6560 Autre société civile coopérative 6561 Société Civile Professionnelle (SCP) d'avocats 6562 SCP d'avocats aux conseils 6563 SCP d'avoués d'appel 6564 SCP d'huissiers 6565 SCP de notaires 6566 SCP de commissaires-priseurs 6567 SCP de greffiers de tribunal de commerce 6568 SCP de conseils juridiques 6569 SCP de commissaires aux comptes 6571 SCP de médecins 6572 SCP de dentistes 6573 SCP d'infirmiers 6574 SCP de masseurs-kinésithérapeutes 6575 SCP de directeurs de laboratoires d'analyse médicale 6576 SCP de vétérinaires 6577 SCP de géomètres experts 6578 SCP d'architectes 6585 Autre société civile professionnelle 6589 Société civile de moyens 6595 Caisse (locale) de crédit mutuel 6596 Caisse de crédit agricole mutuel 6597 Société civile d'exploitation agricole 6598 Exploitation agricole à responsabilité limitée 6599 Autre société civile 6901 Autre personne de droit privé inscrite au registre du commerce et des sociétés 7 PERSONNES MORALES ET ORGANISMES SOUMIS AU DROIT ADMINISTRATIF 7348 Communauté d'agglomérations 8 ORGANISME PRIVE SPECIALISE 81 Organisme gérant un régime de protection sociale à adhésion obligatoire 8110 Régime général de la Sécurité Sociale 8140 Mutualité sociale agricole 8150 Régime maladie des non-salariés non agricoles 8160 Régime vieillesse ne dépendant pas du régime général de la Sécurité Sociale 8170 Régime d'assurance chômage 8190 Autre régime de prévoyance sociale 82 Organisme mutualiste 8210 Mutuelle 8250 Assurance mutuelle agricole 8290 Autre organisme mutualiste 83 Comité d'entreprise 8410 Syndicat de salariés 8420 Syndicat patronal 8450 Ordre professionnel ou assimilé 8470 Centre technique industriel ou comité professionnel de développement économique 8490 Autre organisme professionnel 85 Organisme de retraite à adhésion non obligatoire 8510 Institution de prévoyance 8520 Institution de retraite supplémentaire 9 GROUPEMENT DE DROIT PRIVÉ 91 Syndicat de propriétaires 9110 Syndicat de copropriété 9150 Association syndicale libre 92 Association (loi de 1901) et assimilés 9240 Congrégation 9260 Association de droit local (Bas-Rhin, Haut-Rhin et Moselle) 9300 Fondation 9900 Autre personne morale de droit privé
* 157 Exemple de Saas : Google Apps, outils collaboratifs. Les interfaces RIA (Rich Internet Application) permettent l'exposition des services. * 158 Cf. Source : hal.archives-ouvertes.fr/docs/00/34/23/10/PDF/soa-3.pdf. * 159 JVM (Java Virtual Machine, en français Machine virtuelle Java, est une machine virtuelle permettant d'interpréter et d'exécuter le bytecode Java. * 160 Il ya 50 ans, Raccoon a proposé une projection de l'évolution des paradigmes d'ingénierie logiciel. Il a introduit la notion de vagues de l'évolution logiciel, divisibles en 4 phases : innovation, croissance, maturité et convention. * 161 « Ere ubiquitaire» selon Mark Weiser : terminaux à la fois client et serveurs (en architecture pear to pear) tels que les assistants personnels, les téléphones mobiles, les terminaux interactifs (tv, bornes), les consoles de jeux, les appareils photo numérique etc ... |
|