Risposte:
I livelli logici sono semplicemente un modo di organizzare il tuo codice. I livelli tipici includono Presentazione, Business e Dati, lo stesso del tradizionale modello a 3 livelli. Ma quando parliamo di livelli, stiamo solo parlando dell'organizzazione logica del codice. Non è in alcun modo implicito che questi livelli possano essere eseguiti su computer diversi o in processi diversi su un singolo computer o anche in un singolo processo su un singolo computer. Tutto ciò che stiamo facendo è discutere un modo di organizzare un codice in un insieme di livelli definiti da una funzione specifica.
I livelli fisici , tuttavia, riguardano solo la posizione del codice. In particolare, i livelli sono luoghi in cui vengono distribuiti i livelli e dove vengono eseguiti i livelli. In altre parole, i livelli sono la distribuzione fisica dei livelli.
Fonte: Rockford Lhotka, tutte le app dovrebbero essere di livello n?
Leggi il post di Scott Hanselman sull'argomento: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx
Ricorda, tuttavia, che in "Scott World" (che è anche il tuo mondo :)) un "livello" è un'unità di distribuzione, mentre un "livello" è una logica separazione di responsabilità all'interno del codice. Puoi dire di avere un sistema "a 3 livelli", ma eseguilo su un laptop. Puoi dire di avere un sistema a "3 strati", ma hai solo pagine ASP.NET che parlano a un database. C'è potere in precisione, amici.
I livelli si riferiscono alla separazione logica del codice. I livelli logici ti aiutano a organizzare meglio il tuo codice. Ad esempio, un'applicazione può avere i seguenti livelli.
1) Layer di presentazione o UI Layer 2) Business Layer o Business Logic Layer 3) Layer di accesso ai dati o Data Layer
I tre strati di cui sopra risiedono nei propri progetti, possono essere 3 progetti o anche di più. Quando compiliamo i progetti otteniamo la rispettiva DLL di livello. Quindi ora abbiamo 3 DLL.
A seconda di come implementiamo la nostra applicazione, potremmo avere da 1 a 3 livelli. Poiché ora abbiamo 3 DLL, se distribuiamo tutte le DLL sullo stesso computer, allora abbiamo solo 1 livello fisico ma 3 livelli logici.
Se scegliamo di distribuire ogni DLL su una macchina separata, allora abbiamo 3 livelli e 3 livelli.
Quindi, i livelli sono una separazione logica e i livelli sono una separazione fisica. Possiamo anche dire che i livelli sono la distribuzione fisica dei livelli.
Perché cercare sempre di usare parole complesse?
Un livello = una parte del codice , se l'applicazione è una torta, questa è una sezione.
Un livello = una macchina fisica , un server.
Un livello ospita uno o più livelli.
Esempio di strati:
Livello:
Il tuo codice è ospitato su un server = Il tuo codice è ospitato su un livello.
Il tuo codice è ospitato su 2 server = Il tuo codice è ospitato su 2 livelli.
Ad esempio, un computer che ospita il sito Web stesso (il livello Presentazione), un altro computer più sicuro ospita un codice ancora più sensibile alla sicurezza (codice aziendale reale - livello aziendale, livello di accesso al database, ecc.).
Ci sono così tanti vantaggi nell'implementare un'architettura a strati. Ciò è complicato e l'implementazione corretta di un'applicazione a più livelli richiede tempo. Se ne hai alcuni, dai un'occhiata a questo post di Microsoft: http://msdn.microsoft.com/en-gb/library/ee658109.aspx
In parole povere, il si Tier
riferisce a "ciascuno in una serie di file o livelli di una struttura posizionati uno sopra l'altro" mentre il Layer
riferimento a "un foglio, quantità o spessore di materiale, in genere uno dei tanti, che copre una superficie o un corpo ".
Il livello è un'unità fisica , in cui viene eseguito il codice / processo. Ad esempio: client, application server, database server;
Il livello è un'unità logica , come organizzare il codice. Ad esempio: presentazione (vista), controller, modelli, repository, accesso ai dati.
I livelli rappresentano la separazione fisica della presentazione, attività, servizi e funzionalità dei dati del progetto tra computer e sistemi separati.
I livelli sono i raggruppamenti logici dei componenti software che compongono l'applicazione o il servizio. Aiutano a distinguere tra i diversi tipi di attività eseguite dai componenti, facilitando la creazione di un progetto che supporti la riusabilità dei componenti. Ogni livello logico contiene un numero di tipi di componenti discreti raggruppati in sublayer, con ogni sublayer che esegue un tipo specifico di attività.
Il modello a due livelli rappresenta un client e un server.
In questo scenario, il client e il server possono esistere sulla stessa macchina o possono trovarsi su due macchine diverse. La figura seguente illustra uno scenario di applicazione Web comune in cui il client interagisce con un server Web situato nel livello client. Questo livello contiene la logica del livello di presentazione e qualsiasi logica del livello aziendale richiesta. L'applicazione Web comunica con un computer separato che ospita il livello del database, che contiene la logica del livello dati.
Vantaggi di strati e livelli:
La stratificazione consente di massimizzare la manutenibilità del codice, ottimizzare il modo in cui l'applicazione funziona quando viene distribuita in modi diversi e fornire una chiara delimitazione tra posizioni in cui devono essere prese determinate decisioni di tecnologia o progettazione.
Posizionare i livelli su livelli fisici separati può aiutare le prestazioni distribuendo il carico su più server. Può anche aiutare con la sicurezza separando componenti e livelli più sensibili su reti diverse o su Internet rispetto a una rete intranet.
Un'applicazione di 1 livello potrebbe essere un'applicazione a 3 livelli.
Sì, i miei cari amici hanno detto correttamente. Il livello è una partizione logica dell'applicazione mentre il livello è una partizione fisica della partizione di livello del sistema dipende dalla partizione di livello. Proprio come un'applicazione viene eseguita su una singola macchina ma segue un'architettura a 3 livelli, quindi possiamo dire che l'architettura a strati potrebbe esistere in un'architettura a livelli. In parole povere l'architettura a 3 livelli può essere implementata in una singola macchina, quindi possiamo dire che si tratta di un'architettura a 1 livello. Se implementiamo ogni livello su una macchina separata, allora viene chiamata architettura a 3 livelli. Un livello può anche essere in grado di eseguire diversi livelli. Nel componente relativo all'architettura di livello per comunicare facilmente tra loro.
Proprio come seguiamo dato sotto l'architettura
Un client potrebbe interagire con il "livello presentazione", ma accede al componente pubblico del livello inferiore (come il componente pubblico del livello di logica aziendale) al "livello di logica aziendale" per motivi di sicurezza.
Q * perché utilizziamo l'architettura di livello? perché se implementiamo l'architettura di livello, aumentiamo l'efficienza delle nostre applicazioni come
==> Sicurezza
==> gestibilità
==> scalabilità
altre necessità, come dopo lo sviluppo dell'applicazione, è necessario cambiare dbms o modificare la logica aziendale, ecc., quindi è necessario per tutti.
Q * perché utilizziamo l'architettura di livello?
perché l'implementazione fisica di ciascun livello offre una migliore efficienza, senza un'architettura di livello non è possibile implementare l'architettura di livello. macchina separata per implementare il livello separato e il livello separato è implementare uno o più livelli, per questo lo usiamo.
utilizza ai fini della tolleranza agli errori. ==> facile da mantenere.
Semplice esempio
Proprio come una banca aperta in una camera, in cui le categorie dell'impiegato:
sono tutti i componenti correlati del sistema.
Se andiamo in banca a scopo di prestito, prima un guardiano del cancello apre la porta con un sorriso, dopodiché andiamo vicino a una persona che presenta tutti gli schemi di prestito, dopodiché andiamo alla cabina del gestore e passiamo il prestito. Dopodiché finalmente andiamo al banco cassa prendiamo in prestito. Queste sono architetture a strati di banca.
E il livello? Una filiale di una banca si apre in una città, dopo quella in un'altra città, dopo quella in un'altra città, ma qual è il requisito di base di ogni filiale
esattamente lo stesso concetto di livello e livello.
I livelli sono una separazione logica related-functionality[code]
all'interno di un'applicazione, la comunicazione tra livelli è esplicita e liberamente accoppiata. [Logica presentazione, Logica applicazione, Logica accesso dati]
I livelli sono la separazione fisica di layers
[che vengono ospitati su singoli server] in un singolo computer (processo).
Come mostrato nel diagramma:
1-Tier & 3-Layers « App Logic with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer « Browser View[php], App Logic[jsp], DataStorage
n- Tier vantaggi:
migliore sicurezza
Scalabilità : Come la vostra organizzazione cresce È possibile scalare il vostro DB-Tier con DB-clustering con fuori toccando altri livelli.
Manutenibilità : Web designer può modificare il codice di visualizzazione, senza toccare gli altri livelli sugli altri livelli. Aggiorna o migliora
facilmente [Esempio: puoi aggiungere un codice applicazione aggiuntivo, aggiornare l'area di archiviazione o persino aggiungere più livelli di presentazione per dispositivi separati come dispositivi mobili, tablet, pc]
Mi piace la descrizione che segue dalla Guida all'architettura dell'applicazione Microsoft 2
I livelli descrivono i raggruppamenti logici di funzionalità e componenti in un'applicazione; mentre i livelli descrivono la distribuzione fisica delle funzionalità e dei componenti su server, computer, reti o posizioni remote separate. Sebbene sia i livelli che i livelli utilizzino lo stesso set di nomi (presentazione, attività, servizi e dati), ricorda che solo i livelli implicano una separazione fisica.
Uso i livelli per descrivere l'architetto o lo stack tecnologico all'interno di un componente delle mie soluzioni. Uso i livelli per raggruppare logicamente quei componenti in genere quando è coinvolta la comunicazione di rete o tra processi.
Tecnicamente un livello può essere un tipo di ambiente minimo richiesto per l'esecuzione del codice.
Ad esempio, ipoteticamente, è possibile eseguire un'app a 3 livelli
1 macchina fisica con 3 macchine virtuali senza sistema operativo.
(Era un'app di livello 3- (hardware))
1 macchina fisica con 3 macchine virtuali con 3 sistemi operativi diversi / stessi
(Era un'app di livello 3- (OS))
1 macchina fisica con 1 macchina virtuale con 1 sistema operativo ma 3 AppServer
(Era un'app di livello 3- (AppServer))
1 macchina fisica con 1 macchina virtuale con 1 SO con 1 AppServer ma 3 DBMS
(Era un'app di livello 3- (DBMS))
1 macchina fisica con 1 macchina virtuale con 1 sistema operativo con 1 AppServer e 1 DBMS ma 3 cartelle di lavoro Excel.
(Era un'app di livello 3- (AppServer))
La cartella di lavoro di Excel è l'ambiente minimo richiesto per l'esecuzione del codice VBA.
Queste 3 cartelle di lavoro possono trovarsi su un singolo computer fisico o multiplo.
Ho notato che in pratica le persone significano "Livello OS" quando dicono "Livello" nel contesto della descrizione dell'app.
Cioè se un'app viene eseguita su 3 sistemi operativi separati, allora è un'app di 3 livelli.
Quindi sarebbe un modo pedantemente corretto per descrivere un'app
App "In grado da 1 a 3 livelli, in esecuzione su 2 livelli".
:)
I livelli sono solo tipi di codice rispetto alla separazione funzionale dei compiti all'interno dell'app (ad es. Presentazione, Dati, Sicurezza ecc.)
I livelli sono entità concettuali e vengono utilizzati per separare la funzionalità del sistema software da un punto di vista logico; quando implementate il sistema organizzate questi livelli usando metodi diversi; in questa condizione ci riferiamo a loro non come livelli ma come livelli.
Quando parli di presentazione, servizio, dati, livello di rete, stai parlando di livelli. Quando li "distribuisci separatamente", parli di livelli.
Livelli è tutto sulla distribuzione. Prendi in questo modo: abbiamo un'applicazione che ha un frontend creato in Angular, ha un backend come MongoDB e uno strato intermedio che interagisce tra frontend e backend. Quindi, quando questa applicazione frontend, l'applicazione di database e il livello intermedio sono distribuiti separatamente, diciamo che è un'applicazione a 3 livelli.
Vantaggio: se in futuro dovremo ridimensionare il nostro backend, dovremo solo ridimensionare il backend in modo indipendente e non è necessario ridimensionare il frontend.