Architettura N Tier (Multi-Tier), 3-Tier, 2-Tier con ESEMPIO

Sommario:

Anonim

Cos'è N-Tier?

Un programma di applicazione a più livelli è 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 di architettura consente agli sviluppatori di software di creare applicazioni / sistemi riutilizzabili con la massima flessibilità.

In livelli N, "N" si riferisce a un numero di livelli o livelli utilizzati come: 2 livelli, 3 livelli o 4 livelli, ecc . È anche chiamata " architettura multi-livello" .

L'architettura a più livelli è un modello di architettura software collaudato nel settore. È adatto a supportare applicazioni client-server di livello aziendale fornendo soluzioni per scalabilità, sicurezza, tolleranza ai guasti, riusabilità e manutenibilità. Aiuta gli sviluppatori a creare applicazioni flessibili e riutilizzabili.

In questo tutorial imparerai-

  • Cos'è N-Tier?
  • Architettura a più livelli
  • Tipi di architetture a più livelli
    • Architettura a 3 livelli
    • Architettura a 2 livelli
    • Architettura a livello singolo o 1 livello
  • Vantaggi e svantaggi delle architetture multilivello
  • Suggerimenti e sviluppo per l'architettura a più livelli

Architettura a più livelli

Una rappresentazione schematica di un sistema a più livelli illustra qui: presentazione, applicazione e livelli di database.

Diagramma dell'architettura di livello N.

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

Alcuni dei siti popolari che hanno applicato questa architettura sono

  • MakeMyTrip.com
  • Applicazione aziendale Sales Force
  • Ferrovie indiane - IRCTC
  • Amazon.com, ecc.

Alcuni termini comuni da ricordare, in modo da comprendere più chiaramente il concetto.

  • Rete distribuita: è un'architettura di rete, in cui i componenti situati nei computer di rete coordinano e comunicano le loro azioni solo passando messaggi. Si tratta di una raccolta di più sistemi situati in diversi nodi, ma appare all'utente come un unico sistema.
    • Fornisce un'unica rete di comunicazione dati che può essere gestita separatamente da reti diverse.
    • Un esempio di rete distribuita, in cui diversi client sono collegati all'interno dell'architettura LAN da un lato e dall'altro sono collegati a switch ad alta velocità insieme a un rack di server contenente nodi di servizio.
  • Architettura client-server: è un modello di architettura in cui il client (un programma) richiede un servizio da un server (un altro programma), cioè è un servizio di richiesta-risposta fornito su Internet o tramite una intranet.

    In questo modello, il Cliente servirà come un insieme di programma / codice che esegue un insieme di azioni sulla rete. Mentre Server , d'altra parte, è un insieme di un altro programma, che invia i set di risultati al sistema client come richiesto.

    • In questo, il computer client fornisce un'interfaccia a un utente finale per richiedere un servizio o una risorsa da un server e dall'altra parte il server elabora la richiesta e mostra il risultato all'utente finale.
    • Un esempio di modello client-server: un bancomat. Una banca è il server per l'elaborazione dell'applicazione all'interno dei database dei clienti di grandi dimensioni e il bancomat è il client che dispone di un'interfaccia utente con alcune semplici elaborazioni dell'applicazione.
  • Piattaforma: nell'informatica o nell'industria del software, una piattaforma è un sistema su cui è possibile eseguire il programma applicativo. Consiste in una combinazione di hardware e software con istruzioni integrate per processori / microprocessori per eseguire operazioni specifiche.
    • In parole più semplici, la piattaforma è un sistema o una base in cui qualsiasi applicazione può essere eseguita ed eseguita per ottenere un'attività specifica.
    • Un esempio di piattaforma - Una macchina personale caricata con Windows 2000 o Mac OS X come esempi di 2 diverse piattaforme.
  • Database: è una raccolta di informazioni in modo organizzato in modo che possa essere facilmente accessibile, gestita e aggiornata.
    • Esempi di database: MySQL, SQL Server e Oracle Database sono alcuni database comuni.

Tipi di architetture a più livelli

Esistono diversi tipi di architetture a più livelli , come architettura a 3 livelli, architettura a 2 livelli e architettura a 1 livello.

Innanzitutto, vedremo l'architettura a 3 livelli, che è molto importante.

Architettura a 3 livelli

Osservando il diagramma seguente, è possibile identificare facilmente che l' architettura a 3 livelli ha tre diversi livelli.

  • Livello di presentazione
  • Livello di logica aziendale
  • Livello database

Schema di architettura a 3 livelli

Qui abbiamo preso un semplice esempio di forma dello studente per comprendere tutti questi tre livelli. Contiene informazioni su uno studente come: nome, indirizzo, e-mail e immagine.

Livello interfaccia utente o livello presentazione

Livello di presentazione

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

Spiegazione del codice

  • Il codice precedente definisce la progettazione di base di una vista front-end delle applicazioni, nonché la chiamata delle funzioni di altri livelli in modo che possano essere integrate 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 aziendale funge da interfaccia tra il livello client e il livello di accesso ai dati
  • Tutta la logica aziendale, come la convalida dei dati, i calcoli, l'inserimento / modifica dei dati, viene scritta sotto il livello della logica aziendale.
  • Rende la comunicazione più rapida e semplice tra il client e il livello dati
  • Definisce un'attività del flusso di lavoro adeguata 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 functionreturn ds;}}

Spiegazione del codice

Il codice utilizza la funzione del livello aziendale, che accetterà i dati per il livello dell'applicazione e li passerà al livello dati. I codici del livello aziendale agiscono da mediatore tra le funzioni definite nel livello di presentazione e nel livello dati e chiamando le funzioni viceversa.

Livello di accesso ai dati

Questa è la funzione del livello dati, che riceve i dati dal livello aziendale ed esegue le operazioni necessarie nel database.

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

Spiegazione del codice

Il codice definito nel livello del set di dati sopra accetta l'intera richiesta: richiesta dal sistema ed eseguendo le operazioni richieste nel database.

Architettura a 2 livelli:

È come l'architettura client-server, dove avviene la comunicazione tra client e server.

In questo tipo di architettura software, il livello di presentazione o il livello dell'interfaccia utente viene eseguito sul lato client mentre il livello del set di dati viene eseguito e archiviato sul lato server.

Non esiste un livello di logica aziendale o un livello immediato tra client e server.

Architettura a livello singolo o 1 livello:

È il più semplice in quanto equivale a eseguire l'applicazione sul personal computer. Tutti i componenti necessari per l'esecuzione di un'applicazione si trovano su una singola applicazione o server.

Il livello di presentazione, il livello di logica aziendale e il livello di dati si trovano tutti su una singola macchina.

Vantaggi e svantaggi delle architetture multilivello

Vantaggi

Svantaggi

  • Scalabilità
  • Aumento dello sforzo
  • L'integrità dei dati
  • Aumento della complessità
  • Riusabilità
  • Distribuzione ridotta
  • Sicurezza migliorata
  • Disponibilità migliorata

Quindi, è una 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 completare l'attività.

Suggerimenti e sviluppo per l'architettura a più livelli

Considerando che i professionisti del software devono avere un controllo completo su tutti i livelli dell'architettura, i suggerimenti sull'architettura a più livelli sono forniti come di seguito

  1. Prova a disaccoppiare i livelli da un altro il più possibile utilizzando una tecnica come soap XML.
  2. Utilizzare alcuni strumenti automatizzati per generare una mappatura tra un livello di logica aziendale e un livello di database relazionale (livello dati). Gli strumenti che possono aiutare nella modellazione di queste tecniche di mappatura sono: Entity Framework e Hibernate per .Net ecc.
  3. Nel livello del presentatore del client, inserire il più possibile un codice comune per tutti i client in una libreria separata. Ciò massimizzerà la riutilizzabilità del codice per tutti i tipi di client.
  4. È possibile aggiungere un livello di cache a un livello esistente per accelerare le prestazioni.

Sommario:

L'architettura a più livelli aiuta a gestire tutti i componenti (livello aziendale, livello presentazione e livello database) di un'applicazione sotto lo stesso tetto.

Le applicazioni che utilizzano un numero limitato di utenti su una rete locale possono trarre vantaggio dall'architettura a più livelli.

Tale progettazione architettonica accerta il mantenimento, la scalabilità e la distribuzione di un'applicazione su Internet in modo efficiente.