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