SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Institut National des Sciences Appliquées et de Technologie Tunisie

E-Services
2013-2014

TP2- CONCEPTION
D’UNE APPLICATION
SOA
Dr. Lilia SFAXI
Objectifs du TP : Création de d’une application SOA Composite
en utilisant BPEL et Netbeans
TP2 – CONCEPTION D’UNE APPLICATION SOA

I. Conception
d’applications
l’environnement Netbeans

SOA

dans

L’objectif principal de ce TP est de vous aider à concevoir une application SOA en
utilisant l’environnement Netbeans et le serveur Glassfish.

Pour cela, nous devons

connaitre un certain nombre de concepts.

I.1 OpenESB
OpenESB1 est un projet qu fournit des outils ESB faciles d’utilisation pour la conception, le
développement, le test et le déploiement d’applications SOA.

I.2 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 Netbeans fournissent un environnement
graphique BPEL rendant ainsi la création de ces applications encore plus intuitive. La
Figure 1 montre un exemple de processus BPEL dévloppé avec l’outil graphique de
Netbens.

1

OpenESB : Open Enterprise Service Bus : http://www.open-esb.net

Page 1
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 1 : Exemple de processus BPEL avec les outils graphiques de Netbeans

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, qui peuvent ê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 renvoient 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 1, 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…). Cette affectation est représentée par un
autre outil Netbeans : Le BPEL Mapper (voir la Figure 2)

Page 2
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 2 : Le Netbeans BPEL Mapper

I.3 Applications Composites et JBI
Une application composite permet de rassembler la logique métier et les sources de
données à partir de plusieurs systèmes sous-jacents. Elle peut être associée à un ou
plusieurs processus métier, et peut rassembler plusieurs étapes en présentant au client à
travers une interface unique. Au sein de ce type d’application, et comme exigé par les
architectures SOA, il est possible de remplacer ou de mettre à jour des composants
individuels d’une application sans affecter d’autres composants. Dans l’environnement
Netbeans,

ce

type

d’application

est

déployé

comme

un

module

JBI,

dans

l’environnement d’exécution de JBI fourni par Glassfish.
JBI (Java Business Integration) est une norme édictée dans la JSR208, basée sur une
approche SOA. Elle définit une architecture permettant la mise en place de solutions
d’integration, basées sur l’utilisation de composants qui communiquent via des messages.
JBI définit une partie d’un ESB: le conteneur de services, responsible de la vraie
intégration. C’est l’endroit où des composants informatiques (comme des applications,
protocoles, bases de données ou même fichiers de données) sont transformés en
fournisseurs et/ou consommateurs de services. Il définit les services sous forme de fichiers
WSDL.

Page 3
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 3 : Composition de l’environnement JBI

JBI définit un ensemble de composants (représentés dans la ……):
-

Normalized Message Router : routeur responsable de gérer la communication
entre plusieurs composants JBI. Il permet le couplage lâche entre ces composants.

-

Service Engines : composants JBI qui fournissent (et consomment) la logique
métier et les services de transformation vers les autres composants. Plusieurs SE
sont disponibles dans l’environnement JBI, tels que BPEL SE pour l’orchestration des
services métiers, JEE SE pour la consommation de services web JEE, SQL SE pour
l’exécution des requêtes SQL…

-

Binding Components : composants JBI qui permettent la communication avec les
services externes, indépendamment du protocole utilisé. Ils permettent de
convertir un message vers un protocole standard, pour être manipulé par les
autres composants JBI. Exemples de BC: File BC, pour la lecture/écriture à partir de
fichiers, SMTP BC pour le support des emails, SOAP BC pour l’envoi et la réception
de messages en utilisant le protocole SOAP…

II. Ma première application SOA: Helloworld
Dans cette première application, nous allons réaliser les tâches suivantes:
-

Définir un processus métier BPEL permettant la lecture en entrée d’une chaine de
caractères, sa concaténation avec une autre chaine et l’envoi du résultat en
sortie.

Page 4
TP2 – CONCEPTION D’UNE APPLICATION SOA
-

Définir une application composite qui appelle de processus BPEL, lui donne en
entrée une requête SOAP contenant la chaîne initiale, et recevant en sortie une
réponse SOAP avec les deux chaînes concaténées.

-

Définir ensuite un service Web externe qui va réaliser la concaténation. Il sera par
la suite invoqué par le processus BPEL.

