Introduction à l’Architecture Orientée Service

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Applications N-Tiers Rappels: architecture et méthodologie
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Eléments de Génie Logiciel
SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
Les Web Services Schéma Directeur des Espaces numériques de Travail
International Telecommunication Union Accra, Ghana, June 2009 Relationship between contributions submitted as input by the African region to WTSA-08,
Introduction aux environnements répartis
(c) 2007, Occello Audrey, SAR O2/SAR O3 SOA Introduction à lArchitecture Orientée Service Modules SAR O2/SAR O3 – SI3.
Introduction à l’Architecture Orientée Service
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
LOG4430 : Architecture logicielle et conception avancée
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
UML - Présentation.
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Urbanisation et Architecture CNAM NFE107
Les Ateliers de Génie Logiciel
Le Workflow et ses outils
Introduction aux services WEB
Les Enterprise Service Bus
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
MRP, MRP II, ERP : Finalités et particularités de chacun.
Control des objectifs des technologies de l’information COBIT
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Urbanisation des SI Saâd AISSA Sami BENMOSBAH Delphine GAAG
le profil UML en temps réel MARTE
Réalisée par :Samira RAHALI
Présentation générale
7 - EAI Les EAI : Enterprise Application Integration Marché
BPM & BPMS.
Relation processus Anthony Tomat, Marcel Grosjean IG2PTB.
Le Reengineering.
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
Supply Chain Management
Gestion des bases de données
Interoperabilité des SI - Urbanisation
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Évaluer et analyser les coûts de la régie communautaire de leau, comment ? Restitution du 16 nov Cartographie des activités et inducteurs de coût.
Portée, arrimages et intervenants Évolution des méthodes
Toujours partir du besoin métier – Pas dune envie de linformatique Concevoir les services – puis concevoir leur implémentation Le vrai bénéfice est.
Processus d'un projet F.Pfister
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Partie A Système d ’information et organisation
‘‘Open Data base Connectivity‘‘
Présentation de CORBA et de IIOP
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Introduction à l’Architecture n-tiers et Orientée Service
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
UML : un peu d’histoire H. Lounis.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Introduction au Génie Logiciel
LE DATA WAREHOUSE.
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
1 Journee gdr COSMAL 27/01/2009 Exécution Distribuée et Agile de Compositions de Services Françoise Baude & Virginie Legrand
Introduction aux outils de supervision
Web Services 17/01/2009.
CSC Proprietary 6/20/2015 9:42:54 AM 008_5849_ER_Red 1 BPM - SOA Logo du client Synthèse de notions “fondamentales” par Guillaume Feutren, Stagiaire *
Transcription de la présentation:

