Académique Documents
Professionnel Documents
Culture Documents
Plan
Introduction
Cours1: Web Services
Cours2: Technologie des Services Web
Cours3: Composition des Services Web
Cours4: Services Web Sémantiques
Conclusion
1
18/10/2023
Introduction
L’informatique distribuée (distributed computing) .. un vieux rêve
Introduction
Ce qu’on a besoin?:
2
18/10/2023
3
18/10/2023
4
18/10/2023
Parcourir
le Web
Programmer
le Web
Les services Web .. une révolution plus qu’une évolution (selon certains chercheurs)
Master 1 RT: 2023-2024 10
5
18/10/2023
Caractéristiques
Cette définition définit un service Web comme étant une application ou un
composant logiciel ayant les caractéristiques suivantes:
6
18/10/2023
Les Web Services sont basés sur les protocoles et les langages du Web:
- HTTP, XML, TCP/IP pour la couche réseau
- Ne nécessite pas une configuration réseau particulière
Les Web Services sont définis par des standards OASIS, W3C, WS-I et IETF
Les Services Web WS-* (services Web étendus) exposent ces mêmes
fonctionnalités sous la forme de services exécutables à distance. Leurs
spécifications reposent sur les standards UDDI/SOAP et WSDL:
- Annuaire de Web Services : UDDI
- Contrat : WSDL
- Consommer : SOAP
Les services web de type Representational state transfer (REST) exposent
entièrement ces fonctionnalités comme un ensemble de ressources (URI)
identifiables et accessibles par la syntaxe et la sémantique du
protocole HTTP et ses méthodes (POST, GET, PUT et DELETE) . Les
Services Web de type REST sont donc basés sur l'architecture du web et
ses standards de base : HTTP et URI.
7
18/10/2023
Description WSDL
Découverte Publication
des services des services
avec SOAP
Applications
clientes
Service Web
Invocation
Utilisateur de services Web des services Fournisseur de services Web
Standards
WSDL: Web Services Description Language (Description/Contract)
SOAP: Simple Object Access Protocol (Communication)
UDDI: Universal Description Discovery and Integration (Publication & Découverte)
8
18/10/2023
9
18/10/2023
10
18/10/2023
11
18/10/2023
Oui mais …
- Pratiquement tous les fournisseurs de Web Services exploitent
l’architecture REST (besoins de performance)
- Certains (comme Google) ont arrêtés les Web Services étendus
- eBay propose encore des Web Services étendus
12
18/10/2023
Annuaire UDDI
yp
wsdl
wp
Tomcat
APACHE
Client HTTP
Services
XML parser
1. Conception
13
18/10/2023
Annuaire UDDI
yp
wsdl
wp
Tomcat
APACHE
Client HTTP
Services
XML parser
Service a été
déployé donc sera
disponible
Master 1 RT: 2023-2024 27
Annuaire UDDI
2. Enregistrement
yp
wsdl
wp wsdl
Tomcat
APACHE
Client HTTP
Services
XML parser
14
18/10/2023
Annuaire UDDI
wsdl yp
wsdl
4. Envoi fichier wp
WSDL
3. Demande service Tomcat
APACHE
Client HTTP
Services
XML parser
Annuaire UDDI
yp
wsdl
wp
Tomcat
4. Invocation service
APACHE
Client HTTP
Services
15
18/10/2023
Tomcat
APACHE
Client HTTP
Services
wsdl AxisServlet reçoit XML parser
le message du
client
Annuaire UDDI
yp
wsdl
wp
Tomcat
APACHE
5. Envoie la réponse
Client HTTP
Services
16
18/10/2023
Exporter le descripteur
java org.apache.axis.client.AdminClient deploy.wsdd
17
18/10/2023
http://localhost:8080/axis/jwspages/MyFirstWebService.jws?WSDL
18
18/10/2023
MyFirstWebService port =
service.getMyFirstWebService();
String st = "";
int price = port.getPrice(st);
Les services Web fournissent l'interopérabilité entre divers logiciels fonctionnant sur
diverses plates-formes.
Les services Web utilisent des standards et protocoles ouverts.
Les protocoles et les formats de données sont au format texte dans la mesure du
possible, facilitant ainsi la compréhension du fonctionnement global des échanges.
Basés sur le protocole HTTP, les services Web peuvent fonctionner au travers de
nombreux pare-feu sans nécessiter des changements sur les règles de filtrage.
Les outils de développement, s'appuyant sur ces standards, permettent la création
automatique de programmes utilisant les services Web existants.
Inconvénients
Les normes de services Web dans certains domaines sont actuellement récentes.
Les services Web souffrent de performances faibles comparée à d'autres approches de
l'informatique répartie telles que le RMI, CORBA, ou DCOM. Par l'utilisation du
protocole HTTP, les services Web peuvent contourner les mesures de sécurité mises en
place au travers des pare-feu.
19
18/10/2023
Services Web
de Réservation
d’hôtel
Définitions :
- Un service web est dit composé ou composite lorsque son exécution implique des
interactions avec d'autres services web afin de faire appel à leurs fonctionnalités. La
composition de services web spécifie quels services ont besoin d'être invoqués, dans
quel ordre et comment gérer les conditions d'exception.
- La composition consiste à combiner les fonctionnalités de plusieurs services au sein
d’un même processus métier (ou Business Process) dans le but de répondre à des
demandes complexes qu’un seul service ne pourrait satisfaire. Le processus métier est
une représentation concrète des tâches à accomplir dans une composition
Master 1 RT: 2023-2024 39
20
18/10/2023
21
18/10/2023
22
18/10/2023
Ils existent plusieurs langages de définition des processus métiers (composition) de type
orchestration ou chorégraphie dont les plus connus sont:
BPML: Business Process Modelling Language
WSCI: Web Service Choreography Interface
WSCL : Web Service Conversation Language
WS-CDL: Web Service Choreography Description Language
XLANG : XML Business Process LANGuage (Microsoft)
WSFL: Web Service Flow Language (IBM)
BPEL4WS ou BPEL: Business Process Execution Language for Web Services :
result of XLANG and WSFL merge
...
BPEL a été conçu spécifiquement comme un langage pour la définition des processus
métier. Il support deux types différents de processus [Juric05]:
23
18/10/2023
Deux façons d’interagir entre un processus BPEL et des Web Services externes:
a) Un processus BPEL invoque des opérations issues d’autres Web Services
(dit Partenaires) : Lien de partenaire (PartnerLink) de type invocation
b) Un processus BPEL reçoit des invocations issues de clients : Lien de
partenaire (PartnerLink) de type client
24
18/10/2023
3) Les données : Le processus BPEL a un état, cet état est maintenu par des variables
contenant des données. Ces données sont combinées afin de contrôler le
comportement du processus. Elles sont utilisées dans les expressions et les
opérations d’affectation. Les expressions permettent d’ajouter des conditions de
transition ou de jointure au flot de contrôle. L’affectation (assignment) permet de
mettre à jour l’état du processus, en copiant les données d’une variable à une autre
ou en introduisant de nouvelles données en utilisant les expressions.
Dans BPEL il n’y a pas de flot de données, BPEL se sert des variables pour passer
une donnée d’une activité à une autre, à l’aide de l’affectation.
25
18/10/2023
26
18/10/2023
27
18/10/2023
28
18/10/2023
29
18/10/2023
30
18/10/2023
31
18/10/2023
32
18/10/2023
33
18/10/2023
34
18/10/2023
35
18/10/2023
36
18/10/2023
<assign>
<copy>
<from ...>
<to ...>
</copy>
</assign>
37
18/10/2023
L’activité Invoke est utilisée pour déclencher l’appel à une opération sur un portType
défini par un lien de partenaire
Seules les opérations suivant le modèle One-way et Request/Response peuvent
être invoquées par un BPEL
L’invocation d’opération nécessite l’utilisation de variables en entrée et en sortie pour
initialiser la requête et la réponse
Elle est définie par la balise <invoke>
- name : nom de l’activité
- partnerLink : identifiant du lien partenaire
- operation : l’opération à invoquer
- portType : le portType pour de l’opération
- inputVariable : informations à transmettre à la requête
- ouputVariable : utilisées pour récupérer les données de la réponse
38
18/10/2023
L’activité Invoke ne permet de déclencher que des opérations issues d’un Service
Web étendu (via WSDL)
Les travaux de standardisation s’intéressent actuellement à la possibilité d’invoquer
différents services de technologies différentes (Service Web de type REST)
Toutefois, il est actuellement possible d’invoquer des services sous condition de
définir un adaptateur WSDL
Démarche
- Définir un Service Web « Adaptateur » respectant le contrat du service (défini
par un EJB) à invoquer
- Implémenter le mapping entre le Service Web « Adaptateur » et le service à
invoquer
- Ajouter comme lien de partenaire le Service Web Adaptateur
- Invoquer les opérations
39
18/10/2023
40
18/10/2023
Syntaxique Sémantique
Evolution vers les Services Web Sémantiques
L’objectif des SWSs est de faciliter les tâches liées à leur utilisation, telles que la
découverte, la sélection, l’orchestration et l’invocation, par le biais de leurs descriptions
qui rendent la sémantique explicite et compréhensible par les machines.
Master 1 RT: 2023-2024 81
Lors de la recherche des services web qui ont la fonctionnalité de « vente de voiture »
peut renvoyer comme résultat aussi bien des services proposant la vente de voiture
grandeur nature que de voitures miniatures pour enfants
41
18/10/2023
Service Web:
Un Service Web est un composant logiciel permettant la communication et l'échange de
données entre applications et systèmes hétérogènes dans des environnements
distribués. Il s'agit donc d'un ensemble de fonctionnalités exposées sur Internet ou sur
un Intranet, par et pour des applications ou machines, sans intervention humaine, et en
temps réel [WikiPedia]
Les données doivent être encodées de tel sorte que les contenus (sens et sémantique)
du Web soient plus « compréhensibles » pour les machines(des programmes) :
42
18/10/2023
Ontologie
Ressources du Web
La nécessité de l'indexation de toutes les ressources du web, documents et services,
pour une exploitation optimale.
- Objectif : Identifier et localiser les diverses ressources du Web
- Moyen : Associer à chaque ressource Web un URI (Uniform Resource Identifier)
43
18/10/2023
44
18/10/2023
Niveau
Sémantique
Niveau
Syntaxique
Niveau Adressage
et Encodage
45
18/10/2023
Une ontologie est une description explicite formelle de concepts dans un domaine
concret permettant d’annoter les paramètres et les opérations des web services.
Cette description sémantique des services Web peut se faire par deux types de
langages de description différents:
46
18/10/2023
47
18/10/2023
part Part
message 0..*
0..*
Message
input 0 . . 1 +name
+name output 0 . . 1
+element
+ type
fault 0 . . 1
service port
0..*
Service Port
0..*
+name +name Extensible Element
48
18/10/2023
EuroBanking
(Date)
FlightBooking Prix tolal
Service Web « Prix » Service Web Hétérogénéités de valeur($
Hétérogénéités sémantiques Billets d'avion et €).
Fin
49