SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
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
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
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
• 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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOALilia Sfaxi
 
Création de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBCréation de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBLilia Sfaxi
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServicesLilia Sfaxi
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Chp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesChp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesLilia Sfaxi
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaMariem ZAOUALI
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)Klee Group
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web servicesmohammed addoumi
 

La actualidad más candente (20)

Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOA
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Création de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBCréation de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESB
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Chp2 - SOA
Chp2 - SOAChp2 - SOA
Chp2 - SOA
 
Chp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesChp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de services
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corba
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Java RMI
Java RMIJava RMI
Java RMI
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web services
 

Destacado

eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESBLilia Sfaxi
 
eServices-Chp1: Introduction
eServices-Chp1: IntroductioneServices-Chp1: Introduction
eServices-Chp1: IntroductionLilia Sfaxi
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOALilia Sfaxi
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementLilia Sfaxi
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOALilia Sfaxi
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api managementLilia Sfaxi
 
eServices-Tp4: esb++
eServices-Tp4: esb++eServices-Tp4: esb++
eServices-Tp4: esb++Lilia Sfaxi
 
Chp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPChp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPLilia Sfaxi
 
Chp2 - Solutions ERP
Chp2 - Solutions ERPChp2 - Solutions ERP
Chp2 - Solutions ERPLilia Sfaxi
 
Getting Started with Real-time Analytics
Getting Started with Real-time AnalyticsGetting Started with Real-time Analytics
Getting Started with Real-time AnalyticsAmazon Web Services
 
Real Time Analytics: Algorithms and Systems
Real Time Analytics: Algorithms and SystemsReal Time Analytics: Algorithms and Systems
Real Time Analytics: Algorithms and SystemsArun Kejariwal
 
Big Data Real Time Applications
Big Data Real Time ApplicationsBig Data Real Time Applications
Big Data Real Time ApplicationsDataWorks Summit
 

Destacado (12)

eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
eServices-Chp1: Introduction
eServices-Chp1: IntroductioneServices-Chp1: Introduction
eServices-Chp1: Introduction
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOA
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API Management
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 
eServices-Tp4: esb++
eServices-Tp4: esb++eServices-Tp4: esb++
eServices-Tp4: esb++
 
Chp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPChp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERP
 
Chp2 - Solutions ERP
Chp2 - Solutions ERPChp2 - Solutions ERP
Chp2 - Solutions ERP
 
Getting Started with Real-time Analytics
Getting Started with Real-time AnalyticsGetting Started with Real-time Analytics
Getting Started with Real-time Analytics
 
Real Time Analytics: Algorithms and Systems
Real Time Analytics: Algorithms and SystemsReal Time Analytics: Algorithms and Systems
Real Time Analytics: Algorithms and Systems
 
Big Data Real Time Applications
Big Data Real Time ApplicationsBig Data Real Time Applications
Big Data Real Time Applications
 

Similar a eServices-Tp2: bpel

Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Rapport MS Exchange 2010
Rapport MS Exchange 2010Rapport MS Exchange 2010
Rapport MS Exchange 2010Majid CHADAD
 
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfRAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfSouf212
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esbAlahyane Ahmed
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
Architecture Client-Serveur
Architecture Client-Serveur Architecture Client-Serveur
Architecture Client-Serveur Khalid EDAIG
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Novencia Groupe
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationCellenza
 
E4 : Conception et maintenance de solutions informatiques
E4 : Conception et maintenance de solutions informatiquesE4 : Conception et maintenance de solutions informatiques
E4 : Conception et maintenance de solutions informatiquesChristopherHANOT
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxhachchaneemsi
 

Similar a eServices-Tp2: bpel (20)

Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Tutoriel web service
Tutoriel  web serviceTutoriel  web service
Tutoriel web service
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Rapport MS Exchange 2010
Rapport MS Exchange 2010Rapport MS Exchange 2010
Rapport MS Exchange 2010
 
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfRAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esb
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
Axis2 services fr
Axis2 services frAxis2 services fr
Axis2 services fr
 
Sécurisation des wcf
Sécurisation des wcfSécurisation des wcf
Sécurisation des wcf
 
Architecture Client-Serveur
Architecture Client-Serveur Architecture Client-Serveur
Architecture Client-Serveur
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid Integration
 
E4 : Conception et maintenance de solutions informatiques
E4 : Conception et maintenance de solutions informatiquesE4 : Conception et maintenance de solutions informatiques
E4 : Conception et maintenance de solutions informatiques
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptx
 

Más de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 
Android - Tp 5 - stockage de données
Android - Tp 5 -  stockage de donnéesAndroid - Tp 5 -  stockage de données
Android - Tp 5 - stockage de donnéesLilia Sfaxi
 

Más de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 
Android - Tp 5 - stockage de données
Android - Tp 5 -  stockage de donnéesAndroid - Tp 5 -  stockage de données
Android - Tp 5 - stockage de données
 

eServices-Tp2: bpel

  • 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. 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. 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. • 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. 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. 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. 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. 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. 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. 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. 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