CN106537426A - 自动生成用于工作流程的执行序列 - Google Patents

自动生成用于工作流程的执行序列 Download PDF

Info

Publication number
CN106537426A
CN106537426A CN201580035312.9A CN201580035312A CN106537426A CN 106537426 A CN106537426 A CN 106537426A CN 201580035312 A CN201580035312 A CN 201580035312A CN 106537426 A CN106537426 A CN 106537426A
Authority
CN
China
Prior art keywords
input
output
multiple operations
attribute
definition
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.)
Granted
Application number
CN201580035312.9A
Other languages
English (en)
Other versions
CN106537426B (zh
Inventor
M.诺瓦埃斯
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN106537426A publication Critical patent/CN106537426A/zh
Application granted granted Critical
Publication of CN106537426B publication Critical patent/CN106537426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/10Office automation; Time management

Landscapes

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

Abstract

本公开涉及根据工作流程定义来自动生成执行序列。一个示例方法包括接收包括多个操作的工作流程定义,多个操作中的每个包括各自与输入值相关联的输入属性以及各自与输出值相关联的输出属性;确定用于定义多个操作之间的关系的工作流程的执行序列,该确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值以及输出属性和关联的输出值,并且至少部分地基于一个或多个定义多个操作中的每个的依赖性的语义规则;以及生成表示执行序列的非循环有向图,包括各自表示多个操作中的操作的节点,以及各自表示由执行序列定义的多个操作之间的关系的顶点。

Description

自动生成用于工作流程的执行序列
背景技术
某些计算***允许创建工作流程,该工作流程包括被配置为使得由前一操作创建的输出被输入到下一操作的操作序列。例如,在许多类Unix操作***上,通过使用诸如“|”、“<”和“>”的操作符连接操作(例如,shell命令)来提供这样的序列。诸如“ps|grep‘blah’”的序列将使命令“ps”的输出作为流被提供给程序“grep”,使得两个命令并行运行。
发明内容
本公开涉及根据工作流程定义自动生成执行序列。
一般而言,在该说明书中描述的主题的一个创新方面可以体现在包括如下的动作的方法中:接收包括多个操作的工作流程定义,多个操作中的每个包括一个或多个各自与输入值相关联的输入属性以及一个或多个各自与输出值相关联的输出属性;确定用于定义多个操作之间的关系的工作流程的执行序列,该确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值以及一个或多个输出属性和关联的输出值,并且至少部分地基于一个或多个定义多个操作中的每个的依赖性的语义规则;以及生成表示执行序列的非循环有向图,该非循环有向图包括一个或多个各自表示多个操作中的操作的节点,以及一个或多个各自表示由执行序列定义的多个操作之间的关系的顶点。
该方面的其他实施例包括在计算机存储设备上编码的、被配置为进行所述方法的动作的相应的***、装置和计算机程序。
可以实施在该说明书中描述的主题的特别实施例以便实现一个或多个以下优点。通过自动确定工作流程中的操作之间的依赖性,免除用户手动指定这些关系的费时且易出错的工作,允许更快且更有效地指定工作流程。此外,在此描述的技术允许自动生成用于在分布式执行环境(诸如云***)中执行给定的工作流程的信息,从而使用户免于手动进行该工作。
在下面的附图和描述中阐明在该说明书中描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求,主题的其他特征、方面和优点将变得明显。
附图说明
图1是用于根据工作流程定义来自动生成执行序列的环境的框图。
图2是根据工作流程定义来自动生成执行序列的示例处理的流程图。
图3是示出用于指定工作流程定义的示例用户界面的框图。
图4是示出用于指定工作流程定义的另一示例用户界面的框图。
图5是由REST资源链接的输入属性和输出属性的示例配置的框图。
图6是从外部云资源读取输入属性的示例配置的框图。
图7是用于根据工作流程定义来自动生成执行序列的示例处理的流程图。
图8是用于根据工作流程定义来自动生成执行序列的另一示例处理的流程图。
图9是示例计算设备的框图。
在不同附图中的相同的参考标号和标记表示相同的元件。
具体实施方式
在分布式计算中,可以通过将一个操作(诸如在计算设备上执行的软件程序)的输出作为输入提供给另一操作(诸如在相同或不同的计算设备上的另一软件程序)来构建包括多个操作的工作流程。使用该技术,预先存在的操作可以一起用来对数据集进行分析或转换。例如,产生由某个标识符排序的输出数据集的操作可以用在工作流程中来向接受由该标识符排序的数据集作为输入的操作提供输入。可以通过以该方式配置多个操作来构建复杂的工作流程。另外,某些操作可以产生多个输出或接受多个输入,这通过要求设计者指定操作发生的顺序以及操作之间的关系(例如,哪个操作将其输出提供给另外哪个操作作为输入),进一步使这样的工作流程的构建复杂化。在一些情况下,工作流程可以被可视化为包括针对每个操作的节点和针对操作之间的每个关系的顶点的非循环有向图或“DAG”。
因此,本公开描述用于根据工作流程定义来自动生成执行序列的技术。在一个示例方法中,接收包括多个操作的工作流程定义。每个操作可以包括输入属性、输出属性、以及与每个相关联的值。例如,“排序(sort)”操作可以具有类型文件的一个输入属性、以及类型文件的一个输出属性。输入属性的值可以指定包含用于“排序”操作的输入(例如,未排序的值的列表)的文件的文件名。输出属性的值可以指定“排序”操作将写入其产生的输出(例如,经排序的值的列表)的文件的文件名。通过定义多个操作之间的关系来确定用于工作流程的执行序列。该确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值、以及一个或多个输出属性和关联的输出值,并且至少部分地基于定义多个操作中的每个的依赖性的一个或多个语义规则。然后,生成表示执行序列的非循环有向图(DAG)。DAG包括一个或多个各自表示来自多个操作中的操作的节点、以及一个或多个各自表示由执行序列定义的多个操作之间的关系的顶点。例如,节点之间的每个顶点可以表示由节点之一表示的操作,该节点之一将其输出提供给由另一节点表示的操作作为输入。
本公开还描述用于建立工作流程的图形用户界面和方法。用户可以通过用户界面来指定期望的工作流程的操作。然后,操作可以基于依赖性确定过程来以执行顺序自动排列。可以由得自定义操作属性的操作描述的语义规则来确定操作之间的隐式依赖性。例如,语义规则可以得自用于涉及UNIX命令的工作流程的UNIX命令规范。操作可以基于它们相应的输入和输出文件以及流的定义而彼此相关。在一些情况下,每个文件或流可以被关联唯一资源标识符(URI),并且具有包含相同URI的属性值的操作可以被确定为相关。
根据依赖性关系,可以产生定义用于工作流程的操作序列的构件(artifact)。在一些情况下,可以产生包括指定操作及其数据依赖性的DAG的文本文件。在一些实施方式中,DAG将操作之间的“文件”依赖性和“流”依赖性表示为节点之间的顶点。然后,可以由考虑文件和流依赖性而执行操作序列的云调度来使用该构件。
下面更详细地描述这些特征和附加特征。
图1是用于根据工作流程定义来自动生成执行序列的环境100的框图。如同所示,环境100包括工作流程引擎110,其与由用户160使用的计算设备164、存储***120、以及分布式执行环境140的执行控制器132通信。在操作中,用户160与计算设备164交互以指定包括要进行的操作的工作流程定义162。计算设备164将工作流程定义162传达给工作流程引擎110。工作流程引擎110分析工作流程定义162以确定工作流程定义中包括的操作。工作流程引擎110可以咨询存储***120以确定用于工作流程定义162中包括的特别操作的输入属性和输出属性。工作流程定义162还可以包括用于工作流程中的每个操作的输入和输出属性的值。工作流程引擎110分析工作流程定义162以确定工作流程中的操作之间的关系。例如,如果用于第一操作的输出属性的值与用于第二操作的输入属性的值相同,则第二操作依赖于第一操作,并且一定在第一操作之后包括在执行序列中。在一些情况下,第一操作可以将其输出提供给第二操作作为流,指示第二操作在第一操作仍在执行的同时能够开始处理其输入。第一操作还可以将其输出提供给第二操作作为文件,指示第二操作直到完成第一操作才可以开始处理其输入。
工作流程引擎110可以产生表示工作流程定义162中包括的操作之间的关系的执行序列170。工作流程引擎110可以将执行序列发送到分布式执行环境140。执行控制器132可以配置并执行与工作流程定义162相对应的工作流程180。下面更详细地描述该功能。工作流程引擎110还可以产生与工作流程定义162相关联的非循环有向图(DAG)166用以呈现给用户160。
如同所示,环境100包括计算设备164。虽然计算设备164示为台式计算机,而一些实施方式,计算设备164可以是包括触屏显示器的移动设备,诸如例如电话、平板、膝上型计算机、或者其他类型的移动设备。在一些情况下,计算设备164可以包括一个或多个执行对计算设备164的操作进行控制的操作***的处理器。计算设备164可以向用户160呈现用户界面,允许用户指定工作流程定义162。在图3和图4中提供这样的用户界面的示例,将在下面讨论。
工作流程定义162可以包括多个操作以及用于操作的相应属性(例如,输入属性和输出属性)的值。在一些情况下,工作流程定义162可以不包括不同操作之间的关系的显式指示。例如,用户160可以定义用于工作流程定义162的操作及其各种输入和输出值的列表,并且工作流程引擎110可以分析工作流程定义162以确定操作之间的隐式关系,从而使用户160免于指定该信息。在一些实施方式中,工作流程定义162可以以电子格式表示,包括但不限于可扩展标记语言(XML)文件、图像文件、文本文件、便携式文档格式(PDF)文件、或者其他电子格式。
环境100包括工作流程引擎110。在操作中,工作流程引擎110从计算设备164接收工作流程定义162,并将执行序列172提供给分布式执行环境140,以及将DAG 166提供给计算设备164用以呈现给用户160。在一些情况下,工作流程引擎110可以是通过通信网络(未示出)与计算设备164和分布式执行环境140通信的服务器或服务器的组。工作流程引擎110还可以是在一个或多个服务器上运行的软件处理或软件处理的组。
工作流程引擎110包括执行序列生成器112。执行序列生成器112可以接收工作流程定义162,并生成与工作流程定义162相对应的执行序列170。在一些情况下,执行序列生成器112可以基于工作流程定义162中定义的操作、与操作相关联的输入和输出属性及它们在工作流程定义162中指定的值、以及基于一个或多个语义规则128,来生成执行序列170。例如,执行序列生成器112可以基于定义这样的依赖性的语义规则128之一,来确定将输出流提供给第二操作作为输入的第一操作应当在第二操作之前开始。在一些情况下,执行序列生成器112可以解析工作流程定义162以确定工作流程定义162中包括的操作和属性值。
在一些情况下,执行序列生成器112可以与存储***120通信以确定用于工作流程定义162中指定的操作的属性。在一些情况下,存储***120可以是用于数据的结构化或非结构化存储的任何类型的***,包括但不限于数据库、文件***、云存储***、存储器、或者其他类型的***。可以根据与特别类型的***相关联的技术有组织地存储操作定义122,诸如在文件***的情况下存储为文件、在数据库的情况下存储为表格、或者根据其他技术。
执行序列生成器112可以咨询存储***中存储的操作定义122以确定用于与特别操作定义122相关联的操作的输入属性124和输出属性126。在一些情况下,输入属性124和输出属性126可以指定与用于特别操作的输入和输出属性关联的类型,诸如例如流、文件、有序集、键值对集、或者其他类型的属性。执行序列生成器112可以在确定操作之间的依赖性时使用输入属性124和输出属性126。例如,执行序列生成器112可以基于由一个操作的属性指定的类型与由另一操作的属性指定的类型是否相同,来确定工作流程定义162中的特别操作是否彼此兼容。
在一些情况下,操作定义122可以包括工作流程定义162中包括的特别操作的文档(包括但不限于应用编程接口(API)规范、UNIX“手册”页面、或者其他类型的文档),或者可以基于工作流程定义162中包括的特别操作的文档而生成操作定义122。
在一些情况下,执行序列生成器112可以以特定于分布式执行环境140的格式产生执行序列170。例如,执行序列170可以包括通过网络发送给分布式执行环境140的消息或消息的组,指示分布式执行环境140创建由工作流程定义162定义的操作,并根据由执行序列生成器112识别的操作之间的依赖性对操作进行配置。工作流程180是这样的配置的示例,并将在下面更详细地讨论。
工作流程引擎110还包括DAG生成器114。在操作中,DAG生成器114可以以非循环有向图或DAG 166的形式产生执行序列170的可视化表示。DAG 166可以呈现给用户160以示出所确定的执行序列170。在一些实施方式中,DAG 166可以将工作流程定义162中的每个操作表示为DAG 166中的节点,并且可以将操作之间的每个依赖性表示为连接两个节点的顶点。例如,DAG 166可以包括连接节点的顶点,表示一个操作依赖于另一操作的输出用于输入。在一些实施方式中,每个顶点可以表示由节点表示的操作之间的不同类型的关系。例如,一种类型的顶点可以指示直到较早的操作完成才能给开始稍后的操作,或者另一类型的顶点可以指示两个操作能够并行发生。在一些实施方式中,DAG 166可以是根据特别图形格式对非循环有向图的可视化表示进行编码的文件。DAG 166还可以包括使计算设备164显示与执行序列170相关联的非循环有向图的指令。
如同所示,环境100包括分布式执行环境140。在操作中,分布式执行环境140可以响应于接收到的执行序列170配置并执行跨多个计算节点的工作流程。分布式执行环境140包括执行控制器132。在操作中,执行控制器132可以控制计算节点141、146以将它们配置到与执行序列170相对应的工作流程180中。计算节点141、146可以是分布式执行环境140中的可操作以执行由执行序列170指定的操作的服务器或服务器的组。如同所示,计算节点141被配置为执行操作142,而计算节点146被配置为执行操作148。操作142和操作148与资源144相关联。资源144表示用于操作142的输出资源和用于操作148的输入资源。可以通过执行控制器132响应于指示操作142的输出要作为输入提供给操作148的执行序列170来实施这样的配置。在一些实施方式中,资源144可以是表述性状态转移(REST)资源,诸如例如实施REST协议(诸如超文本传输协议(HTTP))的服务器或程序。
图2是用于根据工作流程定义来自动生成执行序列的示例处理200的流程图。在205,用户160将工作流程定义指定给工作流程引擎110,如先前关于图1所描述的。在210,工作流程引擎110从存储***120取回用于所指定的工作流程中的操作的定义。在一些情况下,工作流程引擎110可以提交数据库查询、文件***读取请求、云存储请求、或者其他类型的请求。在215,工作流程引擎110从存储***120取回语义规则。在220,工作流程引擎110基于操作定义、语义规则、以及工作流程定义中的属性值,来确定该执行序列。在225,工作流程引擎110基于执行序列生成非循环有向图。在230,工作流程引擎110将非循环有向图呈现给用户160。在235,工作流程引擎110将执行序列提供给分布式执行环境140,分布式执行环境140基于执行序列配置并执行工作流程(240)。
可以以不同的顺序来发生动作220至240。例如,工作流程引擎110可以在基于指令序列生成非循环有向图之前将执行序列提供给分布式执行环境140。在这种情况下,分布式执行环境140可以在225与工作流程引擎110生成非循环有向图并行地执行工作流程(240)。
图3是示出用于指定工作流程定义的另一示例用户界面300的框图。用户界面300示出工作流程308。工作流程308包括指示工作流程的名称(“图像处理工作流程”)的工作流程图标302。工作流程308还包括操作304、308、312、316、320和322,以及相关联的属性306、310、314、318、324和326。
在一些情况下,用户界面300可以通过定义操作的处理来引导用户。关联于操作的输入(INPUT)和输出(OUTPUT)类型的属性与唯一资源标识符(URI)相关。界面300帮助用户使用层次化资源浏览器来将URI关联到INPUT和OUTPUT资源。在一些实施方式中,这样的URI与分布式处理***中存储的对象相对应。界面300可以通过将语义规则应用到操作的属性来确定输入文件(INPUT FILE)和输出文件(OUTPUT FILE)关系。也可以由单独的***来做出这种确定,诸如关于图1所描述的工作流程引擎110。在一些情况下,语义规则遵从特定UNIX命令的语法的定义。例如,命令语法可以使用“标志(flag)”类型的属性将INPUT关系指定为诸如“i”以及将OUTPUT关系指定为“o”。在其他情况下,由参数在命令行中的位置来定义输入或输出关系。这样的输入和输出参数与文件***中的文件相对应。UNIX命令语义规则还定义输入流(INPUT STREAM)和输出流(OUTPUT STREAM)。STREAM语义意味着同时执行的操作能够发生INPUT和OUTPUT关系。用管道(PIPE)的构思来表达这样的关系。多个操作能够链接在并发流水线中。还能够使用重定向字符(<,>)以及以字符|表达的PIPE的构思来将UNIX流重定向到文件(FILE)。在一些情况下,上述UNIX语义规则可以用来定义操作以及自动确定这样的操作的要求的执行序列。
在一些情况下,可以根据各种技术来做出依赖性的推论。在一些情况下,工作流程由一组操作组成,并且用户可以通过在用户界面300中创建这些操作来指定它们。在一些情况下,每个操作可以包括多个属性。例如,使用UNIX模型,通用属性架构如下:操作类型属性:操作类型操作名称操作标志操作自变量操作流
用户界面300可以引导用户使用特定表单(form)来定义操作属性。这样的表单可以根据定义步骤的特定上下文而动态地适应。例如,用户可以从表单内的列表中选择用于特别操作的操作名称,并且用户界面300作为响应可以利用特定于所指定的操作的数据来建立并填充表单。针对每个特定操作,用户界面300可以辨识出标志(FLAG)、自变量(ARGUMENT)和流(STREAM)需要以特定定义方法来处理。能够通过使用特定语言提供每个命名的命令的语义来配置用户界面300。在一个示例中,可以使用如下的JSON语言中的名称值对来表达操作语义。与INPUT和OUTPUT文件和流相关的标志和参数选项以特定符号来标记,诸如“I”和“O”。然后,用户界面300可以动态地建立表单以引导用户到涉及INPUT和OUTPUT标记属性的特定处理。
图4是示出用于在工作流程定义中指定输入资源的示例用户界面400的框图。如同所示,用户界面400示出了用于为工作流程308指定输入资源的输入资源浏览器406。输入资源浏览器406可以允许用户通过浏览存储层次并最终选择用作输入资源的文件来指定输入资源。例如,在用户界面400中,用户已选择了“云存储”,然后“美国地理测量”目录,然后“阿拉斯加国家自然保护区”目录,然后“行31”目录,并且最后选择文件“行_31.SGY”。在一些情况下,可以通过激活添加输入按钮404来启动输入资源浏览器,并且可以通过激活完成按钮402来确认通过浏览器选择的输入资源。
图5是由REST资源512链接的输入属性502和输出属性508的示例处理500的框图。在一些情况下,可以通过图1中的执行控制器132或工作流程引擎110、通过这两个组件的组合或者通过其他组件来进行处理500。在514,针对输出属性502来创建REST资源512。在一些情况下,执行控制器132可以针对执行序列中定义的每个输出属性来创建REST资源512。在504,将依赖性规则应用于输出属性502与输入属性508之间。例如,施加依赖性可以包括确定输出属性502与输入属性508之间的依赖性的类型(例如,文件,流等)。在506,在输入属性508与rest资源512之间创建依赖性链接510。依赖性链接510将根据链接510的类型使REST资源512的内容递送给与输入属性508相关联的操作。例如,如果依赖性是流依赖性,则写入REST资源512的输出可以被提供给与输入属性508相关联的操作用以处理。如果依赖性是文件依赖性,则在与输出属性502相关联的操作完成时,与输入属性508相关联的操作可以同时接收所有写入rest资源512的输出。
图6是从外部云资源读取输入属性508的示例配置600的框图。如同所示,在604,外部处理602可以创建云资源608并直接将其输出。在606,输入属性508链接到云资源608,并且与输入属性508相关联的操作接收云资源608的内容作为输入,如关于图5针对REST资源512所描述的。
图7是用于允许用户指定工作流程定义的示例处理700的框图。在一些情况下,可以由用户界面300实施处理700以允许用户指定工作流程。在702,创建空操作。在一些情况下,可以响应于用户激活创建操作按钮来创建空操作。在704,用户选择操作类型。在706,用户选择操作名称。在708,针对所选择的操作加载属性模板。在一些情况下,可以从与所选择的操作相关联的操作定义来加载属性模板,诸如关于图1所描述的操作定义122。在710,建立实行属性语义的动态表单。例如,动态表单可以允许用户针对所选择的操作设置与特别类型的属性相关联的值。在712,用户可以编辑所选择的操作的属性,诸如例如通过指定与属性相关联的值。
在714,处理700针对输入和输出属性而分支。针对每个输入属性,处理700在716允许用户选择现有资源的URI。在718,输入资源被链接到与所选择的URI相关联的输出资源。针对每个输出属性,处理700在720生成唯一URI,并在722创建输出资源。
图8是用于根据工作流程定义来自动生成执行序列的另一示例处理的框图。在805,接收包括多个操作的工作流程定义,多个操作中的每个包括一个或多个各自与输入值相关联的输入属性以及一个或多个各自与输出值相关联的输出属性。在一些情况下,经由用户界面接收工作流程的定义,该用户界面被配置为允许用户指定多个操作、针对用于每个操作的一个或多个输入属性中的每个的输入值、以及针对用于每个操作的一个或多个输出属性中的每个的输出值。用户界面可以被配置为允许用户从移动设备指定多个操作、针对用于每个操作的一个或多个输入属性中的每个的输入值、以及针对用于每个操作的一个或多个输出属性中的每个的输出值。在一些情况下,输入和输出属性表示文件,并且针对每个属性的关联值表示要由关联操作作为输入读取或者作为输出产生的文件的文件名称。在一些情况下,输入和输出属性表示数据流,并且针对每个属性的关联值表示要由关联操作作为输入读取或者作为输出产生的流的URI。在一些实施方式中,每个操作与软件程序相关联,并且与操作相关联的一个或多个输入属性和输出属性从与软件程序相关联的程序描述中取回。
在810,针对定义多个操作之间的关系的工作流程来确定执行序列。该确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值,以及一个或多个输出属性和关联的输出值。该确定还至少部分地基于一个或多个定义多个操作的每个的依赖性的语义规则。在一些情况下,多个操作之间的每个关系表示由多个操作中的第一操作生成并由多个操作中的不同于第一操作的第二操作使用作为输入的输出资源。
在815,生成表示执行序列的非循环有向图,该非循环有向图包括一个或多个各自表示多个操作中的操作的节点,以及一个或多个各自表示由执行序列定义的多个操作之间的关系的顶点。在一些情况下,可以通过显示设备来呈现所生成的非循环有向图的图形表示。可以由通过网络连接的多个计算设备基于由非循环有向图表示的执行序列来执行工作流程。
图9是可以用来实施在本文档中描述的***和方法的计算设备900、950的框图,其作为客户端或者作为服务器或多个服务器。计算设备900旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型机、以及其他合适的计算机。计算设备950旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、以及其他类似的计算设备。此外计算设备900或950能够包括通用串行总线(USB)闪存驱动器。USB闪存驱动器可以存储操作***和其他应用。USB闪存驱动器能够包括输入/输出组件,诸如无线发射器或者可以***另一计算设备的USB端口的USB连接器。这里示出的组件、它们的连接和关系、以及它们的功能仅意为示范性的,并且不意在限制本文档中描述的和/或要求保护的发明的实施方式。
计算设备900包括处理器902、存储器904、存储设备906、连接到存储器904和高速扩展端口910的高速接口908、以及连接到低速总线914和存储设备906的低速接口912。组件902、904、906、908、910和912的每个使用各种总线而互连,并且可以安装在公共主板上或以适当的其他方式安装。处理器902能够处理在计算设备900内执行的指令,包括存储器904中或存储设备906上存储的指令,以在外部输入/输出设备(诸如耦接到高速接口908的显示器916)上显示用于GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,连同多个存储器和多种类型的存储器。此外,可以以每个设备提供部分必要的操作的方式连接多个计算设备900(例如,如同服务器阵列、刀片式服务器群、或者多处理器***)。
存储器904将信息存储在计算设备900内。在一个实施方式中,存储器904是一个或多个易失性存储器单元。在另一实施方式中,存储器904是一个或多个非易失性存储器单元。存储器904还可以是另一形式的计算机可读介质,诸如磁盘或光盘。
存储设备906能够为计算设备900提供大容量存储。在一个实施方式中,存储设备906可以是或包含计算机可读介质(诸如软盘设备、硬盘设备、光盘设备、或磁带设备),闪速存储器或其他类似的固态存储器设备,或者设备的阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地实施在信息载体中。计算机程序产品还可以包含在执行时进行一个或多个方法(诸如上述的方法)的指令。信息载体是计算机可读或机器可读介质,诸如存储器904、存储设备906、或处理器902上的存储器。
高速接口908为计算设备900管理带宽密集操作,而低速接口912管理较低的带宽密集操作。这样的功能分配仅是示范性的。在一个实施方式中,高速接口908耦接到存储器904、显示器916(例如,通过图形处理器或加速器)、以及可以接受各种扩展卡(未示出)的高速扩展端口910。在实施方式中,低速接口912耦接到存储设备906和低速扩展端口914。可以包括各种通信端口(例如,USB,蓝牙、以太网、无线以太网)的低速扩展端口例如通过网络适配器可以耦接到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪、或者诸如交换机或路由器的网络设备。
如图所示,可以以多种不同的形式实施计算设备900。例如,它可以实施为标准服务器920,或者在这样的服务器群中实施多次。它还可以实施为机架式服务器***924的一部分。此外,它可以在个人计算机中实施,诸如膝上型计算机922。替选地,计算设备900中的组件可以与移动设备(未示出)中的其他组件组合,诸如设备950。这样的设备中的每个可以包含一个或多个计算设备900、950,并且整个***可以由多个彼此通信的计算设备900、950组成。
计算设备950包括处理器952、存储器964、输入/输出设备诸如显示器954、通信接口966、以及收发器968等组件。设备950还可以配设存储设备(诸如微驱动器或其他设备)以提供额外的存储。组件950、952、964、954、966和968的每个使用各种总线而互连,并且多个组件可以安装在公共主板上或以适当的其他方式安装。
处理器952能够在计算设备950内执行指令,包括存储器964中存储的指令。处理器可以实施为包括分离的多个模拟和数字处理器的芯片的芯片组。此外,处理器可以使用多个架构中的任意一个来实现。例如,处理器952可以是CISC(复杂指令集计算机)处理器、RISC(精简指令集计算机)处理器、或者MISC(最小指令集计算机)处理器。处理器可以提供例如设备950的其他组件的协调,诸如对用户界面、由设备950运行的应用、以及设备950的无线通信的控制。
处理器952可以通过控制接口958和耦接到显示器954的显示接口956来与用户通信。显示器954可以是例如TFT(薄膜晶体管液晶显示)显示器或OLED(有机发光二极管)显示器、或者其他适当的显示技术。显示接口956可以包括用于驱动显示器954以向用户呈现图形和其他信息的适当的电路。控制接口958可以从用户接收命令,并将它们转换用以提交给处理器952。另外,外部接口962可以配设为与处理器952通信,从而使得设备950能够与其他设备进行近区域通信。例如,外部接口962可以在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。
存储器964将信息存储在计算设备950内。存储器964能够实施为一个或多个计算机可读介质或媒介、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元。扩展存储器974也可以通过扩展接口972(可以包括例如SIMM(单列存储器模块)卡接口)配设并连接到设备950。这样的扩展存储器974可以为设备950提供额外的存储空间,或者还可以为设备950存储应用或其他信息。具体而言,扩展存储器974可以包括用于执行或补充上述处理的指令,并且还可以包括安全信息。因此,例如,扩展存储器974可以配设为用于设备950的安全模块,并且可以利用许可安全使用设备950的指令来编程。另外,可以经由SIMM卡提供安全应用,连同附加信息,诸如以不可攻击的方式将识别信息放置在SIMM卡上。
存储器964可以包括例如闪速存储器和/或NVRAM存储器,如下所述。在一个实施方式中,计算机程序产品有形地实施在信息载体中。计算机程序产品包含在执行时进行一个或多个方法(诸如上述的方法)的指令。信息载体是计算机可读或机器可读介质,诸如存储器964、扩展存储器974、或可以通过例如收发器968或外部接口962接收的处理器952上的存储器。
设备950可以通过通信接口966无线地通信,必要时通信接口966可以包括数字信号处理电路。通信接口966可以提供在各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS、或MMS消息传送、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。可以例如通过射频收发器968而发生这样的通信。另外,诸如使用蓝牙、WiFi、或其他这样的收发器(未示出)可以发生近程通信。另外,GPS(全球定位***)接收器模块970可以向设备950提供额外的导航相关和定位相关的无线数据,其可以适当地由设备950上运行的应用使用。
设备950还可以使用音频编解码器960可听地通信,音频编解码器960可以从用户接收语音信息并将其转换为可用的数字信息。音频编解码器960也可以为用户生成听得见的声音,诸如通过扬声器(例如,在设备950的手持机中)。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等)并且还可以包括由设备950上操作的应用生成的声音。
如图所示,可以以多种不同形式来实施计算设备950。例如,它可以实施为蜂窝电话980。它还可以实施为智能电话982、个人数字助理、或者其他类似的移动设备的一部分。
在各种实施方式中,在先前的操作不成功的情况下(例如,未进行确定的情况下)不进行“响应于”另一操作或者“作为”另一操作“的结果”(例如,确定或识别)而进行的操作。“自动”进行的操作是在没有用户介入(例如,介入用户输入)的情况下而进行的操作。本文档中的用条件句语言描述的特征可以描述可选的实施方式。在一些示例中,从第一设备“传送”到第二设备包括第一设备将数据放置到网络中用以由第二设备接收,但是可以不包括第二设备接收数据。相反地,从第一设备“接收”可以包括从网络接收数据,但是可以不包括第一设备传送数据。
由计算***“确定”能够包括计算***请求另一设备进行确定并将结果供给到计算***。此外,由计算***“显示”或“呈现”能够包括计算***发送用于使另一设备显示或呈现所引用的信息的数据。
本说明书中所描述的主题和操作的实施例可以以数字电子电路来实施,或者以计算机软件、固件或硬件(包括本说明书及其结构等同方案中所公开的结构)来实施,或者以它们的一个或多个的组合来实施。可以将本说明书中所描述的主题的实施例实施为在计算机存储介质上被编码的一个或多个计算机程序,即计算机程序指令的一个或多个模块,这些指令用于由数据处理装置来执行或者控制数据处理装置的操作。替选地或者另外地,可以在人工生成的传播信号(例如,机器生成的电、光或者电磁信号)上对程序指令进行编码,该信号被生成为对信息进行编码以用于向合适的接收装置传送以由数据处理装置来执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基质、随机或者顺序存取存储器阵列或设备或者它们的一个或多个的组合,或者被包括在计算机可读存储设备、计算机可读存储基质、随机或者顺序存取存储器阵列或设备或者它们的一个或多个的组合中。另外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或者目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个CD、盘或者其他存储设备),或者可以被包括在一个或多个单独的物理组件或介质中。
可以将本说明书中所描述的操作实施为由数据处理装置对在一个或多个计算机可读存储设备上存储的或者从其他源接收的数据进行的操作。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,以示例的方式包括可编程处理器、计算机、片上***或者上述各项中的多项或者组合。装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件,装置还可以包括创建所讨论的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***、跨平台运行时间环境、虚拟机或者它们的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型架构,诸如网络服务、分布式计算架构和网格式计算架构。
可以以任何形式的编程语言来编写计算机程序(也被称为程序、软件、软件应用、脚本或者代码),包括编译语言或者解释语言、声明语言或者过程语言,并且可以以任何形式来部署计算机程序,包括作为独立式程序或者作为模块、部件、子例程、对象或者适合用于在计算环境中使用的其他单元。计算机程序可以而非必须对应于文件***中的文件。程序可以存储在保存其他程序或者数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件(例如,存储一个或多个模块、子程序或者代码的一部分的文件)中。计算机程序可以被部署成在一个计算机或者在多个计算机上执行,多个计算机位于一个地方或者分布跨多个地方并且通过通信网络互连。
可以由一个或多个可编程处理器来执行本说明书中所描述的处理和逻辑流程,一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并且生成输出来执行动作。也可以由专用逻辑电路来执行处理和逻辑流程,并且也可以将装置实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器二者以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器从只读存储器或者随机存取存储器或者从这二者接收指令和数据。计算机的主要元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还可以包括一个或多个大容量存储设备,或者在操作上被耦合以从一个或多个大容量存储设备接收数据或者向一个或多个大容量存储设备传送数据或者进行这二者,一个或多个大容量存储设备用于存储数据,例如磁盘、磁光盘或者光盘。然而,计算机不需要具有这样的设备。另外,计算机可以被嵌入在另一设备(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位***(GPS)接收器或者便携式存储设备(例如通用串行总线(USB)闪速驱动器),仅举几例)中。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,以示例的方式包括:半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或者可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或者被合并在专用逻辑电路中。
为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示)监视器)以及用户能够通过其向计算机提供输入的键盘和指示设备(例如鼠标或跟踪球)的计算机上来实施本说明书中所描述的主题的实施例。也可以使用其它种类的设备以提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声音输入、语音输入或者触觉输入。另外,计算机可以通过向用户所使用的设备发送文档并且从该设备接收文档来与用户交互;例如通过响应于从web浏览器接收的请求在用户的用户设备上向web浏览器发送web页面。
本说明书中所描述的主题的实施例可以在计算机***中来实施,计算机***包括后端部件(例如作为数据服务器),或者包括中间部件(例如应用服务器),或者包括前端部件(例如具有用户能够通过其与本说明书中所描述的主题的实施方式进行交互的图形用户界面或者Web浏览器的用户计算机),或者包括一个或多个这样的后端部件、中间部件或前端部件的任意组合。***的部件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(LAN)和广域网(WAN)、互联网(例如因特网)和对等网络(例如专用对等网络)。
计算***可以包括用户和服务器。用户和服务器通常彼此远离,并且通常通过通信网络交互。用户与服务器的关系凭借在相应计算机上运行并且彼此具有用户服务器关系的计算机程序而出现。在一些实施例中,服务器向用户设备传输数据(例如HTML页面)(例如出于向用户设备显示数据并且从与用户设备交互的用户接收用户输入的目的)。可以在服务器处从用户设备接收在用户设备处生成的数据(例如用户交互的结果)。
虽然本说明书包含许多特定实施细节,但是不应当将这些细节解释为对任何发明或可能要求保护的范围的限制,而是应当将其解释为对特别发明的特别实施例特定的特征的描述。也可以在单个实施例中以组合的方式来实施在本说明书中在单独的实施例的情境中描述的某些特征。相反,也可以在多个实施例中单独地或者在任何合适的子组合中实施在单个实施例的情境中描述的各种特征。另外,虽然在某些实施例中可以如以上将特征描述为动作并且甚至本来像这样被要求保护,但是在一些情况下可以从组合中去除来自要求保护的组合的一个或多个特征,并且可以使要求保护的组合针对子组合或者子组合的变型。
类似地,虽然在附图中按照特定顺序来描绘操作,但是不应当将其理解为要求以所示出的特定顺序或者依次顺序来执行这样的操作以实现期望的结果,也不应当将其理解为执行所有图示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。另外,不应当将以上描述的实施例中的各种***部件的分离理解为在所有实施例中要求这样的分离,并且应当理解的是,通常可以将所描述的程序部件和***一起集成在单个软件产品中或者封装成多个软件产品。
因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,可以按照不同的顺序来执行权利要求中给出的动作,并且仍然实现期望的结果。另外,附图中所描绘的过程并不一定要求所示的特定顺序或者依次顺序以实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (20)

