SaaS - 多租户单独的数据库模型在Java中实现

Muk*_*thi 4 architecture soa saas java-ee multi-tenant

我正在构建一个软件项目,我想实现一个SAAS(软件即服务)模型.我想设计一个兼容多租户的Web应用程序,每个租户都有单独的数据库.

如何在Java环境中设计多租户UI(UI应该是租户可配置的)?

如何为每个租户单独的数据库设计数据访问层(多租户数据库的单个应用程序实例)?

并建议我在Java环境中选择技术堆栈.

提前致谢.

tec*_*oma 7

这篇文章详细介绍了多租户的数据库架构.

如何在Java中设计多租户UI ...

这取决于要求.如果租户视图完全不同,页面,布局,流程等不同,那么每个租户可以拥有一个页面.通常页面是相似的,只是数据视图不同.在这种情况下,可以在租户和租户配置驱动的视图中使用相同的ui.视图应该是元数据驱动的.可以通过配置映射/ db来配置视图,其中存储每个租户配置.租户可以选择配置期间可以显示的内容.

如何为每个租户设计单独数据库的数据访问层....

这由数据源控制.您需要基本上根据租户标识符区分数据连接和连接池.这可以使用自定义数据访问对象来实现,您可以在其中为不同的租户实例化数据源.Hibernate为多租户提供支持http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch16.html

建议我选择技术堆栈

这是一个非常广泛的问题.我有一些建议,看看这个