Chp2 - Vers les Architectures Orientées Services

42
Architectures Orientées Services Chapitre 2 – Vers les Architectures Orientées Services Dr. Lilia SFAXI LA3 SIL - 2013-2014 Institut National des Sciences Appliquées et de Technologie

description

Visitez http://liliasfaxi.wix.com/liliasfaxi

Transcript of Chp2 - Vers les Architectures Orientées Services

Page 1: Chp2 - Vers les Architectures Orientées Services

Architectures Orientées Services

Chapitre 2 – Vers les Architectures Orientées Services

Dr. Lilia SFAXI

LA3 SIL - 2013-2014

Institut National des Sciences Appliquées et de Technologie

Page 2: Chp2 - Vers les Architectures Orientées Services

2

Plan du Chapitre

Les architectures client-serveur

Les architectures à objets distribués

Les architectures Web

Les architectures à base de composants

Les architectures orientées services

Page 3: Chp2 - Vers les Architectures Orientées Services

3

Plan

Les architectures client-serveur

Les architectures à objets distribués

Les architectures Web

Les architectures à base de composants

Les architectures orientées services

Page 4: Chp2 - Vers les Architectures Orientées Services

4Du modèle centralisé au client-serveur

Architecture Centralisée Architecture Répartie

Approche type Mainframe PC, bureautique, client-serveur

Contrôle renforcé des données et de la logique métier

Peu de contrôle sur les données, très peu sur la logique métier

Centralisation des choix, des mises à jour Problème de choix, installation et mise à jour des applications

Coût d’administration faible Coûts d’administration par utilisateur élevé

Faible autonomie de l’utilisateur Très (trop?) grande autonomie de l’utilisateur

Mainframe

Données

Page 5: Chp2 - Vers les Architectures Orientées Services

5

Le Modèle Réparti

Distribution de la charge

Matériel banalisé et standard

Outils logiciels de coût réduit et de grande diffusion

Ouverture

Mais :

o Administration et déploiement difficiles

o Construction de systèmes par intégration de progiciels

Logiciels clients

Logiciels serveurs

Page 6: Chp2 - Vers les Architectures Orientées Services

6

Client-Serveur : Définition

Approche d’architecture qui vise à répartir un système informatisé sur des machines distantes, grâce à des matériels banalisés et des protocoles standards, et fondée sur une notion de service.

Séparation d’entités distinctes fonctionnant de concert pour accomplir une tâche

Deux types de logiciels:

o Logiciels clients

o Logiciels serveurs

Problèmes

o Définition d’une architecture adaptée à un contexte de besoins

o Où placer la coupure client/serveur

Page 7: Chp2 - Vers les Architectures Orientées Services

7

Client-Serveur : Caractéristiques

Partage des ressources

Modèle d’interaction de type requête

Transparence relative à la localisation

Indépendance vis à vis des matériels et des systèmes d’exploitation

Capacité d’évolution du système

o Ajout de stations clientes

o Changement de serveur

o Passage à l’échelle

Intégrité des données partagées

Page 8: Chp2 - Vers les Architectures Orientées Services

8

Modèles Client-Serveur (1/2)

Modèle serveur de fichiers

o Partage de fichiers sur un réseau (ex: NFS)

o Bases de documents, d’images

Modèle serveur de bases de données relationnelles

o Traitements de sélection sur le serveur

o Utilisation du produit commercial d’un éditeur

Serveur de fichiers

Lecture/Ecriture de

fichiers

Serveur de BD

Appels SQL /Résultats

Page 9: Chp2 - Vers les Architectures Orientées Services

9

Modèles Client-Serveur (2/2)

Modèle serveur de transactions

o Un seul message pour un ensemble d’opérations

o Écriture de code sur client et serveur

o Applications à temps de réponse critique (OLTP)

Modèle serveur de groupware (travail collaboratif)

o En général middleware propre à l’éditeur

o Tendance vers l’utilisation de l’email comme support aux échanges

Moniteur TransactionnelTransactions

Serveur de groupware

Messages

Serveur de BD

Page 10: Chp2 - Vers les Architectures Orientées Services

10Modes d’Interaction entre Clients et Serveurs

SGBDR

RPC

MOM

Moniteurs Transactionnels

Page 11: Chp2 - Vers les Architectures Orientées Services

11Modes d’Interaction entre Clients et Serveurs

SGBDR: Accès aux bases de données relationnelles

o SQL standard

o Interfaces :

SQL intégré dans le code source (ESQL)

Appel direct de SQL (API Call Level Interface)

ODBC (Open Data Base Connectivity), JDBC…

RPC

MOM

Moniteurs Transactionnels

