SlideShare a Scribd company logo
1 of 38
Prez Flash :: Architecture SOA Auteur : Olivier GAUDEFROY 1 1
Agenda Principe général Modéliser les services Définition d’une plateforme SOA Windows Communication Foundation Questions / Réponses
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 programmationsontliés au développement et à la maintenance des programmes d’extraction de données »  (source Gartner Group)
SOA – Historique POO Objet - 1980 POC Composant - 1990 POS Service - 2000 ,[object Object]
Encapsulation
Héritage
Faible couplage
Réutilisation
Message
Contrat
Interopérabilité,[object Object]
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
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.)
Agenda Principe général Modéliser les services Définition d’une plateforme SOA Windows Communication Foundation Questions / Réponses
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 !
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 !
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
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
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 …)
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
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.
Exemple d’architecture SOA Back Office Front Office Accès sécurisé Services Applicatifs BO Services Applicatifs FO ServiceFrontOfficeXX ServiceBackOfficeXX Services fonctionnels Processus ServiceXX ServiceYY ServiceZZ Services CRUD Services techniques Broker Requête SQL SSIS Email Log
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
Matrice générale des services
Vue générale des dépendances ASL App.Services.dll App.Asl.dll App.Dto.dll BSL Domain.Services.dll Bsl.dll App.UI Domain.Dto.dll DAL Dal.dll
Agenda Définition Modéliser les services Vers une plateforme SOA Windows Communication Foundation Questions / Réponses
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
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
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
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 Transformation Vue Appl 2 Vue Appl 3 Vue Commune
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
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é)
Schéma d’une plateforme SOA App. Composite Portail Orchestration Monitoring App. Composite App. Composite Processus métier App. Composite SAM BAM Processus métier Bus de message SOA Conteneur de service Admin. plateforme ServiceXX Service CRUD Service technique ServiceYY Service CRUD Service technique
Agenda Définition Modéliser les services Vers une plateforme SOA Windows Communication Foundation Questions / Réponses
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)
WCF - Terminologie WCF Client WCF Service EP EP 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 – 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
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.

More Related Content

What's hot

Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Chp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesChp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesLilia Sfaxi
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESBLilia Sfaxi
 
Introduction a la SOA
Introduction a la SOAIntroduction a la SOA
Introduction a la SOATugdual Grall
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Heithem Abbes
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServicesLilia Sfaxi
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiEl Habib NFAOUI
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Cloud et Virtualisation
Cloud et VirtualisationCloud et Virtualisation
Cloud et VirtualisationMarc Jouve
 

What's hot (20)

Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Chp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de servicesChp4 - Composition, Orchestration et Choregraphie de services
Chp4 - Composition, Orchestration et Choregraphie de services
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
Introduction a la SOA
Introduction a la SOAIntroduction a la SOA
Introduction a la SOA
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Cloud et Virtualisation
Cloud et VirtualisationCloud et Virtualisation
Cloud et Virtualisation
 

Viewers also liked

Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
eServices-Tp4: esb++
eServices-Tp4: esb++eServices-Tp4: esb++
eServices-Tp4: esb++Lilia Sfaxi
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementLilia Sfaxi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
L’efficacité d’un site Web selon les consommateurs : une question de qualité ...
L’efficacité d’un site Web selon les consommateurs : une question de qualité ...L’efficacité d’un site Web selon les consommateurs : une question de qualité ...
L’efficacité d’un site Web selon les consommateurs : une question de qualité ...Sandrine Prom Tep
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications WebKlee Group
 
Introduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPELIntroduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPELDenis Weerasiri
 
Ez Water World
Ez Water WorldEz Water World
Ez Water Worldbawrf
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api managementLilia Sfaxi
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
SOA with PHP and Symfony
SOA with PHP and SymfonySOA with PHP and Symfony
SOA with PHP and SymfonyMichalSchroeder
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesXavier Kress
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOALilia Sfaxi
 
eServices-Chp1: Introduction
eServices-Chp1: IntroductioneServices-Chp1: Introduction
eServices-Chp1: IntroductionLilia Sfaxi
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireLilia Sfaxi
 

