一种基于分布式数据库的自主审批方法及系统的制作方法

文档序号:6354627阅读:472来源:国知局
专利名称:一种基于分布式数据库的自主审批方法及系统的制作方法
技术领域
本发明涉及一种基于分布式数据库的自主审批方法及系统,适用于大型企业中组 织关系较为松散的各下级机构需要进行内部项目申报、审批以及需要其他多个下级机构配 合的项目联合申报、审批的应用环境。
背景技术
审批是一个企业日常事务处理中一 项不可或缺的工作,传统模式下材料的审批, 一般都是以纸张作为载体,利用通知、文件、传真等在业务人以及业务部门之间传递信息, 或逐级上递,由部门领导或领域专家进行评审。这种审批方式效率低下,人力成本较高,而 且纸质文件在传递的过程容易丢失或泄露机密信息。随着计算机网络技术的不断发展,目 前出现了很多基于互联网或企业内部网的材料审批系统。当前基于网络的审批系统架构一般是将提供在线评审的wEB服务架设到一个中 央服务器中(即集中式架构)。对于大型企业,上述系统架构存在两个方面的缺陷(1)单 个服务器的计算及存储能力很难适应大型企业审批业务繁杂的特点;(2)大型企业的各下 级机构在管理上具有一定的独立性,各下级机构之间也并非完全相互信任,而且每个机构 在其内部材料审批过程中可能会涉及一些本机构的机密信息,将这些机密信息存储在一个 非本机构的服务器中也是不安全的。综合以上分析,当前基于中央服务器的网络审批系统 对于一些大型企业并不适用。因此,如何利用当前分布式计算技术的研究成果,并将其利用 到网络审批系统的研发过程中,设计出既可以满足大型企业各下级机构进行联合审批的需 求又具有很好保护各下级机构机密信息的审批系统是当前亟待解决的一个难题。

发明内容
本发明的目的在于提供一种自主审批方法及系统,能缓解承担审批服务的WEB及 数据库服务器的计算及储存压力的同时,将机构内部项目审批数据与跨机构审批中机密信 息的存储、访问限制在其所属机构,确保各机构在进行内部以及联合审批时均拥有较为自 主的审批权利。实践证明,本发明具备较高的应用价值。为了实现上述发明目的,本发明采用了以下技术方案一种基于分布式数据库的 自主审批方法,包括如下步骤在各个机构的数据库服务器上部署My SQL数据库,通过互联网或企业内部网将各 个机构的数据库服务器连接成一个分布式网络;采用开源数据库中间件将所述My SQL数 据库搭建成具有统一访问接口的分布式数据库,并在其基础上搭建自主审批系统,所述自主审批系统将数据库中的数据表划分为公共数据及机密数据两大类,并对 所述每一个My SQL数据库采用权限设置,允许本地与本企业其它WEB服务器读取所述公共 数据表,但只允许本地WEB服务器读取机密数据表。具体地来说,所述公共数据包括系统运行所必需信息、联合审批项目审批中子审 批流程的结果,公共数据存储于参与评审的各个机构的数据库服务器中,且可以被参与评审的所有机构评审人员访问;所述机密数据包括联合审批过程中各子审批流程中涉及到的 机密信息以及机构内部项目审批时的全部信息,存储于各机构的本地数据库服务器中,且 这些信息的访问也被限制在本机构。其中,所述开源数据库中间件为Hibernate及其项目Hibernate Shards,所述自 主审批方法还包括制定 Shard Selection Strategy 和 Shard Resolution Strategy 策略 及 Shard Access Strategy 的步骤。所述自主审批方法还包括对所述分布式数据库中的各个机构数据库服务器结点 进行编号的步骤,对所有的服务器结点从1开始顺序编号为1,2,3,……,n,其中11为> 1 的自然数,同时对该结点上的数据表主键ID进行编号;对本地数据库服务器结点再给予编 号为0。其中,所述制定的Shard Selection Strategy 如下 判断是否为机密数据;如果是,则返回本地数据库服务器结点;如果否,则根据数 据表主键ID返回相应的本地数据库服务器结点;如果主键ID为空时,则随机选择一个数据 库服务器结点,被选择结点上的My SQL数据库会自动为其分配一个ID ;所述制定的 Shard Resolution Strategy 如下判断是否是机密数据;如果是,则返回本地数据库服务器结点;如果否,则根据数 据表主键ID返回相应的本地数据库服务器结点。其中,所述制定的Shard Access Strategy如下判断是否为机密数据;如果是,直接从本地数据库服务器查询;如果否,采用 Hibernate预先设置的Sequential Shard Access Strategy在每个结点上依序执行查询, 并将每个结点查询到的数据集合并后返回给用户。所述自主审批方法还包括制定所述数据表记录主键ID的步骤,以确保各数据表 主键ID的唯一性。所述自主审批方法还包括借助于第三方软件处理分布式事务的步骤。一种基于分布式数据库的自主审批系统,包括一分布式网络,由各个机构的数据 库服务器通过互联网或企业内部网连接而成,在所述的各个机构的数据库服务器上部署关 系型数据库管理系统,所述关系型数据库管理系统通过开源数据库中间件搭建成为具有统 一访问接口的分布式数据库,在所述分布式数据库基础上搭建有自主审批系统,所述自主审批系统将数据库中的数据表划分为公共数据及机密数据两大类,并对 所述每一个关系型数据库服务器的服务器采用权限设置,允许本地与本企业其它WEB服务 器读取所述公共数据表,但只允许本地WEB服务器读取机密数据表。本文中自主审批的含义包括(1)企业各下级机构内部的项目申报及审批;(2)对 于涉及多个企业下级机构的项目联合申报及审批,可以将整个审批过程分解为若干个子审 批程序,具体程序是该项目由企业某一个下级机构发起,并首先在其机构内部进行项目审 批,当该机构所有评审人对该项目进行了审批后,可以选择只公开最终的内部审批结果以 及必要的附属信息,接着该机构最后一个评审人会选择该企业另一个机构相关人员对该项 目继续进行审批,整个联合审批过程如此继续,直至企业所有相关机构都对该项目进行了 审批。本发明是将分布于企业各下级机构的服务器连接为一个分布式网络,在其上搭建分布式数据库,并为每个机构部署基于分布式数据库的WEB服务器,企业各下级机构均通 过访问本机构的WEB服务器进行项目的申报及审批。在项目审批过程中,对于本机构内部 项目的相关信息或联合审批过程中本机构的机密信息,其直接存储在本地WEB服务器的数 据库中;对于联合审批过程中的公共信息(非机密信息)通过统一的分布式数据库接口,并 根据数据本身的特点,存储在本地或远程的WEB服务器的数据库。 基于以上模式的审批系统包含以下的特点(1)可以将项目申报及审批过程中涉及的机密信息存储在本地服务器中,并且只 有本机构参与审批的人员才可以通过本地WEB服务访问。这样可以避免本机构机密信息直 接对外暴露,从而有效降低机密数据被窃取或者泄露的风险。(2)部署在每一个机构TOB服务器上的都是一个完整并且独立的应用系统,整个 分布式系统中若干数据库服务器或个别通信链路发生故障对其他机构内部项目的申报与 审批不会产生影响。(3)审批过程所涉及的数据分别存储在不同机构的服务器数据库中,这样可以大 幅度提高整个分布式系统的存储能力。(4)每个机构拥有自己独立的WEB服务器,各机构的审批事务均可以在本地服务 器进行相应处理,于是整个企业的审批事务处理的负荷被分布到各下级机构的服务器中, 这样可以减轻企业采用单个服务器时的计算负荷。本发明提出的基于分布式数据库的自主审批系统与其他的项目审批系统相比,最 主要的特点是在缓解承担审批服务的WEB及数据库服务器的计算及储存压力的同时,将机 构内部项目审批数据与跨机构审批中机密信息的存储、访问限制在其所属机构,这样确保 了各机构在进行内部以及联合审批时均拥有较为自主的审批权利。实践证明,本发明具备 较高的应用价值。


