Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. WeltenzyklopÀdie
  2. Architecture hexagonale
Architecture hexagonale 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

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[1].

Origine

[modifier | modifier le code]

L’architecture hexagonale a Ă©tĂ© inventĂ©e par Alistair Cockburn dans le but d’éviter les piĂšges habituels de conception de logiciels orientĂ©s objet rencontrĂ©s dans les architectures en couches, comme par exemple les dĂ©pendances indĂ©sirables entre les couches et la contamination du code de l’interface utilisateur avec des logiques et des rĂšgles mĂ©tier. Elle a Ă©tĂ© publiĂ©e en 2005[2].

Le terme « hexagonal Â» rĂ©fĂšre aux conventions graphiques informelles, qui reprĂ©sentent les composants d'application sous forme de cellule hexagonale. Le but n'est pas de suggĂ©rer qu'il y aurait six frontiĂšres / ports, mais de laisser suffisamment de place pour reprĂ©senter les diffĂ©rentes types d'interface nĂ©cessaires entre le composant et le monde extĂ©rieur[1].

Principes

[modifier | modifier le code]
Exemple d'architecture hexagonale

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.

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.

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.

Usage, critique et évolution

[modifier | modifier le code]

Selon Martin Fowler, l'architecture hexagonale présente l'avantage d'utiliser des similitudes entre la couche de présentation et la couche de source de données pour créer des composants symétriques constitués d'un noyau entouré d'interfaces, mais avec l'inconvénient de masquer l'asymétrie inhérente entre un producteur de services et un consommateur de services[3].

Selon certains auteurs, l’architecture hexagonale serait à l’origine de l’architecture à base de microservice[4].

Variantes

[modifier | modifier le code]

L’architecture en oignon, proposĂ©e par Jeffrey Palermo en 2008, est similaire Ă  l’architecture hexagonale. En effet, elle externalise Ă©galement l’infrastructure en utilisant des interfaces appropriĂ©es pour garantir l'absence de couplage entre l’application et la base de donnĂ©es[5]. Elle dĂ©compose toutefois le noyau d’application de façon plus prĂ©cise, sous forme d'anneaux concentriques utilisant l’inversion de contrĂŽle[6].

L’architecture « Ă©purĂ©e Â» (« clean architecture Â» en anglais), proposĂ©e par Robert C. Martin en 2012, combine les principes de l’architecture hexagonale, l’architecture en oignon et plusieurs autres variantes architecturales. Il propose ainsi des niveaux de dĂ©tail supplĂ©mentaires du composant, qui sont prĂ©sentĂ©s sous forme d'anneaux concentriques. Cette architecture isole les adaptateurs et les interfaces (interface utilisateur, bases de donnĂ©es, systĂšmes externes, des appareils) dans les anneaux extĂ©rieurs de l'architecture et dĂ©die les anneaux intĂ©rieurs pour les cas d'utilisation et les entitĂ©s[7],[8]. L'architecture « Ă©purĂ©e Â» utilise le principe d'inversion des dĂ©pendances avec la rĂšgle stricte selon laquelle les dĂ©pendances ne doivent exister qu'entre un anneau externe et un anneau plus interne et jamais le contraire.

Notes et références

[modifier | modifier le code]
(en) Cet article est partiellement ou en totalitĂ© issu de l’article de WikipĂ©dia en anglais intitulĂ© « Hexagonal architecture (software) Â» (voir la liste des auteurs).
  1. ↑ a et b (en) Alistair, « Hexagonal architecture Â» [archive du 22 aoĂ»t 2018], alistair.cockburn.us, 1er avril 2005
  2. ↑ (en) Jan Stenberg, « Exploring the Hexagonal Architecture Â», sur InfoQ.com, InfoQ, 31 octobre 2014 (consultĂ© le 12 aoĂ»t 2019)
  3. ↑ (en) Martin Fowler, Patterns of enterprise application architecture, Addison-Wesley, 2003, 533 p. (ISBN 978-0-321-12742-6, OCLC 50292267, lire en ligne), p. 21
  4. ↑ (en) R V Rajesh, Spring 5.0 microservices : build scalable microservices with Reactive Streams, Spring Boot, Docker, and Mesos, Packt Publishing, 2017, 414 p. (ISBN 978-1-78712-051-8, OCLC 999610958, lire en ligne), p. 13-14
  5. ↑ (en) Jeffrey Palermo, « The Onion Architecture : part 1 Â», Programming with Palermo, sur jeffreypalermo.com, 29 juillet 2008 (consultĂ© le 12 aoĂ»t 2019)
  6. ↑ (en) Suhas Chatekar, Learning NHibernate 4 : explore the full potential of NHibernate to build robust data access code, Packt Publishing, 2015, 402 p. (ISBN 978-1-78439-206-2, OCLC 937787252, lire en ligne), p. 249-250
  7. ↑ (en) Robert C. Martin, « The Clean architecture - Clean Coder Blog Â», sur blog.cleancoder.com, 12 aoĂ»t 2012 (consultĂ© le 12 aoĂ»t 2019)
  8. ↑ (en) Robert C. Martin, Clean Architecture : A Craftsman's Guide to Software Structure and Design, Prentice Hall, 2017, 404 p. (ISBN 978-0-13-449416-6, OCLC 1004983973, lire en ligne)

Voir aussi

[modifier | modifier le code]
  • Patron d'architecture
  • Architecture logicielle
  • Diagramme de structure composite
  • Analyse et conception orientĂ©e objet
  • Architecture en couches
  • icĂŽne dĂ©corative Portail de la programmation informatique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Architecture_hexagonale&oldid=229399108 Â».
CatĂ©gories :
  • Programmation orientĂ©e objet
  • Architecture logicielle
  • DĂ©veloppement logiciel
CatĂ©gories cachĂ©es :
  • Article contenant un lien mort
  • Portail:Programmation informatique/Articles liĂ©s
  • Portail:Informatique/Articles liĂ©s

  • indonesia
  • Polski
  • Ű§Ù„Ű±ÙŠŰ©
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • Ù…Ű”Ű±
  • Nederlands
  • æœŹèȘž
  • PortuguĂȘs
  • Sinugboanong Binisaya
  • Svenska
  • ĐŁĐșŃ€Đ°Ń—ĐœŃĐșа
  • Tiáșżng Việt
  • Winaray
  • äž­æ–‡
  • РуссĐșĐž
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id