N-lag (flerlag), 3-lag, 2-lag Architecture med EKSEMPEL

Hva er N-Tier?

An N-Tier-applikasjon program er et som er distribuert mellom tre eller flere separate datamaskiner i et distribuert nettverk.

Den vanligste formen for n-tier er 3-lagsapplikasjonen, og den er klassifisert i tre kategorier.

  • Brukergrensesnitt programmering i brukerens datamaskin
  • Forretningslogikk i en mer sentralisert datamaskin, og
  • Nødvendige data i en datamaskin som administrerer en database.

Denne arkitekturmodellen gir programvareutviklere mulighet til å lage gjenbrukbare applikasjoner/systemer med maksimal fleksibilitet.

In N-lag, "N" refererer til en rekke lag eller lag som brukes som – 2-lags, 3-lags eller 4-lags osv. Det kalles også "Flerlags Architecture".

n-lagsarkitekturen er en industriutprøvd programvarearkitekturmodell. Den er egnet for å støtte klient-server-applikasjoner på bedriftsnivå ved å tilby løsninger for skalerbarhet, sikkerhet, feiltoleranse, gjenbrukbarhet og vedlikehold. Det hjelper utviklere med å lage fleksible og gjenbrukbare applikasjoner.

N-lag Architecture

En diagrammatisk representasjon av et n-tier-system viser her – presentasjon, applikasjon og databaselag.

N-lag Architecture
N-lag ArchiTecture Diagram

Disse tre lagene kan videre deles inn i forskjellige underlag avhengig av kravene.

Noen av de populære nettstedene som har brukt denne arkitekturen er

  • MakeMyTrip.com
  • Sales Force bedriftsapplikasjon
  • Indian Railways – IRCTC
  • Amazon.com osv.

Noen vanlige termer å huske, for å forstå konseptet klarere.

  • Distribuert nettverk: Det er en nettverksarkitektur, der komponentene på nettverksdatamaskiner koordinerer og kommuniserer handlingene sine kun ved å sende meldinger. Det er en samling av flere systemer plassert på forskjellige noder, men fremstår for brukeren som et enkelt system.
    • Det gir et enkelt datakommunikasjonsnettverk som kan administreres separat av forskjellige nettverk.
    • Et eksempel på distribuert nettverk – hvor forskjellige klienter er koblet til innenfor LAN-arkitektur på den ene siden og på den andre siden er de koblet til høyhastighetssvitsjer sammen med et rack med servere som inneholder tjenestenoder.
  • Klientserver Archilære: Det er en arkitekturmodell der klienten (ett program) ber om en tjeneste fra en server (et annet program) dvs. Det er en forespørsel-svar-tjeneste som tilbys over internett eller via et intranett. I denne modellen, kunde vil fungere som ett sett med program/kode som utfører et sett med handlinger over nettverket. Mens Server, på den annen side, er et sett av et annet program, som sender resultatsettene til klientsystemet som forespurt.
    • I dette gir klientdatamaskinen et grensesnitt til en sluttbruker for å be om en tjeneste eller en ressurs fra en server, og på den annen side behandler serveren forespørselen og viser resultatet til sluttbrukeren.
    • Et eksempel på klient-servermodell – en minibank. En bank er serveren for behandling av applikasjonen innenfor de store kundedatabasene og minibank er klienten som har et brukergrensesnitt med litt enkel applikasjonsbehandling.
  • Plattform: I informatikk eller programvareindustrien er en plattform et system som applikasjoner kan kjøre på. Den består av en kombinasjon av maskinvare og programvare som har en innebygd instruksjon for en prosessor/mikroprosessor for å utføre spesifikke operasjoner.
    • I enklere ord er plattformen et system eller en base der alle applikasjoner kan kjøre og kjøre for å oppnå en spesifikk oppgave.
    • Et eksempel på plattform – En personlig maskin lastet med Windows 2000 eller Mac OS X som eksempler på 2 forskjellige plattformer.
  • Database: Det er en samling av informasjon på en organisert måte slik at den lett kan fås tilgang, administreres og oppdateres.
    • Eksempler på database – MySQL, SQL Server, og Oracle Database er noen vanlige Db-er.

Typer N-Tier Architectures

Det finnes forskjellige typer N-Tier ArchiTectures, som 3-lags Architecture, 2-lags Architecture og 1- Tier Architecture.

Først vil vi se 3-lags Architecture, som er veldig viktig.

