CN114648281A - 基于对象设计模式的流程建模编排方法以及装置 - Google Patents
基于对象设计模式的流程建模编排方法以及装置 Download PDFInfo
- Publication number
- CN114648281A CN114648281A CN202011494329.XA CN202011494329A CN114648281A CN 114648281 A CN114648281 A CN 114648281A CN 202011494329 A CN202011494329 A CN 202011494329A CN 114648281 A CN114648281 A CN 114648281A
- Authority
- CN
- China
- Prior art keywords
- objects
- action
- instance
- task
- modeling
- 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; 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/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及基于对象设计模式的流程建模编排方法以及装置,其中该方法包括对象建模步骤和流程动态编排步骤,具体包括:对象生成步骤,将各个业务元素抽象为对象,创建为类树状分层对象模型;标注步骤,对对象的属性、约束、关系进行标注;动作映射步骤,建立业务动作与对象动作的动作映射关系;任务建立步骤,从上游系统接收业务动作任务,建立待执行任务池;初始化步骤,初始化对象实例空间和实例关系树;动态编排执行步骤,读取所述分层对象模型,依照动态编排规则来进行流程的动态编排;以及任务归档步骤,将编排完成后的对象实例空间和实例关系树进行归档,以供此后流程编排时引用。
Description
技术领域
本公开总体上涉及计算机通信技术领域,更具体地涉及基于对象设计模式的流程建模编排方法以及装置。
背景技术
随着计算机和通信技术的发展,各行业普遍存在数字化转型的需求。在各个行业的业务中,都会涉及流程编排的问题。从技术实现角度看,现有技术绝大部分都停留于静态编排阶段,即在部署或运行之前,需确定业务流程的执行过程和分支逻辑,形成流程模板。而由于业务日趋庞杂,流程模板设计通常需要花费较大的人力成本。
以电信业为例,随着通信技术的演进,面向未来的第五代移动通信(the FifthGeneration,5G)技术作为最新一代蜂窝移动通信技术正逐步普及。由于基础设施的不断升级,运营商面临大量5G业务加载、云网融合、跨地区业务平台搭建等新的复杂任务。对此,电信管理论坛(TeleManagement Forum)提出了“PSR(Product-Service-Resource,产品-服务-资源)模型”的理念,即产品由服务实现,服务包括面向客户的服务即CFS(CustomerFacing Service)和面向资源的服务即RFS(Resource Facing Service),其中面向客户的服务即CFS基于面向资源的服务RFS而实现,而服务整体上基于资源即RES(Resource)而实现。
具体而言,例如在运营商内部,通常存在数百种接入产品及功能产品,每种产品都由不同的资源服务和资源实体来实现,各种产品都有装、拆、移、改、停、复等多种业务动作,以现有的静态流程编排技术,往往需要绘制上千张图表作为流程模板才能对流程进行完整描述。另外,电信各种业务之间存在着千丝万缕的联系,互相依赖和影响的关系非常杂乱,最终形成的流程模板也极为复杂。再加上各地区之间业务的差异,基于现有技术的流程模板的创建和维护日益变得异常复杂而难以顺畅进行。
针对如上述那样的业务元素数量众多、关联繁杂、业务逻辑繁琐的场景,传统流程图等现有流程编排模式具有在表达流程时设计困难、不易理解、劳动投入大以及后期难以维护等诸多问题,已难以适应当前各行业中业务日益复杂化的趋势。各行业尤其是电信行业急需新的流程编排模式作为解决方案。
发明内容
针对当前各行业尤其电信行业急需新的流程编排模式的问题,研发人员正在考虑基于上述PSR模型,将能力分层解耦,对原子能力进行编排。本公开的目的在于提供一种基于对象设计模式的流程建模编排方法以及装置,通过基于对象设计模式的流程建模和动态编排方法,使得流程设计的复杂度和成本降低,效率提高,并且便于后期扩展和维护。
在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
根据本公开的一个方面,提供一种基于对象设计模式的流程建模编排方法,包括对象建模步骤和流程动态编排步骤,该流程建模编排方法的特征在于,
所述对象建模步骤包括如下步骤:
(1)对象生成步骤,针对要编排的流程中涉及的实际业务的多个业务元素,将各个业务元素抽象为对象,创建并组织为类树状分层对象模型;
(2)标注步骤,对所述分层对象模型中的对象的属性、约束、关系进行标注;以及
(3)动作映射步骤,在所述分层对象模型中,将业务动作抽象为对象动作,建立业务动作与对象动作的动作映射关系,所述对象动作包括对象的创建、销毁和修改,
所述流程动态编排步骤由动态编排引擎执行,包括如下步骤:
(4)任务建立步骤,从上游系统接收业务动作任务,根据所述分层对象模型和所述动作映射关系将所述业务动作任务转换为对象动作任务,建立待执行任务池;
(5)初始化步骤,初始化对象实例空间和实例关系树,在对象为全新创建的情况下,实例空间为空,否则装载所有己有对象及对象关系;
(6)动态编排执行步骤,读取所述分层对象模型,提取其中的对象及所标注的属性、约束、关系,依照动态编排规则来进行流程的动态编排,将所述业务动作任务转换为外部API(Application Programming Interface,应用程序编程接口)来依次调用;以及
(7)任务归档步骤,将编排完成后的对象实例空间和实例关系树进行归档,以供此后流程编排时引用。
根据本公开的另一个方面,提供一种流程建模编排装置,其包括:存储器,其上存储有指令;以及处理器,被配置为执行存储在所述存储器上的指令,以执行根据本公开的上述方面所述的流程建模编排方法。
根据本公开的又一个方面,提供一种计算机可读存储介质,其包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据本公开的上述方面所述的流程建模编排的方法。
根据本公开的再一个方面,提供一种计算机程序产品,其包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现根据本公开的上述方面所述的流程建模编排的方法的步骤。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更清楚地理解本公开,其中:
图1示出了根据本公开的实施例的基于对象设计模式的流程建模编排方法100的示例性流程图;
图2示出了使用根据本公开的实施例的基于对象设计模式的流程建模编排方法100而得到的分层对象模型200的示例性示意图;
图3示出了用于详细说明根据本公开的实施例的基于对象设计模式的流程建模编排方法100的流程动态编排步骤S100B的示例性流程图;
图4示出了根据本公开的实施例的流程建模编排方法100被应用于移动业务场景时的流程建模编排的具体实施过程中的分层对象模型200’的示例性示意图;
图5示出了可以实现根据本公开的实施例的计算设备500的示例性配置。
具体实施方式
参考附图进行以下详细描述,并且提供以下详细描述以帮助全面理解本公开的各种示例实施例。以下描述包括各种细节以帮助理解,但是这些细节仅被认为是示例,而不是为了限制本公开,本公开是由随附权利要求及其等同内容限定的。在以下描述中使用的词语和短语仅用于能够清楚一致地理解本公开。另外,为了清楚和简洁起见,可能省略了对公知的结构、功能和配置的描述。本领域普通技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以对本文描述的示例进行各种改变和修改。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,而在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。本公开内容的技术能够应用于各种产品。
为便于理解和说明,作为根据本公开的实施例的基于对象设计模式的流程建模编排方法以及装置,主要以电信行业目前为止的5G网络架构的例子进行说明,但这不是限制性的。本公开的技术不仅可以应用于任意通用的网络架构,例如现有的任意网络架构或者未来通信系统的网络架构等;也不仅可以应用于电信行业,而是可以应用于其它各个行业的任意合适的场景。
以下,首先对根据本公开的实施例的基于对象设计模式的流程建模编排方法的整体流程进行说明。图1示出了根据本公开的实施例的基于对象设计模式的流程建模编排方法100的示例性流程图。优选地,根据本公开的实施例的基于对象设计模式的流程建模编排方法100可以由例如作为流程建模编排产品的动态编排引擎执行,总体上划分为对象建模步骤S100A和流程动态编排步骤S100B,其中对象建模步骤S100A可以包括下述的步骤S110~S130,流程动态编排步骤S100B可以包括下述的步骤S140~S170。各个步骤S110~S170的详情如下:
对象生成步骤S110:针对要编排的流程中涉及的实际业务的多个业务元素,将各个业务元素抽象为对象,创建并组织为类树状分层对象模型。
标注步骤S120:对所述分层对象模型中的对象的属性、约束、关系进行标注。
动作映射步骤S130:在所述分层对象模型中,将业务动作抽象为对象动作,建立业务动作与对象动作的动作映射关系,所述对象动作包括对象的创建、销毁和修改。更具体地,其中的修改是针对属性而进行的,针对不同属性的修改可以对应于不同的业务动作。非叶子对象对应的业务动作由对其子对象进行相关动作编排来实现,在此可以理解为内部API;叶子对象对应的业务动作由外部系统提供的外部API来实现。在此,所述外部API定义了业务动作的实际执行者和调用方法,也是流程编排实际的作用对象;为了便于管理而优选为对于外部API统一规范命名和调用格式,参见例如下文表1的例子,例如命名格式为“对象名称_动作类型”,调用格式为“对象名称_动作类型(属性A=值a,属性B=值b,……)。
任务建立步骤S140:所述动态编排引擎从上游系统接收业务动作任务,根据所述分层对象模型和所述动作映射关系将所述业务动作任务转换为对象动作任务,建立待执行任务池(TaskPool);
初始化步骤S150:所述动态编排引擎初始化对象实例空间(ObjectInstSpace)和实例关系树(ObjectInstTree),在对象为全新创建的情况下,实例空间为空,否则装载所有己有对象及对象关系;
动态编排执行步骤S160:所述动态编排引擎读取所述分层对象模型,提取其中的对象及所标注的属性、约束、关系,依照动态编排规则来进行流程的动态编排,将所述业务动作任务转换为外部API来依次调用;以及
任务归档步骤S170:将编排完成后的对象实例空间(ObjectInstSpace)和实例关系树(ObjectInstTree)进行归档,以供此后流程编排时引用。
其中,在初始化步骤S150中,在电信行业的移动业务应用场景下,所谓的对象为全新创建的情况,例如可以是个人用户新开通移动业务、即新开通手机号卡业务的情况等。
接下来,为使得本公开更易于理解,图2示出了使用根据本公开的实施例的基于对象设计模式的流程建模编排方法100而得到的分层对象模型200的示例性示意图。具体而言,该分层对象模型200是针对移动业务场景而创建的,为了便于描述,仅挑选了部分代表性业务元素。如之前根据图1所说明的,优选为在对象建模步骤S100A的对象生成步骤S110中,针对要编排的流程中涉及的实际业务的多个业务元素,将各个业务元素抽象为对象,创建并组织为类树状分层对象模型。为便于说明,图2中也示出了对部分对象的属性、约束、关系等的标注。
如图2所示,由于该分层对象模型200的创建总体上基于前述PSR模型即“产品-服务-资源模型”的理念,其最上层的对象ROOT作为根节点,可以理解为对应于PSR模型中的产品。ROOT之下有3个对象“移动语音CFS 210”、“移动数据CFS 220”和“彩铃CFS230”作为子节点。进而,对象“移动语音CFS 210”之下有两个对象“2G语音RFS 211”和“VoLTE(Voice overLong-Term Evolution,长期演进语音承载)语音RFS 212”作为子节点,对象“移动数据CFS220”之下有4个对象“2G互联网RFS 221”、“3G互联网RFS 222”、“4G互联网RFS 223”和“5G互联网RFS 224”作为子节点,对象“彩铃CFS 230”之下有3个对象“2G语音彩铃RFS231”、“VoLTE语音彩铃RFS 232”和“视频彩铃RFS 233”作为子节点。
类似地,在作为上层RFS的对象“2G语音RFS 211”等之下,可以还具有作为下层RFS的对象的一个以上的子节点,例如在对象“2G语音RFS 211”之下还有两个对象“2G UIM(User Identity Module,户识别模块)鉴权RFS 211a”和“2G核心网语音RFS 211b”作为子节点。其它作为上层RFS的对象所具有的作为下层RFS的对象“VoLTE语音功能RFS 212a”~“5G核心网数据224b”如图2所示,此不赘述。
需要注意的是,在此该分层对象模型200具有类树状结构,其与树状结构的区别在于部分子节点存在复用的情况。例如其中的对象“2G UIM鉴权RFS 211a”既是对象“2G语音RFS 211”的子节点,也作为对象“2G互联网RFS 221”的子节点。
在图2的分层对象模型200中,位于最下层的RFS节点之下还具有对应于PSR模型中的资源(RES,Resoucre)的子节点。为了便于下文的说明,图2中仅针对部分涉及4G和5G业务的下层RFS对象节点示出了它们具有的例如“HSS(Home Subscriber Server,归属签约用户服务器)”和“UDM(Unified Data Manager,统一数据管理平台)”这两个对象作为子节点。
优选地,在所述分层对象模型200中,在父对象和子对象之间,父对象由子对象的全部或部分构成或实现,构成或实现的规则由子对象的约束来定义。接下来,如之前根据图1所说明的,优选为在对象建模步骤S100A的标注步骤S120中,对所述分层对象模型200中的对象的属性、约束、关系等进行标注。其中,所述对象的属性可以是指该对象拥有的标识、特性或选项的描述;例如,所述对象的属性可以描述所对应的业务元素所具有的标识、特性、功能、指标、状态等特征类型的定义和取值范围。所述对象的约束可以是指对子对象的数量和子成员间的关系、是否需要创建和保留的条件表达式的表达;例如对象的约束可以描述子对象实例的存在条件,用逻辑表达式表示,其中逻辑表达式的原子表达式可以是对象实例是否存在的判别,也可以是对象实例属性取值的判别。所述对象的关系是指多个对象所对应的多个业务元素之间的相互依赖、影响的表达。
更具体而言,参照图2,关于对象的属性,例如对象“彩铃CFS230”被标注的属性包括彩铃类型,其中彩铃类型可以在“语音”和“视频”两个选项中选取。关于对象的约束,主要基于外部对象及外部对象的属性来表达,例如对于对象“2G语音彩铃RFS 231”标注的约束被表达为“NotExists(VoLTE语音RFS)”,即对象“2G语音彩铃RFS 231”的存在条件是作为外部对象的VoLTE语音RFS 212不存在。关于对象的关系,主要包括各对象之间的相互依赖和影响。其中依赖关系描述了业务元素之间的依存关系,例如当节点A依赖于节点B时,表示只有B存在,A才可能存在,如果A存在则B必然存在。影响关系则描述了业务元素之间的单向作用关系,例如当节点C影响节点D时,表示如果节点C发生变化,则节点D必然发生相应变化,反之如果节点D发生变化,则节点C不一定受影响。例如对于图2中的对象“VoLTE语音RFS212”标注的关系包括“依赖于:4G互联网RFS”和“影响:2G语音彩铃RFS、VoTLE语音彩铃RFS、视频彩铃RFS”,其中关系“依赖于:4G互联网RFS”表示只有当对象“4G互联网RFS 223”存在时,对象“VoLTE语音RFS 212”才可能存在,而对象“VoLTE语音RFS 212”的存在意味着对象“4G互联网RFS 223”必然存在;而关系“影响:2G语音彩铃RFS、VoTLE语音彩铃RFS、视频彩铃RFS”表示如果对象“VoLTE语音RFS 212”发生变化,则对象“2G语音彩铃RFS 231”、“VoTLE语音彩铃RFS232”和“视频彩铃RFS 233”必然发生变化,反之如果对象“2G语音彩铃RFS 231”、“VoTLE语音彩铃RFS 232”或“视频彩铃RFS233”发生变化,则“VoLTE语音RFS 212”不一定发生变化。
接下来,返回图1的流程建模编排方法100的流程图,作为对象建模步骤S100A中的第3步的动作映射步骤S130,在所述分层对象模型200中,将业务动作抽象为包括对象的创建、销毁和修改的对象动作,建立业务动作与对象动作的动作映射关系,以完成后继的流程动态编排步骤S100B的准备工作。至此,分层对象模型200构建完成。
根据以上方式创建分层对象模型200,由于采用了基于对象设计模式的业务流程建模方式,用业务元素的父子、依赖、影响等关系表述流程执行的先后次序及事件触发机制,用业务元素的约束和存在条件来表达流程执行的分支,使得模型的表现形式和业务逻辑表述变得更贴近实际业务,从而更易于理解;并且能够充分利用对象的封装、隔离、继承、多态等特性,简化了流程设计的复杂度,极大提升了流程设计的效率和可控性,提高了流程设计的复用性和可扩展性,也便于后期维护。通过将对象设计模式引入流程编排和设计,与传统的基于过程建模的流程编排和设计相比,使得流程设计过程更简单、高效、灵活,设计效率得到极大提高,尤其能够满足如电信行业这样的业务元素众多且业务逻辑特别复杂的业务场景需求。
接下来,进一步结合实例对流程动态编排步骤S100B的详情进行说明。在流程动态编排步骤S100B中,总体上利用动态编排引擎根据前述的通过对象建模步骤S100A而创建的分层对象模型200和将在后说明的动态编排规则来实现流程的动态编排。如上文参照图1所说明的,流程动态编排步骤S100B包括步骤S140~S170。以下进一步对步骤S140~S170进行更为详细的分解说明。
图3是根据用于详细说明根据本公开的实施例的基于对象设计模式的流程建模编排方法100的流程动态编排步骤S100B的示例性流程图。优选地,在所述流程动态编排步骤S100B中使用的动态编排规则可以包括将在后说明的任务执行次序选择规则、任务传递和触发规则、以及对象实例管理规则。图3中的任务建立步骤S140和初始化步骤S150已在先进行过介绍,在此省略说明。
接下来在所述动态编排执行步骤S160中,由例如动态编排引擎执行如下操作:
步骤S161:根据任务执行次序选择规则,从待执行任务池(TaskPool)中选取符合条件的任务执行;
步骤S162:根据所述对象实例管理规则,在每个任务执行过程中,动态更新所述对象实例空间(ObjectInstSpace)和所述实例关系树(ObjectInstTree);
步骤S163:根据任务传递和触发规则,新触发任务并压入任务池;
步骤S164:重复以上步骤S161~步骤S163,直到所述任务池为空,所述动态编排执行步骤S160结束。
其中,在当待执行任务为针对叶子对象的任务时,动态编排引擎根据预先规定的API命名和调用格式,直接调用外部API。
在上述动态编排执行步骤S160中,作为流程的动态编排的基础,包括在对象建模步骤S100A中创建的分层对象模型200,例如其中的对象以及对各个对象标注的属性、约束、关系等,以及动态编排规则。以下对该动态编排规则的示例进行详细说明。
在根据本公开的实施例的基于对象设计模式的流程建模编排方法100中,优选地,动态编排规则可以包括任务执行次序选择规则、任务传递和触发规则、以及对象实例管理规则。
优选地,所述任务执行次序选择规则例如可以包括如下规则:
(1)对于对象动作的类型,按照销毁、创建、修改的顺序选择;
(2)针对同属创建的一组对象,首先挑选不依赖其它对象且不受其它对象影响的对象,以及所依赖、受影响对象已经全部完成的对象,直到所有待创建对象都己完成创建;
(3)针对同属修改的一组对象,首先挑选不依赖其它对象且不受其它对象影响的对象,以及所依赖、受影响对象已经全部完成的对象,直到所有待修改对象都己完成修改;
(4)针对同属销毁的一组对象,首先挑选不被其它对象依赖且不影响其它对象的对象,以及所被依赖、所影响对象已经全部被销毁的对象,直到所有待销毁对象都己销毁。
优选地,所述任务传递和触发规则例如可以包括如下规则:
(1)对父对象的创建和销毁动作,会传递给子对象,触发子对象执行相同动作;
(2)执行修改动作时,先根据对象的约束条件触发创建和销毁动作,在未触发创建和销毁动作的情况下,执行修改动作后再向子节点传递;
(3)在对父对象进行修改动作时,如果父对象本身实例实际发生了变化,则将修改动作向子对象传递;
(4)存在依赖或影响关系的上游对象变化,会触发下游对象的修改动作。
优选地,所述对象实例管理规则例如可以包括如下规则:
(1)在创建实例前,先判断对象的约束条件是否满足,只有满足条件才能够创建;
(2)在创建实例时,先查找实例是否存在,如果存在则直接引用,否则创建新实例;
(3)在销毁实例时,先判断实例是否被其它对象引用,如是,则并不实际销毁实例,而是仅删除引用关系,否则删除引用关系后删除实例;
(4)在修改实例时,先判断对象的约束条件是否满足,根据情况决定是否新创建实例或销毁实例,如果为保留则再执行修改动作。
本领域技术人员可以理解,上述动态编排规则是示例性而非限制性的,为了适应不同具体行业和应用场景的需求,可以修改、删除或扩展上述规则的任意部分。
接下来,结合实际应用场景对根据本公开的实施例的流程建模编排方法100的实际运行过程进行示例性说明。图4示出了根据本公开的实施例的流程建模编排方法100被应用于移动业务场景时的流程建模编排的具体实施过程中的分层对象模型200’的示意图。在此,将该移动业务场景设定为某电信运营商的用户将移动业务从4G升级到5G的情形。在图4中,对与图1中相同或对应的要素附加相同的附图标记并省略说明,以与图1的不同之处为重点进行说明。在图4中的以方框或圆圈显示的各个对象实例中,以白底黑字表示者为已有对象实例,其中被打上叉号者表示在本业务场景下需要执行销毁动作的老对象实例;以黑底白字表示者为在本业务场景下需要执行创建的新对象实例;以灰底黑字表示者为与本业务场景无直接关联的对象,在此仅为了表述的完整性而示出。
在将移动业务从4G升级到5G的情况下,业务流程由对分层对象模型中的对象“移动数据CFS 220”的属性“5G”的值的修改来触发。根据本公开的实施例的流程建模编排方法100的动态编排引擎执行的动态编排过程具体可以如下表1所示:
表1移动业务场景的动态编排过程表
在上述表1中,为了便于区分,将图4中的作为各叶子对象的UDM和HSS明确限定为其父对象的UDM和HSS。根据上述的表1可见,在动态编排引擎根据分层对象模型和动态编排规则来进行动态流程编排时,按照表1中的第1列“步骤”中的从初始状态到步骤1~5的顺序依次执行,具体而言,依次执行表1中的第2列中的各个对象动作。其中,在表1中的第5列的“实际业务动作”中,对应于相同步骤的同一对象动作的多个实际业务动作的执行不分先后顺序而可以并行进行,以提高动态编排引擎的编排效率。
相对于现有的流程编排系统在部署或运行时必须静态设计流程,提供流程模板,存在工作量大、表达能力差(尤其动态撤改流程支撑方面)的问题,根据本公开的实施例的基于对象设计模式的流程建模编排方法100,在基于对象设计模式建模的基础上,实现了动态流程编排,不需要提前设计流程模板,而是由动态编排引擎根据对象模型和动态编排规则来实现流程的编排,一方面减少了前期流程模板绘制上的巨大投入,另一方面还提高了流程编排系统的表达能力,尤其能够很好地支撑复杂流程的撤改。由于采用动态编排方法,依据事先严密设计的确定的动态编排规则,编排过程基于业务对象模型和实例数据,动态生成流程节点,整个过程由数据驱动,并且所有流程节点都根据流程运行的状态而实时动态进行调整,相对于静态编排来说,可以更好地处理业务流程运行过程中各类异常回退、撤改等问题,体现出更为优异的处理和表达能力。
根据本公开的实施例的流程建模编排方法100非常适合于涉及业务元素多、层次复杂、业务逻辑关系复杂的场景,有利于实现系统的分层解耦,在例如电信行业内部的如5G业务开通、跨省市云网业务开通调度等场景都非常适合采用这种方式。此外,在其它具有类似特征的制造行业等,也可以使用根据本公开的实施例的流程建模编排方法100来进行业务流程建模,实现流程的动态调度。如果将根据本公开的实施例的流程建模编排方法100全面投入使用,有望大幅提高开发和运维效率,为企业节省大量开发和运维方面的成本。
根据本公开的实施例,还可以提供一种流程建模编排装置,包括:存储器,其上存储有指令;以及处理器,被配置为执行存储在所述存储器上的指令,以执行根据本公开的实施例的流程建模编排方法100。
根据本公开的实施例,还可以提供一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据本公开的实施例的流程建模编排方法100。
根据本公开的实施例,还可以提供一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现根据本公开的实施例的流程建模编排方法100的步骤。
图5示出了能够实现根据本公开的实施例的计算设备500的示例性配置图。
计算设备500是能够应用本公开的上述方面的硬件设备的实例。计算设备500可以是被配置为执行处理和/或计算的任何机器。计算设备500可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(PDA)、智能电话、车载计算机或以上组合。
如图5所示,计算设备500可以包括可以经由一个或多个接口与总线502连接或通信的一个或多个元件。总线502可以包括但不限于:工业标准架构(Industry StandardArchitecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外设组件互连(PCI)总线等。计算设备500可以包括例如一个或多个处理器504、一个或多个输入设备506以及一个或多个输出设备508。一个或多个处理器504可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。处理器504例如可以被配置为实现根据本公开的上述方面所述的基于对象设计模式的流程建模编排方法100。输入设备506可以是能够向计算设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备508可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
计算设备500还可以包括或被连接至非暂态存储设备314,该非暂态存储设备514可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其它磁性介质、压缩盘或任何其它光学介质、缓存存储器和/或任何其它存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其它任何介质。计算设备500还可以包括随机存取存储器(RAM)510和只读存储器(ROM)512。ROM 512可以以非易失性方式存储待执行的程序、实用程序或进程。RAM 510可提供易失性数据存储,并存储与计算设备500的操作相关的指令。计算设备500还可包括耦接至数据链路518的网络/总线接口516。网络/总线接口516可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)。
本公开可以被实现为装置、系统、集成电路和非瞬时性计算机可读介质上的计算机程序的任何组合。可以将一个或多个处理器实现为执行本公开中描述的部分或全部功能的集成电路(IC)、专用集成电路(ASIC)或大规模集成电路(LSI)、系统LSI,超级LSI或超LSI组件。
本公开包括软件、应用程序、计算机程序或算法的使用。可以将软件、应用程序、计算机程序或算法存储在非瞬时性计算机可读介质上,以使诸如一个或多个处理器的计算机执行上述步骤和附图中描述的步骤。例如,一个或多个存储器以可执行指令存储软件或算法,并且一个或多个处理器可以关联执行该软件或算法的一组指令,以根据本公开中描述的实施例提供各种功能。
软件和计算机程序(也可以称为程序、软件应用程序、应用程序、组件或代码)包括用于可编程处理器的机器指令,并且可以以高级过程性语言、面向对象编程语言、功能性编程语言、逻辑编程语言或汇编语言或机器语言来实现。术语“计算机可读介质”是指用于向可编程数据处理器提供机器指令或数据的任何计算机程序产品、装置或设备,例如磁盘、光盘、固态存储设备、存储器和可编程逻辑设备(PLD),包括将机器指令作为计算机可读信号来接收的计算机可读介质。
举例来说,计算机可读介质可以包括动态随机存取存储器(DRAM)、随机存取存储器(RAM)、只读存储器(ROM)、电可擦只读存储器(EEPROM)、紧凑盘只读存储器(CD-ROM)或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或可以用于以指令或数据结构的形式携带或存储所需的计算机可读程序代码以及能够被通用或专用计算机或通用或专用处理器访问的任何其它介质。如本文中所使用的,磁盘或盘包括紧凑盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式复制数据,而盘则通过激光以光学方式复制数据。上述的组合也包括在计算机可读介质的范围内。
提供本公开的主题作为用于执行本公开中描述的特征的装置、系统、方法和程序的示例。但是,除了上述特征之外,还可以预期其它特征或变型。可以预期的是,可以用可能代替任何上述实现的技术的任何新出现的技术来完成本公开的部件和功能的实现。
另外,以上描述提供了示例,而不限制权利要求中阐述的范围、适用性或配置。在不脱离本公开的精神和范围的情况下,可以对所讨论的元件的功能和布置进行改变。各种实施例可以适当地省略、替代或添加各种过程或部件。例如,关于某些实施例描述的特征可以在其它实施例中被结合。
另外,在本公开的描述中,虽然在附图中以特定次序描绘了操作,但是这不应该被理解为要求以所示的特定次序或者以顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。
Claims (10)
1.一种基于对象设计模式的流程建模编排方法,包括对象建模步骤和流程动态编排步骤,该流程建模编排方法的特征在于,
所述对象建模步骤包括如下步骤:
(1)对象生成步骤,针对要编排的流程中涉及的实际业务的多个业务元素,将各个业务元素抽象为对象,创建并组织为类树状分层对象模型;
(2)标注步骤,对所述分层对象模型中的对象的属性、约束、关系进行标注;以及
(3)动作映射步骤,在所述分层对象模型中,将业务动作抽象为对象动作,建立业务动作与对象动作的动作映射关系,所述对象动作包括对象的创建、销毁和修改,
所述流程动态编排步骤由动态编排引擎执行,包括如下步骤:
(4)任务建立步骤,从上游系统接收业务动作任务,根据所述分层对象模型和所述动作映射关系将所述业务动作任务转换为对象动作任务,建立待执行任务池;
(5)初始化步骤,初始化对象实例空间和实例关系树,在对象为全新创建的情况下,实例空间为空,否则装载所有己有对象及对象关系;
(6)动态编排执行步骤,读取所述分层对象模型,提取其中的对象及所标注的属性、约束、关系,依照动态编排规则来进行流程的动态编排,将所述业务动作任务转换为外部API来依次调用;以及
(7)任务归档步骤,将编排完成后的对象实例空间和实例关系树进行归档,以供此后流程编排时引用。
2.根据权利要求1所述的流程建模编排方法,其中,
在所述分层对象模型中,在父对象和子对象之间,父对象由子对象的全部或部分构成或实现,构成或实现的规则由子对象的约束来定义。
3.根据权利要求1所述的流程建模编排方法,其中,
所述对象的属性是指该对象拥有的标识、特性或选项的描述;
所述对象的约束是指对子对象的数量和子成员间的关系、是否需要创建和保留的条件表达式的表达;
所述对象的关系是指多个对象所对应的多个业务元素之间的相互依赖、影响的表达。
4.根据权利要求1所述的流程建模编排方法,其中,
其中所述动态编排规则包括:任务执行次序选择规则、任务传递与触发规则、以及对象实例管理规则,
在所述动态编排执行步骤中,所述动态编排引擎执行如下操作:
步骤(1):根据所述任务执行次序选择规则,从所述待执行任务池中选取符合条件的任务执行;
步骤(2):根据所述对象实例管理规则,在每个任务执行过程中,动态更新所述对象实例空间和所述实例关系树;
步骤(3):根据所述任务传递与触发规则,新触发任务并压入任务池;
步骤(4):重复以上步骤(1)~步骤(3),直到所述任务池为空,所述动态编排执行步骤结束。
5.根据权利要求4所述的流程建模编排方法,其中,
所述任务执行次序选择规则包括如下规则:
(1)对于对象动作的类型,按照销毁、创建、修改的顺序选择;
(2)针对同属创建的一组对象,首先挑选不依赖其它对象且不受其它对象影响的对象,以及所依赖、受影响对象已经全部完成的对象,直到所有待创建对象都己完成创建;
(3)针对同属修改的一组对象,首先挑选不依赖其它对象且不受其它对象影响的对象,以及所依赖、受影响对象已经全部完成的对象,直到所有待修改对象都己完成修改;
(4)针对同属销毁的一组对象,首先挑选不被其它对象依赖且不影响其它对象的对象,以及所被依赖、所影响对象已经全部被销毁的对象,直到所有待销毁对象都己销毁。
6.根据权利要求4所述的流程建模编排方法,其中,
所述任务传递与触发规则包括如下规则:
(1)对父对象的创建和销毁动作,会传递给子对象,触发子对象执行相同动作;
(2)执行修改动作时,先根据对象的约束条件触发创建和销毁动作,在未触发创建和销毁动作的情况下,执行修改动作后再向子节点传递;
(3)在对父对象进行修改动作时,如果父对象本身实例实际发生了变化,则将修改动作向子对象传递;
(4)存在依赖或影响关系的上游对象变化,会触发下游对象的修改动作。
7.根据权利要求4所述的流程建模编排方法,其中,
所述对象实例管理规则包括如下规则:
(1)在创建实例前,先判断对象的约束条件是否满足,只有满足条件才能够创建;
(2)在创建实例时,先查找实例是否存在,如果存在则直接引用,否则创建新实例;
(3)在销毁实例时,先判断实例是否被其它对象引用,如是,则并不实际销毁实例,而是仅删除引用关系,否则删除引用关系后删除实例;
(4)在修改实例时,需先判断对象的约束条件是否满足,根据情况决定是否新创建实例或销毁实例,如果为保留则再执行修改动作。
8.一种流程建模编排装置,包括:
存储器,其上存储有指令;以及
处理器,被配置为执行存储在所述存储器上的指令,以执行根据权利要求1至7中的任一项所述的流程建模编排方法。
9.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1至7中的任意一项所述的流程建模编排方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7中的任意一项所述的流程建模编排方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011494329.XA CN114648281A (zh) | 2020-12-17 | 2020-12-17 | 基于对象设计模式的流程建模编排方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011494329.XA CN114648281A (zh) | 2020-12-17 | 2020-12-17 | 基于对象设计模式的流程建模编排方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114648281A true CN114648281A (zh) | 2022-06-21 |
Family
ID=81990657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011494329.XA Pending CN114648281A (zh) | 2020-12-17 | 2020-12-17 | 基于对象设计模式的流程建模编排方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114648281A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234489A (zh) * | 2023-11-14 | 2023-12-15 | 云筑信息科技(成都)有限公司 | 一种基于业务流程实现动态模块编排的方法 |
-
2020
- 2020-12-17 CN CN202011494329.XA patent/CN114648281A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234489A (zh) * | 2023-11-14 | 2023-12-15 | 云筑信息科技(成都)有限公司 | 一种基于业务流程实现动态模块编排的方法 |
CN117234489B (zh) * | 2023-11-14 | 2024-03-15 | 云筑信息科技(成都)有限公司 | 一种基于业务流程实现动态模块编排的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477727B2 (en) | Abstracting data for use by a mobile device having occasional connectivity | |
CN108509185B (zh) | 用于任意软件逻辑建模的系统和方法 | |
CN111104106A (zh) | 集成业务流程与通讯报文的可视化开发方法、系统及介质 | |
CN111427561A (zh) | 业务代码的生成方法、装置、计算机设备和存储介质 | |
CN102054217B (zh) | 基于元模型的工具中的实体变形 | |
CN113326264A (zh) | 数据处理方法、服务器及存储介质 | |
CN109445794B (zh) | 一种页面构造方法及装置 | |
CN113392068A (zh) | 数据处理方法、装置和系统 | |
CN114648281A (zh) | 基于对象设计模式的流程建模编排方法以及装置 | |
CN114503073A (zh) | 将用过程编程语言编写的程序自动转换为数据流图及相关系统和方法 | |
CN113326026B (zh) | 一种微服务业务流程接口的生成方法与终端 | |
CN112559076B (zh) | 一种租户信息处理方法、装置、系统及设备 | |
CN117389647A (zh) | 插件生成方法、应用程序开发方法、装置、设备及介质 | |
CN113760733A (zh) | 一种单元测试方法和装置 | |
CN116166245A (zh) | 一种领域建模方法、装置、计算机设备和存储介质 | |
CN112988278B (zh) | 资源文件的meta文件修改方法、装置、电子设备及存储介质 | |
CN111930441B (zh) | 一种基于consul的配置文件管理系统及方法 | |
US8522198B2 (en) | Model-operative pattern representation harvesting using an automated exemplar-directed approach | |
CN112784417A (zh) | 一种基于SysML的航电分布式联合仿真方法及系统 | |
CN114490694A (zh) | 一种业务规则处理方法、装置、服务器及存储介质 | |
CN109361719B (zh) | 一种基于微服务的操作系统SaaS应用自动整合方法 | |
WO2024103764A1 (zh) | 基于云服务的代码生成方法及装置 | |
CN116501445A (zh) | 一种虚机创建调度方法、系统、设备及可读存储介质 | |
CN117390101A (zh) | 一种数据可持久化方法以及可持久化系统 | |
CN117850764A (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 |