Architecture hexagonale

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

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

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

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

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.

Voir aussi

Références

(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 ], alistair.cockburn.us,
  2. (en) Jan Stenberg, « Exploring the Hexagonal Architecture », sur InfoQ.com, InfoQ, (consulté le )
  3. (en) Martin Fowler, Patterns of enterprise application architecture, Addison-Wesley, , 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, , 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, (consulté le )
  6. (en) Suhas Chatekar, Learning NHibernate 4 : explore the full potential of NHibernate to build robust data access code, Packt Publishing, , 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, (consulté le )
  8. (en) Robert C. Martin, Clean Architecture : A Craftsman's Guide to Software Structure and Design, Prentice Hall, , 404 p. (ISBN 978-0-13-449416-6, OCLC 1004983973, lire en ligne)

Read other articles:

Koordinat: 20°N 71°E / 20°N 71°E / 20; 71 Pengepungan Diu PertamaBagian dari Konflik Utsmaniyah-Portugis dan Perang Portugis-UtsmaniyahArmada Utsmaniyah di Samudra Hindia pada abad ke-16.TanggalSeptember 1538LokasiDiu, India PortugalHasil Kemenangan menentukan PortugalArmada Utsmaniyah mundurPihak terlibat Kekaisaran Portugal Kesultanan Utsmaniyah Kesultanan GujaratTokoh dan pemimpin António da Silveira Martim Afonso de Sousa Suleiman Pasha, Gubernur Mesir Utsmani...

 

 

Croatian politician Željko JovanovićMinister of Science, Education and SportsIn office23 December 2011 – 11 June 2014Prime MinisterZoran MilanovićSucceeded byVedran MornarPreceded byRadovan Fuchs Personal detailsBorn (1965-11-26) 26 November 1965 (age 58)Rijeka, SR Croatia, SFR Yugoslavia(now Croatia)Political partySocial Democratic Party of CroatiaAlma materUniversity of Rijeka Željko Jovanović (born 26 November 1965) is a Croatian politician and physician who served as ...

 

 

See also: 2020 United States Senate elections Not to be confused with 2020 Georgia State Senate election. For the other Senate election in Georgia held in parallel, see 2020–21 United States Senate general election in Georgia. 2020–21 United States Senate special election in Georgia ← 2016 November 3, 2020 (first round)January 5, 2021 (runoff) 2022 → Turnout65.3% (first round)59.7% (runoff)   Candidate Raphael Warnock Kelly Loeffler Party Democratic Republican F...

English footballer (born 1992) Tom Carroll Carroll playing for Swansea City in 2015Personal informationFull name Thomas James Carroll[1]Date of birth (1992-05-28) 28 May 1992 (age 31)Place of birth Watford, EnglandHeight 5 ft 10 in (1.77 m)[2]Position(s) MidfielderTeam informationCurrent team Exeter CityNumber 6Youth career2008–2010 Tottenham HotspurSenior career*Years Team Apps (Gls)2010–2017 Tottenham Hotspur 27 (1)2010–2011 → Leyton Orient (loan)...

 

 

Habib SayyidSaggaf bin Muhammad Aljufri,M.A.سيد سقاف بن محمد الجفريHabib Sayyid Saggaf Aljufri pada 2018 Ketua Utama AlkhairaatMasa jabatan1974 – 3 Agustus 2021PendahuluSayyid Muhammad bin Idrus al-JufriPenggantiPetahanaRektor Universitas Alkhairaat[1]Masa jabatan1967–1989PendahuluSayyid Idrus bin Salim Al-JufriPenggantiIr. Faisal Shahab Informasi pribadiLahirSayyid Saggaf(1937-08-17)17 Agustus 1937Pekalongan, Hindia BelandaMeninggal3 Agustus 2021(2021-...

 

 

Church in St Albans, United KingdomSs Alban and Stephen ChurchSt Alban and St Stephen's Church51°45′05″N 0°19′43″W / 51.75129°N 0.32857°W / 51.75129; -0.32857LocationSt AlbansCountryUnited KingdomDenominationRoman CatholicWebsiteAlbanStephen.orgHistoryStatusParish churchFounded22 June 1877DedicationSaint AlbanSaint StephenConsecrated4 May 1977EventsExtended 1965-7ArchitectureFunctional statusActiveArchitect(s)John KellyStyleItalianateGroundbreaking22 July ...

American film director This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) The topic of this article may not meet Wikipedia's notability guideline for biographies. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the ...

 

 

Medibank International 2011 Sport Tennis Data 9 gennaio – 15 gennaio Edizione 119a Superficie Cemento Campioni Singolare maschile Gilles Simon Singolare femminile Li Na Doppio maschile Lukáš Dlouhý / Paul Hanley Doppio femminile Iveta Benešová / Barbora Záhlavová-Strýcová 2010 2012 Il Medibank International Sydney 2011 è stato un torneo di tennis giocato sul cemento. È stata la 119ª edizione del torneo, dal 2009 conosciuto come Medibank International Sydney facente parte sia de...

 

 

