多阶段高效能业务流程管理引擎的制作方法

文档序号:14204013阅读:471来源:国知局
多阶段高效能业务流程管理引擎的制作方法



背景技术:

本发明在其一些实施例中涉及业务流程管理系统(businessprocessmanagementsystems,bpms),并且,更确切地但非排他地,涉及用于bpms的高级调度机制。

业务流程管理(businessprocessmanagement,bpm)的引入是为了支持业务流程的设计、编排(也被称作制定或执行)、管理和分析。业务流程也被称为流程模型或工作流,其是针对特定消费者产生专门服务(结果)的活动的结构化集合。流程可被组织并显现为具有节点(表示活动和决策点)和连接节点的边缘(表示逻辑/时间依赖性)的图表结构。流程模型通常用于表示管理流程(例如,休假申请或出差申请)、科学工作流(例如,dna测序)、大数据处理(例如,数据分析)和分布式应用协调(例如,云/客户端计算)。

负责管理流程模型的软件平台被称作业务流程管理系统。bpms通常与用于流程模型的设计、执行和监测的子系统组合在一起。负责流程模型的执行的子系统通常被称作编排引擎或执行引擎。执行引擎可使用信息和通信技术(informationandcommunicationtechnology,ict)从数据文件中读取流程模型描述、创建流程实例,并监督其执行。bpms用于不同应用,例如,分布式系统协调、信息系统集成、工作(工作流)管理、业务流程即服务(businessprocessasaservice,bpaas),以及云bpm,从而将单个服务编排成复杂的具有商业价值的服务。

现有的业务流程管理系统将活动作为基本实体进行处理。流程引擎对活动的执行进行调度,并等待它们的完成(成功或失败)。当一个活动结束时,引擎根据所界定的流程模型对接下来的一个或多个活动进行调度以供执行。

已提出尝试改进bpms的效能的不同方案:

*莱曼(leymann)等人在第ep0831406号欧洲专利申请案中公开提出通过在数据库管理系统(databasemanagementsystem,dbms)中存储控制功能和流程状态来提高wfms的效能。基于可在数据库系统内执行全部功能的假设,可产生效能的边际改进。

*杜(du)等人在第us6041306号美国专利中公开提出分散型工作流管理系统,所述系统需要利用昂贵的更具分布式的资源硬件。

*佩哈内茨(pechanec)等人在第us2012/0060150号美国专利申请公开案中公开提出将bpm流程定义转换成java源代码。所述方法/系统仅适用于基于java的系统。此外,所述转换限制了流程的灵活性和可调适性。



技术实现要素:

本发明的一个目标是提供一种用于对活动阶段的执行进行重新调度的设备、系统、计算机程序产品和方法。

前述和其它目标通过独立权利要求的特征实现。进一步的实施形式通过从属权利要求、说明书以及图式清楚可见。

根据第一方面,一种用于对活动阶段的执行进行重新调度的设备包括:用于标示业务流程活动的接口;处理单元,所述处理单元用于接收业务流程活动中的每一个业务流程活动的阶段的执行顺序作为输入,根据一个或多个业务流程活动的相应阶段的语义分析,选择用于业务流程活动中的一个或多个业务流程活动的域中的一个,根据所选域选择域特定调度规则集合,以及根据域特定调度规则集合,通过对业务流程活动中的每一个业务流程活动的阶段进行调度来创建一个或多个新的执行顺序。

所述方法和/或设备提供处理单元和/或执行计算系统在执行业务流程活动时的较高吞吐量和/或较低时延。业务流程活动的多阶段设计允许处理单元了解在执行业务流程活动期间正在发生什么,从而使处理单元能够根据活动的执行进程作出高级调度决策。

本文中所描述的设备、系统和/或方法可用于改进计算系统(例如,bpm引擎)和/或执行计算系统的现有可用资源的效能,而不必需要添加额外的硬件组件(例如,不必添加额外的更快的处理器、更大数目的处理器和/或存取更快的存储器)。

阶段的语义(例如,存储为标记和/或描述)使开发人员和/或程序员能够知道他们应该将他们的代码(例如,指令、脚本、函数、库)放置在哪一阶段中。在调度期间,标记由bpm引擎(例如,处理单元)使用,以理解正在执行的相应阶段的代码的语义(例如,在任一时刻)。bpm引擎分析标记和/或示意图以执行高级调度决策,从而改进效能(例如,任选地使用现有硬件减少时延和/或增加吞吐量)。

语义可被实施为编程模型,其可帮助程序员开发高效能的bpm引擎(例如,编排引擎),例如,利用数据的位置将数据带到对其进行处理的位置附近。

域特定调度规则基于其它业务流程活动阶段的完成而界定新的业务流程活动和相应阶段的调度,这改进了处理单元和/或执行计算系统的效能。

根据第二方面,一种对活动阶段的执行进行重新调度的方法包括:接收业务流程活动;接收业务流程活动中的每一个业务流程活动的阶段的执行顺序作为输入;根据一个或多个业务流程活动的相应阶段的语义分析,选择用于业务流程活动中的一个或多个业务流程活动的多个域中的一个;根据所选域选择域特定调度规则集合;以及根据域特定调度规则集合,通过对业务流程活动中的每一个业务流程活动的阶段进行调度来创建一个或多个新的执行顺序。

在根据第二方面本身的方法的第一可能实施形式中,所述方法进一步包括正在执行业务流程活动中的第二个业务流程活动时,分配一个或多个资源以用于业务流程活动中的第一个业务流程活动的执行;其中所述一个或多个资源由第二业务流程活动使用。

可以根据所创建的调度表对第一业务流程活动进行当前正由第二业务流程活动使用的资源的分配,这使第一业务流程能够较短延迟地(例如,在第二业务流程活动完成之后开始执行第一业务流程活动的时间)使用所述资源。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第二可能实施形式中,所述创建包括:释放业务流程活动中的一个业务流程活动所使用的资源用于业务流程活动中的另一个业务流程活动,而此时业务流程活动中的所述另一个业务流程活动尚未完全执行。

可在业务流程活动开始执行之前释放资源,使得当另一业务活动开始执行时,所述另一业务活动流程可利用所述资源,而不必等待并经历一定延迟。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第三可能实施形式中,域特定调度规则集合包括阶段执行探试法。

通过学习和/或分析当前和/或历史执行结果,阶段执行探试法可改进未来的阶段调度。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第四可能实施形式中,域特定调度规则集合诱发在业务流程活动中的一个业务流程活动的阶段之间以及在业务流程活动中的一个或多个其它业务流程活动的阶段之间对所述一个业务流程活动的阶段进行重新调度。

可同时改进多个业务流程活动的执行效能。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第五可能实施形式中,由设备以及用于对阶段的执行进行重新调度的类似设备从共享储存库中获取域特定调度规则集合。

共享储存库允许多个计算单元在相同或类似域内使用相同的域特定规则集合对任选地不同业务流程活动的阶段进行调度。

共享储存库允许各自处理相同业务流程活动的不同阶段的多个计算单元使用共同调度规则,这使不同的计算单元能够协调阶段的调度。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第六可能实施形式中,按将由多个不同处理器中的一个处理器执行的一个或多个新的执行顺序对阶段进行调度。

可根据每个阶段的处理要求选择处理器,这可改进执行效能。

在根据第二方面本身或根据第二方面的先前实施形式的方法的第七可能实施形式中,不同的处理器选自由以下各项构成的群组:图形处理单元(graphicsprocessingunit,gpu)核心处理器、分布式处理单元,以及多核处理系统的处理单元。

可在分布式系统中执行阶段(这可提高计算效能),所述分布式系统可以是非均质分布式系统和/或均质分布式系统。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第八可能实施形式中,域特定调度规则集合包括用于分布相应阶段的处理以供执行资源处理的指令。

分布阶段以供不同计算单元执行能提供高效能地处理大量业务流程活动(可包含大量阶段)的可扩展性。

在根据第二方面本身或根据第二方面的任一先前实施形式的第九可能实施形式中,按相应的顺序先于阶段中的第二阶段的阶段中的第一阶段按一个或多个新的执行顺序在第二阶段之后。

对阶段的执行调度表进行重排能改进处理单元和/或执行计算系统的效能。

在根据第二方面本身或根据第二方面的任一先前实施形式的方法的第十可能实施形式中,基于与每个阶段相关联的一个或多个语义执行语义分析,所述一个或多个语义选自由以下各项构成的群组:活动模式、阶段标记和阶段属性。

在根据第二方面本身或根据第二方面的先前实施形式的方法的第十一可能实施形式中,活动模式选自由以下各项构成的群组:读取、执行和写入。

在根据第二方面本身或根据第二方面的先前第十或第十一实施形式的第十二可能实施形式中,阶段属性是选自由以下各项构成的群组中的一项或多项或多项组合:安全、不安全、幂等、非幂等、自主和非自主。

在根据第二方面本身或根据第二方面的任一前述实施形式的方法的第十三可能实施形式中,阶段中的每一个阶段用于独立于阶段中的其它阶段而执行。

除非另外定义,否则本文中所用的所有技术和/或科学术语都具有与本发明所涉及的领域的技术人员通常所理解相同的含义。尽管与本文中所描述的方法和材料类似或等效的材料和方法可以用于本发明的实施例的实践或测试,但下文描述了示例性方法和/或材料。倘若有冲突,包含定义的本说明书将占主导。此外,材料、方法和示例仅为说明性的,而不意欲为必定限制性的。

附图说明

此处仅借助于示例,结合附图描述了本发明的一些实施例。现在具体结合附图,需要强调的是所示的项目是作为示例,是为了说明性地讨论本发明的实施例。这样,根据附图说明,如何实践本发明实施例对本领域技术人员而言是显而易见的。

在附图中:

图1是根据本发明的一些实施例的处理单阶段业务流程活动的示例性bpm引擎的示意图;

图2的示意图描绘根据本发明的一些实施例在单阶段活动和图1的bpm引擎的活动管理器之间的可能示例性状态的通信;

图3是根据本发明的一些实施例对业务流程活动的多个阶段进行调度的计算机实施方法的流程图;

图4是根据本发明的一些实施例对业务流程活动的多个阶段进行调度的系统的组件的方框图;

图5的示意图表示根据本发明的一些实施例在多阶段活动管理器和业务流程活动的多个阶段之间的关系;

图6是根据本发明的一些实施例的多阶段bpm的示例性架构;

图7的示意图表示根据本发明的一些实施例可用于将语义指配到业务流程活动的阶段、包含3种类别的多阶段活动模式;

图8是根据本发明的一些实施例实施为有限状态机的示例性多阶段活动控制器的示意图;

图9的示意图表示根据本发明的一些实施例的用于参看图6论述的组件的示例性值;以及

图10的示意图以图形方式描绘了根据本发明的一些实施例用于创建新调度顺序的域特定规则的又一示例。

具体实施方式

本发明在其一些实施例中涉及业务流程管理系统(businessprocessmanagementsystem,bpms),并且,更确切地但非排他地,涉及一种用于bpms的高级调度机制。

本发明的一些实施例的方面涉及一种对业务流程活动的多个阶段的执行进行重新调度的设备(例如,处理单元)和/或方法(例如,由存储器中存储的通过处理器执行的代码实施)。每个业务流程活动被划分成多个阶段,每个阶段被设计成独立于其它阶段而执行(例如,由对阶段的执行进行调度的处理单元执行,或由执行计算系统执行,任选地,由分布式计算系统执行)。每个阶段与语义相关联。根据相应业务流程活动的阶段的语义分析,为每个业务流程活动选择域和相关联的域特定规则集合。处理单元可根据与相应的业务流程活动相关联的阶段执行状态了解每个业务流程活动的执行情况。处理单元实施调度决策,以改进业务流程活动的执行效能。通过根据域特定调度规则集合对业务流程活动的阶段进行调度,创建新的执行顺序。方法和/或设备提供处理单元和/或执行计算系统在执行业务流程活动时的较高吞吐量和/或较低时延。业务流程活动的多阶段设计允许处理单元了解在执行业务流程活动期间正在发生什么,从而使处理单元能够根据活动的执行进程作出高级调度决策。例如,在执行期间,处理单元能根据与业务流程活动相关联的阶段的执行状态了解每个业务流程活动的执行进程。例如,可抢先于对另一业务流程活动的执行进行调度而作出提高处理单元和/或执行计算系统的效能的调度决策。

在详细解释本发明的至少一个实施例之前,应理解,本发明在其申请中不必限于在以下描述中阐述和/或在附图和/或示例中所说明的组件和/或方法的建构以及布置的细节。本发明能够具有其它实施例或以各种方式实践或进行。

本发明可以是一种系统、方法和/或计算机程序产品。计算机程序产品可包含一个或多个计算机可读存储介质,其上具有计算机可读程序指令以使处理器执行本发明的各方面。

计算机可读存储介质可以是能够保持和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于:电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述各项的任何合适组合。

本文中所描述的计算机可读程序指令可以从计算机可读存储介质下载到相应计算/处理装置,或经由因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储装置。

计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包含局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)的任何类型的网络而连接到用户的计算机,或者可以对外部计算机进行连接(例如,使用因特网服务提供方通过因特网连接)。在一些实施例中,为了执行本发明的方面,包含例如可编程逻辑电路、现场可编程门阵列(field-programmablegatearray,fpga)或可编程逻辑阵列(programmablelogicarray,pla)的电子电路可以通过利用计算机可读程序指令的状态信息将电子电路个人化而执行计算机可读程序指令。

