N Tier (Multi-Tier), 3-Tier, 2-Tier Architectura cu EXEMPLU
โก Rezumat inteligent
Arhitectura N-Tier, numitฤ ศi arhitecturฤ multi-tier, distribuie o aplicaศie pe trei sau mai multe straturi separate, cum ar fi prezentarea, logica de business ศi datele. Acest model รฎmbunฤtฤศeศte scalabilitatea, securitatea ศi reutilizabilitatea aplicaศiilor client-server la nivel de รฎntreprindere.

Ce este N-Tier?
An Aplicaศie N-Tier programul este unul care este distribuit รฎntre trei sau mai multe computere separate dintr-o reศea distribuitฤ.
Cea mai comunฤ formฤ de n-tier este aplicaศia cu 3 niveluri ศi este clasificatฤ รฎn trei categorii.
- Programarea interfeศei utilizator รฎn computerul utilizatorului
- Logica de afaceri รฎntr-un computer mai centralizat ศi
- Datele necesare รฎntr-un computer care gestioneazฤ o bazฤ de date.
Acest model de arhitecturฤ oferฤ dezvoltatorilor de software o modalitate de a crea aplicaศii/sisteme reutilizabile cu flexibilitate maximฤ.
In Nivelul N, โNโ se referฤ la o serie de niveluri sau straturi care sunt utilizate, cum ar fi โ 2 niveluri, 3 niveluri sau 4 niveluri etc. Se mai numeศte ศi โMulti-nivel Architecturฤ".
Arhitectura pe n niveluri este un model de arhitecturฤ software dovedit รฎn industrie. Este potrivit pentru a suporta aplicaศii client-server la nivel de รฎntreprindere, oferind soluศii de scalabilitate, securitate, toleranศฤ la erori, reutilizabilitate ศi mentenabilitate. Ajutฤ dezvoltatorii sฤ creeze aplicaศii flexibile ศi reutilizabile.
N-Tier Architecturฤ
O reprezentare schematicฤ a unui sistem cu n niveluri ilustreazฤ aici โ straturi de prezentare, aplicaศie ศi bazฤ de date.

Aceste trei straturi pot fi mai departe subdivizate รฎn diferite sub-straturi รฎn funcศie de cerinศe.
Unele dintre site-urile populare care au aplicat aceastฤ arhitecturฤ sunt:
- MakeMyTrip.com
- Aplicaศie pentru รฎntreprinderi Sales Force
- Cฤile Ferate Indiene โ IRCTC
- Amazon.com, etc.
Cรขศiva termeni comuni de reศinut, pentru a รฎnศelege mai clar conceptul:
- Reศea distribuitฤ: Este o arhitecturฤ de reศea รฎn care componentele situate la computerele din reศea รฎศi coordoneazฤ ศi comunicฤ acศiunile doar prin transmiterea de mesaje. Este o colecศie de sisteme multiple situate la noduri diferite, dar care apare utilizatorului ca un singur sistem.
- Oferฤ o singurฤ reศea de comunicaศii de date care poate fi gestionatฤ separat de diferite reศele.
- Un exemplu de reศea distribuitฤ โ unde diferiศi clienศi sunt conectaศi รฎn cadrul unei arhitecturi LAN pe o parte, iar pe cealaltฤ parte sunt conectaศi la switch-uri de mare vitezฤ, รฎmpreunฤ cu un rack de servere care conศine noduri de servicii.
- Client server Architectura: Este un model de arhitecturฤ รฎn care clientul (un program) solicitฤ un serviciu de la un server (un alt program), de exemplu este un serviciu de tip cerere-rฤspuns furnizat prin internet sau printr-un intranet. รn acest model, Client va servi ca un set de program/cod care executฤ un set de acศiuni รฎn reศea. In timp ce server de, pe de altฤ parte, este un set al unui alt program, care trimite seturile de rezultate cฤtre sistemul client aศa cum este solicitat.
- รn acest caz, computerul client oferฤ o interfaศฤ unui utilizator final pentru a solicita un serviciu sau o resursฤ de la un server, iar pe de altฤ parte, serverul proceseazฤ apoi cererea ศi afiศeazฤ rezultatul utilizatorului final.
- Un exemplu de model client-server โ un bancomat. O bancฤ este serverul pentru procesarea aplicaศiei รฎn cadrul bazelor de date mari de clienศi, iar bancomatul este clientul care are o interfaศฤ cu utilizatorul ศi o procesare simplฤ a aplicaศiilor.
- Platformฤ: รn informaticฤ sau รฎn industria software, o platformฤ este un sistem pe care poate rula un program de aplicaศie. Aceasta constฤ dintr-o combinaศie de hardware ศi software care au o instrucศiune รฎncorporatฤ pentru ca un procesor/microprocesor sฤ efectueze operaศiuni specifice.
- Mai simplu spus, platforma este un sistem sau o bazฤ unde orice aplicaศie poate rula ศi se poate executa pentru a obศine o sarcinฤ specificฤ.
- Un exemplu de Platformฤ โ O maศinฤ personalฤ รฎncฤrcatฤ cu Windows 2000 sau Mac OS X ca exemple de 2 platforme diferite.
- Bazฤ de date: Este o colecศie de informaศii รฎntr-un mod organizat, astfel รฎncรขt sฤ poatฤ fi uศor accesatฤ, gestionatฤ ศi actualizatฤ.
- Exemple de baze de date - MySQL, SQL Server, ศi Oracle Database sunt cรขteva baze de date comune.
Tipuri de N-Tier Architecturi
Existฤ diferite tipuri de N-Tier Architecturi, cum ar fi Pe 3 niveluri Architecturฤ, 2-Tier Archistructurฤ ศi 1-Tier Architecturฤ.
รn primul rรขnd, vom vedea trei niveluri Architecturฤ, care este foarte importantฤ.
3 nivele Architecturฤ
Privind diagrama de mai jos, puteศi identifica cu uศurinศฤ asta Arhitecturฤ pe 3 niveluri are trei straturi diferite.
- Stratul de prezentare
- Stratul de logicฤ de afaceri
- Stratul bazei de date

