Université Abderrahmane Mira de Béjaia
Faculté des Sciences Exactes
Département d’Informatique
SOA et Services Web
(Cours 2)
Dr H. EL BOUHISSI
Septembre 2023
Objectifs du cours
1 Comprendre le principe de l’architecture SOA
2 Comprendre l’intérêt et les enjeux de l’architecture SOA
3 Comprendre le concept de Services Web
2
Plan
1 Problématique
2 L’architecture SOA et le principe de service
3 Les Services Web
3
Evolution des paradigmes de programmation
• La conception d’un programme informatique s’effectue conformément à un paradigme de
programmation (PP).
• Un PP définit un concept pour représenter le monde et des techniques pour traiter ce
concept.
• Différents PP ont vu le jour et ont évolué du binaire, à différents modèles de programmation
puis à l’architecture SOA.
4
Problématique
Une architecture distribuée est une architecture où le traitement des données des applications
est distribué sur plusieurs machines en réseau : Architectures client-serveur, N-Tiers, Web
Le SI d’une entreprise souvent confronté à des changements :
• Interopérabilité ?
• Réutilisabilité ?
• Communication entre applications hétérogènes ? (Java/C#)
L’interopérabilité exprime le besoin d’échanger des données entre 2 systèmes distribués et éventuellement
hétérogènes pour un besoin d’intégration (par exemple les données d’une facture).
5
Le Paradigme SOA
• Style d’architecture distribuée qui permet de fournir ou consommer un processus métier en
tant que service.
• Offre des services réutilisables et interopérables via des interfaces standards (construites
autour de XML).
• Plusieurs partenaires peuvent communiquer et échanger des données dans le contexte de
SOA indépendamment des Plateformes et langages.
Le paradigme SOA :
• Augmenter la flexibilité
• Faiblement couplé
• Basé sur des standards
• Hétérogène
• Plusieurs propriétaires
• Distribué
Service : composant logiciel qui exécute une action pour le compte d’un client , il traduit le niveau logique
d’accès aux traitements, plutôt que le niveau physique d’implémentation. 6
Acteurs de la SOA
Fournisseur de service :
• Fournit un service accessible via une adresse
• Publie son contrat dans le registre de services
• 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. 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 7
Technologies d’implémentation de SOA
L’architecture SOA peut être implémentée par différentes Technologies :
• CORBA : Multi-langage , Multiplateforme, installation coûteuse.
• DCOM (Microsoft) : Multi-langage , Mono-plateforme, faible diffusion (non disponible pour
certains OS).
• RMI : Multi-langage , Multiplateforme, problème de performance et de sécurité.
• Services Web
Les Services Web demeurent la technologie émergente pour l’implémentation de l’architecture SOA :
• Déployés : sur n’importe quelle plateforme
• Modulaires : implémenté dans n’importe quel langage
• Enveloppés 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 8
Services Web
• Les services Web sont une technologie d’implémentation de la SOA.
• Les services Web constituent la meilleure solution disponible (standardisée).
• Selon le W3C (2004) : Un service web est un système logiciel identifié par un URI, dont les
interfaces publiques et les « bindings » sont définies et décrites en XML. Sa définition peut être
découverte dynamiquement par d’autres systèmes logiciels. Ces autres systèmes peuvent ensuite
interagir avec le service web d’une façon décrite par sa définition, en utilisant des messages XML
transportés par des protocoles Internet.
9
Infrastructure des Services Web
SOAP (Simple Object Access Protocol) : assure la communication avec et
interServices Web.
WSDL (Web Services Description Langage) : offre un schéma formel de description
des Services Web.
UDDI (Universal Description, Discovery and Integration) : offre une manière
uniforme de définir des registres des Services Web et un schéma uniformément
extensible de descriptions des Services Web.
10
Infrastructure des Services Web
11
Cycle de vie d’utilisation d’un Service Web
12
Types de Services Web
• Services Web 1.0 (Première génération = Etendus) :
utilisent les standards UDDI (annuaire)/ WSDL(contrat) / SOAP (consommation)
• Services Web 2.0 (Deuxième génération = REST(Representational State Transfer)) :
utilisent :
- Directement HTTP au lieu d’une enveloppe SOAP
- Un URI pour nommer et identifier une ressource
- Les méthodes HTTP (POST, GET, PUT et DELETE) pour effectuer les opérations de base CRUD
- REST n’est pas un remplacement générique de SOAP (ne couvre qu’une partie des besoins)
- REST utilise WADL (Web Application Description Langage) pour décrire les Contrats, et qui est non
standardisé : initiative isolée de SUN
13
HTTP (Hyper Text Transfer Protocol)
Protocole de communication dédié au web
Chaque ressource du web est identifiée par une URL
Mode de communication = requête / réponse
14
Exemples de Services Web existants
Google ([Link] :
•Accès gratuit mais limité (1000 requêtes par jour après enregistrement)
Amazon ([Link] ) •accès gratuit mais
limité (1 requête par seconde après enregistrement)
Bien d’autres ( [Link] par exemple)
15
Implémentation des Services Web
Côté fournisseur Suivant les technologies,
certaines tâches sont
automatisées
Pour créer un Web Service :
1. Définir le contrat du service
2. Développer le service
3. Développer la couche de traitement XML
4. Déployer sur le serveur
5. Publier dans l’annuaire
16
Implémentation des Services Web
Suivant les technologies,
Côté client certaines tâches sont
automatisées
Pour créer une application cliente :
1. Rechercher le service dans l'annuaire
2. Récupérer le contrat du service
3. Développer la couche de traitement XML
4. Utiliser le service et présenter les résultats
(rendu)
17
Tâches relatives aux Services Web
Invocation : vise à établir la communication entre le client et le fournisseur en
décrivant la structure des messages échangés.
Découverte : permet de localiser un service web particulier dans un annuaire de
services décrivant les fournisseurs ainsi les services fournis.
Composition : consiste à combiner des services pour former un nouveau service dit
composé ou composite. Le but de la composition est avant tout la réutilisation de
services (simples ou composés) et de préférence sans aucune modification de ces
derniers.
Sélection : choisir parmi les services web découverts, ceux qui répondent au mieux
aux exigences de l’utilisateur sur la base des besoins fonctionnels et/ou non
fonctionnels. 18