0% ont trouvé ce document utile (0 vote)
184 vues69 pages

Cours SOA

Ce document décrit l'architecture orientée services et les technologies associées comme WSDL, SOAP et UDDI. Il présente le modèle des services web, les acteurs impliqués et donne un exemple d'utilisation d'un service de réservation de voyage.

Transféré par

Sarah Borgi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
184 vues69 pages

Cours SOA

Ce document décrit l'architecture orientée services et les technologies associées comme WSDL, SOAP et UDDI. Il présente le modèle des services web, les acteurs impliqués et donne un exemple d'utilisation d'un service de réservation de voyage.

Transféré par

Sarah Borgi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture orientée Service

MP-RITEL / GT / IDSD
Niveau 2

Dr. Ing. Mohamed KOUBAA


Email: [email protected]
Les services Web
Définition & Architecture répartie
Contexte
} Evolution du Web des usagers au Web des
communications entre applications

WEB Data General Data General

WEB Data General

Usager +
Navigateur Web Serveur Web Application 1 Application 2
Communications entre Communications
un usager et une application entre applications
L’entité principale est l’usager. L’entité principale est l’application.
Ex : Achat d’un livre via les Ex : Achat automatisé de
pages Web d’une compagnie fournitures (via un Service Web)

4
Evolution du Web

HTTP, XML
HTTTP HTTP

HTTP,XML

Interaction
entre deux
Generation 1 Generation 2 Generation 3 applications
Static HTML Web Applications Web Services
(JSP,PHP,ASP, … )

5
Définition d’un service Web
} Un service Web (Web Service, WS) est une entité logicielle :
} Mise à disposition sur l’Internet ou sur un réseau privé (Intranet),
} publiable et accessible en utilisant le langage XML et les
protocoles standards du Web,
} Indépendante du système d’exploitation (UNIX, Windows,…) et
du langage de programmation (C#, JAVA,…)

6
Le modèle des services Web
} Les services Web introduisent un nouveau modèle de
développement basé sur ce qu’on appelle les architectures
orientées services.
} Une architecture orientée services se focalise sur une
décomposition plus abstraite dans la résolution des problèmes.
On parle de résolution dirigée par les services.
} Un service résout un problème donné.
} Les services peuvent être combinés pour résoudre des
problèmes de plus en plus complexes.

7
Le modèle des services Web
} Le modèle des Web Services est défini par une architecture et
un ensemble de protocoles standardisés : SOAP, WSDL, UDDI.
} Spécifications garanties par W3C et OASIS,

} Objectifs du modèle
} Modularité,
} Réutilisation et composition de services,
} Interopérabilité,
} Dialogue entre environnements et plate-formes hétérogènes,
} Intégration,
} Masquage de la complexité.

8
Exemple: Agence de voyage

} Une agence de voyage web combine plusieurs


services :
} Réservation de billets d’avion, de train
} Réservation de logement
} Réservation de véhicules de location
} Et donc utilise les services proposés par la SNCFT, Tunisair,
RentACar, …

9
Exemple: Agence de voyage

L’application Web
consultée par le client
met en œuvre des
services web répartis
pour satisfaire sa
demande.

10
Acteurs impliqués
• Le fournisseur de service (Service Provider)
– Application s'exécutant sur un serveur et
comportant un module logiciel accessible par
Internet en XML
• Le client (Service Requester)
– Application cliente se liant à un service et invoquant
ses fonctions par des messages XML (SOAP)

• L’annuaire de services (Service Registery)


– Annuaire des services publiés par les providers
(UDDI)
11
Architecture Orientée Services

12
Utilisation des Web Services

UDDI

2: Recherche 1: Inscription
de service 3: Description
WSDL

5: Requête SOAP

7: Réponse SOAP

4: Construction
requête 6: Traitement

13
Technologies

Annuaire UDDI 1. Déploiement


De Web Services
Description Description Web
Description
WSDL WSDL Service
WSDL
Description
WSDL
3. Découverte 2. Publication

