• Keine Ergebnisse gefunden

Workflows, Orchestration, BPM, BPEL and Cie

N/A
N/A
Protected

Academic year: 2022

Aktie "Workflows, Orchestration, BPM, BPEL and Cie"

Copied!
82
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Workflows, Orchestration, BPM, BPEL and Cie

Inspiré du Cours de Michel Riveill

Virginie Legrand

Virginie.legrand@inria.fr

Master 2 MIAGE NTDP

(2)

Plan

Workflows : définition

BPM

BPEL

(3)

Wikipedia ? Qu’est ce qu’un workflow ?

Un workflow est un flux d'informations au sein d'une organisation,

comme par exemple la transmission automatique de documents entre des personnes.

On appelle « workflow » (traduisez littéralement « flux de travail ») la modélisation et la gestion informatique de l'ensemble des tâches à accomplir et des différents acteurs impliqués dans la réalisation d'un processus métier (aussi appelé processus opérationnel ou bien procédure d'entreprise). Le terme de « workflow » pourrait donc être traduit en

français par « gestion électronique des processus métier ».

De façon plus pratique, le workflow décrit le circuit de validation, les tâches à accomplir entre les diffé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. Pour un

processus de publication en ligne par exemple, il s'agit de la modélisation des tâches de l'ensemble de la chaîne éditoriale.

Il permet généralement un suivi et identifie les acteurs en précisant leur rôle et la manière de le remplir au mieux.

Le moteur de workflow est le dispositif logiciel permettant d'exécuter une ou plusieurs définitions de workflow.

(4)

Wikipedia ? Qu’est ce que le BPM ?

business process management / pilotage de procédure d'entreprise

Définition [1] : « Une procédure d’entreprise est une procédure qui systématise l’organisation et la politique d’une entreprise dans le but d’atteindre certains des objectifs de cette entreprise. »

On peut envisager une procédure d'entreprise au sein d'une entreprise étendue : commande sur un site web marchand, puis suivi de cette commande chez le fournisseur. On parlera dans ce cas de « processus d'affaires ».

La procédure d'entreprise peut être un résultat issu de la modélisation de procédure

d'entreprise ou de l'optimisation de procédure d'entreprise (« business process reengineering

»).

« business process modeling », soit modélisation de procédure d'entreprise

modélisation de procédure d'entreprise ou modélisation de processus métier ou modélisation de processus désigne la création d'un modèle mathématique d'une procédure d'entreprise. BPM est le sigle utilisé, en référence à l'anglais « Business Process Modeling ».

Ce terme renvoie aux techniques et activités de la discipline de pilotage de procédure d'entreprise (ici BPM pour « Business Process Management »).

La distinction fondamentale entre ces deux notions de BPM réside dans le fait que pour la seconde, on s'intéresse à donner à l'Entreprise les moyens de piloter et de maîtriser ses processus-métiers, tandis que la première ne consiste qu'à les modéliser (toujours avec un objectif venant de l'extérieur : optimisation de chaîne de production, expression de besoins fonctionnels pour un développement logiciel, réorganisation suite à un rapprochement entre deux filiales d'une entreprise, par exemple).

La modélisation de processus est utilisée en gestion de la qualité pour représenter des processus, mais également pour les procédures d'entreprise et workflows avec :

le langage de modélisation de procédures (« Business Process Modeling Language » ou BPML),

