0% ont trouvé ce document utile (0 vote)
93 vues31 pages

Introduction à l'architecture SOAP

Le document présente une introduction à Spring Boot et aux services web, en se concentrant sur le protocole SOAP. Il décrit les éléments essentiels tels que WSDL pour la description des services et UDDI pour leur découverte, ainsi que des exemples de messages SOAP. Enfin, il aborde des concepts comme JAX-WS et JAXB pour le développement et la manipulation de services web en Java.

Transféré par

Nadhoura Bt
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)
93 vues31 pages

Introduction à l'architecture SOAP

Le document présente une introduction à Spring Boot et aux services web, en se concentrant sur le protocole SOAP. Il décrit les éléments essentiels tels que WSDL pour la description des services et UDDI pour leur découverte, ainsi que des exemples de messages SOAP. Enfin, il aborde des concepts comme JAX-WS et JAXB pour le développement et la manipulation de services web en Java.

Transféré par

Nadhoura Bt
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 & DÉVELOPPEMENT WEB

SPRING BOOT - PARTIE 2


Préparé par: Dr. Mohammed EL BAKKALI

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI
WEB SERVICE

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 2
o Un Service Web est une application qui permet d’échanger des
données avec d’autres applications web. Même si ces dernières
sont construites dans des langages de programmation différents.
o Parmi les Services Web les plus connus on peut citer SOAP, REST
ou HTTP.
o Si nous souhaitons utiliser un Service Web, nous devons connaitre
l’API du service

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 3
Quel est le format d’un message ?
o JSON
o XML
o SOAP
Le service web est-il protégé ?
Le service web peut-il limiter le transfert de certains données ?
Comment peut-on le créer le consommer ?
….

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 4
Service web
2000 – prononcer par Bill Gates
Mais il existait de différentes formes:
1960 – EDI = système d’échange informatique de messages
1970 – FTP = protocole de transfert de données
1990 – RPC = protocole réseau permettant d’établir des appels de
procédures sur un ordinateur
1998 – XML = inspiré de SGML intégrant la simplicité …
XML-RPC : ensemble de règles simples basé sur XML pour
transmission sur le web
2001 – SOAP = Simple Object Access Protocol
Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 5
SOAP

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 6
SOAP (Simple Object Access Protocol)
o Initialiser par Microsoft (fin 90)
o Reprendre par W3C [The World Wide Web Consortium] (2001)

Versions SOAP
o 2000 – SOAP 1.1
o 2007 – SOAP 1.2 (extensible, rapide)

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 7
SOAP (Simple Object Access Protocol)
o Il est un protocole d'échange inter-applications
o Il échange des messages sur des réseaux entre un expéditeur
(SOAP sender) et un destinataire (SOAP receiver).
o Il est indépendant de toute plateforme
o Il est basé sur XML
o Il utilise généralement HTTP
SOAP = XML + HTTP

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 8
Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 9
Exemple de message SOAP
<soapenv:Envelope xmlns:soapenv="[Link]
xmlns:m="[Link]
<soapenv:Header> Un message est constitué par : une enveloppe
Optional (SOAP envelope) contenant :
</soapenv:Header> o En-tête (SOAP header) optionnel
<soapenv:Body> o Charge utile (SOAP body).
<m:releve>
<m:temperature>
<m:valeur>6.0</m:valeur>
<m:unite>celsius</m:unite>
</m:temperature>
<m:lieu>
<m:ville>Bordeaux</m:ville>
</m:lieu>
</m:releve>
<soapenv:Fault>
Optional
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 10
Exemple de réponse SOAP
<soap:Envelope
xmlns:soap="[Link]
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Internal server error</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 11
Pour utiliser et assurer le transport des messages avec SOAP, nous
devons :
o Faire appel à WSDL pour décrire les services web
o Faire appel à UDDI pour découvrir les services web

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 12
WSDL

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 13
WSDL (Web Services Description Language)
o Il permet la description complète d’un service web
o Il donne la description au format XML
o Il permet de connaître :
les opérations disponibles / le format des messages

On distingue 2 approches pour développer un service Web WS-* :


o Contract firstOn
définit le contrat du service en spécifiant le WSDL et on utilise des outils pour
générer le code : des stubs.
o Contract lastOn
développe le service et on utilise des outils pour générer le WSDL.
Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 14
Structure de WSDL
<!-Structure d'un WSDL -->
<definitions name="MonService"
targetNamespace="[Link]
xmlns="[Link]
<!-- Définitions abstraites -->
<types> ... </types>
<message> ... </message>
<portType> ... </portType>
<!-- Définitions concrètes -->
<binding> ... </binding>
<service> ... </service>
</definitions>

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 15
Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 16
Exemple de WSDL
<?xml version='1.0' encoding='UTF-8’?>
<definitions xmlns="[Link] xmlns:soap="[Link]
xmlns:wsam="[Link] xmlns:tns="[Link]
xmlns:xs="[Link] xmlns:ns1="[Link]
targetNamespace="[Link] name="MeteoService" >
<!-- Les types de données au format XML schema --> <types> <xs:schema version="1.0" targetNamespace="[Link]
elementFormDefault="qualified"> <xs:complexType name="temperature"> <xs:sequence> <xs:element name="valeur" type="xs:double"/>
<xs:element name="unite" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="lieu"> <xs:sequence>
<xs:element name="ville" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="releve"> <xs:sequence>
<xs:element name="temperature" type="ns1:temperature"/>
<xs:element name="lieu" type="ns1:lieu"/>
</xs:sequence>
</xs:complexType>
<xs:element name="lieu" type="ns1:lieu"/>
<xs:element name="releve" type="ns1:releve"/> </xs:schema> </types> <!-- La description de tous les messages possibles. Un message
est défini par un ensemble de parties (une partie pour le payload et une partie par en-tête) --> <message name="releveMeteo"> <part
name="partLieu" element="ns1:lieu"/> </message> <message name="releveMeteoResponse"> <part name="partReleve" element="ns1:releve"/>
</message> <!-- Description des interfaces (indépendantes de SOAP) Une interface est composée d'un ensemble d'opérations. Chaque
opération est définie par les messages en entrée et en sortie. --> <portType name="MeteoService"> <operation name="releveMeteo">
<input wsam:Action="[Link] message="tns:releveMeteo"/> <output
wsam:Action="[Link] message="tns:releveMeteoResponse"/>
</operation> </portType> <!-- Liaison des interfaces avec le protocole SOAP --> <binding name="MeteoServicePortBinding"
type="tns:MeteoService"> <soap:binding transport="[Link] style="document"/> <operation
name="releveMeteo"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/>
</output> </operation> </binding> <!-- Localisation du service Dans le cas d'un binding SOAP avec un transport HTTP, on trouve ici
l'URL du service. --> <service name="MeteoService"> <port name="MeteoServicePort" binding="tns:MeteoServicePortBinding">
<soap:address location="[Link] </port> </service>
</definitions>

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 17
Exemple de WSDL
[Link]
[Link]
[Link]

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 18
Pour utiliser et assurer le transport des messages avec SOAP, nous
devons :
o Faire appel à WSDL pour décrire les services web
o Faire appel à UDDI pour découvrir les services web

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 19
UDDI

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 20
UDDI (Universal Description Discovery and Integration)
o Il est un annuaire de services basé sur XML (destiné surtout aux
services Web).
o Il permet de localiser le service web recherché sur le réseau
o Il permet l'accès aux répertoires des utilisateurs potentiels de
services web.
o Il utilise XML Schema pour décrire les structures de données
o Il existe 9 shémas:
• UDDI API Schema
• UDDI Custody Schema
• UDDI Subscription Schema
• UDDI Subscription listener Schema
• UDDI Replication Schema
• UDDI Value Set Validation Schema
• UDDI Value Set Catching
• UDDI Policy
• UDDI Policy Instance Parameters

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 21
APPLICATION
SOAP

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 22
JAX-WS

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 23
JAX-WS (Java API for XML Web Services)
o Il est un ensemble d'interfaces (API) de langage Java
o Il est dédié pour le développement de services web.
o Il s’appuie sur un modèle standard, basée sur des annotations

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 24
XSD

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 25
XSD (Xml Schema Definition)
o Il définit un schéma qui est une définition de la façon dont un
document XML peut être structuré.
o Il peut être utilisé pour vérifier qu'un document XML est valide et
suit les règles que vous avez définies dans le schéma.

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 26
JaxB

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 27
JaxB (Java Architecture for XML Binding)
o Il permet de convertir des objets Java en XML et vice versa.
o Il fournit un moyen rapide et pratique de sérialiser/marshaler
(écrire) des objets Java en XML et de désérialiser/démarshaler
(lire) XML en objets.
o Ceci est établi à l’aide des annotations

Exemple:
@XmlRootElement(name = "product")
public class Product {
permet de convertir un objet java "Product" en XML nommé "product »
[Link]
Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 28
Annotations JaxB
@XmlRootElement
Convertir un objet en XML
@XmlType
Définir l'ordre dans lequel les champs sont écrits dans le fichier XML
@XmlElement
Définir le nom réel de l'élément XML qui sera utilisé
@XmlAttribute
Définir que le champ id est mappé en tant qu'attribut au lieu d'un élément
@XmlAccessorType([Link])
Donner le droit de mettre des annotations aux attribus
@XmlTransient
Annoter les champs que nous ne souhaitons pas inclure dans XML
Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 29
ARCHITECTURE

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 30
ARCHITECTURE
CLIENT SOAP SERVER JAX-WS
(Java / .Net / …)

CLIENT WEB SERVICE

1 6 2 3 4

STUB (proxy) SOAP SKELETON (proxy)


5

Spring Boot ARCHITECTURE & DÉVELOPPEMENT WEB Préparé par : Dr. Mohammed EL BAKKALI 31

Vous aimerez peut-être aussi