首页> 中国专利> 产品工厂模式下的产品数据迁移方法、装置及系统

产品工厂模式下的产品数据迁移方法、装置及系统

摘要

本发明提供了一种产品工厂模式下的产品数据迁移方法、装置及系统,在该方法中首先确定源环境、目标环境和产品标识信息,获得与产品标识信息相关的业务对象集合,以业务对象集合中的各个业务对象为操作对象在源环境数据库中获得所有记录,然后再以业务对象为操作对象将各个业务对象按照预设处理规则进行预处理迁移至目标环境中。本发明中无论是将产品数据由源环境迁移出还是将产品数据迁移至目标环境的过程,其操作对象都是业务对象,由于业务对象是产品数据的高级分类,因此本方法能够整体显示源环境和目标环境的区别,其处理粒度符合产品工厂的要求,适用于产品工厂进行产品研发的机构或个人对产品数据进行迁移。

著录项

  • 公开/公告号CN103455589A

    专利类型发明专利

  • 公开/公告日2013-12-18

    原文格式PDF

  • 申请/专利权人 中国农业银行股份有限公司;

    申请/专利号CN201310385031.9

  • 发明设计人 聂晓峰;宫虎波;高东剑;

    申请日2013-08-29

  • 分类号G06F17/30;G06F21/64;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人王宝筠

  • 地址 100005 北京市东城区建国门内大街69号

  • 入库时间 2024-02-19 21:53:09

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-21

    授权

    授权

  • 2014-01-15

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130829

    实质审查的生效

  • 2013-12-18

    公开

    公开

说明书

技术领域

本发明涉及数据处理领域,尤其涉及一种产品工厂模式下的产品数据迁 移方法、装置及系统。

背景技术

产品工厂是新一代核心银行系统的核心部分之一,产品工厂基于工厂化 的设计思想,通过组件化、参数化的设计方法,预先定义各种产品的构成要 素,通过灵活的产品零部件组合和功能配置,为实现快速、差别化的产品定 制提供技术支持。

产品工厂中处理的是产品数据,根据产品工厂的逻辑数据模型,产品数 据的组织层级方式为:产品、业务对象、数据表、记录。一个产品会包含多 个ID不同的同一业务对象,业务对象是对产品组成元素的高阶分类,每个业 务对象由一组数据表组成,不同业务对象的数据表彼此不相互重复,数据表 类似物理数据库表,包含0行或者多行记录。

在产品工厂中,一个完整的产品研发流程通常包含开发、测试、投产阶 段,对应的包含开发环境、测试环境、准生产环境和生产环境。在产品工厂 中产品研发的过程中,与该产品相关的所有业务对象及业务对象下的记录都 是该产品的产品数据,产品数据需要依次经过开发环境、测试环境、准生产 环境和生产环境,将产品数据在不同环境中的传输称为数据迁移。

现有的数据迁移有两种:SQL语句方式、利用数据库的导入导出方式, SQL语句方式是指通过直接执行SQL语句进行数据迁移,该方式下用户首先通 过编写Select语句在源环境的数据库中选择需要迁移的记录,然后对获取的记 录加工形成Insert语句,最后在目标环境的目标数据库执行Insert语句插入记 录。利用数据库的导入导出方式,如IBM DB2数据库的Export、Import和Load 功能,Export实现数据的导出,Import和Load实现数据的导入。

以上数据迁移方法是现有通用的数据迁移方式,但现有数据迁移方式中 数据处理的单元是独立的记录,而产品工厂是模块化的组织结构,每个产品 由多个业务对象构成,对于同一个业务对象中的记录,应作为一个整体处理, 按照记录进行处理的方式其处理粒度过细,不能整体体现业务对象的之间的 关系,因此现有技术中数据迁移的方式不能满足产品工厂中对产品数据迁移 的粒度。

因此现在需要一种产品数据迁移方法,能够适用于对产品工厂中的产品 数据进行迁移。

发明内容