la notation de modèles de procédures (« Business Process Modeling Notation

» ou BPM

(5)

Le workflow dans le detail

Un workflow est un ensemble d’activités

Coordonne les personnes des logiciels ou des composants

Matérialise un état dans un cadre très large (au delà de l’EAI et du workflow humain)

EAI

Enterprise Application Integration / Intégration d'applications d'entreprise

Architecture intergicielle permettant à des applications hétérogènes de gérer leurs échanges

Il met en relation différents participants: personnes, rôles

Il peut être flexible, dynamique

Il peut manipuler des données déstructurées comme des documents

Permet l’intégration et la coopération des logiciels

(6)

Types de workflows (1)

(7)

Types de Workflows (2)

Ex: Applications métier, supply chain

Ex: Notes de frais, tableaux de bord management Ex: approbation de

document, Demande de congés

Ex: E-mail, messageries

instantanées, liste de taches

personnelle

Participants: applis, services

Flow style: prescriptif, protocoles

Données: structurées et transactionnelles

Fixe Systeme tres

structure Humain,

Semi-structure Individuel

Ad-hoc

Workflow humain Workflow Systeme

(8)

Objectifs (1)

Intégrer des applications qui s’exécute sur des plateformes hétérogènes

Interconnections point à point entre les applications

Liaisons encodées en dur évolutions difficiles

Coordonner les exécutions

Pas facile à mettre en œuvre si pas de coordinateur, ou si absence de description de la coordination

(9)

Objectifs (2)

Intégration à base de service

Liaisons réalisées à l’exécution

Standards indépendants des plates-formes configuration flexible

Présence d’un coordonnateur

(10)

Un rappel ? Principes de la SOA ?

Selon Don Box (grand gourou… des SOAs)

Frontières explicites

Échanges de messages au lieu d’appels de méthode

Implantation invisible en dehors des limites du service

Autonomie

Topologie des services toujours en mouvement

Exposés pour être utilisés (build it and they will come)

Mise en commun de contrats, pas de classe

Interfaces structurelle et comportementale exposées séparément

Validation / vérification automatiques nécessaires

Compatibilité fondée sur des règles

Validation de la compatibilité structurelle automatisable

compatibilité sémantique exprimée par des règles (fonctions

requises / offertes)

(11)

Etude de cas

Un client désire acheter 120 potiches à Perfact Glass Inc.

(12)

Etude de cas (2)

les services concernés dans PG Inc.

Ventes

Gestion des commandes Faire devis

commande

Traiter commande

commande

Annuler commande

commande

Vérifier disponibilité

vérification stock Ordonner livraison

ordre de livraison Ordonner facturation

ordre de facturation Entrepôts & Logistique

Vérification disponibilité

vérification stock

Gestion des entrepôts

Sortir du stock

ordre de livraison Livrer

livraison

Services financiers

Gestion clientèle

Faire la facture

facturation

les services concernés chez le client

Demander devis

commande

Envoyer commande

commande

Annuler commande

commande

(13)

Etude de cas (3)

Raffinement des interactions : définition des rôles

(14)

Vocabulaire

Interface :

décrit les opérations offertes par un service

aspects structurels (par ex. WSDL)

Orchestration :

modèle privé des actions internes et des interactions d’un service

aspects comportementaux (pax ex. BPEL)

Chorégraphie :

modèle global des interactions entre des

services (deux ou plus)

(15)

Interface

Interface structurelle

Décrit les aspects structurels d’un service

Les messages reçus et envoyés

Le contenu et la structure de ces messages

Le sens (entrant / sortant) et le type de message

Peut exprimer des règles de sécurité et/ou des propriétés extra fonctionnelles

Cache les détails de l’implantation

Ne décrit pas la manière d’utiliser le service

Exemple : SGF

Create

Open

Read

Write

Close

Delete

(16)

Interfaces Structurelles

La description des messages peut parfois

suffire à comprendre le fonctionnement

(17)

Interface Comportementale

Le processus public

Décrit comment interagir avec le service

Inclut les tâches de communication entre le client et le fournisseur du service

Exprime les règles de dépendance entre les tâches

Peut exprimer des règles de gestion et/ou des propriétés extra-fonctionnelles

Peut être utilisée pour la vérification des

messages entrant et sortant

(18)

Interface comportementale du service

Ventes

(19)

Orchestration

Décrit un processus

Décrit comment le service est réalisé

Tâches de transformation

Manipulation de données

Transformation de données

Tâches internes

Appel à des applications internes

Tâches de communication avec d’autre services

Peut exprimer des règles de sécurité et/ou des propriétés extra-fonctionnelles

Intégration de composants exprimes sous la

forme de service

(20)

Orchestration du service vente

On complète l’interface

Comportementale du service

Par des actions internes

(21)

Choregraphie

Point de vue plus global

On ne s’intéresse plus à une orchestration mais à un ensemble d’orchestration liées

Description des interactions entre les services (chacun associé à un rôle)

Inclut les tâches de communication des services concernés

Exprime les règles de dépendance entre les tâches

Peut exprimer des règles de gestion et/ou des propriétés extra-fonctionnelles

outil de modélisation de collaborations

B2B

(22)

La choregraphie de l’etude de cas

(23)

Synthese

(24)

Des outils pour la conception/execution d’orchestration

Apache ODE / Eclipse

ActiveVOS ActiveBPEL + ActiveVOS Designer

BEA WebLogic Studio,

IBM WebSphere Studio,

Microsoft BizTalk 2004 / Windows workflow foundation

SAP Composite Application Framework,

Oracle BPEL Process Manager

eInsight (SeeBeyond),

Etc …

(25)

Business Process Modeling Notation

Une norme pour la représentation graphique des workflows

Plug-in eclipse : http://www.eclipse.org/stp/bpmn/

(26)

Que dit Wikipedia ?

Business Process Modeling Notation (BPMN) est une notation

graphique standardisée pour modéliser des procédures d'entreprise dans un workflow.

Business Process Modeling Notation a été développée par la Business Process Management Initiative (BPMI), et est maintenant maintenue par l'Object Management Group (OMG) depuis leur fusion en 2005.

Le but principal de BPMN est de fournir une notation qui soit réellement compréhensible par tous les utilisateurs de

l'entreprise, depuis les analystes métier qui créent les ébauches initiales des procédures, jusqu'aux développeurs responsables de mettre en place la technologie qui va exécuter ces procédures, et finalement, jusqu'aux utilisateurs de l'entreprise qui vont gérer et monitorer ces procédures.

Ainsi, BPMN crée un pont standardisé pour combler le vide entre la modélisation des procédures d'entreprise et la mise en place des

procédures. Actuellement, il y a des dizaines d'outils de modélisation et de méthodologies pour les procédures d'entreprise. BPMN améliorera les

possibilités des notations traditionnelles des procédures d'entreprise en gérant par nature les concepts de procédures B2B, comme les procédures publiques et privées et les chorégraphies, ainsi que des concepts de

modélisation avancée, comme la gestion des exceptions et la compensation des transactions

(27)

BPMN en details

BPMN

http://www.bpmn.org

Normalisé par l’OMG

BPMN fournit

des diagrammes de processus métier

Business Process Diagram (BPD)

des mécanismes formels pour la transformation dans un langage XML d’exécution de processus métier

exemple : BPEL4WS.

BPMN a été conçu uniquement pour supporter les concepts de modélisation applicable aux processus métier

Les autres types de modélisation :

règles métiers

modèles de données

structures organisationnelles,

. . . ne sont pas pris en compte par BPMN

(28)

Utilisation

BPMN a été conçu pour supporter différents types de modélisation et autorise la création de bout en bout de processus métier.

Il existe trois types basiques de modèle :

Les processus métier privés :

Ils sont internes à une organisation spécifique.

Ils sont généralement appelé workflows. Cela peut par exemple correspondre à un processus WS-BPEL.

les processus métier abstrait :

Ils représentent les interactions entre un processus métier privé et un autre processus ou participant.

les processus de collaboration :

Ils décrivent les interactions entre deux ou plusieurs

entités métier. Ces interactions sont définies comme des

séquences d’activités représentant les patrons d’échange

de message

(29)

Notation

Un BPD n’est pas conçu pour représenter graphiquement toutes les informations nécessaires à l’exécution. C’est pour cela que les éléments graphiques sont associés à un ensemble d’attributs pour ajouter des informations supplémentaires.

Afin de gérer à la fois des diagrammes faciles à comprendre et la complexité inhérente aux processus métier, les aspects

graphiques de la notation ont été regroupés en catégories facilement reconnaissables.

À l’intérieur de chaque catégorie, des éléments d’informations supplémentaires peuvent être ajoutés pour supporter la

complexité sans agrandir la représentation graphique. Les quatres catégories de bases pour la description d’un processus sont :

Les objets de gestion de flux (flow objects) ;

Les objets de connexion (Connecting objects) ;

Les objets de regroupements (Swimlane) ;

Les Artefacts (Artifacts).

(30)

Exemple

Processus de sélection des dossiers étudiants postulant à un master.

Processus instancié sur événement (réception d’un dossier)

Première activité atomique : récupérer le dossier.

En séquence, seconde activité : vérification du dossier

Ensemble de pièces nécessaires, études antérieures compatible

En séquence, trois possibilités exclusive (XOR)

(31)

Exemple

trois possibilités exclusive (XOR)

la candidature est invalide.

Dans ce cas, une lettre est rédigée expliquant le refus du dossier ;

le dossier est incomplet.

Cette activité est un sous-processus car elle comporte un certain nombre d’activités comme par exemple l’envois d’une lettre

demandant les pièces manquantes, le traitement des documents, . . . ;

le dossier est complet.

Cette activité est un sous-processus au cours duquel le dossier du candidat sera évalué par plusieurs enseignants avant de

déterminer si le candidat sera retenu sur liste principale ou complémentaire.

Ces trois cas sont ensuite réunis de manière exclusive (XOR Join).

Cela générera un envoi d’événement représentant la fin du

processus

(32)

Les objets de gestion de flux

Principaux éléments pour définir le comportement d’un

processus métier

3 types d’objets :

Les événements (Events) : début, fin par exemple

Les activités (Activity) : atomique ou composée

Les jonctions (Gateway).

Les différents éléments sont reliés entre eux par

des liaisons représentant le flux de travail, i.e.,

l’ordre d’exécution des activités.

(33)

Les evenements

Représente quelque chose qui survient au cours d’un processus

Vont affecter le déroulement d’un processus

3 trois catégories d’événements :

Départ

représentent le point d’entrée et donc le déclenchement d’un processus

Exemple : arrivée d’un « Message », activation d’une « règle ».

Intermédiaires

se produisent lors de l’exécution d’un processus

Exemple : déclenchement d’une exception

Fin

fin d’un processus et le cas échéant la manière de le terminer

Exemple : envoi de message

Représenté par un cercle, dont le style du trait définit sa catégorie (début, intermédiaire, fin).

Un symbole dans le cercle matérialise le type d’événement

Exemple : un « Message »est symbolisé par une enveloppe.

(34)

Representation des evenements

(35)

Les activites

Représentent les différentes tâches à réaliser au cours du processus métier

2 catégories :

Atomique

Représente directement une tâche

Composée

Cas des sous-processus.

Exemple : l’activité "dossier incomplet" correspond à un processus spécifique dans lequel nous allons par exemple demander à l’étudiant d’envoyer les pièces manquantes.

Les activités peuvent se répéter, comme dans le cas de boucle for ou while.

une flèche circulaire est ajoutée sur la représentation de l’activité.

les attributs associés à la représentation permettent d’indiquer les conditions de la boucle.

Possibilité d’instancier de multiples instances d’une activité.

Possibilité de créer des activités de compensation,

Activités appelé en cas de problème pour revenir dans l’état antérieur.

(36)

Representation des activites

(37)

Enchainement des activités

A l’aide de points de jonction (gateway) qui permettent d’exprimer :

Divergences (split)

Convergences (joint)

Dessinés sous la forme d’un losange

Le dessin interne au losange permet de spécialiser la jonction

OU exclusif (XOR)

Choix unique parmi au moins deux chemins possible dans le processus.

Les conditions de chaque chemin sont évaluées une à une jusqu’au moment où une condition se révèle vraie, alors les autres conditions ne sont pas évaluées

Possible de prévoir un chemin par défaut au cas où toutes les conditions se révèlent fausse.

OU inclusif (OR)

Activation de toute les activités pour lesquelles la condition est vraies

La convergence (merge) est évalué à vrai lorsque toutes les branches activées seront terminées

Et Parallèle (AND)

Permet de créer des flux parallèle

Autorise la formulation d’un ensemble de contraintes qui se révélerait difficile à exprimer avec les autres types de jonction.

Exemple : pour le merge, fin du traitement parallèle quand 3 activités sur 5 sont terminées.

(38)

Représentation des enchainements

(39)

Exemples

(40)

Les objets de connexion

Objets de connexions (connecting objects)

Permettent de relier les éléments de gestion de flux

3 moyens

Flot séquentiel (Sequence Flow)

Détermine l’ordre d’exécution des différentes activités d’un processus

3 types de flot séquentiel :

les liaisons normales

relient directement deux éléments les liaisons conditionnelles

contiennent une condition qui doit être évalué à "vrai" pour que la sortie soit activé peuvent remplacer les jonctions XOR et OR

les liaisons par défaut

représentent un chemin dans le cas d’une jonction XOR lorsque tous les autres chemins ne sont pas accessibles

Flot de message (Message Flow)

Représente les différents messages échangés entre deux entités

Exemple : échange de messages entre deux participants Association (Association)

Permet d’ajouter des informations et des artéfacts aux différents élément de gestion de flux

Exemple : des associations entre les points de jonction et un texte descriptif.

(41)

Representation des objets de connexion

(42)

Autres éléments : artefacts

Utilisés pour fournir des informations supplémentaires sur les processus

Exemple

Objets de données (Data objects)

Décrivent l’utilisation des différentes données (électronique ou non) utilisées

Généralement associés avec les objets de flux

Groupes (Group)

Fournissent un moyen de regrouper virtuellement des éléments d’un processus

Permettent de mettre en avant certaines section du BPD

Annotations (Annotation)

mécanisme qui permet au logiciel de modélisation d’ajouter des informations supplémentaires pour les lecteurs des

BPD

(43)

Autres éléments : groupe

2 manières de regrouper les éléments primaires de modélisation

Groupements (Pools)

Représente un participant dans un processus.

Voies (Lanes)

Permet de subdiviser un groupement afin

d’organiser et de

catégoriser les activités au sein d’un groupement.

Exemple : processus de candidature

Composés de 2 groupements

Étudiant

Université

composé de deux voies secrétariat

enseignant

(44)

WS BPEL

Un langage ‘ a la XML ‘

pour la programmation des workflows

Plug-in eclipse : http://www.eclipse.org/bpel/

(45)

Wikipedia (1)

Business Process Execution Language (BPEL), est un langage de description des procédures d'entreprise qui est issu des langages WSLF (Web Services Flow

Language) et XLANG. Il est sérialisé en XML et vise à rendre possible

