Livello N (multilivello), 3 livelli, 2 livelli Architettura con ESEMPIO

โšก Riepilogo intelligente

L'architettura N-tier, detta anche architettura multi-tier, distribuisce un'applicazione su tre o piรน livelli separati, come presentazione, logica di business e dati. Questo modello migliora la scalabilitร , la sicurezza e la riutilizzabilitร  delle applicazioni client-server a livello aziendale.

  • ???? ๏ธ Definizione: Un'applicazione N-Tier รจ distribuita su tre o piรน computer separati in una rete distribuita.
  • ๐Ÿงฑ Tre strati principali: I livelli di presentazione (interfaccia utente), logica di business e database separano nettamente le diverse responsabilitร .
  • ๐Ÿ”ข Variazioni di livello: I modelli piรน comuni sono a 1, 2 e 3 livelli, con quest'ultimo che risulta il piรน diffuso.
  • ๐ŸŒ Utilizzo nel mondo reale: Siti come IRCTC, MakeMyTrip e Amazon fare affidamento su questa architettura.
  • โœ… Vantaggi principali: Scalabilitร , integritร  dei dati, riutilizzabilitร , maggiore sicurezza e disponibilitร .
  • โš ๏ธ Scambio: Un maggior numero di livelli aumenta lo sforzo di sviluppo e la complessitร  complessiva del sistema.

Livello N Architectura

Cos'รจ il livello N?

An Applicazione a piรน livelli un programma รจ distribuito tra tre o piรน computer separati in una rete distribuita.

La forma piรน comune di n-tier รจ l'applicazione a 3 livelli ed รจ classificata in tre categorie.

  • Programmazione dell'interfaccia utente nel computer dell'utente
  • Logica aziendale in un computer piรน centralizzato e
  • Dati richiesti in un computer che gestisce un database.

Questo modello architetturale offre agli sviluppatori di software un modo per creare applicazioni/sistemi riutilizzabili con la massima flessibilitร .

In Livello N, โ€œNโ€ si riferisce a una serie di livelli o strati che vengono utilizzati, come ad esempio: 2 livelli, 3 livelli o 4 livelli, ecc. Si chiama anche โ€œMulti-livello Architectura".

L'architettura n-tier รˆ un modello di architettura software collaudato nel settore. รˆ adatto a supportare applicazioni client-server di livello enterprise, fornendo soluzioni per scalabilitร , sicurezza, tolleranza ai guasti, riutilizzabilitร  e manutenibilitร . Aiuta gli sviluppatori a creare applicazioni flessibili e riutilizzabili.

Livello N Architectura

Qui viene illustrata una rappresentazione schematica di un sistema a piรน livelli: livelli di presentazione, applicazione e database.

Livello N Architectura
Livello N Archidiagramma della struttura

Questi tre strati possono essere ulteriormente suddivisi in diversi sottostrati a seconda delle esigenze.

Alcuni dei siti piรน famosi che hanno adottato questa architettura sono:

  • MakeMyTrip.com
  • Applicazione aziendale Forza vendita
  • Ferrovie indiane - IRCTC
  • Amazon.com, ecc.

Ecco alcuni termini comuni da ricordare per comprendere meglio il concetto:

  • Rete distribuita: Si tratta di un'architettura di rete in cui i componenti, situati su computer collegati in rete, coordinano e comunicano le proprie azioni esclusivamente tramite lo scambio di messaggi. รˆ un insieme di piรน sistemi situati su nodi diversi, ma che appaiono all'utente come un unico sistema.
    • Fornisce un'unica rete di comunicazione dati che puรฒ essere gestita separatamente da diverse reti.
    • Un esempio di rete distribuita: diversi client sono connessi all'interno di un'architettura LAN da un lato e dall'altro sono connessi a switch ad alta velocitร  insieme a un rack di server contenenti nodi di servizio.
  • Server client Architecnologia: Si tratta di un modello architetturale in cui il client (un programma) richiede un servizio a un server (un altro programma), vale a dire Si tratta di un servizio di richiesta-risposta fornito tramite internet o attraverso una intranet. In questo modello, . servirร  come un insieme di programmi/codici che eseguono una serie di azioni sulla rete. Mentre server, d'altro canto, รจ un set di un altro programma, che invia i set di risultati al sistema client come richiesto.
    • In questo sistema, il computer client fornisce un'interfaccia all'utente finale per richiedere un servizio o una risorsa a un server, mentre il server elabora la richiesta e visualizza il risultato all'utente finale.
    • Un esempio di modello client-server รจ un bancomat. La banca funge da server per l'elaborazione delle richieste all'interno degli ampi database dei clienti, mentre il bancomat รจ il client, dotato di un'interfaccia utente per l'elaborazione di semplici operazioni.
  • Piattaforma: Nell'informatica o nell'industria del software, una piattaforma รจ un sistema su cui puรฒ essere eseguito un programma applicativo. Consiste in una combinazione di hardware e software che include istruzioni integrate per consentire a un processore/microprocessore di eseguire operazioni specifiche.
    • In parole piรน semplici, la piattaforma รจ un sistema o una base su cui qualsiasi applicazione puรฒ essere eseguita per portare a termine un compito specifico.
    • Un esempio di piattaforma: una macchina personale carica di Windows 2000 o Mac OS X come esempi di 2 diverse piattaforme.
  • Banca dati: Si tratta di una raccolta di informazioni organizzata in modo tale da poter essere facilmente accessibili, gestite e aggiornate.
    • Esempi di database โ€“ MySQL, SQL Server e Oracle Database sono alcuni database comuni.

Tipi di livello N Architetture

Esistono diversi tipi di livello N Architecnologie, come 3 livelli Architecnologia, 2 livelli Archistruttura e 1 livello Architectura.

Innanzitutto, vedremo 3 livelli Architettura, che รจ molto importante.

3-Tier Architectura

Osservando il diagramma seguente, puoi facilmente identificarlo Architettura a 3 livelli ha tre strati diversi.

  • Livello di presentazione
  • Livello della logica aziendale
  • Livello del database
Livello 3 Archidiagramma della struttura
Livello 3 Archidiagramma della struttura

Qui abbiamo preso un semplice esempio di modulo per studenti per comprendere tutti e tre questi livelli. Contiene informazioni sullo studente come nome, indirizzo, email e foto.

Livello dell'interfaccia utente o livello di presentazione

3-Tier Architectura

Livello di presentazione

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 Spiegazione

  • Il codice sopra riportato definisce la progettazione di base dell'interfaccia utente delle applicazioni, nonchรฉ la chiamata delle funzioni di altri livelli in modo che possano essere integrati tra loro.

Livello di accesso aziendale โ€“

Questa รจ la funzione del livello aziendale che accetta i dati dal livello dell'applicazione e li passa al livello dati.

  • La logica di business funge da interfaccia tra il livello client e il livello di accesso ai dati.
  • Tutta la logica di business, come la convalida dei dati, i calcoli, l'inserimento/modifica dei dati, รจ scritta nel livello della logica di business.
  • Rende la comunicazione tra il client e il livello dati piรน rapida e semplice.
  • Definisce un'attivitร  del flusso di lavoro corretta necessaria per completare un'attivitร .
// 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;
	}
}

Spiegazione del codice

Il codice utilizza le funzioni del livello business, che accettano i dati per il livello applicativo e li trasmettono al livello dati. Il codice del livello business funge da mediatore tra le funzioni definite nel livello di presentazione e nel livello dati, richiamando le funzioni in entrambe le direzioni.

Livello di accesso ai dati

Questa รจ la funzione del livello dati, che riceve i dati dal livello aziendale ed esegue l'operazione necessaria nel database.

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

Spiegazione del codice

Il codice definito nel livello del dataset sopra riportato accetta l'intera richiesta, proveniente dal sistema, ed esegue le operazioni necessarie sul database.

2-Tier Architectura

รˆ simile all'architettura Client-Server, in cui la comunicazione avviene tra client e server.

In questo tipo di architettura software, il livello di presentazione o interfaccia utente viene eseguito sul lato client, mentre il livello dei dati viene eseguito e memorizzato sul lato server.

Non esiste alcun livello di logica di business o livello intermedio tra client e server.

Livello singolo o 1 livello Architectura

รˆ la soluzione piรน semplice, in quanto equivale a eseguire l'applicazione su un personal computer. Tutti i componenti necessari al funzionamento dell'applicazione si trovano su un'unica applicazione o server.

Il livello di presentazione, il livello di logica aziendale e il livello di dati si trovano tutti su un unico computer.

Vantaggi e svantaggi del multilivello Architetture

Come ogni scelta progettuale, l'approccio a piรน livelli offre chiari vantaggi, ma anche alcuni compromessi, riassunti di seguito.

Vantaggi Svantaggi
Scalabilitร  Aumento dello sforzo
Dati Integrity Aumento della complessitร 
riutilizzabilitร 
Distribuzione ridotta
Sicurezza migliorata
Disponibilitร  migliorata

Pertanto, fa parte di un programma che crittografa i problemi aziendali del mondo reale e determina come i dati possono essere aggiornati, creati, archiviati o modificati per portare a termine l'attivitร  completa.

Livello N ArchiSuggerimenti e sviluppo della tecnica

Considerando che i professionisti del software devono avere il pieno controllo su tutti i livelli dell'architettura, di seguito vengono forniti alcuni suggerimenti sull'architettura a n livelli:

  1. Cerca di disaccoppiare il piรน possibile i vari livelli utilizzando una tecnica come SOAP XML.
  2. Utilizzare alcuni strumenti automatizzati per generare una mappaping tra un livello di logica aziendale e un livello di database relazionale (livello dati). Strumenti che possono aiutare a modellare queste mappeping Le tecniche includono Entity Framework e Hibernate per .Net, ecc.
  3. Nel livello di presentazione del client, รจ consigliabile inserire il codice comune a tutti i client in una libreria separata, per quanto possibile. Ciรฒ massimizzerร  il riutilizzo del codice per tutti i tipi di client.
  4. รˆ possibile aggiungere un livello di cache a un livello esistente per accelerare le prestazioni.

DOMANDE FREQUENTI

Un layer รจ una separazione logica del codice, come ad esempio la logica di presentazione o la logica di business. Un tier รจ la separazione fisica di questi layer su macchine diverse. Piรน layer possono essere eseguiti su un singolo tier, oppure ogni layer puรฒ avere il proprio tier.

No. MVC รจ un modello di progettazione per organizzare il codice all'interno di un'applicazione, mentre l'architettura a 3 livelli separa fisicamente presentazione, logica e dati su diversi livelli. I componenti MVC interagiscono liberamente, mentre i livelli dell'architettura a 3 livelli comunicano in un ordine rigoroso dall'alto verso il basso.

Le scelte piรน comuni includono .NET, Java (Spring) e Node.js per la logica di business, HTML/JavaStrutture di script per la presentazione e database come MySQL, SQL Server o Oracle per il livello dati. ORM come Entity Framework e Hibernate collegano i vari livelli.

L'IA viene solitamente aggiunta nel livello della logica aziendale o come livello di servizio separato. Alimenta funzionalitร  come raccomandazioni, rilevamento delle frodi e ricerca, mentre i livelli di presentazione e dati rimangono invariati.ping l'architettura รจ modulare e di facile manutenzione.

Sรฌ. Il monitoraggio basato sull'IA puรฒ prevedere i picchi di traffico e scalare automaticamente ogni livello in modo indipendente. Puรฒ anche bilanciare i carichi, rilevare i colli di bottiglia e ottimizzare le query del database, aiutandoping Le applicazioni client-server di grandi dimensioni rimangono reattive anche in presenza di una domanda variabile.

Riassumi questo post con: