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