lebprogramming in the large. Les concepts de programming in the large et programming in the small distinguent deux aspects de l'écriture de procédures

asynchrones à long terme qu'on voit généralement dans les 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.

History

IBM and Microsoft had each defined their own, fairly similar, 'programming in the large' languages, WSFL and XLANG, respectively. IBM and Microsoft decided to combine these

languages into a new language, BPEL4WS. In April 2003, BEA Systems, IBM, Microsoft, SAP and Siebel Systems submitted BPEL4WS 1.1 to OASIS for standardization via the Web

Services BPEL Technical Committee.

Although BPEL4WS appeared as both a 1.0 and 1.1 version, the OASIS WS-BPEL technical committee voted on 14 September 2004 to name their spec WS-BPEL 2.0.

This change in name was done to align BPEL with other Web Service standard naming conventions which start with WS- and accounts for the significant enhancements between BPEL4WS 1.1 and WS-BPEL 2.0. If you are not discussing a specific version, BPEL is sufficient.

In June 2007, Active Endpoints, Adobe, BEA, IBM, Oracle and SAP published the BPEL4People and WS-HumanTask specifications, which describe how human

interaction in BPEL processes can be implemented.

(46)

Wikipedia (2)

Relationship of BPEL to BPMN

There is no standard graphical notation for WS-BPEL, as the OASIS technical committee decided this was out of scope. Some vendors have invented their own notations. These notations take advantage of the fact that most constructs in BPEL are block-structured (e.g. sequence, while, pick, scope, etc.) This feature enables a direct visual representation of BPEL process descriptions in the form of structograms, in a style reminiscent of a Nassi-Shneiderman diagram.