本发明提供了一种产品工厂模式下的产品数据迁移方法、装置及系统, 采用本方法能够适用于对产品工厂中的产品数据进行迁移。

为了实现上述目的,本发明提供了以下技术手段:

一种产品工厂模式下的产品数据迁移方法,包括:

接收用户输入的源环境、目标环境和产品标识信息;

与所述源环境的源数据库建立网络连接,并初始化待导出数据集;

遍历预设实体联系图获取与所述产品标识信息相关的业务对象集合;

以所述业务对象集合为依据在所述源数据库读取数据,获取与所述产品 标识信息对应的产品数据,所述产品数据包括所述业务对象集合中各个业务 对象的所有记录;

将所述产品数据存储至所述待导出数据集,并生成产品数据文件;

与所述目标环境的目标数据库建立网络连接,读取所述产品数据文件并 根据所述产品数据文件生成待导入数据集;

以所述待导入数据集中产品数据的各个业务对象为依据,按预设处理规 则设置各个业务对象及其下记录的预处理操作标识;

若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条 件,则显示所述产品数据中各个业务对象及其下记录的预处理操作标识;

待用户确认所述预处理操作标识后,按所述各个业务对象及其下记录的 预处理操作标识操作所述目标数据库,在一个事务内完成导入操作。

优选的,将所述产品数据存储至所述待导出数据集,并生成产品数据文 件包括:

根据所述待导出数据集生成数据集体;

根据所述待导出数据集生成与所述产品标识信息相关的产品信息概述;

获取与所述产品标识信息相关的操作场景信息;

根据所述产品信息概述和所述操作场景信息设置数据集头;

根据所述数据集体和所述数据集头计算数字签名;

由所述数据集头、所述数据集体和所述数字签名生成所述产品数据文件。

优选的,按预设处理规则设置各个业务对象及其下记录的预处理操作标 识包括:

按照所述预设处理规则自动设置各个业务对象及其下记录的预处理操作 标识;或

弹出预处理窗口,接收用户预处理输入,并根据用户预处理输入设置各 个业务对象及其下记录的预处理操作标识。

优选的,按照所述预设处理规则自动设置各个业务对象及其下记录的预 处理操作标识包括:

依次所述待导入数据集的每个业务对象的ID与目标数据库中所有业务对 象的ID进行对比;

若所述目标数据库中不含某一业务对象的ID,则该业务对象及其下记录 的预处理操作标识为插入;

若所述目标数据库中含有某一业务对象的ID,则按所述预设冲突处理规 则进行处理,则业务对象的预处理操作标识为更新、忽略、退出或重命名。

优选的,弹出预处理窗口,接收用户预处理输入,并根据用户预处理输 入设置各个业务对象及其下记录的预处理操作标识包括:

弹出更新、忽略、退出和重命名的窗口,接收用户分析两者差异之后选 择的预处理输入,并根据用户预处理输入设置各个业务对象及其下记录的预 处理操作标识。

优选的,将所述产品数据存储至所述待导出数据集包括:

将所述产品数据中各个业务对象的所有记录按照业务对象、数据表、记 录的形式存储至所述待导出数据集中。

优选的,所述预设条件包括:

空条件,或符合产品数据逻辑约束关系。

优选的,所述产品数据文件的格式为.XML格式。

一种产品工厂模式下的产品数据迁移装置,包括:

接收单元,用于接收用户输入的源环境、目标环境和产品标识信息;

第一网络单元,用于与所述源环境的源数据库建立网络连接,并初始化 待导出数据集;

第一获取单元,用于遍历预设实体联系图获取与所述产品标识信息相关 的业务对象集合;

第二获取单元,用于以所述业务对象集合为依据在所述源数据库读取数 据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业务 对象集合中各个业务对象的所有记录;

生成单元,用于将所述产品数据存储至所述待导出产品数据集,并生成 产品数据文件;

第二网络单元,用于与所述目标环境的目标数据库建立网络连接,读取 所述产品数据文件,并根据所述产品数据文件生成待导入数据集;