1.一种计算机实施的方法,所述方法由一个或多个处理器执行,所述方法包括:
接收包括多个操作的工作流程定义,多个操作中的每个包括一个或多个各自与输入值相关联的输入属性以及一个或多个各自与输出值相关联的输出属性;
确定用于定义多个操作之间的关系的工作流程的执行序列,所述确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值以及一个或多个输出属性和关联的输出值,并且至少部分地基于一个或多个定义多个操作中的每个的依赖性的语义规则;以及
生成表示执行序列的非循环有向图,非循环有向图包括一个或多个各自表示多个操作中的操作的节点,以及一个或多个各自表示由执行序列定义的多个操作之间的关系的顶点。
2.根据权利要求1所述的方法,还包括基于由非循环有向图表示的执行序列,指示由网络连接的多个计算设备执行工作流程。
3.根据权利要求1所述的方法,还包括生成定义用户界面并使经由用户界面来接收工作流程的定义的,用户界面被配置为允许用户指定多个操作、针对用于每个操作的一个或多个输入属性中的每个的输入值、以及针对用于每个操作的一个或多个输出属性中的每个的输出值。
4.根据权利要求3所述的方法,其中,用户界面被配置为允许用户创建新的操作,以及选择用于多个操作中的具体操作的输出值作为新的操作的输入值。
5.根据权利要求3所述的方法,其中,用户界面被配置为允许用户从移动设备指定多个操作、针对用于每个操作的一个或多个输入属性中的每个的输入值、以及针对用于每个操作的一个或多个输出属性中的每个的输出值。
6.根据权利要求5所述的方法,其中,用户界面被配置为将工作流程定义呈现为从多个操作之间的所确定的关系的树结构导出。
7.根据权利要求6所述的方法,其中,具有单个输入值的第一操作被表示为具有与所述单个输入值匹配的输出值的第二操作的下一级。
8.根据权利要求6所述的方法,其中,具有与多个第二操作的输出值相对应的多个输入值的第一操作被表示为多个第二操作中的最高树级性质的第二操作的下一级。
9.根据权利要求1所述的方法,其中,一个或多个输入属性表示文件,并且针对每个输入属性的关联的输入值表示要由操作在执行期间作为输入读取的文件的文件标识符。
10.根据权利要求9所述的方法,其中,文件标识符包括在文件***内识别文件的文件名称。
11.根据权利要求1所述的方法,其中,一个或多个输出属性表示文件,并且针对每个输出属性的关联的输出值表示操作在执行期间将输出写入到的文件的文件标识符。
12.根据权利要求11所述的方法,其中,文件标识符包括在文件***内识别文件的文件名称。
13.根据权利要求1所述的方法,其中,一个或多个输入属性表示数据流,并且针对每个输入属性的关联的输入值表示要由操作在执行期间作为输入读取的数据流的流标识符。
14.根据权利要求13所述的方法,其中,流标识符包括识别数据流的唯一资源标识符(URI)。
15.根据权利要求1所述的方法,其中,一个或多个输出属性表示数据流,并且针对每个输出属性的关联的输出值表示操作在执行期间将输出写入到的数据流的流标识符。
16.根据权利要求1所述的方法,还包括通过显示设备呈现所生成的非循环有向图的图形表示。
17.根据权利要求1所述的方法,其中,多个操作之间的每个关系表示由多个操作中的第一操作生成的并由多个操作中不同于第一操作的第二操作作为输入使用的输出资源。
18.根据权利要求1所述的方法,其中,每个操作与软件程序相关联,并且与操作相关联的一个或多个输入属性和输出属性从自与软件程序相关联的程序描述取得。
19.一种非临时性的计算机可读介质,存储在执行时可操作为使至少一个处理器进行以下操作的指令:
接收包括多个操作的工作流程定义,多个操作中的每个包括一个或多个各自与输入值相关联的输入属性以及一个或多个各自与输出值相关联的输出属性;
确定用于定义多个操作之间的关系的工作流程的执行序列,所述确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值以及一个或多个输出属性和关联的输出值,并且至少部分地基于一个或多个定义多个操作中的每个的依赖性的语义规则;以及
生成表示执行序列的非循环有向图,非循环有向图包括一个或多个各自表示多个操作中的操作的节点,以及一个或多个各自表示由执行序列定义的多个操作之间的关系的顶点。
20.一种***,包括:
用于存储数据的存储器;以及
一个或多个处理器,可操作为进行以下操作:
接收包括多个操作的工作流程定义,多个操作中的每个包括一个或多个各自与输入值相关联的输入属性以及一个或多个各自与输出值相关联的输出属性;
确定用于定义多个操作之间的关系的工作流程的执行序列,所述确定至少部分地基于用于每个操作的一个或多个输入属性和关联的输入值以及一个或多个输出属性和关联的输出值,并且至少部分地基于一个或多个定义多个操作中的每个的依赖性的语义规则;以及
生成表示执行序列的非循环有向图,非循环有向图包括一个或多个各自表示多个操作中的操作的节点,以及一个或多个各自表示由执行序列定义的多个操作之间的关系的顶点。
CN201580035312.9A 2014-10-09 2015-09-24 自动生成用于工作流程的执行序列 Active CN106537426B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/511,027 US9952899B2 (en) 2014-10-09 2014-10-09 Automatically generating execution sequences for workflows
US14/511,027 2014-10-09
PCT/US2015/052009 WO2016057236A1 (en) 2014-10-09 2015-09-24 Automatically generating execution sequences for workflows

