La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Orchestration de Services Web

Présentations similaires


Présentation au sujet: "Orchestration de Services Web"— Transcription de la présentation:

1 Orchestration de Services Web
P E L BPEL & Orchestration de Services Web Réalisé par : Najla Mannaï Mariem Touati

2 Sommaire B P E L Les services web : Présentation
Introduction Les services web : Présentation Orchestration BPEL : Business Process Execution Language Historique Le code BPEL Les caractéristiques clé Quelques moteurs BPEL Synthèse Conclusion L’avenir du BPEL Bibliographie B P E L

3 Introduction Les Services Web sont la nouvelle vague des applications web. Ce sont des applications modulaires, auto-contenues et auto-descriptives qui peuvent être publiées, localisées et invoquées depuis le web. Les services web effectuent des actions allant de simples requêtes à des processus métiers complexes. Une fois qu’un service web est déployé, d’autres applications (y compris des services web) peuvent le découvrir et l’invoquer. B P E L Une plate-forme d'orchestration s'avère nécessaire pour chaîner l’appel à plusieurs services. La solution serait d’orchestrer les services web simplement en les combinant suivant certaines spécifications afin d’assurer leurs bonnes exécutions. Des standards tels que BPML, XLANG et BPEL4WS sont conçus pour réduire la complexité requise pour orchestrer les services web.

4 Les services web B P E L Présentation

5 Les services web B P E L Présentation Définition
Un service Web est un composant logiciel représentant une fonction applicative (ou un service applicatif). Il peut être accessible depuis une autre application (un client, un serveur ou un autre service Web) à travers le réseau Internet en utilisant les protocoles de transport disponibles.   Les services Web font alors évoluer Internet vers une véritable plate-forme informatique distribuée et permettent à des systèmes hétérogènes de coopérer aisément et en toute sécurité. Client Service web B P E L

6 Les services web B P E L Présentation Pourquoi les services web?
Disposer d’un service web, c’est avant tout ouvrir son système d’information à d’autres usages, d’autres besoins et d’autres clients extérieurs Les SW permettent d’automatiser facilement les processus métiers Les SW facilitent l’interopérabilité entre systèmes et plates-formes hétérogènes Les SW facilitent l’intégration d’applications et de services Fluidifier les flux entre les applications Réduire le temps de latence sur ces flux Faciliter l’évolutivité de ces flux B P E L

7 Les services web B P E L Présentation
Les services web ont été conçus en vue de : Faciliter l'accès aux applications au sein des entreprises et entre les entreprises Avoir un accès rapide, intégré et généralisé à l’information pertinente Utiliser les composants distribués et réduire le coût de développement Dépasser les limites de RPC Simplifier l’administration des systèmes B P E L

8 Protocoles de transport Publication et Découverte
Les services web Présentation Architecture d’un service web B P E L Protocoles de transport HTTP,HTTPS,FTP,SMTP Echange de Message SOAP Publication et Découverte WSDL,UDDI Assemblage et orchestration Négociation

9 Les services web B P E L Présentation
Service web = HTTP + SOAP+ WSDL + Composants Logiciels HTTP (HyperText Transfer Proctocol) : protocole qui contrôle le transport de message via le web du protocole TCP/IP SOAP (Simple Objet Access Protocol) : définit une enveloppe de données pour le transport des messages via HTTP WSDL (Web Service Description Language) : basé sur XML, il décrit les fonctionnalités constituant l’interface d’un SW UDDI (Universal Description, Discovery and Integration) : standard qui définit un système d’annuaire permettant d’automatiser la découverte dynamique des SW existants B P E L

10 Les services web B P E L Présentation
La mise en œuvre des services web Elle se déroule en deux étapes : La publication des services : consiste à assurer la mise à disposition par l'intermédiaire d'une interface standard. permet également de prendre une partie des fonctionnalités existante, par exemple au sein d'une application propriétaire ou d'un composant Java ou .Net, et à la rendre accessible sur le réseau pour faciliter son intégration aux applications. B P E L L’orchestration des services : désigne l'assemblage et la coordination de ces services au sein d'une application d'entreprise exploitable (c’est-à-dire l’organisation des traitements et des échanges de messages du point de vue d’une application participant au processus métier)