Others have proposed to use a substantially different business process modeling language, namely Business Process Modeling Notation (BPMN), as a graphical

frontend to capture BPEL process descriptions. As an illustration of the feasibility of this approach, the BPMN specification includes an informal and partial mapping from BPMN to BPEL 1.1. A more detailed mapping of BPMN to BPEL has been implemented in a number of tools, including an open-source tool known as BPMN2BPEL. However, the development of these tools has exposed fundamental differences between BPMN and BPEL, which make it very difficult, and in some cases impossible, to generate human-readable BPEL code from BPMN models. Even more difficult is the problem of BPMN-to-BPEL round-trip engineering: generating BPEL code from BPMN diagrams and maintaining the original BPMN model and the generated BPEL code synchronized, in the sense that any modification to one is propagated to the other.

(47)

Historique

WSFL, May 2001 (IBM)

The Web Services Flow Language

XLANG, May 2001 (Microsoft)

Despite being all-caps, the name is not an acronym.

BPEL 1.0, July 2002 (BEA, IBM, Microsoft)

A merger of WSFL and XLANG.

BPEL4WS 1.1, March 2003 (BEA, IBM, Microsoft, SAP, Siebel)

The specification submitted to OASIS.

WS-BPEL 2.0, March 2007 (OASIS; 39 companies as members of the technical committee)

The first version of the "standard" blessed by a

standards organization.

(48)

BPEL en détail (1)

Business Process Execution Language

Initiative soumise à l’OASIS

Spécification d’un langage XML qui permet de décrire l’enchaînement de Web services entre plusieurs participants

Exploite et étend l’usage des documents WSDL

Chaque processus BPEL est exposé sous la forme d’un document WSDL

Il devient alors possible de construire des processus sous une forme déclarative.

En complément WS-Choreography

Spécifiée par le W3C

Permet de modéliser les interactions entre plusieurs opérations de Web services

Cette modélisation se place du point de vue « broker » c'est-à-dire au centre des

échanges entre les opérations à la différence de BPEL qui se positionne d’un point de vue d’un des participants.

BPEL s’appuie sur de nombreuses spécifications XML

XML Schema 1.0

modèle de données XPath 1.0

Support pour la manipulation des données.

WSDL 1.1

Représentation des ressources et des partenaires externes comme des services web WS-Addressing

(49)

BPEL en détails (2)

Langage de programmation impérative

séquence, alternative, itération

variable, affectation, portée des variables

gestion des exceptions

Conçu pour d´écrire l’interface comportementale et l’orchestration

processus privé exécutable (orchestration)

processus abstrait des échanges de messages avec les partenaires (interface comportementale)

