Transcript
Page 1: Architecture orientée service (SOA)

© Klee Group Projet SIGC Atelier de cadrage : Référentiel & Paramétrage 1 / 2311

Prez Flash :: Architecture SOA

Auteur : Olivier GAUDEFROY

Page 2: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 2 / 38

Agenda

Principe général

Modéliser les services

Définition d’une plateforme SOA

Windows Communication Foundation

Questions / Réponses

Page 3: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 3 / 38

Intégration – Hétérogénéité du SI

Un système d’informations d’entreprise est constitué

De nombreuses technologies différentes

De spécificités liées aux contraintes du moment

Des interfaces avec d’autres applications

« 35 à 40% des efforts de programmation sont liés au développement et à la maintenance des programmes

d’extraction de données »

(source Gartner Group)

Modification des systèmes

existants

Mise à jour infrastructure

Nouveaux projets

Page 4: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 4 / 38

SOA – Historique

POOObjet

-1980

POCComposant

-1990

POSService

-2000

•Polymorphisme•Encapsulation•Héritage

•Faible couplage•Réutilisation

•Message•Contrat•Interopérabilité

Page 5: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 5 / 38

SOA - Définition

SOA = Service Oriented Architecture

Apparition au début des années 2000

Construction de systèmes informatiques mouvants

Centré sur les processus métiers

Evolutivité et Réutilisabilité = Composants métiers Services

Page 6: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 6 / 38

SOA – Généralités

Au centre de l’architecture SOA, la notion de service

Deux acteurs d’un SI SOA

Producteur, fournit un service

Consommateur, utilise un service

Communication unifiée au moyen d’un contrat d’échanges

Contractualisation fonctionnelle

Qualité de service

Publication via une infrastructure de médiation

Couplage faible entre les composants

Orchestration possible

Page 7: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 7 / 38

SOA - Fondements de la démarche

SOA n’est pas une technologie mais une démarche

Rationalisation du SI

Conception de services métiers de haut niveau

Définition des processus métiers

Interopérabilité (WebServices, ESB, EAI, etc.)

Page 8: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 8 / 38

Agenda

Principe général

Modéliser les services

Définition d’une plateforme SOA

Windows Communication Foundation

Questions / Réponses

Page 9: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 9 / 38

Notion de service (1/2)

Au centre de l’architecture SOA : le service = brique de base du métier

Définition d’un service :

Répond à un besoin métier identifié.

Point d’entrée dans un silo applicatif d’urbanisation

Traitement mutualisé, autonome, sans état et référencé

Fonction contractualisée par une interface, publiée via une infrastructure et rendue accessible aux applications.

Processus = orchestration de différents services métiers

Peut être un service lui-même !

Page 10: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 10 / 38

Notion de service (2/2)

Un service est défini par un contrat fort qui décrit

Ses entrées

Son mode de fonctionnement

Ses résultats

Un contrat est :

Publique

Une interface

Auto-descriptif (WSDL, MEX)

Les détails d’implémentation n’ont rien à faire dans le contrat !

Page 11: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 11 / 38

Typologie des services

Services métiers

Ensemble cohérent de traitements métiers

Peut être

Service d’accès à des informations

Service de calcul & de vérification de règles métier

Composition des deux

Services techniques

Donnent accès à des ressources techniques

Base de données, GED, LOG, Imprimante, Messagerie

Générique

Moteur éditique, Moteur d’export

Un service métier peut s’appuyer sur un ou plusieurs services techniques

Page 12: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 12 / 38

Granularité des services métiers

On distingue deux catégories de service métiers

Coarse grain

Objets volumineux, nombreux attributs

Héritage / Composition

Fine grain

Peu d’attributs

Entité = Table

Page 13: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 13 / 38

Définition des niveaux de services

Services techniques

Communication avec les systèmes existants

Accès aux référentiels, gestion de log

Services CRUD

Associé à un objet métier « racine »

Dans les frameworks internes, se rapproche fortement de la notion de broker

Services fonctionnels

Services métiers encapsulant règles de gestion et traitement métier

Utilisent un / plusieurs services CRUD

Services applicatifs

Services de haut niveau directement liés aux applicatifs

Utilisent un / plusieurs services fonctionnels

Apportent des notions spécifiques (warning, URL spécifique etc …)

Page 14: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 14 / 38

Formalisation des couches logicielles

Data Access Layer (DAL)

Associés directement aux couches d’accès aux données

Services CRUD Broker + DAL

Ne sont pas exposés aux applications

Business Service Layer (BSL)

Services fonctionnels = Services directement utilisables par les vues

Règles de gestion + traitement métier

Utilisent un/plusieurs services DAL

Application Service Layer (ASL)

Services applicatifs = directement liés à l’application finale

Utilisent un/plusieurs services BSL

A ne pas confondre avec des processus métiers

Mis en œuvre sur le projet Cinedi

Page 15: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 15 / 38

Quelques règles …

Règle : Deux services métiers de même niveau ne peuvent s’appeler entre eux, sauf exception (processus métier).

Règle : Un service métier utilise un / des services métiers de niveau(x) inférieur(s) et un / des services métiers techniques

Règle : Un service n’appelle pas un service d’un niveau supérieur. Les appels se font en cascade, de haut en bas de la hiérarchie.

Règle : Un service doit être utilisé au moins une fois soit par une application composite, soit par un autre service.

Page 16: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 16 / 38

Exemple d’architecture SOA

Back Office

Accès sécurisé

Services Applicatifs BO

Services fonctionnelsProcessus

Services CRUD

Front Office

Services Applicatifs FO

Services techniques

ServiceXX ServiceYY ServiceZZ

ServiceFrontOfficeXXServiceBackOfficeXX

Broker Requête SQL

SSIS Email Log

Page 17: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 17 / 38

Règles de distribution

Que peut on distribuer ?

Seuls les services applicatifs et les services fonctionnels ont vocation a être publiés

Quand décide-t-on de distribuer ? Le choix de distribuer est :

Une décision d’ouverture du SI (urbanisation)

Plus ou moins une décision d’architecture (montée en charge)

N’est pas une décision de développement

Quel protocole de distribution utiliser ? (JMS, MSMQ, WebServices, REST etc…)

Un service peut être accessible via différents protocoles

C’est une décision de déploiement

N’est pas une décision de développement

Page 18: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 18 / 38

Matrice générale des services

Type de service

Granularité Réutilisabilité Interopérabilité avec SI

Orchestrabilité

Service applicatif

Forte N/A Forte N/A

Service fonctionnel

Moyenne à forte

Moyenne Variable Forte

Service métier CRUD

Faible Forte N/A Faible

Service technique

Moyenne à forte

Forte N/A N/A

Page 19: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 19 / 38

Vue générale des dépendances

BSL

DAL

ASL

App

.Asl

.dll

App

.Dto

.dll

App.Services.dll

App.UI

Bsl

.dll

Dom

ain.

Dto

.dll

Domain.Services.dll

Dal

.dll

Page 20: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 20 / 38

Agenda

Définition

Modéliser les services

Vers une plateforme SOA

Windows Communication Foundation

Questions / Réponses

Page 21: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 21 / 38

Définition du bus d’échanges

Fournit aux producteurs et consommateurs un mécanisme de communication commun

Impose :

Une langue commune (schéma des contrats de base)

Des directives communes (ordre des messages)

Une infrastructure de transport de haut niveau

Sécurise :

Identification du producteur / consommateur

Définition et exposition des rôles associés aux services

Confidentialité des échanges

Persistance des échanges

Page 22: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 22 / 38

Contrôle et supervision

Nécessité de contrôler la qualité des services

SAM = Service Activity Management

Suivi des performances

Suivi des erreurs

Sécurité

Définition des exigences via SLA (Service Level Agreement)

BAM = Business Activity Management

Consultation de l’état des processus

Gestion d’alertes

Statistiques métiers

Visualisation des résultats via une console de supervision / administration

Page 23: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 23 / 38

Conteneur de service

Assure la publication des contrats des services

Par programmation

Par configuration

Permet une classification des services

Localisation

Recherche

Protocole UDDI

Protocole MEX

Indexation technique (messages, interfaces, qualité de service etc...)

Indexation métier (sectoriel, géographique, réglementation etc...)

Gestion des services

Stockage des implémentations

Gestion des versions et environnements

Gestion des dépendances

Page 24: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 24 / 38

Orchestrateur - EAI

EAI = Enterprise Application Integration

Echange d’informations entre applications hétérogènes en mode asynchrone

Filtre de transformation de message au format « A » vers un format « B »

Externalisation des transformations de données vers un format pivot

Objectif :

Réduction des coûts de développement et maintenance

Vue Appl 1

Vue Appl 2 Vue Appl 3

Vue Commune

Transformation

Page 25: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 25 / 38

Orchestrateur – Intérêt de l’EAI

Disparition des connexions point à point

Canalisation des échanges de message

