CN112118118B - 基于反熵算法的指令通知消息广播方法及装置 - Google Patents
基于反熵算法的指令通知消息广播方法及装置 Download PDFInfo
- Publication number
- CN112118118B CN112118118B CN202010959833.6A CN202010959833A CN112118118B CN 112118118 B CN112118118 B CN 112118118B CN 202010959833 A CN202010959833 A CN 202010959833A CN 112118118 B CN112118118 B CN 112118118B
- Authority
- CN
- China
- Prior art keywords
- network
- notification message
- client
- node
- business process
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1804—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for stock exchange and similar applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于反熵算法的指令通知消息广播方法及装置,其中该方法包括:从业务流程引擎中获取待执行业务流程各个流程节点的流程节点信息;当业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,业务流程网络中的每个客户端为一个网络节点;监测业务流程网络中任意一个客户端执行业务指令触发的通知消息;基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端。本发明基于去中心化的反熵算法实现指令通知消息在各个客户端之间的同步,避免指令下达过程中指令通知消息传播对服务器处理能力和网络带宽的占用。
Description
技术领域
本发明涉及消息传输领域,尤其涉及一种基于反熵算法的指令通知消息广播方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在证券投资业务执行过程中,投资管理***每天会产生大量的投资指令,一条投资指令从下达到完成交易,依次要经过指令编辑、合规检查、领导审批、指令分发、委托报盘等多个流程节点,各个流程节点的客户端在执行业务指令产生的信息,需及时准确广播给业务流程中其他流程节点的客户端。
现有的证券投资交易***,对于投资指令通知消息的广播,采用的是以服务器为中心的消息广播机制,如图1所示,通过客户端定时轮询或服务器推送的方式,由部署在服务器的业务流程引擎驱动,将某一流程节点产生的指令通知消息,推送给业务流程中其他流程节点的客户端。然而,随着业务流程中涉及到的客户端数量不断增加,以及需要下发的投资指令数量不断增加,现有技术提供的这种基于中心化的消息广播方法,会占用服务器大量的处理能力和网络带宽,进而影响到投资交易业务本身的处理。
由于证券投资市场行情瞬息万变,交易机会转瞬即逝,服务器资源应优先确保投资业务的顺利进行。因而,如何提供一种无需占用服务器资源的指令通知消息广播方法,是目前亟待解决的技术问题。
发明内容
本发明实施例中提供了一种基于反熵算法的指令通知消息广播方法,用以解决现有技术采用中心化的消息广播机制实现指令通知消息的广播,导致服务器资源被过多占用而影响业务处理性能的技术问题,该方法包括:从业务流程引擎中获取待执行业务流程的流程节点信息,待执行业务流程包含:待执行的多个流程节点,每个流程节点由一个或多个客户端执行;当业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,业务流程网络中的每个客户端为一个网络节点;监测业务流程网络中任意一个客户端执行业务指令触发的通知消息;基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端。
本发明实施例中还提供了一种基于反熵算法的指令通知消息广播装置,用以解决现有技术采用中心化的消息广播机制实现指令通知消息的广播,导致服务器资源被过多占用而影响业务处理性能的技术问题,该装置包括:业务流程信息获取模块,用于从业务流程引擎中获取待执行业务流程的流程节点信息,待执行业务流程包含:待执行的多个流程节点,每个流程节点由一个或多个客户端执行;业务流程网络动态构建模块,用于根据业务流程包含的各个流程节点,连接业务流程执行过程中经过的各个客户端,动态构建业务流程的业务流程网络,其中,业务流程网络包括:多个节点,每个节点对应业务流程中一个流程节点的客户端;通知消息监测模块,用于监测业务流程网络中任意一个客户端执行业务指令触发的通知消息;通知消息广播模块,用于基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端。
本发明实施例中还提供了一种计算机设备,用以解决现有技术采用中心化的消息广播机制实现指令通知消息的广播,导致服务器资源被过多占用而影响业务处理性能的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于反熵算法的指令通知消息广播方法。
本发明实施例中还提供了一种计算机可读存储介质,用以解决现有技术采用中心化的消息广播机制实现指令通知消息的广播,导致服务器资源被过多占用而影响业务处理性能的技术问题,该计算机可读存储介质存储有上述基于反熵算法的指令通知消息广播方法的计算机程序。
本发明实施例中,通过与业务流程引擎对接,从业务流程引擎中获取待执行业务流程中各个流程节点的流程节点信息,当业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,使得业务流程网络中的每个客户端为一个网络节点,进而通过监测业务流程网络中任意一个客户端执行业务指令触发的通知消息,基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端,与现有技术中以服务器为中心进行指令消息传播的技术方案相比,本发明实施例基于去中心化的反熵算法,根据业务流程的推进,动态构建业务流程网络,能够实现消息在各个客户端之间的同步,避免指令下达过程中指令通知消息传播对服务器处理能力和网络带宽的占用;进一步地,通过连接少量节点组建业务流程网络,能够减少经典反熵算法带来冗余传播信息挤占网络带宽的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有技术中提供的基于中心化的指令通知消息广播示意图;
图2为本发明实施例中提供的基于反熵算法的指令通知消息广播方法流程图;
图3为本发明实施例中提供的业务流程网络示意图;
图4为本发明实施例中提供的基于反熵算法实现的三种通信方式示意图;
图5为本发明实施例中提供的动态构建业务流程网络的示意图一;
图6为本发明实施例中提供的动态构建业务流程网络的示意图二;
图7为本发明实施例中提供的动态构建业务流程网络的示意图三;
图8为本发明实施例中提供的基于反熵算法广播指令变更消息的示意图;
图9为本发明实施例中提供的离线节点重新上线后同步消息的示意图;
图10为本发明实施例中提供的基于反熵算法的投资通知消息广播示意图;
图11为本发明实施例中提供的基于反熵算法的指令通知消息广播装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
发明人经研究发现,业务流程中,各个流程节点的客户端之间具有点对点通信的功能,因而,提供一种去中心化的消息广播方法,使得投资指令通知消息在各个流程节点之间顺畅流转,一方面,指令通知消息的处理,不会占用服务器资源,使得服务器资源全部用于业务本身的处理,有助于提升投资效率;另一方面,指令通知消息直接在客户端之间传输,无需服务器转发,有助于降低沟通成本。
基于上述发明构思,本发明实施例中提供了一种基于反熵算法的指令通知消息广播方法,可以应用但不限于各种投资交易软件应用***。
图2为本发明实施例中提供的基于反熵算法的指令通知消息广播方法流程图,如图2所示,该方法包括如下步骤:
S201,从业务流程引擎中获取待执行业务流程的流程节点信息,待执行业务流程包含:待执行的多个流程节点,每个流程节点由一个或多个客户端执行。
需要说明的是,本发明实施例中业务流程引擎可以是但不限于业务流程管理(Business Process Management,BPM)***,上述S201中从业务流程引擎中获取的待执行业务流程可以能是一个,也可能是多个,当获取的待执行业务流程为多个的情况下,可以针对各个业务流程,动态构建多个独立的业务流程网络,使得各个业务流程中产生的指令通知消息通过各自的业务流程网络进行广播。
图3为本发明实施例中提供的业务流程网络示意图,如图3所示,通过与业务流程引擎对接,在获取到待执行的多个业务流程(例如,流程1、流程2和流程3)后,可以根据各个业务流程的流转,连接各个业务流程经过的客户端,动态构建各个业务流程的业务流程网络。每个业务流程都对应独立的流程网络,各个业务流程网络中的客户端可以叠加,一个客户端可以同时属于多个业务流程网络(例如,客户端B1属于流程2和流程3的业务流程网络),也可以不属于任何一个业务流程网络(例如,客户端D1不属于任何一个流程网络)。
本发明实施例中的各个客户端具备使用套接字(Socket)技术进行点对点网络通信的能力,客户端打开统一端口,监听其它客户端节点向本节点端口发送的信息,或向其它客户端节点端口发送信息。
在一个业务流程网络中,客户端之间的通信内容,包括网络节点信息和业务通知消息,这两类信息在流程网络中属于全局信息,最终各节点应保持数据一致。由于网络节点信息和业务流程通知信息用于记录已发生的既成事实,用户的任何操作都会对应新增一条记录,因此网络中的任何节点都有查看和新增权限,但没有修改和删除权限。
上述两类消息格式如下:
网络节点信息格式:{process_id,md5code,nodes:[{ip,port,name}…]}
业务通知信息格式:{process_id,md5code,messages:[[{key,value}…]…]}
其中,process_id表示业务流程id,可以是指令编号或特定业务id;md5code用于两个节点快速比对消息是否有差异;nodes是一个二叉树,用于记录流程网络所有节点,其中ip是索引,如果两个节点校验的md5code不一致,可以使用二分法查询到有差异的ip,用于更新本地的节点列表;messages是一个哈希map,用于记录业务流程的通知信息,其中,key是键,value是值。如果两个节点通过比较,发现通知信息中的md5code不一致,需要使用哈希函数快速找到数据差异,随后互相更新业务通知信息。
S202,当业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,业务流程网络中的每个客户端为一个网络节点。
本发明实施例中,在构建业务流程网络的时候,没有将待执行流程全部流程节点的客户端加入网络,而是随着业务流程的推进,当业务流程执行到某个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,能够实现动态构建业务流程网络的目的,能够最大程度提高业务流程网络对指令通知消息传播的效率。
由于本发明实施例中基于反熵算法来实现业务流程网络中各个客户端之间的消息广播,传统的反熵算法(Anti-Entropy)是在一个有界网络中,由每个节点随机地与其他节点通信,经过一番杂乱无章的通信,最终使得所有节点的状态达成一致。网络中的每个节点可能知道所有其他节点,也可能仅知道几个邻居节点,只要这些节点可以通过网络连通,最终网络中所有节点的状态都可以达到一致。
接下来,对反熵算法的具体实现原理进行说明:
反熵算法中每个节点都会维护一组状态,记作{node,key,value,version};其中,node表示产生该数据的节点信息,key-value表示数据状态,version是版本号,版本号大的为更新的状态。为保证一致性,规定状态的value和version只有产生该数据的宿主节点(即node节点)才能修改,其他节点只能间接通过反熵通信协议来请求数据对应的宿主节点修改。反熵通信协议通过版本号大小来对数据进行更新。
如图4所示,反熵算法中两个节点(A、B)之间存在三种通信方式:
①“推”模式:
A节点将数据推送给B节点,B节点更新A节点中比自己新的数据;
②“拉”模式:
A节点将状态数据{node,key,value,version}推送给B节点,B节点根据状态数据来选择那些版本号比A节点高的数据推送给A节点,A节点更新本地数据;
③“推-拉”模式:
A节点将状态数据{node,key,value,version}推送给B节点,B节点根据状态数据来选择那些版本号比A节点高的数据推送给A节点,A节点更新本地数据;A节点再将本地比B节点新的数据推送给B节点,B节点更新本地数据。
如果把两个节点数据同步一次定义为一个周期,则在一个周期内,“推”模式需通信1次,“拉”模式需2次,“推-拉”模式则需3次。“推-拉”模式同步最快,理论上一个周期内可使两个节点完全一致。
可见,经典反熵算法具有如下优点:
(一)具有容错能力:即使有的节点因宕机而重启,只要有新节点加入,经过一段时间后,这些节点的状态也会与其他节点达成一致;
(二)去中心化消息传播:反熵算法不要求节点知道所有其他节点,节点之间完全对等,不需要任何的中心节点,任意一个节点不可用,不会造成整个***不可用。
由图4可以看出,经典反熵算法使得节点之间存在大量的冗余通信,这些冗余传播信息会对网络带宽和网络中各个节点设备的CPU资源造成较大负载,而这些负载又受限于通信频率,该频率又影响着算法收敛的速度。因而,为了解决经典反熵算法带来冗余传播信息挤占网络带宽的问题,本发明实施例中,根据具体的业务流程,通过连接少量节点来动态构建业务流程网络,能够大大降低冗余信息的传播。
结合图5~图7,对本发明实施例中动态构建业务流程网络的过程进行说明,为了减少经典反熵算法在网络内不断传播冗余信息,需要首先根据业务流程的推进,动态添加节点到网络中,未流转到的节点不进入网络,只有在网络内的节点才能收发流程通知消息。当一个流程被发起后,部署在服务器的业务流程引擎,判断哪些客户端有下一流程节点的操作权限,但只有实际操作流程节点的客户端,才会被加入业务流程网络中。
如图5所示,开始操作前,处于流程节点的客户端,会收到流程引擎服务器发送的,当前业务流程经过的所有节点列表。用户使用客户端(例如,图6所示的客户端B1)完成操作后,客户端将自身节点信息,加入流程经过的节点列表中,意味着当前业务流程网络新增了一个节点。新的节点列表将广播给流程网络中的所有节点。有权限但未操作流程节点的客户端,不会被加入业务流程网络中。如图6所示的客户端B2未对指令进行操作,则不加入当前业务流程网络中。
当新加入的节点(例如,图7所示的客户端C)向流程网络中的其它节点(图7所示的客户端A和客户端B1)广播最新节点列表时,所有收到最新节点列表并更新本地列表的节点,会继续使用“推”模式,与流程网络中的其它节点比较消息是否一致性,如不一致,则对方节点更新本地保存的消息。这么做的好处是:如果流程网络中存在通信中断,则只要有一个节点能正常收到新加入节点发送的通知消息,则其它未收到消息的节点将再次收到已收到消息节点的广播,直到所有节点都收到最新广播的通知消息为止。
同时,业务流程引擎推送指令信息和网络节点列表,给拥有下一流程节点操作权限的客户端(例如,图7所示的客户端D),继续扩大流程网络的节点数量,直到流程结束。
S203,监测业务流程网络中任意一个客户端执行业务指令触发的通知消息。
需要说明的是,本发明实施例中各个客户端执行的业务指令可以是但不限于在证券投资业务执行过程中,由证券投资管理***下达的投资指令,该投资指令从下达到完成交易,需经过指令编辑、合规检查、领导审批、指令分发、委托报盘等流程节点,各个流程节点的客户端基于投资指令触发产生的信息,需及时、准确地广播给业务流程中其他流程节点的客户端。
目前,在证券投资指令流转过程中,需要广播的信息包括:
①投资经理录入指令并提交后,启动指令流程,指令流转到下一流程节点;
②指令在流程节点可能由一名或多名用户具有操作权限,只需其中一名用户完成操作,指令即可流转到下一流程节点;
③用户在流程节点对指令操作产生的消息,例如修改指令要素、合规检查结果、领导审批意见、交易员委托报盘等,需要及时准确通知此前操作过该指令的所有用户。未到达的流程节点对应的用户,或是有权限但没有操作的用户,则无需收到消息。
由于网络环境存在不确定性,如果用户没有收到消息,或离线后再次上线,***应再次发送消息,直到该用户收到指令消息为止。现有技术中,投资指令流程的消息广播,由客户端定时轮询或服务器推送,不仅影响指令通知消息传播的时效性,而且还会占用服务器过多的资源。本发明实施例中,根据业务流程构建业务流程网络,业务流程网络中的各个客户端采用点对点通信的方式传播指令通知消息,能够大大提高指令通知消息传播的时效性,且不会占用服务器资源。
S204,基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端。
在具体实施时,上述S204可以通过如下步骤来实现:由触发通知消息的客户端,基于反熵算法的推模式,将执行业务指令触发的通知消息,推送到业务流程网络中一个或多个节点的客户端;由业务流程网络中接收到通知消息的客户端,基于反熵算法的推模式,将接收到的通知消息推送到业务流程网络中未接收到通知消息的客户端;由业务流程引擎将业务流程网络中任意一个客户端执行业务指令触发的通知消息,推送到下一流程节点的客户端。
可选地,当业务流程网络中任意一个客户端修改业务指令的情况下,基于反熵算法的推模式,将修改业务指令的通知消息,广播到业务流程网络中所有节点的客户端。
图8为本发明实施例中提供的基于反熵算法广播指令变更消息的示意图,如图8所示,处于业务流程网络中各个节点的客户端,当遇到投资经理修改指令,领导填写审批意见,交易员完成指令委托时,客户端需通过“推”模式,将通知消息广播给流程网络内的其它节点。同理,所有收到最新业务通知并更新本地业务通知信息的节点,将继续使用“推”模式,与流程网络中的其它节点比较消息是否一致,如不一致,则对方节点更新本地保存的消息。
进一步地,当业务流程网络中任意一个客户端离线后又重新上线的情况下,基于反熵算法的拉模式,从业务流程网络中其他客户端上同步更新后的指令通知消息。
图9为本发明实施例中提供的离线节点重新上线后同步消息的示意图,如图9所示,处于流程网络节点中的客户端,如果离线后再次上线,必须通过“拉”模式,根据本地保存的所有流程网络节点列表,逐一比较网络中其它节点是否有更新信息,如有,则节点更新本地保存的节点列表和业务通知信息,直到与节点列表中的所有节点数据保持一致。
由上可知,本发明实施例中,基于客户端/服务器的应用***架构,结合业务场景优化反熵算法,提出了一种去中心化的指令通知消息广播方法,能够大幅降低传统消息广播方案对服务器处理能力和网络带宽占用,通过继承经典反熵算法的网络通信容错能力,在充满不确定性的网络环境中,及时准确地广播指令通知消息,通过连接少量节点组建业务流程网络,能够减少经典反熵算法带来的冗余传播信息挤占网络带宽的问题。将本发明实施例中提供的基于反熵算法的指令通知消息广播方法,应用于证券投资管理***,能够使得投资指令在各个流程节点产生的通知信息快速流转,提升投资效率,降低沟通成本。
对于业务流程中各个流程节点的客户端,有些会对指令进行操作,有些则不会,而只有对指令进行操作而触发通知消息的时候,才需要将消息传播给其他流程节点的客户端。因而,在一个实施例中,本发明实施例中在动态构建业务流程网络的过程中,可以通过如下步骤来实现:判断执行当前流程节点的各个客户端是否具有下一流程节点的操作权限;将具有下一流程节点操作权限的一个或多个客户端,添加到业务流程网络中。
进一步地,本发明实施例中提供的基于反熵算法的指令通知消息广播方法还可以通过如下步骤实现网络节点信息的更新:从业务流程引擎中获取业务流程网络的网络节点信息,其中,网络节点信息中包含:已添加到业务流程网络中所有客户端的节点信息;根据新添加客户端的节点信息,更新业务流程网络的网络节点信息,得到更新后的网络节点信息;将更新后的网络节点信息广播到业务流程网络中所有节点的客户端。
其中,在将更新后的网络节点信息广播到业务流程网络中所有节点的客户端的时候,可以通过如下步骤来实现:由新添加客户端,基于反熵算法的推模式,将更新后的网络节点信息,推送到业务流程网络中一个或多个节点的客户端;
由业务流程网络中接收到更新后网络节点信息的客户端,基于反熵算法的推模式,将更新后的网络节点信息推送到业务流程网络中未接收到更新后网络节点信息的客户端;由业务流程引擎将更新后的网络节点信息,推送到下一流程节点的客户端。
将本发明实施例中提供的基于反熵算法的指令通知消息广播应用于资产公司的投资管理***,根据债券投标业务规则,投标指令流程经过的所有客户端,组成一个流程通信网络,网络内各节点可进行指令流程通知消息的广播。业务场景流程如图10所示,包括:
①投资经理下达债券投标指令,客户端访问业务流程引擎服务器,启动债券投标流程实例,***开始构建指令流程网络,提交指令时,网络只有一个节点;
②经过合规检查、领导审批、指令分发、投标确认、中标确认等流程节点后,指令流程网络中的节点逐渐增多。
③当用户处于一个指令流程节点,开始操作前,客户端会收到流程引擎服务器发送的指令流程经过的所有节点信息;用户完成指令流程节点上的操作后,客户端将自身节点信息,加入指令流程经过的所有节点信息中;
④客户端告知流程引擎服务器,进入流程下一节点,同时通知指令此前经过的所有客户端节点,流程网络又新增了一个节点;
⑤指令流程网络上的每个节点都会保存已知指令流程所有节点信息和业务流程信息,同一流程节点间通过消息广播,互相更新本地保存的网络节点信息和业务流程信息;
⑥当用户需要修改之前提交或审批过的指令时,客户端以“推”模式向指令流程网络中的所有节点发送通知消息。如有客户端节点离线,在客户端重新上线后,将以“拉”模式向流程网络中的其它节点更新通知信息。
基于同一发明构思,本发明实施例中还提供了一种基于反熵算法的指令通知消息广播装置,如下面的实施例所述。由于该装置解决问题的原理与基于反熵算法的指令通知消息广播方法相似,因此该装置的实施可以参见基于反熵算法的指令通知消息广播方法的实施,重复之处不再赘述。
图11为本发明实施例中提供的基于反熵算法的指令通知消息广播装置示意图,如图11所示,该装置包括:业务流程信息获取模块111、业务流程网络动态构建模块112、通知消息监测模块113和通知消息广播模块114。
其中,业务流程信息获取模块111,用于从业务流程引擎中获取待执行业务流程的流程节点信息,待执行业务流程包含:待执行的多个流程节点,每个流程节点由一个或多个客户端执行;业务流程网络动态构建模块112,用于当业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,业务流程网络中的每个客户端为一个网络节点;通知消息监测模块113,用于监测业务流程网络中任意一个客户端执行业务指令触发的通知消息;通知消息广播模块114,用于基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端。
在一个实施例中,上述业务流程网络动态构建模块112具体可以用于:判断执行当前流程节点的各个客户端是否具有下一流程节点的操作权限;将具有下一流程节点操作权限的一个或多个客户端,添加到业务流程网络中。
进一步地,本发明实施例中提供的基于反熵算法的指令通知消息广播装置还可以包括:网络节点信息更新模块115,用于从业务流程引擎中获取业务流程网络的网络节点信息,其中,网络节点信息中包含:已添加到业务流程网络中所有客户端的节点信息;根据新添加客户端的节点信息,更新业务流程网络的网络节点信息,得到更新后的网络节点信息;将更新后的网络节点信息广播到业务流程网络中所有节点的客户端。
更进一步地,上述网络节点信息更新模块115还可以用于由新添加客户端,基于反熵算法的推模式,将更新后的网络节点信息,推送到业务流程网络中一个或多个节点的客户端;由业务流程网络中接收到更新后网络节点信息的客户端,基于反熵算法的推模式,将更新后的网络节点信息推送到业务流程网络中未接收到更新后网络节点信息的客户端;由业务流程引擎将更新后的网络节点信息,推送到下一流程节点的客户端。
在一个实施例中,上述通知消息广播模块114具体可以用于:由触发通知消息的客户端,基于反熵算法的推模式,将执行业务指令触发的通知消息,推送到业务流程网络中一个或多个节点的客户端;由业务流程网络中接收到通知消息的客户端,基于反熵算法的推模式,将接收到的通知消息推送到业务流程网络中未接收到通知消息的客户端;由业务流程引擎将业务流程网络中任意一个客户端执行业务指令触发的通知消息,推送到下一流程节点的客户端。
在一个实施例中,本发明实施例中通知消息广播模块114还可以用于当业务流程网络中任意一个客户端修改业务指令的情况下,基于反熵算法的推模式,将修改业务指令的通知消息,广播到业务流程网络中所有节点的客户端。
本发明实施例中提供的基于反熵算法的指令通知消息广播装置还可以包括:离线节点消息同步模块116,用于当业务流程网络中任意一个客户端离线后又重新上线的情况下,基于反熵算法的拉模式,从业务流程网络中其他客户端上同步更新后的指令通知消息。
基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有技术采用中心化的消息广播机制实现指令通知消息的广播,导致服务器资源被过多占用而影响业务处理性能的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于反熵算法的指令通知消息广播方法。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有技术采用中心化的消息广播机制实现指令通知消息的广播,导致服务器资源被过多占用而影响业务处理性能的技术问题,该计算机可读存储介质存储有上述基于反熵算法的指令通知消息广播方法的计算机程序。
综上所述,本发明实施例中提供了一种基于反熵算法的指令通知消息广播方法、装置、计算机设备及计算机可读存储介质,通过与业务流程引擎对接,从业务流程引擎中获取待执行业务流程中各个流程节点的流程节点信息,当业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,使得业务流程网络中的每个客户端为一个网络节点,进而通过监测业务流程网络中任意一个客户端执行业务指令触发的通知消息,基于去中心化的反熵算法,将业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至业务流程网络中其他节点的客户端,与现有技术中以服务器为中心进行指令消息传播的技术方案相比,本发明实施例基于去中心化的反熵算法,根据业务流程的推进,动态构建业务流程网络,能够实现消息在各个客户端之间的同步,避免指令下达过程中指令通知消息传播对服务器处理能力和网络带宽的占用;进一步地,通过连接少量节点组建业务流程网络,能够减少经典反熵算法带来冗余传播信息挤占网络带宽的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于反熵算法的指令通知消息广播方法,其特征在于,包括:
从业务流程引擎中获取待执行业务流程的流程节点信息,所述待执行业务流程包含:待执行的多个流程节点,每个流程节点由一个或多个客户端执行;
当所述业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,所述业务流程网络中的每个客户端为一个网络节点;
监测所述业务流程网络中任意一个客户端执行业务指令触发的通知消息;
基于去中心化的反熵算法,将所述业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至所述业务流程网络中其他节点的客户端,包括:由触发通知消息的客户端,基于反熵算法的推模式,将执行业务指令触发的通知消息,推送到业务流程网络中一个或多个节点的客户端;由业务流程网络中接收到通知消息的客户端,基于反熵算法的推模式,将接收到的通知消息推送到业务流程网络中未接收到通知消息的客户端;由业务流程引擎将业务流程网络中任意一个客户端执行业务指令触发的通知消息,推送到下一流程节点的客户端。
2.如权利要求1所述的方法,其特征在于,当所述业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,包括:
判断执行当前流程节点的各个客户端是否具有下一流程节点的操作权限;
将具有下一流程节点操作权限的一个或多个客户端,添加到业务流程网络中。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
从业务流程引擎中获取业务流程网络的网络节点信息,其中,所述网络节点信息中包含:已添加到业务流程网络中所有客户端的节点信息;
根据新添加客户端的节点信息,更新业务流程网络的网络节点信息,得到更新后的网络节点信息;
将更新后的网络节点信息广播到业务流程网络中所有节点的客户端。
4.如权利要求3所述的方法,其特征在于,将更新后的网络节点信息广播到业务流程网络中所有节点的客户端,包括:
由新添加客户端,基于反熵算法的推模式,将更新后的网络节点信息,推送到业务流程网络中一个或多个节点的客户端;
由业务流程网络中接收到更新后网络节点信息的客户端,基于反熵算法的推模式,将更新后的网络节点信息推送到业务流程网络中未接收到更新后网络节点信息的客户端;
由业务流程引擎将更新后的网络节点信息,推送到下一流程节点的客户端。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述业务流程网络中任意一个客户端修改业务指令的情况下,基于反熵算法的推模式,将修改业务指令的通知消息,广播到所述业务流程网络中所有节点的客户端。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述业务流程网络中任意一个客户端离线后又重新上线的情况下,基于反熵算法的拉模式,从所述业务流程网络中其他客户端上同步更新后的指令通知消息。
7.一种基于反熵算法的指令通知消息广播装置,其特征在于,包括:
业务流程信息获取模块,用于从业务流程引擎中获取待执行业务流程的流程节点信息,所述待执行业务流程包含:待执行的多个流程节点,每个流程节点由一个或多个客户端执行;
业务流程网络动态构建模块,用于当所述业务流程执行到任意一个流程节点时,将已执行完的各个流程节点的客户端进行连接,形成业务流程网络,所述业务流程网络中的每个客户端为一个网络节点;
通知消息监测模块,用于监测所述业务流程网络中任意一个客户端执行业务指令触发的通知消息;
通知消息广播模块,用于基于去中心化的反熵算法,将所述业务流程网络中任意一个客户端执行业务指令触发的通知消息,广播至所述业务流程网络中其他节点的客户端,进一步用于由触发通知消息的客户端,基于反熵算法的推模式,将执行业务指令触发的通知消息,推送到业务流程网络中一个或多个节点的客户端;由业务流程网络中接收到通知消息的客户端,基于反熵算法的推模式,将接收到的通知消息推送到业务流程网络中未接收到通知消息的客户端;由业务流程引擎将业务流程网络中任意一个客户端执行业务指令触发的通知消息,推送到下一流程节点的客户端。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述基于反熵算法的指令通知消息广播方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一项所述基于反熵算法的指令通知消息广播方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010959833.6A CN112118118B (zh) | 2020-09-14 | 2020-09-14 | 基于反熵算法的指令通知消息广播方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010959833.6A CN112118118B (zh) | 2020-09-14 | 2020-09-14 | 基于反熵算法的指令通知消息广播方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112118118A CN112118118A (zh) | 2020-12-22 |
CN112118118B true CN112118118B (zh) | 2022-08-02 |
Family
ID=73802600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010959833.6A Active CN112118118B (zh) | 2020-09-14 | 2020-09-14 | 基于反熵算法的指令通知消息广播方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112118118B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353867A (zh) * | 2005-12-29 | 2013-10-16 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储*** |
CN109936542A (zh) * | 2017-12-18 | 2019-06-25 | 厦门本能管家科技有限公司 | 一种分布式去中心的应用 |
CN111371892A (zh) * | 2020-03-05 | 2020-07-03 | 中国银行股份有限公司 | 高并发分布式消息推送***及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10455029B2 (en) * | 2017-12-29 | 2019-10-22 | Dish Network L.L.C. | Internet of things (IOT) device discovery platform |
-
2020
- 2020-09-14 CN CN202010959833.6A patent/CN112118118B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353867A (zh) * | 2005-12-29 | 2013-10-16 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储*** |
CN109936542A (zh) * | 2017-12-18 | 2019-06-25 | 厦门本能管家科技有限公司 | 一种分布式去中心的应用 |
CN111371892A (zh) * | 2020-03-05 | 2020-07-03 | 中国银行股份有限公司 | 高并发分布式消息推送***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112118118A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
US7010576B2 (en) | Efficient method of globalization and synchronization of distributed resources in distributed peer data processing environments | |
CN101317163B (zh) | 不间断事务处理*** | |
CN107181637B (zh) | 一种心跳信息发送方法、装置及心跳发送节点 | |
US20110093743A1 (en) | Method and System of Updating a Plurality of Computers | |
CN102449616A (zh) | 对象存储库在网络上的基于群的同步 | |
CN114218612B (zh) | 一种适用于联盟链高频交易场景的共识方法 | |
CN112200681B (zh) | 区块链网络的业务处理方法、信息处理方法及节点设备 | |
CN102143194A (zh) | 数据同步的方法、***、中间数据节点及终止数据节点 | |
CN103703464A (zh) | 用于分布式配置管理的方法及装置 | |
CN111865968A (zh) | 一种实用于区块链的优化拜占庭容错算法 | |
US7805503B2 (en) | Capability requirements for group membership | |
CN113873005A (zh) | 一种微服务集群的节点选主方法、***、设备及介质 | |
CN114900449A (zh) | 一种资源信息管理方法、***及装置 | |
CN112118118B (zh) | 基于反熵算法的指令通知消息广播方法及装置 | |
CN111681011B (zh) | 数据处理方法、区块链***、计算机***和介质 | |
CN116684416A (zh) | 一种网元集群中的镜像分发方法、装置和*** | |
US20190387054A1 (en) | Method, electronic device and computer program product for searching for node | |
CN115964436A (zh) | 一种数据库集群管理的方法和装置 | |
CN101877722A (zh) | 电子节目指南***及文件下载方法 | |
CN116846888A (zh) | 区块链网络的共识处理方法、装置、设备及存储介质 | |
CN114090687A (zh) | 一种数据同步方法及装置 | |
CN116192868B (zh) | 一种应用于联盟链的并行拜占庭容错共识方法及终端 | |
CN116414579B (zh) | 基于分布式群组通信实现的多副本间数据一致性的方法 | |
CN114844910B (zh) | 分布式存储***的数据传输方法、***、设备及介质 |
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 |