P
'
t
i
t
e
C
h
a
t
t
e
 
spacer~ FUCK THE FUCKING FUCKERS ! Articles | Connexion
 
~Découvrir des Services Web avec UDDI

 Présentation

Pour publier ou rechercher des Services Web, les développeurs font appel à la technologie Universal Description, Discovery and Integration. Nous allons apprendre à l'employer pour trouver des services au sein d'un annuaire.

La découverte de Services Web nécessite la connexion à un annuaire UDDI. Des entreprises comme IBM mettent publiquement à disposition de tels annuaires. On pourra ainsi utiliser l'adresse http://uddi.sap.com/UDDI/api/inquiry/ pour effectuer des requêtes dans l'annuaire de SAP. Une entité nommée l'UDDI Business Registry (UBR ou Public Cloud) regroupe les annuaires de plusieurs compagnies. Chaque modification apportée sur l'un des nouds est répercutée sur les autres.

Les requêtes UDDI fonctionnent grâce au protocole SOAP, déjà étudié dans ce dossier. Nous pourrions donc parfaitement programmer une requête UDDI "à la main", mais il s'agirait d'un travail relativement fastidieux. Pour nous faciliter la tâche, nous allons exploiter la bibliothèque JAXR (pour Java API for XML Registries) disponible sur le site de Sun Microsystems ou encore dans le Java Web Services Developer Pack (JWSDP).

Au préalable, vous devez savoir que les informations des annuaires se classent en trois catégories : les pages Blanches, Jaunes et Vertes. Elles correspondent respectivement aux informations concernant une organisation (adresse, numéro de téléphone.), à la description du service suivant des catégories (pays d'origine, métier.) et enfin aux informations techniques permettant d'accéder au service (URL par exemple).

 Sommaire


 Découvrir les services d'une organisation

Dans l'exemple qui suit, nous allons dresser la liste des Services Web proposés par une organisation dont nous connaissons le nom. Nous allons commencer par exécuter le programme JAXR Browser proposé dans le JWSDP pour ajouter quelques organisation de test dans un annuaire UDDI local disponible à l'adresse http://localhost:8080/RegistryServer. On constate à cet effet que la publication d'un Service Web nécessite de s'authentifier auprès du serveur (par défaut dans le JWSDP il s'agit de l'utilisateur testuser avec le mot de passe testuser). Le listing 1 présente le code source permettant de découvrir les organisations nommées "ProgX". Chaque élément de la collection ainsi obtenue représente une instance de la classe Organization (les pages Blanches) dont nous pouvons récupérer une collection de Service grâce à getServices(). Leurs détails techniques, comme leur point d'accès, sont découverts en récupérant une collection de ServiceBinding par l'entremise de getServiceBindings().

Nous avons ici utilisé la méthode findOrganizations(), et un seul de ses paramètres. Notez que l'interface BusinessQueryManager offre également la possibilité de rechercher directement des Services Web, des ServiceBindings ou encore des associations entre organisations. Le source complet UDDIFinder.java se trouve sur le CD-Rom.

ConnectionFactory factory = ConnectionFactory.newInstance();
Properties props = new Properties();
props.setProperty("javax.xml.registry.queryManagerURL",
   "http://localhost:8080/RegistryServer");
factory.setProperties(props);
Connection connection = factory.createConnection();
RegistryService registryService = connection.getRegistryService();
BusinessQueryManager queryManager = 
  registryService.getBusinessQueryManager();
BusinessLifeCycleManager lifeCycle = 
  registryService.getBusinessLifeCycleManager();
Collection namePatterns = new ArrayList();
namePatterns.add(lifeCycle.createInternationalString("ProgX"));
BulkResponse response = 
  queryManager.findOrganizations(null, namePatterns, null, null, null, null);
Collection orgs = response.getCollection();
       
      
JextCopier dans Jext | Jext | Plugin Codegeek


par Romain Guy
romain.guy@jext.org
http://www.jext.org
Dernière mise à jour : 14/10/2006



 
#ProgX©2005 Mathieu GINOD - Romain GUY - Erik LOUISE