Bilateral relationsIrish–Kosovan relations Ireland Kosovo Irish–Kosovan relations are foreign relations between Ireland and Kosovo. Kosovo declared its independence from Serbia on 17 February 2008 and Ireland recognised it on 29 February 2008.[1] Relations On 20 May 2011 Ireland's ambassador to Budapest, Hungary John Deady submitted his credentials to Pristina, Kosovo.[2] As of 2023 Ireland does not have an embassy in Kosovo, and relations are handled through the Irish em...

Government ministry of Bangladesh Ministry of Liberation War AffairsBengali: মুক্তিযুদ্ধ বিষয়ক মন্ত্রণালয় Muktijodho Bishyok MontranaloiGovernment of Bangladesh SealAgency overviewFormed23 October 2001[1]JurisdictionGovernment of BangladeshHeadquartersSecretariat, DhakaMinister responsibleAKM Mozammel Haque[2]Agency executiveMd. Khaza Miah, SecretaryWebsiteMinistry of Liberation War Affairs The Ministry of Liberation Wa...

 

 

Северный морской котик Самец Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:Синапси...

 

 

Chemical elements in group 13 of the periodic table Icosagen redirects here. For the company based in Estonia, see Icosagen (company). Boron group (group 13) Hydrogen Helium Lithium Beryllium Boron Carbon Nitrogen Oxygen Fluorine Neon Sodium Magnesium Aluminium Silicon Phosphorus Sulfur Chlorine Argon Potassium Calcium Scandium Titanium Vanadium Chromium Manganese Iron Cobalt Nickel Copper Zinc Gallium Germanium Arsenic Selenium Bromine Krypton Rubidium Strontium Yttrium Zirconium N...

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

 

American college basketball season 2019–20 Princeton Tigers men's basketballConferenceIvy LeagueRecord14–13 (9–5 Ivy)Head coachMitch Henderson (9th season)Associate head coachBrett MacConnellAssistant coaches Skye Ettin Jonathan Jones Home arenaJadwin GymnasiumSeasons← 2018–192021–22 → 2019–20 Ivy League men's basketball standings vte Conf Overall Team W   L   PCT W   L   PCT x-Yale 11 – 3   .786 23 – 7 ...

 

 

قناة فالنس قناة فالنس وشارع أتاتورك كما يُنظر إليها من الجهة الجنوبية الغربية الاسم الرسمي قناة بوزدوغان البلد تركيا  المكان إسطنبول، الفاتح، إسطنبول، إسطنبول، تركيا الإنشاءات التصميم جسر قوسي الطراز المعماري عمارة بيزنطية  مواد البناء طوب وحجر الموقع على الخ�...

فيروس العوز المناعي البشري رسم تخطيطي لفيروس العوز المناعي البشريرسم تخطيطي لفيروس العوز المناعي البشري. الوبائيات انتشار المرض 0.0075   التاريخ وصفها المصدر موسوعة لاروس الإلكترونية  [لغات أخرى]‏[1]  تعديل مصدري - تعديل   فيروس عوز المناعة البشري (بالإنجل�...

 

 

Maria-sama ga Miteru (2004) DVD volume 1 cover Maria-sama ga Miteru is an anime television series adapted from the light novel series of the same title by Oyuki Konno and Reine Hibiki. It was broadcast in Japan between January 7 and March 31, 2004, on TV Tokyo.[1] Produced by Studio Deen and directed by Yukihiro Matsushita, the screenplay was written by Reiko Yoshida, and Akira Matsushima based the character design used in the anime on Reine Hibiki's original designs. The art directo...

 

 

Silvio TacconisSilvio Tacconis nel 1910.Informazioni personaliArbitro di Calcio Sezione[1] ProfessioneFarmacista Attività nazionale AnniCampionatoRuolo 1913-1920Prima CategoriaArbitro Silvio Carlo Augusto Tacconis (Torino, 9 dicembre 1891[2] – Torino, 4 giugno 1951[3]) è stato un arbitro di calcio e farmacista italiano. Il padre, il commendator Camillo, che volle messa in palio la Coppa Tacconis, era anche lui uno sportivo attivo in ambito sollevamento pesi.[4&...

Anfiteatro delle Tre GallieCiviltàRomana Stilearchitettura romana EpocaI secolo d.C. - III secolo d.C. LocalizzazioneStato Francia DipartimentoMetropoli di Lione DimensioniLarghezzaarena: 67 m x 42 m ScaviData scoperta1834 Date scavi1860 1961-67 1968-69 1971-72 1976-78 ArcheologoAmable Audin AmministrazionePatrimonioCittà storica di Lione EnteComune di Lione Visitabileno (ma visibile dall'esterno) Sito webwww.lyon-france.com/Que-faire/Culture-loisirs/Sites-monuments-historiques/Monumen...

 

 

Eclissi solare del 3 gennaio 1927MappaTipoAnulare Gamma-0.4956 Magnitudine0.9995 Coordinate eclissi massima52.8°S 124.8°W Orari (UTC)Eclissi massima20:22:53 L'eclissi solare del 3 gennaio 1927 è un evento astronomico che ha avuto luogo il suddetto giorno attorno alle ore 20.22 UTC.[1] L'eclissi, di tipo anulare, è passata attraverso la Nuova Zelanda, Cile, Argentina, Uruguay e Brasile, mentre l'eclissi solare parziale ha coperto il Pacifico centrale e meridionale, la maggior p...