SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
7/12/2005
Web Services
Introduction à l’aide d’un exemple
Urs Richle
Problématique
Linux
Windows
Data
MySQL
Data
Postgre
SQL
Data
Oracle
Data
Access
Mac
ASP
PHP
Java
Applet
JSP
Servlet
...
HTML
XHTM
CSS
XML
SVG
XTM
...
Réponse
Requête
IIS
Apache
Tomcat
...
Problématique
Apache
Workstation
IIS
MySQL
Access
Tomcat
Postgres
SQL
Problématique: comment interagir?
Service Provider
Data
Service Provider
Server
Data
Service Provider
Server
Data
Service Provider
Server
Server
Data
Service Provider
Servers
Data
Data
Service Provider
Server
Data
Server
Workstation
Workstation
Laptop
ASP
PHP
JAVA
Python
C++
MySQL
Oracle
PostgreSQL
Access
BD-XML
VB
Oracle
Web Services
„ Définition:
« Web Services are software applications that can be
discovered, described, and accessed based on XML and
standard Web protocols over intranets, extranets, and the
Internet. »
Michael C. Daconta, Leo J. Obrst, Kevin T. Smith dans: THE SEMANTIC WEB, Wiley, Indianapolis, 2003
„ But:
Permettre l’interopérabilité entre des applications diverses.
Les 3 rôles d’un Web Service
UDDI
Universal Description,
Discovery and Integration
WSDL
Web Services
Description Language
Schéma adapté de: Web Services – Conceptual Architecture (WSCA 1.0), IBM
Architecture du Web Service
Workstation ou serveur
Application
Client
Web
Service
WSDL
Réponse
Requette
UDDI Registre
Serveur
Protocole
Architecture du Web Service
Workstation ou serveur
Application
Client
Web
Service
WSDL
(XML)
Réponse
Requette
UDDI
(XML)
Registre
Serveur
SOAP
(XML)
SOAP: Simple Object Access Protocol
Les différentes normes de base
„ Annuaire / Publication
– basé sur XML
„ Description des méthodes
– basé sur XML
„ Échange
„ – basé sur XML
„ Protocole de transfert
„ Protocole de transport
WSDL
UDDI
SOAP
HTTP, SMTP, FTP, …
TCP/IP
UDDI – les pages jaunes
„ www.uddi.org
„ http://www.xmethods.com/
„ http://uddi.microsoft.com/default.aspx
„ http://www.bindingpoint.com
WSDL – description des méthodes
„ Une description exacte du Web Service par
les méthodes avec les types de paramètres requises
les réponses avec les types de paramètres renvoyés
„ Basé sur XML
„ 3 parties principales:
description des messages
description des types de données échangées
description des conventions pour la procédure de
l’échange
SOAP – les messages
„ Protocole pour l’échange des données
„ Basé sur XML
„ Utilise HTTP ou autre protocole (SMTP, FTP …)
„ Combinaison la plus fréquente:
Æ HTTP – TCP/IP
„ Va être remplacé par le standard XML Protocol
http://www.w3.org/2000/xp/Group/
Web Serices tool-kits
„ Java
Axis – http://ws.apache.org/axis/
JDeveloper – http://www.oracle.com/technology/software/products/jdev
„ PHP
NuSOAP – http://sourceforge.net/projects/nusoap/
„ ASP
MS .Net (Visual Studio) – http://www.microsoft.com/net/default.mspx
Exemple
Application
PHP
ASP
JSP
Servlet
…
SOAP-
client
Application
Visualisation
Serveur ou PC
Browser /
Interface
Client
HTTP
SOAP-
requête
SOAP-
réponse
WSDL
MediaWiki
Extension
Extraction
des lines
NuSOAP
SOAP-
serveur
Serveur
Apache
Tecfa MediaWiki-Web Service avec NuSOAP:
http://tecfax.unige.ch/portails/mediawiki/extensions/WebService/
La librairie PHP NuSOAP: http://sourceforge.net/projects/nusoap/
Tecfa MediaWiki-Web Service
Le Web Service propose 3 méthodes (services):
„ getTopicNames()
Cette méthode retourne tous les topics existants dans la
plateforme MediaWiki(articles, catégories, auteurs, images).
Retourne un tableau: array(topicTypeName => array(array(name, url)))
„ getTopicLinkage($term)
Cette méthode retourne tous les différents liens pour un topic
donné, et quelques informatins sur le topic lui-même.
Retourne un tableau: array (name, type, numberOfLinksToThisTopic, URL, array
with all links from this topic to other topics (each link is an array(name, type, url))
„ getTopicMap()
Cette méthode retourne le contenu sémantique du MediaWiki en
forme d’un topic map. Il s’agit d’un fichier XML respectant la DTD
du standard ISO 13250 TopicMaps
Retourne un string: le fichier XTM
Le côté serveur du MediaWiki WS
„ Le fichier « serveur »
http://tecfax.unige.ch/portails/mediawiki/exten
sions/WebService/index.php
„ Le fichier WSDL
http://tecfax.unige.ch/portails/mediawiki/exten
sions/WebService/index.php?wsdl
Deux exemples de WS-Clients
Cluster
SOAP
WSDL
SOAP
MediaWiki
Extraction
NuSOAP
MySQL
Serveur-Apache
NuSOAP
Test.
php
Java Application
JRE
Test.
class
JAVA
PHP PHP
XML
Exemples de Web Service-Clients
„ WS-Client avec NuSOAP
http://tecfax.unige.ch/portails/mediawiki/extensions/WebService_CLIENT/
„ WS-Client en Java
Création des fichiers de base avec
JDeveloper (Démo)
SOAP – la requête
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:si="http://soapinterop.org/xsd"
xmlns:tns="urn:MediaWikiTopicMap_wsdl">
<SOAP-ENV:Body>
<tns:getTopicLinkage xmlns:tns="urn:MediaWikiTopicMap_wsdl">
<term xsi:type="tns:Term">
<term xsi:type="xsd:string">Accueil</term>
</term>
</tns:getTopicLinkage>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP – la réponse
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle….
xmlns:tns="urn:MediaWikiTopicMap_wsdl">
<SOAP-ENV:Body>
<ns1:getTopicLinkageResponse
xmlns:ns1="urn:MediaWikiTopicMap_wsdl">
<return xsi:type="tns:TopicLinkage">
<topicName xsi:type="xsd:string">Accueil</topicName>
<type xsi:type="xsd:string">ArticleTopic</type>
<numLinksTo xsi:type="xsd:int">0</numLinksTo>
<url
xsi:type="xsd:string">http://tecfaX.unige.ch/portails/mediawiki/index.php/Accu
eil</url>
<links xsi:type="SOAP-ENC:Array" SOAP-
ENC:arrayType="tns:link[21]">
<item xsi:type="tns:link">
<name xsi:type="xsd:string">ToDoList</name>
<type xsi:type="xsd:string">existingArticle</type>
<url
xsi:type="xsd:string">http://tecfaX.unige.ch/portails/mediawiki/index.php
/ToDoList</url>
</item> …
Évaluation
„ Avantages
Interopérabilité entre des systèmes d’information divers
Accès aux informations de manière dynamique
Standards « open source » (pas de charges)
„ Désavantages
Multiplication de la masse d’informations véhiculée
Surcharge de traitements (facteur 25 pour les requêtes –
facteurs 500 pour les réponses)
Sécurité encore discutable
Autres exemples (Démo)
„ WS-Client en Java qui consomme le Web Service
de ViaMichelin
http://ws.viamichelin.com/wswebsite/gbr/jsp/hme/MaHomePage.jsp
„ WS-Client en PHP (NuSOAP) qui consomme un
Web Service de
http://www.xmethods.com
„ traducteur anglais-bulgare:
http://www.xmethods.com/ve2/ViewListing.po?key=uuid:093D2207-3ADE-56A7-A171-8447C6F12D5F
Sources et informations
„ Web Services spécifications:
http://www.w3.org/2002/ws/
„ WSDL spécifications:
http://www.w3.org/TR/wsdl
„ UDDI spécifications:
http://www.uddi.org/
„ SOAP:
http://www.w3.org/TR/soap/
„ XML Protocol:
http://www.w3.org/2000/xp/Group/
„ Une introduction
http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf
„ Une brève description:
http://en.wikipedia.org/wiki/Web_service
„ http://www.gotdotnet.com/team/XMLwebservices/gxa_overview.aspx
„ MSDN Library:
http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/webservbasics.asp
„ Web Services avec NuSphere:
http://www.nusphere.com/products/library/webservices_whitep_012502.pdf
„ Exemple:
Un exemple d’un client avec NuSOAP: http://tecfax.unige.ch/portails/mediawiki/extensions/WebService_CLIENT/
„ Livres:
Michael C. Daconta, Leo J. Obrst, Kevin T. Smith dans: THE SEMANTIC WEB, Wiley, Indianapolis, 2003
Pour tester (sur le serveur de Tecfa):
„ Créer un nouveau « Favori réseau »
Ouvrir « Favoris réseau »
« Ajouter un Favoris réseau »
Choisir « site web »
donner l’adresse suivante:
„ http://tecfax.unige.ch/formcont/xml05/
NU: formcont – MP:
Retourner dans « Favoris réseau »
„ Installer NuSOAP
Créer un nouveau dossier avec votre nom
Copier « Basic_WSClient » dans votre dossier
„ Définir le WS-Client
Ouvrir le fichier « proxy_WS_Client.php » en local (attention: ne pas reprendre le fichier du
serveur! Prendre le fichier sur:
http://tecfax.unige.ch/portails/mediawiki/extensions/WebService_CLIENT/proxy_basicWS_Cl
ient.phps )
Changer l’adresse du fichier WSDL
Changer le nom de la méthode et mettre des paramètres éventuels
Ouvrir un browser et aller sur l’adresse suivante:
„ http://tecfax.unige.ch/formcont/xml05/
Choisir votre dossier et aller dans le dossier NuSOAP – ouvrir le fichier de votre WS-Client -
le résultat de votre Web Service-Client s’affiche.

Contenu connexe

Similaire à xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

Javav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesJavav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesCERTyou Formation
 
Presentation
PresentationPresentation
Presentationbois
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologiesSébastien Letélié
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5Mohamed Nemili
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Microsoft
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 LyonLeTesteur
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs Jean Michel
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Frédéric Queudret
 
ACube : De la solution à l'industrialisation
ACube : De la solution à l'industrialisationACube : De la solution à l'industrialisation
ACube : De la solution à l'industrialisationpeguet
 
ReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobileReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobileThomas Conté
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfRachida19
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 

Similaire à xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh (20)

Javav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesJavav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservices
 
Presentation
PresentationPresentation
Presentation
 
Web Services
Web ServicesWeb Services
Web Services
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologies
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 Lyon
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009
 
ACube : De la solution à l'industrialisation
ACube : De la solution à l'industrialisationACube : De la solution à l'industrialisation
ACube : De la solution à l'industrialisation
 
ReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobileReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobile
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 

Dernier

SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 

Dernier (11)

SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 

xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

  • 1. 7/12/2005 Web Services Introduction à l’aide d’un exemple Urs Richle
  • 4. Problématique: comment interagir? Service Provider Data Service Provider Server Data Service Provider Server Data Service Provider Server Server Data Service Provider Servers Data Data Service Provider Server Data Server Workstation Workstation Laptop ASP PHP JAVA Python C++ MySQL Oracle PostgreSQL Access BD-XML VB Oracle
  • 5. Web Services „ Définition: « Web Services are software applications that can be discovered, described, and accessed based on XML and standard Web protocols over intranets, extranets, and the Internet. » Michael C. Daconta, Leo J. Obrst, Kevin T. Smith dans: THE SEMANTIC WEB, Wiley, Indianapolis, 2003 „ But: Permettre l’interopérabilité entre des applications diverses.
  • 6. Les 3 rôles d’un Web Service UDDI Universal Description, Discovery and Integration WSDL Web Services Description Language Schéma adapté de: Web Services – Conceptual Architecture (WSCA 1.0), IBM
  • 7. Architecture du Web Service Workstation ou serveur Application Client Web Service WSDL Réponse Requette UDDI Registre Serveur Protocole
  • 8. Architecture du Web Service Workstation ou serveur Application Client Web Service WSDL (XML) Réponse Requette UDDI (XML) Registre Serveur SOAP (XML) SOAP: Simple Object Access Protocol
  • 9. Les différentes normes de base „ Annuaire / Publication – basé sur XML „ Description des méthodes – basé sur XML „ Échange „ – basé sur XML „ Protocole de transfert „ Protocole de transport WSDL UDDI SOAP HTTP, SMTP, FTP, … TCP/IP
  • 10. UDDI – les pages jaunes „ www.uddi.org „ http://www.xmethods.com/ „ http://uddi.microsoft.com/default.aspx „ http://www.bindingpoint.com
  • 11. WSDL – description des méthodes „ Une description exacte du Web Service par les méthodes avec les types de paramètres requises les réponses avec les types de paramètres renvoyés „ Basé sur XML „ 3 parties principales: description des messages description des types de données échangées description des conventions pour la procédure de l’échange
  • 12. SOAP – les messages „ Protocole pour l’échange des données „ Basé sur XML „ Utilise HTTP ou autre protocole (SMTP, FTP …) „ Combinaison la plus fréquente: Æ HTTP – TCP/IP „ Va être remplacé par le standard XML Protocol http://www.w3.org/2000/xp/Group/
  • 13. Web Serices tool-kits „ Java Axis – http://ws.apache.org/axis/ JDeveloper – http://www.oracle.com/technology/software/products/jdev „ PHP NuSOAP – http://sourceforge.net/projects/nusoap/ „ ASP MS .Net (Visual Studio) – http://www.microsoft.com/net/default.mspx
  • 14. Exemple Application PHP ASP JSP Servlet … SOAP- client Application Visualisation Serveur ou PC Browser / Interface Client HTTP SOAP- requête SOAP- réponse WSDL MediaWiki Extension Extraction des lines NuSOAP SOAP- serveur Serveur Apache Tecfa MediaWiki-Web Service avec NuSOAP: http://tecfax.unige.ch/portails/mediawiki/extensions/WebService/ La librairie PHP NuSOAP: http://sourceforge.net/projects/nusoap/
  • 15. Tecfa MediaWiki-Web Service Le Web Service propose 3 méthodes (services): „ getTopicNames() Cette méthode retourne tous les topics existants dans la plateforme MediaWiki(articles, catégories, auteurs, images). Retourne un tableau: array(topicTypeName => array(array(name, url))) „ getTopicLinkage($term) Cette méthode retourne tous les différents liens pour un topic donné, et quelques informatins sur le topic lui-même. Retourne un tableau: array (name, type, numberOfLinksToThisTopic, URL, array with all links from this topic to other topics (each link is an array(name, type, url)) „ getTopicMap() Cette méthode retourne le contenu sémantique du MediaWiki en forme d’un topic map. Il s’agit d’un fichier XML respectant la DTD du standard ISO 13250 TopicMaps Retourne un string: le fichier XTM
  • 16. Le côté serveur du MediaWiki WS „ Le fichier « serveur » http://tecfax.unige.ch/portails/mediawiki/exten sions/WebService/index.php „ Le fichier WSDL http://tecfax.unige.ch/portails/mediawiki/exten sions/WebService/index.php?wsdl
  • 17. Deux exemples de WS-Clients Cluster SOAP WSDL SOAP MediaWiki Extraction NuSOAP MySQL Serveur-Apache NuSOAP Test. php Java Application JRE Test. class JAVA PHP PHP XML
  • 18. Exemples de Web Service-Clients „ WS-Client avec NuSOAP http://tecfax.unige.ch/portails/mediawiki/extensions/WebService_CLIENT/ „ WS-Client en Java Création des fichiers de base avec JDeveloper (Démo)
  • 19. SOAP – la requête <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:MediaWikiTopicMap_wsdl"> <SOAP-ENV:Body> <tns:getTopicLinkage xmlns:tns="urn:MediaWikiTopicMap_wsdl"> <term xsi:type="tns:Term"> <term xsi:type="xsd:string">Accueil</term> </term> </tns:getTopicLinkage> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
  • 20. SOAP – la réponse <?xml version="1.0" encoding="ISO-8859-1"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle…. xmlns:tns="urn:MediaWikiTopicMap_wsdl"> <SOAP-ENV:Body> <ns1:getTopicLinkageResponse xmlns:ns1="urn:MediaWikiTopicMap_wsdl"> <return xsi:type="tns:TopicLinkage"> <topicName xsi:type="xsd:string">Accueil</topicName> <type xsi:type="xsd:string">ArticleTopic</type> <numLinksTo xsi:type="xsd:int">0</numLinksTo> <url xsi:type="xsd:string">http://tecfaX.unige.ch/portails/mediawiki/index.php/Accu eil</url> <links xsi:type="SOAP-ENC:Array" SOAP- ENC:arrayType="tns:link[21]"> <item xsi:type="tns:link"> <name xsi:type="xsd:string">ToDoList</name> <type xsi:type="xsd:string">existingArticle</type> <url xsi:type="xsd:string">http://tecfaX.unige.ch/portails/mediawiki/index.php /ToDoList</url> </item> …
  • 21. Évaluation „ Avantages Interopérabilité entre des systèmes d’information divers Accès aux informations de manière dynamique Standards « open source » (pas de charges) „ Désavantages Multiplication de la masse d’informations véhiculée Surcharge de traitements (facteur 25 pour les requêtes – facteurs 500 pour les réponses) Sécurité encore discutable
  • 22. Autres exemples (Démo) „ WS-Client en Java qui consomme le Web Service de ViaMichelin http://ws.viamichelin.com/wswebsite/gbr/jsp/hme/MaHomePage.jsp „ WS-Client en PHP (NuSOAP) qui consomme un Web Service de http://www.xmethods.com „ traducteur anglais-bulgare: http://www.xmethods.com/ve2/ViewListing.po?key=uuid:093D2207-3ADE-56A7-A171-8447C6F12D5F
  • 23. Sources et informations „ Web Services spécifications: http://www.w3.org/2002/ws/ „ WSDL spécifications: http://www.w3.org/TR/wsdl „ UDDI spécifications: http://www.uddi.org/ „ SOAP: http://www.w3.org/TR/soap/ „ XML Protocol: http://www.w3.org/2000/xp/Group/ „ Une introduction http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf „ Une brève description: http://en.wikipedia.org/wiki/Web_service „ http://www.gotdotnet.com/team/XMLwebservices/gxa_overview.aspx „ MSDN Library: http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/webservbasics.asp „ Web Services avec NuSphere: http://www.nusphere.com/products/library/webservices_whitep_012502.pdf „ Exemple: Un exemple d’un client avec NuSOAP: http://tecfax.unige.ch/portails/mediawiki/extensions/WebService_CLIENT/ „ Livres: Michael C. Daconta, Leo J. Obrst, Kevin T. Smith dans: THE SEMANTIC WEB, Wiley, Indianapolis, 2003
  • 24. Pour tester (sur le serveur de Tecfa): „ Créer un nouveau « Favori réseau » Ouvrir « Favoris réseau » « Ajouter un Favoris réseau » Choisir « site web » donner l’adresse suivante: „ http://tecfax.unige.ch/formcont/xml05/ NU: formcont – MP: Retourner dans « Favoris réseau » „ Installer NuSOAP Créer un nouveau dossier avec votre nom Copier « Basic_WSClient » dans votre dossier „ Définir le WS-Client Ouvrir le fichier « proxy_WS_Client.php » en local (attention: ne pas reprendre le fichier du serveur! Prendre le fichier sur: http://tecfax.unige.ch/portails/mediawiki/extensions/WebService_CLIENT/proxy_basicWS_Cl ient.phps ) Changer l’adresse du fichier WSDL Changer le nom de la méthode et mettre des paramètres éventuels Ouvrir un browser et aller sur l’adresse suivante: „ http://tecfax.unige.ch/formcont/xml05/ Choisir votre dossier et aller dans le dossier NuSOAP – ouvrir le fichier de votre WS-Client - le résultat de votre Web Service-Client s’affiche.