Upload
klee-group
View
10.899
Download
4
Embed Size (px)
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
[email protected]@teKnics_Klee