浅谈SaaS系统中的数据模型设计
在如今的中小企业管理软件市场中,特别是在中国,应用企业管理软件来优化运营及提升企业生产效率的需求一直在持续上升,而其中基于软件即服务理念的 SaaS模式也为很多企业所青睐,但由于目前市场上这一模式的解决方案所能覆盖的范围有限,而且有些开发实施运营中的关键问题迟迟得不到很好的解决,导致这一市场还没有能被真正被开发起来。
本文尝试通过对国内外对于基于SaaS模式的数据模型的几种常见思路及其适用场景的研究,对这方面的若干关键问题进行初步的探讨和分析。
一. SaaS系统常见数据模型
在设计SaaS系统的数据模型时出于服务客户及减低开发成本等考虑,在数据的共享和隔离之间求得一定的平衡是必须考虑的一个重要因素。
因此一般在设计对应数据模型时不仅要考虑到技术因素,例如怎样构建一个弹性架构以支持数目不定的客户、怎样消除大容量并发访问数据库对系统性能造成的压力以及怎样允许用户按需扩展自定义数据等;同时也必须将商业因素纳入考虑范围之中,例如架构在该SaaS系统上的业务应用主要面向哪些行业的客户、目标客户对于数据存储方式是否有基于一定法律法规的要求等等。一般而言,SaaS系统的数据模型有如下三种形式:
1.1独立数据库
将每个客户的数据单独存放在一个独立数据库是实现数据隔离的一种最为简便的解决方案。
在应用这种数据模型的SaaS系统中,大部分系统资源和应用代码还是由所有的客户所共享使用,但物理上每个客户有自己的一整套数据,而且单独存放。系统将借由元数据(Metadata)来记录哪一个数据库属于哪一个特定客户,与此同时也可以部署一定的数据库访问策略来确保即使系统处于异常状况下,客户数据也不会被其它客户意外访问到。
显而易见的是,一旦每个客户拥有其独立数据库,那他将可以轻易的对其做个性化的修改来符合其实际业务需求,而且如果系统出现异常情况需要将历史备份数据重新恢复的话,也将是一项轻而易举的工作。但是,这种数据模型的最大问题是对应的部署和维护成本非常高,硬件资源的消耗将明显高于其它两种方案,一台服务器将只能支持有限数量的客户。作为一种对应的解决技巧,系统可以定期使用例如SQL Server 2003中提供的Auto-close功能将暂时没有活动连接使用的数据库实例从服务器的内存中移除,因此每台服务器可以更灵活的支持相对较多的客户访问,但这也只能在一定程度上缓解服务器的压力。
当客户由于所处行业因素或其它商业因素的限制,愿意支付额外的费用来做到数据隔离,确保数据安全,这种独立数据库的数据模型将是最为适合的解决方案。举例来说,处于银行业或医疗行业的客户们经常会有非常强的隔离数据的需求,这些客户甚至可能根本不会考虑去使用任何不提供客户独立数据库支持的SaaS系统。
- 1最容易被忽视的威胁信息安全的十件傻事
- 2服务商瞄准中小企业IT需求
- 3中小企业软件项目管理诊断
- 4企业用户或软件系统集成商谁最需要SOA
- 5信息技术创新是柯达自救最后一根稻草?
- 6泛普软件OA办公助理协同办公的优势
- 7供应链中夹缝求生 三个企业三台戏
- 8CIO如何进行IT合作 为企业带来IT治理
- 9计世独家:谨防安全策略五大基本错误
- 10SAP一句话入门:Project System
- 11把握价值 SOA在中国的技术实践之路
- 12KM:借力知识管理 提升员工满意度
- 13SCA对于SOA的意义
- 14南京OA协同办公管理系统?
- 15企业电子商务如何推广并发展壮大
- 16供应链管理是企业的负担还是金矿
- 17客户基础不好 南京OA如何实施
- 18计世独家:首钢如何用e-HR管理14万人
- 19中小企业如何选好商用电脑
- 20浅谈南京OA基础数据整理方法
- 21虚拟企业与供应链管理的联系与区别
- 22如何助企业走上ITIL运维管理之路
- 23看数据中心如何部署SCM自动化软件
- 24浅谈SaaS模式的软件平台的成熟度
- 25是谁抛弃了供应链软件
- 26关注未被充分挖掘的财富 用好BI双刃剑
- 27从市场趋势看SaaS模式软件平台的成熟度
- 28OA办公软件系统基本版功能模块
- 29中小企业物流外包省钱十招
- 30讨论:变化中的ITIL有什么用?