第三获取单元,用于以所述待导入数据集中产品数据的各个业务对象为 依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识;

显示单元,用于若所述产品数据按所述预处理操作标识导入至目标环境 后满足预设条件,则显示所述各个业务对象及其下记录的预处理操作标识;

导入单元,用于待用户确认所述预处理操作标识后,按所述各个业务对 象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成导 入操作。

一种产品工厂模式下的产品数据迁移系统,包括:

源环境,目标环境和处理器;

所述处理器,用于接收用户输入的源环境、目标环境和产品标识信息, 与所述源环境的源数据库建立网络连接,并初始化待导出数据集,遍历预设 实体联系图获取与所述产品标识信息相关的业务对象集合,以所述业务对象 集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的产品 数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录,将 所述产品数据存储至所述待导出数据集,并生成产品数据文件,与所述目标 环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品数 据文件生成待导入数据集,以所述待导入数据集中产品数据的各个业务对象 为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识, 若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则 显示所述产品数据中各个业务对象及其下记录的预处理操作标识,待用户确 认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标 识操作所述目标数据库,在一个事务内完成导入操作。

本发明提供了一种产品工厂模式下的产品数据迁移方法,该方法中首先 确定源环境、目标环境和产品标识信息,该产品标识信息即为需要迁移的产 品,根据预设的实体联系图获得与产品标识信息相关的业务对象集合,以业 务对象集合中的各个业务对象为操作对象在源环境数据库中获得所有记录, 并将所有记录存储至待导出数据集中得到产品数据文件,然后再与目标数据 库建立连接,读取产品数据文件并生成待导入数据集,以待导入数据集中的 业务对象为操作对象将各个业务对象按照预设处理规则进行预处理,得到预 处理操作标识,待用户确认后各个业务对象的预处理操作标识后,将产品数 据导入至目标数据库中从而实现产品数据由源环境至目标环境的迁移。

本发明中无论是将产品数据由源环境迁移出,还是将产品数据迁移至目标 环境的过程,其操作对象都是产品数据的业务对象,业务对象是产品数据的 高级分类,因此本方法能够整体显示源环境和目标环境的区别,其处理粒度 符合产品工厂的要求,适用于产品工厂下进行产品研发的机构或个人对产品 数据进行迁移。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。

图1为本发明实施例公开的产品工厂模式下的产品数据迁移方法的流程 图;

图2为本发明实施例公开的又一产品工厂模式下的产品数据迁移方法的 流程图;

图3为本发明实施例公开的产品工厂模式下的产品数据迁移方法中生成 产品数据文件的流程图;

图4为本发明实施例公开的产品工厂模式下的产品数据迁移装置的结构 示意图;

图5为本发明实施例公开的产品工厂模式下的产品数据迁移系统的结构 示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供了一种产品工厂模式下的产品数据迁移方法一 种实施例,包括:

步骤S101:接收用户输入的源环境、目标环境和产品标识信息;

产品工厂中包括开发环境、测试环境、准生产环境和生产环境,在产品 工厂中进行产品研发的过程中,需要将该产品的产品数据依次经过开发环境、 测试环境、准生产环境和生产环境,将产品数据在不同环境中的传输称为数 据迁移。

源环境是指产品数据迁出方所在的环境,目标环境是指产品数据迁入方 所在的环境,例如:若本次数据迁移是由开发环境至测试环境,则开发环境 是源环境,测试环境是目标环境。产品标识信息为待迁移产品的产品标识信 息,该产品标识信息可为待迁移产品的代码、编号、识别码等能够让软件程 序识别待迁移产品的一种标识。

步骤S102:与所述源环境的源数据库建立网络连接,并初始化待导出数 据集;

通过网络与源环境的数据库建立网络连接,建立网络连接之后,本方法 所在的系统便能够与源环境之间建立通信连接并进行通信,以便在源环境中 获取与待迁移产品的产品标识信息相关的产品数据。

