Adolphe Francois Julien Marmel Dominique Perlat Olivier Printemps SOAP. Simple Object Access Protocol. Encadrant : Chantal Taconet

Dimension: px
Commencer à balayer dès la page:

Download "Adolphe Francois Julien Marmel Dominique Perlat Olivier Printemps SOAP. Simple Object Access Protocol. Encadrant : Chantal Taconet"

Transcription

1 Adolphe Francois Julien Marmel Dominique Perlat Olivier Printemps SOAP Simple Object Access Protocol Encadrant : Chantal Taconet

2 Sommaire Sommaire... 2 Première Partie : Présentation Générale de SOAP Présentation et fonctionnement SOAP Présentation et fonctionnement des Webservices Le protocole WSDL Le protocole UDDI Différence entre IIOP et SOAP Protocoles utilisés par SOAP Problèmes posés par SOAP :... 8 a) Problèmes HTTP... 8 b) Problèmes XML... 8 c) Problèmes liés à SOAP Les fichiers WSDL... 9 a) Services b) Port c) Message d) Port Type et Opérations e) Bindings Deuxième Partie : Installation et mise en œuvre Apache SOAP a) Installation b) Exemple d utilisation NuSoap a) Installation b) Exemples d utilisation SOAP::Lite a) Installation b) Exemple d utilisation : Tests d interoperabilité Troisième Partie : Exemples d utilisation Exemple de Web Service : Google Web Service Exemple du gestionnaire d imprimante a) Exemple 1 : l imprimante HP b) Exemple 2 : le gestionnaire d impression c) Exemple 3 : le gestionnaire d impression et WSDL d) Exécution des exemples Bibliographie SOAP Simple Access Protocol 2

3 Première Partie : Présentation Générale de SOAP 1. Présentation et fonctionnement SOAP SOAP (Simple Object Access Protocol) est un protocole d invocation de méthodes sur des services distants. Basé sur XML, SOAP est un format de communication pour assurer communication de machine à machine. Le protocole permet d appeler une méthode RPC (Remote Procedure Call) et d envoyer des messages aux machines distantes via HTTP. Ce protocole est très bien adapté à l utilisation des services web car il permet de fournir au client une grande quantité d informations récupérées sur un réseau de serveurs tiers. La version actuelle de SOAP est la 1.1. Cette version a été proposée au W3C en 2000 par UserLand, Ariba, Commerce One, Compaq, Developmentor, HP, IBM, IONA, Lotus, Microsoft, SAP. Le W3C travaille actuellement sur la version 1.2 de SOAP, elle devrait sortir fin 2002 et à pour but de supprimer l utilisation des RPC au profit des messages. SOAP permet donc l échange d information dans un environnement décentralisé et distribué, comme Internet par exemple. Il permet l invocation de méthodes, de services, de composants et d objets sur des serveurs distants et peut fonctionner sur de nombreux protocoles (des systèmes de messagerie à l utilisation de RPC). Cependant, il fonctionne particulièrement bien avec le protocole HTTP, protocole très souvent utilisé avec SOAP. SOAP utilise les protocoles HTTP et XML. HTTP comme mécanisme d invocation de méthodes en utilisant un des balises spécifiques pour indiquer la présence de SOAP comme «<SOAP-ENV>». Cela permet de franchir aisément les firewalls et proxy et facilite le traitement en cas de filtrage. XML pour structurer les requêtes et les réponses, indiquer les paramètres des méthodes, les valeurs de retours, et les éventuelles erreurs de traitements. XML joue un rôle prépondérant dans SOAP, on peut distinguer plusieurs éléments : une enveloppe, expliquant comment la requête doit être traitée et présentant les éléments contenus dans le message. un ensemble de règles de codage, permettant de différencier les types de données transmises. une convention de représentation, permettant de représenter les appels aux procédures de traitement et les réponses. Même si SOAP ressemble beaucoup en termes de fonctionnalités à des protocoles comme IIOP pour CORBA, ORPC pour DCOM, ou JRMP (Java Remote Method Protocol) pour JAVA, il possède un avantage indéniable. En effets, SOAP utilise un mode texte alors que les autres fonctionnent en mode binaire, cela facilite le passage des équipements de sécurité. SOAP Simple Access Protocol 3

4 2. Présentation et fonctionnement des Webservices Présentation : Les Webservices permettent de faire communiquer deux sous-systèmes ensembles et cela indépendamment des architectures utilisées. Ces systèmes vont pouvoir s échanger des services ou des traitements applicatifs. Les Webservices constituent un moyen de distribuer un service de manière standard grâce à XML tout en respectant un modèle de développement ayant déjà fait ses preuves comme CORBA ou DCOM (Microsoft). Un des avantages des Webservices est de regrouper tous les acteurs derrière un seul et même standard. Fonctionnement : Pour expliquer le fonctionnement des webservices, il convient de distinguer plusieurs étapes :! Recherche dans un annuaire UDDI : le client cherche un service particulier, il s adresse à un annuaire qui va lui fournir la liste des prestataires habilités à satisfaire sa demande. L annuaire UDDI peut être comparé à un moteur de recherche sauf que les documents sont remplacés par des services.! Recherche de l interface du composant à contacter : une fois la réponse reçue (en XML) de l annuaire, le client va chercher à communiquer via une interface. Cette interface décrite en langage WSDL fournit l ensemble des services disponibles. Elle offre la possibilité de vérifier que le contrat correspond bien aux besoins demandés.! Invocation du service : le client doit maintenant passer les paramètres attendus par le service et assurer la communication avec le serveur. L outil utilisé pour cela est le Proxy, c est l objet qui permet la communication entre le client et le serveur. Il est généré par le client en utilisant l interface WSDL. 3. Le protocole WSDL WSDL (Web Service Definition Langage) est un format de représentation des interfaces de services Web en XML. Une analogie avec CORBA peut être faite, en effet WSDL est la représentation XML du langage IDL (description d interfaces). WSDL a deux rôles prépondérants:! Il sert de référence à la génération de Proxies.! Il assure le couplage entre le client et le serveur par le biais des interfaces. 4. Le protocole UDDI UDDI (Universal Description Discovery and Integration) est un protocole basé sur XML qui sert à la publication et à l'exploration d'annuaires de Web Services. Il permet de situer un service Web, de le décrire, et de l intégrer. Ce protocole a été réalisé par IBM, Microsoft et Ariba. Cependant UDDI est assez complexe et a été qualifié par certains «d usine à gaz». C est la raison pour laquelle IBM et Microsoft travaille actuellement sur un autre protocole d annuaire de services : Web Services Inspection (WS-Inspection). L objectif de WS-Inspection est de permettre à une entreprise de décrire facilement les services Web dont elle dispose. SOAP Simple Access Protocol 4

5 5. Différence entre IIOP et SOAP IIOP (Internet Inter-ORB Protocol) est un protocole de transfert de méthode utilisé par CORBA. Il définit le format des messages échangés entre la machine cliente et la machine serveur. IIOP va permettre d envoyer et de recevoir des types complexes de données. Les clients et serveurs peuvent employer n importe quel mélange de langages et de plateformes. IIOP est un protocole très complet qui est capable d effectuer tous les transferts exigés par SOAP. Cependant l utilisation de SOAP peut être parfois préférable pour plusieurs raisons. Tout d abord, l utilisation de IIOP nécessite de compiler et distribuer des souches clients pour chaque type de clients avec qui l on communique. Ce n est évidemment pas très pratique, en particulier quand le nombre de plateformes différentes ou de langages différents est important. Dans le cas des services web, IIOP va poser des problèmes pour le franchissement des équipements de filtrage (firewall, proxy). Cela va demander un travail en plus de la part de chaque personne administrant l équipement. Au contraire, l utilisation de SOAP ne pose absolument pas de problèmes au niveau des firewalls. SOAP étant un protocole utilisant HTTP, il y a peu de chance qu il soit bloqué lors d un filtrage. Evidemment CORBA, au travers de IIOP, est plus performant : il y a moins de données transitant sur le réseau, et les opérations de conversion / déconversion sont traitées plus rapidement. Cependant avec SOAP les données circulent en format texte et en clair sur le réseau. Leur lecture en est donc facilitée et le déboguage est beaucoup plus simple. SOAP est donc un très bon protocole si l on cherche à dialoguer avec des plateformes hétérogènes, ce qui est particulièrement le cas dans toutes les applications de type «Web Services». En fait, l utilisation de CORBA ou de SOAP va surtout dépendre de ce que l on doit faire : dans le cas des webservices SOAP semble être une bonne solution, par contre si l on souhaite faire des applications distribuées classiques comme du calcul distribué, on choisira plutôt CORBA. 6. Protocoles utilisés par SOAP SOAP se sert le plus souvent de deux protocoles : HTTP et XML. Un message SOAP est écrit en XML. HTTP est utilisé comme protocole de transport. Les messages SOAP vont donc être encapsulés dans HTTP, ce qui permet une utilisation et une compatibilité très importante avec les réseaux et équipements existants. HTTP est le protocole de transport le plus utilisé mais il n est pas impossible de trouver des implémentations de SOAP sur d autres protocoles (avec SMTP par exemple). Un message SOAP est un document XML qui possède une enveloppe SOAP et éventuellement une déclaration XML. L enveloppe SOAP est composée d un corps SOAP et éventuellement d un en-tête. Les règles de syntaxe sont les suivantes : Un message SOAP MUST être codé en XML Un message SOAP MUST avoir une enveloppe SOAP Un message SOAP CAN avoir un entête SOAP (header) Un message SOAP MUST avoir un corps SOAP (body) SOAP Simple Access Protocol 5

6 Un message SOAP MUST utiliser l espace de désignation de l enveloppe SOAP Un message SOAP MUST utiliser l espace de désignation d encodage SOAP Un message SOAP MUST NOT contenir une référence à une DTD Un message SOAP MUST NOT contenir des instructions de type XML Processing Un message SOAP va être constitué d une enveloppe et d un corps. C est à l intérieur du corps (body) que l on trouve le contenu : //enveloppe du message <soap:envelope //espace de nommage pour l enveloppe SOAP xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" //on définit le type d encodage du message SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" //espace de nommage pour les types de variables xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" //espace de nommage pour l appel de méthodes xmlns:tns="http://soapinterop.org/"> //corps <soap:body> //espace de nommage pour la fonction getstatename <m:getstatename xmlns:m="http://soapware.org/"> //on spécifie un argument à passer à getstatname <statenum xsi:type="xsd:int">41</statenum> </m:getstatename> //gestion d erreurs <soap:fault> </soap:fault> </soap:body> </soap:envelope> <envelope> est la racine ; <header>, <body>,et <fault> sont les enfants. SOAP Simple Access Protocol 6

7 Structure d un message SOAP Exemple: Message SOAP encapsulé dans une requête HTTP Voici une requête SOAP typique (avec les en-têtes HTTP) pour un appel à une méthode RPC nommée EchoString, qui prend une chaîne comme paramètre : POST /test/simple.asmx HTTP/1.1 Host: Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://soapinterop.org/echostring" <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body soap:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <tns:echostring> <inputstring>string</inputstring> </tns:echostring> </soap:body> </soap:envelope> Le nom de la méthode est appelé par la balise <tns:echostring> et le paramètre de type chaîne est défini par <inputstring>. La méthode qui est invoqué est donc de cette forme : SOAP Simple Access Protocol 7

8 public String echostring(string inputstring); Le serveur réponds alors: HTTP/ OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body soap:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <tns:echostringresponse> <Return>string</Return> </tns:echostringresponse> </soap:body> </soap:envelope> Les règles de sérialisation du type de données de chaîne, ainsi que la forme de l'appel à une méthode, sont définies dans SOAP 1.1, sections 5 et 7 (http://www.w3.org/tr/soap). 7. Problèmes posés par SOAP : Ces problèmes concernent principalement l interopérabilité des messages SOAP de type RPC. La plupart des problèmes posés par SOAP ne concernent pas directement le protocole lui-même mais plutôt les protocoles utilisés, comme XML ou HTTP. Ils peuvent être divisés en trois catégories : - problèmes http - problèmes XML - problèmes liés au protocole SOAP a) Problèmes HTTP HTTP est utilisé pour le transport des messages SOAP en XML. Or certaines balises spécifiques à SOAP ne vont pas être bien interprétées par tous les clients HTTP. Cela va dépendre du client et ne pas fonctionner dans certains cas. On peut prendre l exemple de la fonction SOAPAction : la valeur de SOAPAction doit être en guillemets sauf s il s agit d une valeur nulle. Exemple : «SOAPAction: ou «SOAPAction:» Cependant certains clients ne sont pas capables de fournir une valeur d entête HTTP nulle, si le serveur en attends une, l appel ne fonctionnera pas. b) Problèmes XML Les problèmes d interopérabilité XML concernent l analyse du langage XML. SOAP repose sur l utilisation de ce langage, donc si XML pose des problèmes d implémentations, ceux-ci vont poser des problèmes sur SOAP. SOAP Simple Access Protocol 8

9 c) Problèmes liés à SOAP En lui-même, SOAP est relativement simple ; il requiert que les messages soient placés dans une enveloppe avec le texte du message inclus dans un élément du corps. Cependant il existe un certain nombre de problèmes d interopérabilité comme par exemple le problème lié à l implémentation de l attribut «mustunderstand». Les spécifications de SOAP indiquent que si cet attribut est défini sur la valeur «1», il devra être traité. Pourtant certaines implémentations de SOAP ne le font pas (principalement les premières à avoir été développées). De nombreux autres problèmes d interopérabilité ont été découverts, ils sont consultables sur le forum Cette liste contribue grandement à l amélioration du protocole. 8. Les fichiers WSDL Afin des décrire les services disponibles sur un serveur, un langage de description de service a été mis en place : le WSDL (Web Service Description Langage). Ce langage est basé sur XML. Les fichiers WSDL contiennent donc la description de l accès à des Web services ainsi que des messages qui seront échangés avec les services en question. (Arguments, types de donnée ). Une fois muni de cette description, appelée aussi parfois «contrat», le client va pouvoir dialoguer avec les services de manière adéquate. On peut par exemple générer automatiquement à partir du fichier WSDL un client ou un proxy pour ce service. Pour comprendre les différentes zones d un descripteur WSDL, le schéma suivant où se situent les différents éléments décrits dans un fichier WSDL. Différents éléments d un fichier WSDL (source : LearnXmlws, SOAP Simple Access Protocol 9

10 Un fichier WSDL commence par <definition> et finit par </definition>. C est à l intérieur de cette espace que l on va déclarer tous les éléments constituant la description. Nous allons prendre l exemple du Web Service de Google pour montrer comment se construit un fichier WSDL. Début de la description des services avec déclaration des différents schémas utilisés Nom unique identifiant cet ensemble de service au niveau du serveur <definitions name="urn:googlesearch" targetnamespace="urn:googlesearch" xmlns:typens="urn:googlesearch"... </definition> xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> a) Services Un service est la mise à disposition d une ou plusieurs méthodes. On peut imaginer par exemple une classe avec plusieurs méthodes invocables à distance. La classe sera le service, et chaque méthode sera une opération sur ce service. La définition d un service se fait par l utilisation de <service></service>. b) Port Pour chaque service on va définir des ports par lesquels ce service sera disponible. En effet, il est possible de rendre disponible un service sur plusieurs supports différents : HTTP GET, SOAP, SMTP Définition d un service Définition d un port avec l adresse du service (ici une URL) <service name="googlesearchservice"> <port name="googlesearchport" binding="typens:googlesearchbinding"> <soap:address location="http://api.google.com/search/beta2"/> </port> </service> SOAP Simple Access Protocol 10

11 c) Message Les messages sont les éléments échangés entre le client et le serveur lors d une opération sur le port d un service. Ces messages sont constitués de plusieurs parties (part) qui représentent chacune une donnée avec un type associé. <message name="dogooglesearch"> <part name="key" <part name="q" <part name="start" <part name="maxresults" <part name="filter" <part name="restrict" <part name="safesearch" <part name="lr" <part name="ie" <part name="oe" </message> type="xsd:string"/> type="xsd:string"/> type="xsd:int"/> type="xsd:int"/> type="xsd:boolean"/> type="xsd:string"/> type="xsd:boolean"/> type="xsd:string"/> type="xsd:string"/> type="xsd:string"/> Définition d un message Chaque «part» du message a un nom et un type. Ici un type simple Utilisation d un type complexe <message name="dogooglesearchresponse"> <part name="return" type="typens:googlesearchresult"/> </message> Ainsi, il est possible définir ses propres types en se basant sur les types de base. En lisant cette définition dans le fichier WSDL, le client pourra générer éventuellement automatiquement une structure ou une classe reflétant cette description. Voici un exemple de type complexe qui représente le résultat d une recherche sur le Web service de Google : Définition d un type complexe Lien vers un autre type complexe <type> <xsd:complextype name="resultelement"> <xsd:all> <xsd:element name="summary" type="xsd:string"/> <xsd:element name="url" type="xsd:string"/> <xsd:element name="snippet" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="cachedsize" type="xsd:string"/> <xsd:element name="relatedinformationpresent" type="xsd:boolean"/> <xsd:element name="hostname" type="xsd:string"/> <xsd:element name="directorycategory" type="typens:directorycategory"/> <xsd:element name="directorytitle" type="xsd:string"/> </xsd:all> </xsd:complextype> </type> SOAP Simple Access Protocol 11

12 d) Port Type et Opérations Une méthode peut être représentée par une opération qui prend un message en entrée et renvoie un message en sortie. Ainsi chaque opération représentée par <operation></operation> indique les flux de messages en entrée et en sortie correspondants en définissant les élément <input/> et <output/>. Enfin, la collection de toutes les opérations d un service est rassemblée dans un port type. Définition d une opération (méthode) <porttype name="googlesearchport"> <operation name="dogetcachedpage"> <input message="typens:dogetcachedpage"/> <output message="typens:dogetcachedpageresponse"/> </operation> <operation name="dospellingsuggestion"> <input message="typens:dospellingsuggestion"/> <output message="typens:dospellingsuggestionresponse"/> </operation> On indique le nom des messages en entrée et en sortie <operation name="dogooglesearch"> <input message="typens:dogooglesearch"/> <output message="typens:dogooglesearchresponse"/> </operation> </porttype> SOAP Simple Access Protocol 12

13 e) Bindings Enfin, pour compléter la description, il faut relier certains éléments entre eux. C est le rôle des bindings représentés par les balises <binding></binding>. On va spécifier notamment tout ce qui concerne l encodage des données dans les messages en indiquant les règles que l on utilise. Définition de la couche transport utilisée Pour chaque opération, on défini les règles d encodage des données <binding name="googlesearchbinding" type="typens:googlesearchport"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="dogooglesearch"> <soap:operation soapaction="urn:googlesearchaction"/> <input> <soap:body use="encoded" namespace="urn:googlesearch" encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="encoded" namespace="urn:googlesearch" encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> SOAP Simple Access Protocol 13

14 Deuxième Partie : Installation et mise en œuvre Un des avantages de SOAP est sa capacité à faire communiquer des plateformes hétérogènes. C est pourquoi plusieurs implémentations de SOAP on été développées (ou sont encore en développement). Nous en avons testé quelques unes, utilisant chacune un langage différent : Apache SOAP pour une implémentation Java, NuPHP pour le PHP, et SOAP::Lite pour le langage Perl. Pour chacune, nous allons présenter brièvement les procédures d installation, et quelques exemples de mise en œuvre. 1. Apache SOAP La distribution Apache SOAP (http://xml.apache.org/soap/) fournit les librairies nécessaires pour invoquer des services SOAP distants, et des outils côté serveur pour implémenter des services SOAP. En tant que librairie cliente, il offre une API pour invoquer des services SOAP RPC et une API pour envoyer et recevoir des messages SOAP. Pour mettre en œuvre un service accessible par RPC ou par messages, Apache SOAP doit être hébergé par un conteneur de servlets comme Apache Tomcat. Le transport principal est le http, même si le support d autres protocoles peut être ajouté (SMTP par exemple). a) Installation Prérequis côté serveur : jdk (1.2 ou ulterieur), un conteneur de servlets (tomcat par exemple), un parseur XML (xerces par exemple), les classes soap (le fichier soap.war inclus dans la distribution de soap suffit pour tomcat), classes annexes dans certains cas. Prérequis côté client : classes soap, mail.jar, activation.jar, classpath correct pour compiler le code java. Tomcat est un conteneur de servlets JSP qui intègre son propre serveur web. Il ne necessite donc pas l installation d un serveur web séparé. L installation de tomcat ne pose pas de problème particulier. Il suffit d extraire l archive fournie et de démarrer le serveur pour vérifier que les exemples de servlets fonctionnent. Le serveur se lance par défaut sur le port 8080, qui peut être modifié dans les fichiers de configuration de tomcat. L installation de soap sous tomcat se fait simplement en copiant l archive web soap.war dans le repertoire d applications web de tomcat (jakarta-tomcat-4.0.3/webapps). On peut également créer un nouveau <Context> pour le serveur tomcat, qui indiquera où trouver les classes SOAP. Cela implique d ajouter les chemins d accès vers tous les services à deployer dans le classpath. Dans les deux cas, il faut systématiquement redémarrer le serveur pour prendre en compte les modifications. Nous avons choisi de mettre en œuvre Apache SOAP de la première façon, qui utilise la configuration par défaut du serveur tomcat. Lancement et arret du serveur : /mci/projet/proj01/soap/jakarta-tomcat-4.0.3/bin/startup.sh /mci/projet/proj01/soap/jakarta-tomcat-4.0.3/bin/shutdown.sh SOAP Simple Access Protocol 14

15 Pour tester le bon fonctionnement du serveur, il suffit d ouvrir les pages suivantes : Le serveur doit répondre «SOAP (RPC Message) Router Sorry, I don't speak via HTTP GET- you have to use HTTP POST to talk to me.» Si le client est correctement configuré, la commande suivante affichera la liste des services déployés sur le serveur : java org.apache.soap.server.servicemanagerclient list b) Exemple d utilisation Notre exemple conmprend 3 fichiers : - EchoService.java Le code du serveur d echo - GetEcho.java le code du client chargé d appeler le service d echo - DeploymentDescriptor.xml contient la description du service. Ce fichier facilite le déploiement d un service sur le serveur. Compiler les sources java (javac *.java) apres avoir verifie le classpath. Placer les classes dans "/mci/projet/proj01/soap/jakarta-tomcat /webapps/soap/WEB-INF/classes/samples/echo"! serveur : EchoService.java package samples.echo; public class EchoService public String getecho(string s) return "*echo* " + s; Renvoi de la chaine reçue SOAP Simple Access Protocol 15

16 ! client : GetEcho.java package samples.echo; import java.net.*; import java.util.*; import org.apache.soap.*; import org.apache.soap.rpc.*; Importation des classes nécessaires public class GetEcho public static void main (String[] args) throws Exception if (args.length!= 2 && (args.length!= 3!args[0].startsWith ("-"))) System.err.println ("Usage: java " + GetEcho.class.getName () + " [-encodingstyleuri] SOAP-router-URL chaine"); System.exit (1); // Traitement des arguments. int offset = 3 - args.length; String encodingstyleuri = args.length == 3? args[0].substring(1) : Constants.NS_URI_SOAP_ENC; URL url = new URL (args[1 - offset]); String chaine = args[2 - offset]; Traitement des arguments // Construction de l appel. Call call = new Call (); Construction de l appel call.settargetobjecturi ("urn:test-myecho"); call.setmethodname ("getecho"); call.setencodingstyleuri(encodingstyleuri); Vector params = new Vector (); params.addelement (new Parameter("chaine", String.class, chaine, null)); call.setparams (params); // appel: l URI action est vide (non utilisée par XML-SOAP) Response resp = call.invoke (/* router URL */ url, /* actionuri */ "" ); // Check the response. if (resp.generatedfault ()) Fault fault = resp.getfault (); System.err.println("Generated fault: " + fault); else Parameter result = resp.getreturnvalue (); System.out.println (result.getvalue ()); Affichage du résultat Appel Verification de la réponse SOAP Simple Access Protocol 16

17 ! DeploymentDescriptor.xml <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" id="urn:test-myecho"> <isd:provider type="java" scope="application" methods="getecho"> <isd:java class="samples.echo.echoservice"/> </isd:provider> <isd:faultlistener>org.apache.soap.server.domfaultlistener</isd:faultlistener> </isd:service>! Utilisation : Les services peuvent être déployés à l aide de l interface web de la distibution Apache SOAP (http://elaphe.int-evry.fr:8080/soap), ou plus simplement en utilisant la classe ServiceManagerClient fournie : java org.apache.soap.server.servicemanagerclient deploy DeploymentDescriptor.xml java org.apache.soap.server.servicemanagerclient undeploy urn:test-myecho java org.apache.soap.server.servicemanagerclient list Le client prend en paramètres l adresse du routeur RPC et le texte à envoyer : java samples.echo.getecho montexte Apache SOAP n offre pas de support du wsdl côté client. Un utilitaire séparé fourni par IBM permet toutefois de créer un code client à partir d un fichier wsdl, mais son utilisation n est pas pratique. SOAP Simple Access Protocol 17

18 2. NuSoap NuSOAP est une implémentation en PHP de SOAP disponible gratuitement sur Internet (licence LGPL) : Il a été développé par Dietrich Ayala pour Nusphere (IDE pour PHP : Ce kit est constitué de plusieurs classes permettant la mise en place de clients et de serveurs SOAP en utilisant le langage PHP. Ce langage est très utilisé pour construire des sites Web dynamiques, l accès aux Web Services est donc la bienvenue. a) Installation Cette implémentation de SOAP est assez simple à installer et à utiliser puisqu aucun serveur spécifique (autre qu un simple serveur Web) n est requis. Il suffit de mettre sur le serveur un simple script PHP pour avoir acces à des services. La partie serveur est démarrée à chaque appel de l URL du script implémentant la partie serveur pour SOAP. C est entre autre cela qui fait la simplicité de mise en place de cette implémentation : il suffit de faire un «include» du fichier contenant les classe de NuSOAP pour pouvoir déployer ou invoquer des services. b) Exemples d utilisation! Script serveur : déploiement du service myecho <?php require_once('../nusoap/nusoap.php'); $s = new soap_server; $s->register('myecho',false,false,"urn:myecho"); function myecho($chaine) // optionally catch an error and return a fault if($chaine == '') return new soap_fault('client','','la chaine est vide.'); $res="vous avez envoyé:".$chaine; return $res; $s->service($http_raw_post_data);?> Inclusion des classes NuSoap Création d un objet «serveur» Enregistrement du service myecho auprès du serveur Fonction effectuant le service (Fonction qui sera appelée par RPC) Envoie des réponses du serveur au client : Ici, NuSoap va générer le message réponse du serveur en XML et l envoyer dans la réponse http au client. SOAP Simple Access Protocol 18

19 ! Script Client : appel direct au service myecho (sans utiliser le fichier WSDL) Appel aux classes de NuSOAP Préparation du tableau contenants les paramètres à passer au service $lachaine : variable contenant la chaine à passer lors de l appel Création de l objet client avec l URL du service SOAP à appeler. Ici c est l URL du script serveur écrit en PHP <?php require_once('../nusoap/nusoap.php'); if($lachaine!=null) $parameters = array('chaine1'=>$lachaine); $soapclient = new soapclient('http://www.minet.net/~ospring/testsoap/rpcrouter.php'); echo $soapclient->call('myecho',$parameters); else echo "<- Remplir le formulaire";?> Appel de la méthode distante myecho avec passage du tableau des paramètres! Script Client : appel direct service myecho avec le fichier WSDL et le proxy NuSOAP permet, si l on utilise les descripteurs de services écrits en WSDL, de générer un proxy pour service. Ce proxy permet d accéder à la méthode distante comme si elle était une méthode d un objet local. Cela permet d avoir un code beaucoup plus clair et moins lourd. SOAP Simple Access Protocol 19

20 Exemple d utilisation : <?php require_once('../nusoap/nusoap.php'); $soapclient= new soapclient('http://www.minet.net/~ospring/testsoap/myecho.wsdl','wsdl' ); $proxy=$soapclient->getproxy(); $res=$proxy->myecho($lachaine); echo $res; Appel à la procédure distante via le proxy Création du proxy Création du client à partir d un fichier WSDL 3. SOAP::Lite SOAP::Lite (http://www.soaplite.com) est un ensemble de modules Perl qui fournissent une interface simple et légère vers SOAP, côté client et côté serveur. Il est préférable d installer la distribution en tant que root bien qu il soit possible d installer les modules dans son propre repertoire de travail. a) Installation De nombreux modules sont nécessaires à SOAP::Lite MIME-Base IO-1.20 URI-1.19 MIME-Lite HTML-Parser-3.26 HTML-Tagset-3.03 libnet-1.12 MIME-tools IO-stringy MailTools-1.46 XML-Parser-2.31 libwww-perl-5.65 Les commandes pour installer les modules dans ~/perl (pour un utilisateur normal) sont : perl Makefile.PL LIB=~/perl make make test make install SOAP Simple Access Protocol 20

Service Web (SOAP) Urbanisation des SI NFE107. Fiche de lecture Y. BELAID

Service Web (SOAP) Urbanisation des SI NFE107. Fiche de lecture Y. BELAID Service Web (SOAP) Urbanisation des SI NFE107 Fiche de lecture Y. BELAID Plan Définitions Web Service Terminologie Communication avec les Web Service REST XML-RPC SOAP Qu est ce qu un Web Service Un Web

Plus en détail

Conservatoire Nationale des Arts et Métiers

Conservatoire Nationale des Arts et Métiers Conservatoire Nationale des Arts et Métiers Centre d enseignements de Grenoble Année Universitaire: 2008-2009 SERVICE WEB SOAP Cours : NFE107 Urbanisation & Architecture des Systèmes d Information Auditeurs

Plus en détail

Présentation générale des Web Services

Présentation générale des Web Services Présentation générale des Web Services Vue Globale Type d'architecture reposant sur les standards de l'internet Alternative aux architectures classiques : Client/serveur n/tiers Orientée services permettant

Plus en détail

Qu'est-ce qu'un Web Service?

Qu'est-ce qu'un Web Service? WEB SERVICES Qu'est-ce qu'un Web Service? Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plate-forme et enveloppé dans une couche de standards dérivés

Plus en détail

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40 Services Web WSDL Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web WSDL p.1/40 Plan du cours WSDL 1. Présentation 2. Structure générale 3. Les types 4. Les messages

Plus en détail

Architectures et Web

Architectures et Web Architectures et Web Niveaux d'abstraction d'une application En règle générale, une application est découpée en 3 niveaux d'abstraction : La couche présentation ou IHM (Interface Homme/Machine) gère les

Plus en détail

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Epreuve écrite individuelle 8 Décembre 2008, durée 45 mns Aucun document autorisé => Finalement, autorisés et semble-t-il utiles!!...

Plus en détail

L'objectif du TP est de: mettre en pratique un exemple simple de service Web, de programmer un service Web calculatrice, et son client.

L'objectif du TP est de: mettre en pratique un exemple simple de service Web, de programmer un service Web calculatrice, et son client. MASTER SSR - SERVICES WEB! Version 2011 L'objectif du TP est de: mettre en pratique un exemple simple de service Web, de programmer un service Web calculatrice, et son client. Introduction Nous proposons

Plus en détail

Web Services. SLenoir@ugap.fr 17/01/2009

Web Services. SLenoir@ugap.fr 17/01/2009 Web Services SLenoir@ugap.fr 17/01/2009 1. Pourquoi les Web Services? 1.1. Historique des SI 1.2. Exigences actuelles 1.3. SOA 1.4. Mise en place de services 17/01/2008 Web Services 2 1.1. Historique des

Plus en détail

Etapes de conception des services web

Etapes de conception des services web Les services web Introduction Un service web est un composant logiciel i l qui permet la communication entre deux applications ou systèmes qui peuvent être dans un environnement hétérogène et / ou distribué.

Plus en détail

SOA Services Web Etendus SOAP : Communiquer

SOA Services Web Etendus SOAP : Communiquer SOA Services Web Etendus SOAP : Communiquer Mickaël BARON 2010 (Rév. Janvier 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr Licence Creative Commons Contrat Paternité Partage des Conditions

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26 Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

Services Web. Plan du cours

Services Web. Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/ Services

Plus en détail

Formation ESUP Portail Cours 4

Formation ESUP Portail Cours 4 Formation ESUP Portail Cours 4 http://www.esup-portail.org 1 Plan Prérequis Outils Normes Esup portail Canal uportal Publication d'un canal Web services 2 Prérequis Java Ant XML XSL/XSLT 3 Outils http://www.esup-portail.org/consortium/espace/normes_1c/tech/build/index.

Plus en détail

Web services en Java (services Web) Jean-marc Farinone

Web services en Java (services Web) Jean-marc Farinone Web services en Java (services Web) Jean-marc Farinone Web services (services web) : qu'est ce? Une architecture orientée objet et distribuée où les messages sont en syntaxe XML. Une définition : Les Services

Plus en détail

Web services en Java (services Web) JMF (Tous droits réservés) 1

Web services en Java (services Web) JMF (Tous droits réservés) 1 Web services en Java (services Web) JMF (Tous droits réservés) 1 Web services (services web) : qu'est ce? Une architecture orientée objet et distribuée où les messages sont en syntaxe XML Ce n'est pas

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Objets distribués et Appel de Méthodes à Distance 2009-2010

Objets distribués et Appel de Méthodes à Distance 2009-2010 Objets distribués et Appel de Méthodes à Distance 2009-2010 1 Objectif : construire une application où différents modules peuvent être situés sur des machines différentes, en utilisant un modèle à objets

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

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

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau.

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau. Services Web en php IUT de Fontainebleau 15 mars 2014 1 Introduction 2 3 4 1 Introduction 2 3 4 Introduction De plus en plus de sites mettent à disposition des données, et leurs gestions, des fonctionnalités

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

Plus en détail

Les Web Services. UE: Informatique Ambiante. Spécialité: Electronique et Optique Option: Vision Embarquée. Binôme: Ehouarn Perret & Thomas Angenault

Les Web Services. UE: Informatique Ambiante. Spécialité: Electronique et Optique Option: Vision Embarquée. Binôme: Ehouarn Perret & Thomas Angenault Spécialité: Electronique et Optique Option: Vision Embarquée UE: Informatique Ambiante Les Web Services Binôme: Ehouarn Perret & Thomas Angenault Enseignant: Christophe Léger mercredi 19 octobre 2011 Plan

Plus en détail

Création d un WebService. Tp WinDev Numéro 13

Création d un WebService. Tp WinDev Numéro 13 Tp WinDev Numéro 13 Objectifs : Création d un WebService Paramétrage d un serveur Web, Création du Service Web, Création du client consommateur, Approche XML, SOAP Outils : Un serveur d application Ce

Plus en détail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : l architecture

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Les Extensions de SOAP

Les Extensions de SOAP Les Extensions de SOAP «Contourner» les limitations 11/03/2010 Présentation: S. Lavirotte Auteurs : et al* 40 Limitations de SOAP Sécurité : Limité à la sécurisation de HTTP? Transfert de données : Données

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

UFR Mathématique et Informatique SOAP. Pierre Gançarski. http://dpt-info.u-strasbg.fr/~gancars

UFR Mathématique et Informatique SOAP. Pierre Gançarski. http://dpt-info.u-strasbg.fr/~gancars SOAP http://dpt-info.u-strasbg.fr/~gancars Pierre Gançarski Architecture 3-tiers 1. Présentation Interface Homme-Machine Conversationnel, Transactionnel, Web-based 2. Partie métier Enchaînement des traitements

Plus en détail

INF157 - Utilisation des Réseaux

INF157 - Utilisation des Réseaux INF157 - Utilisation des Réseaux Licence 3 Informatique Arnaud Pecher (repris par Damien Magoni) Bureau 322, Bâtiment A30, LaBRI Université de Bordeaux Licence 3 Informatique - Bordeaux 1/85 Univ Bx 1

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Interface SOAP de la FOSC/Simap/FAO ZH. Version 3.0

Interface SOAP de la FOSC/Simap/FAO ZH. Version 3.0 Interface SOAP de la FOSC/Simap/FAO ZH Version 3.0 Table des matières 1 Introduction... 4 2 Description... 5 2.1 Conditions d utilisation du service web... 5 2.2 Serveur Soap... 5 2.3 Appel du service

Plus en détail

TD4 : Wikis, Servlets & Projet

TD4 : Wikis, Servlets & Projet Université Bordeaux 1 T.D. License 3 Informatique 2007 2008 TD4 : Wikis, Servlets & Projet L objet de cette séance est de vous familiariser avec les sockets et les servlets, et d introduire le projet.

Plus en détail

Implementing a simple RMI Application over the. Internet. (using. and

Implementing a simple RMI Application over the. Internet. (using. and Implementing a simple RMI Application over the (using and Internet and comparing HTTP tunneling,, RMI Proxy) Plan de l exposé Introduction Problématique HTTP tunneling Comment RMI «tunnelle» des messages

Plus en détail

Services Web. Définition. Évolution. Table des matières

Services Web. Définition. Évolution. Table des matières Par Alberto Gonzalez 2005 (repris par Laurent Magnin) IFT6802 Commerce électronique : systèmes et architectures o o Définition Un service Web est un système conçu pour soutenir l'interaction machine-à-machine

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

Web Services. Introduction à l aide d un exemple. Urs Richle

Web Services. Introduction à l aide d un exemple. Urs Richle Web Services Introduction à l aide d un exemple Urs Richle 7/12/2005 Problématique Requête Windows Mac Linux HTML XHTM CSS XML SVG XTM... ASP PHP Java Applet JSP Servlet... IIS Apache Tomcat... Data Oracle

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Plan Principes généraux Modèle

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Créer une architecture distribuée.net

Créer une architecture distribuée.net Ingénieurs 2000 Exposé Système & Réseaux 2006/2007 Créer une architecture distribuée.net Concepts et exemples 1. Présentation du Framework.NET 2. Créer et utiliser des services Web 3. Comment créer des

Plus en détail

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.

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. ASTRIUM - Toulouse JEE Formation 2013 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. Figure 1 Architecture

Plus en détail

Les services web. Module 04 Les Services Web. Campus-Booster ID : 697. www.supinfo.com. Copyright SUPINFO. All rights reserved

Les services web. Module 04 Les Services Web. Campus-Booster ID : 697. www.supinfo.com. Copyright SUPINFO. All rights reserved Les services web Module 04 Les Services Web Campus-Booster ID : 697 www.supinfo.com Copyright SUPINFO. All rights reserved Les services web Objectifs de ce module En suivant ce module vous allez: Comprendre

Plus en détail

Partie 2.2: Servlet et Tomcat

Partie 2.2: Servlet et Tomcat Partie 2.2: Servlet et Tomcat 1 Plan du cours Servlets Présentation Exemple 2 Plan du cours Tomcat Des servlets à Tomcat: pourquoi Tomcat? Architecture Tomcat Installation et configuration de Tomcat Configuration

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle.

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle. RMI (Remote Method Invocation) Présentation de RMI Université Française d Egypte Richard Grin Version 0.6 10/10/12 R. Grin RMI page 2 Client serveur, situation traditionnelle Sur la machine A un client

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

Examen Construction d Applications Réparties

Examen Construction d Applications Réparties Examen Construction d Applications Réparties Maîtrise Informatique Université des Sciences et Technologies de Lille 2003-2004 Session Septembre 2004-3 heures Tous documents autorisés 1. Gestion d'un Parking

Plus en détail

Accès aux données avec ADOBE FLEX 4.5

Accès aux données avec ADOBE FLEX 4.5 Accès aux données avec ADOBE FLEX 4.5 Informations juridiques Informations juridiques Pour consulter les informations juridiques, voir http://help.adobe.com/fr_fr/legalnotices/index.html. iii Sommaire

Plus en détail

Examen terminal Architectures n-tiers : Intergiciels à objets et services web

Examen terminal Architectures n-tiers : Intergiciels à objets et services web GMIN20 - Juin 2013 Tous documents autorisés. Le barème est donné à titre indicatif. 1 Corba (5 points) Un fichier IDL vous est donné au listing 1. On vous donne aussi un fichier d implémentation au listing

Plus en détail

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur Plan Environnement Client/Serveur Cours 7 JavaServer Pages (1) kn@lri.fr 7.1 Principe 7.2 Rappels HTTP 7.3 Le serveur web Tomcat Programmation Web coté serveur JSP 2/28 (rappel) génération de pages-web

Plus en détail

Programmation Web Avancée Introduction aux services Web

Programmation Web Avancée Introduction aux services Web 1/21 Programmation Web Avancée Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

Sensibilisation à RMI (Remote Method Invocation)

Sensibilisation à RMI (Remote Method Invocation) Jini Sensibilisation à RMI (Remote Method Invocation) Le rêve de tout système distribué L idéal serait d avoir un système distribué utilisant la technologie objet et permettant : 1) d invoquer une méthode

Plus en détail

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 TP Java RMI Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Paradigme RMI RMI (Remote Method Invocation) RPC orientés objet (encapsulation, héritage,...) objet :

Plus en détail

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

DU PLM. TP : produire et consommer des services web en PHP 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

Plus en détail

LE TRIPTYQUE SOAP/WSDL/UDDI

LE TRIPTYQUE SOAP/WSDL/UDDI LE TRIPTYQUE SOAP/WSDL/UDDI Eric van der Vlist (vdv@dyomedea.com) Le triptyque SOAP/WSDL/UDDI Web Services Convention Juin 2004 Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 1

Plus en détail

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

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL Un bus de services Un bus de services (ESB) permet d assembler des web services existants, le résultat de cet

Plus en détail

Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL)

Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL) Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL) Alexandre Dulaunoy adulau@foo.be Sécurité en ingénierie du Logiciel p.1/16

Plus en détail

Cours 4 Programmation web, orientée serveur

Cours 4 Programmation web, orientée serveur DUT MMI IUT de Marne-la-Vallée 17/03/2015 M2202 - Algorithmique Cours 4 Programmation web, orientée serveur Philippe Gambette Sources phpdebutant.net www.php.net (documentation du langage PHP) Plan du

Plus en détail

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Intégration d'applications à gros grain Unité d'intégration : le service (interface + contrat) Motivations Motivations Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat) Contraintes Applications conçues indépendamment, sans avoir prévu une intégration

Plus en détail

Déclaration des mouvements de main-d œuvre par échange de données informatisées. Informations de mise en œuvre

Déclaration des mouvements de main-d œuvre par échange de données informatisées. Informations de mise en œuvre Ministère du Travail, des Relations sociales, de la Famille et de la Solidarité Déclaration des mouvements de main-d œuvre par échange de données informatisées Informations de mise en œuvre Mai 2008 1/11

Plus en détail

A. Architecture du serveur Tomcat 6

A. Architecture du serveur Tomcat 6 Administration du serveur A. Architecture du serveur Tomcat 6 La compréhension de l architecture interne du serveur Tomcat 6 est un pré-requis indispensable pour bien en maîtriser l administration et la

Plus en détail

