lukecodewalker ha scritto:
Quindi sostanzialmente mi stai dicendo che 3-tier è più un qualcosa inerente la distribuzione "fisica" dei vari strati anche su macchine/server diversi.Confermi?
Esatto
Perdonami ma non mi è chiaro che intendi per "cugino". L'MVC è una implementazione particolare di 3-tier o sono due cose diverse? Sta cosa che ogni componente del MVC ha compito simile al tier del 3-tier mi inganna temo
E' un pattern nato per "oggettizzare" i programmi, con una logica analoga (vagamente) a 3 tier.
Nel primo caso puoi immaginare il classico programmello che gira sul browser del client (1 tier)
poi avrai il programmello PHP che gira sul server (2 tier)
e infine avrai il database che girerà da qualche parte (3 tier), spesso sul server 2 ma non è detto
Se estendi il discorso avrai come pattern un "qualcosa" che
mostra i dati V (simile vagamente al primo tier)
esegue i comandi C (simile vagamente al secondo tier)
memorizza e riprende i dati M (simile vagamente al terzo tier)
In sostanza si scopre l'acqua calda, poi si conviene che per scaldarla ci vuole un pentolino, e il fuoco, e l'acqua
O magari un pentolino, un accendino, e l'acqua
Guarda la cosa che più in assoluto mi turba è capire nel progetto dove sono stato allocato al momento, quale è l'architettura software utilizzata.
La solution del progetto asp .net è composta da 3 progetti DAL,BAL e Presentation (asp .net) di fatto il deploy avviene in una sola macchina server, mentre il DB risiede su altro server... ma quindi sarebbe un 3-tier che però sfrutta la distribuzione possibile solo parzialmente?
Mah le "solution" col "deploy" non è che mi siano proprio chiaro.
La segmentazione dei programmi, ovvero farli funzionare su uno o più server, è solo relativo all'utilizzo di socket TCP. In pratica puoi avere due programmi che colloquiano attraverso sistemi "stretti" (pipe, memoria) oppure laschi (socket).
Se sono "laschi" te ne freghi se il computer col quale colloqui è pippo.programma.it oppure 127.0.0.1, funziona ugualmente.
Analogamente puoi avere un programma che funziona su un singolo computer, avendo browser, logica e database sempre nello stesso hardware fisico.