Description
Fournisseur
Service Web
Description
Client Description
WSDL de Web Services
Réservation WSDL WSDL
Séjour
du Web Service
4. Invocation Web
Proxy
Application Protocole SOAP
Service Application
Description
WSDL

14
Fournisseur de service

15
Technologies
} WSDL
} Web Service Description Language
} Description des services web
} SOAP
} Single Object Access Protocol
} Protocole de communication des services web
} UDDI
} Universal Description Discovery and Integration
} Annuaire de services web

16
Scénario complet
} Étape 1: définition et description du service
} On doit décrire de point de vue informatique ce que fait le service, la
solution qu’il propose…
} La définition est faite en WSDL par le fournisseur de services (i.e. le serveur
d’applications).
} Étape 2: publication du service par le fournisseur
} Une fois le service est défini et décrit, la description WSDL peut être publié
dans un annuaire UDDI afin de le rendre accessible aux clients.
} Étape 3: recherche du service par un client
} Le client se connecte sur un annuaire UDDI pour effectuer une recherche de
services.
} Étape 4: invocation du service par le client
} Une fois le service trouvé par le client, ce dernier peut invoquer le service
suivant les conditions inscrites au sein de la description WSDL trouvée.

17
Un service en action

18
Bénéfices
} S'appuie sur les standards
} Encapsule la complexité
} Favorise la réutilisation
} Facilite le développement de business process
} Fiabilise les business process
} Simplifie des échanges inter-entreprises
} Sécurise les échanges
} Choix de plate-formes inter-opérables
} .NET
} J2EE

19
Diagramme des protocoles

Composition de services
WS-BPEL, WS-CDL
Découverte/Publication
UDDI
Description
Base
WSDL
Echange
SOAP
Transport
HTTP, SMTP, FTP, JMS

20
WSDL
Web Service Description Language
Web Services – WSDL
} WSDL est un langage XML dédié à la description de tous les
éléments nécessaires pour interagir avec un service Web.

} Version : W3C
} WSDL 1 est prévu pour fonctionner avec SOAP 1.1
http://www.w3.org/TR/wsdl
} WSDL 2 est prévu pour fonctionner avec SOAP 1.2
http://www.w3.org/TR/wsdl20

22
Web Services – WSDL
} WSDL est un langage qui permet de décrire:
} Un service Web (service réseau),
} et comment l’invoquer (localisation, paramètre, structure de retour,
..)

} Le fichier WSDL est au format XML et regroupe toutes les


informations nécessaires pour interagir avec le Web Service :
} Les méthodes
} Les paramètres et valeurs retournées
} Le protocole de transport utilisé
} La localisation du service

} Le fichier WSDL peut être généré par les outils de


développement pour favoriser une intégration rapide du service

23
Présentation
} WSDL est indispensable au déploiement de Web Services

} Publication et recherche de services au sein de l’annuaire


UDDI se font via le document WSDL
} Pour l’accès à un service particulier, un client se voit retourné l’URL
du fichier WSDL décrivant l’implémentation du service.

} Seul l’emplacement de ce fichier WSDL est indiqué puisque ce


dernier référence l’autre document WSDL décrivant l’interface de
mise en œuvre du service.

24
Structure
} Un document WSDL est constitué de plusieurs éléments
permettant la plus grande abstraction possible dans la définition
des services

} Ces différents éléments permettant de séparer les briques


habituellement mises en jeu dans l’utilisation des services

} Ces briques sont pour l’essentiel :


} L’adresse où est situé le service
} Le protocole associé à l’utilisation du service
} L’ensemble des opérations accessibles
} Les types de données à véhiculer dans les opérations
} …

25
Description
} Elément Type
Service
} Types des paramètres (schéma XML)
} Elément Message
} Appel et retour d'opération Port Port
(e.g. http://host/svc)

} Elément Port type Binding


(e.g. SOAP)
Binding
} Groupe d'opération
} Elément Binding portType
} URL de l'opération
operation(s)
} Type de protocole
inMessage outMessage

