Ayende ha scritto tempo fa una serie di post su come progettare applicazioni multi tenancy [1]
La soluzione che suggerisce per la gestione dei dati è quella di avere un DB per tenant [2].
Sempre dello stesso avviso è una tal Anne Epstein, che cerca di spiegare come gestire DB multipli [3].
Infine Mike Hadlow, il dev dietro a Suteki Shop (uno eCommerce store scritto in ASP.NET MVC) ha scritto un paio di post sul problema della multi-tenancy [4], e nel secondo post da una soluzione su come gestire diverse connection strings in base al "tenant" [5]
HTH
Simo
[1] - http://ayende.com/Blog/archive/2008/08/13/Mutli-Tenancy--multi-tenant-apps-and-frameworks.aspx
[2] - http://ayende.com/Blog/archive/2008/08/07/Multi-Tenancy--The-Physical-Data-Model.aspx
[3] - http://devlicio.us/blogs/anne_epstein/archive/2009/04/24/the-case-for-multiple-dbs-in-multi-tenancy-situations.aspx
[4] - http://mikehadlow.blogspot.com/search/label/Multi-tenancy
[5] - http://mikehadlow.blogspot.com/2008/11/multi-tenancy-part-2-components-and.html
--
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech
Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"
Da: "bitbreaker2k" <bitbreaker2k@...>
Inviato: mercoledì 1 luglio 2009 6.42
A: ugialtnet@yahoogroups.com
Oggetto: [SPAM-LOW] [ugialtnet] Re: Applicazione Multi-tenancy ed architettura
--- In ugialtnet@yahoogrou
>
> Penso che un problema di avere 10 istanze possa essere di performance
> ed occupazione di memoria, probabilmente fa differenza far caricare
> IIS 10 volte le dll piuttosto che una sola.
>
Attualmente lo "script di deploy" e' ottimizzato e ben fatto (modestamente)
Sicuramente deployare 1 folder invece che 20 occupa meno tempo e comporterebbe meno downtime.
Inoltre, moltiplica i folder per 9 server ... e vedrai quanto tempo ci si impiega.
Il problema principale sarebbe anche quello menzionato da Giorgio: ogni nazione e' isolato tramite Application Pool = 20 application pool che caricano cache applicativa e dll infrastrutturali.
La manutenzione (come l'aggiunta di una nuova nazione) , inoltre, risulterebbe piu' facile.
Credo, comunque, che bisognerebbe "stravolgere" l'architettura in modo che il repository degli utenti sia separato ed UNICO per tutte le nazioni.
A quel punto, tra le informazioni dell'utenza, ci sara' anche quella della nazione (o tenant che dir si voglia) che servirebbe per redirigere le chiamate in modo opportuno.