Publications (2)

Publication Number Publication Date
CN106537426A true CN106537426A (zh) 2017-03-22
CN106537426B CN106537426B (zh) 2020-04-28

Family

ID=54325680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580035312.9A Active CN106537426B (zh) 2014-10-09 2015-09-24 自动生成用于工作流程的执行序列

Country Status (5)

Country Link
US (1) US9952899B2 (zh)
EP (1) EP3170130B1 (zh)
CN (1) CN106537426B (zh)
DE (1) DE202015009254U1 (zh)
WO (1) WO2016057236A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369005A (zh) * 2017-07-18 2017-11-21 合肥云数安存数据科技有限公司 一种工作流模型生成、业务处理方法及装置
CN109615319A (zh) * 2018-11-30 2019-04-12 象山邱工联信息技术有限公司 基于云数据管理的流程构建***
CN109934507A (zh) * 2019-03-21 2019-06-25 网宿科技股份有限公司 一种业务流程调度的方法及装置
CN110998531A (zh) * 2017-08-24 2020-04-10 谷歌有限责任公司 元组图程序中子图内优化的方法
CN111566576A (zh) * 2018-01-12 2020-08-21 横河电机株式会社 操作流程生成装置、***、程序和操作流程生成方法
CN111708520A (zh) * 2020-06-16 2020-09-25 北京百度网讯科技有限公司 应用构建方法、装置、电子设备及存储介质
CN112292644A (zh) * 2018-07-12 2021-01-29 应用材料公司 使用基于块的工作流程的约束编程
CN113162784A (zh) * 2020-01-22 2021-07-23 阿里巴巴集团控股有限公司 一种运维模板的生成方法和装置

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11386512B2 (en) * 2015-02-06 2022-07-12 Sunrun, Inc. Systems and methods for generating permit sets
US10984363B2 (en) * 2015-09-04 2021-04-20 International Business Machines Corporation Summarization of a recording for quality control
WO2017048907A1 (en) * 2015-09-15 2017-03-23 Skytree, Inc. Federation and inter-organization collaboration in data analysis
US11546380B2 (en) * 2015-10-28 2023-01-03 Qomplx, Inc. System and method for creation and implementation of data processing workflows using a distributed computational graph
US10528327B2 (en) * 2015-11-23 2020-01-07 Microsoft Technology Licensing Llc Workflow development system with ease-of-use features
US10091123B2 (en) * 2015-12-14 2018-10-02 Bank Of America Corporation System and user interface for coordinating distributed workflow between multiple computing systems
US10380185B2 (en) * 2016-02-05 2019-08-13 Sas Institute Inc. Generation of job flow objects in federated areas from data structure
US10650046B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US10346211B2 (en) 2016-02-05 2019-07-09 Sas Institute Inc. Automated transition from non-neuromorphic to neuromorphic processing
US11086608B2 (en) * 2016-02-05 2021-08-10 Sas Institute Inc. Automated message-based job flow resource management in container-supported many task computing
US11474863B2 (en) * 2018-06-22 2022-10-18 Sas Institute Inc. Federated area coherency across multiple devices in many-task computing
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10331495B2 (en) * 2016-02-05 2019-06-25 Sas Institute Inc. Generation of directed acyclic graphs from task routines
US10650045B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Staged training of neural networks for improved time series prediction performance
US9858045B2 (en) * 2016-03-28 2018-01-02 Microsoft Technology Licensing, Llc Designer tool for managing cloud computing services
US9910642B2 (en) * 2016-05-26 2018-03-06 Cisco Technology, Inc. Optimal rule generation from a digraph representation
US10474488B2 (en) * 2016-10-06 2019-11-12 Vmware, Inc. Configuration of a cluster of hosts in virtualized computing environments
US10909503B1 (en) * 2016-11-08 2021-02-02 EMC IP Holding Company LLC Snapshots to train prediction models and improve workflow execution
USD898059S1 (en) 2017-02-06 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US11256743B2 (en) 2017-03-30 2022-02-22 Microsoft Technology Licensing, Llc Intermixing literal text and formulas in workflow steps
CN107315581B (zh) * 2017-05-23 2020-09-11 努比亚技术有限公司 任务脚本生成装置及方法、任务调度***及方法
USD898060S1 (en) 2017-06-05 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US11100922B1 (en) * 2017-09-26 2021-08-24 Amazon Technologies, Inc. System and methods for triggering sequences of operations based on voice commands
WO2019144240A1 (en) 2018-01-29 2019-08-01 Rubikloud Technologies Inc. Method and system for flexible pipeline generation
US11281364B2 (en) * 2018-12-20 2022-03-22 Citrix Systems, Inc. Flowchart-style diagramming tool to build automated workflows
US10768908B1 (en) 2019-02-25 2020-09-08 Microsoft Technology Licensing, Llc Workflow engine tool
CN110879701B (zh) * 2019-11-06 2023-05-12 深圳市网心科技有限公司 工作流可视化配置方法、服务器、***及介质
US11815943B1 (en) 2020-06-05 2023-11-14 State Farm Mutual Automobile Insurance Company Systems and methods for processing using directed acyclic graphs
US20230030393A1 (en) * 2020-10-13 2023-02-02 Shenzhen Jingtai Technology Co., Ltd. General description language data system for directed acyclic graph automatic task flow
CN112163840A (zh) * 2020-10-29 2021-01-01 银川安翰互联网医院有限公司 工作流的定义方法、实例的跨地域管理方法和设备
CN114625509A (zh) * 2022-03-18 2022-06-14 浙江网商银行股份有限公司 工作流处理方法以及装置
US20240119229A1 (en) * 2022-10-07 2024-04-11 Row Zero, Inc. Hybrid Spreadsheet and Coding Environment Supporting Multiple Programming Languages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294244A1 (en) * 2006-06-14 2007-12-20 Alexander Dreiling System and method for configuring application programs
CN102193823A (zh) * 2010-03-12 2011-09-21 微软公司 允许元编程的最优增量工作流执行
US20120072391A1 (en) * 2010-09-22 2012-03-22 Alkiviadis Simitsis Apparatus and method for an automatic information integration flow optimizer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372492B2 (en) * 2013-12-11 2019-08-06 Dropbox, Inc. Job-processing systems and methods with inferred dependencies between jobs
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294244A1 (en) * 2006-06-14 2007-12-20 Alexander Dreiling System and method for configuring application programs
CN102193823A (zh) * 2010-03-12 2011-09-21 微软公司 允许元编程的最优增量工作流执行
US20120072391A1 (en) * 2010-09-22 2012-03-22 Alkiviadis Simitsis Apparatus and method for an automatic information integration flow optimizer

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369005A (zh) * 2017-07-18 2017-11-21 合肥云数安存数据科技有限公司 一种工作流模型生成、业务处理方法及装置
CN110998531A (zh) * 2017-08-24 2020-04-10 谷歌有限责任公司 元组图程序中子图内优化的方法
CN111566576A (zh) * 2018-01-12 2020-08-21 横河电机株式会社 操作流程生成装置、***、程序和操作流程生成方法
CN112292644A (zh) * 2018-07-12 2021-01-29 应用材料公司 使用基于块的工作流程的约束编程
CN109615319A (zh) * 2018-11-30 2019-04-12 象山邱工联信息技术有限公司 基于云数据管理的流程构建***
CN109934507A (zh) * 2019-03-21 2019-06-25 网宿科技股份有限公司 一种业务流程调度的方法及装置
CN113162784A (zh) * 2020-01-22 2021-07-23 阿里巴巴集团控股有限公司 一种运维模板的生成方法和装置
CN113162784B (zh) * 2020-01-22 2023-08-22 阿里巴巴集团控股有限公司 一种运维模板的生成方法和装置
CN111708520A (zh) * 2020-06-16 2020-09-25 北京百度网讯科技有限公司 应用构建方法、装置、电子设备及存储介质
CN111708520B (zh) * 2020-06-16 2023-08-29 北京百度网讯科技有限公司 应用构建方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
EP3170130B1 (en) 2020-08-05
WO2016057236A1 (en) 2016-04-14
CN106537426B (zh) 2020-04-28
US20160103706A1 (en) 2016-04-14
DE202015009254U1 (de) 2017-02-17
EP3170130A1 (en) 2017-05-24
US9952899B2 (en) 2018-04-24