本文参看根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或方框图来描述本发明的各方面。应理解,可以通过计算机可读程序指令来实施流程图说明和/或方框图中的每个方框,以及流程图说明和/或方框图中的方框的组合。

图中的流程图和方框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方案的架构、功能性和操作。就此而言,流程图或方框图中的每个方框可以表示模块、区段或指令的部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方案中,方框中提及的功能可以不按图中所提及的次序发生。例如,根据所涉及的功能性,连续示出的两个方框实际上可以大体上同时执行,或所述方框有时可能以相反次序执行。还应注意,方框图和/或流程图说明中的每个方框,以及方框图和/或流程图说明中的方框的组合可以通过专用的基于硬件的系统实施,所述系统执行指定功能或动作,或实行专用硬件和计算机指令的组合。

如本文所使用,术语活动有时用作短语业务流程活动的简写。

如本文所使用,术语bpm引擎、计算单元、编排引擎、多阶段活动管理器和执行引擎有时可互换。

现参看图1,图1的示意图描绘根据本发明的一些实施例设计用于处理单阶段活动102的bpm引擎100(例如,存储器中存储的由计算单元的处理单元执行的代码指令)的示例性架构。bpm引擎100在没有本文中所描述的系统和/或方法的情况下操作。相比之下,本文中所描述的设备、系统和/或方法处理业务流程活动的多个阶段,如本文中更为详细地描述。描述bpm引擎100是为了帮助解释本文中所描述的设备、系统和/或方法的新颖性。bpm引擎100的活动管理器组件对单阶段活动的执行进行调度、等待活动结束执行,并登记所述执行是成功完成还是失败。bpm引擎100无法获得关于基本(即,单阶段)业务流程活动的进程的信息。每个活动在bpm引擎100对要执行的下一活动作出决策之前已完全处理。

还参看图2,图2的示意图描绘根据本发明的一些实施例在单阶段活动102和活动管理器104之间的可能示例性状态的通信。三种示例性类型的事件表示为:start_activity、activity_completed和activity_failed(其它可能的示例性事件是终止、暂停和恢复)。当活动开始执行时产生一个事件(start_activity),当活动结束时产生两个事件中的一个(activity_completed或activity_failed)。

现参看图3,图3是根据本发明的一些实施例对业务流程活动的多个阶段进行调度的计算机实施方法的流程图。还参看图4,图4是根据本发明的一些实施例通过对业务流程活动的多个阶段的执行进行调度来改进计算单元402(在本文中还可被称作设备)的效能的系统400的组件的方框图。通过存储器中存储的由计算单元402的处理单元406执行的指令代码,计算单元402可实施图3的方法的动作。

计算单元402可实施为例如服务器(例如,经由可实施为网络接口的业务流程活动接口408通过网络连接向一个或多个客户端终端提供服务)、web服务器(例如,任选地经由业务流程活动接口408和/或另一接口使用web浏览器向客户端终端提供服务),和/或运行本地存储的代码的客户端。计算单元402可实施为硬件组件(例如,独立计算单元)、软件组件(例如,在现有计算单元内实施),和/或插入到现有计算单元中的硬件组件(例如,插卡、可附接单元)。通过提供软件即服务(softwareasaservice,saas)、提供可安装在与服务器通信的客户端上的应用程序,和/或提供使用远程接入会话的功能,服务器实施方案可向客户端终端提供服务。计算单元402的其它示例性实施方案包含例如移动装置、桌上型计算机、瘦客户端、智能手机、平板计算机、膝上型计算机、可穿戴计算机、玻璃计算机和手表计算机。

处理单元406可实施为例如中央处理单元(centralprocessingunit,cpu)、图形处理单元(graphicsprocessingunit,gpu)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、数字信号处理器(digitalsignalprocessor,dsp)和专用集成电路(applicationspecificintegratedcircuit,asic)。处理单元406可包含作为集群和/或作为一个或多个多核处理单元的一个或多个处理器(均质或非均质),其可被布置成用于并行处理。

存储器404存储由处理单元406执行的代码指令,例如随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)和/或存储装置,例如,非易失性存储器、磁性介质、半导体存储器装置、硬盘驱动器、可移动存储装置和光学介质(例如,dvd、cd-rom)。

计算单元402包含存储单元410,所述存储单元410充当用于存储数据的数据储存库,例如,存储器、硬盘驱动器、光学光盘、存储单元、到远程存储服务器的接口、到云服务器的接口,和/或其它存储单元。数据储存库410可包含存储用于每个域的规则集合的域特定规则储存库410a,如本文中所描述。

计算单元402包含用户接口412或与用户接口412通信(用户接口412可与显示器414集成,或可实施为单独的装置),所述用户接口412例如触摸屏、键盘、鼠标,以及使用扬声器和麦克风的语音激活软件。

计算单元402在执行计算系统418内实施(例如,实施为安装到执行计算系统418上的软件和/或实施为连接到执行计算系统418的硬件组件),和/或与执行计算系统418通信(例如,使用有线和/或无线网络连接),所述执行计算系统418执行多阶段业务流程活动的阶段的代码指令。执行计算系统418包含一个或多个处理单元410和/或一个或多个存储器和/或存储单元422。执行计算系统418可实施为分布式系统,其可以计算集群的形式组织。执行计算系统418的分布式系统实施方案可实施为非均质分布式系统(由不同的处理架构和/或不同的存储架构组成)和/或均质分布式系统(由具有类似架构的处理器和/或存储单元组成)。

本文中所描述的设备(包含处理单元)和/或方法(例如,由所述设备实施)能改进bpms在吞吐量(即,处理单元每单位时间可完成或处理的流程实例的最大数目)和/或时延(即,处理或完成流程实例的时间(例如,平均时间))方面的效能。时延可表示请求流程执行与流程实例完成时的时间之间的时间间隔。应注意,在实现综合效能效果时同时考虑吞吐量和时延,因为二者相互影响,例如,当每单位时间对执行业务流程活动的请求的数目增加时,时延会增加,且吞吐量会减少。

本文中所描述的方法和/或设备的高效能(例如,就处理业务流程活动时处理单元的较高吞吐量和/或较低时延而言)可用于需要处理大量客户端的可扩展性和/或能力的应用,例如,基于非均质处理环境实施分布式应用同时服务大量(例如,数千或数百万)客户端的计算云架构。本文中所描述的设备、系统和/或方法可用于改进计算系统(例如,bpm引擎)的现有可用资源的效能,而不必需要添加额外的硬件组件(例如,不必添加额外的更快的处理器、更大数目的处理器,和/或存取更快的存储器)。

可通过下列示例性等式计算业务流程活动(和/或每个业务流程活动的阶段)的时延。由bpm引擎处理的实例集合可表示为i(i1,i2,…,in)。每个实例ij可表示为向量(ts、tc、pm),其中ts是客户端提出对实例的处理的请求时的时间,tc是bpm引擎完成实例处理时的时间,pm是用于创建实例的流程模型。可使用下列示例性等式分别计算单个实例ij的时延(1)、bpm引擎的时延(2)和吞吐量(3):

时延(ij)=ij(tc)-ij(ts)(1)

l,m∈j...j+k(3)

在302处,计算单元402使用业务流程活动接口408,例如从业务流程活动储存库416接收业务流程活动,所述业务流程活动储存库416可实施为例如服务器、客户端终端、存储单元、文件、手动键入的用户数据和/或其它实施方案。

业务流程活动可通过例如代码指令、汇编代码、脚本(例如,人类可读文本)、图表、规则集合和/或基于域特定语言来界定。业务流程活动可例如通过专用软件自动产生。业务流程活动可例如通过用户和/或程序员、通过写入代码和/或使用专用软件来手动界定。

每个业务流程活动被划分成多个阶段(即,每个阶段比相应的业务流程活动短)。划分成阶段的操作可由程序员例如使用域特定语言、规则集合、脚本、代码、接口(例如,api)或其它实施方案来手动界定。划分成阶段的操作可由执行代码指令的处理器自动执行,所述代码指令分析活动内的函数(例如,代码)的关系,从而识别可进行划分的独立部分(例如,使用数据流图表或其它方法)。

现参看图5,图5的示意图表示根据本发明的一些实施例在多阶段活动管理器502(例如,存储器404中存储的由处理单元406实施的代码)和多个阶段504之间的关系。多阶段活动管理器502控制阶段504的执行。每个阶段504任选地在执行完成之后,将其状态告知活动管理器502。活动管理器502(或另一代码组件)决定待执行的下一阶段。阶段可彼此独立,从而允许阶段的并行执行,和/或在较早阶段完成执行之前开始较晚阶段的执行。

当相应阶段的执行开始时,每个阶段504标示为start_phase_x事件(其中为x指派来自1、2、3,…,n(其中n表示阶段的总数目)的值)。相应的阶段标示为事件phase_completed_y或phase_failed_y,以发信号通知活动管理器502处理已完成或处理失败(其中为y指派来自1、2、3,…,n(其中n表示阶段的总数目)的值)。

应注意,并非业务活动流程的所有阶段504都需要具有实施方案和/或都需要执行。每个业务流程活动的阶段的数目可取决于例如应用的域。

现参看图6,图6是根据本发明的一些实施例的多阶段bpm602的示例性架构。多阶段bpm602可由存储器404中存储的并由计算单元402的处理单元406执行的代码指令实施。

多阶段bpm602的示例性组件(例如,实施为代码、函数、库、脚本、硬件模块和/或文件)包含以下组件中的一个或多个:多阶段业务流程活动604(例如,如参看图5的阶段504所描述)、多阶段活动管理器606(例如,如参看图5的活动管理器502所描述)、多阶段控制表格608(例如,如本文中所描述)、高级流程实例管理器610(例如,如本文中所描述),以及调度策略表格612(例如,如本文中所描述)。应注意,一个或多个组件604到612可实施为添加到单阶段bpm(例如,参看图1所描述的bpm100)和/或与其集成的额外组件(例如,代码和/或硬件单元)。

现返回参看图3,在304处,任选地经由业务流程活动接口408,由计算单元402接收业务流程活动中的每一个业务流程活动的多个阶段的执行顺序作为输入。所述执行顺序可基于线性顺序(例如,不由阶段基于编号彼此依序而行的代码界定,但由所述代码实现)而表示为例如有限状态机、链表、图表。执行顺序可由用户手动界定,和/或由处理单元执行的代码指令自动界定。

任选地,阶段中的每一个阶段用于独立于业务流程活动的其它阶段而执行。就数据输入和输出而言,阶段可能不与彼此有关,因此某一阶段的输出不被另一独立阶段使用,和/或某一阶段可以不使用由另一独立阶段产生的输入。可独立地执行不取决于彼此进行数据传送的阶段。在另一个示例中,不更改数据的阶段可独立于其它阶段而安全地执行。在又另一示例中,就数据依赖性而言,阶段彼此有关(即,某一阶段使用由另一阶段产生的输出),但是可独立地执行,并且一旦阶段完成执行就可进行调整,例如,当三个阶段中的一个阶段将在另一阶段完成之后执行时,所述三个阶段可独立地执行,一旦所述另一阶段完成执行就存储结果(忽略或舍弃其它两个阶段的结果)。

相应的业务流程活动的多个阶段的执行顺序可基于界定阶段之间的关系的数据结构来界定和/或监测和/或管理,所述数据结构例如是状态机、链表(或图表)或其它实施方案。

可由执行计算系统418的分布式系统实施方案的不同计算集群执行每个独立阶段。

在306处,由计算单元402执行与一个或多个业务流程活动相关联的相应阶段的语义分析。每个阶段与一个或多个语义相关联。语义可在以阶段作索引的数据库中存储为例如具有阶段的元数据(例如,具有阶段指令和/或代码的元数据)、与阶段相关联的标签,和/或由代码(例如,由分析阶段并自动提取语义的机器学习算法,例如,统计分类器)自动计算。如本文中所描述,在进行阶段的调度决策和/或控制阶段的执行的过程中,由计算单元402(例如,bpm引擎602)分析与每个阶段相关联的语义。

阶段的语义(例如,存储为标记和/或描述)使开发人员和/或程序员能知道他们应该将他们的代码(例如,指令、脚本、函数、库)放置在哪一阶段中。在调度期间,bpm引擎(例如,计算单元402的处理单元406)使用标记来理解正在执行的相应阶段(例如,在任一时刻)的代码的语义。bpm引擎分析标记和/或示意图以执行高级调度决策,从而改进效能(例如,任选地使用现有硬件减少时延和/或增加吞吐量)。

语义可被实施为编程模型,其可帮助程序员开发高效能的bpm引擎(例如,编排引擎),例如,利用数据的位置将数据带到对其进行处理的位置附近。

语义可由程序员手动界定,例如,以指导处理单元对相应阶段的调度。可例如使用分析阶段的内容(例如,代码、指令)并输出一个或多个语义标记的机器学习方法(例如,统计分类器),基于相应阶段的自动分析(例如,通过由处理单元406或外部处理器等处理器执行的代码指令)而自动产生语义。

可例如通过由相应的编程语言、软件库、应用编程接口(applicationprogramminginterface,api)、分布式webapi调用、软件开发工具包(softwaredevelopmentkit,sdk)和/或其它接口实施方案界定的函数调用,在执行阶段和计算单元402的处理单元406(例如,多阶段活动管理器)之间传递阶段的语义和/或状态。

示例性语义包含:活动模式、阶段标记和属性。

活动模式:阶段可根据多阶段活动模式进行分类(和/或例如使用元数据和/或标签进行标记)。多阶段模式可涉及所关注的分离,使得每个阶段解决一个单独的关注点。当对每个阶段进行分类时,可利用专用系统/资源和/或由计算单元402执行单独的阶段,和/或(例如,出于效能、成本降低、高可靠性和高可用性的目的)优化单独的阶段。模式与应用的域有关,和/或可根据域而为简单或复杂的,例如,根据域,类别的数目可随着复杂度上升。

现参看图7,图7的示意图表示根据本发明的一些实施例可用于将语义(即,活动模式类别语义)指配到业务流程活动的阶段、包含3种类别的(多阶段业务流程活动702的)多阶段活动模式。所述类别包含读取(r)、执行(x)和写入(w)。所论述的示例的多阶段活动模式被称为rxw模式。应注意,模式为示例性的,且对于其它域可不同。例如,对于数据分析域,示例性模式包含加载数据(l)、清除数据(c)、处理数据(p)和存储结果(s)阶段。多阶段活动管理器704(例如,存储器404中存储的由计算单元402的处理单元406执行的代码)涉及如本文中所描述的多阶段活动702。

在我们的示例中,例如,通过利用数据的位置的原理将数据带到对其进行处理的位置附近,程序员可在开发高效能计算单元(例如,编排引擎)时将rxw模式用作编程模型。阶段r将在对数据进行处理的位置(即,阶段x)附近的数据带到例如其中执行阶段x的本地文件系统(filesystem,fs)或高速缓存系统(例如,计算单元402的存储器404和/或另一位置)。阶段w将数据复制到最终位置(例如,在存储单元410中、在存储器404中,或其它存储单元)。bpm引擎(例如,计算单元402)可分析包含rxw模式的语义,并基于所述分析,抢先执行类别r的阶段,因为r阶段不修改流程模型的状态(即,r阶段仅读取数据)。所论述的基于语义实施多阶段活动模式的益处是示例性的,还可获得其它效能改进。

阶段标记:阶段可根据相应的语义进行标记。图7描绘rxw活动模式和包含7个阶段(仅出于示例的目的,可使用其它数目的阶段,和/或可表示阶段的其它模式)的多阶段活动702的多个阶段之间的示例性关系。所述7个阶段包含:两个读取阶段(r)、3个执行阶段(x)和2个写入阶段(w)。语义阶段标记是阶段1(r1)、阶段2(r2)、阶段3(x1)、阶段4(x2)、阶段5(x3)、阶段6(w1)和阶段7(w2)。现在更详细地论述7个阶段中的每个阶段:

*阶段1(读取输入-r1):读取输入阶段表示对由执行引擎(例如,bpm602、计算单元402)提供的输入的读取。

*阶段2(读取数据-r2):读取数据阶段表示对供执行阶段使用(如下所述)的数据(例如,来自分布式文件系统)的读取。

*阶段3(活动执行-x1):活动执行阶段表示处理。可例如通过由相应的编程语言、软件库和/或分布式web应用程序编程接口(applicationprogramminginterface,api)调用或其它技术界定的本地函数调用来实施活动执行阶段。

*阶段4(异常处理-x2):异常处理阶段表示在阶段x1失败的情况下对数据的处理。

*阶段5(回退活动-x3):回退活动阶段表示撤销阶段x1和/或x2中执行的动作以恢复到其中未执行处理的先前状态。

*阶段6(写入数据-w1):写入数据阶段表示将数据写入到存储位置(例如,最终目的地)。例如,可将输入从本地文件系统传送到分布式文件系统、远程数据存储或其它存储装置。

*阶段7(写入输出-w2):写入输出阶段表示写入业务流程活动的输出(例如,写到执行引擎上)。应注意,w2表示阶段r2的相反阶段。

阶段属性:阶段可由开发人员、设计者或程序员使用阶段属性的示例性集合进行标记:安全、不安全、幂等、非幂等、自主和/或非自主(可界定其它属性)。每个阶段可标记有一个属性或属性的组合。例如,阶段可为安全、幂等和自主的,或可为安全、非幂等和非自主的。

*安全(或不安全)阶段表示不以无法回退修改的方式修改资源的实施方案。例如,阶段x1可根据阶段r1和r2中所收集的数据,使用专用(本地)软件库来计算积分的复杂数学计算。由于在阶段x1执行期间没有修改资源,所以阶段x1标示为安全。相比之下,将新记录添加到数据库的阶段x1被标示为不安全,因为数据存储的状态发送改变。

*幂等(或非幂等)阶段表示可重复调用而不会产生不同结果的实施方案。例如,多次从执行引擎中读取活动的输入不改变所读取的值。在另一示例(例如,相对于安全阶段实施方案论述的示例)中,数次调用阶段x1以计算积分总是会产生相同的结果。在又另一示例中,实施将远程文件复制到本地文件系统(其可替换具有相同名称的现有文件)的阶段r2标示为幂等,因为可多次调用动作而不会产生不同结果(即,阶段的每次执行的结果始终相同)。在另一示例中,在每次执行期间实施将新的和/或不同的记录添加到数据库中的指令的阶段x1标示为非幂等。

*自主(或非自主)(又称为独立或非独立或依赖)阶段独立于其它阶段。例如,允许独立阶段r2(或独立阶段r2能够)读取后续将在阶段x1中进行处理的数据集,而不需要来自阶段r1的任何额外数据。在调度期间,引擎验证考虑到了阶段之间的(即,非独立阶段之间的)依赖性。如图7中所描绘,阶段r2、x1、x2、x3、w1和w2取决于阶段r1的结果。当一个阶段中需要另一阶段中产生的数据时,可出现依赖性。例如,当阶段r2进入分布式文件系统,而此系统需要阶段r1中从bpm引擎获得的登录和口令时,在r2和r1之间存在依赖性。作为另一示例,r1的执行可取决于来自bpm引擎的输入。

阶段属性使bpm引擎(例如,编排引擎、图6的bpm引擎602的多阶段活动管理器606组件)能够标示阶段的调度,从而改进计算效能(例如,就时延和/或吞吐量而言)。例如,可抢先调用自主和安全阶段。当阶段标示为幂等时,可将相应阶段数次调用为例如处理异常(例如,阶段x2)和/或避免不必要的、代价高的实例失败(例如,阶段x3)的流程。可停止执行标示为依赖的阶段,等待所述依赖阶段所依赖的阶段完成执行。

在308处,根据语义分析(例如,从多个可用域中)选择针对一个或多个业务流程活动的域。可替代地,例如,由用户手动地和/或由代码指令自动地预定义针对每个业务流程活动的域。

可由处理单元406例如通过将语义标记映射到域的映射函数、接受语义标记作为输入并输出域的统计分类器、查找表或其它方法执行所述选择。

域可表示业务流程活动的通用分类,例如,大数据处理、分布式应用程序和数据库管理。

在310处,由处理单元406根据所选域选择域特定调度规则集合。每个域可与被设计成基于相应的域改进阶段的调度的一个或多个调度规则集合相关联。域特定调度规则可作为例如脚本、文本指令、代码或其它实施方案而存储在存储单元410(和/或另一存储单元)的域特定规则储存库410a中。

任选地,域特定调度规则集合包含阶段执行探试法。阶段执行探试法可包含一个或多个机器学习方法,例如,统计分类器。阶段执行探试法可使用机器学习方法界定阶段执行的结果的分析(例如,就阶段之间的差错、时延、吞吐量、数据传送而言)以改进阶段的调度。阶段执行探试法可通过学习和/或分析当前和/或历史执行结果来改进未来的阶段调度。阶段执行探试法可任选地由程序员手动进行预定义。程序员可例如通过标示活动模式、阶段标记和/或其它语义和/或规则来对阶段的代码(例如,指令)进行分类和/或表征。以此方式,程序员向处理单元406提供关于执行相应阶段的效果的信息,所述信息可用于根据包含阶段执行探试法的域特定调度规则集合对业务流程活动和/或阶段的执行进行调度。

任选地,域特定调度规则集合诱发(业务流程活动中的一个或多个业务流程活动的)阶段在它们本身之间进行重新调度。可在每个业务流程活动的阶段内执行重新调度,而无需考虑其它业务流程活动的其它阶段。可替代地或另外,域特定调度规则集合诱发在一个或多个其它业务流程活动的阶段之间对某一业务流程活动的阶段的重新调度。考虑到其它业务流程活动的调度而执行所述重新调度。以此方式,可同时改进多个业务流程活动的执行效能。

任选地,由计算单元402从共享储存库(例如,域特定规则储存库410a)中获取域特定调度规则集合。共享储存库可由用于对阶段的执行进行重新调度的多个其它类似计算单元416(例如,同时)存取。共享储存库允许多个计算单元在相同或类似域内使用相同的域特定规则集合,以对任选地不同业务流程活动的阶段进行调度。共享储存库允许各自处理相同业务流程活动的不同阶段的多个计算单元使用共同调度规则,这使不同的计算单元能够协调阶段的调度。

任选地,域特定调度规则集合包含用于分布(相同和/或不同业务流程活动的)相应阶段的处理以供多个执行资源处理的指令,所述执行资源例如执行计算系统418的不同计算集群。多阶段业务流程活动可由多个计算单元(402和/或416)管理。每个计算单元402和/或416可管理正由执行计算系统418执行的业务流程活动的一个或多个阶段。所述架构提供高效能地处理大量业务流程活动(其可包含大量阶段)的可扩展性。

在312处,处理单元406(例如,图7的多个阶段活动管理器704)创建一个或多个新的执行顺序。根据域特定调度规则集合,例如,根据域所选择的状态机,通过对业务流程活动中的每一个业务流程活动的阶段进行调度来创建所述新的执行顺序。

现返回参看图7,多个阶段活动管理器704(其可对应于图4的处理单元406)管理多个阶段活动模式702。可例如使用状态机706、链表、图表或表示每个阶段的当前状态和/或阶段之间的关系的其它数据结构,对每个业务流程活动的进程进行控制和/或管理。状态机706的箭头连接状态(表示为由箭头连接的圆),阶段表示输入(i1)从活动管理器704到(多个阶段活动702的)相应阶段的传送以及输出(o1)从(多个阶段活动702的)相应阶段到活动管理器704的传送。多阶段活动管理器704可经由api(应用编程接口)709或其它接口(例如,软件开发工具包(softwaredevelopmentkit,sdk))而与多个阶段活动702的每个阶段交互。

相比于处理单阶段业务流程活动的编排引擎,所界定的事件(例如,中断、信号、网络消息、接口代码或其它电子传输)的数目在处理每个业务流程活动的多个阶段的计算单元402中扩展。例如,除了用于单阶段系统的事件(例如,start_activity、activity_completed和activity_failed)之外,每个阶段n还可界定额外的示例性事件:start_phase_n、phase_n_completed和phase_n_failed。

当多阶段状态机706的状态改变时,可产生事件。例如,当令牌被放置在r1中时,产生事件start_phase_r1(在图7中用e1表示)。活动管理器704使用api708来调用阶段r1,并发送输入i1,期望接收输出o1。当相应阶段完成执行时,事件phase_r1_completed(在图7中用e2表示)被发送到活动管理器704,所述活动管理器704根据状态机决定待执行的下一阶段(和/或决定阶段执行的重新调度)。当接收到事件phase_r2_completed时,产生到状态x1的过渡。活动管理器704以不同方式处理事件phase_r2_failed,这可取消实例执行或执行恢复阶段x2。多阶段状态机706开始于状态r1,并改变其状态直到其到达状态w2。

现返回参看图3和图4,计算单元402(例如,图7的多阶段活动管理器704和/或图6的多阶段活动管理器606)的处理单元406基于域特定调度规则集合对业务流程活动的阶段进行调度,所述集合可包含阶段的当前状态(例如,如由图7的有限状态机706等状态机界定)、所产生的事件(例如,phase_n_completed、phase_n_failed),和/或阶段属性(例如,安全、幂等和自主)等语义。

多阶段活动管理器704使用有限状态机(finitestatemachine,fsm)706或多阶段活动控制器的另一实施方案来创建每个业务流程活动的阶段的新的调度表(即,执行顺序)。fsm706可由多阶段控制表格(例如,图6的表格608)自动产生,所述表格任选地表示状态表。多阶段控制表格608可存储在存储单元410中,任选地在与特定域相关联的域特定规则储存库410a中。

多阶段控制表格608(或其它域特定规则实施方案)可手动界定(例如,通过程序员使用用户接口412和/或显示器414)和/或自动产生(例如,由代码自动产生),以将所产生的状态机(或其它控制器实施方案)的所要行为反映为例如脚本、以域特定语言写入的规则集合、汇编代码或其它实施方案。可创建用于流程操作的域的定制控制器(例如,状态机)。通过使用阶段属性(例如,安全、幂等和自主)和阶段之间的循序依赖性,可自动产生基础控制器(例如,fsm)。

任选地,状态机和/或其它域特定规则集合可由正被执行的多个(例如,全部)流程模型共享。每个流程模型可包含可存取状态机和/或其它域特定规则集合的多个业务流程活动,所述域特定规则集合可存储在域特定规则储存库410a中,所述储存库410a可由执行其它业务流程活动和/或其它流程模块的代码(例如,相同计算单元402和/或另一计算单元416上的代码)接入。例如,其它计算单元416可使用网络连接、api或其它软件和/或硬件接口来接入域特定规则储存库410a。

现参看图8,图8是根据本发明的一些实施例实施为有限状态机802的示例性多阶段活动控制器的示意图。fsm802(其表示域特定规则的实施方案)界定对于业务流程活动的阶段的新执行顺序的创建。fsm802表示当阶段x1独立于阶段r1和r2的结果时,一旦业务流程活动实例开始执行,就可对x1进行调度。当阶段r1标示为幂等,并且阶段r1的执行已失败多达x次时,可重新执行阶段r1(即,由于r1标示为幂等,因此多次调用阶段r1将不会产生不一致的实例状态或其它差错)。

通过跟踪业务流程活动的阶段的当前状态,多阶段活动控制器(例如,fsm)802可充当调度控制器和/或阶段监测数据结构,其存储执行业务流程活动的当前状态(即,执行进程)。通过监测业务活动流程的独立阶段的状态,fsm802证明了相比监测单阶段业务流程活动的bpm引擎更佳的监测能力。细粒度状态描述供处理单元406用于执行高级调度决策,和/或创建阶段的新的执行顺序。例如,当阶段x1完成执行时,如果阶段r1并不具有实施方案,可对之后的活动进行调度,因为所述之后的活动并不取决于由bpm引擎供应的输入。

现返回参看图6,高级流程实例管理器610(例如,存储器404中存储的由图2中的计算单元402的处理单元406执行的代码)创建流程模型的业务流程活动的新的执行顺序(即,调度表)。当业务流程活动完成执行时,业务流程活动告知活动管理器606(例如,通过使用api、传输消息、产生中断或其它实施方案),所述活动管理器606对随后一个或多个业务流程活动进行调度。

高级流程实例管理器610包含用于管理由终端用户创建(例如,使用专用软件,通过脚本、规则集合、使用代码、使用域特定语言、使用接口或其它方法手动进行界定)的流程模型的协调机制。fsm可一次产生,并由实例管理器610执行的流程模型(例如,全部模型或子集)共享和/或重复使用。阶段的执行的调度由bpm引擎602(例如,存储器404中存储的由处理单元406执行的代码)执行。流程模型如何进行编排的定义由终端用户手动界定。由于终端用户不需要处理阶段调度的低层级实施方案,因此可通过较不复杂和/或更迅速的方式构建流程模型。用户可集中于流程模型的更高层级的抽象实施方案。

现参看图9,图9的示意图表示根据本发明的一些实施例的用于参看图6所论述的组件的示例性值。高级流程实例管理器610从调度策略表格612(例如,存储在存储单元410中,任选地在域特定规则储存库410a中)读取高级调度策略(例如,实施为脚本、文件、代码,以域特定语言实施,或其它实施方案)。关于正在执行哪些阶段的反馈由多阶段活动管理器606产生,并由高级流程实例管理器610接收。根据用于域的调度策略(即,域特定规则集合),基于对被执行阶段的状态的分析,高级流程实例管理器610创建用于随后一个或多个活动的执行的调度表。

调度策略表格612具有示例条目,其界定了当活动a完成阶段x1的执行时,高级流程实例管理器610可对活动b、c和d的阶段r1的执行进行调度(针对具有形式a异或(b、c、d…)的结构的流程模型)。

调度策略表格612存储供高级流程实例管理器610使用以改进bpm引擎602和/或执行计算系统的效能的策略(即,域特定规则)。规则集合可基于阶段之间的相互作用,以改进效能。

调度策略表格612(或其它域特定调度规则)为高级流程实例管理器610提供一定程度的灵活性。表格612基于其它业务流程活动阶段的完成来界定新的业务流程活动和相应阶段的调度。表格612(或其它域特定规则集合)改进bpm引擎和/或处理单元和/或执行计算系统的效能。

描述了在本文被称为及早执行(eagerexecution)的示例性策略(即,域特定规则)。及早执行基于推测性执行,其中执行网关(例如,或门、与门、异或门)的全部传出活动。基于本文中所描述的多阶段设计,启用及早执行。相比而言,在单阶段bpm引擎中,仅在当前活动(对活动执行管理器来说是已知的)完成执行时,才对下一活动进行调度以供执行。与单阶段bpm引擎相反,处理单元406(其对多个阶段的执行进行调度)开始相应网关的全部传出业务流程活动(或所述活动的所选子集)的执行。根据存储在调度策略表格612中的域特定规则,可通过开始活动的阶段(例如,独立阶段)中的任一阶段(或子集)开始执行所述活动。当网关的控制流变为已知(例如,通过业务流程活动的执行阶段创建的状态事件已知)时,对不当执行的业务流程活动的阶段进行回退或忽略(当所述阶段被标示为安全语义时)。

参看图9描述及早执行域特定规则的示例。实施及早执行策略(例如,存储在储存库410a和/或表格612中)的域特定规则集合的示例包含:

针对流程模型:a异或(b、c、d…),执行

如果phase_x1_completed(a),那么

开始

start_phase_r1(b)和

start_phase_r1(c)和

start_phase_r1(d)

结束

针对具有形式a异或(b、c、d…)的结构的流程模型,当活动a完成阶段x1时,高级流程实例管理器610对活动b、c、d…的阶段r1的执行进行调度。当网关的控制流变为已知时,例如,通向活动b的路径时,将对在c、d…的情况下执行的阶段进行回退或忽略。由于只有读取阶段被执行且在语义上被标记为安全,所以可简单地忽略读取阶段。当活动b的r1完成时,多阶段活动管理器606协调之后的阶段(即,r2、x1…)的执行。及早执行在知道是否需要相应的业务流程活动之前执行所述业务流程活动,这防止或减少了以另外方式因仅在知道是否需要基于所执行业务流程活动的数据之后执行所述业务流程活动所引发的延迟(并由此提高了效能)。

用于创建新的调度顺序的域特定规则的另一示例在本文中被称为预测执行。预测执行为推测性执行的一种形式,其中预测网关(例如,或门、与门、异或门)的控制流(即,传出支路)。执行沿着预测支路前进,直到接收到网关的实际结果。当预测正确时,允许实施预测活动/阶段执行。当存在误预测时,回退活动/阶段执行,并经由正确支路重新执行。可例如通过使用历史数据、数据挖掘和/或对位进行支化以决定沿行哪个传出支路来改进支路预测。

用于创建新的调度顺序的域特定规则的又一示例在本文中被称为数据预取。数据预取是一种数据存取时延隐藏技术,其可用于减少数据存取时间。例如,可在业务流程活动的阶段r2被语义标记为安全和自主时抢先执行所述阶段。数据获取能在数据被请求之前将数据引近阶段x1或x2的计算处理器,这降低了时延。

现参看图10,图10的示意图以图形方式描绘了根据本发明的一些实施例用于创建被称为早期输出的新调度顺序的域特定规则的又一示例。相比其中仅在已知活动为流程实例的执行的部分时才对活动进行调度的单阶段bpm引擎,早期输出使图6的流程实例管理器610(和/或图4的处理器406)能够更早地创建调度表。例如,示意图1002描绘了在没有实施早期输出域特定规则的情况下的调度。当活动a在时间t2完成执行时,对业务流程活动b、c或d进行调度以供执行。实例管理器610等待业务流程活动a的完成,因为活动a为异或网关(即,仅沿行一个传出路径)。相比而言,示意图1004描绘了通过实施早期输出域特定规则的调度(即,新的执行顺序的创建)。在活动a完成之前,对业务流程活动b、c或d的执行进行调度。当来自活动a的阶段x1在时间t1(应注意,t1<t2)完成时,可执行新的执行顺序的创建。

任选地,所创建的执行顺序包含:释放业务流程活动中的一个业务流程活动所使用的资源(例如,数据库、文件、存储位置、网络通信接口)用于业务流程活动中的另一个业务流程活动(确定其需要所述资源),而此时所述另一个业务流程活动尚未完全执行。可在业务流程活动开始执行之前释放资源,这样当另一个业务活动开始执行时,所述另一个业务活动流程可利用所述资源,而不必等待并经历一定延迟。多阶段活动通过在较短时间段内使用资源而简化了资源的使用。相比于例如可从业务流程活动的执行开始直到业务流程活动的执行完成一直锁定数据库交互的单阶段引擎,在需要资源的阶段期间锁定资源(在不使用所述资源时解除资源锁定)。

任选地,例如通过执行计算系统418的多个不同处理器420中的一个,和/或以分布式方式通过执行计算系统418的多个计算集群(例如,处理单元420),根据针对执行的新执行顺序对多个阶段进行调度。可根据每个阶段的处理要求选择处理器,这可改进执行效能。可在分布式系统中执行阶段(这可提高计算效能),所述分布式系统可为非均质分布式系统和/或均质分布式系统。

执行计算系统419的示例性处理器420(其可作为分布式系统的部分被组织为计算集群,和/或以非分布式方式独立地使用)包含以下各项中的一个或多个:一个或一群图形处理单元(graphicsprocessingunit,gpu)核心处理器、分布式处理单元,以及多核处理系统的多个处理单元。

所创建的新的执行顺序可包含呈现不同执行次序和/或可与其它阶段并行执行的阶段,这不同于在所创建的新执行顺序之前接收到的阶段执行顺序(例如,如在方框304中接收到的)。任选地,所创建的新的执行顺序包含:按相应的执行顺序(即,如在创建新的顺序之前在方框304中接收到的)先于第二阶段(与某一业务流程活动相关联)的(与同一业务流程活动相关联的阶段的)第一阶段按新的执行顺序在所述第二阶段之后。阶段的执行调度表的重排能改进处理单元和/或执行计算系统的效能。

在314处,分配资源以用于业务流程活动的阶段的执行。可从执行计算系统418分配资源,例如,从一个或多个处理单元420、一个或多个存储单元422和/或一个或多个计算集群(其可被组织为包含与相应的存储单元422配对的处理单元420)分配资源。资源分配可由计算单元402和/或调度器计算单元执行。资源可进行动态地分配。资源可以分布式方式进行分配,从而执行阶段的分布式处理。

任选地,在第二业务流程活动正在执行时,分配一个或多个资源以用于第一业务流程活动的执行。所述一个或多个资源可由第二业务流程活动使用。可以根据所创建的调度表对第一业务流程活动进行当前正由第二业务流程活动使用的资源的分配,这使第一业务流程能够较短延迟地(例如,在第二业务流程活动完成之后开始执行第一业务流程活动的时间)使用所述资源。

已出于说明的目的呈现本发明的各种实施例的描述,但所述描述并不意欲为穷尽性的或限于所公开的实施例。在不脱离所描述实施例的范围和精神的情况下,所属领域的技术人员可明白多个修改和变化。本文中所使用的术语选择为最佳解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或使所属领域的一般技术人员能够理解本文所公开的实施例。

预期在从此申请开始的专利成熟化的时间期间,将开发出许多相关的业务流程活动,术语业务流程活动的范围意欲先验地包含全部此类新的技术。

本文所使用的术语“大约”是指±10%。

术语“包括”、“包含”、“具有”以及其同源词表示“包含但不限于”。这个术语涵盖了术语“由……构成”以及“基本上由……构成”。

短语“基本上由……构成”意指组成物或方法可以包含额外成分和/或步骤,但前提是所述额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。

除非上下文中另有明确说明,否则本文中使用的单数形式“一个”和“所述”包含复数含义。例如,术语“组成物”或“至少一种组成物”可以包含多个组成物,包含其混合物。

此处使用的词“示例性的”表示“作为一个示例、实例或说明”。任何“示例性的”实施例并不一定理解为优先于或优越于其他实施例,和/或并不排除其它实施例特点的结合。

本文中使用的词语“任选地”表示“在一些实施例中提供且在其他实施例中没有提供”。本发明的任意特定的实施例可以包含多个“任选的”特征,除非这些特征相互矛盾。

在整个本申请案中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的个别数值。例如,对例如从1到6的范围的描述应被认为是已经具体地公开子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及所述范围内的个别数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。

当此处指出一个数字范围时,表示包含了在指出的这个范围内的任意所列举的数字(分数或整数)。短语在第一个所指示的数和第二个所指示的数“范围内”以及“从”第一个所指示的数“到”第二个所指示的数“范围内”在本文中可互换使用,且表示包含第一个和第二个所指示的数以及二者之间所有的分数和整数。

应理解,单个实施例中也可以组合形式提供本发明的某些特征,这些特征在单个实施例的正文中有清晰的描述。相反地,本发明的各个特征在单个实施例的正文中有简短的描述,也可以分别提供这些特征或任何适合的子组合或者作为本发明所述的任何合适的其他实施例。不可认为各个实施例的正文中所描述的某些特征是这些实施例的必要特征,除非没有这些元素,所述实施例无效。

此处,本说明书中提及的所有出版物、专利和专利申请案都通过全文引用的方式并入在本说明书中,同样,每个单独的出版物、专利或专利申请案也经具体且单独地指示以通过引用的方式并入本文中。此外,对本申请的任何参考的引用或识别不应被理解为允许这样的参考作为优先于本发明的技术使用。就使用节标题而言,不应该将节标题理解成必要的界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1