多租户
多租户要达到的效果,是租户之间相互隔离。
隔离的方法就分为逻辑的和物理的。所谓逻辑的,就是不同的租户用的还是一套应用,硬件、数据库、应用服务,都是共用一套。应用自己实现了租户之间的隔离,所以叫逻辑多租户。物理多租户中,不同的租户使用的资源就是不同的,为每个租户分配了独占的硬件资源、数据库、应用服务。
物理多租户不满足多租户高效性的要求。我要搞SaaS,就得实现:逻辑多租户
。
逻辑多租户要实现租户之间的逻辑隔离,在建模时,只要是和租户有关的数据,都要加上租户这个属性
可配置
SaaS对可配置性的要求,比传统应用的要高得多,主要体现在三个层面:
界面可配置性
功能可配置性
模型可配置性
功能可配置性
:
指的是不同租户对功能的要求是不一样的。例如,有两个租户A、B,有十个功能F1到F10,租户A、B都需要的功能是F1到F5,租户A单独需要的功能是F6、7,租户B单独需要的功能是F8、9、10。和普通权限管理授权功能不同,在这个例子里面,租户A可以给自己的用户授权,范围只能在F1-7。租户B可以给自己的用户授权,但范围是F1-5, 8-10。
如何实现
:要把功能定义好,如这里的F1-10。其次,要支持用户订购不同的功能组合。因为以后要按照所订购的功能收费。另外,为了方便用户订购,要把功能打包,批量订购
模型配置
在同一项功能中,用户所处理的业务对象,可能不完全一样。以客户关系管理为例吧。每个租户要管理的客户的信息,有共性的内容,如姓名、电话、生日什么的。但有的租户需要管理的信息就是不一样,比如客户的来源,比如客户的家乡,比如结婚纪念日,等等.
如何实现
:采用所谓的“元数据驱动”方法。Salesforce借用了关系数据库管理元数据的方法,来管理租户的业务数据。实际上,当表的结构是动态的时候,就非常适合用这种元数据驱动的方法。
网友评论