En 2002, vous avez fait des services web; en 2003, vous ferez du "Grid Computing" !
Si jamais ce n'était pas le cas, ce tutorial est pour vous. Il permet, à travers
un exemple simple et concret, de mieux comprendre ce que sont les services web
et comment vous pouvez les utiliser. |
|
Avec J2EE 1.4, l'implémentation en java des services web promet de se standardiser.
D'ici là, tous les acteurs de ce marchés proposent leur solution, qu'ils soient des
éditeurs reconnus comme Microsoft, IBM, BEA, Oracle, ou des acteurs de l'open source comme
Apache... Ce tutorial prend le point de vue d'Oracle, pour diverses bonnes et
mauvaises raisons :
- l'approche est simple, complète et représentative
- les composants facilement accessibles via OTN,
sans limite de temps
- je la connais mieux que les autres !
Qu'est-ce qu'un service web ?
Première question et premières difficultés; les services web ne sont pas un
standard, mais plutôt un ensemble de standards issus d'organismes divers comme le
W3C, OASIS, WS-I. Ces standards sont complémentaires mais aussi et très souvent
contradictoires; aujourd'hui, les standards les plus aboutis et les plus
communément admis comme formant la base des services web sont SOAP, WSDL et UDDI. Cependant, la messe
n'est pas encore dite puisque des standards comme ebXML Registry ou WS-Inspection
complètent et contre-disent UDDI.
SOAP, WSDL et UDDI
- SOAP (Simple Object Access
Protocol) est un protocol basé sur XML qui offre la
possibilité d'exécuter une fonction à distance. L'intérêt d'un tel protocol est
qu'il est indépendant du protocol sous-jacent (HTTP, Queue JMS, SMTP...) et
indépendant du langage qui implémente la fonction (C#, Java, PL/SQL, Cobol...)
- WSDL (Web Service Description Language)
est un langage XML de description des
fonctions implémentées en SOAP. Son intérêt et qu'il contient tous les éléments
(Nom des fonctions, description des paramètres, comment y accéder) des services Web.
Ce langage est indépendant du langage d'implémentation de la fonction.
- UDDI (Universal Description,
Discovery and Integration) est un standard qui permet de constituer un référentiel
de tous les services Web de l'entreprise. Ce standard définit aussi bien l'accès
que le classement des services web en son sein
|
Bénéfices et Limites
Vous l'aurez compris, bien malin, celui qui peut dire, ce que sont les services web et
quand les utiliser. En revanche, il est assez simple de trouver des applications concrètes
dès aujourd'hui, ainsi que d'apercevoir rapidement les limites du modèle associé.
Les services web ont le bon goût :
- d'être indépendant et de permettre l'inter-opérabilité des langages de programmation : Java, C#, PL/SQL, Cobol...
- d'être indépendant des protocoles de dialogue (HTTP, Queue JMS, SMTP...)
- de fournir un langage d'auto-description (WSDL), qui permet de manière très simple de créer
des composants utilisateur
- de permettre de mettre en place un référentiel commun à l'échelle de l'entreprise, ou plus vaste.
Cela permet de créer des composants réutilisables
En revanche de nombreuses questions restent pour l'instant en suspend. Ces questions
sont généralement liées au fait que le modèle des services web est distribué, que le nombre
de standard sur le sujet est exponentiel et en court de maturation et qu'ils utilisent des
technologies différentes en fonction de leur implémentation : un web service HTTP, ne permet
pas de faire la même chose qu'un web service qui utiliserait IBM MQSeries. Par exemple :
- Comment sécuriser une infrastructure basée sur des services web ? Dans ce tutorial,
nous répondrons en parti à cette question en s'appuyant sur les mécanismes du protocol HTTP
(SSL, Basic Authentification), mais comment feriez-vous sur avec un protocol de
Queuing ou un mixte de protocols ?
- Comment garantir les performances, la robustesse, le failover des services ?
- Comment administrer les web services ?
- Comment permettre à plusieurs acteurs utilisant pour communiquer des web
services de garantir qu'ils respecteront des règles globales (Workflow, Orchestration...)
- Est-ce qu'un "Client" pour un web service développé sur SAP et la même chose qu'un
client pour un web service Oracle ou Siebel ?
Il n'existe pas de réponse universelle pour l'instant à ces questions ! Cela n'enlève rien à l'intérêt
des services web : si vous développez une application .Net par exemple qui doit accéder
à des composants métiers J2EE.
|
|