SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
WEB SERVICES


 Tébourbi Riadh SUP’COM, 2006, Riadh.Tebourbi@supcom.rnu.tn
 http://www.supcom.mincom.tn/~tebourbi/index3.htm
Généralités
2



        3 générations d’applications Web

        1 ° Génération
    
            Pages Web statiques (HTML)
        



        2 ° Génération
    
            Des applications réelles
        
            (Pages Web dynamiques, ASP, JSP, PHP, ...)

        3 ° Génération
    
            Les Web services (basé sur XML)
        




                                                         Web Services, Riadh Tébourbi, 2006
Web Services : définition
3




    Les Web Services : ensemble de protocoles qui permettent de :

     Faire communiquer des programmes tournant sur des machines différentes et
    écrits dans des langages de programmation différents.

     Invoquer des fonctions distantes, présentes sur des systèmes distribués et
    hétérogènes, grâce à des protocoles standards indépendamment de:


                   •la plate-forme (LINUX, Windows,…)
                   •l’implémentation (Java, C++, Visual Basic,…)
                   •l’architecture sous-jacente (.NET, J2EE,…)




                                                                    Web Services, Riadh Tébourbi, 2006
Fonctionnement
4


    Les services web permettent l'appel d'une méthode d'un objet distant en utilisant un
    protocole web pour transport (http en général) et XML pour formater les échanges. Les
    services web fonctionnent sur le principe du client serveur:

                un client appelle les service web
                le serveur traite la demande et renvoie le résultat au client
                le client utilise le résultat




Web Services, Riadh Tébourbi, 2006
Technologies utilisées
5




    Les services web utilisent trois technologies :

    SOAP (Simple Object Access Protocol) pour le service d'invocation : il permet l'échange
    de messages dans un format particulier

    WSDL (Web Services Description Language) pour le service de description : il permet de
    décrire les services web

    UDDI (Universal Description Discovery and Integration) pour le service de publication : il
    permet de référencer les services web




                                                                      Web Services, Riadh Tébourbi, 2006
