[发明专利]状态机联动方法和装置在审
申请号: | 202110089376.4 | 申请日: | 2021-01-22 |
公开(公告)号: | CN113760403A | 公开(公告)日: | 2021-12-07 |
发明(设计)人: | 关梓骜;黄栋;谭伟 | 申请(专利权)人: | 北京沃东天骏信息技术有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/54 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张效荣;王志远 |
地址: | 100176 北京市北京经济技术*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 状态机 联动 方法 装置 | ||
本发明公开了一种状态机联动方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收指向第一状态机实例的第一状态转移消息;第一状态转移消息中携带有第一状态机实例对应的业务对象标识以及第一事件;依据第一事件对第一状态机实例进行状态转移,执行对应于该状态转移的预设动作,基于所述动作和业务对象标识对业务对象的状态进行变更;基于所述动作使第一状态机实例向与第一状态机实例关联的第二状态机实例发送第二状态转移消息;第二状态转移消息中携带有第二状态机实例对应的业务对象标识以及用于指示第二状态机实例进行状态转移的第二事件。该实施方式能够实现不同状态机实例之间的状态转移联动。
技术领域
本发明涉及计算机技术领域,尤其涉及一种状态机联动方法和装置。
背景技术
有限状态机(Finite State Machine,FSM)简称状态机,是一种表示有限状态以及在这些状态之间的转移、动作等行为的数学模型。一般情况下,有限状态机通过状态、事件和动作之间的关系来控制状态转移。利用状态机模型处理业务中的状态转移,能够更清晰的以状态拓扑图的方式看清状态流转过程,能够避免代码中过多繁琐的if/else逻辑控制语句,使得代码易于维护。
现有的状态机实现方法一般为以下流程:首先,将业务流程中涉及的所有状态定义为状态机的状态;之后,确定状态机的当前状态,根据状态机的当前状态和接收的事件来确定下一个状态以及对应的动作,根据这些信息控制状态机从当前状态跳转至下一个状态,并执行对应的动作。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的状态机实现流程一般基于一套状态转移拓扑进行程序设计,无法满足不同状态机状态转移联动的场景。例如,某项目的状态转移会导致关联项目的状态也发生转移。此外,对于业务对象数据量较大的场景,现有技术需要频繁的创建状态机,由此过多地消耗了系统资源。
发明内容
有鉴于此,本发明实施例提供一种状态机联动方法和装置,能够实现不同状态机实例之间的状态转移联动。
为实现上述目的,根据本发明的一个方面,提供了一种状态机联动方法。
本发明实施例的状态机联动方法包括:接收指向第一状态机实例的第一状态转移消息;其中,第一状态转移消息中携带有第一状态机实例对应的业务对象的标识、以及用于指示第一状态机实例进行状态转移的第一事件;依据第一事件对第一状态机实例进行状态转移,执行对应于该状态转移的预设动作,基于所述动作和第一状态转移消息中携带的业务对象标识对业务对象的状态进行变更;基于所述动作使第一状态机实例向与第一状态机实例关联的第二状态机实例发送第二状态转移消息,以使第二状态机实例进行状态转移;其中,第二状态转移消息中携带有第二状态机实例对应的业务对象的标识、以及用于指示第二状态机实例进行状态转移的第二事件。
可选地,所述动作包括:退出前一状态的第一公共动作、进入后一状态的第二公共动作以及对应于状态转移的特定动作;以及,所述执行对应于该状态转移的预设动作,包括:在接收第一状态转移消息之后,执行第一事件对应的消息拦截器定义的进入方法和第一公共动作;在第一状态机实例进行状态转移之后,执行第二公共动作、所述特定动作和所述消息拦截器定义的退出方法。
可选地,所述特定动作中包括:用于对业务对象的状态进行变更的第一方法;以及,所述基于所述动作和第一状态转移消息中携带的业务对象标识对业务对象的状态进行变更,包括:使用第一状态转移消息中携带的业务对象标识确定相应的业务对象;执行第一方法对确定的业务对象的状态进行变更。
可选地,所述特定动作中包括:用于发送状态转移消息的第二方法;以及,所述基于所述动作使第一状态机实例向与第一状态机实例关联的第二状态机实例发送第二状态转移消息,包括:执行第二方法使第一状态机实例向第二状态机实例发送第二状态转移消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京沃东天骏信息技术有限公司,未经北京沃东天骏信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110089376.4/2.html,转载请声明来源钻瓜专利网。