• Aucun résultat trouvé

V.2 Illustration de la démarche proposée

V.2.2 Déroulement de la méthodologie

Du point de vue utilisateur, la méthodologie se veut la plus simple possible. Cette section illustre les différentes étapes réalisées par Chaponral et Wrap’it afin d’arriver au processus collaboratif répondant au besoin.

V.2.2.1 Modélisation sur la plateforme et annotation du processus

La première étape pour les partenaires est de modéliser sur la plateforme en ligne le processus métier déterminé précédemment (Figure V.10) puis de l’annoter sémantique- ment à l’aide des concepts sémantiques disponibles dans l’une ou l’autre des ontologies disponibles. L’étape de modélisation sur la plateforme ne pose aucun problème dans notre cas puisque le processus a été défini en amont. Il suffit alors de se connecter sur le modeleur en ligne, de créer un projet métier dédié au cas d’utilisation puis de reproduire le processus à l’aide des éléments de la palette correspondants aux différents éléments BPMN 2.0. Nous ne représentons ici que le médiateur afin de faciliter la modélisation. La Figure V.15 montre le processus métier modélisé sur notre plateforme. L’ensemble des activités et de la logique métier déterminées en amont y ont été représentés.

Figure V.15 – Modélisation du cas d’utilisation sur la plateforme

Une fois le processus modélisé, il est nécessaire de l’annoter afin de fournir les in- formations nécessaires à l’étape de réconciliation de services. Pour cela, nous utilisons les interfaces développées pour l’occasion. Ces interfaces, que l’on peut apercevoir en Figure V.16, restent pour l’instant peu ergonomiques mais permettent l’annotation des éléments BPMN 2.0 sans intervention sur la description technique du processus. On retrouve à gauche de la figure le mécanisme d’annotation d’activité et à droite l’inter- face d’annotation de séquence permettant l’ajout de plusieurs éléments/données métier,

Chapitre V. Implémentation et illustration

chacun possédant un nom syntaxique et un ou plusieurs concepts sémantiques associés. L’exemple pris ici est celui de l’activité responsable de la congélation de la dinde far- cie. On retrouve donc le concept #Congeler sur l’activité (ainsi que #Dinde_farcie non visible sur l’image) et #Date_péremption pour la sortie de l’activité. L’annotation des activités est bien évidement réalisée sans prendre en compte les services disponibles et leurs annotations sémantiques.

Figure V.16 – Annotation du processus du cas d’utilisation

Seuls les concepts de l’ontologie de Chaponral ont été utilisés ici afin de simuler une modélisation par cette dernière uniquement. Le rapprochement des ontologies réalisé en amont permettra cependant une réconciliation avec les services Wrap’it bien que ceux-ci soient annotés avec des concepts de la seconde ontologie. La Figure V.17 reprend le détail des annotations sémantiques pour deux autres activités (une pour chaque partenaire). On y retrouve d’une part l’activité initiale de test du produit « Tester la dinde », qui attend en entrée un identifiant (pour la traçabilité) et en sortie le poids et la teneur en eau, et d’autre part l’activité « Étiqueter le produit » confiée au partenaire Wrap’it, qui attend en entrée les différentes informations à placer sur l’étiquette (dates, ingrédients, identifiants) et en sortie le prix du produit.

Exemple funky (Manuscrit)

Mé d ia te u r Médiateur Tester la dinde Préparer la farce Barder et brider la dinde Farcir

la dinde le produitCuire Taux d'eau

dans la viande Congeler le produit Préparer le produit frais Em pacter le

produit Étiqueter leproduit

Chaponral Wrap'it > 30% #Tester #Dinde #Teneur_eau #Poids #Identifiant #Dinde

Exemple funky (Manuscrit)

Mé d ia te u r Médiateur Tester la dinde Préparer la farce Barder et brider la dinde Farcir

la dinde le produitCuire Taux d'eau

dans la viande Congeler le produit Préparer le produit frais Em pacter le

produit Étiqueter leproduit

Chaponral Wrap'it > 30% #Etiqueter #Produit #Price #Identifiant #Dinde_farcie #Date_péremption #Date_préparation #Produit #Quantité #Créer_étiquette

