An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés
An Introduction to distributed applications and ecommerce 2 2 Le modèle sémantique du e- commerce est complexe
An Introduction to distributed applications and ecommerce 3 3 Plan l Principes l XML (Notions) l SOAP l WSDL l UDDI l Axis l Conclusion
An Introduction to distributed applications and ecommerce 4 4 Définition l Les Web Services sont des services offerts via le web. l Par exemple, un client demande le prix dun article en envoyant un message sur le web. Ce message contient la référence de larticle. Le Web Service va recevoir la référence, effectuer le traitement du service et renvoyer le prix au client via un autre message.
An Introduction to distributed applications and ecommerce 5 5 Un système distribué simple Broker (UDDI) RequesterProvider 3-Bind (RPC-SOAP) 2-Find (UDDI)1-Publish (UDDI)
An Introduction to distributed applications and ecommerce 6 6 La pile simplifiée des Services Web Application basée Services Web Transport HTTP, SMTP Enveloppe SOAP, XP, ebXML TR&P … Découverte UDDI, WSDL Syntaxe et sémantique des documents daffaires
An Introduction to distributed applications and ecommerce 7 7 Pourquoi un nouveau middleware?
An Introduction to distributed applications and ecommerce 8 8 Limitations des middleware Passage à large échelle : Web l Protocoles hétérogènes IIOP, RMI, DCOM Firewall l Pas douverture des services Notion de moteur de recherche inexistante l Trop de contraintes sur le client ! Doit posséder les souches Difficulté de construire dynamiquement
An Introduction to distributed applications and ecommerce 9 9 Limitations des middleware Inconvénients Intrinsèques l Complexité CORBA : IDL, Mapping, … EJB : Container, JNDI, … l Pérennité : remise en question CORBA, EJB,.Net, … l Prix Plates-formes Compétences
An Introduction to distributed applications and ecommerce Solutions existantes l Modification du Protocole RMI / IIOP l Passerelles CORBA vers DCOM l Portage dapplications existantes difficile l Solutions non standards
An Introduction to distributed applications and ecommerce Approche Envisagée l Un nouveau Protocole : SOAP Basé sur XML Portabilité, Hétérogénéité Porté sur des protocoles large échelle existants HTTP, SMTP, … l Paradigme orienté service : WSDL Définition de services offerts (en XML) l Découverte automatique des services (dynamicité) : UDDI Référentiel de Web Service (Pages Jaunes, Vertes, Blanches)
An Introduction to distributed applications and ecommerce Ex : ModFact SOAP / HTTP IIOP SOAP / SMTP Les clients doivent savoir envoyer des messages SOAP (sur HTTP ou SMTP) Le serveur doit savoir recevoir des messages SOAP (sur HTTP ou SMTP). Il effectue les traitements correspondant (ici délégation vers CORBA). Application existante classique (ici CORBA) UDDI Exportation du Web Service dans le référentiel UDDI Utilisation de UDDI pour construire dynamiquement des client
An Introduction to distributed applications and ecommerce SOAP l Protocole déchange de messages (client / serveur) l Basé entièrement sur XML l Standard W3C (Initiative IBM et Microsoft) Actuellement SOAP 1.1 l Concepts Message = Enveloppe ( Header + Body ) l Extensibilité Porté sur HTTP, SMTP, …
An Introduction to distributed applications and ecommerce WSDL l Langage de définition de Web Services l Basé entièrement sur XML l Standard W3C (Initiative IBM et Microsoft) Actuellement WSDL 1.1 l Définition de linterface, de lURL et du port du Web Service. l Utilise le système de typage de XML Schéma
An Introduction to distributed applications and ecommerce UDDI l Référentiel de définitions Web Service l Permet de construire dynamiquement des clients l Recommandation OASIS l Référentiel défini lui-même en WSDL l Référentiel Public / Privé
An Introduction to distributed applications and ecommerce XML l Notions de bases pour les services Web
An Introduction to distributed applications and ecommerce Exemple de document XML le super livre 1 titre du chapitre 1 blabla blabla …
An Introduction to distributed applications and ecommerce But des concepteurs de XML l Facile à utiliser sur lInternet l Capable de supporter un grand nombre dapplications l Les processeurs XML doivent être facile à développer l Les documents XML doivent être facile à comprendre
An Introduction to distributed applications and ecommerce Principes l Ensemble non fini de balises Lutilisateur peut créer de nouvelles balises l Définition de grammaires : XML est un Meta- Langage MathML, NewsML, XMI, Doc, Slides, … l Pas un langage de balise, mais un langage de langage Exemple de Metalangage l Séparation de la forme et du fond Un document XML peut être constitué de deux entités (le fond et la forme) l Technologie importante de la standardisation
An Introduction to distributed applications and ecommerce 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
An Introduction to distributed applications and ecommerce Grammaire Deux façons de définir une grammaire XML : l DTD Langage de définition de grammaire XML Largement utilisé Expression faible (type, structure) l 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 lorsquil est conforme à une grammaire
An Introduction to distributed applications and ecommerce Espaces de noms l Mécanismes permettant de partitionner les balises XML (permet davoir deux fois le même nom de balise) l Un espace de nom est défini dans nimporte quelle balise par lattribut xmlns et par une URI. l 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. l Ex : <meta:body xmlns:meta="
An Introduction to distributed applications and ecommerce XML est un succès ! l Standard W3C l La syntaxe XML ne contient que peu de mot clef: Simplicité l XML est indépendant des plates-formes: Portabilité l XML est un méta-langage, il est possible de créer ses propres balises: Extensibilité l Outils disponibles (et gratuits) Largement utilisé pour les échanges inter-applications
An Introduction to distributed applications and ecommerce SOAP l Simple Object Access Protocol l Résumé SOAP est un protocole léger pour séchanger de linformation dans un environnement distribué Cest un protocole XML en trois parts: Une enveloppe décrivant le message et comment le traiter Des règles dencodage des types de données Une convention pour représenter les appels de procédure à distance SOAP peut être untiliser en combinaison avec dautres protocoles (SMTP, FTP, etc…) mais HTTP est le plus utilisé
An Introduction to distributed applications and ecommerce Exemple de message l StockQuote est un ensemble de services qui permet dobtenir des informations sur des actions boursières. GetLastTradePrice est le service qui permet de connaître la dernière valeur dune action. l Cet exemple présente un échange de messages entre un client qui veut savoir la valeur de laction « DIS ».
An Introduction to distributed applications and ecommerce Exemple de message POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" DIS Propre au portage sur HTTP
An Introduction to distributed applications and ecommerce Exemple de message HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn 34.5 Propre au portage sur HTTP
An Introduction to distributed applications and ecommerce Analyse de lexemple l Des Balises Utilisateur GetLastTradePriceResponse Symbol Price l Un Namespace Utilisateur xmlns:m="Some-URI" l Des Balises SOAP Enveloppe Body l Un Namespace SOAP xmlns:SOAP- ENV=" l Des informations dans la partie HTTP
An Introduction to distributed applications and ecommerce Encodage l Un message SOAP contient des données typées. Il faut donc définir un moyen dencoder ces données. l Vocabulaire SOAP : Value (valeur dune donnée) Simple value (string, integers,etc) Compound value (array, struct, …) Type (dune value) Simple Type Compound Type Encoding
An Introduction to distributed applications and ecommerce Encodage l Lencodage cest la représentation de valeurs sous forme XML. l Le décodage cest la construction de valeurs à partir dXML l LXML qui représente les valeurs a une structure qui dépend du type des valeurs l Il faut donc définir le type Soit mécanisme définit par lutilisateur Soit utilisation dXML Schéma (préconisé) Encoding
An Introduction to distributed applications and ecommerce Simple Types l Type (XML Schema) l Valeurs 45 Blue Type XML Schema Construction de Type XML Schema Encoding
An Introduction to distributed applications and ecommerce Simple Types l La définition dun XML Schéma pour tout type peut être fastidieux l SOAP a défini deux façons de préciser le type dune valeur sans définir le Schéma XML: Encoding
An Introduction to distributed applications and ecommerce Compound Types l Une structure est un type composé dans lequel les membres sont accessibles uniquement grâce à des noms différents. l Un tableau est un type composé dans lequel les membres sont accessibles uniquement grâce à leur position. Encoding
An Introduction to distributed applications and ecommerce Struct l Type (XML Schéma) l Valeur Xavier 28 Encoding
An Introduction to distributed applications and ecommerce Array l Le type est directement précisé grâce aux balises SOAP: 3 4 Encoding
An Introduction to distributed applications and ecommerce SOAP avec HTTP l 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 dun header http : SOAPAction Utilisation des codes http (2xx, 4xx, 5xx) Convention
An Introduction to distributed applications and ecommerce SOAP avec HTTP POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" DIS Convention
An Introduction to distributed applications and ecommerce SOAP & RPC l Pour faire un RPC SOAP, il faut: LURI de lobjet cible Le nom de la méthode Les paramètres de la méthode l SOAP sappuie sur le protocole den dessous (http) pour lURI de lobjet. l Le nom de la méthode et les paramètres sont encodés dans le message SOAP sous forme de structure. Convention
An Introduction to distributed applications and ecommerce WSDL, Web Services Description Language Une description WSDL : 1.Décrit le type dun 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 dimplantation dun service web (quel est le protocole utilisé, quel est le ladresse du service) Cette description sert à se connecter concrètement à un service web.
An Introduction to distributed applications and ecommerce Balises l 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 dun message échangé portType: cette balise décrit un ensemble dopérations (interface dun 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 daccéder à un ensemble dopérations. Un port référence un Binding
An Introduction to distributed applications and ecommerce message l Les messages sont envoyés entre deux interlocuteurs (ex: une opération reçoit des message et envoie des messages. l Un message est composé de plusieurs part l 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
An Introduction to distributed applications and ecommerce portType l Un portType permet didentifier (nommer) de manière abstraite un ensemble dopérations. … …
An Introduction to distributed applications and ecommerce operation l WSDL définit 4 types dopération : One-Way : lorsque les opérations reçoivent des messages mais nen nenvoient 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 nen reçoivent pas
An Introduction to distributed applications and ecommerce operation l Quelque soit le type dopération la définition est sensiblement la même : l Une opération : Reçoit des messages : Envoie des messages : ou l La présence et lordre des input/outputs/fault dépendent du type de lopération.
An Introduction to distributed applications and ecommerce binding l WSDL permet de lier une description abstraite (portType) à un protocole. l Chacune des opérations dun portType pourra être liée de manière différente. l Le protocole SOAP est un des protocole qui peut être utilisé. l Dautres binding sont standardisés par WSDL : HTTP et MIME.
An Introduction to distributed applications and ecommerce service l Un service est un ensemble de ports l Un port a un portType l Dans le cadre de SOAP, un port à une adresse (qui correspond à ladresse http)
An Introduction to distributed applications and ecommerce UDDI l Signifie: Universal Description Discovery and Integration l Les services Web sont utiles seulement si les utilisateurs potentiels peuvent trouver de linformation suffisante pour les exécuter l 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
An Introduction to distributed applications and ecommerce Rôles l 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). l Les services dun référentiel UDDI sont des Web Services !
An Introduction to distributed applications and ecommerce Exemple l Le référentiel UDDI de microsoft est accessible à l Il est possible de parcourir ce référentiel à laide dun navigateur pour : Rechercher un service. Ajouter un service au référentiel.
An Introduction to distributed applications and ecommerce Exemple : search Façons de rechercher un service. Nous allons rechercher les Web Services de la société Amazon.
An Introduction to distributed applications and ecommerce Exemple : search AmazonBusiness propose un Web Service Ce Web Service sappelle GetBookPrice
An Introduction to distributed applications and ecommerce Référentiels l Type Public : Microsoft : uddi.microsoft.com IBM : HP : uddi.hp.com SAP : udditest.sap.com Privé ou dentreprise l Accès Défini en WSDL JAXR définit une API pour naviguer dans un référentiel UDDI
An Introduction to distributed applications and ecommerce Dictionnaires de DTD et de schémas l Les grammaires et syntaxes Contiennent en fait la sémantique daffaire! l Rosettanet, industrie électronique l Dictionnaire de processus d affaire Universel Business Langage OASIS, Voir Voir Initiative internationale de remplacement de lEDI Voir Biztalk Voir
An Introduction to distributed applications and ecommerce Les dictionnaires de DTD et de schémas l 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 l 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.
An Introduction to distributed applications and ecommerce Composantes daffaires 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 dactivités par extension
An Introduction to distributed applications and ecommerce Adaptation pour un secteur d entreprises ou une entreprise Tel quel Étendre Renommer Recomposer
An Introduction to distributed applications and ecommerce Question l Quel est la place dUDDI dans les Web Services ? l Comparer les référentiels UDDI avec les moteurs de recherche style Yahoo et Google ? l Quel est lintérêt des référentiels UDDI dentreprise ?
An Introduction to distributed applications and ecommerce Une implementation en Java l Axis Version 1.0 l Implantation OpenSource de SOAP1.1 Java l Communauté Apache Apache, Tomcat, Xerces, Struts, Cocoon l Support Server Servlet qui reçoit et envoie des messages SOAP HTTP (pont SMTP) l Support Client API pour envoyer des messages SOAP sur HTTP et SMTP
An Introduction to distributed applications and ecommerce Servlet (Notion) l Une Servlet est un objet Java qui fonctionne en mode requête/reponse l 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. l 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 …
An Introduction to distributed applications and ecommerce Architecture (Serveur) l Axis fournit une Servlet (AxisServlet) qui reçoit des message SOAP sur http et qui transforme lappel en un appel de méthode classique Java l Développer un Web Service revient alors à développer un objet Java et à enregistrer ses méthodes auprès de la Servlet AxisServlet. l Les clients envoient alors leurs messages SOAP sur http à AxisServlet. l 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.
An Introduction to distributed applications and ecommerce Architecture (Serveur) JVM Moteur de Servlet AxisServlet 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. Objets Java et Servlet sont dans la même JVM (pas de répartition). SOAP/HTTP Le client envoie des messages SOAP/HTTP
An Introduction to distributed applications and ecommerce Conclusion l Web Service : Un nouveau Buzz Word ? l Avantages : Des standards simples (SOAP, WSDL, UDDI) Multi Protocole / Multi OS / Multi Langage Paradigme de Service Des outils (éditeurs et moteurs) l Inconvénients : Typage (pas de consensus) Performance Jeunesse (Sécurité, Transaction,…)
An Introduction to distributed applications and ecommerce Topologie des services web Orchestration Scénarios, processus métier BPEL Core cmpts ebXML Oasis UNCEFACT "Pages jaunes" Registres, annuaires UDDI LDAP Oasis WS-I OMG SémantiqueDictionnaires TDED Namespace ISO W3C ServiceDéfinitionsWSDLW3C Communication SécuritéSAML XACMLOasis Traitement distribué SOAPW3C Échange de messages HTTP, SMTPIETF RoutageTCPIPIETF
An Introduction to distributed applications and ecommerce Références l Web Services, Xavier Blanc l SOAP l WSDL l UDDI l Apache Axis
An Introduction to distributed applications and ecommerce EDI l Références l Introduction à l'EDI et l'UN/EDIFACT Introduction à l'EDI et l'UN/EDIFACT TROTOT.html l Introduction to EDI Introduction to EDI l Roger Clarke's Introduction to EDI Roger Clarke's Introduction to EDI l INTRODUCTION - Introduction to EDI - A Primer INTRODUCTION - Introduction to EDI - A Primer l Center for Research in Electronic Commerce, UT Austin Center for Research in Electronic Commerce, UT Austin
An Introduction to distributed applications and ecommerce Variantes l X.12: Américain l EDIFACT: reste du monde
An Introduction to distributed applications and ecommerce Un acquis historique important l Première modélisation acceptée internationalement Flux inter-entreprise centré autour des messages daffaires Plusieurs centaines de type de messages et de champs l Plus de 20 ans dexpérience l Dans les faits, beaucoup de variantes par secteurs et industries Définition de ces variantes par une convention « pré-établie »
An Introduction to distributed applications and ecommerce Secteurs utilisateurs de EDI vente au détail; transport international; paiement bancaires; etc.
An Introduction to distributed applications and ecommerce Structure des messages et des données l Messages en format fixe l Les normes sont externes l Ces normes définissent la syntaxe et la sémantique qui seront « programmés » dans les applications EDI l Ces normes sont longues à comprendre, 2700 pages, l Une fois les applications installées chez les utilisateurs, tout est fixé l Évolution très lente
An Introduction to distributed applications and ecommerce Exemples de messages ou « Transactions Sets » Les informations de base Linformation sur les intervenants La demande dinformation produit LInformation produit Les messages commerciaux Lappel doffres La réponse à lappel doffres La commande (le 850 en X.12) La réponse à la commande La modification de la commande Les messages de transport Lordre de prestation logistique Linstruction de livraison Lavis dexpédition Lavis de réception de livraison
An Introduction to distributed applications and ecommerce Structure dun message EDIFACT l Interchange Un ou plusieurs messages l Messages Entête, section de détail, section résumée l Segments et groupe de segments Début: code de 3 lettres Fin: séparateurs l Données Séparées par des + Les données sont soit des données composites ou des données élémentaires l Les données élémentaires à lintérieur des données composites Séparées par des : l Séparateurs + :
An Introduction to distributed applications and ecommerce Exemple: Buyer Information l Voir l En EDIFACT, un segment « Nom et ADresse » NAD+BY+21448::86++Missing Link:Versandbuchhandlung+Westerstrasse Bremen DE l En XML Buyer Assigned by party originating the message Missing Link Versandbuchhandlung Westerstrasse Bremen DE
An Introduction to distributed applications and ecommerce Line Item l En EDIFACT UNA:+.? 'LIN+16'PIA :IB'IMD+F+BPU+:::CASS'QTY+21:3'PRI+AAA:12.5:SR:DPR::LBR l En XML 16 Product identification ISBN (International Standard Book Number) l Ordered quantity 3