Aici am luat un exemplu simplu de formular pentru elev pentru a รฎnศelege toate aceste trei niveluri. Acesta conศine informaศii despre elev, cum ar fi: nume, adresฤ, e-mail ศi fotografie.
Stratul de interfaศฤ cu utilizatorul sau Stratul de prezentare
Strat de prezentare
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 Explicaศie
- Codul de mai sus defineศte proiectarea de bazฤ a unei vizualizฤri front-end a aplicaศiilor, precum ศi apelarea funcศiilor altor straturi, astfel รฎncรขt acestea sฤ poatฤ fi integrate รฎntre ele.
Stratul de acces la afaceri โ
Aceasta este funcศia stratului de afaceri care acceptฤ datele din stratul de aplicaศie ศi le transmite stratului de date.
- Logica de business acศioneazฤ ca o interfaศฤ รฎntre nivelul Client ศi nivelul Acces la Date.
- Toatฤ logica de business โ cum ar fi validarea datelor, calculele, inserarea/modificarea datelor โ este scrisฤ sub stratul de logicฤ de business.
- Face comunicarea mai rapidฤ ศi mai uศoarฤ รฎntre client ศi stratul de date.
- Defineศte o activitate de flux de lucru adecvatฤ care este necesarฤ pentru a finaliza o sarcinฤ.
// 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; } }
Explicaศia codului
Codul foloseศte funcศia stratului business, care va accepta datele pentru stratul aplicaศie ศi le va transmite stratului de date. Codurile stratului business acศioneazฤ ca mediator รฎntre funcศiile definite รฎn stratul prezentare ศi stratul de date ศi apeleazฤ funcศiile invers.
Stratul de acces la date
Aceasta este funcศia stratului de date, care primeศte datele de la stratul de afaceri ศi efectueazฤ operaศia necesarฤ รฎn baza de date.
// 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; } }
Explicaศia codului
Codul definit รฎn stratul setului de date de mai sus acceptฤ รฎntreaga cerere, solicitatฤ de sistem, ศi efectueazฤ operaศiunile necesare รฎn baza de date.
2 nivele Architecturฤ
Este ca arhitectura Client-Server, รฎn care comunicarea are loc รฎntre client ศi server.
รn acest tip de arhitecturฤ software, stratul de prezentare sau stratul de interfaศฤ cu utilizatorul ruleazฤ pe partea clientului, รฎn timp ce stratul setului de date este executat ศi stocat pe partea serverului.
Nu existฤ un strat de logicฤ de business sau un strat intermediar รฎntre client ศi server.
Un singur nivel sau 1-nivel Architecturฤ
Este cea mai simplฤ variantฤ, deoarece este echivalentฤ cu rularea aplicaศiei pe un computer personal. Toate componentele necesare pentru ca o aplicaศie sฤ ruleze se aflฤ pe o singurฤ aplicaศie sau server.
Stratul de prezentare, stratul logic de afaceri ศi stratul de date sunt toate situate pe o singurฤ maศinฤ.
Avantajele ศi dezavantajele Multi-Tier Architecturi
Ca orice alegere de design, abordarea pe mai multe niveluri aduce beneficii clare, รฎmpreunฤ cu cรขteva compromisuri, rezumate mai jos.
| Avantaje | Dezavantaje |
|---|---|
| Scalabilitate | Creศterea efortului |
| Date Integrity | Creศterea complexitฤศii |
| Abilitatea de Reus | |
| Distribuศie redusฤ | |
| Securitate รฎmbunฤtฤศitฤ | |
| Disponibilitate รฎmbunฤtฤศitฤ |
Prin urmare, este o parte a unui program care cripteazฤ problemele de afaceri din lumea realฤ ศi determinฤ modul รฎn care datele pot fi actualizate, create, stocate sau modificate pentru a finaliza sarcina completฤ.
N-Tier ArchiSfaturi de tecturฤ ศi dezvoltare
Avรขnd รฎn vedere cฤ profesioniศtii รฎn software trebuie sฤ aibฤ control deplin asupra tuturor straturilor arhitecturii, mai jos sunt oferite sfaturi privind arhitectura pe n niveluri:
- รncercaศi sฤ decuplaศi straturile unul de celฤlalt cรขt mai mult posibil folosind o tehnicฤ precum SOAP XML.
- Foloseศte niศte instrumente automate pentru a genera o hartฤping รฎntre un strat de logicฤ de business ศi un strat de bazฤ de date relaศionalฤ (stratul de date). Instrumente care pot ajuta la modelarea acestor hฤrศiping tehnicile sunt Entity Framework ศi Hibernate pentru .Net etc.
- รn stratul de prezentare al clientului, plasaศi codul comun pentru toศi clienศii รฎntr-o bibliotecฤ separatฤ, pe cรขt posibil. Acest lucru va maximiza reutilizabilitatea codului pentru toate tipurile de clienศi.
- Un strat de cache poate fi adฤugat รฎntr-un strat existent pentru a accelera performanศa.

