Cours SOA_Partie 2 Chapitre2&3
Cours SOA_Partie 2 Chapitre2&3
Cours SOA_Partie 2 Chapitre2&3
SGBD
Data Base
57
59
58 59
60 61
60 61
12/10/2022
62 63
62 63
64 65
64 65
12/10/2022
corps de la réponse
med@youssfi
66 67
66 67
HTTP/1.0 200 OK
Entête de la requête
Date :Wed, 05Feb02 15:02:01GMT
Post /Nom_Script HTTP/1.0 Server :Apache/1.3.24
Accept: application/xml Mime-Version 1.0
Accept-Language :fr Last-Modified :Wed 02Oct01 24:05:01GMT
Content-Type :Text/xml
Content-legnth :4205
*** saut de ligne *** *** saut de ligne ***
68 69
68 69
12/10/2022
un serviceWEB
1 : Je recherche
◦ SOAP (Simple Object Access Protocol) Contrat
est un protocole d'échange inter-applications indépendant de toute plate-forme, basé sur le 3 : Quel est le format d’appel du SOAP
langage XML. service que tu proposes?
Un appel de service SOAP est un flux ASCII encadré dans des balises XML et transporté
dans le protocole HTTP. 4 :Voici mon contrat (WSDL)
XML
◦ WSDL (Web Services Description Language)
donne la description au format XML des Web Services en précisant les méthodes pouvant être
invoquées,leurs signatures et le point d’accès (URL,port, etc..). Client Serveur
C’est,en quelque sorte, l’équivalent du langage IDL pour la programmation distribuée XML
CORBA.
5 : J’ai compris comment invoquer
◦ UDDI (Universal Description, Discovery and Integration) ton service et je t’envoie un document
normalise une solution d’annuaire distribué de Web Services, permettant à la fois la publication XML représentant ma requête
et l'exploration (recherche) de Web Services.
UDDI se comporte lui-même comme un Web service dont les méthodes sont appelées via XML
le protocole SOAP.
6 : J’ai exécuté ta requêtemeedt@jeyoutsesfir.neettourne le résultat
70 71
70 71
med@youssfi.net
FATIMA-ZAHRA BELOUADHA. SOA. 3ÈME ANNÉE.
72 58
OPTIONS IQL ET TI. FILIÈRE GÉNIE INFORMATIQUE.
72 73
12/10/2022
SOAP header
◦ (entête) est une partie facultative qui permet d'ajouter des fonctionnalités
à un message SOAP de manière décentralisée sans agrément entre les
parties qui communiquent.
◦ L'entête est utile surtout, quand le message doit être traitépar plusieurs
<?xml version="1.0" encoding="utf-8"?> intermédiaires.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding">
<soap:Header> SOAP body (corps) est un container pour les informations mandataires à
<!-- en-tête --> l'intention du récepteur du message, il contient les méthodes et les paramètres
</soap:Header>
<soap:Body>
qui seront exécutés par le destinataire final.
<!-- corps -->
</soap:Body>
</soap:Envelope>
SOAP fault (erreur) est un élément facultatif défini dans le corps SOAP et qui
med@youssfi.net
est utilisé pour reporter les erreurs.
74 75
74 75
JAX-WS Exemple
@WebService(serviceName="BanqueWS")
public class BanqueService {
• JAX-WS est la nouvelle appellation de JAX-RPC (Java API for XML Based @WebMethod(operationName="ConversionEuroToDh")
RPC) qui permet de développer très simplement des services web en public double conversion(@WebParam(name="montant")double mt){
Java. return mt*11;
}
• JAX-WS fournit un ensemble d'annotations pour mapper la @WebMethod
correspondance Java- WSDL. Il suffit pour cela d'annoter directement public String test(){ return "Test"; }
@WebMethod
les classes Java qui vont représenter le service web. public Compte getCompte(){ return new Compte (1,7000); }
• Dans l'exemple ci-dessous, une classe Java utilise des annotations JAX- @WebMethod
public List<Compte> getComptes(){
WS qui vont permettre par la suite de générer le document WSDL. Le List<Compte> cptes=new ArrayList<Compte>();
document WSDL est auto-généré par le serveur d'application au cptes.add (new Compte (1,7000)); cptes.add (new Compte (2,9000));
moment du déploiement : }}
return cptes;
76 77
76 77
12/10/2022
78 79
83
80 81
12/10/2022
1
2 2 Services informatiques de la famille des
2
technologies web permettant la communication
1
2
Serveur d’applications
entre des applications hétérogènes dans des
environnements distribués.
1 Ils ont été proposé à la base comme solution
1
2 d’intégrations de différents logiciels développés
2
1 par des entreprises (ERP, SCM, CRM) leur
2 2 permettant de communiquer entre eux.
Serveur d’applications
Basés sur XML (déscription et échange) et
Demande de ressources utilisant en général les protocoles du web comme
Resources
canal de communication;
82 83
84 85
12/10/2022
86 87
88 89
12/10/2022
90 91
92 93
12/10/2022
Une ressource peut subir quatre opérations de bases La méthode GET renvoie une représentation
CRUD correspondant aux quatre principaux types de de la ressource tel qu’elle est sur le
requêtes HTTP (GET, PUT, POST, DELETE)
système
REST s’appuie sur le protocole HTTP pour effectuer
GET: https://jsonplaceholder.typicode.com/users/1
ces opérations sur les objets
• CREATE POST
• RETRIEVE GET
Statut : 200
• UPDATE PUT Message : OK
En-tête : … .
• DELETE DELETE Client
Représentation : XML, JSON,
Serveur
html,…
94 95
96 97
12/10/2022
98 99
Représentation WADL
Une représentation désigne les données échangées entre le Web Application Definition Language est un
client et le serveur pour une ressource: langage de description des services REST au
HTTP GET Le serveur renvoie au client l’état de la
format XML. Il est une spécification de W3C initié
ressource
par SUN (www.w.org/Submission/wadl)
PUT, POST Le client envoie l’état d’une ressource au
serveur Peut être sous différent format : Il décrit les éléments à partir de leur type
JSON (Ressources, Verbes, Paramètre, type de
XML requête, Réponse)
XHTML
Il fournit les informations descriptives d’un
CSV
service permettant de construire des
Text/plain
…..
applications clientes exploitant les services
REST.
100 101
12/10/2022
WADL
WADL
Web Application Description Language
Standard du W3C
Permet de décrire les éléments des services
🞑 Resource, Méthode, Paramètre, Réponse
Permet d’interagir de manière dynamique
avec les applications REST
102 103
JSON
JSON « JavaScript Obect Notation » est un
format d’échange de données, facile à lire par
un humain et interpréter par une machine.
Basé sur JavaScript, il est complètement
indépendant des langages de programmation mais
Rappel JSON utilise des conventions qui sont communes à
toutes les langages de programmation (C, C++,
Perl, Python, Java, C#, VB, JavaScript,….)
Deux structures :
Une collection de clefs/valeurs Object
104 105
12/10/2022
JSON JSON
Objet ARRAY
Commence par un « { » et se termine par « } » Liste ordonnée d’objets commençant par "[" et
et composé d’une liste non ordonnée de paire se terminant par "]", les objets sont séparés
clefs/ valeurs. Une clef est suivie de « : » et les l’un de l’autre par ",". [
paires clef/ valeur sont séparés par « , » { "id": 51,
"nom": "Mathematiques 1",
"resume": "Resume of math ",
{ "id": 51, "isbn": "123654",
"nom": "Mathematiques 1", "resume": "quantite": 42,
"Resume of math ", "isbn": "123654", "photo": ""
"categorie": },
{ { "id": 102,
"id": 2, "nom": "Mathematiques", "nom": "Mathematiques 1",
"description": "Description of "resume": "Resume of math ",
mathematiques " "isbn": "12365444455",
}, "quantite": 42,
"quantite": 42, "photo": ""
"photo": "" }
} ]
106 107
SOAP
Client Serveur
http://localhost:8080/Bibliotheque/webresources/category/Miage%20NTDP
REST
Client Serveur
108 109
12/10/2022
110 111