云计算导论
上QQ阅读APP看书,第一时间看更新

2.2.3 软件即服务

SaaS是一种以互联网为载体,以浏览器为交互方式,把服务器端的程序软件传给远程用户来提供软件服务的应用模式。在服务器端,SaaS提供商为用户搭建信息化需要的所有网络基础设施及软硬件运作平台,负责所有前期的实施、后期的维护等一系列工作;客户根据自己的需要,向SaaS提供商租赁软件服务,无须购买软硬件、建设机房、招聘IT人员。

SaaS一般可分为两大类:一种是面向个人消费者的服务,这类服务通常是把软件服务免费提供给用户,只是通过广告来赚取收入;另一种是面向企业的服务,这种服务通常采用用户预定的销售方式,为各种具有一定规模的企业和组织提供可定制的大型商务解决方案。

1.SaaS的一般技术框架

一般情况下,SaaS从上到下依次包含用户界面层、控制层、业务逻辑层和数据访问层,如表2-1所示。

表2-1 SaaS的主要层次

用户界面层封装系统界面和用户接口,用于对业务逻辑层的显示,该层传统的方式主要使用Web技术,以提高界面的交互性和丰富性。控制层封装系统在整个SaaS系统中起到沟通用户界面层和业务逻辑层的作用,负责用户在视图上的输入,并转发给业务逻辑层进行处理。业务逻辑层用于处理用户请求的数据,是整个SaaS的核心部分。业务逻辑层和控制层通常采用Struts和元数据开发模式来实现。Strust技术用来搭建基本程序框架,实现业务逻辑层和控制层的分离。元数据用来描述程序框架中的各应用程序模块,这样客户就可以通过创建及配置新的元数据来定制具有个性化的应用程序,从而达到软件的可配置性。数据访问层将业务逻辑层和控制层对数据管理方面的内容独立出来,负责对数据库的操作,包括数据结构的管理、数据存取和物理数据结构和逻辑数据结构间的转换。数据访问层对物理数据源的访问进行了有效的封装,以上3层都不需要关心数据源的构造及其存取方式,只需对数据访问层的逻辑数据进行操作即可。SaaS系统各层不是相互独立的,而是整合于多租户软件框架之上。

2.SaaS的关键技术

SaaS系统的关键技术主要包括Web技术和多租户技术。

(1)Web呈现技术

SaaS,是因为SaaS随时随地都可以使用,但是人们仍然希望保持原有的用户体验,即“像使用本地应用程序那样使用SaaS应用”。因此,呈现技术就决定了应用是否能够实现像本地应用那样的用户体验。

满足SaaS交付需求的Web技术至少应该包括以下几个要素:动态的交互性、可以接收非文字输入的丰富的交互手段、较高的呈现性能、Web界面的定制化、离线使用、使用教程的直观展示等。

基于浏览器的Web呈现有重要改变的技术包括HTML5、CSS3及Ajax。HTML5是对传统HTML的改进,其新增加的新特性能较好地满足SaaS应用的需要。CSS3是对CSS2.1的升级,使页面显示呈现出更炫的效果,Ajax的应用改变了用户提交请求后全页面刷新的长时间等待问题,可以使用户感受到更好的交互性。

(2)多租户技术

采用多租户方式开发的应用软件,一个实例可以同时处理多个用户的请求,即所有的应用共享一个高性能的Server,成千上万的客户通过这个Server访问应用,共享一套代码,同时可以通过配置的方式改变特性。

多租户架构具有以下特点:软件部署在软件托管方,软件的安装、维护、升级对于用户是透明的,这些工作由软件供应商来完成;该架构采用先进的数据存储技术,保证了各租户之间的数据相互隔离,使得各租户之间在保证自身数据安全的情况下能共享同一程序软件,因此,租户之间是相互透明的。

数据存储问题是多租户架构的关键问题,在SaaS设计中多租户架构在数据存储上主要有独立数据库、共享数据库单独模式和共享数据库共享模式3种解决方案。

①独立数据库:每个客户的数据单独存放在一个独立数据库,从而实现数据隔离。在应用这种数据模型的SaaS系统中,客户共享大部分系统资源和应用代码,但物理上有单独存放的一整套数据。系统根据元数据来记录数据库与客户的对应关系,并部署一定的数据库访问策略来确保数据安全。这种方法简单便捷,数据隔离级别高,安全性好,又能很好地满足用户的个性化需求,但是成本和维护费高。因此适合安全性要求高的用户。

②共享数据库单独模式:客户使用同一数据库,但是各自拥有一套不同的存在于其单独的模式之内的数据表组合。当客户第一次使用SaaS系统时,系统在创建用户环境时会创建一整套默认的表结构,并将其关联到客户的独立模式。这种方式在数据共享和隔离之间获得了一定的平衡,它既借由数据库共享使得一台服务器即可支持更多的用户,又在物理上实现了一定程度的数据隔离以确保数据安全,不足之处是当出现故障时,数据恢复比较困难。

③共享数据库共享模式:用一个数据库和一套数据表来存放所有客户的数据。在这种模式下一个数据表内可以包含多个客户的记录,由一个客户ID字段来确认哪条记录是属于哪个客户的。这种方案共享程度最高,支持的客户数量最多,维护和购置成本也最低,但隔离级别低。

以上3种方案可以通过物理隔离、虚拟化和应用支持的多租户架构来实现。物理分割法为每个用户配置其独占的物理资源,安全性和扩展性都很好,但是硬件成本高。虚拟化方法通过虚拟技术实现物理资源的共享和用户的隔离。

(3)元数据

元数据就是命令指示,描述了应用程序如何运行的各个方面。元数据以非特定语言的方式描述在代码中定义的每一类型和成员。它可能存储以下信息:程序集的说明、标识、导出的类型、依赖的其他的程序集、运行所需的安全权限、类型的说明、名称、基类和实现的接口、成员、属性、修饰的类型和成员的其他说明性元素等。元数据被广泛应用在SaaS模式中,应用程序的基本功能以元数据的形式存储在数据库中,当用户在SaaS平台上选择自己的配置时,SaaS系统就会根据用户的设置,把相应的元数据组合并呈现在用户的界面上。

元数据是一种对信息资源进行有效组织、管理、利用的基础和工具。使用元数据开发模式,可以提高应用开发人员的生产效率、提高程序的可靠性,具有良好的功能可扩展性。

3.代表性产品

SaaS产品起步较早,而且开发成本低,所以在现在的市场上,SaaS产品不论是在数量还是在种类上都非常丰富。同时,也出现了多款经典产品,其中最具代表性的莫过于Google Apps、Salesforce CRM、Office Web Apps和Zoho。

①Google Apps。中文名为“Google企业应用套件”,它提供企业版Gmail、Google日历、Google文档和Google协作平台等多个在线办公工具,而且大部分应用程序组件都有单独的文档站点,包括产品特定的文档和常见问题解答。该套件价格低廉,使用方便,并且已经有大量企业购买了Google Apps服务。

②Salesforce CRM。它是一款在线客户管理工具,并在销售、市场营销、服务和合作伙伴这4个商业领域上提供完善的IT支持,还提供强大的定制和扩展机制,使用户的业务更好地运行在Salesforce平台上。这款产品常被业界视为SaaS产品的“开山之作”。

③Office Web Apps。它是微软所开发的在线版Office,提供基于Office 2010技术的简易版Word、Excel、PowerPoint及OneNote等功能。它属于Windows Live的一部分,并与微软的SkyDrive云存储服务有深度的整合,而且兼容Firefox、Safari和Chrome等非IE系列浏览器。Office Web Apps以两种不同方式提供给消费者和企业用户,作为在线版Office 2010,它主要为用户提供随时随地的办公服务,而且无须用户在本地安装微软Office客户端。对于普通消费者,Office Web Apps完全免费提供,用户只需使用有效的Windows Live ID即可在浏览器内使用Office Web Apps。和其他在线Office相比,由于其本身属于Office 2010的一部分,所以在与Office文档的兼容性方面远胜其他在线Office服务。

④Zoho。Zoho是AdventNet公司开发的一款在线办公套件。在功能方面,它绝对是现在业界最全面的,有邮件、CRM、项目管理、Wiki、在线会议、论坛和人力资源管理等几十个在线工具供用户选择。同时,包括美国通用电气在内的多家大中型企业也已经开始在其内部引入Zoho的在线服务。

4.优势

虽然和传统桌面软件相比,现有的SaaS服务在功能方面还稍逊一筹,但是在其他方面还是具有一定优势的。

①操作简单。在任何时候或者任何地点,只要接上网络,用户就能访问SaaS服务,而且无须安装、升级和维护。

②成本低。使用SaaS服务时,不仅无须在使用前购买昂贵的许可证,而且几乎所有的SaaS供应商都允许免费试用。

③安全保障。SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的境地,而且也要通过一定的安全机制来确保与用户之间通信的安全。

支持公开协议。现有的SaaS服务在公开协议的支持方面都做得很好,用户只需一个浏览器就能使用和访问SaaS应用。这对用户而言非常方便。