Pour cela, vous aurez besoin des outils OpenESB, que vous trouverez en bundle dans le
site officiel (http://www.open-esb.net ) . Nous avons utilisé pour ce TP la version 2.3.

II.1 Création du processus métier avec BPEL
Pour créer un nouveau processus BPEL:
-

Aller vers New Project, choisir la catégorie SOA puis BPEL Module.

-

Choisir HelloWorldBPEL comme nom de projet.

Vous obtiendrez le résultat suivant:

Figure 4 : Application HelloWorld : BPEL

Dans la palette à droite, vous trouverez les différentes activités que vous pourrez ajouter à
votre processus. Pour l’instant, nous commençons par créer les Services Partenaires avec
lesquels ce processus va interagir.

Page 5
TP2 – CONCEPTION D’UNE APPLICATION SOA
Le service qui va fournir les entrées au processus sera décrit pas un fichier WSDL. Mais
avant, pour la bonne pratique, nous allons réaliser un fichier XSD (XML Schéma Definition)
dans lequel nous définissons les types de messages qui seront échangés dans ce
processus.
Dans le cas de l’application HelloWorld, deux messages seront échangés: un message en
entrée, de type chaîne de caractères, qu’on appellera input, et un message en sortie,
de type chaîne de caractères, qu’on appellera output.
Pour créer un nouveau fichier XSD:
-

Faire un clic droit sur le répertoire Process Files de votre application BPEL, et choisir
New à XML Schema

-

Appeler ce schéma HelloworldXSD

-

Dans la fenêtre qui apparaît, choisir l’onglet Design pour une représentation
graphique de votre schéma.

-

Pour créer des types complexes, faites glisser Complex Type à partir de la palette
vers le champ Complex Types. Définir deux types complexes InputType et
OutputType, avec chacun un élément simple, respectivement inputString et
outputString de type string.

Remarque : Pour cet exemple, bien sûr, la création d’un type complexe est obsolète, car
il contient juste un élément chaîne de caractères, mais ces étapes peuvent être utiles
pour des applications avec des types plus élaborés de messages, contenant plusieurs
champs.
-

Créer ensuite deux éléments simples : input et Output, de types respectifs
InputType et OutputType.

Votre fenêtre aura alors l’allure suivante:

Page 6
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 5 : Application Helloworld : Schéma XML

On peut ensuite créer le fichier WSDL approprié.
-

Faire un clic droit sur Process Files et choisir New à WSDL Document

-

Appeler ce fichier HelloworldWSDL

-

Dans la partie Abstract Configuration, définir le type des entrées et des sorties
respectivement dans les cases Input et Output, comme suit:

Figure 6 : Application Helloworld : Création du Fichier WSDL

Page 7
TP2 – CONCEPTION D’UNE APPLICATION SOA
Une fois le fichier créé, son apparence devra ressembler à ce qui suit.

Figure 7 : Application Helloworld : Fichier WSDL

Pour créer le processus BPEL:
-

Ouvrir le fichier HelloworldBPEL et choisir l’onglet Design.

-

Faire glisser le fichier WSDL créé dans la fenêtre principale. Des cercles oranges
apparaitront aux endroits où il est possible de placer le fichier: prenez soin de le
placer à gauche du processus helloworldBPEL. Un nouveau Partner Link sera créé.
Le renommer HWInput.

-

A partir de la palette de droite, faire glisser respectivement les activités suivantes
entre les activités Process Start et Process Stop:
o

Receive : pour saisir la chaîne en entrée à partir du service décrit par
HelloWorldWSDL. Double-clquer sur cette activité pour la configurer.
Préciser le Partner Link à partir duquel les données seront reçues (HWInput),
l’opération visée (HelloworldWSDLOperation) et générer la variable en
entrée en cliquant sur le bouton Create. La fenêtre aura l’apparence
suivante :

Page 8
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 8 : Application Helloworld : Configuration de l'activité Receive

o

Reply : pour envoyer le résultat du processus au service client. Le configurer
de la même manière que l’activité Receive.

-

Insérer entre ces deux activités une activité Assign : elle permet d’affecter les
variables en entrée aux variables en sortie du processus. Pour configurer cette
activité, double-cliquer dessus. Une fenêtre BPEL Mapper s’ouvrira.
o

Le but est de concaténer la chaîne en entrée avec la chaîne Hello. Pour
cela, cliquer sur le bouton String sur le menu supérieur, et choisir String
Litteral. Le faire glisser dans la fenêtre principale, et écrire la chaîne “Hello “.

o

Faire glisser de la même manière StringàConcat dans la fenêtre principale.

o

Relier les différents éléments de manière à obtenir le mapping suivant:

Figure 9 : Application Helloworld : BPEL Mapper

Votre processus aura alors l’allure suivante:

Page 9
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 10 : Application Helloworld : Processus BPEL final

II.2 Création de l’Application Composite
Pour créer l’application composite:
-

Choisir New Project à SOA à Composite Application

-

La nommer HelloWorldComposite

-

Double-cliquer sur Service Assembly pour voir l’assemblage des différents services
de l’application. La fenêtre est divisée en 3 parties: une pour les ports WSDL, une
pour les modules JBI, et une autre pour les modules externes.

Figure 11 : Application Helloworld : Composite Application

Page 10
TP2 – CONCEPTION D’UNE APPLICATION SOA
-

Faire glisser votre application HelloworldBPEL dans la partie JBI Modules. Cliquer sur
Build pour voir son contenu.

-

Faire glisser un binding SOAP de la palette de droite dans la partie WSDL Ports.

-

Relier ce binding au module BPEL comme indiqué sur la figure suivante.:

Figure 12 : Application Helloworld : Composite Application finale

-

Enregistrer et Deployer votre application,

II.3 Test de l’application composite
Une fois votre application déployée, il possible de la tester.
-

Cliquer avec le bouton droit sur le répertoire Test de l’application composite, et
choisir: New Test Case. L’appeler: HelloworldTest

-

Dans la fenêtre suivante, choisir le fichier WSDL de votre application composite,
puis l’opération HelloworldWSDLOperation.

-

Double cliquer sur le fichier Input créé. Modifier la chaîne en entrée avec le mot:
World!

-

Clic-droit sur HelloworldTest et lancer le test. Normalement, la fenêtre d’erreur
suivante va apparaître:

-

Cette fenêtre indique que le test n’est pas réussi, car la sortie obtenue ne
correspond pas à la sortie attendue. En effet, le fichier Output du HelloworldTest,
étant resté vide, n’a pas montré le résultat correct que vous attendiez. En cliquant

Page 11
TP2 – CONCEPTION D’UNE APPLICATION SOA
sur Yes, ce fichier sera rempli avec le résultat obtenu, et une deuxième exécution
du test devra indiquer que le test est réussi.

Figure 13 : Application Helloworld : Test Réussi

II.4 Appel d’un service web externe
Le but maintenant est de réaliser la concaténation dans un service web externe, au lieu
de l’implémenter directement dans le processus BPEL. Pour faire cela, suivre les étapes
suivantes:
-

Créer un nouveau service web intitulé Concat (comme appris dans le TP
précédent). Ce service contient une seule opération, concat, qui saisit deux
chaînes de caractères, et retourne leur concaténation. Enregistrer et Déployer
votre service.

-

Pour représenter un nouveau service web dans le processus BPEL, il faut le
représenter sous forme de fichier WSDL. Faire un clic-droit sur Process Files de
l’application HelloworldBPEL, et choisir New à External WSDL Document(s)

-

Lui donner comme URL le chemin vers le fichier WSDL de votre service web
Concat

-

Faire glisser ensuite votre fichier WSDL importé vers la partie droite de la fenêtre
principale. Il est important de le placer à droite, car c’est un service qui est
invoqué par le processus, pas un service client.

-

Page 12

Nommer le partner Link créé : ConcatLink, comme suit:
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 14 : Application Helloworld : Configuration du Partner Link

-

Dans le processus BPEL, supprimer l’activité Assign.

-

Faire glisser ensuite l’activité Invoke entre les activités Receive et Reply. Elle
permet de faire appel à un service externe.

-

Page 13

Configurer l’activité Invoke comme indiqué dans la figure suivante:
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 15 : Application Helloworld : Configuration du Invoke

-

Insérer ensuite deux activités Assign, respectivement entre Receive et Invoke, et
entre Invoke et Reply.

-

Configurer le premier Assign comme suit:

Figure 16 : Application Helloworld : Appel au service Concat

-

Configurer ensuite le deuxième Assign en associant les deux variables de retour.

-

Le processus obtenu aura alors l’allure suivante:

Page 14
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 17 : Application Helloworld : Processus BPEL final avec invocation de service externe

-

Revenir à votre application composite, et la mettre à jour. Elle devra avoir l’allure
suivante:

Page 15
TP2 – CONCEPTION D’UNE APPLICATION SOA

Figure 18 : Application Helloworld : Application composite avec appel de service externe

-

Tester votre application Helloworld.

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:
o

Son âge est compris entre 18 et 65 ans.

o

Son salaire est supérieur à 600dt

o

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 un service externe invoqué, 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.

Page 16

Contenu connexe

Tendances

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
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esbAlahyane Ahmed
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
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
 
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
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESBLilia Sfaxi
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseLilia Sfaxi
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)Heithem Abbes
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Heithem Abbes
 

Tendances (20)

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
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
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 Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Struts
StrutsStruts
Struts
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esb
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation 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
 
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
 
Java RMI
Java RMIJava RMI
Java RMI
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
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
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
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
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 

En vedette

SOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGSOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGMarc Dutoo
 
Trouver son système informatique idéal !
Trouver son système informatique idéal !Trouver son système informatique idéal !
Trouver son système informatique idéal !mireillelimousiirabor
 
La SOA au sein des systèmes d'information
La SOA au sein des systèmes d'informationLa SOA au sein des systèmes d'information
La SOA au sein des systèmes d'informationFourat Zouari
 
ML2 et le Codetributhon
ML2 et le CodetributhonML2 et le Codetributhon
ML2 et le CodetributhonLuc Trudeau
 
Orchestre de services
Orchestre de servicesOrchestre de services
Orchestre de servicesLuc Trudeau
 
Alfresco P Tardif V1 0 Mars 2009
Alfresco   P Tardif V1 0   Mars 2009Alfresco   P Tardif V1 0   Mars 2009
Alfresco P Tardif V1 0 Mars 2009tardifpa
 
Business Process Execution Language (BPEL)
Business Process Execution Language (BPEL)Business Process Execution Language (BPEL)
Business Process Execution Language (BPEL)Richard Claassens CIPPE
 
