CN108292207A - 用于声明性动作编排的方法和装置 - Google Patents

用于声明性动作编排的方法和装置 Download PDF

Info

Publication number
CN108292207A
CN108292207A CN201680069466.4A CN201680069466A CN108292207A CN 108292207 A CN108292207 A CN 108292207A CN 201680069466 A CN201680069466 A CN 201680069466A CN 108292207 A CN108292207 A CN 108292207A
Authority
CN
China
Prior art keywords
activation
action
execution
logic
stream
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
Application number
CN201680069466.4A
Other languages
English (en)
Inventor
帕·卡尔森
帕特里克·古林
斯蒂凡·卡尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN108292207A publication Critical patent/CN108292207A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/311Functional or applicative languages; Rewrite languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5048Automatic or semi-automatic definitions, e.g. definition templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

提供了用于编排激活动作的方法、激活节点、计算机程序和计算机程序产品。该方案避免了指定逻辑并手动定义其并行性级别的命令性方式。激活节点适于:部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排激活动作的执行;接收激活请求;将激活请求与要根据规范执行的激活动作的特定流进行匹配;以及执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。

Description

用于声明性动作编排的方法和装置
技术领域
本方案涉及一种用于声明性动作编排(特别是激活动作编排)的方法、系统、计算机程序和计算机程序产品。
背景技术
服务提供商可以向客户提供各种服务。例如,可以为客户提供获得基于有线电话的服务、基于无线电话的服务、基于数据网络的服务(有线或无线)、基于电视的服务等的选项。为了从服务提供商获得这样的服务,客户可以提交针对所需服务的订购。一旦提交,则可以激活该服务,之后客户便能够使用该服务。
当前的服务供应架构包括商业支持系统(BSS)、供应网关(也称为供应平台)和一组服务启用器。在操作中,BSS可以向供应网关提供服务订购的信息,所述供应网关用于向适当的服务启用器提供适当的信息以激活所订购的服务。
激活网络域中的(用户)数据变得越来越复杂。引入越来越多的具有不同数据模型的服务,供应商之间没有实现标准化,并且为了支持商业灵活性,需要一种以低成本快速地适配履行流程的简单方法。
为此,作为传统编码工作开发所需的激活逻辑预期是过于复杂的任务,因为这需要熟练的开发人员和/或长时间的开发。
先前的方案试图通过将编程的抽象级别典型地提高到用某种图形语言来进行编程的级别来解决这个问题。一个这样的示例是已经存在了大约10-15年的商业过程建模(BPM)。BPM的目的是避免低级别编程,而使用较高的抽象级别来编排工作流程和服务使用。然而,BPM仍然建立在命令性编程风格之上。提供BPM的工具通常基于标准化的商业过程建模标注(BPMN)。
BPMN的核心是一种命令性方法-迫使用户(开发人员)指定应该如何一步一步地进行处理,这会导致若干限制:
1)人类用户不可避免地陷入什么应当以什么顺序发生的低级别问题中,而不是关注要实现的期望的最终结果。如果要将执行分成并行工作项目以便利用并行性,则用户必须明确指定这一点并在向这些工作项目的所有输入都可用时将其插入动作流中。
2)指定处理流的结果是执行引擎在对执行的可能的优化方面受到限制。一个示例可以是动作的重新排序和动作的并行执行。
3)像从失败恢复这样的任务很快会变得过于复杂,特别是如果要进行(原本)独立活动的并行执行的话。命令性方法需要手动编写代码以便在执行中在任何状态下从失败恢复或从失败回退。如果允许并行执行,则可能状态的数量随着所涉及的任务数量而非常迅速地增长。解决这个问题的最常见方法是不允许并行执行或严格地限制并行执行。
发明内容
本发明的目的是提供一种用于编排激活动作的方法、激活节点、计算机程序和计算机程序产品,以消除上述限制。
本发明的第一方面涉及一种由激活节点执行的用于编排激活动作的方法,所述激活动作均包括执行逻辑。所述方法包括部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;接收激活请求;将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配;以及执行基于所述数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
一个好处是避免了指定逻辑和手动定义其在不同情况下的并行性级别的命令性方式。
本发明的第二方面涉及一种用于编排激活动作的激活节点,所述激活动作均包括执行逻辑。激活节点适于:部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排激活动作的执行;接收激活请求;将激活请求与要根据规范执行的激活动作的特定流进行匹配;以及执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
本发明的第三方面涉及一种用于编排激活动作的激活节点,所述激活动作均包括执行逻辑。所述激活节点包括部署/获取模块,用于部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;接收模块,用于接收激活请求;匹配模块,用于将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配;以及执行模块,用于执行基于所述数据模型之间的依赖关系而排序的所述激活动作的流的执行逻辑。
本发明的第四方面涉及一种用于编排激活动作的激活节点,所述激活动作均包括执行逻辑。所述激活节点包括处理器电路和包含指令的存储器。所述指令在由所述处理器电路执行时使得所述激活节点部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排激活动作的执行;接收激活请求;将激活请求与要根据规范执行的激活动作的特定流进行匹配;以及执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
本发明的第五方面涉及一种包含计算机可读代码装置的计算机程序。当在被配置为激活节点的计算机中运行时,所述计算机可读代码装置使得所述计算机部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;接收激活请求;将激活请求与要根据规范执行的激活动作的特定流进行匹配;以及执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
本发明的第六方面涉及一种计算机程序产品,包括计算机可读介质和存储于所述计算机可读介质上的计算机程序。当在被配置为激活节点的计算机中运行时,所述计算机可读代码装置使得所述计算机部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;接收激活请求;将激活请求与要根据规范执行的激活动作的特定流进行匹配;以及执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
现在将参照附图更详细地描述本发明的实施例。
附图说明
图1示出了用于动作编排的系统的概况。
图2示出了数据模型之间的依赖关系的解决方案可视化。
图3示出了可以实现本文描述的系统和/或方法的示例性系统。
图4示出了在其环境中的激活器。
图5示出了通过数据引用声明的执行依赖关系的示例。
图6A和图6B示出了动作顺序和引用可能性的示例。
图7示出了通过引用数据声明的撤销依赖关系的示例。
图8是示出了由激活节点执行的用于编排激活动作的方法的流程图。
图9是示出了根据所公开的解决方案的动作编排系统的示例性实施例的框图。
图10示出了计算机程序产品,包括非暂时性计算机可读介质和存储在计算机可读介质上的计算机程序。
具体实施方式
本文描述的解决方案不是指定不同的服务应该如何以及以何种顺序彼此交互,而是介绍一种用于激活编排的声明性方法。关注点放在要实现的目标上,而不是指定如何实现的细节。
现在将描述动作编排系统。一种类型的动作是激活动作。可以由服务供应平台来执行激活,所述服务供应平台有时被称为供应网关或供应平台。服务供应平台也可以被称为激活器或激活节点。
在设计时,建立了如何将用于激活请求的数据模型映射到较低层资源的数据模型的规范。本规范的风格是声明性的,着重于数据模型之间的依赖关系以及在它们之间进行转换的功能。
目的是提出支持域需求的最小特征集-而不是更多其他内容。
在基本形式中,本规范不包含与例如事情应该发生的顺序有关的任何显式信息。它也不包含像分支(“如果如此则这样做”)或循环(“当未完成时这样做”)这样的命令性结构。在数据转换本身中实现流的任何潜在变型。
作为扩展形式,本规范可以例如通过定义最后要运行的动作要求来自第一动作的结果存在的条件而附加有对两个动作之间显式静态执行顺序的声明,以便使它们顺序地运行。此外,一个动作在被允许执行之前可能依赖于若干其他动作准备就绪。
在下面的描述中,为说明和非限制的目的阐述了诸如具体节点、功能实体、技术、协议、标准等的大量特定的细节,以便提供对所描述技术的理解。对本领域技术人员而言,显而易见的是,可以脱离下面公开的特定细节来实践其他的实施例。在其他实例中,省略了对公知方法、设备、技术等的详细描述,以不会以不必要的细节使描述不清楚。在图中示出了单独的功能块。本领域技术人员将意识到,可使用单独的硬件电路、使用与适当编程的微处理器或通用计算机相结合的软件程序和数据、使用专用集成电路(ASIC)和/或使用一个或更多个数字信号处理器(DSP)来实现这些框的功能。可以将软件程序指令和数据存储在计算机可读存储介质中,并且当由计算机或其他适合的处理器执行指令时,控制计算机或处理器执行功能。
因而,例如,本领域技术人员将认识到:本文的框图可以表示体现了技术原理的示意性电路或其他功能单元的概念视图。类似地,将认识到:任意流程图、状态转换图、伪代码等表示可以实质上在非暂时性计算机可读介质内表示并因此由计算机或处理器执行的各种过程,而不论这种计算机或处理器是否被显式示出。
通过使用硬件(如电路硬件和/或能够执行存储在计算机可读介质上的编码指令形式的软件的硬件),可以提供包括功能模块的各种元件的功能,这些功能块包括但不限于被标记或描述为“计算机”、“处理器”或“控制器”的功能块。因此,这种功能和所示出的功能块应被理解为是硬件实现的和/或计算机实现的(例如,机器实现的)。
在硬件实现的方面,功能模块可以非限制地包括或涵盖,数字信号处理器(DSP)硬件、精简指令集处理器、硬件(例如数字或模拟)电路(包括但不限于,专用集成电路(ASIC)以及在合适时能够执行这些功能的状态机)。
关于计算机实现,通常将计算机理解为包括一个或更多个处理器或者一个或更多个控制器,并且在本文中可以将术语计算机以及处理器和控制器可互换地使用。当由计算机、处理器、控制器提供时,可以由单个专用计算机、处理器或控制器、由单个共享计算机、处理器或控制器、或由多个独立计算机、处理器或控制器(其中的一些可以是共享或分布式的)来提供功能。此外,对术语“处理器”或“控制器”的使用还应该解释为指代能够执行这些功能和/或执行软件的其他硬件,诸如上文记载的示例硬件。
该技术可以用于任何类型的蜂窝无线电通信(例如,GSM、CDMA、3G、4G等)。为了便于描述,术语用户设备(UE)包括任何种类的无线电通信终端/设备、移动台(MS)、PDA、蜂窝电话、膝上型计算机等。
现在更具体地参考附图,在附图中相似的附图标记贯穿若干视图表示相似的部分。
图1示出了用于动作编排的系统100的概况。
在执行开始之前,模型的设计工具110生成将成为执行基础的模板模型120。在开始执行之前,由执行器130部署模型或者备选地获取模型。作为另一备选方案,由来自请求者的请求来触发模型获取。
在运行时,请求者140制定请求并向执行器(例如,激活节点150)发送该请求。执行器将请求与要在特定模型中运行的特定流进行匹配。可以基于操作类型和所管理的对象的类型进行匹配,但不限于此,在匹配时可以使用诸如请求者标识、IP接口等之类的数据。如上所述,如果本地不可用,则匹配可能因此涉及对模型的外部获取。
在分析请求和模型时,基于模型创建基础流。初始模板模型被用作此的基础,但是例如通过预先定义特定南向执行的重复次数或执行顺序(只要遵守数据依赖关系),请求数据可以影响流创建。如果保持先前执行的历史,则可以完成对数据160的查找以例如通过基于失败的可能性来改变南向执行的顺序(如果可能的话,基于数据依赖关系在流中较早执行最有可能失败的执行)来进一步构建流。
执行器将执行该流。在执行期间,将遵循所创建的流,但是也可以在此阶段对其进行修改,例如基于从通信接收的作为对南向执行170的响应的数据,响应和流修改可能需要较多的历史查找,主要用于重复南向执行的目的。
图2示出了数据模型之间的依赖关系的解决方案可视化。它示出了如何有效地设计和可视化数据模型之间的依赖关系。节点表示流入或流出指定逻辑的信息。链路表示节点之间的依赖关系,指示一个节点需要使用来自另一节点的信息,因此在解析出依赖关系之前无法完成该依赖节点。可以放大图中的每个节点以查看并进行对每个数据属性的详细映射。
本文描述的实施例可以提供服务供应平台,其提供用于激活通信系统中的服务的单个面向服务的接口。服务供应平台可以包括独立于要激活的服务的服务激活器。另外,服务供应平台可以包括服务处理系统,其可以同时收集供应/激活服务所需的信息。
如本文所使用的,“服务”可以指数据网络相关服务、电话相关服务和/或其他类型的服务。服务可以是客户可见且客户直接可用的(有时称为面向客户的服务),或者是客户不可见和/或非客户直接可用的(有时称为面向资源的服务)。特定的服务订单可以使一个或多个面向客户的服务被激活和/或一个或多个面向资源的服务被使用以便激活一个或多个面向客户的服务。作为一个简单的示例,假设客户订购虚拟专用网络(VPN)服务。另外,假设VPN服务规范要求使用特定的路由协议。因此,针对VPN的服务订购可以引起VPN服务和所需的路由协议服务的激活。在这个示例中,可以将VPN服务认为是面向客户的服务,并且可以将路由协议服务认为是面向资源的服务。
图3是其中可以实现本文描述的系统和/或方法的示例性系统300的图。系统300可以包括作为请求者的客户端设备310和使用通信接口经由网络330进行连接的作为动作编排系统的服务供应平台100。
客户端设备310可以包括设备,例如个人计算机、大型计算机、服务器、膝上型计算机、个人数字助理(PDA)、电话设备(例如,有线或无线电话)等。在一个实施例中,客户端设备310可以对应于例如客户可以通过其订购服务的自助服务门户、网络运营商或服务提供商管理员例如可以通过其为客户订购服务的商业支持系统(BSS)、或另一类型的设备或设备的组合。客户端设备310可以通过任何技术(例如,有线或无线连接)连接到网络330。
服务供应平台100可以包括激活系统300中的服务的一个或多个设备。例如,服务供应平台100可以从客户端设备310接收服务订购,并且使包括任何依赖服务的所订购或所请求的服务被激活。服务供应平台100可以包括一个或多个集中定位的或分布式的服务器和/或其他类型的网络设备。服务供应平台100可以通过任何技术(例如,有线或无线连接)连接到网络330。
网络330可以包括一个或多个任何类型的网络,包括公共陆地移动网络(PLMN)、电话网络(例如,公共交换电话网络(PSTN)和/或无线网络)、局域网(LAN)、城域网(MAN)、广域网(WAN)、互联网协议多媒体子系统(IMS)网络、专用网络、互联网、内联网和/或另一种类型的网络。
尽管图3示出了系统300的示例性设备和网络,但是在其他实施例中,系统300可以包括与图1中所示的设备和/或网络相比较少的、不同的、不同地布置的或附加的设备和/或网络。另外或备选地,系统300的一个或多个设备可以执行被描述为由系统300的一个或多个其他设备执行的任务中的一个或多个任务。
图4示出了其环境中的激活器150。在一个实施例中,图1的执行器130是激活器节点的一部分。一个这样的激活器节点是爱立信多激活系统(EMA)。有时,可以将执行器称为模型数据视图(MDV)引擎。激活器与发布北向请求的控制系统140接口连接。该系统通常是OSS/BSS,但不限于此。北向接口传达请求者的请求以及处理这些请求所需的数据。这些接口可以基于EDIFACT、WebService、Diameter应用、远程过程调用(RPC)、远程方法调用(RMI)等。
“激活器”中的执行器可选地使用支持系统405解析进行执行或优化执行所需的数据来执行在设计工具110中创建的模型,如后续部分所述。南向系统通过不同的南向接口暴露其数据模型。这些接口可以是能够暴露模型的任何接口,例如LDAP或MML。可以在内部激活器转换器或激活器外部功能中完成从内部激活器数据格式从/到这些南向接口的转换。
南向系统通常是诸如HLR 410或HSS 420、应用服务器430和435、基础设施库(inventory)440、基础设施服务器、路由器450、边界网关、策略控制器等之类的订户数据存储装置。
当执行北向请求时,执行器将以两种不同模式(执行模式和回复模式)的组合来执行。执行模式描述了模型的肯定执行,即当成功地执行所请求的内容时。回复模式是模型的否定执行或回退执行,即当肯定执行不成功以及已完成的动作被回复/撤销时。在以下部分中对其进行描述。
图5示出了通过数据引用声明的执行依赖关系。图5示出了如何将依赖关系声明为数据引用(例如,允许执行逻辑执行其可能的南向请求、从请求数据或另一动作执行结果数据复制指令、复制-转换指令的条件),以及如果强制按照顺序运行动作则可选地将依赖关系声明为显式依赖关系。这些被绘制为附图中指向依赖关系的箭头。
最上面的文本框“请求数据”505表示由北向请求携带的数据,即由执行器经由北向接口接收到的请求。最下面的文本框“结果”510表示将由北向请求响应携带的数据。
用虚线框住的文本515指示在以XML格式传送数据的环境中复制数据的两个示例。上面的文本框指示最右边的动作-对于其请求数据路径“/req3/z”-将使用路径为“/req/z”的北向请求数据。下面的文本框指示北向结果将结果中的路径“/res/z”设置为最右边的动作执行结果数据中的路径“/x3/y/z”的值。
请注意,在以此声明式风格的动作之间没有排序。在命令式风格中,连接将是当一个动作被完全执行时会导致下一动作被完全执行等,作为每个动作前后连接的序列。相反,声明式风格关注如何转换信息。
动作520由两个可选部分组成:在执行模式下执行的具有其结果545的指令540和在回复模式下执行的具有其结果555的撤销指令550。通常,执行逻辑540将涉及执行请求并解释其响应。这个请求可能是外部的,并且可以转换数据。以相同的方式,撤销逻辑550将涉及回退执行逻辑的结果以便回复变换并解释该响应。动作也可以具有执行逻辑部分的先决条件。看图5中左上角的动作,它依赖于请求数据。它下面的动作依赖于其结果数据。
根据动作的依赖关系来组织这些动作,即在引用这些动作结果数据时将依赖动作置于其所依赖的动作之后。可以将所得到的动作流存储为单个序列或多维序列(树)。循环不应该存在于所得的图中。
现在将参考图6A、图6B和图7来描述本发明。图6A和图6B示出了动作顺序和引用可能性,并且图7示出了通过引用数据声明的撤销依赖关系。
图6A和图6B示出了对任务进行排序的两种方法,在图6A中是一维的而在图6B中是多维的,以及这些动作之间的关系。当从结构的顶部610开始执行时,动作将在开始流中的下一动作时向该下一动作提供对其结果数据的引用。通过累积已添加的所有引用数据,它将引用对流分支中所有连接在其下的动作可用的结果数据。数据引用和概率(即,从该位置可能的引用)用曲线箭头示出,而控制流/前序者-后继者引用用窄箭头(620a-d)示出。
在设计时,还可以给出明确的依赖关系,即要求一个动作在另一动作之前执行,这可以用于要求在成功地执行在资源使用方面代价高的动作之后允许其余的动作执行开始。
在运行时分析输入(北向)请求以便建立模型的运行时间表示。将动作移动到动作流中的较早位置的逻辑(仍然保持设计时定义的依赖关系约束)可以使用与例如失败频率有关的(外部)历史,如图1所示。也可以是模型需要延长运行时间,例如如果源模型要求并且目标模型允许重复数据或动作。也可以是由于针对可变数量的资源的请求而重复流的特定动作或部分。
动作中的逻辑从结构的顶部开始,在分支中顺序地继续,以便后续动作获得对前一动作的未来结果数据的引用。
在评估动作时,每个动作都将独立地开始填充来自初始请求的请求数据和其他依赖关系,加强基于规范和动作流信息从头开始预先建立请求模板或构建请求。
只要所有所需的数据都是可用的以便完成对请求的建立并且针对要执行的动作满足所有依赖关系(包括可能的执行先决条件),则执行该请求。如果依赖关系不限制于此,则可以使执行与其他动作并行。当动作完成并且满足动作执行的依赖关系和数据可用性时,后续动作可以完成。最终所有动作都已执行。在已经触发动作流并且启动动作之后,关于何时开始执行的决定完全取决于动作本身。
由于在执行开始之前基于依赖关系等为所有动作分配了顺序,因此也可以将所有动作链接到一个前序者作为一维序列或者作为多维序列,并且链接到一个或多个(如果是多维序列的话)后继者。对于后来的撤销特征,重要的是不发送动作的结果直到所有后继者都已经报告其结果为止。请注意,此结果不一定是执行逻辑结果,而是考虑执行逻辑和可能的撤消逻辑两者的动作的结果。通过向其前序者发送每个动作的结果来聚合结果,所述前序者聚合目前为止的总结果。
在多维序列的情况下,作为前序者具有多个子节点的节点对结果聚合进行同步。这样做直到将所有的结果聚合至流程的顶部为止。此时可以基于模型信息(例如,通过构建答案)来构成总结果。如图5所示,还通过数据引用来构成结果。
现在将解释回复-撤消。在与执行逻辑本身相同的上下文中定义如果决定撤销对执行逻辑的执行将采取的动作。例如,在相同的动作上下文中,执行逻辑中的删除动作可以与撤消逻辑中的创建动作一起定义。该解决方案不限于回复较早的转换。它也可能影响一些其他数据,甚至与上下文(例如,失败统计信息)无关。这些定义在图5和图7中示出。以与执行逻辑相同的方式定义撤消逻辑,创建附加依赖关系。这可能意味着隐式地知道执行动作做了什么。在实践中,一种可能性是撤销可以访问南向请求及其响应。当执行执行逻辑时必须考虑这些依赖关系,这是因为必须准备好在运行执行逻辑之后立即运行撤消逻辑。如果未解析出所有的依赖关系,则可能无法执行撤销。这个事实可能会限制输入数据(触发请求和动作结果数据)和动作执行逻辑请求数据的可能的依赖关系。
通过使用在其依赖关系准备就绪(可能成功)之前不执行依赖动作并且动作执行逻辑和撤消逻辑处于相同的上下文中的事实,撤销可能限于在执行逻辑成功而后继者失败的情况下执行。
任何动作的执行逻辑都可以使其执行失败。需要由所有需要知道失败的执行是否应该禁止、不允许或允许此动作继续的依赖关系来处理该失败。如果失败动作610判定它是失败,则通过控制引用向一个或多个后继者通知620a、620b、620c。在一个可能的实现中,控制引用是对未来数据的引用(使用编程语言Future构造),其被注入到动作流的后继动作中。此时在执行动作流中存在失败。失败信息将在动作控制流中传播,直到其到达流的结尾为止。那时,最后一个或多个动作630需要决定是否撤销其动作的执行逻辑(如果已经执行该动作)。如果它什么都不做或者进行了成功撤销,则它向其前序者通知640其是OK(好)的,否则是NOK(不好)的。在OK时,前序者将进行相同的分析并响应其前序者。结果将聚合在动作流中直至初始失败动作(或者如果存在多次失败,则为最上面的失败动作)。通过以反向依赖顺序运行撤销,确保了在查看依赖关系时以相反的执行顺序进行清理。
在失败动作(如果多次失败,则最顶部的动作)的情况下,所述动作将告知它的前序者其执行失败并告知所有后继者撤消的状态(撤消成功或撤销失败)。前序者需要通知其所有后继者,除了通知失败的后继者。每个分支都将按照所描述的来处理该情况。当从所有后继者返回OK时,该动作需要决定是否撤销其自身的执行并向其前序者报告(参见图6右侧部分)。这将继续至流程的顶部。
如果一个动作发回NOK,那么该动作需要决定是否如所描述的继续进行对流的撤消,或者是否现在终止。后一种情况将使该动作向其前序者返回NOK,并这将被发送到流的顶部。在多个序列的情况下,具有多个后继者的动作将同步从其子分支返回结果。
撤消的特征在一维和多维动作序列之间的不同点在于,一维流可以在第一次撤销失败时停止撤消但将按顺序完成撤消,而多维流程可以并行地进行但不在第一次撤消失败时立即停止。
在流的顶部,发起者需要基于响应来构建答案,例如具有成功撤消逻辑执行而失败。
与执行逻辑一样,撤销逻辑需要获取任何引用数据。一个问题是,撤消所需的所有数据必须已知是可用的。已知可用于动作的撤消逻辑的数据例如是动作执行结果、执行请求数据和用于执行的依赖关系数据。动作依赖关系数据可以是写入的内容、用于执行的依赖关系数据以及用于撤消的依赖关系数据。所添加的是,撤销本身可能依赖于执行不依赖的动作,即注入的获取操作。这是通过在动作中只有一组依赖关系来处理的,所述一组依赖关系是执行和撤销依赖关系之间的融合。为了执行将允许执行的,需要解析出所述组中的所有依赖关系。在这种情况下,如果执行成功,则所有依赖关系都可用于撤消(如果需要的话)。
仅在动作执行被执行的情况下撤销是适用的,这是因为其目的是回复任何转换。如果需要除此之外的其他数据,则执行必须依赖于动作结果,即撤消执行总是依赖于动作执行,并且通过使执行依赖于另一任务,它总是在撤销时已经被执行。在设计时处理此依赖关系链,并且可以在运行时扩展该依赖关系链。
该解决方案还可以处理动作不需要撤消逻辑的情况,例如在GET动作的情况下,或者当需要撤消逻辑来修复依赖关系链中较早的一个或多个其他动作时。
图8是示出了由激活节点执行的用于编排激活动作的方法的流程图。激活动作均包括执行逻辑,并且该方法包括在步骤810中部署或获取规范。该规范是用于激活请求的数据模型与较低层资源的数据模型之间的映射依赖关系,以用于编排激活动作的执行。较低层资源的示例是保存在例如HLR中与用户有关的数据或者其他网络单元中的数据。在步骤820中,激活节点接收激活请求。在步骤830中,将激活请求与要根据规范执行的激活动作的特定流进行匹配。该方法还包括在步骤840中执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
激活动作还可以包括撤销逻辑,当在步骤850中已经确定激活动作的流的执行逻辑的执行不成功时执行该撤消逻辑。在步骤860中,已经执行的动作然后可以被回复或撤消。
因此,该方法可以涉及在步骤850中判断动作已经失败。在步骤855中,按照激活动作的流的顺序传播动作失败信息,直到它已经到达流程的所有动作为止。由传播的动作失败信息触发,对于激活动作的流的每个动作,从激活动作的流的最后(一个或多个)动作开始并且以与执行逻辑的执行开始顺序相反的顺序,判断该动作是否是撤销其执行逻辑,并且如果是,则在步骤860中执行撤消逻辑,并在步骤870中向其前序者确认,从而使前序者能够执行其撤销逻辑。
规范可以包括对激活动作之间的显式静态执行顺序的声明,以使它们顺序地运行。激活动作在被允许执行之前可能依赖于若干其他激活动作准备就绪。此外,匹配可以基于操作类型、所管理的对象类型、请求者标识或接收到请求的网络接口中的任一个。为了支持基于请求的来源的不同流,示例包括为不同的服务提供商、虚拟运营商或不同类型的请求者提供不同的能力(例如,支持不同级别的功能或相对于“普通”用户对管理员的访问权限)。激活动作的顺序还可以基于请求数据,和/或激活动作的顺序可以基于先前执行的历史数据。
图9是以计算系统环境900的形式示出根据所公开的解决方案的用于动作编排的系统的示例性实施例的框图。
尽管以上作出了清楚的描述,但是计算系统环境900只是适当的计算环境的一个示例,并且不旨在暗示对要求保护的主题的功能或者使用的范围的任何限制。此外,计算环境900不旨在暗示关于要求保护的主题和在示例操作环境900中示出的组件中的任意一个或其组合的任何依赖性或者要求。
实现前文描述的系统的设备的示例包括计算机910形式的通用计算设备。计算机910的组件可以包括但不限于:处理单元920、系统存储器930和系统总线921,系统总线521将包括系统存储器在内的各种系统组件耦合到处理单元920。系统总线921可以是若干类型的总线结构中的任意一种,包括存储器总线或者存储控制器、外围总线和使用各种总线架构中的任意一种的本地总线。
计算机910可以包括各种瞬时性和非瞬时性计算机可读介质。计算机可读介质可以是能够被计算机910访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储媒体包括以任何方法或技术实现的易失性和非易失性以及可移除和不可移除媒体,用于存储信息,如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其他存储器技术、CDROM、数字通用光盘(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备、或可以用于存储期望信息并且可以由计算机910存取的任何其他介质。通信介质可以以调制数据信号(如载波或其他传输机制)体现计算机可读指令、数据结构、程序模块或其他数据,并且可以包括任何合适的信息传送介质。图10示出了包括计算机程序1020的计算机程序产品1010形式的计算机可读介质。
系统存储器930可以包括易失性和/或非易失性存储器形式的计算机存储介质,例如,只读存储器(ROM)和/或随机存取存储器(RAM)。基本输入/输出系统(BIOS)(包含有助于(例如,在启动时)在计算机910内的元件之间传输信息的基本例程)可以存储在存储器930中。存储器930还可以包含处理单元920可以立即访问和/或当前正在运行的数据和/或程序模块。作为非限制性的示例,存储器930还可以包含操作系统、应用程序、其他程序模块和程序数据。
系统存储器930可以包括加载在存储器中并且可由处理单元处理的软件模块,或使得用于动作编排的系统执行本文描述的步骤的其它电路。
特别地,系统存储器930可以包括加载在存储器中并且可以由处理单元或其他电路处理的软件模块,该软件模块使得激活节点用于编排激活动作,激活动作均包括执行逻辑以部署或获取规范。该规范是用于激活请求的数据模型与较低层资源的数据模型之间的映射依赖关系,以用于编排激活动作的执行。
存储器还包含使得激活节点接收激活请求并且将激活请求与要根据规范执行的激活动作的特定流匹配的指令。
此外,存储器包含使得激活节点执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑(840)的指令。
更具体而言,激活节点可以包括用于编排激活动作的以下软件模块:
部署/获取模块981,用于部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排激活动作的执行;
接收模块982,用于接收激活请求;
匹配模块983,用于将激活请求与要根据规范执行的激活动作的特定流进行匹配;以及
执行模块984,用于执行基于数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
计算机910还可以包括其他可移除的/不可移除的和易失性/非易失性的计算机存储介质。例如,计算机910可以包括从不可移除的非易失性磁介质读取或向其写入的硬盘驱动器、从可移除的非易失性磁盘读取或向其写入的磁盘驱动器、和/或从可移除的非易失性光盘(如CD-ROM或其他光介质)读取或向其写入的光盘驱动器。可以用于示例性操作环境的其他可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于:磁带盒、闪存卡、数字多功能光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器可以通过不可移除存储器接口(如接口)连接至系统总线921,并且磁盘驱动器或光盘驱动器可以通过可移除存储器接口(如接口)连接至系统总线921。
用户可以通过输入设备(例如,键盘,或者指示设备,如鼠标、轨迹球、触摸垫和/或其他指示设备)向计算机910输入命令和信息。其他输入设备可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪或者类似的设备。这些和/或其他输入设备可以通过耦合到系统总线921的用户输入端940和相关联的接口连接到处理单元920,但也可以通过其他接口和总线结构(例如,并行端口、游戏端口或通用串行总线(USB))连接。
图形子系统也可以连接到系统总线921。另外,监视器或者其他类型的显示设备可以通过接口(例如,输出接口950)连接到系统总线921,该接口进而与视频存储器通信。除了监视器之外,计算机还可以包括其他外围输出设备,例如,扬声器和/或打印设备,它们也可以通过输出接口950来连接。
计算机910可以利用到一个或者多个其他远程计算机(例如,远程服务器970)的逻辑连接而在联网的或者分布式环境中操作,所述远程算机可以进而具有与设备910不同的媒体功能。远程服务器970可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点、和/或任何其他远程的媒体消耗或传输设备,并且可以包括上文关于计算机910描述的任何元件或所有元件。图9中示出的逻辑连接包括网络971(例如,局域网(LAN)或者广域网(WAN)),但是也可以包括其他网络/总线。
当在LAN联网环境中使用时,计算机910通过网络接口或适配器连接至LAN 971。当在WAN网络环境中使用时,计算机910可以包括诸如调制解调器或用于在WAN(例如,因特网)上建立通信的其他装置之类的通信组件。通信组件(如调制解调器)(可以是内置的或者是外置的)可以通过输入端940处的用户输入接口和/或其他合适的机制连接到系统总线921。
在联网环境中,关于计算机910描述的程序模块或其部分可以存储在远程存储设备中。应当注意的是,所示出和描述的网络连接是示例性的,并且可以使用建立计算机之间的通信链路的其他手段。
另外,应当注意的是,本申请使用的术语,例如,“组件”、“显示器”、“接口”和其他类似的术语旨在是指计算设备,其可以是硬件、硬件和软件的结合、软件、或者应用到计算设备的执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行代码、执行线程、程序和计算设备。作为示例,在计算设备上运行的应用和计算设备都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程中,并且组件可以被局部化到一个计算设备上和/或分布在两个或更多个计算设备和/或通信连接的模块之间。此外,应当注意的是,本申请所使用的术语,如“系统用户”、“用户”和类似的术语旨在是指操作以上提及的计算设备的人。
当元件被称作相对于另一元件进行“连接”、“耦合”、“响应”或其变形时,它可以直接连接、耦合到或者响应于其他元件,或者可以存在中间元件。相反,当元件被称作相对于另一元件进行“直接连接”、“直接耦合”、“直接响应”或其变形时,不存在中间元件。贯穿附图,类似附图标记表示类似的元素。此外,本文使用的“耦合”、“连接”、“响应”或其变型可以包括无线耦合、连接或响应。如本文中使用的,单数形式“一”,“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。为了简洁和/或清楚,可不对周知的功能或结构进行详细描述。术语“和/或”包括关联列出的一个或多个项目的任意和所有组合。
本文使用的术语“包括”、“包含”、“含有”、“涵盖”、“由......构成”、“计入”、“有”、“拥有”、“具有”或其变形是开放式的,并且包括一个或多个所记载的特征、整数、元件、步骤、组件、或功能,但是不排除存在或添加一个或多个其他特征、整数、元件、步骤、组件、功能或其组合。此外,如本文的使用,常用缩写“e.g.(例如)”从于拉丁短语“exempligratia”,其可以用于介绍或指定之前提到的项目的一般示例,而不意图作为该项目的限制。常用缩写“即(i.e)”从拉丁短语“id est”,可以用于指定更一般引述的具体项目。
还应当注意的是,在一些备选实施例中,在框中标记的功能/动作可以不以流程图中标记的顺序发生。例如依赖于所涉及的功能/动作,连续示出的两个方框实际上可以实质上同时执行,或者方框有时候可以按照相反的顺序执行。此外,可以将流程图和/或框图中的给定模块的功能分离成多个框和/或流程图的两个或更多框的功能和/或可以至少部分地集成框图。
最后,示出了在框之间添加/插入的其它框。此外,尽管一些图包括关于通信路径的箭头来指示通信的主要方向,但是应当理解的是,通信可以以与所指示的箭头的相反方向发生。
结合以上描述和附图,这里公开了许多不同实施例。将理解的是,逐字地描述和说明这些实施例的每个组合和子组合将会过分冗余和混淆。因此,包括附图的本说明书将被解释以构建实施例的各种示例性组合和子组合以及制造和使用它们的方式和过程的完整书面说明,并且将支持要求任意这种组合或子组合的权益。
在基本上不背离本解决方案的原则的前提下,可以对实施例做出许多变形和修改。在本文中,所有此类变形和修改旨在被包括在本解决方案的范围内。
前述公开内容描述了一种允许以声明性方式指定激活编排逻辑的方法以及执行这样的规范的装置。这些声明定义了不同源的数据在动作条件(通过从其获取数据来使数据源的数据可用)、当从另一源获取数据时允许从源到动作的复制转换用作输入的条件、复制转换、强制执行顺序等方面如何相互影响。
此外,其在与激活编排逻辑相同的上下文中声明其回复动作在失败时提供自动清理。
对规范的执行将符合运行时做出的声明,可选地不断优化执行,同时仍遵循声明中的意图。在满足其所有强制性先决条件(其他源数据的条件,例如各个数据值或存在各个数据(例如,“标志”存在或“标志=真”),此外动作已准备就绪或成功)以及对不同源数据的其他强制性依赖关系之前,不进行对各个动作的执行,从而有效地定义逻辑执行的并行性。
与本领域中的先前解决方案相比,优点在于后者被锁定为指定逻辑并手动定义其在不同情况下的并行性级别的命令性方式。
通过声明什么以及为什么,可以让执行引擎计算出最有效的执行方式。效率主要意味着总的执行时间短,可能还可以例如通过具有自动可调超时和线程使用来优化对用于处理的计算资源的使用。去除人为干涉决定低级资源(例如,线程)的使用时的次优化。
通过在具体的低级规范中不涉及人,消除了大量的错误。它还消除了在设计时作出在运行时不正确的假设的风险,例如假设特定任务需要比另一任务更长的时间来执行可能导致与执行它们的最佳顺序有关的错误决策。
工作于什么抽象级别而不是如何工作,使得可以创建依赖关系流的有用图形可视化以及对编辑依赖关系流的图形支持。抽象还使用户免于手动定义并行执行和同步点的复杂性。
AS 应用服务器
BPM 商业过程建模
BPMN 商业过程建模标注
BSS 商业支持系统
EDIFACT 用于行政、商业和运输的电子数据交换
EMA 爱立信多激活
HLR 归属位置寄存器
HSS 归属订户服务器
LDAP 轻量级目录访问协议
MDV 模型数据视图
MML 人机语言
MMTEL 多媒体电话
OSS 运营支持系统
RMI 远程方法调用
RPC 远程过程调用

Claims (20)

1.一种由激活节点(150)执行的用于编排激活动作(520)的方法,所述激活动作均包括执行逻辑(540),所述方法包括以下步骤:
-部署或获取规范(810),所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;
-接收激活请求(820);
-将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配(830);以及
-执行基于所述数据模型之间的依赖关系而排序的激活动作的流的执行逻辑(840)。
2.根据权利要求1所述的方法,其中激活动作还包括撤销逻辑(550),并且所述方法包括:当所述激活动作的流的执行逻辑的执行已经失败时(850),针对已经执行而要回复或撤消的动作执行所述撤消逻辑(860)。
3.根据权利要求2所述的方法,还包括以下步骤:
-判定动作(850)已经失败;
-按照所述激活动作的流的顺序传播动作失败信息,直到所述动作失败信息已经到达所述流的所有动作为止(620a-d,855);
-由所传播的动作失败信息触发,针对所述激活动作的流的每个动作,从所述激活动作的流的最后动作开始并且以与所述执行逻辑的执行开始顺序相反的顺序,判断是否撤销其执行逻辑,并且如果是,则执行所述撤消逻辑(630,860)并向其前序者确认(640,870),从而使所述前序者能够执行其撤销逻辑。
4.根据前述权利要求中任一项所述的方法,其中所述规范包括对激活动作之间的显式静态执行顺序的声明,以使得所述激活动作顺序地运行。
5.根据前述权利要求中任一项所述的方法,其中激活动作在被允许执行之前依赖于若干其他激活动作准备就绪。
6.根据前述权利要求中任一项所述的方法,其中所述匹配基于操作类型、所管理的对象类型、请求者标识或接收到请求的网络接口中的任一个。
7.根据前述权利要求中任一项所述的方法,其中激活动作的顺序还基于请求数据。
8.根据前述权利要求中任一项所述的方法,其中激活动作的顺序还基于先前执行的历史数据。
9.一种用于编排激活动作(520)的激活节点(150),所述激活动作均包括执行逻辑(540),所述激活节点适于:
-部署或获取规范(810),所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;
-接收激活请求(820);
-将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配(830);以及
-执行基于所述数据模型之间的依赖关系而排序的激活动作的流的执行逻辑(840)。
10.根据权利要求9所述的激活节点,其中激活动作还包括撤消逻辑(550),并且所述激活节点还适于:当所述激活动作的流的执行逻辑的执行已经失败时(850),针对已经执行而要回复或撤消的动作执行所述撤消逻辑(860)。
11.根据权利要求10所述的激活节点,还适于:
-判定动作(850)已经失败;
-按照所述激活动作的流的顺序传播动作失败信息,直到所述动作失败信息已经到达所述流的所有动作为止(620a-d,855);
-由所传播的动作失败信息触发,针对所述激活动作的流的每个动作,从所述激活动作流的最后动作开始并且以与所述执行逻辑的执行开始顺序相反的顺序,判断是否撤销其执行逻辑,并且如果是,则执行所述撤消逻辑(630,860)并向其前序者确认(640,870),从而使所述前序者能够执行其撤销逻辑。
12.根据权利要求9-11中任一项所述的激活节点,其中所述规范包括对激活动作之间的显式静态执行顺序的声明,以使得所述激活动作顺序地运行。
13.根据权利要求9-12中任一项所述的激活节点,其中激活动作在被允许执行之前依赖于若干其他激活动作准备就绪。
14.根据权利要求9-13中任一项所述的激活节点,其中所述匹配基于操作类型、所管理的对象类型、请求者标识或接收到请求的网络接口中的任一个。
15.根据权利要求9-14中任一项所述的激活节点,其中激活动作的顺序还基于请求数据。
16.根据权利要求9-15中任一项所述的激活节点,其中激活动作的顺序还基于先前执行的历史数据。
17.一种用于编排激活动作(520)的激活节点(150),所述激活动作均包括执行逻辑(540),所述激活节点包括:
-部署/获取模块(981),用于部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;
-接收模块(982),用于接收激活请求;
-匹配模块(983),用于将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配;以及
-执行模块(984),用于执行基于所述数据模型之间的依赖关系而排序的所述激活动作的流的执行逻辑。
18.一种用于编排激活动作(520)的激活节点(150),所述激活动作均包括执行逻辑(540),所述激活节点包括处理器电路和存储器,所述存储器包含指令,所述指令在由所述处理器电路执行时使得所述激活节点:
-部署或获取规范,所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;
-接收激活请求;
-将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配;以及
-执行基于所述数据模型之间的依赖关系而排序的激活动作的流的执行逻辑。
19.一种包括计算机可读代码装置的计算机程序,当在被配置为激活节点的计算机中运行所述计算机可读代码装置时,所述计算机可读代码装置使得所述计算机执行以下步骤:
-部署或获取规范(810),所述规范映射用于激活请求的数据模型与下层资源的数据模型之间的依赖关系以用于编排所述激活动作的执行;
-接收激活请求(820);
-将所述激活请求与要根据所述规范执行的激活动作的特定流进行匹配(830);以及
-执行基于所述数据模型之间的依赖关系而排序的激活动作的流的执行逻辑(840)。
20.一种计算机程序产品,包括计算机可读介质和存储在所述计算机可读介质上的根据权利要求19所述的计算机程序。
CN201680069466.4A 2015-11-30 2016-07-08 用于声明性动作编排的方法和装置 Pending CN108292207A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562260884P 2015-11-30 2015-11-30
US62/260,884 2015-11-30
PCT/SE2016/050704 WO2017095290A1 (en) 2015-11-30 2016-07-08 Method and apparatus for declarative action orchestration

Publications (1)

Publication Number Publication Date
CN108292207A true CN108292207A (zh) 2018-07-17

Family

ID=58797376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680069466.4A Pending CN108292207A (zh) 2015-11-30 2016-07-08 用于声明性动作编排的方法和装置

Country Status (4)

Country Link
US (1) US20180373542A1 (zh)
EP (1) EP3384380B1 (zh)
CN (1) CN108292207A (zh)
WO (1) WO2017095290A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901818A (zh) * 2018-11-15 2019-06-18 阿里巴巴集团控股有限公司 用于软件架构设计的系统和方法
CN111966334A (zh) * 2020-08-17 2020-11-20 支付宝(杭州)信息技术有限公司 一种业务处理方法、装置及设备
CN113342428A (zh) * 2021-06-08 2021-09-03 浪潮天元通信信息系统有限公司 基于cfs&rfs的家集客业务开通实现方法及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538493A (zh) * 2020-04-28 2020-08-14 京东数字科技控股有限公司 流式数据处理方法、系统、存储介质及电子设备
CN112925813A (zh) * 2021-03-31 2021-06-08 第四范式(北京)技术有限公司 基于混合编排的数据处理方法、装置、系统和存储介质
US11936523B2 (en) 2022-01-12 2024-03-19 Cisco Technology, Inc. Incremental network intent provisioning

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1755721A (zh) * 2004-10-01 2006-04-05 微软公司 组件化和可扩展的工作流模型
CN101461183A (zh) * 2006-06-05 2009-06-17 康博泰公司 使用服务目录的供应和激活
US20090281865A1 (en) * 2008-05-08 2009-11-12 Todor Stoitsev Method and system to manage a business process
US20110103566A1 (en) * 2009-10-29 2011-05-05 Verizon Patent And Licensing Inc. Automated provisioning
US20110119329A1 (en) * 2009-11-18 2011-05-19 Telefonaktiebolaget Lm Ericsson (Publ) Service provisioning
CN102663552A (zh) * 2012-04-06 2012-09-12 东华理工大学 一种支持在线自演化的动态工作流引擎
CN102904738A (zh) * 2011-07-26 2013-01-30 华为软件技术有限公司 工单处理方法及相关装置和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7107300A (en) * 1999-08-31 2001-03-26 Accenture Llp A system, method and article of manufacture for a constant class component in a business logic services patterns environment
US6529948B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Multi-object fetch component
US8413205B2 (en) * 2001-09-19 2013-04-02 Tvworks, Llc System and method for construction, delivery and display of iTV content
US20060053195A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US8763006B2 (en) * 2007-12-28 2014-06-24 International Business Machines Corporation Dynamic generation of processes in computing environments
US20120079409A1 (en) * 2010-09-28 2012-03-29 Guiluan Luo Workflow management at a document processing device
US10120722B2 (en) 2014-01-31 2018-11-06 Telefonaktiebolaget Lm Ericsson (Publ) Reordering workflows for network provisioning by using blocking penalty and compounded failure risk values for tasks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1755721A (zh) * 2004-10-01 2006-04-05 微软公司 组件化和可扩展的工作流模型
CN101461183A (zh) * 2006-06-05 2009-06-17 康博泰公司 使用服务目录的供应和激活
US20090281865A1 (en) * 2008-05-08 2009-11-12 Todor Stoitsev Method and system to manage a business process
US20110103566A1 (en) * 2009-10-29 2011-05-05 Verizon Patent And Licensing Inc. Automated provisioning
US20110119329A1 (en) * 2009-11-18 2011-05-19 Telefonaktiebolaget Lm Ericsson (Publ) Service provisioning
CN102904738A (zh) * 2011-07-26 2013-01-30 华为软件技术有限公司 工单处理方法及相关装置和系统
CN102663552A (zh) * 2012-04-06 2012-09-12 东华理工大学 一种支持在线自演化的动态工作流引擎

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张志君: "工作流建模、执行与异常处理研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901818A (zh) * 2018-11-15 2019-06-18 阿里巴巴集团控股有限公司 用于软件架构设计的系统和方法
CN111966334A (zh) * 2020-08-17 2020-11-20 支付宝(杭州)信息技术有限公司 一种业务处理方法、装置及设备
CN113342428A (zh) * 2021-06-08 2021-09-03 浪潮天元通信信息系统有限公司 基于cfs&rfs的家集客业务开通实现方法及系统
CN113342428B (zh) * 2021-06-08 2022-06-28 浪潮通信信息系统有限公司 基于cfs&rfs的家集客业务开通实现方法及系统

Also Published As

Publication number Publication date
EP3384380A1 (en) 2018-10-10
US20180373542A1 (en) 2018-12-27
EP3384380B1 (en) 2022-04-20
EP3384380A4 (en) 2019-07-24
WO2017095290A1 (en) 2017-06-08

Similar Documents

Publication Publication Date Title
CN108292207A (zh) 用于声明性动作编排的方法和装置
CN109684057B (zh) 任务处理方法、装置和存储介质
US9778924B2 (en) Platform for enabling creation and use of an API for a specific solution
EP1873706A1 (en) Systems and methods for integrating services
US11106743B2 (en) Binding traits to case nodes
US20090089741A1 (en) Service-based processes using policy-based model-to-model conversion and validation techniques
US20040172637A1 (en) Code morphing manager
CN106875170A (zh) 一种中间业务系统的业务处理方法和装置
CN113626002A (zh) 一种服务执行方法及装置
EP2224381A1 (en) Method and apparatus for case-based service composition
CN116974581B (zh) 代码生成方法、装置、电子设备和存储介质
US20050149342A1 (en) Method and apparatus for creating and customizing plug-in business collaboration protocols
US11120513B2 (en) Capital chain information traceability method, system, server and readable storage medium
CN107133040A (zh) 一种标准产品业务装置及业务模块扩展置换方法
US10289978B2 (en) Method and apparatus for integrating health care payers and provider systems with health care transaction systems using a single HIPAA EDI response generation component
Duarte et al. BIM: a methodology to transform business processes into software systems
KR101351867B1 (ko) 소프트웨어 및 어플리케이션 제어 관리 객체에서의 단계 실행 결과를 처리하는 방법
CN112418796A (zh) 子流程节点激活方法、装置、电子设备及存储介质
CN112734360A (zh) 端到端的业务流程管理方法、装置、设备及存储介质
Dumez et al. Formal specification and verification of service composition using LOTOS
CN104881760A (zh) Erp系统间的数据通讯方法、装置以及系统
Eslamichalandar et al. Dynamic adapter reconfiguration in the context of business protocol evolution
CN114785847B (zh) 网络控制软件开发配置方法、终端及存储介质
Bruno et al. From Collaboration Models to BPEL processes through service models
Višnovský Modeling software components using behavior protocols

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180717