Programmation Réseau RMI. Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr. ! UFR Informatique

Programmation Réseau RMI. Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr. ! UFR Informatique Programmation Réseau RMI Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr UFR Informatique 2014 Les RMI de Java Les applications RMI sont des applications bâties sur

Plus en détail

CORBA avec OpenORB. Samir Torki et Patrice Torguet

CORBA avec OpenORB. Samir Torki et Patrice Torguet CORBA avec OpenORB Samir Torki et Patrice Torguet 1 Présentation de CORBA CORBA (Common Object Request Broker Architecture) est un standard décrivant une architecture pour la mise en place d objets distribués.

Plus en détail

DotNet Remoting. Assia HACHICHI. dr.hachichi@gmail.com (basé sur un cours de Lionel Seinturier) Page 1

DotNet Remoting. Assia HACHICHI. dr.hachichi@gmail.com (basé sur un cours de Lionel Seinturier) Page 1 DotNet Remoting Assia HACHICHI dr.hachichi@gmail.com (basé sur un cours de Lionel Seinturier) Page 1 I Introduction 1. Introduction 2. Modèle de programmation 3. Caractéristiques techniques Invocation

Plus en détail

Module Client Serveur Web 2006 Cours, TD et TP sur PHP et Tomcat

Module Client Serveur Web 2006 Cours, TD et TP sur PHP et Tomcat Prénom : Module Client Serveur Web 2006 Cours, TD et TP sur PHP et Tomcat Nom : Merci de répondre aux questions fermées directement sur la présente feuille et aux questions ouvertes sur une feuille indépendante

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 52

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 52 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 52 Chapitre 10 Le langage JavaServer Pages (JSP) et le modèle de composants Java (Java beans) Amélie Lambert 2014-2015 2 / 52 Plan du

