CN111240739B - 一种对象的关联属性动态并发分配方法及系统 - Google Patents
一种对象的关联属性动态并发分配方法及系统 Download PDFInfo
- Publication number
- CN111240739B CN111240739B CN202010071477.4A CN202010071477A CN111240739B CN 111240739 B CN111240739 B CN 111240739B CN 202010071477 A CN202010071477 A CN 202010071477A CN 111240739 B CN111240739 B CN 111240739B
- Authority
- CN
- China
- Prior art keywords
- attribute
- dependency
- configuration file
- value range
- fields
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对象的关联属性动态并发分配方法及系统,涉及软件开发技术领域。该方法包括:针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,并将属性字段信息及依赖规则写入配置文件中;设置对象的属性的取值范围并写入配置文件,根据属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入数据库中,形成属性资源库;当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。本发明能自动进行有效的对象关联属性的分配,最大程度简化逻辑,提高软件运行效率。
Description
技术领域
本发明涉及软件开发技术领域,具体来讲是一种对象的关联属性动态并发分配方法及系统。
背景技术
软件对象是软件系统中对一类指定对象的抽象建模,应用软件通常会对每个对象类别建模时设置一个或者多个属性字段,这些对象属性在常规场景下均需要人为进行输入;常规的对象属性分配方法均是对指定的属性,按照固定的规则进行顺序分配,例如属性idindex按照自增长从1开始分配,每次增加1,最大65535。
如果同一类对象之间的一个或者多个属性存在关联及依赖关系时,即后面的对象的一个或多个属性完全依赖于前面对象的一个或多个属性,这时对象属性的动态自动分配就会变得复杂,使得逻辑复杂、软件运行效率低,也不便于自动化测试的应用。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种对象的关联属性动态并发分配方法及系统,能自动进行有效的对象关联属性的分配,最大程度简化逻辑,提高软件运行效率,也便于自动化测试的应用。
为达到以上目的,本发明提供一种对象的关联属性动态并发分配方法,包括以下步骤:
A、针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,并将属性字段信息及依赖规则写入配置文件中;
B、根据应用软件的需求,设置对象的属性的取值范围并写入配置文件中;根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入数据库中,形成属性资源库;
C、当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
在上述技术方案的基础上,步骤A中,针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,具体包括以下操作:
列出对象的所有需要分配的属性字段;
记录存在依赖关系的属性字段,为其增加依赖标识;
根据所有的属性字段,进行数据库表结构的定义与设计,使得属性字段与实际对象属性字段个数及类型保持一致。
在上述技术方案的基础上,步骤B中,设置对象的属性的取值范围时,只设置存在依赖关系的属性;且生成全量的对象属性资源数据时,生成的每个对象属性均具有初始的分配状态标识,所述分配状态标识用来表示该属性是否可分配。
在上述技术方案的基础上,该方法的步骤B具体包括以下步骤:
B1、获取所述配置文件;B2、遍历该配置文件中对象的属性;
B3、若该属性为存在依赖关系的属性,则根据应用软件的需求设置该属性的取值范围,并保存至配置文件中;B4、判断该属性是否依赖其它属性,若是,转到步骤B5;若否,转到步骤B6;B5、获取该属性对应的依赖规则;B6、判断是否完成对象的所有属性的处理,若是,转到步骤B7;若否,返回步骤B2,遍历对象的下一个属性;B7、根据设置的各属性的取值范围以及获取的各属性的依赖规则,生成全量的对象属性资源数据;生成的同时,根据各属性的依赖规则,将其中父属性的分配状态标识初始化为可分配,将其中子属性的分配状态标识初始化为不可分配;B8、将生成的全量的对象属性资源数据导入数据库中,形成属性资源库。
在上述技术方案的基础上,步骤C中,依据配置文件中对象的属性的取值范围、属性的依赖规则以及属性的可分配状态,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
在上述技术方案的基础上,该方法的步骤C具体包括以下步骤:
C1、当应用软件需要进行对象的属性分配时,加载所述配置文件;C2、获取当前环境的标识信息,并直接从加载的配置文件中获取无任何依赖关系的属性的属性值;C3、根据数据库的IP信息,连接属性资源库的数据库;C4、使用当前环境的标识信息去占用一条属性资源库中依赖属性条目数据,并在第一个可分配的属性条目上设置当前环境标识的占用标记;C5、根据当前环境的标识信息与占用标记,获取占用的属性条目的所有具体属性信息;C6、判断获取的属性条目的属性信息是否不为空,若是,转到步骤C7;若否,转到步骤C12;C7、根据加载的配置文件,遍历属性中存在子关系的父属性;C8、更新该父属性下的子属性条目的状态为可分配;C9、判断所有父属性是否遍历完成,若是,转到步骤C10;若否,返回步骤C7;C10、应用软件根据获取到的所有属性数据,执行后续属性数据的具体应用流程;并判断后续流程执行是否成功,若是,转到步骤C11,若否,转到步骤C12;C11、更新该依赖属性条目的状态为分配成功,并结束操作;C12、更新该依赖属性条目的状态为可分配;C13、判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,转到C14,若否,结束操作;C14、更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作。
本发明还提供一种对象的关联属性动态并发分配系统,包括:对象属性建模单元、属性资源库生成单元以及对象属性分配单元;
所述对象属性建模单元,用于:针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,并将属性字段信息及依赖规则写入配置文件中;
所述属性资源库生成单元,用于:根据应用软件的需求,设置对象的属性的取值范围并写入配置文件中;根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入至数据库中,形成属性资源库;
所述对象属性分配单元,用于:当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
在上述技术方案的基础上,所述对象属性建模单元进行建模过程中对于存在依赖关系的属性字段增加依赖标识的具体流程包括:列出对象的所有需要分配的属性字段;记录存在依赖关系的属性字段,为其增加依赖标识;根据所有的属性字段,进行数据库表结构的定义与设计,使得属性字段与实际对象属性字段个数及类型保持一致。
在上述技术方案的基础上,所述属性资源库生成单元设置对象的属性的取值范围时,只需要设置存在依赖关系的属性;并且,生成全量的对象属性资源数据时,生成的每个对象属性均具有初始的分配状态标识,所述分配状态标识用来表示该属性是否可分配。
在上述技术方案的基础上,所述属性资源库生成单元生成全量的对象属性资源数据的具体流程包括:
获取写有属性字段信息及依赖规则的配置文件;遍历该配置文件中对象的属性,若该属性为存在依赖关系的属性,则根据应用软件的需求设置该属性的取值范围,并保存至配置文件中;再判断该属性是否依赖其它属性,若是,获取该属性对应的依赖规则;若否,则判断是否完成对象的所有属性的处理,若未完成,则继续遍历对象的下一个属性;
否则,根据设置的各属性的取值范围以及获取的各属性的依赖规则,生成全量的对象属性资源数据,生成的同时,根据各属性的依赖规则,将其中父属性的分配状态标识初始化为可分配,将其中子属性的分配状态标识初始化为不可分配;再将生成的全量的对象属性资源数据导入数据库中,形成属性资源库。
在上述技术方案的基础上,所述对象属性分配单元是依据配置文件中对象的属性的取值范围、属性的依赖规则以及属性的可分配状态,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
在上述技术方案的基础上,所述对象属性分配单元进行属性分配的具体流程包括:
当应用软件需要进行对象的属性分配时,加载所述配置文件;获取当前环境的标识信息,并直接从加载的配置文件中获取无任何依赖关系的属性的属性值;
根据数据库的IP信息,连接属性资源库的数据库;使用当前环境的标识信息去占用一条属性资源库中依赖属性条目数据,并在第一个可分配的属性条目上设置当前环境标识的占用标记;再根据当前环境的标识信息与占用标记,获取占用的属性条目的所有具体属性信息;并判断获取的属性条目的属性信息是否不为空;
若属性信息不为空,根据加载的配置文件,遍历属性中存在子关系的父属性,更新该父属性下的子属性条目的状态为可分配,并判断所有父属性是否遍历完成,若未完成,则继续遍历属性中的下一个父属性;若已完成,应用软件根据获取到的所有属性数据,执行后续属性数据的具体应用流程,并判断后续流程执行是否成功,若是,更新该依赖属性条目的状态为分配成功,并结束操作;若否,则先更新该依赖属性条目的状态为可分配,再判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作;若否,直接结束操作;
若属性信息为空,则先更新该依赖属性条目的状态为可分配,再判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作;若否,直接结束操作。
本发明的有益效果在于:
(1)本发明中,将所有关联属性信息、关联属性的取值范围、属性依赖规则写入到配置文件中;根据配置文件中关联属性的取值范围以及属性依赖规则,可快速生成对象的属性资源库,便于后续快速的自动进行有效的对象关联属性的分配,最大程度简化逻辑,提高软件运行效率,减少人为干扰,也同时便于自动化测试的应用。
(2)本发明中,在进行关联属性分配时,并未设置全局锁或局部锁,支持并发运行,可同时执行多个分配请求,最大程度的提高分配的效率。
(3)本发明的方法可适用于所有涉及到存在属性关联场景下的软件关联属性的自动分配,适用范围广。
附图说明
图1为本发明实施例中对象的关联属性动态并发分配方法的流程图;
图2为本发明实施例中步骤B的具体流程图;
图3为本发明实施例中步骤C的具体流程图;
图4为本发明实施例中对象的关联属性动态并发分配系统的结构框图。
具体实施方式
首先,对本发明的设计原理作进一步说明:现有的一些对象属性分配场景下,软件定义某个对象时,如果该对象的一个或者多个属性存在关联及依赖关系时,例如,存在ABC三个属性,B依赖于A,C依赖于B;那么,后面的对象的一个或多个属性完全依赖于前面对象的一个或多个属性,例如,ABC的属性为1/1/1,只有出现了1/1/1后,才能出现1/1/2;1/1/1即为关键的属性。因此,对象属性的动态自动分配就会变得复杂。
为了解决上述问题,本发明提出的解决方案是:将所有属性信息、属性的取值范围、属性依赖规则写入到配置文件中;根据配置文件中属性的取值范围以及属性依赖规则,可快速生成对象的属性资源库,便于后续快速的自动进行有效的对象关联属性的分配,最大程度简化逻辑,提高软件运行效率,减少人为干扰,也同时便于自动化测试的应用。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
但需说明的是:接下来要介绍的示例仅是一些具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
实施例一
参见图1所示,本实施例提供了一种对象的关联属性动态并发分配方法,该方法包括以下步骤:
A、针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识;并将属性字段信息及依赖规则写入配置文件中;
B、根据应用软件的需求,设置对象的属性的取值范围并写入配置文件中;根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入至数据库中,形成属性资源库;
C、当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
进一步地,实际应用中,步骤A中针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,具体包括以下操作:
A1、列出对象的所有需要分配的属性字段;
A2、记录存在依赖关系的属性字段,为其增加依赖标识;
A3、根据所有的属性字段,进行数据库表结构的定义与设计,使得属性字段与实际对象属性字段个数及类型保持一致。
进一步地,实际应用中,步骤B中,设置对象的属性的取值范围时,只需要设置存在依赖关系的属性;并且,根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据时,生成的每个对象属性均具有初始的分配状态标识,该分配状态标识用来表示该属性是否可分配(即,是否可用)。在此基础上,步骤C中,是依据配置文件中对象的属性的取值范围、属性的依赖规则以及属性的可分配状态,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
实施例二
参见图2所示,本实施例提供的一种对象的关联属性动态并发分配方法,其基本步骤与实施例一相同,不同之处在于,作为一种优选的实施方式,该方法的步骤B具体包括以下操作:
B1、获取步骤A中写有属性字段信息及依赖规则的配置文件;
B2、遍历该配置文件中对象的属性;
B3、若该属性为存在依赖关系的属性,则根据应用软件的需求设置该属性的取值范围,并保存至配置文件中;
B4、判断该属性是否依赖其它属性,若是,转到B5;若否,转到B6;
B5、获取该属性对应的依赖规则;
B6、判断是否完成对象的所有属性的处理,若是,转到B7;若否,返回B2,遍历对象的下一个属性;
B7、根据设置的各属性的取值范围以及获取的各属性的依赖规则,生成全量的对象属性资源数据;生成的同时,根据各属性的依赖规则,将其中父属性的分配状态标识初始化为可分配,将其中子属性的分配状态标识初始化为不可分配;
B8、将生成的全量的对象属性资源数据导入数据库中,形成属性资源库。
实施例三
参见图3所示,本实施例提供的一种对象的关联属性动态并发分配方法,其基本步骤与实施例一相同,不同之处在于,作为一种优选的实施方式,该方法的步骤C具体包括以下操作:
C1、当应用软件需要进行对象的属性分配时,加载上述配置文件。
C2、获取当前环境的标识信息,并直接从加载的配置文件中获取无任何依赖关系的属性的属性值。
C3、根据数据库的IP信息,连接属性资源库的数据库。可以理解的是,在实际应用中,该连接不能跨action重复使用,仅能在部分场景下重复使用。
C4、使用当前环境的标识信息去占用一条属性资源库中依赖属性条目数据,并在第一个可分配的属性条目上设置当前环境标识的占用标记。可以理解的是,在实际应用中,可通过执行sql语句update&set操作,在第一个可分配的属性条目上设置当前环境标识的占用标记。
C5、根据当前环境的标识信息与占用标记,获取占用的属性条目的所有具体属性信息。可以理解的是,在实际应用中,可根据环境运行的标记信息执行sql语句select操作获取所有数据。
C6、判断获取的属性条目的属性信息是否不为空,若是,转到步骤C7;若否,转到步骤C12。
C7、根据步骤C1中加载的配置文件,遍历属性中存在子关系的父属性。
C8、更新该父属性下的子属性条目的状态为可分配。可以理解的是,在实际应用中,可根据父属性的关键id信息,执行sql语句update&set操作更新相应子属性的状态为可分配。
C9、判断所有父属性是否遍历完成,若是,转到步骤C11;若否,返回步骤C7。
C10、应用软件根据获取到的所有属性数据,执行后续属性数据的具体应用流程(例如,执行对象属性赋值与对象创建的流程);并判断后续流程执行是否成功,若是,转到步骤C11,若否,转到步骤C12。
C11、更新该依赖属性条目的状态为分配成功,并结束操作。可以理解的是,在实际应用中,可执行sql语句update&set操作更新该依赖属性条目的状态为分配成功。
C12、更新该依赖属性条目的状态为可分配。可以理解的是,在实际应用中,可执行sql语句update&set操作更新该依赖属性条目的状态为可分配。
C13、判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,转到C14,若否,结束操作。
C14、更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作。可以理解的是,在实际应用中,可根据父属性的关键id信息,执行sql语句update&set操作来更新该依赖属性条目下的子属性条目的状态为不可分配。
从上述操作可看出,本实施例中,在进行关联属性的动态并发分配时,对于普通没有依赖关系的属性直接从加载的配置文件中获取该属性的属性值(即,复用自增长的方法进行分配);而对于存在依赖规则的属性,则是执行环境的标识信息(即,guid信息),占用一个属性条目作为后续软件流程的执行,因为后续流程执行还可能存在失败,如果执行失败,则需要回滚条目的占用状态,需要考虑是否是子条目与关键属性条目的场景,然后重新进行占用分配;直到后续的流程成功后,才能设置子条目的状态为可分配。
实施例四
基于同一发明构思,参见图4所示,本发明实施例还提供了一种对象的关联属性动态并发分配系统,该系统包括:对象属性建模单元、属性资源库生成单元以及对象属性分配单元。
其中,对象属性建模单元,用于:针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识;并将属性字段信息及依赖规则写入配置文件中;
属性资源库生成单元,用于:根据应用软件的需求,设置对象的属性的取值范围并写入配置文件中;根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入至数据库中,形成属性资源库;
对象属性分配单元,用于:当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
进一步地,在实际应用中,所述对象属性建模单元进行建模过程中对于存在依赖关系的属性字段增加依赖标识的具体流程包括:列出对象的所有需要分配的属性字段;记录存在依赖关系的属性字段,为其增加依赖标识;根据所有的属性字段,进行数据库表结构的定义与设计,使得属性字段与实际对象属性字段个数及类型保持一致。
再进一步地,在一种可选的实施方式中,所述属性资源库生成单元设置对象的属性的取值范围时,只需要设置存在依赖关系的属性;并且,所述属性资源库生成单元根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据时,生成的每个对象属性均具有初始的分配状态标识,该分配状态标识用来表示该属性是否可分配(即,是否可用)。在此基础上,所述对象属性分配单元是依据配置文件中对象的属性的取值范围、属性的依赖规则以及属性的可分配状态,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
实施例五
本实施例提供的一种对象的关联属性动态并发分配系统,其基本结构与实施例四相同,不同之处在于,所述属性资源库生成单元生成全量的对象属性资源数据的具体流程包括:
获取写有属性字段信息及依赖规则的配置文件;遍历该配置文件中对象的属性,若该属性为存在依赖关系的属性,则根据应用软件的需求设置该属性的取值范围,并保存至配置文件中;再判断该属性是否依赖其它属性,若是,获取该属性对应的依赖规则;若否,则判断是否完成对象的所有属性的处理,若未完成,则继续遍历对象的下一个属性;
否则,根据设置的各属性的取值范围以及获取的各属性的依赖规则,生成全量的对象属性资源数据,生成的同时,根据各属性的依赖规则,将其中父属性的分配状态标识初始化为可分配,将其中子属性的分配状态标识初始化为不可分配;再将生成的全量的对象属性资源数据导入数据库中,形成属性资源库。
实施例六
本实施例提供的一种对象的关联属性动态并发分配系统,其基本结构与实施例四相同,不同之处在于,所述对象属性分配单元进行属性分配的具体流程包括:
当应用软件需要进行对象的属性分配时,加载上述配置文件;获取当前环境的标识信息,并直接从加载的配置文件中获取无任何依赖关系的属性的属性值;
根据数据库的IP信息,连接属性资源库的数据库;使用当前环境的标识信息去占用一条属性资源库中依赖属性条目数据,并在第一个可分配的属性条目上设置当前环境标识的占用标记;再根据当前环境的标识信息与占用标记,获取占用的属性条目的所有具体属性信息,并判断获取的属性条目的属性信息是否不为空;
若属性信息不为空,根据加载的配置文件,遍历属性中存在子关系的父属性,更新该父属性下的子属性条目的状态为可分配,并判断所有父属性是否遍历完成,若未完成,则继续遍历属性中的下一个父属性;若已完成,应用软件根据获取到的所有属性数据,执行后续属性数据的具体应用流程,并判断后续流程执行是否成功,若是,更新该依赖属性条目的状态为分配成功,并结束操作;若否,则先更新该依赖属性条目的状态为可分配,再判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作;若否,直接结束操作;
若属性信息为空,则先更新该依赖属性条目的状态为可分配,再判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作;若否,直接结束操作。
注意:上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。
本发明实施例中提及的优点、优势、效果等仅是示例,而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,本发明实施例公开的上述具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明实施例必须采用上述具体的细节来实现。
本发明实施例中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子,并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。本发明实施例所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。本发明实施例所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本发明实施例中的步骤流程图以及以上方法描述仅作为例示性的例子,并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本发明各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置,以构思新的实施例,而这些新的实施例也包括在本发明的范围内。
本发明实施例中的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路或处理器。
本发明实施例的方法包括用于实现上述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
本发明实施例中的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、DVD(Digital Versatile Disc,数字多功能光盘)、软碟和蓝光盘,其中碟通过磁再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。
其他例子和实现方式在本发明实施例和所附权利要求的范围和精神内。例如,由于软件的本质,以上所述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。
本领域技术人员可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。且本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (8)
1.一种对象的关联属性动态并发分配方法,其特征在于,该方法包括以下步骤:
A、针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,并将属性字段信息及依赖规则写入配置文件中;
B、根据应用软件的需求,设置对象的属性的取值范围并写入配置文件中;根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入数据库中,形成属性资源库;其中,生成全量的对象属性资源数据时,生成的每个对象属性均具有初始的分配状态标识,所述分配状态标识用来表示该属性是否可分配;
C、当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配;
所述步骤B具体包括以下步骤:
B1、获取所述配置文件;
B2、遍历该配置文件中对象的属性;
B3、若该属性为存在依赖关系的属性,则根据应用软件的需求设置该属性的取值范围,并保存至配置文件中;
B4、判断该属性是否依赖其它属性,若是,转到步骤B5;若否,转到步骤B6;
B5、获取该属性对应的依赖规则;
B6、判断是否完成对象的所有属性的处理,若是,转到步骤B7;若否,返回步骤B2,遍历对象的下一个属性;
B7、根据设置的各属性的取值范围以及获取的各属性的依赖规则,生成全量的对象属性资源数据;生成的同时,根据各属性的依赖规则,将其中父属性的分配状态标识初始化为可分配,将其中子属性的分配状态标识初始化为不可分配;
B8、将生成的全量的对象属性资源数据导入数据库中,形成属性资源库。
2.如权利要求1所述的对象的关联属性动态并发分配方法,其特征在于,步骤A中,针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,具体包括以下操作:
列出对象的所有需要分配的属性字段;
记录存在依赖关系的属性字段,为其增加依赖标识;
根据所有的属性字段,进行数据库表结构的定义与设计,使得属性字段与实际对象属性字段个数及类型保持一致。
3.如权利要求1所述的对象的关联属性动态并发分配方法,其特征在于:步骤C中,依据配置文件中对象的属性的取值范围、属性的依赖规则以及属性的可分配状态,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
4.如权利要求1所述的对象的关联属性动态并发分配方法,其特征在于,该方法的步骤C具体包括以下步骤:
C1、当应用软件需要进行对象的属性分配时,加载所述配置文件;
C2、获取当前环境的标识信息,并直接从加载的配置文件中获取无任何依赖关系的属性的属性值;
C3、根据数据库的IP信息,连接属性资源库的数据库;
C4、使用当前环境的标识信息去占用一条属性资源库中依赖属性条目数据,并在第一个可分配的属性条目上设置当前环境标识的占用标记;
C5、根据当前环境的标识信息与占用标记,获取占用的属性条目的所有具体属性信息;
C6、判断获取的属性条目的属性信息是否不为空,若是,转到步骤C7;若否,转到步骤C12;
C7、根据加载的配置文件,遍历属性中存在子关系的父属性;
C8、更新该父属性下的子属性条目的状态为可分配;
C9、判断所有父属性是否遍历完成,若是,转到步骤C10;若否,返回步骤C7;
C10、应用软件根据获取到的所有属性数据,执行后续属性数据的具体应用流程;并判断后续流程执行是否成功,若是,转到步骤C11,若否,转到步骤C12;
C11、更新该依赖属性条目的状态为分配成功,并结束操作;
C12、更新该依赖属性条目的状态为可分配;
C13、判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,转到C14,若否,结束操作;
C14、更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作。
5.一种对象的关联属性动态并发分配系统,其特征在于,该系统包括:对象属性建模单元、属性资源库生成单元以及对象属性分配单元;
所述对象属性建模单元,用于:针对对象的所有需要分配的属性字段进行建模,建模过程中对于存在依赖关系的属性字段增加依赖标识,并将属性字段信息及依赖规则写入配置文件中;
所述属性资源库生成单元,用于:根据应用软件的需求,设置对象的属性的取值范围并写入配置文件中;根据对象的属性的取值范围以及属性的依赖规则,生成全量的对象属性资源数据,并导入至数据库中,形成属性资源库;其中,生成全量的对象属性资源数据时,生成的每个对象属性均具有初始的分配状态标识,所述分配状态标识用来表示该属性是否可分配;
所述对象属性分配单元,用于:当应用软件需要进行对象的属性分配时,依据配置文件中对象的属性的取值范围以及属性的依赖规则,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配;
所述属性资源库生成单元生成全量的对象属性资源数据的具体流程包括:
获取写有属性字段信息及依赖规则的配置文件;遍历该配置文件中对象的属性,若该属性为存在依赖关系的属性,则根据应用软件的需求设置该属性的取值范围,并保存至配置文件中;再判断该属性是否依赖其它属性,若是,获取该属性对应的依赖规则;若否,则判断是否完成对象的所有属性的处理,若未完成,则继续遍历对象的下一个属性;
否则,根据设置的各属性的取值范围以及获取的各属性的依赖规则,生成全量的对象属性资源数据,生成的同时,根据各属性的依赖规则,将其中父属性的分配状态标识初始化为可分配,将其中子属性的分配状态标识初始化为不可分配;再将生成的全量的对象属性资源数据导入数据库中,形成属性资源库。
6.如权利要求5所述的对象的关联属性动态并发分配系统,其特征在于,所述对象属性建模单元进行建模过程中对于存在依赖关系的属性字段增加依赖标识的具体流程包括:
列出对象的所有需要分配的属性字段;记录存在依赖关系的属性字段,为其增加依赖标识;根据所有的属性字段,进行数据库表结构的定义与设计,使得属性字段与实际对象属性字段个数及类型保持一致。
7.如权利要求5所述的对象的关联属性动态并发分配系统,其特征在于,所述对象属性分配单元是依据配置文件中对象的属性的取值范围、属性的依赖规则以及属性的可分配状态,在属性资源库中获取该对象可用的属性字段信息,以完成属性的动态分配。
8.如权利要求7所述的对象的关联属性动态并发分配系统,其特征在于,所述对象属性分配单元进行属性分配的具体流程包括:
当应用软件需要进行对象的属性分配时,加载所述配置文件;获取当前环境的标识信息,并直接从加载的配置文件中获取无任何依赖关系的属性的属性值;
根据数据库的IP信息,连接属性资源库的数据库;使用当前环境的标识信息去占用一条属性资源库中依赖属性条目数据,并在第一个可分配的属性条目上设置当前环境标识的占用标记;再根据当前环境的标识信息与占用标记,获取占用的属性条目的所有具体属性信息;并判断获取的属性条目的属性信息是否不为空;
若属性信息不为空,根据加载的配置文件,遍历属性中存在子关系的父属性,更新该父属性下的子属性条目的状态为可分配,并判断所有父属性是否遍历完成,若未完成,则继续遍历属性中的下一个父属性;若已完成,应用软件根据获取到的所有属性数据,执行后续属性数据的具体应用流程,并判断后续流程执行是否成功,若是,更新该依赖属性条目的状态为分配成功,并结束操作;若否,则先更新该依赖属性条目的状态为可分配,再判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作;若否,直接结束操作;
若属性信息为空,则先更新该依赖属性条目的状态为可分配,再判断该依赖属性条目是否为关键属性条目且是第一个父属性,若是,更新该依赖属性条目下的子属性条目的状态为不可分配,并结束操作;若否,直接结束操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010071477.4A CN111240739B (zh) | 2020-01-21 | 2020-01-21 | 一种对象的关联属性动态并发分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010071477.4A CN111240739B (zh) | 2020-01-21 | 2020-01-21 | 一种对象的关联属性动态并发分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240739A CN111240739A (zh) | 2020-06-05 |
CN111240739B true CN111240739B (zh) | 2022-04-15 |
Family
ID=70871901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010071477.4A Active CN111240739B (zh) | 2020-01-21 | 2020-01-21 | 一种对象的关联属性动态并发分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240739B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528338B (zh) * | 2022-01-19 | 2024-05-10 | 浪潮卓数大数据产业发展有限公司 | 一种动态导出字段的方法、装置、设备及介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101276348A (zh) * | 2007-03-30 | 2008-10-01 | 上海众恒信息产业有限公司 | 基于数据属性的数据处理系统和方法 |
CN101361088A (zh) * | 2005-11-23 | 2009-02-04 | 瑞士银行股份有限公司 | 用于产生、处理并管理结构化数据集的计算机实现的系统 |
US7610269B1 (en) * | 2007-07-30 | 2009-10-27 | Netlogic Microsystems, Inc. | Method and apparatus for constructing a failure tree from a search tree |
CN102360308A (zh) * | 2011-09-29 | 2012-02-22 | 用友软件股份有限公司 | 组件的分布式部署系统和方法 |
CN103107919A (zh) * | 2013-01-09 | 2013-05-15 | 大唐软件技术股份有限公司 | 一种网络资源建模方法和系统 |
CN103425490A (zh) * | 2013-07-19 | 2013-12-04 | 福建富士通信息软件有限公司 | 基于crm系统中运行对象数据的管理方法 |
CN103559032A (zh) * | 2013-10-31 | 2014-02-05 | 烽火通信科技股份有限公司 | 嵌入式系统对象管理的装置及方法 |
CN104392171A (zh) * | 2014-11-27 | 2015-03-04 | 南京大学 | 一种基于数据关联的自动内存证据分析方法 |
CN104516897A (zh) * | 2013-09-29 | 2015-04-15 | 国际商业机器公司 | 一种针对应用对象进行排序的方法和装置 |
CN105677419A (zh) * | 2016-01-08 | 2016-06-15 | 烽火通信科技股份有限公司 | 基于pon系统的对象管理装置及方法 |
CN106970788A (zh) * | 2017-02-24 | 2017-07-21 | 中国人民解放军海军大连舰艇学院 | 一种基于时态的对象依赖关系发现方法和系统 |
CN107943457A (zh) * | 2017-11-17 | 2018-04-20 | 中山大学 | 一种面向业务对象的工作流建模方法及系统 |
CN109478056A (zh) * | 2016-03-01 | 2019-03-15 | 源讯网源公司 | 用于分布式网格网络的智能节点 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901446B2 (en) * | 2001-02-28 | 2005-05-31 | Microsoft Corp. | System and method for describing and automatically managing resources |
WO2017212496A2 (en) * | 2016-06-08 | 2017-12-14 | Veriversion Labs Ltd. | Methods and systems of software testing, distribution, installation and deployment |
-
2020
- 2020-01-21 CN CN202010071477.4A patent/CN111240739B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101361088A (zh) * | 2005-11-23 | 2009-02-04 | 瑞士银行股份有限公司 | 用于产生、处理并管理结构化数据集的计算机实现的系统 |
CN101276348A (zh) * | 2007-03-30 | 2008-10-01 | 上海众恒信息产业有限公司 | 基于数据属性的数据处理系统和方法 |
US7610269B1 (en) * | 2007-07-30 | 2009-10-27 | Netlogic Microsystems, Inc. | Method and apparatus for constructing a failure tree from a search tree |
CN102360308A (zh) * | 2011-09-29 | 2012-02-22 | 用友软件股份有限公司 | 组件的分布式部署系统和方法 |
CN103107919A (zh) * | 2013-01-09 | 2013-05-15 | 大唐软件技术股份有限公司 | 一种网络资源建模方法和系统 |
CN103425490A (zh) * | 2013-07-19 | 2013-12-04 | 福建富士通信息软件有限公司 | 基于crm系统中运行对象数据的管理方法 |
CN104516897A (zh) * | 2013-09-29 | 2015-04-15 | 国际商业机器公司 | 一种针对应用对象进行排序的方法和装置 |
CN103559032A (zh) * | 2013-10-31 | 2014-02-05 | 烽火通信科技股份有限公司 | 嵌入式系统对象管理的装置及方法 |
CN104392171A (zh) * | 2014-11-27 | 2015-03-04 | 南京大学 | 一种基于数据关联的自动内存证据分析方法 |
CN105677419A (zh) * | 2016-01-08 | 2016-06-15 | 烽火通信科技股份有限公司 | 基于pon系统的对象管理装置及方法 |
CN109478056A (zh) * | 2016-03-01 | 2019-03-15 | 源讯网源公司 | 用于分布式网格网络的智能节点 |
CN106970788A (zh) * | 2017-02-24 | 2017-07-21 | 中国人民解放军海军大连舰艇学院 | 一种基于时态的对象依赖关系发现方法和系统 |
CN107943457A (zh) * | 2017-11-17 | 2018-04-20 | 中山大学 | 一种面向业务对象的工作流建模方法及系统 |
Non-Patent Citations (1)
Title |
---|
WPF 学习笔记4 依赖属性;JohnnyNet;《https://www.cnblogs.com/zhaoyun2007/archive/2012/11/27/2789446.html》;20121127;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111240739A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9430224B2 (en) | Hot-update method and apparatus | |
CN107122368B (zh) | 一种数据校验方法、装置及电子设备 | |
CN110011785B (zh) | 一种基于区块链对结构化作品进行存证的方法及装置 | |
CN105808437B (zh) | 基于测试用例数据表的自动化测试方法及系统 | |
US20200249922A1 (en) | Method and apparatus for data compilation, electronic device and computer readable storage medium | |
CN107092491B (zh) | 一种配置加载方法和系统 | |
CN106897342B (zh) | 一种数据校验方法和设备 | |
CN107832446B (zh) | 一种配置项信息的搜索方法及计算设备 | |
CN111813805A (zh) | 一种数据处理方法及装置 | |
CN110032568B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
CN107590207A (zh) | 数据同步方法及装置、电子设备 | |
CN105630475A (zh) | 一种数据标签组织系统及组织方法 | |
JP6975153B2 (ja) | データ格納サービス処理方法及び装置 | |
CN111240739B (zh) | 一种对象的关联属性动态并发分配方法及系统 | |
CN113392068A (zh) | 数据处理方法、装置和系统 | |
CN110968505A (zh) | 一种api接口的自动化测试方法和系统 | |
CN105373376A (zh) | 用于配置软件应用的方法和装置 | |
CN113888173B (zh) | 基于区块链的智能合约调用方法、装置及设备 | |
CN109344173B (zh) | 数据管理方法和装置、数据结构 | |
CN110362569A (zh) | 数据表的校验方法及装置、电子设备、存储介质 | |
CN112000367B (zh) | 一种二进制库文件版本兼容性识别方法和装置 | |
CN107357691B (zh) | 镜像文件的处理方法及装置 | |
CN109933325A (zh) | 一种dex文件构建方法、装置及系统 | |
CN111427863A (zh) | 一种基于领域模型的数据迁移方法、装置及设备 | |
CN115203746A (zh) | 数据账户的访问授权方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |