CN112783604A - 一种基于PaaS的应用调度和工作流编排方法及系统 - Google Patents

一种基于PaaS的应用调度和工作流编排方法及系统 Download PDF

Info

Publication number
CN112783604A
CN112783604A CN202110112013.8A CN202110112013A CN112783604A CN 112783604 A CN112783604 A CN 112783604A CN 202110112013 A CN202110112013 A CN 202110112013A CN 112783604 A CN112783604 A CN 112783604A
Authority
CN
China
Prior art keywords
workflow
plug
data structure
steps
container
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.)
Granted
Application number
CN202110112013.8A
Other languages
English (en)
Other versions
CN112783604B (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.)
Shanghai Carbon Information Technology Co ltd
Original Assignee
Shanghai Carbon 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 Shanghai Carbon Information Technology Co ltd filed Critical Shanghai Carbon Information Technology Co ltd
Priority to CN202110112013.8A priority Critical patent/CN112783604B/zh
Publication of CN112783604A publication Critical patent/CN112783604A/zh
Application granted granted Critical
Publication of CN112783604B publication Critical patent/CN112783604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种基于PaaS的应用调度和工作流编排方法及系统。该方法包括:预先设置工作流数据结构,工作流数据结构包括工作流中将被执行的步骤集合和路径集合,步骤集合存放工作流中所有的步骤,路径集合存放工作流中步骤被执行的路径;预先设置插件数据结构,插件用于提供给工作流数据结构中的步骤在执行动作时选择使用,插件数据结构包括插件提供的动作集合及动作集合中的每个动作所对应的输入输出参数结构;预先构造插件在被步骤调用时所用到的关联容器;利用工作流数据结构和插件数据结构对工作流进行编排;利用工作流执行引擎执行工作流,在工作流执行引擎执行需要使用插件的步骤时,利用容器引擎启动用于工作流中的插件运行的容器。

Description

