最早的SaaS服务之一当属在线电子邮箱,极大地降低了个人与企业使用
电子邮件的门槛,进而改变了人与人、企业与企业之间的沟通方式。发展至今,SaaS服务的种类与产品已经非常丰富,面向个人用户的服务包括:在线
文档编辑、表格制作、日程表管理、
联系人管理等等;面向企业用户的服务包括:在线存储管理、网上会议、项目管理、CRM(客户关系管理)、ERP(
企业资源管理)、HRM(
人力资源管理)、在线广告管理以及针对特定行业和领域的应用服务等等。
与传统软件相比,SaaS服务依托于软件和互联网,不论从技术角度还是商务角度都拥有与传统软件不同的特性,表现在:
互联网
一方面,SaaS服务通过互联网
浏览器或WebServices/Web2.0程序连接的形式为用户提供服务,使得SaaS应用具备了典型互联网技术特点;另一方面,由于SaaS极大的缩短了用户与SaaS提供商之间的时空距离,从而使得SaaS服务的营销、交付与传统软件相比有着很大的不同。
多租户
SaaS服务通常
基于一套标准软件系统为成百上千的不同客户(又称租户)提供服务。这要求SaaS服务要能够支持不同租户之间数据和配置的隔离,
从而保证每个租户数据的安全与隐私,以及用户对诸如界面、业务逻辑、
数据结构等的个性化需求。由于SaaS同时支持多个租户,每个租户又有很多用户,这对
支撑软件的基础设施平台的性能、稳定性、扩展性提出很大挑战。
(我的感想:基于核心层,在架构一层依赖于核心层,只需要替换的上一层的页面,改改jsp、html、css、js、替换下logo,修改少量java后端代码即可。)
服务特性
SaaS使得软件
以互联网为载体的服务形式被客户使用,所以服务合约的签定、服务使用的计量、在线服务质量的保证、服务费用的收取等等问题都必须考虑
(我的感想:一般是公司销售,签合同时需要考虑的东西)。而这些问题通常是传统软件没有考虑到的。
SaaS(Software asaService,软件即服务)是通过互联网以服务形式交付和使用软件的
业务模式。
在SaaS模式下,软件使用者无需购置额外硬件设备、软件许可证及安装和维护软件系统,通过互联网浏览器在任何时间、任何地点都可以轻松使用软件并按照使用量定期支付使用费。
模型分级:
根据SaaS应用是否具有可配置性,高性能,可伸缩性的特性,SaaS成熟度模型被分成四级。每一级都比前一级增加三中特性中的一种。
可配置
|
高性能
|
可伸缩
| |
Level1
|
N
|
N
|
N
|
Level2
|
Y
|
N
|
N
|
Level3
|
Y
|
Y
|
N
|
Level4
|
Y
|
Y
|
Y
|
Level5
|
N
|
N
|
N
|
定制开发
这种模型下,软件服务提供商为每个客户定制一套软件,并为其部署。每个客户使用一个独立的数据库实例和应用服务器实例。数据库中的数据结构和应用的代码可能都根据客户需求做过定制化修改。(多次开发,我公司其中一个金融软件产品的模式)--我的感想,我公司就是采用这种模式
可配置
通过不同的配置满足不同客户的需求,而不需要为每个客户进行特定定制,以降低定制开发的成本。(我的感想:基于核心模块,在架构一层,在新架构一层的基础上可以扩展(或者覆盖或者继承)核心层的某些代码,然后,每个产品都在核心层基础上架构一层,每一个产品都不修改核心层)
但是,软件的部署架构没有太大的变化,依然为每个客户独立部署一个运行实例。只是每个运行实例运行的是同一份代码,通过配置的不同来满足不同客户的个性化需求。
可配置性的比较通用的实现方式,就是通过
MetaData(元数据)来实现。(一次开发多次部署)
多租架构
多租户单实例(
Multi-Tenant)的应用架构才是通常真正意义上的SaaS应用架构,它可以有效降低SaaS应用的硬件及运行维护成本,最大化地发挥SaaS应用的规模效应。(一次开发一次部署)
可伸缩架构
将第三级的
Multi-Tenant SingleInstance系统扩展为
Multi-Tenant MultiInstance。最终用户首先通过接入Tenant Load Balance层,再被分配到不同的Instance上。通过多个Instance来分担大量用户的访问,我们可以让应用实现近似无限的水平扩展。
要实现第四级成熟度模型,最复杂的就是针对原有单个Instance的
数据库服务器,实现其数据的水平拆分。
问题
从产业的角度讲,以前的SaaS产业的硬件、软件和市场的整个产业链是一体的,这也导致了SaaS在整个产业链上不堪重负,一个SaaS企业需要做硬件、软件、平台、应用,找市场、找客户、做销售,做的产业链过长,超出一个企业的能力范围,又由于它是自给自足的,所以它的平台利用率极低。