Echange d’informations en mode asynchrone

Garantie des échanges de message

Page 26: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 26 / 38

Orchestrateur - ESB

ESB = Enterprise Service Bus

Utilisation du format standard WebServices

Fournit un cadre de développement pour des applications SOA

Typologie réseau en bus

Intérêts

Accessibilité

Support de protocoles multiples

Référencement et adressage des services

Intégration

Message XML, Référentiel données & services

Routage, agrégation de services

Audit & Administration

Qualité de service (fiabilité et sécurité des échanges, transaction, scalabilité)

Page 27: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 27 / 38

Schéma d’une plateforme SOA

Por

tail

Orchestration Monitoring

Bus de message SOA

Conteneur de service Admin.plateforme

Ap

p.

Co

mp

osi

te App. Composite

App. Composite

App. Composite

Processus métier

SAM BAMProcessus métier

ServiceYY

ServiceXXService CRUD

Service CRUD Service technique

Service technique

Page 28: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 28 / 38

Agenda

Définition

Modéliser les services

Vers une plateforme SOA

Windows Communication Foundation

Questions / Réponses

Page 29: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 29 / 38

WCF – Un petit historique

Avant .Net 3.0

Trop de moyens pour créer des applications distribuées

WebServices (support HTTP / HTTPS)

.Net Remoting (HTTP/HTTPS et TCP)

MSMQ (Microsoft Message Queueing)

COM+ (Component Object Model)

WSE (Web Services Enhancements)

Nécessite l’apprentissage de différents modèles de programmation

Depuis .Net 3.0

Windows Communication Foundation

Infrastructure de communication distribuée unifiée

Multi-canal

Evolutif

Intégralement configurable (XML ou API)

Page 30: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 30 / 38

WCF - Terminologie

Service Ensemble d’endpoint qui offre un jeu de fonctionnalités mis à disposition des clients. Les

services attendent des messages dans un format particulier sur l’adresse spécifié par l’endpoint.

Client Accède aux fonctionnalités en envoyant des messages aux endpoints. Ces messages sont

formatés en fonction du contrat d’échange commun entre le client et le service.

Endpoint Ressource sur le réseau à laquelle peuvent être envoyés des messages.

WCF Client WCF Service

EP EP

Page 31: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 31 / 38

WCF – En trois lettres

Address

Définit l’endroit ou doivent être envoyés les messages du client pour que l’endpoint les réceptionne.

Qualifiée par une URI

Binding

Définit le protocole utilisé pour communiquer avec le client

HTTP/HTTPS, MSMQ, NamedPipes, etc …

Tous les messages WCF transitent via un canal de communication

Contract

Définit le service proposé par l’endpoint

Les opérations disponibles sont directement mappés sur les méthodes de classe

Page 32: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 32 / 38

WCF – En pratique (1/2)

Un contrat de service est une interface décorée par :

L’attribut ServiceContract qui assure sa publication

Une opération de service est décorée par :

L’attribut OperationContract qui assure la publication.

Page 33: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 33 / 38

WCF – En pratique (2/2)

La publication s’effectue au moyen d’un ServiceHost

L’appel s’effectue au moyen de la récupération d’un canal de communication.

Page 34: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 34 / 38

WCF – En pratique (2/2)

Page 35: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 35 / 38

WCF – Présentation de la stack

Application

Contracts

Behavior

Messaging

Hosting

Data Message Service EndPoint

Limit Error Metadata Create

Transaction LB Concurrency Filter

WS-Security WS-Reliable Serializer HTTP Channel

TCP Channel NamedPipe MSMQ

Page 36: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 36 / 38

WCF – Possibilité d’hébergement

Self Hosting Binaire traditionnel avec hébergement du service WCF au sein de celui-ci.

Managed Windows Services Service Windows prenant en charge l’hébergement du service

IIS Hosting Hébergement directement dans IIS, préféré pour WebServices

Message-based activation, process recycling, idle shutdown, health monitoring etc.

WAS Hosting A partir de Windows 2008 / Windows Vista

Hébergement de services sur Internet sans avoir IIS

Page 37: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 37 / 38

Agenda

Définition

Modéliser les services

Vers une plateforme SOA

Windows Communication Foundation

Questions / Réponses

Page 38: Architecture orientée service (SOA)

© Klee Group Prez Flash Architecture SOA Olivier GAUDEFROY 38 / 38

Questions ?

Retrouvez nous sur le blog technique de Klee

http://blog.kleegroup.com/teknics

[email protected]@teKnics_Klee


Recommended