Témoignage
 

Rubrique « Info »

 



Écrivez à AILES !



Retour vers programmation



Retour vers les questions Architecture



Retour vers les questions 
Layer vs. Tiers
 


Questionnaire Langage de programmation
Layer vs. Tiers

[BCF00], [msdn]


    Entre le monde fonctionnel et le monde applicatif, cet un véritable changement de paradigme qui s'opère. On passe d'un point de vue à un autre  

Layer vs. Tiers : Domaine Architecturale :
    En dehors de toute indication spécifique, le terme de :
- Layer désigner un "functional layer" : couche Fonctionnelle ;
- Tiers désigne une problématique de (niveau de) distribution, donc Applicative, voire Technique s'il s'agit de tiers identifiés

   C'est au niveau des tiers applications que l'on va identifier les messages (donc une communication directe d'un tier vers un autre) et les événements (qui permettent la communication entre les tiers dans l'autre sens et évitent un couplage trop fort entre 2 tiers).
   On va également projeter certaines fonctions dans un ou plusieurs tiers. 


Layer vs. Tiers : Source de Confusion
    Il n'est pas rare de parler, au niveau applicatif, de "layering". Pourtant cette activité ne produit pas des layers, mais par au contraire de layers fonctionnels (des couches) pour aboutir à des tiers applicatifs (des niveaux que l'on traduit volontiers en "layer", au lieu de tiers.
    L'article sur  le passage du point de vue fonctionnel au point de vue technique un exemple de projection concernant la persistance qui implique l'identification à partir de couches fonctionnelles générales des tiers applicatifs.

    Il est également facile de confondre un tier client avec un layer applicatif qui porterait le même nom. Or un layer (par exemple "client") peut regrouper un ensemble de fonctions qui vont concerner plusieurs tiers logiques (comme le tier "client" pour l'aspect graphique, mais aussi un tier "espace de travail" pour l'aspect gestion des fichiers de configuration de l'application, et encore le tier "applicatif" pour l'aspect de certaines fonctions liées à l'interface graphique, communicantes avec le serveur applicatifs et qui sont déployées sur le poste client.

Différents Layers
    Au niveau des couches fonctionnelles, il faut distinguer les différents types de dépendances fonctionnelles que l'on veut mettre en place.

    le modèle principal de collaboration est désigné par [BCF00] comme le "modèle Lasagne".
   Chaque couche est construite de façon autonome, mais chacune s'appuie sur l'autre pour son fonctionnement. Cela permet de construire ses couches par dépendances croissante, la première couche ne dépendant d'aucune autre (ce serait donc la couche de base de la lasagne, sur laquelle viendraient s'empiler les autres couches).
   Bien sûr, cette analogie ne prend pas en compte le fait qu'il est théoriquement possible de substituer une couche fonctionnelle par une autre, équivalente en terme d'interface sans toucher aux autres layers... ce qui n'est pas vraiment possible avec une vraie lasagne!

   Parmi les autres modèles, on trouve le modèle "spaghetti", qui caractérisent des couches inter-dépendantes, dont les services fonctionnelles finissent par s'appeler les uns les autres.

   Toujours dans un vocabulaire culinaire italien, les couches "ravioli" reposent sur une encapsulation forte d'une couche par une autre, la première devenant invisible pour les autres.

Différents Tiers
   
La distinction entre tiers applicatifs et tiers techniques : 
    * "tier client" est un tier applicatif, à savoir "le poste où l'application côté client doit s'exécuter". Il s'agit d'un tier logique.
   * "poste client PC-NT" est un tier technique, impliquant des caractéristique hardware et software dimensionnée ; Il s'agit d'un tier physique directement lié au déploiement de l'application.

    [BCF00] résume ces tiers en deux "domaines de distribution" :
UWD : User Workspace Domaine, l'ensemble des ressources logicielles qui supportent l'utilisation de l'application du point de vue de l'utilisateur via des mécanismes d'interaction (donc on y retrouve l'IHM, mais aussi les fonctions métiers déployées du côté de l'utilisateur ou encore ce qui constitue son "espace de travail" - et cela va de simples fichiers de configuration à parfois de véritables petites bases de données!)
ERD : Enterprise Resource Tier regroupe l'ensemble des ressources logicielles au sein des quelles l'état des données importantes de l'application peut être modifié, au travers de transactions ACID.



               
 
Avertissement !
 
Décollage !  |  Présentation du site web "AILES"  | 
Infos générales  |  articles "Informatique"