生成幂等工作流的制作方法

文档序号:9816359阅读:319来源:国知局
生成幂等工作流的制作方法
【专利说明】生成幂等工作流
[0001 ] WS
[0002] 许多软件应用可跨多个计算设备执行操作。例如,一些软件应用可在本地计算设 备和远程计算设备上执行操作。在一些示例中,这些操作可取决于计算设备的状态而返回 不同的值。因此,如果这些操作被执行多次或者在错误之后被执行,则这些操作可提供不同 的返回值。
[0003] 挺塗
[0004] 以下提供了简化概述,以提供对本文中描述的某些方面的基本理解。该概述不是 权利要求主题的广泛概览。该概述不旨在标识所要求保护的主题的关键或决定性元素,也 不旨在描述所要求保护的主题的范围。该概述的唯一目的是以简化的形式将所要求保护的 主题的一些概念表达为下文表达的更详细说明的序言。
[0005] -实施例提供用于生成幂等工作流的方法。该方法可包括检测分布式代码并在分 布式代码中标识边界函数。该方法还可包括将边界函数分成转移函数、非幂等函数和回归 函数。此外,该方法可包括通过生成与非幂等函数相对应的标记来将非幂等函数转换成幂 等函数,其中该标记指示该非幂等函数是否已被执行。此外,该方法可包括组合转移函数、 幂等函数和回归函数以形成幂等工作流。
[0006] 另一实施例提供用于生成幂等工作流的一个或多个计算机可读存储介质,该一个 或多个计算机可读存储介质包括多个指令,所述多个指令在被处理器执行时,使得处理器 检测分布式代码。多个指令还可使得处理器标识分布式代码中的边界函数,并将边界函数 分成各附加函数。此外,多个指令可使得处理器将非幂等函数转换成幂等函数,并将该幂等 函数与附加函数组合以形成幂等工作流。
[0007] 另一实施例提供一种用于生成幂等工作流的系统。该系统包括用于执行处理器可 执行代码的处理器以及存储处理器可执行代码的存储设备,其中该处理器可执行代码在由 该处理器执行时使得该处理器检测分布式代码。处理器可执行代码还使得处理器标识分布 式代码中的边界函数,并将该边界函数分成转移函数、非幂等函数和回归函数。此外,处理 器可执行代码使得处理器将非幂等函数转换成幂等函数。此外,处理器可执行代码还使得 处理器将转移函数、幂等函数和回归函数组合以形成幂等工作流。
[0008] 附图简述
[0009] 通过参考各个附图可以更好地理解下列详细描述,各个附图包含所公开的主题的 众多特征的具体示例。
[0010] 图1是可生成幂等工作流的计算系统的示例的框图;
[0011] 图2是用于生成幂等工作流的示例方法的过程流程图;
[0012] 图3是用于生成幂等工作流的示例方法的过程流程图;
[0013] 图4是执行幂等工作流的示例的过程流程图;
[0014] 图5是示出可生成幂等工作流的有形的计算机可读存储介质的框图;以及
[0015] 图6是用于生成幂等工作流的示例方法的过程流程图。
[0016] 详细描述
[0017] 许多计算设备可基于分布式代码执行应用。如本文中所引用的分布式代码可包括 采用任何合适的编程语言的任何合适数目的函数,其中这些函数可跨各进程、计算设备和 角色等被执行。例如,分布式代码可在本地计算设备和远程计算设备上执行操作。在一些示 例中,分布式代码可在执行期间取决于计算设备的状态返回不同的输出值。因此,如果存在 迫使分布式代码重启或执行多次的错误,则分布式代码的输出可能是不可靠的。
[0018] 本文中描述了用于生成幂等工作流的各种方法。如本文中所引用的幂等工作流可 包括任何合适数目的源代码段或源代码函数,其中每一源代码段可被执行任何合适的次 数,而不会生成不同的返回或输出值。在一些实施例中,生成幂等工作流可包括修改分布式 代码,使得分布式代码包括各幂等函数。因此,幂等工作流可被执行多次,而不会返回不同 的输出值。此外,还可在有错误的情况下重启幂等工作流,而不会返回不同的输出值。在一 些实施例中,可通过修改边界函数并将分布式代码内的非幂等函数转换成幂等函数来从分 布式代码生成幂等工作流。在一些示例中,幂等函数可在遇到错误后被重启或恢复,并可在 该函数的第一次执行期间生成输出值。如本文中所引用的边界函数可包括采用任何合适的 编程语言的任何合适的源代码,该源代码可在远程进程或设备等中执行针对本地进程或设 备等的操作。在一些示例中,幂等工作流可从任何合适的边界函数或幂等函数重启并返回 一致的输出值。
[0019] 作为引文,一些附图以被称为功能、模块、特征、元素等的一个或多个结构化组件 的上下文来描述各概念。附图中示出的各种组件可以用任何方式来实现,例如,通过软件、 硬件(例如,分立的逻辑组件等)、固件等等,或这些实施方式的任意组合。在一个实施例中, 各种组件可以反映对应的组件在实际实现中的使用。在其他实施例中,附图中所示的任何 单个组件可由多个实际组件来实现。附图中的任何两个或更多个分开组件的描绘可以反映 单个实际组件所执行的不同功能。以下讨论的图1提供关于可被用来实现附图中所示的功 能的一个系统的细节。
[0020] 其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一次 序执行的不同的框。这些实现是示例性而非限制性的。此处描述的某些框可被分组在一起 并在单个操作中执行,某些框可被分成多个组件框,并且某些框可以按与此处所示出的不 同的次序来执行(包括以并行方式执行这些框)。流程图中示出的框可以通过软件、硬件、固 件、手动处理等等或这些实现的任何组合来实现。如此处所使用的,硬件可以包括计算机系 统、诸如专用集成电路(ASIC)之类的分立逻辑组件等,以及它们的任意组合。
[0021] 关于术语,短语"被配置成"涵盖可构造任何种类的结构化组件来执行所标识的操 作的任何方式。结构化组件可以被配置成使用软件、硬件、固件等或其任意组合来执行操 作。
[0022] 术语逻辑摂涵盖用于执行任务的任何功能。例如,流程图中所示的每一操作对应 于用于执行该操作的逻辑。操作可以使用软件、硬件、固件等或其任意组合来执行。
[0023]如此处所使用的,术语"组件"、"系统"、"客户端"等旨在指代计算机相关的实体, 它们可以是硬件、(例如,执行中的)软件和/或固件、或其组合。例如,组件可以是在处理器 上运行的进程、对象、可执行码、程序、功能、库、子例程,和/或计算机,或软件和硬件的组 合。作为说明,在服务器上运行的应用和该服务器两者都可以是组件。一个或多个组件可留 驻在进程中,并且组件可位于一个计算机上和/或分布在两个或更多个计算机之间。
[0024] 此外,所要求保护的主题事项可使用标准变成和/或工程设计技术实现为方法、装 置或制造作品,以制造软件、固件、硬件或其任意组合来控制计算机以实现所公开的主题事 项。如此处所使用的术语"制品"可以包含可以从任何有形的计算机可读设备或介质访问的 计算机程序。
[0025] 计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、以及磁带 等等)、光盘(例如,紧致盘(CD)以及数字多功能盘(DVD)等等)、智能卡、以及闪存设备(例 如,卡、棒以及钥匙驱动器等等)。相反,计算机可读介质(即,非存储介质)一般可附加地包 括通信介质,诸如用于无线信号之类的传输介质。
[0026] 图1是可生成幂等工作流的计算系统的示例的框图。计算系统100可以例如是移动 电话、膝上型计算机、台式计算机、或平板计算机等等。计算系统100可包括被适配成执行所 存储的指令的处理器102,以及存储处理器102可执行的指令的存储器设备104。处理器102 可以是单核处理器、多核处理器、计算群集、或者任意数量的其他配置。存储器设备104可包 括随机存取存储器(例如,SRAM、DRAM、零电容RAM、S0N0S、eDRAM、EDO RAM、DDR RAM、RRAM、 PRAM,等等)、只读存储器(例如,Mask R0M、PR0M、EPR0M、EEPR0M等等))、闪存、或任何其他合 适的存储系统。由处理器102执行的指令可被用来生成幂等工作流。
[0027] 处理器102还可通过系统总线106(例如,PCI、ISA、PCI-Express、 HyperTransport s·、N
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1