Abstract interface

26
Description
<definitions name = "..." xmlns: …>
} <types>
Contient les définition de types utilisant un système de typage (comme XSD)
} <message>
Décrit les noms et types d’un ensemble de champs à transmettre (Paramêtres
d’une invocation, valeur du retour, …)
} <portType>
Décrit un ensemble d’opérations. Chaque opération a zero ou un message en
entrée, zero ou plusieurs message de sortie ou de fautes
} <binding>
Spécifie une liaison d’un <porttype> à un protocole concret (SOAP1.1, HTTP1.1,
MIME, …). Un porttype peut avoir plusieurs liaisons !
} <port>
Spécifie un point d’entrée (endpoint) comme la combinaison d’un <binding> et
d’une adresse réseau.
} <service>
Une collection de points d’entrée (endpoint) relatifs.

27
Exemple de service
} Exemple (Service Web - Java)
} Nous commençons par un service Web simple qui consiste à
calculer la somme de deux valeurs entiers.

} Les WSDL présentés dans la suite sont générés


automatiquement par Java2WSDL
28
Types
} L’élément types contient les définitions de types utilisant un
système de typage (comme XML schéma)

29
message
} Les messages sont envoyés entre deux interlocuteurs
(exemple: une opération reçoit 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
Exemple:
<wsdl:message name="personneMsg">
<wsdl:part name="nom" type="xsd:string" />
<wsdl:part name="prenom" type="xsd:string" />
</wsdl:message>
} Soit une part est un élément XML dont le type est défini dans un
XML Schema

30
Message: exemple

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

} 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

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

33
Operation: exemple

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

<wsdl:binding name="binding_name" type=“portType_name" >



</wsdl:binding>

35
Binding SOAP
} Pour préciser que le binding est de type SOAP, il faut
inclure la balise suivante :
<soap:binding transport="uri" style="soap_style" />

} Transport définit le type de transport


} http://schemas.xmlsoap.org/soap/http
pour utiliser SOAP/HTTP
} Style définit la façon dont sont créer les messages
SOAP de toutes les opérations
} rpc : Encodage RPC défini par SOAP RPC
} document : Encodage sous forme d’élément XML

36
Binding SOAP
} Pour chaque opération du portType :
} il faut préciser l’URI de l’opération : soapAction
} Il est aussi possible de repréciser la façon dont sont créés les
messages SOAP : style
} Pour chaque message de chaque opération, il faut définir
comment sera créé le message SOAP

37
Binding: exemple

38
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=“Service_name">
<wsdl:port name=“port_name” binding=“binding_name">
<soap:address location=“adress_Of_Deployed_Service"/>
</wsdl:port>
</wsdl:service>

39
SOAP
Simple Object Access Protocol

40
40
Introduction
} SOAP (Simple Object Access Protocol) est un protocole RPC,
orienté objet, bâti sur XML.
} Il permet l’invocation de méthode sur des objets distants
grâce à l’échange de message XML.
} Bien que le protocole de transport le plus commun soit
http(s), il est possible de l’utiliser sur SMTP,

} W3C
} SOAP : http://www.w3.org/2002/07/soap-
translation/soap12-part0.html

41
Introduction
} Basé sur la technologie universelle XML par opposition aux
spécifiques DCOM - DCE/NDR, CORBA - IIOP/CDR, JAVA -
RMI/JRMP, RDA – XDR .
} Indépendant du langage, modèle objet (jusqu’à la version 1.1)
système et plate-forme d’hébergement du service Web.
} Prend en charge les protocoles et formats suivants : HTTP,
SMTP et MIME.

42
Historique
} Septembre 1999 : SOAP 0.9
} Spécifications par MicroSoft et DevelopMentor
} Décembre 1999 : SOAP 1.0
} Soumission des spécifications à l’ IETF
} Association de UserLand
} Mai 2000 : SOAP 1.1
} Nombreuses associations : IBM, HP, Lotus, Compaq, Intel …
} XIDL : rapprochement de Corba
} Septembre 2000
} Groupe de travail W3C pour la standardisation de SOAP
} Corba/Soap Interworking RFP => SCOAP
} Avril 2007 : SOAP 1.2
} SOAP abandonne le modèle objet pour utiliser XML Infosets

