软件即服务

SARS 软件即服务（Software as a Service，缩写：SaaS，发音：/sæs/或/sɑs/），亦可称为“按需即用软件”（即“一经要求，即可使用”），它是一种软件交付模式。在这种交付模式中，软件仅需通过网络，不须经过传统的安装步骤即可使用，软件及其相关的数据集中托管于云端服务。用户通常使用精简客户端，一般即经由网页浏览器来访问、存取软件即服务。SaaS 最大的特色在于软件本身并没有被下载到用户的硬盘，而是存储在提供商的云端或者服务器。相较于传统软件需要花钱购买和下载，软件即服务只需要用户租用软件，在线使用，不但大大减少了用户购买风险, 也无需下载软件本身，无设备要求的限制。

对于许多商业应用来说，软件即服务已经成为一种常见的交付模式。这些商业应用包括会计系统、协同软件、客户关系管理、管理信息系统、企业资源计划、开票系统、人力资源管理、内容管理、以及服务台管理。软件即服务已经被吸纳进所有领先的企业级软件公司的战略中。这些公司的最大的卖点之一就是通过将硬件和软件维护及支持外包给软件即服务的提供者，来降低信息技术（Information Technology，简称IT）成本。

根据一份高德纳集团（Gartner Group，也称顾能集团）的评估，软件即服务的销售在2010年达到了100亿美元，并且曾被预计在2011年要达到121亿美元，比2010年上升20.7%。高德纳集团估计，到2015年，软件即服务的收入将会超过它的2010年的收入的2倍以上，并且达到预计的213亿美元。客户关系管理系统持续成为软件即服务的最大市场。在客户关系管理市场中的软件即服务曾被预测会从2010年的32亿美元上升到2011年的38亿美元。

“软件即服务”（SaaS）的术语被认为是云计算的命名法的一部分，还有IaaS、PaaS、桌面即服务（DaaS）都被认为是云计算的学术名称。

## 历史

<image>

<image>

商业应用的集中式托管可以追溯到20世纪60年代。从那一年代开始，IBM和其他大型电脑提供商提供了常被称为分时系统和公共事业计服务局业务。这种服务包括从他们在世界各地的数据中心向银行以及其他大型组织提供计算能力及数据库存储。

20世纪90年代期间，互联网的扩张使应用服务提供商作为新型集中式计算提供者而兴起。应用服务提供商向商业组织提供托管的服务，并管理专门的商业应用，目的在于通过集中式管理，以及解决方案提供商在特定商业应用上的专业化，来降低花销。

软件即服务实质上扩展了应用服务提供商（ASP）模式的思想。然而，术语“软件即服务”常常被用于更特定的环境：

- 虽然大多数最初的应用服务提供商聚焦于管理和托管第三方独立软件供应商的软件，但到了2012年，软件即服务提供商通常开发和管理他们自己的软件。
- 虽然许多最初的应用服务提供商提供更传统的、需要在用户的个人电脑上安装软件的客户机-服务器应用，当代的软件即服务解决方案绝大多数依赖于万维网，并且仅仅需要一个互联网浏览器即可使用。
- 尽管大多数最初的应用服务提供商所使用的软件架构必须要求为每个商业组织维持一个该应用的独立实例，但到了2012年，软件即服务解决方案通常使用一个多租架构，在这种架构中，应用为多个商业组织和用户提供服务，并相应地将它的数据进行分区。

“SAAS”这个简称据称初次出现在一个名为“战略背景说明会：软件即服务”（Strategic Backgrounder: Software As A Service）的文章中。这篇文章由软件和信息行业协会（Software & Information Industry，简称SIIA）电子商务分部（eBusiness Division）于2001年在内部刊物中发表。

数据库即服务（Database as a Service，简称DbaaS）已经作为软件即服务的一个子衍生出现。

## 定价

与大多通常以直接用费以及一个可选的持续收取的支撑费用的方式作为永久许可证销售的数传统软件不同，软件即服务提供商一般地使用一个签约费用来给应用定价，最常见的是一个月费或年费。因此，软件即服务的初装费用通常比同等的企业软件要便宜。软件即服务供应商通常基于一些用量参数来为他们的应用定价，例如使用该应用的用户数量（座位数）。然而，因为在一个软件即服务环境中，客户数据存在于软件即服务供应商，提供商也可按事务、事件或其他单位的值收费。

