19
By Camélia BENCHEQROUN Sommaire Partie 1. Publication des services web (juddi) ___________________________________ 2 1. Installation et configuration des composants ___________________________________ 2 1.1. Outils utilisés _______________________________________________________________ 2 1.2. Configuration initiale _________________________________________________________ 2 1.3. Installation juddi ____________________________________________________________ 3 1.4. Déploiement de l’application web ______________________________________________ 3 1.5. Création de la base de données ________________________________________________ 3 1.6. Création des utilisateurs juddi _________________________________________________ 4 1.7. Configuration de tomcat pour la connexion à la base de données juddi ________________ 4 1.8. Test _______________________________________________________________________ 5 1.9. Configuration axis ___________________________________________________________ 6 2. Création d’un web service à l’aide d’Axis ______________________________________ 7 3. Publication des services à l’aide de la console juddi ______________________________ 9 3.1. Console juddi _______________________________________________________________ 9 3.2. Publication du web service somme dans l’annuaire juddi ___________________________ 10 3.2.1. Étape 1 : Authentification _______________________________________________________ 10 3.2.2. Étape 2 : save business _________________________________________________________ 11 3.2.3. Étape 3 : save_tModel _________________________________________________________ 12 3.2.4. Étape 4 : save_service__________________________________________________________ 13 3.3. Vérification de la publication _________________________________________________ 14

Publication des services web JUDDI

  • Upload
    hatimas

  • View
    1.312

  • Download
    10

Embed Size (px)

Citation preview

Page 1: Publication des services web JUDDI

By Camélia BENCHEQROUN

Sommaire

Partie 1. Publication des services web (juddi) ___________________________________ 2

1. Installation et configuration des composants ___________________________________ 2

1.1. Outils utilisés _______________________________________________________________ 2

1.2. Configuration initiale _________________________________________________________ 2

1.3. Installation juddi ____________________________________________________________ 3

1.4. Déploiement de l’application web ______________________________________________ 3

1.5. Création de la base de données ________________________________________________ 3

1.6. Création des utilisateurs juddi _________________________________________________ 4

1.7. Configuration de tomcat pour la connexion à la base de données juddi ________________ 4

1.8. Test _______________________________________________________________________ 5

1.9. Configuration axis ___________________________________________________________ 6

2. Création d’un web service à l’aide d’Axis ______________________________________ 7

3. Publication des services à l’aide de la console juddi ______________________________ 9

3.1. Console juddi _______________________________________________________________ 9

3.2. Publication du web service somme dans l’annuaire juddi ___________________________ 10

3.2.1. Étape 1 : Authentification _______________________________________________________ 10

3.2.2. Étape 2 : save business _________________________________________________________ 11

3.2.3. Étape 3 : save_tModel _________________________________________________________ 12

3.2.4. Étape 4 : save_service __________________________________________________________ 13

3.3. Vérification de la publication _________________________________________________ 14

Page 2: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

2

Partie 1. Publication des services web (juddi)

La publication d’un service web nécessite une installation de certains composants et une

bonne configuration de ces derniers. On va voir dans ce qui suit les outils à installer et les

différentes étapes de la configuration.

1. Installation et configuration des composants 1.1. Outils utilisés

Tomcat

Apache Tomcat est un conteneur de servlet J2EE. Issu du projet Jakarta, Tomcat est

désormais un projet principal de la fondation Apache. Tomcat implémente les spécifications

des servlets et des JSP de Sun Microsystems. Il inclut des outils pour la configuration et la

gestion, mais peut également être configuré en éditant des fichiers de configuration XML.

Comme Tomcat inclut un serveur HTTP interne, il est aussi considéré comme un serveur

HTTP.

Tomcat va servir de conteneur pour exécuter les web services et spécialement les services

juddi et axis

Axis 1.4

Axis est un projet d’Apache Software Foundation. C'est un package Java qui fournit : un

environnement pouvant soit fonctionner comme un serveur SOAP indépendant soit comme

un plug-in de moteurs de servlet (en particulier Tomcat), Une API pour développer des

services web SOAP RPC ou à base de messages SOAP le support de différentes couches de

transport : HTTP, FTP...

JUDDI

Java Universal Description, Discovery and Integration

Une implémentation basée sur la plate-forme Java de l'UDDI. Elle fournit également un kit

de développement pour créer des accès à des bases de registres d'UDDI

UDDI

Uddi browser est un projet open source qui autorisent la manipulation, Des registre uddi

avec une interface conviviale. Il est ecrit en java avec l’api swing et supporte la version 2.0 de

la norme UDDI.

Mysql

MySQL Connector/J est le driver JDBC de MySQL. C'est lui qui sera chargé de convertir les

appels JDBC en ordre compréhensible par MySQL

1.2. Configuration des variables d’environnements

Après avoir installé JDK 1.5, il faut que les variables d’environnement JAVA_HOME, PATH,

CLASSPATH prennent en considération le JDK 1.5:

JAVA_HOME = C:\Program Files\Java\jdk1.5.0_11

PATH = C:\Program Files\Java\jdk1.5.0_11 \bin

Page 3: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

3

CLASSPATH = C:\Program Files\Java\jdk1.5.0_11 \lib

1.3. Installation juddi

Il faut décompresser le fichier juddi-0.9rc4.zip

Il contient 3 dossiers

Docs contient la documentation sur juddi

SQL contient les fichiers nécessaires pour la création de la Base de données mysql

Webapp contient l’application web juddi qui se déploie sur tomcat

1.4. Déploiement de l’application web

1/ A l’intérieur du répertoire webapp il y’a un répertoire qui se nomme juddi qu’il faut copier

dans le dossier: ~\tomcat\webapps

2/ Afin d’indiquer le driver JDBC, il faut éditer le fichier juddi.propreties présent dans le

dossier ~\tomcat\webapps\juddi\WEB-INF et rajouter à la fin du fichier :

# required JDBC DataSource properties

juddi.dataSource = java:comp/env/jdbc/juddiDB

# required JDBC Driver properties

juddi.useConnectionPool = true

juddi.jdbcDriver = com.mysql.jdbc.Driver

juddi.jdbcURL = jdbc:mysql://localhost/juddi

juddi.jdbcUser = juddi juddi.jdbcPassword = juddi

1.5. Création de la base de données

Il faut démarrer le serveur mysql et copier les 2 fichiers présents dans le répertoire

~\juddi-0.9rc4\sql\mysql

create_database.sql et insert_publishers.sql dans le répertoire : ~\mysql\bin

Dans l’invite de commande MS-DOS et en se plaçant dans le répertoire, on exécute la

requête suivante pour la création de la base de donnée :

mysql -u root -p < create_database.sql

Ensuite pour pouvoir ajouter des utilisateurs à la base de données, on modifie le fichier

insert_publishers.sql.

Par exemple, on ajoute une requête :

INSERT INTO PUBLISHER (PUBLISHER_ID, PUBLISHER_NAME, EMAIL_ADDRESS, IS_ENABLED,

IS_ADMIN)

VALUES ('camelia','ben','[email protected]','true','true');

Par la suite, on exécute le fichier d’insertion comme précédemment avec la commande :

Page 4: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

4

mysql -u root -p < insert_publishers.sql

1.6. Création des utilisateurs juddi

Afin de pouvoir se connecter à la base de données en tant que root, on démarre le serveur

mysql et on exécute la commande suivante dans l’invite de commande MS-DOS

mysql -u root –p

Une fois connecté, pour attribuer les droits au nouvel utilisateur juddi, il faut exécuter les

commandes suivantes

GRANT ALL ON juddi.* TO juddi@"%" IDENTIFIED BY "juddi";

GRANT ALL ON juddi.* TO juddi@"localhost" IDENTIFIED BY "juddi";

Pour vérifier la création des utilisateurs on peut consulter la table en saisissant les requêtes

suivantes:

juddi mysql -u juddi -p

use juddi

select * from publisher;

On aura comme résultat la table publisher contenant les utilisateur ajoutés comme le

montre la figure ci-dessous:

Figure 1 Utilisateurs ajoutés dans la table Publisher

1.7. Configuration de tomcat pour la connexion à la base de données juddi

Dans le répertoire ~\tomcat\conf il faut éditer le fichier de configuration server.xml et

rajouter le code suivant qui indique la base de donnée juddi à laquelle il va se connecté et

son username et password (avant </Host> </Engine></Service></Server>) :

Page 5: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

5

<Context path="/juddi" docBase="juddi" debug="5" reloadable="true" crossContext="true">

<Resource name="jdbc/juddiDB"

auth="Container"

type="javax.sql.DataSource"

username="juddi"

password="juddi"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/juddi?autoReconnect=true"

validationQuery="select count(*) from PUBLISHER" />

</Context>

Pour que tomcat puisse accéder à la base de données mysql, il lui faut une API mysql-

connector-java-5.0.8-bin qui permet la connexion. Cette API doit être placée dans le

répertoire lib de tomcat ~\tomcat\lib

1.8. Test

Afin de tester le fonctionnement entre tomcat, mysql, et juddi, il faut tout d’abord démarrer

tomcat et mysql et indiquer dans le navigateur l’url suivante qui correspond à l’installation

locale du juddi :

http://localhost:8080/juddi/happyjuddi.jsp

La page suivante est affichée :

Page 6: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

6

Figure 2 Configuration locale juddi

Dans cette page qui permet de savoir si toute la configuration est ok, il faut surtout pointer

sur jUDDI DataSource Validation pour savoir si la connexion à la base de donnée est réussie

comme le montre la figure ci-dessous :

1.9. Configuration axis

Axis servira à créer automatiquement des documents WSDL correspondant à des classes

Java ou inversement pour créer les classes Java sur la base d'un document WSDL.

Après avoir téléchargé axis-1_4.zip, il faut le décompresser et :

Copier le contenu du dossier lib dans ~\tomcat\common\lib

Copier le contenu du dossier webapps dans ~\tomcat\webapps

Pour accéder à Axis on saisit dans le navigateur à l’url suivante : http://localhost:8080/axis/

Page 7: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

7

Figure 3 Page d’accueil AXIS

Ou encore : http://localhost:8080/axis/happyaxis.jsp

Figure 4 Axis Happiness Page

2. Création d’un web service à l’aide d’Axis Pour créer un service web, on crée un fichier dans le dossier ~\tomcat\webapps\axis et on le

nomme par exemple sommer.jws

Ensuite, il faut indiquer le code du service web qui permettra de déterminer la somme de

deux nombres :

Page 8: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

8

public class sommer

{

public int getsomme(int a, int b)

{

return a+b;

}

}

Pour visualiser le wsdl généré par axis du web service sommer, on se rend sur les pages :

http://localhost:8080/axis/somme.jws ou

http://localhost:8080/axis/somme.jws?wsdl

Pour invoquer la méthode getsomme de sommer avec par exemple comme paramètres a=2

et b=5 :

http://localhost:8080/axis/somme.jws?method=getsomme&a=2&b=5

Page 9: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

9

La somme demandée est donc retournée et indiqué entre des balises :

3. Publication des services à l’aide de la console juddi Pour réaliser la publication des services web à l’aide de la console jUDDI, on procède comme

suit :

On accède tout d’abord à la console juddi

Authentification

Save business

Save tModel

Save service

3.1. Console juddi

La première chose à faire est de lancer les serveurs mysql et tomcat et accéder à la page :

http://localhost:8080/juddi/console/

On obtient :

Page 10: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

10

Figure 5 Console juddi

3.2. Publication du web service somme dans l’annuaire juddi

3.2.1. Étape 1 : Authentification

L'API call get_authToken est utilisée pour obtenir un jeton d'authentification. Les jetons

d'authentification sont des valeurs opaques qui sont nécessaires pour tous les autres

publisher API call.

Dans la console juddi, il faut cliquer sur le lien get_authToken et remplir userID par un des

utilisateurs de la table publisher dans mon cas j’ai choisi le userID camelia.

On clique cliquer ensuite sur le bouton Submit

Page 11: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

11

Figure 6 Authentification

On aura comme résultat un message SOAP d'authToken qui contient un élément authInfo

authToken :9DF6FC19-3AF6-11E0-AD97-FC8CC7E394E4 qui’il faut sauvegarder. Il peut être

utilisé dans les appels qui suivent qui requièrent une valeur authInfo.

3.2.2. Étape 2 : save business

L’API call save_business est utilisée pour sauvegarder ou mettre à jour des informations sur

un élément businessEntity.

Il faut cliquer sur le lien save_business et indiquer les informations suivantes:

authInfo : celui obtenu dans l’étape 1. Dans mon cas authToken: 9DF6FC19-

3AF6-11E0-AD97-FC8CC7E394E4

name : camben (Nom de l’entité)

description : camelia bencheqroun (Description de l’entité)

personName : camelia (Nom du contact)

phone : 0643563263 (Tel du contact)

email : [email protected] (Email du contact)

et cliquer sur Submit

Page 12: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

12

Figure 7 Save business

Il faut sauvegarder le businessKey="44C1A770-3AF7-11E0-AD97-CE8242B9869F", on en

aura besoin plus tard.

3.2.3. Étape 3 : save_tModel

L’API call save_tModel ajoute ou met à jour un ou plusieurs éléments tModel enregistré.

Dans la console juddi on accède au save_tModel et on indique les informations suivantes:

authInfo : celui obtenu dans l’étape 1. Dans mon cas authToken:9DF6FC19-

3AF6-11E0-AD97-FC8CC7E394E4

name : http://localhost:8080/axis/sommer.jws?wsdl (l’url du wsdl du service

web)

overviewURL : http://localhost:8080/axis/sommer.jws?wsdl (l’url du wsdl du service

web)

Toujours dans le même endroit, il faut également remplir dans la partie Category Bag par

défaut les informations suivantes :

tModelKey : UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4

keyName : uddi-org:types

keyValue : wsdlSpec

Ensuite cliquer sur Submit

Page 13: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

13

Figure 8 Save tModel

On obtient dans la réponse le tModelKey="uuid:BC4E5C20-3AF7-11E0-AD97-

FE6AE516495D" qu’il faut sauvegarder.

3.2.4. Étape 4 : save_service

L’API call save_service ajoute ou met à jour un ou plusieurs éléments BusinessService.

On accéde au save_service à partir de la console et on remplit les balises suivantes avec les

informations obtenues dans les étapes précédentes:

authInfo : authToken:9DF6FC19-3AF6-11E0-AD97-FC8CC7E394E4

businessKey : 831C8780-D659-11DB-8780-A03AF047EE37

name : Sommer (nom pour le service web)

accessPoint : http://localhost:8080/axis/sommer.jws (l’url du jws ou du wsdl)

tModelKey : uuid:BC4E5C20-3AF7-11E0-AD97-FE6AE516495D

overviewURL : http://localhost:8080/axis/sommer.jws?wsdl (l’url du wsdl)

Cliquer sur Submit

Page 14: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

14

Figure 9 Save Service

Le web service est dans l’annuaire Juddi.

3.3. Vérification de la publication

On peut vérifier la publication du service web grâce à UDDI Browser qui est un projet open

source qui autorise la manipulation des registres uddi avec une interface conviviale. Il est

écrit en java avec l’API swing et supporte la version 2.0 de la norme UDDI. Uddi browser

supporte l’API complète de la manipulation des registres uddi interrogation, création, mise à

jour, suppression de toutes les entités uddi.

Son utilisation est simple, il suffit d’extraire l’archive téléchargée et d’exécuter../ub-0.2-

bin\bin\ub.bat

On obtient l’interface suivante :

Page 15: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

15

Figure 10 UDDI Browser

Dans le menu Edit, on choisit UDDI Registries..

Dans la fenêtre qui s’ouvre, il faut cliquer sur ADD, et indiquer les informations comme suit

Figure 11 Add UDDI Registry

Cliquer sur OK

Le registre juddi a été ajouté.

Choisir maintenant juddi et cliquer sur connect. (Les serveurs tomcat et mysql doivent être

démarré)

A présent, dans le Menu View, il faut exécuter les 3 options Find all business, Find all

services, Find all tModels. On obtient tous les services publiés dans l’annuaire :

Page 16: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

16

Figure 12 Liste des services web publiés

4. Aller plus loin Pour pouvoir publier un service web automatiquement on a développé une petite

application. Son rôle est de publier le service web dans l’annuaire juddi simplement en lui

communicant ses informations principales, c.à.d. les infos concernant le business (nom,

description, personne), le nom du service, la description du service et son url.

Voici un exemple de fragment de code du programme :

Figure 13 SaveBusiness

Figure 14 Save TModel

Page 17: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

17

Figure 15 Save service

Voici l’interface de l’application :

Figure 16 Publier Service web

Page 18: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

18

Liste des figures

Figure 1 Utilisateurs ajoutés dans la table Publisher ________________________________________________ 4

Figure 2 Configuration locale juddi ______________________________________________________________ 6

Figure 3 Page d’accueil AXIS ___________________________________________________________________ 7

Figure 4 Axis Happiness Page __________________________________________________________________ 7

Figure 5 Console juddi _______________________________________________________________________ 10

Figure 6 Authentification _____________________________________________________________________ 11

Figure 7 Save business _______________________________________________________________________ 12

Figure 8 Save tModel ________________________________________________________________________ 13

Figure 9 Save Service ________________________________________________________________________ 14

Figure 10 UDDI Browser _____________________________________________________________________ 15

Figure 11 Add UDDI Registry __________________________________________________________________ 15

Figure 12 Liste des services web publiés _________________________________________________________ 16

Page 19: Publication des services web JUDDI

Interrogation UDDI et transformation de schémas WSDL

19

Bibliographie

Tomcat 6 http://tomcat.apache.org/download-60.cgi

JDK 1.5

http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html

Axis 1.4 http://axis.apache.org/axis/

JUDDI 0.9rc4(UDDI 2.0) http://www.apache.org/dyn/closer.cgi/ws/juddi/0_9RC4/

UDDI Browser 0.2 http://uddibrowser.org/

Mysql 5.1 http://dev.mysql.com/downloads/mysql/5.1.html

mysql-connector 5.1 http://www.mysql.com/downloads/connector/j/