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.

  • ๐Ÿ—๏ธ Definiศ›ie: O aplicaศ›ie N-Tier este distribuitฤƒ pe trei sau mai multe computere separate รฎntr-o reศ›ea distribuitฤƒ.
  • ๐Ÿงฑ Trei straturi centrale: Prezentarea (interfaศ›a utilizator), logica de business ศ™i straturile bazei de date separฤƒ รฎn mod clar aspectele.
  • ๐Ÿ”ข Variaศ›ii de nivel: Modelele comune sunt cu 1 nivel, cu 2 niveluri ศ™i cu 3 niveluri, cel cu 3 niveluri fiind cel mai utilizat.
  • ๐ŸŒ Utilizare รฎn lumea realฤƒ: Site-uri precum IRCTC, MakeMyTrip ศ™i Amazon se bazeazฤƒ pe aceastฤƒ arhitecturฤƒ.
  • โœ… Beneficii cheie: Scalabilitate, integritate a datelor, reutilizabilitate, securitate รฎmbunฤƒtฤƒศ›itฤƒ ศ™i disponibilitate.
  • โš ๏ธ Compensaศ›ie: Mai multe straturi cresc efortul de dezvoltare ศ™i complexitatea generalฤƒ a sistemului.

N-Tier Architecturฤƒ

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.

N-Tier Architecturฤƒ
N Tier ArchiDiagrama de tecturฤƒ

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
3 niveluri ArchiDiagrama de tecturฤƒ
3 niveluri ArchiDiagrama de tecturฤƒ

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

3 nivele Architecturฤƒ

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:

  1. รŽncercaศ›i sฤƒ decuplaศ›i straturile unul de celฤƒlalt cรขt mai mult posibil folosind o tehnicฤƒ precum SOAP XML.
  2. 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.
  3. รŽ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.
  4. Un strat de cache poate fi adฤƒugat รฎntr-un strat existent pentru a accelera performanศ›a.

รŽntrebฤƒri frecvente

Un strat (layer) este o separare logicฤƒ a codului, cum ar fi prezentarea sau logica de business. Un nivel (tier) este separarea fizicฤƒ a acestor straturi pe diferite maศ™ini. Mai multe straturi pot rula pe un singur nivel sau fiecare strat poate avea propriul nivel.

Nu. MVC este un model de design pentru organizarea codului รฎntr-o singurฤƒ aplicaศ›ie, รฎn timp ce arhitectura pe 3 niveluri separฤƒ fizic prezentarea, logica ศ™i datele pe niveluri. Componentele MVC interacศ›ioneazฤƒ liber, รฎn timp ce straturile pe 3 niveluri comunicฤƒ รฎntr-o ordine strictฤƒ de sus รฎn jos.

Opศ›iunile comune includ .NET, Java (Spring) ศ™i Node.js pentru logicฤƒ de business, HTML/JavaFramework-uri de script pentru prezentฤƒri ศ™i baze de date, cum ar fi MySQL, SQL Server sau Oracle pentru stratul de date. ORM-uri precum Entity Framework ศ™i Hibernate conecteazฤƒ straturile.

IA este de obicei adฤƒugatฤƒ รฎn stratul logic de business sau ca un nivel separat de servicii. Aceasta alimenteazฤƒ funcศ›ii precum recomandฤƒri, detectarea fraudelor ศ™i cฤƒutarea, รฎn timp ce straturile de prezentare ศ™i date rฤƒmรขn neschimbate.ping arhitectura modularฤƒ ศ™i uศ™or de รฎntreศ›inut.

Da. Monitorizarea bazatฤƒ pe inteligenศ›ฤƒ artificialฤƒ poate prezice vรขrfurile de trafic ศ™i poate scala automat fiecare nivel independent. De asemenea, poate echilibra รฎncฤƒrcฤƒrile, detecta blocajele ศ™i optimiza interogฤƒrile bazei de date, ajutรขndping Aplicaศ›iile client-server mari rฤƒmรขn receptive la cererea รฎn schimbare.

Rezumaศ›i aceastฤƒ postare cu: