Upload
shili-mohamed
View
218
Download
0
Embed Size (px)
Citation preview
République TunisienneMinistère de l’Enseignement Supérieur et de la Recherche
Institut Supérieur des
Module
Master de Recherche informatique
Proposé par : Dr.Maha khameja
Elaboré par : Mr :Shili Mohamed
Année Universitaire
Les Web Service
République Tunisienne Ministère de l’Enseignement Supérieur et de la Recherche
Scientifique Université De Sousse
upérieur des Sciences Applique et de Technologie de Sousse
Module : Architecture SOA
Master de Recherche informatique SPI
Maha khameja
:Shili Mohamed
Année Universitaire : 2013**2014
Web Services SOAP, REST
Ministère de l’Enseignement Supérieur et de la Recherche
echnologie de Sousse
REST
Master SPI Rapport de projet
2 Copyright ©2014 Shili Mohamed, [email protected]
I. Introduction
II. Architecture des Web Service
III. Communication Web Service
IV. Exemple
V. Conclusion
VI. Référence
Master SPI Rapport de projet
3 Copyright ©2014 Shili Mohamed, [email protected]
Selon la définition du W3C (World Wide Web Consortium), un Web service
(ou service Web) est une application appelable via Internet - par une autre
application d’un autre site Internet -permettant l’échange de données (de
manière textuelle) afin que l’application appelante puisse intégrer le
résultat de l’échange à ses propres analyses. Les requêtes et les réponses
sont soumises à des standards et normalisées à chacun de leurs échanges
Aujourd’hui, les services Web provoquent un intérêt certain auprès des
architectes et des décideurs. Dès à présent, les Web Services sont sortis du
champ des échanges interentreprises pour s’adapter à celui du
référencement et de la mise à disposition des ressources de l’entreprise,
empiétant en ce sens sur les technologies de type EAI. Cette utilisation à elle
seule prouve la qualité du modèle et sa pérennité, notamment au niveau des
couches les plus basses. Par contre, la normalisation complète d’une
architecture distribuée construite sur les Web Services n’est pour l’instant
pas encore tout à fait établie. Par ailleurs, ce modèle n’échappe pas à des
problèmes de performance : Le problème du choix de la bonne granularité
du service, commun à toutes les architectures distribuées, se présente dans
le cas des Web Services de manière plus aiguë encore. Même si ils n’ont pas
acquis la maturité nécessaire à leur industrialisation, les Web services se
présentent plus que jamais comme la solution appropriée aux
problématiques d’échange de données et d’intégration d’applications.
Master SPI
Copyright ©2014 Shili Mohamed,
Architecture des Web Service
Figure N°
Les acteurs
–Annuaire –Service Registry
• Annuaire des services publiés par les providers (UDDI)
• Géré sur un serveur niveau application, entreprise ou mondial
–Service Provider
• Application s'exécutant sur un serveur et comportant un module logiciel accessible par en
XML
–Service Requester
• Application cliente se liant à un service et invoquant ses fonctions par des messages XML
(REST, XML-RPC,SOAP)
Master SPI
4
Mohamed, [email protected]
Architecture des Web Service
Figure N°1 : Architecture des Web Service
services publiés par les providers (UDDI)
• Géré sur un serveur niveau application, entreprise ou mondial
• Application s'exécutant sur un serveur et comportant un module logiciel accessible par en
ente se liant à un service et invoquant ses fonctions par des messages XML
Rapport de projet
Architecture des Web Service
• Application s'exécutant sur un serveur et comportant un module logiciel accessible par en
ente se liant à un service et invoquant ses fonctions par des messages XML
Master SPI
Copyright ©2014 Shili Mohamed,
Communication Web Service
Les différentes technologies pour accéder à un service web
– REST (Représentational
• Consommer un WebServiceREST
URL en http (Post ou Get) , le serveur renvoie sa réponse, la
en XML
– Communication par échange de fichier XML
• XML-RPC
• SOAP (Simple Object Access Protocol)
REST (Représentational State Transfer)
N’est pas un protocole ou un format, mais une
• Chaque ‘méthode’ou ‘service’est attaché à une URL
• Consommer un WebServiceREST revient à appeler une
(Post ou Get) , le serveur renvoie sa
• Très utilisé pour la communication entre machines.
Exemple : Récupération des Informations d’une commune par une requête
Master SPI
5
Mohamed, [email protected]
Communication Web Service
Les différentes technologies pour accéder à un service web
State Transfer)
• Consommer un WebServiceREST revient à appeler une simple
URL en http (Post ou Get) , le serveur renvoie sa réponse, la plupart du temps
Communication par échange de fichier XML
• SOAP (Simple Object Access Protocol)
REST (Représentational State Transfer)
un protocole ou un format, mais une architecture (celle de HTTP).
• Chaque ‘méthode’ou ‘service’est attaché à une URL
• Consommer un WebServiceREST revient à appeler une simple URL en http
(Post ou Get) , le serveur renvoie sa réponse, la plupart du temps
• Très utilisé pour la communication entre machines.
Exemple : Récupération des Informations d’une commune par une requête
http en mode GET
Figure N°2 :Rest
Rapport de projet
Communication Web Service
revient à appeler une simple
plupart du temps
architecture (celle de HTTP).
simple URL en http
réponse, la plupart du temps en XML
Exemple : Récupération des Informations d’une commune par une requête
Master SPI
Copyright ©2014 Shili Mohamed,
Exemple
Figure N°2: Table Enseignement
Figure N°
Master SPI
6
Mohamed, [email protected]
Figure N°2: Table Enseignement
Figure N°3: Insertion de ligne
igure N°4 : Interface principale
Rapport de projet
Master SPI Rapport de projet
7 Copyright ©2014 Shili Mohamed, [email protected]
Figure N°5 : Fichier génère de Web service
Classe générée automatique
© Code
package com; import java.io.Serializable; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; @Entity @Table(name = "enseignement") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Enseignement.findAll", query = "SELECT e FROM Enseignement e"), @NamedQuery(name = "Enseignement.findById", query = "SELECT e FROM Enseignement e WHERE e.id = :id"), @NamedQuery(name = "Enseignement.findByNom", query = "SELECT e FROM Enseignement e WHERE e.nom = :nom"),
Master SPI Rapport de projet
8 Copyright ©2014 Shili Mohamed, [email protected]
@NamedQuery(name = "Enseignement.findByEmail", query = "SELECT e FROM Enseignement e WHERE e.email = :email"), @NamedQuery(name = "Enseignement.findByT\u00e9lphone", query = "SELECT e FROM Enseignement e WHERE e.t\u00e9lphone = :t\u00e9lphone"), @NamedQuery(name = "Enseignement.findByAdresse", query = "SELECT e FROM Enseignement e WHERE e.adresse = :adresse")}) public class Enseignement implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") private Integer id; @Basic(optional = false) @NotNull @Size(min = 1, max = 12) @Column(name = "Nom") private String nom; // @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation @Basic(optional = false) @NotNull @Size(min = 1, max = 12) @Column(name = "Email") private String email; @Basic(optional = false) @NotNull @Size(min = 1, max = 22) @Column(name = "T\u00e9lphone") private String télphone; @Basic(optional = false) @NotNull @Size(min = 1, max = 22) @Column(name = "Adresse") private String adresse; public Enseignement() { } public Enseignement(Integer id) { this.id = id; } public Enseignement(Integer id, String nom, String email, String télphone, String adresse) { this.id = id;
Master SPI Rapport de projet
9 Copyright ©2014 Shili Mohamed, [email protected]
this.nom = nom; this.email = email; this.télphone = télphone; this.adresse = adresse; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTélphone() { return télphone; } public void setTélphone(String télphone) { this.télphone = télphone; } public String getAdresse() { return adresse; } public void setAdresse(String adresse) { this.adresse = adresse; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Enseignement)) { return false; } Enseignement other = (Enseignement) object; if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; }
Master SPI Rapport de projet
10 Copyright ©2014 Shili Mohamed, [email protected]
@Override public String toString() { return "com.Enseignement[ id=" + id + " ]"; } }
Enseignement.java
<?xml version="1.0" encoding="UTF-8"?> version="1.0" encoding="UTF-8" standalone="yes" <enseignement> <adresse>3180 bouhajla</adresse> <email>[email protected]</email> <id>2</id> <nom>shili mohamed</nom> <télphone>21307656</télphone> </enseignement>
Fichier XML
Figure N°6 : Résultat finale
Master SPI Rapport de projet
11 Copyright ©2014 Shili Mohamed, [email protected]
Les Web Services possèdent une simplicité de mise en oeuvre : Ils rendent en
effet accessibles depuis Internet des fonctionnalités d’une application exixtante
tout en ne modifiant pas en profondeur le systeme d’information de
l’entreprise.Il s’agit de l’ajout de briques suplémentaires. Pour cela, les Web
Services exploitent les standards d’échange Internet.
Les services Web avec ses protocoles et ses standards avance vers toujours plus
de normalisation. Déjà, le protocole d’échange de messages SOAP et le langage
WSDL pour la définition de l’interface standardsent la couche de transport. Les
Web Services reposent sur des bases solides(SOAP et WSDL)qui ont prouvé leur
efficacité et leur maturité même si un normalisation complète n’existe pas
encore.
Cette standardisation permet une grande interopérabilité entre des
applications de technologie différente : les protocoles SOAP, WSDL et UDDI
permettent de simplifier l’utilisation des services auxquels ils sont liés par
l’utilisation de fichiers textuels, donc lisibles par l’utilisateur. Leur contenu se
limitant aux éléments essentiels d’interopérabilité, ces standards assurent une
grande indépendance de l’implémentation par rapport au système
d’exploitation, à l’architecture de la machine ou au standard utilisé.
Un des avantages principaux des Web Services est qu’ils sont basé sur Internet
qui est on le sait fiable et mature.
Master SPI Rapport de projet
12 Copyright ©2014 Shili Mohamed, [email protected]
source : http ://www.softeam.fr/technologies_web_services.php
Sources: http ://fr.wikipedia.org/wiki/XML
http://www.irisa.fr/coo/2001/W3CSOAP1.pdf
http://www.w3.org/2003/06/soap12-pressrelease.html.fr
http://igm.univ-mlv.fr/~dr/XPOSE2005/rouvio_WebServices/soap.html
http://www.commentcamarche.net
http://www-adele.imag.fr/users/Didier.Donsez/cours
http://www.w3schools.com/soap/