Web Services by 5L4HcUW

VIEWS: 0 PAGES: 46

									                 Web Services
Besnik SELJIMI, Novembre 2003

Master 2, Génie Informatique
Option Systèmes Répartis et Réseaux
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Que veut dire « Web Services »
  Pas de définition officielle
  Service offert sur le web
  Service offert aux personnes  Service
   aux entreprises




               Besnik SELJIMI, 2003
Web Services
 Historique
    Fin 90 : « dot coms », B2B, B2C.
    Enormes sommes mises en jeu.
    2000 : Fin de la bulle spéculative de vente sur
     Internet.
    Mais, B2B a fait son chemin.
    Recyclage des technologies.
    Collaboration Microsoft, IBM, HP, Oracle, BEA.
    2002 : Consortium (B2B, B2C).
    Standard pour « Web Services ».


                    Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Définition des Web Services
  Echange d’informations entre applications
   via le Web
  Mise en place :
        Communication  Protocole
        Echange d’Informations  Format Précis
        Description des services
        Publication et recherche des services
    W3C : http://www.w3.org/2003/ws/


                    Besnik SELJIMI, 2003
Web Services
 Format de données
    XML s’impose
        Souplesse
        Simplicité
        N’importe quelle information
        Largement utilisé dans les entreprises
        Outils nombreux, même gratuits
        Choix des consortiums : exemple configuration
         J2EE
    SOAP (Simple Object Access Protocol)


                     Besnik SELJIMI, 2003
Web Services
 Protocole de communication
  Rien qui est imposé
  Mais HTTP recommandé
        Largement accepté
        Capacité de nombreux échanges
        Tolérance aux fautes
        Adapté pour les textes (XML)
        Intégration avec les firewall
    SMTP en option


                    Besnik SELJIMI, 2003
Web Services
 Utilisation des Web Services
                                      UDDI



      2: Recherche                           1: Inscription
      de service   3: Description
                   WSDL


                          5: Requête SOAP

                         7: Réponse SOAP

   4: Construction
       requête                                      6: Traitement

                     Besnik SELJIMI, 2003
Web Services
 Résumé : Web Services
 1.   Communication : SOAP/HTTP
 2.   Description : WSDL
 3.   Publication et Recherche : UDDI




                 Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP
                  Requête SOAP

                 Réponse SOAP

                      XML




                Bus Web Services




               Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP
    Format XML. Grammaire publique du W3C
    Enveloppe SOAP : élément racine

                  Enveloppe SOAP

                    En-tête facultatif



                  Corps de message




                 Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP




               Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP
    L’élément Fault
        faultcode :
             DataEncodingUnknown
             DTDNotSupported
             mustUnderstand
             Receiver
             Sender
             versionMismatch
        faultstring
        faultactor
        detail

                       Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP




               Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP
    Les attachements : Données non textuelles
           Message MIME
                       Partie de message MIME

                              Message SOAP


                       Partie de message MIME

                              Contenu binaire




                     Besnik SELJIMI, 2003
Web Services
 Le protocole SOAP
    Le champ SOAP Action
        En-tête HTTP
        Spécifie l’action à faire : URI




                      Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Le langage WSDL
    Nécessité de décrire :
        Quel actions sont possibles
        Quel message envoyer
        Quel message recevoir
    WSDL (Web Services Description
     Language)
        C’est du XML
        Dernière version : 1.2



                     Besnik SELJIMI, 2003
Web Services
 Le langage WSDL
    Élément message
        requêtes et réponses




                    Besnik SELJIMI, 2003
Web Services
 Le langage WSDL
    Élément portType




                Besnik SELJIMI, 2003
Web Services
 Le langage WSDL
    Élément binding




                 Besnik SELJIMI, 2003
Web Services
 Le langage WSDL
    Élément service




                 Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Le référentiel UDDI
  UDDI (Universal Description, Discovery
   and Integration)
  Un Web Service




               Besnik SELJIMI, 2003
Web Services
 Le référentiel UDDI
    Caractéristiques
        Synchronisation entre serveurs
        Accès SOAP
        Recherche sur plusieurs critères
        Référentiels publics – connus d’avance
             Microsoft : http://uddi.microsoft.com
             SUN : http://wwws.sun.com/software/
              xml/developers/uddi/
             ...
        Mais, référentiels privés possibles


                         Besnik SELJIMI, 2003
Web Services
 Le référentiel UDDI




                                      http://uddi.microsoft.com




               Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Programmation des Web Services
    Deux modes de programmation
        RPC
             Paramètres
             Ordre sur l’apparition des paramètres
             Type de retour
             Mécanisme d’encodage / décodage des paramètres
        Document / Modèle message
             Transport de documents XML
    Coté Java
        JAX-RPC (Java API for XML RPC)
        JAXM (Java API for XML Messaging)

                        Besnik SELJIMI, 2003
