46
Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Embed Size (px)

Citation preview

Page 1: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Web ServicesBesnik SELJIMI, Novembre 2003

Master 2, Génie InformatiqueOption Systèmes Répartis et Réseaux

Page 2: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Web Services Besnik SELJIMI, 2003

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

Page 3: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Que veut dire « Web Services » Pas de définition officielle Service offert sur le web Service offert aux personnes Service

aux entreprises

Web Services Besnik SELJIMI, 2003

Page 4: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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 ».

Web Services Besnik SELJIMI, 2003

Page 5: 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

Web Services Besnik SELJIMI, 2003

Page 6: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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/

Web Services Besnik SELJIMI, 2003

Page 7: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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)

Web Services Besnik SELJIMI, 2003

Page 8: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 9: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Utilisation des Web Services

7: Réponse SOAP

5: Requête SOAP

1: Inscription2: Recherche de service 3: Description

WSDL

4: Construction requête 6: Traitement

UDDI

Web Services Besnik SELJIMI, 2003

Page 10: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Résumé : Web Services1. Communication : SOAP/HTTP2. Description : WSDL3. Publication et Recherche : UDDI

Web Services Besnik SELJIMI, 2003

Page 11: 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

Web Services Besnik SELJIMI, 2003

Page 12: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

XML

Le protocole SOAP

Réponse SOAP

Requête SOAP

Bus Web Services

Web Services Besnik SELJIMI, 2003

Page 13: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le protocole SOAP Format XML. Grammaire publique du W3C Enveloppe SOAP : élément racine

Enveloppe SOAP

En-tête facultatif

Corps de message

Web Services Besnik SELJIMI, 2003

Page 14: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le protocole SOAP

Web Services Besnik SELJIMI, 2003

Page 15: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le protocole SOAP L’élément Fault

faultcode : DataEncodingUnknown DTDNotSupported mustUnderstand Receiver Sender versionMismatch

faultstring faultactor detail

Web Services Besnik SELJIMI, 2003

Page 16: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le protocole SOAP

Web Services Besnik SELJIMI, 2003

Page 17: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le protocole SOAP Les attachements : Données non textuelles

Partie de message MIME

Partie de message MIME

Message MIME

Message SOAP

Contenu binaire

Web Services Besnik SELJIMI, 2003

Page 18: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le protocole SOAP Le champ SOAP Action

En-tête HTTP Spécifie l’action à faire : URI

Web Services Besnik SELJIMI, 2003

Page 19: 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

Web Services Besnik SELJIMI, 2003

Page 20: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 21: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le langage WSDL Élément message

requêtes et réponses

Web Services Besnik SELJIMI, 2003

Page 22: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le langage WSDL Élément portType

Web Services Besnik SELJIMI, 2003

Page 23: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le langage WSDL Élément binding

Web Services Besnik SELJIMI, 2003

Page 24: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le langage WSDL Élément service

Web Services Besnik SELJIMI, 2003

Page 25: 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

Web Services Besnik SELJIMI, 2003

Page 26: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le référentiel UDDI UDDI (Universal Description, Discovery

and Integration) Un Web Service

Web Services Besnik SELJIMI, 2003

Page 27: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 28: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Le référentiel UDDI

http://uddi.microsoft.com

Web Services Besnik SELJIMI, 2003

Page 29: 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

Web Services Besnik SELJIMI, 2003

Page 30: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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)

Web Services Besnik SELJIMI, 2003

Page 31: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Programmation des Web Services L’API JAX-RPC

Informations nécéssaires

Web Services Besnik SELJIMI, 2003

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 traductionsourcedate(String) : texte à traduire

Paramètres de sortie Return(String) : résultat de la traduction

Page 32: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Programmation des Web Services L’API JAX-RPC

Création du serviceServiceFactory factory = ServiceFactory.newInstance();Service service = factory.createService(new QName(_service));

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

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

NamespaceConstants.NSURI_SOAP_ENCODING);

Web Services Besnik SELJIMI, 2003

Page 33: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Programmation des Web Services L’API JAX-RPC

Type de retourcall.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 !"}

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

Web Services Besnik SELJIMI, 2003

Page 34: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Programmation des Web Services L’API JAX-RPC

Types complexes Sérialisation de classes java

Web Services Besnik SELJIMI, 2003

<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; }…}

Page 35: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 36: 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

Web Services Besnik SELJIMI, 2003

Page 37: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Etat initial Etat final

Transactions B2B, B2C Cohérence et Sécurité

abortedcommit

Web Services Besnik SELJIMI, 2003

Page 38: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Transactions ACID : Atomicité, Cohérence, Isolation et

Durabilité Environnement reparti

Prepare

Prepare

Ready Participant

Coordinateur

Participant

Phase de concertation

Ready

Commit

Commit

Ok Participant

Coordinateur

Participant

Phase de validation

Ok

Web Services Besnik SELJIMI, 2003

Page 39: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 40: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 41: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 42: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

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

Web Services Besnik SELJIMI, 2003

Page 43: 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

Web Services Besnik SELJIMI, 2003

Page 44: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Conclusions

Web Services Besnik SELJIMI, 2003

Page 45: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Quelques liens … http://www.w3c.org/2002/ws/ http://www.microsoft.com/webservices/ http://www.ibm.com/webservices/

Web Services Besnik SELJIMI, 2003

Page 46: Web Services Besnik SELJIMI, Novembre 2003 Master 2, Génie Informatique Option Systèmes Répartis et Réseaux

Questions ?

Web Services Besnik SELJIMI, 2003