Processus BPEL

Définition réutilisable

Déploiement de différentes manières

Déploiement dans différents scénarios

Comportement uniforme quelque soit la plate-forme de déploiement

Description du déploiement d’un processus BPEL est en dehors de l’objectif de la spécification.

(50)

BPEL en détails (3)

Répond aux besoins spécifiques des services Web

variables de type XML, manipulées avec Xpath/Xquery/XSLT

primitives de réception et d’envoi de messages (références dynamiques)

exécution parallèle et synchronisation de flôts

gestion d’événements

transactions imbriquées et compensation

S’appuie sur WSDL

chaque processus est exposé comme un service web (interface structurelle décrite en WSDL)

des références WSDL spécifient les appels aux services partenaires

les types WSDL décrivent les variables

indépendant de l’implantation fixée en WSDL (liaisons et

services)

(51)

BPEL permet de décrire

Tâches de communication

Envoi de messages

Réception de message

Tâches internes

Transformation / manipulation de données

Appel à des applications (services)

Règles de dépendance entre les tâches

Séquences

Choix

Synchronisation

Etc.

Boucle

8 activités en tout

(52)

Premier exemple (1)

L’interface du service BPEL en Java like

Un service BPEL est un service web

Il fournit le service bonjourBPEL

public string bonjourBPEL (string s)

Il sera décrit par un document WSDL

Généralement ce document est généré par le container qui exécute le service web

La mise en oeuvre du service BPEL

Le processus BPEL Le service WEB appelé

(53)

Premier exemple (2)

Le service web utilisé

Écrit en C#

<%@ WebService language="C#" class="Hello" %>

using System;

using System.Web.Services;

using System.Xml.Serialization;

public class Hello { [WebMethod]

public string HelloWorld (String owner) { return "Hello " + owner;

}

}

(54)

Premier example (3)

La description du processus BPEL en Java like {

receive (request) owner := request

invoke (ws, owner, helloResponse) response := retour

reply (response) }

La description BPEL est un service web particulier

Ecrit en XML

Reçoit en entrée une chaine de caractère

La transmet à un service web

Machine : http://localhost:8085

Service : Hello

Opération : HelloWorld

Reçoit en réponse une chaine de caractère qu’il transmet à l’appelant

Le service web appelé est une boite noire dont on ne connaît que l’interface

Interface = description WSDL

Vis-à-vis d’un client le service BPEL est aussi une boite noire

Qui est un service web

