> Tech > Services Web : des outils pour programmeurs iSeries

Services Web : des outils pour programmeurs iSeries

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Phil Coulthard et George Farr - Mis en ligne le 08/11/2005 - Publié en Février 2005

Nous sommes heureux de vous retrouver dans notre série d'articles suivant l'itinéraire des développeurs iSeries (voir ibm.com/iseries/roadmap). Nous en sommes à  l'étape 3, une meilleure architecture, dans laquelle le but est de participer pleinement au monde des interfaces utilisateur Web et des services Web, tout en continuant à  utiliser RPG ou Cobol pour la logique de gestion. Les articles précédents s'intéressaient aux outils de WDSc (WebSphere Development Studio Client) pour iSeries, pour développer de nouvelles applications d'interface utilisateur Web (voir l'encadré « Articles sur www.itpro.fr » ci-après). Ce mois-ci, nous nous concentrons sur les outils servant à  créer des services Web, en utilisant une fois encore la logique de gestion RPG ou Cobol. Certaines des fonctions évoquées n'existent que dans l'Advanced Edition de WDSc, que nous vous conseillons fortement de consulter au fil de l'itinéraire. Elle offre des fonctions améliorées, particulièrement pour les outils WebFacing et iSeries Web.

Services Web : des outils pour programmeurs iSeries

Un service Web est un standard qui permet d’invoquer la logique de gestion sur
Internet, de transmettre des paramètres et de recevoir des résultats. C’est un modèle
du type requête-réponse. L’appelant ne sait pas, ou se soucie peu de savoir,
en quel langage la logique de gestion est écrite, ou même si elle existe.

Certes, l’appel de procédures distantes est pratiqué depuis longtemps par diverses
technologies. Mais le standard des services Web gagne du terrain parce qu’il
est entièrement ouvert et que la participation des deux ténors Microsoft et IBM le
rende en quelque sorte universel.

Les services Web ont de multiples utilisations : transactions interentreprise
(comme passer une commande ou suivre son évolution), transactions de public à 
entreprise (en publiant des services dans des catalogues ouverts), et un modèle
composant interne pour définir des composants réutilisables dans votre société.
Nous ne pouvons pas entrer ici dans le détail des services Web, mais les articles et
ouvrages sur le sujet ne manquent pas. La bonne nouvelle est qu’il n’est pas nécessaire
d’en savoir beaucoup pour exposer votre logique de gestion RPG ou
Cobol sous forme de services Web. Pour plus d’informations, voir la section overview de la documentation WDSc. Etendez Developing
puis Web services dans la table des matières.

En substance, un service Web est une logique de gestion
que l’on peut invoquer à  distance en envoyant un document
XML à  un routeur ou moteur de service
Web, comme celui des produits Web-
Sphere. Le document, ou message XML,
respecte un standard SOAP (Simple Object
Access Protocol) et identifie le service qui
est appelé et ses paramètres. Au « point
d’arrivée », un moteur SOAP (en réalité, un
simple servlet spécial) reçoit la requête,
identifie, trouve et appelle le service demandé,
puis renvoie le résultat. Cette réponse
est aussi renvoyée sous la forme
d’un message SOAP. Généralement, une classe générée est
fournie pour que le code client appelle un service Web spécifique,
qui sait comment construire le document SOAP XML
et
comment l’envoyer par HTTP ou autre moyen de transport.

Un document ou message SOAP décrit un appel ou réponse
de service spécifique (y compris les données) et un
autre langage basé sur XML – Web Services Description
Language (WDSL) – décrit les services et leurs paramètres et
types de données. WSDL fournit également l’information de
liage pour produire des messages SOAP qui invoquent les
services qu’ils écrivent. Les outils utilisent WSDL pour générer
le code client qui peut invoquer un service Web au moyen
de SOAP.

Vous pouvez aussi lire des documents sur JAX-RPC, que
l’on peut considérer comme un jeu de règles spécifique permettant
de créer des services Web à  partir d’une logique Java,
et d’utiliser cette dernière pour appeler ces services. JAX-RPC
est en fait le jeu de règles de mapping bidirectionnel entre
WSDL et Java. Donc, pratiquement, WSDL est un membre copie
contenant les prototypes de procédure pour votre programme
de service, et SOAP est l’ensemble des moyens par
lesquels quelqu’un peut invoquer à  distance l’une des procédures
décrites dans votre membre copie. WSDL contient
suffisamment d’informations pour générer le document
SOAP ou, plus exactement, le code Java qui le génèrera.

Vous pouvez valoriser un service Web en le publiant vers
un registre ou un catalogue, où d’autres pourront le découvrir
et l’appeler. Ces registres utilisent le standard UDDI
(Universal Description, Discovery and Integration). Dans un
registre UDDI, vous enregistrez votre société et vos services,
y compris l’accès à  leurs WSDL. Les registres publics se trouvent
à  uddi.org/register/html et vous pouvez avoir votre
propre registre privé pour des tests ou des usages internes.
IBM fournit un registre public appelé IBM UDDI Business
Registry à  ibm.com/software/solutions/webservices/uddi, et
la famille de produits WebSphere Studio inclut un registre
privé intégré.

Enfin, il existe une alternative un peu plus légère à  un registre
UDDI : un document WSIL (Web Service Inspection
Language). Ce fichier XML est généralement publié sur votre
propre site Web (par opposition à  un référentiel central) ou
lié à  une URL, et il décrit les services Web que vous voulez exposer.
Ces derniers peuvent être identifiés à  l’aide de références
WSDL ou UDDI.

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro.fr - Publié le 24 juin 2010