从系统架构的角度来看,要设计一个符合实际业务需求的能够支持多用户同时访问的SaaS系统就必须关注以下三大要素:可扩展(Scalable)、高效的多用户支持(Multi-Tenant-Efficient)、可配置(Configurable)。
可扩展意味着最大程度的提高系统并发性,更有效的使用系统资源。比如说应用,优化资源锁的持久性,使用无状态的进程,使用资源池来共享线和数据库连接等关键资源,缓存参考数据,为大型数据库分区等技术。
高效的多客户支持则是设计基于SaaS模式的系统中最为重要的一环。比如说当一个用户试图通过某个基于SaaS模式的客户关系管理应用(CustomerRelationshipManagement)来访问本公司的客户数据时,它所连接的这一基于SaaS模式的客户关系管理应用可能正同时被来自不同企业的成百上千个终端用户所使用,此时所有用户完全不知道其他并发用户访问的存在。这种在SaaS应用中极为常见的场景就要求基于SaaS模式的系统可以支持在多用户间最大程度共享资源的同时严格区分和隔离属于不同客户的数据。
当在传统的本地安装软件的使用环境中谈论可配置性时,直接修改部分代码进行来适应当前用户的需求是比较常见的解决方案。但在基于SaaS模式的使用环境中,如果业务应用的任何部分被修改了,则这一修改将可能同时影响所有当前客户的使用环境。因此,一般而言在SaaS模式的使用环境中,客户使用元数据(Metadata)来为其终端用户配置系统的界面以及相关的交互行为。由此可见,设计SaaS系统的一大挑战就是要确保配置软件应用的过程本身是简单且易于为客户所直接理解并使用的,而且应该无需考虑付出任何额外的开发和维护成本。
上述三大要素固然是构建一个成熟的单实例多用户的SaaS系统的关键因素,但设计一个成熟的系统并不是做一个简单的加法。开发一个仅符合上述一条或二条要素但同时满足所有客户商业需求的SaaS系统一样具有很大的实用价值。不过这种情况应该仅仅在如下前提下成立:即如果要强行使该SaaS系统符合所有上述要素的话就会无法做到成本最优(Cost-Effective)。
二.SaaS系统的成熟度模型一般来说按照目前业界通行标准,基于SaaS模式的系统可以按照其设计成熟度分成以下四种程度,其中每一级与前一级的区别则在于是否引入了前述三大要素中的部分或全部。
2.1第一级定制
第一级成熟度类似于上世纪90年代初的应用服务提供商(ApplicationServiceProvider)所采用的软件交付模式。在符合这一级成熟度的系统中,每个客户拥有一个为其定制的应用实例,这一单独的实例运行在SaaS服务提供商的硬件之上。从系统架构而言,这一级别的SaaS系统和传统的本地安装软件非常相似,同一客户的不同终端用户使用客户端软件连接同一个应用实例,但这一客户实例和服务提供商同时运行的其它客户的应用实例相比是完全独立的。
因此,传统的服务器-客户端的应用可以在花费少量开发资源和无需重新设计整个架构的前提被改造成符合这一级别的SaaS模式的系统。虽然相比起其它更为成熟的SaaS模式的系统,这一类型的系统所能给SaaS服务提供商带来的收益有限,但它确实可以让SaaS服务提供商通过整合服务器硬件和管理来降低成本,因此目前有不少国内的软件厂商就尝试应用这种手段将其已有的传统系统改造为相应的SaaS系统。
信息发布:广州名易软件有限公司 http://www.myidp.net