3-Tier Architecture

Ved å se på diagrammet nedenfor kan du enkelt identifisere det 3-lags arkitektur har tre forskjellige lag.

  • Presentasjonslag
  • Business Logic-lag
  • Databaselag
3 Tier ArchiTecture Diagram
3 Tier ArchiTecture Diagram

Her har vi tatt et enkelt eksempel på elevform for å forstå alle disse tre lagene. Den har informasjon om en student som - Navn, adresse, e-post og bilde.

Brukergrensesnittlag eller presentasjonslag

3-Tier Architecture

Presentasjonslag

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();

Kode Forklaring

  • Koden ovenfor definerer den grunnleggende utformingen av et front-end-bilde av applikasjoner, samt oppkalling av funksjonene til andre lag slik at de kan integreres med hverandre.

Business Access Layer –

Dette er funksjonen til forretningslaget som aksepterer dataene fra applikasjonslaget og sender dem til datalaget.

  • Forretningslogikk fungerer som et grensesnitt mellom klientlag og datatilgangslag
  • All forretningslogikk – som validering av data, beregninger, datainnsetting/modifisering er skrevet under forretningslogikklag.
  • Det gjør kommunikasjonen raskere og enklere mellom klienten og datalaget
  • Definerer en riktig arbeidsflytaktivitet som er nødvendig for å fullføre en oppgave.
// 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 av kode

Koden bruker funksjonen til forretningslaget, som vil akseptere dataene for applikasjonslaget og sende dem til datalaget. Business-lagkodene fungerer som en formidler mellom funksjonene som er definert i presentasjonslaget og datalaget og kaller funksjonene omvendt.

Datatilgangslag

Dette er datalagsfunksjonen, som mottar dataene fra forretningslaget og utfører den nødvendige operasjonen inn 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 av kode

Koden som defineres i datasettlaget ovenfor godtar hele forespørselen: forespurt av systemet og utfører de nødvendige operasjonene inn i databasen.

2-Tier Architecture

Det er som Client-Server-arkitektur, hvor kommunikasjon foregår mellom klient og server.

I denne typen programvarearkitektur kjører presentasjonslaget eller brukergrensesnittlaget på klientsiden mens datasettlaget kjøres og lagres på serversiden.

Det er ikke noe forretningslogikklag eller umiddelbart lag mellom klient og server.

Enkeltlag eller 1-lag Architecture

Det er den enkleste siden den tilsvarer å kjøre programmet på den personlige datamaskinen. Alle de nødvendige komponentene for at en applikasjon skal kjøre er på en enkelt applikasjon eller server.

Presentasjonslag, forretningslogikklag og datalag er alle plassert på en enkelt maskin.

Fordeler og ulemper med Multi-Tier Architectures

Fordeler Ulemper
skalerbarhet Økning i innsats
Data Integrity Økning i kompleksitet
Reus Evne
Redusert distribusjon
Forbedret sikkerhet
Forbedret tilgjengelighet

Derfor er det en del av et program som krypterer virkelige forretningsproblemer og bestemmer hvordan data kan oppdateres, opprettes, lagres eller endres for å få hele oppgaven gjort.

N-lag Architecture Tips og utvikling

Med tanke på at programvarefagfolk må ha full kontroll på alle lagene i arkitekturen, gis tips om n-tier arkitektur som nedenfor

  1. Prøv å koble lag fra et annet lag så mye som mulig ved å bruke en teknikk som såpe XML.
  2. Bruk noen automatiserte verktøy for å generere en kartlegging mellom et forretningslogikklag og et relasjonsdatabaselag (datalag). Verktøy som kan hjelpe til med å modellere disse kartleggingsteknikkene er – Entity Framework og Hibernate for .Net etc.
  3. I klientpresentatorlaget, legg en felles kode for alle klientene i et eget bibliotek så mye som mulig. Dette vil maksimere kodens gjenbrukbarhet for alle typer klienter.
  4. Et hurtigbufferlag kan legges til et eksisterende lag for å øke hastigheten på ytelsen.

Sammendrag

N-tier-arkitekturen hjelper til med å administrere alle komponentene (forretningslag, presentasjonslag og databaselag) i en applikasjon under ett tak.

Applikasjoner som bruker et lite antall brukere på et lokalnettverk kan dra nytte av n-tier-arkitektur.

Slik arkitektonisk design fastslår vedlikehold, oppskalering og distribusjon av en applikasjon på Internett effektivt.