Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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 ...
Les Web Services
• Mise à disposition de ressources par un
  site web.
• Les ressources :
  – Données
    ex: traduction d...
Avant les WS
• Chaque projet inventait sa norme pour
  mettre à disposition des données
 ex :
 “rouge","bleu",“vert“
 ="01...
Avantages
• Normalisation
  – Format du message (souvent XML).
  – Façon d’appeler les méthodes.
  – Gestion des erreurs.
...
Inconvénients
• Plus lourds au niveau ressources.
• Plus complexes à mettre en œuvre.
• Nécessité de disposer des bonnes
 ...
Les types de WS
Différents types de WS peuvent être mis en
œuvre (par ordre croissant de complexité) :
• REST
• XML-RPC
• ...
REST
• La requête du client prend la forme
  d’une URL
 http://api.search.yahoo.com/WebSearchService/V1/webSearch?ap
 pid=...
XML-RPC
Requêtes (du client) et réponses (du serveur)
sont au format XML.
Requête (méthode POST)                          ...
SOAP
• Des messages au format XML sont échangés
  entre le client et le serveur.
• La méthode POST est utilisée pour la re...
PHP et WS
• PHP4 n’est pas une version optimale pour
  la gestion des WS.
• PHP5 dispose en interne de tous les
  composan...
Environnement
• Ajout de l’extension SOAP
 PHP settings > PHP extensions > Add extension >
 php_soap.dll
• Contrôle de la ...
Notre Exemple
Interaction entre 2 sites

1.   Un site e-commerce permettant de réserver des places de
     concert :
     ...
Consommation d’un WS
• Nous souhaitons obtenir des informations
  sur le prochain concert de « U2 »
• Nous utilisons le se...
Création d’un WS
Le principe consiste à créer une classe
« modèle » et à la transmettre à la classe
SoapServer qui se char...
Utilisation du fichier WSDL
• Permet de décrire les interfaces des
  méthodes : nom + attributs.
• Son utilisation allège ...
Serveur avec WSDL
• Nous utilisons maintenant le fichier WSDL

 Fichiers :
 /tp3/centrale/services2.php
 /tp3/centrale/cen...
Client avec WSDL
• Le code est plus court et plus lisible.
• Nous sommes maintenant en mesure de
  lister les différents s...
Espionnage des échanges
Une option permet de tracer les messages
échangés entre le client et le serveur.

Fichier : /tp3/b...
Gestion d’erreur
Les erreurs se gèrent en émettant des Exceptions
de type SoapFault au sein du serveur et en les
« attrapa...
Les WS aujourd’hui
• Tous les « grands » du WEB en proposent
  – Google : Blogger, Maps, AdWords, Checkout,
    Calendar
 ...
WEB 2.0
Les WS font partie de la révolution WEB2.0
en :
• permettant au site d’interagir (Mash-
  Ups),
• en mettant à dis...
Conclusion
En utilisant les WS vous :
- gagnez du temps (auto description des
  fonctionnalités du site),
- êtes compatibl...
Questions / Réponses

    A vous la parole
Nächste SlideShare
Wird geladen in …5
×

Presentation

861 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Presentation

  1. 1. Web Services et PHP 31/01/2007 François-Xavier Bois fxbois@kernix.com
  2. 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. 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. 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. 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. 6. Inconvénients • Plus lourds au niveau ressources. • Plus complexes à mettre en œuvre. • Nécessité de disposer des bonnes extensions, librairies.
  7. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 17. Serveur avec WSDL • Nous utilisons maintenant le fichier WSDL Fichiers : /tp3/centrale/services2.php /tp3/centrale/centrale.wsdl
  18. 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. 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. 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. 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. 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. 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. 24. Questions / Réponses A vous la parole

×