|
1
|
- Xavier Blanc
Xavier.Blanc@lip6.fr
|
|
2
|
- Principes
- XML (Notions)
- SOAP
- WSDL
- UDDI
- Axis
- Conclusion
|
|
3
|
- 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
|
- Pourquoi un nouveau middleware
|
|
5
|
- Passage à large échelle : Web
- Protocoles hétérogènes
- 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
|
|
6
|
- Inconvénients Intrinsèques
- Complexité
- CORBA : IDL, Mapping, …
- EJB : Container, JNDI, …
- Pérennité : remise en question
- Prix
- Plates-formes
- Compétences
|
|
7
|
- Modification du Protocole
- Passerelles
- Portage d’applications existantes difficile
- Solutions non standards
|
|
8
|
- Un nouveau Protocole : SOAP
- Basé sur XML
- Portabilité, Hétérogénéité
- Porté sur des protocoles large échelle existants
- 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)
|
|
9
|
|
|
10
|
- Protocole d’échange de messages (client / serveur)
- Basé entièrement sur XML
- Standard W3C (Initiative IBM et Microsoft)
- Concepts
- Message = Enveloppe ( Header + Body )
- Extensibilité
|
|
11
|
- Langage de définition de Web Services
- Basé entièrement sur XML
- Standard W3C (Initiative IBM et Microsoft)
- Définition de l’interface, de l’URL et du port du Web Service.
- Utilise le système de typage de XML Schéma
|
|
12
|
- 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é
|
|
13
|
- Notions nécessaires
pour les Web Services
|
|
14
|
- <livre>
<titre> le super livre </titre>
<chapitre>
<numero> 1 </numero>
<titre> titre du chapitre 1 </titre>
<contenu> blabla blabla </contenu>
</chapitre>
<chapitre>
…
</chapitre>
- </livre>
|
|
15
|
- 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, …
- Séparation de la forme et du fond
- Un document XML peut être constitué de deux entités (le fond et la
forme)
|
|
16
|
- 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
|
|
17
|
- 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/"
|
|
18
|
- 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
|
|
19
|
- Pouvez-vous définir un document XML qui représente un message
Client/Serveur ?
- Quelles sont les informations que ce message doit contenir ?
- Comment échanger ce message ?
- Quels sont les problèmes soulevés ?
|
|
20
|
- Simple Object Access Protocol Version 1.1
|
|
21
|
- SOAP is a lightweight protocol for exchange of information in a
decentralized, distributed environment.
- It is an XML based protocol that consists of three parts: an envelope
that defines a framework for describing what is in a message and how to
process it, a set of encoding rules for expressing instances of
application-defined datatypes, and a convention for representing remote
procedure calls and responses.
- SOAP can potentially be used in combination with a variety of other
protocols; however, the only bindings defined in this document describe
how to use SOAP in combination with HTTP and HTTP Extension Framework.
|
|
22
|
- 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 ».
|
|
23
|
- POST /StockQuote HTTP/1.1
- Host: www.stockquoteserver.com
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- SOAPAction: "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>
|
|
24
|
- HTTP/1.1 200 OK
- Content-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>
|
|
25
|
- Des Balises Utilisateur
- GetLastTradePriceResponse
- Symbol
- Price
- Un Namespace Utilisateur
- Des Balises SOAP
- Un Namespace SOAP
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- Des informations dans la partie HTTP
|
|
26
|
- Le namespace des balises SOAP
- http://schemas.xmlsoap.org/soap/envelope
- Le namespace de l’encodage SOAP
- http://schemas.xmlsoap.org/soap/encoding
|
|
27
|
- Un message SOAP est contenu dans une balise Envelope
- Une Envelope peut contenir une balise Header
- Une Header peut contenir n’importe quel ensemble de balises. Ces
balises doivent appartenir à des namespaces.
- Une Envelope doit contenir une balise Body
- Un Body peut contenir n’importe quelle ensemble de balises. Ces
balises peuvent appartenir à des namespaces.
- Un Body peut contenir des balises Fault qui permettent d’identifier
des erreurs.
|
|
28
|
- Mécanisme d’extension du protocol 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
|
|
29
|
- <SOAP-ENV:Header>
- <t:Transaction xmlns:t="some-URI">
5
- </t:Transaction>
- </SOAP-ENV:Header>
|
|
30
|
- 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
- Une entrée est n’importe quelle balise incluse optionnellement dans un
namespace
- Une entrée peut être une Fault.
|
|
31
|
- Balise permettant de signaler des cas d’erreur.
- La balise Fault contient les balises suivantes
- faultcode : un code permettant d’identifier le type d’erreur
- Client, Server, VersionMismatch, MustUnderstand
- faultstring : une explication en langage naturel
- faultactor : une information identifier l’initiateur de l’erreur
- detail : Définition précise de l’erreur.
|
|
32
|
- 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
|
|
33
|
- 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é)
|
|
34
|
- 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>
|
|
35
|
- 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>
|
|
36
|
- 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.
|
|
37
|
- 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>
|
|
38
|
- 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>
|
|
39
|
- 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)
|
|
40
|
- POST /StockQuote HTTP/1.1
- Host: www.stockquoteserver.com
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- SOAPAction: "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>
|
|
41
|
- HTTP/1.1 500 Internal Server Error
- Content-Type: text/xml; charset="utf-8"
- Content-Length: nnnn
- <SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
- <faultstring>Server Error</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
|
|
42
|
- 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.
|
|
43
|
- Comparer SOAP par rapport à CORBA ?
- SOAP est-il dédié uniquement au RPC ?
- Quel est l’intérêt de porter SOAP sur d’autres protocoles ?
|
|
44
|
Web Services Description Language
- Version 1.1
|
|
45
|
- Une description WSDL :
- 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.
- 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.
|
|
46
|
- 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
|
|
47
|
|
|
48
|
- Description en utilisant XML Schema.
- <wsdl:types>
- <xs:schema
- targetNameSpace="http://www.exemple.fr/personne.xsd"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element
name="personne">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="nom"
type="xs:string" />
- <xs:element name="prenom"
type="xs:string" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:schema>
- </wsdl:types>
|
|
49
|
- 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
|
|
50
|
- Part de type simple
- <wsdl:message name="personneMsg">
- <wsdl:part name="nom" type="xsd:string" />
- <wsdl:part name="prenom" type="xsd:string" />
- </wsdl:message>
- Part qui utilise un XML Schema
- <wsdl:message name="personneMsg">
- <wsdl:part name="personne"
element="exemple:personne" />
- </wsdl:message>
|
|
51
|
- 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>
|
|
52
|
- 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
|
|
53
|
- 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.
|
|
54
|
- <wsdl:operation name="operation_name">
- <wsdl:input name="nom_optionel" message="nom_message"
/>
- </wsdl:operation>
- <wsdl:operation name="operation_name">
- <wsdl:output name="nom_optionel" message="nom_message"
/>
- <wsdl:input name="nom_optionel" message="nom_message"
/>
- <wsdl:fault name="nom_optionel" message="nom_message"
/>*
- </wsdl:operation>
- <wsdl:operation name="operation_name">
- <wsdl:input name="nom_optionel" message="nom_message"
/>
- <wsdl:output name="nom_optionel" message="nom_message"
/>
- <wsdl:fault name="nom_optionel" message="nom_message"
/>*
- </wsdl:operation>
|
|
55
|
- 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.
|
|
56
|
- Un Binding :
- peut être identifié par un nom : name
- identifie le portType : type
- <wsdl:binding name="binding_name"
- type="nom du portType" >
- …
- </wsdl:binding>
|
|
57
|
- 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
|
|
58
|
- 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
|
|
59
|
- <wsdl:binding type="descriptionPersonnes" >
- <soap:binding
- transport="http://schemas.xmlsoap.org/soap/http"
- style="rpc" />
- <wsdl:operation name="getPersonne">
- <soap:operation
soapAction="http://www.exemple.fr/getPersonne" />
- <wsdl:input>
- <soap:body use="encoded"
-
encodingStyle="schemas.xmlsoap.org/soap/encoding"/>
- </wsdl:input>
- <wsdl:output>
- <soap:body use="encoded"
-
encodingStyle="schemas.xmlsoap.org/soap/encoding"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
|
|
60
|
- 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>
|
|
61
|
- Comparer WSDL à IDL ?
- Expliquer les dépendances entre SOAP et WSDL ?
- Quel est le point le plus délicat lors d’un passage à une implémentation
?
|
|
62
|
- Universal Description Discovery and Integration
- Version 3.0
|
|
63
|
- Web services are meaningful only if potential users may find information
sufficient to permit their execution.
- The focus of Universal Description Discovery & Integration (UDDI) is
the definition of a set of services supporting the description and
discovery of
- (1) businesses, organizations, and other Web services providers,
- (2) the Web services they make available, and
- (3) the technical interfaces which may be used to access those
services.
- Based on a common set of industry standards, including HTTP, XML, XML
Schema, and SOAP, UDDI provides an interoperable, foundational
infrastructure for a Web services-based software environment for both
publicly available services and services only exposed internally within
an organization.
|
|
64
|
- 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 !
|
|
65
|
- 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.
|
|
66
|
|
|
67
|
|
|
68
|
- 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
|
|
69
|
- 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 ?
|
|
70
|
|
|
71
|
- Implantation OpenSource de SOAP1.1
- 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
|
|
72
|
- 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 …
|
|
73
|
- 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.
|
|
74
|
|
|
75
|
- Développer une classe Java
- public class MyFirstWebService {
- public final String BOOK1 = "La méthode";
- public final String BOOK2 = "Le Macroscope";
- public int getPrice(String bookTitle) {
- if (bookTitle.compareTo(BOOK1)==0) {
- return 15;
- }
- else if (bookTitle.compareTo(BOOK2)==0) {
- return 20;
- }
- else return 300;
- }
- }
|
|
76
|
- Elaborer un descripteur SOAP de votre classe
- <deployment xmlns="http://xml.apache.org/axis/wsdd/"
-
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service name="MyFirstWebService"
provider="java:RPC">
- <parameter name="className"
- value="MyFirstWebService"/>
- <parameter name="allowedMethods"
value="*"/>
- </service>
- </deployment>
- Exporter le descripteur
- java org.apache.axis.client.AdminClient deploy.wsdd
|
|
77
|
- Le fichier jws sont les équivalents des jsp pour les Web Service.
- Construction d’un fichier jws à partir d’une classe java:
- Copy MyFirstWebService.java /…/MyFirstWebService.jws
|
|
78
|
- Génération d’un ensemble de classes facilitant l’envoi de message SOAP:
- java org.apache.axis.wsdl.WSDL2Java file.wsdl
- Classes générées:
- Pour les Type
- Pour les PortType
- Pour les Binding
- Pour les Port
- Pour les Service
|
|
79
|
- Construction du client :
- Instancier un Service
- Obtenir un Port à partir du Service
- Utiliser les méthodes du Port
- Construire les paramètres en fonction des Types
|
|
80
|
- Sous axis, dans un navigateur, mettre l’adresse du Web Service suivie de
?WSDL
- http://localhost:8080/axis/jwspages/MyFirstWebService.jws?WSDL
|
|
81
|
- MyFirstWebService.java
- MyFirstWebServiceService.java
- MyFirstWebServiceLocator.java
- MyFirstWebServiceBindingStub.java
|
|
82
|
- public class Client {
- public static void main(String[] args) {
- try {
- MyFirstWebServiceService service =
- new MyFirstWebServiceServiceLocator();
- MyFirstWebService port = service.getMyFirstWebService();
- String st = "";
- int price = port.getPrice(st);
- System.out.println("Le prix est : "+price);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
|
|
83
|
- Comparer cette approche avec CORBA ?
- A quoi sert le WSDL ?
- Comment se fait le mapping avec un langage de programmation ?
|
|
84
|
- Web Service :
Un nouveau Buzz Word ?
|
|
85
|
- 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,…)
|
|
86
|
- SOAP : http://www.w3.org/TR/SOAP/
- WSDL : http://www.w3.org/TR/2001/NOTE-wsdl-20010315
- UDDI : http://www.uddi.org/
- Apache SOAP : http://xml.apache.org/soap/
|