图1为本发明的自主审批系统的搭建步骤示意图;图2为本发明的分布式网络结构示意图;图3为本发明的基于分布式数据库的自主审批系统结构图;图4为本发明的数据库表的访问控制图。
具体实施例方式下面结合附图对本发明进行进一步阐述。为了便于解释或说明本发明,下面首先定义本发明的如下技术术语My SQL数据库管理系统是关系型数据库管理系统,开发者为瑞典的MY SQLAB公 司。本发明应用My SQL数据库管理系统作为关系型数据库管理系统,但不排除采用其它类 型的关系型数据库管理系统。Hibernate R^XM @ Hibernate Shards。 Hibernate ^ti Java Jf方石马白勺 对象关系映射框架,Hibernate提供了强大、高性能的对象到关系型数据库的持久化服务, 但由于My SQL自身并不直接支持分布式应用,直接利用Hibernate与My SQL无法构建分 布式数据库。因此本发明采用Hibernate的子项目Hibernate Shards来实现分布式数据库。Hibernate Shards采用横向分割的方式作为实现分布式数据库的解决方案,对于一个 已经采用Hibernate框架的应用系统,只需要修改与Hibernate相关的配置文件,即可加入 Hibernate Shards,并让应用系统支持存取分布式数据库。如图1所示,搭建本发明所述之系统,主要分为以下三个步骤①在分布于各个机构的数据库服务器上部署My SQL数据库管理系统,通过互联网 或企业内部网将所有机构的数据库服务器连接成为一个分布式网络,具体如图2所示。②采用开源的数据库中间件Hibernate及其项目Hibernate Shards,将在各个数 据库服务器结点中的My SQL数据库组成一个具有统一访问接口的分布式数据库,具体如图 3所示。③为每个机构配置独立的TOB服务器(也可以将TOB服务安装到My SQL数据库 所在的服务器中),并在WEB服务器中部署本发明所述的审批系统,并通过Hibernate及 Hibernate Shards与分布式数据库连接,从而实现本发明所述的基于分布式数据库的自主 审批方法及系统。采用Hibernate Shards实现分布式数据库,需要定制Shard Selection Strategy> Shard Resolution Strategy 禾口 Shard Access Strategy 三禾中 Shard 策略(I)Shard Selection Strategy 当需要将数据写入分布式系统数据库时,此策略 告诉Hibernate Shards如何选择网络中的数据库服务器结点,并将数据存储到选择结点上 的数据库中。(2) Shard Resolution Strategy 当通过记录的主键ID获取相应的记录时,此 策略告诉Hibernate Shards如何根据ID选择网络中的数据库服务器结点,并从该结点中 的数据库读取相应的记录。Shard Resolution Strategy的规则必须与ShardSelection Strategy相对应,否则有可能导致因无法选择正确的结点而获取不到所查询的记录。(3) Shard Access Strategy 当对分布式数据库进行HQL与Criteria查询时,此 策略告诉Hibernate Shards采用何种顺序对分布数据库中的数据库服务器结点依次进行 查询或并发查询,并将每个结点上所查询到的数据集合并后返回给查询用户。下面结合图3说明如何搭建基于My SQL的分布式数据库并实现本发明所述的基 于分布式数据库的自主审批方法及系统。本发明通过以下步骤保证企业各下级机构内部机密数据的安全①通过对各 数据库服务器中My SQL进行安全设置,规定不允许非本地TOB服务器访问机密数据的 所在的数据表;②通过制定 Hibernate Shards 的 Shard Selection Strategy 和 Shard ResolutionStrategy策略,系统调用Hibernate Shards的远程Session存取分布式数据库 上的公共数据,调用本地Session存取本地数据库服务器结点上的机密数据。本发明通过以下步骤提高整体分布式系统的存储容量并且减轻各TOB服务器 的计算负荷①通过制定 Hibernate Shards 的 Shard Selection Strategy 和 Shard ResolutionStrategy策略,将审批过程中的公共数据采用分布式的方式存储于各个机构上 的数据库服务器结点中;②为每个机构部署单独的WEB服务器,缓解整个企业采用一台中 央服务器所带来的较大计算负荷。具体地来说,搭建本发明所述的自主审批系统的具体步骤如下

