N Tier (Багаторівневий), 3-рівневий, 2-рівневий Archiтектура з ПРИКЛАДОМ
Що таке N-Tier?
An Додаток N-Tier Програма – це програма, яка розподілена між трьома чи більше окремими комп’ютерами в розподіленій мережі.
Найпоширенішою формою n-tier є 3-tier Application, яка класифікується на три категорії.
- Програмування інтерфейсу користувача в комп'ютері користувача
- Бізнес-логіка в більш централізованому комп’ютері
- Необхідні дані в комп’ютері, який керує базою даних.
Ця модель архітектури дозволяє розробникам програмного забезпечення створювати багаторазові програми/системи з максимальною гнучкістю.
In N-рівень, "N" відноситься до кількох рівнів або шарів, які використовуються, наприклад – 2-ярусний, 3-ярусний або 4-ярусний тощо. Його також називають «Багаторівневий Archiтектура”.
N-рівнева архітектура це перевірена в галузі модель архітектури програмного забезпечення. Він підходить для підтримки клієнт-серверних програм корпоративного рівня, надаючи рішення для масштабованості, безпеки, відмовостійкості, багаторазового використання та зручності обслуговування. Це допомагає розробникам створювати гнучкі та багаторазово використовувані програми.
N-рівень Archiтектура
Тут зображено схематичне представлення n-рівневої системи – рівні презентації, програми та бази даних.
Ці три рівні можуть бути додатково розділені на різні підрівні залежно від вимог.
Деякі з популярних сайтів, які застосували цю архітектуру
- MakeMyTrip.com
- Корпоративна програма Sales Force
- Індійські залізниці – IRCTC
- Amazon.com тощо.
Деякі загальні терміни, які слід запам’ятати, щоб краще зрозуміти концепцію.
- Розподілена мережа: Це мережева архітектура, де компоненти, розташовані на мережевих комп’ютерах, координують і передають свої дії лише шляхом передачі повідомлень. Це сукупність кількох систем, розташованих на різних вузлах, але здаються користувачеві як єдина система.
- Він забезпечує єдину мережу передачі даних, якою можна окремо керувати різними мережами.
- Приклад розподіленої мережі, де різні клієнти підключені до архітектури локальної мережі з одного боку, а з іншого боку вони підключені до високошвидкісних комутаторів разом зі стійкою серверів, що містять сервісні вузли.
- Client-Server Archiтекстура: Це модель архітектури, де клієнт (одна програма) запитує послугу від сервера (інша програма) тобто Це послуга запит-відповідь, яка надається через Інтернет або інтрамережу. У цій моделі Клієнт слугуватиме одним набором програм/коду, який виконує набір дій у мережі. Поки сервер, з іншого боку, є набором іншої програми, яка надсилає набори результатів клієнтській системі за запитом.
- У цьому випадку клієнтський комп’ютер надає кінцевому користувачеві інтерфейс для запиту служби або ресурсу на сервері, а з іншого боку сервер потім обробляє запит і відображає результат кінцевому користувачеві.
- Приклад клієнт-серверної моделі – банкомат. Банк — це сервер для обробки заявки у великих базах даних клієнтів, а банкомат — це клієнт, який має інтерфейс користувача з простою обробкою заявок.
- Платформа: У інформатиці чи індустрії програмного забезпечення платформа – це система, на якій можуть працювати прикладні програми. Він складається з комбінації апаратного та програмного забезпечення, яке має вбудовані інструкції для процесорів/мікропроцесорів щодо виконання певних операцій.
- Простіше кажучи, платформа - це система або база, де можуть запускатися і виконуватися будь-які програми для виконання конкретного завдання.
- Приклад платформи – персональна машина, завантажена з Windows 2000 або Mac OS X як приклади 2 різних платформ.
- База даних: Це організована колекція інформації, яка забезпечує легкий доступ до неї, керування та оновлення.
- Приклади бази даних – MySQL, SQL Сервер і Oracle Database є деякі поширені Db.
Типи N-Tier Archiтектури
Існують різні типи N-Tier Archiтектури, як 3-рівневий Archiтектура, 2-ярус Archiтектура та 1- ярус Archiтектура.
Спочатку ми побачимо 3-ярусний Archiтекстури, що дуже важливо.
3-рівневий Archiтектура
Подивившись на схему нижче, ви можете це легко визначити 3-ярусна архітектура має три різних шари.
- Презентаційний шар
- Рівень бізнес-логіки
- Рівень бази даних
Тут ми взяли простий приклад студентської форми, щоб зрозуміти всі ці три рівні. Він містить інформацію про студента, як-от ім’я, адреса, електронна пошта та зображення.
Рівень інтерфейсу користувача або рівень презентації
Презентаційний шар
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) { // Object of the Property layer clsStudent objproperty=new clsStudent(); // Object of the business layer clsStudentInfo objbs=new clsStudentInfo(); // Object of the dataset in which we receive the data sent by the business layer DataSet ds=new DataSet(); // here we are placing the value in the property using the object of the //property layer objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString()); // In this following code we are calling a function from the business layer and // passing the object of the property layer which will carry the ID till the database. ds=objbs.GetAllStudentBsIDWise(objproperty); // What ever the data has been returned by the above function into the dataset //is being populate through the presentation laye. txtId.Text=ds.Tables[0].Rows[0][0].ToString(); txtFname.Text=ds.Tables[0].Rows[0][1].ToString(); txtAddress.Text=ds.Tables[0].Rows[0][2].ToString(); txtemail.Text=ds.Tables[0].Rows[0][3].ToString();
Пояснення коду
- Наведений вище код визначає основне проектування зовнішнього вигляду програм, а також виклик функцій інших рівнів, щоб їх можна було інтегрувати один з одним.
Рівень бізнес-доступу –
Це функція бізнес-рівня, яка приймає дані від прикладного рівня та передає їх на рівень даних.
- Бізнес-логіка діє як інтерфейс між рівнем клієнта та рівнем доступу до даних
- Уся бізнес-логіка, як-от перевірка даних, обчислення, вставка/модифікація даних, записується на рівні бізнес-логіки.
- Це робить зв’язок між клієнтом і рівнем даних швидшим і простішим
- Визначає правильну дію робочого процесу, необхідну для виконання завдання.
// this is the function of the business layer which accepts the data from the //application layer and passes it to the data layer. public class clsStudentInfo { public DataSet GetAllStudentBsIDWise(clsStudent obj) { DataSet ds=new DataSet(); ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function return ds; } }
Пояснення коду
Код використовує функцію бізнес-рівня, яка прийматиме дані для прикладного рівня та передає їх на рівень даних. Коди бізнес-рівня діють як посередник між функціями, визначеними на рівні презентації та рівні даних, і викликом функцій навпаки.
Рівень доступу до даних
Це функція рівня даних, яка отримує дані з бізнес-рівня та виконує необхідні операції в базі даних.
// this is the datalayer function which is receiving the data from the business //layer and performing the required operation into the database public class clsStudentData // Data layer class { // object of property layer class public DataSet getdata_dtIDUise(clsStudent obj) { DataSet ds; string sql; sql="select * from student where Studentld=" +obj.id+ "order by Studentld; ds=new DataSet(); //this is the datalayer function which accepts the sql query and performs the //corresponding operation ds=objdt.ExecuteSql(sql); return ds; } }
Пояснення коду
Код, визначений на рівні набору даних вище, приймає весь запит: запит системи та виконання необхідних операцій у базі даних.
2-рівневий Archiтектура
Це схоже на архітектуру клієнт-сервер, де зв’язок відбувається між клієнтом і сервером.
У цьому типі архітектури програмного забезпечення рівень презентації або рівень інтерфейсу користувача працює на стороні клієнта, тоді як рівень набору даних виконується та зберігається на стороні сервера.
Між клієнтом і сервером немає рівня бізнес-логіки або безпосереднього рівня.
Однорівневий або 1-рівневий Archiтектура
Це найпростіший, оскільки він еквівалентний запуску програми на персональному комп’ютері. Усі компоненти, необхідні для роботи програми, знаходяться на одній програмі або сервері.
Рівень презентації, рівень бізнес-логіки та рівень даних розташовані на одній машині.
Переваги та недоліки Multi-Tier Archiтектури
Переваги | Недоліки |
---|---|
масштабованість | Збільшення зусиль |
дані Integrity | Збільшення складності |
Багаторазовість | |
Зменшений розподіл | |
Покращена безпека | |
Покращена доступність |
Отже, це частина програми, яка шифрує реальні бізнес-проблеми та визначає, як дані можна оновлювати, створювати, зберігати або змінювати, щоб виконати повне завдання.
N-рівень Archiпоради та розвиток
Враховуючи, що спеціалісти з програмного забезпечення повинні мати повний контроль над усіма рівнями архітектури, поради щодо n-рівневої архітектури наведено нижче
- Спробуйте якомога більше відокремити шари від іншого, використовуючи таку техніку, як мильний XML.
- Використовуйте деякі автоматизовані інструменти, щоб створити відображення між рівнем бізнес-логіки та рівнем реляційної бази даних (рівень даних). Інструментами, які можуть допомогти у моделюванні цих методів відображення, є Entity Framework і Hibernate для .Net тощо.
- На рівні презентатора клієнта помістіть загальний код для всіх клієнтів в окрему бібліотеку, наскільки це можливо. Це максимізує повторне використання коду для всіх типів клієнтів.
- Рівень кешу можна додати до існуючого рівня, щоб прискорити продуктивність.
Підсумки
N-рівнева архітектура допомагає керувати всіма компонентами (бізнес-рівень, рівень презентації та рівень бази даних) програми під одним дахом.
Програми, які використовують невелику кількість користувачів у локальній мережі, можуть отримати переваги від n-рівневої архітектури.
Така архітектурна конструкція забезпечує ефективну підтримку, розширення та розгортання програми в Інтернеті.