DU PLM. TP : produire et consommer des services web en PHP



Documents pareils
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

TP JAVASCRIPT OMI4 TP5 SRC

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Formulaire pour envoyer un mail

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PDO : PHP Data Object 1/13

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Formulaires et Compteurs

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Création de formulaires interactifs

Manuel d'installation

Attaques applicatives

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Guide d implémentation Interface avec la plateforme de paiement

Activités HTML. Code: act-html

HTML/CSS - Travaux Pratiques 2

Mise en place d un serveur Proxy sous Ubuntu / Debian

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Module BD et sites WEB

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Dans l'article précédent, vous avez appris

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Stockage du fichier dans une table mysql:

Définition des Webservices Ordre de paiement par . Version 1.0

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

PHP et les Bases de données - Généralités

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

NAMEBAY PRO. votre site de revente de noms de domaine en marque blanche. Documentation technique

Séance d ED n 5 : HTML et JavaScript

Etude et développement d un moteur de recherche

Manuel d utilisateur 1

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

Introduction aux «Services Web»

DOM - Document Object Model

Bases de Données et Internet

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Cours CCNA 1. Exercices

Pratique et administration des systèmes

Sécurité des applications web. Daniel Boteanu

Attaques de type. Brandon Petty

SYSTÈMES D INFORMATIONS

Plateforme PAYZEN. Définition de Web-services

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Programmation Web. Madalina Croitoru IUT Montpellier

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Modules ICI relais & EXAPAQ Predict v4.0

Manipulation 4 : Application de «Change».

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Compte Rendu d intégration d application

Rapports d activités et financiers par Internet. Manuel Utilisateur

STID 2ème année : TP Web/PHP

API Web Service TéléAlerte

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Par KENFACK Patrick MIF30 19 Mai 2009

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Guide d interfaçage SSO Connexion des ressources aux plates-formes de type Corrélyce. Sommaire. Titre du document

Module http MMS AllMySMS.com Manuel d intégration

TP1. Outils Java Eléments de correction

Mysql avec EasyPhp. 1 er mars 2006

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Devenez un véritable développeur web en 3 mois!

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Intégration e-commerce. Version 0.5

Business Process Execution Language

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

PHP 5. La base de données MySql. A. Belaïd 1

4. SERVICES WEB REST 46

CREATION d UN SITE WEB (INTRODUCTION)

Techniques de Programmation pour Internet

Projet de Semestre. Page Web Didactique de Visualisation d Algorithme. Université de Genève - semestre de printemps 2012

Serveur d Applications Web : WebObjects

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Programmation Web TP1 - HTML

Patrons de Conception (Design Patterns)

ALGORITHMIQUE ET PROGRAMMATION En C

EXPOSE. La SuisseID, qu est ce que c est? Secrétariat d Etat à l Economie SECO Pierre Hemmer, Chef du développement egovernment

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

TD HTML AVEC CORRECTION

HTML. Notions générales

Tessi Documents Services ASPONE. Démo Webservices UpValue.

Plateforme Systempay Descriptif de l interface avec la page de paiement

Secure Card Data. Spécifications. Version SIX Payment Services

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Création et utilisation de formulaire pdf

Transcription:

DU PLM TP : produire et consommer des services web en PHP NuSOAP est une librairie PHP proposée par NuSphere et Dietrich Ayala. Elle fournit un ensemble de classes (aucune extension PHP n est requise au niveau du serveur HTTP) permettant aux développeurs de facilement créer et consommer des services web fondés sur SOAP 1.1, WSDL 1.1 et HTTP 1.0/1.1. Exercice 1 : développer un programme Client On vous suggère dans cet exercice d interagir avec un service web dont la description WSDL est disponible ici : http://wsf.cdyne.com/spellchecker/check.asmx?wsdl. 1.1. Etudier ce fichier WSDL. Retrouver son nom, son adresse, les méthodes proposées et, pour chacune d entre elles, donner leur signature. 1.2. A l aide de l Annexe 1, développer un programme Client SOAP permettant d invoquer une méthode de ce service et de visualiser la réponse retournée par le service. 1.3. Etudier les messages SOAP transmis et reçus par le Client, et identifier les différents éléments qui les constituent. 1.4. Même question que la 1.2, mais développer cette fois un programme Client REST à l aide du code suivant : $result = file_get_contents('url_de_la_ressource', stream_context_create(array('http' => array('method' => 'methode_http_utilisee'))) ); echo '<pre>'. htmlspecialchars($result). '</pre>'; Exercice 2 : premier serveur SOAP Il s agit dans cet exercice de déployer un service SOAP fournissant une ou plusieurs opérations d une calculatrice, et de composer une IHM web permettant d invoquer les méthodes proposées. Cette IHM pourra également utiliser les opérations proposées par les autres étudiants, ne choisissez donc pas tous les mêmes opérations et ne vous limitez pas aux opérations de base Note : les fonctions mathématiques de PHP sont décrites ici http://php.net/manual/fr/book.math.php. 2.1. A l aide de l Annexe 2, développer un programme Serveur implémentant les opérations de votre choix. Consulter le fichier WSDL de votre service afin de vérifier l absence d erreur de syntaxe ainsi que la signature des méthodes déployées ; pour consulter le fichier WSDL, vous devez ajouter les caractères?wsdl à la suite de l URL de localisation de votre service.

2.2. Développer un programme Client capable d invoquer la ou les méthodes de votre service. 2.3. A partir de l Annexe 3, proposer un formulaire HTML représentant une calculatrice et dont le traitement correspond à l invocation du programme Client développé en 2.2. 2.4. Demander à vos collègues l URL de localisation du fichier WSDL de leur service (ce service devra de préférence proposer d autres opérations que celles implémentées au sein de votre service), et compléter l IHM de votre calculatrice à l aide de boutons permettant l émission de requêtes vers ce(s) service(s).

Annexe 1 : squelette d un programme Client SOAP /// Masquage des "warnings" ini_set( "display_errors", 0); /// Utilisation de la bibliothèque NuSOAP require_once("nusoap.php") ; /// Création et initialisation du client SOAP $clientws = new nusoap_client('url_localisation_service'); $error = $clientws->geterror(); if ($error) die ("Une erreur s'est produite lors de la création du client SOAP..."); /// Initialisation des attributs de l'enveloppe de la requête SOAP $clientws->namespaces = array('soap-env' => 'http://schemas.xmlsoap.org/soap/envelope/', 'ns1' => 'url_espace_nommage'); /// Initialisation du corps de la requête SOAP $body = "<ns1:nom_methode>". "<ns1:paramin1>valeur_paramin1</ns1:paramin1>". "<ns1:paramin2>valeur_paramin2</ns1:paramin2>". "<ns1:paraminn>valeur_paraminn</ns1:paraminn>". "</ns1:nom_methode>"; /// Invocation de la méthode GetVideo $result = $clientws->call('nom_methode', $body, '', 'url_methode', null, 'document', 'literal'); if ($clientws->fault) die ("Une erreur s'est produite lors de l'appel de la méthode "); /// Affichage de la requête et de la réponse SOAP echo "<h2>request</h2>"; echo "<pre>".htmlspecialchars($clientws->request)."</pre>"; echo "<h2>response</h2>"; echo "<pre>".htmlspecialchars($clientws->response)."</pre>"; /// Affichage des résultats echo "<pre>"; print_r($result); echo "</pre>";

Annexe 2 : squelette d un programme Serveur SOAP /// Masquage des "warnings" ini_set( "display_errors", 0); /// Utilisation de la bibliothèque NuSOAP require_once ("nusoap.php"); /// Implémentation d une méthode du service function nom_operation($param1, $param2,...) { return $result; /// Création du service SOAP $serverws = new soap_server(); /// Configuration et génération du fichier WSDL $serverws->configurewsdl('nom_service', 'url_localisation_service'); $serverws->wsdl->schematargetnamespace="url_localisation_service?wsdl"; /// Enregistrement d une méthode $serverws->register('nom_operation', array('paramin1' => 'xsd:type_paramin1',...), array('paramout' => 'xsd:type_paramout'), 'url_localisation_service', 'literal', 'une description textuelle de la méthode'); /// Lancement du processus serveur $HTTP_RAW_POST_DATA = isset($http_raw_post_data)? $HTTP_RAW_POST_DATA : ''; $serverws->service($http_raw_post_data); exit();

Annexe 3 : formulaire représentant l IHM d une calculatrice <html> <head><title>calculatrice</title></head> <body> /// Initialisation des variables $nb1 = ''; $nb2 = ''; $resultat = ''; /// Cas où le formulaire a été validé par l'utilisateur if (isset($_post['op']) && (!empty($_post['op']))) { if (isset($_post['nb1']) && (!empty($_post['nb1'])) && isset($_post['nb2']) && (!empty($_post['nb2']))) { $nb1 = htmlentities($_post['nb1']); $nb2 = htmlentities($_post['nb2']); switch (htmlentities($_post['op'])) { case "Additionner" : case "Soustraire" : case "Multiplier" : default : <!-- Affichage du formulaire --> <form action=" echo $_SERVER['PHP_SELF']; " method="post"> <fieldset><legend><b>calculatrice en ligne</b></legend> Nombre 1<input type="text" name="nb1" value=" echo $nb1; "/><br/> Nombre 2<input type="text" name="nb2" value=" echo $nb2; "/><br/> Résultat<input disabled="disabled" type="text" value=" echo $resultat; "/><br/> <input type="submit" name="op" value="additionner"/> <input type="submit" name="op" value="soustraire"/> <input type="submit" name="op" value="multiplier"/> <input type="submit" name="op" value="diviser"/> <input type="reset" value="vider"/> </fieldset> </form> </body> </html>