基于多租户的石油钻井公司系统架构的研究

2016-01-09 14:03宫佩
电脑知识与技术 2015年30期
关键词:架构数据库

宫佩

摘要:SaaS以多租户为主要特征,该文对SaaS模式下多租户系统架构及其数据库进行了研究,以便于为石油公司提供更广阔的思路。

关键词:SaaS;多租户;架构;数据库

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)30-0177-03

Study on the System Architecture of Drilling Companys under SaaS Model

GONG Pei

(School of Computer, Xian Shi you University, Xian 710065, China)

Abstract:SaaS takes multi-tenant as main characteristics,this paper is based on SaaS model to analysis the system architecture and the database about multi-tenant.

Key words:SaaS; multi_tenant; architecture; database

1 概述

埋藏在地下的石油资源,油田的勘探、开发、保存、储运等工作繁琐不堪,一线作业是钻井企业的主要业务,作业队经常在野外工作,分布地域辽阔,作业现场情况复杂多变,地理环境和气候条件以及设备故障等现场问题存在大量未知因素,而石油钻井企业一般在野外工作,而对于软件公司来说,不可能为每个企业量身定做一个数据库,这样不仅加大了了工作量,而且所需要的经费也非常多[1]。软件公司还需派遣工作人员去各个钻井队进行后期维护,这样是很不现实的,也没有哪个公司能负担起这个消费。而多租户技术就可以针对这一现象设计出多租户数据库,供各个公司租赁,可对不同钻井企业提供多样化的低成本、高质量的服务,本课题将引入多租户技术。多租户技术是通过研究并实现怎样在用户较多的情况下共用相同的系统或程序组件,且仍可保证各个用户之间的数据隔离性的一种软件架构技术。

2 SaaS服务模式

SaaS(软件即服务)是打破传统软件销售模式的一种商业模式,它的特点是网络交付和按照需要付费使用。在这种模式下,软件供应商(开发者、开发方)从软件租用者处获得长久连续的收入,当然供应商也需让步,租户不需要再支付维护软件、升级版本以及购置硬件等方面的费用。更多的企业也是因为SaaS模式具有灵活性、可扩展性和较高的成本效益,纷纷采用这种软件(开发、交付)模式。

2.1 关于多租户的概念

多租户这一概念的提出是随着SaaS应用模式的快速发展,它是SaaS应用的一个重要的应用,即SaaS应用必须能够满足多个或多种租户的软件需求,这样一来SaaS供应商们花费在软件开发、硬件购置、培训、升级和维护等一系列上面的成本才能减少,从而可以投入最少的基础设施成本取得最大的利润。同样,通过多租户的可定制特性,客户能够按需付费使用软件,并降低租户的应用门槛和风险[2]。

多租户作为SaaS服务中的一个重要技术,它的目标是可以支持更多的客户,SaaS服务提供商希望可以尽可能的为更多客户提供服务,因此SaaS服务提供商就必须能够尽可能的接受和处理客户的请求。

2.2 SaaS模式的优点

SaaS模式软件能够得到迅速的发展,除了科技的推动发展之外,还得益于软件本身的优势。

具体来说优点可概括如下:

1) 按需使用。用户按照自己的需要向服务商购买自己所需要的服务,所支付的费用则是由他所购买的服务数量、使用时间来决定的,这样一来就避免了资源和金钱的浪费。

2) 灵活使用。SaaS模式软件的数据资料的存储位置都是在虚拟的互联网上,没有相对应的具体位置。只要租户在可以联网的情况下,随时随地可使用。

3) 无须维护。应用软件的主要运行都设置在服务器端口上,租户如果在使用时遇到问题,通知服务商的工作人员去解决,不用租户再浪费时间金钱去处理问题。

4) 精简人员。服务提供商会有专人负责某一固定模块,租户不用再额外增加IT工作人员。

在SaaS服务模式中各个租户所支付的服务和维护费用会随着租户规模的逐渐增多而减低[3]。因此SaaS这种解决方案已经渐渐被更多的企业所接纳。

3 SaaS模式体系架构设计

钻井生产作为石油勘探开发过程中的一个重要环节,直接影响着油田的产能建设。钻井企业的主要业务流程是人员与技术集中,包含技术、管理与经济等的系统工程,它的业务涉及面较广,信息种类多,信息集成、处理起来较繁琐[4]。现在石油公司需要利用多租户系统来提供相关思想。考虑到可以更好地支持SaaS服务应用这方面,本文选择了分层设计的系统架构设计基础。

综合考虑租户的应用需求和服务提供商的能力,本文主要实现具有可配置性的多租户系统架构,本文参考了固有的传统模式应用架构,添加了配置管理层和数据模式选择层[5]。配置管理层的功能主要是在多租户单实例系统中能配置系统的使用这一任务,即为租户推出了定制性的模块且有一些应用方面的配置,可以为企业提供特定需求的配置管理。由于不同的软件供应商会采取不一定会选取同种数据库,因此增加了数据模式选择层。尽量在单例系统中调节租户选择数据库的数量,简化功能。使系统可扩展,代码改动不多并减少耦合度[6]。SaaS服务应用架构如图1所示。

图1 SaaS体系架构

在图1的体系架构中,和传统模式的系统架构对比起来,它的结构是七层,本文为其添加配置管理层和数据模式选择层。配置管理层是SaaS服务模式软件应用系统中比较特殊的层次,由于SaaS模式软件面向多租户的特性,当租户的使用需求产生变化的时候,服务商做不到满足每个租户的需求,所以SaaS服务模式系统架构需要具备灵活性这一特点,不是服务商为每个租户改动,而是租户可以自行修改,从这些来看,这一层的功能主要是在系统中管理各个租户的数据配置信息,为其提供功能上的定制和应用的灵活配置性,以满足用户的一些特定需求[7]。

添加数据模式选择层主要是由于不同的软件服务提供商会选择不同的数据库,为了能使系统具备更强大的扩展性能、代码改动少并降低耦合度,可以操作多租户单实例系统中租户选择数据库的种类,并对面向接口模式和工厂模式相融合的方法有一个简单的实例化[8]。

SaaS服务模式的应用系统的配置性可以在添加了这两层之后有了明显的效果。

4 SaaS模式数据库架构设计

相比传统软件, 数据存储时大部分是把数据库放到客户的服务器里,由客户自己来进行维护与管理,但是这种方式客户会觉得有一些困扰[9]。多租户性是SaaS服务模式应用和传统软件明显的不同,即多个租户选择同一个运行实例,他们之间的数据同时具备隔离性和共享性,所以SaaS服务模式需要考虑到在数据隔离与共享两方面寻求一个平衡问题以及成本问题。

一般说来,在数据存储方面有三种方案:1)独立数据库;2)共享数据库但隔离数据架构;3)共享数据库且共享数据架构。

4.1 独立数据库

独立数据库是把每个租户的数据信息独立存储在各自的数据库中,通过这种方案可以实现数据的隔离。每个租户在物理上都会拥有属于自己的一整套数据,且独立存储。

这种存放方式有着自己独特的优点,让不同的租户拥有自己的数据库,对于后期数据模型的扩展有一定的帮助,可以实现不同租户的不同需求,出现问题的时候,租户的数据恢复也相对简单。但对于SaaS的应用来说,这样就增加了数据库的安装量,并且维护成本和购置成本会逐渐增大。

4.2 共享数据库,隔离数据架构

这种方案就是所有的租户租用同一个数据库,但租户自己的数据表结构是不同的,而且会存放在单独的模式里。这样一来,当该SaaS服务系统首次被客户所使用时,系统不仅创建了租户环境,而且创建了一整套的默认数据表结构,同时将租户关联到他自己的模式中。