Viewers also liked (18)

Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
eServices-Tp4: esb++
eServices-Tp4: esb++eServices-Tp4: esb++
eServices-Tp4: esb++
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API Management
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
L’efficacité d’un site Web selon les consommateurs : une question de qualité ...
L’efficacité d’un site Web selon les consommateurs : une question de qualité ...L’efficacité d’un site Web selon les consommateurs : une question de qualité ...
L’efficacité d’un site Web selon les consommateurs : une question de qualité ...
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
Introduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPELIntroduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPEL
 
Ez Water World
Ez Water WorldEz Water World
Ez Water World
 
Applications mobiles et sécurité
Applications mobiles et sécuritéApplications mobiles et sécurité
Applications mobiles et sécurité
 
Qu'est-ce qu'un ETL ?
Qu'est-ce qu'un ETL ?Qu'est-ce qu'un ETL ?
Qu'est-ce qu'un ETL ?
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
SOA with PHP and Symfony
SOA with PHP and SymfonySOA with PHP and Symfony
SOA with PHP and Symfony
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOA
 
eServices-Chp1: Introduction
eServices-Chp1: IntroductioneServices-Chp1: Introduction
eServices-Chp1: Introduction
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 

Similar to Architecture orientée service (SOA)

client_serveur_introductionnnnnnnnnnn.PPT
client_serveur_introductionnnnnnnnnnn.PPTclient_serveur_introductionnnnnnnnnnn.PPT
client_serveur_introductionnnnnnnnnnn.PPTradjadjouambi
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfBabacarDIOP48
 
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsSoirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsNormandy JUG
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'artTugdual Grall
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introductionMoez Re
 
PZ_Microservices101_20150210
PZ_Microservices101_20150210PZ_Microservices101_20150210
PZ_Microservices101_20150210Gregory Boissinot
 
Conference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieConference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieZenika
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...
Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...
Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...Microsoft
 
Architecture des applications métiers
Architecture des applications métiersArchitecture des applications métiers
Architecture des applications métiersGasytek
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_servicesCamus LANMADOUCELO
 
Architectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeArchitectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeMicrosoft
 
Cours chapitre3 2012
Cours chapitre3 2012Cours chapitre3 2012
Cours chapitre3 2012Yves Caseau
 
Windows Azure : Modèle hybride et réversibilité
Windows Azure : Modèle hybride et réversibilitéWindows Azure : Modèle hybride et réversibilité
Windows Azure : Modèle hybride et réversibilitéMicrosoft Technet France
 

Similar to Architecture orientée service (SOA) (20)

education
educationeducation
education
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
client_serveur_introductionnnnnnnnnnn.PPT
client_serveur_introductionnnnnnnnnnn.PPTclient_serveur_introductionnnnnnnnnnn.PPT
client_serveur_introductionnnnnnnnnnn.PPT
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB PetalsSoirée SOA - 2010-06-15 - Présentation de l'ESB Petals
Soirée SOA - 2010-06-15 - Présentation de l'ESB Petals
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'art
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introduction
 
PZ_Microservices101_20150210
PZ_Microservices101_20150210PZ_Microservices101_20150210
PZ_Microservices101_20150210
 
Conference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partieConference MicroServices101 - 1ere partie
Conference MicroServices101 - 1ere partie
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...
Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...
Patterns (et anti-patterns) d’architecture ou comment mieux concevoir ses app...
 
Architecture des applications métiers
Architecture des applications métiersArchitecture des applications métiers
Architecture des applications métiers
 
Web Services
Web ServicesWeb Services
Web Services
 
Chp3 - ESB
Chp3 - ESBChp3 - ESB
Chp3 - ESB
 
Informatique Mobile d'Entreprise
Informatique Mobile d'EntrepriseInformatique Mobile d'Entreprise
Informatique Mobile d'Entreprise
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
Pourquoi migrer vers exchange 2010
Pourquoi migrer vers exchange 2010Pourquoi migrer vers exchange 2010
Pourquoi migrer vers exchange 2010
 
Architectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeArchitectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythme
 
Cours chapitre3 2012
Cours chapitre3 2012Cours chapitre3 2012
Cours chapitre3 2012
 
Windows Azure : Modèle hybride et réversibilité
Windows Azure : Modèle hybride et réversibilitéWindows Azure : Modèle hybride et réversibilité
Windows Azure : Modèle hybride et réversibilité
 