Similar Documents

Publication Publication Date Title
CN106537426A (zh) 自动生成用于工作流程的执行序列
US10628132B2 (en) Inversion of control framework for multiple behaviors of a process
US10845962B2 (en) Specifying user interface elements
US20190196672A1 (en) Visual effects system for &#34;big data&#34; analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
CN103180826B (zh) 在代表计算机程序的数据流图中管理数据集对象
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US9471211B2 (en) Chaining applications
CN112199086B (zh) 自动编程控制***、方法、装置、电子设备及存储介质
CN110287097A (zh) 批量测试方法、装置及计算机可读存储介质
US20160313874A1 (en) Visual effects system for &#34;big data&#34; analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
US20120233595A1 (en) Service definition document for providing blended services utilizing multiple service endpoints
CN117008923B (zh) 基于ai大模型的代码生成和编译部署方法、平台和设备
US20060020931A1 (en) Method and apparatus for managing complex processes
US20130332897A1 (en) Creating a user model using component based approach
CN109902251A (zh) 基于决策树的方案选择方法、装置、终端及可读存储介质
CN109271160A (zh) 活动规则组建方法、装置和计算机***、介质
CN111813739A (zh) 数据迁移方法、装置、计算机设备及存储介质
Lemmens et al. Enhancing Geo‐Service Chaining through Deep Service Descriptions
Amirian Beginning ArcGIS for desktop development using. NET
Gesing et al. Workflows in a dashboard: a new generation of usability
US20220413843A1 (en) Combining model-driven applications and canvas-type applications with application lifecycle management
Indamutsa et al. MDEForgeWL: Towards cloud-based discovery and composition of model management services
CN115033233A (zh) 一种接口调用方法、装置、电子设备及存储介质
Merah et al. Design of ATL rules for transforming UML 2 communication diagrams into buchi automata
CN104660697B (zh) 基于Kepler科学工作流传感网服务组合方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant