CN111708524B - 一种分布式动态有限状态机的实现方法及系统 - Google Patents

一种分布式动态有限状态机的实现方法及系统 Download PDF

Info

Publication number
CN111708524B
CN111708524B CN202010483162.0A CN202010483162A CN111708524B CN 111708524 B CN111708524 B CN 111708524B CN 202010483162 A CN202010483162 A CN 202010483162A CN 111708524 B CN111708524 B CN 111708524B
Authority
CN
China
Prior art keywords
state machine
state
machine model
model
following
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
Application number
CN202010483162.0A
Other languages
English (en)
Other versions
CN111708524A (zh
Inventor
高国栋
李海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Macroinf Information Technology Co ltd
Original Assignee
Suzhou Macroinf Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Macroinf Information Technology Co ltd filed Critical Suzhou Macroinf Information Technology Co ltd
Priority to CN202010483162.0A priority Critical patent/CN111708524B/zh
Publication of CN111708524A publication Critical patent/CN111708524A/zh
Application granted granted Critical
Publication of CN111708524B publication Critical patent/CN111708524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开一种分布式动态有限状态机的实现方法及系统,包括以下步骤:S1:可视化创建状态机模型;S2:持久化状态机模型;S3:分布式发布状态机模型;S4:业务对象请求状态变更;S5:状态机引擎4返回目标状态;S6:业务对象完成状态变更。本发明够快速建立业务对象的状态模型,并实现动态为各种业务对象分配状态模型,在分布式运算环境中为业务对象的状态转换提供灵活的控制方法。

Description

一种分布式动态有限状态机的实现方法及系统
技术领域
本发明具体涉及一种分布式动态有限状态机的实现方法及系统。
背景技术
在制造软件的开发中,系统业务对象的状态变化控制是软件的核心技术之一,会直接影响开发效率,开发质量和系统性能。
当系统业务对象的状态变化控制不能简单,灵活,快速的达到目的时,软件开发企业将在软件的开发,维护上花费大量的人力成本进行重复开发,缺陷修复。
目前在软件开发过程中,系统业务对象的状态控制常用方案为硬编码控制状态,流程为:
1.在代码中为特定业务对象预设定几种状态
2.当接收到状态变更请求时,通过代码逻辑判定对象的目标状态
3.设置业务对象的属性,用于存储对象的当前状态
常用方案的缺点主要集中在:
1)配置性差。每种业务对象的状态及转换关系均硬编码在软件代码中的,后期如果有新增或调整等必须修改原代码,并停机进行维护。
2)扩展性差。现有的各种方案均基于单节点服务器,严重依赖单个服务器的计算能力,当并发数量过高时,会出现明显的性能瓶颈。
3)可维护性差。状态的转换关系,控制逻辑无法以可视化的方式呈现,依赖于开发人员对代码的理解,容易出现理解分歧。
4)开发成本高。需要对每一种对象进行重复的编码。
发明内容
为了解决上述技术问题,本发明提出了一种分布式动态有限状态机的实现方法及系统。
为了达到上述目的,本发明的技术方案如下:
一种分布式动态有限状态机的实现方法,包括以下步骤:
S1:可视化创建状态机模型;
S2:持久化状态机模型;
S3:分布式发布状态机模型;
S4:业务对象请求状态变更;
S5:状态机引擎返回目标状态;
S6:业务对象完成状态变更。
在上述技术方案的基础上,还可做如下改进:
作为优选的方案,步骤S1具体包括以下内容:利用网页可拖拽技术,构建状态机模型中的核心元素,产生完整的可视化状态机模型,通过配置业务对象类型与状态机模型的关系实现缺省状态机模型的设定。
作为优选的方案,核心元素具体包括:状态要素、行为要素以及路径要素。
作为优选的方案,步骤S2具体包括以下内容:将步骤S1创建的状态机模型保存到关系型数据库中。
作为优选的方案,步骤S3具体包括以下内容:根据步骤S2保存的状态机模型,通过消息总线技术,将状态机模型发布到分布式集群;
分布式集群获得状态机模型后,发布状态机模型到状态机引擎,对外暴露RestfulAPI接口。
作为优选的方案,步骤S4具体包括以下内容:用户端发起业务对象状态变更请求,通过分布式集群的任一节点接收到该请求后,将当前对象的当前状态和类型,传送给状态机引擎,状态机引擎根据步骤S1设定的缺省状态机模型计算出业务对象的目标状态。
作为优选的方案,步骤S5具体包括以下内容:状态机引擎返回目标状态,状态机引擎将计算出的目标状态返回给请求方,返回的状态包括:正常状态信息、异常的状态信息、异常的原因中的一种或多种。
作为优选的方案,步骤S6具体包括以下内容:业务对象完成状态变更,返回请求结果后,业务对象解析返回结果并将状态更新到设定的属性中。
分布式动态有限状态机系统,包括:
可视化模型编辑器,用于创建状态机模型;
数据库,用于保存创建的状态机模型;
状态机引擎,用于将状态机模型装配并发布成Restfu1API接口,提供状态转换控制服务。
作为优选的方案,状态机模型包括:状态要素、行为要素以及路径要素。
本发明公开一种分布式动态有限状态机的实现方法及系统,其动态建立状态机模型,并根据业务对象请求的对象类型和原始状态,通过分布式有限状态机引擎计算出目标状态,达到灵活快速的状态变更控制,从而实现降低开发工作量,提高编码质量的目的。
附图说明
图1为本发明实施例提供的分布式动态有限状态机的实现方法的流程图。
图2为本发明实施例提供的分布式动态有限状态机系统的结构框图。
其中:1-可视化模型编辑器,2-状态机模型,3-数据库,4-状态机引擎。
具体实施方式
下面结合附图详细说明本发明的优选实施方式。
为了达到本发明的目的,一种分布式动态有限状态机的实现方法及方法的其中一些实施例中,为了达到上述目的,本发明的技术方案如下:
如图1所示,一种分布式动态有限状态机的实现方法,包括以下步骤:
S1:可视化创建状态机模型2;
S2:持久化状态机模型2;
S3:分布式发布状态机模型2;
S4:业务对象请求状态变更;
S5:状态机引擎4返回目标状态;
S6:业务对象完成状态变更。
本发明公开一种分布式动态有限状态机的实现方法,该方法够快速建立业务对象的状态模型,并实现动态为各种业务对象分配状态模型,在分布式运算环境中为业务对象的状态转换提供灵活的控制方法。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,步骤S1具体包括以下内容:利用网页可拖拽技术,构建状态机模型2中的核心元素,产生完整的可视化状态机模型2,通过配置业务对象类型与状态机模型2的关系实现缺省状态机模型2的设定。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,核心元素具体包括:状态要素、行为要素以及路径要素。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,步骤S2具体包括以下内容:将步骤S1创建的状态机模型2保存到关系型数据库3中。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,步骤S3具体包括以下内容:根据步骤S2保存的状态机模型2,通过消息总线技术,将状态机模型2发布到分布式集群;
分布式集群获得状态机模型2后,发布状态机模型2到状态机引擎4,对外暴露Restful API接口。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,步骤S4具体包括以下内容:用户端发起业务对象状态变更请求,通过分布式集群的任一节点接收到该请求后,将当前对象的当前状态和类型,传送给状态机引擎4,状态机引擎4根据步骤S1设定的缺省状态机模型2计算出业务对象的目标状态。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,步骤S5具体包括以下内容:状态机引擎4返回目标状态,状态机引擎4将计算出的目标状态返回给请求方,返回的状态包括:正常状态信息、异常的状态信息、异常的原因中的一种或多种。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,步骤S6具体包括以下内容:业务对象完成状态变更,返回请求结果后,业务对象解析返回结果并将状态更新到设定的属性中。
如图2所示,分布式动态有限状态机系统包括:
可视化模型编辑器1,用于创建状态机模型2;
数据库3,用于保存创建的状态机模型2;
状态机引擎4,用于将状态机模型2装配并发布成Restful API接口,提供状态转换控制服务。
为了进一步地优化本发明的实施效果,在另外一些实施方式中,其余特征技术相同,不同之处在于,状态机模型2包括:状态要素、行为要素以及路径要素。
本发明公开一种分布式动态有限状态机的实现方法及系统,其动态建立状态机模型2,并根据业务对象请求的对象类型和原始状态,通过分布式有限状态机引擎4计算出目标状态,达到灵活快速的状态变更控制,从而实现降低开发工作量,提高编码质量的目的。
以上多种实施方式可交叉并行实现。
对于本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (9)

1.一种分布式动态有限状态机的实现方法,其特征在于,包括以下步骤:
S1:可视化创建状态机模型;
S2:持久化状态机模型;
S3:分布式发布状态机模型;
S4:业务对象请求状态变更;
S5:状态机引擎返回目标状态;
S6:业务对象完成状态变更;其中,
所述步骤S1具体包括以下内容:利用网页可拖拽技术,构建状态机模型中的核心元素,产生完整的可视化状态机模型,通过配置业务对象类型与状态机模型的关系实现缺省状态机模型的设定。
2.根据权利要求1所述的分布式动态有限状态机的实现方法,其特征在于,所述核心元素具体包括:状态要素、行为要素以及路径要素。
3.根据权利要求1或2所述的分布式动态有限状态机的实现方法,其特征在于,所述步骤S2具体包括以下内容:将所述步骤S1创建的状态机模型保存到关系型数据库中。
4.根据权利要求3所述的分布式动态有限状态机的实现方法,其特征在于,所述步骤S3具体包括以下内容:根据所述步骤S2保存的状态机模型,通过消息总线技术,将状态机模型发布到分布式集群;
分布式集群获得状态机模型后,发布状态机模型到状态机引擎,对外暴露Restful API接口。
5.根据权利要求4所述的分布式动态有限状态机的实现方法,其特征在于,所述步骤S4具体包括以下内容:用户端发起业务对象状态变更请求,通过分布式集群的任一节点接收到该请求后,将当前对象的当前状态和类型,传送给状态机引擎,状态机引擎根据所述步骤S1设定的缺省状态机模型计算出业务对象的目标状态。
6.根据权利要求5所述的分布式动态有限状态机的实现方法,其特征在于,所述步骤S5具体包括以下内容:状态机引擎返回目标状态,状态机引擎将计算出的目标状态返回给请求方,返回的状态包括:正常状态信息、异常的状态信息、异常的原因中的一种或多种。
7.根据权利要求6所述的分布式动态有限状态机的实现方法,其特征在于,所述步骤S6具体包括以下内容:业务对象完成状态变更,返回请求结果后,业务对象解析返回结果并将状态更新到设定的属性中。
8.分布式动态有限状态机系统,其特征在于,用于实现如权利要求1-7任一项所述分布式动态有限状态机的实现方法,包括:
可视化模型编辑器,用于创建状态机模型;
数据库,用于保存创建的状态机模型;
状态机引擎,用于将状态机模型装配并发布成RestfulAPI接口,提供状态转换控制服务。
9.根据权利要求8所述的分布式动态有限状态机的实现方法,其特征在于,状态机模型包括:状态要素、行为要素以及路径要素。
CN202010483162.0A 2020-06-02 2020-06-02 一种分布式动态有限状态机的实现方法及系统 Active CN111708524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010483162.0A CN111708524B (zh) 2020-06-02 2020-06-02 一种分布式动态有限状态机的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010483162.0A CN111708524B (zh) 2020-06-02 2020-06-02 一种分布式动态有限状态机的实现方法及系统

