Architectures Orientées Services

Slides:



Advertisements
Présentations similaires
Orchestration de Services Web
Advertisements

Projet Fin d'Etudes ASR 2006/20071 Projet Fin détudes Rugby Match Management KHAIREDDINE Mohamed Abderrahmene BOUKDHIR Walid ENCADRANTS : TACONET Chantal.
Cilia, un framework de médiation ouvert, léger, multi-personnalités
SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
La plateforme.NET 2.0 vue par le développeur Pascal Belaud Microsoft France SAGA.NET
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
Xavier Blanc Web Services Xavier Blanc
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Travaux Dirigés d'Urbanisation de Système d'information
Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Module Linitiative SCA.
Cours MIAGE « architectures orientées services » Henry Boccon-Gibod 1 Architectures Orientées Services Les Web Services.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Orchestration de Web Services Module 5 Exercice Pratique à l'usage de l'environnement.
Julien HERON.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Urbanisation des Systèmes d'Information - Henry Boccon-Gibod1 Urbanisation de système d'information PLM 4 (Product Lifecycle Management) Préoccupation.
XML - Henry Boccon-Gibod 1 XML, Langage de description Ontologie pour les nuls.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Cours MIAGE Henry Boccon-Gibod 1 XML, Extensible Mark up Language Un esperanto des langages informatiques.
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP slide 1 Cilia, un framework de médiation ouvert, léger, multi-personnalités.
TER Gestionnaires de contenu en ligne
Virtualisation dorchestration de services TER Master 1 Infomatique 4 Avril 2008 Encadrant : Philippe Collet.
Stéphanie CLAPIÉ Antoine RENARD
Les webservices Samira Silhadi-Hacid Malika Tarafi.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
TP 3-4 BD21.
Génie Documentiel Delacrétaz Jean-Marc
Urbanisation et Architecture CNAM NFE107
Le Workflow et ses outils
Introduction aux services WEB
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
JAVASERVER FACES Un framework Java pour le développement Web.
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
RDF(S)
.Net Remoting.
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Enseignant de cours : M. Bouzguenda Lotfi
LES CLIENTS WEB RICHES Tuteur : Olivier CARON LEFEBVRE Benoit
CENTRALISATION DES CANDIDATS LOCATAIRES
Cours Web Services ISIMA 3F3
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Le développement Web.
Diagramme de Déploiement
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Développement et design Web Awaves academy Stockholm 2006.
Representational State Transfer - REST
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services 17/01/2009.
Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Architectures Orientées Services Module 5 Les expressions de processus.
Introduction aux technologies des web services en Java EE
Objectifs du développement Des agendas culturels et services quotidiens de La Libre Belgique et de La Dernière Heure et proposera des services d’informations.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Transcription de la présentation:

Architectures Orientées Services Les expressions de processus d’orchestration BPEL Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Sommaire du module Rappel sur les Web services La problématique de « l’orchestration » des services sur le Web Les langages d’expression de processus BPEL4WS BPEL4People BPMN Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Retour sur les usages de Web services… Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Problématique de l’orchestration des web services Une problématique des plus ancienne… Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Problématique de l’orchestration des web services WSDL, SOAP BPEL Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPEL : Business Process Execution Language BPEL est un langage XML standard pour l’expression de procédures d’appel à des services. Il se décline en deux standards complémentaires : BPEL4WebServices Définit le langage pour l’organisation des appels aux web services. BPEL4People Définit le langage pour spécifier l’organisation des gestes des acteurs humains dans une architecture de web services. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Rappel sur la notion de services Un « web service » n’est que la description d’un service ; il ne spécifie en rien où et comment il fonctionne. Pour qu’il soit utilisable la description d’un web service doit spécifier un « binding » qui définit l’implémentation de l’appel à ce service. Le « binding » le plus fréquent est SOAP/HTTP pour appeler des services via le Web ; une autre forme de « binding » est celui de Java qui permet de définir des implémentations locales d’appel à des services. Par exemple si vous voulez écrire un web service permettant à des clients d’écrire quelque chose d’original, comme « hello world ! » vous pouvez l’écrire en java, et l’exposer comme un web service. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Option d’architecture Ordinairement BPEL est un langage de programmation coté serveur: déployé pour servir et suivre une requête venue coté client Déployé comme une sorte de Proxy commode pour un ensemble d’applications anciennes Dans les deux cas l’enchaînement typique des événements est: Le web service client demande quelque chose au serveur, via un navigateur ou un autre serveur La requête du client est reçue par le serveur de processus BPEL La requête du client est identifiée comme une nouvelle instance du processus BPEL invoqué pour le servir Le client continue à interagir avec le processus en cours avec des échanges mutuels de messages selon l’organisation du processus, jusqu’à achèvement de celui-ci L’instance du processus disparaît alors que le client achève son activité Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPEL : un langage XML de programmation Comme tout langage BPEL comporte : Des déclaration de variables (typées) Utilisant le typage de données de XML-Schema (XSD)‏ Des entrées sorties Faisant appel à des descriptions de web services WSDL Une logique d’exécution BPEL soi même L’exemple didactique qui suit montre un appel élémentaire pour un web service aussi élémentaire Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

