Classification des Services


Objectif(s)
  1. Ajuster l'effort de design et de construction des Services.
  2. Garantir l'agilité dans la construction de Services.
Cible(s) 
Couverture

La notion de Service est vue comme Logique. Il ne s'agit pas uniquement d'une vision SOA.

Ce Service porte un objectif fonctionnel et peut être sollicité de différentes façons:

  • par appel direct: un Service WSDL ou REST
  • par un appel indirect: via un message (data ou événement).

Classes de services

Cette classification permet d'organiser les services et leurs dépendances. 

NiveauClassePérimètre
EntrepriseFonctionnel

Service qui possède une définition Fonctionnelle.


Référentiel

Service qui expose une donnée de référence du métier.


TechniqueService support au métier tel que de transcodification.
DomaineDomaine

Service spécifique à 1 domaine.

Partagé entre N applications du même domaine.

ApplicatifApplicatifSpécifique à 1 application.


Services d'entreprise

Un service d'entreprise suit les contraintes dictées par l'entreprise.

Il respecte les contraintes de QoS imposées par le métier:

  • Disponibilité
  • Temps de réponse
  • Droits d’accès
  • Priorité
  • Facturation

Il respecte les contraintes de qualité imposées par le Système d'Information:

  • Protocole
  • Modèle pivot
  • Sécurité
  • Restriction des ressources

Le respect de ces contraintes correspond en grande partie au coût de la réutilisation au sein du Système d'Information.

3 classes de Services sont définis:

  1. Fonctionnel
  2. Référentiel
  3. Technique

Service Fonctionnel

Ce service possède une définition fonctionnelle. Il propose une ou plusieurs opérations ayant un sens métier.

Il véhicule en entrée et en sortie une partie du modèle pivot d'entreprise.

Enfin, il peut être transactionnel afin d'agréger d'autres Services Fonctionnels entre eux.

Service Référentiel

Ce service Référentiel expose une donnée de référence du métier.

Ces données sont en majorité des listes de valeurs très stables. Ils exposent comme les services Fonctionnels des données au format Pivot.

Par conséquence, leurs usages sont orientés lecture ou rarement écriture.

Pour un service Référentiel, seule l'opération en écriture est transactionnel.


Service Technique

Ce service ne propose pas un objectif fonctionnel mais permet de supporter les médiations au sein du middleware (ESB, MOM, Streaming, etc).
Exemples:

  • Service de caches, 
  • Service de routage technique, 
  • Service d’annuaire, 
  • Service de management, 
  • etc.

Ceux-ci ne véhiculent pas uniquement des données métier. Leur formalisme est libre.

Les Services Techniques d'Entreprise n'ont pas vocation à être exposés par le Middleware.


Service de domaine

Un service de domaine répond à une problématique d’un domaine fonctionnel (paie, vente, etc.)
Ils sont consommés par les applications de ce même domaine.
Ils ne sont pas (obligatoirement) :

  • exposés par le Bus.
  • consommés par le Bus,
  • au format Pivot.

Exemple: Recherche, R/W de ressources, etc.

Ces services sont mis à disposition des Services Applicatifs des IHM dans l'objectif de factoriser du comportement entre applications. Leurs changements impactent donc les applications de ce même périmètre.


Service applicatif

Un service applicatif répond à une problématique IHM.

C'est-à-dire:

  • il transporte les données nécessaires et suffisantes à l'IHM
  • il est sollicité dans un contexte de parcours et de workflow

Celui-ci est souvent mis en jeu avec un Contrôleur.

Ces services sont utilisés dans un périmètre réduit. Ils demandent une agilité forte conduite par les demandes de changement des IHM.

Dépendances entre Services

De l'Application vers le Domaine

Les applications consomment des services dans leur périmètre. Leurs dépendances sont libres et hors scope de l'EA.

Celles-ci peuvent solliciter des Services de leur Domaine, Fonctionnels ou Référentiels via le Middleware.

Du Domaine vers le Middleware

Les services de Domaines sont consommateurs de services Fonctionnels ou Référentiels.

Ils ne peuvent consommer des services applicatifs (instables).

Au sein du Middleware

La dépendance des Services est par couche :

  1. Services Fonctionnels
  2. Services Référentiels
  3. Services Techniques.

La couche supérieure appelle les couches inférieures. L'inverse n'est pas possible.

Du Middleware vers le Domaine

Les services Fonctionnels et Référentiels délèguent leur traitement métier aux services de classe Domaine.


Du Domaine vers l'Application

Relation interdite.

Risque: Si les services d'Entreprise consomment des Services Applicatifs, ils peuvent impacter grandement les utilisateurs par une sollicitation forte des services IHM.