web services besnik seljimi, novembre 2003 master 2, génie informatique option systèmes répartis...
TRANSCRIPT
Web ServicesBesnik SELJIMI, Novembre 2003
Master 2, Génie InformatiqueOption 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
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
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
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
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
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
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
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
Résumé : Web Services1. Communication : SOAP/HTTP2. Description : WSDL3. Publication et Recherche : UDDI
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
Web Services Besnik SELJIMI, 2003
XML
Le protocole SOAP
Réponse SOAP
Requête SOAP
Bus Web Services
Web Services Besnik SELJIMI, 2003
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
Le protocole SOAP
Web Services Besnik SELJIMI, 2003
Le protocole SOAP L’élément Fault
faultcode : DataEncodingUnknown DTDNotSupported mustUnderstand Receiver Sender versionMismatch
faultstring faultactor detail
Web Services Besnik SELJIMI, 2003
Le protocole SOAP
Web Services Besnik SELJIMI, 2003
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
Le protocole SOAP Le champ SOAP Action
En-tête HTTP Spécifie l’action à faire : URI
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
Web Services Besnik SELJIMI, 2003
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
Le langage WSDL Élément message
requêtes et réponses
Web Services Besnik SELJIMI, 2003
Le langage WSDL Élément portType
Web Services Besnik SELJIMI, 2003
Le langage WSDL Élément binding
Web Services Besnik SELJIMI, 2003
Le langage WSDL Élément service
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
Web Services Besnik SELJIMI, 2003
Le référentiel UDDI UDDI (Universal Description, Discovery
and Integration) Un Web Service
Web Services Besnik SELJIMI, 2003
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
Le référentiel UDDI
http://uddi.microsoft.com
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
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)
Web Services Besnik SELJIMI, 2003
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
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
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
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; }…}
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
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
Etat initial Etat final
Transactions B2B, B2C Cohérence et Sécurité
abortedcommit
Web Services Besnik SELJIMI, 2003
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
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
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
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
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
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
Conclusions
Web Services Besnik SELJIMI, 2003
Quelques liens … http://www.w3c.org/2002/ws/ http://www.microsoft.com/webservices/ http://www.ibm.com/webservices/
Web Services Besnik SELJIMI, 2003
Questions ?
Web Services Besnik SELJIMI, 2003