SOAP: Simple Object Access Protocol
6




    SOAP: une norme de communication qui standardise l'échange de messages en utilisant un
    protocole de communication et XML pour formater les données.

    Le protocole le plus utilisé est HTTP pour sa facilité de mise en œuvre mais d'autres
    protocoles peuvent être utilisés tel que FTP (tous les protocoles capables de véhiculer un
    flux d'octets peuvent être utilisés).


    SOAP peut être utilisé :

    pour l'appel de méthodes (SOAP RPC)
    pour l'échange de message (SOAP Messaging)




                                                                       Web Services, Riadh Tébourbi, 2006
SOAP: structure
7


SOAP définit la structure principale du message, dite « enveloppe » qui contient deux
parties :
en tête (Header) : facultatif
le corps (Body) : obligatoire

    Le corps est composé d'un ou plusieurs blocs. Un
    bloc contient des données ou un appel de
    méthode avec ces paramètres.

    La partie SOAP Fault permet d'indiquer qu'une
    erreur est survenue lors des traitements du
    service web




                                                                  Web Services, Riadh Tébourbi, 2006
WSDL: Web Services Description Language
8




    WSDL : une norme qui utilise XML pour décrire des services web

    Objectif
       Décrire les services comme un ensemble d’opérations et de
       messages abstraits relié (bind) à des protocoles et des serveurs
       réseaux

    Grammaire XML (schema XML)
       Modulaire (import d’autres documents WSDL et XSD)




                                                     Web Services, Riadh Tébourbi, 2006
Exemple
9




     Deux web méthodes sur le serveur:


    <WebMethod()> _
     Public Function HelloWorld() As String
       Return quot;Hello Worldquot;
     End Function

       <WebMethod()> _
      Public Function Somme(ByVal a As Integer, ByVal b As Integer) As Integer
         Return a + b
       End Function




                                                                Web Services, Riadh Tébourbi, 2006
Fichier WSDL
10
     - <wsdl:types>
     - <s:schema elementFormDefault=quot;qualifiedquot; targetNamespace=quot;http://tempuri.org/quot;>
     - <s:element name=quot;HelloWorldquot;>
       <s:complexType />
       </s:element>
     - <s:element name=quot;HelloWorldResponsequot;>
     - <s:complexType>
     - <s:sequence>
       <s:element minOccurs=quot;0quot; maxOccurs=quot;1quot; name=quot;HelloWorldResultquot; type=quot;s:stringquot; />
       </s:sequence>
       </s:complexType>
       </s:element>
     - <s:element name=quot;Sommequot;>
     - <s:complexType>
     - <s:sequence>
       <s:element minOccurs=quot;1quot; maxOccurs=quot;1quot; name=quot;aquot; type=quot;s:intquot; />
       <s:element minOccurs=quot;1quot; maxOccurs=quot;1quot; name=quot;bquot; type=quot;s:intquot; />
       </s:sequence>
       </s:complexType>
       </s:element>
     - <s:element name=quot;SommeResponsequot;>
     - <s:complexType>
     - <s:sequence>
       <s:element minOccurs=quot;1quot; maxOccurs=quot;1quot; name=quot;SommeResultquot; type=quot;s:intquot; />
       </s:sequence>
       </s:complexType>
       </s:element>
       </s:schema>
                                                                                           Web Services, Riadh Tébourbi, 2006
       </wsdl:types>
Requête SOAP
11




     <soapenv:Envelope xmlns:soapenv=quot;http://schemas.xmlsoap.org/soap/envelope/quot;
     xmlns:tem=quot;http://tempuri.org/quot;>
      <soapenv:Body>
         <tem:Somme>
           <tem:a>4</tem:a>
           <tem:b>10</tem:b>
         </tem:Somme>
      </soapenv:Body>
     </soapenv:Envelope>




                                                             Web Services, Riadh Tébourbi, 2006
Réponse SOAP
12




     <soap:Envelope xmlns:soap=quot;http://schemas.xmlsoap.org/soap/envelope/quot;
     xmlns:xsd=quot;http://www.w3.org/2001/XMLSchemaquot;
     xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;>
      <soap:Body>
         <SommeResponse xmlns=quot;http://tempuri.org/quot;>
           <SommeResult>14</SommeResult>
         </SommeResponse>
      </soap:Body>
     </soap:Envelope>




                                                                Web Services, Riadh Tébourbi, 2006
Exemple de Service Web
13




 Client mobile, web, etc                                      Serveur
                             1
                                              Service web
                                              cartographique

                                 3
                                                             2


       1) Le client envoie une requête au service web
                                                                          BD
       2) Le service web traite la requête et génère à la
                                                                    cartographique
       volée une carte raster géoréférencée à partir des
       données cartographiques vecteur
       3) Le service web envoie le résultat au client
                                                            Web Services, Riadh Tébourbi, 2006
Outils
14


La Plate-forme .NET (période 2)

                        La bibliothèque de classes de base
                 Data Access         GUI        Security    XML/SOAP

                                                            (et autres...)
                  Threading          File I/O   Debugging




Web Services, Riadh Tébourbi, 2006
Outils
15


     JWSDP
     Java Web Services Developer Pack (JWSDP) : un ensemble d'outils et d'API qui permet
     de faciliter le développement des services web et des applications web avec Java.

     contient les API particulières suivantes :

     •Java XML Pack : Java API for XML Processing (JAXP), Java API for XML-based RPC (JAX-RPC),
     Java API for XML Messaging (JAXM), Java API for XML Registries (JAXR)
     •Java Architecture for XML Binbing (JAXB)
     •JavaServer Pages Standard Tag Library (JSTL)
     •Java Secure Socket (JSSE)
     •SOAP with Attachments API for Java (SAAJ)

     Le JWSDP contient les outils suivants :
     •Apache Tomcat
     •Java WSDP Registry Server (serveur UDDI)
     •Web application development tool
     •Apache Ant                                                    Web Services, Riadh Tébourbi, 2006
Web Services avec JAVA
16


 1) Installation des outils:


     Ingrédients:

     JDK: jdk-1_5_0_07-windows-i586-p.exe

     Outil de développement: netbeans-5_5-beta2-windows.exe

     Serveur d’application: tomcat50-jwsdp.zip , à décompresser
     dans tomcat50-jwsdp

     JWSDP: jwsdp-2_0-windows-i586.exe




                                                                  Web Services, Riadh Tébourbi, 2006
Web Services avec JAVA
17


 2) Configurations:

     Pour tomcat: JAVA_HOME set to C:Program FilesJavajdk1.5.0_07)

     Sur NetBeans: tools  server manager: choisir le serveur d’application tomcat50-jwsdp


                      Add server :
                      server = Tomcat 5.0,
                      Name = Tomcat 5.0

                      Catalina home = repertoire tomcat50-jwsdp




                                                                    Web Services, Riadh Tébourbi, 2006
Web Services avec JAVA
18


 3) Premier Web Service: une web méthode qui retourne la somme de deux entiers

      - File  new project  web  web application

     - Project name: premierws
     - Server: tomcat 5.0

 - Clic droit  Propriétés projet: source
 level =1.5




                                                                  Web Services, Riadh Tébourbi, 2006
Web Services avec JAVA
19


 4) Ajout du web service




                              Web Services, Riadh Tébourbi, 2006
Web Services avec JAVA
20


 5) Création de la web méthode: « somme »




                                            Web Services, Riadh Tébourbi, 2006
Web Services avec JAVA
21


 5) Déployer le web service

     Démarrer Tomcat: Program files  sun microsystems java web ..start tomcat




     Compiler le projet: Build project


     Deployer le ws: Deploy project



Tester et visualiser le WSDL:
http://localhost:8080/premierws/myws?wsdl



 Web Services, Riadh Tébourbi, 2006
Tester le Web Service
22


     Soap UI: permet de tester les web méthodes d’un web service sans a
     voir à développer un web client
     File  new WSDL project
      Add WSDl from url  http://localhost:8080/premierws/myws?wsdl




                                                                    Web Services, Riadh Tébourbi, 2006
Créer un web client JAVA
 23


  1) Création de l’application java cliente
      - Sur Netbeans: file  new project  général  java application
      Project name=wsclient
      - Project  new  web service client




Web Services, Riadh Tébourbi, 2006
Créer un web client JAVA
24


 2) Appel de la web méthode « somme »
       Dans une méthode (main par exemple) clic droit  web service client resources
        call web service operation




                                                     Enfin: Build project  run project
                                                                 Web Services, Riadh Tébourbi, 2006
