Architecture orientée service (SOA)

Preview:

DESCRIPTION

Présentation générale d'une architecture orientée service : - Définition des différents acteurs - Notion de service - Définition d'une plateforme SOA - Implémentation WCF

Citation preview

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

Prez Flash :: Architecture SOA

Auteur : Olivier GAUDEFROY

© 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

© 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

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

© 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

© 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

© 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.)

© 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

© 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 !

© 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 !

© 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

© 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

© 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 …)

© 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

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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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é)

© 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

© 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

© 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)

© 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

© 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

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

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

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

WCF – En pratique (2/2)

© 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

© 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

© 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

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

Questions ?

Retrouvez nous sur le blog technique de Klee

http://blog.kleegroup.com/teknics

teKnics@kleegroup.com@teKnics_Klee

Recommended