本方法在与环境建立网络连接之后,初始化一个待导出数据集,该待导 出数据集为一个存储空间,用于存储从源环境中迁出的产品数据。

步骤S103:遍历预设实体联系图获取与所述产品标识信息相关的业务对 象集合;

在产品工厂构建数据模型之初便建立了实体联系图,实体联系图为一种 表示实体型、属性和联系的方法,用来描述现实世界的概念模型,在本发明 中预设实体联系图用于表示产品工厂中各个产品、各个产品中的业务对象, 以及每个业务对象中的数据表及记录的一个模型。具体的,根据待迁移产品 的产品标识信息在预设实体联系图中,首先获得与该产品直接相关的业务对 象,然后由直接的业务对象获得下一层业务对象,依次迭代直到获得与待迁 移产品的产品标识信息相关的所有最小业务对象集合。

步骤S104:以所述业务对象集合为依据在所述源数据库读取数据,获取 与所述产品标识信息对应的产品数据,所述产品数据包括所述业务对象集合 中各个业务对象的所有记录;

以业务对象集合为依据在源环境的数据库中进行查询,依次获得业务对 象集合中各个业务对象的所有记录,各个业务对象的各个所有记录即为需要 迁移的产品数据。具体的,根据业务对象集合获得各个业务对象,以其中一 个业务对象为例,根据该业务对象得到各个数据表,根据各个数据表得到数 据表下的各个记录。

步骤S105:将所述产品数据存储至所述待导出数据集,并生成产品数据 文件;

将上述步骤中获得的产品数据即各个业务对象的所有记录,按照业务对 象、数据表、记录的形式存储至所述待导出数据集中。各个业务对象的所有 记录即需要迁移的产品数据,将产品数据按照业务对象集合、业务对象、数 据表、记录层级存储方式,既保证了其逻辑性,又不破坏业务对象的完整性。

将产品数据存储至待导出数据集之后,根据待导出数据集生成产品数据 文件,本方法中产品数据以数据文件的形式存储,而不是现有技术中以数据 表的形式存储,增加了产品数据完整性。上述步骤完成之后,即完成了产品 数据由源环境迁出的过程,产品数据以产品数据文件的形式存储至待导出数 据集。

步骤S106:与所述目标环境的目标数据库建立网络连接,读取产品数据 文件,并根据产品数据文件生成待导入数据集;

产品数据由源环境导出之后,便需要将其导入至目标环境,即将上述步 骤中导出的产品数据文件导入至目标环境,首先与目标环境的数据库建立网 络连接,使本方法所在的系统能够与目标环境进行通信连接,然后读取本地 与待导入产品标识信息对应的产品数据文件,对产品数据文件进行解析,生 成需要导入至目标环境的待导入数据集。

步骤S107:以所述待导入数据集中产品数据的各个业务对象为依据,按 预设处理规则设置各个业务对象及其下记录的预处理操作标识;

数据迁移的理想情况为除去待迁移产品之外,两个环境的其他数据完全 一致,目标环境中没有待迁移产品,可以直接待迁移产品的产品数据的各个 业务对象的所有记录全部插入至目标环境,但是在产品工厂中由于每个环境 都有自己的用户,用户会对环境中的产品数据进行操作,虽然不同的环境之 间设立同步的过程,可以使不同环境下的产品数据保持一致,但是由于同步 存在时间间隔,所以在不同环境下两次同步之间的产品数据存在差异。

因此在将由源环境迁出的产品数据导入至目标环境的时候,有一定的预 设处理规则,为了保证数据迁移的正确性,一般执行预导入和实际导入两个 过程,在预导入过程中根据预设处理规则,以产品数据文件中的各个业务对 象为依据进行处理并得到各个业务对象及其下记录的预处理操作标识。

