一种配置任务流程的方法、装置和电子设备
技术领域
本申请涉及计算机领域,尤其涉及一种配置任务流程的方法、装置和电子设备。
背景技术
流程是我们所熟知的概念,顾名思义,一个流程会涉及到多个处理步骤,实际上,这些步骤,通常体现为任务的形式,在人工智能的很多应用中,(比如人工智能机器人的语音对话等),在使用前,往往需要对任务流程的进行配置,现有的配置方式多是通过代码编程的方式来实现的,这种配置任务流程的方式很直接,但是对配置用户的要求较高,对配置过程的准确性要求较高,较为复杂,有必要提出一种便利的配置任务流程的方法。
发明内容
本说明书实施例提供一种配置任务流程的方法、装置和电子设备,用以提高配置任务流程的便利性。
本说明书实施例提供一种配置任务流程的方法,包括:
为用户提供可视化配置页面,所述可视化配置页面中具有可通过用户拖拽操作进行组合的流程节点组件和边组件;
获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
确定通过拖拽操作使不同的流程节点组件相组合的边组件;
获取所述边组件对应的边数据以及所述边组件相组合的所述流程节点组件对应的流程节点数据;
根据所述流程节点数据及所述边数据生成任务流程。
可选地,所述确定通过拖拽操作使不同的流程节点组件相组合的边组件,包括:
确定通过拖拽操作将不同的流程节点组件相连接的边组件。
可选地,所述获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
获取用户在所述配置页面中对流程节点组件进行拖拽产生的行为数据;
所述方法还包括:
根据流程节点组件进行拖拽产生的行为数据更新所述配置页面中流程节点图标的位置。
可选地,所述获取所述边组件对应的边数据,包括:
获取用户对边组件进行编辑操作产生的边数据。
可选地,所述根据所述流程节点数据及所述边数据生成任务流程,包括:
确定所述流程节点数据的父子关系;
以所述边数据为索引条件存储父节点数据、子节点数据,所述索引条件为由所述父节点数据检索到所述子节点数据的条件。
可选地,所述以所述边数据为索引条件存储父节点数据、子节点数据,包括:
为流程节点数据分配节点标识;
以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表。
可选地,所述父节点数据对应多个子节点数据;
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表,包括:
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、各边数据和各边数据对应的所述子节点数据的地址的任务流程数据表。
可选地,还包括:
确定不同配置页面生成的多个任务流程;
确定不同任务流程之间的跳转节点;
利用所述跳转节点验证所述多个任务流程之间是否存在闭环。
可选地,所述利用所述跳转节点验证所述多个任务流程之间是否存在闭环,包括:
对所述多个任务流程构成的整体的任务流程树进行全局扫描,判断是否存在闭环。
本说明书实施例还提供一种配置任务流程的装置,包括:
配置页面模块,为用户提供可视化配置页面,所述可视化配置页面中具有可通过用户拖拽操作进行组合的流程节点组件和边组件;
数据处理模块,获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
确定通过拖拽操作使不同的流程节点组件相组合的边组件;
获取所述边组件对应的边数据以及所述边组件相组合的所述流程节点组件对应的流程节点数据;
根据所述流程节点数据及所述边数据生成任务流程。
可选地,所述获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
获取用户在所述配置页面中对流程节点组件进行拖拽产生的行为数据;
所述数据处理模块,还用于:
根据流程节点组件进行拖拽产生的行为数据更新所述配置页面中流程节点图标的位置。
可选地,所述获取所述边组件对应的边数据,包括:
获取用户对边组件进行编辑操作产生的边数据。
可选地,所述根据所述流程节点数据及所述边数据生成任务流程,包括:
确定所述流程节点数据的父子关系;
以所述边数据为索引条件存储父节点数据、子节点数据,所述索引条件为由所述父节点数据检索到所述子节点数据的条件。
可选地,所述以所述边数据为索引条件存储父节点数据、子节点数据,包括:
为流程节点数据分配节点标识;
以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表。
可选地,所述父节点数据对应多个子节点数据;
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表,包括:
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、各边数据和各边数据对应的所述子节点数据的地址的任务流程数据表。
可选地,所述数据处理模块,还用于:
确定不同配置页面生成的多个任务流程;
确定不同任务流程之间的跳转节点;
利用所述跳转节点验证所述多个任务流程之间是否存在闭环。
可选地,所述利用所述跳转节点验证所述多个任务流程之间是否存在闭环,包括:
对所述多个任务流程构成的整体的任务流程树进行全局扫描,判断是否存在闭环。
本说明书实施例还提供一种电子设备,其中,该电子设备包括:
处理器;以及,
存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任一项方法。
本说明书实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现上述任一项方法。
本说明书实施例提供的各种技术方案通过为用户提供可视化配置页面,用户通过拖拽操作可将流程节点组件和边组件相组合,确定通过拖拽操作使不同的流程节点组件相组合的边组件,根据流程节点组件对应的流程节点数据和边组件对应的边数据生成任务流程。由于可视化配置页面能够为用户直观展示组件间的组合关系,只需要用户进行拖拽操作,便可以自动获取组件对应的数据并生成与用户拖拽操作所反映的需求相一致的任务流程,而不需要用户通过代码编程的方式进行配置,因而提高了便利性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种配置任务流程的方法的原理示意图;
图2为本说明书实施例提供的一种配置任务流程的装置的结构示意图;
图3为本说明书实施例提供的一种电子设备的结构示意图;
图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
具体实施方式
现在将参考附图更全面地描述本发明的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本发明更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
在对于具体实施例的描述中,本发明描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本发明的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
术语“和/或”或者“及/或”包括相关联的列出项目中的任一个或多者的所有组合。
图1为本说明书实施例提供的一种配置任务流程的方法的原理示意图,该方法可以包括:
S101:为用户提供可视化配置页面,所述可视化配置页面中具有可通过用户拖拽操作进行组合的流程节点组件和边组件。
在本说明书实施例中,可视化配置页面是指用户可以进行拖拽、编辑等操作的页面,该页面中可以新增流程节点组件和边组件,用户可以通过选择或者编辑操作为组件配置数据。
具体的组件形状,可以是这样:流程节点组件为闭合图形,比如矩形;边组件为带有箭头的线条。
每个组件都对应有组件数据,流程节点组件对应流程节点数据,边组件对应边数据。
其中,流程节点数据为任务内容,边数据为流程节点跳转条件,用来描述流程节点之间的依赖关系,比如,边数据可以为:是或否中的一个,执行完一个流程节点组件的任务内容后,如果用户反馈为“是”,则满足了向边数据为“是”的边组件所指向的下一流程节点的条件,那么,根据组合关系,便可以执行该边组件所指向的流程节点组件的任务内容。
当然,这里指的都是已经相组合的组件。
其中,一个流程节点组件可以通过多个边组件与多个流程节点组件相组合。
我们可以把跳转前的流程节点称作父节点,将跳转后的流程节点称作子节点,因此,一个父节点可以通过多个节点跳转条件而与多个子节点相组合,子节点与节点跳转条件一一对应。
在为用户提供可视化配置页面后,便可以监测用户在页面中进行的行为,在监测到产生用户行为时,获取用户在所述配置页面中进行拖拽操作产生的行为数据。
S102:获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
确定通过拖拽操作使不同的流程节点组件相组合的边组件;
获取所述边组件对应的边数据以及所述边组件相组合的所述流程节点组件对应的流程节点数据。
在本说明书实施例中,使不同的流程节点组件相组合的边组件,可以是使不同的流程节点组件与边组件满足预设的位置关系条件。
优选的,位置关系条件,可以是相互连接。
因此,在本说明书实施例中,确定通过拖拽操作使不同的流程节点组件相组合的边组件,可以包括:
确定通过拖拽操作满足预设的位置关系条件的流程节点组件和边组件。
其中,满足预设的位置关系条件的流程节点组件和边组件,可以包括:通过边组件相连接的流程节点组件及将所述流程节点组件相连接的边组件。
可见,所述确定通过拖拽操作使不同的流程节点组件相组合的边组件,也包括:
确定通过拖拽操作使不同的流程节点组件相连接的边组件。
当然,位置关系条件也可以是其他类似的条件,比如,边组件由一个流程节点组件指向另一个流程节点组件,这里的位置关系,是指向关系。
其中,拖拽操作可以是移动组件,也可以是使组件的形状或大小产生变化,比如使边组件沿着拖拽方向延伸。
拖拽,可以是对流程节点组件或边组件进行拖拽。
故,不同的流程节点组件相组合可以使通过拖拽不同的流程节点组件,分别与边组件的两侧相连接,也可以是拖拽或延伸边组件,使其两端分别与流程节点组件相连接。
当然,将组件相组合的过程往往是一个持续的过程,并不是每次拖拽操作都会产生新的组合关系,但是,每次拖拽操作都应该使页面发生变化,使页面中组件的位置随用户操作而变化。
因此,在本说明书实施例中,所述获取用户在所述配置页面中进行拖拽操作产生的行为数据,可以包括:
获取用户在所述配置页面中对流程节点组件进行拖拽产生的行为数据;
这样,该方法还可以包括:
根据流程节点组件进行拖拽产生的行为数据更新所述配置页面中流程节点图标的位置。
该方法该可以包括:
判断所述拖拽操作产生的行为数据是否使组件的组合方式变化。
组合方式变化,可以是产生新的组合,或者解除原组合。
对于产生新的组合,可以通过判断所述拖拽操作是否使不同的流程节点组件与边组件满足预设的位置关系条件。
比如,判断配置操作是否使边组件将不同的流程节点组件相连接。
在本说明书实施例中,获取所述边组件对应的边数据,可以包括:
获取用户对边组件进行编辑操作产生的边数据。
当然,程序中可能已经为组件配置数据,因此,获取所述边组件对应的边数据,可以包括:
获取预先为所述边组件配置的边数据。
在获得相组合的组件所对应的数据后,便可以用其生成任务流程。
S103:根据所述流程节点数据及所述边数据生成任务流程。
通过为用户提供可视化配置页面,用户通过拖拽操作可将流程节点组件和边组件相组合,确定通过拖拽操作使不同的流程节点组件相组合的边组件,根据流程节点组件对应的流程节点数据和边组件对应的边数据生成任务流程。由于可视化配置页面能够为用户直观展示组件间的组合关系,只需要用户进行拖拽操作,便可以自动获取组件对应的数据并生成与用户拖拽操作所反映的需求相一致的任务流程,而不需要用户通过代码编程的方式进行配置,因而提高了便利性。
其中,生成任务流程,是指存储数据,存储方式,应该体现出流程节点之间的组合关系(跳转条件和跳转方向)。
跳转条件可以通过存储边数据来实现,跳转方向可以通过区分流程节点数据的父子关系来实现。
因此,所述根据所述流程节点数据及所述边数据生成任务流程,可以包括:
确定所述流程节点数据的父子关系;
以所述边数据为索引条件存储父节点数据、子节点数据,所述索引条件为由所述父节点数据检索到所述子节点数据的条件。
这样,进行数据存储后,通过执行任务流程时,便可以根据父节点数据执行任务,执行之后,根据交互的反馈结果判断反馈结果满足哪个索引条件,继而根据该索引条件索引到子节点数据,根据子节点数据执行下一个流程节点的任务内容。
具体的利用数据表存储数据的方式,可以是,所述以所述边数据为索引条件存储父节点数据、子节点数据,包括:
为流程节点数据分配节点标识;
以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表。
如果所述父节点数据对应多个子节点数据;
那么所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表,可以包括:
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、各边数据和各边数据对应的所述子节点数据的地址的任务流程数据表。
实际上,在生成任务流程的同时,可视化配置页面会由于拖拽成一个任务流程树,考虑到任务的执行不能产生循环,因此,配置页面中的任务流程树需要是有向无环图(DAG),因此,在生成任务流程后,我们可以验证其中是否存在死循环的情况。
具体的,可以通过遍历所生成的任务流程数据表中的每个流程节点,判断是否产生死循环。
通过遍历的方式,可以自动识别闭环数据。
考虑到如果任务流程较复杂,节点较多,或者逻辑关系较复杂,那么,这时依然只在一个页面中进行配置,就容易显得力不从心,而如果我们利用多个页面分别进行配置,每个页面配置一个部分,或者根据流程的逻辑关系划分层次,不同的页面配置用来配置不同层次的任务流程,就可以进一步简化配置过程,通过这多个任务流程之间共有的流程节点便可以将多个任务流程合成一个整体的任务流程。
因此,在本说明书实施例中,该方法还可以包括:
确定不同配置页面生成的多个任务流程;
确定不同任务流程之间的跳转节点;
利用所述跳转节点验证所述多个任务流程之间是否存在闭环。
可选地,所述利用所述跳转节点验证所述多个任务流程之间是否存在闭环,包括:
对所述多个任务流程构成的整体的任务流程树进行全局扫描,判断是否存在闭环。
其中,跳转节点可以是在配置时标记的,表示该流程节点的下一流程节点在其他配置页面中,当然,跳转节点也可能是配置页面中的初始节点,表示该流程节点的上一流程节点在其他配置页面中。
在生成任务流程实施任务时,有多种应用方式,流程节点数据类型的不同,可以产生不同的应用方式,比如,在一种应用方式中,可以是智能语音机器人的语音交互:识别用户反馈的语音,分析当前属于哪种情况(边数据),根据分析结果索引下一流程节点数据并执行该流程节点数据的任务内容。执行任务可以是与用户进行对话,也可以是控制机器人移动,甚至是执行程序中的指令,或者是根据用户的反馈自动进行页面的跳转,这都可能应用上述实施例中的配置任务流程的方法。
因此,在本说明书实施例中,该方法还可以包括:
利用生成的任务流程与用户进行智能交互。
具体的,利用生成的任务流程与用户进行智能交互,可以包括:
利用父节点数据执行任务,获取用户的反馈信息;
确定所述父节点数据下与所述反馈信息向匹配的边数据;
利用所述边数据索引对应的子节点数据,利用所述子节点数据执行任务。
当然,上述实施例中的可视化配置页面,可能会有其他比喻性的描述,比如:流程画布。而生成的任务流程是多维数组的数据结构。
图2为本说明书实施例提供的一种配置任务流程的结构示意图,该装置可以包括:
配置页面模块201,为用户提供可视化配置页面,所述可视化配置页面中具有可通过用户拖拽操作进行组合的流程节点组件和边组件;
数据处理模块202,获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
确定通过拖拽操作使不同的流程节点组件相组合的边组件;
获取所述边组件对应的边数据以及所述边组件相组合的所述流程节点组件对应的流程节点数据;
根据所述流程节点数据及所述边数据生成任务流程。
可选地,所述获取用户在所述配置页面中进行拖拽操作产生的行为数据,包括:
获取用户在所述配置页面中对流程节点组件进行拖拽产生的行为数据;
所述数据处理模块,还用于:
根据流程节点组件进行拖拽产生的行为数据更新所述配置页面中流程节点图标的位置。
可选地,所述获取所述边组件对应的边数据,包括:
获取用户对边组件进行编辑操作产生的边数据。
可选地,所述根据所述流程节点数据及所述边数据生成任务流程,包括:
确定所述流程节点数据的父子关系;
以所述边数据为索引条件存储父节点数据、子节点数据,所述索引条件为由所述父节点数据检索到所述子节点数据的条件。
可选地,所述以所述边数据为索引条件存储父节点数据、子节点数据,包括:
为流程节点数据分配节点标识;
以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表。
可选地,所述父节点数据对应多个子节点数据;
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、所述边数据和所述子节点数据的地址的任务流程数据表,包括:
所述以各流程节点数据的节点标识为主键,生成具有所述父节点数据、各边数据和各边数据对应的所述子节点数据的地址的任务流程数据表。
可选地,所述数据处理模块,还用于:
确定不同配置页面生成的多个任务流程;
确定不同任务流程之间的跳转节点;
利用所述跳转节点验证所述多个任务流程之间是否存在闭环。
可选地,所述利用所述跳转节点验证所述多个任务流程之间是否存在闭环,包括:
对所述多个任务流程构成的整体的任务流程树进行全局扫描,判断是否存在闭环。
在生成任务流程实施任务时,有多种应用方式,流程节点数据类型的不同,可以产生不同的应用方式,比如,在一种应用方式中,可以是智能语音机器人的语音交互:识别用户反馈的语音,分析当前属于哪种情况(边数据),根据分析结果索引下一流程节点数据并执行该流程节点数据的任务内容。执行任务可以是与用户进行对话,也可以是控制机器人移动,甚至是执行程序中的指令,或者是根据用户的反馈自动进行页面的跳转,这都可能应用上述实施例中的配置任务流程的方法。
该装置通过为用户提供可视化配置页面,用户通过拖拽操作可将流程节点组件和边组件相组合,确定通过拖拽操作使不同的流程节点组件相组合的边组件,根据流程节点组件对应的流程节点数据和边组件对应的边数据生成任务流程。由于可视化配置页面能够为用户直观展示组件间的组合关系,只需要用户进行拖拽操作,便可以自动获取组件对应的数据并生成与用户拖拽操作所反映的需求相一致的任务流程,而不需要用户通过代码编程的方式进行配置,因而提高了便利性。
基于同一发明构思,本说明书实施例还提供一种电子设备。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图3为本说明书实施例提供的一种电子设备的结构示意图。下面参照图3来描述根据本发明该实施例的电子设备300。图3显示的电子设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,电子设备300以通用计算设备的形式表现。电子设备300的组件可以包括但不限于:至少一个处理单元310、至少一个存储单元320、连接不同系统组件(包括存储单元320和处理单元310)的总线330、显示单元340等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书上述处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图1所示的步骤。
所述存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(ROM)3203。
所述存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备300也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备300交互的设备通信,和/或与使得该电子设备300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口350进行。并且,电子设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器360可以通过总线330与电子设备300的其它模块通信。应当明白,尽管图3中未示出,可以结合电子设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。当所述计算机程序被一个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:如图1所示的方法。
图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
实现图1所示方法的计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。