SlideShare una empresa de Scribd logo
1 de 24
Web Services et PHP
          31/01/2007



    François-Xavier Bois
    fxbois@kernix.com
Bienvenue
• François-Xavier Bois
• Fondateur de la société KerniX Software
  http://www.kernix.com
• Auteur de « PHP5, le guide complet » et
  « PHP5 et MySQL5 » chez MicroApplication
Les Web Services
• Mise à disposition de ressources par un
  site web.
• Les ressources :
  – Données
    ex: traduction d’un mot
  – Actions
    ex: ajout d’une traduction
Avant les WS
• Chaque projet inventait sa norme pour
  mettre à disposition des données
 ex :
 “rouge","bleu",“vert“
 ="01234",“aaaa""bb",ccc
 aaa bb     ccc
• Aucune formalisation des codes retours
 ex: un code de status HTTP, une valeur dans la page de
 retour (1, ‘OK’,…)
Avantages
• Normalisation
  – Format du message (souvent XML).
  – Façon d’appeler les méthodes.
  – Gestion des erreurs.

• Indépendance vis-à-vis :
  –   De l’architecture
  –   Du système d’exploitation : Linux, Solaris, Win
  –   Du serveur web : Apache, IIS
  –   Du langage de programmation : PHP, Java, Python, Ruby
Inconvénients
• Plus lourds au niveau ressources.
• Plus complexes à mettre en œuvre.
• Nécessité de disposer des bonnes
  extensions, librairies.
Les types de WS
Différents types de WS peuvent être mis en
œuvre (par ordre croissant de complexité) :
• REST
• XML-RPC
• SOAP
REST
• La requête du client prend la forme
  d’une URL
 http://api.search.yahoo.com/WebSearchService/V1/webSearch?ap
 pid=sl2007&query=persimmon&results=2&output=json

 http://developer.yahooapis.com/TimeService/V1/getTime?appid=
 sl2007

• La réponse peut prendre différentes
  formes : XML, JSON, YAML, TEXT.
• Oblige le client à « parser » la réponse.
XML-RPC
Requêtes (du client) et réponses (du serveur)
sont au format XML.
Requête (méthode POST)                           Réponse du serveur
POST /rpchandler                                 HTTP/1.1 200 OK
HTTP/1.0 User-Agent: AcmeXMLRPC/1.0              Date: Sun, 14 Jan 2007 12:08:58 GMT
Host: mon.server.com                             Server: Apache/2.0.12 (Unix) Debian/GNU PHP/5.2.0
Content-Type: text/xml                           Connection: close
Content-Length: 165                              Content-Type: text/xml
                                                 Content-length: 128
<?xml version="1.0"?>
<methodCall>                                     <?xml version="1.0"?>
 <methodName>                                    <methodResponse>
   traduitMot                                     <params>
 </methodName>                                      <param>
 <params>                                            <value><string>red</string></value>
   <param>                                          </param>
     <value><string>rouge</string></value>        </params>
   </param>                                      </methodResponse>
 </params>
</methodCall>
SOAP
• Des messages au format XML sont échangés
  entre le client et le serveur.
• La méthode POST est utilisée pour la requête
  du client.
• Ces messages (organisés sous forme
  d’enveloppes) sont plus complexes qu’en XML-
  RPC.
• Un fichier WSDL décrit les méthodes (+
  arguments) proposées par le service. Il s’agit
  également d’un fichier XML.
PHP et WS
• PHP4 n’est pas une version optimale pour
  la gestion des WS.
• PHP5 dispose en interne de tous les
  composants permettant de construire ou
  de consommer des WS. Tous les types de
  WS sont gérés par PHP.
Environnement
• Ajout de l’extension SOAP
 PHP settings > PHP extensions > Add extension >
 php_soap.dll
• Contrôle de la présence de l’extension
 Localhost > phpinfo()
• Création de la base
  http://localhost/tp3/install.php
Notre Exemple
Interaction entre 2 sites

1.   Un site e-commerce permettant de réserver des places de
     concert :
     Répertoire : /tp3/boutique
     Lien : http://localhost/tp3/boutique

2.   Une centrale de réservation permettant de contrôler l’état d’un
     concert
     Répertoire : /tp3/centrale
     Base de données : centrale
     URL : http://localhost/tp3/centrale

Type de Web Service : SOAP.
Consommation d’un WS
• Nous souhaitons obtenir des informations
  sur le prochain concert de « U2 »
• Nous utilisons le service getConcert fourni
  par le site « Centrale »

 Fichier : /tp3/boutique/fiche.php
 URL : http://localhost/tp3/boutique
Création d’un WS
Le principe consiste à créer une classe
« modèle » et à la transmettre à la classe
SoapServer qui se chargera de rendre
disponible ses méthodes en respectant le
protocole SOAP.

Fichier : /tp3/centrale/services.php
Utilisation du fichier WSDL
• Permet de décrire les interfaces des
  méthodes : nom + attributs.
• Son utilisation allège le code associé aux
  clients.
• Le service s’auto décrit.
• Il constitue une forme de contrat entre le
  client et le serveur (l’implémentation
  importe peu).
• Le format est hélas assez complexe.
Serveur avec WSDL
• Nous utilisons maintenant le fichier WSDL

 Fichiers :
 /tp3/centrale/services2.php
 /tp3/centrale/centrale.wsdl
Client avec WSDL
• Le code est plus court et plus lisible.
• Nous sommes maintenant en mesure de
  lister les différents services proposés par
  le site « Centrale ».

 Fichier : /tp3/boutique/fiche2.php
 URL : http://localhost/tp3/boutique/fiche2.php?groupe=u2
Espionnage des échanges
Une option permet de tracer les messages
échangés entre le client et le serveur.

Fichier : /tp3/boutique/debug.php
URL : http://localhost/tp3/boutique/debug.php?groupe=u2
Gestion d’erreur
Les erreurs se gèrent en émettant des Exceptions
de type SoapFault au sein du serveur et en les
« attrapant » au sein du client.

- Fichiers :
/tp3/boutique/fiche3.php
/tp3/centrale/services3.php
/tp3/centrale/centrale2.php
- URL :
http://localhost/tp3/boutique/fiche3.php?groupe=u2zz
Les WS aujourd’hui
• Tous les « grands » du WEB en proposent
  – Google : Blogger, Maps, AdWords, Checkout,
    Calendar
  – Yahoo : Moteur de recherche, Traffic
  – Flicker : gestion de photos
  – eBay
  – Amazon : possibilité d’externaliser
    intégralement une boutique
WEB 2.0
Les WS font partie de la révolution WEB2.0
en :
• permettant au site d’interagir (Mash-
  Ups),
• en mettant à disposition des données
  exploitables facilement par des
  Javascripts.
Conclusion
En utilisant les WS vous :
- gagnez du temps (auto description des
  fonctionnalités du site),
- êtes compatible avec un maximum de
  plateforme,
- permettez à des partenaires de travailler
  avec vous et élargissez votre réseau.
Questions / Réponses

    A vous la parole

Más contenido relacionado

La actualidad más candente

les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMehdi Mehni
 
Un environnement de développement solide avec wamp
Un environnement de développement solide avec wampUn environnement de développement solide avec wamp
Un environnement de développement solide avec wampNicolas Beauvais
 
2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec PowershellPatrick Guimonet
 
Powershell
PowershellPowershell
PowershellUGAIA
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615JUG Toulouse
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejsnaholyr
 
Memcached: Comprendre pour mieux utiliser
Memcached: Comprendre pour mieux utiliserMemcached: Comprendre pour mieux utiliser
Memcached: Comprendre pour mieux utiliserNimeOps
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web servicesoussemos
 
20 minutes sur les typos en CSS
20 minutes sur les typos en CSS20 minutes sur les typos en CSS
20 minutes sur les typos en CSSBenoit Henry
 

La actualidad más candente (18)

Presentation SOAP
 Presentation SOAP Presentation SOAP
Presentation SOAP
 
Talk performance web
Talk performance webTalk performance web
Talk performance web
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Jsp
JspJsp
Jsp
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellence
 
Un environnement de développement solide avec wamp
Un environnement de développement solide avec wampUn environnement de développement solide avec wamp
Un environnement de développement solide avec wamp
 
serveur web
serveur webserveur web
serveur web
 
Messages queues - Socloz@PHPForum 2013
Messages queues - Socloz@PHPForum 2013Messages queues - Socloz@PHPForum 2013
Messages queues - Socloz@PHPForum 2013
 
2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell
 
Powershell
PowershellPowershell
Powershell
 
Cours php
Cours php Cours php
Cours php
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615
 
Hmailserver
HmailserverHmailserver
Hmailserver
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Memcached: Comprendre pour mieux utiliser
Memcached: Comprendre pour mieux utiliserMemcached: Comprendre pour mieux utiliser
Memcached: Comprendre pour mieux utiliser
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
 
20 minutes sur les typos en CSS
20 minutes sur les typos en CSS20 minutes sur les typos en CSS
20 minutes sur les typos en CSS
 

Destacado

PHP - get started
PHP - get startedPHP - get started
PHP - get startedmazenovi
 
Object Oriented Programming with PHP 5 - More OOP
Object Oriented Programming with PHP 5 - More OOPObject Oriented Programming with PHP 5 - More OOP
Object Oriented Programming with PHP 5 - More OOPWildan Maulana
 
PHP - fonctions mysql
PHP - fonctions mysqlPHP - fonctions mysql
PHP - fonctions mysqlmazenovi
 
BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7Darkmira
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POOmazenovi
 
Flupa 2011 - Atelier Pratique Maquettage
Flupa 2011 - Atelier Pratique MaquettageFlupa 2011 - Atelier Pratique Maquettage
Flupa 2011 - Atelier Pratique MaquettageFlupa
 
Contents page mockup
Contents page  mockupContents page  mockup
Contents page mockupNoirEl
 
Fondamentaux design d'applications mobiles
Fondamentaux design d'applications mobilesFondamentaux design d'applications mobiles
Fondamentaux design d'applications mobilesBeMyApp
 
Méthodologies de développement Web
Méthodologies de développement WebMéthodologies de développement Web
Méthodologies de développement WebMXO | agence totale
 
7 regles d'or pour réussir et rentabiliser un crm
7 regles d'or pour réussir et rentabiliser un crm7 regles d'or pour réussir et rentabiliser un crm
7 regles d'or pour réussir et rentabiliser un crmSage france
 
Maquettes pour une application mobile
Maquettes pour une application mobile Maquettes pour une application mobile
Maquettes pour une application mobile Khaled Fayala
 
Applying sys ml_with_magicdraw
Applying sys ml_with_magicdrawApplying sys ml_with_magicdraw
Applying sys ml_with_magicdrawelheshk
 
Maquettes IHM - Présentation USE AGE - 20-02-2014
Maquettes IHM - Présentation USE AGE - 20-02-2014Maquettes IHM - Présentation USE AGE - 20-02-2014
Maquettes IHM - Présentation USE AGE - 20-02-2014Use Age
 

Destacado (20)

Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
 
Symfony2. Lesson 1
Symfony2. Lesson 1 Symfony2. Lesson 1
Symfony2. Lesson 1
 
PHP - get started
PHP - get startedPHP - get started
PHP - get started
 
Object Oriented Programming with PHP 5 - More OOP
Object Oriented Programming with PHP 5 - More OOPObject Oriented Programming with PHP 5 - More OOP
Object Oriented Programming with PHP 5 - More OOP
 
PHP - fonctions mysql
PHP - fonctions mysqlPHP - fonctions mysql
PHP - fonctions mysql
 
BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POO
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Flupa 2011 - Atelier Pratique Maquettage
Flupa 2011 - Atelier Pratique MaquettageFlupa 2011 - Atelier Pratique Maquettage
Flupa 2011 - Atelier Pratique Maquettage
 
Contents page mockup
Contents page  mockupContents page  mockup
Contents page mockup
 
Atelier 5
Atelier 5Atelier 5
Atelier 5
 
Fondamentaux design d'applications mobiles
Fondamentaux design d'applications mobilesFondamentaux design d'applications mobiles
Fondamentaux design d'applications mobiles
 
Méthodologies de développement Web
Méthodologies de développement WebMéthodologies de développement Web
Méthodologies de développement Web
 
7 regles d'or pour réussir et rentabiliser un crm
7 regles d'or pour réussir et rentabiliser un crm7 regles d'or pour réussir et rentabiliser un crm
7 regles d'or pour réussir et rentabiliser un crm
 
Maquettes pour une application mobile
Maquettes pour une application mobile Maquettes pour une application mobile
Maquettes pour une application mobile
 
Applying sys ml_with_magicdraw
Applying sys ml_with_magicdrawApplying sys ml_with_magicdraw
Applying sys ml_with_magicdraw
 
Maquettes IHM - Présentation USE AGE - 20-02-2014
Maquettes IHM - Présentation USE AGE - 20-02-2014Maquettes IHM - Présentation USE AGE - 20-02-2014
Maquettes IHM - Présentation USE AGE - 20-02-2014
 
diagramme de cas d'utilisation
diagramme de cas d'utilisationdiagramme de cas d'utilisation
diagramme de cas d'utilisation
 

Similar a Presentation

08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Olivier Le Goaër
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhxml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhindguendouz2000
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfonyjeUXdiCode
 
JEE_chapitre 1.pdf
JEE_chapitre 1.pdfJEE_chapitre 1.pdf
JEE_chapitre 1.pdfiyadamri
 
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfintro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfCoumbaLaobNdiaye1
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdfElomyakobi
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnHINDGUENDOUZ
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutantKorteby Farouk
 

Similar a Presentation (20)

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
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhxml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfony
 
JEE_chapitre 1.pdf
JEE_chapitre 1.pdfJEE_chapitre 1.pdf
JEE_chapitre 1.pdf
 
PHP mysql Xml.pdf
PHP mysql Xml.pdfPHP mysql Xml.pdf
PHP mysql Xml.pdf
 
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfintro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdf
 
PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsoapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
soapC1.pdfnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutant
 

