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

时间:2013-10-04 08:55:46

标签: java-ee architecture soa multi-tenant saas

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

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:7)

This帖子详细介绍了多租户的数据库架构。

  

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

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

  

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

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

  

建议我选择技术堆栈

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