《数据转换的方法和系统.pdf》由会员分享,可在线阅读,更多相关《数据转换的方法和系统.pdf(13页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103593199 A (43)申请公布日 2014.02.19 CN 103593199 A (21)申请号 201310635242.3 (22)申请日 2013.11.29 G06F 9/44(2006.01) (71)申请人 迈普通信技术股份有限公司 地址 610041 四川省成都市高新区九兴大道 16 号迈普大厦 (72)发明人 杨斌 (74)专利代理机构 成都宏顺专利代理事务所 ( 普通合伙 ) 51227 代理人 周永宏 (54) 发明名称 数据转换的方法和系统 (57) 摘要 本发明公开了一种数据结构转换的方法和系 统, 属于计算机应用软件技术领域, 。
2、包括以下步 骤 : A、 创建第一系统的基础脚本, 并在所述基础 脚本中定义第一系统需求的数据结构 ; B、 创建与 待兼容的第二系统对应的扩展脚本, 在所述扩展 脚本中定义所述待兼容的第二系统需求的数据结 构, 保存所述待兼容的第二系统与所述扩展脚本 的对应关系。本发明的有益效果 : 采用脚本解释 执行的特性, 采用脚本做数据转换, 避免重新编译 和发布的过程。降低重新编译和发布带来的时间 开销, 提高了效率, 特别适用于调试场景下的数据 转换测试, 能够及时响应需求的变化。 (51)Int.Cl. 权利要求书 2 页 说明书 8 页 附图 2 页 (19)中华人民共和国国家知识产权局 (1。
3、2)发明专利申请 权利要求书2页 说明书8页 附图2页 (10)申请公布号 CN 103593199 A CN 103593199 A 1/2 页 2 1. 一种数据转换的方法, 其特征在于, 包括以下步骤 : A、 创建第一系统的基础脚本, 并在所述基础脚本中定义第一系统需求的数据结构 ; B、 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所述待兼容的第 二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应关系 ; C、 第一系统通过所述待兼容的第二系统提供的接口获取数据, 并调用第一系统的基础 脚本, 将从所述待兼容的第二系统获取的数据传入到第一系统的基础脚。
4、本 ; D、 由第一系统的基础脚本调用所述扩展脚本, 并且将第一系统的数据结构以及从所述 待兼容的第二系统获取到的数据通过参数传递的方式传入所述扩展脚本中 ; E、 在所述扩展脚本中, 将传入的所述第一系统的数据结构与所述待兼容的第二系统的 数据结构进行映射, 并且将从所述待兼容的第二系统获取到的数据进行映射转换后, 存入 第一系统的数据结构中 ; F、 第一系统的基础脚本向第一系统的脚本调用程序返回经过映射转换后的数据。 2.根据权利要求1所述的方法, 其特征在于, 步骤A中所述的第一系统需求的数据结构 是固定无变化的。 3. 根据权利要求 1 或 2 所述的方法, 其特征在于, 所述步骤 。
5、B 中, 所述的待兼容的第二 系统至少有一个, 为每一个待兼容的第二系统分别创建一一对应的扩展脚本。 4. 根据权利要求 3 所述的方法, 其特征在于, 所述步骤 D 具体包括 : 第一系统的基础脚 本调用所述扩展脚本, 将第一系统的数据结构以及从所述待兼容的第二系统获取到的数据 经过格式转换后, 通过参数传递的方式传入所述扩展脚本中。 5. 根据权利要求 4 所述的方法, 其特征在于, 所述格式转换, 是指转换为字符串和 / 或 键值表结构和 / 或 JSON 对象。 6. 一种数据转换的系统, 其特征在于, 包括第一系统和至少一个待兼容的第二系统, 其 中, 所述第一系统, 用于创建第一系。
6、统的基础脚本, 并在所述基础脚本中定义第一系统需求 的数据结构 ; 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所述待兼 容的第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应关系 ; 通过所述待兼容的第二系统提供的接口获取数据, 并调用第一系统的基础脚本, 将从所述 待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 所述基础脚本调用所述扩展脚 本, 并且将第一系统的数据结构以及从所述待兼容的第二系统获取到的数据通过参数传递 的方式传入所述扩展脚本中 ; 在所述扩展脚本中, 将传入的所述第一系统的数据结构与所 述待兼容的第二系统的数据结构进行映射, 并。
7、且将从所述待兼容的第二系统获取到的数据 进行映射转换后, 存入第一系统的数据结构中 ; 所述基础脚本向第一系统的脚本调用程序 返回经过映射转换后的数据 ; 所述至少一个待兼容的第二系统, 用于向第一系统提供获取数据的接口。 7. 根据权利要求 6 所述的系统, 其特征在于 : 所述第一系统具体包括 : 脚本创建模块, 用于创建第一系统的基础脚本, 并在所述基础脚本中定义第一系统需 求的数据结构 ; 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所述待 兼容的第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应关 系 ; 数据获取模块, 用于通过待兼容的第二系统提。
8、供的接口获取数据, 并调用第一系统的 权 利 要 求 书 CN 103593199 A 2 2/2 页 3 基础脚本, 将从所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 数据转换模块, 用于利用第一系统的基础脚本调用所述扩展脚本, 并且将第一系统的 数据结构以及从所述待兼容的第二系统获取到的数据通过参数传递的方式传入所述扩展 脚本中 ; 利用所述扩展脚本, 将传入的所述第一系统的数据结构与所述待兼容的第二系统 的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的数据进行映射转换后, 存 入第一系统的数据结构中 ; 利用第一系统的基础脚本向第一系统的脚本调用程序返回经过 映射。
9、转换后的数据。 8. 根据权利要求 6 或 7 所述的系统, 其特征在于 : 所述待兼容的第二系统至少有一个, 为每一个待兼容的第二系统创建分别创建一一对应的扩展脚本。 9. 根据权利要求 8 所述的系统, 其特征在于 : 所述数据转换模块还用于, 通过基础脚本 调用所述扩展脚本, 将第一系统的数据结构以及从所述待兼容的第二系统获取到的数据经 过格式转换后, 通过参数传递的方式传入所述扩展脚本中。 10. 根据权利要求 9 所述的系统, 其特征在于 : 所述格式转换, 是指转换为字符串和 / 或键值表结构和 / 或 JSON 对象。 权 利 要 求 书 CN 103593199 A 3 1/8。
10、 页 4 数据转换的方法和系统 技术领域 0001 本发明涉及计算机应用软件技术领域, 尤其涉及一种数据结构转换的方法和系 统。 背景技术 0002 随着网络的普及, 应用类软件进入了高速发展期, 应用软件系统之间的关系也逐 渐紧密, 多个应用系统之间相互协助提供丰富功能的需求也越来越强烈。 但是, 多个不同应 用系统之间在交换数据的过程中, 常常出现系统之间数据结构不匹配的情况。针对这种情 况, 常用的方法是做数据转换, 当前较常用的方式是采用系统开发使用的语言进行数据转 换, 然而, 这种方式存在一定的局限性。 0003 针对不同系统之间的数据转换一般是采用系统使用的编程语言进行编程开发,。
11、 做 相应的数据转换编码, 然后编译生成目标文件进行支持, 例如 : 系统采用 java 语言开发, 当 系统与其它系统进行数据转换时, 一般是就采用 java 语言编程做数据转换处理, 然后对编 程产生的源代码进行编译, 生成目标文件即class文件进行支持。 这种方式的缺点在于 : 在 编码完毕后需要进行编译, 并且重新发布、 运行系统, 才能进行数据兼容性支撑。 0004 对于应用类软件而言, 客户的需求变化比较频繁, 特别是对于在客户处现场演示、 调试等操作过程是非常困难的, 将严重影响调试效率, 其可测试性非常差。 0005 尤其是针对如下场景 : 开发人员在室内进行支持, 演示、 。
12、调试人员在客户处无法进 行编码、 编译、 打包、 发布等动作, 需要室内开发人员进行技术支持, 就必然要将需求提交给 室内, 室内进行对应开发并更新版本后提交给室外, 室外演示、 调试人员再重新部署、 运行, 如果此时客户需求再次变化, 那么必然需要再次重复该过程。 而该过程非常耗费时间, 其投 入产出比非常低, 严重影响效率并且无法及时响应客户的需求。 0006 当前通用的数据转换方法虽然可行, 但是无法做到快速转换。因为现阶段大多数 的系统开发采用的编程语言都需要编译、 链接等过程, 对这些系统而言, 做数据转换就意味 着需要重新编译、 发布版本, 这种方式效率低下, 特别是调试场景中的数。
13、据转换, 无法保证 实时性。 发明内容 0007 本发明的目的在于为了改善多系统之间数据转换时需要进行重新编译、 发布的低 效而提出的一种数据转换的方法和系统。 0008 为了实现以上发明目的, 本发明采取的技术方案如下 : 一种数据转换的方法, 包括 以下步骤 : 0009 A、 创建第一系统的基础脚本, 并在所述基础脚本中定义第一系统需求的数据结 构 ; 0010 B、 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所述待兼容 的第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应关系 ; 说 明 书 CN 103593199 A 4 2/8 页 5 001。
14、1 C、 第一系统通过所述待兼容的第二系统提供的接口获取数据, 并调用第一系统的 基础脚本, 将从所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 0012 D、 由第一系统的基础脚本调用所述扩展脚本, 并且将第一系统的数据结构以及从 所述待兼容的第二系统获取到的数据通过参数传递的方式传入所述扩展脚本中 ; 0013 E、 在所述扩展脚本中, 将传入的所述第一系统的数据结构与所述待兼容的第二系 统的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的数据进行映射转换后, 存入第一系统的数据结构中 ; 0014 F、 第一系统的基础脚本向第一系统的脚本调用程序返回经过映射转换后的数。
15、据。 进一步的, 步骤 A 中所述的第一系统需求的数据结构是固定无变化的。 0015 进一步的, 所述步骤 B 中, 所述的待兼容的第二系统至少有一个, 为每一个待兼容 的第二系统分别创建一一对应的扩展脚本。 0016 进一步的, 所述步骤 D 具体包括 : 第一系统的基础脚本调用所述扩展脚本, 将第一 系统的数据结构以及从所述待兼容的第二系统获取到的数据经过格式转换后, 通过参数传 递的方式传入所述扩展脚本中。 0017 进一步的, 所述格式转换, 是指转换为字符串和 / 或键值表结构和 / 或 JSON 对象。 0018 为了解决上述问题, 本发明还提出了一种数据转换的系统, 包括第一系统。
16、和至少 一个待兼容的第二系统, 其中, 0019 所述第一系统, 用于创建第一系统的基础脚本, 并在所述基础脚本中定义第一系 统需求的数据结构 ; 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所 述待兼容的第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应 关系 ; 通过所述待兼容的第二系统提供的接口获取数据, 并调用第一系统的基础脚本, 将从 所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 所述基础脚本调用所述扩 展脚本, 并且将第一系统的数据结构以及从所述待兼容的第二系统获取到的数据通过参数 传递的方式传入所述扩展脚本中 ; 在所述扩展脚本中。
17、, 将传入的所述第一系统的数据结构 与所述待兼容的第二系统的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的 数据进行映射转换后, 存入第一系统的数据结构中 ; 所述基础脚本向第一系统的脚本调用 程序返回经过映射转换后的数据 ; 0020 所述至少一个待兼容的第二系统, 用于向第一系统提供获取数据的接口。 0021 进一步的, 所述第一系统具体包括 : 0022 脚本创建模块, 用于创建第一系统的基础脚本, 并在所述基础脚本中定义第一系 统需求的数据结构 ; 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所 述待兼容的第二系统需求的数据结构, 保存所述待兼容的第二系统与所。
18、述扩展脚本的对应 关系 ; 0023 数据获取模块, 用于通过待兼容的第二系统提供的接口获取数据, 并调用第一系 统的基础脚本, 将从所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 0024 数据转换模块, 用于利用第一系统的基础脚本调用所述扩展脚本, 并且将第一系 统的数据结构以及从所述待兼容的第二系统获取到的数据通过参数传递的方式传入所述 扩展脚本中 ; 利用所述扩展脚本, 将传入的所述第一系统的数据结构与所述待兼容的第二 系统的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的数据进行映射转换 说 明 书 CN 103593199 A 5 3/8 页 6 后, 存入第一。
19、系统的数据结构中 ; 利用第一系统的基础脚本向第一系统的脚本调用程序返 回经过映射转换后的数据。 0025 进一步的, 所述待兼容的第二系统至少有一个, 为每一个待兼容的第二系统创建 分别创建一一对应的扩展脚本。 0026 进一步的, 所述数据转换模块还用于, 通过基础脚本调用所述扩展脚本, 将第一系 统的数据结构以及从所述待兼容的第二系统获取到的数据经过格式转换后, 通过参数传递 的方式传入所述扩展脚本中。 0027 进一步的, 所述格式转换, 是指转换为字符串和 / 或键值表结构和 / 或 JSON 对象。 0028 本发明的有益效果 : 本发明采用脚本解释执行的特性, 采用脚本做数据转换。
20、, 避免 重新编译和发布的过程。 降低重新编译和发布带来的时间开销, 提高了效率, 特别适用于调 试场景下的数据转换测试, 能够及时响应需求的变化。 0029 详细说明 : 1. 脚本基于解释执行, 无须进行重新编译和发布, 具有良好的实时性 ; 2. 通过扩展脚本可以同时与不同系统的数据进行转换, 有良好的扩展性 ; 3. 非常适用于客 户现场调试, 能够快速响应客户需求的变化。 附图说明 0030 图 1 为本发明的方法流程图 ; 0031 图 2 为本发明的系统架构示意图。 具体实施方式 0032 为使本发明的目的、 技术方案及优点更加清楚明白, 以下参照附图并举实施例, 对 本发明做进。
21、一步详细说明。 0033 如图 1 所示, 一种数据转换的方法, 包括以下步骤 : 0034 A、 创建第一系统的基础脚本, 并在所述基础脚本中定义第一系统需求的数据结 构 ; 0035 B、 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所述待兼容 的第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应关系 ; 0036 C、 第一系统通过所述待兼容的第二系统提供的接口获取数据, 并调用第一系统的 基础脚本, 将从所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 0037 D、 由第一系统的基础脚本调用所述扩展脚本, 并且将第一系统的数据结构以及从 。
22、所述待兼容的第二系统获取到的数据通过参数传递的方式传入所述扩展脚本中 ; 0038 E、 在所述扩展脚本中, 将传入的所述第一系统的数据结构与所述待兼容的第二系 统的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的数据进行映射转换后, 存入第一系统的数据结构中 ; 0039 F、 第一系统的基础脚本向第一系统的脚本调用程序返回经过映射转换后的数据。 0040 步骤 A 中所述的第一系统需求的数据结构是固定无变化的。 0041 所述步骤 B 中, 所述的待兼容的第二系统至少有一个, 为每一个待兼容的第二系 统分别创建一一对应的扩展脚本。 0042 所述步骤 D 具体包括 : 第一系统的基。
23、础脚本调用所述扩展脚本, 将第一系统的数 说 明 书 CN 103593199 A 6 4/8 页 7 据结构以及从所述待兼容的第二系统获取到的数据经过格式转换后, 通过参数传递的方式 传入所述扩展脚本中。 0043 所述格式转换, 是指转换为字符串和 / 或键值表结构和 / 或 JSON 对象。 0044 为了解决上述问题, 本发明还提出了一种数据转换的系统, 包括第一系统和至少 一个待兼容的第二系统, 其中, 0045 所述第一系统, 用于创建第一系统的基础脚本, 并在所述基础脚本中定义第一系 统需求的数据结构 ; 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所 述待兼容的。
24、第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应 关系 ; 通过所述待兼容的第二系统提供的接口获取数据, 并调用第一系统的基础脚本, 将从 所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 所述基础脚本调用所述扩 展脚本, 并且将第一系统的数据结构以及从所述待兼容的第二系统获取到的数据通过参数 传递的方式传入所述扩展脚本中 ; 在所述扩展脚本中, 将传入的所述第一系统的数据结构 与所述待兼容的第二系统的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的 数据进行映射转换后, 存入第一系统的数据结构中 ; 所述基础脚本向第一系统的脚本调用 程序返回经过映射转。
25、换后的数据 ; 0046 所述至少一个待兼容的第二系统, 用于向第一系统提供获取数据的接口。 0047 参见图 2 所示, 所述第一系统具体包括 : 0048 脚本创建模块, 用于创建第一系统的基础脚本, 并在所述基础脚本中定义第一系 统需求的数据结构 ; 创建与待兼容的第二系统对应的扩展脚本, 在所述扩展脚本中定义所 述待兼容的第二系统需求的数据结构, 保存所述待兼容的第二系统与所述扩展脚本的对应 关系 ; 0049 数据获取模块, 用于通过待兼容的第二系统提供的接口获取数据, 并调用第一系 统的基础脚本, 将从所述待兼容的第二系统获取的数据传入到第一系统的基础脚本 ; 0050 数据转换模。
26、块, 用于利用第一系统的基础脚本调用所述扩展脚本, 并且将第一系 统的数据结构以及从所述待兼容的第二系统获取到的数据通过参数传递的方式传入所述 扩展脚本中 ; 利用所述扩展脚本, 将传入的所述第一系统的数据结构与所述待兼容的第二 系统的数据结构进行映射, 并且将从所述待兼容的第二系统获取到的数据进行映射转换 后, 存入第一系统的数据结构中 ; 利用第一系统的基础脚本向第一系统的脚本调用程序返 回经过映射转换后的数据。 0051 所述待兼容的第二系统至少有一个, 为每一个待兼容的第二系统创建分别创建 一一对应的扩展脚本。 0052 所述数据转换模块还用于, 通过基础脚本调用所述扩展脚本, 将第一。
27、系统的数据 结构以及从所述待兼容的第二系统获取到的数据经过格式转换后, 通过参数传递的方式传 入所述扩展脚本中。 0053 所述格式转换, 是指转换为字符串和 / 或键值表结构和 / 或 JSON 对象。 0054 具体实施例一 : 第一系统的数据结构与待兼容的第二系统的数据结构做映射的具 体过程, 举例说明如下 : 在第一系统的基础脚本中定义一个用户数据结构如下 : userName, userAge ; 而另一个待兼容的待兼容的第二系统相对应的扩展脚本中定义的用户数据结构 如下 : name, age ; 此时将 name 映射为 userName, 将 age 映射为 userAge ;。
28、 并且, 将传入扩展 说 明 书 CN 103593199 A 7 5/8 页 8 脚本的对应的其他系统的数据经过映射转换, 存入第一系统的数据结构中。比如 : 该其他 系统的数据经过格式转换后传入扩展脚本的数据为 : name: 张三 ,age:20, 在做映射 转换时, 将 name 的值赋予 userName, 将 age 的值赋予 userName, 最终映射转换后的数据为 : username: 张三 ,userAge:20 ; 0055 数据结构在做映射时, 可以通过将其他系统获取的数据转换为字符串、 键值 表结构等, 当然也可以是其他脚本可以理解的数据结构, 比如轻量级的数据交换。
29、格式 (JSON,JavaScript Object Notation)。 0056 以上本发明的实施例, 将待兼容的第二系统的数据结构向第一系统进行转换, 同 时, 也可以将第一系统的数据结构向待兼容的第二系统进行转换, 其转换方式相同, 差异点 在于以上所述的是从待兼容的第二系统获取数据后向第一系统进行转换。 下述说明如何将 第一系统的数据结构向待兼容的第二系统进行转换, 通过调用待兼容的第二系统提供的接 口, 向待兼容的第二系统发送转换后的数据 ; 具体实施例如下 : 0057 第一系统有人员信息的数据为 : 0058 0059 0060 在第一系统中存储的数据结构为 : 0061 na。
30、me:“张三” ,age:22,job:“IT” 。 0062 现在要将第一系统的这些数据推送到待兼容的第二系统, 比如第二系统为 QQ, 作 为其基础数据的一部分, 如果按常规方式, 要么在第一系统中将数据结构先转换成第二系 统要求的数据格式, 要么第二系统自己将收到的数据格式转换成自己需要的格式 ; 而通常 以上做法都是在系统内部采用编译性语言编写, 比如 java、 c、 c+ 等, 这些方式不利于动态 扩展。 比如, 还需要将这些数据推送到待兼容的第三系统、 第四系统就需要在系统内做非 常多的编译、 发布等动作, 特别不适合于客户现场测试、 修改的场景。 0063 本发明采用的做法是,。
31、 采用解释性语言, 比如 javaScript, 进行编写做数据转换, 这样做具有非常好的扩展性。比如 : 0064 姓名年龄工作性质 张三22IT 0065 在第二系统程序中存储的数据结构为 : 0066 userName:“张三” ,userAge:22,UserJob:“IT” 0067 可以看出, 两个系统的数据结构是不相同的。第一系统的数据无法直接给第二系 统使用。这时就需要进行数据转换。 0068 本发明采用如下方式进行转换, 例如在 javaScript 脚本中 : 0069 说 明 书 CN 103593199 A 8 6/8 页 9 0070 0071 具体实施例三 : 当然。
32、, 对于更复杂的情况, 比如同一个数据需要推送到不同的系统 时, 可以通过做扩展脚本的方式进行。 0072 比如 : 0073 数据被推送到第二系统、 第三系统、 第四系统 0074 做法如下 : 0075 说 明 书 CN 103593199 A 9 7/8 页 10 0076 第二系统的扩展脚本如下 : 0077 0078 第三系统的扩展脚本如下 : 0079 说 明 书 CN 103593199 A 10 8/8 页 11 0080 0081 以此类推。这些扩展脚本和第一系统的主体脚本都存储在第一系统上, 需 0082 要时可以随意扩展。 0083 一种数据转换的方法和系统, 其主要目的。
33、是将不同系统之间的数据通过脚本的方 式进行相互转换, 解决不同系统之间数据结构的差异问题, 使得不同系统的数据可以相互 兼容。 0084 本领域的普通技术人员将会意识到, 这里所述的实施例是为了帮助读者理解本发 明的实施方法, 应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领 域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其 它各种具体变形和组合, 这些变形和组合仍然在本发明的保护范围内。 说 明 书 CN 103593199 A 11 1/2 页 12 图 1 说 明 书 附 图 CN 103593199 A 12 2/2 页 13 图 2 说 明 书 附 图 CN 103593199 A 13 。