Académique Documents
Professionnel Documents
Culture Documents
à l’architecture orientée
services
SONIA KEFI
3ÈME LI
Software de
développement
Web
Native Hybrid
mobile
Android
(java,
Kotlin) Android & Android &
IOS (Ionic, IOS (HTML,
IOS
React Native, CSS,
(Swift, Flutter ) JavaScript)
objectif C)
HarmonyOS
(java, JS,C,
C++)
Mobile 6
Web
Native Hybrid
mobile
Android
(java,
Kotlin) Android & Android &
IOS (Ionic, IOS (HTML,
IOS
React Native, CSS,
(Swift, Flutter ) JavaScript)
objectif C)
HarmonyOS
(java, JS,C,
C++)
Cross Plaform
Mobile Application
7
Web
Java
Java C#
Script
8
Web
Java
Java C#
Script
9
Evolution des langages de
programmation
Langage machine C’est le langage binaire
2
4
25
Autonomie et modularité
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é.
Applicatif,
Fonctionnel,
CRUD : Create, Read, Update and Delete,
Technique.
28
Types de services
29
Service Applicatif
Dirigeants
Utiliser un style architectural basé sur un fournisseur,
un demandeur et une description de service, et qui
Analystes métier supporte les propriétés de modularité, découvrabilité,
découplage, réutilisation et composabilité
Architectes
SOA est l’acronyme de Service Oriented Architecture qui est traduit comme «
Architecture Orientée Service »
Le Service désigne le fondement de ce modèle d’interaction entre applications.
Le paradigme SOA : Publier, Chercher et Consommer
36
Suite
37
Suite
Les standards sont des éléments clés d’une SOA, ils assurent
l’interopérabilité.
Les services web 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 services web sont auto-suffisants puisqu’ils contiennent toutes les
informations à leurs utilisations
Chercher, publier et consommer.
Annuaire, contrat de fonctionnement et un client pour les consommer.
Les services web sont modulaires.
Une application doit être décomposée en un ensemble de services.
Utilisation d’une orchestration.
47
Services web : Technologies
disponibles
Deux modèles de style de communication sont utilisés pour convertir une liaison WSDL en
un corps de message SOAP. Ils sont : Document & RPC
RPC :
XML-RPC est un protocole RPC (Remote procedure call), une spécification simple et
un ensemble de codes qui permettent à des processus de s'exécuter dans des
environnements différents de faire des appels de méthodes à travers un réseau.
Il permet d'appeler une fonction sur un serveur distant à partir de n'importe quel
système (Windows, Mac OS X, GNU/Linux) et avec n'importe quel langage de
programmation.
XML-RPC est conçu pour permettre à des structures de données complexes d'être
transmises, exécutées et renvoyées très facilement.
Document :
Dans le fichier WSDL, il spécifie les détails des types des documents décrivant la
structure (le schéma) et les types de données complexes échangés par les méthodes
de service qui permettent un couplage faible.
En utilisant ce style de document, nous pouvons valider les messages SOAP par
rapport à un schéma prédéfini. Il supporte les types de données XML et les modèles.
55
Structure d’un document
WSDL
56
WSDL
Interface Implementation
<definitions> <definitions>
<import> <import>
<types> <service>
<message> <port>
<portType>
<binding>
57
Éléments d’une définition
WSDL
<types>
Contient les définitions de types utilisant un système de typage (comme XSD).
<message>
Décrit les noms et les types d’un ensemble de champs à transmettre
Paramètres d’une invocation, valeur du retour, …
<porttype>
Décrit un ensemble d’opérations. Chaque opération à zéro ou un message en
entrée, zéro ou plusieurs messages de sortie ou de fautes
<binding>
Spécifie une liaison d’un <porttype> à un protocole concret (SOAP1.1, HTTP1.1,
MIME, …). Un <porttype> peut avoir plusieurs liaisons !
<port>
Spécifie un point d’entrée (endpoint) comme la combinaison d’un <binding> et
d’une adresse réseau.
<service>
Une collection de points d’entrée (endpoint) relatifs.
58
Élément <types>
<message name="GetAddressFromNameRequest">
<part name="name" type="xsd:string"/>
</message>
<message name="GetAddressFromNameResponse">
<part name="address" type="typens:address"/>
</message>
60
Élément <porttype>
Exemple
<!-- port type declns -->
<portType name="AddressBook">
</portType>
62
Élément <binding>
…
<binding name="StockQuoteSoap" type="tns:StockQuotePortType">
<soap:binding style="document" transport="http://stockquote.com/smtp"/>
<operation name="SubscribeToQuotes">
<input message="tns:SubscribeToQuotes">
<soap:body parts="body" use="literal"/>
<soap:header message="tns:SubscribeToQuotes" part="subscribeheader"
use="literal"/>
</input>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="tns:StockQuoteSoap">
<soap:address location="mailto:subscribe@stockquote.com"/>
</port>
</service>
</definitions>
65
Élément <service>
L'API Java pour les services Web RESTful (JAX-RS) permet de créer
des services Web REST.
JAX-RS utilise des annotations pour simplifier le développement et
le déploiement de services Web.
JAX-RS fait partie de JDK, vous n'avez donc rien à ajouter pour
utiliser ses annotations.
74
Annotations sur les services
Web Restful
PHP,
JEE,
.Net,
NodeJS
76
Services Web Rest vs SOAP