1. 引言
横看成岭侧成峰, 远近高低各不同。 不识庐山真面目, 只缘身在此山中。
________苏轼,《 题西林壁》
“社会化大开发”是人们梦寐以求的事情,信息化的软件将象您自家的水管一样,当您需要时您只要拧开水龙头,自来水就会源源不断地送到您家。将来的软件也会这样,只要您能上网,您随时都可通过访问软件服务公司提供商的某个地址,您所需要的业务就可以在网上完成,这里您完全不需要把软件和数据库下载到本地安装,也不让您自己手工升级和维护。您所要做的一个前提条件是您先必须通过注册的方式去购买这种服务。不仅仅是业务软件,就连操作系统等这样的庞然大物将来也会在您开机时通过网联网临时送到您电脑而不是您事先安装好。
2. 什么是SaaS
2.1 SaaS的定义
SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),ASP,hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。近年来,SaaS的兴起已经给传统套装软件厂商和平台软件厂商带来真实的压力,同时,社会化软件大开发就是以SaaS为基础,它是时代发展的必然产物和先进思想。
在这种模式下,企业不再象传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。企业采用SaaS服务模式在效果上与企业自建信息系统基本没有区别,但节省了大量用于购买IT产品、技术和维护运行的资金,且像打开自来水龙头就能用水一样,方便地利用信息化系统,从而大幅度降低了中小企业信息化的门槛与风险。
同时,服务提供商通过大规模的客户收取一定服务费用,一方面来达到软件的最大利用率,另一方面也降低频繁的客户现场实施和维护费用,更多的精力投入到技术及服务质量上,更好地通过有效的技术措施保证每家企业数据的安全性和保密性。
2.2 SaaS的三层含义
SaaS有三层含义:
1. 表现层
SaaS是一种业务模式,这意味着用户可以通过租用的方式远程使用软件,解决了投资和维护问题。而从用户角度来讲,SaaS是一种软件租用的业务模式。
2. 接口层
SaaS是统一的接口方式,可以方便用户和其他应用在远程通过标准接口调用软件模块,实现业务组合。
3. 应用实现层
SaaS是一种软件能力,软件设计必须强调配置能力和资源共享,使得一套软件能够方便地服务于多个用户。
SaaS模式下的软件运营商,从不同层面提出了从系统设计、接口需求到软件实现的不同要求见图2-1:
图2-1 SaaS模式下各层的含义及实现
对SaaS软件的第一个要求就是将SaaS软件中的管理流与业务流进行分离。运营的本质就是控制,“通信能力运营”就是对用户能否使用通信能力的切换,而通信能力本身在设计之初,就支持这种切换;“IT应用运营”,也同样需要支持这种切换能力,而应用软件本身,往往更关注业务能力的实现,应用软件要转变成为SaaS软件,必须从根本上实现对使用权限的外部控制,也就是要实现管理流与业务流的分离,管理流用于实现对IT应用的切换控制,业务流用于保证IT应用功能的实现。
SaaS软件在接口方面,必须满足用户统一的远程调用要求。随着互联网技术和分布式计算技术的发展,越来越多的用户希望远程连接到数据源和应用,以期实现应用程序跨多个服务器的分布和运行,这也是Web2.0中混合搭建(Mash Up)的目标。SaaS软件需要支持采用分布式的SOA架构,使软件系统具备更强的灵活性、适应性和可维护性。分布式SOA架构通过智能端点让具备某种服务功能的应用自动找寻其他服务,并与其实现相互通信,从而满足基于SOA架构的SaaS软件对各项技术和成本的要求。
SaaS模式面向长尾市场,要求SaaS软件必须具备低成本运行能力和个性化配置能力。一方面,利基市场虽然总和诱人,但如果不能解决多用户间的资源共享,随着用户数量的增加,SaaS软件的运营成本就会线性上升,而无法产生规模效应;另一方面,客户在接受SaaS软件主要业务流程的前提下,还会有一定的个性要求,比如企业标识、页面版式、页面色系等,这也是SaaS软件需要满足的客户需求。此外,计算能力共享、存储能力共享、代码共享、个性化配置能力、大容量支持能力等等,都是编制SaaS软件中需要解决的问题。2.3 SaaS常用词语解释
跨界混搭(Mash-up)
“跨界混搭”这个术语起源于流行音乐,编曲者把两张唱片混编以后重新制作出一首新歌。这个概念应用在SaaS上,就是指把多个不同的在线应用软件服务搭建成为一种新型的整合服务。用户通常只需要登录一次就可以使用集成好的应用软件组合。
需要注意的是,当您把多种SaaS服务混合到一个软件中去后,其中一种会是核心,如果其出现严重问题,将会影响到整个软件的使用。
集成器(Connector)
集成器是一种软件程序,让您从一个应用程序中读取数据,然后下载到SaaS解决方案中(同样可以用于将数据送回到另一个应用程序中)。这种数据传送通常用于实时或批量传送的情况,企业完成初始数据的导入或导出,然后根据需要定期更新这些数据。比如,像国外的SaaS服务商Salesforce或国内的800CRM提供SAP[/url]集成器,就将SAP中的客户数据导入到Salesforce或800CRM系统中。
解决方案扩展(Solution extension)
SaaS 解决方案具有的扩展性让用户能够在已存在的软件结构上,按需再增加额外的工具或功能。像前面提到的Salesforce的App Exchange应用软件开发平台,以及国内的SaaS托管商800CRM的800App应用软件开发平台都是解决方案扩展的典型代表。
还有一些扩展性例如可以扩展数据模型,提供个性化的用户界面以及其他更多自定制的扩展服务。
垂直应用(Vertical applications)
“垂直应用”不是SaaS的专用术语,它也应用于其他领域,通常是指为某一个领域(例如银行,医药等)建立一个专门的平台。虽然它已经在传统行业应用很多年了,但是相对来讲应用在SaaS中还是一个比较新的概念。
随着SaaS的不断成熟,客户希望SaaS服务商能提供详细的垂直应用行业方案。例如,目前Salesforce的APP Exchange平台已经能够实现全方位跨行业的应用,各个行业的公司都能够在Salesforce的平台上进行二次开发。
参数应用(Parametric applications)
在传统软件模式下,如果软件的服务功能需要改变,那么相应的代码也需要重新编写。但是在SaaS模式下,用户可以通过输入新的参数变量,或者制定一些数据关联规则来开启一种新的应用。这种新式服务模式也被称为“参数应用”,“宏或”自定制对象,主要是因为这种应用程序可以让用户自己定制新的应用,不需要懂软件编程。
Salesforce或800CRM升级系统,自定制对象也同时升级,而最本质的应用则是客户可以自己通过改变参数和参数关联来为系统增加新的功能。
模块化(Modular)
SaaS中模块功能主要用于关闭或开启服务。在聚集了丰富功能的强大应用平台中,经理可以像选择菜单那样任意地选择功能,关闭某些不需要用到的功能,也可以根据需求增加新的功能。
SaaS服务商基于网络]架构建立了自己的应用平台,模块的灵活性使得他们可以根据客户的不同需求,将功能复杂繁多的系统配置成适合客户的系统。
在线SaaS
“在线SaaS”从表面意思来看似乎有点累赘,SaaS本身的概念就是提供一种在线服务,因此所有的SaaS应用程序都应该是产生于网络,壮大于网络的。但该术语是相对于SaaS的前身——ASP(应用服务提供商)来说的,这是一种早期的远程软件托管形式。跟如今直接在网上使用的系统相比,ASP时代的用户可能觉得通过专线或专用加密设备访问的系统来得更安心。显然,早期的ASP解决方案设计的一些运行缓慢的程序并没有很好地体现“在线”这个概念, 很多ASP客户需要借用、Citrix等实现远程访问。
所以当人们说 “在线SaaS”时,这个术语其实是在强调使用浏览器直接使用软件,而加密是通过浏览器通用的加密协议。
基础架构平台(Platform)
有时候SaaS的拥护者希望出现一种基础架构的平台来推动SaaS更好地发展。
这是因为首先得有一个平台来支撑SaaS软件应用程序的运行,如今最著名的是国外Salesforce公司的APP Exchange平台,国内800CRM的800APP Native的平台与Salesforce兼容。
服务水平协议(SLA)
SLA(Service Level Agreement),指IT服务提供商和客户之间就服务提供中关键的服务目标及双方的责任等有关细节问题而签订的协议,此协议重在陈述服务的质量、优先级和责权。
对于SLA的必要性,在BS15000-1中的服务提供过程中有明确指出:对服务提供全过程中的服务水平目标和工作量参数,应在组织(服务提供商和雇主公司)间协商同意并形成记录。对每一项服务应定义、协定和记录一个或多个服务水平协议(SLAs)。SLAs、运营级别协议和第三方合同(支持合同)及相应的程序应在相关组织间协商并记录。
SLA不止是一个合同书,更主要的方面是“SLA过程”。所谓“SLA过程”是指通过SLA的管理,来保障在SLA合同书中对客户承诺的QoS(Quality of Services)服务质量。3. SaaS与传统软件的对比
SaaS的兴起将是IT业的一场新革命。SaaS模式将彻底改变传统软件的开发方式和使用方式。传统软件将在这场革新的浪潮中被冲击得支离破碎,大多数传统软件将会消亡或者转型。
3.1 SaaS与传统软件的区别
传统软件是在公司内部架设软件运行环境,自己购买应用服务器、数据库服务器、网卡等硬件,安装自己的局域网并在局域网内部署软件。所以不同公司都各自部署一套自己的系统。不同公司的用户事实是通过不同的途径访问不同的系统,如图2-2所示:
图2-2 传统软件
这种情况明显可看出一个致命的问题。就是软件的部署十分重要,软件的部署不仅要投入大量的硬件设备,并且软件部署的好坏直接影响着软件的正常使用,有些软件开发得再好,可是没有较好的部署结果还是失败。
以ERP软件为例,需要ERP这样的企业应用软件,软件的部署和实施比软件本身的功能、性能更为重要,万一部署失败,那所有的投入几乎全部白费,这样的风险是每个企业用户都希望避免的。通常的ERP、CRM项目的部署周期至少需要一两年甚至更久的时间,而SaaS模式的软件项目部署最多也不会超过90天,而且用户无需在软件许可证和硬件方面进行投资。传统软件在使用方式上受空间和地点的限制,必须在固定的设备上使用,而SaaS模式的软件项目可以在任何可接入Internet的地方与时间使用。相对于传统软件而言SaaS模式在软件的升级、服务、数据安全传输等各个方面都有很大的优势。让我们来看看SaaS模式的软件部署,如图2-3所示:
图2-3 SaaS模式
通过上面的分析我们总结出SaaS模式与传统软件许可模式的区别:
表2-1 SaaS模式与传统软件许可模式的区别
3.2 SaaS对传统软件的影响
软件运营服务(SaaS)的诞生将会对传统软件产业产生巨大的冲击。它主要表现在以下三个方面:
第一,软件运营服务模式将会成为未来软件应用和销售模式的主要模式之一,将越来越多地抢占传统软件模式的市场。计世资讯(CCW Research)预计,从2007年开始,会有大量的运营化(SaaS)软件出现。到2010年,50%以上的传统软件将会同时出现软件运营服务模式。如果传统软件提供商不进行战略转型,将会在未来的市场竞争中处于不利地位。
第二,软件运营服务模式的出现将会促使传统软件的商业模式发生变化。由于软件运营服务模式实行的是按需服务、按需付费的模式,对用户的吸引力要远远高于传统软件的许可证模式。计世资讯(CCW Research)认为,随着软件运营服务按需服务和按需付费模式的普及与推广,传统软件的商业模式尤其是付费模式也会逐渐向此靠拢。
第三,软件运营服务的出现将会加剧传统软件业的整合与并购。由于软件运营商采用“一对多”的服务模式,这必然导致软件运营商的数量会大大减少,这也会给传统软件提供商带来巨大的挑战。计世资讯(CCW Research)预计,2010年,中国传统的软件提供商将有一半会消亡或转型。4. SaaS与ASP的异同
SaaS和ASP的重点都是“软件部署为托管服务,通过因特网存取”。他们相同的地方有:
运营模式:
软件所有权属于供应商,供应商来负责基础设施和软件维护升级工作。
服务方式:
客户按一定的付费周期来租赁供应商的服务,费用可能随着客户使用规模大小不同。供应商定期和客户一起整理需求,以使服务能响应客户变化。
盈利方式:
通过专业化和规模经济来降低供应商软件服务成本,以此达到盈利目的。附加的盈利方式有广告和无线增值等。
只有达到一定的规模,才能使供应商投入的硬件和专业服务成本和营业收入达到平衡。在此之后,随着规模的增大,供应商的销售成本丝毫不受影响,利润才开始增长。
SaaS虽然是建立在ASP的基础上,它们的根源是相同的。ASP曾经倒在大众的一片“喝彩”声中,只是过眼烟云。今天的SaaS又有什么新的变化呢?这是大加都很关心的,SaaS并不是简单的由ASP改变一下,也不是一种慨念的炒作。现在我们来讨论下SaaS和ASP的主要区别:
ASP是“一对一”关系而SaaS是“一对多”关系
ASP提供客户服务是“一对一”关系,即针对不同的客户定制不同的应用。而SaaS提供客户服务是“一对多”关系,即针对所有客户都是相同的应用服务。
ASP模式下每个客户运行供应商为自己定制的特有实例。从技术角度来说,就是每个客户使用一个数据库、一个Web站点或者虚拟目录。数据库中的数据结构和应用的代码可能都根据客户需求做过定制化修改。
SaaS是可自定义的
SaaS对于应用系统来说,更强调应用的可自定义,SaaS的自定义能力使得SaaS应用能适合更广泛的企业用户,增多了很多用户体验,比如说自定义表单,自定义数据结构,自定义报表,自定义用户界面,自定义业务流程。用户可以通过这些可自定义的工具来满足自己的个性要求。
服务范围不同
SaaS应用更拓展了ASP的应用范围,并不仅仅局限于应用系统的托管,而更着眼于提供更多的互联网服务。如Google Apps、Google Map甚至于邮件服务,都可以认为是SaaS应用的一种表现形式,原来含义上的托管已经从窄义的应用向广义的互联网应用转换。总之,SaaS提供了企业更多可供选择的互联网服务,这些服务通过SaaS进行整合,集约地提供给企业用户,和敏捷的应用互相辉映。
技术复杂程度不同
传统的ASP只是针对每个客户定制不同的应用,而没有将所有的客户放在一起进行考虑。在SaaS模式中,在用户和Web服务器上的应用之间增加了一个中间层,这个中间层用来处理用户的定制、扩展性和多用户的效率问题。技术上来说,要比ASP模式复杂得多。
SaaS模式ASP模式都秉承“软件即服务”的理念,但是SaaS要比ASP复杂的多。
而SaaS的软件架构有较大改变,广泛应用Ajax技术,支持界面局部刷新,让用户有更好的体验感受。
扩展性不同
SaaS模式的代码和数据结构都是相同的,供应商在设计应用的时候已经考虑了扩展性,所以针对不同需求的客户,可以采用灵活的配置来响应,但是应用数据仍然是隔离的。从技术角度来说,所有客户都是使用一套安装包,数据库结构和一样。
下面我们从“软件即服务的”三个层面来比较SaaS模式与ASP模式的主要区别如表2-2:
表2-2 SaaS模式与ASP模式在三个层面的区别
5. 小结
本文介绍了什么是SaaS,并且比较了SaaS与ASP的不同之处。通过对SaaS的介绍,让我们对SaaS有了较深入的理解,也能区分ASP与SaaS的不同。为我们进行SaaS的深入研究奠定的基础。