《基于条件规则的动态数据结构和关系的构建装置和构建方法.pdf》由会员分享,可在线阅读,更多相关《基于条件规则的动态数据结构和关系的构建装置和构建方法.pdf(20页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103714129 A (43)申请公布日 2014.04.09 CN 103714129 A (21)申请号 201310683330.0 (22)申请日 2013.12.12 G06F 17/30(2006.01) G06F 9/44(2006.01) (71)申请人 用友软件股份有限公司 地址 100094 北京市海淀区北清路 68 号用 友软件园 (72)发明人 李静 罗涛 (74)专利代理机构 北京中恒高博知识产权代理 有限公司 11249 代理人 刘洪京 (54) 发明名称 基于条件规则的动态数据结构和关系的构建 装置和构建方法 (57) 摘要 本发明提供。
2、了一种基于条件规则的动态数据 结构和关系的构建装置, 包括 : 动态实体对象的 模型构建模块, 用于提供能让用户定义实体对象 的可变属性和关系的功能, 此模块输出实体定义 文件 ; 动态实体对象的部署模块, 以实体定义文 件作为输入, 用于将实体对象模型映射成数据库 物理存储结构, 实现对动态实体对象的物理部署 ; 动态实体对象的存取访问模块, 提供动态实体对 象的存取访问服务, 使用户应用程序能创建、 使 用、 并存储对象实例。 本发明还提供了一种基于条 件规则的动态数据结构和关系的构建方法。通过 本发明的技术方案, 打破了系统构建中普遍采用 的静态数据结构和关系, 通过采用动态数据结构 和。
3、关系, 软件开发人员能够解决更复杂的业务问 题。 (51)Int.Cl. 权利要求书 2 页 说明书 10 页 附图 7 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书10页 附图7页 (10)申请公布号 CN 103714129 A CN 103714129 A 1/2 页 2 1. 一种基于条件规则的动态数据结构和关系的构建装置, 其特征在于, 包括 : 动态实体对象的模型构建模块 (102) , 用于提供能让用户定义实体对象的可变属性和 关系的功能, 此模块输出实体定义文件, 动态实体对象的部署模块 (104) , 以实体定义文件作为输入, 用于将。
4、实体对象模型映射 成数据库物理存储结构, 实现对动态实体对象的物理部署。 2. 根据权利要求 1 所述的基于条件规则的动态数据结构和关系的构建装置, 其特征在 于, 还包括 : 动态实体对象的存取访问服务模块 106, 用于基于所述动态实体对象的模型构建模块 (102) 完成动态实体对象的模型构建、 随后基于所述动态实体对象的部署模块 104 完成动 态实体对象的物理部署后, 提供动态实体对象的存取访问服务, 使用户应用程序能创建、 使 用、 并存储对象实例。 3. 根据权利要求 2 所述的基于条件规则的动态数据结构和关系的构建装置, 其特征在 于, 所述动态实体对象的存取访问服务模块 (10。
5、6) , 具体包括 : 实体存取访问子过程执行模块, 用于接收至少包含应用模式、 场景、 上下文环境、 业务 类型的外界参数并输入到元数据快照子过程 ; 元数据快照子过程执行模块, 用于基于输入的外界参数, 以实体定义文件中的动态属 性和关系的规则条件作为判定依据, 自动计算规则条件表达式, 找出所有符合条件的属性 和关系, 形成精确匹配当前应用场景的实体对象元数据 ; 数据访问子过程执行模块, 用于基于实体对象元数据输入, 根据映射转换规则, 将实体 对象元数据映射成数据库SQL脚本, 执行SQL脚本, 向应用程序返回对象数据或将对象数据 写入数据库。 4.根据权利要求1至3中任一项所述的基。
6、于条件规则的动态数据结构和关系的构建装 置, 其特征在于, 所述动态实体对象的部署模块 (104) , 具体包括 : 部署服务子过程执行模块, 用于接收实体定义文件并输入到 DDL 映射子过程 ; DDL 映射子过程执行模块, 用于基于实体对象模型到数据库物理表结构的转换规则, 将 所述实体定义文件解析成关系数据库的 DDL 脚本 ; 进一步地, 所述DDL映射子过程执行模块将所述实体定义文件解析成关系数据库的DDL脚本的操 作中, 使用的转换规则具体包括 : (1) 为实体定义一个主表, 建立实体到主表的映射关系 ; (2) 将实体定义文件中的固定属性和固定关系定义转换成主表字段定义, 并建。
7、立实体 属性和关系到数据库表字段的映射关系 ; (3) 将不同条件规则所对应的每一块动态结构定义一个动态结构表, 并建立动态结构 与动态结构表的映射关系 ; (4) 将动态结构中的动态属性和动态关系定义转换成对应的动态结构表的字段定义, 并建立实体的属性和关系到数据库表字段的映射关系。 5.根据权利要求1至3中任一项所述的基于条件规则的动态数据结构和关系的构建装 置, 其特征在于, 所述动态实体对象的模型构建模块 (102) , 具体包括 : 静态结构定义模块, 用于提供能让用户定义实体的固有属性特征的固定属性、 以及定 义实体与外部实体的固有关系特征的固定关系的实体静态定义功能 ; 权 利 。
8、要 求 书 CN 103714129 A 2 2/2 页 3 动态结构定义模块, 用于提供能让用户描述定义动态结构适用的条件规则、 描述定义 实体的动态属性特征的动态属性、 以及描述定义实体与外部实体的动态关系特征的动态关 系的实体动态定义功能 ; 条件规则定义模块, 用于定义实体对象的非固定属性或关系所适用 / 启用的规则条 件 ; 该规则条件能够关联到不同的应用模式、 场景、 上下文、 业务类型 ; 通过为该非固定属 性或关系限定条件规则, 使得对象在不同的情况下呈现不同的结构和关系。 6. 一种基于条件规则的动态数据结构和关系的构建方法, 其特征在于, 包括 : 步骤 202 : 提供能。
9、让用户构建实体对象的可变属性和关系的建模功能, 此建模功能输 出实体定义文件 ; 步骤 204 : 基于所述步骤 202 提供输出的实体定义文件, 将实体对象模型映射成数据库 物理存储结构, 实现对动态实体对象的物理部署。 7. 根据权利要求 6 所述的基于条件规则的动态数据结构和关系的构建方法, 其特征在 于, 在所述步骤 204 之后, 还包括 : 步骤 206 : 基于所述步骤 204 构建的动态实体对象的模型, 在完成实体对象部署后, 提 供动态实体对象的存取访问服务, 使用户应用程序能创建、 使用、 并存储对象实例。 8. 根据权利要求 7 所述的基于条件规则的动态数据结构和关系的构。
10、建方法, 其特征在 于, 所述步骤 206 中提供动态实体对象的存取访问服务的操作, 具体包括 : 步骤 402 : 接收至少包含应用模式、 场景、 上下文环境、 业务类型的外界参数并输入到 元数据快照子过程 ; 步骤 404 : 元数据快照子过程基于输入的外界参数, 以实体定义文件中的动态属性和 关系的规则条件作为判定依据, 自动计算规则条件表达式, 找出所有符合条件的属性和关 系, 形成精确匹配当前应用场景的实体对象元数据快照 ; 步骤 406 : 调用数据访问子过程并将实体对象元数据快照输入, 数据访问子过程根据 映射转换规则, 将实体对象元数据快照映射成 SQL 脚本, 执行 SQL 。
11、脚本, 向应用程序返回对 象数据或将对象数据存入数据库。 9.根据权利要求6至8中任一项所述的基于条件规则的动态数据结构和关系的构建方 法, 其特征在于, 所述步骤 204 中构建动态实体对象的模型的操作, 具体包括 : 步骤 302 : 通过 API 的方式向外公开构建所述步骤 202 提供的实体定义文件的功能, 外 部应用程序能够在其设计期或运行期使用此 API ; 步骤 304 : 执行步骤 204 过程。 10. 根据权利要求 6 至 8 中任一项所述的基于条件规则的动态数据结构和关系的构建 方法, 其特征在于, 所述步骤 202, 具体包括 : 提供能让用户描述实体的固有属性特征的固。
12、定属性、 以及描述实体与外部实体的固有 关系特征的固定关系的实体静态定义文件 ; 提供能让用户描述动态结构适用的条件规则、 描述实体的动态属性特征的动态属性、 以及描述实体与外部实体的动态关系特征的动态关系的实体动态定义文件 ; 以及, 所述步骤 202 提供的实体定义文件, 能定义实体对象的非固定属性或关系、 以及该非 固定属性或关系所适用 / 启用的规则条件 ; 该规则条件能够关联到不同的应用模式、 场景、 上下文、 业务类型 ; 通过为该非固定属性或关系限定条件规则, 支持派生对象的特性属性。 权 利 要 求 书 CN 103714129 A 3 1/10 页 4 基于条件规则的动态数据。
13、结构和关系的构建装置和构建方 法 技术领域 0001 本发明涉及数据处理技术领域, 具体地, 涉及一种基于条件规则的动态数据结构 和关系的构建装置和一种基于条件规则的动态数据结构和关系的构建方法。 0002 背景技术 0003 信息系统构建过程中, 数据实体和关系的构建是其中的重要内容之一。在业务场 景单一, 应用不复杂的情况下, 数据的结构和实体之间的关系比较显现, 能够很直接的进行 定义。 但在复杂的应用场景中, 数据的结构和关系并不是那么简单和容易固化, 表现在以下 几个方面 : 首先, 抽象对象在具体应用时往往会有许多派生, 这些派生对象在数据层面表现为 不同的字段和关系, 传统的数据。
14、库受表结构固定的限制, 不能直接存储这类对象, 面向对象 数据库技术理论上能解决这一问题, 但目前发展并不成熟, 而且成本高昂。 0004 其次, 对于应用于不同行业, 不同业务模式和场景的软件产品, 一些数据对象的 属性结构以及数据之间的关系并不是固化的, 而是基于不同的应用领域、 应用模式、 场景、 上下文条件, 具有不同的属性特征和不同的数据关系。例如 : 不同行业的物料, 其属性特征 差异很大 ; 不同的采购或销售模式, 其单据内容也有很大的差异 ; 很多对象在生命期的不 同阶段, 也会呈现不同的属性、 关系。 0005 当前解决上述问题的思路之一是全面采用面向对象数据库技术, 但这类。
15、技术目前 发展并不成熟, 离实用还有很大的距离, 而且成本高昂, 涉及大量的数据库接口代码编写工 作 ; 对于像 “基于某个条件, 启用某个字段或关系” 这类要求灵活的场景也很难应对。 0006 解决上述问题的另一类思路是采用变通办法, 一般有两种 : 将派生链上所有字段存在一张表中, 用一个类型标识字段来区分对象类型, 比如 : 销 售订单表中用一个字段区分直运销售订单和普通销售订单。 0007 将派生链的每个节点映射成一张数据表, 父类对象存储在根表, 子类对象同时 存储根表和子表。 0008 以上两种变通办法有如下缺陷 : 单表存储所有对象的字段会导致表结构膨胀, 产生大量冗余的空值字段。
16、, 存储效率 低下 ; 应用开发者需要直接访问数据库, 并在程序代码中小心处理对象模型与数据模型的 映射关系, 开发效率低下、 容易产生差错。 0009 应用开发者不能直接对现实世界业务对象的非固定属性和关系进行建模, 应用 开发者需要采用特殊的代码控制逻辑来实现具有动态结构和关系的对象在数据库中的映 射与存储, 这种固化的硬代码实现方式使得系统很难进行灵活扩展和变化。 0010 因此, 需要一种新的基于条件规则的动态数据结构和关系的构建技术, 可以在现 说 明 书 CN 103714129 A 4 2/10 页 5 有的数据结构和关系的构建方式基础上, 充分利用单对象数据结构和关系的构建完成。
17、多对 象数据的结构和关系的构建, 建立多对象数据参与的面向动态数据和复杂对象的结构和关 系的通用、 统一构建思路。 0011 发明内容 0012 本发明正是基于上述问题, 提出了一种新的基于条件规则的动态数据结构和关系 的构建技术, 可以在现有的数据结构和关系的构建方式基础上, 充分利用单对象数据结构 和关系的构建完成多对象数据的结构和关系的构建, 建立多对象数据参与的面向动态数据 和复杂对象的结构和关系的通用、 统一构建思路。 0013 有鉴于此, 本发明提出了一种基于条件规则的动态数据结构和关系的构建装置, 包括 : 动态实体对象的模型构建模块 102, 用于提供能让用户定义实体对象的可变。
18、属性和 关系的功能, 此模块输出实体定义文件 ; 动态实体对象的部署模块 104, 以实体定义文件作 为输入, 用于将实体对象模型映射成数据库物理存储结构, 实现对动态实体对象的物理部 署。在该技术方案中, 可以通过配置基于不同场景的条件规则来灵活定义实体数据的结构 和关系, 能直接对现实世界复杂的业务对象进行动态结构和关系建模, 避免手工编写固定 代码来弊端。 0014 在上述技术方案中, 优选地, 所述基于条件规则的动态数据结构和关系的构建装 置, 还包括 : 动态实体对象的存取访问服务模块 106, 用于基于所述动态实体对象的模型构 建模块 102 完成动态实体对象的模型构建、 随后基于。
19、所述动态实体对象的部署模块 104 完 成动态实体对象的物理部署后, 提供动态实体对象的存取访问服务, 使用户应用程序能创 建、 使用、 并存储对象实例。 在该技术方案中, 可以对外提供统一的实体数据访问接口, 以实 体元数据的形式来承载实体对象数据, 避免对强类型对象的依赖, 同时又具备实体元数据 自描述的特性。 0015 在上述技术方案中, 优选地, 所述动态实体对象的存取访问服务模块 106, 具体包 括 : 实体存取访问子过程执行模块, 用于接收至少包含应用模式、 场景、 上下文环境、 业务类 型的外界参数并输入到元数据快照子过程 ; 元数据快照子过程执行模块, 用于基于输入的 外界参。
20、数, 以实体定义文件中的动态属性和关系的规则条件作为判定依据, 自动计算规则 条件表达式, 找出所有符合条件的属性和关系, 形成精确匹配当前应用场景的实体对象元 数据 ; 数据访问子过程执行模块, 用于基于实体对象元数据输入, 根据映射转换规则, 将实 体对象元数据映射成数据库SQL脚本, 执行SQL脚本, 向应用程序返回对象数据或将对象数 据写入数据库。 0016 在上述技术方案中, 优选地, 所述动态实体对象的部署模块 104, 具体包括 : 部署 服务子过程执行模块, 用于接收实体定义文件并输入到 DDL 映射子过程 ; DDL 映射子过程执 行模块, 用于基于实体对象模型到数据库物理表。
21、结构的映射转换规则, 将所述实体定义文 件解析成关系数据库的 DDL 脚本。进一步地, 所述 DDL 映射子过程执行模块将所述实体定 义文件解析成关系数据库的 DDL 脚本的操作中, 使用的转换规则具体包括 :(1) 为实体定义 一个主表, 建立实体到主表的映射关系 ;(2) 将实体定义文件中的固定属性和固定关系定 义转换成主表字段定义, 并建立实体属性和关系到数据库表字段的映射关系 ;(3) 将不同 说 明 书 CN 103714129 A 5 3/10 页 6 条件规则所对应的每一块动态结构定义一个动态结构表, 并建立动态结构与动态结构表的 映射关系 ;(4) 将动态结构中的动态属性和动态。
22、关系定义转换成对应的动态结构表的字段 定义, 并建立实体的属性和关系到数据库表字段的映射关系。 在该技术方案中, 可以对外提 供动态构建实体对象模型的 API, 避免对强类型对象的依赖, 扩展性强。 0017 在上述技术方案中, 优选地, 所述动态实体对象的模型构建模块 102, 具体包括 : 静态结构定义模块, 用于提供能让用户描述实体的固有属性特征的固定属性、 以及描述实 体与外部实体的固有关系特征的固定关系的实体静态定义功能 ; 动态结构定义模块, 用于 提供能让用户描述动态结构适用的条件规则、 描述实体的动态属性特征的动态属性、 以及 描述实体与外部实体的动态关系特征的动态关系的实体动。
23、态定义功能 ; 条件规则定义模 块, 能定义实体对象的非固定属性或关系所适用 / 启用的规则条件 ; 该规则条件能够关联 到不同的应用模式、 场景、 上下文、 业务类型 ; 通过为该非固定属性或关系限定条件规则, 使 得对象在不同的情况下呈现不同的结构和关系。在该技术方案中, 可以处理业务对象的属 性之间的动态逻辑关系和动态属性问题, 能完整解决业务对象的动态属性和关系问题。 0018 根据本发明的又一个方面, 还提出了一种基于条件规则的动态数据结构和关系的 构建方法, 包括 : 步骤 202 : 提供能让用户构建实体对象的可变属性和关系的建模功能, 此 建模功能输出实体定义文件 ; 步骤 2。
24、04 : 基于所述步骤 202 提供输出的实体定义文件, 将实 体对象模型映射成数据库物理存储结构, 实现对动态实体对象的物理部署。在该技术方案 中, 可以通过配置基于不同场景的条件规则来灵活定义实体数据的结构和关系, 能直接对 现实世界复杂的业务对象进行动态结构和关系建模, 避免手工编写固定代码来弊端。 0019 在上述技术方案中, 优选地, 在所述步骤 204 之后, 还包括 : 步骤 206 : 基于所述步 骤 204 构建的动态实体对象的模型, 在完成实体对象部署后, 提供动态实体对象的存取访 问服务, 使用户应用程序能创建、 使用、 并存储对象实例。 在该技术方案中, 可以对外提供统。
25、 一的实体数据访问接口, 以实体元数据的形式来承载实体对象数据, 避免对强类型对象的 依赖, 同时又具备实体元数据自描述的特性。 0020 在上述技术方案中, 优选地, 所述步骤 206 中提供动态实体对象的存取访问服务 的操作, 具体包括 : 步骤 402 : 接收至少包含应用模式、 场景、 上下文环境、 业务类型的外界 参数并输入到元数据快照子过程 ; 步骤 404 : 元数据快照子过程基于输入的外界参数, 以实 体定义文件中的动态属性和关系的规则条件作为判定依据, 自动计算规则条件表达式, 找 出所有符合条件的属性和关系, 形成精确匹配当前应用场景的实体对象元数据快照 ; 步骤 406 。
26、: 调用数据访问子过程并将实体对象元数据快照输入, 数据访问子过程根据映射转换规 则, 将实体对象元数据快照映射成 SQL 脚本, 执行 SQL 脚本, 向应用程序返回对象数据或将 对象数据存入数据库。 0021 在上述技术方案中, 优选地, 所述步骤 204 中构建动态实体对象的模型的操作, 具 体包括 : 步骤 302 : 通过 API 的方式向外公开构建所述步骤 202 提供的实体定义文件的功 能, 外部应用程序能够在其设计期或运行期使用此API ; 步骤304 : 执行204过程。 在该技术 方案中, 可以对外提供动态构建实体对象模型的API, 避免对强类型对象的依赖, 扩展性强。 0。
27、022 在上述技术方案中, 优选地, 所述步骤 202, 具体包括 : 提供能让用户描述实体的 固有属性特征的固定属性、 以及描述实体与外部实体的固有关系特征的固定关系的实体静 态定义文件 ; 提供能让用户描述动态结构适用的条件规则、 描述实体的动态属性特征的动 说 明 书 CN 103714129 A 6 4/10 页 7 态属性、 以及描述实体与外部实体的动态关系特征的动态关系的实体动态定义文件 ; 以及, 所述步骤 202 提供的实体定义文件, 能定义实体对象的非固定属性或关系、 以及该非固定 属性或关系所适用 / 启用的规则条件 ; 该规则条件能够关联到不同的应用模式、 场景、 上下 。
28、文、 业务类型 ; 通过为该非固定属性或关系限定条件规则, 支持派生对象的特性属性。在该 技术方案中, 可以处理业务对象的属性之间的动态逻辑关系和动态属性问题, 能完整解决 业务对象的动态属性和关系问题。 0023 通过以上技术方案, 可以在现有的数据结构和关系的构建方式基础上, 充分利用 单对象数据结构和关系的构建完成多对象数据的结构和关系的构建, 建立多对象数据参与 的面向动态数据和复杂对象的结构和关系的通用、 统一构建思路。 0024 附图说明 0025 图 1 示出了根据本发明的实施例的基于条件规则的动态数据结构和关系的构建 装置的框图 ; 图 2 示出了根据本发明的实施例的基于条件规。
29、则的动态数据结构和关系的构建方法 的流程图 ; 图 3 示出了根据本发明的实施例的动态实体对象的模型的 API 构建方法的工作流程 图 ; 图 4 示出了根据本发明的实施例的动态实体对象的存取访问服务方法的工作流程图 ; 图 5 示出了根据本发明的实施例的动态实体对象的建模及存取访问的整体功能架构 图 ; 图 6 示出了根据本发明的实施例的实体定义文件结构的框图 ; 图 7 示出了根据本发明的实施例的部署服务子过程的功能结构图 ; 图 8 示出了根据本发明的实施例的 DDL 映射子过程的原理示意图 ; 图9示出了根据本发明的实施例的DDL映射子过程中的实体定义文件转换成数据库表 结构的原理示意。
30、图 ; 图 10 示出了根据本发明的实施例的动态实体对象的存取访问服务模块 106 的功能结 构图。 0026 图 11 示出了根据本发明的实施例的元数据快照子过程的功能原理示意图。 0027 图 12 示出了根据本发明的实施例的数据访问子过程的功能原理示意图。 0028 具体实施方式 0029 为了能够更清楚地理解本发明的上述目的、 特征和优点, 下面结合附图和具体实 施方式对本发明进行进一步的详细描述。 需要说明的是, 在不冲突的情况下, 本申请的实施 例及实施例中的特征可以相互组合。 0030 在下面的描述中阐述了很多具体细节以便于充分理解本发明, 但是, 本发明还可 以采用其他不同于在。
31、此描述的其他方式来实施, 因此, 本发明的保护范围并不受下面公开 的具体实施例的限制。 说 明 书 CN 103714129 A 7 5/10 页 8 0031 图 1 示出了根据本发明的实施例的基于条件规则的动态数据结构和关系的构建 装置的框图。 0032 如图 1 所示, 根据本发明的实施例的基于条件规则的动态数据结构和关系的构建 装置 100, 包括 : 动态实体对象的模型构建模块 102, 用于提供能让用户定义实体对象的可 变属性和关系的功能, 此模块输出实体定义文件 ; 动态实体对象的部署模块 104, 以实体定 义文件作为输入, 用于将实体对象模型映射成数据库物理存储结构, 实现对。
32、动态实体对象 的物理部署。在该技术方案中, 可以通过配置基于不同场景的条件规则来灵活定义实体数 据的结构和关系, 能直接对现实世界复杂的业务对象进行动态结构和关系建模, 避免手工 编写固定代码来弊端。 0033 在上述技术方案中, 优选地, 基于条件规则的动态数据结构和关系的构建装置, 还 包括 : 动态实体对象的存取访问服务模块 106, 用于基于所述动态实体对象的模型构建模 块 102 完成动态实体对象的模型构建、 随后基于所述动态实体对象的部署模块 104 完成动 态实体对象的物理部署后, 提供动态实体对象的存取访问服务, 使用户应用程序能创建、 使 用、 并存储对象实例。在该技术方案中。
33、, 可以对外提供统一的实体数据访问接口, 以实体元 数据的形式来承载实体对象数据, 避免对强类型对象的依赖, 同时又具备实体元数据自描 述的特性。 0034 在上述技术方案中, 优选地, 动态实体对象的存取访问服务模块 106, 具体包括 : 实体存取访问子过程执行模块, 用于接收至少包含应用模式、 场景、 上下文环境、 业务类型 的外界参数并输入到元数据快照子过程 ; 元数据快照子过程执行模块, 用于基于输入的外 界参数, 以实体定义文件中的动态属性和关系的规则条件作为判定依据, 自动计算规则条 件表达式, 找出所有符合条件的属性和关系, 形成精确匹配当前应用场景的实体对象元数 据 ; 数据。
34、访问子过程执行模块, 用于基于实体对象元数据输入, 根据映射转换规则, 将实体 对象元数据映射成数据库SQL脚本, 执行SQL脚本, 向应用程序返回对象数据或将对象数据 写入数据库。 0035 在上述技术方案中, 优选地, 动态实体对象的部署模块 104, 具体包括 : 部署服务 子过程执行模块, 用于接收实体定义文件并输入到 DDL 映射子过程 ; DDL 映射子过程执行模 块, 用于基于实体对象模型到数据库物理表结构的映射转换规则, 将所述实体定义文件解 析成关系数据库的 DDL 脚本。进一步地, 所述 DDL 映射子过程执行模块将所述实体定义文 件解析成关系数据库的 DDL 脚本的操作中。
35、, 使用的转换规则具体包括 :(1) 为实体定义一 个主表, 建立实体到主表的映射关系 ;(2) 将实体定义文件中的固定属性和固定关系定义 转换成主表字段定义, 并建立实体属性和关系到数据库表字段的映射关系 ;(3) 将不同条 件规则所对应的每一块动态结构定义一个动态结构表, 并建立动态结构与动态结构表的映 射关系 ;(4) 将动态结构中的动态属性和动态关系定义转换成对应的动态结构表的字段定 义, 并建立实体的属性和关系到数据库表字段的映射关系。 在该技术方案中, 可以对外提供 动态构建实体对象模型的 API, 避免对强类型对象的依赖, 扩展性强。 0036 在上述技术方案中, 优选地, 动态。
36、实体对象的模型构建模块 102, 具体包括 : 静态 结构定义模块, 用于提供能让用户描述实体的固有属性特征的固定属性、 以及描述实体与 外部实体的固有关系特征的固定关系的实体静态定义功能 ; 动态结构定义模块, 用于提供 能让用户描述动态结构适用的条件规则、 描述实体的动态属性特征的动态属性、 以及描述 说 明 书 CN 103714129 A 8 6/10 页 9 实体与外部实体的动态关系特征的动态关系的实体动态定义功能 ; 条件规则定义模块, 能 定义实体对象的非固定属性或关系所适用 / 启用的规则条件 ; 该规则条件能够关联到不同 的应用模式、 场景、 上下文、 业务类型 ; 通过为该。
37、非固定属性或关系限定条件规则, 使得对象 在不同的情况下呈现不同的结构和关系。在该技术方案中, 可以处理业务对象的属性之间 的动态逻辑关系和动态属性问题, 能完整解决业务对象的动态属性和关系问题。 0037 图 2 示出了根据本发明的实施例的基于条件规则的动态数据结构和关系的构建 方法的流程图。 0038 如图 2 所示, 根据本发明的实施例的基于条件规则的动态数据结构和关系的构建 方法, 包括 : 步骤 202 : 提供能让用户构建实体对象的可变属性和关系的建模功能, 此建模 功能输出实体定义文件 ; 步骤 204 : 基于所述步骤 202 提供输出的实体定义文件, 将实体对 象模型映射成数。
38、据库物理存储结构, 实现对动态实体对象的物理部署。 在该技术方案中, 可 以通过配置基于不同场景的条件规则来灵活定义实体数据的结构和关系, 能直接对现实世 界复杂的业务对象进行动态结构和关系建模, 避免手工编写固定代码来弊端。 0039 在上述技术方案中, 优选地, 在步骤 204 之后, 还包括 : 步骤 206 : 基于所述步骤 204 构建的动态实体对象的模型, 在完成实体对象部署后, 提供动态实体对象的存取访问服 务, 使用户应用程序能创建、 使用、 并存储对象实例。 在该技术方案中, 可以对外提供统一的 实体数据访问接口, 以实体元数据的形式来承载实体对象数据, 避免对强类型对象的依。
39、赖, 同时又具备实体元数据自描述的特性。 0040 在上述技术方案中, 优选地, 如图 4 所示, 步骤 206 中提供动态实体对象的存取访 问服务的操作, 具体包括 : 步骤 402 : 接收至少包含应用模式、 场景、 上下文环境、 业务类型 的外界参数并输入到元数据快照子过程 ; 步骤 404 : 元数据快照子过程基于输入的外界参 数, 以实体定义文件中的动态属性和关系的规则条件作为判定依据, 自动计算规则条件表 达式, 找出所有符合条件的属性和关系, 形成精确匹配当前应用场景的实体对象元数据快 照 ; 步骤 406 : 调用数据访问子过程并将实体对象元数据快照输入, 数据访问子过程根据映。
40、 射转换规则, 将实体对象元数据快照映射成 SQL 脚本, 执行 SQL 脚本, 向应用程序返回对象 数据或将对象数据存入数据库。 0041 在上述技术方案中, 优选地, 如图 3 所示, 步骤 204 中构建动态实体对象的模型的 操作, 具体包括 : 步骤 302 : 通过 API 的方式向外公开构建所述步骤 202 提供的实体定义文 件的功能, 外部应用程序能够在其设计期或运行期使用此API ; 步骤304 : 执行204过程。 在 该技术方案中, 可以对外提供动态构建实体对象模型的 API, 避免对强类型对象的依赖, 扩 展性强。 0042 在上述技术方案中, 优选地, 步骤 202, 。
41、具体包括 : 提供能让用户描述实体的固有 属性特征的固定属性、 以及描述实体与外部实体的固有关系特征的固定关系的实体静态定 义文件 ; 提供能让用户描述动态结构适用的条件规则、 描述实体的动态属性特征的动态属 性、 以及描述实体与外部实体的动态关系特征的动态关系的实体动态定义文件 ; 以及, 步骤 202 提供的实体定义文件, 能定义实体对象的非固定属性或关系、 以及该非固定属性或关系 所适用 / 启用的规则条件 ; 该规则条件能够关联到不同的应用模式、 场景、 上下文、 业务类 型 ; 通过为该非固定属性或关系限定条件规则, 支持派生对象的特性属性。在该技术方案 中, 可以处理业务对象的属性。
42、之间的动态逻辑关系和动态属性问题, 能完整解决业务对象 说 明 书 CN 103714129 A 9 7/10 页 10 的动态属性和关系问题。 0043 本发明技术方案的主要思路是 : 系统提供能让用户定义实体对象的可变属性和 关系的实体定义文件的建模功能, 该实体定义文件能定义实体对象的非固定属性或关系, 以及该属性或关系所适用 (启用) 的规则条件, 这些规则条件可以关联到不同的应用模式、 场景、 上下文、 业务类型。 通过为属性或关系限定条件规则来实现对象在不同的情况下具备 不同的结构和关系。实体定义文件构建完成后, 系统的部署服务子过程将实体定义文件 解析成关系数据库的 DDL 脚本。
43、, 并执行 DDL 操作, 为实体对象建立对应的数据库物理表结 构。这样便完成了动态实体对象的模型构建和部署过程。需要指出的是, 所述动态实体对 象模型的构建和部署功能通过 API 的方式向外公开, 外部应用程序既可以在其设计期使用 此 API, 也可以在其运行期使用此 API。系统还提供动态实体对象的存取访问服务, 以便 在完成实体对象建模和部署后, 应用程序能够创建、 使用、 并存储对象实例。 在存取访问服 务中, 系统接收到应用模式、 场景、 上下文环境、 业务类型等外界参数, 并以这些参数作为输 入, 通过自动计算实体定义文件中的规则条件, 找出所有符合条件的属性和关系, 形成精确 匹。
44、配当前应用场景的实体对象元数据快照, 系统随后基于此元数据快照, 根据映射转换规 则, 将实体对象元数据映射成数据库 SQL 脚本, 执行 SQL 脚本, 向应用程序返回对象数据或 将对象数据写入数据库。 0044 例如, 本发明技术方案的基本结构原理如图5所示, 基本过程原理如图2和实体定 义文件结构图 6 所示, 详细实现方案如下 : 实体定义文件结构, 如图 6 所示。实体定义文件由静态定义部分和动态定义部分组 成。 0045 静态定义部分包括 : 固定属性定义 : 描述实体的固有属性特征 ; 每一项固定属性至少包括以下要素 : 数 据类型、 数据长度、 精度、 缺省值、 是否可空。 0。
45、046 固定关系定义 : 描述实体与外部实体的固有关系特征 ; 每一项固定关系至少包 括以下要素 : 关系类型、 关联实体名、 多重性、 关联属性。 0047 动态定义部分包括 : 条件规则定义 : 描述动态结构适用的条件规则 ; 包括 : 规则上下文、 条件表达式。规 则上下文 : 规则上下文可以关联应用程序中的应用模式、 场景、 上下文、 业务类型、 对象类 型、 以及其它可以用来参与动态结构启用条件判定的参数。 0048 规则上下文的一般定义为 : 条件表达式 : 条件表达式是基于一定的语法规范, 以规则上下文参数作为事实数据, 并设定相应的判定值, 来构成逻辑判断条件。 条件表达式判定。
46、通过, 表明实体对象应该包含 此动态结构的属性和关系, 否则不包含。 0049 条件表达式的语法为 : 说 明 书 CN 103714129 A 10 8/10 页 11 动态属性定义 : 动态属性定义的结构和组成要素同固定属性定义。 0050 动态关系定义 : 动态关系定义的结构和组成要素同固定关系定义。 0051 实体定义文件可以通过系统提供的建模功能进行构建, 也可通过系统对外提供的 构建上述实体定义文件的功能 API。外部应用程序既可以在其设计期使用此 API, 也可以在 其运行期使用此 API。 0052 ( 二 ) 部署服务子过程 部署服务子过程的主要功能是基于实体对象模型到数据库。
47、物理表结构的映射转换规 则, 将实体定义文件转换成关系数据库的 DDL 脚本, 并执行 DDL 操作, 为实体对象建立对应 的数据库物理表结构。 部署服务子过程包括DDL映射子过程和DDL执行子过程, DDL映射子 过程如图 8 所示。将实体定义文件转换成关系数据库的 DDL 脚本, 转换过程如图 9 所示。 0053 转换规则为 :(1) 为实体定义一个主表, 建立实体到主表的映射关系 ;(2) 将实体 定义文件中的固定属性和固定关系定义转换成主表字段定义, 并建立实体属性和关系到数 据库表字段的映射关系 ;(3) 将不同条件规则所对应的每一块动态结构定义一个动态结构 表, 并建立动态结构与。
48、动态结构表的映射关系 ;(4) 将动态结构中的动态属性和动态关系 定义转换成对应的动态结构表的字段定义, 并建立实体的属性和关系到数据库表字段的映 射关系。转换规则如图 9 所示。DDL 执行子过程 : 调用数据库的接口执行 DDL 脚本。 0054 ( 三 ) 实体存取访问子过程 实体对象存取访问子过程的功能包括 : 接收应用模式、 场景、 上下文环境、 业务类型等 外界参数, 将这些参数输入元数据快照子过程, 元数据快照子过程调用规则判定子过程, 规 则判定子过程基于输入的参数, 自动计算规则条件表达式, 找出所有符合条件的属性和关 系, 形成匹配当前应用场景的实体对象元数据快照, 元数据。
49、快照子过程的功能原理如图 11。 0055 实体元数据快照动态生成过程条件 2 判定通过的流程如图 11 所示。条件规则判 定原理为 : 获取定义的上下文参数作为规则判定的事实数据, 比如 : 基于事实对象定义 : 获取上下文参数作为该事实对象的值。 0056 将条件表达式中的 FACT 事实对象 替换为事实对象的值 : 然后执行逻辑判定。逻辑判定通过, 表明实体对象应该包含此动态结构的属性和关 系, 否则不包含。 0057 元数据快照生成完成后, 将元数据快照输入数据访问子过程, 数据访问子过程根 据映射转换规则, 将元数据快照转换成数据库 SQL 脚本, 执行此 SQL 脚本, 向应用程序返回 对象数据或将对象数据写入数据库。数据访问子过程的功能原理如图 12。 0058 传递和返回的实体对象数据统一采用 Hashtable+ 实体元数据快照的形式来承 载。 0059 本发明的技术方案, 提供了一种针对现实世界具有不固定属性结构和关系的对象 说 明 书 CN 1037141。