在一个多租环境中的相对低廉的用户服务开通（亦即设立一个新的客户），使得一些软件即服务供应商得以用基本功能免费的模式来提供应用。在这种模式下，一个拥有有限功能或范围的服务是免费可用的，增强的功能或更大的范围则是要收费的。其他一些软件即服务应用则对用户完全免费，而收入则产生于变通的来源例如广告。

软件即服务的增长的一个关键驱动力就是软件即服务供应商提供一个与驻场软件具有竞争力的价格。这与传统的关于外包信息技术系统的理念是一致的，它包括将规模经济应用到应用运营上，即一个外部的服务提供商可能有能力提供更好、更便宜、更可信赖的应用。

## 架构

绝大多数软件即服务解决方案都是基于一个多租架构的。依靠这个模式，应用的一个单一的版本，以及一个单一的配置（硬件、网络、操作系统）被用于所有客户（“租户”）。为了支持可扩展性，应用被安装在多台机器上（被称为水平扩展）。在一些情况下，应用的第二个版本被装好，并提供给精心挑选的客户，让他们访问预发布的应用的版本（例如一个试商用版本，即beta版本）用于测试目的。这与传统软件形成对比。对于传统软件来说，软件的多个物理副本被安装在大量的客户现场。这些物理副本的每一个都有可能是不同的版本，并且有不同的配置，并且常常经过定制化。

在一些特定的例外情况下，软件即服务解决方案不使用多租技术，或使用其他技术诸如虚拟化，来替代多租户技术，高费效比地来管理大量的客户多租户技术对于软件即服务来说是否是一个必需的组件，目前仍是一个争论的话题。

## 特征

由于并非所有的软件即服务应用都开放所有的功能特性，下面的这些是许多软件即服务应用的常见的特征：

### 配置和定制化

软件即服务应用支持类似传统意义上所说的应用“定制化”。换句话说，与传统的企业软件类似，一个单独的客户可以更改配置选项的设置（也称“参数”），这些设置影响它的功能以及界面外观。对于配置选项，每个客户可能拥有他自己的设置（或：参数值）。基于一系列的预定义的配置选项，应用可以被定制化到他所被设计到的程度。

例如：要支持客户的这样一种常见需求——更改一个应用的界面外观以使得这个应用看起来拥有该客户的品牌（或者如果需要，联合品牌），许多软件即服务应用让客户提供（通过一个自助服务界面或通过与应用提供商员工协作）一个客户品牌图标，而有时候是一系列的一贯风格的颜色。然而，除非本来就设计了这么一个选项，否则客户不能更改页面布局。

### 加速了的特性交付

软件即服务应用通常比传统软件更快地被更新，许多情况下是每周或每月一次的频度。这是由几个因素来实现的：

- 应用被集中式地托管，因此新的发行版本可以直接被放上去而无需要求客户安装新的软件。
- 应用只有一个单独的配置，使得开发测试更快。
- 应用供应商可以访问所有客户数据，加快了设计和回归测试的速度。
- 解决方案提供商能够查看用户在应用中的行为（通常通过网站分析），可以更容易地识别出值得改进的区域。

敏捷软件开发方法论进一步使得更快的特性交付成为可能。这个在20世纪90年代中期得到了演进的方法提供了一系列软件开发工具和实践来支持频繁的软件发行版本。

### 开放式集成协议

由于软件即服务应用不能访问一个公司的内部系统（数据库或内部服务），他们绝大多数提供在广域网上操作的集成协议和API。API一般使用HTTP、REST、SOAP和JSON等技术。

软件即服务的无处不在，以及其他因特网服务，还有他们的AP）技术的标准化，造就了混搭的发展——它们是一些轻量级的应用，将来自多个服务的数据、展现和功能结合起来，创建一个复合服务。混搭将软件即服务应用与驻场软件进一步差异化，因为后者无法被在一个公司的防火墙之外被轻易地集成。

### 协作（和“社交”）功能

受到社交网络服务以及其他所谓的Web 2.0功能的启发，许多软件即服务应用提供让他们的用户协作并分享信息的特性。例如，许多在软件即服务模式中交付的项目管理应用提供超出传统项目计划功能的协作特性，让用户可以在任务和计划上进行评注，并在组织内外共享文档。其他一些软件即服务应用允许用户投票和提供新的特性想法。

尽管一些协作相关的功能也被集成进了驻场软件，但不同客户的用户之间的隐性或显性的协作只有在集中式托管的软件上才有可能实现。