Detection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL PerspectiveDetection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL PerspectiveFrancis Palma
 
Introduction to business process execution language
Introduction to business process execution languageIntroduction to business process execution language
Introduction to business process execution languagePatel Saunak
 
Quality Assurance and Testing of Automated Business Processes
Quality Assurance and Testing of Automated Business ProcessesQuality Assurance and Testing of Automated Business Processes
Quality Assurance and Testing of Automated Business ProcessesTammo van Lessen
 
Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0Tammo van Lessen
 
Formalizing Message Exchange Patterns using BPEL light
Formalizing Message Exchange Patterns using BPEL lightFormalizing Message Exchange Patterns using BPEL light
Formalizing Message Exchange Patterns using BPEL lightTammo van Lessen
 
Offrir de l'analytique en temps réel en un clic
Offrir de l'analytique en temps réel en un clicOffrir de l'analytique en temps réel en un clic
Offrir de l'analytique en temps réel en un clicJean-Michel Franco
 
Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2Catherine Nuel
 
Cas d'usages d'un ESB - Petals Link - 2011
Cas d'usages d'un ESB - Petals Link - 2011Cas d'usages d'un ESB - Petals Link - 2011
Cas d'usages d'un ESB - Petals Link - 2011Petals Link
 
Business Process Management with BPMN & BPEL
Business Process Management  with BPMN & BPELBusiness Process Management  with BPMN & BPEL
Business Process Management with BPMN & BPELTammo van Lessen
 

En vedette (20)

GlassFish ESB and OpenESB
GlassFish ESB and OpenESBGlassFish ESB and OpenESB
GlassFish ESB and OpenESB
 
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGSOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
 
Trouver son système informatique idéal !
Trouver son système informatique idéal !Trouver son système informatique idéal !
Trouver son système informatique idéal !
 
La SOA au sein des systèmes d'information
La SOA au sein des systèmes d'informationLa SOA au sein des systèmes d'information
La SOA au sein des systèmes d'information
 
ML2 et le Codetributhon
ML2 et le CodetributhonML2 et le Codetributhon
ML2 et le Codetributhon
 