La structure d’une expression BPEL entrées sorties Déclaration de Variables logique d’exécution Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Approche par l’exemple : « hello world » <?xml version="1.0" encoding="UTF-8"?> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:print="http://www.eclipse.org/tptp/choreography/2004/engine/Print" <import importType="http://schemas.xmlsoap.org/wsdl/" location="http://blah.wsdl" namespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" /> <partnerLinks> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="MaVariable" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>$MaVariable.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print" inputVariable="MaVariable"/> </process> Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Approche par l’exemple L’adresse du web service invoqué <?xml version="1.0" encoding="UTF-8"?> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:print="http://www.eclipse.org/tptp/choreography/2004/engine/Print" <import importType="http://schemas.xmlsoap.org/wsdl/" location="http://blah.wsdl" namespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" /> <partnerLinks> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="MaVariable" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>$MaVariable.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print" inputVariable="MaVariable"/> </process> Les PartnerLinks peuvent être vus comme les emplacements pour les objets auxquels vous vous adressez effectivement Si un web service est décrit par une ressource WSDL, un PartnerLink définit une instance du web service invoqué. Il se mappe vers un « portType » WSDL de sorte qu’à un partnerLink correspond un seul web service. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Approche par l’exemple La description d’un web service est semblable à la description de la façon dont on procède pour se faire livrer une pizza : vous appelez, donnez votre adresse, et spécifiez la ou les sortes de pizzas que vous voulez. L’élément « Partnerlink » est semblable aux Post-It ® sur lequel vous avez reporté le noms et les n° de teléphone de différents marchands de pizza… vous vous servez d’un de ces Post-It pour appeler un marchand particulier (sorte de Web Service). au numéro appelé correspond l’élément d’addresse 'endpoint ' défini dans la description WSDL ou dans la spécification BPEL, où il peut être placé dans un élément partnerLink pour appeler un autre fournisseur. <?xml version="1.0" encoding="UTF-8"?> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:print="http://www.eclipse.org/tptp/choreography/2004/engine/Print" <import importType="http://schemas.xmlsoap.org/wsdl/" location="http://blah.wsdl" namespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" /> <partnerLinks> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="MaVariable" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>$MaVariable.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print«  inputVariable="MaVariable"/> </process> Un « partnerlinks » spécifie aussi la façon dont d’autres web services s’adressent à vous. Le partner link définit ici le rôle du web service appelé. De façon symétrique, cette définition du « partnerlink » pourrait avoir un attribut ‘myRole' qui définirait le web service que cette expression BPEL implémenterait. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Approche par l’exemple Les Variables sont traitées in BPEL soit au travers des « endpoints » des web service ou par assignation. Cet exemple montre l’assignation d’une valeur littérale à la variable nommée 'MaVariable'. Dans ce cas cette variable est un message WSDL avec une partie nommée 'value‘ de type 'xsd:string' type. Il peut donc il y avoir d’autres contenus de type 'xsd:string‘ assignée à cette variable. La syntaxe '$varname' utilisée pour référencer la variable obéit au standard XPATH. Le séparateur '.' est utilisé pour spécifier la partie WSDL du message . Si cette variable ou cette partie était un complexType XSD un séparateur '/' pourrait être utilisé pour spécifier un sous élément (e.g. '$MaVariable.value/subvalue'). <?xml version="1.0" encoding="UTF-8"?> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:print="http://www.eclipse.org/tptp/choreography/2004/engine/Print" <import importType="http://schemas.xmlsoap.org/wsdl/" location="http://blah.wsdl" namespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" /> <partnerLinks> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="MaVariable" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>$MaVariable.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print" inputVariable="MaVariable"/> </process> Les Variables contiennent des données en BPEL. peuvent contenir des valeurs selon un type XSD ou un message WSDL. Dans cet exemple, la variable nommée 'MaVariable' est declarée comme un conteneur de messages WSDL de type 'print:PrintMessage'. Au lieu d’un attribut 'messageType', la variable aurait pu avoir un attribut 'type' qui aurait defini un type XSD simple ou complexe tel que 'xsd:string' ou 'xsd:integer'. Les Variables sont utilisées pour passer des paramètres en entrée et en sortie des « endpoints » de web service. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Approche par l’exemple Analogie (en Programmation) invoquer un web service est semblable à l’appel d’une fonction ou une méthode via un API ou un objet. Une différence importante est que BPEL ne contient aucune référence explicite à cet API ou cet objet. Il ne connaît que la façon de lui « parler » et un moyen d’accéder à une d’implémentation. (Dans la vraie vie) l’appel du web service est semblable à l’appel téléphonique au marchand de pizza (dont vous ne connaissez que le numéro, et dont l’adresse effective vous indiffère de même que la marque du scooter du livreur. Les éléments variables que vous transmettez sont le nombre et les sortes de pizza voulues. Le seul lien que vous avez est ce numéro qui établit la relation partnerLink is. BPEL lit ce numéro fait l’appel et passe la commande. <?xml version="1.0" encoding="UTF-8"?> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:print="http://www.eclipse.org/tptp/choreography/2004/engine/Print" <import importType="http://schemas.xmlsoap.org/wsdl/" location="http://blah.wsdl" namespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" /> <partnerLinks> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="MaVariable" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>$MaVariable.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print" inputVariable="MaVariable" /> </process> L’élément 'invoke' en BPEL s’adresse à un endpoint de web service. C’est à cet endroit que le processus passe la valeur 'Hello World' (placée dans la variable 'MaVariable') au web service 'print'. Le lien spécifié dans l’élement partnerLink indique au moteur BPEL l’adresse du web service à appeler. L’operation 'print' indique ce que vous attendez de lui et l’attribut 'inputVariable' indique que le message WSDL d’entrée vient de la variable 'MaVariable'. Ce que fait effectivement le Web service est spécifié dans le contrat WSDL.. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