11 Les services web B P E L Orchestration

12 Les services web B P E L Orchestration Problématique
Des processus business de plus en plus complexes Plusieurs applications Exécution en parallèle Partenaires multiples Faisant intervenir des systèmes différents J2EE/.NET Besoin d’évolution Changement de partenaires Changement de processus B P E L

13 Les services web B P E L Orchestration Définition
Le mot « orchestration » est pris du contexte de la symphonie musicale où les différents instruments musicaux devraient travailler ensemble en harmonie. L’orchestration revient à faire correspondre à chaque processus métier un ensemble de scénarios d'enchaînement de services Web, en fonction de la logique applicative à mettre en œuvre tout en assurant: La succession des tâches Le contrôle de la bonne exécution Les reprises en cas d’incident… B P E L

14 B P E L Orchestration Qu’est-ce qu’un processus métier ?
Les services web Orchestration Qu’est-ce qu’un processus métier ? Un processus métier décrit des interactions entre des agents (personnes, services, organisations) et des systèmes d’information (logiciels, sous-systèmes). Les différentes entités qui interagissent dans un processus donné sont les participants de ce processus. Le processus métier est déterminé par un objectif précis : produire une facture d’achat de fournitures, éditer un catalogue électronique, etc. B P E L Un processus métier, dans le domaine des services web : Repose sur la coopération entre applications participantes Peut être de courte ou de longue durée Peut échouer partiellement et déclencher des situations d’exception

15 Les services web B P E L Orchestration En quoi consiste-t-elle?
Orchestrer: Invoquer, contrôler et coordonner un ensemble d’activités afin d’en restituer une liste ordonnée d’appels de services web. Correspondre à chaque processus métier un ensemble de scénarios d’enchaînement de services Web Prendre en charge l’assemblage des services, la conservation des enchaînement des services web découverts, leur synchronisation

16 Les services web B P E L Orchestration Les Possibilités qu’elle offre
Interopérabilité Séparer la logique processus de la logique application Applications Business changent très peu Possibilité de changer le processus sans impact sur les applications Agilité de l’entreprise Présenter le processus comme un service Invisible pour l’utilisateur Gestion de la sécurité B P E L

17 Implémentation privée A Implémentation privée B
Les services web Orchestration Utilisations possibles Processus intra entreprise : Processus inter services Processus inter systèmes Etc.… Processus inter entreprise : Relations fournisseurs Grande distribution Administrations Combinaison Interface publique ebXML, WSDL… Entreprise A Entreprise B Implémentation privée A Implémentation privée B B P E L

18 Les services web B P E L Orchestration Description (1)
La représentation de l’orchestration d’un ensemble d’activités doit en restituer à la fois: Des données statiques en une liste ordonnée d’appels de services Web telles que la définition des acteurs et leur rôle. Des données dynamiques qui s’intéressent à la description des états et transitions, du modèle, d’instanciation et de l’état d’instanciation.

19 Les services web B P E L Orchestration Description (2)
L’orchestration présente deux cotés : Un côté technologique pour lequel il existe les spécifications relatives à l’orchestration des services Web. Les plus connus sont le WSFL (Web services Flow Language) et le XLANG (eXtensible LANGuage). Un côté ‘Business’ où le concept de l’orchestration des services métiers BSO (Business Services Orchestration), est une méthode pour diriger les services métiers créés. Une solution BSO peut utiliser des standards d’orchestration comme WSFL, XLANG ou potentiellement WSCI.

20 Les services web B P E L Orchestration
Les principaux rôles de l’orchestration(1) Gestion de contexte : La fonction d’orchestration prend en charge la conservation de certaines données qui sont nécessaires tout au long de la durée de vie d’un enchaînement. Il peut s’agir de mémoriser un résultat qui est réutilisé plus tard dans l’orchestration. Les données mémorisées forment un contexte. Gestion transactionnelle : Les éléments assemblés lors de l’orchestration peuvent émettre des mises à jour dans les bases de données. Puisque ces éléments ne se connaissent pas entre eux, ils sont incapables de se synchroniser. C’est la fonction d’orchestration qui prend en charge la gestion d’une unité transactionnelle globale. B P E L

