N ниво (много нива), 3 нива, 2 нива Archiтекстура с ПРИМЕР

⚡ Умно обобщение

N-слойната архитектура, наричана още многослойна архитектура, разпределя приложението на три или повече отделни слоя, като например презентация, бизнес логика и данни. Този модел подобрява мащабируемостта, сигурността и възможността за многократна употреба за клиент-сървър приложения на корпоративно ниво.

  • 🏗️ Определение: N-Tier приложение се разпределя между три или повече отделни компютъра в разпределена мрежа.
  • 🧱 Три основни слоя: Слоевете за представяне (потребителски интерфейс), бизнес логика и база данни ясно разделят задачите.
  • 🔢 Вариации на нивата: Често срещаните модели са едностепенни, двустепенни и тристепенни, като тристепенният е най-широко използваният.
  • 🌐 Употреба в реалния свят: Сайтове като IRCTC, MakeMyTrip и Amazon разчитат на тази архитектура.
  • Основни предимства: Мащабируемост, целостност на данните, възможност за многократна употреба, подобрена сигурност и наличност.
  • ⚠️ Компромис: Повече слоеве увеличават усилията за разработка и цялостната сложност на системата.

N-ниво 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 и др.

Някои често срещани термини, които е добре да запомните, за да разберете понятието по-ясно:

  • Разпределена мрежа: Това е мрежова архитектура, при която компонентите, разположени на мрежовите компютри, координират и комуникират действията си само чрез предаване на съобщения. Тя е съвкупност от множество системи, разположени на различни възли, но изглежда на потребителя като една единствена система.
    • Той осигурява единна комуникационна мрежа за данни, която може да се управлява отделно от различни мрежи.
    • Пример за разпределена мрежа – където различни клиенти са свързани в рамките на LAN архитектурата от едната страна, а от другата страна са свързани към високоскоростни комутатори, заедно със система от сървъри, съдържащи сервизни възли.
  • Клиентски сървър Archiтекстура: Това е архитектурен модел, при който клиентът (една програма) изисква услуга от сървър (друга програма), т.е. Това е услуга за заявка-отговор, предоставяна през интернет или чрез интранет. В този модел, Удовлетвореност ще служи като един набор от програма/код, който изпълнява набор от действия по мрежата. Докато Сървър, от друга страна, е набор от друга програма, която изпраща наборите от резултати към клиентската система, както е поискано.
    • При това клиентският компютър предоставя интерфейс на крайния потребител, за да поиска услуга или ресурс от сървър, а от друга страна сървърът обработва заявката и показва резултата на крайния потребител.
    • Пример за клиент-сървър модел – банкомат. Банката е сървърът за обработка на приложения в големи клиентски бази данни, а банкоматът е клиентът, имащ потребителски интерфейс с някои прости приложения за обработка.
  • Платформа: В компютърните науки или софтуерната индустрия, платформата е система, на която може да се изпълнява приложна програма. Тя се състои от комбинация от хардуер и софтуер, които имат вградена инструкция за процесор/микропроцесор за извършване на специфични операции.
    • С по-прости думи, платформата е система или база, където всяко приложение може да работи и да се изпълнява, за да получи конкретна задача.
    • Пример за платформа – лична машина, заредена с Windows 2000 или Mac OS X като примери за 2 различни платформи.
  • База данни: Това е колекция от информация по организиран начин, така че да може да бъде лесно достъпна, управлявана и актуализирана.
    • Примери за база данни – MySQL, SQL Сървър и Oracle Database са някои често срещани бази данни.

Видове N-Tier Archiтекстури

Има различни видове N-Tier Archiтекстури, като 3 нива Archiтекстура, 2 нива Archiтекстура и 1-слойна Archiтекстура.

Първо, ще видим 3 нива Archiтекстура, което е много важно.

3-Tier Archiтекстура

Като разгледате диаграмата по-долу, можете лесно да го идентифицирате 3-степенна архитектура има три различни слоя.

  • Представителен слой
  • Слой на бизнес логиката
  • Слой база данни
3 подреждане Archiтектурна диаграма
3 подреждане Archiтектурна диаграма

Тук сме взели един прост пример за студентска форма, за да разберем всички тези три слоя. Тя съдържа информация за студента, като например – име, адрес, имейл и снимка.

Слой на потребителския интерфейс или слой на презентацията

3-Tier 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();

