Prez Flash :: Architecture SOA<br />Auteur : Olivier GAUDEFROY<br />1<br />1<br />
Agenda<br />Principe général<br />Modéliser les services<br />Définition d’une plateforme SOA<br />Windows Communication F...
Intégration – Hétérogénéité du SI<br />Un système d’informations d’entreprise est constitué<br />De nombreuses technologie...
SOA – Historique<br />POO<br />Objet<br />-<br />1980<br />POC<br />Composant<br />-<br />1990<br />POS<br />Service<br />...
Encapsulation
Héritage
Faible couplage
Réutilisation
Message
Contrat
Interopérabilité</li></li></ul><li>SOA - Définition<br />SOA = Service Oriented Architecture<br />Apparition au début des ...
SOA – Généralités<br />Au centre de l’architecture SOA, la notion de service<br />Deux acteurs d’un SI SOA<br />Producteur...
SOA - Fondements de la démarche<br />SOA n’est pas une technologie mais une démarche<br />Rationalisation du SI<br />Conce...
Agenda<br />Principe général<br />Modéliser les services<br />Définition d’une plateforme SOA<br />Windows Communication F...
Notion de service (1/2)<br />Au centre de l’architecture SOA : le service = brique de base du métier<br />Définition d’un ...
Notion de service (2/2)<br />Un service est défini par un contrat fort qui décrit<br />Ses entrées<br />Son mode de foncti...
Typologie des services<br />Services métiers<br />Ensemble cohérent de traitements métiers<br />Peut être<br />Service d’a...
Granularité des services métiers<br />On distingue deux catégories de service métiers<br />Coarse grain<br />Objets volumi...
Définition des niveaux de services<br />Services techniques<br />Communication avec les systèmes existants<br />Accès aux ...
Formalisation des couches logicielles<br />Data Access Layer (DAL)<br />Associés directement aux couches d’accès aux donné...
Quelques règles …<br />Règle : Deux services métiers de même niveau ne peuvent s’appeler entre eux, sauf exception (proces...
Exemple d’architecture SOA<br />Back Office<br />Front Office<br />Accès sécurisé<br />Services Applicatifs BO<br />Servic...
Règles de distribution<br />Que peut on distribuer ?<br />Seuls les services applicatifs et les services fonctionnels ont ...
Matrice générale des services<br />
Vue générale des dépendances<br />ASL<br />App.Services.dll<br />App.Asl.dll<br />App.Dto.dll<br />BSL<br />Domain.Service...
Agenda<br />Définition<br />Modéliser les services<br />Vers une plateforme SOA<br />Windows Communication Foundation<br /...
Définition du bus d’échanges<br />Fournit aux producteurs et consommateurs un mécanisme de communication commun <br />Impo...
Contrôle et supervision<br />Nécessité de contrôler la qualité des services<br />SAM = Service Activity Management<br />Su...
Conteneur de service<br />Assure la publication des contrats des services<br />Par programmation<br />Par configuration<br...
Orchestrateur - EAI<br />EAI = Enterprise Application Integration<br />Echange d’informations entre applications hétérogèn...
Orchestrateur – Intérêt de l’EAI<br />Disparition des connexions point à point<br />Canalisation des échanges de message<b...
Orchestrateur - ESB<br />ESB = Enterprise Service Bus<br />Utilisation du format standard WebServices<br />Fournit un cadr...
Schéma d’une plateforme SOA<br />App. Composite<br />Portail<br />Orchestration<br />Monitoring<br />App. Composite<br />A...
Agenda<br />Définition<br />Modéliser les services<br />Vers une plateforme SOA<br />Windows Communication Foundation<br /...
WCF – Un petit historique<br />Avant .Net 3.0<br />Trop de moyens pour créer des applications distribuées<br />WebServices...
WCF - Terminologie<br />WCF Client<br />WCF Service<br />EP<br />EP<br />Service <br />Ensemble d’endpoint qui offre un je...
WCF – En trois lettres<br />Address<br />Définit l’endroit ou doivent être envoyés les messages du client pour que l’endpo...
WCF – En pratique (1/2)<br />Un contrat de service est une interface décorée par :<br />L’attribut ServiceContract qui ass...
Prochain SlideShare
Chargement dans…5
×

Architecture orientée service (SOA)

16 155 vues

Publié le

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

Publié dans : Technologie, Business
2 commentaires
8 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
16 155
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
789
Commentaires
2
J’aime
8
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Architecture orientée service (SOA)

  1. 1. Prez Flash :: Architecture SOA<br />Auteur : Olivier GAUDEFROY<br />1<br />1<br />
  2. 2. Agenda<br />Principe général<br />Modéliser les services<br />Définition d’une plateforme SOA<br />Windows Communication Foundation<br />Questions / Réponses<br />
  3. 3. Intégration – Hétérogénéité du SI<br />Un système d’informations d’entreprise est constitué<br />De nombreuses technologies différentes<br />De spécificités liées aux contraintes du moment<br />Des interfaces avec d’autres applications<br />« 35 à 40% des efforts de programmationsontliés au développement et à la maintenance des programmes d’extraction de données » <br />(source Gartner Group) <br />
  4. 4. SOA – Historique<br />POO<br />Objet<br />-<br />1980<br />POC<br />Composant<br />-<br />1990<br />POS<br />Service<br />-<br />2000<br /><ul><li>Polymorphisme
  5. 5. Encapsulation
  6. 6. Héritage
  7. 7. Faible couplage
  8. 8. Réutilisation
  9. 9. Message
  10. 10. Contrat
  11. 11. Interopérabilité</li></li></ul><li>SOA - Définition<br />SOA = Service Oriented Architecture<br />Apparition au début des années 2000<br />Construction de systèmes informatiques mouvants<br />Centré sur les processus métiers<br />Evolutivité et Réutilisabilité = Composants métiers  Services<br />
  12. 12. SOA – Généralités<br />Au centre de l’architecture SOA, la notion de service<br />Deux acteurs d’un SI SOA<br />Producteur, fournit un service<br />Consommateur, utilise un service<br />Communication unifiée au moyen d’un contrat d’échanges<br />Contractualisation fonctionnelle<br />Qualité de service<br />Publication via une infrastructure de médiation<br />Couplage faible entre les composants<br />Orchestration possible<br />
  13. 13. SOA - Fondements de la démarche<br />SOA n’est pas une technologie mais une démarche<br />Rationalisation du SI<br />Conception de services métiers de haut niveau<br />Définition des processus métiers<br />Interopérabilité (WebServices, ESB, EAI, etc.)<br />
  14. 14. Agenda<br />Principe général<br />Modéliser les services<br />Définition d’une plateforme SOA<br />Windows Communication Foundation<br />Questions / Réponses<br />
  15. 15. Notion de service (1/2)<br />Au centre de l’architecture SOA : le service = brique de base du métier<br />Définition d’un service :<br />Répond à un besoin métier identifié.<br />Point d’entrée dans un silo applicatif d’urbanisation<br />Traitement mutualisé, autonome, sans état et référencé<br />Fonction contractualisée par une interface, publiée via une infrastructure et rendue accessible aux applications.<br />Processus = orchestration de différents services métiers<br />Peut être un service lui-même !<br />
  16. 16. Notion de service (2/2)<br />Un service est défini par un contrat fort qui décrit<br />Ses entrées<br />Son mode de fonctionnement<br />Ses résultats<br />Un contrat est :<br />Publique <br />Une interface<br />Auto-descriptif (WSDL, MEX)<br />Les détails d’implémentation n’ont rien à faire dans le contrat !<br />
  17. 17. Typologie des services<br />Services métiers<br />Ensemble cohérent de traitements métiers<br />Peut être<br />Service d’accès à des informations<br />Service de calcul & de vérification de règles métier<br />Composition des deux<br />Services techniques<br />Donnent accès à des ressources techniques<br />Base de données, GED, LOG, Imprimante, Messagerie<br />Générique<br />Moteur éditique, Moteur d’export<br /> Un service métier peut s’appuyer sur un ou plusieurs services techniques<br />
  18. 18. Granularité des services métiers<br />On distingue deux catégories de service métiers<br />Coarse grain<br />Objets volumineux, nombreux attributs<br />Héritage / Composition<br />Fine grain<br />Peu d’attributs<br />Entité = Table<br />
  19. 19. Définition des niveaux de services<br />Services techniques<br />Communication avec les systèmes existants<br />Accès aux référentiels, gestion de log<br />Services CRUD<br />Associé à un objet métier « racine »<br />Dans les frameworks internes, se rapproche fortement de la notion de broker<br />Services fonctionnels<br />Services métiers encapsulant règles de gestion et traitement métier<br />Utilisent un / plusieurs services CRUD<br />Services applicatifs<br />Services de haut niveau directement liés aux applicatifs<br />Utilisent un / plusieurs services fonctionnels<br />Apportent des notions spécifiques (warning, URL spécifique etc …)<br />
  20. 20. Formalisation des couches logicielles<br />Data Access Layer (DAL)<br />Associés directement aux couches d’accès aux données <br />Services CRUD  Broker + DAL<br />Ne sont pas exposés aux applications<br />Business Service Layer (BSL)<br />Services fonctionnels = Services directement utilisables par les vues <br />Règles de gestion + traitement métier<br />Utilisent un/plusieurs services DAL<br />Application Service Layer (ASL)<br />Services applicatifs = directement liés à l’application finale<br />Utilisent un/plusieurs services BSL<br />A ne pas confondre avec des processus métiers<br />Mis en œuvre sur le projet Cinedi<br />
  21. 21. Quelques règles …<br />Règle : Deux services métiers de même niveau ne peuvent s’appeler entre eux, sauf exception (processus métier).<br />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<br />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.<br />Règle : Un service doit être utilisé au moins une fois soit par une application composite, soit par un autre service.<br />
  22. 22. Exemple d’architecture SOA<br />Back Office<br />Front Office<br />Accès sécurisé<br />Services Applicatifs BO<br />Services Applicatifs FO<br />ServiceFrontOfficeXX<br />ServiceBackOfficeXX<br />Services fonctionnels<br />Processus<br />ServiceXX<br />ServiceYY<br />ServiceZZ<br />Services CRUD<br />Services techniques<br />Broker<br />Requête SQL<br />SSIS<br />Email<br />Log<br />
  23. 23. Règles de distribution<br />Que peut on distribuer ?<br />Seuls les services applicatifs et les services fonctionnels ont vocation a être publiés<br />Quand décide-t-on de distribuer ? Le choix de distribuer est :<br />Une décision d’ouverture du SI (urbanisation)<br />Plus ou moins une décision d’architecture (montée en charge)<br />N’est pas une décision de développement<br />Quel protocole de distribution utiliser ? (JMS, MSMQ, WebServices, REST etc…)<br />Un service peut être accessible via différents protocoles<br />C’est une décision de déploiement<br />N’est pas une décision de développement<br />
  24. 24. Matrice générale des services<br />
  25. 25. Vue générale des dépendances<br />ASL<br />App.Services.dll<br />App.Asl.dll<br />App.Dto.dll<br />BSL<br />Domain.Services.dll<br />Bsl.dll<br />App.UI<br />Domain.Dto.dll<br />DAL<br />Dal.dll<br />
  26. 26. Agenda<br />Définition<br />Modéliser les services<br />Vers une plateforme SOA<br />Windows Communication Foundation<br />Questions / Réponses<br />
  27. 27. Définition du bus d’échanges<br />Fournit aux producteurs et consommateurs un mécanisme de communication commun <br />Impose :<br />Une langue commune (schéma des contrats de base)<br />Des directives communes (ordre des messages)<br />Une infrastructure de transport de haut niveau<br />Sécurise :<br />Identification du producteur / consommateur<br />Définition et exposition des rôles associés aux services<br />Confidentialité des échanges<br />Persistance des échanges<br />
  28. 28. Contrôle et supervision<br />Nécessité de contrôler la qualité des services<br />SAM = Service Activity Management<br />Suivi des performances<br />Suivi des erreurs<br />Sécurité<br />Définition des exigences via SLA (Service Level Agreement)<br />BAM = Business Activity Management<br />Consultation de l’état des processus<br />Gestion d’alertes<br />Statistiques métiers<br />Visualisation des résultats via une console de supervision / administration<br />
  29. 29. Conteneur de service<br />Assure la publication des contrats des services<br />Par programmation<br />Par configuration<br />Permet une classification des services<br />Localisation<br />Recherche<br />Protocole UDDI<br />Protocole MEX<br />Indexation technique (messages, interfaces, qualité de service etc...)<br />Indexation métier (sectoriel, géographique, réglementation etc...)<br />Gestion des services<br />Stockage des implémentations<br />Gestion des versions et environnements<br />Gestion des dépendances<br />
  30. 30. Orchestrateur - EAI<br />EAI = Enterprise Application Integration<br />Echange d’informations entre applications hétérogènes en mode asynchrone<br />Filtre de transformation de message au format « A » vers un format « B »<br />Externalisation des transformations de données vers un format pivot<br />Objectif :<br />Réduction des coûts de développement et maintenance<br />Vue Appl 1<br />Transformation<br />Vue Appl 2<br />Vue Appl 3<br />Vue Commune<br />
  31. 31. Orchestrateur – Intérêt de l’EAI<br />Disparition des connexions point à point<br />Canalisation des échanges de message<br />Echange d’informations en mode asynchrone<br />Garantie des échanges de message<br />
  32. 32. Orchestrateur - ESB<br />ESB = Enterprise Service Bus<br />Utilisation du format standard WebServices<br />Fournit un cadre de développement pour des applications SOA<br />Typologie réseau en bus<br />Intérêts <br />Accessibilité <br />Support de protocoles multiples<br />Référencement et adressage des services<br />Intégration <br />Message XML, Référentiel données & services<br />Routage, agrégation de services<br />Audit & Administration<br />Qualité de service (fiabilité et sécurité des échanges, transaction, scalabilité)<br />
  33. 33. Schéma d’une plateforme SOA<br />App. Composite<br />Portail<br />Orchestration<br />Monitoring<br />App. Composite<br />App. Composite<br />Processus métier<br />App. Composite<br />SAM<br />BAM<br />Processus métier<br />Bus de message SOA<br />Conteneur de service<br />Admin.<br />plateforme<br />ServiceXX<br />Service CRUD<br />Service technique<br />ServiceYY<br />Service CRUD<br />Service technique<br />
  34. 34. Agenda<br />Définition<br />Modéliser les services<br />Vers une plateforme SOA<br />Windows Communication Foundation<br />Questions / Réponses<br />
  35. 35. WCF – Un petit historique<br />Avant .Net 3.0<br />Trop de moyens pour créer des applications distribuées<br />WebServices (support HTTP / HTTPS)<br />.Net Remoting (HTTP/HTTPS et TCP)<br />MSMQ (Microsoft Message Queueing)<br />COM+ (Component Object Model)<br />WSE (Web Services Enhancements)<br />Nécessite l’apprentissage de différents modèles de programmation<br />Depuis .Net 3.0<br />Windows Communication Foundation<br />Infrastructure de communication distribuée unifiée<br />Multi-canal<br />Evolutif<br />Intégralement configurable (XML ou API)<br />
  36. 36. WCF - Terminologie<br />WCF Client<br />WCF Service<br />EP<br />EP<br />Service <br />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.<br />Client<br />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.<br />Endpoint<br />Ressource sur le réseau à laquelle peuvent être envoyés des messages.<br />
  37. 37. WCF – En trois lettres<br />Address<br />Définit l’endroit ou doivent être envoyés les messages du client pour que l’endpoint les réceptionne.<br />Qualifiée par une URI<br />Binding<br />Définit le protocole utilisé pour communiquer avec le client<br />HTTP/HTTPS, MSMQ, NamedPipes, etc …<br />Tous les messages WCF transitent via un canal de communication<br />Contract<br />Définit le service proposé par l’endpoint<br />Les opérations disponibles sont directement mappés sur les méthodes de classe<br />
  38. 38. WCF – En pratique (1/2)<br />Un contrat de service est une interface décorée par :<br />L’attribut ServiceContract qui assure sa publication<br />Une opération de service est décorée par :<br />L’attribut OperationContract qui assure la publication.<br />
  39. 39. WCF – En pratique (2/2)<br />La publication s’effectue au moyen d’un ServiceHost<br />L’appel s’effectue au moyen de la récupération d’un canal de communication.<br />
  40. 40. WCF – En pratique (2/2)<br />
  41. 41. WCF – Présentation de la stack<br />Application<br />Contracts<br />Data<br />Message<br />Service<br />EndPoint<br />Behavior<br />Limit<br />Error<br />Metadata<br />Create<br />Transaction<br />LB<br />Concurrency<br />Filter<br />Messaging<br />WS-Security<br />WS-Reliable<br />Serializer<br />HTTP Channel<br />TCP Channel<br />NamedPipe<br />MSMQ<br />Hosting<br />
  42. 42. WCF – Possibilité d’hébergement<br />Self Hosting<br />Binaire traditionnel avec hébergement du service WCF au sein de celui-ci. <br />Managed Windows Services <br />Service Windows prenant en charge l’hébergement du service<br />IIS Hosting<br />Hébergement directement dans IIS, préféré pour WebServices<br />Message-based activation, processrecycling, idleshutdown, health monitoring etc.<br />WAS Hosting<br />A partir de Windows 2008 / Windows Vista<br />Hébergement de services sur Internet sans avoir IIS<br />
  43. 43. Agenda<br />Définition<br />Modéliser les services<br />Vers une plateforme SOA<br />Windows Communication Foundation<br />Questions / Réponses<br />
  44. 44. Questions ?<br />Retrouvez nous sur le blog technique de Klee<br />http://blog.kleegroup.com/teknics<br />teKnics@kleegroup.com<br />@teKnics_Klee<br />

×