> Tech > Consommer des services Web en RPG ILE

Consommer des services Web en RPG ILE

Tech - Par Patrick Thomas - Publié le 23 février 2012
email

Les avantages des Services Web ne sont plus à démontrer aujourd’hui, ils sont devenus le nouveau point de convergence des acteurs du marché de l’informatique qui en font un nouveau standard accepté de tous.

Ce dossier est issu de notre publication System iNews (01/10). Pour consulter les schémas et illustrations associés, rendez-vous dans le club abonnés.

Consommer des services Web en RPG ILE


Le vieux rêve de faire communiquer en temps réel différents programmes issus de différentes plates-formes hétérogènes et ceci quelles que soient les distances, est consommé. Que ce soit dans votre intranet pour faire communiquer vos différents applicatifs, ou sur internet pour accéder à un service gratuit ou payant, ils sont l’avenir et leur implémentation au cœur de l’IBM i est devenue une sinécure.

De nombreux articles définissent avec précision ce qu’est un Service Web, leur utilité et la technologie employée, System iNews a d’ailleurs publié déjà de nombreux articles sur le sujet, les plus remarquables rédigés par Scott Klement et son projet open-source HTTPAPI. Le succès de ce projet a fait réagir les équipes d’IBM à Rochester. Ainsi, la V6R1 nous a apporté un lot important de nouveautés concernant les Services Web, dont nombre d’entre elles ont été portées en V5R4 par PTF.

Nous possédons dorénavant en V5R4 un serveur de Service Web intégré à l’OS qui vous permettra en quelques clics de transformer un programme ILE RPG ou COBOL en Service Web tout en s’affranchissant de déployer Websphere Application Server, mais nous traiterons ce sujet dans un autre article.

La nouveauté qui nous concerne, le portage du projet Apache Fondation Axis C++ version 1.5 dans l’IBM i. Axis est un Framework open-source qui offre en outre la possibilité de générer automatiquement des WSDL correspondant à des classes Java ou inversement à créer des classes Java, C ou C++ sur la base d’un WSDL, et c’est ce dernier point qui va nous intéresser dans cet article. Ainsi, toute la complexité d’accès au programme distant avec le protocole HTTP à travers des messages SOAP est masquée dans ces classes proxy. Il nous reste plus qu’à appeler ces programmes générés pour consommer un Service Web comme indiqué sur la figure 1.

Ainsi, les étapes nécessaires pour consommer un service web sont (voir figure 2).

Pour connaître les limitations l’Axis C++ 1.5 dans l’IBM i, je vous conseille de visualiser le README.TXT situé dans le répertoire /Qibm/ProdData/OS/Webservices/V1/Client/. Extraits :

WSDL 1.1. is the only supported WSDL level.
SOAP 1.1 is the only supported over-the-wire protocol
The response from the Server must be in UTF-8 format

Récupération dans l’IFS du WSDL

WSDL est un fichier XML qui contient l’emplacement du Service Web sur la toile ainsi que les opérations (méthodes, paramètres et valeurs de retour) que le service propose.

Prenons un exemple avec le Service Web gratuit StockQuote, permettant d’interroger directement la bourse de NewYork (NYSE).

Pour le tester, on saisi en ligne le code boursier « IBM » et on obtient en réponse le message XML (figure 3).

On récupère le fichier WSDL sur ce site et on le place dans un répertoire de l’IFS ex : /home/webservices/ sous le nom de stockquote.wsdl (exemple pour la suite de cet article). Nous avons constaté que le service web répondait bien en le testant directement en ligne, avons récupéré son WSDL dans l’IFS (vous pouvez d’ailleurs visualiser son contenu avec DSPF ‘/home/webservices/stockquote.wsdl’, nous pouvons maintenant passer à l’étape suivante.
 

Téléchargez gratuitement cette ressource

Guide de Migration vers Microsoft 365

Guide de Migration vers Microsoft 365

Microsoft 365 représente une mise à niveau technologique majeure, découvrez dans ce nouveau livre blanc comment tirer tous les bénéfices de Microsoft 365 et rendre votre organisation plus productive, plus efficace et plus sécurisée.

Tech - Par Patrick Thomas - Publié le 23 février 2012