CN114281573A - 工作流数据交互方法、装置及电子装置、可读存储介质 - Google Patents
工作流数据交互方法、装置及电子装置、可读存储介质 Download PDFInfo
- Publication number
- CN114281573A CN114281573A CN202111632232.5A CN202111632232A CN114281573A CN 114281573 A CN114281573 A CN 114281573A CN 202111632232 A CN202111632232 A CN 202111632232A CN 114281573 A CN114281573 A CN 114281573A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- starting
- data interaction
- communication channel
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提出了一种工作流数据交互方法,包括:选定业务***和工作流引擎之间的数据交互方式;依据业务***的业务流程在工作流引擎中配置流程设计图;依据数据交互方式为流程设计图创建启动节点,启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道;工作流引擎依据启动通信通道获取业务***的业务数据并启动对应流程设计图的流程实例,将业务数据转化为流程数据后输入流程实例进行流转,每一流程节点依据输入的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的功能通信通道和业务***进行数据交互。该方法为处于不同网络环境或者对网络环境要求严苛的业务***和工作流引擎之间提供数据交互的方法。
Description
技术领域
本申请涉及工作流数据交互领域,特别是涉及一种工作流数据交互方法、装置及电子装置、可读存储介质。
背景技术
在信息化***中,需要使用工作流引擎来应对多种多样的业务流程,通常会将多个不同的业务***接入一个工作流引擎,并根据业务***的业务逻辑为业务流程中的流程节点动态分配处理人,并在每一流程节点的节点状态更新之后将业务流程的流程数据返回至业务***进行显示或者继续相关的业务处理。
目前虽然一些工作流引擎支持跨应用推进业务流程,但是无法满足特定网络环境下业务***与工作流引擎之间的数据交互。例如:部署于相同网络环境下的业务***和工作流引擎,通常是使用消息队里通信的方式推进业务流程,这种方式是利用消息中间件作为通信介质,工作流引擎在流程实例的流程结束之后将流程数据发送至消息中间件的消息队列,业务***监听消息队列中是否有新的流程数据,但如果业务***和工作流引擎部署于不同的网络环境中,要使用消息中间件进行通信的话,需要将该消息中间件部署在工作流引擎和业务***都能访问的网络环境中,对于网络环境要求严格的情况,就无法为消息中间件提供合适的网络环境进行部署,因此业务***和工作流引擎就无法通信以进行数据交互。
发明内容
本申请实施例提供了一种工作流数据交互方法,该方法通过根据业务***和工作流引擎部署的网络环境提供合适的数据交互方式,实现了不同网络环境中,业务***和工作流引擎之间的数据交互。
第一方面,本申请实施例提供了一种工作流数据交互方法,包括以下步骤:
选定业务***和工作流引擎之间的数据交互方式;
依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;
依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;
所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据输入的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
在一些实施例中,依据所述业务***的网络环境和所述工作流引擎的网络环境,选定所述数据交互方式。
在一些实施例中,所述数据交互方式为消息队列、HTTP接口以及RPC中任意一种;当所述数据交互方式为消息队列时,所述启动节点为消息启动节点;当所述数据交互方式为HTTP接口时,所述启动节点为接口启动节点;当所述数据交互方式为RPC时,所述启动节点为RPC启动节点。
在一些实施例中,所述启动通信通道和所述功能通信通道适配所述数据交互方式。
在一些实施例中,若流转至所述功能节点时则触发对应的功能通信通道,并依据所述功能通信通道和所述业务***进行数据交互。
在一些实施例中,当所述功能节点为需动态选择处理人的用户任务节点时,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,获取所述业务***返回的处理人信息,并依据所述处理人信息为所述用户任务节点分配处理人,将所述流程数据发送至所述处理人,并获取所述处理人返回新的流程数据继续流转。
在一些实施例中,当所述功能节点为需补充数据的接收任务节点时,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,获取所述业务***返回的补充数据,并结合所述补充数据与所述流程数据生成新的流程数据继续流转。
在一些实施例中,当所述功能节点为需要推送流程数据的服务任务节点,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,向所述业务***推送所述流程数据。
在一些实施例中,当所述启动节点为所述消息启动流程节点时,创建启动通信通道和功能通信通道的方法为:配置消息队列,所述业务***和所述工作流引擎依据所述消息队列进行通信;当所述启动节点为所述接口启动流程节点时,生成对应所述流程实例的所述业务***和所述工作流引擎的通信密钥,创建启动通信通道和功能通信通道的方法为:创建通信地址,所述业务***和所述工作流引擎依据所述通信密钥和所述通信地址进行通信;当所述启动节点为所述RPC启动流程节点时,选择SpringCloud、webservice、dubbo中任意一种RPC框架,创建启动通信通道和功能通信通道的方法为:创建对应所述RPC框架的通信地址,所述业务***和所述工作流引擎依据对应所述RPC框架的通信地址进行通信。
第二方面,本申请实施例提供了一种工作流数据交互装置,用于实现第一方面中所述的工作流数据交互方法,该装置包括以下模块:
交互方式选定模块,用于选定业务***和工作流引擎之间的数据交互方式;
流程设计图配置模块,用于依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;
启动节点创建模块,用于依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;
交互模块,用于所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据输入的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以如上任意申请实施例所述的工作流数据交互方法。
第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行如上任一申请实施例所述的工作流数据交互方法。
第五方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据如上任意申请实施例所述的工作流数据交互方法。
本申请实施例的主要贡献和创新点如下:
本申请实施例提供的工作流数据交互方法,为业务***和工作流引擎之间的数据交互方式配置提供通信通道的启动节点,以便于处于不同网络环境或者对网络环境要求严苛的业务***和工作流引擎之间进行数据交互。特别的是,本申请实施例针对不同的数据交互方式配置的启动节点,提供了不同的建立通信通道的方法。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的流程实例的示意图;
图2是根据本申请实施例的数据交互的示意图;
图3是根据本申请实施例的工作流数据交互装置的结构框图;
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
本实施例提供了一种工作流数据交互方法,在本实施例中,该方法为处于不同网络环境的业务***和工作流引擎,为业务***提供接入工作流引擎的方式,以实现不同网络环境下流程数据的交互。
首先对一些本实施例中出现的术语进行说明:
(1)工作流引擎。所谓工作流引擎是指workflow作为应用***的一部分,并为之提供对各应用***有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个***最关键的部分不是***的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。
(2)RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底>层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
(3)RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发>送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
所述方法包括包括以下步骤:选定业务***和工作流引擎之间进行通信的数据交互方式;依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据输入的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
首先,选定业务***和工作流引擎之间的数据交互方式。具体的,业务***根据部署的网络环境和工作流引擎部署的网络环境,在遵守网络安全要求下,选择合适的数据交互方式与工作流引擎进行通信。
其中,数据交互方式包括消息队列、HTTP接口以及RPC。业务***根据的网络环境,和工作流引擎的网络环境从这三种数据交互方式中选择合适的一种方式进行通信,可以解决业务***与工作流引擎部署在不同网络环境下时无法进行数据交互的问题。
按照数据传输效率和安全性从高到低排列为:消息队列、RPC、HTTP接口。通常的工作流引擎部署在内网,因此,为了尽可能提高数据传输的效率和安全性,在一些实施例中,若内网和外网允许开放80端口以外的端口,无论业务***部署在外网还是内容,都可选择消息队列的方式进行数据交互;若内网和外网不允许开放80端口以外的端口且业务***部署于外网中,则可选择HTTP接口进行数据交互;若内网和外网不允许开放80端口以外的端口且业务***部署于内网中,则可选择RPC的方式进行数据交互。
在确定好数据交互方式后,业务***需要依据业务流程为工作流引擎提供流程设计图。
具体的,每一个业务***通常包括多个不同种类的业务,对应每一种类的业务都会有不同的业务流程,对应每一种业务流程开发一套流程流转方案是相当繁琐的,因此通常是选择开发一个工作流引擎,不同的业务流程都通过该工作流引擎来流转和推进,实现业务***和工作流引擎的解耦。因此,在业务***和工作流引擎解耦的情况下,业务***只需要提供业务流程的流程设计图给工作流引擎,其中流程设计图包括至少一流程节点。业务***在下次需要创建该业务流程时,工作流引擎可以直接根据该业务流程的设计流程图创建相应的流程实例,并生成该流程实例唯一标识流程实例ID,以及该流程实例中每一流程节点的唯一标识ID。
然后,依据业务***选择的数据交互方式,为该业务***提供的各种流程设计图都创建相应的启动节点,启动节点内配置了对应数据交互方式的通信通道,用于业务***和工作流引擎之间进行数据交互。通信通道具体包括两种:启动通信通道和功能通信通道,启动通信通道是用于根据业务***的请求启动流程,功能通信通道用于根据在流程流转过程中与业务***之间进行数据交互。
也就是说,对应不同的数据交互方式,配置的启动节点的节点类型是不同的。具体的,当数据交互方式为消息队列时,启动节点为消息启动节点;当数据交互方式为HTTP接口时,启动节点为接口启动节点;当数据交互方式为RPC时,启动节点为RPC启动节点。
因此,对应不同的启动节点,启动通信通道和功能通信通道的创建方法是不同的。
具体的,当启动节点为消息启动流程节点时,创建启动通信通道和功能通信通道的方法为:配置消息队列,例如,配置流程实例的消息队列名,配置获取处理人消息队列名,配置接收任务流程节点的消息队列名,配置服务任务节点消息队列名。业务***和工作流引擎依据消息队列进行通信。
具体的,当启动节点为接口启动流程节点时,生成对应流程实例的业务***和工作流引擎的通信密钥,并设置相应的签名方法,创建启动通信通道和功能通信通道的通信地址,例如,然后创建启动流程HTTP地址,创建动态获取处理人地址,接收任务HTTP地址,创建服务任务HTTP地址。业务***和工作流引擎依据通信密钥和通信地址进行通信,并通过数据加密和数据验证的方法验证数据是否安全。
例如,生成的通信密钥包括通信密钥ID和通信密钥密码,设置相应的签名方法:数据所有字段+下划线(_)+下标+等号(=)+字段值,按照字段名首字母顺序排序,用“&”拼接,并加上通信密钥对拼接成字符串,然后对字符串进行MD5加密。这是基于常规对称加密技术的改进版,常规对称加密一般请求方和接收方约定一个固定参数进行加解密,这个固定参数可以通过暴力破解方式进行破解,这里将请求数据进行拼接然后加密,用下划线+下标的方式可以将数组数据按照数组下标进行拼接,更加灵活也更加难以破解。
当业务数据为:
{"companyName":"公司名",
"companyCreditNo":"公司信用号码",
"legalPerson":"法人",
"legalPersonPhone":"法人手机号"}
拼接后的字符串为“companyName_0=公司名&companyCreditNo_0=公司信用号码&legalPerson_0=法人&legalPersonPhone_0=法人手机号&accessKeyId_0=通信密钥ID&accessKeySecret_0=通信密钥密码”,对此字符串进行MD5加密后生成签名,调用方将签名放在请求头中,被调用方以同样方式生成签名,然后同请求头中签名进行对比以验证数据是否安全。
具体的,当启动节点为RPC启动流程节点时,选择SpringCloud、webservice、dubbo中任意一种RPC框架,创建启动通信通道和功能通信通道的方法为:创建对应RPC框架的通信地址,例如,创建启动流程实例地址,创建动态获取处理人地址,创建接收任务地址,创建服务任务http地址。业务***和工作流引擎依据对应RPC框架的通信地址进行通信。
特别的是,RPC相比HTTP接口无需进行加签验签,因为RPC依赖于第三方服务,各***接口信息在第三方服务中进行注册,也就是说***之间接口调用通过第三方服务进行代理,其它没有注册到第三方服务的***是无法访问的,同样确保了安全性。
在一些实施例中,可以将上述不同通信通道的创建方法封装为流程接入适配器,设置在启动节点,这样可以自动根据启动节点选择相应的方法建立通信通道。
最后,工作流引擎依据启动通信通道获取到业务***的业务数据,根据已有的流程设计图启动相应的流程实例,并将业务数据转化为流程数据输入该流程实例进行流转,每一流程节点依据输入的流程数据产生新的流程数据继续进行流转,若流转至功能节点,则依据对应功能节点的功能通信通道与业务***进行数据交互。
也就是说,流程实例中的每一个流程节点输入流程数据后被激活,然后对输入的流程数据进行处理生成新的流程数据,若该流程节点需要与业务***进行数据交互,则该流程节点为功能节点,通过功能通信通道与业务***进行数据交互。
然后工作流引擎可以根据生成的新的流程数据选择下一流程节点,若存在下一流程节点,将新的流程数据输入下一流程节点,若不存在下一流程节点表示整个流程实例已经完成,将最新的流程数据返回至业务***。
其中,流程数据包括业务***提交的业务数据、流程实例的状态数据、每一流程节点的审批数据等。例如,业务***提交的业务数据包括申请表单的数据,流程实例的状态数据包括流程发起人信息、当前流程节点ID、唯一标识流程实例ID、历史流程节点表、流程状态等,审批数据包括审批意见列表、审批动作等。
具体的,功能节点可以是需要动态选择处理人的用户任务节点、需要补充数据的接受任务节点或者需要推送流程数据的服务任务节点。
用户任务节点是是需要人工操作处理流程数据并决定流程实例下一流程节点的重要节点,一个流程实例中可以有多个用户任务节点,用户任务节点之间通过流转线条确定用户任务节点之间的流向。
接受任务节点是在流程流转过程中需要业务***补充数据的情况下配置,流程实例触发接收任务节点会等待接收数据,接收任务节点根据启动节点的节点类型识别出数据交互方式,待业务***提供补充数据后,接收补充数据并和输入的流程数据生成新的流程数据再输入到下一流程节点。
服务任务节点用于在流程实例完成后将最终的流程数据封装返回至业务***以更新目标业务的进度,或者是在任意流程节点处理生成新的流程数据并选择好下一流程节点后将新的流程数据返回至业务***以更新目标业务的进度。因此,服务任务节点可以配置在流程实例的任意位置,以便于在流程实例流转的过程中或者流程实例完成后向业务***推送最新的流程数据,使业务***能够根据目标业务更加灵活地获取流程数据。
当所述功能节点为需动态选择处理人的用户任务节点时,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,获取所述业务***返回的处理人信息,并依据所述处理人信息为所述用户任务节点分配处理人,将所述流程数据发送至所述处理人,并获取所述处理人返回新的流程数据继续流转。
例如,在用户任务节点配置处理人***,当监听到该用户任务节点被激活时,自动识别启动节点的节点类型,选择相应的数据交互方式获取处理人信息。
当启动节点为消息启动节点时,获取处理人信息的方法为:向配置的获取处理人消息队列中发送RPC消息,其中RPC消息中包括封装后的流程数据,业务***监听到该RPC消息后进行业务操作获得处理人信息,并将处理人信息封装后回复该消息队列,接收到处理人信息后,工作流引擎将该处理人信息指向的处理人作为当前用户任务节点的处理人,再将流程数据分配给该处理人进行处理,等待该处理人对流程数据进行处理后返回新的流程数据。
当启动节点为接口启动节点时,获取处理人信息的方法为:使用创建该流程实例时生成的通信密钥ID和通信密钥密码,对获取处理人请求进行签名后向创建的动态获取处理人地址发起调用请求,业务***在获取处理人地址获取到处理人信息后,在该地址接口中使用相同的密钥对进行验签,验签通过后进行业务操作获取处理人信息,然后将处理人信息封装后返回,接收到接口返回的处理人信息后,工作流引擎将该处理人信息指向的处理人作为当前用户任务节点的处理人,再将流程数据分配给该处理人进行处理,等待该处理人对流程数据进行处理后返回新的流程数据。
当启动节点为RPC启动节点时,获取处理人信息的方法为:向创建的获取处理人RPC地址直接发起调用请求,接收对应调用请求返回的处理人信息,工作流引擎将该处理人信息指向的处理人作为当前用户任务节点的处理人,再将流程数据分配给该处理人进行处理,等待该处理人对流程数据进行处理后返回新的流程数据。
当所述功能节点为需补充数据的接收任务节点时,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,获取所述业务***返回的补充数据,并结合所述补充数据与所述流程数据生成新的流程数据继续流转。获取补充数据的具体方式与获取处理人信息的方式相同,在此不再一一赘述。
特别的是,由于在等待补充数据的过程中会遇到网络不稳定或者业务***异常的情况,为了确保接收任务节点的可用性使用了消息中间件,这里消息队列的生产者是工作流***,消费者也是工作流***,接收任务节点被触发之后将流程数据和业务数据封装成消息发送到接收任务队列,接收任务消费者监听到该消息后根据启动节点的节点类型,也就是业务***与工作流引擎之间的数据交互方式,向业务***请求数据,如果请求失败接收任务消息将会被持久化保存,并按照配置的重试策略在下一次再次发起请求,直到请求成功为止,请求成功之后即取消接收任务的等待状态,流程继续往下流转。这里利用消息中间件的持久化机制和重试机制来保证接收任务节点的可用性,确保流程能够正常流转。
当所述功能节点为需要推送所述流程数据的服务任务节点,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,向所述业务***推送所述流程数据。例如,当启动节点为消息启动节点时,向配置的服务任务消息队列中发送普通消息,其中普通消息中包括封装后的流程数据,相比RPC消息无需等待消息回复;当启动节点为接口启动节点时,向创建的服务任务地址使用流程结合通信密钥对请求数据进行加签后发起调用请求,业务***在该地址接口中使用相同的密钥对进行验签,验签通过后进行业务操作;当启动节点为RPC启动节点时,向创建的获取处理人RPC地址直接发起调用请求。
在具体的实施例中,例如某地方部门为了鼓励创新发展制定了一系列补贴政策,需要企业通过门户网站提交补贴申请流程,门户网站相当于本实施例中的业务***,独立的部署在外网,而相应的工作流引擎独立部署在内网,并且由于网络安全政策要求,外网和内网不允许暴露80端口以外的端口,因此在本实施例中,门户网站和工作流引擎之间采用HTTP接口进行数据交互。
如图2所示,启动节点为接口启动节点,启动节点连接到流程实例的第一个流程节点,也就是图2中区县管理员初审的流程节点,该流程节点为用户任务节点,需要将申请企业提供的补贴申请推送到该申请企业所在区县的管理员进行审核。区县的管理员初步审核该申请企业提交的材料时,若发现材料合格,也就是无需补充资料,可以直接推进到下一个流程节点,也就会财务部门复审的流程节点,若发现缺少材料,需要通过业务***通知该申请企业提供补充数据,所以配置一个接收任务节点,向业务***请求补充数据,等申请企业提交补充数据后经区县管理员重新审核合格后推进到财务部门复审,复审通过后配置一个推送流程数据的服务任务节点,将流程数据推送至业务***,业务***根据流程审批情况对企业进行补贴业务操作。具体的,将门户网站和工作流引擎的数据交互的过程具象化后如图3所示。
实施例二
基于相同的构思,本实施例还提供了一种工作流数据交互装置,用于实现实施例一中所描述的工作流数据交互方法,具体参考图3,该装置包括以下模块:
交互方式选定模块,用于选定业务***和工作流引擎之间的数据交互方式;
流程设计图配置模块,用于依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;
启动节点创建模块,用于依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;
交互模块,用于所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据数据的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
实施例三
本实施例还提供了一种电子装置,参考图4,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述实施例中的任意一种工作流数据交互方法的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable Programmable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable Programmable Read-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random AccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(Fast PageMode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种工作流数据交互方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是当前数据表例如疫情流调文档、特征数据、模板表等,输出的信息可以是特征指纹、指纹模板、文本分类推荐信息、文件模板配置映射表、文件模板配置信息表等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
选定业务***和工作流引擎之间的数据交互方式;
依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;
依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;
所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据数据的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例一中的任意一种工作流数据交互方法,本申请实施例可一种计算机程序产品来实现。该计算机程序产品该计算机程序产品包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行实现上述实施例一中的任意一种工作流数据交互方法。
并且,结合上述实施例一中的任意一种工作流数据交互方法,本申请实施例可提供一种可读存储介质来实现。该可读存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种工作流数据交互方法。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、***、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (13)
1.工作流数据交互方法,适用于在业务***和工作流引擎之间进行数据交互,其特征在于,包括以下步骤:
选定业务***和工作流引擎之间的数据交互方式;
依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;
依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;
所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据输入的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
2.根据权利要求1所述的工作流数据交互方法,其特征在于,依据所述业务***的网络环境和所述工作流引擎的网络环境,选定所述数据交互方式。
3.根据权利要求1所述的工作流数据交互方法,其特征在于,所述数据交互方式为消息队列、HTTP接口以及RPC中任意一种;当所述数据交互方式为消息队列时,所述启动节点为消息启动节点;当所述数据交互方式为HTTP接口时,所述启动节点为接口启动节点;当所述数据交互方式为RPC时,所述启动节点为RPC启动节点。
4.根据权利要求1所述的工作流数据交互方法,其特征在于,所述启动通信通道和所述功能通信通道适配所述数据交互方式。
5.根据权利要求1所述的工作流数据交互方法,其特征在于,若流转至所述功能节点时则触发对应的功能通信通道,并依据所述功能通信通道和所述业务***进行数据交互。
6.根据权利要求1所述的工作流数据交互方法,其特征在于,当所述功能节点为需动态选择处理人的用户任务节点时,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,获取所述业务***返回的处理人信息,并依据所述处理人信息为所述用户任务节点分配处理人,将所述流程数据发送至所述处理人,并获取所述处理人返回新的流程数据继续流转。
7.根据权利要求1所述的工作流数据交互方法,其特征在于,当所述功能节点为需补充数据的接收任务节点时,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,获取所述业务***返回的补充数据,并结合所述补充数据与所述流程数据生成新的流程数据继续流转。
8.根据权利要求1所述的工作流数据交互方法,其特征在于,当所述功能节点为需要推送流程数据的服务任务节点,所述工作流引擎调用所述功能通信通道与所述业务***进行通信,向所述业务***推送所述流程数据。
9.根据权利要求3所述的工作流数据交互方法,其特征在于,当所述启动节点为所述消息启动流程节点时,创建启动通信通道和功能通信通道的方法为:配置消息队列,所述业务***和所述工作流引擎依据所述消息队列进行通信;当所述启动节点为所述接口启动流程节点时,生成对应所述流程实例的所述业务***和所述工作流引擎的通信密钥,创建启动通信通道和功能通信通道的方法为:创建通信地址,所述业务***和所述工作流引擎依据所述通信密钥和所述通信地址进行通信;当所述启动节点为所述RPC启动流程节点时,选择SpringCloud、webservice、dubbo中任意一种RPC框架,创建启动通信通道和功能通信通道的方法为:创建对应所述RPC框架的通信地址,所述业务***和所述工作流引擎依据对应所述RPC框架的通信地址进行通信。
10.工作流数据交互装置,适用于在业务***和工作流引擎之间进行数据交互,其特征在于,包括以下模块:
交互方式选定模块,用于选定业务***和工作流引擎之间的数据交互方式;
流程设计图配置模块,用于依据所述业务***的业务流程在所述工作流引擎中配置流程设计图,其中所述流程设计图包括至少一流程节点;
启动节点创建模块,用于依据所述数据交互方式为所述流程设计图创建启动节点,所述启动节点内配置启动流程的启动通信通道以及对应功能节点的功能通信通道,其中所述功能节点为需要和所述业务***进行数据交互的流程节点;
交互模块,用于所述工作流引擎依据所述启动通信通道获取所述业务***的业务数据并启动对应所述流程设计图的流程实例,将所述业务数据转化为流程数据后输入所述流程实例进行流转,每一所述流程节点依据输入的流程数据产生新的流程数据继续流转,若流转至功能节点则依据对应的所述功能通信通道和所述业务***进行数据交互。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至9任一所述的工作流数据交方法。
12.一种计算机程序产品,其特征在于,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行根据权利要求1至9任一项所述的工作流数据交方法。
13.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1至9任一项所述的工作流数据交方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632232.5A CN114281573A (zh) | 2021-12-28 | 2021-12-28 | 工作流数据交互方法、装置及电子装置、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632232.5A CN114281573A (zh) | 2021-12-28 | 2021-12-28 | 工作流数据交互方法、装置及电子装置、可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281573A true CN114281573A (zh) | 2022-04-05 |
Family
ID=80877494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111632232.5A Pending CN114281573A (zh) | 2021-12-28 | 2021-12-28 | 工作流数据交互方法、装置及电子装置、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281573A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115204736A (zh) * | 2022-08-03 | 2022-10-18 | 医利捷(上海)信息科技有限公司 | 一种业务***与工作流引擎交互方法及*** |
CN115361331A (zh) * | 2022-07-26 | 2022-11-18 | 北京奇艺世纪科技有限公司 | 通道选择方法、***、装置、电子设备和存储介质 |
CN115936633A (zh) * | 2023-01-09 | 2023-04-07 | 广东远景信息科技有限公司 | 应急流程衔接方法、电子设备及存储介质 |
CN117078212A (zh) * | 2023-10-07 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 业务流程处理方法及装置、电子设备、存储介质 |
CN117634866A (zh) * | 2024-01-25 | 2024-03-01 | 中国人民解放军国防科技大学 | 工作流调度引擎节点间数据处理方法、装置、设备及介质 |
-
2021
- 2021-12-28 CN CN202111632232.5A patent/CN114281573A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115361331A (zh) * | 2022-07-26 | 2022-11-18 | 北京奇艺世纪科技有限公司 | 通道选择方法、***、装置、电子设备和存储介质 |
CN115204736A (zh) * | 2022-08-03 | 2022-10-18 | 医利捷(上海)信息科技有限公司 | 一种业务***与工作流引擎交互方法及*** |
CN115936633A (zh) * | 2023-01-09 | 2023-04-07 | 广东远景信息科技有限公司 | 应急流程衔接方法、电子设备及存储介质 |
CN115936633B (zh) * | 2023-01-09 | 2023-11-03 | 广东远景信息科技有限公司 | 应急流程衔接方法、电子设备及存储介质 |
CN117078212A (zh) * | 2023-10-07 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 业务流程处理方法及装置、电子设备、存储介质 |
CN117078212B (zh) * | 2023-10-07 | 2024-01-26 | 腾讯科技(深圳)有限公司 | 业务流程处理方法及装置、电子设备、存储介质 |
CN117634866A (zh) * | 2024-01-25 | 2024-03-01 | 中国人民解放军国防科技大学 | 工作流调度引擎节点间数据处理方法、装置、设备及介质 |
CN117634866B (zh) * | 2024-01-25 | 2024-04-19 | 中国人民解放军国防科技大学 | 工作流调度引擎节点间数据处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114281573A (zh) | 工作流数据交互方法、装置及电子装置、可读存储介质 | |
EP3333744B1 (en) | Authorization code flow for in-browser applications | |
US11310108B2 (en) | Secure configuration of cloud computing nodes | |
EP2757744B1 (en) | System for muti-point publication syndication | |
EP2122476B1 (en) | Bidirectional dynamic offloading of tasks between a host and a mobile device | |
US8844013B2 (en) | Providing third party authentication in an on-demand service environment | |
US10555147B2 (en) | Systems and methods for facilitating service provision between applications | |
US10911426B2 (en) | Custom authenticator for enterprise web application | |
US9485244B2 (en) | Executing an operation over file repositories located in different authentication domains using a representational state transfer (REST)-compliant client | |
EP3337219A1 (en) | Carrier configuration processing method, device and system, and computer storage medium | |
EP4386593A1 (en) | Data sharing method, network side device, system, electronic device, and storage medium | |
US11812273B2 (en) | Managing network resource permissions for applications using an application catalog | |
CN113766034A (zh) | 基于区块链的业务处理方法和装置 | |
CN111598575A (zh) | 业务流程控制方法、装置、电子设备和可读存储介质 | |
CN113647113A (zh) | 基于网络的媒体处理安全性 | |
CN111224952A (zh) | 用于定向流量的网络资源获取方法、装置及存储介质 | |
US11363111B2 (en) | Customized application architecture utilizing sparse and base metadata layers | |
CN116860699A (zh) | 文件管理方法、***、计算机设备及计算机可读存储介质 | |
CN111125734B (zh) | 一种数据处理方法及*** | |
CN113765983A (zh) | 一种站点服务的部署方法和装置 | |
US11297065B2 (en) | Technology for computing resource liaison | |
TW201633172A (zh) | 內容傳遞的方法 | |
US11405364B1 (en) | Privacy-preserving endorsements in blockchain transactions | |
US11336438B2 (en) | Remote approval and execution of restricted operations | |
CN113918924A (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 |