More from Klee Group

Web Sémantique — Linked Data
Web Sémantique — Linked DataWeb Sémantique — Linked Data
Web Sémantique — Linked DataKlee Group
 
Introduction AOP
Introduction AOPIntroduction AOP
Introduction AOPKlee Group
 
Panorama d'applications Web
Panorama d'applications WebPanorama d'applications Web
Panorama d'applications WebKlee Group
 
Application lifecycle management
Application lifecycle managementApplication lifecycle management
Application lifecycle managementKlee Group
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 

More from Klee Group (10)

HTML5
HTML5HTML5
HTML5
 
Web Sémantique — Linked Data
Web Sémantique — Linked DataWeb Sémantique — Linked Data
Web Sémantique — Linked Data
 
Introduction AOP
Introduction AOPIntroduction AOP
Introduction AOP
 
Panorama d'applications Web
Panorama d'applications WebPanorama d'applications Web
Panorama d'applications Web
 
Internet@TV
Internet@TVInternet@TV
Internet@TV
 
noSQL
noSQLnoSQL
noSQL
 
Drools
DroolsDrools
Drools
 
Talend
TalendTalend
Talend
 
Application lifecycle management
Application lifecycle managementApplication lifecycle management
Application lifecycle management
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 

Architecture orientée service (SOA)

  • 1. Prez Flash :: Architecture SOA Auteur : Olivier GAUDEFROY 1 1
  • 2. Agenda Principe général Modéliser les services Définition d’une plateforme SOA Windows Communication Foundation Questions / Réponses
  • 3. 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 programmationsontliés au développement et à la maintenance des programmes d’extraction de données » (source Gartner Group)
  • 4.
  • 11.
  • 12. 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
  • 13. 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.)
  • 14. Agenda Principe général Modéliser les services Définition d’une plateforme SOA Windows Communication Foundation Questions / Réponses
  • 15. 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 !
  • 16. 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 !
  • 17. 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
  • 18. 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
  • 19. 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 …)
  • 20. 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
  • 21. 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.
  • 22. Exemple d’architecture SOA Back Office Front Office Accès sécurisé Services Applicatifs BO Services Applicatifs FO ServiceFrontOfficeXX ServiceBackOfficeXX Services fonctionnels Processus ServiceXX ServiceYY ServiceZZ Services CRUD Services techniques Broker Requête SQL SSIS Email Log
  • 23. 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
  • 25. Vue générale des dépendances ASL App.Services.dll App.Asl.dll App.Dto.dll BSL Domain.Services.dll Bsl.dll App.UI Domain.Dto.dll DAL Dal.dll
  • 26. Agenda Définition Modéliser les services Vers une plateforme SOA Windows Communication Foundation Questions / Réponses
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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 Transformation Vue Appl 2 Vue Appl 3 Vue Commune
  • 31. 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
  • 32. 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é)
  • 33. Schéma d’une plateforme SOA App. Composite Portail Orchestration Monitoring App. Composite App. Composite Processus métier App. Composite SAM BAM Processus métier Bus de message SOA Conteneur de service Admin. plateforme ServiceXX Service CRUD Service technique ServiceYY Service CRUD Service technique
  • 34. Agenda Définition Modéliser les services Vers une plateforme SOA Windows Communication Foundation Questions / Réponses
  • 35. 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)
  • 36. WCF - Terminologie WCF Client WCF Service EP EP 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.
  • 37. 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
  • 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.
  • 39. 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.
  • 40. WCF – En pratique (2/2)
  • 41. WCF – Présentation de la stack Application Contracts Data Message Service EndPoint Behavior Limit Error Metadata Create Transaction LB Concurrency Filter Messaging WS-Security WS-Reliable Serializer HTTP Channel TCP Channel NamedPipe MSMQ Hosting
  • 42. 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, processrecycling, idleshutdown, health monitoring etc. WAS Hosting A partir de Windows 2008 / Windows Vista Hébergement de services sur Internet sans avoir IIS
  • 43. Agenda Définition Modéliser les services Vers une plateforme SOA Windows Communication Foundation Questions / Réponses
  • 44. Questions ? Retrouvez nous sur le blog technique de Klee http://blog.kleegroup.com/teknics teKnics@kleegroup.com @teKnics_Klee