Allez plus loin
25


     Une web méthode qui retourne une instance d’une classe: contient plusieurs attributs.
     Avantages: Envoyer plusieurs données en même temps.
     Exemple: rajouter dans le WS la class testclass:
       public class testclass {

          public int unentier;
          public String unechaine;
          public String tableau[]={quot;SERCOMquot;, quot;ISTquot;, quot;RSMquot;, quot;ISTquot;};


          /** Creates a new instance of testclass */
          public testclass() {
            unentier=3;
            unechaine=quot;Bonjour Indp quot;;

          }

                                                                      Web Services, Riadh Tébourbi, 2006
26



     Ajout d’une web méthode qui renvoie une instance de la classe testclass



     @WebMethod(operationName=quot;appel_testclassquot;)
      public testclass appel_testclass() {
        // implement the web service operation here
         testclass t = new testclass();
        return t;
      }




                                                                   Web Services, Riadh Tébourbi, 2006
27


     Coté client: appel de la web méthode:
       public void callTestclass() {
            try { // Call Web Service Operation
               wsclient.MywsService service = new wsclient.MywsService();
               wsclient.Myws port = service.getMywsPort();
               // TODO process result here
               wsclient.Testclass result = port.appelTestclass();
               //System.out.println(quot;Result = quot;+result);

              //affiche les datas
              System.out.println(quot;Result = quot;+result.unechaine + result.unentier);
              for(int i=0;i<result.tableau.size();i++) System.out.println(result.tableau.get(i));
              System.out.println(result.getUnechaine());

           } catch (Exception ex) {
              // TODO handle custom exceptions here
              System.out.println(ex.toString());
           }
         }
         /**
          * @param args the command line arguments
          */
         public static void main(String[] args) {
            // TODO code application logic here
            new Main().callTestclass();
         }
                                                                                                    Web Services, Riadh Tébourbi, 2006

Contenu connexe

Tendances

Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js ExpressEyal Vardi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Les web services
Les web servicesLes web services
Les web servicesdihiaselma
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 

Tendances (20)

Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Express js
Express jsExpress js
Express js
 
Expressjs
ExpressjsExpressjs
Expressjs
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Node.js Express Framework
Node.js Express FrameworkNode.js Express Framework
Node.js Express Framework
 
Express JS
Express JSExpress JS
Express JS
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Les web services
Les web servicesLes web services
Les web services
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 

En vedette

Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec JavaFrancois ANDRE
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcatCERTyou Formation
 
Formation Flash
Formation FlashFormation Flash
Formation Flashjplesault
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natifHenri Gomez
 
Java Web Services [3/5]: WSDL, WADL and UDDI
Java Web Services [3/5]: WSDL, WADL and UDDIJava Web Services [3/5]: WSDL, WADL and UDDI
Java Web Services [3/5]: WSDL, WADL and UDDIIMC Institute
 
Cobbler puppet
Cobbler puppetCobbler puppet
Cobbler puppetFedora-Fr
 
Etat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internetEtat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internetBee_Ware
 
White paper - La sécurisation des web services
White paper - La sécurisation des web servicesWhite paper - La sécurisation des web services
White paper - La sécurisation des web servicesBee_Ware
 
La sécurité des Si en établissement de santé
La sécurité des Si en établissement de santéLa sécurité des Si en établissement de santé
La sécurité des Si en établissement de santéBee_Ware
 
Presentation Tomcat Load Balancer
Presentation Tomcat Load BalancerPresentation Tomcat Load Balancer
Presentation Tomcat Load Balancertarkaus
 
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain MaretASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain MaretSylvain Maret
 
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...TelecomValley
 
Guide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cpsGuide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cpsBee_Ware
 
Où intégrer les services web (association/event)
Où intégrer les services web (association/event)Où intégrer les services web (association/event)
Où intégrer les services web (association/event)Rémi Thomas
 

En vedette (20)

Cours SIG
Cours SIGCours SIG
Cours SIG
 
Reconstruction 3 D
Reconstruction 3 DReconstruction 3 D
Reconstruction 3 D
 
Teledetection Sig
Teledetection SigTeledetection Sig
Teledetection Sig
 
Cours J2ME
Cours J2MECours J2ME
Cours J2ME
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
HTTP et REST
HTTP et RESTHTTP et REST
HTTP et REST
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcat
 
Formation Flash
Formation FlashFormation Flash
Formation Flash
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
Java Web Services [3/5]: WSDL, WADL and UDDI
Java Web Services [3/5]: WSDL, WADL and UDDIJava Web Services [3/5]: WSDL, WADL and UDDI
Java Web Services [3/5]: WSDL, WADL and UDDI
 
Cobbler puppet
Cobbler puppetCobbler puppet
Cobbler puppet
 
Etat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internetEtat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internet
 
White paper - La sécurisation des web services
White paper - La sécurisation des web servicesWhite paper - La sécurisation des web services
White paper - La sécurisation des web services
 
La sécurité des Si en établissement de santé
La sécurité des Si en établissement de santéLa sécurité des Si en établissement de santé
La sécurité des Si en établissement de santé
 
Presentation Tomcat Load Balancer
Presentation Tomcat Load BalancerPresentation Tomcat Load Balancer
Presentation Tomcat Load Balancer
 
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain MaretASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
 
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
 
Guide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cpsGuide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cps
 
Où intégrer les services web (association/event)
Où intégrer les services web (association/event)Où intégrer les services web (association/event)
Où intégrer les services web (association/event)
 

Similaire à Ter Web Service Intro

Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introductionMoez Re
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhindguendouz2000
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhxml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhindguendouz2000
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_servicesCamus LANMADOUCELO
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented ArchitectureDNG Consulting
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsVincent Perrin
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09Claude Coulombe
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 

Similaire à Ter Web Service Intro (20)

.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introduction
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhxml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 
education
educationeducation
education
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 

Ter Web Service Intro

  • 1. WEB SERVICES Tébourbi Riadh SUP’COM, 2006, Riadh.Tebourbi@supcom.rnu.tn http://www.supcom.mincom.tn/~tebourbi/index3.htm
  • 2. Généralités 2 3 générations d’applications Web 1 ° Génération  Pages Web statiques (HTML)  2 ° Génération  Des applications réelles  (Pages Web dynamiques, ASP, JSP, PHP, ...) 3 ° Génération  Les Web services (basé sur XML)  Web Services, Riadh Tébourbi, 2006
  • 3. Web Services : définition 3 Les Web Services : ensemble de protocoles qui permettent de :  Faire communiquer des programmes tournant sur des machines différentes et écrits dans des langages de programmation différents.  Invoquer des fonctions distantes, présentes sur des systèmes distribués et hétérogènes, grâce à des protocoles standards indépendamment de: •la plate-forme (LINUX, Windows,…) •l’implémentation (Java, C++, Visual Basic,…) •l’architecture sous-jacente (.NET, J2EE,…) Web Services, Riadh Tébourbi, 2006
  • 4. Fonctionnement 4 Les services web permettent l'appel d'une méthode d'un objet distant en utilisant un protocole web pour transport (http en général) et XML pour formater les échanges. Les services web fonctionnent sur le principe du client serveur:  un client appelle les service web  le serveur traite la demande et renvoie le résultat au client  le client utilise le résultat Web Services, Riadh Tébourbi, 2006
  • 5. Technologies utilisées 5 Les services web utilisent trois technologies : SOAP (Simple Object Access Protocol) pour le service d'invocation : il permet l'échange de messages dans un format particulier WSDL (Web Services Description Language) pour le service de description : il permet de décrire les services web UDDI (Universal Description Discovery and Integration) pour le service de publication : il permet de référencer les services web Web Services, Riadh Tébourbi, 2006
  • 6. SOAP: Simple Object Access Protocol 6 SOAP: une norme de communication qui standardise l'échange de messages en utilisant un protocole de communication et XML pour formater les données. Le protocole le plus utilisé est HTTP pour sa facilité de mise en œuvre mais d'autres protocoles peuvent être utilisés tel que FTP (tous les protocoles capables de véhiculer un flux d'octets peuvent être utilisés). SOAP peut être utilisé : pour l'appel de méthodes (SOAP RPC) pour l'échange de message (SOAP Messaging) Web Services, Riadh Tébourbi, 2006
  • 7. SOAP: structure 7 SOAP définit la structure principale du message, dite « enveloppe » qui contient deux parties : en tête (Header) : facultatif le corps (Body) : obligatoire Le corps est composé d'un ou plusieurs blocs. Un bloc contient des données ou un appel de méthode avec ces paramètres. La partie SOAP Fault permet d'indiquer qu'une erreur est survenue lors des traitements du service web Web Services, Riadh Tébourbi, 2006
  • 8. WSDL: Web Services Description Language 8 WSDL : une norme qui utilise XML pour décrire des services web Objectif Décrire les services comme un ensemble d’opérations et de messages abstraits relié (bind) à des protocoles et des serveurs réseaux Grammaire XML (schema XML) Modulaire (import d’autres documents WSDL et XSD) Web Services, Riadh Tébourbi, 2006
  • 9. Exemple 9 Deux web méthodes sur le serveur: <WebMethod()> _ Public Function HelloWorld() As String Return quot;Hello Worldquot; End Function <WebMethod()> _ Public Function Somme(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function Web Services, Riadh Tébourbi, 2006
  • 10. Fichier WSDL 10 - <wsdl:types> - <s:schema elementFormDefault=quot;qualifiedquot; targetNamespace=quot;http://tempuri.org/quot;> - <s:element name=quot;HelloWorldquot;> <s:complexType /> </s:element> - <s:element name=quot;HelloWorldResponsequot;> - <s:complexType> - <s:sequence> <s:element minOccurs=quot;0quot; maxOccurs=quot;1quot; name=quot;HelloWorldResultquot; type=quot;s:stringquot; /> </s:sequence> </s:complexType> </s:element> - <s:element name=quot;Sommequot;> - <s:complexType> - <s:sequence> <s:element minOccurs=quot;1quot; maxOccurs=quot;1quot; name=quot;aquot; type=quot;s:intquot; /> <s:element minOccurs=quot;1quot; maxOccurs=quot;1quot; name=quot;bquot; type=quot;s:intquot; /> </s:sequence> </s:complexType> </s:element> - <s:element name=quot;SommeResponsequot;> - <s:complexType> - <s:sequence> <s:element minOccurs=quot;1quot; maxOccurs=quot;1quot; name=quot;SommeResultquot; type=quot;s:intquot; /> </s:sequence> </s:complexType> </s:element> </s:schema> Web Services, Riadh Tébourbi, 2006 </wsdl:types>
  • 11. Requête SOAP 11 <soapenv:Envelope xmlns:soapenv=quot;http://schemas.xmlsoap.org/soap/envelope/quot; xmlns:tem=quot;http://tempuri.org/quot;> <soapenv:Body> <tem:Somme> <tem:a>4</tem:a> <tem:b>10</tem:b> </tem:Somme> </soapenv:Body> </soapenv:Envelope> Web Services, Riadh Tébourbi, 2006
  • 12. Réponse SOAP 12 <soap:Envelope xmlns:soap=quot;http://schemas.xmlsoap.org/soap/envelope/quot; xmlns:xsd=quot;http://www.w3.org/2001/XMLSchemaquot; xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;> <soap:Body> <SommeResponse xmlns=quot;http://tempuri.org/quot;> <SommeResult>14</SommeResult> </SommeResponse> </soap:Body> </soap:Envelope> Web Services, Riadh Tébourbi, 2006
  • 13. Exemple de Service Web 13 Client mobile, web, etc Serveur 1 Service web cartographique 3 2 1) Le client envoie une requête au service web BD 2) Le service web traite la requête et génère à la cartographique volée une carte raster géoréférencée à partir des données cartographiques vecteur 3) Le service web envoie le résultat au client Web Services, Riadh Tébourbi, 2006
  • 14. Outils 14 La Plate-forme .NET (période 2) La bibliothèque de classes de base Data Access GUI Security XML/SOAP (et autres...) Threading File I/O Debugging Web Services, Riadh Tébourbi, 2006
  • 15. Outils 15 JWSDP Java Web Services Developer Pack (JWSDP) : un ensemble d'outils et d'API qui permet de faciliter le développement des services web et des applications web avec Java. contient les API particulières suivantes : •Java XML Pack : Java API for XML Processing (JAXP), Java API for XML-based RPC (JAX-RPC), Java API for XML Messaging (JAXM), Java API for XML Registries (JAXR) •Java Architecture for XML Binbing (JAXB) •JavaServer Pages Standard Tag Library (JSTL) •Java Secure Socket (JSSE) •SOAP with Attachments API for Java (SAAJ) Le JWSDP contient les outils suivants : •Apache Tomcat •Java WSDP Registry Server (serveur UDDI) •Web application development tool •Apache Ant Web Services, Riadh Tébourbi, 2006
  • 16. Web Services avec JAVA 16 1) Installation des outils: Ingrédients: JDK: jdk-1_5_0_07-windows-i586-p.exe Outil de développement: netbeans-5_5-beta2-windows.exe Serveur d’application: tomcat50-jwsdp.zip , à décompresser dans tomcat50-jwsdp JWSDP: jwsdp-2_0-windows-i586.exe Web Services, Riadh Tébourbi, 2006
  • 17. Web Services avec JAVA 17 2) Configurations: Pour tomcat: JAVA_HOME set to C:Program FilesJavajdk1.5.0_07) Sur NetBeans: tools  server manager: choisir le serveur d’application tomcat50-jwsdp Add server : server = Tomcat 5.0, Name = Tomcat 5.0 Catalina home = repertoire tomcat50-jwsdp Web Services, Riadh Tébourbi, 2006
  • 18. Web Services avec JAVA 18 3) Premier Web Service: une web méthode qui retourne la somme de deux entiers - File  new project  web  web application - Project name: premierws - Server: tomcat 5.0 - Clic droit  Propriétés projet: source level =1.5 Web Services, Riadh Tébourbi, 2006
  • 19. Web Services avec JAVA 19 4) Ajout du web service Web Services, Riadh Tébourbi, 2006
  • 20. Web Services avec JAVA 20 5) Création de la web méthode: « somme » Web Services, Riadh Tébourbi, 2006
  • 21. Web Services avec JAVA 21 5) Déployer le web service Démarrer Tomcat: Program files  sun microsystems java web ..start tomcat Compiler le projet: Build project Deployer le ws: Deploy project Tester et visualiser le WSDL: http://localhost:8080/premierws/myws?wsdl Web Services, Riadh Tébourbi, 2006
  • 22. Tester le Web Service 22 Soap UI: permet de tester les web méthodes d’un web service sans a voir à développer un web client File  new WSDL project Add WSDl from url  http://localhost:8080/premierws/myws?wsdl Web Services, Riadh Tébourbi, 2006
  • 23. Créer un web client JAVA 23 1) Création de l’application java cliente - Sur Netbeans: file  new project  général  java application Project name=wsclient - Project  new  web service client Web Services, Riadh Tébourbi, 2006
  • 24. Créer un web client JAVA 24 2) Appel de la web méthode « somme » Dans une méthode (main par exemple) clic droit  web service client resources  call web service operation Enfin: Build project  run project Web Services, Riadh Tébourbi, 2006
  • 25. Allez plus loin 25 Une web méthode qui retourne une instance d’une classe: contient plusieurs attributs. Avantages: Envoyer plusieurs données en même temps. Exemple: rajouter dans le WS la class testclass: public class testclass { public int unentier; public String unechaine; public String tableau[]={quot;SERCOMquot;, quot;ISTquot;, quot;RSMquot;, quot;ISTquot;}; /** Creates a new instance of testclass */ public testclass() { unentier=3; unechaine=quot;Bonjour Indp quot;; } Web Services, Riadh Tébourbi, 2006
  • 26. 26 Ajout d’une web méthode qui renvoie une instance de la classe testclass @WebMethod(operationName=quot;appel_testclassquot;) public testclass appel_testclass() { // implement the web service operation here testclass t = new testclass(); return t; } Web Services, Riadh Tébourbi, 2006
  • 27. 27 Coté client: appel de la web méthode: public void callTestclass() { try { // Call Web Service Operation wsclient.MywsService service = new wsclient.MywsService(); wsclient.Myws port = service.getMywsPort(); // TODO process result here wsclient.Testclass result = port.appelTestclass(); //System.out.println(quot;Result = quot;+result); //affiche les datas System.out.println(quot;Result = quot;+result.unechaine + result.unentier); for(int i=0;i<result.tableau.size();i++) System.out.println(result.tableau.get(i)); System.out.println(result.getUnechaine()); } catch (Exception ex) { // TODO handle custom exceptions here System.out.println(ex.toString()); } } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here new Main().callTestclass(); } Web Services, Riadh Tébourbi, 2006