Travailler avec BPEL4WS

Vous définissez un MPM avec le langage de processus BPEL4WS lorsque vous devez utiliser le BPEL4WS pour la mise en oeuvre afin de partager votre modèle de processus métiers.

Scénario

Le scénario peut être le suivant : vous avez déjà défini votre organisation en termes de processus et de sous-processus à un niveau d'analyse et vous souhaitez automatiser tout ou partie de ces processus :


  • Générez un modèle BPEL4WS en utilisant la fonctionnalité de génération intermodèle afin d'obtenir le squelette d'un modèle d'orchestration.

  • Pour chaque processus racine, déterminez un partenaire logique associé avec lequel le processus va échanger des informations ou des services par le biais des unités d'organisation ou des associations de rôle.

  • Importez des fichiers WSDL ou des composants pour modéliser les applications en utilisant des fournisseurs de services, des interfaces de service, et des messages. Dans le cas contraire, vous pouvez créer ces objets manuellement ou attendre pour modéliser plus tard.

  • Pour chaque activité atomique contenue dans le graphe des processus racine, définissez une mise en oeuvre en utilisant une opération existante ou une opération que vous créez. Pour ce faire, vous devez commencer par créer un fournisseur de service, puis une interface de service. Pour chaque processus mis en oeuvre par une opération, vous devez également préciser quel partenaire va exécuter l'opération en sélectionnant une unité d'organisation parmi les partenaires que vous avez déjà définis.

  • Vous pouvez également considérer qu'une activité peut être décomposée en sous-graphes afin de détailler sa mise en oeuvre de façon plus précise. Pour ce faire, vous transformez l'activité atomique en activité composite.

  • Concernant la gestion d'erreurs, vous pouvez avoir défini au stade de l'analyse une gestion d'erreurs (le plus souvent modélisée par un flux sortant avec une condition d'erreur). Si cette erreur est modélisée par un Message d'erreur dans l'opération associée à l'activité, vous devez remplacer la condition définie sur le flux par un événement ayant le stéréotype <<Fault>>. L'événement doit avoir le même nom que l'erreur de l'opération.

  • Vous pouvez également créer une activité pour notifier une erreur logique qui doit être gérée par un processus parent. Pour ce faire, vous devez créer un événement ayant le stéréotype <<Fault>> et l'associer à l'activité en utilisant le type de mise en oeuvre Générer un événement dans la feuille de propriétés de processus. Ensuite, sur l'un des processus parent, vous devez ajouter un flux sortant lié à l'événement sur l'onglet Condition de la feuille de propriétés du flux. Le processus de destination du flux va correspondre au début du graphe pour la gestion d'erreur. Cette approche permet de factoriser la gestion d'une erreur qui peut souvent se produire à différents niveaux.

  • Au sein d'un graphe conçu pour la gestion d'erreurs, il est souvent nécessaire d'utiliser une compensation pour annuler les effets d'un processus qui a déjà été accompli. Pour ce faire, vous utilisez un événement ayant le stéréotype <<Compensation>> et l'associez à l'activité qui demande compensation, comme vous l'avez fait pour l'événement Fault.

  • Une fois que la mise en oeuvre de toutes les activités atomiques est définie, vous pouvez l'exporter dans un MOO pour spécifier dans ce modèle la mise en oeuvre des services. Le MPM vous aide uniquement à spécifier vos besoins métiers.

  • Une fois la chorégraphie des différentes activités définie, vous devez spécifier la gestion des données. Pour chaque activité mise en oeuvre par une opération, vous devez récupérer les messages reçus par les variables locales. Pour ce faire, vous devez sélectionner une variable ou en créer une dans la zone de groupe Message reçu de l'onglet Mise en oeuvre du processus. Il en va de même pour les messages envoyés par le processus, vous devez sélectionner une variable ou en créer une dans la zone de groupe Message envoyé de l'onglet Mise en oeuvre du processus.

  • Vous pouvez avoir besoin de transformer une information existante pour construire le message à envoyer. Pour ce faire, vous devez utiliser la transformation de données. Le résultat de la transformation est stocké dans une variable (Variable affectée dans la feuille de propriétés de la transformation de données). La donnée entrante peut être une variable sur laquelle vous allez effectuer une transformation simple à l'aide de XPath ou une transformation plus complexe avec plusieurs variables en utilisant XSLT.

  • Concernant les expressions utilisées dans le branchement conditionnel, vous devez transformer le pseudo code utilisé au niveau analyse pour les décisions ou expressions sur les flux en expression qui peut être évaluée par le moteur de processus. Le plus souvent, les expressions XPath utilisant des variables locales, vous allez devoir les saisir manuellement ou les créer dans un éditeur externe pour les copier ensuite dans PowerAMC. Vous pouvez être amené à créer des variables supplémentaires et des transformations de données.

  • Pour chaque réception de message, le moteur de processus doit savoir à quel instance de processus le message doit être affecté. Pour ce faire, vous utilisez la clé de corrélation, qui est une clé unique construite à partir de valeurs des variables locales au processus. Vous devez associer chaque processus mis en oeuvre par une opération à une clé de corrélation. Vous pouvez également être amené à créer des variables supplémentaires et des transformations. Le premier message reçu dans le graphe d'activités est le message "exception". Il crée une instance du processus et n'a pas besoin de clé de corrélation.

  • Vous pouvez ensuite vérifier votre modèle pour détecter des erreurs ou omissions avant de générer votre fichier BPEL4WS.


Created October 8, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com