chapitre i. introduction aux architectures orientées services

34
1 Chapitre I. Architectures Orientées Services : Principes et Concepts de base

Upload: others

Post on 31-May-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre I. Introduction aux architectures orientées services

1

Chapitre I. Architectures Orientées Services : Principes et Concepts de base

Page 2: Chapitre I. Introduction aux architectures orientées services

2

Plan1. Historique : évolution des Architectures Logicielles

2. Enjeux des SOAs

3. Principe de fonctionnement des SOAs

4. Service Web

5. Conclusion

Page 3: Chapitre I. Introduction aux architectures orientées services

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é.

Page 4: Chapitre I. Introduction aux architectures orientées services

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é

Page 5: Chapitre I. Introduction aux architectures orientées services

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

Page 6: Chapitre I. Introduction aux architectures orientées services

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

Page 7: Chapitre I. Introduction aux architectures orientées services

7

Exemple

Page 8: Chapitre I. Introduction aux architectures orientées services

8

Evolution des architectures

Architecture Client/serveur

Architecture distribuée et

Internet

Connexion Point à Point

Page 9: Chapitre I. Introduction aux architectures orientées services

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

Page 10: Chapitre I. Introduction aux architectures orientées services

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

Page 11: Chapitre I. Introduction aux architectures orientées services

11

Architecture 2-tiers

Page 12: Chapitre I. Introduction aux architectures orientées services

12

Architecture 2-tiers

Page 13: Chapitre I. Introduction aux architectures orientées services

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

Page 14: Chapitre I. Introduction aux architectures orientées services

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

Page 15: Chapitre I. Introduction aux architectures orientées services

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)

Page 16: Chapitre I. Introduction aux architectures orientées services

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

Page 17: Chapitre I. Introduction aux architectures orientées services

17

La plate forme J EE

Page 18: Chapitre I. Introduction aux architectures orientées services

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

Page 19: Chapitre I. Introduction aux architectures orientées services

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

Page 20: Chapitre I. Introduction aux architectures orientées services

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

Page 21: Chapitre I. Introduction aux architectures orientées services

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

Page 22: Chapitre I. Introduction aux architectures orientées services

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.

Page 23: Chapitre I. Introduction aux architectures orientées services

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

Page 24: Chapitre I. Introduction aux architectures orientées services

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

Page 25: Chapitre I. Introduction aux architectures orientées services

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

Page 26: Chapitre I. Introduction aux architectures orientées services

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

Page 27: Chapitre I. Introduction aux architectures orientées services

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

Page 28: Chapitre I. Introduction aux architectures orientées 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 "

Page 29: Chapitre I. Introduction aux architectures orientées services

29

Cycle de vie d’utilisation

Page 30: Chapitre I. Introduction aux architectures orientées services

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.

Page 31: Chapitre I. Introduction aux architectures orientées 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

Page 32: Chapitre I. Introduction aux architectures orientées services

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

Page 33: Chapitre I. Introduction aux architectures orientées services

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.

Page 34: Chapitre I. Introduction aux architectures orientées services

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