N Tier (Multi-Tier), 3-tier, 2-tier Architecture med EKSEMPEL

โšก Smart opsummering

N-lagsarkitektur, ogsรฅ kaldet flerlagsarkitektur, distribuerer en applikation pรฅ tvรฆrs af tre eller flere separate lag, sรฅsom prรฆsentation, forretningslogik og data. Denne model forbedrer skalerbarhed, sikkerhed og genbrugelighed for klient-server-applikationer pรฅ virksomhedsniveau.

  • ๐Ÿ—๏ธ Definition: En N-Tier-applikation er distribueret pรฅ tvรฆrs af tre eller flere separate computere i et distribueret netvรฆrk.
  • ๐Ÿงฑ Tre kernelag: Prรฆsentation (brugergrรฆnseflade), forretningslogik og databaselag adskiller bekymringer tydeligt.
  • ๐Ÿ”ข Niveauvariationer: Almindelige modeller er 1-lags, 2-lags og 3-lags, hvor 3-lags er den mest anvendte.
  • ๐ŸŒ Brug i den virkelige verden: Sider som IRCTC, MakeMyTrip og Amazon stole pรฅ denne arkitektur.
  • โœ… Fordele: Skalerbarhed, dataintegritet, genbrugelighed, forbedret sikkerhed og tilgรฆngelighed.
  • โš ๏ธ Afvejning: Flere lag รธger udviklingsindsatsen og den samlede systemkompleksitet.

N-niveau Architecture

Hvad er N-Tier?

An N-tier applikation program er et, der er fordelt mellem tre eller flere separate computere i et distribueret netvรฆrk.

Den mest almindelige form for n-tier er 3-tier applikationen, og den er klassificeret i tre kategorier.

  • Brugergrรฆnsefladeprogrammering i brugerens computer
  • Forretningslogik i en mere centraliseret computer, og
  • Nรธdvendige data i en computer, der administrerer en database.

Denne arkitekturmodel giver softwareudviklere en mรฅde at skabe genanvendelige applikationer/systemer med maksimal fleksibilitet.

In N-lag, "N" refererer til et antal niveauer eller lag, der bruges, sรฅsom โ€“ 2-tier, 3-tier eller 4-tier osv. Det kaldes ogsรฅ "Multi-tier Architecture".

N-tier arkitekturen er en brancheafprรธvet softwarearkitekturmodel. Den er egnet til at understรธtte klient-server-applikationer pรฅ virksomhedsniveau ved at tilbyde lรธsninger til skalerbarhed, sikkerhed, fejltolerance, genbrugelighed og vedligeholdelse. Den hjรฆlper udviklere med at skabe fleksible og genanvendelige applikationer.

N-niveau Architecture

En diagrammatisk reprรฆsentation af et n-tier-system viser her - prรฆsentation, applikation og databaselag.

N-niveau Architecture
N niveau Architecture diagram

Disse tre lag kan yderligere opdeles i forskellige underlag afhรฆngigt af kravene.

Nogle af de populรฆre steder, der har anvendt denne arkitektur, er:

  • MakeMyTrip.com
  • Sales Force virksomhedsapplikation
  • Indian Railways โ€“ IRCTC
  • Amazon.com osv.

Nogle almindelige begreber at huske for at forstรฅ konceptet bedre:

  • Distribueret netvรฆrk: Det er en netvรฆrksarkitektur, hvor komponenterne pรฅ netvรฆrkscomputere koordinerer og kommunikerer deres handlinger udelukkende ved at sende beskeder. Det er en samling af flere systemer placeret pรฅ forskellige noder, men som for brugeren fremstรฅr som et enkelt system.
    • Det giver et enkelt datakommunikationsnetvรฆrk, som kan administreres separat af forskellige netvรฆrk.
    • Et eksempel pรฅ et distribueret netvรฆrk โ€“ hvor forskellige klienter er forbundet inden for LAN-arkitekturen pรฅ den ene side, og pรฅ den anden side er de forbundet til hรธjhastigheds-switche sammen med et rack af servere, der indeholder servicenoder.
  • Klient-server Archilรฆre: Det er en arkitekturmodel, hvor klienten (et program) anmoder om en tjeneste fra en server (et andet program), dvs Det er en anmodningssvarstjeneste, der leveres via internettet eller via et intranet. I denne model, Klient vil fungere som รฉt sรฆt program/kode, der udfรธrer et sรฆt handlinger over netvรฆrket. Mens Server, pรฅ den anden side, er et sรฆt af et andet program, som sender resultatsรฆttene til klientsystemet som anmodet.
    • I dette giver klientcomputeren en grรฆnseflade til en slutbruger for at anmode om en tjeneste eller en ressource fra en server, og pรฅ den anden side behandler serveren derefter anmodningen og viser resultatet til slutbrugeren.
    • Et eksempel pรฅ en klient-server-model โ€“ en hรฆveautomat. En bank er serveren til behandling af applikationen i de store kundedatabaser, og hรฆveautomaten er klienten med en brugergrรฆnseflade med en vis simpel applikationsbehandling.
  • Platform: Inden for datalogi eller softwareindustrien er en platform et system, hvorpรฅ et applikationsprogram kan kรธre. Det bestรฅr af en kombination af hardware og software, der har en indbygget instruktion til en processor/mikroprocessor om at udfรธre specifikke operationer.
    • Enkelt sagt er platformen et system eller en base, hvor enhver applikation kan kรธre og udfรธres for at opnรฅ en specifik opgave.
    • Et eksempel pรฅ Platform โ€“ En personlig maskine fyldt med Windows 2000 eller Mac OS X som eksempler pรฅ 2 forskellige platforme.
  • Database: Det er en samling af oplysninger pรฅ en organiseret mรฅde, sรฅ den let kan tilgรฅs, administreres og opdateres.
    • Eksempler pรฅ database โ€“ MySQL, SQL Server, og Oracle Database er nogle almindelige databaser.

Typer af N-tier Architectures

Der er forskellige typer af N-Tier Architectures, som 3-lags Architecture, 2-tier ArchiTekstur og 1-lags Architecture.

Fรธrst vil vi se 3-tier Architecture, hvilket er meget vigtigt.

3-Tier Architecture

Ved at se pรฅ nedenstรฅende diagram kan du nemt identificere det 3-lags arkitektur har tre forskellige lag.

  • Prรฆsentationslag
  • Business Logic lag
  • Database lag
3 Tier Architecture diagram
3 Tier Architecture diagram

Her har vi taget et simpelt eksempel pรฅ en elevformular for at forstรฅ alle disse tre lag. Den indeholder oplysninger om en elev, sรฅsom navn, adresse, e-mail og billede.

Brugergrรฆnsefladelag eller Prรฆsentationslag

3-Tier Architecture

Prรฆsentationslag

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 Forklaring

  • Ovenstรฅende kode definerer det grundlรฆggende design af en frontend-visning af applikationer samt kald af funktionerne i andre lag, sรฅ de kan integreres med hinanden.

Business Access Layer โ€“

Dette er funktionen af โ€‹โ€‹forretningslaget, som accepterer data fra applikationslaget og videregiver dem til datalaget.

  • Forretningslogik fungerer som en grรฆnseflade mellem klientlaget og dataadgangslaget.
  • Al forretningslogik โ€“ sรฅsom validering af data, beregninger, dataindsรฆttelse/รฆndring โ€“ er skrevet under forretningslogiklaget.
  • Det gรธr kommunikationen hurtigere og nemmere mellem klienten og datalaget.
  • Definerer en ordentlig workflow-aktivitet, der er nรธdvendig for at fuldfรธre en opgave.
// 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;
	}
}

Forklaring af kode

Koden bruger funktionen fra forretningslaget, som accepterer dataene for applikationslaget og sender dem til datalaget. Forretningslagets koder fungerer som en formidler mellem de funktioner, der er defineret i prรฆsentationslaget og datalaget, og kalder funktionerne omvendt.

Dataadgangslag

Dette er datalagsfunktionen, som modtager data fra forretningslaget og udfรธrer den nรธdvendige operation ind i databasen.

// 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;
	}
}

Forklaring af kode

Koden, der er defineret i datasรฆtlaget ovenfor, accepterer hele anmodningen, som systemet anmoder om, og udfรธrer de nรธdvendige operationer i databasen.

2-Tier Architecture

Det er ligesom Client-Server arkitektur, hvor kommunikationen foregรฅr mellem klient og server.

I denne type softwarearkitektur kรธrer prรฆsentationslaget eller brugergrรฆnsefladelaget pรฅ klientsiden, mens datasรฆtlaget udfรธres og gemmes pรฅ serversiden.

Der er intet forretningslogiklag eller mellemlag mellem klient og server.

Single Tier eller 1-tier Architecture

Det er den enkleste, da den svarer til at kรธre applikationen pรฅ en personlig computer. Alle de nรธdvendige komponenter for at en applikation kan kรธre, findes pรฅ en enkelt applikation eller server.

Prรฆsentationslag, forretningslogiklag og datalag er alle placeret pรฅ en enkelt maskine.

Fordele og ulemper ved Multi-Tier Architectures

Som ethvert designvalg medfรธrer flerlagstilgangen klare fordele sammen med et par kompromiser, som er opsummeret nedenfor.

Fordele Ulemper
Skalerbarhed ร˜get indsats
Data Integrity Stigning i kompleksitet
Reus Evne
Reduceret distribution
Forbedret sikkerhed
Forbedret tilgรฆngelighed

Derfor er det en del af et program, som krypterer forretningsproblemer i den virkelige verden og bestemmer, hvordan data kan opdateres, oprettes, lagres eller รฆndres for at fรฅ hele opgaven lรธst.

N-niveau Architecture Tips og udvikling

I betragtning af at softwareprofessionelle skal have fuld kontrol over alle lag i arkitekturen, gives der nedenfor tips til n-lags arkitektur:

  1. Forsรธg at adskille lag fra hinanden sรฅ meget som muligt ved at bruge en teknik som SOAP XML.
  2. Brug nogle automatiserede vรฆrktรธjer til at generere et kortping mellem et forretningslogiklag og et relationsdatabaselag (datalag). Vรฆrktรธjer, der kan hjรฆlpe med at modellere disse kortping Teknikker er Entity Framework og Hibernate til .Net osv.
  3. I klientprรฆsenterlaget skal du sรฅ vidt muligt placere fรฆlles kode for alle klienter i et separat bibliotek. Dette vil maksimere kodens genbrugelighed for alle typer klienter.
  4. Et cachelag kan tilfรธjes til et eksisterende lag for at fremskynde ydeevnen.

Ofte Stillede Spรธrgsmรฅl

Et lag er en logisk adskillelse af kode, sรฅsom prรฆsentations- eller forretningslogik. Et niveau er den fysiske adskillelse af disse lag pรฅ forskellige maskiner. Flere lag kan kรธre pรฅ รฉt niveau, eller hvert lag kan have sit eget niveau.

Nej. MVC er et designmรธnster til organisering af kode i รฉn applikation, mens en 3-lags arkitektur fysisk adskiller prรฆsentation, logik og data pรฅ tvรฆrs af lag. MVC-komponenter interagerer frit, hvorimod 3-lags lag kommunikerer i en streng top-down-rรฆkkefรธlge.

Almindelige valgmuligheder inkluderer .NET, Java (Spring) og Node.js til forretningslogik, HTML/JavaScript-frameworks til prรฆsentationer og databaser som f.eks. MySQL, SQL Server eller Oracle for datalaget. ORM'er som Entity Framework og Hibernate forbinder lagene.

AI tilfรธjes normalt i forretningslogiklaget eller som et separat servicelag. Det driver funktioner som anbefalinger, svindeldetektion og sรธgning, mens prรฆsentations- og datalagene forbliver uรฆndrede.ping arkitekturen er modulรฆr og vedligeholdelsesvenlig.

Ja. AI-drevet overvรฅgning kan forudsige trafikstigninger og automatisk skalere hvert niveau uafhรฆngigt. Den kan ogsรฅ afbalancere belastninger, registrere flaskehalse og optimere databaseforespรธrgsler, f.eks.ping Store klient-server-applikationer forbliver responsive under skiftende efterspรธrgsel.

Opsummer dette indlรฆg med: