发布日期:2013-04-28 16:05 来源:中国电信网络安全实验室 标签: 核心 架构 安全
 

SaaS核心架构安全(1)

SaaS作为云计算的一种服务类型,是一种基于互联网来提供软件服务的应用模式,它通过浏览器把服务器端的程序软件传给千万用户,供用户在线使用。SaaS提供商为用户搭建信息化所需要的所有网络基础设施及软硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务。而用户则根据自己的实际需要,向SaaS提供商租赁软件服务,无须购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息服务。

SaaS的实现方式主要有两种。一种是通过PaaS平台来开发SaaS,PaaS平台提供了一些开发应用程序的环境和工具,我们可以在线直接使用它们来开发SaaS应用。例如,salesforce.com推出的Force.com平台,它提供了对SaaS构架的完整支持,包括对象、表单和工作流的快速配置,开发人员可以很快地创建并发布SaaS服务。另一种是采用多用户构架和元数据开发模式,使用Web 2.0、Struts、Hibernate等技术来实现SaaS中各层的功能。

1.SaaS关键技术

本节主要介绍多租户架构和元数据开发模式的在线软件技术,包括Web 2.0等。

(1)多租户架构(Multi-tenancy)

多租户架构是一种软件开发架构,采用这种方式开发的应用软件,一个实例可以同时处理多个用户的请求。作为SaaS的核心技术之一,不同的机构从不同的角度对其进行了定义。Salesforce.com认为多租户架构是一种应用模型,所有的用户和应用共享一个单独的通用的基础结构和相同的代码。

实现多租户架构的关键是解决数据存储的问题,保证不同租户之间数据和配置的隔离,以保证每个租户数据的安全与隐私。目前,在SaaS设计中多租户架构在数据存储上主要有三种解决方案。

1)独立数据库

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

2)共享数据库单独模式

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

3)共享数据库共享模式

用一个数据库和一套数据表来存放所有客户的数据。在这种模式下一个数据表内可以包含多个客户的记录,由一个客户ID字段来确认哪条记录是属于哪个客户的。这种方案共享程度最高,支持的客户数量最多,维护和购置成本也最低,但隔离级别也最低。如果SaaS服务供应商需要使用尽量少的服务器资源来服务尽可能多的客户,而且潜在客户愿意在一定程度上放弃对数据隔离的需求来获得尽可能低廉的服务价格,这种共享模式是非常适合的。

(2)元数据开发模式

SaaS主要用元数据的开发模式来实现软件的可配置性。元数据开发模式与多租户架构、Struts技术相配合,能很好地解决软件扩展性、可配置性以及多用户效率问题。整个应用程序由元数据(Metadata)来描述,元数据就是命令指示,描述了应用程序如何运行的各个方面。如果客户想定制应用程序,可以创建及配置新的元数据,以描述新的屏幕、数据库字段或所需行为。

元数据以非特定语言的方式描述在代码中定义的每一类型和成员。它可能存储以下信息:程序集的说明、标识(名称、版本、区域性、公钥),导出的类型,依赖的其他程序集,运行所需的安全权限,类型的说明、名称、可见性、基类和实现的接口、成员(方法、字段、属性、事件、嵌套的类型)、属性,修饰类型和成员的其他说明性元素等。使用元数据开发模式,可以提高应用程序开发人员的生产效率,提高程序的可靠性,具有良好的功能扩展性。

相关评论

专题信息
    随着云计算技术的应用越来越广泛,云计算的可信性和安全性问题凸显。本书叙述了采用可信云安全技术解决云计算可信和安全问题的方法。可信云安全技术是在云计算环境中,针对云端互动的人进行可信计算和安全计算的技术。