Qui possède donc sa propre description WSDL

(55)

Principe de fonctionnement (1)

Lecture

Service Web Hello

Interpreteur BPEL

Fichier BPEL

Hello.wsdl import

requete

(56)

Principe de fonctionnement (2)

Interpreteur

BPEL Service 1

Service 2

Service 3 wsdl1

wsdl2

wsdl3 Lecture

Requête

(57)

Concepts fondamentaux (1)

Un processus BPEL est constitué d’étapes.

= ACTIVITES

BPEL prend en charge des activités de

base et des activités structurées

(58)

Concepts fondamentaux (2)

Activités de base = briques élémentaires

Invocation de services web : <invoke>

Attente que le client invoque le processus par l’envoi d’un message : <receive> (reception d’une requete.

Génération de réponse pour les opérations synchrones :

<reply>

Manipulation des données de variables : <assign>

Signal de fautes et d’exception : <fault>

Attente pour une durée déterminée : <wait>

Arrêt du processus entier : <terminate>

(59)

Concepts fondamentaux (3)

Activités structurées pour assembler les activités de base

Séquence <sequence>

Définir un ensemble d’activités qui seront exécutées les unes a la suite des autres

Le flux <flow>

Définir un ensemble d’activités qui seront exécutées en parallèle

Aiguillage <switch>

Implémenter des embranchements

Le tant-que <while>

Pour définir des boucles

La possibilité de choisir un chemin parmi d’autres :

<pick>

(60)

Initiation du processus

La définition d’un processus BPEL est un document XML utilisant l’élément racine

<process>

On trouve en général un élément de haut niveau <sequence>

On attend le message entrant qui va

démarrer le process : <receive>

(61)

Processus synchrone ou asynchrone

Un processus modélise en BPEL est expose en service web.

Le processus BPEL peut etre synchrone ou asynchrone

Pour renvoyer un résultat, un processus

asynchrone ne bloque pas son client mais utilise un callback pour le notifier de la réponse

La plupart des processus BPEL sont de longue durée de forme asynchrone !

Un processus synchrone utilisera la balise

<reply> pour envoyer la reponse a son client

Un processus asynchrone utilisera la balise

invoke pour invoquer une opération de rappel sur

le client.

(62)

Les liens vers les partenaires

Toutes les parties avec lesquelles BPEL interagit sont appelées liens vers les partenaires = PARTNERS LINKS

Peuvent etre les liens vers les services web utilises dans le processus

Mais aussi les clients qui appellent le processus

Ou des services jouant les 2 roles

<partnerLinks>

<partnerLink name="client"

partnerLinkType="trv:travel LT" myRole="travelService"

partnerRole="travelServiceC ustomer"/>

<partnerLink

name="employeeTravelStatus"

partnerLinkType="emp:employeeLT"

partnerRole="employeeTravelStatus Service"/>

</partnerLinks>

Paramètres:

Name : Sert de références pour les interactions par ce lien

partnerLinkType: Définit le type de lien

MyRole: Indique le rôle du processus BPEL lui même

PartnerRole: Indique le rôle du partenaire

On ne définit les deux rôle que si le PLT ne le spécifie.

(63)

Les types de liens vers les partenaires

Un type de lien vers un partenaire décrit comment deux parties interagissent et ce que chacune d’entre elle offre.

Modélisation de la relation avec les PL comme une tierce partie.

Définit les rôles du partenaire

myRole: Indique le rôle du process

partnerRole : Indique le rôle du partenaire

<plnk:partnerLinkType name="employeeLT">

<plnk:role name="employeeTravelStatusService">

<plnk:portType

name="tns:EmployeeTravelStatusPT" />

</plnk:role>

</plnk:partnerLinkType>

(64)

Les variables

Les variables sont utilisées pour stocker les messages échanges entre les

partenaires du processus ou pour conserver des données relatives a l’état du

processus.

Attributs :

messageType : Variable

pouvant contenir un message WSDL

Element: Variable pouvant contenir un élément XML schema

Type: Variable pouvant

contenir un type simple XML schema

Portée globale ou locale

<variables>

<variable name=“a”

messageType=“aType” />

<variable name=“b”

element=“bDescription: />

<variable name=“c”

type=“xs:string” />

</variables>

(65)

Réception d’un message <receive>

Attente d’un message entrant

Attributs :

Createinstance :

Gestion du cycle de vie du processus

Indique a BPEL qu’il doit créer une nouvelle instance.

<receive

partnerLink=“client”

portType= “clientPT”

operation=“myOperation”

variable=“myVariable”

createInstance=“yes”

/>

(66)

Invocation d’un service web <invoke>

Peut être inclus dans une séquence, un flow

Attributs:

InputVariable : Le paramètre qui sera envoyé au partenaire

OutputVariable: La réponse du partenaire.

<invoke

partnerLink=“serviceB”

portType=“myns:MyServi cePT”

operation=“serviceOper ation”

inputVariable=“in”

outputVariable=“out”

/>

(67)

Renvoyer une reponse <reply>

Utilise pour renvoyer une réponse dans les processus BPEL

synchrones.

Message de réponse

Message de faute

Attributs:

Variable: le nom de la variable dans laquelle la réponse va être stockée

<reply

partnerLink=“client”

portType=“servicePT”

operation=“serviceOp”

variable=“replyVar”

/>

(68)

Les assignation <assign>

Les variables d’un

processus gardent et maintiennent les

données.

Peuvent être de 3 types

Message WSDL

Elément XML schema

Primitive XML schema

<assign>

<copy>

<from variable=“a” />

<to variable=“b” />

</copy>

</assign>

(69)

Invocation de services Web asynchrones

On peut invoquer deux types d’opérations:

Synchrones ou asynchrones

Dans le cas d’une invocation synchrone, le processus attendra la reponse

Pas nécessaire d’avoir une construction particulière pour recevoir la réponse

Operations asynchrone

<invoke> ne prend en charge que la première partie de l’opération

On utilise un <receive>, indiquant que le

processus attend un message entrant

(70)

Méthode de conception d’un processus

1. Inventorier les Services Web disponibles

2. Définir l’interface (WSDL) du BPEL

3. Définir les types des partners links et les variables

4. Créer le processus

(71)

Comment developper (1)

(72)

Comment developper (2)

(73)

Comment developper (3)

(74)

Comment developper (4)

(75)

Comment developper (5)

(76)

Comment developper (6)

(77)

Autres approches

Il est impossible d’écrire directement du BPEL

Utilisation d’un IDE

Eclipse (plugin BPEL)

Microsoft (Visual Studio 05)

Oracle (Suite SOA)

Programmation d’un processus BPEL dans un autre language

BPELJ

Permet de simplifier une bonne partie de l’écriture du processus BPEL

Les actions internes sont écrites en Java (Java Snippets) Expression Java

Liaison variable Java / variable BPEL Possibilité d’appel sur des objets Java

Existe pour d’autres langages

Dans .Net 3.0

(78)

BPELJ

(79)
(80)
(81)
(82)

Referenzen

ÄHNLICHE DOKUMENTE

La gestion minimale qui a été pratiquée à la Petite Ronde, avec seulement 3 parcs par troupeau, a entraîné une très grande hétérogénéité dans l’intensité de pâture

En outre, selon l’état actuel de la planification, les dépôts en cou- ches géologiques profondes doivent, pour diverses raisons, pouvoir maîtriser de manière sûre un multiple

Selon les objectifs stratégiques du Conseil fédéral, le conseil d’administration de BGRB Hol- ding est responsable de la concrétisation des objectifs stratégiques dans l’ensemble du

L’explication des différentes abréviations indiquées ci-dessus et autres abréviations utilisées dans la procédure du plan sectoriel se trouve dans le document «Glossaire

Controlling des achats: système de gestion centralisée des données de base en préparation Dans sa troisième recommandation, la DélFin demande au CF d’entamer les travaux

En vertu de la décision du Conseil fédéral du 29 juin 2016, l’UPIC va mettre à disposition une solution au niveau fédéral pour les sites Internet de la Confédération d’ici

Im März 2016 wurde eine Änderung des Programm- umfangs genehmigt, mit welcher die Erstellung definierter Lieferergebnisse zusammen mit einem Betrag von 500 000 Franken

5 Le CDF attend de l'UPIC qu'elle mette tout en œuvre pour assurer le pilotage du projet IAM à l'échelle de la Confédération et qu'elle intègre durablement en son sein le