一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种状态机配置方法、装置及电子设备与流程

2022-06-29 21:37:54 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种状态机配置方法、装置及电子设备。


背景技术:

2.状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。状态机可以用于描述有限个状态,以及在这些状态之间的转移和动作等行为。状态机的每一个状态节点,也可称之为步骤,会根据输入来执行响应操作,并将输出传递给下一个状态节点。目前,对于状态机各种状态的描述能力较为单一,无法适用于比较复杂的业务流。因此,如何丰富状态机的描述,以准确、全面地描述业务的工作流成为了目前亟待解决的问题。


技术实现要素:

3.本发明实施例提供了一种状态机配置方法、装置及电子设备,可以提供功能丰富多样的状态节点,从而准确、全面地描述业务的工作流。
4.一方面,本发明实施例提供了一种状态机配置方法,包括:
5.获取针对目标业务的状态机配置数据;
6.根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息;
7.根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机,上述每个状态节点用于执行目标业务的一个业务流程。
8.一方面,本发明实施例提供了一种状态机配置装置,该装置包括:
9.获取单元,用于获取针对目标业务的状态机配置数据;
10.确定单元,用于根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息;
11.处理单元,用于根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机,上述每个状态节点用于执行目标业务的一个业务流程。
12.一方面,本发明实施例提供了一种电子设备,包括:
13.处理器,适于实现一条或多条指令;以及
14.计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行:
15.获取针对目标业务的状态机配置数据;
16.根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息;
17.根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机,上述每个状态节点用于执行目标业务的一个业务流程。
18.相应地,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述状态机配置方法。
19.相应地,本技术实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得计算机设备执行上述状态机配置方法。
20.本技术实施例中,通过获取针对目标业务的状态机配置数据,并根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,可以根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机。通过实施本技术实施例提供的方法,可以提供功能丰富多样的状态节点,从而准确、全面地描述业务的工作流。
附图说明
21.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1是本发明实施例提供的一种示例性的状态机示意图;
23.图2是本发明实施例提供的一种状态机配置系统的架构图;
24.图3是本发明实施例提供的一种状态机配置方法的流程示意图;
25.图4是本发明实施例提供的另一种状态机配置方法的流程示意图;
26.图5是本发明实施例提供的一种改变输入数据的状态机的流程示意图;
27.图6是本发明实施例提供的一种并行逻辑状态机的流程示意图;
28.图7是本发明实施例提供的一种状态机配置装置;
29.图8是本发明实施例提供的一种电子设备。
具体实施方式
30.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
32.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
33.云计算(cloud computing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易
扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(grid computing)、分布式计算(distributedcomputing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storagetechnologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。
34.随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
35.本技术实施例主要涉及云技术中的云计算等技术,以下进行具体说明:
36.为了便于理解,首先对本技术实施例涉及的术语进行介绍。
37.1、状态机
38.状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。状态机可以用于描述有限个状态,以及在这些状态之间的转移和动作等行为。示例性的,可参见图1,图1所示即可以为一个状态机。
39.示例性的,由图1可见,图1是以语音识别业务为例的一个状态机,该语音识别业务可以包含如图所示的六个业务流程,即预处理流程、视频处理流程、文字识别流程、语音识别流程、自然语言处理流程和合并存储流程。可选的,也可以将视频处理流程、文字识别流程和语音识别流程作为一个业务流程,即作为一个独立的状态机,本技术对此不做限制。
40.2、状态节点
41.状态机的每一个状态节点,也可称之为业务流程或者步骤,会根据输入来执行响应操作,并将输出传递给下一个状态节点。示例性的,同样参见图1,图1中所示的语音识别即可为一个状态节点,可以用于实现语音识别对应的业务流程;自然语言处理也可以为一个状态节点,可以用于实现自然语言处理对应的业务流程。
42.基于此,本技术提供了一种状态机配置方法,该方法包括获取针对目标业务的状态机配置数据;根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息;根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机,上述每个状态节点用于执行目标业务的一个业务流程。
43.为了实现上述状态机配置方法,本发明实施例提供了一种状态机配置系统,请参见图2,图2是本发明实施例提供的一种状态机配置系统架构图。该状态机配置系统包括但不限于一个或多个终端设备、一个或多个服务器,在图2中,以一个终端设备201、一个服务器202为例进行说明。图2所示的设备数量和形态用于举例并不构成对本发明实施例的限定。
44.其中,终端设备201可用于接收状态机的配置数据,并提供可视化界面或非可视化界面以供用户根据不同的业务,按照配置好的语法规则配置模板填写状态机的配置数据。服务器202可用于执行本发明实施例提供的状态机配置方法,通过获取状态机配置数据,来确定状态机的状态节点以及每个状态节点的特征数据,以生成目标业务对应的状态机,从而准确、全面地描述业务的工作流。
45.服务器202可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集
群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备201可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备201以及服务器202可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
46.基于上述的状态机配置系统,本发明实施例提供了一种状态机配置方法。请参见图3,是本发明实施例提供的一种状态机配置方法的流程示意图。该状态机配置方法可应用于图2所示的状态机配置系统,由服务器执行,具体可由服务器的处理器执行。该状态机配置方法包括如下步骤:
47.s301、服务器获取针对目标业务的状态机配置数据。
48.具体的,服务器可以接收终端设备发送的针对目标业务的状态机配置数据,该状态机配置数据是由用户在终端设备上配置的,具体可以按照语法规则配置模板输入配置数据。上述语法规则配置模板具体可以包括状态机描述模板,节点定义模板,输入输出规则配置模板。
49.在一个实施例中,上述状态机配置数据可以包括一个或多个状态节点的定义信息以及起始状态节点的指示信息。
50.需要说明的是,上述目标业务可以对应一个或多个状态节点,该一个或多个状态节点可以理解为目标业务对应的一个或多个业务流程。可以理解的是,一个业务流程可以对应一个状态节点,可选的,一个业务流程也可以对应多个状态节点,本技术对此不作限制。
51.其中,上述状态机配置数据中可以包含必选参数,必选参数包括状态节点定义信息和起始状态节点的指示信息,以及可选参数,可选参数包括状态机的描述信息、状态机运行的超时时间信息等。上述状态机配置数据的必选参数和可选参数的定义如下:
52.startat起始状态节点的指示信息:指定状态机的起始节点。
53.steps状态节点定义信息:状态机所包含的所有状态节点的定义信息。
54.description状态机的描述信息:定义状态机的描述信息。
55.timeoutseconds状态机运行的超时时间信息:指定状态机运行的超时时间,单位秒。
56.timeoutmilliseconds状态机运行的超时时间信息:指定状态机运行的超时时间,单位毫秒。
57.需要说明的是,关键词“timeoutseconds”所表示的超时时间是以“秒”为单位;关键词“timeoutmilliseconds”所表示的超时时间是以“毫秒”为单位。在使用上述两个关键词对状态机进行描述时,可以单独使用上述两个关键词中的任意一种,也可以组合使用上述两个关键词,本技术对此不做限制。
58.还需要说明的是,上述状态机配置数据中还可以包含其他关键词,本技术所提及的关键词用于举例说明,并不对本技术造成限制。可选的,上述关键词的名称仅用于举例,并不对本技术造成限制,通过将关键词大小写转换,或者替换少量关键词的方案也属于本技术保护的范围。
59.s302、服务器根据状态机配置数据确定一个或多个状态节点以及每个状态节点的
特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息。
60.在一个实施例中,上述根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,包括:根据一个或多个状态节点的定义信息确定一个或多个状态节点以及每个状态节点的特征数据;根据起始状态节点的指示信息从一个或多个状态节点中确定起始状态节点。
61.需要说明的是,状态机的每个状态节点都包含该状态节点的特征数据,该特征数据包含通用属性和特有属性。可以理解的是,通用属性可以为每个状态节点都有的属性;特有属性可以为每个状态节点单独拥有的属性。
62.由前述内容可知,通用属性可以包括节点类型和终止状态节点指示信息。需要说明的是,上述节点类型和终止状态节点指示信息为通用属性中的必选参数,通用属性还可以包含可选参数:状态节点的描述信息、数据输入规则、数据输出规则等。上述通用属性的必选参数和可选参数的定义如下:
63.description状态节点的描述信息:状态机状态节点的描述信息。
64.type节点类型:状态机状态节点的类型,具体的节点类型可参见下文描述。
65.nextstep终止状态节点指示信息:指定下一个步骤节点。
66.end终止状态节点指示信息:指定当前步骤节点是否为最后一个节点。
67.input数据输入规则:指定数据输入规则。
68.output数据输出规则:指定数据输出规则。
69.其中,终止状态节点指示信息可以用关键词“nextstep”或“end”表示。需要说明的是,终止状态节点指示信息至少从关键词“nextstep”和“end”两者中选择一种。
70.在一个实施例中,上述节点类型可以为任务处理类型、数据传输类型、分支选择类型、循环执行类型、并行执行类型、等待执行类型、执行成功类型和执行失败类型中的任意一种。其中,上述各个节点类型的定义如下:
71.task任务处理类型:在状态机中执行一些工作的节点。
72.pass数据传输类型:在状态机中单纯透传节点数据或进行数据处理。
73.choice分支选择类型:在状态机中执行分支之间进行选择。
74.foreach循环执行类型:在状态机中动态迭代的状态节点。
75.parallel并行执行类型:在状态机中执行并行分支。
76.wait等待执行类型:状态机等待一段时间后继续执行。
77.success执行成功类型:将停止状态机,并标记为执行成功。
78.fail执行失败类型:将停止状态机,并标记为执行失败。
79.需要说明的是,上述节点类型仅用于举例,还可以根据用户需要增加其他节点类型,或者减少上述节点类型中的一种或多种,本技术对此不作限制。同理,上述节点类型的名称以及关键词的名称同样仅用于举例,并不对本技术造成限制。
80.在一个实施例中,若第一状态节点的节点类型为任务处理类型,则第一状态节点的特有属性包括接口参数和功能指示参数,该第一状态节点为一个或多个状态节点中的任意一个。
81.其中,上述接口参数和功能指示参数为任务处理类型状态节点的特有属性中的必
选参数,该任务处理类型状态节点的特有属性中还可以包含可选参数:状态节点运行的超时时间、出错重试、出错捕获等。上述任务处理类型状态节点的特有属性的必选参数和可选参数定义如下:
82.resourceqrn接口参数:指示下一状态节点的接口信息。
83.parameters功能指示参数:指示状态节点中的一些参数。
84.timeoutseconds状态节点运行的超时时间:指定步骤节点运行超时时间,单位秒。
85.timeoutmilliseconds状态节点运行的超时时间:指定步骤节点运行超时时间,单位毫秒。
86.retries出错重试:指示该状态节点出错,并进行重试。
87.catches出错捕获:指示该状态节点出错,并进行捕获。
88.其中,状态节点运行的超时时间同样可以用关键词“timeoutseconds”或“timeoutmilliseconds”表示,用于指示状态节点运行超时时间;可参见前述状态机运行的超时时间的详细描述,本技术在此不再赘述。
89.在一个实施例中,若第一状态节点的节点类型为分支选择类型,则第一状态节点的特有属性包括选择逻辑规则数组,该选择逻辑规则数组包括选择条件和下一个状态节点。
90.其中,上述选择逻辑规则数组,以及该选择逻辑规则数组包含的选择条件和下一个状态节点,为分支选择类型状态节点的特有属性中的必选参数,该分支选择类型状态节点的特有属性中还可以包含可选参数:默认下一状态节点等。上述分支选择类型状态节点的特有属性的必选参数和可选参数定义如下:
91.choices选择逻辑规则数组:定义选择逻辑的规则数组。
92.condition选择条件:定义选择操作的条件表达式。
93.nextstep下一个状态节点:定义满足条件的下一个状态节点。
94.default默认下一状态节点:定义不满足所有条件表达式时默认的下一个状态节点。
95.需要说明的是,条件表示式可以为不同的类型,比如可以为字符串匹配判断,例如:"$.name==john";也可以为数字大小判断,例如:"$.age》=18";还可以为字符串类型的数字匹配判断,例如:"$.grade.number==string(100)",本技术对此不作限制。
96.如下所示的字符串为分支选择类型的示例:
[0097][0098]
由上述代码可知,该字符串描述的是名为“scorechoices”的状态节点,该状态节点的节点类型为分支选择类型,该分支选择类型包含两个选择逻辑数组。第一个选择逻辑数组的选择条件为“$.status《=20”,下一个状态节点为"addscore";第二个选择逻辑数组的选择条件为“$.status》100”,下一个状态节点为"subscore"。该分支选择类型包含默认下一状态节点,即在不满足上述两个选择条件是默认的下一个状态节点为"defaultoperate"。
[0099]
在一个实施例中,若第一状态节点的节点类型为循环执行类型,则第一状态节点的特有属性包括循环变量的路径信息以及循环逻辑状态机。
[0100]
其中,上述循环变量的路径信息和循环逻辑状态机为循环执行类型状态节点的特有属性中的必选参数,该循环执行类型状态节点的特有属性中还可以包含可选参数:最大并发数、出错重试、出错捕获等。上述循环执行类型状态节点的特有属性的必选参数和可选参数定义如下:
[0101]
iterationpath循环变量的路径信息:指定循环变量的jsonpath路径。
[0102]
iterator循环逻辑状态机:定义循环逻辑的状态机,状态机具体字段可参照前述状态机配置数据的相关描述。
[0103]
maxconcurrency最大并发数:指定循环的最大并发数。
[0104]
retries出错重试:指示该状态节点出错,并进行重试。
[0105]
catches出错捕获:指示该状态节点出错,并进行捕获。
[0106]
需要说明的是,上述循环逻辑状态机可以理解为,将该逻辑循环部分当做一个全新的状态机来描述。因此,上述循环逻辑状态机将包含状态机配置数据中的两个必选参数,
即状态节点定义信息和起始状态节点的指示信息;还可以包含可选参数,即状态机的描述信息、状态机运行的超时时间信息等。具体的关键词的描述可参见前述内容,本技术在此不再赘述。
[0107]
还需要说明的是,上述最大并发数默认值为1,用于表示至少有一个工作线程去处理;该最大并发数最大值可以为100,也可以为其他数值,本技术对此不作限制。
[0108]
如下所示的字符串为循环执行类型的示例:
[0109][0110][0111]
由上述字符串可知,上述状态机的起始节点为"foreachvideos",且该名为"foreachvideos"的状态节点的节点类型为循环执行类型,该状态节点的循环变量的jsonpath路径为"$.videos",且该状态节点包含一个循环逻辑状态机。该循环逻辑状态机的起始节点为"checkpath",以及该循环状态机的所以状态节点的定义信息。需要说明的是,上述状态节点配置有数据输入规则,将在后文描述数据输入规则是再做详细描述。
[0112]
在一个实施例中,若第一状态节点的节点类型为并行执行类型,则第一状态节点的特有属性包括并行逻辑状态机。
[0113]
其中,上述并行逻辑状态机为并行执行类型状态节点的特有属性中的必选参数,该并行执行类型状态节点的特有属性中还可以包含可选参数:出错重试、出错捕获等。上述并行执行类型状态节点的特有属性的必选参数和可选参数定义如下:
[0114]
branches并行逻辑状态机:定义并行逻辑的状态机数组,状态机具体字段可参照前述状态机配置数据的相关描述。
[0115]
retries出错重试:指示该状态节点出错,并进行重试。
[0116]
catches出错捕获:指示该状态节点出错,并进行捕获。
[0117]
需要说明的是,上述并行逻辑状态机同样可以理解为,将该并行逻辑部分当做一个全新的状态机来描述。具体内容可参见前述循环逻辑状态机中的描述,本技术在此不再赘述。
[0118]
在一个实施例中,若第一状态节点的节点类型为数据传输类型,则第一状态节点的特有属性中可以包含可选参数:数据输出信息。该数据传输类型状态节点的特有属性的可选参数定义如下:
[0119]
result数据输出信息:构造一些数据作为当前状态节点的输出。
[0120]
在一个实施例中,若第一状态节点的节点类型为等待执行类型,则第一状态节点的特有属性中可以包含可选参数:等待时长和等待时间点。该等待执行类型状态节点的特有属性的可选参数定义如下:
[0121]
seconds等待时长:指定当前状态节点等待的时间长度,该时间的单位为秒。
[0122]
timestamp等待时间点:指定当前状态节点等待到该时间点,该时间点的格式可以为格式为“2021-01-01 10:00:00”。
[0123]
在一个实施例中,若第一状态节点的节点类型为执行成功类型,则第一状态节点的特有属性中可以包含可选参数:成功原因信息。该执行成功类型状态节点的特有属性的可选参数定义如下:
[0124]
info成功原因信息:定义成功的描述原因。
[0125]
在一个实施例中,若第一状态节点的节点类型为执行失败类型,则第一状态节点的特有属性中可以包含可选参数:失败原因信息。该执行失败类型状态节点的特有属性的可选参数定义如下:
[0126]
cause失败原因信息:定义失败的描述原因。
[0127]
在一个实施例中,数据输入规则用于从源数据和其他状态节点的输出结果中选取输入数据。
[0128]
需要说明的是,数据输入规则的允许值类型可以为json、jsonpath或者$。在没有配置数据输入规则的情况下,该数据输入规则的默认值为$。
[0129]
如下所示的字符串为数据输入规则为默认值的示例:
[0130]
input:$
[0131]
需要说明的是,$是jsonpath语法,表示完整json数据。上述字符串可以表示通过jsonpath的$,拿到全部可见的数据,即当前状态节点可以看到用户输入的源数据以及执行完毕的状态节点的输出结果。
[0132]
如下所示的字符串为数据输入规则为jsonpath的示例:
[0133]
input:$.user.name
[0134]
需要说明的是,上述字符串表示通过jsonpath指定路径去拿到数据。换言之,该字符串用于表示一个路径信息,并不表示具体的数值信息。在字符串运行时,可以根据该路径信息,去拿到相应的数值信息。
[0135]
如下所示的字符串为数据输入规则为json的示例:
[0136][0137]
需要说明的是,上述字符串可以表示直接对关键词进行赋值,例如上述字符串可以直接对关键词“memberid”赋值100。还需要说明的是,在使用json时,在关键词的结尾带".$"的情况下,表示它的值是通过jsonpath进行取值,例如上述字符串中的“id.$”和“name.$”;在关键词的结尾不带".$"的情况下,表示它的值是静态值,即状态机文本写的固定值。
[0138]
可选的,对于循环执行类型的状态节点中,可以使用$$符号获取循环变量信息。可参见前述循环执行类型的字符串示例:
[0139][0140]
需要说明的是,$$符号用于描述状态机运行中产生的一些全局变量和特定变量,目前只有循环执行类型中产生的迭代变量支持使用该符号。在循环执行类型的状态节点中,可以支持通过$$.foreachitem.index获取到循环项的索引,可以支持通过$$.foreachitem.value获取循环项的值。
[0141]
在一个实施例中,数据输出规则用于根据处理结果确定输出结果。
[0142]
需要说明的是,数据输出规则的允许值类型可以为json、jsonpath或者null。在没有配置数据输出规则的情况下,该数据输出规则的默认值为null。
[0143]
如下所示的字符串为数据输出规则为默认值的示例:
[0144]
output:null
[0145]
需要说明的是,当数据输出规则为null时,表示当前状态节点没有输出。
[0146]
如下所示的字符串为数据输出规则为jsonpath的示例:
[0147]
output:$.local.name
[0148]
需要说明的是,该字符串表示通过jsonpath指定的路径,输出该路径对应的内容。关于通过jsonpath输出的相关描述可参见通过jsonpath输入的具体描述,本技术在此不再赘述。
[0149]
如下所示的字符串为数据输出规则为json的示例:
[0150][0151]
需要说明的是,上述通过json输出的组装方式和使用规则,可参见前述数据输入规则的具体说明,本技术在此不再赘述。
[0152]
s303、服务器根据上述一个或多个状态节点以及上述每个状态节点的特征数据,生成目标业务对应的状态机,每个状态节点用于执行目标业务的一个业务流程。
[0153]
本技术实施例中,通过获取针对目标业务的状态机配置数据,并根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,可以根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机。通过实施本技术实施例提供的方法,可以提供功能丰富多样的状态节点,从而准确、全面地描述业务的工作流。
[0154]
基于上述的状态机配置系统,本发明实施例提供了另一种状态机配置方法。请参见图4,是本发明实施例提供的另一种状态机配置方法的流程示意图。该状态机配置方法可应用于图2所示的状态机配置系统,由服务器执行,具体可由服务器的处理器执行。该状态机配置方法包括如下步骤:
[0155]
s401、服务器获取针对目标业务的状态机配置数据。
[0156]
s402、服务器根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息。
[0157]
s403、服务器根据上述一个或多个状态节点以及上述每个状态节点的特征数据,生成目标业务对应的状态机,每个状态节点用于执行目标业务的一个业务流程。
[0158]
需要说明的是,s401~s403与前述实施例中的s301~s303相同,具体描述可参见前述内容,本技术在此不再赘述。
[0159]
s404、服务器获取输入数据存储对象和输出结果存储对象,该输入数据存储对象存储有用户输入的源数据,该输出结果存储对象存储有执行完毕的状态节点的输出结果。
[0160]
需要说明的是,上述输入数据存储对象和输出结果存储对象可以理解为两个不同的存储空间,输入数据存储对象用于存储用户输入的源数据,输出结果存储对象用于存储执行完毕的状态节点的输出结果。
[0161]
还需要说明的是,上述输入数据存储对象和输出结果存储对象中的数据可以在状态机节点间共享,即可以通过上述数据输入规则和数据输出规则获取到输入数据存储对象和输出结果存储对象中的数据。
[0162]
在一种实施例中,可以将输入数据存储对象设置为一个关键词为“input”的json结构对象,同时将输出结果存储对象设置为一个关键词为“local”的json结构对象。
[0163]
需要说明的是,在状态机启动时,用户的输入数据将放置到“input”的json结构对象中,同时将初始化一个“local”的json结构对象,即一个输出结果存储对象,用于存放状态机各个节点的输出数据。
[0164]
可以理解的是,一个状态机可以对应一个输出结果存储对象。由前述内容可知,循环逻辑状态机和并行逻辑状态机可以当作全新的状态机。因此,循环逻辑状态机或者并行逻辑状态机可以设置一个新的输出结果存储对象,用于存放该循环逻辑状态机或者并行逻辑状态机中各个节点的输出数据。
[0165]
s405、服务器根据输入数据存储对象和输出结果存储对象确定第二状态节点的输入数据,该第二状态节点为一个或多个状态节点中的任意一个。
[0166]
需要说明的是,第二状态节点与前述第一状态节点均为一个或多个状态节点中的任意一个,即第二状态节点可以与第一状态节点为同一状态节点,也可以为不同状态节点,本技术对此不做限制。
[0167]
具体的,第二状态节点可以是业务执行到某一业务流程时对应的节点,状态机启动执行时,第二状态节点为起始状态节点,即从起始状态节点开始执行。
[0168]
在一个实施例中,上述服务器根据输入数据存储对象和输出结果存储对象确定第二状态节点的输入数据,包括:获取第二状态节点的数据输入规则;根据数据输入规则,从输入数据存储对象包括的源数据和输出结果存储对象包括的输出结果中确定目标数据;将该目标数据作为第二状态节点的输入数据。
[0169]
由前述内容可知,在没有配置数据输入规则的情况下,该数据输入规则的默认值为$,即默认为用户输入的源数据。服务器可以根据数据输入规则来改变当前状态节点的输入数据,即改变输入数据存储对象中的数据。
[0170]
需要说明的是,通过数据输入规则改变后的输入数据,仅对当前状态节点有效;即仅改变当前状态节点的输入数据,并不影响其他状态节点的输入数据。其中,改变后的输入数据可以在该状态节点中,由可以获取数据的关键词获取。换言之,改变后的输入数据可以在功能指示参数和数据输出规则中可见。
[0171]
示例性的,可参见图5,如下所示的字符串为图5对应的通过数据输入规则改变输入数据的示例:
[0172]
[0173][0174]
假设用户输入的源数据为input:{“key”:“666”},同时初始化状态机的存储为local:{}。由上述字符串和图5可知,该状态机有两个状态节点,分别是asr和asrpostprocessor。以名为asr的状态节点为例,通过数据输入规则在源数据中添加"version":"1.0",使得图5中名为asr的状态节点输入数据,从原始的key:“666”改变为key:“666”,"version":"1.0"。由图5可见,改变后的输入数据可以在当前状态节点间共享。
[0175]
s406、服务器调用第二状态节点对输入数据进行处理,得到处理结果。
[0176]
需要说明的是,上述处理结果可以为服务器通过调用第二状态节点对输入数据进行处理后,所得到数据。该处理结果可以表示第二状态节点对输入数据进行了处理。该处理结果可以作为输出结果,也可以不作为输出结果,本技术对此不作限制。
[0177]
s407、服务器利用第二状态节点的数据输出规则对处理结果进行输出处理,确定第二状态节点的输出结果,并将第二状态节点的输出结果存储到输出结果存储对象中。
[0178]
由前述内容可知,每一个状态节点的数据输出规则默认为null,即默认当前节点的处理结果不会存储到输出结果存储对象中,也即是该处理结果不会输出给其他状态节点。服务器可以通过数据输出规则来改变当前节点的输出结果,并将该输出结果可以存储到输出结果存储对象中。
[0179]
需要说明的是,该状态机中的每一个状态节点的输出结果,都可以存储到输出结果存储对象中。并且,该当前状态节点的下一状态节点可以获取到存储在输出结果存储对象中的任意输出结果。例如,可以通过字符串:$.local,获取存储在输出结果存储对象中的数据。
[0180]
在一个实施例中,上述方法还包括:若第二状态节点的终止状态节点指示信息指
示第二状态节点为终止状态节点,则获取状态机的数据输出规则;根据状态机的数据输出规则,从输入数据存储对象包括的源数据和输出结果存储对象包括的输出结果中确定状态机的输出结果。
[0181]
需要说明的是,在第二状态节点为终止状态节点,且该状态机没有配置数据输出规则的情况下,状态机的输出结果可以默认为该第二状态节点的输出结果。可选的,在状态机配置了数据输出规则的情况下,服务器也可以根据状态机的数据输出规则,从输入数据存储对象和输出结果存储对象中确定该状态机的输出结果。
[0182]
可选的,对于循环逻辑状态机和并行逻辑状态机,服务器可以将用户输出的源数据默认存储在输入数据存储对象中,并重新创建一个输出结果存储对象,且该重新创建的输出结果存储对象,仅对当前状态机可见。因此,若循环逻辑状态机和并行逻辑状态机没有配置数据输出规则,则当前状态机输出结果存储对象中的数据仅对当前状态机可见。
[0183]
示例性的,可参见图6,同样假设用户输入的源数据为input:{“key”:“666”},同时初始化状态机的存储为local:{}。由图6可以看出,由于图6中的b状态节点为并行执行类型,所以b状态节点为并行逻辑状态机,可以看到该并行逻辑状态机的输入数据默认为用户输入的源数据,即key:“666”;该并行逻辑状态机没有配置数据输出规则,即output:null。因此,上述输出结果存储对象中的输出结果,即“ccdata”:“123456”,仅对该并行逻辑状态机可见。
[0184]
可选的,服务器也可以根据数据输入规则改变循环逻辑状态机或者并行逻辑状态机的输入数据,具体描述可参见前述内容,本技术在此不再赘述。可以理解的是,若对上述输入数据进行了改变,该改变后的输入数据同样仅对当前状态机可见。
[0185]
通过实施本技术实施例提供的方法,服务器可以利用前述状态机配置方法,根据数据输入规则和数据输出规则,确定每个状态节点以及当前状态机的输入数据和输入数据,并通过使用上述语法规则配置模板,从而准确、全面地描述业务的工作流,以生成目标业务对应的状态机。
[0186]
基于上述的状态机配置方法,本发明实施例提供了一种状态机配置装置。请参见图7,图7是本发明实施例提供的一种状态机配置装置的结构示意图,该状态机配置装置700可以运行如下单元:
[0187]
获取单元701,用于获取针对目标业务的状态机配置数据;
[0188]
确定单元702,用于根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息;
[0189]
处理单元703,用于根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机,上述每个状态节点用于执行目标业务的一个业务流程。
[0190]
在一个实施例中,上述节点类型为任务处理类型、数据传输类型、分支选择类型、循环执行类型、并行执行类型、等待执行类型、执行成功类型和执行失败类型中的任意一种。
[0191]
在一个实施例中,上述确定单元702,还用于根据一个或多个状态节点的定义信息确定一个或多个状态节点以及每个状态节点的特征数据;上述确定单元702,还用于根据起始状态节点的指示信息从一个或多个状态节点中确定起始状态节点。
[0192]
在一个实施例中,若第一状态节点的节点类型为任务处理类型,则第一状态节点的特有属性包括接口参数和功能指示参数,该第一状态节点为一个或多个状态节点中的任意一个;若第一状态节点的节点类型为分支选择类型,则第一状态节点的特有属性包括选择逻辑规则数组,该选择逻辑规则数组包括选择条件和下一个状态节点;若第一状态节点的节点类型为循环执行类型,则第一状态节点的特有属性包括循环变量的路径信息以及循环逻辑状态机;若第一状态节点的节点类型为并行执行类型,则第一状态节点的特有属性包括并行逻辑状态机。
[0193]
在一个实施例中,上述通用属性还包括数据输入规则和数据输出规则;数据输入规则用于从源数据和其他状态节点的输出结果中选取输入数据;数据输出规则用于根据处理结果确定输出结果。
[0194]
在一个实施例中,上述获取单元701,还用于获取输入数据存储对象和输出结果存储对象,该输入数据存储对象存储有用户输入的源数据,该输出结果存储对象存储有执行完毕的状态节点的输出结果;上述确定单元702,还用于根据输入数据存储对象和输出结果存储对象确定第二状态节点的输入数据,该第二状态节点为一个或多个状态节点中的任意一个;上述处理单元703,还用于调用第二状态节点对输入数据进行处理,得到处理结果;上述确定单元702,还用于利用第二状态节点的数据输出规则对处理结果进行输出处理,确定第二状态节点的输出结果,上述处理单元703,还用于将第二状态节点的输出结果存储到输出结果存储对象中。
[0195]
在一个实施例中,上述获取单元701,还用于获取第二状态节点的数据输入规则;上述确定单元702,还用于根据数据输入规则,从输入数据存储对象包括的源数据和输出结果存储对象包括的输出结果中确定目标数据;上述处理单元703,还用于将该目标数据作为第二状态节点的输入数据。
[0196]
在一个实施例中,若第二状态节点的终止状态节点指示信息指示第二状态节点为终止状态节点,则上述获取单元701,还用于获取状态机的数据输出规则;上述确定单元702,还用于根据状态机的数据输出规则,从输入数据存储对象包括的源数据和输出结果存储对象包括的输出结果中确定状态机的输出结果。
[0197]
根据本发明的一个实施例,图3所示的状态机配置方法所涉及各个步骤可以是由图7所示的状态机配置装置中的各个单元来执行的。例如,图3所述的步骤s301可由图7所示的状态机配置装置700中的获取单元701来执行,步骤s302可由图7所示的状态机配置装置700中的确定单元702来执行,步骤s303可由图7所示的状态机配置装置700中的处理单元703来执行。
[0198]
根据本发明的另一个实施例,图7所示的状态机配置装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于状态机配置装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0199]
根据本发明的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储
介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的状态机配置装置,以及来实现本发明实施例状态机配置方法。所述计算机程序可以记载于例如计算机存储介质上,并通过计算机存储介质装载于上述计算设备中,并在其中运行。
[0200]
基于上述状态机配置方法以及状态机配置装置的实施例,本发明实施例提供了一种电子设备,此处所述的电子设备对应前述的服务器。请参见图8,是本发明实施例提供的一种电子设备的结构示意图,该电子设备800至少可包括:处理器801、通信接口802以及计算机存储介质803。其中,处理器801、通信接口802以及计算机存储介质803可通过总线或其他方式连接。
[0201]
计算机存储介质804可以存储在电子设备800的存储器804中,所述计算机存储介质801用于存储计算机程序,所述计算机程序包括程序指令,所述处理器801用于执行所述计算机存储介质803存储的程序指令。处理器801(或称cpu(central processing unit,中央处理器))是电子设备800的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行:
[0202]
获取针对目标业务的状态机配置数据;根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,该特征数据包括通用属性和特有属性,该通用属性包括节点类型和终止状态节点指示信息;根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机,上述每个状态节点用于执行目标业务的一个业务流程。
[0203]
本技术实施例中,通过获取针对目标业务的状态机配置数据,并根据状态机配置数据确定一个或多个状态节点以及每个状态节点的特征数据,可以根据一个或多个状态节点以及每个状态节点的特征数据,生成目标业务对应的状态机。通过实施本技术实施例提供的方法,可以提供功能丰富多样的状态节点,从而准确、全面地描述业务的工作流。
[0204]
本领域普通技术人员可以意识到,结合本技术中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用,使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0205]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。计算机指令可以存储在计算机存储介质中,或者通过计算机存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(dsl))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
[0206]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献