Figure V.17 – Exemple d’annotation sur deux activités

V.2.2.2 Réconciliation de services

Une fois le processus métier annoté, il suffit alors à l’utilisateur de lancer le moteur de réconciliation qui va alors proposer, pour chacune des activités du processus, un ou plusieurs services répondant au besoin associé et leurs notes respectives.

La Figure V.18 montre la proposition faite à l’utilisateur concernant le service de congélation de la dinde. On retrouve à gauche la liste des services proposés et à droite l’activité correspondante. L’utilisateur peut alors choisir de prendre un des services pro- posés (en faisant un glisser-déposer de l’opération) ou générer un service métier à l’aide d’une interface dédiée si aucun service ne couvre le besoin. C’est le cas de l’activité de

Figure V.18 – Validation de la sélection de services

bardage de la dinde, qui correspond à une étape manuelle dans le processus de fabrica- tion chez Chaponral et qui ne correspond à aucun service Web. L’utilisateur choisi alors la génération d’un service métier.

La Figure V.19 montre l’interface (sommaire) proposée à l’utilisateur. On y retrouve les informations essentielles pour le service, à savoir les informations sur l’entreprise et l’opération (y compris ses entrées/sorties). On peut alors générer la description WSDL du service et son implémentation. Cette dernière se limite pour l’instant à l’affichage pour l’employé responsable du bardage des informations en entrée, ici l’identifiant de la dinde, et attend en retour un message de l’utilisateur indiquant que l’opération a été réalisée. Le service est alors associé à l’activité pour laquelle il a été créé.

Figure V.19 – Création du service métier de bardage

V.2.2.3 Réconciliation de données

Une fois l’ensemble des activités couvertes, le moteur de réconciliation procède à la génération des différentes transformations de données à l’aide des concepts de l’ontologie technique annotés sur les services. Pour cela, il parcours un à un les services sélectionnés et utilise les mécanismes décrits dans le Chapitre IV pour générer les différents fichiers

Chapitre V. Implémentation et illustration

de transformation nécessaires à la bonne communication entre les partenaires. Une fois l’opération finie, on propose à l’utilisateur les différentes transformations générées pour validation.

Dans le cas du processus collaboratif Chaponral-Wrap’it, seule une transformation pose problème : le service mélangerIngredients, qui attend en entrée une liste des produits à mélanger (pour réaliser la farce) et pour chacun la quantité nécessaire. Bien qu’aucun service ne prenne en charge ce calcul, il est simple à réaliser puisqu’il dépend du poids de la dinde (information que nous possédons à ce stade du processus). Nous dé- cidons donc d’utiliser notre convertisseur d’unités pour palier ce problème en y ajoutant les règles métier permettant le calcul des quantités de chaque ingrédient :

#poids_marrons = 0,05 x #poids_dinde #poids_chair = 0,2 x #poids_dinde #poids_mie = 0,5 x #poids_chair

Code V.2 – Règles métier ajoutées par l’utilisateur

Le moteur procède alors à la génération de la transformation correspondante et pro- pose à l’utilisateur une solution qu’il peut accepter, corriger ou refuser. Pour cela, il suffit de relancer le mécanisme de réconciliation de données avec les nouvelles informations ré- cupérées afin de retenter une génération des transformations. Dans le cas présent, cela donne :

Pour la balise <poids_marron> : (0.05 * fn:number($1)) Pour la balise <poids_chair> : (0.2 * fn:number($1)) Pour la balise <poids_mie> : (0.5 * (0.2 * fn:number($1)))

Code V.3 – Proposition de nouvelles formules de calcul

Où $1 sera affiché pour l’utilisateur comme étant le concept du poids de la dinde et remplacé lors de l’intégration dans la description du processus par le chemin XPath correspondant à la valeur en question. Dans le cas où l’utilisateur considère ces formules comme fausses, les services proposés lors de l’étape précédente lui sont re-soumis afin de choisir une solution alternative. Ces règles, en plus de servir à la transformation des données du service cible, seront réutilisables par la suite dans d’autres transformations et d’autres collaborations de Chaponral.