saas模式的进销存实战架构分析(2)

saas模式的进销存实战架构分析(2)

ID:36232493

大小:95.00 KB

页数:4页

时间:2019-05-07

saas模式的进销存实战架构分析(2)_第1页
saas模式的进销存实战架构分析(2)_第2页
saas模式的进销存实战架构分析(2)_第3页
saas模式的进销存实战架构分析(2)_第4页
资源描述:

《saas模式的进销存实战架构分析(2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于SaaS模式的进销存实战架构分析作者:邢波涛关于什么是SaaS(SoftwareAsaService),无论是各大媒体,包括网络媒体,还是《程序员》杂志本身,都已经讲了很多了(《程序员》杂志还分别在2007年第10期和2008年第8期,做了两期关于SaaS的专题),我也就不再重复。基于SaaS模式的应用还是很丰富的,但是对企业管理软件这个领域来讲,无论是美国的Salesforce,还是国内的八百客,都是从CRM做起的。直至现在,基于SaaS模式的进销存,在技术架构上,都还是处于摸索阶段,甚至有人在我的Blog上留

2、言,金蝶的友商网只是象征性的推出了用ASP.net技术编写的第一版,第二版要完全转向JAVA平台,从.NET平台转向JAVA平台,那就相当于把整个软件重新写了一遍。用友虽然推出了伟库网,但是至今尚未看到它的进销存应用,只是“网上订货”和“租户营销”两大功能模块。进销存对广大中小企业来讲,还是非常有市场的,但是各大软件厂商,迟迟未推出基于SaaS模式的稳定成熟的进销存软件,这说明什么呢?这说明它的确不好做,在技术架构上,的确有很难解决的问题。我做了很多年的MIS/ERP/进销存管理软件,关注SaaS模式也好几年了,所以

3、我就做了一套基于SaaS模式的进销存软件,和大家一起探讨一下基于SaaS模式的进销存软件的技术架构,就当是抛砖引玉,无知者无畏吧。一、SaaS成熟度模型《程序员》在第八期,刊登了阿里软件首席架构师赵进的文章《SaaS成熟度模型浅析》,他借用Frederick和GianpanoloCarraro的文章,把SaaS的成熟度,从低到高分成4个级别:第一,每个租户使用一个独立的数据库实例和应用服务器实例,数据库中的数据结构和应用程序的代码根据租户需求,订制化修改。第二,每个租户依然使用一个独立的数据库实例和应用服务器实例,但

4、是应用程序已经考虑到了可扩展性,针对每个租户的可定制化通过配置的方式实现,它是一套应用程序。第三,单实例,多租户,所有租户共享一个数据库实例和一个应用服务器实例,数据库通过增加Tenant表和TENANT_ID字段来解决识别租户的问题。这时也是一套应用程序。第四,多实例,多租户,这时有多个应用服务器实例,最终租户通过负载均衡被分配到不同的应用服务器实例,并且该租户携带某个业务数据库实例信息,由应用服务器动态链接到相应得业务数据库。此时也是一套应用程序。二、技术架构设计目标由上面分析可以看出,从理论上SaaS已经有了一

5、套完整的成熟度模型,所以基于SaaS模式的应用,还是蛮丰富的。但是由于进销存软件的需求,完全不同于CRM软件和财务软件,相对于财务软件,国家有着明确的法律规范,而进销存系统是个性化非常强的一个系统,要求所有的租户采用同一个用户界面和同一个业务逻辑,是不现实的。对于进销存这块来说,租户有强烈的个性化需求的意愿。所以,本着这个思想,应用层的设计要求能够做到以下两点:(1)所有的租户理论上均可以自定义自己的页面(2)所有的租户理论上均可以自定义自己的业务逻辑这个目标和SaaS模型成熟度的第一类是类似的,但是我们要支持多实例

6、,多租户,并且是一套程序,一个Framwork。也就是说我们既要实现SaaS模型成熟度第一类的目标,又要实现第四类的技术架构。下面我从数据库层到业务逻辑层,再到视图层,详细讲解我是如何做的,其系统架构图如图一所示。(图一)一、数据库层的设计数据库这一层的设计模式,无外乎只有3种方案:(1)每个租户独立一个数据库:在应用服务器中配制不同的数据源,或者使用不同的连接池。这个方案的优点是不同租户的数据物理分离,安全性比较好。它的缺点是数据库连接的利用效率不高。性能问题会很大。它对应SaaS模型成熟度第一类和第一类。(2)所

7、有租户的数据都存放在一个数据库的同一套表中,增加Tenant表和TENANT_ID字段,表明该业务数据是属于哪个租户的。它的优缺点在赵进的那篇文章《SaaS成熟度模型浅析》也已经讲了很清晰了。它对应SaaS模型成熟度第三类。(3)多Schema,单数据源。这个方案基本是方案(1)的变种。同一个数据库下可以有多个Schema。它的优点是除了方案(1)的优点以外,它共享数据源或连接池,效率更高。缺点是和方案(2)比较起来,数据库连接池开销会比较大说实话,我不太确认这个模式是不是对应SaaS模型成熟度第(4)类,如果是的话

8、,那么数据库之间的负载均衡是没有意义的,因为每个数据库之间的数据根本不一样(不包括备份数据库)。如果不是的话,那么SaaS模型成熟度第(4)类数据库是如何划分的呢?赵进也没有讲清楚,或者是我自己没有看明白。具体到我的设计,这里我选择方案(3),并结合了方案(2),对于登陆/验证/权限,所有的租户共享一个Schema,而对于业务数据,则每个租户的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。