CN111192100A - 一种工作流调度方法、装置和系统 - Google Patents
一种工作流调度方法、装置和系统 Download PDFInfo
- Publication number
- CN111192100A CN111192100A CN201811350444.2A CN201811350444A CN111192100A CN 111192100 A CN111192100 A CN 111192100A CN 201811350444 A CN201811350444 A CN 201811350444A CN 111192100 A CN111192100 A CN 111192100A
- Authority
- CN
- China
- Prior art keywords
- tenant
- information
- context
- basic
- instance
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0645—Rental transactions; Leasing transactions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种工作流调度方法、装置和系统,所述工作流调度方法包括:接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;根据租户的流程上下文构造具有租户特性的流程实例。本发明实施例基于业务流程请求获取流程上下文,基于流程上下文构造具有租户特性的流程实例,实现了支持多租户特性,能够识别租户流程信息,从而提高了代码利用率,并且开发商开发工作流时不需要考虑多租户的特征,降低了开发商应用开发的难度。
Description
技术领域
本发明实施例涉及但不限于云计算技术,尤指一种工作流调度方法、装置和系统。
背景技术
随着互联网的快速发展,软件产品的交付模式、商业模式向服务化、网络化转变,软件即服务(SaaS,Software as a Service)模式日益成为发展的热点,被认为是典型的云计算交付模式之一,已成为软件产业发展的新趋势,具有广阔的应用前景。
SaaS服务依托于软件和互联网,其最大的特点就是多租户,即SaaS模式下,服务提供商将应用软件统一部署在自己的服务器上,通过网络为企业客户提供服务,并按照客户订购服务的多少和时间的长短收取费用。随着租户规模的扩大、服务需求的多样性以及服务请求高并发性的需求越来越强烈,技术上面临巨大挑战。
而传统的工作流执行引擎放到SaaS模式下面临以下问题:
1)传统的流程执行引擎中缺乏多租户的概念。对于属于不同租户的流程实例在执行过程中不能加以区分。若按传统的开发模式,需要将对多租户情息识别的工作添加到应用开发的过程中,这将会增加开发商应用开发的难度。
2)传统模式下的流程并不能支持定制操作,因此在传统模式下为了满足不同租户对同一个流程的定制,开发商需要根据不同租户的定制需求为每个租户开发一个流程。当租户的定制需求发生变化时,开发商又需要根据租户的定制变化进行流程的再次开发。这种方式代码利用率较低。
3)在传统流程应用中,不同用户使用工作流引擎时都需要部署,多次部署工作流引擎,会增加系统的负担,从而延长了响应时间,降低了效率。
发明内容
本发明实施例提供了一种工作流调度方法、装置和系统,能够支持多租户特性,从而提高代码利用率,降低开发商应用开发的难度。
本发明实施例提供了一种工作流调度方法,包括:
接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;
根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;
根据租户的流程上下文构造具有租户特性的流程实例。
本发明实施例提供了一种工作流调度装置,包括:
控制器,用于接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;
工作流模型构造器,用于根据租户的流程上下文构造具有租户特性的流程实例。
本发明实施例提供了一种工作流调度装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任一种工作流调度方法。
在本发明实施例中,所述工作流调度装置为工作流引擎。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种工作流调度方法的步骤。
本发明实施例提供了一种工作流调度系统,包括:
工作流调度装置,用于接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;根据租户的流程上下文构造具有租户特性的流程实例;
执行装置,用于执行流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
本发明实施例包括:接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;根据租户的流程上下文构造具有租户特性的流程实例。本发明实施例基于业务流程请求获取流程上下文,基于流程上下文构造具有租户特性的流程实例,实现了支持多租户特性,能够识别租户流程信息,从而提高了代码利用率,并且开发商开发工作流时不需要考虑多租户的特征,降低了开发商应用开发的难度。
在本发明另一个实施例中,将流程实例分配到对应的流程虚拟机中;或创建流程虚拟机,将流程实例分配到创建的流程虚拟机中;通过流程虚拟机执行流程实例。本发明实施例通过虚拟机来执行流程实例,实现了工作流调度过程中使用的底层服务资源的共享。
在本发明另一个实施例中,将流程实例分配到对应的流程虚拟机中包括:根据所述租户信息将流程实例分配到所述租户对应的流程虚拟机中;所述创建流程虚拟机包括:根据所述租户信息和当前系统状态为所述租户创建流程虚拟机。在本发明实施例中,相同租户的多个流程实例发送到同一个流程虚拟机中,不同租户的流程实例发送到不同的流程虚拟机中,实现了不同租户的工作流的隔离,不同租户的工作流调度过程中使用的底层服务资源共享。
本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本发明实施例的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。
图1为本发明一个实施例提出的工作流调度方法的流程图;
图2为本发明实施例流程上下文存储结构示意图;
图3为本发明另一个实施例提出的工作流调度装置的结构组成示意图;
图4为本发明另一个实施例提出的工作流调度系统的结构组成示意图;
图5为本发明实施例工作流调度系统示意图。
具体实施方式
下文中将结合附图对本发明实施例进行详细说明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
参见图1,本发明一个实施例提出了一种工作流调度方法,包括:
步骤100、接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息。
在本发明实施例中,如图2所示,租户基本信息用于唯一标识一个租户,任何唯一标识一个租户的信息均可以,例如租户标识(ID,Identifier)、租户名称、科室、院系、身份证号码、手机号码、邮箱等。
步骤101、根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息。
在本发明实施例中,如图2所示,租户信息中除租户基本信息之外的其他信息包括:租户的服务等级协议(SLA,Service Level Agreement)信息、租户的服务质量(QoS,Quality of Service)信息。
流程信息包括:流程基本信息、流程定制信息和流程模型。
其中,租户的SLA信息包括租户的SLA,租户的QoS信息包括租户的QoS。
其中,流程基本信息用于唯一标识一个流程实例,任何唯一标识一个流程实例的信息均可以,例如流程ID,流程模型包括:
流程认为执行时间信息、流程执行状态信息、流程虚拟机环境信息。
在本发明实施例中,根据租户基本信息获取租户的流程上下文包括:
在缓存区中获取租户基本信息与业务流程请求中的租户基本信息相同的流程上下文;
当在缓存区中获取不到租户基本信息与业务流程请求中的租户基本信息相同的流程上下文时,在数据库中获取租户基本信息与业务流程请求中的租户基本信息相同的流程上下文;该方法还包括:将获得的流程上下文保存到缓存区中。
在本发明另一个实施例中,业务流程请求还包括以下至少之一:
租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
当在缓存区中获取到租户基本信息与业务流程请求中的租户基本信息相同的流程上下文时,该方法还包括:
根据业务流程请求中的以下至少之一更新在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文:
租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
例如,当业务流程请求中还包括租户的SLA信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的租户的SLA信息更新为业务流程请求中的租户的SLA信息;
又如,当业务流程请求中还包括租户的QoS信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的租户的QoS信息更新为业务流程请求中的租户的QoS信息;
又如,当业务流程请求中还包括流程基本信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程基本信息更新为业务流程请求中的流程基本信息;
又如,当业务流程请求中还包括流程定制信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程定制信息更新为业务流程请求中的流程定制信息;
又如,当业务流程请求中还包括流程模型时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程模型更新为业务流程请求中的流程模型。
当在缓存区中获取不到所述租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文,而在数据库中获取到租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文时,该方法还包括:
根据业务流程请求中的以下至少之一更新在数据库中获得的流程上下文:租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息;
将更新后的流程上下文保存到缓存区中。
例如,当业务流程请求中还包括租户的SLA信息时,将在数据库中获得的流程上下文中的租户的SLA信息更新为业务流程请求中的租户的SLA信息;
又如,当业务流程请求中还包括租户的QoS信息时,将在数据库中获得的流程上下文中的租户的QoS信息更新为业务流程请求中的租户的QoS信息;
又如,当业务流程请求中还包括流程基本信息时,将在数据库中获得的流程上下文中的流程基本信息更新为业务流程请求中的流程基本信息;
又如,当业务流程请求中还包括流程定制信息时,将在数据库中获得的流程上下文中的流程定制信息更新为业务流程请求中的流程定制信息;
又如,当业务流程请求中还包括流程模型时,将在数据库中获得的流程上下文中的流程模型更新为业务流程请求中的流程模型。
步骤102、根据租户的流程上下文构造具有租户特性的流程实例。
在本发明实施例中,根据租户基本信息、流程模型、流程定制信息构造具有租户特性的流程实例。
在本发明另一个实施例中,该方法还包括:
步骤103、执行流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
在本发明另一个实施例中,该方法还包括:
将流程实例分配到对应的流程虚拟机中;或创建流程虚拟机,将流程实例分配到创建的流程虚拟机中;
执行流程实例包括:通过流程虚拟机执行流程实例。
在本发明实施例中,将流程实例分配到对应的流程虚拟机中包括:
根据租户信息将流程实例分配到租户对应的流程虚拟机中;
创建流程虚拟机包括:根据租户信息和当前系统状态为租户创建流程虚拟机。
其中,根据租户的SLA信息和当前系统状态为租户创建流程虚拟机。
在本发明实施例中,相同租户的多个流程实例发送到同一个流程虚拟机中,不同租户的流程实例发送到不同的流程虚拟机中,实现了不同租户的工作流的隔离,不同租户的工作流调度过程中使用的底层服务资源共享。
在本发明实施例中,通过的流程虚拟机执行流程实例包括:
流程虚拟机接收到流程实例,将流程实例放入流程虚拟机的流程实例队列中;
通过流程虚拟机的流程实例调度器调度流程实例队列中的流程实例执行。
其中,流程实例调度器根据流程上下文中的流程信息和流程虚拟机中的资源状态调度通过的流程虚拟机执行流程实例。
在本发明另一个实施例中,该方法还包括:
所述租户的流程实例执行完成后,对租户服务体验质量进行估算。
在本发明实施例中,对租户服务体验质量进行估算包括对流程执行时间和性能进行估算。
本发明实施例基于业务流程请求获取流程上下文,基于流程上下文构造具有租户特性的流程实例,实现了支持多租户特性,能够识别租户流程信息,从而提高了代码利用率,并且开发商开发工作流时不需要考虑多租户的特征,降低了开发商应用开发的难度。
参见图3,本发明另一个实施例提出了一种工作流调度装置,包括:
控制器301,用于接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;
工作流模型构造器302,用于根据租户的流程上下文构造具有租户特性的流程实例。
在本发明另一个实施例中,还包括:
流程实例执行模块303,用于执行流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
在本发明实施例中,如图2所示,租户基本信息用于唯一标识一个租户,任何唯一标识一个租户的信息均可以,例如租户标识(ID,Identifier)、租户名称、科室、院系、身份证号码、手机号码、邮箱等。
在本发明实施例中,如图2所示,租户信息中除租户基本信息之外的其他信息包括:租户的服务等级协议(SLA,Service Level Agreement)信息、租户的服务质量(QoS,Quality of Service)信息。
流程信息包括:流程基本信息、流程定制信息和流程模型。
其中,租户的SLA信息包括租户的SLA,租户的QoS信息包括租户的QoS。
其中,流程基本信息用于唯一标识一个流程实例,任何唯一标识一个流程实例的信息均可以,例如流程ID,流程模型包括:
流程认为执行时间信息、流程执行状态信息、流程虚拟机环境信息。
在本发明实施例中,控制器301具体用于采用以下方式实现根据租户基本信息获取租户的流程上下文:
在缓存区中获取租户基本信息与业务流程请求中的租户基本信息相同的流程上下文;
当在缓存区中获取不到租户基本信息与业务流程请求中的租户基本信息相同的流程上下文时,在数据库中获取租户基本信息与业务流程请求中的租户基本信息相同的流程上下文;该方法还包括:将获得的流程上下文保存到缓存区中。
在本发明另一个实施例中,业务流程请求还包括以下至少之一:
租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
当在缓存区中获取到租户基本信息与业务流程请求中的租户基本信息相同的流程上下文时,控制器301还用于:
根据业务流程请求中的以下至少之一更新在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文:
租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
例如,当业务流程请求中还包括租户的SLA信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的租户的SLA信息更新为业务流程请求中的租户的SLA信息;
又如,当业务流程请求中还包括租户的QoS信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的租户的QoS信息更新为业务流程请求中的租户的QoS信息;
又如,当业务流程请求中还包括流程基本信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程基本信息更新为业务流程请求中的流程基本信息;
又如,当业务流程请求中还包括流程定制信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程定制信息更新为业务流程请求中的流程定制信息;
又如,当业务流程请求中还包括流程模型时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程模型更新为业务流程请求中的流程模型。
当在缓存区中获取不到所述租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文,而在数据库中获取到租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文时,控制器301还用于:
根据业务流程请求中的以下至少之一更新在数据库中获得的流程上下文:租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息;
将更新后的流程上下文保存到缓存区中。
例如,当业务流程请求中还包括租户的SLA信息时,将在数据库中获得的流程上下文中的租户的SLA信息更新为业务流程请求中的租户的SLA信息;
又如,当业务流程请求中还包括租户的QoS信息时,将在数据库中获得的流程上下文中的租户的QoS信息更新为业务流程请求中的租户的QoS信息;
又如,当业务流程请求中还包括流程基本信息时,将在数据库中获得的流程上下文中的流程基本信息更新为业务流程请求中的流程基本信息;
又如,当业务流程请求中还包括流程定制信息时,将在数据库中获得的流程上下文中的流程定制信息更新为业务流程请求中的流程定制信息;
又如,当业务流程请求中还包括流程模型时,将在数据库中获得的流程上下文中的流程模型更新为业务流程请求中的流程模型。
在本发明实施例中,工作流模型构造器302具体用于:根据租户基本信息、流程模型、流程定制信息构造具有租户特性的流程实例。
在本发明实施例中,工作流模型构造器302还用于:
将流程实例分配到对应的流程虚拟机中;或创建流程虚拟机,将流程实例分配到创建的流程虚拟机中;
所述流程实例执行模块303为流程虚拟机。
在本发明实施例中,工作流模型构造器302具体用于采用以下方式实现将流程实例分配到对应的流程虚拟机中:
根据租户信息将流程实例分配到租户对应的流程虚拟机中;
工作流模型构造器302具体用于采用以下方式实现创建流程虚拟机:根据租户信息和当前系统状态为租户创建流程虚拟机。
其中,工作流模型构造器302根据租户的SLA信息和当前系统状态为租户创建流程虚拟机。
在本发明实施例中,相同租户的多个流程实例发送到同一个流程虚拟机中,不同租户的流程实例发送到不同的流程虚拟机中,实现了不同租户的工作流的隔离,不同租户的工作流调度过程中使用的底层服务资源共享。
在本发明实施例中,流程虚拟机具体用于采用以下方式实现执行流程实例:
接收到流程实例,将流程实例放入流程实例队列中;
通过流程实例调度器调度流程实例队列中的流程实例执行。
其中,流程实例调度器根据流程上下文中的流程信息和流程虚拟机中的资源状态调度通过的流程虚拟机执行流程实例。
在本发明另一个实施例中,还包括:服务体验质量估算模块304,用于所述租户的流程实例执行完成后,对租户服务体验质量进行估算。
在本发明实施例中,对租户服务体验质量进行估算包括对流程执行时间和性能进行估算。
本发明实施例基于业务流程请求获取流程上下文,基于流程上下文构造具有租户特性的流程实例,实现了支持多租户特性,能够识别租户流程信息,从而提高了代码利用率,并且开发商开发工作流时不需要考虑多租户的特征,降低了开发商应用开发的难度。
本发明另一个实施例提出了一种工作流调度装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任一种工作流调度方法。
在本发明另一个实施例中,所述工作流调度装置为工作流引擎。
本发明另一个实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种工作流调度方法的步骤。
参见图4和图5,本发明另一个实施例提出了一种工作流调度系统,包括:
工作流调度装置401,用于接收到租户的业务流程请求;其中,业务流程请求包括租户信息中的租户基本信息;根据租户基本信息获取租户的流程上下文;其中,流程上下文包括租户信息和流程信息;根据租户的流程上下文构造具有租户特性的流程实例;
执行装置402,用于执行流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
在本发明实施例中,如图2所示,租户基本信息用于唯一标识一个租户,任何唯一标识一个租户的信息均可以,例如租户标识(ID,Identifier)、租户名称、科室、院系、身份证号码、手机号码、邮箱等。
在本发明实施例中,如图2所示,租户信息中除租户基本信息之外的其他信息包括:租户的服务等级协议(SLA,Service Level Agreement)信息、租户的服务质量(QoS,Quality of Service)信息。
流程信息包括:流程基本信息、流程定制信息和流程模型。
其中,租户的SLA信息包括租户的SLA,租户的QoS信息包括租户的QoS。
其中,流程基本信息用于唯一标识一个流程实例,任何唯一标识一个流程实例的信息均可以,例如流程ID,流程模型包括:
流程认为执行时间信息、流程执行状态信息、流程虚拟机环境信息。
在本发明实施例中,工作流调度装置401具体用于采用以下方式实现根据租户基本信息获取租户的流程上下文:
在缓存区中获取租户基本信息与业务流程请求中的租户基本信息相同的流程上下文;
当在缓存区中获取不到租户基本信息与业务流程请求中的租户基本信息相同的流程上下文时,在数据库中获取租户基本信息与业务流程请求中的租户基本信息相同的流程上下文;该方法还包括:将获得的流程上下文保存到缓存区中。
在本发明另一个实施例中,业务流程请求还包括以下至少之一:
租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
当在缓存区中获取到租户基本信息与业务流程请求中的租户基本信息相同的流程上下文时,工作流调度装401还用于:
根据业务流程请求中的以下至少之一更新在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文:
租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
例如,当业务流程请求中还包括租户的SLA信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的租户的SLA信息更新为业务流程请求中的租户的SLA信息;
又如,当业务流程请求中还包括租户的QoS信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的租户的QoS信息更新为业务流程请求中的租户的QoS信息;
又如,当业务流程请求中还包括流程基本信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程基本信息更新为业务流程请求中的流程基本信息;
又如,当业务流程请求中还包括流程定制信息时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程定制信息更新为业务流程请求中的流程定制信息;
又如,当业务流程请求中还包括流程模型时,将在缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文中的流程模型更新为业务流程请求中的流程模型。
当在缓存区中获取不到所述租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文,而在数据库中获取到租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文时,工作流调度装置401还用于:
根据业务流程请求中的以下至少之一更新在数据库中获得的流程上下文:租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息;
将更新后的流程上下文保存到缓存区中。
例如,当业务流程请求中还包括租户的SLA信息时,将在数据库中获得的流程上下文中的租户的SLA信息更新为业务流程请求中的租户的SLA信息;
又如,当业务流程请求中还包括租户的QoS信息时,将在数据库中获得的流程上下文中的租户的QoS信息更新为业务流程请求中的租户的QoS信息;
又如,当业务流程请求中还包括流程基本信息时,将在数据库中获得的流程上下文中的流程基本信息更新为业务流程请求中的流程基本信息;
又如,当业务流程请求中还包括流程定制信息时,将在数据库中获得的流程上下文中的流程定制信息更新为业务流程请求中的流程定制信息;
又如,当业务流程请求中还包括流程模型时,将在数据库中获得的流程上下文中的流程模型更新为业务流程请求中的流程模型。
在本发明实施例中,工作流调度装置401具体用于采用以下方式实现构造具有租户特性的流程实例:根据租户基本信息、流程模型、流程定制信息构造具有租户特性的流程实例。
在本发明另一个实施例中,所述工作流调度装置为工作流引擎,所述执行装置为虚拟机。
在本发明实施例中,工作流调度装置401还用于:
将流程实例分配到对应的流程虚拟机中;或创建流程虚拟机,将流程实例分配到创建的流程虚拟机中。
在本发明实施例中,工作流调度装置401具体用于采用以下方式实现将流程实例分配到对应的流程虚拟机中:
根据租户信息将流程实例分配到租户对应的流程虚拟机中;
工作流调度装置401具体用于采用以下方式实现创建流程虚拟机:根据租户信息和当前系统状态为租户创建流程虚拟机。
其中,工作流调度装置401根据租户的SLA信息和当前系统状态为租户创建流程虚拟机。
在本发明实施例中,相同租户的多个流程实例发送到同一个流程虚拟机中,不同租户的流程实例发送到不同的流程虚拟机中,实现了不同租户的工作流的隔离,不同租户的工作流调度过程中使用的底层服务资源共享。
在本发明实施例中,虚拟机具体用于:
接收到流程实例,将流程实例放入流程实例队列中;
通过流程实例调度器调度流程实例队列中的流程实例执行。
其中,流程实例调度器根据流程上下文中的流程信息和流程虚拟机中的资源状态调度通过的流程虚拟机执行流程实例。
在本发明另一个实施例中,工作流调度装置401还用于:
所述租户的流程实例执行完成后,对租户服务体验质量进行估算。
在本发明实施例中,工作流调度装置401对租户服务体验质量进行估算包括对流程执行时间和性能进行估算。
本发明实施例基于业务流程请求获取流程上下文,基于流程上下文构造具有租户特性的流程实例,实现了支持多租户特性,能够识别租户流程信息,从而提高了代码利用率,并且开发商开发工作流时不需要考虑多租户的特征,降低了开发商应用开发的难度。
本发明实施例实现了多租户工作流引擎的共享,工作流引擎只需部署一次,所有租户共享使用。
下面以一个具体的实例举例,说明本发明实施例工作流引擎调度的流程:
某学校在校园云上面部署了一个业务系统,该业务系统为教务处使用,有一个业务申请流程,里面涉及申请提交、待审核、待修改、业务测试四个步骤,首先老师发起业务申请提交,工作流状态更新为待审核,上级领导审核后发现细节需要修改,状态更新为待修改流程,王老师修改后状态更新为业务测试,测试后该工作流结束。
从工作流引擎来看,该教务处(包括所属的教职工)就是一个租户,使用本发明实施例的工作流引擎调度方法如下:
1、教务处的王老师发起申请提交流程的请求消息,通过互联网服务(WebService)接口将业务申请发送给工作流引擎的控制器。
2、控制器接收到请求消息后,通过控制器中的租户感知引擎识别租户信息(通过王老师的教师证号、姓名、院系匹配到对应的租户ID),并根据该租户信息读取缓存区,如果王老师之前没有发起过类似申请,则访问数据库获得王老师基本信息、相关请求的SLA信息、对该流程的定制信息(即匹配到王老师通常的流程定制要求)以及流程模型,将这些信息添加到流程上下文中并将流程上下文发送给工作流引擎的工作流模型构造器;如果王老师之前发送过类似申请,则直接读取缓存区,获取王老师基本信息、相关请求的SLA信息、王老师对该流程的定制信息以及流程模型信息,将这些信息添加到流程上下文中并将流程上下文发送给工作流引擎的工作流模型构造器。
3、工作流引擎的工作流模型构造器根据流程上下文中的流程模型、王老师对流程的定制信息和教务处的基本信息构造出符合教务处这个租户特性的流程实例,根据王老师的信息将流程实例分配到王老师此次业务申请对应的流程虚拟机中。
4、流程虚拟机接收到流程实例之后将流程实例放到流程实例队列中等待调度,流程实例调度器根据流程上下文中的流程信息以及流程虚拟机中资源的状态(检查当前系统中资源是否足够分配,如果不足则等待)进行调度生成流程调度策略,并更新流程上下文。
5、虚拟机的流程执行模块根据调度策略执行流程,在执行的过程中根据流程执行状态更新流程上下文中,执行完成之后将结果返回给王老师。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
虽然本发明实施例所揭露的实施方式如上,但所述的内容仅为便于理解本发明实施例而采用的实施方式,并非用以限定本发明实施例。任何本发明实施例所属领域内的技术人员,在不脱离本发明实施例所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明实施例的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (17)
1.一种工作流调度方法,包括:
接收到租户的业务流程请求;其中,所述业务流程请求包括租户信息中的租户基本信息;
根据所述租户基本信息获取所述租户的流程上下文;其中,所述流程上下文包括租户信息和流程信息;
根据所述租户的流程上下文构造具有租户特性的流程实例。
2.根据权利要求1所述的工作流调度方法,其特征在于,所述根据租户基本信息获取租户的流程上下文包括:
在缓存区中获取租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文。
3.根据权利要求2所述的工作流调度方法,其特征在于,所述业务流程请求还包括以下至少之一:租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息;
该方法还包括:
根据所述业务流程请求中的以下至少之一更新在所述缓存区中获得的流程上下文,以及数据库中租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文:
所述租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息。
4.根据权利要求1所述的工作流调度方法,其特征在于,所述根据租户基本信息获取租户的流程上下文包括:
当在缓存区中获取不到所述租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文时,在数据库中获取所述租户基本信息与所述业务流程请求中的租户基本信息相同的流程上下文;
该方法还包括:将获得的流程上下文保存到所述缓存区中。
5.根据权利要求4所述的工作流调度方法,其特征在于,所述业务流程请求还包括以下至少之一:所述租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息;
该方法还包括:
根据所述业务流程请求中的以下至少之一更新在所述数据库中获得的流程上下文:所述租户信息中除租户基本信息之外的至少一个其他信息、至少一个流程信息;
将更新后的流程上下文保存到所述缓存区中。
6.根据权利要求1所述的工作流调度方法,其特征在于,该方法还包括:
执行所述流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
7.根据权利要求6所述的工作流调度方法,其特征在于,该方法还包括:
将所述流程实例分配到对应的流程虚拟机中;或创建流程虚拟机,将流程实例分配到创建的流程虚拟机中;
所述执行流程实例包括:通过所述流程虚拟机执行流程实例。
8.根据权利要求7所述的工作流调度方法,其特征在于,所述将流程实例分配到对应的流程虚拟机中包括:
根据所述租户信息将所述流程实例分配到所述租户对应的流程虚拟机中;
所述创建流程虚拟机包括:根据所述租户信息和当前系统状态为所述租户创建流程虚拟机。
9.根据权利要求7所述的工作流调度方法,其特征在于,所述通过的流程虚拟机执行流程实例包括:
所述流程虚拟机接收到所述流程实例,将所述流程实例放入所述流程虚拟机的流程实例队列中;
通过所述流程虚拟机的流程实例调度器调度所述流程实例队列中的流程实例执行。
10.根据权利要求6所述的工作流调度方法,其特征在于,该方法还包括:
所述租户的流程实例执行完成后,对租户服务体验质量进行估算。
11.一种工作流调度装置,包括:
控制器,用于接收到租户的业务流程请求;其中,所述业务流程请求包括租户信息中的租户基本信息;根据所述租户基本信息获取租户的流程上下文;其中,所述流程上下文包括租户信息和流程信息;
工作流模型构造器,用于根据所述租户的流程上下文构造具有租户特性的流程实例。
12.根据权利要求11所述的工作流调度装置,其特征在于,还包括:
流程实例执行模块,用于执行所述流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
13.一种工作流调度装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令被所述处理器执行时,实现如权利要求1~10任一项所述的工作流调度方法。
14.根据权利要求13所述的工作流调度装置,其特征在于,所述工作流调度装置为工作流引擎。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~10任一项所述的工作流调度方法的步骤。
16.一种工作流调度系统,包括:
工作流调度装置,用于接收到租户的业务流程请求;其中,所述业务流程请求包括租户信息中的租户基本信息;根据所述租户基本信息获取租户的流程上下文;其中,所述流程上下文包括租户信息和流程信息;根据所述租户的流程上下文构造具有租户特性的流程实例;
执行装置,用于执行所述流程实例,在执行过程中根据流程执行状态更新流程上下文,执行完成之后将执行结果返回给租户。
17.根据权利要求16所述的工作流调度系统,其特征在于,所述工作流调度装置为工作流引擎,所述执行装置为虚拟机。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811350444.2A CN111192100A (zh) | 2018-11-14 | 2018-11-14 | 一种工作流调度方法、装置和系统 |
| PCT/CN2019/104920 WO2020098352A1 (zh) | 2018-11-14 | 2019-09-09 | 一种工作流调度方法、装置和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811350444.2A CN111192100A (zh) | 2018-11-14 | 2018-11-14 | 一种工作流调度方法、装置和系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111192100A true CN111192100A (zh) | 2020-05-22 |
Family
ID=70707025
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201811350444.2A Pending CN111192100A (zh) | 2018-11-14 | 2018-11-14 | 一种工作流调度方法、装置和系统 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111192100A (zh) |
| WO (1) | WO2020098352A1 (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114255016A (zh) * | 2021-12-27 | 2022-03-29 | 思创数码科技股份有限公司 | 工作流系统应用方法、系统、计算机及可读存储介质 |
| CN114693283A (zh) * | 2022-06-01 | 2022-07-01 | 四川高灯企服科技有限公司 | 跨系统的业务流程审批处理方法、装置和计算机设备 |
| CN117235038A (zh) * | 2023-08-24 | 2023-12-15 | 兰州飞天网景信息产业有限公司 | 一种基于activiti多租户的构建方法和装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103077024A (zh) * | 2012-12-28 | 2013-05-01 | 山东地纬计算机软件有限公司 | 一种支持SaaS应用流程按需定制与运行的装置及方法 |
| CN103198380A (zh) * | 2013-03-28 | 2013-07-10 | 北京慧正通软科技有限公司 | 工作流引擎支持Saas应用的方法 |
| CN104142864A (zh) * | 2014-08-07 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化技术的多租户性能隔离框架 |
| CN105917627A (zh) * | 2014-02-07 | 2016-08-31 | 甲骨文国际公司 | 云服务定制执行环境 |
| CN108810164A (zh) * | 2018-06-29 | 2018-11-13 | 合肥微商圈信息科技有限公司 | 一种支持SaaS应用流程按需定制及运行的装置 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10063537B2 (en) * | 2014-12-19 | 2018-08-28 | Microsoft Technology Licensing, Llc | Permission architecture for remote management and capacity instances |
| US10484382B2 (en) * | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
-
2018
- 2018-11-14 CN CN201811350444.2A patent/CN111192100A/zh active Pending
-
2019
- 2019-09-09 WO PCT/CN2019/104920 patent/WO2020098352A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103077024A (zh) * | 2012-12-28 | 2013-05-01 | 山东地纬计算机软件有限公司 | 一种支持SaaS应用流程按需定制与运行的装置及方法 |
| CN103198380A (zh) * | 2013-03-28 | 2013-07-10 | 北京慧正通软科技有限公司 | 工作流引擎支持Saas应用的方法 |
| CN105917627A (zh) * | 2014-02-07 | 2016-08-31 | 甲骨文国际公司 | 云服务定制执行环境 |
| CN104142864A (zh) * | 2014-08-07 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化技术的多租户性能隔离框架 |
| CN108810164A (zh) * | 2018-06-29 | 2018-11-13 | 合肥微商圈信息科技有限公司 | 一种支持SaaS应用流程按需定制及运行的装置 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114255016A (zh) * | 2021-12-27 | 2022-03-29 | 思创数码科技股份有限公司 | 工作流系统应用方法、系统、计算机及可读存储介质 |
| CN114693283A (zh) * | 2022-06-01 | 2022-07-01 | 四川高灯企服科技有限公司 | 跨系统的业务流程审批处理方法、装置和计算机设备 |
| CN114693283B (zh) * | 2022-06-01 | 2022-09-27 | 四川高灯企服科技有限公司 | 跨系统的业务流程审批处理方法、装置和计算机设备 |
| CN117235038A (zh) * | 2023-08-24 | 2023-12-15 | 兰州飞天网景信息产业有限公司 | 一种基于activiti多租户的构建方法和装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020098352A1 (zh) | 2020-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11704144B2 (en) | Creating virtual machine groups based on request | |
| CN108614726B (zh) | 虚拟机创建方法及装置 | |
| JP6954267B2 (ja) | ネットワーク機能仮想化管理オーケストレーション装置と方法とプログラム | |
| JP6614340B2 (ja) | ネットワーク機能仮想化管理オーケストレーション装置と方法とプログラム | |
| CN106919445B (zh) | 一种在集群中并行调度容器的方法和装置 | |
| JP6658882B2 (ja) | 制御装置、vnf配置先選択方法及びプログラム | |
| CN108337109A (zh) | 一种资源分配方法及装置和资源分配系统 | |
| US20190109756A1 (en) | Orchestrator for a virtual network platform as a service (vnpaas) | |
| CN111245634B (zh) | 一种虚拟化管理方法及装置 | |
| CN105812171A (zh) | 一种虚拟化的网络功能vnf控制方法和设备 | |
| WO2017012381A1 (zh) | 一种生命周期管理方法及装置 | |
| CN106856438B (zh) | 一种网络业务实例化的方法、装置及nfv系统 | |
| CN109445923A (zh) | 一种微服务任务调度的方法及装置 | |
| CN112346858B (zh) | 一种云平台管理方法及平台 | |
| CN116113923A (zh) | 容器集群管理方法及其系统 | |
| CN111192100A (zh) | 一种工作流调度方法、装置和系统 | |
| CN112882765A (zh) | 数字孪生模型调度方法和装置 | |
| CN112286622B (zh) | 虚机迁移处理及策略生成方法、装置、设备及存储介质 | |
| CN107423117A (zh) | 在云存储系统中虚拟机的创建方法和装置 | |
| WO2017054533A1 (zh) | 云互通的外部资源管理方法、装置及系统 | |
| CN105103125B (zh) | 时钟中断信号的获取方法和nfv装置 | |
| CN114595041B (zh) | 资源调度系统以及方法 | |
| CN111061541A (zh) | 一种创建虚拟机的方法、系统、计算机存储介质及终端 | |
| CN109905258B (zh) | PaaS的管理方法、装置及存储介质 | |
| CN113220443B (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 |