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

状态机的控制方法、装置、电子设备及存储介质与流程

2022-05-11 12:31:11 来源:中国专利 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.下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
29.下面参考附图描述本公开实施例的状态机的控制方法、装置、电子设备和存储介质。
30.本公开实施例以该状态机的控制方法被配置于状态机的控制装置中来举例说明,该状态机的控制装置可以应用于任一电子设备中,以使该电子设备可以执行状态机的控制功能。
31.可选的,本公开中的执行主体也可以为配置有状态机的控制方法的状态机,本公开对此不做限定。
32.其中,电子设备可以为个人电脑(personal computer,pc)、云端设备、移动设备等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。
33.首先对本公开中提供的状态机进行简单说明。
34.本公开中可以将面向对象的有限状态机m定义为一个七元组,额外引入c作为状态机上下文环境信息,引入a作为状态机行为,其可以表示如下:m=(s,c,e,δ,δ0,f,a)。
35.其中,状态(state),可以简记为s={s0,s1,

,si},可以表示有限状态的集,通常在一个确定的时刻有一个确定的状态,这个状态是可以组合或者嵌套的。当前状态机的上
下文环境信息(context),可以简记为c。
36.事件(event),可以简记为e={e0,e1,

,ei},可以表示有限事件的集合,状态转换可以由事件触发。
37.δ可以表示状态转移函数:也即其可以理解为事件e在上下文环境信息c下触发了状态s向s’的转移,同时状态机执行了行为a,上下文环境信息为c’。
38.s0∈s可以表示状态机的初始状态,它是s的一个子集;f∈s可以表示状态机的终止状态,它是s的一个子集。
39.状态机的行为(action),可以简记为a,该行为可以根据上下文对象的操作、属性和链接以及触发事件的参数或在其范围内可见的任何其他特征来确定,用来对事件做出反应,维护状态机的健壮性或者实现更多复杂的逻辑。比如,其可以为事件状态转换和事件日志记录,或者对当前环境做出改变等等,本公开对此不做限定。
40.下面以图1为例对本公开提供的状态机的使用流程进行简单说明。
41.如图1所示。首先可以先定义状态、定义事件、定义状态机行为,再确认是否需要上下文环境信息,若需要上下文环境信息,则可以自定义context,若不需要上下文环境信息,则可以使用默认context,之后可以创建状态机转移实例,接下来可以设计状态转移函数,并构建状态转移规则,之后即可使用状态机。
42.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中状态机的使用流程等的限定。
43.图2为本公开实施例所提供的状态机的控制方法的流程示意图。
44.如图2所示,该状态机的控制方法可以包括以下步骤:
45.步骤201,接收事件处理指令,其中,事件处理指令中包括待处理的事件信息。
46.其中,事件处理指令,可以为用户所在的客户端发出的指令信息,其可以为语音形式的指令,或者也可以为其他形式的指令;比如在监测到对应控件被触发时,确定接收事件处理指令。本公开对此不做限定。
47.另外,在接收到事件处理指令后,通过对事件处理指令进行分析处理,可以确定其中包含的待处理的事件信息,本公开对此不做限定。
48.可以理解的是,本公开实施例中,可以采用任何可取的方式对接收的事件处理指令进行分析处理,本公开对此不做限定。
49.步骤202,对待处理的事件信息进行解析,以确定待处理的事件的标识及上下文环境信息。
50.其中,待处理的事件的标识的样式或者呈现形式,可以为提前设定的,本公开对此不做限定。
51.另外,上下文环境信息,可以包含待处理事件的业务场景、业务标识等等。本公开对此不做限定。
52.可以理解的是,业务标识的样式或者呈现形式,可以为提前设定的。比如对于“仲裁业务”,其对应的业务标识可以为“仲裁”,或者也可以为“zc”等,其可以唯一表征该业务,本公开对此不做限定。
53.举例来说,通过对待处理的事件信息进行解析,若确定其中包含“审核员要求用户
补充资料、仲裁”,则可以确定待处理事件的标识即为:审核员要求用户补充资料;上下文环境信息中包含的业务场景为:业务仲裁。
54.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中待处理的事件的标识、上下文环境信息等的限定。
55.步骤203,根据待处理的事件的标识,确定目标状态转移函数。
56.可以理解的是,不同的事件,其对应的目标状态转移函数,可能相同,或者也可能不同,本公开对此不做限定。
57.可选的,可以提前设定不同事件与状态转移函数的对应关系,之后可以根据待处理的事件的标识,从事件与状态转移函数的对应关系中选取该事件标识对应的目标状态转移函数。
58.举例来说,已设定:事件1对应的状态转移函数为δ1,事件2对应的状态转移函数为δ2,事件3对应的状态转移函数为δ3。若通过对待处理的事件信息解析确定出待处理的事件的标识为“3”,则可以确定其为事件3,之后通过查找事件与状态转移函数间的对应关系,可以确定对应的目标状态转移函数为δ3。
59.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中待处理的事件的标识、目标状态转移函数等的限定。
60.步骤204,从数据库中获取与上下文环境信息关联的状态机的现态。
61.其中,状态机可以与待处理事件成对应关系。本公开对此不做限定。
62.可以理解的是,数据库中可以存储有多条状态机的记录,从而为了提高对事件处理的准确性,可以从数据库中获取与上下文环境信息关联的状态机的现态。
63.举例来说,若已确定的上下文环境信息为:由用户a发起的仲裁业务。之后,可以在数据库进行查找,以确定与“由用户a发起的仲裁业务”关联的状态机的现态。若在数据库中查找,确定出与“由用户a发起的仲裁业务”关联的信息为:用户a发起申诉仲裁(2月10日);审核员受理(2月11日)。则可以确定与“由用户a发起的仲裁业务”关联的状态机的现态为:审核员受理。
64.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中上下文环境信息及其关联的状态机的现态等的限定。
65.步骤205,在状态机的现态与目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息。
66.可以理解的是,若状态机的现态与目标状态转移函数对应的开始状态不一致,则可以认为状态机的现态与目标状态转移函数对应的开始状态未匹配,此时可以返回事件处理失败消息,也即不对状态机进行控制。
67.另外,事件处理失败消息,可以为任意可表征事件处理失败的信息。比如可以提前设定:用“0”表征事件处理失败。若确定状态机的现态与目标状态转移函数对应的开始状态未匹配,则可以返回“0”。或者,也可以返回“事件处理失败”提示等等,本公开对此不做限定。
68.举例来说,若状态机的现态为“用户完成补充资料”,目标状态转移函数对应的开始状态为“审核员要求用户补充资料”,二者不一致,即可认为状态机的现态与目标状态转移函数对应的开始状态未匹配,从而可以返回事件处理失败消息。
69.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中状态机的现态、目标状态转移函数对应的开始状态等的限定。
70.本公开实施例,可以先接收事件处理指令,其中,事件处理指令中包括待处理的事件信息,之后对待处理的事件信息进行解析,以确定待处理的事件的标识及上下文环境信息,根据待处理的事件的标识,确定目标状态转移函数,之后可以从数据库中获取与上下文环境信息关联的状态机的现态,在状态机的现态与目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息。由此,通过对接收的事件信息进行解析,可以确定待处理事件的标识、目标状态转移函数以及上下文环境信息,从而在对状态机控制时,无需增加新的状态类等,仅根据事件间的关联关系,即可实现对状态机的控制,从而降低了对状态机控制的复杂性,简化了流程。
71.图3为本公开实施例所提供的状态机的控制方法的流程示意图。如图3所示,该状态机的控制法,可以包括以下步骤:
72.步骤301,接收事件处理指令,其中,事件处理指令中包括待处理的事件信息。
73.步骤302,对事件信息进行解析,以确定待处理的事件的标识及上下文环境信息。
74.步骤303,根据待处理事件的标识,获取待处理事件的属性信息。
75.其中,待处理事件的属性信息,可以包含待处理事件对应的状态转移函数、初始状态、结束状态等,本公开对此不做限定。
76.可以理解的是,可以提前设定各个待处理事件对应的属性信息,从而在确定出待处理事件的标识后,可以根据该标识,确定对应的属性信息。
77.步骤304,将待处理事件的属性信息中的状态转移函数,确定为目标状态转移函数。
78.举例来说,事件1对应的属性信息为:事件2对应的属性信息为:若待处理事件的标识为“事件1”,根据该标识“事件1”,可以确定其对应的属性信息为:初始状态为:s1,结束状态为:s1’
,从而可以将属性信息中的状态转移函数δ1,确定为目标状态转移函数。
79.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中待处理事件的标识、对应的属性信息以及状态转移函数等的限定。
80.步骤305,从数据库中获取与上下文环境信息关联的状态转移记录。
81.其中,状态转移记录,可以指的是当前业务也即待处理事件的历史状态变化信息。本公开对此不做限定。
82.可以理解的是,任一业务或事件,每进行一次处理,都会将处理过程进行记录,也即将该处理过程对应的初始状态、目标状态保存在数据库中。若后续继续对该事件进行处理,则可以对数据库中该事件对应的状态转移记录进行更新并保存。
83.步骤306,将状态转移记录中的目标状态,确定为状态机的现态。
84.其中,状态转移记录中的目标状态,可以理解为状态转移记录中的最新状态或最近时刻的状态。比如,状态转移记录为:用户发起申诉仲裁
‑‑
审核员受理—审核员要求用户补充资料-用户完成资料补充,则可以确定状态转移记录中的目标状态为:用户完成资料补充。本公开对此不做限定。
85.举例来说,上下文环境信息为:用户b发起的申诉仲裁。之后可以在数据库中查找与“用户b发起的申诉仲裁”关联的状态转移记录。若查找到的状态转移记录为:用户b发起申诉仲裁
‑‑
审核员c受理—审核员c要求用户b补充资料,则可以确定目标状态为“审核员c要求用户b补充资料”,之后可以确定状态机的现态为:审核员c要求用户b补充资料。
86.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中上下文环境信息、及其关联的状态转移记录以及该状态转移记录中的目标状态等的限定。
87.步骤307,在状态机的现态与目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息。
88.步骤308,在状态机的现态与目标状态转移函数对应的开始状态匹配情况下,确定待处理事件对应的转移条件。
89.可以理解的是,若状态机的现态与目标状态转移函数对应的开始状态一致,则可以认为状态机的现态与目标状态转移函数对应的开始状态匹配。
90.比如,状态机的现态为“用户完成补充资料”,目标状态转移函数对应的开始状态为“用户完成资料补充”,二者一致,即可认为状态机的现态与目标状态转移函数对应的开始状态匹配,之后可以确定待处理事件对应的转移条件。本公开对此不做限定。
91.另外,待处理事件对应的转移条件,可以为在事件定义时自行设置的,或者也可以为根据规则设定的,或者也可以为默认条件等等,本公开对此不做限定。
92.举例来说,可以提前设定事件1由目标状态转移函数对应的开始状态a转移至结束状态b所需的转移条件a1;事件2由目标状态转移函数对应的开始状态c转移至结束状态d所需的转移条件a2;事件3由目标状态转移函数对应的开始状态e转移至结束状态f所需的转移条件a3。若已确定出待处理事件1的现态与目标转移函数对应的开始状态a匹配,则可以确定待处理事件1对应的转移条件为:a1。
93.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中,待处理事件对应的转移条件等的限定。
94.步骤309,在状态机当前的条件满足转移条件的情况下,将状态机由现态向目标转移函数对应的结束状态转移。
95.举例来说,若待处理事件1的现态与目标转移函数对应的开始状态“审核员要求用户a补充资料”匹配,确定的转移条件为:资料已补充。若当前用户a已补充相关资料,则可以确定状态机当前的条件满足对应的转移条件,之后可以将状态机由现态“审核员要求用户a补充资料”向目标转移函数对应的结束状态“用户完成补充资料”转移。
96.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施中状态机当前的条件、转移条件以及目标转移函数对应的结束状态等的限定。
97.本公开实施例,可以先接收事件处理指令,其中,事件处理指令中包括待处理的事件信息,之后对事件信息进行解析,以确定待处理的事件的标识及上下文环境信息,再根据待处理事件的标识,获取待处理事件的属性信息,之后可以将待处理事件的属性信息中的状态转移函数,确定为目标状态转移函数,并从数据库中获取与上下文环境信息关联的状态转移记录,之后可以将状态转移记录中的目标状态,确定为状态机的现态,在状态机的现态与目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息,在状态机的现态与目标状态转移函数对应的开始状态匹配情况下,确定待处理事件对应的转移条
件,在状态机当前的条件满足转移条件的情况下,将状态机由现态向目标转移函数对应的结束状态转移。由此,在对接收的事件信息进行解析后,可以根据待处理事件的标识,确定目标状态转移函数,并根据上下文环境信息获取关联的状态机的现态,之后根据状态机的现态与目标状态转移函数对应的开始状态的匹配情况,即可实现对状态机的控制,该过程无需增加新的状态类等,避免了类膨胀等问题,从而降低了对状态机控制的复杂性,简化了流程。
98.图4为本公开实施例所提供的状态机的控制方法的流程示意图。如图4所示,该状态机的控制法,可以包括以下步骤:
99.步骤401,接收事件处理指令,其中,事件处理指令中包括待处理的事件信息。
100.步骤402,对事件信息进行解析,以确定待处理的事件的标识及上下文环境信息。
101.步骤403,根据待处理的事件的标识,确定目标状态转移函数。
102.步骤404,从数据库中获取与上下文环境信息关联的状态机的现态。
103.步骤405,在状态机的现态与目标状态转移函数对应的开始状态匹配情况下,确定待处理事件对应的转移条件。
104.步骤406,在状态机当前的条件满足转移条件的情况下,将状态机由现态向目标转移函数对应的结束状态转移。
105.需要说明的是,步骤401至步骤406的具体内容及实现方式,可以参照本公开其他各实施例的说明,此处不再赘述。
106.步骤407,根据现态及结束状态,生成并暂存当前的状态转移记录。
107.举例来说,若现态为“用户完成结果确认”,结束状态为“管理员操作办结”,则生成的当前的状态转移记录可以为:用户完成结果确认
‑‑
管理员操作办结;之后可以将该条状态转移记录进行暂存。
108.或者,若从数据库中获取的状态转移记录为“用户发起申诉仲裁—审核员受理
‑‑
审核员要求用户补充资料”;状态机的现态为“审核员要求用户补充资料”,结束状态为“用户完成补充资料”,则生成的当前的状态转移记录可以为:“用户发起申诉仲裁—审核员受理
‑‑
审核员要求用户补充资料—用户完成资料补充”,之后可以将该条状态转移记录进行暂存。
109.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中现态、结束状态以及当前的状态转移记录等的限定。
110.步骤408,确定数据库中与待处理的事件信息关联的状态转移记录的版本号的取值。
111.其中,状态转移记录的版本号,可以唯一表征该状态转移记录的版本信息,版本号的取值可以为任意可取的数值,本公开对此不做限定。
112.可以理解的是,可以通过读取与待处理的事件信息关联的状态转移记录,从而确定该状态转移记录的版本号的取值。
113.举例来说,若与待处理的事件信息关联的状态转移记录的名称中包含“no.1”,则可以确定该状态转移记录的版本号的取值为1。本公开对此不做限定。
114.步骤409,在版本号的取值小于阈值的情况下,根据暂存的状态转移记录,更新数据库中与待处理的事件信息关联的状态转移记录,并将版本号的取值加一。
115.其中,阈值,可以为提前设定的数值,本公开对此不做限定。
116.举例来说,若设定的阈值为1,当前的版本号为0,暂存的状态转移记录为“审核员要求用户补充资料—用户完成补充资料”,数据库中与待处理的事件信息关联的状态转移记录为“用户发起申诉仲裁
‑‑
审核员受理
‑‑
审核员要求用户补充资料”,当前的版本号小于设定的阈值,则可以对数据库中与待处理的事件信息关联的状态转移记录进行更新,更新后的状态转移记录可以为“用户发起申诉仲裁
‑‑
审核员受理
‑‑
审核员要求用户补充资料—用户完成补充资料”,之后可以将版本号的取值加一,则更新后的版本号可以为1。
117.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中版本号的取值、阈值、状态转移记录等的限定。
118.可选的,在版本号的取值等于阈值的情况下,删除当前的状态转移记录。
119.举例来说,若设定的阈值为1,当前的版本号为1,当前暂存的状态转移记录为“审核员要求用户补充资料—用户完成补充资料”,则可以删除当前的状态转移记录。本公开对此不做限定。
120.可以理解的是,若版本号的取值等于阈值,可以表明该事件已被处理过,为了避免事件重复处理,可以将暂存的状态转移记录删除,从而保证了事件处理与状态机控制的准确性和可靠性。
121.举例来说,在连续较短的时间内多次接收到同一个事件处理指令,若状态机1先执行了该待处理的事件,并将关联的状态转移记录存储至数据库中,并将对应的版本号更新为:1。若状态机2也在执行该待处理的事件,在生成当前的状态转移记录后,可以先确定数据库中该事件的状态转移记录的版本号,若确定版本号为1,设定的阈值也为1,二者相等,则状态机2可以将其对应的暂存的状态转移记录进行删除。
122.需要说明的是,上述示例只是示意性说明,不能作为对本公开实施例中状态转移记录的版本号、阈值等的限定。
123.本公开实施例,在状态机当前的条件满足转移条件的情况下,可以将状态机由现态向目标转移函数对应的结束状态转移,之后可以根据现态及结束状态,生成并暂存当前的状态转移记录,并确定数据库中与待处理的事件信息关联的状态转移记录的版本号的取值,在版本号的取值小于阈值的情况下,根据暂存的状态转移记录,更新数据库中与所述待处理的事件信息关联的状态转移记录,并将版本号的取值加一。由此,可以先根据状态机的现态及结束状态,生成并暂存当前的状态转移记录,之后在数据库中关联的状态转移函数的版本号的取值小于阈值时,可以根据暂存的状态转移记录对数据库中关联的状态转移记录进行更新,该过程无需增加新的状态类等,仅根据事件间的关联关系,即可实现对状态机的控制,从而降低了对状态机控制的复杂性,简化了流程
124.为了实现上述实施例,本公开还提出一种状态机的控制装置。
125.图5为本公开实施例所提供的状态机的控制装置的结构示意图。
126.如图5所示,该状态机的控制装置100可以包括:接收模块110、解析模块120、确定模块130、获取模块140及返回模块150。
127.其中,接收模块110,用于接收事件处理指令,其中,所述事件处理指令中包括待处理的事件信息。
128.解析模块120,用于对所述事件信息进行解析,以确定所述待处理的事件的标识及
上下文环境信息。
129.确定模块130,用于根据所述待处理的事件的标识,确定目标状态转移函数。
130.获取模块140,用于从数据库中获取与所述上下文环境信息关联的状态机的现态。
131.返回模块150,用于在所述状态机的现态与所述目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息。
132.可选的,所述确定模块130,具体用于:
133.根据所述待处理事件的标识,获取所述待处理事件的属性信息;
134.将所述待处理事件的属性信息中的状态转移函数,确定为所述目标状态转移函数。
135.可选的,所述获取模块140,具体用于:
136.从所述数据库中获取与所述上下文环境信息关联的状态转移记录;
137.将所述状态转移记录中的目标状态,确定为所述状态机的现态。
138.可选的,所述确定模块130,还用于:
139.在所述状态机的现态与所述目标状态转移函数对应的开始状态匹配情况下,确定所述待处理事件对应的转移条件;
140.在所述状态机当前的条件满足所述转移条件的情况下,将所述状态机由现态向所述目标转移函数对应的结束状态转移。
141.可选的,所述确定模块130,还用于:
142.根据所述现态及所述结束状态,生成并暂存当前的状态转移记录;
143.确定所述数据库中与所述待处理的事件信息关联的状态转移记录的版本号的取值;
144.在所述版本号的取值小于阈值的情况下,根据暂存的所述状态转移记录,更新所述数据库中与所述待处理的事件信息关联的状态转移记录,并将所述版本号的取值加一。
145.可选的,所述确定模块130,还用于:
146.在所述版本号的取值等于阈值的情况下,删除所述当前的状态转移记录。
147.本公开实施例中的上述各模块的功能及具体实现原理,可参照上述各方法实施例,此处不再赘述。
148.本公开实施例的状态机的控制装置,可以先接收事件处理指令,其中,事件处理指令中包括待处理的事件信息,之后对待处理的事件信息进行解析,以确定待处理的事件的标识及上下文环境信息,根据待处理的事件的标识,确定目标状态转移函数,之后可以从数据库中获取与上下文环境信息关联的状态机的现态,在状态机的现态与目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息。由此,通过对接收的事件信息进行解析,可以确定待处理事件的标识、目标状态转移函数以及上下文环境信息,从而在对状态机控制时,无需增加新的状态类等,仅根据事件间的关联关系,即可实现对状态机的控制,从而降低了对状态机控制的复杂性,简化了流程。
149.为了实现上述实施例,本公开还提出一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如本公开前述实施例提出的状态机的控制方法。
150.为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,存储有
计算机程序,计算机程序被处理器执行时实现如本公开前述实施例提出的状态机的控制方法。
151.为了实现上述实施例,本公开还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行如本公开前述实施例提出的状态机的控制方法。
152.图6示出了适于用来实现本公开实施方式的示例性电子设备的框图。图6显示的电子设备12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
153.如图6所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
154.总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture,isa)总线,微通道体系结构(micro channel architecture,mac)总线,增强型isa总线、视频电子标准协会(video electronics standards association,vesa)局域总线以及外围组件互连(peripheral component interconnection,pci)总线。
155.电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
156.存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,ram)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compact disc read only memory,cd-rom)、数字多功能只读光盘(digital video disc read only memory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
157.具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本公开所描述的实施例中的功能和/或方法。
158.电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(local area network,lan),广域网(wide area network,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、
raid系统、磁带驱动器以及数据备份存储系统等。
159.处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
160.本公开的技术方案,可以先接收事件处理指令,其中,事件处理指令中包括待处理的事件信息,之后对待处理的事件信息进行解析,以确定待处理的事件的标识及上下文环境信息,根据待处理的事件的标识,确定目标状态转移函数,之后可以从数据库中获取与上下文环境信息关联的状态机的现态,在状态机的现态与目标状态转移函数对应的开始状态未匹配的情况下,返回事件处理失败消息。由此,通过对接收的事件信息进行解析,可以确定待处理事件的标识、目标状态转移函数以及上下文环境信息,从而在对状态机控制时,无需增加新的状态类等,仅根据事件间的关联关系,即可实现对状态机的控制,从而降低了对状态机控制的复杂性,简化了流程。
161.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
162.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
163.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
164.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
165.应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
166.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
167.此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
168.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

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

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

相关文献