Client Client

Interface ODBC

DLL ODBC

Gestionnaire des Pilotes

Pilote ODBC (SGBD x)

Pilote SGBD x

SGBD x

Page 12: Chp2 - Vers les Architectures Orientées Services

12Modes d’Interaction entre Clients et Serveurs

SGBDR

RPC : Appel de Procédures à distance

o Appel d’une procédure qui s’exécute sur un site distant

o Invocation et attente de réponse (appel synchrone)

o Archivage de l’entête des procédures (Interface Définition Language)

o Évolution vers l’objet: RMI (Remote Method Invocation)

o Utilisation d’un service d’annuaire pour localiser le service

MOM

Moniteurs Transactionnels

ApplicationCliente

Bibliothèque RPC

Appel de Procédure/Résultat

Serveur RPC

Code des Procédures

Page 13: Chp2 - Vers les Architectures Orientées Services

13Modes d’Interaction entre Clients et Serveurs

SGBDR

RPC

MOM : Middleware Orienté Message

o File d’attente de messages (mode asynchrone)

o Mode publish & subscribe

Communication lâche d’égal à égal

Expression d’intérêt sur un ou plusieurs types d’évènements

Moniteurs Transactionnels

ApplicationCliente

MCA (Message Channel Agent)

Serveur RPC

MCA (Message Channel Agent)

Page 14: Chp2 - Vers les Architectures Orientées Services

14Modes d’Interaction entre Clients et Serveurs

SGBDR

RPC

MOM

Moniteurs Transactionnels

o Applications transactionnelles

o Fonctions principales:

Gestion des processus

Gestion des transactions en contexte distribué (plusieurs gestionnaires de données)

o Implémentation du protocole de validation à 2 phases (two phase commit)

• BD partagées• Flux de requêtes important et

non planifié• Travail répétitif• Grand nombre d’utilisateurs• Haute disponibilité, intégrité• Nécessité d’équilibrage de

charge

Moniteur Transactionnel

Serveur de BD

Prepare

OK

Commit

Ack

Préparation

Préparation

Écriture/Commit dans le journal

Validation

Écriture d’un enregistrement

Page 15: Chp2 - Vers les Architectures Orientées Services

15

Plan

Les architectures client-serveur

Les architectures à objets distribués

Les architectures Web

Les architectures à base de composants

Les architectures orientées services

Page 16: Chp2 - Vers les Architectures Orientées Services

16

Modèle à Objets Distribués

Coopération de services distribués modélisés comme des objets

Deux modèles

o CORBA (Common Object Request Broker Architecture) de l’OMG

o COM + (Microsoft)

objet

Page 17: Chp2 - Vers les Architectures Orientées Services

17

CORBA

Éléments du modèle

o Objets applicatifs

o Objets utilitaires (catalogues de classes, messagerie…)

o Services d’objets utilisables dans certains environnements (création d’instances, services transactionnels, persistance…)

o Courtier d’objetsObjets Applicatifs

Services Objets

Courtier de requêtes objet (ORB)

Objets utilitaires

Page 18: Chp2 - Vers les Architectures Orientées Services

18

CORBA

Échanges

o Entre objets liés par un même ORB

o Entre ORBs de différentes implémentations (protocole IIOP: Internet Inter-ORB Protocol)

ORB1 ORB2IIOP

Page 19: Chp2 - Vers les Architectures Orientées Services

19

Plan du Chapitre

Les architectures client-serveur

Les architectures à objets distribués

Les architectures Web

Les architectures à base de composants

Les architectures orientées services

Page 20: Chp2 - Vers les Architectures Orientées Services

20

Evolution liée à Internet

Interconnexion de réseaux à l’échelle mondiale fondée sur les protocoles TCP/IP

Applications : web, email, ftp…

Évolution du client-serveur en local vers le client serveur sur Internet

Modèle du « client léger », mode « non connecté »

Exploitation des technologies internet dans le modèle client-serveur

Page 21: Chp2 - Vers les Architectures Orientées Services

21

Architecture 3 tiers

Principe : séparation des trois niveaux

o IHM : interface Homme-Machine

o Application

o Gestion des données

Réduction du trafic réseau entre postes clients et serveurs

Les applications peuvent être déployées et administrées de manière indépendante des IHM

Placement des serveurs logiciels sur un ou plusieurs serveurs physiques

Nombreuses variantes architecturales possibles

Page 22: Chp2 - Vers les Architectures Orientées Services

22

De 2 à 3 Niveaux

IHMSQL, E/S fichiers

App

Niveau1 Niveau2

Client-Serveur à deux Niveaux

IHMRPC, ORB, MOM, http