contrat WSDL du service invoqué <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" xmlns:tns="http://www.eclipse.org/tptp/choreography/2004/engine/Print" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/" xmlns:java="http://schemas.xmlsoap.org/wsdl/java/" > <!– engine printout port --> <message name="PrintMessage"> <part name="value" type="xsd:string"/> </message> <portType name="Print"> <operation name="print"> <input message="tns:PrintMessage"/> </operation> </portType> <binding name="PrintPortWsifBinding" type="tns:Print"> <java:binding/> <format:typeMapping encoding="Java"  style="Java"> <format:typeMap typeName="xsd:string"  formatType="java.lang.String"/> </format:typeMapping> <java:operation methodName="print"  parameterOrder="value"/> </operation> </binding> <service> <port name="JavaPrintPort"  binding="tns:PrintPortWsifBinding"> <java:address className="org.eclipse(…)EnginePrinterPort"/> </port> </service> <partnerLinkType name="printLink"> <role name="printService" portType="tns:Print"/> </partnerLinkType> </definitions> Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPEL 4 People Les humains doivent être pris en compte dans des interactions longues Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPEL 4 People : vocabulaire Business Administrator. A person with an interest in the smooth running of all process instances of a particular process type. Generic human role. A descriptor identifying how a person interacts with the process. It includes the specific human roles such as potential owners, owners, and process initiator. Inline task. A task defined within a BPEL process either as part of a people activity or within the scope of a BPEL process so that it can be reused in different parts of the same BPEL process. Owner. A potential owner of a task becomes the owner when he or she claims the activity. People activity. A new BPEL activity that assumes that people are involved in the execution of the process activity. People links. A people link represents the group of people associated with a process or a people activity. It is evaluated at runtime using a people query. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPEL 4 People : vocabulaire People query. An expression based on an organizational model used to resolve users who take on the responsibility for a particular generic human role. People resolution. The act of identifying the people who take on the responsibility for a particular generic human role. Potential owners. People who are entitled to claim and complete an activity. This is one type of generic human role. Process initiator. A person that creates an instance of a process, either directly or indirectly. This is one type of generic human role. Process stakeholder. A person with an interest in the outcome of the process instance. This is one type of generic human role. Standalone task. A task defined outside the scope of a BPEL process, but it can be referenced and invoked from different BPEL processes. Task. An indivisible unit of work performed by a human being. Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

États d’une tâche Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

États et transitions des tâches humaines Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Formes d’implémentation d’interactions entre tâches humaines et automatiques Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Échanges de messages entre applications et humains Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Approche ergonomique BPEL n’est qu’un nouvel avatar des multiples formalisation de processus opérationnel, ( Petri, Grafcet etc…)‏ Adapté à la problématique de l’appel des web services Nécessaire et suffisant pour les adeptes du web commercial, Exigeant un minimum de culture informatique. Nécessitant une modalité d’expression graphique BPMN (Business Process Model Notation)‏ Est une notation d’expression graphique homologue d’une expression BPEL Se veut intuitif pour être adapté à la culture des adeptes du commerce électronique Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Bibliothèque des représentations graphiques des entités BPMN Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : Événements et activités Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : Tests et connexions Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : Artefacts et « lignes de nage » Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : Exemple de Workflow ordinaire Exemple de processus simple de rappel, par un web service, des questions à traiter par un groupe de travail Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : discussion Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : vote par e-mail Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

BPMN : dépouillement des votes Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod

Fin du module Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod