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.

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.

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

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
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:
- Forsรธg at adskille lag fra hinanden sรฅ meget som muligt ved at bruge en teknik som SOAP XML.
- 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.
- 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.
- Et cachelag kan tilfรธjes til et eksisterende lag for at fremskynde ydeevnen.