一种基于PaaS的应用调度和工作流编排方法及系统
技术领域
本发明属于计算机技术领域,具体涉及一种基于PaaS的应用调度和工作流编排方法及系统。
背景技术
平台即服务(PaaS),使用者可以使用由PaaS提供者支持的软件编程语言和开发工具来开发、部署和以其他方式控制使用者自己的应用,而PaaS提供者管理或控制云环境的其它方面(即,运行时执行环境之下的一切)。
工作流(Workflow)的概念起源于生产组织和办公自动化领域,针对于如何组织日常工作中具有固定程序的活动而提出的一个概念。其目的是为了提高办事效率、降低生产运营成本,提高企业生产经营管理水平和企业竞争力。工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括描述,工作流编排和执行,是指将工作流程中的各项工作按既定的顺序前后组织在一起,利用计算机在多个应用之间按照某种预定的规则自动传递文档、信息或者任务,以实现特定的业务目标。工作流属于计算机支持的协同工作(CSCW)的一部分,即研究一个群体如何在计算机的帮助下实现协同工作的。
工作流将原先分散或混乱的逻辑重新编排组织,整理成流程清晰、步骤合理的流水线,流程中的各个步骤各自独立、耦合度低,各步骤内部的逻辑简洁单一,内聚程度高。优秀的工作流将大大提升业务执行效率,也便于各方参与者的协作分工。同时,对于业务需求变化迭代快速的场景,工作流可以提供编排的灵活性,可随时替换和插入节点,而流程中的其他步骤不受影响。现如今,市面上存在的工作流编排方法仍存在一些缺陷,例如流程的可定制化程度低,灵活性不够强,当业务发生改变时调整的成本高;人工介入正在运行的工作流任务较为困难,无法将人工决策编排到工作流的环节中;流程编排可视化程度低,需专业技术人员处理大量配置文件,编排难度高;不支持动态确认分支选择,流程的复杂逻辑不易实现;扩展性不强,且缺乏标准,在现有流程中接入新节点成本高;各种流程分散在不同应用和业务中,不易维护。
发明内容
本申请的目的在于提出一种基于PaaS的应用调度和工作流编排方法及系统,具有多种类型的工作流步骤,将封装有第三方应用业务逻辑的容器与工作流结合,解决了上述背景技术存在的问题。
第一方面,本申请实施例提供了一种基于PaaS的应用调度和工作流编排方法,该方法的步骤包括:
S1:预先设置工作流数据结构,工作流数据结构包括工作流中将被执行的步骤集合和路径集合,步骤集合存放工作流中所有的步骤,路径集合存放工作流中步骤被执行的路径;
S2:预先设置插件数据结构,插件用于提供给工作流数据结构中的步骤在执行动作时选择使用,插件数据结构包括插件提供的动作集合及动作集合中的每个动作所对应的输入输出参数结构;
S3:预先构造插件在被步骤调用时所用到的关联容器;
S4:利用工作流数据结构和插件数据结构对工作流进行编排,编排包括构造工作流中的步骤、步骤顺序及步骤将要使用的插件;以及
S5:利用工作流执行引擎执行工作流,同时在工作流执行引擎执行需要使用插件的步骤时,利用容器引擎启动用于工作流中的插件运行的容器。通过上述步骤可提高工作流程编排的可视化程度,且工作流增删节点操作简单,引入基于容器的插件增强了工作流整合外部平台和应用的能力,提升了系统兼容性和资源利用率。
在一些实施例中,在S1中的步骤为独立的基本功能单元,步骤的数据结构包括步骤唯一标识、步骤类型、输入参数和输出参数;路径为用于标记步骤被执行的顺序,路径的数据结构包括路径唯一标识、来源步骤标识和目标步骤标识。通过步骤和路径,使得工作流增删节点操作简单,简化工作流编排配置难度。
在一些实施例中,在S1中的步骤类型包括动作,动作与插件密切配合,用于执行特定单一功能以完成工作流中的主要业务逻辑。动作类型的步骤只需记录需要调用的插件中的功能,在执行该步骤时去完成插件调用即可,插件为一组关联性动作的集合,每个插件可以提供若干个动作。
在一些实施例中,在S2中的插件数据结构具体包括
插件唯一标识,插件唯一标识供数据库区分不同插件;
插件名称,插件名称与被步骤调用时所用到的关联容器名称相关,工作流通过插件名称寻找对应的关联容器;
功能集合,功能集合包括工作流数据结构的步骤类型中的动作;
输入参数,每个动作中的输入参数的类型定义;
输出参数,每个动作中的输出参数的类型定义。
插件数据结构包括上述内容以便于实现将功能或业务的逻辑代码封装在插件中,以实现特定的功能或业务,以插件的形式为工作流执行提供接口服务。
在一些实施例中,在S2中插件数据结构中的输入输出参数结构包括收件服务器域、端口、用户名和密码。通过统一输入输出参数的格式,使插件能够以标准输入格式处理工作流的请求参数,并以标准输出格式将结果响应给工作流,进一步使得工作流执行引擎不用考虑插件的具体技术细节和内部机制,以通用的方式处理插件的响应结果提,提升了插件的易维护性。
在一些实施例中,在S5中容器启动后,插件以HTTP服务的形式对外提供服务,工作流执行引擎在执行要使用插件的步骤时直接访问容器提供的容器接口以获取插件执行结果。通过这样的操作可以快速高效地实现工作流与第三方平台应用之间的连接与沟通。
在一些实施例中,在S5中,在工作流执行引擎访问容器提供的容器接口后,记录容器的最后使用时间,并且将长期未使用的引擎容器关闭。通过这样的操作极大地提高了容器的使用效率,提升工作流执行引擎资源利用率,使得工作流执行引擎对容器的生命周期进行管理和维护。
在一些实施例中,步骤类型还包括
触发器,发生特定事件将启动触发器,工作流执行引擎开始执行工作流;
过滤器,过滤器根据上下文匹配的条件进行判断,控制工作流是否继续执行;
模式匹配,从先前步骤获得的输出参数中查找提取特定的文本内容,并将本文内容作为工作流中的新变量提供给后续步骤使用;
循环,循环中嵌入有其他步骤及子循环,实现循逻辑;
决策,在工作流中创建决策点,决策支持自动决策和人工决策;
工件,在工作流任务中插入卡片,展示工作流任务运行过程中的关键参数;
片段,将工作流的部分拆分成可复用的工作流片段,以插进其他工作流中;
调查,对工作流任务中的指定参数进行追踪检监视,并根据参数对工作流任务进行归总分类;
交互机器人,交互机器人是一种特殊的动作。
每一种步骤类型都是一个独立的基本逻辑单元,用于完成特定的任务,该方法提供了多种步骤类型能够实现不同的功能,能够支持实现更为复杂逻辑的工作流,且创造性地在工作流种实现人工决策步骤,将人为操作内置为工作流种的一个环节,有效地提升了工作流编排的灵活性。
第二方面,本申请提供了一种基于PaaS的应用调度和工作流编排系统,该系统包括:
工作流模块,工作流模块被配置用以预先设置工作流数据结构,工作流数据结构包括工作流中将被执行的步骤集合和路径集合,步骤集合存放工作流中所有的步骤,路径集合存放工作流中步骤被执行的路径;
执行模块,执行模块被配置用以预先设置插件数据结构,插件用于提供给工作流数据结构中的步骤在执行动作时选择使用,插件数据结构包括插件提供的动作集合及动作集合中的每个动作所对应的输入输出参数结构;
存储模块,存储模块被配置用以预先构造插件在被步骤调用时所用到的关联容器;
编排模块,编排模块被配置用以利用工作流数据结构和插件数据结构对工作流进行编排,编排包括构造工作流中的步骤、步骤顺序及步骤将要使用的插件;
启动模块,启动模块被配置用以利用工作流执行引擎执行工作流,同时在工作流执行引擎执行需要使用插件的步骤时,利用容器引擎启动用于工作流中的插件运行的容器。
第三方面,本申请提供了一种计算机可读存储介质,介质中存储有计算机程序,在计算机程序被处理器执行时,实施如上述第一方面中任一项的方法。
本申请实施例提供的一种基于PaaS的应用调度和工作流编排方法及系统具有如下优势,1、通过多种工作流步骤类型,创造性地在工作流中实现人工决策步骤,将人为操作内置为工作流中的一个环节,能够实现复杂逻辑的工作流,且提升了工作流编排的灵活性。2、通过步骤和路径使得工作流的增删节点操作更为简单,可以有效地简化编排配置难度。3、基于标准的插件开发规范,提升了插件的易维护性,且引入基于容器的插件,增强了工作流整合外部平台和应用的能力,提升系统兼容性和资源利用率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本发明的实施例的一种基于PaaS的应用调度和工作流编排方法中的示例性基础流程图;
图2是根据本发明的实施例的一种基于PaaS的应用调度和工作流编排方法中的步骤和路径基本数据结构示意图;
图3是根据本发明的实施例的一种基于PaaS的应用调度和工作流编排方法中的步骤类型示意图;
图4是根据本发明的实施例的一种基于PaaS的应用调度和工作流编排方法中的工作流步骤访问容器的动作示意图;
图5是根据本发明的实施例的一种基于PaaS的应用调度和工作流编排系统中的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明一种基于PaaS的应用调度和工作流编排方法中的示例性基础流程。如图1所示,该基础流程包括:预先设置工作流数据结构,工作流数据结构包括工作流中将被执行的步骤集合和路径集合,步骤集合存放工作流中所有的步骤,路径集合存放工作流中步骤被执行的路径。
图2示出了一种基于PaaS的应用调度和工作流编排方法中的步骤和路径基本数据结构,结合图1和图2所示,在具体的实施例中,以处理邮件的工作流为例,其具体步骤包括:
Step1:从邮件箱接收邮件
Step2:检查邮件是否有附件,存在则继续下一步,否则停止流程
Step3:下载附件
Step4:检查附件是否存在风险,存在则继续下一步,否则停止流程
Step5:删除风险附件和邮件
步骤集合(Steps)=Array[Step1,Step2,Step3,Step4,Step5]
Path1=Step1->Step2
Path2=Step2->Step3
Path3=Step3->Step4
Path4=Step4->Step5
路径集合(Paths)=Array[Path1,Path2,Path3,Path4]
步骤集合(Steps)中的每一个步骤(Step)通过步骤唯一标识进行标记识别,不同的步骤类型具有不同的功能。每个步骤均包括输入参数(Input)和输出参数(Output),当前步骤的输入参数(Input)可以来自于先前步骤的输出参数(Output),当前步骤的输出参数(Output)也可以作为后续步骤的输入参数(Input)。单个步骤的数据结构至少包括以下四个属性:步骤唯一标识、步骤类型、输入参数和输出参数,即步骤(Step)=Object(StepUid,StepType,Input,Output)。
路径集合(Paths)中的每一个路径(Path)包括路径唯一标识(PathUid),来源步骤标识(FromStepUid)和目标步骤标识(ToStepUid)。通过这种方式,路径将步骤串联起来,使工作流执行引擎能够知晓工作流的执行顺序,即路径(Path)=Object(PathUid,FromStepUid,ToStepUid)。
图3示出了一种基于PaaS的应用调度和工作流编排方法中的步骤类型,步骤集合(Steps)中的每一个步骤(Stpe)都是一个独立的基本逻辑单元,用于完成特定的功能,如图3所示,步骤类型包括以下几种:
触发器(Trigger):触发器是工作流的第一个步骤,是工作流的入口,发生特定事件将导致触发器被触发,如触发器API被调用或者触发器接收到消息,工作流将开始执行;
动作(Action):执行某一特定单一功能,该特定功能的具体实现是通过开发插件完成的,动作类型的步骤只需记录需要调用插件中的功能,在执行到该步骤时去完成插件调用即可。动作和插件(Plugin)密切配合,完成工作流中的主要业务逻辑;
过滤器(Filter):根据上下文匹配的条件判断,控制工作流是否继续执行;
模式匹配(Match):从先前步骤获得的输出参数(Output)中查找提取特定的文本内容,并将其作为工作流程中的新变量,提供给后续步骤使用;
循环(Loop):实现循环逻辑,循环中可以嵌入其他步骤和子循环;
决策(Decision):在工作流中创建决策点,支持自动决策和人工决策,自动决策通过条件匹配选择合适的工作流分支继续执行,人工决策则会挂起工作流任务,等待人工处理;
工件(Artifact):在工作流任务中插入卡片,展示任务运行过程中的一些关键参数,使工作流任务运行可视化;
片段(Snippet):将工作流中的一部分拆分成可复用的工作流片段,该片段可以插入到其他工作流中;
调查(Invest):对工作流任务中的指定参数进行追踪监视,根据参数对任务进行归总分类;
交互机器人(Robot):交互机器人作为一种特殊的动作,在工作流中接入即时聊天应用,例如钉钉、微信等。
继续以处理邮件的工作流为例,在具体的实施例中,整个工作流中包括若干个动作类型的步骤,需要完成收取邮件、下载附件、删除邮件及检查附件安全性这四个功能,其中收取邮件、下载附件和删除邮件这三个功能和邮件相关,检查附件安全性这个功能则与安全扫描相关,因此需要一个邮件插件(Email Plugin)完成三个动作(收取邮件、下载附件、删除邮件),以及一个风险扫描插件(ScanPlugin)完成一个动作(安全扫描)。插件运行后,工作流执行时只需要在特定步骤调用特定插件中的特定动作即可。插件是一组关联性动作的集合,每个插件可以提供若干个动作(Action),且动作数量取决于用户和插件开发者自己的需求。
继续参考图1,预先设置插件数据结构,插件用于提供给工作流数据结构中的步骤在执行动作时选择使用,插件数据结构包括插件提供的动作集合及动作集合中的每个动作所对应的输入输出参数结构;预先构造插件在被步骤调用时所用到的关联容器;利用工作流数据结构和插件数据结构对工作流进行编排,编排包括构造工作流中的步骤、步骤顺序及步骤将要使用的插件。
动作步骤中要实现某个特定功能或业务,需要将实现这些功能或业务的逻辑代码封装在插件中,以插件的形式为工作流执行提供接口服务。插件的数据结构包括以下属性:
插件的唯一标识(PluginId),插件唯一标识供数据库区分不同的插件,
插件名称(PluginName),插件名称与容器的名称密切相关,工作流通过此名称找到对应的容器并访问接口获取结果,
功能集合(Actions),工作流动作(Action)步骤中的动作选择来源于此,
输入参数(Input),插件每个动作中的输入参数的类型定义,
输出参数(Output)插件每个动作中的输出参数的类型定义。
下面为一个插件的基本数据结构:
Figure BDA0002919413530000101
以邮件插件(Email Plugin)为例,邮件插件的数据结构如下:
Figure BDA0002919413530000102
该邮件插件提供了三个功能,工作流中的每个动作步骤(Action)可根据需要使用其中任意一个,下面以收取邮件的步骤为例:
Figure BDA0002919413530000103
Figure BDA0002919413530000111
通过插件实现一系列的动作功能,以便提供给工作流中的动作(Action)步骤选择使用。
通过规范插件数据结构中的输入输出参数结构的格式,使插件能够以标准输入格式处理工作流的请求参数,并以标准输出格式将结果响应给工作流,使得工作流执行引擎不用考虑插件的具体技术细节和内部机制,以通用的方式处理插件的响应结果,具体操作过程如下
Figure BDA0002919413530000112
Figure BDA0002919413530000121
继续以邮件插件(Email Plugin)收取邮件的动作(Action)为例,其中,
Action=收取邮件
//输入参数:收件服务器域名(字符串)、端口(整数)、用户名(字符串)、密码(字符串)
Input={host:string,port:integer,username:string,password:string}
//输出参数:收取到的邮件列表([]string表示字符串数组,每封邮件都是一段字符串文本内容)
Output={emails:[]string}
插件的每一个动作(Action)均包括若干个输入参数类型定义和若干个输出参数类型定义,该定义与整个插件数据结构一起存放在工作流执行引擎的插件信息表数据库中。开发者在编写插件接口函数的请求参数和响应结果时,应当遵循该定义;工作流执行引擎调用插件接口时,也会根据类型定义来组织请求参数和格式化响应结果。
图4示出了一种基于PaaS的应用调度和工作流编排方法中的工作流步骤访问容器中的动作,结合图1和图4,在具体实施例中,利用工作流执行引擎执行工作流,同时在工作流执行引擎执行需要使用插件的步骤时,利用容器引擎启动用于工作流中的插件运行的容器。在工作流执行机制中增设插件机制,插件本身并不包含在工作流执行引擎中执行,插件是独立于工作流执行引擎之外运行的,插件的修改和版本迭代并不会影响到工作流执行引擎,从而有效地保证了工作流执行引擎的稳定性、工作流的灵活性和可扩展性。引入基于PaaS的容器机制以排除不同插件之间在不同环境依赖的相互干扰,同时保证插件引入的私密性和安全性。对于工作流平台而言,可以实现在动作步骤执行时快速创建和使用容器,并在动作步骤执行完毕后释放容器占用的空间和资源,有效地地提高系统资源的利用率。
插件通过插件数据结构中的插件名称(PluginName)关联容器,当工作流动作步骤需要调用插件中的动作时,工作流执行引擎将通过插件名称(PluginName)创建并启动插件所在的容器,进一步访问容器的接口获取动作执行结果。
继续参考图4,在具体实施例中通过Docker实现容器的调度和管理,插件被制作打包成Docker镜像,且Docker镜像被导入到工作流执行引擎所能够访问到的Docker环境中。Docker镜像在需要的时候可以创建和运行容器,且允许横向扩展容器。
继续以邮件插件(Email Plugin)为例,具体操作过程如下
Figure BDA0002919413530000141
当开发者完成邮件插件开发之后,会通过Docker将插件打包成镜像(假设镜像名称为email_image),即dockerbuild-t email_image,并通过该镜像创建并启动一个名为email的容器,即docker run email_image--name="email",待容器启动后,email插件就会以HTTP服务的形式对外提供服务,工作流执行引擎在执行和邮件插件相关的动作步骤时,直接访问插件容器提供的动作接口即可获取响应结果。
当某个工作流步骤首次创建运行容器时,启动后的容器将被容器池记录,以便后续其他工作流步骤直接使用,极大地提高了容器的使用效率,提升了工作流执行引擎的资源利用率,工作流执行引擎会对容器的生命周期进行管理和维护。下面仍然以邮件插件(Email Plugin)为例,具体步骤包括:
(1)当工作流执行到收取邮件的步骤时,工作流执行引擎首先发现需要使用邮件插件来完成收取邮件的功能;
(2)工作流执行引擎根据插件数据结构中的定义去寻找名为email的容器是否正在运行;
(3)如果email容器没有运行,则通过email_image镜像创建并启动一个名为email的容器;如果已经在运行,则直接跳到第(5)步;
(4)email容器启动成功;
(5)引擎访问email容器接口完成收取邮件的动作;
(6)引擎记录email容器的最后使用时间;
通过以上步骤,工作流执行引擎可以管理所有插件容器的最近使用时间,并通过一个定时任务,将长期未使用的工作流执行引擎容器关闭,以提高容器的使用效率。
图5示出了本发明的实施例的一种基于PaaS的应用调度和工作流编排系统中的结构,作为对上述各图所示方法的实现,该系统实施例与图1所示的方法实施例相对应,该系统具体可以应用于各种电子设备中。如图5所示,本实施例的基于PaaS的应用调度和工作流编排系统包括工作流模块,工作流模块被配置用以预先设置工作流数据结构,工作流数据结构包括工作流中将被执行的步骤集合和路径集合,步骤集合存放工作流中所有的步骤,路径集合存放工作流中步骤被执行的路径;执行模块,执行模块被配置用以预先设置插件数据结构,插件用于提供给工作流数据结构中的步骤在执行动作时选择使用,插件数据结构包括插件提供的动作集合及动作集合中的每个动作所对应的输入输出参数结构;存储模块,存储模块被配置用以预先构造插件在被步骤调用时所用到的关联容器;编排模块,编排模块被配置用以利用工作流数据结构和插件数据结构对工作流进行编排,编排包括构造工作流中的步骤、步骤顺序及步骤将要使用的插件;启动模块,启动模块被配置用以利用工作流执行引擎执行工作流,同时在工作流执行引擎执行需要使用插件的步骤时,利用容器引擎启动用于工作流中的插件运行的容器。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。本申请所述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、设备或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、设备或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、设备或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、分析模块和输出模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种基于PaaS的应用调度和工作流编排方法,其特征在于,所述方法的步骤包括:
S1:预先设置工作流数据结构,所述工作流数据结构包括工作流中将被执行的步骤集合和路径集合,所述步骤集合存放工作流中所有的步骤,所述路径集合存放工作流中所述步骤被执行的路径;
S2:预先设置插件数据结构,所述插件用于提供给所述工作流数据结构中的步骤在执行动作时选择使用,所述插件数据结构包括所述插件提供的动作集合及所述动作集合中的每个动作所对应的输入输出参数结构;
S3:预先构造所述插件在被步骤调用时所用到的关联容器;
S4:利用所述工作流数据结构和所述插件数据结构对所述工作流进行编排,所述编排包括构造所述工作流中的步骤、步骤顺序及所述步骤将要使用的插件;
S5:利用工作流执行引擎执行所述工作流,同时在所述工作流执行引擎执行需要使用所述插件的步骤时,利用容器引擎启动用于所述工作流中的插件运行的容器。
2.根据权利要求1所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,在S1中的所述步骤为独立的基本功能单元,所述步骤的数据结构包括步骤唯一标识、步骤类型、输入参数和输出参数;所述路径为用于标记所述步骤被执行的顺序,所述路径的数据结构包括路径唯一标识、来源步骤标识和目标步骤标识。
3.根据权利要求1所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,在S1中的所述步骤类型包括动作,所述动作与所述插件密切配合,用于执行特定单一功能以完成所述工作流中的主要业务逻辑。
4.根据权利要求1所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,在S2中的所述插件数据结构具体包括
插件唯一标识,所述插件唯一标识供数据库区分不同插件;
插件名称,所述插件名称与所述被步骤调用时所用到的关联容器名称相关,所述工作流通过所述插件名称寻找对应的关联容器;
功能集合,所述功能集合包括所述工作流数据结构的步骤类型中的动作;
输入参数,每个动作中的输入参数的类型定义;
输出参数,每个动作中的输出参数的类型定义。
5.根据权利要求1所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,在S2中所述插件数据结构中的输入输出参数结构包括收件服务器域、端口、用户名和密码。
6.根据权利要求1所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,在S5中所述容器启动后,所述插件以HTTP服务的形式对外提供服务,所述工作流执行引擎在执行要使用插件的步骤时直接访问所述容器提供的容器接口以获取插件执行结果。
7.根据权利要求6所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,在所述S5中,在所述工作流执行引擎访问所述容器提供的容器接口后,记录所述容器的最后使用时间,并且将长期未使用的引擎容器关闭。
8.根据权利要求3所述一种基于PaaS的应用调度和工作流编排方法,其特征在于,所述步骤类型还包括
触发器,发生特定事件将启动所述触发器,所述工作流执行引擎开始执行所述工作流;
过滤器,所述过滤器根据上下文匹配的条件进行判断,控制所述工作流是否继续执行;
模式匹配,从先前所述步骤获得的所述输出参数中查找提取特定的文本内容,并将所述本文内容作为所述工作流中的新变量提供给后续步骤使用;
循环,所述循环中嵌入有其他所述步骤及子循环,实现循逻辑;
决策,在所述工作流中创建决策点,所述决策支持自动决策和人工决策;
工件,在所述工作流任务中插入卡片,展示所述工作流任务运行过程中的关键参数;
片段,将所述工作流的部分拆分成可复用的工作流片段,以插进其他工作流中;
调查,对所述工作流任务中的指定参数进行追踪检监视,并根据所述参数对所述工作流任务进行归总分类;
交互机器人,所述交互机器人是一种特殊的动作。
9.一种基于PaaS的应用调度和工作流编排系统,其特征在于,所述系统包括:
工作流模块,所述工作流模块被配置用以预先设置工作流数据结构,所述工作流数据结构包括工作流中将被执行的步骤集合和路径集合,所述步骤集合存放工作流中所有的步骤,所述路径集合存放工作流中所述步骤被执行的路径;
执行模块,所述执行模块被配置用以预先设置插件数据结构,所述插件用于提供给所述工作流数据结构中的步骤在执行动作时选择使用,所述插件数据结构包括所述插件提供的动作集合及所述动作集合中的每个动作所对应的输入输出参数结构;
存储模块,所述存储模块被配置用以预先构造所述插件在被步骤调用时所用到的关联容器;
编排模块,所述编排模块被配置用以利用所述工作流数据结构和所述插件数据结构对所述工作流进行编排,所述编排包括构造所述工作流中的步骤、步骤顺序及所述步骤将要使用的插件;
启动模块,所述启动模块被配置用以利用工作流执行引擎执行所述工作流,同时在所述工作流执行引擎执行需要使用所述插件的步骤时,利用容器引擎启动用于所述工作流中的插件运行的容器。
10.一种计算机可读存储介质,所述介质中存储有计算机程序,在所述计算机程序被处理器执行时,实施如权利要求1-8中任一项所述的方法。
CN202110112013.8A 2021-01-27 2021-01-27 一种基于PaaS的应用调度和工作流编排方法及系统 Active CN112783604B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110112013.8A CN112783604B (zh) 2021-01-27 2021-01-27 一种基于PaaS的应用调度和工作流编排方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110112013.8A CN112783604B (zh) 2021-01-27 2021-01-27 一种基于PaaS的应用调度和工作流编排方法及系统

Publications (2)

Publication Number Publication Date
CN112783604A true CN112783604A (zh) 2021-05-11
CN112783604B CN112783604B (zh) 2022-09-16

Family

ID=75758342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110112013.8A Active CN112783604B (zh) 2021-01-27 2021-01-27 一种基于PaaS的应用调度和工作流编排方法及系统

Country Status (1)

Country Link
CN (1) CN112783604B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354760A (zh) * 2007-07-25 2009-01-28 纬创资通股份有限公司 非线性不固定层式工作流程运作系统及其运作方法
JP2010128948A (ja) * 2008-11-28 2010-06-10 Ricoh Co Ltd ワークフロー情報生成装置、ワークフロー情報生成方法、画像処理装置、制御プログラム及び記録媒体
CN102314349A (zh) * 2011-09-16 2012-01-11 武汉中地数码科技有限公司 空间信息功能插件工作流搭建方法
CN102509197A (zh) * 2011-12-01 2012-06-20 中国移动通信集团广东有限公司 一种工作流管理系统及工作流管理方法
CN103645919A (zh) * 2013-12-18 2014-03-19 用友软件股份有限公司 一种通过插件扩展管理信息系统功能的方法
CN105303305A (zh) * 2015-10-15 2016-02-03 武汉大学 一种插件式业务流程家族的协同演化方法
CN105760991A (zh) * 2016-02-04 2016-07-13 北京慧友云商科技有限公司 一种可变服务流程的工作流引擎搭建方法
CN111047190A (zh) * 2019-12-12 2020-04-21 广西电网有限责任公司 一种基于交互式学习技术的多元化业务建模框架系统
CN111124636A (zh) * 2019-12-07 2020-05-08 杭州安恒信息技术股份有限公司 一种流程编排引擎及其控制方法
CN111427701A (zh) * 2020-03-09 2020-07-17 中国建设银行股份有限公司 一种工作流引擎系统和业务处理方法
CN111666572A (zh) * 2020-06-03 2020-09-15 辽宁北方实验室有限公司 一种自动化渗透测试框架
CN112257008A (zh) * 2020-12-22 2021-01-22 北京宇信科技集团股份有限公司 一种在线自定义流程运行系统、方法、介质和服务器
CN113469647A (zh) * 2021-06-23 2021-10-01 广州鲁邦通智能科技有限公司 一种企业信息集成系统和业务处理方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354760A (zh) * 2007-07-25 2009-01-28 纬创资通股份有限公司 非线性不固定层式工作流程运作系统及其运作方法
JP2010128948A (ja) * 2008-11-28 2010-06-10 Ricoh Co Ltd ワークフロー情報生成装置、ワークフロー情報生成方法、画像処理装置、制御プログラム及び記録媒体
CN102314349A (zh) * 2011-09-16 2012-01-11 武汉中地数码科技有限公司 空间信息功能插件工作流搭建方法
CN102509197A (zh) * 2011-12-01 2012-06-20 中国移动通信集团广东有限公司 一种工作流管理系统及工作流管理方法
CN103645919A (zh) * 2013-12-18 2014-03-19 用友软件股份有限公司 一种通过插件扩展管理信息系统功能的方法
CN105303305A (zh) * 2015-10-15 2016-02-03 武汉大学 一种插件式业务流程家族的协同演化方法
CN105760991A (zh) * 2016-02-04 2016-07-13 北京慧友云商科技有限公司 一种可变服务流程的工作流引擎搭建方法
CN111124636A (zh) * 2019-12-07 2020-05-08 杭州安恒信息技术股份有限公司 一种流程编排引擎及其控制方法
CN111047190A (zh) * 2019-12-12 2020-04-21 广西电网有限责任公司 一种基于交互式学习技术的多元化业务建模框架系统
CN111427701A (zh) * 2020-03-09 2020-07-17 中国建设银行股份有限公司 一种工作流引擎系统和业务处理方法
CN111666572A (zh) * 2020-06-03 2020-09-15 辽宁北方实验室有限公司 一种自动化渗透测试框架
CN112257008A (zh) * 2020-12-22 2021-01-22 北京宇信科技集团股份有限公司 一种在线自定义流程运行系统、方法、介质和服务器
CN113469647A (zh) * 2021-06-23 2021-10-01 广州鲁邦通智能科技有限公司 一种企业信息集成系统和业务处理方法

Also Published As

Publication number Publication date
CN112783604B (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
CN109710236B (zh) 基于共享服务的业务开发和实现方法、装置、平台及介质
US10936988B2 (en) Cognitive process enactment
CN111880950A (zh) 基于政务云平台管理云服务api的方法及系统
US10416979B2 (en) Package installation on a host file system using a container
US11488029B2 (en) Cognitive process code generation
CN110096424B (zh) 测试的处理方法、装置、电子设备及存储介质
US9858070B2 (en) Development team file collaboration
US10579354B2 (en) Method and system for rapid deployment and execution of customized functionality across multiple distinct platforms
US11734061B2 (en) Automated software robot creation for robotic process automation
CN113298503A (zh) 一种面向政务的工作流管理系统及其分库分表方法
CN111858301B (zh) 基于变更历史的组合服务测试用例集约简方法及装置
CN111737697B (zh) 一种基于原子化功能的安全扫描系统及扫描方法
CN115526578A (zh) 生成项目流的方法、装置、电子设备及存储介质
CN113971037A (zh) 应用处理方法、装置、电子设备及存储介质
CN110633120A (zh) 组态软件控件处理方法、装置、服务器、用户终端及系统
US10180900B2 (en) Recordation of user interface events for script generation
US20150121381A1 (en) Change-request analysis
CN112783604B (zh) 一种基于PaaS的应用调度和工作流编排方法及系统
CN117389655A (zh) 云原生环境下的任务执行方法、装置、设备和存储介质
CN115562686A (zh) 一种SpringBoot项目轻量级打包方法、系统、终端及存储介质
Apolinarski et al. Automating the generation of privacy policies for context-sharing applications
CN112363700A (zh) 智能合约的协同创建方法、装置、计算机设备和存储介质
CN110736920A (zh) 一种基于工程管理测试脚本的卡片测试方法及系统
AU2019458741B9 (en) System and method for dynamic routing of messages between networks
CN114338178B (zh) Soar剧本模型、剧本构建方法、电子设备和存储介质

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