Les services Web, XML et les places de marchés

73
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés

description

Les services Web, XML et les places de marchés. Le modèle sémantique du e-commerce est complexe. Plan. Principes XML (Notions) SOAP WSDL UDDI Axis Conclusion. Définition. Les Web Services sont des services offerts via le web. - PowerPoint PPT Presentation

Transcript of Les services Web, XML et les places de marchés

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

Principes XML (Notions) SOAP WSDL UDDI Axis Conclusion

An Introduction to distributed applications and ecommerce 4

4

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.

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

TransportHTTP, SMTP

EnveloppeSOAP, XP, ebXML TR&P …

co

uv

ert

eU

DD

I, W

SD

L Syntaxe et sémantique

des documents d’affaires

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

An Introduction to distributed applications and ecommerce 9

9

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

An Introduction to distributed applications and ecommerce 10

10

Solutions existantes

Modification du Protocole• RMI / IIOP

Passerelles• CORBA vers DCOM

Portage d’applications existantes difficile

Solutions non standards

An Introduction to distributed applications and ecommerce 11

11

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)

An Introduction to distributed applications and ecommerce 12

12

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)

UDDIExportation du Web Service dans le référentiel UDDI

Utilisation de UDDI pour construire dynamiquement des client

An Introduction to distributed applications and ecommerce 13

13

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, …

An Introduction to distributed applications and ecommerce 14

14

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

An Introduction to distributed applications and ecommerce 15

15

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é

An Introduction to distributed applications and ecommerce 16

16

XML

Notions de bases pour les services Web

An Introduction to distributed applications and ecommerce 17

17

Exemple de document XML

<livre><titre> le super livre </titre><chapitre>

<numero> 1 </numero><titre> titre du chapitre 1 </titre><contenu> blabla blabla

</contenu></chapitre><chapitre>

…</chapitre>

</livre>

An Introduction to distributed applications and ecommerce 18

18

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

An Introduction to distributed applications and ecommerce 19

19

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

An Introduction to distributed applications and ecommerce 20

20

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 21

21

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 estconforme à une grammaire

An Introduction to distributed applications and ecommerce 22

22

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 :<meta:body

xmlns:meta="http://meta.lip6.fr/meta/"

An Introduction to distributed applications and ecommerce 23

23

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

An Introduction to distributed applications and ecommerce 24

24

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é

An Introduction to distributed applications and ecommerce 25

25

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

An Introduction to distributed applications and ecommerce 26

26

Exemple de message

POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "Some-URI"

<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body>    <m:GetLastTradePrice xmlns:m="Some-URI">        <symbol>DIS</symbol>    </m:GetLastTradePrice></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Propre au portage sur HTTP

An Introduction to distributed applications and ecommerce 27

27

Exemple de message

HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn

<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><SOAP-ENV:Body>    <m:GetLastTradePriceResponse xmlns:m="Some-URI">        <Price>34.5</Price>    </m:GetLastTradePriceResponse></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Propre au portage sur HTTP

An Introduction to distributed applications and ecommerce 28

28

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

An Introduction to distributed applications and ecommerce 29

29

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

Encoding

An Introduction to distributed applications and ecommerce 30

30

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é)

Encoding

An Introduction to distributed applications and ecommerce 31

31

Simple Types

Type (XML Schema)<element name="age" type="int"/><element name="color">

<simpleType base="xsd:string"><enumeration value="Green"/><enumeration value="Blue"/>

</simpleType></element> Valeurs<age>45</age><color>Blue</color>

Type XML Schema

Construction de Type XML Schema

Encoding

An Introduction to distributed applications and ecommerce 32

32

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:• <SOAP-ENC:int>45</SOAP-ENC:int>• <cost xsi:type="xsd:float">29.5</cost>

Encoding

An Introduction to distributed applications and ecommerce 33

33

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.

Encoding

An Introduction to distributed applications and ecommerce 34

34

Struct

Type (XML Schéma)<element name="Person"><complexType>

<element name="name" type="xsd:string"/><element name="age" type="xsd:int"/>

</complexType><element> Valeur<Person>

<name>Xavier</name><age>28</age>

</Person>

Encoding

An Introduction to distributed applications and ecommerce 35

35

Array

Le type est directement précisé grâce aux balises SOAP:

<myFavoriteNumbers SOAP-ENC:arrayType="xsd:int[2] "><SOAP-ENC:int>3</SOAP-ENC:int><SOAP-ENC:int>4</SOAP-ENC:int>

</myFavoriteNumbers>

Encoding

An Introduction to distributed applications and ecommerce 36

36

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)

Convention

An Introduction to distributed applications and ecommerce 37

37

SOAP avec HTTP

POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "Some-URI"

<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body>    <m:GetLastTradePrice xmlns:m="Some-URI">        <symbol>DIS</symbol>    </m:GetLastTradePrice></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Convention

An Introduction to distributed applications and ecommerce 38

38

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.

Convention

An Introduction to distributed applications and ecommerce 39

39

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.

An Introduction to distributed applications and ecommerce 40

40

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

An Introduction to distributed applications and ecommerce 41

41

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

An Introduction to distributed applications and ecommerce 42

42

portType

Un portType permet d’identifier (nommer) de manière abstraite un ensemble d’opérations.

<wsdl:portType name="descriptionPersonnes" ><wsdl:operation name="getPersonne" >

…</wsdl:operation>

<wsdl:operation name=“setPersonne" >…

</wsdl:operation>

</wsdl:portType>

An Introduction to distributed applications and ecommerce 43

43

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

An Introduction to distributed applications and ecommerce 44

44

operation

Quelque soit le type d’opération la définition est sensiblement la même :

Une opération : • Reçoit des messages : <wsdl:input …>• Envoie des messages : <wsdl:output …> ou

<wsdl:fault …> La présence et l’ordre des

input/outputs/fault dépendent du type de l’opération.

An Introduction to distributed applications and ecommerce 45

45

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.

An Introduction to distributed applications and ecommerce 46

46

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)

<wsdl:service name=“MonService"><wsdl:port binding="intf:MonServiceSoapBinding">

<soap:address location="http://mda.lip6.fr:8080/axis/services/MonService"/></wsdl:port>

</wsdl:service>

An Introduction to distributed applications and ecommerce 47

47

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

An Introduction to distributed applications and ecommerce 48

48

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 !

An Introduction to distributed applications and ecommerce 49

49

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.

An Introduction to distributed applications and ecommerce 50

50

Exemple : searchFaçons de rechercher un service.

Nous allons rechercher les Web Services de la société Amazon.

An Introduction to distributed applications and ecommerce 51

51

Exemple : searchAmazonBusiness propose un Web Service

Ce Web Service s’appelle GetBookPrice

An Introduction to distributed applications and ecommerce 52

52

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

An Introduction to distributed applications and ecommerce 53

53

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/

An Introduction to distributed applications and ecommerce 54

54

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.

An Introduction to distributed applications and ecommerce 55

55

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• par extension

An Introduction to distributed applications and ecommerce 56

56

Adaptation pour un secteur d ’entreprises ou

une entreprise• Tel quel• Étendre• Renommer• Recomposer

An Introduction to distributed applications and ecommerce 57

57

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 ?

An Introduction to distributed applications and ecommerce 58

58

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

An Introduction to distributed applications and ecommerce 59

59

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 …

An Introduction to distributed applications and ecommerce 60

60

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.

An Introduction to distributed applications and ecommerce 61

61

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 62

62

Conclusion

Web Service : Un nouveau Buzz Word ?

Avantages :• Des standards simples (SOAP, WSDL, UDDI)• Multi Protocole / Multi OS / Multi Langage• Paradigme de Service• Des outils (éditeurs et moteurs)

Inconvénients :• Typage (pas de consensus)• Performance• Jeunesse (Sécurité, Transaction,…)

An Introduction to distributed applications and ecommerce 63

63

Topologie des services web

OrchestrationScénarios, processus métier

BPEL Core cmpts ebXML

Oasis UNCEFACT

"Pages jaunes"Registres, annuaires

UDDILDAP

Oasis WS-IOMG

Sémantique DictionnairesTDEDNamespace

ISOW3C

Service Définitions WSDL W3C

Communication

Sécurité SAML XACML Oasis

Traitement distribué

SOAP W3C

Échange de messages

HTTP, SMTP IETF

Routage TCPIP IETF

An Introduction to distributed applications and ecommerce 64

64

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

An Introduction to distributed applications and ecommerce 65

65

EDI

Références Introduction à l'EDI et l'UN/EDIFACT

• http://www.obcebdbh.be/siprocom/Unedifact/introedifact/FINTROTOT.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/

An Introduction to distributed applications and ecommerce 66

66

Variantes

X.12: Américain EDIFACT: reste du monde

An Introduction to distributed applications and ecommerce 67

67

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 »

An Introduction to distributed applications and ecommerce 68

68

Secteurs utilisateurs de EDI

• vente au détail; transport international; paiement bancaires; etc.

An Introduction to distributed applications and ecommerce 69

69

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

An Introduction to distributed applications and ecommerce 70

70

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

An Introduction to distributed applications and ecommerce 71

71

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

• + : ’

An Introduction to distributed applications and ecommerce 72

72

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

<?xml version="1.0" ?> <!-- XML message produced by edi2xml.pl (c) [email protected]   --><trsd:name.and.address>

<tred:party.qualifier uncl:code="3035:BY">Buyer</tred:party.qualifier><trcd:party.identification.details> 

<tred:party.id.identification>21448</tred:party.id.identification>   <tred:code.list.responsible.agency.coded uncl:code="3055:86">

Assigned by party originating the message</tred:code.list.responsible.agency.coded>  

</trcd:party.identification.details><trcd:party.name>

<tred:party.name>Missing Link</tred:party.name>   <tred:party.name>Versandbuchhandlung</tred:party.name>  

</trcd:party.name><trcd:street> 

<tred:street.and.number.p.o.box>Westerstrasse. 114-116

</tred:street.and.number.p.o.box>   </trcd:street>  <tred:city.name>Bremen</tred:city.name> <tred:postcode.identification>28199</tred:postcode.identification>   <tred:country.coded>DE</tred:country.coded>  

</trsd:name.and.address> 

An Introduction to distributed applications and ecommerce 73

73

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<!-- SEGMENT LIN+16   --><trsd:line.item>  <tred:line.item.number>16</tred:line.item.number>  

<!-- SEGMENT PIA+5+1861081383:IB   --><trsd:additional.product.id> 

<tred:product.id.function.qualifier uncl:code="4347:5">Product identification</tred:product.id.function.qualifier><trcd:item.number.identification> 

<tred:item.number>1861081383</tred:item.number>   <tred:item.number.type.coded uncl:code="7143:IB">ISBN (International Standard Book

Number)</tred:item.number.type.coded>  

</trcd:item.number.identification>  </trsd:additional.product.id>

<!-- SEGMENT QTY+21:3   --><trsd:quantity>

<trcd:quantity.details>  <tred:quantity.qualifier uncl:code="6063:21">

Ordered quantity </tred:quantity.qualifier>   <tred:quantity>3</tred:quantity>   </trcd:quantity.details> 

</trsd:quantity>