Architecture orientée service (SOA)
Upcoming SlideShare
Loading in...5
×
 

Architecture orientée service (SOA)

on

  • 9,948 views

Présentation générale d'une architecture orientée service : ...

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

Statistics

Views

Total Views
9,948
Views on SlideShare
9,944
Embed Views
4

Actions

Likes
1
Downloads
401
Comments
2

1 Embed 4

http://172.20.84.163 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Architecture orientée service (SOA) Architecture orientée service (SOA) Presentation Transcript

  • 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
    • Polymorphisme
    • Encapsulation
    • Héritage
    • Faible couplage
    • Réutilisation
    • Message
    • Contrat
    • Interopérabilité
  • 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
  • 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.
  • 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.
  • WCF – En pratique (2/2)
  • 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
  • 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
  • Agenda
    Définition
    Modéliser les services
    Vers une plateforme SOA
    Windows Communication Foundation
    Questions / Réponses
  • Questions ?
    Retrouvez nous sur le blog technique de Klee
    http://blog.kleegroup.com/teknics
    teKnics@kleegroup.com
    @teKnics_Klee