N Tier (Multi-Tier), 3-Tier, 2-Tier Architecture with EXAMPLE

Innholdsfortegnelse:

Anonim

Hva er N-Tier?

Et N-Tier Application- program er et som distribueres mellom tre eller flere separate datamaskiner i et distribuert nettverk.

Den vanligste formen for n-nivå er 3-lags applikasjonen, og den er klassifisert i tre kategorier.

  • Programmering av brukergrensesnitt i brukerens datamaskin
  • Forretningslogikk i en mer sentralisert datamaskin, og
  • Nødvendige data i en datamaskin som administrerer en database.

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

I N-nivå refererer "N" til at et antall nivåer eller lag blir brukt som - 2-lags, 3-lags eller 4-lags osv . Det kalles også “ Multi-Tier Architecture” .

N-tier-arkitekturen er en bransjeprøvd programvarearkitekturmodell. Det er egnet til å støtte klient-serverapplikasjoner på bedriftsnivå ved å tilby løsninger for skalerbarhet, sikkerhet, feiltoleranse, gjenbrukbarhet og vedlikeholdsevne. Det hjelper utviklere å lage fleksible og gjenbrukbare applikasjoner.

I denne veiledningen vil du lære-

  • Hva er N-Tier?
  • N-Tier Arkitektur
  • Typer N-Tier-arkitekturer
    • 3-lags arkitektur
    • 2-lags arkitektur
    • Single Tier eller 1-Tier Architecture
  • Fordeler og ulemper ved flerlagsarkitekturer
  • N-Tier Arkitektur Tips og utvikling

N-Tier Arkitektur

En diagrammatisk fremstilling av et n-nivå system viser her - presentasjon, applikasjon og databaselag.

N Tier Architecture Diagram

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

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

  • MakeMyTrip.com
  • Sales Force bedriftsapplikasjon
  • Indiske jernbaner - IRCTC
  • Amazon.com, etc.

Noen vanlige begreper å huske, for å forstå konseptet tydeligere.

  • Distribuert nettverk: Det er en nettverksarkitektur, der komponentene som ligger på nettverksdatamaskiner koordinerer og kommuniserer sine handlinger bare ved å sende meldinger. Det er en samling av flere systemer som ligger på forskjellige noder, men ser ut til brukeren som et enkelt system.
    • Det gir et enkelt datakommunikasjonsnettverk som kan administreres separat av forskjellige nettverk.
    • Et eksempel på distribuert nettverk - der forskjellige klienter er koblet til innen LAN-arkitektur på den ene siden og på den andre siden er de koblet til høyhastighetsbrytere sammen med et rack med servere som inneholder servicenoder.
  • Client-Server Architecture: Det er en arkitekturmodell der klienten (ett program) ber om en tjeneste fra en server (et annet program), dvs. det er en service forespørsel-respons som tilbys over internett eller via et intranett.

    I denne modellen vil klienten tjene som ett sett med program / kode som utfører et sett med handlinger over nettverket. Mens Server derimot er et sett med et annet program, som sender resultatsett til klientsystemet etter ønske.

    • 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å Client-Server Model - en minibank. En bank er serveren for behandling av applikasjonen i de store kundedatabasene, og minibank er klienten som har et brukergrensesnitt med enkel applikasjonsbehandling.
  • Plattform: I datavitenskap eller programvareindustri er en plattform et system som applikasjonsprogram kan kjøres på. Den består av en kombinasjon av maskinvare og programvare som har en innebygd instruksjon for at prosessorer / mikroprosessorer skal utføre spesifikke operasjoner.
    • I mer enkle ord er plattformen et system eller en base der applikasjoner kan kjøres og utføres for å oppnå en bestemt oppgave.
    • Et eksempel på plattform - En personlig maskin lastet med Windows 2000 eller Mac OS X som eksempler på to forskjellige plattformer.
  • Database: Det er en samling informasjon på en organisert måte slik at den lett kan nås, administreres og oppdateres.
    • Eksempler på databaser - MySQL, SQL Server og Oracle Database er noen vanlige Db-er.

Typer N-Tier-arkitekturer

Det finnes forskjellige typer N-Tier-arkitekturer, som 3-lags arkitektur, 2-lags arkitektur og 1-lags arkitektur.

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

3-lags arkitektur

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

  • Presentasjonslag
  • Business Logic lag
  • Databaselag

3-trinns arkitekturdiagram

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

Brukergrensesnittlag eller presentasjonslag

Presentasjonslag

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e){// Object of the Property layerclsStudent objproperty=new clsStudent();// Object of the business layerclsStudentInfo objbs=new clsStudentInfo();// Object of the dataset in which we receive the data sent by the business layerDataSet ds=new DataSet();// here we are placing the value in the property using the object of the//property layerobjproperty.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

  • Ovennevnte kode definerer den grunnleggende utformingen av en frontendvisning av applikasjoner, samt å ringe til funksjonene til andre lag, slik at de kan integreres med hverandre.

Lag for forretningstilgang -

Dette er funksjonen til virksomhetslaget som aksepterer dataene fra applikasjonslaget og overfører det til datalaget.

  • Forretningslogikk fungerer som et grensesnitt mellom klientlaget og datatilgangslaget
  • All virksomhetslogikk - som validering av data, beregninger, datainnføring / modifisering er skrevet under forretningslogisk lag.
  • 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 functionreturn ds;}}

Forklaring av kode

Koden bruker funksjonen til virksomhetslag, som vil akseptere dataene for applikasjonslaget og overføre det til datalaget. Business lagkodene fungerer som en formidler mellom funksjonene som er definert i presentasjonslaget og datalaget og kaller funksjonene vice-versa.

Data Access Layer

Dette er datalagfunksjonen, som mottar dataene fra virksomhetslaget og utfører den nødvendige operasjonen i databasen.

// this is the datalayer function which is receiving the data from the business//layer and performing the required operation into the databasepublic class clsStudentData // Data layer class{// object of property layer classpublic 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 operationds=objdt.ExecuteSql(sql);return ds;}}

Forklaring av kode

Koden definerer i datasettlaget over godtar hele forespørselen: forespurt av systemet og utfører de nødvendige operasjonene i databasen.

2-lags arkitektur:

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

I denne typen programvarearkitektur kjører presentasjonslaget eller brukergrensesnittlaget på klientsiden mens datasettlaget blir utført og lagret på serversiden.

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

Enkeltnivå eller 1-trinns arkitektur:

Det er den enkleste siden det tilsvarer å kjøre applikasjonen på PC-en. Alle nødvendige komponenter for at et program skal kjøres, er på ett program eller en enkelt server.

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

Fordeler og ulemper ved flerlagsarkitekturer

Fordeler

Ulemper

  • Skalerbarhet
  • Økning i innsats
  • Dataintegritet
  • Økning i kompleksitet
  • Gjenbrukbarhet
  • 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å fullført oppgaven.

N-Tier Arkitektur Tips og utvikling

Med tanke på at programvareprofesjonelle må ha full kontroll på alle lagene i arkitekturen, er tips om n-nivå arkitektur gitt 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 forretningslogisk lag og et relasjonelt databaselag (datalag). Verktøy som kan hjelpe med modellering av disse kartteknikkene er - Entity Framework og Hibernate for .Net etc.
  3. I klientpresentatørlag setter du en felles kode for alle klientene i et eget bibliotek så mye som mulig. Dette vil maksimere kodenes gjenbrukbarhet for alle typer klienter.
  4. Et hurtiglagerlag kan legges til i et eksisterende lag for å øke ytelsen.

Sammendrag:

N-nivåarkitekturen hjelper deg med å administrere alle komponentene (virksomhetslag, presentasjonslag og databaselag) i et program under ett tak.

Programmer som bruker et lite antall brukere på et lokalt nettverk, kan ha nytte av n-lags arkitektur.

Slik arkitektonisk utforming fastslår å opprettholde, skalere opp og distribuere en applikasjon på Internett effektivt.