Architecture Hexagonale
Introduit par Alistair Cockburn, ce pattern d’architecture aussi connu sous le nom de Port & Adapters Architecture place le métier au centre de l’architecture.
L'architecture hexagonale, ou architecture à base de ports et d'adaptateurs, est un patron d'architecture utilisé dans le domaine de la conception des logiciels. Elle vise à créer des systèmes à base de composants d'application qui sont faiblement couplés et qui peuvent être facilement connectés à leur environnement logiciel au moyen de ports et d'adaptateurs. Ces composants sont modulaires et interchangeables ce qui renforce la cohérence des traitements et facilite l'automatisation des tests.
L'intention originelle etait de
Permettre à une application d’être pilotée aussi bien par des utilisateurs que par des programmes, des tests automatisés ou des scripts batchs, et d’être développée et testée en isolation de ses éventuels systèmes d’exécution et bases de données.
L'architecture hexagonale décompose un système en plusieurs composants interchangeables et faiblement couplés, tels le noyau de l'application, la base de données, l'interface utilisateur, les scripts de test ou encore les interfaces avec d'autres systèmes.
Ports
Chaque composant est connecté aux autres par l'intermédiaire de « ports » qui représentent un canal de communication. La communication via ces ports suit un protocole qui dépend de l'objectif de l'interaction. Les ports et les protocoles définissent une interface de programmation applicative (API) abstraite, qui peut être mise en œuvre par tout moyen technique approprié (par exemple : invocation de méthodes dans un langage orienté objet, appels de procédure distante ou encore services Web).
La granularité des ports et leur nombre n'est pas contraint :
- un seul port pourrait, dans certains cas, être suffisant (par exemple, dans le cas d'un simple consommateur de service);
- En général, il existe des ports pour les sources d'événements (interface utilisateur, alimentation automatique), les notifications (notifications sortantes), la base de données (afin d'interfacer le composant avec un SGBD approprié) et pour l'administration (pour contrôler le composant);
- dans un cas extrême, il pourrait y avoir un port différent pour chaque cas d'utilisation, si nécessaire.
Adaptateurs
Les adaptateurs forment le ciment entre les composants et avec le monde extérieur. Ils adaptent les échanges entre le monde extérieur et leur port, ce dernier traduisant des exigences internes au composant d’application. Il peut y avoir plusieurs adaptateurs pour un même port, par exemple lorsque les données peuvent être fournies par un utilisateur via une interface graphique ou une interface de ligne de commande, ou envoyées par une source de données automatisée ou des scripts de test.
On trouve 2 types d'adaptateurs; les primaires qui déterminent l'utilisation de la logique métier et les secondaires qui permettent le fonctionnement de cette logique.
Les Couches Logicielles
Couche Applicative
Couche Domaine
Couche Infrastructure
Cette couche fournit les composants techniques nécessaires à l'exécution de l'application. Cela peut inclure des bases de données, des services externes, des frameworks et des bibliothèques. Les détails d'implémentation spécifiques, tels que la persistance des données, la gestion des transactions et les appels réseau, sont gérés dans cette couche.
Commentaires
Enregistrer un commentaire