这种方式的优势是与上种方式相比较得来的,一台服务器可以通过共享数据这种方式来为更多的租户提供服务,并且数据结构不同,又有数据隔离,满足那些对安全性有需求的租户的诉求,有数据隔离,又不是全部隔离[7]。

4.3 共享数据库,共享数据架构

共享数据库,共享数据架构方案,也就是所有用户共享相同的数据库,相同的数据表结构,存放在相同的错模式中。在这种方案里,多个租户的数据记录可以放在同一个数据表里,用租户ID来区分租户之间的数据。

共享数据库,共享数据架构方案是一种共享程度最高,隔离级别最低的数据存储方式。这种方案的硬件维护和购置成本是最低的,且数据库可支持的租户数量在每台服务器是最多的。但是因为相同的数据库被所有租户共同使用的缘故,所以隔离性比较差,安全性也较低,为了保证所有租户在系统异常不访问到其他租户信息,还必须考虑到安全方面的设定[10]。

4.4 三种方案的比较

上面提到的三种方案中,各自都有自己的优缺点,各种商业形式和技术方面根据自己的特点来选择适合自己的方案。

从上边分析可以看出,方案一的隔离级别最高,共享级别最低。而方案三则与之相反。

独立数据库的特点是通过简化数据模型来达到用户需求,且数据恢复的手段也比较简单。但是在成本方面为有所提高。相比较来说,第三种方案的成本最低,但是相同的数据库会被不同的租户租用,会需要提高安全性,保证租户就算发生故障时,也看不到别人的信息[11]。

产品的定价策略和用户对数据安全的需求将决定了租户会选择哪种SaaS服务模式。

5 结束语

本文针对石油公司复杂多变的具体情况,应用软件即服务思想为钻井公司提供了一种更好处理数据的参考思路。文中探讨了适用于SaaS系统的七层架构和数据库架构设计方案的思想。SaaS相比与传统软件模式而言,可以降低中小型企业的资金投入和维护工作,进而帮助石油公司更好地迎接全球化时代在信息化建设方面所面临的效能、时间和成本挑战。

参考文献:

[1] 那保国.石油储运生产数据管理信息系统研究[D]. 哈尔滨: 哈尔滨工程大学,2007.

[2] 昌中作,徐悦,戴钢.基于SaaS模式公共服务平台多用户数据结构的研究[J].计算机系统应用,2008(2):7-11.

[3] Stefan Aulbach,Dean Jacobs,Alfons Kemper, et al.A Comparison of Flexible Schemas for

Software as Service[D].Technische University.2011

[4] 安传周.我国石油化工企业安全生产问题及对策研究[D].济南:山东大学,2008.

[5] 何鹏,陆建新,施佺.基于SaaS的网络管理系统框架研究[J].计算机工程与设计,2011(12):3592-3596.

[6] Frederick Chong and Gianpaolo Carraro.Architecture Strategies for Catching the Long Ta[J/OL].http://msdn.microsoft.com/en-us/library/aa479069.

[7] Mumtaz Ahmad,Ashraf Aboulanaga,Shivnath Babu. Modeling and Exploiting Query Interactions in Database

System[Z].CIKM 26-30,2008

[8] 高波.面向SOA的多租户(Multi-Tenancy)技术的研究与实现[D]. 天津:天津大学,2006.

[9] 朱秀美. 共享数据模式下多租户数据库复制技术研究[R]. Science & Technology Information,2003.1.

[10] 孙圣力,黄震华,李鹏.面向多租户数据库的 Skyline 处理算法[J].计算机科学与探索,2011(5).

[11] Frederick Chong, Gianpaolo Carraro.Architecture Strategies for Catching the Long Tail[J/OL].http://msdn.microsoft.com/en-us/library/aa479069.2006.

猜你喜欢
架构数据库
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现
具身学习环境SMALLab的架构分析及启示