Галоўная > Архітэктурныя патэрны размеркаваных сістэм. Шматслойная архітэктура (Layered Architecture). Частка 1.

Архітэктурныя патэрны размеркаваных сістэм. Шматслойная архітэктура (Layered Architecture). Частка 1.

it
architecture

Прапаную разглядзець розныя архітэктурныя патэрны для размеркаваных сістэм.

Спачатку трэба вызначыцца з некаторымі тэрмінамі.

Размеркаваная сістэма - гэта сукупнасць камп'ютарных праграм, рэсурсы якіх знаходзяцца ў розных вузлах, кожная з каторых выконвае сваю асобную функцыю і абменьваецца данымі з іншымі вузламі. Вузлы фізічна могуць знаходзіцца як у адным месцы, так і ў розных регіонах. Размеркаваная сістэма не мае цэнтра кантролю, але яе асобныя вузлы выконваюць адну агульную мэту.

Размеркаваныя сістэмы маюць набор характарыстык:

  • Рэсурсы могуць выкарыстоўвацца сумесна. Пад рэсурсамі маецца на ўвазе даныя, тэхніка, праграмнае забяспячэнне.
  • Паралельная апрацоўка - адну і тую ж функцыю могуць адначасова апрацоўваць некалькі машын. Пры выхадзе са строю адной вылічальнай машыны уся сістэма будзе функцыянаваць далей.
  • Маштабаванасць - пры неабходнасці палепшыць вылічальную магутнасць ці прадукцыйнасць можна дадаваць дадатковыя машыны.

Чым адрозніваюцца архітэктурныя патэрны размеркаваных сістэм і архітэктурныя патэрны (шаблоны) праектавання?

Архітэктура размеркаваных сістэм - гэта пра узаемадзеянне розных частак усёй сістэмы (інтэрфэйс, серверная логіка і БД у выпадку веб-аплікацыі).

Шаблоны праектавання - лепшыя практыкі для напісання кода (source code) распрацоўшчыкам (напрыклад Singleton, Builder, Observer і многія іншыя).

Розныя шаблоны архітэктуры выкарыстоўваюцца для розных мэт. Напрыклад, некаторыя архітэктурныя шаблоны натуральным чынам падыходзяць для вельмі маштабуемых прыкладанняў, у той час як іншыя архітэктурныя шаблоны натуральным чынам падыходзяць для вельмі манеўраных прыкладанняў. Веданне характарыстык, моцных і слабых бакоў кожнага архітэктурнага шаблону неабходна для таго, каб выбраць той, які адпавядае вашым канкрэтным бізнес-патрэбам і мэтам.

1. Шматслойная архітэктура (Layered Architecture).

Іншыя назвы N-Layer architecture, кліент-серверная архітэктура.

З'яўляецца стандартам дэ-факта для большасці прыкладанняў Java EE і таму шырока вядомы большасці архітэктараў, дызайнераў і распрацоўшчыкаў. Таму можна лічыць найбольш распаўсюджаным архітэктурным шаблонам.

Шматслойная архітэктура - архітэктурны шаблон, які складаецца з некалькіх асобных гарызантальных слаёў, якія функцыянуюць разам як адзіная адзінка праграмнага забеспячэння.

Слой - гэта лагічны падзел кампанентаў або кода. Выдзяляюць наступныя асноўныя слаі:

  1. Узровень прадстаўлення - логіка ўзаемадзеяння карыстальніцкага інтэрфэйса і браўзера. Збірае, адпраўляе даныя на сервер і паказвае карыстальніку змены на экране.
  2. Узровень бізнес-логікі - адказвае за апрацоўку атрыманых ад узроўня прадстаўлення даных, рэалізуе ўсю неабходную логіку прыкладання, усе вылічэнні, узаемадзейнічае з базай даных і перадае ўзроўню прадстаўлення вынік апрацоўкі.
  3. Узровень доступу да даных - адказвае за ўзаемадзеянне з пастаяннымі сховішчамі, такімі як базы даных, і іншую апрацоўку інфармацыі, якая не звязана са слоем бізнес-логікі.
  4. Узровень даных - сховішча інфармацыі (базы даных).

4-layer architecture

У некаторых выпадках бізнес-узровень і ўзровень захоўвання аб'ядноўваюцца ў адзін бізнес-узровень, асабліва калі логіка захавання (напрыклад, SQL або HSQL) убудавана ў кампаненты бізнес-узроўню. Такім чынам, невялікія прыкладанні могуць мець толькі тры ўзроўні, у той час як больш буйныя і больш складаныя бізнес-прыкладанні могуць утрымліваць пяць і больш узроўняў.

Слой можа звярнуцца толькі да найбліжэйшых суседніх і ніяк не праз іх да наступных. То бок з узроўня прадстаўлення нельга звярнуцца да узроўня даных, мінуючы узровень бізнес-логікі. Слаі застаюцца ізяляванымі ад іншых слаёў. Напрыклад, для слоя бізнес-логікі няма ніякай розніцы, які фрэймворк будзе выкарыстоўвацца ў слоі прэзентацыі.

Шаблон шматслойнай архітэктуры - гэта надзейны шаблон агульнага прызначэння, што робіць яго добрай адпраўнай кропкай для большасці прыкладанняў, асабліва калі вы не ўпэўненыя, які шаблон архітэктуры лепш за ўсё падыходзіць для вашай аплікацыі. Добра падыходзіць для большасці карпаратыўных праграм.

Плюсы шматслойнай архітэктуры:

  1. Добра вядомы надзейны шаблон, які можна хутка разгарнуць.
  2. Нізкі ўзровень звязнасці слаёў дазваляе знізіць складанасць праекта. Кожны слой мае свой асаблівы абмежаваны набор функцыянальнасці, які слаба звязан з суседнімі. Таму адзін слой можна замяніць іншым, напрыклад (UI) без уплыву на астатнія.
  3. Нізкі ўзровень звязнасці дазваляе пры неабходнасці перавыкарыстоўваць асобныя слаі ў розных праграмах. Напрыклад, можна перавыкарыстаць слой бізнес-логікі ці слой с данымі.
  4. Праграму, падзеленую на лагічныя часткі лягчэй тэсціраваць, бо можна ізяляваць кожную частку і дадаваць тэставыя заглушкі для напісання unit- і інтэграцыйных тэстаў.

Мінусы шматслойнай архітэктуры:

  1. Часам, згодна тэхнічным патрабаванням, патрабуецца ўнесці змены не ў адзін, а ў некалькі слаёў. Гэта зніжае гнуткасць і хуткасць распрацоўкі. Напрыклад, калі патрэбна дадаць новае поле ў форму, яго трэба дадаць на UI, дадаць валідацыю, апрацоўку выхадных параметраў. Слой бізнес-логікі павінен дадаць валідацыю і логіку для дадатковых даных, у БД патрэбна гэтыя даныя захаваць.
  2. Частка даных можа назаўпрост праходзіць праз слаі, ніяк на іх не апрацоўваючыся. Праходжанне запыта праз некалькі слаёў можа яго замарудзіць. Калі працэнт такіх запытаў вялікі, трэба падумаць над зменамі у шаблоне. Не дадасць хуткасці і трансфармацыя фармату даных на розных слаях.
  3. Пошук багаў, звязанных з праходжаннем запытаў праз усе слаі, можа быць складаным, бо шукаць давядзецца на ўсіх узроўнях.
loveJS, 2023-09-20
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)

    ;