在预处理的过程中,有两种方式:一种是系统按照预设处理规则自动对 各个业务对象进行预处理;另一种是系统弹出预处理窗口,由用户了解分析 差异后按预设处理规则自行对各个业务对象进行预处理。各个业务对象的预 处理操作包括更新、忽略、退出或重命名,系统自动按预设处理规则进行处 理只有一种处理方式,用户处理可以按照当时的具体情况进行斟酌和判断可 以实现多种处理方式,用户处理更加人性化,系统处理简单方便,各有各自 的优势,其具体内容将在下述实施例中进行详细说明。

步骤S108:若所述产品数据按所述预处理操作标识导入至目标环境后满 足预设条件,则显示所述各个业务对象的预处理操作标识;

预设条件可以为空条件,或者所述产品数据依据预处理标识导入到目标 环境后符合产品数据逻辑约束关系。

其中产品数据逻辑约束关系是产品数据的业务对象间存在的数据约束, 不管在哪个环境,一个产品其下的业务对象间必须满足产品数据约束才是一 个正确的产品,数据逻辑约束关系包括:判断各个业务对象引用的对象是否 存在,派生的业务对象数据范围是否在基础对象的数据范围之内等一系列的 约束关系,此约束关系可以由根据自己的产品工厂是否需要而设定。

若产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则 经显示设备显示各个业务对象及其下记录的预处理操作标识,以便用户进行 进一步的确认,便于产品数据处理的准确性。

步骤S109:待用户确认所述预处理操作标识后,按各个业务对象的预处 理操作标识操作所述目标数据库,在一个事务内完成导入操作。

用户确认后各个业务对象的预处理操作标识之后,将待导入数据集中产 品数据的各个业务对象及其下记录按照预处理操作标识,操作目标数据库中。 例如:某一业务对象的预处理操作标识为插入,则将该业务对象下的记录全 部插入至目标数据库中;某一业务对象的预处理操作标识为更新,则依据对 该业务对象下的记录已设置的预处理操作标识对相应记录进行插入、更新或 者删除等操作。

本发明提供了一种产品工厂模式下的产品数据迁移方法,该方法中首先确 定源环境、目标环境和产品标识信息,根据预设的实体联系图获得与产品标 识信息相关的业务对象集合,以业务对象集合中的各个业务对象为操作对象 在源环境数据库中获得所有记录,并将所有记录存储至待导出数据集中得到 产品数据文件,然后与目标数据库建立连接,读取产品数据文件并生成待导 入数据集,以待导入数据集中的业务对象为操作对象将的各个业务对象按照 预设处理规则进行预处理,得到预处理操作标识,待用户确认后各个业务对 象的预处理操作标识后,将产品数据导入至目标数据库中,从而实现产品数 据由源环境至目标环境的迁移。

本发明中无论是将产品数据由源环境迁移出,还是将产品数据迁移至目 标环境的过程,其操作对象都是产品数据的业务对象,业务对象是产品数据 的高级分类,因此本方法能够整体显示源环境和目标环境的区别,其处理粒 度符合产品工厂的要求,因此本方法适用于对产品工厂中的产品数据进行迁 移。

如图2所示,本发明提供了一种产品工厂模式下的产品数据迁移方式的 第二实施例,具体包括以下步骤。

步骤S201:预先执行初始化操作;

预先执行的初始化操作包括,配置产品工厂的各个环境的数据库信息; 产品工厂包括生产环境、测试环境、准生产环境和生产环境,每个环境中都 包括多个数据库,数据库信息包括数据库的名称和地址,数据库信息为后续 产品数据文件的中各个业务对象中的记录提供了出处。

预先执行的初始化操作还包括:用户需要先登录到本方法所在的系统, 系统验证用户名和用户密码之后,接收用户的登录,用户名和用户密码由系 统管理员统一分配至有权限的用户。用户登录之后,系统在内存中记录用户 登录的用户名和登录时间,为后续产品数据迁移增加审计信息。

步骤S202:接收用户输入的源环境、目标环境和产品标识信息;

步骤S203:与源环境的源数据库建立网络连接,并初始化待导出数据集;

步骤S204:获取业务对象集合,即遍历预设实体联系图获取与产品标识 信息相关的业务对象集合;

步骤S205:获取产品数据,即以业务对象集合为依据在所述源数据库读 取数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述 业务对象集合中各个业务对象的所有记录;

步骤S206:将产品数据存储至待导出数据集,生成产品数据文件;

如图3所示,步骤S206具体包括:

步骤S301:根据所述待导出数据集生成数据集体;

本发明中产品数据文件是.XML的格式,产品数据文件包括数据集头,数 据集体和数字签名三部分组成,数据集体是产品数据文件的重要部分。根据 待导出数据集中的各个业务对象的所有记录生成产品数据文件的数据集体。

步骤S302:根据所述待导出数据集生成与所述产品标识信息相关的产品 信息概述;

待导出数据集中包括各个业务对象的所有记录,各个业务对象的记录中 还包括与产品标识信息相关的产品信息概述,产品信息概述包括与待迁移产 品有关的金融实体的代码、产品号、产品名称、产品描述信息等信息。产品 信息概述给出了待迁移产品的主要标识信息。

步骤S303:获取与所述产品标识信息相关的操作场景信息;

在系统的内存中获取与产品标识信息相关的操作场景信息,操作场景信 息包括:执行迁移操作的用户名,操作时间和与源数据库有关的数据库信息。

步骤S304:根据所述产品信息概述和所述操作场景信息设置数据集头;

将上述步骤中获得的产品信息概述和操作场景信息作为产品数据文件的 数据集头,数据集头中的内容相当于审计信息,其中包括执行迁移操作的用 户,操作时间,数据库信息,便于后续的对产品数据文件进行审计。

步骤S305:根据所述数据集体和所述数据集头计算数字签名;

为了防止产品数据文件被其他人员篡改,在产品数据文件中增加数字签 名,根据数据集头和数据集体的内容计算得到数据签名。

步骤S306:由所述数据集头、所述数据集体和所述数字签名生成所述产 品数据文件;由上述步骤中得到的数据集头、数据集体和数据签名共同构成 产品数据文件。

步骤S207:与所述目标环境的目标数据库建立网络连接,读取所述产品 数据文件;

步骤S208:验证数字签名是否正确,若正确则进入步骤S209,若不正确 则进入步骤S203。

在执行导入操作之前,首先验证产品数据文件中的数字签名是否正确, 根据产品数据文件中的数据集头和数据集体,按照同样的计算方法计算得到 当前数字签名,判断当前的数字签名是否与产品数据文件中的数字签名是否 一致,若一致表示产品数据文件没有被篡改,若不一致,则表示产品数据文 件已被篡改,不能执行导入操作,需要与源环境建立连接重新获得产品数据 文件。

步骤S209:生成待导入数据集,进行预处理操作并获得预处理操作标识, 即以所述产品数据文件中各个业务对象为依据,按预设处理规则进行预处理 获取各个业务对象的预处理操作标识;

步骤S209具体包括依次所述产品数据文件中每个业务对象的ID与目标 数据库中所有业务对象的ID进行对比;

若所述目标数据库中不含某一业务对象的ID,则该业务对象的预处理操 作标识为插入;

若所述目标数据库中含有某一业务对象的ID,则按预设冲突处理规则进 行处理,业务对象的预处理操作标识为更新、忽略、退出或重命名。

若所述目标数据库中含有某一业务对象的ID,在进行业务对象差异比较 时,将待导入业务对象下的记录和目标数据库中同ID业务对象下的记录进行 逐条比较,并对每条数据记录标记比较结果,数据记录的比较结果分为三类: 相同、不同和多余。

