一种新型信息系统体系结构研究
孟晓蕊 庆海涛 CIOZJ

一、引言

    面对瞬息万变和竞争激烈的市场环境,企业希望通过低成本、快捷的方式引入专业的IT系统和服务来帮助其提高工作效率、提升企业管理水平、降低运营成本,以适应快速多变的市场,从而增强其核心竞争力。传统软件模式部署难、成本高、速度慢,很难满足企业这一要求。而SaaS可以完全满足企业要求,它是一种把软件部署为服务,从Internet上进行访问的模式,服务开发提供商在自身服务器上统一部署应用软件。本文通过对SaaS体系结构的研究,为软件开发服务开发提供商如何进行SaaS建设提供一定的借鉴意义。

二、SaaS多层体系结构

    1、多层体系结构

    SaaS可划分为数据层、业务逻辑层、工作流平台、接口层、表示层。数据层主要包括数据存储层和数据访问层。数据存储层主要由文件系统、数据库、元数据服务组成,负责系统相关数据的存储。通常,客户可在四个层面进行配置更改:

    (1)用户界面:SaaS应具有用户界面的调整功能。

    (2)工作流程与业务规则:SaaS应用必须能够满足不同业务流程的需要。

    (3)数据模型的扩展:客户可以通过可扩展的数据模型根据业务需求自由地改变模型。

    (4)数据存取控制:最终用户的账户由客户各自负责创建,同时还要能够确定用户们都能使用资源和具备存取的功能。

    数据访问层保证业务逻辑和具体的数据库相分割,业务的实现和数据库无关,并支持复用池技术,提高系统的访问效率。

    业务逻辑层是连接数据服务层和用户界面层之间的纽带,当用户界面层的用户提出请求后,该层从数据服务层中提出数据,按照业务模型中定义的业务逻辑对数据进行处理,之后把关键数据向用户界面层进行传送,实现数据服务层和用户界面层之间的交互。

    工作流平台为业务平台和表现层提供工作流引擎服务,实现工作流程逻辑的执行和控制,为组件的运行提供一个基本的环境。

    接口层也就是Web服务层,主要是把业务组件发布为Web service,对外提供统一的接口调用。

    表示层在系统中属于人机接口的部分,起作用时实现应用程序和用户的交互。

    2、数据库模式研究

    数据是商业运营中重要的资产,具有重要价值。SaaS作为单实例多用户的系统,其核心也是数据。SaaS一般采用三种数据库模式:专用数据库、共享数据库和共享数据表。

    (1)专用数据库:用户在此模式中拥有一套独立的数据,它们在逻辑上是隔离的。它的安全机制可以保障其他用户不能随意存取客户的专用数据。这种方法会加大设备维护和用户数据备份的成本。

    (2)共享数据库:不同用户使用相同的数据库,每个用户都拥有自己的表集,形成用户各自专门的架构。这种模式也相对容易实施,也具有良好的扩展性。但在这种模式下,出错时数据恢复的整个过程比较复杂,耗时也长。

    (3)共享数据表:不同的用户采用相同的数据库和相同的表集,给定表格包括以任一顺序存储的多个用户的记录,用户ID列将每条记录与相应用户关联,其所需备份成本和硬件要求也较低。但其恢复用户数据的过程比共享数据库更复杂。

    以上三种模式运用不同的数据隔离措施来确保用户数据处于不同的安全级别下,每个用户可以根据自己不同的安全需要选择不同的数据库模式。

    3、访问控制模型

    (1)授权

    SaaS通常用“角色”管理系统资源和业务功能的访问控制。角色与公司中的特指的岗位功能形成映射。SaaS赋予每位角色一定的“许可”,用户可以根据被分配到的具体角色中的“业务规则”进行操作。

    SaaS通过应用内部管理角色。各个用户群组或用户账户中因为需求不同被分配到对应的角色;从对应的角色中,用户即可以获取许可来进行相应的活动或操作。

    (2)认证

    SaaS服务开发提供商通常将创建和维护用户账户的责任下放给客户,客户负责创建不同的用户账户,而SaaS 服务开发提供商认证有关账户。SaaS采用两种通用办法来解决认证问题:一是集中认证管理系统,一是非集中认证管理系统。

    在集中认证管理系统中,服务开发提供商负责中央用户账户数据库的管理,授权给客户管理员可以在其账户目录下修改用户账户。对于非集中认证管理系统而言,客户可以使用和联合服务功能将自身的用户目录服务连接起来。而在最终用户对应用进行尝试性访问的时候在通过对用户的本地认证之后,即发布出完全令牌指令,而SaaS服务开发提供商在认证系统中接受安全令牌,允许用户的接入应用。

    在许多情况下,SaaS服务开发提供商都希望采用混合方式,对小型客户采用集中认证系统来认证和管理,而对要求单点登录并愿为此付费的大型企业提供联合服务。

三、SaaS多种实现技术剖析

    SaaS系统采用的开发技术不但具有多样性,而且具有先进性。其涉及的主要技术有:

    1、RIA技术

    RIA(Rich Internet Application,富互联网应用)技术是在因特网上以一种象使用Web一样简单的方式来部署富客户端程序。它可以使用户页面局部刷新,而不是整页刷新,使基于浏览器的应用程序看上去更像是桌面程序,加快系统响应速度,增强系统交互能力,从而提高客户满意度。

    2 、模块化

    模块化是传统软件开发中常采用的开发方式,SaaS服务开发提供商基于网络架构建立了自己的应用平台,模块的灵活性使得他们可以根据客户的不同需求,将功能复杂繁多的系统配置成适合客户的系统。

    3 、参数应用

    在SaaS模式下,用户可以通过输入新的参数变量,或者制定一些数据关联规则来开启一种新的应用,这种新式服务模式常常被称为“参数应用”。这种参数应用无需用户编程就可以定制新的应用,满足用户个性化的需求。

    4、解决方案扩展

    SaaS服务架构能够让用户在SaaS服务平台上根据自己的需求增加额外的工具、功能、数据模型和用户界面,在一定程度上解决SaaS用户的个性化定制问题。

    5、集成器

    集成器是一种软件程序,是传统软件与SaaS应用服务之间数据交换的平台。这种集成器SaaS应用服务与传统软件服务之间的整合变得更加容易。

四、结束语

    本文提出了一种多层的SaaS体系结构,进而对各层进行了简要分析,并深入探讨了安全性机制和数据库模式,以及对实现技术的剖析,有助于软件服务开发提供商准确把握SaaS的相关内容以及如何构建SaaS系统。

 

CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