Orchestre de services
Orchestre de servicesOrchestre de services
Orchestre de services
 
Rôles Alfresco
Rôles AlfrescoRôles Alfresco
Rôles Alfresco
 
Alfresco P Tardif V1 0 Mars 2009
Alfresco   P Tardif V1 0   Mars 2009Alfresco   P Tardif V1 0   Mars 2009
Alfresco P Tardif V1 0 Mars 2009
 
Business Process Execution Language (BPEL)
Business Process Execution Language (BPEL)Business Process Execution Language (BPEL)
Business Process Execution Language (BPEL)
 
Detection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL PerspectiveDetection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL Perspective
 
Web Service Orchestration
Web Service OrchestrationWeb Service Orchestration
Web Service Orchestration
 
Introduction to business process execution language
Introduction to business process execution languageIntroduction to business process execution language
Introduction to business process execution language
 
Quality Assurance and Testing of Automated Business Processes
Quality Assurance and Testing of Automated Business ProcessesQuality Assurance and Testing of Automated Business Processes
Quality Assurance and Testing of Automated Business Processes
 
Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0
 
Formalizing Message Exchange Patterns using BPEL light
Formalizing Message Exchange Patterns using BPEL lightFormalizing Message Exchange Patterns using BPEL light
Formalizing Message Exchange Patterns using BPEL light
 
Offrir de l'analytique en temps réel en un clic
Offrir de l'analytique en temps réel en un clicOffrir de l'analytique en temps réel en un clic
Offrir de l'analytique en temps réel en un clic
 
Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2
 
Cas d'usages d'un ESB - Petals Link - 2011
Cas d'usages d'un ESB - Petals Link - 2011Cas d'usages d'un ESB - Petals Link - 2011
Cas d'usages d'un ESB - Petals Link - 2011
 
Business Process Management with BPMN & BPEL
Business Process Management  with BPMN & BPELBusiness Process Management  with BPMN & BPEL
Business Process Management with BPMN & BPEL
 
Logging & Metrics
Logging & Metrics  Logging & Metrics
Logging & Metrics
 

Similaire à OpenESB et BPEL

Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDaniella Mbuta
 
Presentation bpel
Presentation bpelPresentation bpel
Presentation bpelAnasse Ej
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
Business process execution language
Business process execution languageBusiness process execution language
Business process execution languageBilel Abed
 
Rapport MS Exchange 2010
Rapport MS Exchange 2010Rapport MS Exchange 2010
Rapport MS Exchange 2010Majid CHADAD
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsSoirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsNormandy JUG
 
GlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUGGlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUGCh'ti JUG
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Data Quality et SOA
Data Quality et SOAData Quality et SOA
Data Quality et SOAUniserv
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
 
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
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3Abdessamad Hamouch
 
CV Template Jun 15 WD French - Jeremie Simonet
CV Template Jun 15 WD French - Jeremie SimonetCV Template Jun 15 WD French - Jeremie Simonet
CV Template Jun 15 WD French - Jeremie SimonetJérémie Simonet
 

Similaire à OpenESB et BPEL (20)

.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
 
Presentation bpel
Presentation bpelPresentation bpel
Presentation bpel
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
Business process execution language
Business process execution languageBusiness process execution language
Business process execution language
 
Rapport MS Exchange 2010
Rapport MS Exchange 2010Rapport MS Exchange 2010
Rapport MS Exchange 2010
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Biztalk
BiztalkBiztalk
Biztalk
 
CV Marc de Leijer FR
CV Marc de Leijer FRCV Marc de Leijer FR
CV Marc de Leijer FR
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsSoirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
 
GlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUGGlassFish ESB Ch'ti JUG
GlassFish ESB Ch'ti JUG
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Data Quality et SOA
Data Quality et SOAData Quality et SOA
Data Quality et SOA
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
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
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3
 
CV Template Jun 15 WD French - Jeremie Simonet
CV Template Jun 15 WD French - Jeremie SimonetCV Template Jun 15 WD French - Jeremie Simonet
CV Template Jun 15 WD French - Jeremie Simonet
 

Plus 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 - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Plus 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 - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