Presentation

  • 1. Web Services et PHP 31/01/2007 François-Xavier Bois fxbois@kernix.com
  • 2. Bienvenue • François-Xavier Bois • Fondateur de la société KerniX Software http://www.kernix.com • Auteur de « PHP5, le guide complet » et « PHP5 et MySQL5 » chez MicroApplication
  • 3. Les Web Services • Mise à disposition de ressources par un site web. • Les ressources : – Données ex: traduction d’un mot – Actions ex: ajout d’une traduction
  • 4. Avant les WS • Chaque projet inventait sa norme pour mettre à disposition des données ex : “rouge","bleu",“vert“ ="01234",“aaaa""bb",ccc aaa bb ccc • Aucune formalisation des codes retours ex: un code de status HTTP, une valeur dans la page de retour (1, ‘OK’,…)
  • 5. Avantages • Normalisation – Format du message (souvent XML). – Façon d’appeler les méthodes. – Gestion des erreurs. • Indépendance vis-à-vis : – De l’architecture – Du système d’exploitation : Linux, Solaris, Win – Du serveur web : Apache, IIS – Du langage de programmation : PHP, Java, Python, Ruby
  • 6. Inconvénients • Plus lourds au niveau ressources. • Plus complexes à mettre en œuvre. • Nécessité de disposer des bonnes extensions, librairies.
  • 7. Les types de WS Différents types de WS peuvent être mis en œuvre (par ordre croissant de complexité) : • REST • XML-RPC • SOAP
  • 8. REST • La requête du client prend la forme d’une URL http://api.search.yahoo.com/WebSearchService/V1/webSearch?ap pid=sl2007&query=persimmon&results=2&output=json http://developer.yahooapis.com/TimeService/V1/getTime?appid= sl2007 • La réponse peut prendre différentes formes : XML, JSON, YAML, TEXT. • Oblige le client à « parser » la réponse.
  • 9. XML-RPC Requêtes (du client) et réponses (du serveur) sont au format XML. Requête (méthode POST) Réponse du serveur POST /rpchandler HTTP/1.1 200 OK HTTP/1.0 User-Agent: AcmeXMLRPC/1.0 Date: Sun, 14 Jan 2007 12:08:58 GMT Host: mon.server.com Server: Apache/2.0.12 (Unix) Debian/GNU PHP/5.2.0 Content-Type: text/xml Connection: close Content-Length: 165 Content-Type: text/xml Content-length: 128 <?xml version="1.0"?> <methodCall> <?xml version="1.0"?> <methodName> <methodResponse> traduitMot <params> </methodName> <param> <params> <value><string>red</string></value> <param> </param> <value><string>rouge</string></value> </params> </param> </methodResponse> </params> </methodCall>
  • 10. SOAP • Des messages au format XML sont échangés entre le client et le serveur. • La méthode POST est utilisée pour la requête du client. • Ces messages (organisés sous forme d’enveloppes) sont plus complexes qu’en XML- RPC. • Un fichier WSDL décrit les méthodes (+ arguments) proposées par le service. Il s’agit également d’un fichier XML.
  • 11. PHP et WS • PHP4 n’est pas une version optimale pour la gestion des WS. • PHP5 dispose en interne de tous les composants permettant de construire ou de consommer des WS. Tous les types de WS sont gérés par PHP.
  • 12. Environnement • Ajout de l’extension SOAP PHP settings > PHP extensions > Add extension > php_soap.dll • Contrôle de la présence de l’extension Localhost > phpinfo() • Création de la base http://localhost/tp3/install.php
  • 13. Notre Exemple Interaction entre 2 sites 1. Un site e-commerce permettant de réserver des places de concert : Répertoire : /tp3/boutique Lien : http://localhost/tp3/boutique 2. Une centrale de réservation permettant de contrôler l’état d’un concert Répertoire : /tp3/centrale Base de données : centrale URL : http://localhost/tp3/centrale Type de Web Service : SOAP.
  • 14. Consommation d’un WS • Nous souhaitons obtenir des informations sur le prochain concert de « U2 » • Nous utilisons le service getConcert fourni par le site « Centrale » Fichier : /tp3/boutique/fiche.php URL : http://localhost/tp3/boutique
  • 15. Création d’un WS Le principe consiste à créer une classe « modèle » et à la transmettre à la classe SoapServer qui se chargera de rendre disponible ses méthodes en respectant le protocole SOAP. Fichier : /tp3/centrale/services.php
  • 16. Utilisation du fichier WSDL • Permet de décrire les interfaces des méthodes : nom + attributs. • Son utilisation allège le code associé aux clients. • Le service s’auto décrit. • Il constitue une forme de contrat entre le client et le serveur (l’implémentation importe peu). • Le format est hélas assez complexe.
  • 17. Serveur avec WSDL • Nous utilisons maintenant le fichier WSDL Fichiers : /tp3/centrale/services2.php /tp3/centrale/centrale.wsdl
  • 18. Client avec WSDL • Le code est plus court et plus lisible. • Nous sommes maintenant en mesure de lister les différents services proposés par le site « Centrale ». Fichier : /tp3/boutique/fiche2.php URL : http://localhost/tp3/boutique/fiche2.php?groupe=u2
  • 19. Espionnage des échanges Une option permet de tracer les messages échangés entre le client et le serveur. Fichier : /tp3/boutique/debug.php URL : http://localhost/tp3/boutique/debug.php?groupe=u2
  • 20. Gestion d’erreur Les erreurs se gèrent en émettant des Exceptions de type SoapFault au sein du serveur et en les « attrapant » au sein du client. - Fichiers : /tp3/boutique/fiche3.php /tp3/centrale/services3.php /tp3/centrale/centrale2.php - URL : http://localhost/tp3/boutique/fiche3.php?groupe=u2zz
  • 21. Les WS aujourd’hui • Tous les « grands » du WEB en proposent – Google : Blogger, Maps, AdWords, Checkout, Calendar – Yahoo : Moteur de recherche, Traffic – Flicker : gestion de photos – eBay – Amazon : possibilité d’externaliser intégralement une boutique
  • 22. WEB 2.0 Les WS font partie de la révolution WEB2.0 en : • permettant au site d’interagir (Mash- Ups), • en mettant à disposition des données exploitables facilement par des Javascripts.
  • 23. Conclusion En utilisant les WS vous : - gagnez du temps (auto description des fonctionnalités du site), - êtes compatible avec un maximum de plateforme, - permettez à des partenaires de travailler avec vous et élargissez votre réseau.
  • 24. Questions / Réponses A vous la parole