## 为什么采用SaaS

软件市场和技术前景的几个重要变化，促进了软件即服务解决方案的接纳和增长：

- 应用对基于万维网的用户界面的不断增长的使用，以及联合就践行——例如网上设计的激增，持续地降低了对于传统客户端-服务器应用的需要。因此，传统软件供应商在基于胖客户端的软件上的投资变成了劣势（它必须要持续的支持），打开大门迎接新的软件供应商来提供一个用户体验，被认为更“入时”。
- 万维网协议栈（HTML、JavaScript、CSS、HTTP）的标准化，网站开发作为一个实践不断增长的流行程度，以及像Ruby on Rails这样的Web应用框架的引入和无处不在，逐渐地降低了开发新的软件即服务解决方案的花费，并使得新的解决方案提供商提供有竞争力的解决方案成为可能，挑战着传统的供应商。
- 因特网宽带接入（broadband Internet access）上的持续突破，使得远程集中式托管的应用提供能与驻场软件可相提并论的速度成为可能。
- HTTPS作为万维网协议栈（web stack）的一部分，它的标准化提供了普遍适用的轻量级安全保障的，对于日常应用来说足够了。
- 轻量级集成协议，例如REST和SOAP的引入和广泛接受，使得软件即服务应用（存在于云中）和内部应用在广域网上与其他软件即服务应用之间的经济适用的集成成为可能。

## 采用SaaS的挑战

一些限制延缓了软件即服务被接受的速度，并阻止它被用于某些情况：

- 由于数据是被存储在供应商的服务器上，数据安全成为了一个问题。
- 软件即服务应用被托管在云端，与应用用户相距甚远。这样就在环境中引入了时延；因此，举例来说，软件即服务模式不适合要求响应时间在毫秒级的应用。
- 多租，这个驱动了软件即服务解决方案提供商的高费效比的架构，不允许用于大客户的真正的对应用的定制化，阻止了这种应用被用于对于这样一种定制化存在需求的场景（通常适用于大型企业）。
- 一些商业应用要求去访问或与客户的当前数据集成。当这样的数据量很大或者敏感时（例如用户的个人信息），将他们与远程托管软件集成起来就会很花代价并且很有风险。
- 政策法规上的搜索/占有保障法律并不保护所有形式的软件即服务动态存储的数据。最终导致结果是，安全链条上又被加上了一环：在这里，对数据的访问，以及进一步的对该数据的不当使用，仅仅由假定是诚信的第三方或能够访问该数据的政府部门以他们自己的承诺书来限制。
- 更换软件即服务供应商可能引入缓慢而困难的在因特网上传输非常大的数据文件的任务。
- 采用了软件即服务的组织可能会发现他们被强迫采用新的版本，这可能导致未预料的培训花费或用户会出错的可能性的增加。
- 依赖于一个因特网连接意味着数据会以因特网的速度传输向或接受自软件即服务公司，而不是一个公司内部网络的可能的更快的速度。

标准模型也存在限制：

- 与硬件、其他软件以及操作系统的兼容性。
- 许可证和遵从性问题（承载该组织的软件程序的未授权的副本）。
- 维护、支持和补丁修正进程。

## 数据第三方担保

软件即服务数据第三方担保（SaaS data escrow）是将关键的软件即服务应用数据保存在一个独立的第三方的过程。与将软件源代码保存在一个独立的第三方的源代码第三方担保类似，软件即服务数据第三方担保是应用在一个软件即服务应用中的数据的相同的逻辑。它允许各个公司保护（protect）并担保（insure）留存在软件即服务应用中的所有数据，防止数据丢失。

对于考虑软件即服务数据第三方担保来说有着各种各样的原因，包括对关于供应商破产的担心，未计划的服务断供以及可能的数据丢失或篡改。许多商业组织还热衷于确保这些数据符合他们自己的数据支配（data governance）标准，或想拥有针对他们的软件即服务数据的改进了的报表和商业分析。一项由清步软件公司（Clearpace Software Ltd.）发起的对软件即服务的增长的研究显示，85%的参与者想要获得他们的软件即服务数据的一个副本。1/3的这些参与者想要每天获取一份副本。

## 外部链接

- NCLab - 用于科学、技术、工程和数学（Science, Technology, Engineering and Mathematics，简称STEM）软件即服务云计算平台，为数以千计的研究人员、讲师和学生所使用。
- 中华电信-云市集hicloud mall