Niveau1 Niveau2

Client-Serveur à trois Niveaux

App

App

SQL, E/S fichiers, API

legacy

Niveau3

Page 23: Chp2 - Vers les Architectures Orientées Services

23

De 2 à 3 Niveaux

Architecture à 2 Niveaux Architecture à 3 Niveaux

Simplicité, création d’applications plus rapide

Applications mieux dimentionnables, « scalabilité »

Convient aux applications départementales

Plus faciles à déployer

Difficulté d’administration et de déploiement

Adapté aux données issues de sources multiples

En général pas extensible aux applications à l’échelle de la grande entreprise

Services abstraits qui minimisent les échanges sur le réseau

Sécurité (pas d’exposition du schéma de la BD)

Page 24: Chp2 - Vers les Architectures Orientées Services

24

Architecture à n Niveaux

Niveaux Intermédiaires Collection d’applications

o Chaque application peut être un composant indépendant en charge d’une fonction

o Chaque fonction peut être utilisée et peut appeler d’autres fonctions

o Encapsulation des applications du patrimoine d’entreprise

IHM

Niveau1 Niveau2

Service

Niveau3

Service

Service

Gestion BD

Page 25: Chp2 - Vers les Architectures Orientées Services

25

Plan du Chapitre

Les architectures client-serveur

Les architectures à objets distribués

Les architectures Web

Les architectures à base de composants

Les architectures orientées services

Page 26: Chp2 - Vers les Architectures Orientées Services

26

Approche Orientée Composants

Construction d’applications à partir de l’assemblage de composants

Principe : le développement et assemblage de composants peut être réalisé séparément par des acteurs différents à des endroits différents

Utilisation de la composition comme mécanisme de réutilisation au lieu de l’héritage

Page 27: Chp2 - Vers les Architectures Orientées Services

27

Composant

Brique logicielle préfabriquée conçue pour être composée (assemblée) avec d’autres composants

Réutilisable

Son utilisation ne nécessite pas de connaissance sur l’implémentation

Unité binaire : code source n’est pas forcément livré avec le composant

Interfaces fournies

Interfaces de contrôle

Interfaces requises

Page 28: Chp2 - Vers les Architectures Orientées Services

28

Caractéristiques (1/2)

Classe de composant (équivalente à la notion de classe en OO)

o Définit l’implémentation du composant (logique fonctionnelle)

o Peut être vue à partir :

d’une vue externe : vision des clients sur les instances du composant

D’une vue interne : vision de l’environnement d’exécution sur les instances du composant

Instance de composant (équivalente à la notion d’objet en OO)

o Obtenue à partir d’une classe de composants

o Fournit les fonctionnalités du composant à l’exécution

o Unique par rapport aux autres instances, peut avoir un état

Page 29: Chp2 - Vers les Architectures Orientées Services

29

Caractéristiques (2/2)

Paquetage de composant

o Unité permettant de réaliser la livraison et le déploiement d’une classe de composant de manière indépendante

o Contient tout ce qui est nécessaire pour réaliser la création d’instances de la classe de composants

Code binaire du composant

Ressources nécessaires à son exécution (bibliothèques, images, fichiers de config)

Environnement d’exécution

o Fournit du support aux applications construites à partir du modèle à composants, lors de l’exécution

o Sorte de mini-système d’exploitation : gère les aspects divers (cycle de vie des instances, propriétés non fonctionnelles)

Page 30: Chp2 - Vers les Architectures Orientées Services

30

Modèle Orienté Composants

Permet de réaliser le développement et l’exécution d’applications à base de composants

Définit :o les caractéristiques des composants

o Leur assemblage

o Le support d’exécution

Page 31: Chp2 - Vers les Architectures Orientées Services

31

Modèles à Base de Composants Existants

COM (Component Object Model, Microsoft)

o Résout le problème d’interopérabilité

o Mais : ne propose pas une vue externe constante (les interfaces peuvent varier)

JavaBeans (Sun)

o Simplifier la construction d’applications grâce à la composition visuelle

o Vise les applications non distribuées avec interface utilisateur

EJB(Enterprise Java Beans, Sun)

o Vise les applications réparties en trois tiers (MVC)

o Ne supporte pas que la partie contrôleur soit distribuée

CCM (CORBA Component Model, OMG)

o Définir l’architecture d’une application distribuée sous forme de composition d’instances de composants

o Utilisation d’un langage abstrait pour la description d’interfaces (IDL) + d’un langage CIDL pour décrire les implémentations) Obligation de tout écrire en langage abstrait pour de compiler pour le langage cible

o Supporte les applications distribuées

