N ниво (много нива), 3 нива, 2 нива Archiтекстура с ПРИМЕР
⚡ Умно обобщение
N-слойната архитектура, наричана още многослойна архитектура, разпределя приложението на три или повече отделни слоя, като например презентация, бизнес логика и данни. Този модел подобрява мащабируемостта, сигурността и възможността за многократна употреба за клиент-сървър приложения на корпоративно ниво.

Какво е 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 и др.
Някои често срещани термини, които е добре да запомните, за да разберете понятието по-ясно:
- Разпределена мрежа: Това е мрежова архитектура, при която компонентите, разположени на мрежовите компютри, координират и комуникират действията си само чрез предаване на съобщения. Тя е съвкупност от множество системи, разположени на различни възли, но изглежда на потребителя като една единствена система.
- Той осигурява единна комуникационна мрежа за данни, която може да се управлява отделно от различни мрежи.
- Пример за разпределена мрежа – където различни клиенти са свързани в рамките на 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-степенна архитектура има три различни слоя.
- Представителен слой
- Слой на бизнес логиката
- Слой база данни

Тук сме взели един прост пример за студентска форма, за да разберем всички тези три слоя. Тя съдържа информация за студента, като например – име, адрес, имейл и снимка.
Слой на потребителския интерфейс или слой на презентацията
Презентационен слой
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-слойна архитектура:
- Опитайте се да отделите слоевете един от друг колкото е възможно повече, като използвате техника като SOAP XML.
- Използвайте някои автоматизирани инструменти за генериране на картаping между слой на бизнес логиката и слой на релационната база данни (слой на данните). Инструменти, които могат да помогнат при моделирането на тези картиping техниките са Entity Framework и Hibernate за .Net и др.
- В слоя за презентиране на клиенти, поставете общия код за всички клиенти в отделна библиотека, доколкото е възможно. Това ще увеличи максимално възможността за повторна употреба на кода за всички видове клиенти.
- Кеш слой може да се добави към съществуващ слой, за да се ускори производителността.