Publications (2)

Publication Number Publication Date
CN111708524A CN111708524A (zh) 2020-09-25
CN111708524B true CN111708524B (zh) 2024-02-23

Family

ID=72538304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010483162.0A Active CN111708524B (zh) 2020-06-02 2020-06-02 一种分布式动态有限状态机的实现方法及系统

Country Status (1)

Country Link
CN (1) CN111708524B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116305268B (zh) * 2023-03-14 2024-01-05 中国医学科学院北京协和医院 一种基于有限状态机和多目标学习的数据发布方法及系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030050886A1 (en) * 2001-09-11 2003-03-13 International Business Machines Corporation Method and apparatus for managing the versioning of business objects using a state machine
CN1987781A (zh) * 2006-12-31 2007-06-27 中国建设银行股份有限公司 应用软件的开发平台、生成方法及运行平台、运行方法
CN103049264A (zh) * 2012-12-17 2013-04-17 国电南京自动化股份有限公司 一种通过状态机动态建模实现对业务系统控制的方法
CN104102529A (zh) * 2014-07-24 2014-10-15 浪潮电子信息产业股份有限公司 一种基于有限状态机的存储虚拟化管理系统及方法
CN104281906A (zh) * 2013-07-11 2015-01-14 江苏达科信息科技有限公司 一种业务流程中的流程引擎实现方法及其流程引擎系统
CN109086105A (zh) * 2018-08-14 2018-12-25 北京奇艺世纪科技有限公司 一种页面布局转换方法、装置及电子设备
CN110488714A (zh) * 2019-08-30 2019-11-22 苏州浪潮智能科技有限公司 一种异步状态机控制方法及装置
CN110580155A (zh) * 2019-07-31 2019-12-17 苏宁云计算有限公司 状态机引擎的实现方法、装置、计算机设备及存储介质
CN110765099A (zh) * 2019-09-06 2020-02-07 阿里巴巴集团控股有限公司 一种业务构建方法、装置及计算机设备
CN110825428A (zh) * 2019-11-06 2020-02-21 政采云有限公司 一种状态机配置方法、装置、设备及可读存储介质
CN111142975A (zh) * 2019-12-12 2020-05-12 贝壳技术有限公司 状态机持久化方法及状态机持久化系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030050886A1 (en) * 2001-09-11 2003-03-13 International Business Machines Corporation Method and apparatus for managing the versioning of business objects using a state machine
CN1987781A (zh) * 2006-12-31 2007-06-27 中国建设银行股份有限公司 应用软件的开发平台、生成方法及运行平台、运行方法
CN103049264A (zh) * 2012-12-17 2013-04-17 国电南京自动化股份有限公司 一种通过状态机动态建模实现对业务系统控制的方法
CN104281906A (zh) * 2013-07-11 2015-01-14 江苏达科信息科技有限公司 一种业务流程中的流程引擎实现方法及其流程引擎系统
CN104102529A (zh) * 2014-07-24 2014-10-15 浪潮电子信息产业股份有限公司 一种基于有限状态机的存储虚拟化管理系统及方法
CN109086105A (zh) * 2018-08-14 2018-12-25 北京奇艺世纪科技有限公司 一种页面布局转换方法、装置及电子设备
CN110580155A (zh) * 2019-07-31 2019-12-17 苏宁云计算有限公司 状态机引擎的实现方法、装置、计算机设备及存储介质
CN110488714A (zh) * 2019-08-30 2019-11-22 苏州浪潮智能科技有限公司 一种异步状态机控制方法及装置
CN110765099A (zh) * 2019-09-06 2020-02-07 阿里巴巴集团控股有限公司 一种业务构建方法、装置及计算机设备
CN110825428A (zh) * 2019-11-06 2020-02-21 政采云有限公司 一种状态机配置方法、装置、设备及可读存储介质
CN111142975A (zh) * 2019-12-12 2020-05-12 贝壳技术有限公司 状态机持久化方法及状态机持久化系统

Also Published As

Publication number Publication date
CN111708524A (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN100407152C (zh) 多策略资源调度的方法和系统
CN109271435B (zh) 一种支持断点续传的数据抽取方法及系统
CN101894348B (zh) 一种自扩展的联机交易系统及其实现方法
CN102073540A (zh) 分布式事务提交方法和装置
CN103092890A (zh) 报表自动生成及发送的系统及方法
CN103581332A (zh) HDFS架构及HDFS架构中NameNode节点的压力分解方法
CN110389765B (zh) 一种参数校验方法和参数校验系统
CN106339475A (zh) 一种海量数据的分布式存储系统
CN111708524B (zh) 一种分布式动态有限状态机的实现方法及系统
CN105912339A (zh) 一种数控系统中应用的开发与集成方法及系统
CN112148779A (zh) 确定业务指标的方法、装置及存储介质
Prehofer Models at REST or modelling RESTful interfaces for the Internet of Things
CN103729742A (zh) 一种基于soa架构和模型驱动架构的数据资源管理系统
CN102609494B (zh) 台帐数据的处理方法及装置
CN114301988A (zh) 分布式调用方法、装置、存储介质及电子设备
CN104598250A (zh) 一种系统管理架构及其实现管理的方法
CN111143383B (zh) 一种数据更新方法、装置、电子设备及存储介质
CN101179450A (zh) 网络性能监测方法和系统及其主控单板和业务单板
KR20010063810A (ko) 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법
CN110597830A (zh) 实时指标生成方法和系统、电子设备及存储介质
Zhang et al. Remove-win: a design framework for conflict-free replicated data types
Okamura et al. Dependability analysis of a transaction-based multi-server system with rejuvenation
CN109491987B (zh) 数据管理方法与装置
CN108536758B (zh) 一种数据库模式的数据表重构方法、装置及系统
CN110765160A (zh) 基于zookeeper的分布式数据缓存方法和系统

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