Page 32: Chp2 - Vers les Architectures Orientées Services

32

Plan du Chapitre

Les architectures client-serveur

Les architectures à objets distribués

Les architectures Web

Les architectures à base de composants

Les architectures orientées services

Page 33: Chp2 - Vers les Architectures Orientées Services

33

Tout Devient « Service »…

Service :

o Fonctionnalité réutilisable dont le comportement est défini de façon contractuelle

3 Acteurs

o Consommateur de service décrit le service à consommer

o Fournisseur de services découvert en temps d’exécution à l’aide d’un intermédiaire (Registre de service)

o Registre de service contient l’ensemble des descripteurs de services et les références vers les fournisseurs de services

Page 34: Chp2 - Vers les Architectures Orientées Services

34

Architecture Orientée Service

Définit principalement 4 éléments de base

o Composant de service

o Bus d’Entreprise (ESB)

o Contrat de Service

o Données

Page 35: Chp2 - Vers les Architectures Orientées Services

35Éléments de BaseComposant de Service

Brique de base de l’architecture, composé d’une vue externe et interne

La vue externe ou spécification :

o Expose la facette service proprement dite

o Constituée :

d’un ensemble d’opérations de service regroupées en interfaces

appareillage pour les utiliser (types de données échangées, contrat de service, propriétés…)

o Décrite par un fichier WSDL ou équivalent

La vue interne :

o Décrit le contenu du composant

o Masquée aux consommateurs du composant

o Contient des informations relatives à la logique interne (détail de traitement ou bases de données) + références vers les services utilisés par le composant

Page 36: Chp2 - Vers les Architectures Orientées Services

36Éléments de BaseBus d’Entreprise (ESB : Enterprise Service Bus)

Présence de plusieurs participants sous forme de :

o Fournisseurs de service : composants de service, deux familles:

Composants qui prennent en charge l’implémentation des services

Composants qui délèguent son implémentation à un tiers (mainframe, ERP, application existante)

o Consommateurs de service : applications, progiciels ou autres composants de service

ESB :

o Colonne vertébrale reliant les participants à travers les interfaces de service

o Possibilité de modifier les implémentations ou de remplacer les composants sans changer la structure du système

Page 37: Chp2 - Vers les Architectures Orientées Services

37Éléments de BaseContrat de Service

Détaille les conditions d’utilisation du service sous forme de:

o Pré- et Post- conditions : Détaillent les conditions d’utilisation sur les opérations de service

o Protocole d’utilisation: les séquences valides d’invocation de ses opérations

o Contraintes (QoS, SLA: Service Level Agreement, sécurité, fiabilité…)

Page 38: Chp2 - Vers les Architectures Orientées Services

38Éléments de BaseDonnées

Données d’échange

o Informations véhiculées entre les participants à travers l’invocation des opérations de service

o TDE : Types de donnée d’échange : établissent la sémantique, structure et format de ces données, définis à l’aide de schémas XML ou classes UML

Données persistantes

o Informations contenues et gérées dans les bases de données

o Structurées de façon habituelle (SGBD relationnel, par exemple)

Page 39: Chp2 - Vers les Architectures Orientées Services

39

Les Web Services

Unité logique applicative accessible en utilisant les protocoles standards d’internet, réutilisable et indépendante de la plateforme et de l’implémentation

Objectifs

o Accès rapide à l’information

o Système ouvert réduisant les coûts

o Administration simplifiée

o Utilisation d’internet comme support de communication

Page 40: Chp2 - Vers les Architectures Orientées Services

40

Caractéristiques des Services Web

Application fournissant des traitements et des données à d’autres applications déployées sur le Web et vues à travers une interface

Protocole SOAP (Simple Object Access Protocol) over HTTP

Données en XML

Annuaire de services : UDDI (Universal Description Discovery and Integration)

Langage WSDL (Web Service Description Language) pour la description du service

Page 41: Chp2 - Vers les Architectures Orientées Services

41

Les Web Services : Principes

1: Je recherche un service WEB

2: J’ai trouvé! Voici le serveur hébergeant ce service

3: Quel est le format d’appel du service que tu proposes?

4: Voici mon contrat (WSDL)

5: J’ai compris comment invoquerton service et voici ma requête

6: J’ai exécuté ta requête et voici le résultat

Page 42: Chp2 - Vers les Architectures Orientées Services

42

Sources

Cours

Y. Pollet: Architectures : du client-serveur à la SOA (Introduction

aux architectures réparties), CNAM, Chaire d’intégration des

systèmes.

Thèses

Humberto Cervantes : Vers un modèle à composants orienté

services pour supporter la disponibilité dynamique, LSR, équipe

Adèle