Web Services
 Programmation des Web Services
    L’API JAX-RPC
         Informations nécéssaires

     Nom du service          BabelFishService
     Nom de l’opération      BabelFish
     Nom du port             BabelFishPortType
     URL du point d’accès    http://services.xmethods.net:80/perl/soaplite.cgi
     Namespace               http://services.xmethods.net:80/perl/soaplite.cgi
     Paramètres d’entrée     translationmode(String) : mode de traduction
                             sourcedate(String) : texte à traduire
     Paramètres de sortie    Return(String) : résultat de la traduction




                            Besnik SELJIMI, 2003
Web Services
 Programmation des Web Services
    L’API JAX-RPC
        Création du service
          ServiceFactory factory = ServiceFactory.newInstance();
          Service service = factory.createService(new QName(_service));

        Création d’un objet Call
          Call call = service.createCall(new QName(_port));

        Préparation de la requête
          call.setTargetEndpointAddress(_endpoint);
          call.setOperationName(new QName(_namespace,_operation));
          call.setProperty("javax.xml.rpc.encodingstyle.namespace.url« ,
                    NamespaceConstants.NSURI_SOAP_ENCODING);




                          Besnik SELJIMI, 2003
Web Services
 Programmation des Web Services
    L’API JAX-RPC
        Type de retour
          call.setReturnType(XMLType.XSD_STRING)

        Paramètres d’entrée
          call.addParameter("translationtype", XMLType.XSD_STRING,
            ParameterMode.IN);
          call.addParameter("sourcedata", XMLType.XSD_STRING,
            ParameterMode.IN);
          String[] params = {"EnToFr", "Hello world !"}

        Invocation
          String traduction = (String) call.invoke(params);
          System.out.println(traduction);



                           Besnik SELJIMI, 2003
Web Services
 Programmation des Web Services
    L’API JAX-RPC
         Types complexes
              Sérialisation de classes java
                                          Public class Personne {
                                            private String _nom;
                                            private String _prenom;
     <personne>                             public void setnom(String value){
        <nom>Dupont</nom>                      _nom = value;
        <prenom>Jacques</prenom>            }
     </personne>                           public String getnom(){
                                               return _nom;
                                            }
                                          …
                                          }


                            Besnik SELJIMI, 2003
Web Services
 Programmation des Web Services
    L’API JAXM
        Mode document / message
             Transport de données XML
        Requête/réponse
        Oneway messaging
             Peut s’utiliser en asynchrone


    Coté serveur
        Serveur web : exemple EJB, servlets


                          Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Transactions
    B2B, B2C  Cohérence et Sécurité



      Etat initial                                    Etat final

                                                 commit
                     aborted




                          Besnik SELJIMI, 2003
Web Services
 Transactions
    ACID : Atomicité, Cohérence, Isolation et
     Durabilité
    Environnement reparti
                             Ready              Participant
                                     Prepare
              Coordinateur                         Phase de concertation
                                      Prepare
                             Ready              Participant




                             Ok                 Participant
                                     Commit
              Coordinateur                         Phase de validation
                                      Commit
                             Ok                 Participant


                      Besnik SELJIMI, 2003
Web Services
 Transactions
    Applications
        OTS (Object Transaction Service) : CORBA
        JTS (Java Transaction Service) : EJB
        MTS (Microsoft Transaction Service) : DCOM
    Les Web Services
        Blocage : Pas de verrouillage des données
        Services dispersés
        Temps de latence élevé
        Pas de confiance entre participants


                     Besnik SELJIMI, 2003
Web Services
 Transactions
    BTP (Business Transaction Protocol)
        BEA, Consortium OASIS : www.oasis-open.org
        Propriétés ACID non respectés
        Relâchement des verrous, compensation
        Un participant peut abandonner
    WS-Transaction
        BEA, IBM et Microsoft
        Basé sur WS-Coordination



                    Besnik SELJIMI, 2003
Web Services
 Sécurité
  Utilisation de SSL / TLS pour le transport
  XML Signature
        Signature et certificat apparaissent dans le
         document XML
        Pas de gestion des droits d’accès
    XKMS (XML Key Management System)
        Proposée par VeriSign
        Retenue par W3C
        Utilisation gratuite


                     Besnik SELJIMI, 2003
Web Services
 Sécurité
    WS-Security
        Etendre le protocole SOAP
        Authentification, confidentialité, intégrité
        Jetons de sécurité
    Identité unique
        Microsoft Passport
             Centralisation, Monopole
        Le projet « Liberty Alliance »
             Open Source
             Système reparti


                         Besnik SELJIMI, 2003
Web Services
 Plan
  Introduction
  Définition des Web Services
        Le protocole SOAP
        Le langage WSDL
        Le référentiel UDDI
  Programmation des Web Services
  Transactions et sécurité
  Conclusion & Questions



                     Besnik SELJIMI, 2003
Web Services
 Conclusions




               Besnik SELJIMI, 2003
Web Services
 Quelques liens …
  http://www.w3c.org/2002/ws/
  http://www.microsoft.com/webservices/
  http://www.ibm.com/webservices/




               Besnik SELJIMI, 2003
Web Services
 Questions ?




               Besnik SELJIMI, 2003
Web Services

								
To top