前言 在如今的
中小企业管理
软件市场中,特别是在
中国,
应用
企业管理软件来优化运营及提升企业生产效率的需求一直在持续上升,而其中基于软件即
服务理念的
SaaS
模式也为很多企业所青睐。
SaaS是英语中“软件既服务”的首字母缩写,Software as a service (SaaS)。是一种软件应用的交付模式,通常指软件商开发基于 网络的软件应用且安装运营(或独立或借助第三方)并通过 Internet让 客户使用。客户并不为软件本身而只为使用软件付费,客户可以通过特定的接口或网络服务(Web Services)来使用这些应用。
因为SaaS这种软件交付模式可以允许中小企业在不增加 IT投入的基础下,快速实现 信息化,同时也能够大幅度降低信息化给企业带来的风险。所以目前基于SaaS模式的 企业管理软件已经在国际市场上占据了一定的市场份额,受到了很多中小企业的追捧。特别在数量众多且IT基础薄弱的国内中小企业市场,这种模式被包括 SAP在内的众多国内外软件业 巨头所看好,纷纷投入大量资源进行相应的研究开发。
本文尝试通过对国内外基于SaaS模式的软件 平台设计中若干关键要素及常见架构的研究,结合目前市场趋势,对SaaS软件平台进行初步的探讨和分析。
一. SaaS系统三大要素
从系统架构的角度来看,要设计一个符合实际业务需求的能够支持多用户同时访问的SaaS系统就必须关注以下三大要素:可扩展(Scalable)、高效的多用户支持(Multi-Tenant-Efficient)、可配置(Configurable)。
可扩展意味着最大程度的提高系统并发性,更有效的使用系统资源。比如说应用,优化资源锁的持久性,使用无状态的 进程,使用资源池来共享线和 数据库连接等关键资源,缓存参考数据,为大型数据库分区等技术。
高效的多客户支持则是设计基于SaaS模式的系统中最为重要的一环。比如说当一个用户试图通过某个基于SaaS模式的 客户关系管理应用(Customer RelationshipManagement)来访问本公司的客户数据时,它所连接的这一基于SaaS模式的客户关系管理应用可能正同时被来自不同企业的成百上千个终端用户所使用,此时所有用户完全不知道其他并发用户访问的存在。这种在SaaS应用中极为常见的场景就要求基于SaaS模式的系统可以支持在多用户间最大程度共享资源的同时严格区分和隔离属于不同客户的数据。
当在传统的本地安装软件的使用环境中谈论可配置性时,直接修改部分代码进行二次开发来适应当前用户的需求是比较常见的解决方案。但在基于SaaS模式的使用环境中,如果业务应用的任何部分被修改了,则这一修改将可能同时影响所有当前客户的使用环境。因此,一般而言在SaaS模式的使用环境中,客户使用元数据(Metadata)来为其终端用户配置系统的界面以及相关的交互行为。由此可见,设计SaaS系统的一大挑战就是要确保配置软件应用的过程本身是简单且易于为客户所直接理解并使用的,而且应该无需考虑付出任何额外的开发和维护成本。
上述三大要素固然是构建一个成熟的单实例多用户的SaaS系统的关键因素,但设计一个成熟的系统并不是做一个简单的加法。开发一个仅符合上述一条或二条要素但同时满足所有客户商业需求的SaaS系统一样具有很大的实用价值。不过这种情况应该仅仅在如下前提下成立:即如果要强行使该SaaS系统符合所有上述要素的话就会无法做到成本最优(Cost-Effective)。
二. SaaS系统的成熟度模型
一般来说按照目前业界通行标准,基于SaaS模式的系统可以按照其设计成熟度分成以下四种程度,其中每一级与前一级的区别则在于是否引入了前述三大要素中的部分或全部。
SaaS是英语中“软件既服务”的首字母缩写,Software as a service (SaaS)。是一种软件应用的交付模式,通常指软件商开发基于 网络的软件应用且安装运营(或独立或借助第三方)并通过 Internet让 客户使用。客户并不为软件本身而只为使用软件付费,客户可以通过特定的接口或网络服务(Web Services)来使用这些应用。
因为SaaS这种软件交付模式可以允许中小企业在不增加 IT投入的基础下,快速实现 信息化,同时也能够大幅度降低信息化给企业带来的风险。所以目前基于SaaS模式的 企业管理软件已经在国际市场上占据了一定的市场份额,受到了很多中小企业的追捧。特别在数量众多且IT基础薄弱的国内中小企业市场,这种模式被包括 SAP在内的众多国内外软件业 巨头所看好,纷纷投入大量资源进行相应的研究开发。
本文尝试通过对国内外基于SaaS模式的软件 平台设计中若干关键要素及常见架构的研究,结合目前市场趋势,对SaaS软件平台进行初步的探讨和分析。
一. SaaS系统三大要素
从系统架构的角度来看,要设计一个符合实际业务需求的能够支持多用户同时访问的SaaS系统就必须关注以下三大要素:可扩展(Scalable)、高效的多用户支持(Multi-Tenant-Efficient)、可配置(Configurable)。
可扩展意味着最大程度的提高系统并发性,更有效的使用系统资源。比如说应用,优化资源锁的持久性,使用无状态的 进程,使用资源池来共享线和 数据库连接等关键资源,缓存参考数据,为大型数据库分区等技术。
高效的多客户支持则是设计基于SaaS模式的系统中最为重要的一环。比如说当一个用户试图通过某个基于SaaS模式的 客户关系管理应用(Customer RelationshipManagement)来访问本公司的客户数据时,它所连接的这一基于SaaS模式的客户关系管理应用可能正同时被来自不同企业的成百上千个终端用户所使用,此时所有用户完全不知道其他并发用户访问的存在。这种在SaaS应用中极为常见的场景就要求基于SaaS模式的系统可以支持在多用户间最大程度共享资源的同时严格区分和隔离属于不同客户的数据。
当在传统的本地安装软件的使用环境中谈论可配置性时,直接修改部分代码进行二次开发来适应当前用户的需求是比较常见的解决方案。但在基于SaaS模式的使用环境中,如果业务应用的任何部分被修改了,则这一修改将可能同时影响所有当前客户的使用环境。因此,一般而言在SaaS模式的使用环境中,客户使用元数据(Metadata)来为其终端用户配置系统的界面以及相关的交互行为。由此可见,设计SaaS系统的一大挑战就是要确保配置软件应用的过程本身是简单且易于为客户所直接理解并使用的,而且应该无需考虑付出任何额外的开发和维护成本。
上述三大要素固然是构建一个成熟的单实例多用户的SaaS系统的关键因素,但设计一个成熟的系统并不是做一个简单的加法。开发一个仅符合上述一条或二条要素但同时满足所有客户商业需求的SaaS系统一样具有很大的实用价值。不过这种情况应该仅仅在如下前提下成立:即如果要强行使该SaaS系统符合所有上述要素的话就会无法做到成本最优(Cost-Effective)。
二. SaaS系统的成熟度模型
一般来说按照目前业界通行标准,基于SaaS模式的系统可以按照其设计成熟度分成以下四种程度,其中每一级与前一级的区别则在于是否引入了前述三大要素中的部分或全部。
![](http://cio.ctocio.com.cn/imagelist/2008/101/65g383tn4la3.jpg)
2.1 第一级 定制 第一级成熟度类似于上世纪90年代初的应用服务提供商(
Application Service Provider)所采用的软件交付模式。在符合这一级成熟度的系统中,每个客户拥有一个为其定制的应用实例,这一单独的实例运行在SaaS服务提供商的硬件之上。从系统架构而言,这一级别的SaaS系统和传统的本地安装软件非常相似,同一客户的不同终端用户使用客户端软件连接同一个应用实例,但这一客户实例和服务提供商同时运行的其它客户的应用实例相比是完全独立的。
因此,传统的服务器-客户端的应用可以在花费少量开发资源和无需重新设计整个架构的前提被改造成符合这一级别的SaaS模式的系统。虽然相比起其它更为成熟的SaaS模式的系统,这一类型的系统所能给SaaS服务提供商带来的收益有限,但它确实可以让SaaS服务提供商通过整合服务器硬件和管理来降低成本,因此目前有不少国内的软件厂商就尝试应用这种手段将其已有的传统系统改造为相应的SaaS系统。
2.2 第二级 可配置
在符合第二级成熟度的系统中,每个客户还是各自拥有一个单独的应用实例,但不同之处在于第一级中的用户实例是根据每个客户的需求单独定制的,而在这里,每个客户使用相同的代码。SaaS服务提供商通过详细的具体配置选项来允许客户改变自身应用的外观和系统行为。尽管如此,不同的应用实例之间还是保持完全独立运行。
将所有客户的应用实例集中于同一代码库之下极大的减少了对于SaaS服务提供商的服务需求,因为此时对系统代码任何微小的改变都会立刻影响所有的当前客户,这下也就可以节省为每个客户的应用实例单独升级或修改的成本。但是相比起第一级的成熟度模型,如果试图将一个传统的服务器-客户端的应用改造成符合第二级成熟度的SaaS系统,将需要花费更多的重新架构和开发的成本。
最后,同第一级模型有一处类似的是,符合第二级成熟度模型的系统一样需要SaaS服务提供商准备足够的硬件和存储空间来支持潜在的大量的同时运行的应用实例。
2.3第三级 可配置,高效的多用户支持
在第三级的成熟度模型中,服务提供商通过运行一个应用实例来为所有的客户服务,同时通过可配置的元数据来给每一个客户提供不同的用户体验和功能。可配置的权限控制和安全策略则确保了每一个客户的数据被单独存放且与其它客户的数据相隔离。因此,从最终用户的角度出发,他们将感受不到所使用的应用实例也在同一时间为其他客户所共享。
这种方式解决了这样一个问题,那就是随着SaaS服务供应商业务的发展和客户的增多,只能通过提供更多的服务器资源来运行更多应用实例,现在SaaS服务供应商可以用同样数量的服务器资源为更多的客户服务,从而比起前两级成熟度模型的系统,更有效的利用了硬件资源,降低了运营成本。
但这一架构的不利之处在于无法灵活的提升系统性能,除非使用数据分区技术来提高数据库的性能,一般来说SaaS 服务供应商将只能通过把系统转移到更为强大的服务器上来提升性能。
2.4第四级 可配置,高效的多用户支持 可扩展
在这一级也就是最后一级的成熟度模型中,SaaS服务供应商将通过运行一个负载均衡的具备权限验证功能的平台来为众多的客户同时服务,每个客户的业务数据将被单独存放,同时提供使用可配置的元数据来为每一个客户提供其自身需要的独一无二的用户体验。符合这样一个成熟度的SaaS系统将可以轻易支持一个相当大的客户数目,这是因为在其后台运行的服务和业务实例可以在不修改系统架构的基础上随着需求动态的增加和减少,任何的系统变动和修复可以轻而易举的同时作用于数以千计的客户环境中,就如同只为单一客户服务时同样简便。
三. 选择适合的成熟度等级
综上所述,符合最高的第四级的成熟度模型的SaaS系统似乎永远是SaaS系统设计的终极目标,但实践证明这并非永远正确。一般来说,将SaaS系统的成熟度看成一个两头具同等重要性的杠杆也许更为恰当,杠杆的一头是独立(Isolated)的数据和代码,而另一头则是共享(Shared)的数据和代码。
因此,传统的服务器-客户端的应用可以在花费少量开发资源和无需重新设计整个架构的前提被改造成符合这一级别的SaaS模式的系统。虽然相比起其它更为成熟的SaaS模式的系统,这一类型的系统所能给SaaS服务提供商带来的收益有限,但它确实可以让SaaS服务提供商通过整合服务器硬件和管理来降低成本,因此目前有不少国内的软件厂商就尝试应用这种手段将其已有的传统系统改造为相应的SaaS系统。
2.2 第二级 可配置
在符合第二级成熟度的系统中,每个客户还是各自拥有一个单独的应用实例,但不同之处在于第一级中的用户实例是根据每个客户的需求单独定制的,而在这里,每个客户使用相同的代码。SaaS服务提供商通过详细的具体配置选项来允许客户改变自身应用的外观和系统行为。尽管如此,不同的应用实例之间还是保持完全独立运行。
将所有客户的应用实例集中于同一代码库之下极大的减少了对于SaaS服务提供商的服务需求,因为此时对系统代码任何微小的改变都会立刻影响所有的当前客户,这下也就可以节省为每个客户的应用实例单独升级或修改的成本。但是相比起第一级的成熟度模型,如果试图将一个传统的服务器-客户端的应用改造成符合第二级成熟度的SaaS系统,将需要花费更多的重新架构和开发的成本。
最后,同第一级模型有一处类似的是,符合第二级成熟度模型的系统一样需要SaaS服务提供商准备足够的硬件和存储空间来支持潜在的大量的同时运行的应用实例。
2.3第三级 可配置,高效的多用户支持
在第三级的成熟度模型中,服务提供商通过运行一个应用实例来为所有的客户服务,同时通过可配置的元数据来给每一个客户提供不同的用户体验和功能。可配置的权限控制和安全策略则确保了每一个客户的数据被单独存放且与其它客户的数据相隔离。因此,从最终用户的角度出发,他们将感受不到所使用的应用实例也在同一时间为其他客户所共享。
这种方式解决了这样一个问题,那就是随着SaaS服务供应商业务的发展和客户的增多,只能通过提供更多的服务器资源来运行更多应用实例,现在SaaS服务供应商可以用同样数量的服务器资源为更多的客户服务,从而比起前两级成熟度模型的系统,更有效的利用了硬件资源,降低了运营成本。
但这一架构的不利之处在于无法灵活的提升系统性能,除非使用数据分区技术来提高数据库的性能,一般来说SaaS 服务供应商将只能通过把系统转移到更为强大的服务器上来提升性能。
2.4第四级 可配置,高效的多用户支持 可扩展
在这一级也就是最后一级的成熟度模型中,SaaS服务供应商将通过运行一个负载均衡的具备权限验证功能的平台来为众多的客户同时服务,每个客户的业务数据将被单独存放,同时提供使用可配置的元数据来为每一个客户提供其自身需要的独一无二的用户体验。符合这样一个成熟度的SaaS系统将可以轻易支持一个相当大的客户数目,这是因为在其后台运行的服务和业务实例可以在不修改系统架构的基础上随着需求动态的增加和减少,任何的系统变动和修复可以轻而易举的同时作用于数以千计的客户环境中,就如同只为单一客户服务时同样简便。
三. 选择适合的成熟度等级
综上所述,符合最高的第四级的成熟度模型的SaaS系统似乎永远是SaaS系统设计的终极目标,但实践证明这并非永远正确。一般来说,将SaaS系统的成熟度看成一个两头具同等重要性的杠杆也许更为恰当,杠杆的一头是独立(Isolated)的数据和代码,而另一头则是共享(Shared)的数据和代码。
![](http://cio.ctocio.com.cn/imagelist/2008/101/9a529995g680.jpg)
选择何种程度的成熟度模型取决于SaaS服务供应商所支持的商业模式、系统模型和运营需求,以及其它基于客户业务需求的一些考虑,而且以上各种因素之间往往还会有微妙的联系:
商业模式----独立的数据模式是否符合财务考量。为了获得经济和管理上的好处而采取数据共享往往意味着SaaS服务供应商可以因此节约相当一部分的管理成本。但在有些情况下,客户可能会对此有不同的需求,比如说,尽管SaaS服务供应商可以保证客户的机密数据即使与其它客户的数据存放在一个数据库内但绝对不会外泄,客户仍然可能受强有力的法律或文化上的限制,从而抵制或干脆拒绝使用任何基于多个客户使用共享服务来访问同一个应用结构的SaaS 软件服务。当然从商业模式的角度来看更重要的是,一旦计划运营基于这一商业模式的SaaS系统,SaaS服务供应商必须证明该应用如何能在当前采用的成熟度模型基础上保证业务顺利发展且实现盈利。
系统模型----应用是否能在单一逻辑实例下运行,是否能将以前基于桌面或传统的服务器-客户端的应用改造成为基于互联网的SaaS系统,这些需求往往从根本上就与要求单一实例和元数据为主的SaaS模式开发不相适应。因此基于财务考量,投入相当的人力物力来将当前系统转换到一个完全符合 SaaS成熟度模型的系统往往是一个得不偿失的选择。而当你选择一切重新开始,设计和建造一个基于网络的SaaS应用时,往往会感到拥有更多的自由的开发空间。
运营模式----SaaS服务提供商如何保证客户服务条款(SLA:Service Level Agreement)得到执行,如何慎重的评估包含在已经与客户签署的SLA中的诸如系统当机时间、服务选项以及灾难恢复等条款,以及如何在当前这样一个多个独立客户共享访问单一实例的SaaS架构下实现这些服务条款永远SaaS系统运营维护中的一大挑战。
四. 市场趋势浅析
赛迪顾问研究报告表明,2007年,中国管理软件市场规模总量预计会达到85亿元,增长趋势有所放缓,市场更加成熟,管理向精细化发展,客户信息化需求更加理性。中小企业市场在SaaS模式的推动下成为管理软件市场新的增长点,围绕中小企业用户的市场竞争也异常激烈。
易观国际发布的《2007年第4季度中国SaaS市场软件应用季度监测》重点考察了国内的SaaS市场。数据显示,中国的SaaS市场2007 年第4季度整体规模达到23.33亿人民币。其中管理软件SaaS运营规模达到20.4百万元人民币,同比增长显著,达到31%。但是,由于SaaS管理软件运营规模在整个SaaS市场中的规模仅为 1%不到,因此,对整体市场规模的影响尚无法凸显。
从国外市场来看,企业管理软件业的巨头SAP于2007年底推出了其针对中小企业客户的基于SaaS模式的全套管理软件 - SAP Business ByDesign。微软也于同期推出了其SaaS模式的CRM产品“Titan”试水中小企业市场。其它知名的SaaS模式软件厂商例如Salesforce.com、RightNow、Netsuite等等也不断受到国际资本市场的追捧。而在国内,知名厂商神州数码也与日本软银公司合作成立了神码在线,致力于SaaS模式软件产品的推广。国内其它的专业SaaS模式CRM运营商八百客、沃力森发展迅速,其它的CRM产品提供商也在积极准备介入。这些SaaS模式产品在中小企业市场上的表现充分表明软件服务化的趋势将有可能在中小企业市场中进一步发展。
其中从创新的角度来看,业界领先的Salesforce.com公司在已经拥有可每天支持 1.3亿个交易的成熟技术平台和大量客户的基础上,进一步提出了“平台即服务 (Platform as a Service)”的战略口号,尝试通过开放其技术平台接口,吸引更多的第三方的开放商在其平台基础之上开发各类基于SaaS的企业应用。而目前也已经有超过400个独立软件开发商(ISV)与其合作为其客户提供超过38000种定制企业应用。
无论最终成败如何,这种力争成为商业软件中的iTunes模式的创新的平台战略,应该值得同样试图在SaaS模式上大有作为的国内软件开发商们借鉴思考。
商业模式----独立的数据模式是否符合财务考量。为了获得经济和管理上的好处而采取数据共享往往意味着SaaS服务供应商可以因此节约相当一部分的管理成本。但在有些情况下,客户可能会对此有不同的需求,比如说,尽管SaaS服务供应商可以保证客户的机密数据即使与其它客户的数据存放在一个数据库内但绝对不会外泄,客户仍然可能受强有力的法律或文化上的限制,从而抵制或干脆拒绝使用任何基于多个客户使用共享服务来访问同一个应用结构的SaaS 软件服务。当然从商业模式的角度来看更重要的是,一旦计划运营基于这一商业模式的SaaS系统,SaaS服务供应商必须证明该应用如何能在当前采用的成熟度模型基础上保证业务顺利发展且实现盈利。
系统模型----应用是否能在单一逻辑实例下运行,是否能将以前基于桌面或传统的服务器-客户端的应用改造成为基于互联网的SaaS系统,这些需求往往从根本上就与要求单一实例和元数据为主的SaaS模式开发不相适应。因此基于财务考量,投入相当的人力物力来将当前系统转换到一个完全符合 SaaS成熟度模型的系统往往是一个得不偿失的选择。而当你选择一切重新开始,设计和建造一个基于网络的SaaS应用时,往往会感到拥有更多的自由的开发空间。
运营模式----SaaS服务提供商如何保证客户服务条款(SLA:Service Level Agreement)得到执行,如何慎重的评估包含在已经与客户签署的SLA中的诸如系统当机时间、服务选项以及灾难恢复等条款,以及如何在当前这样一个多个独立客户共享访问单一实例的SaaS架构下实现这些服务条款永远SaaS系统运营维护中的一大挑战。
四. 市场趋势浅析
赛迪顾问研究报告表明,2007年,中国管理软件市场规模总量预计会达到85亿元,增长趋势有所放缓,市场更加成熟,管理向精细化发展,客户信息化需求更加理性。中小企业市场在SaaS模式的推动下成为管理软件市场新的增长点,围绕中小企业用户的市场竞争也异常激烈。
易观国际发布的《2007年第4季度中国SaaS市场软件应用季度监测》重点考察了国内的SaaS市场。数据显示,中国的SaaS市场2007 年第4季度整体规模达到23.33亿人民币。其中管理软件SaaS运营规模达到20.4百万元人民币,同比增长显著,达到31%。但是,由于SaaS管理软件运营规模在整个SaaS市场中的规模仅为 1%不到,因此,对整体市场规模的影响尚无法凸显。
从国外市场来看,企业管理软件业的巨头SAP于2007年底推出了其针对中小企业客户的基于SaaS模式的全套管理软件 - SAP Business ByDesign。微软也于同期推出了其SaaS模式的CRM产品“Titan”试水中小企业市场。其它知名的SaaS模式软件厂商例如Salesforce.com、RightNow、Netsuite等等也不断受到国际资本市场的追捧。而在国内,知名厂商神州数码也与日本软银公司合作成立了神码在线,致力于SaaS模式软件产品的推广。国内其它的专业SaaS模式CRM运营商八百客、沃力森发展迅速,其它的CRM产品提供商也在积极准备介入。这些SaaS模式产品在中小企业市场上的表现充分表明软件服务化的趋势将有可能在中小企业市场中进一步发展。
其中从创新的角度来看,业界领先的Salesforce.com公司在已经拥有可每天支持 1.3亿个交易的成熟技术平台和大量客户的基础上,进一步提出了“平台即服务 (Platform as a Service)”的战略口号,尝试通过开放其技术平台接口,吸引更多的第三方的开放商在其平台基础之上开发各类基于SaaS的企业应用。而目前也已经有超过400个独立软件开发商(ISV)与其合作为其客户提供超过38000种定制企业应用。
无论最终成败如何,这种力争成为商业软件中的iTunes模式的创新的平台战略,应该值得同样试图在SaaS模式上大有作为的国内软件开发商们借鉴思考。
<script src="tag.php?action=relatetag&rtid=622" type="text/javascript"></script>