Soa Exemple Application
Soa Exemple Application
Soa Exemple Application
de commencer à developper une application en java à partir d'un système vierge ou d'une
page blanche et
En général, il s'agit d'un un système composé de dizaines voire de centaines d'applications, qui
s'envoient des messages, communiquent et qui peuvent se trouver dans des serveurs locaux, dans
des serveurs distant ou dans le cloud.
Dans le SI (système d'information) d'une entreprise, chaque application peut avoir son propre
protocole de communication, ses propres formats de messages, etc.
Plusieurs questions peuvent alors se poser :
Comment créer votre application de façon à ce qu'elle communique parfaitement avec les
autres ?
Comment concevoir toutes les applications du SI dès le départ pour qu'elles communiquent
toutes via un protocole et un format standard et compris de tous ?
Comment éviter de réinventer le roue : savoir si certaines fonctionnalités existent déjà dans
d'autres applications ou chercher la possibilité de réutiliser certains composant afin d'éviter
la redondance ?
Comment savoir à quelle URL ou IP se situe telle ou telle application avec laquelle vous
voulez communiquer ?
Le but de cet exemple est de :
montrer comment une entreprise peut organiser son SI afin que toutes les applications
communiquent via un seul protocole (SOAP pour le cas de cet exemple)
apprendre à créer et tester les services dans le respect des normes SOA
NB : il ne vous est pas demandé de pouvoir créer une architecture SOA à partir de zéro mais plutôt
de pouvoir créer des services qui s'intègrent dans une architecture existante
Boutique en ligne : CMS dont le protocole de communication est XML via HTTP
ERP comptabilité : logiciel propriétaire dont le protocole de communication est CSV via
FTP et ficé par le constructeur
Service 2 : Reçoit des fichiers dans des formats populaires (CSV, XML, etc.) et les valide.
Service 3 : Reçoit en entrée un fichier CSV puis place les ordres de commandes ; Reçoit en
entrée une information de mise à jour de commande, puis met à jour le CSV de suivi des
commandes.
…
Service n :
Etape 3 – faire communiquer les composants 'Non SOAP' à l'aide d'un ESB
Problème : système incluant plusieurs composants logiciels qui ne communiquent pas via les
mêmes protocoles, qui ne sont pas écrits dans les mêmes langages et qui sont malgré tout
extrêmement dépendants les uns des autres.
Solution : utiliser un ESB (Enterprise Service Bus). L'ESB est un composant central qui se
positionnera comme un interlocuteur unique pour tous les composants du SI.
Ainsi, pour appeler un composant X, Il suffira d'envoyer une requête dans le protocole
choisi (SOAP dans notre cas) à l'ESB. Celui-ci s'occupera ensuite de faire le nécessaire pour
transformer le message et l'adapter avant de le transférer au composant demandé. Il fera ensuite la
même chose pour la réponse avant de la renvoyer.
Phase 3 – Implémentation du web-service
• le JDK Java 8.
• JAX-WS(Java API for XML Web Services ) - est une API de Java qui facilite la création de
web services. Il permet de cacher entièrement la complexité des communications impliquant
SOAP et WSDL.
• Côté web service : Quand un service externe appellera votre web service, il lui
passera un simple fichier XML aux normes SOAP. Sans JAX-WS, l'on devait
récupérer ce fichier et le parser pour essayer de comprendre quelles méthodes on
cherche à invoquer et quels sont les paramètres passés
• Côté client : JAX-WS vous dispense des longs fichiers XML lors de l'appel des
services web. Lorsque vous souhaitez appeler des web services, vous lui donnez
l'emplacement du WSDL du nouveau service auquel vous voulez faire appel et il se
charge de le parser et de créer des classes Java représentant le service en question.
L'appel des classes créées se fait naturellement comme l'appel dune classe en java.
•
Et retourne une réponse de type String correspondant au prénom et nombre d'années restant à vivre
(on suppose que l'espérance de vie des hommes est de 79 ans et celle des femmes est de 85 ans).
Le code source du web service est donc le suivant :
La mise à jour de maven (à travvers la mise à jour du fichier pon.xml) vise à ajouter deux plugins à
savoir :
• Le plugin maven-war-plugin qui permettra à Maven de déclencher les bonnes opérations qui
aboutiront au packaging du service en .war.
• Le plugin maven-compiler-plugin qui est le compilateur Java de Maven.
Vous devriez avoir un message Maven indiquant le succès de la commande dans l'onglet Run en bas
de la fenêtre.
Il est possible de vérifier la présence de votre service sous le nom lifeleft.war dans le
nouveau dossier Target créé dans votre projet. On peut donc à présent lancer le service SOAP
Le serveur Glassfish doit être démarré. Pour le vérifier, aller à http://localhost:4848 . Si tel n'est
pas le cas, veuillez le démarrer avant de poursuivre le déploiement
• Cliquer sur Applications dans le panneau de gauche puis cliquer sur Deploy dans la nouvelle
fenêtre.
• Sous « Packaged File to Be Uploaded to the Server » cliquer sur le bouton puis sélectionner
lifeleft.war sur votre ordinateur. Assurez-vous ensuite que Type: Web Application est choisi
• Une page avec 2 liens s'ouvre : un lien http et l'autre en https. Sélectionnez le premier (http).
Vous devez tomber sur une page avec le message "Hello World!". Ce message vient du
fichier index.jsp généré par défaut avec votre projet Maven.
Le service tourne sur le serveur glassfish. Pour le tester, ajoutez ?Tester à votre URL :
http://nomOrdinateur.local:8080/lifeleft6252936251939052664/LifeLeft?Tester
Vous retrouverez alors la méthode précédemment créée avec 3 champs correspondant aux trois
paramètres prénom, sexe et année de naissance.