SaaS模式实现架构实例分析(2)应用层的设计 (续1)

 前面咱们说过,进销存程序不同于别的应用程序,进销存应用程序有强烈的个性化需求,应用层的设计要求能够做到以下两点:

(1)       所有的客户理论上均可以自定义自己的页面

(2)       所有的客户理论上均可以自定义自己的业务逻辑

 

 

下面我说说我是如何做到以上两点的:

要做到以上两点,只能有一套代码,一个Framework才算成功,如果针对不同的用户界面和用户逻辑需求,Framework也需要变动的话,那就是项目性质了。

(1)       所有的客户理论上均可以自定义自己的页面

 

我这里也是采用了MVC的架构,参考了Struts 的源代码,并大量改造了Struts的源代码,使之能适应SaaS架构的需求。

上篇咱们说过,对数据库这一层,我采用的是方案3,每个客户有自己独立的一个Schema,但所有的客户,在菜单、角色、权限方面,他们采用了同一个公共的Schema,也就是说,用户的登陆验证和对应的菜单,是在这个公共的Schema里面实现的,每个客户的业务数据,则分别对应到不同的Schema里面,逻辑上做到了物理分离。缺省的,这些客户共享这些菜单,每个菜单对应一个Action,每个Action对应一个View, 这一点,是采用了Struts的思想。

 

对于客户的不同需求,如果有客户的界面跟其余客户的界面不同,则新增一个菜单(登陆的时候,会覆盖掉原来的同一个menu_id的菜单),这个菜单当然有一个字段Compamy_ID,表明这个菜单是这个客户所独有的,在登陆的时候,把这个菜单加载到界面上,而这个菜单对应了一个新的Action,这个新的Action对应了一个新的View
层,这样就实现了不同客户,可以有自己完全不同的界面的需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值