CN110609675B - 一种工作流建模方法、装置和计算机可读存储介质 - Google Patents
一种工作流建模方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110609675B CN110609675B CN201810616144.8A CN201810616144A CN110609675B CN 110609675 B CN110609675 B CN 110609675B CN 201810616144 A CN201810616144 A CN 201810616144A CN 110609675 B CN110609675 B CN 110609675B
- Authority
- CN
- China
- Prior art keywords
- node
- workflow
- template
- level
- directed graph
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 48
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 9
- RYAUSSKQMZRMAI-YESZJQIVSA-N (S)-fenpropimorph Chemical compound C([C@@H](C)CC=1C=CC(=CC=1)C(C)(C)C)N1C[C@H](C)O[C@H](C)C1 RYAUSSKQMZRMAI-YESZJQIVSA-N 0.000 description 7
- 230000005291 magnetic effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- MWRWFPQBGSZWNV-UHFFFAOYSA-N Dinitrosopentamethylenetetramine Chemical compound C1N2CN(N=O)CN1CN(N=O)C2 MWRWFPQBGSZWNV-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种工作流建模方法,包括:解析获取的服务模板,获得所述服务模板中定义的各个节点;基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系;根据所述有向图生成高层工作流模板,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程;根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系。本发明实施例同时还公开了一种工作流建模装置和计算机可读存储介质。
Description
技术领域
本发明涉及网络功能虚拟化(NFV,Network Function Virtualization)领域,尤其涉及一种工作流建模方法、装置和计算机可读存储介质。
背景技术
近年来,云计算、虚拟化技术发展迅速,带来了很多创新,同时也给运营商带来很大的压力,运营商面临寻找新的收入增长点,以抵消OTT(Over The Top)业务带来的影响,同时为了降低企业的管理支出OPEX(Operating Expense),通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等快速开展业务,因此需要通过网络功能虚拟化来解决这些问题。
为了增强云应用(Cloud Application)在各种云基础设施上的可移植性,结构化信息标准推进组织(OASIS,Organization for the Advancement of StructuredInformation Standards)制定了云应用拓扑及编排规范(TOSCA,Topology andOrchestration Specification for Cloud Applications)。TOSCA通过服务模板(ServiceTemplate)描述了组成Cloud Application的各个组件及组件之间的拓扑关系,编排器(Orchestrator)通过对服务模板进行解析,在云基础设施上申请计算和网络资源,对服务进行实例化及升级,缩扩容,终止等生命周期管理。
TOSCA不只制定了云应用编排的基本规范,还基于该基本规范进行扩展,参考ETSINFV MANO架构和标准制定了NFV领域的编排规范。目前TOSCA编排规范已经被多家主流运营商和电信设备商采用,是NFV领域的主流编排标准。TOSCA服务模板中的工作流用于对NFV网络服务进行部署、升级、扩容等生命周期管理的流程,属于模板中的重要内容。编排器在进行网络服务生命周期管理时,需要执行服务模板对应的生命周期管理工作流。TOSCA支持两种生命周期管理工作流定义方法:声明式(declarative)工作流和命令式(imperative)工作流。
对于声明式工作流,在服务模板中不显示定义工作流,由编排器在实例化网络服务时根据TOSCA服务模板中各个节点之间的依赖关系来决定各组件创建的先后顺序。假设目的节点依赖于源节点,则编排器在执行时先创建目的节点实例,然后再创建源节点实例。声明式工作流的特点是生命周期管理工作流由编排器在部署服务模板时根据服务模板的拓扑自动生成,不需要显示定义工作流文件,但缺乏灵活性,无法对工作流进行扩展。对于命令式工作流,由于声明式工作流无法表达出某些复杂的生命周期管理流程,因此TOSCA也支持显示定义工作流,即命令式工作流。命令式工作流的特点是非常灵活,用户可以根据需要定义工作流中的每一个步骤,但比较繁琐。TOSCA规范中包含了一种简单的工作流定义领域专用语(DSL,Domain Specific Language)可以在服务模板中定义简单的工作流,明确指出每一个步骤中执行哪个节点的哪个方法。
目前TOSCA规范中两种工作流建模方法都存在一定的局限性,在应用到NFV服务模板生命周期管理工作流建模时面临以下问题:
一、声明式工作流无法实现NFV领域复杂的生命周期管理流程
TOSCA声明式工作流的意图是定义一个完全和编排器无关的,可在各个编排器实现之间无缝切换的云软件数据模型。但由于NFV领域的复杂性,目前尚无法实现模型完全独立于编排器,例如,虚拟网络功能(VNF,Virtual Network Function)的数据中心位置选择,跨WAN的底层链接创建等都和具体的编排器技术实现相关,因此需要采用命令式工作流显示地对网络服务的生命周期流程进行编排。
二、内置工作流语言的语法具有较大局限性
TOSCA内置的工作流DSL语言也存在较大的局限性,导致其不能支撑NFV领域的网络服务生命周期管理流程编排,其问题包括但不限于:
1、TOSCA内置工作流DSL只能调用TOSCA服务模板中节点的操作,但无法调用模板外部的服务。例如在NFV的编排中,需要调用到计算VNF应创建在哪个数据中心的资源选择服务,用于配置网元数据的EMS服务等。
2、TOSCA内置工作流DSL不支持需要和用户交互的工作流节点。例如在工作流的某一步骤需要用户输入一个参数,如人工选择一个虚拟基础资源管理器(VIM,VirtualInfrastructure Manager)。
从而可以看出,无论是TSOCA的声明式工作流和其内置的命令式工作流都存在一定的局限性,导致现有规范内容不能有效支撑NFV领域的网络服务生命周期管理流程编排。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种工作流建模方法、装置和计算机可读存储介质,解决了TOSCA声明式工作流流程固定,无法进行扩展以及TOSCA内置工作流语言无法调用外部服务等局限性的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供一种工作流建模方法,包括:
解析获取的服务模板,获得所述服务模板中定义的各个节点;
基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系;
根据所述有向图生成高层工作流模板,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程;
根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系。
可选地,所述基于所述各个节点,生成有向图,包括:
遍历所述各个节点,获得所述服务模板中各个节点之间的关系;
根据所述服务模板中各个节点之间的关系,生成所述有向图。
可选地,所述根据所述有向图生成高层工作流模板,包括:
根据所述各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一节点为所述工作执行顺序中开始的节点,所述第一工作流节点用于指示所述第一节点定义的操作;
当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板,其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
可选地,在所述根据所述有向图生成高层工作流模板之后,所述方法还包括:
获取业务需求,根据所述业务需求调整所述高层工作流模板,获得调整后的高层工作流模板。
可选地,所述根据所述业务需求调整所述高层工作流模板,包括:
根据所述业务需求调整所述高层工作流模板中各个节点的执行顺序。
可选地,所述根据所述业务需求调整所述高层工作流模板,包括:
根据所述业务需求在所述高层工作流模板中增加至少一个工作流节点。
可选地,所述根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系,包括:
将所述高层工作流模板或者所述调整后的高层工作流模板转换为预设工作流执行脚本文件,建立由所述服务模板查找到所述预设工作流执行脚本文件的路径关联关系。
本发明实施例还提供一种工作流建模装置,包括:
解析单元,用于解析获取的服务模板,获得所述服务模板中定义的各个节点;
生成单元,用于基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系;还用于根据所述有向图生成高层工作流模板,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程;还用于根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系。
可选地,所述生成单元,具体用于:
根据所述各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一节点为所述工作执行顺序中开始的节点,所述第一工作流节点用于指示所述第一节点定义的操作;
当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板,其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
可选地,所述装置还包括,调整单元,用于根据业务需求调整所述高层工作流模板中各个节点的执行顺序。
可选地,所述装置还包括,调整单元,用于根据业务需求在所述高层工作流模板中增加至少一个工作流节点。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一项所述的工作流建模方法的步骤。
本发明实施例提供了一种工作流建模方法、装置和计算机可读存储介质,解析获取的服务模板,获得所述服务模板中定义的各个节点;基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系;根据所述有向图生成高层工作流模板,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程;根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系。本发明实施例提供的工作流建模方法、装置和计算机可读存储介质,根据服务模板中各个节点的拓扑关系自动生成一个抽象的高层工作流模板,然后根据高层工作流模板生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,最终完成网络服务生命周期管理工作流建模,在兼顾了声明式工作流便利性的同时引入了命令式工作流的灵活性,可以有效地支持NFV场景下的网络服务生命周期管理流程的建模,解决了TOSCA声明式工作流流程固定,无法进行扩展以及TOSCA内置工作流语言无法调用外部服务等局限性的问题。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例提供的工作流建模方法流程示意图一;
图2为本发明实施例提供的博客应用程序TOSCA服务模板的核心内容和各个节点之间的依赖关系示例图;
图3为本发明实施例提供的工作流建模方法流程示意图二;
图4为本发明实施例提供的根据博客应用程序TOSCA服务模板生成的有向图;
图5为本发明实施例提供的根据博客应用程序TOSCA服务模板生成的高层工作流模板示意图;
图6为本发明实施例提供的TOSCA服务模板和生成的工作流脚本文件关联示意图;
图7为本发明实施例提供的工作流建模方法流程示意图三;
图8为本发明实施例提供的调整了节点执行顺序后的博客应用部署高层工作流模板示意图;
图9为本发明实施例提供的工作流建模方法流程示意图四;
图10为本发明实施例提供的增加了自定义节点后的博客应用部署高层工作流模板示意图;
图11为本发明实施例提供的工作流建模装置结构示意图一;
图12为本发明实施例提供的工作流建模装置结构示意图二;
图13为本发明实施例提供的工作流建模装置结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供一种工作流建模方法,如图1所示的流程示意图,该方法可以包括以下步骤:
步骤101、解析获取的服务模板,获得所述服务模板中定义的各个节点。
具体的,本发明实施例提供的工作流建模方法的执行主体可以为工作流建模装置,即工作流建模装置获取服务模板,并对服务模板进行解析,获得服务模板中定义的各个节点,也可以理解为,获得服务模板中定义的所有节点。
示例性的,获取的服务模板为作为输入的TOSCA服务模板,则解析作为输入的TOSCA服务模板,得到该TOSCA服务模板中定义的所有节点。
步骤102、基于所述各个节点,生成有向图。
其中,所述有向图用于表示所述服务模板中各个节点之间的关系。
具体的,工作流建模装置遍历获取的服务模板的所有节点,分析该服务模板中各个节点之间的关系。节点间的关系包括但不限于依赖关系(tosca.relationships.DependsOn),依赖关系包括但不限于:连接关系(tosca.relationships.ConnectsTo),宿主关系(tosca.relationships.HostOn)等。
其中,在服务模板中,关系有两个端点,分别为提供方和需求方,因此可以根据节点关系生成一条有方向的线段,关系的提供方为该线段指向的终点,关系的需求方为该边指向的起点。将所有关系生成的线段组合在一起,就生成了一个有向图,该有向图就表示了服务模板中所有节点之间的依赖关系。有向图的示例如图4所示。
步骤103、根据所述有向图生成高层工作流模板。
其中,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程。
具体的,根据该有向图生成一个生命周期管理的高层工作流模板,该高层工作流模板采用一个和具体工作流语言无关的高层抽象语言(信息模型)来表示工作流程。该信息模型中包含表示工作流中的动作,执行顺序,分支判断等的基本元素,但采用的是抽象的高层模型,和具体工作流语言无关。其中的每一个动作节点来自于TOSCA服务模板中节点定义的操作,例如,创建,启动,停止,删除等。由于该高层工作流模板定义的是和具体工作流语言无关的信息模型,因此可以根据需要转换为任何一种工作流语言。
可选地,在所述根据所述有向图生成高层工作流模板之后,所述方法还包括:
获取业务需求,根据所述业务需求调整所述高层工作流模板,获得调整后的高层工作流模板。
具体的,读取业务需求,根据业务需求调整高层工作流模板中各个节点的执行顺序,或者增加新的工作流节点。
步骤104、根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系。
具体的,根据该高层工作流模板的信息模型,生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,该脚本可以是业务流程模型和标记法(BPMN,BusinessProcess Model and Notation),业务流程执行语言(BPEL,Business Process ExecutionLanguage),OpenStack Mistral等任何工作流执行语言。其中,OpenStack为一个开源的云计算管理平台项目,Mistral为OpenStack提供的工作流服务组件。
进一步地,关联TOSCA服务模板和生成的工作流脚本文件,生成服务模板和脚本文件之间的关联关系。其目的是编排器在对服务模板描述的云服务进行生命周期管理时能够根据该关联关系找到对应的工作流脚本并执行。例如,部署该云服务时可以根据该关联关系找到该云服务模板对应的部署工作流。
本发明实施例提供的方法,根据TOSCA服务模板中各个节点的拓扑关系自动生成一个抽象的高层工作流模板,可以基于该工作流模板进行扩展,调整节点顺序或者加入自定义的动作节点,然后根据高层工作流模板生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,最终完成网络服务生命周期管理工作流建模,从而在兼顾了声明式工作流便利性的同时引入了命令式工作流的灵活性,可以有效地支持NFV场景下的网络服务生命周期管理流程的建模。
下面以一个TOSCA服务模板作为输入来举例说明本发明实施例提供的工作流建模方法的三种具体的实施方式。该服务模板描述了一个博客应用程序的组成和拓扑结构。该博客应用程序运行于一个web服务器中,并使用一个MySql数据库,MySql数据库和web服务器都运行在同一个计算节点上。TOSCA服务模板的核心内容和各个节点之间的依赖关系如图2所示。
本发明实施例提供的一种工作流建模方法,可以根据服务模板生成部署的工作流,自动生成的模板满足部署要求,不需要进行调整。如图3所示的工作流建模方法流程示意图,该方法可以包括以下步骤:
步骤201、解析获取的服务模板,获得所述服务模板中定义的各个节点。
具体的,工作流建模装置解析上述作为输入的TOSCA服务模板,得到该TOSCA服务模板中定义的所有节点。其中,TOSCA服务模板是一个格式化的文本文件,该文本文件中定义了该云应用包含的各个节点,具体可以包括:服务器节点,数据库***节点,数据库实例节点,应用服务器节点及博客应用节点。具体通过一个文本处理程序可以读入该格式化的文本文件,并将所有节点解析出来,保存到一个内存数据结构中。
步骤202、遍历各个节点,获得所述服务模板中各个节点之间的关系;根据所述服务模板中各个节点之间的关系,生成有向图。
具体的,工作流建模装置遍历TOSCA服务模板的所有节点,分析该TOSCA服务模板中各个节点之间的关系,生成一个有向图。该有向图的端点表示服务模板中的节点,节点之间的连线是有方向的,方向表示节点之间的依赖关系,箭头起点的节点依赖于箭头指向的节点。
在本实施例中,节点间的依赖关系包括:连接关系(ConnectsTo)和宿主关系(HostOn),生成有向图时,算法为依赖关系,连接关系的源节点依赖于连接关系的目的节点,宿主关系的源节点依赖于宿主关系的目的节点,生成的有向图,具体如图4所示。
步骤203、根据所述各个节点的执行顺序获取所述有向图中的一个节点,获取所述服务模板中该节点定义的操作。
具体的,根据各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,其中,所述第一节点为所述工作执行顺序中开始的节点。
具体的,按各个节点的执行顺序取出有向图的一个节点,即第一节点,从TOSCA服务模板中得到该节点定义的操作,例如创建,启动,停止,删除等操作。
步骤204、根据预设生命周期管理流程的类型在预设高层工作流模板中加入一个工作流节点,该工作流节点表示有向图节点的操作。
具体的,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一工作流节点用于指示所述第一节点定义的操作。
具体的,根据预设生命周期管理流程的类型,将该第一节点的相应操作加入到高层工作流模板中,即在预设高层工作流模板中加入指示该第一节点定义的操作的第一工作流节点。
这里,步骤204中生成高层工作流模板中的流程步骤和工作流对应的生命周期管理类型有关,例如,部署的工作流模板就需要调用节点的创建,启动,配置操作,删除的模板则需要调用节点的停止,销毁等操作。由于本实施例中创建的是一个部署工作流,需要将该节点对应的创建,启动,配置节点操作加入到高层工作流模板中。
步骤205、判断有向图中是否有更多的节点,如果有更多节点则执行步骤203,否则执行步骤206。
具体的,判断有向图中是否有除第一节点之外的节点,当所述有向图中包括除所述第一节点之外的节点时,则执行步骤203,否则执行步骤206。
具体的,当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板。
其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
步骤206、将所述高层工作流模板转换为预设工作流执行脚本文件,建立由所述服务模板查找到所述预设工作流执行脚本文件的路径关联关系。
具体的,上述步骤根据TOSCA服务模板生成了一个用于部署该服务模板的高层工作流模板,最终得到的高层工作流模板如图5所示。步骤206根据BPMN DSL的语法将该高层工作流模板转换为一个业务流程模型和标记法(BPMN,Business Process Model andNotation)工作流脚本文件。该工作流脚本文件可以被任何遵循BPMN规范的工作流引擎执行。
具体的,将创建好的BPMN工作流脚本文件关联到TOSCA服务模板。可以在TOSCA服务模板中将服务模板的deploy生命周期管理工作流指向一个外部文件plan/deploy.bpmn。deploy.bpmn即是前面的步骤中生成的BPMN工作流脚本文件,该文件保存在TOSCA服务模板的相对目录plan中,具体关联方式如图6所示。
本发明实施例提供的方法,根据TOSCA服务模板中各个节点的拓扑关系自动生成一个抽象的高层工作流模板,然后根据高层工作流模板生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,最终完成网络服务生命周期管理工作流建模,从而在兼顾了声明式工作流便利性的同时引入了命令式工作流的灵活性,可以有效地支持NFV场景下的网络服务生命周期管理流程的建模。
本发明实施例提供的一种工作流建模方法,可以根据该服务模板生成部署的工作流,自动生成的模板的工作流节点顺序需要进行调整。如图7所示的工作流建模方法流程示意图,该方法可以包括以下步骤:
步骤301、解析获取的服务模板,获得所述服务模板中定义的各个节点。
具体的,工作流建模装置解析上述作为输入的TOSCA服务模板,得到该TOSCA服务模板中定义的所有节点。其中,TOSCA服务模板是一个格式化的文本文件,该文本文件中定义了该云应用包含的各个节点,具体可以包括:服务器节点,数据库***节点,数据库实例节点,应用服务器节点及博客应用节点。具体通过一个文本处理程序可以读入该格式化的文本文件,并将所有节点解析出来,保存到一个内存数据结构中。
步骤302、遍历各个节点,获得所述服务模板中各个节点之间的关系;根据所述服务模板中各个节点之间的关系,生成有向图。
具体的,工作流建模装置遍历TOSCA服务模板中的所有节点,分析该TOSCA服务模板中各个节点之间的关系,生成一个有向图。该有向图的端点表示服务模板中的节点,节点之间的连线是有方向的,方向表示节点之间的依赖关系,箭头起点的节点依赖于箭头指向的节点。在本实施例中,节点间的依赖关系包括连接关系(ConnectsTo)和宿主关系(HostOn),生成有向图时,算法为依赖关系,连接关系的源节点依赖于连接关系的目的节点,宿主关系的源节点依赖于宿主关系的目的节点,生成的有向图具体如图4所示。
步骤303、根据各个节点的执行顺序获取所述有向图中的一个节点,获取服务模板中该节点定义的操作。
具体的,根据各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,其中,所述第一节点为所述工作执行顺序中开始的节点。
具体的,按各个节点的执行顺序取出有向图的一个节点,即第一节点,从TOSCA服务模板中得到该节点定义的操作,例如创建,启动,停止,删除等操作。
步骤304、根据预设生命周期管理流程的类型在预设高层工作流模板中加入一个工作流节点,该工作流节点表示有向图节点的操作。
具体的,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一工作流节点用于指示所述第一节点定义的操作。
具体的,根据预设生命周期管理流程的类型,将该第一节点的相应操作加入到高层工作流模板中,即在预设高层工作流模板中加入指示该第一节点定义的操作的第一工作流节点,由于本实施例中创建的是一个部署工作流,需要将该节点对应的创建,启动,配置节点操作加入到高层工作流模板中。
步骤305、判断有向图中是否有更多的节点,如果有更多节点则执行步骤303,否则执行步骤306。
具体的,判断有向图中是否有除所述第一节点之外的节点,当所述有向图中包括除所述第一节点之外的节点时,则执行步骤303,否则执行步骤306。
具体的,当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板。
其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
步骤306、获取业务需求,根据所述业务需求调整所述高层工作流模板中各个节点的执行顺序,获得调整后的高层工作流模板。
具体的,业务需求可以根据用户的实际业务需求获知,调整上述自动生成的高层工作流模板中的各个节点的执行顺序。为了避免操作***的全局资源锁(如apt和yum工具是要求全局锁,不支持并发),自动生成的缺省高层工作流模板中各个操作节点是串行执行的,但如果部署操作并不涉及全局资源锁,则可以并发执行,以加快执行效率。在本实施例中,假设各个节点的操作并不依赖操作***的全局资源,则可以调整数据库和web服务器的部署流程,改为串行执行,例如图8所示。
步骤307、将调整后的高层工作流模板转换为预设工作流执行脚本文件,建立由所述服务模板查找到所述预设工作流执行脚本文件的路径关联关系。
具体的,上述步骤根据TOSCA服务模板生成了一个用于部署该服务模板的高层工作流模板,最终得到的高层工作流模板如图8所示。本步骤根据BPELDSL的语法将该高层工作流模板转换为一个BPEL工作流脚本文件。该工作流脚本文件可以被任何遵循BPEL规范的工作流引擎执行。
进一步地,将创建好的BPEL工作流脚本文件关联到TOSCA服务模板。可以在TOSCA服务模板中将服务模板的deploy生命周期管理工作流指向一个外部文件plan/deploy.bpel。deploy.bpel即是前面的步骤中生成的BPEL工作流脚本文件,该文件保存在TOSCA服务模板的相对目录plan中。
本发明实施例提供的方法,根据TOSCA服务模板中各个节点的拓扑关系自动生成一个抽象的高层工作流模板,可以基于该工作流模板进行扩展,调整节点顺序,然后根据高层工作流模板生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,最终完成网络服务生命周期管理工作流建模,从而在兼顾了声明式工作流便利性的同时引入了命令式工作流的灵活性,可以有效地支持NFV场景下的网络服务生命周期管理流程的建模。
本发明实施例提供一种工作流建模方法,根据该服务模板生成部署的工作流,需要增加自定义的工作流节点。如图9所示的工作流建模方法流程示意图,该方法可以包括以下步骤:
步骤401、解析获取的服务模板,获得所述服务模板中定义的各个节点。
具体的,工作流建模装置解析上述作为输入的TOSCA服务模板,得到该TOSCA服务模板中定义的所有节点。其中,TOSCA服务模板是一个格式化的文本文件,该文本文件中定义了该云应用包含的各个节点,具体可以包括:服务器节点,数据库***节点,数据库实例节点,应用服务器节点及博客应用节点。具体通过一个文本处理程序可以读入该格式化的文本文件,并将所有节点解析出来,保存到一个内存数据结构中。
步骤402、遍历各个节点,获得所述服务模板中各个节点之间的关系;根据所述服务模板中各个节点之间的关系,生成有向图。
具体的,工作流建模装置遍历TOSCA服务模板的所有节点,分析TOSCA服务模板中各个节点之间的关系,生成一个有向图。有向图的端点表示服务模板中的节点,节点之间的连线是有方向的,方向表示节点之间的依赖关系,箭头起点的节点依赖于箭头指向的节点。
在本实施例中,节点间的关系包括:连接关系(ConnectsTo)和宿主关系(HostOn),生成有向图时,算法为依赖关系,连接关系的源节点依赖于连接关系的目的节点,宿主关系的源节点依赖于宿主关系的目的节点,生成的有向图如图4所示。
步骤403、根据各个节点的执行顺序获取所述有向图中的一个节点,获取服务模板中该节点定义的操作。
具体的,根据所述各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作。其中,所述第一节点为所述工作执行顺序中开始的节点。
具体的,按各个节点的执行顺序取出有向图的一个节点,即第一节点,从TOSCA服务模板中得到该节点定义的操作,如创建,启动,停止,删除等操作。
步骤404、根据预设生命周期管理流程的类型在预设高层工作流模板中加入一个工作流节点,该工作流节点表示有向图节点的操作。
具体的,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点。其中,所述第一工作流节点用于指示所述第一节点定义的操作。
具体的,根据预设生命周期管理流程的类型,将该节点的相应操作加入到高层工作流模板中,由于本实施例中创建的是一个部署工作流,需要将该节点对应的创建,启动,配置节点操作加入到高层工作流模板中。
步骤405、判断有向图中是否有更多的节点,如果有更多节点则执行步骤403,否则执行步骤406。
具体的,判断有向图中是否有除所述第一节点之外的节点,当所述有向图中包括除所述第一节点之外的节点时,则执行步骤403,否则执行步骤406。
具体的,当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板。
其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
步骤406、获取业务需求,根据所述业务需求在所述高层工作流模板中增加至少一个工作流节点,获得调整后的高层工作流模板。
示例性的,业务需求为在部署服务时要求从另一个博客网站上导入数据。由于TOSCA服务模板中不能表示这部分逻辑,因此需要增加自定义的工作流节点来进行处理,在前面步骤生成的高层工作流模板中增加导入数据的工作流节点,该新增工作流节点调用一个shell脚本来从另一个博客网站上导入数据到新创建的博客应用中,如图10所示。
步骤407、将调整后的高层工作流模板转换为预设工作流执行脚本文件,建立由所述服务模板查找到所述预设工作流执行脚本文件的路径关联关系。
具体的,上述步骤根据TOSCA服务模板生成了一个用于部署该服务模板的高层工作流模板,最终得到的高层工作流模板如图10所示。本步骤根据OpenStack Mistral工作流的语法将该高层工作流模板转换为一个yaml工作流脚本文件(Mistral工作流定义为yaml格式)。该工作流脚本文件可以被任何遵循OpenStack Mistral工作流引擎执行。
进一步地,将创建好的Mistral工作流脚本文件关联到TOSCA服务模板。可以在TOSCA服务模板中将服务模板的deploy生命周期管理工作流指向一个外部文件plan/deploy.yaml。deploy.yaml即是前面的步骤中生成的Mistral工作流脚本文件,该文件保存在TOSCA服务模板的相对目录plan中。
本发明实施例提供的方法,根据TOSCA服务模板中各个节点的拓扑关系自动生成一个抽象的高层工作流模板,可以基于该工作流模板进行扩展,加入自定义的动作节点,然后根据高层工作流模板生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,最终完成网络服务生命周期管理工作流建模,从而在兼顾了声明式工作流便利性的同时引入了命令式工作流的灵活性,可以有效地支持NFV场景下的网络服务生命周期管理流程的建模。
本发明实施例还提供一种工作流建模装置50,如图11所示,包括:
解析单元501,用于解析获取的服务模板,获得所述服务模板中定义的各个节点;
生成单元502,用于基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系;还用于根据所述有向图生成高层工作流模板,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程;还用于根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系。
可选地,所述生成单元502,具体用于:
遍历所述各个节点,获得所述服务模板中各个节点之间的关系;
根据所述服务模板中各个节点之间的关系,生成所述有向图。
可选地,所述生成单元502,具体用于:
根据所述各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一节点为所述工作执行顺序中开始的节点,所述第一工作流节点用于指示所述第一节点定义的操作;
当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板,其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
可选地,如图12所示,所述装置还包括,调整单元503,用于获取业务需求,根据所述业务需求调整所述高层工作流模板,获得调整后的高层工作流模板。
可选地,如图12所示,所述装置还包括,调整单元503,用于根据业务需求调整所述高层工作流模板中各个节点的执行顺序。
可选地,如图12所示,所述装置还包括,调整单元503,用于根据业务需求在所述高层工作流模板中增加至少一个工作流节点。
可选地,所述生成单元502,具体用于:
将所述高层工作流模板或者所述调整后的高层工作流模板转换为预设工作流执行脚本文件,建立由所述服务模板查找到所述预设工作流执行脚本文件的路径关联关系。
具体的,本发明实施例提供的工作流建模装置的理解可以参考上述工作流建模方法实施例的说明,本发明实施例在此不再赘述。
本发明实施例提供的工作流建模装置,根据TOSCA服务模板中各个节点的拓扑关系自动生成一个抽象的高层工作流模板,可以基于该工作流模板进行扩展,调整节点顺序或者加入自定义的动作节点,然后根据高层工作流模板生成一个采用具体的工作流执行语言表述的工作流执行脚本文件,最终完成网络服务生命周期管理工作流建模,从而在兼顾了声明式工作流便利性的同时引入了命令式工作流的灵活性,可以有效地支持NFV场景下的网络服务生命周期管理流程的建模。
本发明实施例还提供一种工作流建模装置60,如图13所示,所述工作流建模装置60包括处理器601和存储器602;其中,
所述存储器602,用于存储能够在所述处理器上运行的计算机程序;
所述处理器601,用于运行所述计算机程序时执行如上所述工作流建模方法的步骤。
可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力,更具体地,内置有工作流建模算法,即具有工作流建模能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,工作流建模装置可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
在示例性实施例中,本发明实施例还提供了一种存储介质,具体可以为计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由工作流建模装置的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一项所述的工作流建模方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1.一种工作流建模方法,其特征在于,包括:
解析获取的服务模板,获得所述服务模板中定义的各个节点,其中,所述服务模板描述工作流程涉及的节点与节点之间的关系;
基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系,所述关系为拓扑关系;
根据所述有向图生成高层工作流模板,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程,所述高层工作流模板为与具体工作流语言无关的高层抽象语言;
其中,根据所述有向图生成高层工作流模板,包括:根据所述各个节点的执行顺序获取所述有向图中的一个节点,获取所述服务模板中该节点定义的操作;根据预设生命周期管理流程的类型在预设高层工作流模板中加入一个工作流节点,该工作流节点表示有向图节点的操作;
根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系,所述工作流执行脚本文件为工作流执行语言。
2.根据权利要求1所述的方法,其特征在于,所述基于所述各个节点,生成有向图,包括:
遍历所述各个节点,获得所述服务模板中各个节点之间的关系;
根据所述服务模板中各个节点之间的关系,生成所述有向图。
3.根据权利要求1所述的方法,其特征在于,所述根据所述有向图生成高层工作流模板,包括:
根据所述各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一节点为所述执行顺序中开始的节点,所述第一工作流节点用于指示所述第一节点定义的操作;
当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板,其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述有向图生成高层工作流模板之后,所述方法还包括:
获取业务需求,根据所述业务需求调整所述高层工作流模板,获得调整后的高层工作流模板。
5.根据权利要求4所述的方法,其特征在于,所述根据所述业务需求调整所述高层工作流模板,包括:
根据所述业务需求调整所述高层工作流模板中各个节点的执行顺序。
6.根据权利要求4所述的方法,其特征在于,所述根据所述业务需求调整所述高层工作流模板,包括:
根据所述业务需求在所述高层工作流模板中增加至少一个工作流节点。
7.根据权利要求4至6任一项所述的方法,其特征在于,所述根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系,包括:
将所述高层工作流模板或者所述调整后的高层工作流模板转换为预设工作流执行脚本文件,建立由所述服务模板查找到所述预设工作流执行脚本文件的路径关联关系。
8.一种工作流建模装置,其特征在于,包括:
解析单元,用于解析获取的服务模板,获得所述服务模板中定义的各个节点,其中,所述服务模板描述工作流程涉及的节点与节点之间的关系;
生成单元,用于基于所述各个节点,生成有向图,所述有向图用于表示所述服务模板中各个节点之间的关系,所述关系为拓扑关系;还用于根据所述有向图生成高层工作流模板,具体包括:根据所述各个节点的执行顺序获取所述有向图中的一个节点,获取所述服务模板中该节点定义的操作;根据预设生命周期管理流程的类型在预设高层工作流模板中加入一个工作流节点,该工作流节点表示有向图节点的操作,所述高层工作流模板中包括:所述服务模板中各个节点的工作流程,所述高层工作流模板为与具体工作流语言无关的高层抽象语言;还用于根据所述高层工作流模板生成工作流执行脚本文件,建立所述工作流执行脚本文件与所述服务模板的关联关系,所述工作流执行脚本文件为工作流执行语言。
9.根据权利要求8所述的装置,其特征在于,所述生成单元,具体用于:
根据所述各个节点的执行顺序获取所述有向图中的第一节点,获取所述服务模板中第一节点定义的操作,根据预设生命周期管理流程的类型在预设高层工作流模板中加入第一工作流节点,其中,所述第一节点为所述执行顺序中开始的节点,所述第一工作流节点用于指示所述第一节点定义的操作;
当所述有向图中包括除所述第一节点之外的节点时,重复按照所述各个节点的执行顺序获取所述有向图中的第二节点,获取所述服务模板中所述第二节点定义的操作,根据所述预设生命周期管理流程的类型在预设高层工作流模板中加入第二工作流节点,直到将所述有向图中每个节点加入到所述预设高层工作流模板中,加入所述有向图中每个节点的预设高层工作流模板为所述高层工作流模板,其中,所述第二节点为所述第一节点之后执行的节点,所述第二工作流节点用于指示所述第二节点定义的操作。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括,调整单元,用于根据业务需求调整所述高层工作流模板中各个节点的执行顺序。
11.根据权利要求8或9所述的装置,其特征在于,所述装置还包括,调整单元,用于根据业务需求在所述高层工作流模板中增加至少一个工作流节点。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的工作流建模方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810616144.8A CN110609675B (zh) | 2018-06-14 | 2018-06-14 | 一种工作流建模方法、装置和计算机可读存储介质 |
PCT/CN2019/092336 WO2019238136A1 (zh) | 2018-06-14 | 2019-06-21 | 一种工作流建模方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810616144.8A CN110609675B (zh) | 2018-06-14 | 2018-06-14 | 一种工作流建模方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110609675A CN110609675A (zh) | 2019-12-24 |
CN110609675B true CN110609675B (zh) | 2023-08-08 |
Family
ID=68842751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810616144.8A Active CN110609675B (zh) | 2018-06-14 | 2018-06-14 | 一种工作流建模方法、装置和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110609675B (zh) |
WO (1) | WO2019238136A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162737B (zh) * | 2020-10-13 | 2024-06-28 | 深圳晶泰科技有限公司 | 一种有向无环图式自动任务流的通用描述语言数据*** |
CN112181854B (zh) * | 2020-10-30 | 2023-12-22 | 重庆农村商业银行股份有限公司 | 一种生成流程自动化脚本的方法、装置、设备及存储介质 |
CN114489572B (zh) * | 2020-11-13 | 2023-12-29 | 华为技术有限公司 | 业务需求调整方法和相关设备 |
CN112685154A (zh) * | 2020-12-25 | 2021-04-20 | 北京有竹居网络技术有限公司 | 任务流引擎的数据处理方法、任务流引擎、设备和介质 |
CN112579325B (zh) * | 2020-12-29 | 2024-06-21 | 上海众源网络有限公司 | 一种业务对象的处理方法、装置、电子设备和存储介质 |
CN114691187A (zh) * | 2020-12-29 | 2022-07-01 | 北京嘀嘀无限科技发展有限公司 | 节点注册方法、装置、计算机设备和存储介质 |
CN112631696B (zh) * | 2020-12-29 | 2021-10-22 | 智慧神州(北京)科技有限公司 | 服务的编排方法、编排装置、处理器与服务的编排*** |
CN113031929B (zh) * | 2021-04-29 | 2024-04-09 | 中国工商银行股份有限公司 | 一种业务的实现方法及装置 |
CN113596037B (zh) * | 2021-07-31 | 2023-04-14 | 广州广电研究院有限公司 | 一种基于网络全流量中事件关系有向图的apt攻击检测方法 |
US11934817B2 (en) * | 2021-10-25 | 2024-03-19 | Jpmorgan Chase Bank, N.A. | Systems and methods for deploying federated infrastructure as code |
CN115455135B (zh) * | 2022-06-30 | 2023-10-31 | 北京九章云极科技有限公司 | 可视化自动建模方法、装置、电子设备和存储介质 |
CN117234882B (zh) * | 2023-09-28 | 2024-04-16 | 哈尔滨工业大学(威海) | 一种在线应用云资源供应软件定义模型构建方法及终端机 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9461876B2 (en) * | 2012-08-29 | 2016-10-04 | Loci | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
CN103761111A (zh) * | 2014-02-19 | 2014-04-30 | 中国科学院软件研究所 | 一种基于bpel语言构建数据密集型工作流引擎的方法及其*** |
CN105243521A (zh) * | 2015-11-20 | 2016-01-13 | 华润电力投资有限公司河南分公司 | 一种工作流管理方法及*** |
CN106961453A (zh) * | 2016-01-08 | 2017-07-18 | 中兴通讯股份有限公司 | 基于tosca的服务调用方法及装置 |
CN107766042A (zh) * | 2016-08-23 | 2018-03-06 | 南京中兴软件有限责任公司 | 一种基于csar的模型文件的可视化设计方法及装置 |
-
2018
- 2018-06-14 CN CN201810616144.8A patent/CN110609675B/zh active Active
-
2019
- 2019-06-21 WO PCT/CN2019/092336 patent/WO2019238136A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN110609675A (zh) | 2019-12-24 |
WO2019238136A1 (zh) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110609675B (zh) | 一种工作流建模方法、装置和计算机可读存储介质 | |
Artac et al. | DevOps: introducing infrastructure-as-code | |
CN109597661B (zh) | 一种业务功能配置方法及装置 | |
CN108845940B (zh) | 一种企业级信息***自动化功能测试方法和*** | |
US11113050B2 (en) | Application architecture generation | |
US10101972B1 (en) | Data modelling and flow engine for building automated flows within a cloud based developmental platform | |
CN110096424B (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
CN104866298A (zh) | 基于流程图的流程化业务实现方法和装置 | |
CN113805882A (zh) | 应用程序开发的方法、装置、电子设备及存储介质 | |
EP3447635A1 (en) | Application architecture generation | |
CN112948110B (zh) | 云应用的拓扑与编排***、方法、存储介质及电子设备 | |
US9116777B1 (en) | In-flight process instance migration between business process execution language (BPEL) suites | |
Rivero et al. | MockAPI: an agile approach supporting API-first web application development | |
CN103473034B (zh) | 一种动态发布Web服务的方法和装置 | |
US20170249126A1 (en) | Easy storm topology design and execution | |
Hildebrandt et al. | Declarative choreographies and liveness | |
US8966434B2 (en) | Repository based development using project development tools in enterprise management environment | |
CN114995808A (zh) | 一种快速搭建微服务工程的方法及装置 | |
KR20150133902A (ko) | 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법 | |
CN116569141A (zh) | 工作流修补 | |
Lascu et al. | Automatic deployment of component-based applications | |
US20140310070A1 (en) | Coordinated business rules management and mixed integer programming | |
Prehofer et al. | From IoT mashups to model-based IoT | |
CN116089739A (zh) | 消息推送方法、装置、电子设备和存储介质 | |
US9753722B2 (en) | Automatically expiring out source code comments |
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 |