对产品数据文件中的业务对象和目标数据库中记录比较结果进行统计, 由于只关注差异性,可用3位二进制码0/1标示符XXX表示比较结果。第一 位表示产品数据文件的业务对象和目标数据库中业务对象是否存在有差异的 数据记录,第二位表示产品数据文件的业务对象是否存在多余的数据记录, 第三位表示目标数据库中是否存在多余的数据记录。业务对象差异可归为八 种情况:000~111。以000和111为例,000表示两个业务对象完全一致;111 表示两个业务对象存在不一致记录,待导入业务对象存在多余记录,目标数 据库中的业务对象存在多余记录。

预设冲突处理规则用于表示当产品数据文件与源环境中的某个业务对象 存在差异的时候,应该采用的处理措施,每条冲突处理规则可用一个四元组 进行表示:

<业务对象,业务对象差异类型,是否自动处理,处理方式>

业务对象即为产品数据集中的业务对象,业务对象差异类型为产品数据 文件中的业务对象和目标数据库中业务对象的差异分类,取值为上文8种情 况之一,是否自动处理指示系统自动处理差异还是弹出界面让用户手工处理。

处理方式包括:

1)更新

将目标数据库中的同一ID的业务对象更新为待导入数据集中的业务对 象。对待导入数据集或目标数据库的业务对象的记录执行操作:相同的记录 不进行操作,目标数据库中不存在的记录执行插入操作,两者不一致的记录 执行更新操作,目标数据库中多余的记录执行删除操作。

2)忽略

忽略是指产品数据文件中的业务对象和目标数据库中业务对象发生冲突 的时候,放弃使用产品数据文件中业务对象更新目标数据库中相同ID的业务 对象。当忽略产品数据文件中某个业务对象,整个产品数据文件完成导入操 作后,目标数据库中新导入产品数据文件中的业务对象将引用的是原目标数 据库中的相同ID业务对象。

例如:生产环境对某个业务对象取值进行了修改,生产环境中该业务对 象相比开发环境中的业务对象是最新的,此时不应该用旧的数据覆盖新的数 据。因此虽然两者的数据不一致,但是不能将产品数据文件中的业务对象替 换目标数据库中的业务对象。

此时与产品数据文件中具有引用关系的业务对象,将因为产品数据文件 中的业务对象没有导入而缺少引用依据,为了使得各个业务对象存在应用依 据,将引用产品数据文件中的该业务对象的其他业务对象的引用关系,转至 目标数据库中的原相同ID的业务对象,如此便不会出现引用出现问题的情况。

3)退出

当发现产品数据文件存在错误,或对该执行的处理方式不确定时,继续 导入将会对目标数据库中已有产品产生不利影响。此时用户选择退出,放弃 继续执行导入操作,放弃整个产品数据文件的导入操作,直接退出将对目标 数据库不产生任何操作。

4)重命名

保持产品数据文件中的业务对象中非ID数据不变,使用新的ID替换原 有ID。使用重命名后,新ID的业务对象和目标数据库中原有ID业务对象将 不存在冲突。待导入产品其他业务对象中对原有ID业务对象的引用也替换为 新ID的业务对象。

例如:生产环境建立了一个业务对象,开发环境建立了另一个业务对象, 由于开发环境和生产环境没有及时同步,这两个对象具有相同的ID。这两个 业务对象都是正确的,都应该保留。

处理方式根据是否自动处理具有不同的取值空间,自动处理方式为系统 预先根据程序设计的处理方式,有且只有唯一的处理方式,而手工处理可以 有多种处理方式。用户可执行的操作类型,根据业务对象的性质不同,可能 存在差异,通过冲突处理规则,可以实现对业务对象冲突进行灵活的、细粒 度的、差异化的处理。

步骤S210:判断产品数据按预处理标识导入至目标环境后是否符合产品 数据逻辑约束关系;若不符合则直接退出导入操作,若正确则进入步骤S211。

步骤S211:显示预处理操作标识,即显示所述产品数据中各个业务对象 及其下记录的预处理操作标识;

步骤S212:将产品数据导入至目标数据库中,即待用户确认所述预处理 操作标识后,按所述各个业务对象及其下记录的预处理操作标识操作所述目 标数据库,在一个事务内完成导入操作;

步骤S213:生成操作日志。

在执行产品数据文件导入的过程中,会依据对目标数据库的操作生成操 作日志。日志命名方式为产品数据导入文件的名称加上产品导入操作系统时 间,即:导入数据文件名称+"yyyy-MM-dd HH.mm.ss"+".log"。日志的结构格 式为.XML格式,包含导入操作的场景信息和实际对数据库进行的操作详情, 并使用数字签名保证数据完整性。

对于数据完整性的保证,除了本方案使用数字签名技术外,还可以使用 基于哈希的消息验证代码(HMAC)技术。

本发明中无论是将产品数据由源环境迁移出,还是将产品数据迁移至目 标环境的过程,其操作对象都是产品数据的业务对象,业务对象是产品数据 的高级分类,能够整体显示源环境和目标环境中两者的区别,其处理粒度符 合产品工厂的要求,因此本方法适用于对产品工厂中的产品数据进行迁移。

此外本发明在产品数据文件中还增加了产品信息概述和操作场景信息等 审计信息,方便了用户对数据迁移过程进行审计,另外还增加了数字签名, 保证了产品数据文件的完整性,防止了产品数据文件被恶意篡改的情况出现。

如图4所示,本发明还提供了一种产品工厂模式下的产品数据迁移装置, 包括:

接收单元100,用于接收用户输入的源环境、目标环境和产品标识信息;

第一网络单元200,用于与所述源环境的源数据库建立网络连接,并初始 化待导出数据集;

第一获取单元300,用于遍历预设实体联系图获取与所述产品标识信息相 关的业务对象集合;

第二获取单元400,用于以所述业务对象集合为依据在所述源数据库读取 数据,获取与所述产品标识信息对应的产品数据,所述产品数据包括所述业 务对象集合中各个业务对象的所有记录;

生成单元500,用于将产品数据存储至所述待导出产品数据集,并生成产 品数据文件;

第二网络单元600,用于与所述目标环境的目标数据库建立网络连接,读 取所述产品数据文件,并根据所述产品数据文件生成待导入数据集;

第三获取单元700,用于以所述待导入数据集中产品数据的各个业务对象 为依据,按预设处理规则进行预处理获取各个业务对象及其下记录的预处理 操作标识;

显示单元800,用于若所述产品数据按所述预处理操作标识导入至目标环 境后满足预设条件,则显示所述各个业务对象的预处理操作标识;

导入单元900,用于待用户确认所述预处理操作标识后,按所述各个业务 对象及其下记录的预处理操作标识操作所述目标数据库,在一个事务内完成 导入操作。

如图5所示,本发明还提供了一种产品工厂模式下的产品数据迁移系统, 包括:

源环境1000,目标环境2000和处理器3000;

所述处理器3000,用于接收用户输入的源环境、目标环境和产品标识信 息,与所述源环境的源数据库建立网络连接,并初始化待导出数据集,遍历 预设实体联系图获取与所述产品标识信息相关的业务对象集合,以所述业务 对象集合为依据在所述源数据库读取数据,获取与所述产品标识信息对应的 产品数据,所述产品数据包括所述业务对象集合中各个业务对象的所有记录, 将所述产品数据存储至所述待导出数据集,并生成产品数据文件,与所述目 标环境的目标数据库建立网络连接,读取所述产品数据文件并根据所述产品 数据文件生成待导入数据集,以所述待导入数据集中产品数据的各个业务对 象为依据,按预设处理规则设置各个业务对象及其下记录的预处理操作标识, 若所述产品数据按所述预处理操作标识导入至目标环境后满足预设条件,则 显示所述产品数据中各个业务对象及其下记录的预处理操作标识,待用户确 认所述预处理操作标识后,按所述各个业务对象及其下记录的预处理操作标 识操作所述目标数据库,在一个事务内完成导入操作。

本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的 产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样 的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可 以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若 干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备 或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前 述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、 随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可 以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都 是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号