Plus en détail

Les Services Web. Sana Sellami. sana.sellami@univ-amu.fr

Les Services Web. Sana Sellami. sana.sellami@univ-amu.fr Les Services Web Sana Sellami sana.sellami@univ-amu.fr 2015-2016 PLAN 1. Qu est ce qu un service Web? 2. Architecture des Services Web 3. Création et déploiement des Services Web SOAP en Java 4. Services

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

SOA et Services Web Institut Telecom Telecom SudParis Département INFormatique

SOA et Services Web Institut Telecom Telecom SudParis Département INFormatique SOA et Services Web Institut Telecom Telecom SudParis ormatique 05/09/2012 Références Web http://www-inf.it-sudparis.eu/cours/csc4503/ http://www-inf.it-sudparis.eu/cours/webservices/ Site de W3C (normes)

Plus en détail

CORBA. Cycle de développement

CORBA. Cycle de développement CORBA Cycle de développement Projet MIAGe Toulouse Groupe 2 1 Le cycle de développement (1/3) On s intéresse au développement selon le mode statique, c est à dire en utilisant les talons (stub, skeleton,

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

*4D, quand c est la solution qui compte. 4D démocratise les services Web

*4D, quand c est la solution qui compte. 4D démocratise les services Web *4D, quand c est la solution qui compte. 4D démocratise les services Web Table des matières I. INTRODUCTION page 3 II. VERS UNE DEFINITION DES SERVICES WEB 1. Qu est ce que c est? page 3 2. A quoi ça sert?

Plus en détail

RICM 4 ème année 12/1/2012

RICM 4 ème année 12/1/2012 RICM 4 ème année 12/1/2012 Examen de Systèmes Répartis Durée : 2h, Documents autorisés à l exception des livres. Le barème est indicatif. Partie A Applications Web Question 1. Dans un répertoire contenant

Plus en détail

Conception et développement d un Service Web Pour l échange d information dans le domaine humanitaire

Conception et développement d un Service Web Pour l échange d information dans le domaine humanitaire Université de Fribourg, Suisse Département d'informatique Bachelor en informatique de gestion TRAVAIL DE BACHELOR Sujet: Conception et développement d un Service Web Pour l échange d information dans le

Plus en détail

Kit d intégration JAVA

Kit d intégration JAVA Kit d intégration JAVA sommaire 1. Introduction... 3 1.1. Objet du document... 3 1.2. Public visé... 3 1.3. Contenu du document... 3 1.4. Liste des documents de référence... 3 1.5. Avertissement... 4 1.6.

Plus en détail

TP 3 Programmation client/serveur

TP 3 Programmation client/serveur PhL - 20/03/2007 - Page 1 / 5 TP 3 Programmation client/serveur 1. Modèle de programmation 1. Introduction Au-dessus des protocoles de transmission, on peut construire des applications réparties reposant

Plus en détail

Systèmes distribués. Les Sockets

Systèmes distribués. Les Sockets Systèmes distribués Plusieurs technologies existent : Les sockets Les remote procedure call (RPC) Remote Method Invocation (RMI) Les Sockets L'utilisation des Sockets nécessite De gérer le codage et le

Plus en détail

par Philippe Poulard Web services 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard

par Philippe Poulard Web services 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard Sommaire Qu est-ce? Middleware XML Web Services in situ Couches de services Architecture des Web Services avec Java JAX-RPC JAXR JAXM Outils 1 Présentation

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7

Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7 Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7 Installation du service IIS Fermer toutes les applications ouvertes (par précaution) Ouvrir le panneau de configuration, Programmes,

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous allons suivre

Plus en détail

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C#

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# CHAPITRE 1 Introduction aux web services Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# NetBeans JavaScript Eclipse Objective C Xcode PHP HTML Objectifs du chapitre : Ce

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans

Plus en détail

Les architectures N-tiers

Les architectures N-tiers Les architectures N-tiers 1 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Serveurs d applications Déploiement d applications J2EE Tiers applicatif : servlets Tiers

Plus en détail

Implémentée sous forme de JavaBean ou EJB, c est dans cette couche que l on retrouve l ensemble des traitements d une application.

Implémentée sous forme de JavaBean ou EJB, c est dans cette couche que l on retrouve l ensemble des traitements d une application. Introduction Nous allons parler, dans ce document consacré aux architectures multi-tiers en environnement J2EE, de 3 des cinq couches les plus représentatives. Faisons tout d'abord un petit rappel sur

Plus en détail

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz Master 2 SITW Les services Web Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A, Département TLSI Faculté des NTIC Université Constantine 2 Abdelhamid Mehri

Plus en détail