Transcript Les services Web, XML et les places de marchés
Les services Web, XML et les places de marchés
1 An Introduction to distributed applications and ecommerce 1
Le modèle sémantique du e commerce est complexe
2 An Introduction to distributed applications and ecommerce 2
Plan
Principes XML (Notions) SOAP WSDL UDDI Axis Conclusion
3 An Introduction to distributed applications and ecommerce 3
Définition
Les Web Services sont des services offerts via le web.
Par exemple, un client demande le prix d’un article en envoyant un message sur le web. Ce message contient la référence de l’article. Le Web Service va recevoir la référence, effectuer le traitement du service et renvoyer le prix au client via un autre message.
4 An Introduction to distributed applications and ecommerce 4
Un système distribué simple
1-Publish (UDDI) Broker (UDDI) 2-Find (UDDI) Provider 3-Bind (RPC-SOAP) Requester
5 An Introduction to distributed applications and ecommerce 5
La pile simplifiée des Services Web
Application basée Services Web Syntaxe et sémantique des documents d’affaires Enveloppe
SOAP
, XP, ebXML TR&P … Transport
HTTP
, SMTP
6 An Introduction to distributed applications and ecommerce 6
Pourquoi un nouveau middleware?
7 An Introduction to distributed applications and ecommerce 7
Limitations des middleware
Passage à large échelle : Web
Protocoles hétérogènes • IIOP, RMI, DCOM
• Firewall Pas d’ouverture des services • Notion de moteur de recherche inexistante Trop de contraintes sur le client !
• Doit posséder les souches • Difficulté de construire dynamiquement 8 An Introduction to distributed applications and ecommerce 8
Limitations des middleware
Inconvénients Intrinsèques
Complexité • CORBA : IDL, Mapping, …
• EJB : Container, JNDI, … Pérennité : remise en question • CORBA, EJB, .Net, … Prix • Plates-formes • Compétences 9 An Introduction to distributed applications and ecommerce 9
Solutions existantes
Modification du Protocole
• RMI / IIOP
Passerelles
• CORBA vers DCOM
Portage d’applications existantes difficile Solutions non standards
10 An Introduction to distributed applications and ecommerce 10
Approche Envisagée
Un nouveau Protocole : SOAP • Basé sur XML • Portabilité, Hétérogénéité • Porté sur des protocoles large échelle existants • HTTP, SMTP, … Paradigme orienté service : WSDL • Définition de services offerts (en XML) Découverte automatique des services (dynamicité) : UDDI • Référentiel de Web Service (Pages Jaunes, Vertes, Blanches) 11 An Introduction to distributed applications and ecommerce 11
Les clients doivent savoir envoyer des messages SOAP (sur HTTP ou SMTP)
Ex : ModFact
Le serveur doit savoir recevoir des messages SOAP (sur HTTP ou SMTP). Il effectue les traitements correspondant (ici délégation vers CORBA).
SOAP / HTTP IIOP SOAP / SMTP
Application existante classique (ici CORBA)
UDDI
Utilisation de UDDI pour construire dynamiquement des client Exportation du Web Service dans le référentiel UDDI
12 An Introduction to distributed applications and ecommerce 12
SOAP
Protocole d’échange de messages (client / serveur) Basé entièrement sur XML Standard W3C (Initiative IBM et Microsoft) • Actuellement SOAP 1.1
Concepts • Message = Enveloppe ( Header + Body ) Extensibilité • Porté sur HTTP, SMTP, … 13 An Introduction to distributed applications and ecommerce 13
WSDL
Langage de définition de Web Services Basé entièrement sur XML Standard W3C (Initiative IBM et Microsoft) • Actuellement WSDL 1.1
Définition de l’interface, de l’URL et du port du Web Service.
Utilise le système de typage de XML Schéma 14 An Introduction to distributed applications and ecommerce 14
UDDI
Référentiel de définitions Web Service Permet de construire dynamiquement des clients Recommandation OASIS Référentiel défini lui-même en WSDL Référentiel Public / Privé
15 An Introduction to distributed applications and ecommerce 15
XML
Notions de bases pour les services Web
16 An Introduction to distributed applications and ecommerce 16
Exemple de document XML
But des concepteurs de XML
Facile à utiliser sur l’Internet Capable de supporter un grand nombre d’applications Les processeurs XML doivent être facile à développer Les documents XML doivent être facile à comprendre
18 An Introduction to distributed applications and ecommerce 18
Principes
Ensemble non fini de balises • L’utilisateur peut créer de nouvelles balises Définition de grammaires : XML est un Meta Langage • MathML, NewsML, XMI, Doc, Slides, … Pas un langage de balise, mais un langage de langage • Exemple de Metalangage Séparation de la forme et du fond • Un document XML peut être constitué de deux entités (le fond et la forme) Technologie importante de la standardisation 19 An Introduction to distributed applications and ecommerce 19
Principes, suite
• • • Standard d’échange de données et documents structurés • « lingua franca » des applications inter entreprises Méta-données: • DTD (Définition de Type de Document) • Très simple • Schéma • Riche, adapté aux données du commerce électronique Caractéristiques • • • • • accessibles par Internet validation automatique de tout message Arbitrage automatique Dictionnaires de méta-données Constructions de nouveau, adaptation de DTD existantes aisées 20 An Introduction to distributed applications and ecommerce 20
Grammaire
Deux façons de définir une grammaire XML :
DTD • Langage de définition de grammaire XML • • Largement utilisé Expression faible (type, structure) XML Schéma • Langage XML de définition de grammaire XML • • De + en + utilisé Expression puissante (type, structure, héritage) Un document XML est dit valide lorsqu’il est conforme à une grammaire 21 An Introduction to distributed applications and ecommerce 21
Espaces de noms
Mécanismes permettant de partitionner les balises XML (permet d’avoir deux fois le même nom de balise) Un espace de nom est défini dans n’importe quelle balise par l’attribut xmlns et par une URI.
Dans un document XML, un espace de noms est identifié par un nom logique, les balises appartenant à cet espace doivent alors être préfixée par ce nom logique.
Ex :
XML est un succès !
Standard W3C La syntaxe XML ne contient que peu de mot clef: Simplicité XML est indépendant des plates-formes: Portabilité XML est un méta-langage, il est possible de créer ses propres balises: Extensibilité Outils disponibles (et gratuits) Largement utilisé pour les échanges inter-applications 23 An Introduction to distributed applications and ecommerce 23
SOAP
Simple Object Access Protocol Résumé • SOAP est un protocole léger pour s’échanger de l’information dans un environnement distribué • • C’est un protocole XML en trois parts: • Une enveloppe décrivant le message et comment le traiter • • Des règles d’encodage des types de données Une convention pour représenter les appels de procédure à distance SOAP peut être untiliser en combinaison avec d’autres protocoles (SMTP, FTP, etc…) mais HTTP est le plus utilisé 24 An Introduction to distributed applications and ecommerce 24
Exemple de message
StockQuote est un ensemble de services qui permet d’obtenir des informations sur des actions boursières.
• GetLastTradePrice est le service qui permet de connaître la dernière valeur d’une action.
Cet exemple présente un échange de messages entre un client qui veut savoir la valeur de l’action « DIS ».
25 An Introduction to distributed applications and ecommerce 25
Exemple de message
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" Propre au portage sur HTTP
Exemple de message
HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn Propre au portage sur HTTP
Analyse de l’exemple
Des Balises Utilisateur • GetLastTradePriceResponse • • Symbol Price Un Namespace Utilisateur • xmlns:m="Some-URI" Des Balises SOAP • Enveloppe • Body Un Namespace SOAP • xmlns:SOAP ENV="http://schemas.xmlsoap.org/soap/envelope/" Des informations dans la partie HTTP 28 An Introduction to distributed applications and ecommerce 28
Encoding
Encodage
Un message SOAP contient des données typées. Il faut donc définir un moyen d’encoder ces données.
Vocabulaire SOAP : • Value (valeur d’une donnée) • Simple value (string, integers,etc) • Compound value (array, struct, …) • Type (d’une value) • Simple Type • Compound Type 29 An Introduction to distributed applications and ecommerce 29
Encoding
Encodage
L’encodage c’est la représentation de valeurs sous forme XML.
Le décodage c’est la construction de valeurs à partir d’XML L’XML qui représente les valeurs a une structure qui dépend du type des valeurs
Il faut donc définir le type • Soit mécanisme définit par l’utilisateur • Soit utilisation d’XML Schéma (préconisé) 30 An Introduction to distributed applications and ecommerce 30
Encoding
Simple Types
Type (XML Schema)
Type XML Schema
Valeurs
Construction de Type XML Schema
31 An Introduction to distributed applications and ecommerce 31
Encoding
Simple Types
La définition d’un XML Schéma pour tout type peut être fastidieux SOAP a défini deux façons de préciser le type d’une valeur sans définir le Schéma XML: •
Encoding
Compound Types
Une structure est un type composé dans lequel les membres sont accessibles uniquement grâce à des noms différents.
Un tableau est un type composé dans lequel les membres sont accessibles uniquement grâce à leur position.
33 An Introduction to distributed applications and ecommerce 33
Encoding
Struct
Type (XML Schéma)
Valeur
Encoding
Array
Le type est directement précisé grâce aux balises SOAP:
Convention
SOAP avec HTTP
SOAP peut être facilement porté sur Http.
• Convient au mode Request/Response de Http • • • Le message SOAP est mis dans une requête POST avec un content-type text/xml Définition d’un header http : SOAPAction Utilisation des codes http (2xx, 4xx, 5xx) 36 An Introduction to distributed applications and ecommerce 36
Convention
SOAP avec HTTP
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI"
Convention
SOAP & RPC
Pour faire un RPC SOAP, il faut: • L’URI de l’objet cible • Le nom de la méthode • Les paramètres de la méthode SOAP s’appuie sur le protocole d’en dessous (http) pour l’URI de l’objet.
Le nom de la méthode et les paramètres sont encodés dans le message SOAP sous forme de structure.
38 An Introduction to distributed applications and ecommerce 38
WSDL, Web Services Description Language
Une description WSDL : 1.
Décrit le type d’un service web (méthodes, types des paramètres) Cette description peut être comparée à la description IDL CORBA, elle peut servir à générer automatiquement des amorces.
2.
Décrit les aspects techniques d’implantation d’un service web (quel est le protocole utilisé, quel est le l’adresse du service) Cette description sert à se connecter concrètement à un service web.
39 An Introduction to distributed applications and ecommerce 39
Balises
Une description WSDL est un document XML qui commence par la balise definition et contient les balises suivantes : • types: cette balise décrit les types utilisés • • • • message: cette balise décrit la structure d’un message échangé portType: cette balise décrit un ensemble d’opérations (interface d’un service web) • operation: cette balise décrit une opération réalisée par le service web. Une opération reçoit des messages et envois des messages.
binding: cette balise décrit le lien entre un protocole (http) et un portType.
service: cette balise décrit un service comme un ensemble de ports.
• port: cette balise décrit un port au travers duquel il est possible d’accéder à un ensemble d’opérations. Un port référence un Binding 40 An Introduction to distributed applications and ecommerce 40
message
Les messages sont envoyés entre deux interlocuteurs (ex: une opération reçoit des message et envoie des messages.
Un message est composé de plusieurs part Deux façons de définir des part • Soit une part est un élément de type simple • Soit une part est un élément XML dont le type est défini dans un XML Schema 41 An Introduction to distributed applications and ecommerce 41
portType
Un portType permet d’identifier (nommer) de manière abstraite un ensemble d’opérations.
operation
WSDL définit 4 types d’opération : • • • • One-Way : lorsque les opérations reçoivent des messages mais n’en n’envoient pas Request-response : lorsque les opérations reçoivent des messages puis renvoient des messages Solicit-response : lorsque les opérations envoient des messages puis en reçoivent Notification : lorsque les opérations envoient des messages mais n’en reçoivent pas 43 An Introduction to distributed applications and ecommerce 43
operation
: Quelque soit le type d’opération la définition est sensiblement la même Une opération : • Reçoit des messages :
44 An Introduction to distributed applications and ecommerce 44
binding
WSDL permet de lier une description abstraite (portType) à un protocole.
Chacune des opérations d’un portType pourra être liée de manière différente.
Le protocole SOAP est un des protocole qui peut être utilisé. D’autres binding sont standardisés par WSDL : HTTP et MIME.
45 An Introduction to distributed applications and ecommerce 45
service
Un service est un ensemble de ports Un port a un portType Dans le cadre de SOAP, un port à une adresse (qui correspond à l’adresse http)
UDDI
Signifie: Universal Description Discovery and Integration
Les services Web sont utiles seulement si les utilisateurs potentiels peuvent trouver de l’information suffisante pour les exécuter Le focus de UDDI est de construire des dictionnaires • Des organisations, des entreprises fournisssants un service • • Des services web disponibles; Des interfaces techniques qui peuvent être utilisés pour accéder à ces services 47 An Introduction to distributed applications and ecommerce 47
Rôles
Un référentiel UDDI joue 3 rôles : • Pages blanches : le référentiel comporte des informations sur les fournisseurs de services.
• Pages Jaunes : le référentiel comporte des critères de catégorisation de services.
• Pages vertes : le référentiel comporte des informations techniques (WSDL).
Les services d’un référentiel UDDI sont des Web Services !
48 An Introduction to distributed applications and ecommerce 48
Exemple
Le référentiel UDDI de microsoft est accessible à http://uddi.microsoft.com
Il est possible de parcourir ce référentiel à l’aide d’un navigateur pour :
• Rechercher un service.
• Ajouter un service au référentiel.
49 An Introduction to distributed applications and ecommerce 49
Exemple : search
Façons de rechercher un service.
Nous allons rechercher les Web Services de la société Amazon.
50 An Introduction to distributed applications and ecommerce 50
Exemple : search
AmazonBusiness propose un Web Service Ce Web Service s’appelle GetBookPrice
51 An Introduction to distributed applications and ecommerce 51
Référentiels
Type • Public : • Microsoft : uddi.microsoft.com
• • • IBM : www.ibm.com/services/uddi HP : uddi.hp.com
SAP : udditest.sap.com
• Privé ou d’entreprise Accès • Défini en WSDL • JAXR définit une API pour naviguer dans un référentiel UDDI 52 An Introduction to distributed applications and ecommerce 52
Dictionnaires de DTD et de schémas
Les grammaires et syntaxes • Contiennent en fait la sémantique d’affaire!
Rosettanet, • • industrie électronique http://www.rosettanet.org/ Dictionnaire de processus d ’affaire • Universel Business Langage • • • • OASIS, Voir www.oasis.org
Voir http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ubl Initiative internationale de remplacement de l’EDI • Voir www.ebXML.org
Biztalk • Voir http://www.biztalk.org/ 53 An Introduction to distributed applications and ecommerce 53
Les dictionnaires de DTD et de schémas
Les références aux DTDs et aux schémas peuvent être maintenues • par des caches • • par des liens de relocalisations par des alias locaux Les DTDs, les schémas et leurs composantes peuvent être fournis localement, par secteur vertical d ’activité, par un organisme national ou par un organisme international.
54 An Introduction to distributed applications and ecommerce 54
Composantes d’affaires réutilisables
• • • • But du modèle ebXML Ces collections de Schema, leurs composantes de traitement, et les présentations HTML peuvent former une librairie.
Cette librairie devient les composantes réutilisables du commerce électroniques Un dictionnaire de composantes réutilisables • modules Schema+ traitements • du standard internationnal à la compagnie • par secteur d’activités 55
Adaptation pour un secteur d ’entreprises ou une entreprise
• • • • Tel quel Étendre Renommer Recomposer 56 An Introduction to distributed applications and ecommerce 56
Question
Quel est la place d’UDDI dans les Web Services ?
Comparer les référentiels UDDI avec les moteurs de recherche style Yahoo et Google ?
Quel est l’intérêt des référentiels UDDI d’entreprise ?
57 An Introduction to distributed applications and ecommerce 57
Une implementation en Java
Axis • Version 1.0
Implantation OpenSource de SOAP1.1
• Java Communauté Apache • Apache, Tomcat, Xerces, Struts, Cocoon Support Server • Servlet qui reçoit et envoie des messages SOAP HTTP (pont SMTP) Support Client • API pour envoyer des messages SOAP sur HTTP et SMTP 58 An Introduction to distributed applications and ecommerce 58
Servlet (Notion)
Une Servlet est un objet Java qui fonctionne en mode requête/reponse Une Servlet http est une serlvet qui est capable de traiter des requête http et qui est capable de renvoyer des réponses http.
Un moteur (container) de Servlet est une application qui reçoit des requêtes http et qui les transmet aux Servlet • Tomcat (couplage avec Apache), Websphere (couplage avec IBM http Server), Weblogic … 59 An Introduction to distributed applications and ecommerce 59
Architecture (Serveur)
Axis fournit une Servlet (AxisServlet) qui reçoit des message SOAP sur http et qui transforme l’appel en un appel de méthode classique Java Développer un Web Service revient alors à développer un objet Java et à enregistrer ses méthodes auprès de la Servlet AxisServlet.
Les clients envoient alors leurs messages SOAP sur http à AxisServlet.
Pour SMTP les clients envoient leurs messages par mail à un démon. Le démon reçoit ces messages et les renvoie sur http à AxisServlet.
60 An Introduction to distributed applications and ecommerce 60
Architecture (Serveur)
La Servlet AxisServlet reçoit et renvoie les messages SOAP et transmet aux objets Java correspondant Les Objets Java effectuent les services. Ils sont des objets Java classiques.
SOAP/HTTP AxisServlet Moteur de Servlet Le client envoie des messages SOAP/HTTP
JVM
Objets Java et Servlet sont dans la même JVM (pas de répartition).
61 An Introduction to distributed applications and ecommerce 61
Conclusion
Web Service : Un nouveau Buzz Word ?
Avantages : • Des standards simples (SOAP, WSDL, UDDI) • • • Des outils (éditeurs et moteurs) Inconvénients : • Typage (pas de consensus) • Performance • Multi Protocole / Multi OS / Multi Langage Paradigme de Service Jeunesse (Sécurité, Transaction,…) 62 An Introduction to distributed applications and ecommerce 62
Topologie des services web
Orchestration "Pages jaunes" Sémantique Scénarios, processus métier Registres, annuaires BPEL Core cmpts ebXML UDDI LDAP Oasis UNCEFACT Oasis WS-I OMG ISO W3C W3C Service Définitions WSDL Sécurité SAML XACML Oasis Communication Traitement distribué Échange de messages SOAP HTTP, SMTP W3C IETF Routage TCPIP IETF 63 An Introduction to distributed applications and ecommerce 63
Références
Web Services, Xavier Blanc • www.librecours.org/documents/2/202.ppt SOAP • http://www.w3.org/TR/SOAP/ WSDL • http://www.w3.org/TR/2001/NOTE-wsdl-20010315 UDDI • http://www.uddi.org/ Apache Axis • http://ws.apache.org/axis/index.html
64 An Introduction to distributed applications and ecommerce 64
EDI
Références Introduction à l'EDI et l'UN/EDIFACT • http://www.obcebdbh.be/siprocom/Unedifact/introedifact/FINT ROTOT.html
Introduction to EDI • http://home.hkstar.com/~alanchan/papers/edi/ Roger Clarke's Introduction to EDI • http://www.anu.edu.au/people/Roger.Clarke/EC/EDIIntro.html
INTRODUCTION - Introduction to EDI - A Primer • http://www.support.geis.com/edi/edipindx.html
Center for Research in Electronic Commerce, UT Austin • http://cism.bus.utexas.edu/ 65 An Introduction to distributed applications and ecommerce 65
Variantes
X.12: Américain EDIFACT: reste du monde
66 An Introduction to distributed applications and ecommerce 66
Un acquis historique important
Première modélisation acceptée internationalement • Flux inter-entreprise centré autour des messages d’affaires • Plusieurs centaines de type de messages et de champs Plus de 20 ans d’expérience Dans les faits, beaucoup de variantes par secteurs et industries • Définition de ces variantes par une convention « pré-établie » 67 An Introduction to distributed applications and ecommerce 67
Secteurs utilisateurs de EDI
• vente au détail; transport international; paiement bancaires; etc. 68 An Introduction to distributed applications and ecommerce 68
Structure des messages et des données
Messages en format fixe Les normes sont externes Ces normes définissent la syntaxe et la sémantique qui seront « programmés » dans les applications EDI Ces normes sont longues à comprendre, 2700 pages, Une fois les applications installées chez les utilisateurs, tout est fixé Évolution très lente 69 An Introduction to distributed applications and ecommerce 69
Exemples de messages ou « Transactions Sets »
• • • Les informations de base • L’information sur les intervenants • La demande d’information produit • L’Information produit Les messages commerciaux • L’appel d’offres • • • • La réponse à l’appel d’offres La commande (le 850 en X.12) La réponse à la commande La modification de la commande Les messages de transport • L’ordre de prestation logistique • L’instruction de livraison • • L’avis d’expédition L’avis de réception de livraison 70 An Introduction to distributed applications and ecommerce 70
Structure d’un message EDIFACT
Interchange • Un ou plusieurs messages Messages • Entête, section de détail, section résumée Segments et groupe de segments • Début: code de 3 lettres • Fin: séparateurs ’ Données • Séparées par des + • Les données sont soit des données composites ou des données élémentaires Les données élémentaires à l’intérieur des données composites • Séparées par des : Séparateurs • + : ’ 71 An Introduction to distributed applications and ecommerce 71
Exemple: Buyer Information
Voir http://www.xml-edifact.org/EX/ En EDIFACT, un segment « Nom et ADresse » • NAD+BY+21448::86++Missing Link:Versandbuchhandlung+Westerstrasse. 114-116+Bremen++28199+DE En XML
72 An Introduction to distributed applications and ecommerce 72
Line Item En EDIFACT • UNA:+.? 'LIN+16'PIA+5+1861081383:IB'IMD+F+BPU+:::CASS'QTY+21:3'PRI+AAA:12.5:SR:DPR::LBR‘ En XML
73 An Introduction to distributed applications and ecommerce 73