Introduction à l’Architecture Orientée Service Modules SAR O2/SAR O3 – SI3 Revu par F. Baude, M2 MIAGE NTDP, 2008 (essentiellement simplification, raccourcissements, + quelques details) (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Vous avez dit SOA? Service Oriented Architecture Chaque rôle s'approprie SOA différemment : Un ensemble de services que l'entreprise souhaite exposer à leurs clients et partenaires, ou d'autres parties de l'organisation Dirigeants Analystes métier Un style architectural basé sur un fournisseur, un demandeur et une description de service, et supporte les propriétés de modularité, encapsulation, découplage, réutilisation et composabilité Architectes Un modèle de programmation avec ses standards, paradigmes, outils et technologies associées Développeurs Un intergiciel offrant des fonctionnalités en terme d'assemblage, d'orchestration, de surveillance et de gestion des services Intégrateurs (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA 2

Plan du cours A quels besoins répond le SOA ? Pourquoi les solutions actuelles sont insuffisantes ? Quels sont les principes de base du SOA ? Quels sont les éléments clé d’une architecture orientée services ? Quel est le cycle de vie d’un service ? Quelles méthodes et outils permettent de mettre en oeuvre une architecture orientée services ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

A quels besoins répond le SOA A quels besoins répond le SOA ? Pourquoi les solutions actuelles sont insuffisantes ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Problématique de l’intégration en entreprise Les entreprises doivent s’adapter en permanence et être de + en + réactives aux variations des marchés fusions acquisitions scissions diversification des offres commerciales changement technologiques … Ces opérations ont un impact sur le système d'information (SI) des entreprises L'intégration difficile des SI est un frein à ces changements C’est l’activité qui doit piloter la technologie et non l’inverse (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Problématique de l’intégration en entreprise La création d'applications dans l'entreprise est très souvent pilotée par des besoins à très court terme Développement d'une application sous tel délai avec telles fonctionnalités Modélisation et développement dirigé par les choix/contraintes techniques Pas de discussion entre maitrise d'ouvrage (MOA) et maitrise d'oeuvre (MOE)‏ Décalage entre besoins métier et leur réalisation (constituants informatiques)‏ Pas de place pour la prise en compte de l'évolution des besoins fonctionnels au niveau de l'application (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Problématique de l’intégration en entreprise Le découpage présentation/traitement/base de données de l'architecture 3-tiers facilite le travail de la MOE mais favorise le cloisonnement en silos applicatifs indépendants (blocs monolithiques)‏ Certaines fonctions sont redondantes : une version pour chaque application Pas de mutualisation des développements entre projets et peu de réutilisation possible (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Problématique de l’intégration en entreprise Entreprises découpées en départements fonctionnels y compris le SI‏ Processus métiers de + en + inter-départementaux Les processus franchissent les fontières de l'entreprise qui doit pouvoir prendre en compte les activités et processus des partenaires pour être reactive Coûts considérables dans la gestion des flux entre départements et dans l’intégration de leurs SI (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Hier : plat de spaghettis Développements coûteux Interconnexions redondantes (point à point)‏ Grande complexité Maintenance difficile (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Vers toujours plus d'abstraction Procédures Modules Modèles orientés objets Packages Encapsulation Design pattern ... (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Limites de la programmation orientée Objet Structure et architecture de l’application peu visibles Interactions entre objets enfouies dans le code Évolution / modification difficile Recherche des bouts de code impliqués source d’erreur Gestion de la consistance d’un changement délicate (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Objets et encapsulation Granularité encore trop fine Mal adaptée à la programmation à grande échelle Couplage fort Rend difficile la réutilisation Accroît la complexité des Systèmes OO (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Encore plus de structuration avec les composants logiciels Analogie avec les composants électroniques, legos, puzzles Why do we want to use software components? Our cars are made of components; why do we like that and why is it important? Automotive components work because when a component wears out or is found to be defective, it's easy to replace (think tires here). This helps manage change, and in my mind it is the number one reason to use components. I can't keep up with all the latest technology in my car, and each component isolates one aspect of that technology. That leads to the second reason we use components, managing complexity. The strategy of divide-and-conquer simplifies the vast array of functionality within our system. Last on the list is reuse. Why is it last? Because I have never really tried to remove the alternator from my wife's car and use it in my car, but I guess I could. (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Un Composant : Qu’est-ce que c’est ? Définition usuelle Une unité regroupant les fonctionnalités concernant une même idée Un module logiciel autonome pouvant être installé sur différentes plates-formes qui exporte des attributs et des méthodes qui peut être configuré (déploiement semi automatique)‏ capable de s’auto-décrire Intérêt Être des briques de base configurables pour permettre la construction d’une application par composition (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Interface de configuration Structure d’un composant Interactions avec un composant ce qui est fourni par le composant ce qui est utilisé par le composant modes de communication Configuration du composant propriétés (attributs publics) connexions cycle de vie (arret, redemarrage, ...)‏ contraintes techniques (transaction, persistance, sécurité, ...)‏ … Interface de configuration Interfaces fournies Interfaces requises (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Re-configuration dynamique Consommer: payer, selectionner, prendre Facturer: encaisser, rendreMonnaie Distributeur de boissons Facturation version 1 Gerer: ouvrir, remplir, mettreMonnaie Facturer: encaisser, rendreMonnaie Facturer: encaisser, rendreMonnaie Réparer: ouvrirCapot, fermerCapot « Just in time binding » Facturation version 2 Permet de modifier l'application à chaud sans modification du code en manipulant les assemblages (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Les composants dans la nature La modélisation des composants logiciels est intégrée à UML 2.0 Spécification : Composants CORBA (CCM)‏ Spring (JEE beans for Web apps) Fractal (Etendu pour le réparti, voir GridComponentModel – Equipe I3S/INRIA OASIS) SCA (Service component Architecture) => utilisé pour SOA (voir OSOA Tuscany, HydraSCA, IBMWebSphere pack for SOA, etc) Plates-formes d'éxecution OpenCCM (GridCCM, Equipe PARIS IRISA Rennes) Julia (Fractal)‏, ProActive (GCM) Sofa (Fractal) ... Elle part du principe que l'agencement des fonctions informatiques les unes par rapport aux autres peut être défini à la manière des zones et quartiers d'une ville. Alors que le plan de construction d'une agglomération est élaboré en fonction des besoins des habitants, de même le plan d'un système d'information sera dessiné au regard des exigences métier et/ou des priorités stratégiques de l'entreprise. Rappelons qu'une démarche d'urbanisation consiste à concevoir le SI comme une ville composée de quartiers, chacun représentant un ensemble d'applications centré sur un domaine fonctionnel particulier. Comme un système d'information, la ville dispose d'une infrastructure sur laquelle repose ses quartiers. Des interactions existent également entre eux, permettant à la ville de vivre. Dans le cas du SI, il s'agit des processus métier qui, dans de nombreux cas, font également appel à divers systèmes pour fonctionner. (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Convergence Composants / Services Exposer les interfaces offertes par les composants selon une technologie au choix; Par exemple Services web, avec binding SOAP Interface Java avec binding RMI ou JMS Principe suivi par la norme SCA : Service Component Architecture Notion de Composite Service (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Convergence Composants / Services : Exemple From : (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Demain : Architecture urbanisée L’urbanisation informatique définit l'organisation d’un SI à l’image d’une ville découper le SI en modules autonomes (zone, quartier, îlot, bloc) localiser les zones d’échange d’informations (routes, ponts, tunels) qui permettent de découpler les différents modules Objectif : faire évoluer le SI au même rythme que la stratégie et l'organisation des métiers de l'entreprise legacy services portail ... Elle part du principe que l'agencement des fonctions informatiques les unes par rapport aux autres peut être défini à la manière des zones et quartiers d'une ville. Alors que le plan de construction d'une agglomération est élaboré en fonction des besoins des habitants, de même le plan d'un système d'information sera dessiné au regard des exigences métier et/ou des priorités stratégiques de l'entreprise. Rappelons qu'une démarche d'urbanisation consiste à concevoir le SI comme une ville composée de quartiers, chacun représentant un ensemble d'applications centré sur un domaine fonctionnel particulier. Comme un système d'information, la ville dispose d'une infrastructure sur laquelle repose ses quartiers. Des interactions existent également entre eux, permettant à la ville de vivre. Dans le cas du SI, il s'agit des processus métier qui, dans de nombreux cas, font également appel à divers systèmes pour fonctionner. Canal d'échange données processus partenaires ... (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quels sont les principes de base du SOA ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Principes fondamentaux de l’architecture SOA Il n’existe pas une recette pour garantir le succès de la mise en place d’une SOA mais des principes à respecter : Discussion entre métier et IT Utilisation des use case métier Utilisation de standards Pas de remise en cause de l’existant lors d’évolutions technologiques Découplage entre fournisseur et consommateur de services Indépendance des ressources vis à vis de ceux qui les utilisent (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Qu’est ce qu’un Service (au sens SOA) ? Partage les caractéristiques suivantes d’un objet Modulaire (ensemble de fonctionnalités qui font sens)‏ Partage les caractéristiques suivantes d’un composant Boite noire (séparation interface/implémentation)‏ Indépendant de la localisation Neutralité vis-à-vis des protocoles de transport Correspond à un périmètre fonctionnel que l’on souhaite exposer à des consommateurs ‏ Est faiblement couplé (indépendant des autres services) Expose un petit nombre d’opérations offrant un traitement de bout en bout Sans état (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

4 propriétés du service à retenir Un Service est Autonome et sans état (en général, c.ex WSRF) Les Frontières entre services sont Explicites Un Service expose un Contrat Les services communiquent par messages Conditions Générales de Vente Règlement Intérieur Vos droits/Vos devoirs in out (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Exemple de couplage fort : Gestion de prêts Entités LoanAgent LoanApproval Account Loan SMSGateway calculateRisk checkCredit createLoan sendConfirmation LoanAgent est lié à LoanApproval et Loan LoanApproval est lié à Account Loan est lié à SMSGateway (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Gestion de prêts en couplage faible Services LoanProcess CheckAccount Balance Calculate LoanRisk CreateLoan Notify ViaSMS Qu’est ce que LoanProcess ? Un processus métier ! Il permet d’orchestrer les services => couplage lâche (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Business Process Management (BPM)‏ But : Donner à l'Entreprise les moyens de gérer ses processus métiers de manière informatisée (modélisation, simulation, exécution et audit)‏ Optimisation, adaptation aux besoins en temps réel Un processus est composé de sous processus, de décisions (Business rules) et d’activités Un sous processus a son propre but, entrées et sorties Les activités correspondent aux parties du processus métier qui n’incluent pas de décision et sont associées à des rôles Sont réalisées par des systèmes ou des humains Des mesures (KPI pour Key Performance Indicators) permettent de capturer les performances du processus Un processus est le résultat d’une orchestration de service Le processus est lui-même accessible en tant que service (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

BPM par l’exemple (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Les couches SOA Couplage fort Couplage faible au niveau logique Ces différents modes de couplage sont nécessaires et dépendent du niveau dans l’architecture * Couplage fort Couplage faible au niveau logique Couplage faible au niveau technique ou au niveau logique : vision SCA PERIMETRE STABLE ISOLATION DE CHAQUE IMPLEMENTATION DE SERVICE Layer 1: Operational Systems Layer. This layer contains existing systems or applications including existing CRM and ERP packaged applications, legacy applications and “older” object- oriented system implementations as well as business intelligence applications. Layer 2: Components Layer. This is the layer of Service Components that are responsible for realizing the functionality and maintaining the quality of service of the exposed services. They are responsible for ensuring conformance to service level agreements through architectural best practices. high-availability, load-balancing, etc. Layer 3: Services Layer. Exposed services reside in this layer; they can be “discovered” and invoked, or possibly choreographed into a composition. Thus the components provide services through their interfaces. Layer 4: Business Process Composition Layer. Compositions and choreographies of services exposed in layer 3 are defined in this layer. This evolution of service composition into flows, or choreographies of services bundled into a flow, act together as an application. These applications support specific use cases and business processes. Ex: (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

e-store : Couches (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA AccountController CartController Presentation Layer Category Check out Create Account Default Error Help Item Details Items My Account Edit Account Order Billing Order Process Order Shipping SignOut Shopping Cart Search SignIn Business Logic Layer Account Cart Inventory Item OrderInsert OrderRead Product Profile Data Access Layer IAccount IInventory IItem IOrder IProduct IProfile (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

e-store : Domaines Customer Catalog Shopping Presentation Layer Category Check out Create Account Default Error Help Item Details Items My Account Edit Account Order Billing Order Process Order Shipping SignOut Shopping Cart Search SignIn Billing Inventory Business Logic Layer Account Cart Inventory Item OrderInsert OrderRead Product Profile 1.0 1.1 1.2 1.0 2.0 3.5 10.0 11.2 11.5 5.1 5.2 5.3 1.0 6.0 7.0 Data Access Layer IAccount IInventory IItem IOrder IProduct IProfile (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

e-store : Domaines Customer Catalog Inventory Shopping Billing Presentation Layer Business Logic Layer Data Access Layer Customer Catalog Inventory Shopping Billing (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

e-store : Services Manage Customer Show Catalog Make Inventory Shop Presentation Layer Business Logic Layer Service Layer Manage Customer Show Catalog Make Inventory Shop Bill Data Access Layer (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Bénéfices métier Améliorer l’agilité et la flexibilité du métier Faciliter la gestion des processus métier Offrir la capacité à casser les barrières organisationnelles (silos) Réduire en temps le cycle de développement des produits Améliorer le retour sur investissement Accroître les opportunités de revenu (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Bénéfices techniques Réduire la complexité de la solution Construire les services une seule fois et les utiliser fréquemment Garantir une intégration standardisée et le support de clients hétérogènes Faciliter la maintenabilité (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quels sont les éléments clé d’une architecture orientée services ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Points clés de l’architecture 1.a Search for service 1.b Return contract Repository Service consumer Contract 2.a Create a process instance Mediation layer/Service bus 2.d Send request 2.b Execute process 2.c Retrieve service end-point Service provider Business service orchestrator Registry Business process description (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Standards de l’architecture Les standards sont un élément clé d’une SOA, ils assurent l’interopérabilité SOAP W3C Simple Object Access Protocol WSDL W3C Web Services Description Language UDDI Microsoft, IBM, HP Universal Description Discovery and Integration BPEL Oasis Business Process Execution Language Transporte Décrit le contrat Spec pour Repository/Registry Décrit les processus métier Les trois piliers des Services Web (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

SOA et web services Attention à ne pas confondre les 2 ! SOA est un ensemble de concepts : Une SOA peut se mettre en œuvre sans Web Services Les WS sont de l’ordre de la technologie : On peut utiliser les Web Services sans faire de SOA Les WS constituent la meilleure solution standardisée disponible Un service métier = un webservice (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Le langage BPEL Standard de l’OASIS Norme permettant de décrire des processus en XML Propose les fonctions basiques d’un langage de programmation: sequence, flow, loop, switch… Identification des Instances de Process Gestion des transactions longue durée (scope, compensation)‏ Gestion des fautes (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

BPEL le chef d’orchestre (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

BPEL par l’exemple loan.bpel flow PartnerLink <PartnerLink> references to the services participating in the process flow <invoke> a credit rating service synchronously <faultHandlers> catch and manage exceptions when customer has a bad credit history <flow> initiates asynchronous loan processors in parallel of execution <receive> asynchronous callbacks from longrunning loan processors <switch> to the lowest loan offer loan.bpel (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quelques détails sur le langage BPEL Transparents 52 -> 67 de http://arcad.essi.fr/riveill.old/enseignement/2007- 08/SAR02/SAR%2002%20bpel.pdf (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

ESB : couche de médiation C’est le point d’entrée vers un service => invocation indirecte du service au travers du bus Ce point d’entrée doit être normalisé mais on ne sait pas qui fournit le service et comment il le fournit (implémentation). Infrastructure qui optimise les échanges entre consommateurs et fournisseurs de services. Il peut prendre en charge : Routage transformation des données transactions, sécurité, qualité de service, … Ex: voir http://petals.ow2.org/what-is-petals-esb.html Le but d’un ESB est de permettre de communiquer de manière simple et standardisée entre des applications hétérogènes (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quelques manières d’implémenter un ESB Intergiciels de type MOM (Message Oriented Middleware)‏ Intergiciels de type Bus (CORBA par exemple)‏ Intergiciels de type EAI (Message Broker avec connecteurs propriétaires liés au moteur d’intégration)‏ Routeurs Web services tel que WebSphere Web Services Gateway Selon le type d’implémentation retenu, l’ESB assurera plus ou moins de “services” : le choix dépend des besoins L’ESB n’est pas obligatoire : mais il est fortement recommandé pour éviter le couplage entre fournisseur et consommateur (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Exemples d’architecture techniques se basant ou pas sur un ESB Avec ESB Sans ESB Plusieurs connecteurs Orchestration importante Transactions conséquentes Communications initiées par les applications seront donc homogènes Pas d‘orchestration, parce que pas d’intermédiaire: invocations de services directement pilotées par le code Peu de transactions, ou alors les gérer “à la main” (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Intégration applicative via un bus JBI Dans cet exemple, hormis le BPEL process, tous les autres éléments applicatifs sont des services externes au bus. Mais, par ex. un élément pourrait être un autre BPEL process ou un composant EJB, ou autre, déployé DANS le bus, et vu comme un service interne. Mais, est un composant applicatif (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Specification JBI pour ESB (ouvert) BC et SE peuvent se rajouter (et s’enregistrer) sur le bus dynamiquement (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quel est le cycle de vie d’un service ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Découpage du cycle de vie d’un service 4 grandes phases : Identification Spécification Développement Gestion 1 aspect tranversal : la gouvernance Les architectures orientées service impliquent une vision globale La gouvernance permet de casser les silos de l’entreprise (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Cycle de vie des services Candidate Consumers Identified Search for Existing Implementation Service Identification Service Owner Approval Service Identified Service reusability Commission yes no exists? Provider Interfaces Documented Service/Process Workflow Created Service Specification Created Service Specification Review Service Specification Develop Components Integrate & Test Create Deployment Unit Code in repository Acceptance Test Service Development Monitor service Certify Service Plan New Version Deprecate Service Decommission Service Service Management Service in use Service in registry (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

La gouvernance en quelques questions Qui définit et modifie les services ? Qui peut y accéder ? Quelle est la qualité que les services doivent offrir ? Qui paie pour ces services ? Qui est responsable de l’infrastructure ? Qui gère les interdépendances entre les services ? Comment exposer les services aux entreprises partenaires ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Cycle de vie des services (activités de gouvernance)‏ Candidate Consumers Identified Search for Existing Implementation Service Identification Service Owner Approval Service Identified Service reusability Commission yes no exists? Provider Interfaces Documented Service/Process Workflow Created Service Specification Created Service Specification Review Service Specification Develop Components Integrate & Test Create Deployment Unit Code in repository Acceptance Test Service Development Monitor service Certify Service Plan New Version Deprecate Service Decommission Service Service Management Service in use Service in registry (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Rôles associés au cycle de vie des services Identification Analyste métier Spécification Architecte Définit les processus métiers et les KPI associées Identification des services métier Optimise les processus via la simulation Définit les services pour les use cases Modélise les services Développement Intégrateur Développement Développeur Assemble les services Implémente les services Gestion Gestionnaire Publie les services Gère le cycle de vie des services Contrôle la qualité de service (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Zoom sur la phase d’identification Un des problèmes centraux pour mettre en œuvre une SOA La granularité des services est fondamentale détermine en grande partie la réutilisabilité des services Or succès SOA = % de réutilisation des services Éviter une granularité trop fine qui entraîne : beaucoup d’interactions des problèmes de performance On recommande des services à “gros grain” attention à une granularité trop “épaisse” un service qui fait trop de chose, risque de ne pas être réutilisable Trouver le juste milieu (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

2 méthodes d’identification des services Une première phase d'indentification doit être effectuée sur l'ensemble du SI dans le cadre de son urbanisation en s'appuyant sur la cartographie des domaines métiers de l'entreprise et sur le code existant Approche incrémentale : une phase d'identification est nécessaire au démarrage de chaque nouveau projet SOA en s'appuyant sur les processus et services répertoriés précédemment Approche Bottom-up : On part des briques informatiques, on rassemble les bouts (abstraction)‏ Réalisée généralement par la MOE Plus adéquat pour réutiliser l’existant non “SOA-isé”‏ Approche Top-down : On part des interactions métier pour aboutir aux interactions techniques Réalisée généralement par la MOA Plus adéquat pour démarrer un nouveau projet (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Approche “Bottom Up” Besoins Legacy applications Diagrammes d'activités Décomposition du diagramme de classes Orchestration Specification des services Nouveaux Services + services réutilisables (l'existant)‏ Nouvelle application (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Approche “Top Down” Besoins Analyse des domaines métiers Décomposition du processus métier Orchestration Specification des services Nouveaux Services + services réutilisables (l'existant)‏ Nouvelle application (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Méthode Orchestra - Cartographie Ex : Produits bancaires Pas plus de 12 classes par catégorie (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Méthode Orchestra - services Ex : Produits bancaires Client findClient findProduit Portefeuille createProduit findProduit Devis createDevis suspendDevis findClient findProduit createProposition Encaissement evaluateRisque findClient Produit findCondGProduit Customer Profile (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Méthode IBM SOMA : cartographie des domaines métiers Component Business Model (CBM) – ex : Location de véhicules Marketing & Customer Mgt. Products Rentals management Rental Fleet Logistics Business Administration Direct Customer Segmentation Rental Product Strategy Location & Channel Strategy Fleet Strategy Corporate / LOB Strategy Product Development / Design Location Design & Layout Customer Relationship Strategy Fleet Planning Financial Management & Planning Channel Design & Layout Marketing Strategy & Planning OEM Relationship Planning Real Estate Planning Control Customer Behavior Modeling Promotions Management Channel & Location Profitability Alliance Management OEM Performance Management Business Performance Reporting Market & Competitor Research Location Operations Management In-bound Logistics Legal & Regulatory Compliance Segmentation Management Pricing Management Reservations Management Real Estate & Construction Management Call Center Risk Management Workforce Management Stock Ledger Campaign Management HR Management (Career Dev., Training, Recruiting)‏ Execute HR Administration / Payroll Customer Service Purchasing / Sourcing Rentals & Reservations Location Operations Corporate Audit Preferred Member Mgmt Demand Forecasting Fleet Servicing Corporate Accounting (GL, AP, A/R, Treasury, etc.)‏ Time & Attendance Customer Communications Fleet Management Indirect Procurement Mass Marketing & Advertising PR & Investor Relations Target Marketing IT Systems & Operations (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Méthode IBM SOMA : décomposition des processus métiers Ex : Location de véhicules On s'arrête au troisième niveau (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Méthode IBM SOMA : identification des services Ex : Location de véhicules Rental &Reservations Fleet Management Promotions Customer Service Functional Area Marketing & Products Rental Fleet Logistics Rentals Domain Rentals & Reservations Vehicle Availability Reserve Vehicle Check Rates Check-In Vehicle Check-Out Vehicle Customer Profile Location Promotions Location Information Rent Vehicle (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Approche “Outside in” Dans la pratique on utilise rarement une seule approche Pour obtenir une granularité pertinente des services, il est nécessaire de concilier les 2 Faire l’analyse Top-down sans se préoccuper de l’existant Faire l’analyse Buttom-up en ne considérant que l’existant Comparer les services “remontés” avec ceux déduits des processus Faire les compromis nécessaires pour réutiliser le maximum de code (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Zoom sur la phase de spécification Les services identifiés ne doivent pas être tous publiés : Chaque service a un coût et un risque Il faut éviter la prolifération des services Le “Service Litmus Test” d'IBM aide à trouver les “bons” services à exposer (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quelques critères d' “exposabilité” Le potentiel d'un service est d'autant plus important qu'il : permet d'automatiser un processus métier critique est réutilisable par plusieurs domaines métiers remplace une application désuette supporte des besoins non fonctionnels (sécurité, logging, monitoring, ...)‏ Les services non exposés (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Location de véhicules : services exposés (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Exemple : quels sont les services exposables ? A basic calculator for performing simple arithmetic operations (+, -, *, /) A printing application, shared by multiple applications, running in multiple environments A credit card authorization application A Database lookup that returns application-specific data A composite database lookup for customer information, searching across multiple databases (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quelles méthodes et outils permettent de mettre en oeuvre une architecture orientée services ? (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Méthodes de conception des services SOMA (IBM)‏ SODA (De Gamma)‏ Praxeme (Unilog Management et Orchestra Networks)‏ + toutes les formations proposées par les éditeurs tels que Softeam (SEA), DreamSoft, etc sur leur “savoir-faire” Autant d’offres que de méthodes différentes : de quoi s’y perdre ! (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Modeleurs de processus Outils de modélisation des processus métier IBM WebSphere Business Modeler Bull Bonita De Gamma BPM MEGA Aris Corporate Modeler WinDesign Power AMC Popkin System Architecture (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA 71

Moteurs d’exécution de processus Plate-forme d’intégration IBM Websphere Process Server BEA Weblogic Integrator/Acqualogic Microsoft Biztalk De Gamma Workflow Oracle BPEL PM Bull Orchestra SAP “Netweaver” Apache ODE ESB IBM Websphere ESB Celtix hosted on ObjectWeb/IONA Technologies OpenESB (java.net)‏ Mule (codehaus.org)‏ Sonic ESB EBM Web Sourcing Distributed Petals Bus (on OW2) (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Contrôleurs/moniteurs BAM (Business Activity Monitoring)‏ IBM WebSphere Business Monitor Oracle BAM Systar Business Bridge BMC Service Impact Manager Composants de sécurité Oracle Web Service Manager Oblix (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA 73

Exemple: Gamme d'outils IBM couvrant le cycle de vie complet Business Analyst Service Architect WebSphere Business Modeler Rational Software Architect Service Specification Developer BPEL WSDL Integration Developer WebSphere Integration Developer Rational Application Developer KPIs Service Development WebSphere Service Repository & Registry Service Registrar Governance Manager Performance Manager Business Analyst Server Administrator WebSphere Business Monitor WebSphere Process Server WebSphere ESB WebSphere Business Services Fabric Service execution & Management (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Conclusions (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Du déjà vu ? SOA est une évolution des plate-forme passées, tout en préservant les caractéristiques réussies des architectures traditionnelles Contractualisation des services Design by Contract (Meyer)‏ Découplage Interface/Implémentation, interopérabilité, transparence des communications, … Middlewares à la CORBA Découplage fournisseur/comsommateur Message Oriented Middleware (MOM)‏ Orchestration des services Travaux autour des workflows, langages de coordination SOA est une évolution plutôt qu’une révolution (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Chronique d’une évolution services * objets * Langages procéduraux Assembleur Langages machine composants services 01011 10100 11000 Niveaux d’abstraction grandissant (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Synthèse Depuis… …Vers… Orienté processus Conçu pour changer Développement et déploiement interactif Orienté fonctionnalités Conçu pour durer Cycle de développement long Silos applicatifs Couplage fort Orienté Objet Orchestration de Services Couplage faible Orienté message (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Avantages et inconvénients Architecture adaptative Réutilisation du code Utilisation de standards Productivité accrue Manque de maturité des standards Lenteur d’exécution Difficile à effectivement implémenter Encore peu de chose sur la contractualisation (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA 79

Paradoxe des principes fondamentaux Utilisation de standards MAIS un standard reste un standard tant que tout le monde l’utilise (cf CORBA)‏ La course à la spécification fait rage le W3C et l’OASIS se font la guerre Spec des processus Spec sur la sécurité … Pas de remise en cause de l’existant lors d’évolutions technologiques MAIS les vendeurs nous asservissent toujours avec leurs suites d’outils (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Paradoxe des principes fondamentaux Découplage entre fournisseurs et consommateurs de services MAIS certains composants de services s’appellent directement au niveau du code: Couplage fort entre fournisseurs et consommateurs réintroduit par la couche IT Indépendance des ressources vis à vis de ceux qui les utilisent MAIS la gestion des données est encore peu prise en compte (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quelques références ... “Urbanisation et BPM” - Yves Caseau, DSI Bouygues Télécom, Edition Dunod SOA à la sauce IBM http://www-306.ibm.com/software/fr/soa/ SOA à la sauce Orchestra http://www.orchestranetworks.com/fr/soa/index.cfm CBM appliqué au scénario Rent-a-car http://www.research.ibm.com/journal/sj/444/cherbakov.h tml (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA

Quelques références ... Composants CCM spec http://www.omg.org/cgi-bin/doc?ptc/2002-08-03 Fractal spec (GCM spec: proactive.inria.fr) http://fractal.objectweb.org/ Service Component Architecture (SCA) http://www- 128.ibm.com/developerworks/library/specification/ws-sca/ OpenCCM http://openccm.objectweb.org/ Sofa http://dsrg.mff.cuni.cz/projects/sofa/tools/doc/comp model.html (c) 2007, Occello Audrey, SAR O2/SAR O3 SOA