chapitre i. introduction aux architectures orientées services
TRANSCRIPT
1
Chapitre I. Architectures Orientées Services : Principes et Concepts de base
2
Plan1. Historique : évolution des Architectures Logicielles
2. Enjeux des SOAs
3. Principe de fonctionnement des SOAs
4. Service Web
5. Conclusion
3
SOA - Historique
SOA est une nouvelle architecture logicielle distribuée résultante de :1. Evolution des modèles de programmation2. Evolution des architectures3. Evolution du Web
L'architecture orientée services (Service-Oriented Architecture, SOA) est un modèle de développement logiciel à base de composants applicatifs distribués et doté de fonctions de découverte, de contrôle d'accès, de mappage de données et de sécurité.
4
Evolution des Modèles de programmation
POOObjet
-1980
POCComposant
-1990
POSService
-2000
• Polymorphisme
• Encapsulation• Héritage
• Faible couplage
• Réutilisation
• Message• Contrat• Interopérabilité
5
Composant : définition Un composant est un élément logiciel autonome :
Encapsule une ou plusieurs fonctionnalités
Peut être installe sur différentes plate-formes : déploiement
Peut être assemblé avec d'autres composants : composition
Porte une description des interfaces requises et fournies
6
Structure d’un composant
Interfaces fournies : attributs, méthodes
Interfaces requises pour son exécution
Dépendances : composition et références aux autres composants
Propriétés de configuration
Contraintes techniques
7
Exemple
8
Evolution des architectures
Architecture Client/serveur
Architecture distribuée et
Internet
Connexion Point à Point
9
Architecture Client/Serveur L'architecture Client/serveur est un modèle de
fonctionnement logiciel reposant sur l'utilisation de deux éléments : Le Client : émet des requêtes vers le serveur pour
demander une ressource (données) ou un service (traitement)
Le Serveur : traite la demande du client et répond
10
Architecture Client/Serveur
L'architecture 2-tiers est composée de deux éléments : Le Client comporte le niveau présentation Le Serveur comporte le niveau données
Le niveau traitement peut être : Entièrement du côte client. Le serveur dans ce cas
ne gère que les données Entièrement du côté serveur. Le client dans ce cas
ne gère que l'interface Découpé entre le client et le serveur
11
Architecture 2-tiers
12
Architecture 2-tiers
13
Architecture 2-tiers : Serveur de données
Application-Client
Présentation
Serveur debases dedonnéesJDBC/ODBC
Poste Client
Tier Client Tier Serveurde données
Traitement
14
Architecture 3-tiers
Logique de présentation,
Serveur debases dedonnées
Application-Client
Présentation
RMI
RPC
Poste Client Serveur Traitement
Tier Interface Tier Métier Tier Données
Traitement
15
Architecture n-tiers L'architecture n-tiers est aussi appelée architecture
distribuée ou architecture multi-tiers
L'architecture n-tiers qualifie la distribution d'applications entre de multiples tiers
Avec l’apparition des technologies Web, il est possible de séparer la couche présentation de la couche applicative (aussi appelée couche métier)
16
Architecture n-tiers pour le Web
Composantmétier
Serveur debases dedonnées
Applet/HTML
Composant Web
Internet
Tier client Tier Web Tier Données
Tier Métier
Serveur MétierServeur WebNavigateur
17
La plate forme J EE
18
Architecture n-tiers : programmation par composant
Séparation des préoccupations : Réutilisabilité, Adaptation
Tout est composant : du niveau applicatif au niveau ressources :
Composant application client Composant Web Composant métier Composant accès aux données
19
Programmation par composant Assembler des composants pour réaliser un logiciel plus complexe
On parle de programmation par assemblage de composants logiciels
Cycle de développement est défini comme suit :
1. Recherche de composants2. Sélection de composants3. Adaptation4. Test5. Déploiement6. Remplacement
20
Du composant vers le service
Hétérogénéité des systèmes d’information Hétérogénéité des technologies : J2EE vs Microsoft .Net
Difficulté d’intégration de composants distribués
Ce que propose les SOAs :
Une description de modules logiciels appelés ‘’services’’ à l'aide de XML
Des standards et des protocoles pour faciliter l'intégration de modules dans des systèmes hétérogènes
21
Les SOAs : enjeux Interopérabilité : gérer l’interaction entre les applications de
plates formes différentes
Agilité : facilité de modification, répondre plus facilement aux changements (fusion, évolution du métier)
Réutilisation : utilisation des solutions existantes
Ouverture : fournir des services à des clients ou des partenaires
22
SOA : définition Une architecture Orientée services est une architecture
logicielle distribuée :
S’appuie sur un ensemble de fonctions simples appelées services (abstraction)
Fournit les moyens nécessaires pour permettre à ces services d’interagir.
23
Service Web Un service Web est
un composant logiciel qui encapsule des fonctionnalités métier accessible via des protocoles standards basés sur XML Il expose un contrat décrivant les modalités d’utilisation
Abstrait Un service web est une boîte noire dont l’implémentation
interne est masquée au consommateur Sans état
Ne nécessite pas un contexte d’exécution Réutilisable
Composition de services : Chorégraphie et Orchestration
24
Les trois acteurs du SOA Fournisseur de service (Service Provider)
Module logiciel s'exécutant sur un serveur et décrit par un document XML
Annuaire de service (Service Registry) Annuaire des services publiés par les providers Géré sur un serveur au interne à l’entreprise ou public
Demandeur de service (Service Requester) Application cliente se liant à un service et invoquant ses
fonctions par des messages XML
25
Les trois acteurs du SOA : fonctionnement
Consommateur Fournisseur
3. Description du service 2. Recherche
critères x,y,z 1. Publication
Annuairede services
4. InteractionService Service
26
Standards
Consommateur Fournisseur
3. Description WSDL du service 2. Recherche
critères x,y,z
4. Message SOAP
1. Publication WSDL
Annuairede services
UDDI
Service Service
27
Enjeux de mise en oeuvre Actuellement, les application Web font appel (invoque) à
plusieurs services Web distants pour récupérer différents types d’informations.
xml
xml
xml
Services
28
Définition W3C
Un service Web est une application logicielle identifiée par une URI (Unified Ressource Identifier)
Utilise une syntaxe basée sur XML pour la description, la découverte des interfaces
L'interaction avec les autres applications se fait a travers des messages bases sur XML via des protocoles Internet
" A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML artefacts and supports direct interactions with other software applications using XML based messages via Internet-based protocols "
29
Cycle de vie d’utilisation
30
Standards et protocoles SOAP : Simple Object Access Protocol
Protocole pour l’échange de messages entre services utilisant XML.
WSDL : Web Service Definition Language Un langage de description de services. Une description WSDL est un document XML.
UDDI : Universal Description Discovery and Integration Un annuaire de services.
31
Web service vs SOA Il est possible de mettre en œuvre une Architecture
Orientée service sans Web Service
Il est possible d'utiliser des Web Services sans SOA
Les Web Services constituent la meilleure solution standardisée
Lorsque l'architecture SOA s'appuie sur des web services, on parle alors de WSOA, pour Web Service Oriented Architecture
32
Plusieurs implémentations SOAP : Simple Object Access Protocol
implémentation basée sur l’échange de messages sous format xml en utilisant le protocole soap via http.
REST : Representational State Transferimplémentation basée sur l’échange de données sous format json ou xml en utilisant le protocole http.
GraphQL : Graph Query LanguageC’est une syntaxe qui décrit comment effectuer une demande de données précise.L'implémentation de GraphQL en vaut la peine pour le modèle de données d'une application avec de nombreuses entités complexes se référençant les unes aux autres
33
Plusieurs implémentationsGraphQL commence par construire un schéma, qui est une description de toutes les requêtes que vous pouvez éventuellement faire dans une API GraphQL et de tous les types qu'elles renvoient. La création de schémas est difficile car elle nécessite un typage fort dans le langage de définition de schéma (SDL).
gRPC : Google Remote Procedure Call développé par Google. Il utilise le protocole HTTP/2 pour le transport, Protocol Buffers comme langage de description d'interface (IDL : interface description language), et offre des fonctionnalités telles que l'authentification, la transmission bidirectionnelle et le contrôle de flux, par le blocage ou non des communications par annulation ou délais d'attente. Il permet la construction de liaisons client/serveur multiplateforme pour de nombreux langages.
34
Conclusion Les SOAs sont proposées pour répondre aux besoins liés à :
L’interopérabilité des systèmes La maintenance facile des applications informatiques La Réutilisation
Les SOAs résultent de l’évolution : Des architectures Informatiques : client/serveur, 3-tiers, n-tiers Des modèles de programmation : POO, POC et POS Du Web : services Web
Standards et protocoles : SOAP, WSDL, UDDI