Les processus métiers : concepts, modèles et systèmes

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

Applications N-Tiers Rappels: architecture et méthodologie
Présentation des technologies SharePoint 2007
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Les Excel Services de Office 2007
Personnalisation des sites SharePoint avec SharePoint Designer 2007
Concevoir, déployer et gérer les workflows
Virtualisation dorchestration de services TER Master 1 Infomatique 4 Avril 2008 Encadrant : Philippe Collet.
ISP/ASP ISP ASP Conclusion DESS Réseaux 2000/2001
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Le développement d’applications sous Lotus Notes
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Urbanisation et Architecture CNAM NFE107
Le Workflow et ses outils
Active Directory Windows 2003 Server
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.
Introduction au Génie Logiciel
Réalisée par :Samira RAHALI
Sommaire Objectif de Peakup Principes de fonctionnement
Développement Rapide dApplications Web avec.NET « Mon premier site »
Un intranet documentaire : concepts, outils et avantages
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Analyse d’une solution de gestion de processus
Présentation du mémoire
Microsoft .NET.
Processus d'un projet F.Pfister
Sensibilisation a la modelisation
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Agenda de la journée 10h00 : La place d’ASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide d’applications Web en ASP.NET 12h00 : Construire.
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Patrons de conceptions de créations
Langage de modélisation graphique de systèmes
Interoperabilité des SI - Urbanisation
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
Modélisation Objet UML avec Rational Rose 2000
LES CLIENTS WEB RICHES Tuteur : Olivier CARON LEFEBVRE Benoit
Comparaison entre RIP et OSPF en utilisant OPNET
Guillaume TORRENTE Marc BOUISSOU Recherche & Développement
Introduction à BPMN Business Process Modeling Notations Claude Godart
Jour 4: Management & Information System (MIS). Objectives de la session Introduire le thème MIS: définition, les différents éléments, construire le système.
Mise en oeuvre et exploitation
Présentation de CORBA et de IIOP
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
UML.
Java Enterprise Edition, anciennement J2EE
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Sommaire Dans ce chapitre, nous aborderons :
Les processus métiers : concepts, modèles et systèmes
Management des Systèmes d’Information (MSI)
Prise en main d’ArcGis Version ArcView 9.x (ESRI)
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Mastère Professionnel Systèmes de Communication et Réseaux
Les processus métiers : concepts, modèles et systèmes Claude Godart Université de lorraine. Esstin
Technet Office System
Positionnement : Outil de supervision et d’administration spécialiste Les management packs de l’éditeur et la base de connaissance embarquée Rapidité.
Management de la qualité
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
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.
Visual Information Solutions FastDL. Visual Information Solutions IDL pour le traitement parallèle ? -Beaucoup d’expériences/simulations génèrent de «
Enterprise Content Management © 2007 IBM Corporation 02 octobre IBM FileNet User Group Bertrand BLASQUEZ - Consultant ECM IBM.
Transcription de la présentation:

Les processus métiers : concepts, modèles et systèmes Claude Godart Université de lorraine. Esstin Claude.godart@univ-lorraine.loria.fr

Organisation du cours Introduction Concepts et notations Modélisation des processus Analyse qualitative des processus Analyse quantitative des processus Systèmes de gestion de processus Processus transactionnels Découverte de processus Conclusion

Chapitre 4 : Systèmes de gestion de processus Claude Godart Université de lorraine. Esstin Claude.godart@univ-lorraine.loria.fr

Contenu Concepts généraux Systèmes de gestion de processus Modèle de référence de la WfMC Systèmes de gestion de processus Systèmes intégrés (Bonita, IBM MQ Workflow) Bibliothèques de processus PVM, WWF Les services Web BPMN vers BPEL4WS

Introduction (1) Objectif d’un système de gestion de processus (SGP) : Décrire la logique d’un processus et en contrôler le respect à l’exécution Assurer l’interface entre ces fonctionnalités, les utilisateurs et les programmes d’application Concrètement Des outils variés avec des architectures variées Mais un ensemble standardisé de composants fonctionnels (modèle de la WfMC) Si on retrouve ces fonctionnalités totalement ou en partie dans les outils, leurs mises en œuvre sont assez diverses

Introduction (2) Deux grandes approches : Les suites intégrées de gestion de processus Solution complète et générale pour une large gamme d’applications distribuées Bonita, IBM MQ Workflow, W4 … Les bibliothèques de processus Un ensemble de composants basiques pour une définition à la carte de SGP légers souvent embarqués dans des applications plus larges Process Virtual Machine, Window Workflow Foundation

Les composants d’un SGWf (WfMC)

Le modèle de référence de la WfMC

Le service d’exécution des processus Création et terminaison des cas Navigation au sein d’un cas en interprétant le modèle de processus en fonction du contexte d’exécution Transfert des données entre les conteneurs d’entrée et de sortie des activités Affectation des bons de travail dans les corbeilles des ressources (en fonction des rôles, …) Liaison des activité aux applications externes comme défini dans le modèle informationnel Capture des données historiques nécessaires à la supervision et à l’audit des processus

Le service de définition des processus La modélisation des processus en utilisant des notations (chapitres 2 et 3) La modélisation des rôles, des ressources et les liaisons statiques entre les activités et les rôles, les activités et les applications externes L’analyse et la simulation des processus (structuration, vivacité, blocage …)

La gestion des applications clientes La gestion des sessions la gestion des corbeilles de bons de travail des participants en fonction des rôles La possibilité de trier et d’organiser les bons de travail L’instanciation, le démarrage, la suspension d’un processus, d’une activité L’information sur l’état du processus et des activités

La gestion des applications invoquées La gestion des connexions, déconnexions aux applications La gestion des activités invoquant une application Démarrage/suspension/redémarrage/abandon d’une activité, gestion des signaux, notification de terminaison La gestion des données en entrée et en sortie des applications

L’interopérabilité des processus (1) Mode d’interopérabilité (a) mode chaîné (b) mode hiérarchique (c) mode synchronisation parallèle (d) mode pair-à-pair Des notations pour l’interopérabilité (WfXML, XPDL) Supporte les processus inter-organisationnels (chapitre 8)

L’interopérabilité des processus (2)

La supervision des processus La gestion (évaluation, ajustement) des rôles, des utilisateurs La reconfiguration pour améliorer des paramètres (performance …) L’inspection d’un processus en cours d’exécution La modification « à la main » d’une instance de processus La journalisation des information d’audit Des heuristiques d’audit (taux moyen d’attente, d’exécution, taux d’utilisation des ressources …)

Les utilisateurs d’un SGP Les concepteurs et analystes de processus Modélisation a priori et re-ingénierie du modèle de processus, surveillance de l’exécution, analyse des traces d’exécution L’administrateur de processus Responsable du fonctionnement d’un processus à l’exécution; est informé de tout dysfonctionnement et réagit en fonction L’administrateur opérationnel Responsable du bon fonctionnement du matériel et du logiciel Les utilisateurs finaux On peut distinguer : les clients (simple utilisateurs, par exemple Web) , les techniciens métiers qui peuvent gérer des activités complexes, le service support qui fait le lien entre les deux.

Les systèmes intégrés de gestion de processus

Objectifs Proposer l’ensemble des fonctionnalités Proposer une large gamme d’outils pour l’intégration au système d’information de l’organisation hôte (interface BD …) Assurer un haut niveau de sûreté et de fiabilité pour garantir la continuité de l’exploitation Exemples : Bonita, IBM MQ Workflow

Bonita Première version LGPL en 2004 Nova Bonita depuis 2008 Contributeur à, et utilisateur de la PVM (Process Vitual Machine) Aujourd’hui Bonita, un des leaders du BPM en France : http://fr.bonitasoft.com/

Bonita Les transparents qui suivent ont été réalisés avec la version de Bonita disponible en 2009 Depuis, le système a évolué mais l’architecture présentée est encore représentative

Architecture

Architecture Architecture multitiers Java Enterprise Edition Toutes les interactions avec les utilisateurs se font à travers la « console workflow » Le moteur de processus gère la description et l’exécution des processus, ainsi que l’interface avec les programmes d’exécution

Implantation Développement Java Enterprise Edition (J2EE) : Entity beans pour la sauvegarde des informations Java Authentification and Authorization services pour la gestion des droits d’accès Java Transaction Service pour la gestion des transactions (longues) Java Messaging pour la gestion des alertes Java Mail pour l’envoi des emails

Gestion des utilisateurs 4 profils principaux

Profil utilisateur Démarrage d’un processus Traitement des activités Visualisation des processus et des activités dans lesquels il est impliqué Lister les informations sur les activités terminées

Edition d’une condition

Etat d’une instance de processus

Profil administrateur Orienté système Gère la base de données des utilisateurs Définit le profil des utilisateurs

Gestion des rôles et des utilisateurs Par défaut, Bonita fournit un référentiel de gestion des utilisateurs s’appuyant sur une base de données …

Gestion des rôles et des utilisateurs … mais ce référentiel peut être remplacé ou interconnecté à un référentiel d’entreprise existant, typiquement LDAP

Profil opérateur Peut intervenir sur le déroulement des instances de processus Gestion des erreurs en utilisant les traces et les historiques

Historique d’un processus

Le moteur d’exécution Environnement Java EE Données des processus gérées par le container EJB du serveur d’applications Stockage des données par le moteur de transformation Objet/Relationnel Notification des clients, des outils … avec JMS Interprète des descriptions de processus en XPDL Les activités, les transitions s’exécutent comme des transactions JTS Connectivité vers des systèmes d’information par Web services ou connecteurs Java Connector Architecture Possibilité d’associer des actions aux événements du cycle de vie des activités (Hooks)

L’outil de définition de processus Outil graphique ProEd qui génère en sortie des description XPDL Définition des activités, des transitions, des participants, des hooks, des sous-processus, des blocs d’activités Plugin Eclipse Formulaires de définition des activités

Editeur ProEd

Formulaire de définition d’activité

Formulaire d’une activité

Le processus de gestion de voyage avec ProEd

Introduction de Swimlanes

Exemple de Hook dans un processus XPDL

Exécution d’un Hook

Administration de Bonita

Gestion des transactions Gestion de processus de longue durée Chaque opération système d’écriture et de mise à jour de l’état du processus lance une transaction Java EE La gestion des opérations Commit et Rollback est déléguée au container EJB Il est possible de choisir la politique de gestion transactionnelle des hooks Néanmoins, il s’agit de transactions « classiques », pas de transactions avancées comme proposées WS-Coordination/Transaction (Chapitre 5)

IBM MQ Workflow Système intégré complet Architecture à 3 niveaux Le workflow comme un intergiciel entre le serveur de base de données et les applications clients Intégration par échange de message, Plus grande fiabilité, passage à l’échelle Bénéficie du contexte IBM http://www-01.ibm.com/support/docview.wss?uid=swg27007197#9

Architecture

Intégration par queues de messages

API IBM MQ Workflow

Conclusion sur les systèmes intégrés Des fonctionnalités de plus en plus standardisées mais avec des mises en œuvre différentes Bonita Une belle réussite du monde du logiciel libre Une contribution à la PVM Création en 2009 de la société BonitaSoft IBM MQ Workflow Le standard du monde IBM Bénéficie du contexte IBM (intégration fiable par queues de messages)

Les bibliothèques de processus

Objectifs Un ensemble de composants basiques Deux approches : pour une définition à la carte de processus légers généralement à embarquer dans des applications plus larges Deux approches : La PVM du monde Java La WWF du monde Microsoft

La Process Virtual Machine Noyau de SGP du monde Java Fondé sur JBPM (Java Business Process Management, http://www.jboss.org/jbpm.html) et Bonita (http://fr.bonitasoft.com) La PVM propose un noyau de modèle de processus basique mais extensible

Principes Tous les modèles ont en commun Mais varient en fonction de : D’être représentés comme un graphe pour faciliter la communication D’exprimer d’une façon ou d’une autre des flots d’exécution D’être potentiellement de longue durée et d’inclure des états d’attente d’événements Mais varient en fonction de : Du modèle de persistance choisi Des types de transactions qui encapsulent les activités Des services annexes utilisés Des liaisons avec les applications de l’entreprise

Noyau de base Modèle de graphes de processus, définition du comportement d’un nœud public interface Executable { void execute (Execution execution) throws Exception; }

Modèle d’exécution de PVM A une exécution est associée un pointeur qui pointe sur le noeud courant L’exécution attend un événement externe qui déclenche la méthode proceed du nœud courant qui permet de décider quelle transition franchir

Définition d’un nœud de type Tâche humaine public class TaskNode implements Executable { String taskName; public void execute (Execution execution) { //affecter une personne responsable de cette tâche User assignedUser = calculateUser(taskName, execution); //créer la tâche Task task = new Task(taskName, assignedUsr, execution); //ajouter la tâche au répertoire de tâche TaskRepository taskRepository = execution.getContext().getTaskRepository(); taskRepository.addTask(task); }

Définition d’un nœud de type Courrier public class EmailNode implements Executable { String recipient; String subject; String text; public void execute (Execution execution) { // envoyer le mail sendEmail(recipient,subject,text,execution); // propager l’exécution execution.proceed(); }

Extensions (1)

Extensions (2)

Window Workflow Foundation Objectif semblable à PVM Mais conçu pour le monde .NET http://msdn.microsoft.com/fr-fr/library/vstudio/bb628617(v=vs.90).aspx Bénéficie du contexte et permet de générer aussi bien : Des processus classiques Des flots de page d’un site Web Des processus de circulation de documents

Architecture : 3 couches principales

Définition d’une activité en étendant une activité existante public class CreateActivity : Activity { public string Assignee { ... } public DateTime DueDate { ... } protected override ActivityExecutionStatus Execute( ActivityExecutionContext context) { // assign task to assignee... return ActivityExecutionStatus.Closed; }

Outil de modélisation de processus (intégré à Visual Studio)

Hébergement d’un processus Chaque application de la famille .NET 2007 intégre WWF en son coeur

Hébergement du moteur d’exécution WorkflowRuntime runtime = new WorkflowRuntime(); runtime.AddService(...) WorkflowInstance instance = runtime.CreateWorkflow(...); instance.Start(); Guid id = instance.InstanceId; Instanciation du moteur de processus, ajout de services, création d’une instance de processus, démarrage de l’instance ….

Les bibliothèques de processus Conclusion Permettent de répondre à des demandes plutôt simples sans gros investissement ni gros déploiement Un effort de programmation est néanmoins encore nécessaire, mais beaucoup moins important qu’en partant de rien Et apporte la garantie d’une forme d’interopérabilité

Les services Web Les activités comme des services Web La logique en BPEL (Business Process Execution Language) Syntaxiquement un milieu entre BPMN et XPDL REST

Les activités comme des services Web … Service 1 Service 2 Service 3 Service 4 … Service n Bus ( … BPEL … ) Appli 1 Appli 2 Appli 3 Appli n Appli n+1

Service Web

Appel de service

Composition de service

Business Process Execution Language 4 Web Services (BPEL4WS en court, BPEL en encore plus court) Constructeurs Activités de base : <assign> : gestion des variables <invoke> : appeler un service <receive> : recevoir une réponse Flot de contrôle : <sequence> : exécution en séquence <while> : boucle tant-que <switch> : conditionnelle <flow> : exécution parallèle …

Exemple <sequence> <switch> <flow> Partie décrite en BPEL 

Un exemple plus complet Les transparents 76 à 100 viennent de cette présentation accessible sur leWeb : 3146 Modeling BPEL4WS Richard C. Gronback Sr. Product Manager, Together Products Borland Software Corporation Conference Borland 2014

BPMNBPEL4WS Example

BPMNBPEL4WS Loop

BPMNBPEL4WS Loop

Mapping Example Let’s explore the diagram elements and mappings of BPMN to BPEL4WS Domain is E-mail Voting Process From BPMN Specification Focus here is on Discussion Cycle sub-process for simplicity

E-mail Voting Process

Mapping Discussion Cycle Discussion Cycle sub-process in BPD (of BPMN) maps to BPEL4WS process Invocation from higher-level process means it will start with receive and end with reply <process name="Discussion_Cycle"> <sequence> <receive partnerLink="Internal" portType="tns:processPort" operation="call_Discussion_Cycle" variable="processData" createInstance="Yes"/> . . . <reply partnerLink="Internal" portType="tns:processPort" operation="call_Discussion_Cycle" variable="processData"/> </sequence> </process>

Discussion Cycle

Announce Issues The “Announce Issues for Discussion” task maps to a BPEL4WS invoke <invoke name="AnnounceIssuesforDiscussion" partnerLink="WGVoter" portType="tns:emailPort" operation="sendDiscussionAnnouncement" inputVariable="processData"/>

Discussion Cycle

Parallel Paths The output of the “Announce Issues for Discussion” task follows 3 paths that map to a BPEL4WS flow element <flow> <invoke name="ModerateEmailDiscussion" … … <invoke name="EMailDiscussionDeadlineWarning" … <invoke name="CheckCalendarforConferenceCall" … </flow>

Discussion Cycle

Upper Parallel Path The Moderate E-mail Discussion task maps to a synchronous BPEL4WS invoke element <invoke name="ModerateEmailDiscussion" partnerLink="internal" portType="tns:internalPort“ operation="sendDiscussion“ inputVariable="processData“ outputVariable="processData"/> The Upper Parallel Path In the upper parallel path of the fork, the Task, “Moderate E-mail Discussion,” has a Timer Intermediate Event attached to its boundary. Because of this, • the Task is placed in its own scope with a faultHandlers. • The Task itself is mapped to a BPEL4WS invoke (synchronous), and will be placed in a lower-level flow, for reasons described below. The Timer Intermediate Event must be set up to create a fault at the appropriate time. To do this, • An eventHandlers is added to the scope. • An onAlarm is included in the eventHandlers and the for attribute is set to the duration that is defined in the Timer Intermediate Event. • The onAlarm contains a throw with a fault name after the Intermediate Event with “_Exit” appended. The catch of a faultHandlers will be triggered by the fault generated by the above throw. Since the Timer Intermediate Event leads direction to the Exclusive Gateway, there is no specific activity that must be performed in response the to time-out. The main purpose is to exit the Task. Thus, • A faultHandlers is added to the scope. • The catch in the faultHandlers has a faultName set to Intermediate Event with “_Exit” appended. • the catch will contain an empty activity.

Upper Parallel Path The Timer Intermediate Event on task boundary maps to scope element wrapping the invoke element with faultHandlers <scope> <invoke name="ModerateEmailDiscussion" … <faultHandlers> <catch faultName="7Days_Exit"> <empty/> </catch> </faultHandlers> …

Upper Parallel Path To create event at proper time, BPEL4WS eventHandlers added to the scope Why the onAlarm to throw to empty catch? … <eventHandlers> <onAlarm for="tns:OneWeek"> <throw faultName="7Days_Exit"/> </onAlarm> </eventHandlers> </scope>

Discussion Cycle

Middle Parallel Path The delay and E-Mail Discussion Deadline Warning task map to BPEL4WS wait and invoke elements within a sequence element. <sequence> <wait name="Delay6daysfromDiscussionAnnouncement" for="P6D"/> <invoke name="EMailDiscussionDeadlineWarning" partnerLink="WGVoter" portType="tns:emailPort" operation="sendDiscussionWarning" inputVariable="processData"> </invoke> </sequence> The Middle Parallel Path The middle parallel path of the fork has a string of two objects. • Even though this series of objects appears in the middle of a BPEL4WS flow, they will be place within a sequence element. In these situations, the sequence will continue until there is a location in the Diagram where there are multiple incoming Sequence Flow. When more than one Sequence Flow converge it marks the end of a BPEL4WS structure (as determined by structures that have been created by upstream objects). In this case, the Parallel Gateway also marks the end of the higher-level flow. The sequence will be listed in the higher-level flow without a source sub-element. This means that the sequence will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The sequence will have two activities: • First, the Timer Intermediate Event used in this situation will map to a BPEL4WS wait (set to 6 days). • Second, the “E-Mail Discussion Deadline Warning” Task will map to an invoke that follows the wait. In addition, this invoke can be asynchronous since a response is not required. This means that the outputVariable will not be included. This middle path of the fork could have been configured in BPEL4WS without a sequence and with links instead. This is an example of a situation where a BPMN configuration may derive two possible BPEL4WS configurations. Since both BPEL4WS configurations will handle the appropriate behavior, it is up to the implementation of the BPMN to BPEL4WS derivation to determine which configuration will be used. BPMN does not provide any specific recommendation in these situations. However, the lower parallel path of the Process can also be modeled with a sequence or with links, and, to show how links would be used, this section of the Process will be mapped to elements in a flow that have dependencies specified by links.

Discussion Cycle

Lower Parallel Path The Check Calendar for Conference Call task maps to BPEL4WS invoke element. A decision on output can be handled with a BPEL4WS switch or reference links elements <invoke name="CheckCalendarforConferenceCall" partnerLink="internal" portType="tns:internalPort" operation="receiveCallSchedule" inputVariable="processData" outputVariable="processData"> … </invoke> The Lower Parallel Path The lower parallel path of the fork has a number of objects and, as just described above, will be mapped to BPEL4WS elements connected with links. The path also contains a Decision, which can map to a switch, as will happen later in the process, but in this situation the Decision is mapped to links controlled by transitionConditions. • The first object is a Task, which will map to an invoke (synchronous) that has two source elements referring to two of the links. There are two Target links because the Task is followed by the Gateway with its two Gates. This is done instead of a switch with a case and an otherwise. • The ConditionExpression for the Gate labeled “Yes” will map to the source element’s transitionCondition. The expression checks the value of the “ConCall” property (set in the previous Task) to see if there will be a conference call during the coming week. • The Gate labeled “No” has a condition of default. For a switch, this would map to the otherwise element. However, since a switch is not being used, the source element’s transitionCondition must be the inverse of all the other transitionConditions for the activity. The expression of the other source will be placed inside a “not” function. The invoke will be listed in the higher-level flow without a source sub-element. This means that the invoke will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The remaining elements of the higher-level flow will have a source element. Thus, they will not be instantiated until the source of the link has completed. • The “Yes” Gate from the Gateway leads to a Timer Intermediate Event, which will map to a wait. • The for element of the wait will set to for 9am PDT on the next Thursday. • This wait will have a target element that corresponds to the target element from the previous invoke. • The wait will also have a target element to link to the following invoke. • The “No” Gate from the Gateway leads to a merging Exclusive Gateway, which means that nothing is expected to happen down this path. Thus, this will map to an empty. • This empty will have a target element that corresponds to the target element from the • The Task for moderating the conference call follows the wait, which will map to an invoke (synchronous). • This invoke will have a target element that corresponds to the target element from the previous wait. There are three link elements in the flow: • One link will have a source of the first invoke and a target of the wait. • One link will have a source of the first invoke and a target of the empty. • One link will have a source of the first wait and a target of the last invoke. As mentioned above, the Parallel Gateway marks the end of the flow. Finally, there will be a reply at the end of the sequence that corresponds to the initial receive and lets the parent process know that the (sub) process has been completed. After the Parallel Paths are Joined The Task “Evaluate Discussion Progress” is intended to occur only when all the parallel paths have completed, and thus, it will • Map to an invoke that follows the closing of the flow.

Lower Parallel Path In this case, decision maps to BPEL4WS links in source elements with corresponding transitionCondition attribute. <flow> <links> <link name="CheckCalendarforConferenceCalltoWaituntilThursday,9am"/> <link name="CheckCalendarforConferenceCalltoEmpty"/> … <invoke name="CheckCalendarforConferenceCall" <source linkName="CheckCalendarforConferenceCalltoWaituntilThursday9am" transitionCondition="bpws:getVariableProperty(processData,conCall)=true"/> <source linkName="CheckCalendarforConferenceCalltoEmpty" transitionCondition="not(bpws:getVariableProperty(processData,conCall)=true)"/> </invoke> The Lower Parallel Path The lower parallel path of the fork has a number of objects and, as just described above, will be mapped to BPEL4WS elements connected with links. The path also contains a Decision, which can map to a switch, as will happen later in the process, but in this situation the Decision is mapped to links controlled by transitionConditions. • The first object is a Task, which will map to an invoke (synchronous) that has two source elements referring to two of the links. There are two Target links because the Task is followed by the Gateway with its two Gates. This is done instead of a switch with a case and an otherwise. • The ConditionExpression for the Gate labeled “Yes” will map to the source element’s transitionCondition. The expression checks the value of the “ConCall” property (set in the previous Task) to see if there will be a conference call during the coming week. • The Gate labeled “No” has a condition of default. For a switch, this would map to the otherwise element. However, since a switch is not being used, the source element’s transitionCondition must be the inverse of all the other transitionConditions for the activity. The expression of the other source will be placed inside a “not” function. The invoke will be listed in the higher-level flow without a source sub-element. This means that the invoke will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The remaining elements of the higher-level flow will have a source element. Thus, they will not be instantiated until the source of the link has completed. • The “Yes” Gate from the Gateway leads to a Timer Intermediate Event, which will map to a wait. • The for element of the wait will set to for 9am PDT on the next Thursday. • This wait will have a target element that corresponds to the target element from the previous invoke. • The wait will also have a target element to link to the following invoke. • The “No” Gate from the Gateway leads to a merging Exclusive Gateway, which means that nothing is expected to happen down this path. Thus, this will map to an empty. • This empty will have a target element that corresponds to the target element from the • The Task for moderating the conference call follows the wait, which will map to an invoke (synchronous). • This invoke will have a target element that corresponds to the target element from the previous wait. There are three link elements in the flow: • One link will have a source of the first invoke and a target of the wait. • One link will have a source of the first invoke and a target of the empty. • One link will have a source of the first wait and a target of the last invoke. As mentioned above, the Parallel Gateway marks the end of the flow. Finally, there will be a reply at the end of the sequence that corresponds to the initial receive and lets the parent process know that the (sub) process has been completed. After the Parallel Paths are Joined The Task “Evaluate Discussion Progress” is intended to occur only when all the parallel paths have completed, and thus, it will • Map to an invoke that follows the closing of the flow.

Lower Parallel Path From the “Yes” output from the decision, a BPEL4WS wait element is mapped. The wait element contains nested target and source elements with linkName attributes <flow> <links> … <link name="WaituntilThursday9amtoModerateConferenceCallDiscussion"/> <link name="CheckCalendarforConferenceCalltoWaituntilThursday,9am"/> <wait name="WaituntilThursday9am" for="P6DT9H"> <target linkName="CheckCalendarforConferenceCalltoWaituntilThursday9am"> <source linkName="WaituntilThursday9amtoModerateConferenceCallDiscussion"/> </wait> The Lower Parallel Path The lower parallel path of the fork has a number of objects and, as just described above, will be mapped to BPEL4WS elements connected with links. The path also contains a Decision, which can map to a switch, as will happen later in the process, but in this situation the Decision is mapped to links controlled by transitionConditions. • The first object is a Task, which will map to an invoke (synchronous) that has two source elements referring to two of the links. There are two Target links because the Task is followed by the Gateway with its two Gates. This is done instead of a switch with a case and an otherwise. • The ConditionExpression for the Gate labeled “Yes” will map to the source element’s transitionCondition. The expression checks the value of the “ConCall” property (set in the previous Task) to see if there will be a conference call during the coming week. • The Gate labeled “No” has a condition of default. For a switch, this would map to the otherwise element. However, since a switch is not being used, the source element’s transitionCondition must be the inverse of all the other transitionConditions for the activity. The expression of the other source will be placed inside a “not” function. The invoke will be listed in the higher-level flow without a source sub-element. This means that the invoke will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The remaining elements of the higher-level flow will have a source element. Thus, they will not be instantiated until the source of the link has completed. • The “Yes” Gate from the Gateway leads to a Timer Intermediate Event, which will map to a wait. • The for element of the wait will set to for 9am PDT on the next Thursday. • This wait will have a target element that corresponds to the target element from the previous invoke. • The wait will also have a target element to link to the following invoke. • The “No” Gate from the Gateway leads to a merging Exclusive Gateway, which means that nothing is expected to happen down this path. Thus, this will map to an empty. • This empty will have a target element that corresponds to the target element from the • The Task for moderating the conference call follows the wait, which will map to an invoke (synchronous). • This invoke will have a target element that corresponds to the target element from the previous wait. There are three link elements in the flow: • One link will have a source of the first invoke and a target of the wait. • One link will have a source of the first invoke and a target of the empty. • One link will have a source of the first wait and a target of the last invoke. As mentioned above, the Parallel Gateway marks the end of the flow. Finally, there will be a reply at the end of the sequence that corresponds to the initial receive and lets the parent process know that the (sub) process has been completed. After the Parallel Paths are Joined The Task “Evaluate Discussion Progress” is intended to occur only when all the parallel paths have completed, and thus, it will • Map to an invoke that follows the closing of the flow.

Lower Parallel Path Following the wait, the Moderate Conference Call Discussion task maps to a BPEL4WS invoke element. <invoke name="ModerateConferenceCallDiscussion" partnerLink="internal" portType="tns:internalPort" operation="sendConCall" inputVariable="processData" outputVariable="processData"> <target linkName="WaituntilThursday9amtoModerateConferenceCallDiscussion"/> </invoke> The Lower Parallel Path The lower parallel path of the fork has a number of objects and, as just described above, will be mapped to BPEL4WS elements connected with links. The path also contains a Decision, which can map to a switch, as will happen later in the process, but in this situation the Decision is mapped to links controlled by transitionConditions. • The first object is a Task, which will map to an invoke (synchronous) that has two source elements referring to two of the links. There are two Target links because the Task is followed by the Gateway with its two Gates. This is done instead of a switch with a case and an otherwise. • The ConditionExpression for the Gate labeled “Yes” will map to the source element’s transitionCondition. The expression checks the value of the “ConCall” property (set in the previous Task) to see if there will be a conference call during the coming week. • The Gate labeled “No” has a condition of default. For a switch, this would map to the otherwise element. However, since a switch is not being used, the source element’s transitionCondition must be the inverse of all the other transitionConditions for the activity. The expression of the other source will be placed inside a “not” function. The invoke will be listed in the higher-level flow without a source sub-element. This means that the invoke will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The remaining elements of the higher-level flow will have a source element. Thus, they will not be instantiated until the source of the link has completed. • The “Yes” Gate from the Gateway leads to a Timer Intermediate Event, which will map to a wait. • The for element of the wait will set to for 9am PDT on the next Thursday. • This wait will have a target element that corresponds to the target element from the previous invoke. • The wait will also have a target element to link to the following invoke. • The “No” Gate from the Gateway leads to a merging Exclusive Gateway, which means that nothing is expected to happen down this path. Thus, this will map to an empty. • This empty will have a target element that corresponds to the target element from the • The Task for moderating the conference call follows the wait, which will map to an invoke (synchronous). • This invoke will have a target element that corresponds to the target element from the previous wait. There are three link elements in the flow: • One link will have a source of the first invoke and a target of the wait. • One link will have a source of the first invoke and a target of the empty. • One link will have a source of the first wait and a target of the last invoke. As mentioned above, the Parallel Gateway marks the end of the flow. Finally, there will be a reply at the end of the sequence that corresponds to the initial receive and lets the parent process know that the (sub) process has been completed. After the Parallel Paths are Joined The Task “Evaluate Discussion Progress” is intended to occur only when all the parallel paths have completed, and thus, it will • Map to an invoke that follows the closing of the flow.

Lower Parallel Path The default “No” output from the decision maps to a BPEL4WS empty element. A merging Exclusive Gateway used to form the end of lower parallel path before Parallel Gateway marks end of the flow <empty> <target linkName="CheckCalendarforConferenceCalltoEmpty"/> </empty> The Lower Parallel Path The lower parallel path of the fork has a number of objects and, as just described above, will be mapped to BPEL4WS elements connected with links. The path also contains a Decision, which can map to a switch, as will happen later in the process, but in this situation the Decision is mapped to links controlled by transitionConditions. • The first object is a Task, which will map to an invoke (synchronous) that has two source elements referring to two of the links. There are two Target links because the Task is followed by the Gateway with its two Gates. This is done instead of a switch with a case and an otherwise. • The ConditionExpression for the Gate labeled “Yes” will map to the source element’s transitionCondition. The expression checks the value of the “ConCall” property (set in the previous Task) to see if there will be a conference call during the coming week. • The Gate labeled “No” has a condition of default. For a switch, this would map to the otherwise element. However, since a switch is not being used, the source element’s transitionCondition must be the inverse of all the other transitionConditions for the activity. The expression of the other source will be placed inside a “not” function. The invoke will be listed in the higher-level flow without a source sub-element. This means that the invoke will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The remaining elements of the higher-level flow will have a source element. Thus, they will not be instantiated until the source of the link has completed. • The “Yes” Gate from the Gateway leads to a Timer Intermediate Event, which will map to a wait. • The for element of the wait will set to for 9am PDT on the next Thursday. • This wait will have a target element that corresponds to the target element from the previous invoke. • The wait will also have a target element to link to the following invoke. • The “No” Gate from the Gateway leads to a merging Exclusive Gateway, which means that nothing is expected to happen down this path. Thus, this will map to an empty. • This empty will have a target element that corresponds to the target element from the • The Task for moderating the conference call follows the wait, which will map to an invoke (synchronous). • This invoke will have a target element that corresponds to the target element from the previous wait. There are three link elements in the flow: • One link will have a source of the first invoke and a target of the wait. • One link will have a source of the first invoke and a target of the empty. • One link will have a source of the first wait and a target of the last invoke. As mentioned above, the Parallel Gateway marks the end of the flow. Finally, there will be a reply at the end of the sequence that corresponds to the initial receive and lets the parent process know that the (sub) process has been completed. After the Parallel Paths are Joined The Task “Evaluate Discussion Progress” is intended to occur only when all the parallel paths have completed, and thus, it will • Map to an invoke that follows the closing of the flow.

Discussion Cycle

End of Parallel Paths Parallel Gateway marks end of flow and is followed by a task Evaluate Discussion Progress, which maps to BPEL4WS invoke element. This marks end of outer sequence and the process itself. … </flow> <invoke name="EvaluateDiscussionProgress" partnerLink="internal" portType="tns:internalPort" operation="receiveDiscussionStatus" inputVariable="processData" outputVariable="processData"/> <reply partnerLink="Internal" portType="tns:processPort" operation="call_Discussion_Cycle" variable="processData"/> </sequence> </process> The Lower Parallel Path The lower parallel path of the fork has a number of objects and, as just described above, will be mapped to BPEL4WS elements connected with links. The path also contains a Decision, which can map to a switch, as will happen later in the process, but in this situation the Decision is mapped to links controlled by transitionConditions. • The first object is a Task, which will map to an invoke (synchronous) that has two source elements referring to two of the links. There are two Target links because the Task is followed by the Gateway with its two Gates. This is done instead of a switch with a case and an otherwise. • The ConditionExpression for the Gate labeled “Yes” will map to the source element’s transitionCondition. The expression checks the value of the “ConCall” property (set in the previous Task) to see if there will be a conference call during the coming week. • The Gate labeled “No” has a condition of default. For a switch, this would map to the otherwise element. However, since a switch is not being used, the source element’s transitionCondition must be the inverse of all the other transitionConditions for the activity. The expression of the other source will be placed inside a “not” function. The invoke will be listed in the higher-level flow without a source sub-element. This means that the invoke will be instantiated when the higher-level flow begins since it has no dependencies on any other activity. The remaining elements of the higher-level flow will have a source element. Thus, they will not be instantiated until the source of the link has completed. • The “Yes” Gate from the Gateway leads to a Timer Intermediate Event, which will map to a wait. • The for element of the wait will set to for 9am PDT on the next Thursday. • This wait will have a target element that corresponds to the target element from the previous invoke. • The wait will also have a target element to link to the following invoke. • The “No” Gate from the Gateway leads to a merging Exclusive Gateway, which means that nothing is expected to happen down this path. Thus, this will map to an empty. • This empty will have a target element that corresponds to the target element from the • The Task for moderating the conference call follows the wait, which will map to an invoke (synchronous). • This invoke will have a target element that corresponds to the target element from the previous wait. There are three link elements in the flow: • One link will have a source of the first invoke and a target of the wait. • One link will have a source of the first invoke and a target of the empty. • One link will have a source of the first wait and a target of the last invoke. As mentioned above, the Parallel Gateway marks the end of the flow. Finally, there will be a reply at the end of the sequence that corresponds to the initial receive and lets the parent process know that the (sub) process has been completed. After the Parallel Paths are Joined The Task “Evaluate Discussion Progress” is intended to occur only when all the parallel paths have completed, and thus, it will • Map to an invoke that follows the closing of the flow.

Conclusion Une architecture fonctionnelle de référence (WfMC) Des mises en œuvre logicielles variées, libres ou propriétaires Des solutions plus ou moins lourdes pour répondre à une large gamme de besoins Un déploiement implicite ou explicite important dans le Web