Code Обяснение

  • Горният код дефинира основното проектиране на предния изглед на приложенията, както и извикването на функциите на други слоеве, така че те да могат да бъдат интегрирани помежду си.

Слой за бизнес достъп –

Това е функцията на бизнес слоя, който приема данните от приложния слой и ги предава на слоя данни.

  • Бизнес логиката действа като интерфейс между клиентския слой и слоя за достъп до данни.
  • Цялата бизнес логика – като валидиране на данни, изчисления, вмъкване/модифициране на данни – е написана под слоя на бизнес логиката.
  • Това прави комуникацията между клиента и слоя данни по-бърза и лесна.
  • Дефинира подходяща дейност на работен поток, която е необходима за изпълнение на задача.
// 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-Tier Archiтекстура

Това е като архитектура клиент-сървър, където комуникацията се осъществява между клиент и сървър.

В този тип софтуерна архитектура, слоят за представяне или слоят за потребителски интерфейс се изпълнява от страна на клиента, докато слоят за набор от данни се изпълнява и съхранява от страна на сървъра.

Няма бизнес логически слой или междинен слой между клиента и сървъра.

Едно ниво или 1 ниво Archiтекстура

Това е най-простият вариант, тъй като е еквивалентен на стартирането на приложението на персонален компютър. Всички необходими компоненти за стартиране на приложението са разположени в едно приложение или сървър.

Презентационният слой, бизнес логиката и нивото на данните са разположени на една машина.

Предимства и недостатъци на Multi-Tier Archiтекстури

Както всеки дизайнерски избор, многослойният подход носи ясни предимства, както и няколко компромиса, обобщени по-долу.

Предимства Недостатъци
скалируемост Увеличаване на усилията
Дата Integrity Увеличаване на сложността
Реус Възможност
Намалено разпространение
Подобрена сигурност
Подобрена наличност

Следователно, това е част от програма, която криптира бизнес проблеми от реалния свят и определя как данните могат да бъдат актуализирани, създадени, съхранени или променени, за да се изпълни пълната задача.

N-ниво Architecture Съвети и развитие

Като се има предвид, че софтуерните специалисти трябва да имат пълен контрол над всички слоеве на архитектурата, по-долу са дадени съвети за n-слойна архитектура:

  1. Опитайте се да отделите слоевете един от друг колкото е възможно повече, като използвате техника като SOAP XML.
  2. Използвайте някои автоматизирани инструменти за генериране на картаping между слой на бизнес логиката и слой на релационната база данни (слой на данните). Инструменти, които могат да помогнат при моделирането на тези картиping техниките са Entity Framework и Hibernate за .Net и др.
  3. В слоя за презентиране на клиенти, поставете общия код за всички клиенти в отделна библиотека, доколкото е възможно. Това ще увеличи максимално възможността за повторна употреба на кода за всички видове клиенти.
  4. Кеш слой може да се добави към съществуващ слой, за да се ускори производителността.

Въпроси и Отговори

Слоят е логическо разделяне на код, като например презентация или бизнес логика. Нивото е физическото разделяне на тези слоеве върху различни машини. Няколко слоя могат да работят на едно ниво или всеки слой може да има свое собствено ниво.

Не. MVC е шаблон за проектиране за организиране на код в рамките на едно приложение, докато 3-слойната архитектура физически разделя представянето, логиката и данните между слоевете. MVC компонентите взаимодействат свободно, докато 3-слойните слоеве комуникират в строг ред отгоре надолу.

Често срещани избори включват .NET, Java (Spring) и Node.js за бизнес логика, HTML/JavaСкриптови рамки за презентации и бази данни като MySQL, SQL Server или Oracle за слоя с данни. ORM като Entity Framework и Hibernate свързват слоевете.

Изкуственият интелект обикновено се добавя в слоя на бизнес логиката или като отделно ниво на услугата. Той захранва функции като препоръки, откриване на измами и търсене, докато слоевете за представяне и данни остават непроменени.ping архитектурата е модулна и поддържаема.

Да. Мониторингът, управляван от изкуствен интелект, може да предвижда пикове в трафика и автоматично да мащабира всяко ниво независимо. Той може също така да балансира натоварванията, да открива пречки и да оптимизира заявките към базата данни, да помага.ping Големите клиент-сървър приложения остават отзивчиви при променящо се търсене.

Обобщете тази публикация с: