Support de Cours: Ervice Riented Rchitecture
Support de Cours: Ervice Riented Rchitecture
Support de Cours: Ervice Riented Rchitecture
SOA
SERVICE ORIENTED ARCHITECTURE
Options IQL et TI
Filière Génie Informatique – EMI
Préparé par :
Pr. Fatima-Zahra BELOUADHA
Objectifs du cours
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 1
Le concept Service
Plan
L’architecture SOA
Le concept Service Web
Les standards des services Web
L’API JAX-Web
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 2
Ch1. Le concept Service
Evolution des paradigmes de développement
Types de services
Propriétés du service
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 3
Evolution des paradigmes de
développement
La conception d’un programme informatique s’effectue
conformément à un paradigme de développement (PD)
þ SOA
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 5
Définition du Service
Composant logiciel :
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 6
Orchestration des services
Les services peuvent être composés (agrégés) dans le but
de réaliser un processus donné
L’orchestration leur permet de communiquer sans avoir à
se connaître pour préserver leur couplage lâche (leur
indépendance)
Un moteur d’orchestration se charge d’appeler les
services selon l’enchaînement désiré
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 7
Types de services
Applicatif
Fonctionnel
Transverse (Infrastructure)
Host
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 8
Service Applicatif
Il traduit la logique applicative d’une application,
exprimée par les uses cases ou les processus métier
- C’est un service de la couche applicative, qui n’est en général
utilisé que dans le contexte de l’application où il a été créé
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 10
Service fonctionnel
C’est un service de la couche Services, réutilisable dans
des contextes variables
Faiblement Couplés
Découvrables (dynamiquement)
Composables
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 12
Réutilisabilité par contrat
Le service est réutilisable conformément à un contrat entre
le fournisseur et le consommateur
Le contrat décrit :
- La syntaxe du service : opération, input, output, format, protocole…
- La sémantique de son utilisation: pré-conditions, post-conditions…
- Sa QOS : temps de réponse attendu, temps de reprise après
interruption…
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 14
Abstraction et Prédictibilité
Il est Prédictible
- Son comportement et sa réponse lors de la réception d’une
requête ne varient pas
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 15
Large granularité et modularité
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 16
Autonomie et statelessness
Autonomie :
- Le service est Indépendant des services externes :
son comportement est indépendant du contexte
fonctionnel et technique dans lequel il a été invoqué
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 17
Interopérabilité
Possibilité de communiquer avec un système
hétérogène
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 18
Couplage faible (lâche)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 19
Découvrabilité
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 20
Composabilité
Avantages :
- Apport de valeur ajoutée (répondre à un nouveau
besoin complexe)
- Augmentation de la modularité : vu qu’un service
complexe peut être décomposé en services simples
pouvant être déployés chacun de façon atomique
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 21
CH2. Architecture SOA
Motivations et Enjeux
Définition et Fondamentaux
Couches et Méthodes de conception
Intégration et ESB
SOA Vs Architectures classiques
SOA et urbanisation
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 22
Architecture distribuée
Architecture où le traitement des données des applications
est distribué sur plusieurs machines en réseau
- Exemples : Architectures client-serveur, N-Tiers, Web
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 26
Technologies d’implémentation de SOA
L’architecture SOA peut être implémentée par différentes
Technologies :
- CORBA,
- DCOM (Microsoft),
- APIs : RMI ou JMS (combinées aux Interfaces Java),
- Services Web (protocole SOAP)
Fournisseur de service :
- Fournit un service accessible via une adresse
- publie son contrat dans le registre de services
- et exécute les requêtes des consommateurs (un Proxy et un cache peuvent être
utilisés du côté consommateur pour délocaliser le traitement et réduire le nombre
d’appels réseau)
Consommateur de service : application, service…
- Cherche le service dans le registre (son adresse)
- Se lie dynamiquement au service (binding)
- Invoque le service via une requête conforme au contrat
Registre de services : Annuaire des contrats de services
- Le Contrat décrit le format d’échange (format des requête/réponse, les pré et post
conditions du service et sa QoS, ex: temps de réponse)
- Le contrat est renouvelable par demande de nouveau bail à partir du registre
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 28
Annuaire et Référentiel de services
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 29
Endpoints et Binding
Le Endpoint est le port ou point d’accès au service
- Il est décrit par un triplet : l’adresse du service, un binding et la
liste des opérations du service accessibles à partir de ce endpoint
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 31
Le modèle en Couches de la SOA (2/3)
Présentation : renseigne les types de Clients (services
Web, servlets ou pages JSP) des services
Default
SignOut SignIn Search Category Items Item Shopping Help Error
Details Cart
Presentation
Layer Check Order Order Order
My Edit Create
out Billing Shipping Process
Account Account Account
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 34
Exemple e-store : Domaines
Default
SignOut SignIn Search Category Items Item Shopping Help Error
Details Cart
Presentation
Layer Check Order Order Order
My Edit Create
out Billing Shipping Process
Account Account Account
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 35
Exemple e-store : Services
Presentation
Layer
Business
Logic
Layer
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 36
Mise en œuvre de la SOA
SOMA
- Service Oriented Modeling and architecture
- Proposée par IBM pour l’analyse, conception,
implémentation et développement d’architecture SOA
Praxeme
- Unilog Management et Orchestra Networks
- Initiée par la société SAGEM et déposé par le
Praxeme Institute pour couvrir tous les aspects de
l'entreprise, de la stratégie au déploiement
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 37
Modélisation des services et Outils
d’Implémentation pour la SOA
Modélisation :
- UML 2.0 (version qui intègre des composants logiciels)
Implémentation :
- JEE à travers l’utilisation de JEE beans - EJB for Web apps et du
serveur d’application JEE (conteneur moins lourd que J2EE)
- Framework Spring à travers l’utilisation des spring Beans et du
conteneur léger tomcat (serveur Web)
- IBM WebSphere pack for SCA, Apache Tuscany SCA, FraSCati
(open source)… qui implémentent le modèle SCA (Service
Component Architecture)
- Modèle proposé par IBM/Oracle/TIBCO pour la composition
d’applications selon les principes de SOA
- OpenCCM qui implémente le modèle CCM (CORBA Component
Model), modèle de composant CORBA
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 38
ESB (Enterprise Service Bus)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 39
Intérêt de l’ESB
Ilimplémente une architecture distribuée et fournit
des services de transformation de données,
routage, orchestration de services, sécurité,
transaction et interopérabilité
Ilpermet en fait aux applications hétérogènes de
communiquer de façon simple, mais standardisée
à la différence des EAI basés sur une logique
d’intégration propriétaire
Ilest donc recommandé pour éviter le couplage
fort entre fournisseur et consommateur, mais il
n’est pas obligatoire
Il n’est pas, mais intègre un moteur d’orchestration
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 40
Connectivité de l’ESB
L’ESB est connecté aux applications par des
connecteurs d’adaptation de formats et spécificités
- Connecteurs techniques vers des formats d’échange :
fichiers CSV, formats XML, RMI, RPC…
- Connecteurs métiers pour intégrer des progiciels
- Connecteurs propriétaires conformes à J2CA
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 41
Solutions ESB
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 42
Autres formes d’implémentation d’un
ESB
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 43
SOA Vs Client/serveur
Architecture Client/ SOA
Serveur
Intra-entreprise Inter_entreprises
Limitée à un ensemble de Indépendante du langage
langages de programmation de programmation
Procédurale, OO Pilotée par les messages
Protocole de transport Protocole de transport au
propriétaire choix
Fortement couplé Faiblement couplé
Traitement efficace Traitement lourd
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 44
SOA Vs Architecture Web
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 45
SOA Vs architecture OO
Archi.
OO
(ex
:
CORBA)
SOA
Grain
trop
fin
(Pb
de
scalabilité)
Grain
plus
gros
Techniques :
- Réduire la complexité de la solution
- Construire les services une seule fois et les utiliser
fréquemment
- Garantir une intégration standardisée permettant de
communiquer avec des clients hétérogènes
- Faciliter la maintenance
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 47
SOA/BPM et urbanisation
AméliorerL’urbanisation du SI vise à le rendre
optimisé et agile, construit autour des processus
et fondé sur une architecture ouverte et à base de
composants :
- Le couple BPM/SOA constitue pour l’urbanisation un
socle qui contribue à l’atteinte de ses objectifs, vu qu’il
est source d’optimisation et d’agilité pour le SI
- Les processus métiers déployés sur l’architecture SOA
sont implémentés par des composants réutilisables,
contribuant à l’optimisation du SI
- Le fait que les processus métier soient implémentés
sous forme de services dans le contexte de l’architecture
SOA, fait que leur implémentation et le SI soit faiblement
couplés, et que le SI soit par la suite flexible
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 48
CH3. Le concept Service Web
Ce que le service Web pour SOA
Définition
Types de services Web
Protocoles des services Web
Intérêts et avantages
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 49
SOA et Services Web
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 50
Service Web
Selon W3C :
Application logicielle identifiée par un URI, dont les
interfaces et le binding peuvent être définis, décrits et
découvert par des artifacts XML, et supportent des
interactions directs avec d’autres applications logicielles
utilisant des messages à base de XML via des protocoles
à base d’Internet
Composant logiciel :
- modulaire implémenté dans n’importe quel langage
- déployé sur n’importe quelle plateforme
- enveloppé dans une couche de standards dérivés du XML
- ne nécessitant pas une configuration réseau particulière
- publié, localisé et invoqué de n’importe quel point du Web
- accessible via des protocoles standards Internet
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 51
Protocoles des services Web
Mais :
- REST n’est pas un remplacement générique de SOAP (ne couvre
qu’une partie des besoins)
- REST utilise WADL (Web Application Description Language) pour
décrire les Contrats, et qui est non standardisé : initiative isolée de
SUN
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 53
Services Web étendus
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 54
Cycle d’utilisation des services
Web étendus
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 55
Avantages des services Web
Offrir
une technologie adaptée aux applications
B2B, EAI (Enterprise Application Integration), P2P
Rendre possible et plus facile l’interconnexion et
l’interaction des systèmes et composants
hétérogènes
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 58
HTTP (HyperText Transfer Protocol)
Protocole de communication sur Internet
Disponible sur toutes les plateformes
Simple (a besoin de peu de support pour fonctionner)
Sans connexion (peu de paquets sont nécessaires
pour l’échange d’informations)
Niveau de sécurité simple et effectif
Le seul protocole utilisable à travers des pare-feu
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 59
SOAP (Simple Object Access Protocol)
Protocole d’échange d’informations XML entre client et
serveur HTTP (standard de W3C, initié par Microsoft et IBM)
- De rôle similaire à RPC
Protocole minimal pour l’appel des méthodes sur des
serveurs, services, composants, objets, et qui n’impose pas
l’utilisation de :
- API ou Runtime (API)
- ORB (CORBA,DCOM…) ou serveur Web particulier (Apache, IIS…)
- Modèle de programmation
Porté sur toutes les plateformes et technologies
Extensions : SOAP sur SMTP/FTP, MOM …
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 60
Requête et réponse SOAP
Peuvent servir à échanger par exemple :
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 61
Exemple : requête SOAP (1/2)
Appel du service hel (opération : HelloWorld)
Message SOAP pour appeler
l’opération makeHelloWorld
avec un paramètre value
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 62
Exemple : requête SOAP (2/2)
Appel du service hel (opération : HelloWorld)
Message
SOAP pour appeler
l’opération simpleHelloWorld,
sans de paramètre
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 63
Exemple : Réponse SOAP
Messages de Réponses aux appels du service HelloWorld
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 64
Structure d’un message SOAP
transporté par HTTP
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 65
Structure de l’enveloppe SOAP
Elément racine du message identifié par la balise
<soapenv:Enveloppe>
Il spécifie les espaces de désignation et de
codage de données (namespaces)
Ou contenu
de la réponse
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 66
Entête SOAP (Header)
Elément facultatif du message identifié par la
balise <SOAP-ENV:Header>
- Utilisé surtout quand le message est traité par plusieurs
intermédiaires avant le récepteur final
Rajoute des info. non applicatives (supplémentaires)
- Indique à l’application réceptrice que le Message est
optionnel/obligatoire (attribut mustUnderstand=0 ou 1)
- Indique des Transactions, sessions, l’émetteur (cas de
FTP)…
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 67
Exemple : Entête SOAP dans un
transfert successif de message
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 68
Corps SOAP (Body)
Elément facultatif du message identifié par la
balise <SOAP-ENV:Body>
Il comprend des informations applicatives :
- Structure Opération (Nom d’opération (suivi de Response) et
ses paramètres sous forme de structures s’ils sont de type
complexe (valeurs d’entrées ou de retour), fault (<SOAP-
ENV:Fault>)…
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 69
Exemple de Corps SOAP appelant une
opération d’un service Web (1/2)
3 paramètres
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 70
Exemple de Corps SOAP appelant une
opération d’un service Web (2/2)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 71
Exemple de Corps SOAP contenant une réponse
d’une opération d’un service Web (2/2)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 72
Exemple de réponse SOAP
transportée par http
Codes de retour : 2xx (message reçu), 500 (message fault).
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 73
Exemple de requête SOAP
transportée par http
Méthode POST avec Attribut SOAPAction (intention de la Rq)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 74
Règles d’encodage de données (1/3)
Types primitif
Structure
Enumération
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 75
Règles d’encodage de données (2/3)
Référence
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 76
Règles d’encodage de données (3/3)
Tableau
Tableau creux
Tableau d’octets
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 77
Encodage des faults
Faultcode (obligatoire) : utilisé par un logiciel
pour identifier des faults (ex : switch (faultcode) …
- 4 groupes de code : Client, Serveur,
MustUnderstand, VersionMismatch
- Ex : Client.authentification
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 79
Echanges SOAP via HTTP
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 80
Faut-il connaître SOAP ?
Non : Utiliser des APIs fournissant une abstraction des
messages SOAP
Oui (mais il faut connaître XML et XML Schema) pour :
- Débugger une application
- Réaliser des tests via l’outil graphique SOAP UI
- Intercepter les messages bas niveau SOAP (via les
handlers)
SOAP UI (www.soapui.org)
- Disponible en Standalone ou intégré (Eclipse, Intellij,
Netbeans, Maven...) et indépendant de la plateforme
de développement
- Supporte les Services Web étendus ou REST
- Permet d’inspecter, invoquer, développer et simuler
des Services Web via des bouchons (mocks), et
d’effectuer des tests QoS (temps de réponse...)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 81
SOAP et concurrents
RMI RPC DCOM CORBA SOAP
Organisme Sun SUN/ Microsoft OMG W3C
OSF
Plateforme Multi Multi Win32 Multi Multi
Langage de java C, C++ C++, VB, VJ, Multi Multi
développement … Opascal…
Langage de Java RPCGE ODL IDL WSDL
description N
Transport TCP, TCP, IP/IPX GIOP, HTTP,
HTTP, UDP IIOP HTTPR,
IIOP SMTP
transaction Non Oui Oui Oui
Sécurité SSL, - - SSL SSL
JAAS
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 82
SOAP Vs RMI, DCOM et CORBA
(Avantages et inconvénients)
RMI DCOM CORBA SOAP
-‐ Monolang.
-‐ Mul;langage
-‐ Mul;langage
-‐ Mul;langage
-‐ Mul;-‐plate.
-‐ Monoplateforme
-‐ Mul;plat.
-‐ Mul;plaforme
-‐ Problème
de
-‐ Protocole
orienté
-‐ Installa;on
-‐ Spécifica;on
non
performance
connexion
(+eurs
coûteuse
(si
propriétaire
(W3C)
et
sécurité
paquets
doivent
un
ORB
est
à
-‐ Requêtes/réponses
être
échangés
acheter)
en
XML
pour
créer
ou
-‐ Implémenta;on
maintenir
une
facile
sur
différents
session)
protocoles
de
-‐ Faible
diffusion
transport
(Non
disponible
-‐ Capable
de
franchir
sur
Mac
OS,
NT
les
farewalls
(mais
3.51,
Win95,
le
contrôle
d’accès
WinCE2,
coûteux
à
faible
granularité
sur
Unix,
MVS,
sera
perdu)
VMS
ou
NT)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 83
WSDL (Web Service Description
Language)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 84
Eléments WSDL
<definitions> : racine du document
<types> : Types de données sous format schéma XML
<Part>
3 opérations
- addPerson : Entrée (Person) + Sortie (booléen pour
indiquer l’état de création)
- addPerson : Entrées (3 string : name, address et
birthyear)
- getPersonByName : Entrée (string) + Sortie (Person)
- getPersons : Sortie (tableau d’objets Person)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 86
WSDL : l’élément types
2 variantes :
- Contient la définition des types de données
(Schéma XSD, schéma XML…)
• Facultatif si les types sont simples (Integer,
Boolean... )
- Importe un fichier Schéma XML contenant la
définition des types
• Avantage : réutiliser des types et d’alléger
le fichier WSDL
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 87
Exemple WSDL : définition des types
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 88
Exemple WSDL : Import d’un fichier
de types
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 89
WSDL : l’élément message
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 90
Exemple WSDL : l’élément message
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 91
WSDL: les éléments portType et opération
Interface contenant les prototypes
d’opérations fournies par le service et définie
par les attributs :
- Name : nom du portType
- <opération> : 1 ou +eurs décrivant chacun le
prototype d’une méthode fournie par le service
Chaque élément <opération> est défini par les
attributs :
- name : nom de l’opération
- <input message>/<output message>/ <fault> :
référence à 1 message décrivant les paramètres d’E/
S et le message d’erreur de l’opération
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 92
Exemple WSDL : l’élément portType
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 93
Types d’échanges assurés par une
opération
One-way : Message input sans réponse
Notification :
Request/Response :
Solicit - response :
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 95
WSDL : l’élément binding
Décrit un portType du point de vue technique
- Protocole (SOAP 1.1 ou 1.2, HTTP GET & Post : ex,
transfert d’images) utilisé pour manipuler un <portType>
Est défini par les attributs :
- name : nom du binding
- type : portType concerné
Sa structure (éléments qu’ils contient) dépend du
protocole utilisé
Plusieurs <binding> peuvent être définis pour
appeler un portType de différentes manières
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 96
WSDL: Structure de l’élément binding
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 97
WSDL : Binding SOAP
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 98
WSDL : les éléments service et port
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 100
Exemple 2 : service HelloWorld
2 opérations
- makeHello : Entrée (string) + Sortie (string)
- simpleHello : Sortie (string)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 101
Exemple 2 : service HelloWorld en WSDL
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 102
Exemple 2 : service HelloWorld en WSDL
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 103
Organisation d’un document WSDL
Partie abstraite (types+Messages+portTypes) : réutilisable
Partie concrète (binding+services)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 104
Outils pour manipuler des documents
WSDL
Edition
- Notepad++ (texte : XML)
- Eclipse JavaEE
- Netbeans
- Visual Studio
- Environnements de développement de SW
Validation
- www.validwsdl.com
Test
- SOAPUI
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 105
UDDI (Universal Description,
Discovery and Integration)
Annuaire mondial de services d’entreprises décrits en
WSDL et accessibles via des requêtes SOAP
- Proposé en 2000 (Microsoft, Ariba et IBM, puis SUN, Oracle,
HP…), V2 (2002), V3 (2003) adoptée en 2005
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 107
Schéma UDDI
Le modèle UDDI est défini sous forme de schéma W3C XML
Pages
blanches:
Providers
(clé)
Pages
jaunes:
info
sur
le
service
+binding
Templates
Coordonnées
du
service
:
Pt
d’accès+tModels
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 108
Exemple de Binding template
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 109
Exemple de TModel
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 110
Interface UDDI
Implémentée sous forme de service Web SOAP, elle
permet :
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 111
BPEL
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 112
BPEL et services Web
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 113
Processus BPEL
Service Web, chef d’orchestre, du point de vue
client
Synchrone
- Le client se connecte au service (processus) et attend sa
terminaison
Asynchrone
- Le client se connecte au service (processus) qui l’informe de sa
terminaison (procédé callback)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 114
Eléments BPEL : Partner Links (1/2)
2 types :
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 115
Eléments BPEL : Partner Links (2/2)
Attributs :
- name : nom du partnerLink
- myRole : rôle du processus
- partnerRole : rôle du partenaire
- partnerLinkType : type du partnerLink défini dans la
description WSDL
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 116
Eléments BPEL : Activités (1/3)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 117
Eléments BPEL : Activités (2/3)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 118
Eléments BPEL : Structures de contrôle
(1/2)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 119
Eléments BPEL : Structures de contrôle
(2/2)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 120
Eléments BPEL : Variables
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 121
Eléments BPEL : Exemples de
variables
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 122
Exemple illustratif d’un processus BPEL
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 123
Conception et déploiement de
processus BPEL
Outils :
- Editeur graphique
- Moteur BPEL
Solutions :
- OpenESB (via Glassfish 2.1) et Netbeans 6.7.1
- Apache ODE et Eclipse BPEL Editor
- JBoss jBPM (uniquement le moteur BPEL)
- Oracle BPEL Process Manager (Weblogic + Jdeveloper)
- Orchestra
- IBM (Weblogic+Workshop)
- BPEL for Windows Workflow Foundation (Visual Studio
et Biztalk)
- …
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 124
Bibliographie
Yves
Caseau,
Urbanisa;on,
SOA
et
BPM,
Le
point
de
vue
d’un
DSI
3ème
édi;on,
Dunod,
Paris,
2008
Mark
D.
Hansen.
SOA
Using
Java
Web
Services.
Pren;ceHall.
Edi;on
April
2007
L.
Maesano,
C.
Bernard
et
X.
Le
Galles.
Services
Web
en
J2EE
et
.NET
:
concep;on
et
réalisa;on.
Eyrolles
2003
J.
McGovern,
S.
TyaGI,
M.
E.
Stevens,
S.
Mathew.
Java
Web
services
architecture.
Morgan
Kauffmann.
2003.
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 125
Webographie
Livres
Blancs
:
Cyrille
Devaux.
Urbanisa;on
et
architecture
orientée
service
(SOA)
:
Quelques
bonnes
pra;ques
pour
leur
mise
en
œuvre.
Livre
blanc.
Aubay.
2008.
Consulté
le
10
Juin
2013.
hqp://www.aubay.com/en/news/publica;ons/publica;ons/urbanisa;on-‐
et-‐architecture-‐orientee-‐service-‐soa-‐2008/
David
A.
Chappell.
Enterprise
Service
Bus.
O’Reilly
&
Associates.
June
2004.
Mickaël
BARON.
SOA
–
Services
Web
Etendus
:
Développer
Services
Web.
hqp://petals.ow2.org/docs/Livre-‐Blanc-‐ESB-‐fr.pdf
EBM.
Nouvelles
technologies
pour
l’intégra;on
:
les
ESB.
Janvier
2006.
hqp://download.forge.objectweb.org/petals/Livre-‐Blanc-‐ESB-‐fr.pdf
Adrien
Louis.
Bus
de
Service
-‐ESB-‐
Nouvelle
technologie
pour
l’intégra;on
.
Version
1.4
–
Novembre
2008.
Petalslink.
hqp://www.needocs.com/document/professionnel-‐tutoriel-‐informa;que-‐
graphisme-‐integra;on-‐bus-‐service-‐esb-‐nouvelle-‐technologie-‐l-‐integra;on,
2363
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 126
Webographie (suite)
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 127
Webographie (suite)
Spécifica-ons
OASIS.
UDDI
Version
2.04
API
Specifica;on,
UDDI
Commiqee
Specifica;on,
19
July
2002.
hqp://uddi.org/pubs/ProgrammersAPI-‐V2.04-‐Published-‐20020719.pdf
OASIS.
Web
Services
Business
Process
Execu;on
Language
Version
2.0.
11
April
2007.
hqp://docs.oasis-‐open.org/wsbpel/2.0/OS/wsbpel-‐v2.0-‐OS.html
W3C.
Simple
Object
Access
Protocol
(SOAP)
1.1.W3C
Note
08
May
2000.
hqp://www.w3.org/TR/2000/NOTE-‐SOAP-‐20000508/#_Toc478383514
W3C.
Web
Services
Descrip;on
Language
(WSDL)
1.1.
W3C
Note
15
March
2001.
hqp://www.w3.org/TR/wsdl
W3C.
Web
Services
Descrip;on
Language
(WSDL)
Version
2.0
Part
1:
Core
Language.
W3C
Recommenda;on
26
June
2007.
hqp://www.w3.org/TR/wsdl20/
Fatima-Zahra BELOUADHA. SOA. 3ème année. Options IQL et TI. Filière Génie Informatique. 128