Алты бұрышты архитектура (бағдарламалық жасақтама) - Hexagonal architecture (software)

The алты бұрышты сәулет, немесе порттар мен адаптерлер архитектурасы, - қолданылған сәулеттік өрнек бағдарламалық жасақтама. Ол құруға бағытталған еркін байланыстырылған порттар арқылы бағдарламалық жасақтамаға оңай қосылатын қолданбалы компоненттер адаптерлер. Бұл компоненттерді кез-келген деңгейде алмасуға мүмкіндік береді және тестілеуді автоматтандыруды жеңілдетеді.[1]

Шығу тегі

Алты бұрышты архитектураны ойлап тапқан Алистер Кокберн құрылымдық ақаулардан аулақ болу үшін объектіге бағытталған бағдарламалық жасақтама арасындағы, мысалы, қалаусыз тәуелділіктер қабаттар және ластануы пайдаланушы интерфейсі коды бар іскерлік логика, және 2005 жылы жарияланған.[2]

Термин «алты бұрышты» графикалық шартты белгілерден туындайды, ол қолданбалы компонентті а түрінде көрсетеді алты бұрышты ұяшық. Мұндағы мақсат алты шекара / порт болатындығын ұсыну емес, компонент пен сыртқы әлем арасында қажетті әр түрлі интерфейстерді ұсынуға жеткілікті орын қалдыру болды.[1]

Қағида

Қолдану ядросын білдіретін ішкі алтыбұрышы бар алтыбұрышты архитектураның мысалы, адаптерлер үшін сыртқы алтыбұрыш, екеуінің шекарасы порттар болып табылады
Алты бұрышты архитектураның мысалы

Алты бұрышты архитектура жүйені қолданбалы ядролар, мәліметтер базасы, қолданушы интерфейсі, сынақ сценарийлері және басқа жүйелермен интерфейстер сияқты бірнеше еркін байланыстырылатын ауыстырылатын компоненттерге бөледі. Бұл тәсіл дәстүрлі қабатты сәулетке балама болып табылады.

Әрбір компонент басқаларға бірнеше ашық «порттар» арқылы қосылады. Осы порттар арқылы байланыс мақсатына қарай берілген хаттамаға сәйкес жүреді. Порттар мен хаттамалар рефератты анықтайды API кез келген қолайлы техникалық құралдармен жүзеге асырылуы мүмкін (мысалы. әдісті шақыру ан объектіге бағытталған тіл, қашықтағы процедуралар, немесе Веб-қызметтер ).

Порттардың түйіршіктігі және олардың саны шектелмейді:

  • жалғыз порт кейбір жағдайда жеткілікті болуы мүмкін (мысалы, қарапайым қызмет тұтынушысы үшін);
  • Әдетте, оқиға көздеріне арналған порттар бар (пайдаланушы интерфейсі, автоматты түрде беру), хабарламалар (шығыс хабарламалар), дерекқор (компонентті кез-келген сәйкес ДҚБЖ-мен интерфейс үшін) және әкімшілік (компонентті басқару үшін);
  • экстремалды жағдайда әрқайсысы үшін әр түрлі порт болуы мүмкін регистрді қолдану, қажет болса.

Адаптерлер компоненттер мен сыртқы әлем арасындағы желім болып табылады. Олар қолданбалы компоненттің ішкі талаптарын білдіретін сыртқы әлем мен порттар арасындағы айырбасты бейімдейді. Бір порт үшін бірнеше адаптерлер болуы мүмкін, мысалы, пайдаланушы деректерді GUI немесе командалық интерфейс арқылы, автоматтандырылған деректер көзі арқылы немесе тестілік сценарийлермен қамтамасыз ете алады.

Пайдалану, сын және эволюция

Сәйкес Мартин Фаулер, алтыбұрышты архитектура интерфейстермен қоршалған ядродан жасалған симметриялы компоненттерді құру үшін презентация деңгейі мен деректер көзі қабаты арасындағы ұқсастықтарды қолданудың артықшылығына ие, бірақ қызмет провайдері мен қызмет тұтынушысы арасындағы ассиметрияны жасырудың кемшілігі бар қабаттар ретінде ұсынылған.[3]

Кейбір авторлардың пікірінше, алты бұрышты архитектура микроқызметтер сәулет.[4]

Нұсқалар

Джеффри Палермо 2008 жылы ұсынған пияздың архитектурасы алтыбұрышты архитектураға ұқсас: сонымен қатар қосымша мен мәліметтер базасы арасындағы байланыстыруды қамтамасыз ету үшін инфрақұрылымды тиісті интерфейстермен сыртқы етеді.[5] Ол қолдану ядросын одан әрі бірнеше концентрлі сақиналарға бөледі басқарудың инверсиясы.[6]

Ұсынған таза сәулет Роберт С. Мартин 2012 жылы алтыбұрышты архитектура, пияз архитектурасы және басқа бірнеше нұсқалары үйлеседі; Ол концентрлі сақиналар түрінде ұсынылған компоненттің қосымша бөлшектерін ұсынады. Бұл сәулеттің сыртқы сақиналарында адаптерлер мен интерфейстерді (пайдаланушы интерфейсі, мәліметтер базасы, сыртқы жүйелер, құрылғылар) оқшаулайды және ішкі сақиналарды қалдырады істерді қолдану және субъектілер[7],.[8] Таза архитектура принципін қолданады тәуелділік инверсиясы тәуелділіктер тек сыртқы сақинадан ішкі сақинаға дейін болады және керісінше болмайды деген қатаң ережемен.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б Алистер, Кокберн (2005-04-01). «Алты бұрышты сәулет». alistair.cockburn.us. Алынған 2020-11-18.
  2. ^ Стенберг, қаңтар (2014-10-31). «Алты бұрышты сәулетті зерттеу». InfoQ. Алынған 2019-08-12.
  3. ^ Фаулер, Мартин (2003). Кәсіпорын қолданбалы архитектурасының үлгілері. Аддисон-Уэсли. б. 21. ISBN  0-321-12742-0. OCLC  50292267.
  4. ^ Rajesh R. V. (2017). Көктемгі 5.0 микроқызметтері: реактивті ағындар, серіппелі жүктеу, докер және мезос көмегімен масштабталатын микросервистерді құру. (Екінші басылым). Packt Publishing. 13-14 бет. ISBN  978-1-78712-051-8. OCLC  999610958.
  5. ^ Джеффри, Палермо (2008-07-29). «Пияз сәулеті: 1 бөлім». Палермомен бағдарламалау. Алынған 2019-08-12.
  6. ^ Чатекар, Сухас (2015). NHibernate 4-ті үйрену: деректерге қол жеткізудің сенімді кодын құру үшін NHibernate-тің барлық мүмкіндіктерін зерттеу. Packt Publishing. 249-250 бб. ISBN  978-1-78439-206-2. OCLC  937787252.
  7. ^ Мартин, Роберт, C. (2012-08-12). «Таза архитектура | Таза кодтаушы блогы». blog.cleancoder.com. Алынған 2019-08-12.
  8. ^ Мартин, Роберт С. (2017). Таза архитектура: бағдарламалық жасақтама мен дизайн бойынша шеберге арналған нұсқаулық. Prentice Hall. ISBN  978-0-13-449416-6. OCLC  1004983973.