43
Structure
<Envelope> est la racine
<Header>, <Body> et <Fault> sont les enfants :
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
">
<soap:Header>
... Header information...
</soap:Header>
<soap:Body>
... Body information...
<soap:Fault> ...Fault information...
</soap:Fault>
</soap:Body>
</soap:Envelope>

44
Exemple
Requête HTTP invoquant une méthode GetOrders :
POST /Orders HTTP/1.1
Host: xxx.xxx.xxx.xxx
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "http://www.someorders.com/GetOrders"

<?xml version=“1.0”?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<orders:GetOrders
xmlns:orders="http://www.someorders.com/orders">
<CustomerID>ALFKI</CustomerID>
<SalesRepID>85</SalesRepID>
</orders:GetOrders>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
45
Exemple
Réponse HTTP à la requête précédente :
HTTP/1.1 200 OK
MessageType: CallResponse
Content-Type: text/xml

<?xml version=“1.0”?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<orders:GetOrdersResponse
xmlns:orders="http://www.someorders.com/orders">
<……
données en retour sous forme XML
…..>
</orders:GetOrdersResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
46
Structure

} Eléments d’un message SOAP :


Protocol Headers } Envelope
} Élément pouvant contenir des déclarations

SOAP Envelope
d'espaces de noms ou des sous-éléments
} Header (optionnel)
SOAP Header } Permet des extensions telles que
authentification, session…
} Body (obligatoire)
} Définit la méthode appelée, contient les
SOAP Body
paramètres
} Peut contenir un élément Fault en cas
d'erreur

47
Espace de noms – SOAP
} NameSpaces 1.1
} Le namespace des balises SOAP :
http://schemas.xmlsoap.org/soap/envelope
} Le namespace de l’encodage SOAP
http://schemas.xmlsoap.org/soap/encoding
} NameSpaces 1.2
} Le namespace des balises SOAP :
http://www.w3.org/2003/05/soap-envelope/
} Le namespace de l’encodage SOAP
http://www.w3.org/2003/05/soap-encoding

48
SOAP Header
} SOAP Header : Mécanisme d’extension du protocole
SOAP
} La balise Header est optionnelle
} Si la balise Header est présente, elle doit être le premier fils de
la balise Envelope
} La balise Header contient des entrées
} Une entrée est n’importe quelle balise incluse dans un
namespace. Les entrées contenues dans la balise Header sont
non applicatives.

49
SOAP Header
} Exemple
<SOAP-ENV:Header>
<t:Transaction xmlns:t="some-URI" SOAP-ENV:mustUnderstand="0">
5
</t:Transaction>
</SOAP-ENV:Header>

} L’attribut mustUnderstand
} n Rien ou =0 : l’élément est optionnel pour l’application réceptrice
} n =1 : l’élément doit être compris de l’application réceptrice. Sinon le
traitement du message par le récepteur doit échouer.

50
SOAP Body
} SOAP Body : Le Body contient le message à échanger
} La balise Body est obligatoire
} La balise Body doit être le premier fils de la balise Envelope
(ou le deuxième si il existe une balise Header)
} La balise Body contient des entrées qui sont des données
applicatives.
} Une entrée est n’importe quelle balise incluse optionnellement
dans un namespace
} Une entrée peut être une Fault.

51
SOAP Fault
} SOAP Fault : Balise permettant de signaler des cas
d’erreur.
} SOAP 1.1 : La balise Fault contient les balises suivantes:
} Faultcode (Obligatoire): un code permettant d’identifier le
type d’erreur.
} Faultstring (Obligatoire): une explication en langage naturel.
} Faultactor : une information identifiant l’initiateur de l’erreur.
} Detail : Définition précise de l’erreur.

52
SOAP Fault
} Faultcode :4 groupes de code d’ erreur
} Client,
} Server,
} MustUnderstand,
} VersionMismatch

} Exemple SOAP 1.1


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode xmlns="">s:Client</faultcode>
<faultstring xml:lang="fr-FR" xmlns="">
Une opération invalide s'est produite.</faultstring>
</s:Fault>
</s:Body>
</s:Envelope>

53
SOAP – Type
} Les données contenues dans un message SOAP étant typées il faut définir
un moyen de les encoder.
} L’encodage c’est la représentation de valeurs sous forme XML.
} Le décodage est le pendant de l’encodage spot la construction de valeurs à
partir d’XML
} L’XML représentant des valeurs a une structure qui dépend du type de ces
valeurs
} Il faut donc définir ce type
} Soit par un mécanisme définit par l’utilisateur
} Soit en utilisant des Schéma XML (préconisé)

54
SOAP – Type
} Définition
} Value (valeur d’une donnée)
} Simple value (string, integers,etc)
} Compound value (array, struct, …)
} Type (d’une value)
} Simple Type
} Compound Type

55
SOAP – Type
} Types simples
} Types définis dans XML Schéma
} Entier, flottant, entiers négatifs, chaînes caractères, …
} Énumérations

} Types complexes
} Tableaux
} Partie d’un tableau
} Tableau creux (sparse array)

56
Exemple: SOAP – Type
} Types xml simples
<element name=“age” type=“int”>
<element name=“taille” type=“float”>
<age>23</age>
<taille>1.87</taille>

} Enumeration
<element name=“couleur”>
<simpleType base=“xsd:string”>
<enumeration value=“Rouge”>
<enumeration value=“Bleu”>
</simpleType>
<couleur>Bleu</couleur>

57
Exemple: SOAP – Type
<element name=“Personne”>
<complexType>
<element name=“Nom” type=“xsd:string”>
<element name=“Prenom” type=“xsd:string”>
<element name=“Age” type=“xsd:float”>
</complexType>

<Personne>
<Nom>Durand</Nom>
<Prenom>Michel</Prenom>
<Age>34.7</Age>
</Personne>

58
Exemple: SOAP – Type
} Tableau
<element name=“TabPersonne”>
<complexType base=“SOAP-ENC:Array”>
<element name=“Personne” type=“xyz:Personne” maxOccurs=“unbounded”>
</complexType>
</element>

<xyz:TabPersonne SOAP-ENC:arrayType=“xyz:Personne[2]”>
<Personne>
<Nom>Durand</Nom>
<Prenom>Michel</Prenom>
<Age>34.7</Age>
</Personne>
<Personne>
<Nom>Dupond</Nom>
<Prenom>Serge</Prenom>
<Age>40</Age>
</Personne>
</xyz:TabPersonne>
59
UDDI :Universal Description,
Discovery, and Integration

60
60
Introduction
} Même si la conjonction SOAP / WSDL permet d’invoquer des
Web Services, il était nécessaire d’ajouter une fonctionnalité de
recherche de services. Cette fonctionnalité c’est UDDI

} UDDI est une spécification définissant la manière de publier et de


découvrir les Web Services sur un réseau.
} La description du service est faite en XML selon la spécification
} Un registre UDDI peut être accédé en SOAP mais aussi en XML-
RPC ou Corba. La spécification ne limite pas l’utilisation au
Service Web.

61
Principaux fournisseurs

} IBM UDDI Registry

} Microsoft UDDI Business Registry (UBR)

} SAP UDDI Business Registry

} Systinet Registry

} Oracle Application Server UDDI Registry

62
Les pages d’UDDI
} L'annuaire UDDI est consultable de différentes manières :
} Les pages blanches comprennent la liste des entreprises ainsi
que des informations associées à ces dernières.

} Les pages jaunes recensent les services Web de chacune des


entreprises sous le standard WSDL.

} Les pages vertes fournissent des informations techniques


