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-рівневої системи – рівні презентації, програми та бази даних.

N-рівень Archiтектура
N рівень Archiдіаграма текстури

Ці три рівні можуть бути додатково розділені на різні підрівні залежно від вимог.

Деякі з популярних сайтів, які застосували цю архітектуру

  • 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-ярусна архітектура має три різних шари.

  • Презентаційний шар
  • Рівень бізнес-логіки
  • Рівень бази даних
3 тварина Archiдіаграма текстури
3 тварина Archiдіаграма текстури

Тут ми взяли простий приклад студентської форми, щоб зрозуміти всі ці три рівні. Він містить інформацію про студента, як-от ім’я, адреса, електронна пошта та зображення.

Рівень інтерфейсу користувача або рівень презентації

3-рівневий Archiтектура

Презентаційний шар

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-рівневої архітектури наведено нижче

  1. Спробуйте якомога більше відокремити шари від іншого, використовуючи таку техніку, як мильний XML.
  2. Використовуйте деякі автоматизовані інструменти, щоб створити відображення між рівнем бізнес-логіки та рівнем реляційної бази даних (рівень даних). Інструментами, які можуть допомогти у моделюванні цих методів відображення, є Entity Framework і Hibernate для .Net тощо.
  3. На рівні презентатора клієнта помістіть загальний код для всіх клієнтів в окрему бібліотеку, наскільки це можливо. Це максимізує повторне використання коду для всіх типів клієнтів.
  4. Рівень кешу можна додати до існуючого рівня, щоб прискорити продуктивність.

Підсумки

N-рівнева архітектура допомагає керувати всіма компонентами (бізнес-рівень, рівень презентації та рівень бази даних) програми під одним дахом.

Програми, які використовують невелику кількість користувачів у локальній мережі, можуть отримати переваги від n-рівневої архітектури.

Така архітектурна конструкція забезпечує ефективну підтримку, розширення та розгортання програми в Інтернеті.