OpenESB et BPEL

  • 1. Institut National des Sciences Appliquées et de Technologie Tunisie E-Services 2013-2014 TP2- CONCEPTION D’UNE APPLICATION SOA Dr. Lilia SFAXI Objectifs du TP : Création de d’une application SOA Composite en utilisant BPEL et Netbeans
  • 2. TP2 – CONCEPTION D’UNE APPLICATION SOA I. Conception d’applications l’environnement Netbeans SOA dans L’objectif principal de ce TP est de vous aider à concevoir une application SOA en utilisant l’environnement Netbeans et le serveur Glassfish. Pour cela, nous devons connaitre un certain nombre de concepts. I.1 OpenESB OpenESB1 est un projet qu fournit des outils ESB faciles d’utilisation pour la conception, le développement, le test et le déploiement d’applications SOA. I.2 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 Netbeans fournissent un environnement graphique BPEL rendant ainsi la création de ces applications encore plus intuitive. La Figure 1 montre un exemple de processus BPEL dévloppé avec l’outil graphique de Netbens. 1 OpenESB : Open Enterprise Service Bus : http://www.open-esb.net Page 1
  • 3. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 1 : Exemple de processus BPEL avec les outils graphiques de Netbeans 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, qui peuvent ê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 renvoient 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 1, 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…). Cette affectation est représentée par un autre outil Netbeans : Le BPEL Mapper (voir la Figure 2) Page 2
  • 4. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 2 : Le Netbeans BPEL Mapper I.3 Applications Composites et JBI Une application composite permet de rassembler la logique métier et les sources de données à partir de plusieurs systèmes sous-jacents. Elle peut être associée à un ou plusieurs processus métier, et peut rassembler plusieurs étapes en présentant au client à travers une interface unique. Au sein de ce type d’application, et comme exigé par les architectures SOA, il est possible de remplacer ou de mettre à jour des composants individuels d’une application sans affecter d’autres composants. Dans l’environnement Netbeans, ce type d’application est déployé comme un module JBI, dans l’environnement d’exécution de JBI fourni par Glassfish. JBI (Java Business Integration) est une norme édictée dans la JSR208, basée sur une approche SOA. Elle définit une architecture permettant la mise en place de solutions d’integration, basées sur l’utilisation de composants qui communiquent via des messages. JBI définit une partie d’un ESB: le conteneur de services, responsible de la vraie intégration. C’est l’endroit où des composants informatiques (comme des applications, protocoles, bases de données ou même fichiers de données) sont transformés en fournisseurs et/ou consommateurs de services. Il définit les services sous forme de fichiers WSDL. Page 3
  • 5. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 3 : Composition de l’environnement JBI JBI définit un ensemble de composants (représentés dans la ……): - Normalized Message Router : routeur responsable de gérer la communication entre plusieurs composants JBI. Il permet le couplage lâche entre ces composants. - Service Engines : composants JBI qui fournissent (et consomment) la logique métier et les services de transformation vers les autres composants. Plusieurs SE sont disponibles dans l’environnement JBI, tels que BPEL SE pour l’orchestration des services métiers, JEE SE pour la consommation de services web JEE, SQL SE pour l’exécution des requêtes SQL… - Binding Components : composants JBI qui permettent la communication avec les services externes, indépendamment du protocole utilisé. Ils permettent de convertir un message vers un protocole standard, pour être manipulé par les autres composants JBI. Exemples de BC: File BC, pour la lecture/écriture à partir de fichiers, SMTP BC pour le support des emails, SOAP BC pour l’envoi et la réception de messages en utilisant le protocole SOAP… II. Ma première application SOA: Helloworld Dans cette première application, nous allons réaliser les tâches suivantes: - Définir un processus métier BPEL permettant la lecture en entrée d’une chaine de caractères, sa concaténation avec une autre chaine et l’envoi du résultat en sortie. Page 4
  • 6. TP2 – CONCEPTION D’UNE APPLICATION SOA - Définir une application composite qui appelle de processus BPEL, lui donne en entrée une requête SOAP contenant la chaîne initiale, et recevant en sortie une réponse SOAP avec les deux chaînes concaténées. - Définir ensuite un service Web externe qui va réaliser la concaténation. Il sera par la suite invoqué par le processus BPEL. Pour cela, vous aurez besoin des outils OpenESB, que vous trouverez en bundle dans le site officiel (http://www.open-esb.net ) . Nous avons utilisé pour ce TP la version 2.3. II.1 Création du processus métier avec BPEL Pour créer un nouveau processus BPEL: - Aller vers New Project, choisir la catégorie SOA puis BPEL Module. - Choisir HelloWorldBPEL comme nom de projet. Vous obtiendrez le résultat suivant: Figure 4 : Application HelloWorld : BPEL Dans la palette à droite, vous trouverez les différentes activités que vous pourrez ajouter à votre processus. Pour l’instant, nous commençons par créer les Services Partenaires avec lesquels ce processus va interagir. Page 5
  • 7. TP2 – CONCEPTION D’UNE APPLICATION SOA Le service qui va fournir les entrées au processus sera décrit pas un fichier WSDL. Mais avant, pour la bonne pratique, nous allons réaliser un fichier XSD (XML Schéma Definition) dans lequel nous définissons les types de messages qui seront échangés dans ce processus. Dans le cas de l’application HelloWorld, deux messages seront échangés: un message en entrée, de type chaîne de caractères, qu’on appellera input, et un message en sortie, de type chaîne de caractères, qu’on appellera output. Pour créer un nouveau fichier XSD: - Faire un clic droit sur le répertoire Process Files de votre application BPEL, et choisir New à XML Schema - Appeler ce schéma HelloworldXSD - Dans la fenêtre qui apparaît, choisir l’onglet Design pour une représentation graphique de votre schéma. - Pour créer des types complexes, faites glisser Complex Type à partir de la palette vers le champ Complex Types. Définir deux types complexes InputType et OutputType, avec chacun un élément simple, respectivement inputString et outputString de type string. Remarque : Pour cet exemple, bien sûr, la création d’un type complexe est obsolète, car il contient juste un élément chaîne de caractères, mais ces étapes peuvent être utiles pour des applications avec des types plus élaborés de messages, contenant plusieurs champs. - Créer ensuite deux éléments simples : input et Output, de types respectifs InputType et OutputType. Votre fenêtre aura alors l’allure suivante: Page 6
  • 8. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 5 : Application Helloworld : Schéma XML On peut ensuite créer le fichier WSDL approprié. - Faire un clic droit sur Process Files et choisir New à WSDL Document - Appeler ce fichier HelloworldWSDL - Dans la partie Abstract Configuration, définir le type des entrées et des sorties respectivement dans les cases Input et Output, comme suit: Figure 6 : Application Helloworld : Création du Fichier WSDL Page 7
  • 9. TP2 – CONCEPTION D’UNE APPLICATION SOA Une fois le fichier créé, son apparence devra ressembler à ce qui suit. Figure 7 : Application Helloworld : Fichier WSDL Pour créer le processus BPEL: - Ouvrir le fichier HelloworldBPEL et choisir l’onglet Design. - Faire glisser le fichier WSDL créé dans la fenêtre principale. Des cercles oranges apparaitront aux endroits où il est possible de placer le fichier: prenez soin de le placer à gauche du processus helloworldBPEL. Un nouveau Partner Link sera créé. Le renommer HWInput. - A partir de la palette de droite, faire glisser respectivement les activités suivantes entre les activités Process Start et Process Stop: o Receive : pour saisir la chaîne en entrée à partir du service décrit par HelloWorldWSDL. Double-clquer sur cette activité pour la configurer. Préciser le Partner Link à partir duquel les données seront reçues (HWInput), l’opération visée (HelloworldWSDLOperation) et générer la variable en entrée en cliquant sur le bouton Create. La fenêtre aura l’apparence suivante : Page 8
  • 10. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 8 : Application Helloworld : Configuration de l'activité Receive o Reply : pour envoyer le résultat du processus au service client. Le configurer de la même manière que l’activité Receive. - Insérer entre ces deux activités une activité Assign : elle permet d’affecter les variables en entrée aux variables en sortie du processus. Pour configurer cette activité, double-cliquer dessus. Une fenêtre BPEL Mapper s’ouvrira. o Le but est de concaténer la chaîne en entrée avec la chaîne Hello. Pour cela, cliquer sur le bouton String sur le menu supérieur, et choisir String Litteral. Le faire glisser dans la fenêtre principale, et écrire la chaîne “Hello “. o Faire glisser de la même manière StringàConcat dans la fenêtre principale. o Relier les différents éléments de manière à obtenir le mapping suivant: Figure 9 : Application Helloworld : BPEL Mapper Votre processus aura alors l’allure suivante: Page 9
  • 11. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 10 : Application Helloworld : Processus BPEL final II.2 Création de l’Application Composite Pour créer l’application composite: - Choisir New Project à SOA à Composite Application - La nommer HelloWorldComposite - Double-cliquer sur Service Assembly pour voir l’assemblage des différents services de l’application. La fenêtre est divisée en 3 parties: une pour les ports WSDL, une pour les modules JBI, et une autre pour les modules externes. Figure 11 : Application Helloworld : Composite Application Page 10
  • 12. TP2 – CONCEPTION D’UNE APPLICATION SOA - Faire glisser votre application HelloworldBPEL dans la partie JBI Modules. Cliquer sur Build pour voir son contenu. - Faire glisser un binding SOAP de la palette de droite dans la partie WSDL Ports. - Relier ce binding au module BPEL comme indiqué sur la figure suivante.: Figure 12 : Application Helloworld : Composite Application finale - Enregistrer et Deployer votre application, II.3 Test de l’application composite Une fois votre application déployée, il possible de la tester. - Cliquer avec le bouton droit sur le répertoire Test de l’application composite, et choisir: New Test Case. L’appeler: HelloworldTest - Dans la fenêtre suivante, choisir le fichier WSDL de votre application composite, puis l’opération HelloworldWSDLOperation. - Double cliquer sur le fichier Input créé. Modifier la chaîne en entrée avec le mot: World! - Clic-droit sur HelloworldTest et lancer le test. Normalement, la fenêtre d’erreur suivante va apparaître: - Cette fenêtre indique que le test n’est pas réussi, car la sortie obtenue ne correspond pas à la sortie attendue. En effet, le fichier Output du HelloworldTest, étant resté vide, n’a pas montré le résultat correct que vous attendiez. En cliquant Page 11
  • 13. TP2 – CONCEPTION D’UNE APPLICATION SOA sur Yes, ce fichier sera rempli avec le résultat obtenu, et une deuxième exécution du test devra indiquer que le test est réussi. Figure 13 : Application Helloworld : Test Réussi II.4 Appel d’un service web externe Le but maintenant est de réaliser la concaténation dans un service web externe, au lieu de l’implémenter directement dans le processus BPEL. Pour faire cela, suivre les étapes suivantes: - Créer un nouveau service web intitulé Concat (comme appris dans le TP précédent). Ce service contient une seule opération, concat, qui saisit deux chaînes de caractères, et retourne leur concaténation. Enregistrer et Déployer votre service. - Pour représenter un nouveau service web dans le processus BPEL, il faut le représenter sous forme de fichier WSDL. Faire un clic-droit sur Process Files de l’application HelloworldBPEL, et choisir New à External WSDL Document(s) - Lui donner comme URL le chemin vers le fichier WSDL de votre service web Concat - Faire glisser ensuite votre fichier WSDL importé vers la partie droite de la fenêtre principale. Il est important de le placer à droite, car c’est un service qui est invoqué par le processus, pas un service client. - Page 12 Nommer le partner Link créé : ConcatLink, comme suit:
  • 14. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 14 : Application Helloworld : Configuration du Partner Link - Dans le processus BPEL, supprimer l’activité Assign. - Faire glisser ensuite l’activité Invoke entre les activités Receive et Reply. Elle permet de faire appel à un service externe. - Page 13 Configurer l’activité Invoke comme indiqué dans la figure suivante:
  • 15. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 15 : Application Helloworld : Configuration du Invoke - Insérer ensuite deux activités Assign, respectivement entre Receive et Invoke, et entre Invoke et Reply. - Configurer le premier Assign comme suit: Figure 16 : Application Helloworld : Appel au service Concat - Configurer ensuite le deuxième Assign en associant les deux variables de retour. - Le processus obtenu aura alors l’allure suivante: Page 14
  • 16. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 17 : Application Helloworld : Processus BPEL final avec invocation de service externe - Revenir à votre application composite, et la mettre à jour. Elle devra avoir l’allure suivante: Page 15
  • 17. TP2 – CONCEPTION D’UNE APPLICATION SOA Figure 18 : Application Helloworld : Application composite avec appel de service externe - Tester votre application Helloworld. 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: o Son âge est compris entre 18 et 65 ans. o Son salaire est supérieur à 600dt o 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 un service externe invoqué, 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. Page 16