(1)根据项目审批系统的需求,将企业数据库中的数据表划分为A、B两大类,其中A类表用于存储公共数据,B类表用于存储机密数据。A类表所存储的数据包括系统所运行 所必需信息、跨机构项目审批中子审批流程的结果以及其他相关的公共信息;B类表所存 储的数据包括联合审批过程中各子审批流程中涉及到的机密信息,以及机构内部项目审批 时的相关信息。(2)在各下级机构的数据库服务器上部署My SQL服务,并根据步骤(1)所制定的 数据库设计方案创建数据库及相关的数据表。为了方便叙述及配置Hibernate的各种相关 文件,对各机构中的数据库服务器结点采用如下编号规则①将所有的服务器结点按机构 名称的字母排列顺序依次编号为1,2,3,……n,11为> 1的自然数;②本地数据库服务器 结点另给予编号0,其作用是? ?(3)根据步骤(1)所述,对于每一个My SQL数据库服务器结点,采用My SQL自身 的安全机制进行权限设置授权用户可以从企业内部的任何一台WEB服务器结点上访问数 据库服务器结点中的A类表;而B类表只允许TOB系统授权用户从本地WEB服务器结点上 访问,非本机构的Web服务器结点不可以访问B类表,具体如图4所示。(4)记录主键ID的产生策略分布式数据库作为一个统一的整体,对系统用户而 言是透明的,但对于分布式数据库的底层实现而言,分布式数据库由若干个My SQL数据库 服务器组合而成。为了确保数据库中各数据表主键的唯一性,不同的数据库服务器上记录 的主键不存在重复性,需要对各个结点上的数据库进行编号如编号为1的数据库中数据 表记录的主键从1开始递增,编号为2的数据库中数据表记录的主键从1000001开始递增, 编号为3的数 据库中的数据表记录的主键从?开始递增,以此类推;当单个数据库的数据 表中的记录数超过一百万时,Hibernate Shards提供了相关的方法及工具重新组织各个数 据库的数据表结构。(5)制定 Shard Selection Strategy 禾口 Shard Resolution Strategy 策略为了可以在系统编码时区别数据库记录所对应的实体对象是否为机密数据库,做 出以下的处理步骤①如果是公共数据,数据表所对应的java实体类以“A_”开头,并且需 要实现Public Entity接口 ;②如果是机密数据,数据表所对应的Java实体类以“B_”开 头,并且需要实现Private Entity接口。因此,在系统编码时通过实体名是否以“A_ ”开头 或是否Public Entity的实例来判断其是否为公共数据。制定的 Shard Selection Strategy 如下①判断是否为机密数据;如果是,则返回本地数据库服务器结点;②如果否,将其主键ID除以1000000,其商+1即是存储该数据的数据库编号;返 回该结点;例如编号为1的数据库中的主键ID为2的数据表,将其主键ID 2除以1000000, 商为0,0+1 = 1,即为存储该数据表的数据库编号。③如果ID为空时,则随机选择一个数据库服务器结点,被选择结点上的My SQL会 自动为其分配一个ID,此ID遵循上述的该结点的ID产生规则。制定的 Shard Resolution Strategy 如下①判断是否是机密数据;如果是,则返回本地数据库服务器结点;②如果否,将其主键ID除以1000000,其商即是存储该数据的数据库编号;返回该
^Π^ ; (6) Shard Access Strategy 的制定
①如果是机密信息,直接从本地数据库服务器查询;②如果是其他情况,则采用Hibernate预先设置的Sequential Shard Access Strategy在每个结点上依序执行查询,并将每个结点上的查询到的数据集合并后 返回给用户。(7)分布式事务的处理在实现本发明的自主审批方法及系统时,如何保证整个系统中分布式事务的串行 性执行以及全局数据的一致性是至关重要的。由于Hibernate Shards本身并不支持分布 式事务,本发明所述之系统借助于第三方软件J0TM(Java Open Transaction Manager)以 及 Atomikos Transactions Essentials 实现分布式事务。本发明所述的基于分布式数据库的自主审批方法及系统的工作步骤如下(1)用户登录本地TOB服务器,申报或审批相关项目;(2)如果项目处于联合审批中本机构审批的子过程中,则可以填写或上传涉及该 项目的相关信息或材料,如果部分信息或材料涉及本机构的内部机密,则可以将这些信息 与材料设置为机密信息,同时指定负责下一步审批工作的责任者(如果项目联合审批中本 机构审批的子流程已经完成,则可以指定其他机构相关人员作为下一步审批工作的责任 者),并发送Email通知相关人员;(3)下一步审批的责任人收到通知后登录本地WEB系统,他可以查看本机构审批 子过程中的各类机密信息,也可以查看其他机构的审批结果及其他机构审批过程中涉及的 所有公共信息,最后根据要求给予适当的审批意见以及决定,同时根据相关审批要求判断 审批过程是否结束,如果未结束,则重复步骤(2),否则结束该项目的审批。如果进行机构内部项目的申报或审批,系统会自动将整个审批过程中所涉及的所 有信息设置为机密数据,该信息对本机构参与审批人员可见,对其他人员则不可见。
权利要求
1.一种基于分布式数据库的自主审批方法,其特征在于包括如下步骤在各个机构的数据库服务器上部署My SQL数据库,通过互联网或企业内部网将各个机 构的数据库服务器连接成一个分布式网络;采用开源数据库中间件将所述My SQL数据库 搭建成具有统一访问接口的分布式数据库,并在其基础上搭建自主审批系统,所述自主审批系统将数据库中的数据表划分为公共数据及机密数据两大类,并对所述 每一个My SQL数据库采用权限设置,允许本地与本企业其它WEB服务器读取所述公共数据 表,但只允许本地WEB服务器读取机密数据表。
2.根据权利要求1所述的自主审批方法,其特征在于所述公共数据包括系统运行所 必需信息、联合审批项目审批中子审批流程的结果,公共数据存储于参与评审的各个机构 的数据库服务器中,且可以被参与评审的所有机构评审人员访问;所述机密数据包括联合 审批过程中各子审批流程中涉及到的机密信息以及机构内部项目审批时的全部信息,存储 于各机构的本地数据库服务器中,且这些信息的访问也被限制在本机构。
3.根据权利要求1所述的自主审批方法,其特征在于所述开源数据库中间件 为Hibernate及其项目Hibernate Shards,所述自主审批方法还包括制定Shard SelectionStrategy 禾口 Shard Resolution Strategy 策略及 Shard Access Strategy 的步 马聚。
4.根据权利要求3所述的自主审批方法,其特征在于所述自主审批方法还包括对所 述分布式数据库中的各个机构数据库服务器结点进行编号的步骤,对所有服务器结点从1 开始顺序编号为1,2,3,……,n,其中11为> 1的自然数,同时对该结点上的数据表主键ID 进行编号;对本地数据库服务器结点再给予编号为O。
5.根据权利要求4所述的自主审批方法,其特征在于所述制定的Shard SelectionStrategy 如下判断是否为机密数据;如果是,则返回本地数据库服务器结点;如果否,则根据数据表 主键ID返回相应的本地数据库服务器结点;如果主键ID为空时,则随机选择一个数据库服 务器结点,被选择结点上的My SQL数据库会自动为其分配一个ID ;所述制定的 Shard Resolution Strategy 如下判断是否是机密数据;如果是,则返回本地数据库服务器结点;如果否,则根据数据表 主键ID返回相应的本地数据库服务器结点。
6.根据权利要求5所述的自主审批方法,其特征在于所述制定的ShardAccess Strategy 如下判断是否为机密数据;如果是,直接从本地数据库服务器查询;如果否,采用 Hibernate预先设置的Sequential Shard Access Strategy在每个结点上依序执行查询, 并将每个结点查询到的数据集合并后返回给用户。
7.根据权利要求1所述的自主审批方法,其特征在于所述自主审批方法还包括制定 所述数据表记录主键ID的步骤,以确保各数据表主键ID的唯一性。
8.根据权利要求1所述的自主审批方法,其特征在于所述自主审批方法还包括借助 于第三方软件处理分布式事务的步骤。
9.一种基于分布式数据库的自主审批系统,其特征在于包括一分布式网络,由各个 机构的数据库服务器通过互联网或企业内部网连接而成,在所述的各个机构的数据库服务器上部署关系型数据库管理系统,所述关系型数据库管理系统通过开源数据库中间件搭建 成为具有统一访问接口的分布式数据库,在所述分布式数据库基础上搭建有自主审批系 统, 所述自主审批系统将数据库中的数据表划分为公共数据及机密数据两大类,并对所述 每一个关系型数据库服务器的服务器采用权限设置,允许本地与本企业其它WEB服务器读 取所述公共数据表,但只允许本地WEB服务器读取机密数据表。
全文摘要
本发明公开了一种基于分布式数据库的自主审批方法,包括如下步骤在各个机构的数据库服务器上部署My SQL数据库,通过互联网或企业内部网将各个机构的数据库服务器连接成一个分布式网络;采用开源数据库中间件将所述My SQL数据库搭建成具有统一访问接口的分布式数据库,并在其基础上搭建自主审批系统。本发明在缓解承担审批服务的WEB及数据库服务器的计算及储存压力的同时,将机构内部项目审批数据与跨机构审批中机密信息的存储、访问限制在其所属机构,确保了各机构在进行内部以及联合审批时均拥有较为自主的审批权利。
文档编号G06F17/30GK102110150SQ20111004037
公开日2011年6月29日 申请日期2011年2月18日 优先权日2011年2月18日
发明者温永向, 王胜年, 胡继业, 董志良, 邓和平, 龚亚东 申请人:中交四航工程研究院有限公司, 中国港湾工程有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1