ARCHITECTURE SOA
Licence informatique Les web services
Sommaire
I. RAPPELS
II. Les types des services web
III. Travaux pratiques
1
I. RAPPELS
SOA (Services Oriented Architecture) : Une architecture orientée services
formalise le concept d'échange et de partage inter-application dans une logique proche
de l’EAI.
➢ EAI (Enterprise Application Integration) est un mode de conception des
architectures logicielles centré sur les échanges inter-applications. Le système
d'information fondé sur un principe d'architecture de type EAI est alors perçu
comme un lieu d'échanges de services entre des fournisseurs et des
consommateurs. Une application peut ainsi être tour à tour consommateur et
fournisseur de services.
➢ Le terme SOA, suggéré par le Gartner Group en 1996, propose de définir les
échanges en terme de services entre applications, indépendamment de leurs
plateformes de développement et de leurs objectifs spécifiques .
2
[Link]
1. C’est quoi un service ?
➢ Un Service est un composant logiciel distribué, exposant les fonctionnalités à forte
valeur ajoutée d’un domaine métier .
2. Principes de base du SOA
- une interface standard (API),
- un vocabulaire partagé,
- la mise en relation de composants logiciels clients consommateurs de services avec des
composants fournisseurs des susdits services. Le tout, bien sûr, indépendamment de la
localisation physique des systèmes.
3. C’est quoi ce vocabulaire?
WOA (Web Oriented Architecture) : Le WOA identifie les architectures orientés
3
I. RAPPELS
services spécifiquement déployées sur le Web.
• Annuaire: Les services sont référencés dans un "annuaire", à l'origine UDDI
(Universal Description Discovery and Integration), au format XML afin qu'ils
soient aisément accessibles.
• Protocoles : le SOA se repose sur des technologies et langages désormais
standardisés.
➢ XML (Extensible Markup Language), langage incontournable et universel pour les
descriptions efficaces des données,
➢ SOAP (Service Oriented Architecture Protocol): désormais recommandation du
W3C comme protocole d'échanges des messages au format XML dans une logique
de RPC (Remote Procedure Call)
➢ WSDL (Web Services Description Language) : est un standard de description des
services publiés dans l’annuaire.
4
I. RAPPELS
Caractéristiques du SOA :
- Contrat standardisé
- interopérabilité
- Couplage lâche (faible)
- Abstraction
- Réutilisabilité
- Autonomie
- Découvrabilité
5
I. RAPPELS
➢ Quelle solution pour une SOA?
➢ Les services Web (Web Services) : est la solution la plus courante.
• Basés sur les protocoles et langages du web : HTTP et XML
- HTTP (HyperText Transfer Protocol) : devient le protocole de communication sur
internet. Disponible sur toutes les plateformes, il est simple, léger, et facilement
utilisable sur les pare-feu.
- XML (eXtensible Markup Language ): est un langage de description et d'échange de
données semi structurées aujourd'hui adopté par tous les acteurs de l'Internet,
• Autosuffisants : Contiennent toutes les informations nécessaires à leur
utilisation.
• Modulaires: Décomposition d’une application en un ensemble de services –
Orchestration –etc …
6
II. Les web services
Environnements parfois définis par des standards •W3C, OASIS, WS-I, IETF, …
1- C’est quoi un Web Service ?
Un service web est un composant métier :
- Riche en valeur ajoutée;
- Accessible à distance via un standard du web ;
- Par l’intermédiaire du langage XML et du protocole HTTP;
- Indépendamment de sa plateforme d’implémentation (architecture neutre)et de son
langage de développement (langage neutre)
7
II. Les web services
2. Les types de Web Services
On distingue deux grandes familles des Web Services :
2.1. Les Services Web étendus (WS-*) :
Ils s’appuient sur des standards WSDL / SOAP / UDDI
2.2. Les Services Web REST (Representational State Transfer) :
Définis par la thèse de Roy Fielding en 2000, ils utilisent:
- directement HTTP sans l’associer à SOAP;
- des URIs pour nommer et identifier des ressources.
- des méthodes HTTP (POST, GET, PUT, DELETE…) utilisée pour les opérations de
base CRUD.
8
II. Les web services
3. Avantages des web services
➢ Inter opérabilité: permet aux applications développées dans différents langages de
programmation, de communiquer et échanger les données entre elles.
➢ accès à des fonctionnalités via interne
➢ Résistance aux par feu
9
III. Pratique
2.3. Différence entre SOAP et REST :
Le tableau suivant récapitule la différence entre SOAP et REST
No. SOAP REST
1) SOAP (Simple Object Access Protocol) est un protocol REST (REpresentational State Transfer) est un style
architectural .
2) SOAP ne peut pas utiliser REST car c'est un protocole. REST peut utiliser les services Web SOAP car il
s'agit d'un concept et peut utiliser n'importe quel
protocole comme HTTP, SOAP .
3) SOAP utilise des interfaces de services pour exposer la REST peut utiliser les services Web SOAP car il s'agit
logique métier. d'un concept et peut utiliser n'importe quel
protocole comme HTTP, SOAP.
4) SOAP utilise JAX-WS comme API java pour le developpement RESTful utilise JAX-RS pour le developpement des
des web services. web services
5) SOAP définit des normes standards à respecter strictement. REST ne définit pas trop de normes standards
comme SOAP.
6) SOAP définit sa propre sécurité. Les services Web RESTful héritent des mesures de
sécurité du transport sous-jacent.
7) SOAP n’utilise que XML comme format des données. REST utilise differents formats des données comme
Plain text, HTML, XML, JSON etc.
8) SOAP est lourd, nécessite plus des ressources et de bande REST est léger, pas besoins de trop de ressources et
passante. de bande passante par rapport à SOAP.
9
III. Pratique
1- Les web services en java
1.1. Les Présentation
Java apporte deux API permettant de développer et de consommer les services web
depuis java EE 6.
✓ JAX-WS pour les web services étendus et possède deux implémentations:
• Par le style RPC et;
• Par le style Document.
✓ JAX-RS pour les web services REST et possède aussi deux implémentations:
• Jersey;
• RESTeasy.
à nos jours l’API le plus utilisé est JAX-RS dans son implémentation jersey.
10
III. Pratique
1.2. JAX-RS et jersey.
Jersey est une implémentation de JAX-RS. Pour travailler avec cette implémentation
nécessite de télécharger les jars suivants :
[Link] [Link] [Link]
[Link]
[Link]
[Link] [Link]
[Link]
[Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
[Link]
[Link] [Link]
[Link]
[Link]
[Link]
[Link]
[Link] [Link]
10
III. Pratique
1.2. JAX-RS et jersey.
Jersey est une implémentation de JAX-RS. Pour travailler avec cette implémentation
nécessite de télécharger les jars suivants :
10
Merci de votre attention