N Tier (Multi-Tier), 3-tier, 2-tier Architecture med EKSEMPEL
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 mulighed for at skabe genanvendelige applikationer/systemer med maksimal fleksibilitet.
In N-lag, "N" henviser til, at et antal lag eller lag bliver brugt som - 2-tier, 3-tier eller 4-tier osv. Det kaldes også "Multi-tier Architecture”.
N-tier arkitekturen er en brancheprøvet softwarearkitekturmodel. Den er velegnet til at understøtte klient-server-applikationer på virksomhedsniveau ved at levere løsninger til skalerbarhed, sikkerhed, fejltolerance, genbrugelighed og vedligeholdelse. Det hjælper udviklere med at skabe fleksible og genbrugelige 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 websteder, der har anvendt denne arkitektur er
- MakeMyTrip.com
- Sales Force virksomhedsapplikation
- Indian Railways – IRCTC
- Amazon.com osv.
Nogle almindelige udtryk at huske, for at forstå konceptet mere klart.
- Distribueret netværk: Det er en netværksarkitektur, hvor komponenterne på netværkscomputere kun koordinerer og kommunikerer deres handlinger ved at sende beskeder. Det er en samling af flere systemer placeret ved forskellige noder, men fremstår for brugeren som et enkelt system.
- Det giver et enkelt datakommunikationsnetværk, som kan administreres separat af forskellige netværk.
- Et eksempel på distribueret netværk – hvor forskellige klienter er forbundet inden for LAN-arkitektur på den ene side, og på den anden side er de forbundet til højhastighedsswitche sammen med et rack af servere, der indeholder serviceknudepunkter.
- Klient-server Archilære: Det er en arkitekturmodel, hvor klienten (et program) anmoder om en service fra en server (et andet program) dvs Det er en anmodning-svar-tjeneste, der leveres over internettet eller gennem 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å Client-Server Model – en pengeautomat. En bank er serveren til at behandle applikationen i de store kundedatabaser, og pengeautomaten er klienten, der har en brugergrænseflade med en simpel applikationsbehandling.
- Platform: I datalogi eller softwareindustrien er en platform et system, hvorpå applikationsprogrammer kan køre. Den består af en kombination af hardware og software, der har en indbygget instruktion for en processor/mikroprocessor til at udføre specifikke operationer.
- Med mere enkle ord er platformen et system eller en base, hvor alle applikationer kan køre og udføre 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 Db'er.
Typer af N-tier Architectures
Der er forskellige typer af N-Tier Architectures, som 3-lags Architecture, 2-tier Architecture og 1- Tier 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å elevform for at forstå alle disse tre lag. Den har oplysninger om en elev 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();
Kode Forklaring
- Ovenstående kode definerer den grundlæggende udformning 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 klientlag og dataadgangslag
- Al forretningslogik – som validering af data, beregninger, dataindsættelse/modifikation 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 business layer, som vil acceptere dataene for applikationslaget og videregive dem til datalaget. Business-lagkoderne fungerer som en mediator mellem funktionerne 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 defineret i datalaget ovenfor accepterer hele anmodningen: anmodet af systemet 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 datalaget bliver eksekveret og gemt på serversiden.
Der er ikke noget forretningslogiklag eller umiddelbart lag mellem klient og server.
Single Tier eller 1-tier Architecture
Det er det enkleste, da det svarer til at køre programmet på den personlige computer. Alle de nødvendige komponenter for at en applikation kan køre er 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
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 lagene i arkitekturen, gives tips om n-tier arkitektur som nedenfor
- Prøv at afkoble lag fra et andet lag så meget som muligt ved at bruge en teknik som sæbe XML.
- Brug nogle automatiserede værktøjer til at generere en kortlægning mellem et forretningslogiklag og et relationelt databaselag (datalag). Værktøjer, der kan hjælpe med at modellere disse kortlægningsteknikker er – Entity Framework og Hibernate for .Net osv.
- Indsæt så meget som muligt en fælles kode for alle klienterne i et separat bibliotek i klientpræsentationslaget. Dette vil maksimere kodegenanvendeligheden for alle typer klienter.
- Et cachelag kan tilføjes til et eksisterende lag for at fremskynde ydeevnen.
Resumé
N-tier-arkitekturen hjælper med at styre alle komponenterne (virksomhedslag, præsentationslag og databaselag) i en applikation under ét tag.
Applikationer, der bruger et lille antal brugere på et lokalnetværk, kan drage fordel af n-tier-arkitektur.
Et sådant arkitektonisk design sikrer, at en applikation på Internettet vedligeholdes, opskaleres og implementeres effektivt.