21 Les services web B P E L Orchestration
Les principaux rôles de l’orchestration(2) Gestion de la logique applicative : Elle contient la logique fonctionnelle d’assemblage des éléments et uniquement cette logique. Les règles métiers restent localisées dans les éléments assemblés. C’est en quelques sortes, la partie « workflow » de la fonction d’orchestration. Gestion des traitements interactifs : La fonction d’orchestration s’appuie sur un framework technique de type MVC (Modèle Vue Contrôleur) spécialisé dans la gestion des conversations interactives. B P E L

22 Les services web B P E L Orchestration
Les approches de l’orchestration Les plates-formes d'orchestration proviennent de divers horizons EAI, BPM, services web, etc et proposent donc des approches parfois différentes. L’approche EAI (Enterprise Application Integration): mis dans le contexte de réutilisation des applications d’entreprise existantes, l’EAI tente de fournir des moyens permettant, de manière assez simple, de connecter des applications existantes ou à venir dans l’objectif de construire une application globale L’approche BPM (Business Process Management): elle permet de faciliter la modélisation et l'orchestration des services Web puisqu’ils sont utilisés comme des processus métiers au sein des offres d'intégration d'applications d'entreprise (EAI). B P E L

23 Les services web B P E L Orchestration Les apports du BPM
Un système informatique de BPM permet la conception, l'analyse, l'optimisation et l'automatisation des processus métiers. Pour y parvenir: Il sépare la logique du processus des applications qui soutiennent le processus Il gère les relations entre les différents intervenants Il intègre les ressources internes et externes de l'entreprise nécessaires pour le déroulement du processus Il surveille le déroulement du processus pour en tirer une analyse des performances qui serviront à le faire évoluer. Le BPM couvre tout le cycle de vie du processus d’entreprise. Les outils de BPM jouent, dans ce cadre, un rôle primordial dans l'orchestration des processus métier. B P E L

24 Les services web B P E L Orchestration
Les standards de l’orchestration B P E L Les standards de l’orchestration peuvent simplifier la création des processus métier en impliquant les services web. Les modèles transactionnels : BPML (Business Process Modelling Language) WSCI (Web Services Choreography Interface) Les modèles du workflow : XLANG (XML Business Process Language) WSFL (Web Services Flow Language) BPEL4WS (Business Process Execution Language for Web Services) WSFL, XLANG et BPEL4WS incarnent une vision des processus métier relativement statique, inspirée du domaine du workflow.

25 Les services web B P E L Orchestration
Relations entre les standards de l’orchestration : B P E L Présentent beaucoup plus de support pour la chorégraphie et bénéficient du soutien W3C working group A plus d’adeptes grâce à des outils de développement divers et à une riche documentation

26 Les services web B P E L Orchestration Outils d’orchestration
Les outils d'orchestration agissent comme des tours de contrôle qui appellent successivement différents services Web selon un scénario donné. Les outils de développement de scénario et d'orchestration sont donc indissociables pour le moment. Seul le support des projets de standards tels que BPEL4WS et/ou BPML garantit un minimum de portabilité. Certains éditeurs, comme Collaxa, sont également capables d'assembler nativement des technologies hétérogènes au sein du scénario comme des files de messages JMS, des EJB, etc. B P E L

27 Les services web B P E L Orchestration Conclusion
La mise en oeuvre, l'exécution et la gestion de la logique d'orchestration se révèlent complexes et impliquent un ensemble de besoin en terme d'infrastructure. Cette situation a nécessité la création du standard BPEL et de l'infrastructure logicielle qui la soutient afin d'assurer la prise en charge de la définition et de l'implémentation des processus d'intégration. La création de cette infrastructure logicielle doit s'articuler entièrement autour des services Web et de BPEL et doit prendre en charge la conception et l'exécution natives des processus BPEL, et ce, d'autant plus, si la portabilité et l'indépendance vis-à-vis des fournisseurs est l'un des objectifs de l'entreprise. B P E L

28 B P E L BPEL : Business Process Execution language

29 BPEL : Business Process Execution language
Historique Par le passé, les web services pouvaient communiquer l’un avec l’autre et être découverts et invoqués en utilisant des spécifications standards. Sauf que, corréler ces services ensemble en un processus métier générait beaucoup de conflits comme c’était le cas avec WSFL(d’IBM) et XLANG(de Microsoft). B P E L Le standard BPEL4WS de services Web: proposé par Microsoft, IBM et BEA Systems, né courant 2002 au sein d'une troisième infrastructure (BPMI). représente la fusion des deux standards auparavant rivaux : WSFL et XLANG Une implémentation initiale de BPEL4WS appelée BPWS4J a aussi été publiée par IBM via alphaWorks.

30 BPEL : Business Process Execution language
XLANG (Microsoft) Langage XML de spécification de l’automatisation des processus métier fondés sur des services web utilisé dans Biztalk Server (début 2001). Lien très fort avec WSDL Processus XLANG = orchestration de Web Services invoqués séquentiellement ou en parallèle Service XLANG = Service WSDL + extension décrivant le comportement comme succession d’échanges de messages Séparer la « description du processus » de son implémentation Orchestration des activités (sequence, switch, pick, all,while…) B P E L

31 BPEL : Business Process Execution language
WSFL (IBM) Spécification proposée en mai 2001 par une équipe d’IBM Définit un langage de description de compositions de services web. ■ S’appuie sur la spécification WSDL Très similaire à XLANG... Processus = orchestration de Web Services Processus est un Web Service ... mais avec extensions Transfert & transformation des données Détermination dynamique des participants B P E L

32 BPEL : Business Process Execution language
Évolution dans le temps B P E L

33 BPEL : Business Process Execution Language
Présentation de BPEL4WS BPEL4WS : Business Process Execution Language for Web Services Standard OASIS (Organization for the Advancement of Structured Informations Standards) Objectif : ”Orchestrer” l’appel vers des services web Approche ”workflows” des services web Langage XML S’appuie sur WSDL Fonctions basiques d’un langage de programmation (sequence, flow, loop, switch…) Identification des Instances de Process (correlation) Gestion des transactions longue durée (scope,compensation) Gestion des fautes B P E L

34 BPEL : Business Process Execution language
Rappel 1: WSDL Le langage WSDL est une syntaxe XML utilisée pour définir l'interface générale des services web. Il permet en plus de définir le format des objets, quel que soit le protocole (SOAP, XML) ou le codage (MIME) utilisé par ces objets spécifiques à chaque système. B P E L Cette définition intègre les composants fondamentaux suivants : Informations sur toutes les fonctions disponibles publiquement Définitions abstraites des données à transmettre Informations sur le type de données pour tous les messages XML Informations obligatoires sur le protocole de transfert à utiliser spécifiquement Informations de type Adresse pour localiser le service à spécifier

35 BPEL : Business Process Execution language
Rappel 2: Workflow Workflow = automatisation d’une procédure durant laquelle des documents, des informations ou des tâches sont échangées entre des participants. – Première idée : circulation de documents (automatisation de processus). Utilisation des workflows (Traitements d’images, E-Commerce, Supply chain…) B P E L

36 BPEL : Business Process Execution language
D’un point de vue technique (1) BPEL permet aux entreprises de normaliser l'orchestration et l'exécution des processus métier. BPEL  est  un langage XML  standard définissant comment : Envoyer des messages SOAP-XML à des services distants Manipuler les structures de données XML Recevoir en mode asynchrone des messages SOAP-XML de la part de services distants Gérer des événements et des exceptions Définir des séquences d'exécution parallèles Annuler certaines parties des processus lorsque des exceptions surviennent. B P E L Ces opérations constituent les fondations requises pour organiser un ensemble de services en processus métier collaboratifs et transactionnels.

37 BPEL : Business Process Execution language
BPEL et les processus métier BPEL définit une notation pour spécifier le comportement des processus métier basés sur les services web. En utilisant BPEL, un programmeur peut décrire formellement un processus métier qui s’exécute dans un environnement web de telle façon que toutes les entités qui coopèrent puissent, de la même manière, exécuter une ou plusieurs étapes dans un même processus. B P E L EXEMPLE : Dans un processus de supply chain, un programme BPEL pourrait décrire un protocole métier qui formalise quelles informations constituent une commande produits, et quelles exceptions doivent être traitées. Cependant , un programme BPEL ne pourrait pas spécifier comment un service web doit procéder pour traiter une commande interne.

38 BPEL : Business Process Execution language
D’un point de vue technique (2) Pour fonctionner, BPEL4WS s'adosse à deux éléments d'infrastructure : WS-Transaction: conçu pour garantir l'intégrité des transactions entre deux services, c’est-à-dire gérer le déroulement des tâches et garantir que toutes les transactions aboutissent ou échouent en groupe. WS-Coordination: précise la manière de coordonner un Service Web avec le monde extérieur, assure la communication entre les services Web composant une tâche et décrit leur interaction. Il a pour but d'expliciter l'ensemble des fonctions nécessaires à l'invocation du composant en question. B P E L

39 BPEL : Business Process Execution language
Exemple de code en BPEL B P E L

40 BPEL : Business Process Execution language
Le modèle BPEL (1) Composé de 4 parties principales : La section <variables> : Définit les variables utilisées lors du processus <variables> <variable name="input"messageType="tns:SyncHelloWorldRequestMessage"/> <variable name="output"messageType="tns:SyncHelloWorldResponseMessage"/> </variables> La section <partnerLinks> : Définit les différentes parties qui interviennent dans le processus <partnerLinks> <partnerLink name="client" partnerLinkType="tns:SyncHelloWorld" myRole="SyncHelloWorldProvider"/> </partnerLinks> B P E L

41 BPEL : Business Process Execution language
Le modèle BPEL (2) La section <sequence> : Définit une suite d’activités <sequence name="main"> <receive name="receiveInput" partnerLink="client"portType="tns:SyncHelloWorld" operation="process" variable="input"createInstance="yes"/> <reply name="replyOutput"partnerLink="client"portType="tns:SyncHelloWorld" operation="process"variable="output"/> </sequence> La section <faultHandlers> : Définit le comportement à prendre en cas d’erreur B P E L

42 BPEL : Business Process Execution language
Les types d’activités (1) L’activité <Assign> : Utilisée pour mettre à jour les valeurs des variables. <assign name="variable"> <copy> <from expression=""100""></from> <to variable="output" part="payload"/> </copy> </assign> L’activité <Invoke> : Envoi de message à sens unique ou d’une requête à un partenaire. L’activité <Scope> : Définition d’une activité imbriquée à ses gestionnaires d’anomalie et de compensation B P E L

43 BPEL : Business Process Execution language
Les types d’activités (2) L’activité <Receive> : Activité d’attente d’un message <receive name="receiveInput" partnerLink="client" portType="tns:Insat"  operation="process" variable="input"createInstance="yes"/> L’activité <Reply> : Envoi d’un message en réponse à une Receive Activity. <reply name="replyOutput"  partnerLink="client" portType="tns:Insat"  operation="process" variable="output"/> B P E L

44 BPEL : Business Process Execution language
Les types d’activités (3) L’activité <Sequence> : Bloc d’activités à exécuter en séquence. L’activité <Flow> : Bloc d’activités à exécuter en parallèle. L’activité <Switch> : Sélection d’une activité à exécuter parmi un ensemble. L’activité <While> : Boucle d’exécution d’une activité tant qu’une condition est vérifiée. L’activité <Pick> : Attente bloquante d’un message, d’un partenaire ou de l’expiration d’un délai. L’activité <Compensate> : Invocation d’une compensation sur une activité imbriquée (scope) qui a terminé son exécution normalement. B P E L

45 BPEL : Business Process Execution language
Les caractéristiques clé Support des activités structurées et de base Modélisation de partenaires pour les rôles Identificateurs conteneurs et corrélateurs pour assurer la persistance Support des transactions pour la compensation avec la balise <scope> B P E L Dans la figure ci-dessous, les messages <receive>, <reply>, et <invoke> représentent tous des activités de base pour connecter les services entre eux.

46 BPEL : Business Process Execution language
BPEL4WS process flow B P E L

47 BPEL : Business Process Execution language
Quelques moteurs BPEL Biztalk Server : La troisième génération de moteurs de messagerie et d’orchestration de Microsoft est désormais accommodée à BPEL. Dans le passé, le produit était basé sur la grammaire XLANG. Collaxa BPEL Orchestration Server : un moteur BPEL complet roulant sur un serveur d’application J2EE (Oracle Corporation s’est récemment approprié ce produit.) Version 2 a un GUI Designer pour BPEL au niveau d’ Eclipse et du JDeveloper IDE d’Oracle. Parasoft BPEL Maestro: un moteur BPEL qui est doté d’un éditeur graphique. Oracle BPEL Process Manager: un moteur BPEL roulant sur un serveur d’application Oracle. B P E L

48 BPEL : Business Process Execution language
Exemple: Oracle BPEL Process Manager Oracle BPEL Process Manager fournit une solution fiable et conviviale pour le design, le déploiement et la gestion des processus métier BPEL. BPEL Designer fournit un moyen graphique et convivial pour construire un processus BPEL. Ce qui le rend unique en son genre c’est qu’il utilise BPEL avec son format d’origine  Les processus construits avec le designer sont 100% portables. Core BPEL engine fournit l’implémentation de serveur BPEL la plus mature et robuste disponible de nos jours. Oracle BPEL Process Manager exécute des processus BPEL standards. BPEL Console fournit une interface basée sur le web pour la gestion, l’administration et le débogage des processus déployés pour le serveur BPEL. B P E L

49 BPEL : Business Process Execution language
Architecture B P E L

50 BPEL : Business Process Execution language
Synthèse La spécification de BPEL4WS modélise le comportement des services Web dans une interaction de processus d’affaires. Elle fournit un vocabulaire basé sur XML précisant la manière d'enchaîner ou de coordonner plusieurs services Web au sein d'un processus. Par la suite, ce vocabulaire peut être interprété et exécuté par un outil d’orchestration, contrôlé par l’un des participants. Cet outil va coordonner les différentes activités du processus et compenser le système en cas d’erreur. Ainsi, ce langage définit également des gestions pour les événements (messages, alarmes), les fautes, des exceptions et les compensations. B P E L

51 BPEL : Business Process Execution language
Conclusion BPEL4WS a de grandes chances de devenir un standard répandu pour la composition de services. Avantages : On devrait être en mesure d'exécuter le même scénario BPEL4WS sur .NET et J2EE sans avoir à le modifier Actuellement implémenté sur Collaxa Orchestration Server Gère des compensations et des exceptions Inconvénients : Ne supporte pas la définition des procédés imbriqués N’offre pas des droits gratuits d’utilisations B P E L

52 BPEL : Business Process Execution language
L’avenir du BPEL Des mécanismes explicites permettant l’extension du langage sont disponibles. Ils permettent par exemple d’augmenter la sémantique car le langage ne couvre pas certains cas pourtant incontournables dans le cadre de réalisations. On peut citer le cas des interactions avec un utilisateur humain qui ne sont pas prises en compte par BPEL4WS. B P E L

53 BPEL & Orchestration de services web
Bibliographie Sites Web : Livres : Jean Marie Chauvet, Services web avec SOAP,WSDL ,UDDI, ebXML… , édition Eyrolls, 2001, chapitre 7,12 Hubert Kadima, Valérie Monfort, Les web services : techniques, démarches et outils, edition Dunod,2003, chapitre1 Les processus métier (BPEL) B P E L

54 FIN B P E L Questions?


Télécharger ppt "Orchestration de Services Web"

Présentations similaires


Annonces Google