N ниво (много нива), 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 и др.

Някои общи термини, които трябва да запомните, за да разберете концепцията по-ясно.

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

Обяснение на кода

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

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

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

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

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

Oбобщение

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

Приложенията, които използват малък брой потребители в локална мрежа, могат да се възползват от n-tier архитектура.

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