S51 vos projets web services ibm i a l aide de php
Ter Web Service Intro
1. WEB SERVICES
Tébourbi Riadh SUP’COM, 2006, Riadh.Tebourbi@supcom.rnu.tn
http://www.supcom.mincom.tn/~tebourbi/index3.htm
2. Généralités
2
3 générations d’applications Web
1 ° Génération
Pages Web statiques (HTML)
2 ° Génération
Des applications réelles
(Pages Web dynamiques, ASP, JSP, PHP, ...)
3 ° Génération
Les Web services (basé sur XML)
Web Services, Riadh Tébourbi, 2006
3. Web Services : définition
3
Les Web Services : ensemble de protocoles qui permettent de :
Faire communiquer des programmes tournant sur des machines différentes et
écrits dans des langages de programmation différents.
Invoquer des fonctions distantes, présentes sur des systèmes distribués et
hétérogènes, grâce à des protocoles standards indépendamment de:
•la plate-forme (LINUX, Windows,…)
•l’implémentation (Java, C++, Visual Basic,…)
•l’architecture sous-jacente (.NET, J2EE,…)
Web Services, Riadh Tébourbi, 2006
4. Fonctionnement
4
Les services web permettent l'appel d'une méthode d'un objet distant en utilisant un
protocole web pour transport (http en général) et XML pour formater les échanges. Les
services web fonctionnent sur le principe du client serveur:
un client appelle les service web
le serveur traite la demande et renvoie le résultat au client
le client utilise le résultat
Web Services, Riadh Tébourbi, 2006
5. Technologies utilisées
5
Les services web utilisent trois technologies :
SOAP (Simple Object Access Protocol) pour le service d'invocation : il permet l'échange
de messages dans un format particulier
WSDL (Web Services Description Language) pour le service de description : il permet de
décrire les services web
UDDI (Universal Description Discovery and Integration) pour le service de publication : il
permet de référencer les services web
Web Services, Riadh Tébourbi, 2006
6. SOAP: Simple Object Access Protocol
6
SOAP: une norme de communication qui standardise l'échange de messages en utilisant un
protocole de communication et XML pour formater les données.
Le protocole le plus utilisé est HTTP pour sa facilité de mise en œuvre mais d'autres
protocoles peuvent être utilisés tel que FTP (tous les protocoles capables de véhiculer un
flux d'octets peuvent être utilisés).
SOAP peut être utilisé :
pour l'appel de méthodes (SOAP RPC)
pour l'échange de message (SOAP Messaging)
Web Services, Riadh Tébourbi, 2006
7. SOAP: structure
7
SOAP définit la structure principale du message, dite « enveloppe » qui contient deux
parties :
en tête (Header) : facultatif
le corps (Body) : obligatoire
Le corps est composé d'un ou plusieurs blocs. Un
bloc contient des données ou un appel de
méthode avec ces paramètres.
La partie SOAP Fault permet d'indiquer qu'une
erreur est survenue lors des traitements du
service web
Web Services, Riadh Tébourbi, 2006
8. WSDL: Web Services Description Language
8
WSDL : une norme qui utilise XML pour décrire des services web
Objectif
Décrire les services comme un ensemble d’opérations et de
messages abstraits relié (bind) à des protocoles et des serveurs
réseaux
Grammaire XML (schema XML)
Modulaire (import d’autres documents WSDL et XSD)
Web Services, Riadh Tébourbi, 2006
9. Exemple
9
Deux web méthodes sur le serveur:
<WebMethod()> _
Public Function HelloWorld() As String
Return quot;Hello Worldquot;
End Function
<WebMethod()> _
Public Function Somme(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
Web Services, Riadh Tébourbi, 2006
13. Exemple de Service Web
13
Client mobile, web, etc Serveur
1
Service web
cartographique
3
2
1) Le client envoie une requête au service web
BD
2) Le service web traite la requête et génère à la
cartographique
volée une carte raster géoréférencée à partir des
données cartographiques vecteur
3) Le service web envoie le résultat au client
Web Services, Riadh Tébourbi, 2006
14. Outils
14
La Plate-forme .NET (période 2)
La bibliothèque de classes de base
Data Access GUI Security XML/SOAP
(et autres...)
Threading File I/O Debugging
Web Services, Riadh Tébourbi, 2006
15. Outils
15
JWSDP
Java Web Services Developer Pack (JWSDP) : un ensemble d'outils et d'API qui permet
de faciliter le développement des services web et des applications web avec Java.
contient les API particulières suivantes :
•Java XML Pack : Java API for XML Processing (JAXP), Java API for XML-based RPC (JAX-RPC),
Java API for XML Messaging (JAXM), Java API for XML Registries (JAXR)
•Java Architecture for XML Binbing (JAXB)
•JavaServer Pages Standard Tag Library (JSTL)
•Java Secure Socket (JSSE)
•SOAP with Attachments API for Java (SAAJ)
Le JWSDP contient les outils suivants :
•Apache Tomcat
•Java WSDP Registry Server (serveur UDDI)
•Web application development tool
•Apache Ant Web Services, Riadh Tébourbi, 2006
16. Web Services avec JAVA
16
1) Installation des outils:
Ingrédients:
JDK: jdk-1_5_0_07-windows-i586-p.exe
Outil de développement: netbeans-5_5-beta2-windows.exe
Serveur d’application: tomcat50-jwsdp.zip , à décompresser
dans tomcat50-jwsdp
JWSDP: jwsdp-2_0-windows-i586.exe
Web Services, Riadh Tébourbi, 2006
17. Web Services avec JAVA
17
2) Configurations:
Pour tomcat: JAVA_HOME set to C:Program FilesJavajdk1.5.0_07)
Sur NetBeans: tools server manager: choisir le serveur d’application tomcat50-jwsdp
Add server :
server = Tomcat 5.0,
Name = Tomcat 5.0
Catalina home = repertoire tomcat50-jwsdp
Web Services, Riadh Tébourbi, 2006
18. Web Services avec JAVA
18
3) Premier Web Service: une web méthode qui retourne la somme de deux entiers
- File new project web web application
- Project name: premierws
- Server: tomcat 5.0
- Clic droit Propriétés projet: source
level =1.5
Web Services, Riadh Tébourbi, 2006
19. Web Services avec JAVA
19
4) Ajout du web service
Web Services, Riadh Tébourbi, 2006
20. Web Services avec JAVA
20
5) Création de la web méthode: « somme »
Web Services, Riadh Tébourbi, 2006
21. Web Services avec JAVA
21
5) Déployer le web service
Démarrer Tomcat: Program files sun microsystems java web ..start tomcat
Compiler le projet: Build project
Deployer le ws: Deploy project
Tester et visualiser le WSDL:
http://localhost:8080/premierws/myws?wsdl
Web Services, Riadh Tébourbi, 2006
22. Tester le Web Service
22
Soap UI: permet de tester les web méthodes d’un web service sans a
voir à développer un web client
File new WSDL project
Add WSDl from url http://localhost:8080/premierws/myws?wsdl
Web Services, Riadh Tébourbi, 2006
23. Créer un web client JAVA
23
1) Création de l’application java cliente
- Sur Netbeans: file new project général java application
Project name=wsclient
- Project new web service client
Web Services, Riadh Tébourbi, 2006
24. Créer un web client JAVA
24
2) Appel de la web méthode « somme »
Dans une méthode (main par exemple) clic droit web service client resources
call web service operation
Enfin: Build project run project
Web Services, Riadh Tébourbi, 2006
25. Allez plus loin
25
Une web méthode qui retourne une instance d’une classe: contient plusieurs attributs.
Avantages: Envoyer plusieurs données en même temps.
Exemple: rajouter dans le WS la class testclass:
public class testclass {
public int unentier;
public String unechaine;
public String tableau[]={quot;SERCOMquot;, quot;ISTquot;, quot;RSMquot;, quot;ISTquot;};
/** Creates a new instance of testclass */
public testclass() {
unentier=3;
unechaine=quot;Bonjour Indp quot;;
}
Web Services, Riadh Tébourbi, 2006
26. 26
Ajout d’une web méthode qui renvoie une instance de la classe testclass
@WebMethod(operationName=quot;appel_testclassquot;)
public testclass appel_testclass() {
// implement the web service operation here
testclass t = new testclass();
return t;
}
Web Services, Riadh Tébourbi, 2006
27. 27
Coté client: appel de la web méthode:
public void callTestclass() {
try { // Call Web Service Operation
wsclient.MywsService service = new wsclient.MywsService();
wsclient.Myws port = service.getMywsPort();
// TODO process result here
wsclient.Testclass result = port.appelTestclass();
//System.out.println(quot;Result = quot;+result);
//affiche les datas
System.out.println(quot;Result = quot;+result.unechaine + result.unentier);
for(int i=0;i<result.tableau.size();i++) System.out.println(result.tableau.get(i));
System.out.println(result.getUnechaine());
} catch (Exception ex) {
// TODO handle custom exceptions here
System.out.println(ex.toString());
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new Main().callTestclass();
}
Web Services, Riadh Tébourbi, 2006