Service Web – Serveur
Depuis le V5R4 (avec PTF) et la V6R1, IBM fourni un serveur de services web. Ce serveur permet d’exposer automatiquement un programme ou une procédure ILE existante sous forme de service web, et ce de manière automatique.
Pré-requis :
- Le programme, ou le module contenant la procédure, doit exister et être compilé avec génération des informations PCML (fichier à part, ou embarqué dans l’objet depuis le V6R1)
- Le serveur de service web existe (vous l’avez déjà créé). Dans le cas contraire, vous pouvez réalisez simplement cette opération via l’administration des serveurs web embarqués :
o En ligne de commande, pour démarrer l’administration : STRTCPSVR SERVER(*HTTP) HTTPSVR(*ADMIN)
o Puis, dans un navigateur : http://monas400:2001/HTTPAdmin
o Onglet « Setup » puis « Create a New Web Services Server »
Dans les exemples qui suivent, nous utilisons un serveur avec le paramétrage par défaut.
Exemple 1 : exposer un programme en tant que service web
Allez sur la console d’administration du serveur de service web (http://monas400:2001/HTTPAdmin).

Cliquez sur Deploy pour appeler l’assistant de déploiement d’un service Web.

Cliquez sur Next.
Saisissez les informations relatives au programme à exposer.

Cliquez sur Next.
Si le programme n’est pas compilé avec le PCML embarqué dans le module :
- l’assistant vous demande où se trouve le PCML pour le programme sinon vous passez directement à l’étape 3


- Service Name : le nom que vous souhaitez donner à ce service
- Service Description : une description purement informative
Cliquez sur Next.
L’assistant propose automatiquement une description des paramètres, grâce aux informations du PCML. Vous pouvez à cette étape changer le sens des paramètres, bien que cela ne soit à priori pas nécessaire.

Cliquez sur Next.
Indiquez un profil pour exécuter le programme lors de l’appel du service web.

NB : Il est possible d’exécuter le programme sous le profil générique du serveur (non recommandé) ou via un profil au choix. Chaque service peut s’exécuter sous un profil différent.
Cliquez sur Next.
Indiquez la liste de bibliothèques pour l’exécution du programme.

Cliquez sur Next.
Cliquez sur Finish pour terminer

(Avec « Web Services Test Client », fourni avec l’i5/OS)
Sélectionnez le Service Web et cliquez sur « Test Service ».

Cela ouvre la page web suivante qui permet d’appeler le service web avec des paramètres :

Choisissez l’opération « ephemeride »

Cliquez sur « Add » pour ajouter un paramètre, et renseignez les paramètres nécessaires (ici le mail) :

Cliquez sur « Go » pour invoquer le service et afficher le résultat

Exemple 2 : exposer une procédure en tant que Service Web
La manipulation est presque identique au déploiement d’un programme, nous ne présentons ici que les différences :

Pour une procédure, il est possible de choisir output uniquement :

Informations complémentaires
- Deploy = déployer un nouveau service
- Stop / Start : arrêter/démarrer les services déployés
- Modifier les propriétés (utilisateur, liste de bibliothèques …)
- Désinstaller un service (il doit être arrêté)
- View Definition : affiche le contrat du service (WSDL)
- Test Service : permet de le tester


Web Service Definition URL : URL à laquelle un utilisateur (ou une application utilisatrice) peut récupérer le fichier WSDL du service web. Ce fichier décrit entièrement le service :
- Nom
- Paramètres
- Localisation (URL)
Il est donc suffisant et nécessaire pour qu’un utilisateur puisse utiliser le service web.

- « ephemeride » : les paramètres sont transmis individuellement dans la requête SOAP
- « ephemeride_XML » : les paramètres sont transmis dans un flux XML, lui même dans la requête SOAP
- Les procédures sont préférables aux programmes:
o Programme : il faut fournir l’ensemble des paramètres lors de l’appel (pour un programme, tous les paramètres sont en entrée/sortie)
o Procédure : seuls les paramètres en entrée sont nécessaires à l’appel
- Les paramètres de type caractères sont traduits dans la description du service web (WSDL) en String : la taille du paramètre est perdue. Problème : si vous indiquez une valeur plus grande que la taille réelle du paramètre, cela provoque une erreur.

- Les types de paramètres pris en charge sont ceux supportés par le langage PCML. Les types suivants ne passent pas : pointeur, date, heure, horodatage. Les DS, y compris à occurrences sont supportées et définies en tant que structure. Pour plus d’informations : http://www.redbooks.ibm.com/redbooks/pdfs/sg245959.pdf
- Il est possible de crypter via des certificats SSL les services exposés
- Il est possible d’effectuer vis des scripts shell la création du serveur ainsi que le déploiement des services
- Des fonctionnalités de log, de trace, d’audit sont également fournies
- Norme web service (XML/SOAP/UDDI) : http://www.w3.org/2002/ws
Tester les services web
Ce produit est fourni avec l’i5/OS : c’est celui utilisé lorsque l’on choisi « Test Service ».
A noter que ce produit est disponible :
- Dans les versions J2EE de l’environnement Eclipse (http://www.eclipse.org/downloads/)
- Dans RDi for SOA, ou RAD
SOAPUI est un produit Open Source de testeur de service web
- Pour Eclipse : http://www.soapui.org/eclipse/index.html
- Windows : http://sourceforge.net/projects/soapui/files/
Lancer SOAPUI, et créer un nouveau projet :

Indiquez un nom de projet et le fichier WSDL précédemment créé :

Les éléments suivants sont automatiquement :

Une requête modèle est créée, il suffit de remplacer le point d’interrogation par le mail.
La flèche verte permet de lancer l’invocation du service web.
Le résultat s’affiche à côté (intégralité du flux SOAP reçu) :

Différentes log sont possibles, la SOAPUI donne les informations de base, dont le temps d’exécution :

Ici : 0,14 seconde.
Pour nous demander des informations complémentaires,
Adressez nous un mail à : contact@gaia.fr
Ou
Téléphonez nous au 04.72.53.00.12