Web Services HTTP UDDI SOAP WSDL Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux HTTP UDDI WSDL SOAP
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Que veut dire « Web Services » Pas de définition officielle Service offert sur le web Service offert aux personnes Service aux entreprises HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Historique HTTP UDDI SOAP WSDL 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 ». HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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/ HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Format de données HTTP UDDI SOAP WSDL 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) HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Utilisation des Web Services UDDI 1: Inscription 2: Recherche de service 3: Description WSDL 5: Requête SOAP 7: Réponse SOAP 4: Construction requête 6: Traitement HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Résumé : Web Services HTTP UDDI SOAP WSDL Communication : SOAP/HTTP Description : WSDL Publication et Recherche : UDDI HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL Web Services XML Requête SOAP Réponse SOAP Bus Web Services HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL Format XML. Grammaire publique du W3C Enveloppe SOAP : élément racine Enveloppe SOAP En-tête facultatif Corps de message HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL L’élément Fault faultcode : DataEncodingUnknown DTDNotSupported mustUnderstand Receiver Sender versionMismatch faultstring faultactor detail HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL Les attachements : Données non textuelles Partie de message MIME Message MIME Message SOAP Contenu binaire HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le protocole SOAP HTTP UDDI SOAP WSDL Le champ SOAP Action En-tête HTTP Spécifie l’action à faire : URI HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le langage WSDL HTTP UDDI SOAP 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le langage WSDL HTTP UDDI SOAP WSDL Élément message requêtes et réponses HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le langage WSDL HTTP UDDI SOAP WSDL Élément portType Web Services Besnik SELJIMI, 2003
Le langage WSDL HTTP UDDI SOAP WSDL Élément binding Web Services Besnik SELJIMI, 2003
Le langage WSDL HTTP UDDI SOAP WSDL Élément service Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le référentiel UDDI HTTP UDDI SOAP WSDL UDDI (Universal Description, Discovery and Integration) Un Web Service HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le référentiel UDDI HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Le référentiel UDDI HTTP UDDI SOAP WSDL Web Services http://uddi.microsoft.com HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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) HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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); HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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); HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Programmation des Web Services L’API JAX-RPC Types complexes Sérialisation de classes java <personne> <nom>Dupont</nom> <prenom>Jacques</prenom> </personne> Public class Personne { private String _nom; private String _prenom; public void setnom(String value){ _nom = value; } public String getnom(){ return _nom; … HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Transactions HTTP UDDI SOAP WSDL B2B, B2C Cohérence et Sécurité Etat initial Etat final aborted commit HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Transactions HTTP UDDI SOAP WSDL ACID : Atomicité, Cohérence, Isolation et Durabilité Environnement reparti Participant Coordinateur Phase de concertation Ready Prepare Prepare Ready Participant Coordinateur Phase de validation Ok Commit Commit Ok HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Transactions HTTP UDDI SOAP WSDL Applications Les Web Services 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Transactions HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Sécurité HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Sécurité HTTP UDDI SOAP WSDL WS-Security Identité unique 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Plan HTTP UDDI SOAP WSDL 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 HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Conclusions HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Quelques liens … HTTP UDDI SOAP WSDL http://www.w3c.org/2002/ws/ http://www.microsoft.com/webservices/ http://www.ibm.com/webservices/ HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003
Questions ? HTTP UDDI WSDL SOAP Web Services Besnik SELJIMI, 2003