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.

Presentation

865 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

×