Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

eServices-Tp2: bpel

1,921 views

Published on

BPEL avec WSO2

Published in: Technology
  • Be the first to comment

  • Be the first to like this

eServices-Tp2: bpel

  1. 1. TP 2: Processus Métier BPEL avec WSO2 Cours eServices - GL5 GL5 - 2015-2016 
 TP 2 ESERVICES MME. LILIA SFAXI 1 Objectifs du TP Création d’une application SOA Composite en utilisant BPEL avec la suite WSO2
  2. 2. I. Conception d’une Application SOA avec WSO2 L’objectif principal de ce TP est de vous aider à concevoir une application SOA en utilisant l’environnement WSO2 et le serveur Axis2. Pour cela, nous devons connaitre un certain nombre de concepts. 1. WSO2 WSO2 (appelée aussi WSO2 pour signifier Web Service Oxygen) est une entreprise qui a vu1 le jour en Août 2005, et avait pour principal objectif de fournir des solutions SOA pour les développeurs professionnels. Elle développe principalement des produits basés sur la suite logicielle open source Apache, et tous ses produits sont sous la licence Apache Software Licence. 2. WSO2-BPS Le serveur WSO2-BPS est fourni par la suite WSO2 pour permettre aux développeurs2 de déployer facilement et rapidement des processus métiers utilisant le standard WS- BPEL. Ce serveur repose sur le moteur BPEL de Apache ODE (Orchestration Director Engine) pour fournir une console web graphique et complète, pour gérer et visualiser les processus. 3. BPEL Un processus métier (Business Process) est la procédure qu’une organisation utilise pour réaliser un objectif métier plus grand. C’est un ensemble de tâches individuelles, chacune s’exécutant dans un ordre spécifique. Il peut être synchrone ou asynchrone, selon la méthode choisie pour invoquer ce processus. Le langage BPEL (Business Process Execution Language) permet de représenter les processus métiers, et de créer simplement des applications complexes faisant appel à plusieurs services web. Les outils SOA de WSO2 Developer Studio fournissent un environnement graphique BPEL rendant ainsi la création encore plus intuitive de ces applications. La Figure suivante montre un exemple de processus BPEL développé avec l’outil graphique de WSO2. WSO2: http://www.yenlo.com/en/getting-started-wso2-basics-wso2-install/1 WSO2-BPS: http://wso2.com/products/business-process-server/2 TP 2 ESERVICES MME. LILIA SFAXI 2
  3. 3. Pour comprendre les processus BPEL, il faut définir un ensemble de concepts fréquemment utilisés: • Les services partenaires (Partner Services) : représentent tout service externe ou client qui interagit avec le processus BPEL. Un processus BPEL fait appel à un ou plusieurs partenaires externes tout au long de son exécution, pouvant être des services web, des bases de données, ou d’autres processus BPEL. • Les activités : ce sont les tâches métier individuelles dans le processus, permettant de réaliser un objectif plus large. Ils représentent chaque étape du processus. Un processus BPEL commence toujours avec une activité de réception (receive), puis invoque des services externes (invoke) et enfin renvoie le résultat au client (reply). • Les variables : Il existe plusieurs variables et messages qui circulent entre les activités du processus, et entre les activités et les partenaires. Dans la Figure 2, on retrouve une activité Assign entre les activités Receive et Invoke, qui permet d’affecter les éléments de l’itinéraire (date, destination…) à une nouvelle variable. Cela peut être réalisé par une simple opération de copie, ou par un traitement sur les entrées (concaténation, somme…). II. Ma première application SOA Dans cette première application, nous allons réaliser les tâches suivantes: • Créer un service web Concat, permettant de concaténer deux chaînes de caractères, qu'on va déployer sur le serveur Axis2. TP 2 ESERVICES MME. LILIA SFAXI 3
  4. 4. • Définir un processus métier BPEL permettant la lecture en entrée de deux chaînes de caractères, leur concaténation en faisant appel au service Concat et l’envoi du résultat en sortie. 1. Installation et Configuration 1. Télécharger tous les prérequis pour ce TP • JDK 1.7 ou 1.6 • WSO2 Developer Studio (version 3.7.1 avec Eclipse JavaEE Kepler) : http:// wso2.com/products/developer-studio/ • Apache Axis2 Java, Binary distribution, version 1.6.3 : https://axis.apache.org/ axis2/java/core/download.cgi • WSO2 Business Process Server, version 3.2.0: http://wso2.com/products/ business-process-server/ 2. Décompresser toutes les archives dans le même répertoire. 3. Lancer le serveur axis2 standalone en exécutant le fichier bin/axis2server.bat (sur windows) ou bin/axis2server.sh (sur les systèmes UNIX), se trouvant le répertoire d'installation d'axis2. 4. Lancer le serveur wso2-bps en exécutant le fichier bin/wso2server.bat (pour windows) ou bin/wso2server.sh (pour UNIX), se trouvant sous le répertoire décompressé de wso2-bps. 2. Création d'un Service Web Axis2 On démarrera d'abord le Developer Studio de WSO2, qui n'est autre qu'un Eclipse modifié. Il fournit un Dashboard qui permet de lancer les types de projets les plus importants. On peut retrouver ce Dashboard sous le menu Developer Studio -> Open Dashboard. TP 2 ESERVICES MME. LILIA SFAXI 4
  5. 5. 1. Pour créer un nouveau service Axis2, cliquer sur le lien Axis2 Service Project se trouvant dans le dashboard. 2. Lui donner le nom ConcatService, le nom de package insat.tp2.ws, et le nom de classe Concat 3. Implémenter cette classe, en créant une méthode concat, qui saisit deux chaînes de caractères, et retourne une chaîne composée de ces deux chaînes séparées par un espace. 4. Déployer ce service dans le serveur Axis2 que vous avez démarré. Pour cela, faire un clic droit sur le projet, et choisir Export Project as Deployable Archive. Choisir ensuite le répertoire de déploiement de Axis2, généralement sous le chemin: <rep_install_axis2>/repository/services Le fichier sera déployé sous le format .aar. Un déploiement réussi provoque l'affichage d'un message semblable à celui-ci, sous le terminal où on a démarré le serveur: Vous pourrez voir également la liste de tous vos services sous le chemin: http://localhost:8080/axis2/services/ Le résultat sera sous la forme suivante: En cliquant sur le nom du service, on peut visualiser son fichier WSDL. 5. Tester le service avec SOAPUI. Vérifier qu'il retourne bien un résultat semblable à celui-ci: TP 2 ESERVICES MME. LILIA SFAXI 5
  6. 6. 3. Création du processus métier avec BPEL Notre objectif maintenant est d'intégrer ce service dans un processus métier. Nous nous proposons donc de créer un processus métier très simple qui fait appel au service Concat et retourne son résultat. 1. Dans le dashboard, choisir BPEL Workflow. 2. Créer un nouveau processus BPEL synchrone, que vous appellerez ConcatBPEL. (Choisir la perspective BPEL pour pouvoir visionner les éléments nécessaires à la configuration de notre processus). Un fichier intitulé ConcatBPEL.bpel représente graphiquement le processus, qui a la forme suivante: TP 2 ESERVICES MME. LILIA SFAXI 6
  7. 7. 3. La palette à droite montre l'ensemble des activités et contrôles qu'on peut insérer dans le processus. Insérer dans l'ordre les tâches Sequence, Assign, Invoke et Assign à la place de la tâche obsolète “FIX_ME", modifier leurs noms pour obtenir un processus ayant cette forme: 4. Avant de configurer l'appel au service, il faut d'abord importer son fichier wsdl. Pour cela, faire un clic droit sur le projet du service web (ConcatService) et choisir Generate WSDL. Sauvegarder ce fichier dans le répertoire bpelContent du projet ConcatBPEL. 5. Configurer la tâche InvokeConcatService sous l'onglet Propriétés. Pour cela: a. Créer un nouveau Global Partner Link intitulé ConcatPL b. Dans la fenêtre qui apparaît, cliquer sur Add WSDL et choisir le fichier wsdl que vous venez d'importer. Sélectionner ensuite ConcatPortType dans la fenêtre Matches. c. Nommer le port type ConcatPT d. Nommer le rôle ConcatRole (n'oubliez pas de sélectionner ConcatPortType dans la fenêtre Port Type) e. Cliquer sur Finish f. Dans la fenêtre Properties, dans la case Quick Pick, double cliquer sur l'opération concat. Normalement, à ce stade, le symbole d’erreur sur cette tâche devrait disparaître. 6. Pour pouvoir associer les entrées du processus (reçues par la tâche receiveInput) aux paramètres d'entrée du service web, il faut suivre les étapes suivantes: TP 2 ESERVICES MME. LILIA SFAXI 7
  8. 8. a. Commencer par définir deux chaînes de caractères comme entrées au processus. Pour cela, double cliquer sur le fichier ConcatBPELArtifacts.wsdl, sous le répertoire bpelContent du projet. b. Cliquer sur la flèche à droite du rectangle ConcatBPEL, devant input. c. Ajouter une autre entrée au RequestType de type String, comme suit: d. Maintenant, revenir à l'onglet Properties de l'élément AssignInputs. Dans la partie Details, cliquer sur New. e. Ajouter une assignation allant de la première entrée du processus BPEL vers le premier paramètre de la requête du service web Concat. Refaire la même chose pour la deuxième entrée et le deuxième paramètre. Quand la fenêtre suivante apparaît: TP 2 ESERVICES MME. LILIA SFAXI 8
  9. 9. Cliquer sur Yes. Et garder l'assignation générée. f. Refaire la même opération pour assigner la sortie du service web à celle du processus. 7. Pour finir, dans le fichier deploy.xml, associer le port ConcatBPELPort au client, et le port ConcatHttpSOAP11Endpoint à ConcatPL. Exporter le projet sous forme d'archive zip, que vous sauvegarderez à l'endroit de votre choix. 4. Déploiement et Test du Processus Métier Une fois le serveur WSO2-BPS démarré, ouvrir la page d'administration à l'adresse: https://localhost:9443/carbon/admin/index.jsp3 Ajouter un nouveau Processus BPEL en cliquant sur Add (sous la rubrique Processus). Charger l'archive du projet ConcatBPEL que vous venez de générer. Ce fichier a simplement été copié sous le répertoire : <rep_install_wso2bps>/repository/deployment/server/bpel Vous verrez bientôt dans la liste des processus déployés votre ConcatBPEL. Cliquer sur le process ID, une fenêtre montrant les détails du processus s'affichera. Login: admin, Mot de passe: admin3 TP 2 ESERVICES MME. LILIA SFAXI 9
  10. 10. Cliquer surTry It, pour tester votre processus: Vous pourrez également utiliser SOAPUI pour le tester. Pour retrouver l'URL du WSDL du processus BPEL, cliquer sur WSDL1.1 dans la rubrique WSDL Details de la page d'information du processus. Activité Modifier votre processus pour ajouter un appel à un autre service, qui rajoute un point d'exclamation à la fin de la chaîne concaténée. TP 2 ESERVICES MME. LILIA SFAXI 10
  11. 11. III. Homework Créer une application SOA de demande de prêt qui permet de réaliser les opérations suivantes: • Saisir les données de l’utilisateur : Nom, prénom, âge, sexe, salaire, montant demandé. • Vérifier si l’utilisateur a le droit d’avoir un prêt ou pas. Un utilisateur a le droit d’avoir un prêt si: - Son âge est compris entre 18 et 65 ans. - Son salaire est supérieur à 600dt - S’il peut rembourser son dû avant ses 70 ans (le montant demandé doit être supérieur à la limite = salaire annuel * (70 – âge) * 0,5) • L’application doit afficher le nom et prénom de l’utilisateur, la réponse (Prêt accepté ou pas) et la raison du rejet si le prêt est refusé. • Votre application doit comporter au moins deux services externes invoqués, puis stocker les informations de la demande ainsi que la réponse dans une base de données. Exemple de réponse : Mr Flen Fouleni – Demande de Prêt REFUSÉE. Raison : Vous avez dépassé la limite d’âge autorisée. TP 2 ESERVICES MME. LILIA SFAXI 11

×