précises sur les services fournis. Ces informations concernent
les descriptions de services et d'information de liaison ou
encore les processus métiers associés.

63
Web Services - UDDI
} Le modèle UDDI comporte 5 structures de données
principales:
} BusinessEntity : ensemble des informations sur l’entreprise
proposant le service
} BusinessService : ensemble des informations sur les services
publiés par l’entreprise
} BindingTemplate : ensemble des informations sur le lieu
d’hébergement du service
} tModel : ensemble des informations sur le mode d’accès au
service (WSDL)
} publisherAssertion : ensemble des informations contractuelles
pour accéder au service

64
Exemple1
} Exemple Schéma BusinessEntity (pages blanches)

<element name="businessEntity" type="uddi:businessEntity" />


<complexType name="businessEntity">
<sequence>
<element ref="uddi:discoveryURLs" minOccurs="0" />
<element ref="uddi:name" maxOccurs="unbounded" />
<element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
<element ref="uddi:contacts" minOccurs="0" />
<element ref="uddi:businessServices" minOccurs="0" />
<element ref="uddi:identifierBag" minOccurs="0" />
<element ref="uddi:categoryBag" minOccurs="0" />
</sequence>
<attribute name="businessKey" type="uddi:businessKey" use="required" />
<attribute name="operator" type="string" use="optional" />
<attribute name="authorizedName" type="string" use="optional" />
</complexType>

65
Exemple2
} Exemple Schéma BusinessService (pages jaunes)
<element name="businessService" type="uddi:businessService" />
<complexType name="businessService">
<sequence>
<element ref="uddi:name" minOccurs="0" maxOccurs="unbounded" />
<element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
<element ref="uddi:bindingTemplates" minOccurs="0" />
<element ref="uddi:categoryBag" minOccurs="0" />
</sequence>
<attribute name="serviceKey" type="uddi:serviceKey" use="required" />
<attribute name="businessKey" type="uddi:businessKey" use="optional" />
</complexType>

66
Exemple3
} Exemple Schéma bindingTemplate (pages vertes)
<element name="bindingTemplate" type="uddi:bindingTemplate" />
<complexType name="bindingTemplate">
<sequence>
<element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
<choice>
<element ref="uddi:accessPoint" />
<element ref="uddi:hostingRedirector" />
</choice>
<element ref="uddi:tModelInstanceDetails" />
</sequence>
<attribute name="serviceKey" type="uddi:serviceKey" use="optional" />
<attribute name="bindingKey" type="uddi:bindingKey" use="required" />
</complexType>

67
Actions - UDDI
} UDDI permet de classer et de rechercher des Services
Web.
} Un annuaire UDDI contient :
} des informations techniques (documents WSDL)
} des informations à caractère général sur une entreprise
} Deux grandes familles d’actions sur un annuaire UDDI
} Publier un service
} Rechercher un service

68
Recherche - UDDI
} Primitives de recherche
} find_binding : récupère la liaison du service considéré.
} find_business : récupère l’identité de l’entreprise productrice du Web Service.
} find_relatedbusiness : récupère la liste des entreprises étant reliées (filiale,
département, partenaire, …) à l’entreprise productrice du Web Service.
} find_service : récupère la définition du service.
} find_tmodel : récupère le modèle de données associé.
} get_bindingDetail : récupère, par une liaison précédemment établie par
find_binding les champs individuels.
} get_businessDetail, get_businessDetailExt : récupère une entité
précédemment établie par find_business les attributs individuels.
} get_serviceDetail : récupère un service précédemment établi par find_service
les attributs individuels du service (prototypes des méthodes).
} get_tmodelDetail : récupère un modèle établie par find_tmodel les champs
individuels.

69
Publication- UDDI
} Primitives de publication

} save et delete : manipulation de service dans l’annuaire


} get_authToken et discard_authToken : Authentification des
commandes par jeton
} joint_ventures : Ajout de relations inter entreprises

70

Vous aimerez peut-être aussi