CN106170762B - 管理包括子图的数据流图所用的接口 - Google Patents

管理包括子图的数据流图所用的接口 Download PDF

Info

Publication number
CN106170762B
CN106170762B CN201480074609.1A CN201480074609A CN106170762B CN 106170762 B CN106170762 B CN 106170762B CN 201480074609 A CN201480074609 A CN 201480074609A CN 106170762 B CN106170762 B CN 106170762B
Authority
CN
China
Prior art keywords
graph
component
sub
data
interface
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.)
Active
Application number
CN201480074609.1A
Other languages
English (en)
Other versions
CN106170762A (zh
Inventor
B·拉森
保罗·贝
H·M·布罗姆利
D·G·史蒂文斯
T·特斯维塔诺夫
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.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology 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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of CN106170762A publication Critical patent/CN106170762A/zh
Application granted granted Critical
Publication of CN106170762B publication Critical patent/CN106170762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/20Software design
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

生成和/或组合数据流图的规格。数据流图的子图接口(123)包括一个或多个流汇合点。流汇合点(204D)表示子图接口外部的数据的流和子图接口内部的数据的流之间的连接。在一些实施例中,对信息进行处理以生成组合数据流图规格(300),该处理包括:针对至少第一流汇合点识别子图接口和第一数据流图规格之间的关联;确定与传送描述符的值相关联的方向;以及根据所确定出的方向来传送描述符的值。在一些实施例中,基于表示第一描述符和第二描述符之间的关系的用户输入来渲染第一流汇合点和第二流汇合点之间的链接(229)。

Description

管理包括子图的数据流图所用的接口
相关申请的交叉引用
本申请要求2013年12月5日提交的美国申请序列号61/912,057和2014年7月31日提交的美国申请序列号62/031,388的优先权。
背景技术
本说明书涉及管理数据流图中的子图所用的接口。
许多软件应用程序为了处理数据而存在。这些软件应用程序中的一部分被指定为数据流图。数据流图通常包括通过有时被称为“流(flow)”的链接而相互连接的多个数据处理组件。
在执行数据流图的情况下,从数据库或者从一些其它数据存储器或数据排队系统接收数据(例如,数据集)。所接收到的数据通过根据组件和流的相互连接所定义的依赖性而传播通过流并进入组件来行进通过数据流图。各组件在经由流提供处理后的数据作为输出数据之前,根据与该组件相关联的预定功能来处理所接收到的数据。在数据流图的输出处,处理后的数据例如存储在其它数据存储器或数据排队系统中,提供给其它下游系统或呈现给用户。
数据流图的开发者通常通过将表示组件的块拖拽到图形用户接口所提供的图形工作区域(或“画布(canvas)”)上,并且利用表示数据流的链接使这些组件相互连接来确定图,以使得该数据流图实现期望功能。一旦开发者对其数据流图的实现满意,则该开发者可以将该数据流图保存至存储器以供以后使用。通常,如果开发者需要在以后改变数据流图的实现,则该开发者可以使图形用户接口从存储器读取所保存的数据流图,对该数据流图进行改变,然后将修改后的数据流图再保存至存储器。
在一些示例中,数据流图的一段或多段自身是使用数据流图来实现的,该一段或多段被称为“子图”。在这些示例中,子图是数据流图的一部分。因而,为了改变给定数据流图内所使用的子图,开发者请求系统从盘读取该数据流图,由此使得开发者能够在图形用户接口中打开该数据流图。然后开发者将在同一图形用户接口内打开子图段,以使得可以编辑子图。开发者可以对子图进行改变,然后开发者使数据流图与修改后的子图一起再保存至存储器,由此将子图的变化嵌入在所保存的数据流图中。
发明内容
在一方面,通常,一种用于组合数据流图的规格的方法,所述方法包括:经由输入装置或端口接收多个数据流图规格,所述多个数据流图规格包括:(“子图”所用的)第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及(“容器图”所用的)第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流。该方法包括使用至少一个处理器来处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:识别所述子图接口和所述第一数据流图规格之间的关联;针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
方面可以包括以下特征中的一个或多个特征。
所述第一数据流图规格包括至少一个指示,该至少一个指示表示与所述第一组件相关联的描述符与同所述第二组件相关联的描述符相同。
所确定出的方向与数据的第一描述符或计算用特性的值从所述子图接口上的所述第一流汇合点向所述第二组件的向内传送相对应。
所述第一描述符是从所述第三组件向所述第一流汇合点提供的。
所述第一描述符是从所述第二组件向所述第一组件提供的。
所述第二数据流图规格包括至少一个指示,该至少一个指示表示与所述第三组件相关联的描述符与同所述子图接口相关联的描述符相同。
所述第二数据流图规格包括至少一个指示,该至少一个指示表示与第四组件相关联的描述符与同所述第三组件相关联的描述符相同。
所确定出的方向与数据的第一描述符或计算用特性的值从所述子图接口上的所述第一流汇合点向所述第三组件的向外传送相对应。
所述第一描述符是从所述第一组件向所述第一流汇合点提供的。
所述第一描述符是从所述第三组件向所述第四组件提供的。
所述描述符用于描述所述第一组件的端口和所述第二组件的端口之间所传送的数据的数据特性。
所述数据特性包括所传送的数据内的记录的字段的格式。
所述描述符用于描述所述第一数据流图规格和所述第二数据流图规格至少之一的组件的计算用特性。
所述计算用特性包括所述组件所表示的计算的执行的并行程度。
对所述第一数据流图进行加密。
对所述第二数据流图进行加密。
所述第一数据流图的所述两个以上组件分布在所述第一数据流图中的第一组多个顺次执行的级中。
所述第二数据流图包括多个组件,所述多个组件和所述子图接口分布在所述第二数据流图中的第二组多个顺次执行的级中。
使数据流图准备好执行包括基于所述第一组多个顺次执行的级和所述第二组多个顺次执行的级来确定包括在所述数据流图中的多个级。
在另一方面,通常,一种以非瞬态形式存储在计算机可读介质上的软件,用于组合数据流图的规格,所述软件包括使计算系统执行以下处理的指令:经由输入装置或端口接收多个数据流图规格,所述多个数据流图规格包括:第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及使用至少一个处理器来处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:识别所述子图接口和所述第一数据流图规格之间的关联;针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
在另一方面,通常,一种计算系统,用于组合数据流图的规格,所述计算系统包括:输入装置或端口,用于接收多个数据流图规格,所述多个数据流图规格包括:第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及至少一个处理器,用于处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:识别所述子图接口和所述第一数据流图规格之间的关联;针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
在另一方面,通常,一种用于确定数据流图的方法,所述方法包括:在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性,以及渲染所述第二用户接口的一部分,该部分用于接收确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性的用户输入,其中所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
在另一方面,通常,一种用于确定数据流图的方法,所述方法包括:在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,以及基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性。
方面可以包括以下特征中的一个或多个特征。
所述方法还包括生成用于存储所述第一数据流图的表示的数据结构,所述数据结构包括:表示第一组一个或多个组件的数据,该第一组一个或多个组件包括经由所述子图接口外部的一个或多个流汇合点所连接的数据的一个或多个流;以及表示第二组一个或多个组件的数据,该第二组一个或多个组件包括经由所述子图接口内部的一个或多个流汇合点所连接的数据的一个或多个流。
所述关系对应于所述第一描述符和所述第二描述符相同。
所述第二用户接口包括用于接收用户输入的部分,所述用户输入确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性。
所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
所述方向与数据的第一描述符或计算用特性的值从所述第一流汇合点向所述子图的所述第一组件的向内传送相对应。
所述方向与数据的第一描述符或计算用特性的值从所述第一流汇合点向所述第一数据流图的所述第三组件的向外传送相对应。
所述第一描述符用于描述所述第一数据流图的所述第三组件的端口和所述子图的所述第一组件的端口之间所传送的数据的数据特性。
所述数据特性包括所传送的数据内的记录的字段的格式。
所述描述符用于描述所述第一数据流图的所述第三组件和所述子图的所述第一组件至少之一的计算用特性。
所述计算用特性包括所述第一数据流图的所述第三组件或所述子图的所述第一组件所表示的计算的执行的并行程度。
所述第一用户接口是由第一计算系统所生成的。
所述第二用户接口是由与所述第一计算系统不同的第二计算系统所生成的。
在另一方面,通常,一种以非瞬态形式存储在计算机可读介质中的软件,用于确定数据流图,所述软件包括用于使计算系统执行以下处理的指令:在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,以及基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性。
在另一方面,通常,一种计算系统,用于确定数据流图,所述计算系统包括:第一计算装置,用于在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及第二计算装置,用于在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性。
方面可以包括以下优点中的一个或多个优点。
除其它优点以外,用以管理包括子图的动态链接的子图接口的方法便于使代码抽象化以及在数据流图开发环境中重复使用。子图向子图接口的动态链接涉及使针对要使用多个可能子图中的哪一个来实现与该子图接口相关联的功能的判断延迟(例如,直到恰好在执行之前为止)。因而,容器图(即,具有一个或多个子图接口的数据流图)可以用作能够重复使用并定制的模板。模板数据流图可以发送至客户。然后,客户可以供给用于实现子图接口的图逻辑并且针对客户的需求和操作环境来定制模板数据流图。客户可以包括定制数据流图的用户,以及/或者向其它用户提供定制数据流图的开发者。
子图接口提供制作遍及接口的多个实现而通用的数据流图的能力。子图接口提供在子图接口的任何实现之前针对接口开发图的能力。子图接口提供在无需使用的具体实例的情况下针对接口验证实现的能力。子图接口提供区分子图的实现的发送位置、许可、加密或其它属性的能力。
一些实施例使得能够根据与子图接口相关联的实现子图得出包括该子图接口的容器图中的元数据。元数据例如可以包括提供给组件或从组件提供的数据的描述符(例如,记录格式)、组件的计算用特性或者与组件相关联的计算资源。有利地,根据实现子图得出容器图所用的元数据使得该容器图相对于从该实现子图得到或者进入该实现子图的数据的类型是可配置的。这在开发者指定实现子图读取具有特定记录格式的数据并且将该数据传递至预定义的容器图以供进一步处理的情况下尤其有用。在一些示例中,预定义的容器图是由一些其它实体所指定的并且可以是只读的、加密的或者以一些其它方式受到保护以免被查看和/或修改。在一些示例中,实现子图可以是只读的,加密的或者以一些其它方式受到保护以免被查看和/或修改。这种图需要能够容纳来自实现子图的不同类型的记录格式而无需用户干预。还可以根据包括子图接口的容器图得出与该子图接口相关联的实现子图中的元数据,这可以使得不同容器图中的实现子图的使用具有一定的灵活性。
开发者可以有利地创建并使用子图接口的实现的库。这些库可以用于减少开发时间并且鼓励代码重复使用。
一些实施例使得能够根据容器图对子图接口的子图实现进行依赖性分析和内省。
用于开发容器图的图形用户接口可以包括多级以及如何将这些级应用于任意子图接口的图形指示,这使得开发者能够理解这些级将如何影响数据流图的不同部分(例如,哪些数据流将穿过级边界,由此使得通过该数据流的数据持久地存储在缓冲器中)。
用于开发子图接口的图形用户接口鼓励开发者将动态链接的子图视为受制于强抽象边界,由此要求与开发一个或多个子图实现分开地(或通常在开发一个或多个子图实现之前)开发子图接口,并且在一些示例中,与开发容器图分开地(或者在开发容器图之前)开发子图接口。
根据以下说明书、以及根据权利要求书,本发明的其它特征和有点将变得明显。
附图说明
图1A是被配置为使用动态链接的子图的系统的框图。
图1B是准备数据流图以供执行的不同阶段的流程图。
图2A是包括子图接口的数据流图。
图2B是子图接口的实现。
图2C是组合数据流图。
图2D是子图接口开发用户接口。
图2E是子图接口属性用户接口的端口配置标签。
图3A示出图2A的数据流图中的编辑时间记录格式元数据传播。
图3B示出图2B的子图接口的实现中的编辑时间记录格式元数据传播。
图3C示出图2C的组合数据流图中的链接时间记录格式元数据传播。
图4A示出图2A的数据流图中的编辑时间布局元数据传播。
图4B示出图2B的子图接口的实现中的编辑时间布局元数据传播。
图4C示出图2C的组合数据流图中的链接时间布局元数据传播。
具体实施方式
图1A示出可以使用动态链接的子图的数据处理系统100的示例。系统100包括数据源102,其中该数据源102可以包括诸如存储装置或者至线上数据流的连接等的一个或多个数据的源,其中该一个或多个数据的源各自可以以各种格式(例如,数据库表、电子表格文件、非结构文本(flat text)文件或大型机所使用的原始格式)中的任何格式来存储或提供数据。执行环境104包括图准备模块106和图执行模块112。很通常地,图准备模块106将数据流图的规格(以下更详细地说明)装配并链接到可由图执行模块112执行的表示中。执行环境104例如可以在诸如某个版本的UNIX操作系统等的适当的操作系统的控制下安装在一个或多个通用计算机上。例如,执行环境104可以包括包含使用多个中央处理单元(CPU)或多个处理器内核的计算机系统的结构的多节点并行计算环境,可以是本地的(例如,诸如对称多处理(SMP)计算机等的多处理器系统)或本地分布式的(例如,作为集群所连接的多个处理器或大规模并行处理(MPP)系统)、或者远程或远程分布式的(例如,经由局域网(LAN)和/或广域网(WAN)连接的多个处理器)、或者它们的任何组合。
在一些示例中,执行环境104从数据源102读取数据,通过(例如,利用图执行模块112)执行与该数据有关的数据流图来处理该数据,并且将处理后的数据存储在数据存储系统中。提供数据源102的存储装置相对于执行环境104可以是本地的,例如,可以存储在连接至安装有执行环境104的计算机的存储介质(例如,硬盘驱动器108)上,或者相对于执行环境104可以是远程的,例如,安装在经由(例如,云计算基础设施所提供的)远程连接与安装有执行环境104的计算机进行通信的远程系统(例如,大型机110)上。
图执行模块112使用图准备模块106所生成的数据流图的表示来处理数据源102所提供的数据。输出数据可以存储回数据源102或者存储在执行环境104可访问的数据存储系统116中,或者被使用。开发环境118A也可以访问数据存储系统116,其中在开发环境118A中,开发者120A能够对用户接口121A内的数据流图的规格进行改变。在本示例中,存在用于开发独立用户接口内的不同数据流图的规格的多个独立开发环境。例如,第一开发者120A使用开发环境118A的第一用户接口121A来开发包括子图接口123的容器图122A。可能不同的第二开发者120B使用开发环境118B的第二用户接口121B来开发要加载在容器图122A的子图接口123中的实现子图122B,其中实现子图适应于子图接口123。在一些示例中,开发环境118A或118B是用于开发作为数据流图的应用程序的系统,其中数据流图包括顶点(表示数据处理组件或数据集),并且这些顶点通过顶点之间的有向链接(directed link)(表示工作元素(即,数据)的流)相连接。例如,在通过引用包含于此的标题为“ManagingParameters for Graph-Based Applications”的美国专利公开号2007/0011668中更详细地说明了这种环境。在通过引用包含于此的标题为“EXECUTING COMPUTATIONS EXPRESSEDAS GRAPHS”的美国专利5,966,072中说明了用于执行这种基于图的计算的系统。根据该系统所制作的数据流图提供用于将信息输入至图组件所表示的个别处理或从图组件所表示的个别处理获得信息的方法、用于在处理之间移动信息的方法以及用于定义处理的运行顺序的方法。该系统包括用于从任何可用方法中选取处理间通信方法的算法(例如,与图的链接相对应的通信路径可以使用TCP/IP或UNIX域套接字或者使用共享存储器在处理之间传递数据)。
执行模块104可以接收来自包括不同形式的数据库系统的可以实现数据源102的各种系统的数据。该数据可以被组织成具有针对各字段(还被称为“属性”或“列”)的值的可能包括空值的记录。在第一次从数据源读取数据的情况下,执行模块104通常从与该数据源中的记录有关的一些初始格式信息开始。在一些情形中,数据源的记录结构最初可能是未知的并且作为替代可以在对该数据源或数据进行了分析之后才确定。与记录有关的初始信息例如可以包括表示独特值的位的数量、记录内的字段的顺序以及位所表示的值的类型(例如,字符串、有符号/无符号整数)。
图1B示出使用数据处理系统100来准备数据流图以供执行以及执行数据流图的不同阶段的示例。在编辑时间,任意数量的开发者编辑(150)不同的数据流图,其中任意数量的开发者可以包括编辑容器图的一个开发者120A,以及对实现该数据流图中所包括的子图接口的实现子图进行编辑的另一开发者120B。在一些情况下,实现子图自身可以包括将由其自身嵌套的实现子图来实现的子图接口。然后,图开发者或图用户可以开始由图准备模块106来执行的使用子图的动态链接来准备数据流图以供执行的处理。图准备模块106判断(152)准备中的数据流图中是否存在任何未链接的子图接口。如果存在,则模块106链接(154)适当的子图。在该可能递归的链接处理期间(称为“链接时间”),可能存在与需要评价的数据流图相关联的各种参数,其中这些参数包括表示哪个特定实现子图应链接至给定子图接口的参数。在动态链接完成之后,模块106(在“编译时间”)将完全装配好的数据流图编译(156)成可执行形式,并且执行模块104(在“运行时间”)执行(158)编译后的数据流图。可能存在与在编译时间或运行时间评价的数据流图相关联的某些参数。
1容器图、子图和子图接口
参考图2A,第一数据流图200的框图被配置为使用多个组件处理来自第一输入数据集202A和第二输入数据集202B的数据并且将所得到的处理后的数据存储在输出数据集202C中。第一数据流图200包括第一组件208A、第二组件208B和子图接口210。很通常地,子图接口210使得子图能够动态地加载在第一数据流图中。在一些示例中,第一数据流图200由于其包括子图接口而被称为“容器图”。
组件各自具有用于接收输入数据的一个或多个输入端口以及用于提供输出数据的一个或多个输出端口。通常,各组件对流入其输入端口的输入数据应用计算并且经由该组件的输出端口提供计算结果作为输出。注意,在一些示例中,某些类型的组件可以仅包括输入端口或者仅包括输出端口。子图接口包括一个或多个流汇合点,其中流汇合点定义容器图和与子图接口相关联的子图中的流之间的连接点(以下更详细地说明)。各流汇合点表示至/来自第一数据流图的组件上的端口的数据的流和至/来自第二数据流图的组件上的端口的数据的流之间的连接(或“汇合点”)。数据集和组件的端口以及子图接口的流汇合点通过流206A~206E相互连接,这定义了数据如何在第一数据流图200的数据集、组件和子图接口之间传播。
具体地,针对图2A的第一数据流图200,第一组件208A上所包括的第一输入端口204B使用第一流206A连接至第二输入数据集202B上所包括的第一输出端口204A。子图接口210上所包括的第一流汇合点204D使用第二流206B连接至第一输入数据集202A上所包括的第二输出端口204C。子图接口210上所包括的第二流汇合点204F使用第三流206C连接至第一组件208A上所包括的第三输出端口204E。第二组件208B上所包括的第二输入端口204H使用第四流206D连接至子图接口210上所包括的第三流汇合点204G。最后,输出数据集202C上所包括的第三输入端口204J使用第五流206E连接至子图接口210上所包括的第四输出端口204I。
在第一数据流图200中,第一组件208A和第二组件208B是传统上已知的实现诸如排序、联合和各种数据变换等的功能的数据流图组件。
子图接口210是数据流图中使得能够使用子图的动态链接来管理第一数据流图200的一部分的规格的特殊类型的节点。在一些示例中,子图接口210接收包括指向盘上的第二数据流图规格的路径的参数输入PS 212。紧挨在第一数据流图200的执行之前,第二数据流图动态地链接到第一数据流图200中,实质上取代了子图接口210。
通常,为了可以使第二数据流图动态链接到第一数据流图200中,第二数据流图必须适应于子图接口210所定义的接口。也就是说,第二数据流图必须具有连接至子图接口的流汇合点的端口。通过使第二数据流图强制适应于子图接口210,已知在无需检验第二数据流图的情况下,连接至第一数据流图200中的子图接口210的端口的流可以直接连接至第二数据流图中的子图接口210的端口,由此在这两个数据流图中的端口之间形成单个流。
参考图2B,第二数据流图201的一个示例适应于图2A的子图接口210。在一些示例中,由于第二数据流图210适应于子图接口210并且针对子图接口210实现功能,因此第二数据流图201被称为“实现子图”。
第二数据流图201被配置为使用多个组件处理来自子图接口210所确定的第一流汇合点204D和第二流汇合点204F的数据,并且提供所得到的处理后的数据作为至子图接口210所定义的第三流汇合点204G的输出。组件各自具有用于接收输入数据的一个或多个输入端口以及用于提供输出数据的一个或多个输出端口。组件的端口通过流206F~206I相互连接,这定义了数据如何在第二数据流图201的子图接口210和组件之间传播。
具体地,针对图2B的第二数据流图201,第三组件208C上所包括的第四输入端口204K使用第六流206F连接至图形接口210上所包括的第二流汇合点204F。第四组件208D上所包括的第五输入端口204M使用第七流206G连接至图形接口210上所包括的第一流汇合点204D。第四组件208D上所包括的第六输入端口204N使用第八流206H连接至第三组件208C上所包括的第五输出端口204L。图形接口210上所包括的第三流汇合点204G使用第九流206I连接至第四组件208D上所包括的第六输出端口204O。
注意,在一些示例中,第二数据流图201中的组件的端口和流汇合点(即,206F、206G、206I)之间的连接不是传统的流而是流汇合点和端口之间的绑定(即,关联)或终端连接器。在第二数据流图201链接到第一数据流图200中的情况下,剥去绑定或终端连接器并且第二数据流图201中的组件的端口直接连接至第一数据流图200的流。
2动态链接
再参考图2A,紧挨在图执行模块112执行数据流图之前,图准备模块106处理第一数据流图200和第二数据流图201的一部分,以准备第一数据流图200以供执行。除了其它步骤以外,该处理包括在第一数据流图200中的子图接口210的位置处将第二数据流图201动态链接(即,绑定)到第一数据流图200中。
为了将第二数据流图201动态链接到第一数据流图200中,图准备模块106对提供至子图接口210的参数输入PS 212进行分析以确定盘上所存储的哪个实现子图与子图接口210相关联。加载所确定出的实现子图(例如,第二数据流图201)并对其进行实例化,并且将该实现子图的参数和端口绑定在第一数据流图200中以构成组合数据流图。然后对子图接口的流汇合点的至少一部分进行分析以确定元数据传播的方向,其中该方向对应于与流汇合点相关联的数据的描述符或计算用特性(即,元数据)的传送方向。在元数据传播的处理中,针对至少部分流汇合点,根据所确定出的方向将数据的描述符或计算用特性从该流汇合点传送至第一数据流图200中的组件或组件上的端口或者第二数据流图201中的组件或组件上的端口。以下详细说明元数据传播的该处理。
参考图2C,组合数据流图300包括图2A的第一数据流图200以及取代子图接口210而链接的第二数据流图201。由于第二数据流图201是子图接口210的实现并且适应于子图接口210,因此第二数据流图210的所有输入和输出端口经由流连接至第一数据流图200的组件。
组合数据流图300可由图执行模块112来执行。
3元数据传播
在数据流图中,通常,管理与数据流图中的组件的端口相关联的元数据以及/或者与这些组件自身相关联的元数据很重要。如上所述,在一些示例中,元数据包括数据的描述符(例如,端口所用的包括流入或流出端口的记录的字段序列和数据类型的记录格式)或者计算用特性(例如,组件的分区或布局)。在一些示例中,元数据可以包括组件可以使用的一定量的存储器、组件可以使用哪些计算资源、有序程度(sortedness)、压缩方法、字符集、二进制表示(例如,大字节序(big-endian)、小字节序(little-endian))或数据变换。
元数据管理可以手动、自动或者通过使用手动和自动元数据管理的组合来实现。针对手动元数据管理,元数据例如由图开发者或图用户来供给。对于自动元数据管理,元数据从图中(例如,由图开发者或者由图用户)显式定义了元数据的部分传播至图中未显式定义元数据的部分。在图用户或开发者没有直接供给给定端口或组件所用的元数据的情况下使用元数据传播。在这种情况下,从图中的其它端口或组件得出给定端口或组件所用的元数据。这里所使用的术语“元数据传播”是指该得出处理。
在图2A的第一数据流图200中,传统元数据传播的一个简单示例在针对第一组件208A的第一输入端口204B未显式定义记录格式元数据的情况下发生。第一输入端口204B经由第一流206A连接至第二输入数据集202B的第一输出端口204A。通常,第二输入数据集202B所供给的数据的记录格式始终是显式已知的,因此与第一输出端口204A相关联的元数据是显式定义的。与第一输出端口204A相关联的显式定义的元数据经由第一流206A向第一输入端口204B传播,其中该元数据与第一输入端口204B相关联。
上述的第一输出端口204A和第一输入端口204B之间的元数据传播经由第一流206A在与数据流经数据流图相同的方向(即,从左向右)上发生。然而,在一些示例中,元数据经由流在与数据流经数据流图的方向相反的方向上传播。例如,与输出数据集202C的第三输入端口204J相关联的显式定义的元数据经由第五流206E在与数据经由第五流206E流动的方向相反的方向上向第二组件208B的第四输出端口204I传播。
在包括传统组件和数据集的传统数据流图中,显式定义的元数据传播通过数据流图使得数据流图中的所有端口和组件与元数据相关联。通常对元数据传播中出现的任何冲突进行标记以供开发者进行干预。然而,通常以与仅包括传统组件的数据流图的元数据传播不同的方式来应对包括子图接口的数据流图的元数据传播。特别地,元数据可以分两个阶段传播:编辑时间元数据传播阶段和链接时间元数据解析阶段。
使用该两阶段方式,在编辑时间,容器图(即,包括子图接口的图)的开发者以及将取代子图接口而链接的实现子图(即,适应于子图接口的子图)的开发者不必知道彼此的元数据。在无权访问传播信息的情况下,传统的元数据传播将无法得知元数据应在“向内”的方向上传播到实现子图中(即,容器图用作实现子图所用的元数据的源)还是在“向外”的方向上从实现子图传播(即,容器图用作来自实现子图的元数据的宿(sink))。
为了便于在包括子图接口的数据流图中传播元数据,子图接口的各流汇合点确定元数据传播的方向。在编辑时间元数据传播期间,元数据与流汇合点相关联,然后,在链接时间根据元数据传播的方向从流汇合点传送相关联的元数据。在一些示例中,元数据传播的可能方向的集合包括“向内”传播和“向外”传播。可以采用布尔(Boolean)变量的形式来存储特定的向内方向值和特定的向外方向值,其中,例如可以针对这种传播或者为了确定所指示的元数据传播的方向对该布尔变量进行检索。
3.1.1向内元数据传播
在声明子图接口上的流汇合点具有“向内”的元数据传播方向的情况下,容器图中的元数据传播经由连接至流汇合点(最终至连接到实现子图中的流(或绑定)的端口)的流来供给元数据定义。
也就是说,在容器图中,编辑时间元数据传播将流汇合点视为元数据宿。特别地,容器图中的编辑时间元数据传播使用如上所述的传统元数据传播在容器图的传统组件之间传播元数据。在元数据传播至子图接口上的具有“向内”元数据传播方向的流汇合点的情况下,该元数据不能再继续传播。该元数据维持在流汇合点处,直到实现子图链接到容器图中并且可以(如下所述)进行链接时间元数据解析为止。
在实现子图中,编辑时间元数据传播将具有“向内”元数据传播方向的流汇合点视为元数据源。然而,在实现子图的情况下,子图接口上的流汇合点处的实际元数据值是未知的(这是由于该值仅可以在链接时间从容器图获得)。因而,为了针对实现子图进行编辑时间传播,针对流汇合点处的元数据分配占位符值并且如上所述使用传统元数据传播使该占位符值传播通过实现子图。在实现子图链接到容器图中并且进行链接时间元数据解析的情况下对该占位符值进行解析。
在链接时间元数据解析阶段,在实现子图链接到容器图中的情况下,将维持在具有“向内”元数据传播方向的流汇合点处的元数据传送到实现子图中并且传送至该实现子图的组件的适当端口。在一些示例中,链接时间元数据解析仅通过利用容器图中的相应流汇合点处所维持的元数据值来简单替换实现子图中的流汇合点处的占位符值来解析该占位符值。
在一些示例中,“向内”元数据传播是默认的,并且即使在图容器子图接口将始终供给显式元数据定义的情况下也是适当的。
3.1.2向外元数据传播
在声明子图接口上的流汇合点具有“向外”的元数据传播方向的情况下,实现子图中的元数据传播向容器图供给流汇合点所用的元数据定义。
也就是说,在容器图中,尽管不存在针对元数据的编辑时间定义(这是由于该定义仅可以在链接时间从实现子图获得),编辑时间元数据传播仍将流汇合点视为元数据源。特别地,容器图中的编辑时间元数据传播使用如上所述的传统元数据传播在容器图中的传统组件之间传播元数据。在子图接口上的具有向外的元数据传播方向的流汇合点上进行元数据传播的情况下,针对该流汇合点处的元数据分配占位符值,并且使用传统元数据传播使该占位符值传播通过容器图。
在实现子图中,编辑时间元数据传播将具有“向外”的元数据传播方向的流汇合点视为元数据宿。特定的,实现子图中的编辑时间元数据传播使用如上所述的传统元数据传播在容器图中的传统组件之间传播元数据。在元数据传播至子图接口上的具有“向外”的元数据传播方向的流汇合点的情况下,元数据不能再继续传播。该元数据维持在流汇合点处,直到实现子图链接到容器图中并且可以(如下所述)进行链接时间元数据解析为止。
在链接时间元数据解析阶段,在实现子图链接到容器图中的情况下,将维持在具有“向外”的元数据传播方向的流汇合点处的元数据传送出至容器图,并且传送出至容器图的组件的适当端口。在一些示例中,链接时间元数据解析识别容器子图中的流汇合点处的占位符值并且仅利用实现子图中的流汇合点处所维持的元数据值来简单替换该占位符值。
在一些示例中,不允许开发者显式定义具有“向外”的元数据传播方向的流汇合点所用的元数据。
4子图接口开发图形用户接口
参考图2D,子图接口开发图形用户接口220便于创建、检验和修改子图接口224。子图用户接口开发图形用户接口220包括显示窗口222,其中该显示窗口222用于向开发者呈现包括多个输入流汇合点226、输出流汇合点228以及输入流汇合点226和输出流汇合点228之间的一个或多个链接229的子图接口224的图形表示。
很通常地,子图接口224用作严格原型,其中子图接口224的任何子图实现和包括子图接口224的任何容器图必须适应于该原型。这样,图形用户接口220的子图接口224的外部可以被视为独立开发的容器图所用的占位符,并且图形用户接口中的子图接口224的内部可以被视为独立开发的子图实现所用的占位符。
流汇合点226、228被配置在子图接口224的边界上并且用作连接至/来自子图接口224外部的组件的端口的数据的流(例如,来自容器图中的组件的端口的数据的流)以及至/来自子图接口224内部的组件的端口的数据的流(即,至子图实现中的组件的端口的数据的流)的桥梁。在图2D中,子图接口224包括两个输入流汇合点226(即,in0和in1)以及两个输出流汇合点228(即,out0和out1)。然而,子图接口224可以包括任意数量的输入流汇合点226和输出流汇合点228。
各输入流汇合点226与数据的描述符和/或计算用特性(即,元数据)的传播方向(即,向内或向外)相关联。如上所述,传播方向判断传播通过输入流汇合点226的元数据是由容器图所提供的还是由子图实现所提供的。如果输入流汇合点226的传播方向为向外,则输入流汇合点226定义通过输入流汇合点226的数据的记录格式以及附接至输入流汇合点226的组件的布局。
类似地,各输出流汇合点228与数据的描述符和/或计算用特性(即,元数据)的传播方向(即,向内或向外)相关联。如上所述,传播方向判断传播通过输出流汇合点228的元数据是由容器图所提供的还是由子图实现所提供的。如果输出流汇合点228的传播方向为向外,则输出流汇合点228定义通过输出流汇合点228的数据的记录格式以及附接至输出流汇合点228的组件的布局。
在一些示例中,开发者可以通过右击子图接口224的边界并且从右击菜单中选择“添加输入流汇合点”或“添加输出流汇合点”菜单项来添加流汇合点226、228。在其它示例中,图形用户接口220包括用于向子图接口224添加流汇合点的特殊工具。类似地,可以使用右击菜单选项或专用工具从子图接口224中移除流汇合点
输入流汇合点226和输出流汇合点228之间的一个或多个链接229表示与输入流汇合点226相关联的数据的数据描述符或计算用特性(即,元数据)以及与输出流汇合点226相关联的数据的数据描述符或计算用特性(即,元数据)之间的关系。在图2D中,单个链接229将第一输入流汇合点in0连接至第一输出流汇合点out0。链接229表示在与第一输入流汇合点in0相关联的数据或计算用特性(元数据)和与第一输出流汇合点out0相关联的数据或计算用特性(即,元数据)之间存在关系。在一些示例中,链接229表示与第一输入流汇合点in0和第一输出流汇合点out0相关联的任何数据或计算用特性(即,元数据)必须是相同的。这可以通过表示一个特性是根据其它特性所得出的链接229来实现。
在一些示例中,开发者可以通过点击第一种类型的第一流汇合点(例如,输入流汇合点)并且在子图接口224内部从第一流汇合点到第二种类型的第二流会汇合点(例如,输出流汇合点)绘制一条线由此使用该线来连接这两个流汇合点,从而创建输入流汇合点226和输出流汇合点228之间的链接229。
参考图2E,子图接口属性用户接口232的流汇合点配置标签230使得用户能够配置子图接口的一个或多个流汇合点。流汇合点配置标签包括汇合点列表控制234以及包括记录格式元数据传播方向控制238的传播控制部分236、布局元数据传播方向控制240、布局关联控制242、“可扇入扇出(can fan)”控制244和要求控制246。
流汇合点列表控制234显示所有流汇合点的列表,其中流汇合点分类为输入流汇合点类别248和输出流汇合点类别250。开发者可以从流汇合点列表控制234中选择一个或多个流汇合点以进行配置。然后,开发者可以使用传播控制部分236中的控制238、240、242、244和246来配置所选择的流汇合点。特别地,开发者可以使用记录格式元数据传播方向控制238来选择所选择的流汇合点的记录格式元数据传播的方向是向内还是向外。开发者可以使用布局元数据传播方向控制240来选择所选择的流汇合点的布局元数据传播的方向是向内还是向外。开发者可以使用布局关联控制242来选择与所选择的流汇合点相关联的布局参数的名称。开发者可以使用“can fan”控制244来指定是否允许所选择的流汇合点扇入或扇出。开发者可以使用要求控制246来指定所选择的流汇合点是否是子图接口所要求的。
在一些示例中,开发者可以通过右击子图接口并且从右击菜单中选择属性项来访问子图接口属性用户接口232的流汇合点配置标签230。
在一些示例中,还可以利用图2D的图形用户接口220来定义子图接口224的子图接口中所允许的多个级。
5示例
以下章节提供图2A和2B的数据流图的元数据传播的示例。图3A~3C和图4A~4C中的粗虚线表示元数据传播,并且线上的箭头表示元数据传播的方向。
5.1记录格式元数据传播
参考图3A~3C,示出图2A的第一数据流图200和图2B的第二数据流图201中的记录格式元数据传播的示例。现在参考图3A,在本示例中,假定子图接口210的第一流汇合点204D和子图接口210的第二流汇合点204F均具有“向内”的元数据传播方向,并且子图接口的第三流汇合点204G具有“向外”的元数据传播方向。还假定第一数据流图200中仅有的显式定义的元数据是与第一输入数据集202A的第二输出端口204C相关联的记录格式A、与第二输入数据集202B的第一输出端口204A相关联的记录格式B以及与输出数据集202C的第三输入端口204J相关联的记录格式C。
在图开发者正在编辑第一数据流图200的情况下,在第一数据流图200上进行编辑时间记录格式元数据传播。特别地,记录格式A经由第二流206B从第一输入数据集202A的第二输出端口204C向子图接口210的第一流汇合点204D传播。由于第一流汇合点204D具有“向内”的元数据传播方向,因此记录格式A不再继续传播并且维持在第一流汇合点204D处以供以后在链接时间元数据解析阶段使用。
记录格式B经由第一流206A从第二输入数据集202B的第一输出端口204A向第一组件208A的第一输入端口204B传播,其中记录格式B与第一输入端口204B相关联。编辑时间元数据传播处理判断为第一组件208A没有对元数据应用任何变换,因此使记录格式B传播通过该组件并且使记录格式B与第一组件208A的第三输出端口204E相关联。
然后,记录格式B经由第三流206C从第一组件208A的第三输出端口204E向子图接口210的第二流汇合点204F传播。由于第二流汇合点204F具有“向内”的元数据传播方向,因此记录格式B不再继续传播并且维持在第二流汇合点204F处以供以后在链接时间元数据解析中使用。
然后,记录格式C经由第五流206E从输出数据集202C的第三输入端口204J向第二组件208B的第四输出端口204I传播,其中记录格式C与第四输出端口204I相关联。
由于子图接口210的第三流汇合点204G具有“向外”的元数据传播方向,因此在第一数据流图200中,与流汇合点相关联的元数据在编辑时间是未知的并且预期要由实现子图在链接时间提供。由于该原因,因此暂时使占位符记录格式TBD1与第三流汇合点204G相关联。占位符记录格式TBD1经由第四流206D向第二组件208B的第二输入端口204H传播,其中占位符记录格式TBD1与第二输入端口204H相关联。该占位符维持在第三流汇合点204G和第二输入端口204H处,直到链接时间元数据解析对TBD1的实际值进行解析并且将该实际值关联为第三流汇合点204G和第二输入端口204H所用的元数据为止。
参考图3B,在图开发者正在编辑第二数据流图201的情况下,在第二数据流图201上进行编辑时间元数据传播。第二数据流图201具有单个端口(也就是第四组件208D的第六输出端口204O),并且元数据被显式定义为记录格式E。
如上所述,第二数据流图201适应于子图接口210(即,第一数据流图200中所包括的子图接口)。由于该原因,子图接口210的端口的元数据传播方向在第二数据流图201中与在第一数据流图200中相同。也就是说,子图接口210的第一流汇合点204D和子图接口210的第二流汇合点204F均具有“向内”的元数据传播方向,并且子图接口的第三流汇合点204G具有“向外”的元数据传播方向。
由于第一流汇合点204D具有“向内”的元数据传播方向,因此在第二数据流图201中,与端口相关联的元数据在编辑时间是未知的,并且预期要由容器图(即,第一数据流图200)在链接时间提供。由于该原因,因此暂时将占位符记录格式TBD2与第一流汇合点204D相关联。占位符记录格式TBD2经由第七流206G向第四组件208D的第五输入端口204M传播,其中占位符记录格式TBD2与第五输入端口204M暂时相关联。该占位符维持在第一流汇合点204D和第五输入端口204M处,直到链接时间元数据解析对TBD2的实际值进行解析并且将该实际值关联为第五输入204M所用的元数据为止。
类似地,由于第二流汇合点204F具有“向内”的元数据传播方向,因此在第二数据流图201中,与端口相关联的元数据在编辑时间是未知的,并且要由容器图(即,第一数据流图200)在链接时间提供。由于该原因,因此暂时将占位符记录格式TBD3与第二流汇合点204F相关联。占位符记录格式TBD3经由第六流206F向第三组件208C的第四输入端口204K传播,其中占位符记录格式TBD3与第四输入端口204K暂时相关联。然后,编辑时间元数据传播处理判断为第三组件208C没有对元数据应用任何变换,因此使记录格式TBD3传播通过该组件并且使记录格式TBD3与第三组件208C的第五输出端口204L相关联。然后,TBD3经由第八流206H向第四组件208D的第六输入端口204N传播,其中TBD3与第六输入端口204N暂时相关联。
占位符TBD3维持在第二流汇合点204F以及三个端口204K、204L、204N处,直到链接时间元数据解析对TBD3的实际值进行解析并且将该实际值关联为这些端口所用的元数据为止。
记录格式E经由第九流206I从第四组件208D的第六输出端口204O向子图接口210的第三流汇合点204G传播。由于第三流汇合点204G具有“向外”的元数据传播方向,因此记录格式F不再继续传播并且维持在第三流汇合点端口204G处以供以后在链接时间元数据解析中使用。
参考图3C,紧挨在运行时间之前,第二数据流图201链接到第一数据流图200中,得到组合数据流图300,并且进行链接时间元数据解析。为了进行链接时间元数据解析,对子图接口210的各流汇合点的属性进行分析以确定关联的元数据传播的方向。针对子图接口210的具有向内的元数据传播方向的流汇合点,将维持在第一数据流图200中的流汇合点处的记录格式元数据“向内”传送至第二数据流图201的组件的适当端口。类似地,针对子图接口210的具有向外的元数据传播方向的流汇合点,将维持在第二数据流图201中的流汇合点处的记录格式元数据向外传送至第一数据流图200的组件的适当端口。
特别地,对第一流汇合点204D进行分析并且确定第一流汇合点204D具有“向内”的元数据传播方向。然后,确定第一流汇合点204D与第一数据流图200中所定义的元数据记录格式A相关联并且与第二数据流图201中的占位符元数据TBD2相关联。链接时间元数据解析阶段使与第二数据流图201中的TBD2相关联的所有端口(即,第五输入端口204M)与记录格式A相关联。
对第二流汇合点204F进行分析并且确定第二流汇合点204F具有“向内”的元数据传播方向。然后,确定第二流汇合点204F与第一数据流图200中所定义的元数据记录格式B相关联并且与第二数据流图201中的占位符元数据TBD3相关联。链接时间元数据解析阶段使与第二数据流图201中的TBD3相关联的所有端口(即,第四输入端口204K、第五输出端口204L和第六输入端口204N)与记录格式B相关联。
对第三流汇合点204G进行分析并且确定第三流汇合点204G具有“向外”的元数据传播方向。然后,确定第三流汇合点204G与第二数据流图201中所定义的元数据记录格式E相关联并且与第一数据流图200中的占位符元数据TBD1相关联。链接时间元数据解析阶段使与第一数据流图200中的TBD1相关联的所有端口(即,第二输入端口204H)与记录格式E相关联。
作为上述的编辑时间元数据传播处理和链接时间元数据解析处理的结果,组合数据流图300中的所有端口与有效记录格式元数据相关联。
5.2布局元数据传播
参考图4A~4C,示出图2A的第一数据流图200和图2B的第二数据流图201中的布局元数据传播的示例。为了便于传播布局元数据,子图接口212的设计者指定了与子图接口212相关联的一个或多个布局元数据参数。针对该一个或多个布局元数据参数中的各布局元数据参数,子图接口设计者指定了元数据传播的方向。在定义了布局元数据参数的情况下,子图接口212的设计者使子图接口的各流汇合点与布局元数据参数其中之一相关联。在一些示例中,各流汇合点确定其自身的唯一布局元数据参数。在其它示例中,布局元数据参数比流汇合点少,并且某些布局元数据参数与多于一个流汇合点相关联。在这种示例中,共用共通的布局元数据参数的流汇合点必须全部符合元数据传播的方向以及所传播的与共通的布局元数据参数相关联的布局值。
现在参考图4A,在本示例中,假定子图接口212具有与其相关联的两个布局元数据参数:具有“向外”的元数据传播方向的第一布局元数据参数和具有“向内”的元数据传播方向的第二布局元数据参数。第一布局元数据参数与第一流汇合点204D和第二流汇合点204F相关联。第二布局元数据参数与第三流汇合点204G相关联。还假定与第一组件208A和第二组件208B相关联的布局元数据并非是显式定义的,因此由元数据传播来定义。
在图开发者正在编辑第一数据流图200的情况下,在第一数据流图200上进行编辑时间布局元数据传播。由于第一组件208A所用的布局元数据并非是显式定义的,因此预期从与具有“向外”的元数据传播方向的第一布局元数据参数相关联的第二流汇合点204F来传播第一组件208A所用的布局元数据。然而,在第一数据流图200中,与第二流汇合点204F相关联的布局元数据在编辑时间是未知的并且预期要由实现子图在链接时间提供。由于该原因,向第一组件208A传播占位符布局元数据TBD1并且暂时使占位符布局元数据TBD1与第一组件208A相关联。该占位符布局元数据维持在第一组件208A处,直到链接时间元数据解析对TBD1的实际值进行解析并且将该实际值关联为第一组件208A所用的布局元数据为止。
类似地,第二组件208B所用的布局元数据并非是显式定义的。然而,编辑时间布局元数据传播可以对连接至第二组件208B的第四输出端口204I的输出数据集202C的配置进行分析以推断出第二组件208B所用的布局元数据。在图4A的示例中,元数据传播对输出数据集202C的配置进行分析并且判断为输出数据集202C被配置为从其上游组件(即,第二组件208B)的两个并行执行的实例接收数据。基于输出数据集202C的配置,元数据传播推断第二组件208B的两个实例在第一数据流图200的执行期间并行执行(即,第二组件208C运行表示为图中的2x的“双向并行”)。基于该判断,元数据传播使2x布局元数据与第二组件208B相关联。
然后,元数据传播将2x布局元数据从第二组件208B向第三流汇合点204G传播。由于第三流汇合点204G与具有“向内”的元数据传播方向的第二布局元数据参数相关联,因此布局元数据2x不再继续传播并且维持在第三流汇合点204G处以供以后在链接时间元数据解析中使用。
注意,由于已经具有布局元数据的文件连接至第一数据流图200中的第一流汇合点204D,因此没有经由第一流汇合点204D发生布局元数据传播。
参考图4B,在图开发者正在编辑第二数据流图201的情况下,在第二数据流图201上进行编辑时间布局元数据传播。第二数据流图201中所包括的第三组件208C具有显式定义的布局元数据,其中该布局元数据表示在第二数据流图201的执行期间运行第三组件208C的一个实例(表示为图中的1x)。第二数据流图201中所包括的第四组件208D所用的布局元数据并非是显式定义的,因此由元数据传播来定义。
由于第二流汇合点204F与具有“向外”的元数据传播方向的第一布局元数据参数相关联,因此第三组件208C所用的1x布局元数据向第二流汇合点204F传播,其中该1x布局元数据维持在第二流汇合点204F处以供以后在链接时间元数据解析阶段使用。
由于第四组件208D所用的布局元数据并非是显式定义的,因此预期将从与具有“向内”的元数据传播方向的第二布局元数据参数相关联的第三流汇合点204G来传播第四组件208D的布局元数据。然而,在第二数据流图201中,与第三流汇合点204G相关联的布局元数据在编辑时间是未知的,并且预期要由容器图在链接时间提供。由于该原因,向第四组件208D传播占位符布局元数据TBD2并且使占位符布局元数据TBD2暂时与第四组件208D相关联。占位符布局元数据维持在第四组件208D处,直到链接时间元数据解析对TBD2的实际值进行解析并且将该实际值关联为第四组件208D所用的布局元数据为止。
参考图4C,紧挨在运行时间之前,第二数据流图201链接到第一数据流图200中,得到组合数据流图300并且进行链路时间元数据解析。为了进行链路时间元数据解析,对与子图接口210的各流汇合点相关联的布局元数据参数进行分析以确定与各流汇合点相关联的元数据传播的方向。针对子图接口210的具有“向内”的元数据传播方向的流汇合点,将维持在第一数据流图200中的流汇合点处的布局元数据向内传送至第二数据流图201的适当组件。类似地,针对子图接口210的具有“向外”的元数据传播方向的端口,将维持在第二数据流图201中的流汇合点处的布局元数据向外传送至第一数据流图200的适当组件。
特别地,对与第二流汇合点204F相关联的第一布局元数据参数进行分析并且判断为第二流汇合点204F具有“向外”的元数据传播方向。然后,判断为第二流汇合点204F与第二数据流图201中的显式定义的布局元数据(即,1x)相关联并且与第一数据流图200中的占位符布局元数据TBD1相关联。链接时间元数据解析阶段使与第一数据流图200中的TBD1相关联的所有组件(即,第一组件208A)与布局元数据1x相关联。
对与第三流汇合点204G相关联的第二布局元数据参数进行分析并且判断为第三流汇合点204G具有“向内”的元数据传播方向。然后,判断为第三流汇合点204G与第二数据流图201中的占位符布局元数据TBD2相关联并且与第一数据流图200中的显式定义的布局元数据(即,2x)相关联。链接时间元数据解析使与第二数据流图201中的TBD2相关联的所有组件(即,第四组件208D)与布局元数据2x相关联。
作为上述的编辑时间元数据传播处理和链接时间元数据解析处理的结果,组合数据流图300中的所有组件与有效的布局元数据相关联。
在上述的部分示例中,将元数据传播描述为用于将与给定端口、终端或组件相关联的显式定义的元数据复制到具有未定义的元数据的其它端口、终端或组件的操作。然后,使所复制的元数据与该其它端口、终端或组件相关联。
然而,在一些示例中,代替复制元数据,元数据传播使用指示器来表示具有显式定义的元数据的端口、终端或组件与具有未定义的元数据的端口、终端或组件之间的关联。例如,具有未定义的元数据的给定端口可以具有元数据指示器,其中元数据传播将该元数据指示器分配给与另一不同的端口相关联的显式定义的元数据。在链接时间,传播不再发生。反而,对该指示器进行解析以使得该显式定义的元数据与该另一不同的端口相关联。
6应用
在一些示例中,给定子图接口可以与适应于该子图接口的实现子图的库相关联。然后,将该子图接口放置在容器图中的图开发者可以易于在开发期间从该库的任意实现子图中进行挑选。
在一些示例中,上述的子图接口的使用便于代码的抽象化。例如,子图接口的给定实现可以仅存在于盘上的一个位置但可以用在许多容器图中。针对盘上的实现所进行的改变对在不要求容器图的任何修改的情况下使用该实现的所有容器图的功能产生影响。
7替代例
在一些示例中,对某些实现子图进行加密以使得未授权用户不能检验这些子图的内容。在这种示例中,子图接口能够链接加密的实现子图。在一些示例中,对某些容器图进行加密以使得未授权用户不能检验这些容器图的内容。
在一些示例中,图接口的各流汇合点包括以下属性中的一个或多个:标签、数据流方向、流汇合点扇入还是扇出的指示、是否要求流汇合点的指示、元数据传播方向以及关联的布局元数据参数的名称。
在一些示例中,子图接口的设计者可以指定用于定义子图接口的两个以上流汇合点之间的元数据关系的规则。例如,子图接口设计者可以指定输入流汇合点和输出流汇合点具有相同的元数据。
在一些示例中,子图接口可以被实现为使得该子图接口支持多级子图实现。很通常地,多级图是使组件分割成以预定义顺序顺次执行的两个以上的“级”的图。例如,多级图可以包括三级:一级、二级和三级,其中这三级各自包括一个或多个组件。在操作时,在第一级的组件完成它们的处理之前,第二级的组件不开始处理数据。类似地,在第二级的组件完成它们的处理之前,第三级的组件不开始处理数据。
为了容纳具有多级的动态子图,子图接口包括使得子图接口的设计者能够指定子图接口是单级还是多级的参数。在将子图接口指定为多级的情况下,设计者不需要针对该子图接口指定固定数量的级。
针对被指定为多级的子图接口的实现的要求的示例包括以下要求。子图接口的任何实现必须使所有组件在单级
Figure BDA0001064849910000321
内连接至该子图接口的输入端口(或流汇合点)。此外,子图接口的任何实现必须使所有组件在单级
Figure BDA0001064849910000322
内连接至该子图接口的输出端口(或流汇合点),其中,
Figure BDA0001064849910000323
是该实现中最大的级。子图接口的实现可以具有仅处于子图实现内部的任意数量的级。
在正在编辑包括多级子图接口的容器图的情况下,暂时假定子图实现的输出处的级等于输入处的级+1。这足以使图开发者确定下游组件将会在何时处于同一级内。然而,编辑时间级不必与运行时间级相同。
在代替子图接口而绑定实现子图的情况下,按照如下方式来更新组合图所用的整体级信息:
1)针对给定子图实现,设I为用于向该给定子图实现的输入流汇合点进行写入的组件的级的最大值。针对给定的输入级的值I处的所有多级子图实现,计算作为这些多级子图实现中的纯内部级的数量的最大值的M。
2)使图中具有大于I的级的所有组件的级递增M,并且向下游传递级增量。
3)将子图实现的输出级O设置为子图实现的输出端口的下游组件的集合的调整后的级的最小值。
4)针对包括一个或多个多级子图实现的组合图中的各级重复该处理。
如果子图实现中的输入级不为0,则一定数量m(m>0)的内部级发生在子图实现的第一输入级之前。子图实现的这些“前置级(pre-phase)”是有用的,例如用于创建主输入处理中所要使用的查找文件。在这种情况下,如果
Figure BDA0001064849910000332
则可能需要使所有组件的整体级递增以使得该m个前置级可以在组合数据流图中以正级数来运行。这可以以级方式在级中执行,由此在起始级I(调整之前)中进行值为所有子图实现的前置级的最大值的递增,向下游传播级增量并且针对下一级进行迭代。
在一些示例中,以上的调整算法可能会引起子图实现中的组件的级编号之间的空隙(例如,如果在与该子图实现相同的输入级中存在具有内部级的其它子图实现)。例如,考虑输入级0中的两个子图实现:具有两个内部级的A和具有一个内部级的B。A和B的下一下游组件的级至少为1,这是由于A和B是多级图实现。内部级计数的最大值是2,因此A和B两者的调整后的整体输出级是3。这意味着B将包括级空隙,B的输入级将为0,B仅有的纯内部级将为1,但B的输出级将为3。这种级空隙对于数据流图的操作并非是有害的。
在一些示例中,同一输入级I中的多个子图实现的纯内部级将彼此重叠。这可能由于资源限制而成问题并且子图实现优选具有私有的内部级空间。由于该原因,可以使得子图实现选择不与其它子图实现共享该子图实现的内部级。这可以例如使用与子图实现有关的可以被解析为布尔值的(例如,命名为private_internal_phasing的)本地参数来实现。在private_internal_phasing为真的情况下,将以上步骤1中的M的计算改变为输入级I处的子图实现在private_internal_phasing被设置为真的情况下的内部级之和,并将该和与输入级I处的剩余子图实现的内部级计数的最大值相加。
在一些示例中,子图接口可能不具有任何流终端,但仍可以用于使得用户能够根据加载了哪个子图实现来定义资源的不同集合(例如,查找文件)以供特定容器图使用。
在一些示例中,通过使用接口的简单文字规格而不通过使用图形用户接口来实现子图接口。
在一些示例中,将子图接口的实现简化为使用“向导”风格的图形用户接口。例如,向导风格的图形用户接口将通过提出一系列问题并且基于用户的答案自动生成子图接口来引导用户实现子图接口。在一个示例中,向导风格的图形用户接口包括多个页面,其中这些页面包括但不限于预检检查页面(即,介绍页面)、文件名称和位置页面、参数定义页面、流汇合点定义和元数据传播页面、布局元数据页面和汇总页面。
8系统配置
可以例如使用执行适当软件的指令的可编程计算系统来实现上述的用于管理子图和子图接口的方法,或者可以在诸如现场可编程门阵列(FPGA)等的适当硬件中或者以某种混合形式来实现这些方法。例如,在编程方法中,该软件可以包括在一个或多个编程或可编程计算系统(可以具有诸如分布式、客户端/服务器或网格等的各种架构)上执行的一个或多个计算机程序中的进程,其中该一个或多个编程或可编程计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、(用于使用至少一个输入装置或端口接收输入、并且用于使用至少一个输出装置或端口提供输出的)至少一个用户界面。该软件可以包括例如提供与数据流图的设计、结构和执行相关的服务的更大程序的一个或多个模块。该程序的模块(例如,数据流图的元素)可以实现为数据结构或符合数据仓库中所存储的数据模型的其它有组织的数据。
可以将软件设置在诸如CD-ROM或(例如,利用通用或专用计算系统或装置可读取的)其它计算机可读介质等的有形非瞬态介质上、或者经由网络的通信介质(例如,以编码在传送信号中的形式)传递至执行该软件的计算系统的有形非瞬态介质。可以在专用计算机上、或者使用诸如协处理器或现场可编程门阵列(FPGA)或专用集成电路(ASIC)等的专用硬件来进行该处理的一部分或全部。可以以利用不同的计算元件来进行软件所指定的计算的不同部分的分布式方式来实现该处理。优选将这种计算机程序各自存储在通用或专用可编程计算机可访问的存储装置的计算机可读存储介质(例如,固态存储器或介质、或者磁性或光学介质)上或者下载至该计算机可读存储介质,以在利用计算机读取存储装置介质以进行这里所述的处理的情况下配置计算机并使该计算机进行工作。本发明的系统还可被视为作为配置有计算机程序的有形非瞬态介质来实现,其中如此配置成的介质使计算机以特定的预定义方式进行工作,以进行这里所述的处理步骤中的一个或多个。
已经说明了多个实施例。然而,应当理解,上述说明意图例示而并非限制由所附权利要求书的范围所定义的本发明的范围。因此,其它实施例也在所附权利要求书的范围内。例如,可以在没有背离本发明的范围的情况下进行各种变形。另外,上述步骤中的一部分可以是顺序独立的,因而可以以与所述顺序不同的顺序来进行。

Claims (34)

1.一种用于组合数据流图的规格的方法,所述方法包括:
经由输入装置或端口接收多个数据流图规格,所述多个数据流图规格包括:
第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及
第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及
使用至少一个处理器来处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:
识别所述子图接口和所述第一数据流图规格之间的关联;
针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及
根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
2.根据权利要求1所述的方法,其中,所述第一数据流图规格包括至少一个指示,该至少一个指示表示与所述第一组件相关联的描述符与同所述第二组件相关联的描述符相同。
3.根据权利要求2所述的方法,其中,所确定出的方向与数据的第一描述符或计算用特性的值从所述子图接口上的所述第一流汇合点向所述第二组件的向内传送相对应。
4.根据权利要求3所述的方法,其中,所述第一描述符是从所述第三组件向所述第一流汇合点提供的。
5.根据权利要求3或4所述的方法,其中,所述第一描述符是从所述第二组件向所述第一组件提供的。
6.根据权利要求1所述的方法,其中,所述第二数据流图规格包括至少一个指示,该至少一个指示表示与所述第三组件相关联的描述符与同所述子图接口相关联的描述符相同。
7.根据权利要求6所述的方法,其中,所述第二数据流图规格包括至少一个指示,该至少一个指示表示与第四组件相关联的描述符与同所述第三组件相关联的描述符相同。
8.根据权利要求7所述的方法,其中,所确定出的方向与数据的第一描述符或计算用特性的值从所述子图接口上的所述第一流汇合点向所述第三组件的向外传送相对应。
9.根据权利要求8所述的方法,其中,所述第一描述符是从所述第一组件向所述第一流汇合点提供的。
10.根据权利要求8或9所述的方法,其中,所述第一描述符是从所述第三组件向所述第四组件提供的。
11.根据权利要求1至4中任一项所述的方法,其中,所述描述符用于描述所述第一组件的端口和所述第二组件的端口之间所传送的数据的数据特性。
12.根据权利要求11所述的方法,其中,所述数据特性包括所传送的数据内的记录的字段的格式。
13.根据权利要求1至4中任一项所述的方法,其中,所述描述符用于描述所述第一数据流图规格和所述第二数据流图规格至少之一的组件的计算用特性。
14.根据权利要求1至4中任一项所述的方法,其中,所述计算用特性包括所述组件所表示的计算的执行的并行程度。
15.根据权利要求1至4中任一项所述的方法,其中,对所述第一数据流图进行加密。
16.根据权利要求1至4中任一项所述的方法,其中,对所述第二数据流图进行加密。
17.根据权利要求1至4中任一项所述的方法,其中,所述第一数据流图的所述两个以上组件分布在所述第一数据流图中的第一组多个顺次执行的级中。
18.根据权利要求17所述的方法,其中,所述第二数据流图包括多个组件,所述多个组件和所述子图接口分布在所述第二数据流图中的第二组多个顺次执行的级中。
19.根据权利要求18所述的方法,其中,使数据流图准备好执行包括基于所述第一组多个顺次执行的级和所述第二组多个顺次执行的级来确定包括在所述数据流图中的多个级。
20.一种存储有用于组合数据流图的规格的软件的非瞬态计算机可读介质,所述软件包括使计算系统执行以下处理的指令:
经由输入装置或端口接收多个数据流图规格,所述多个数据流图规格包括:
第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及
第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及
使用至少一个处理器来处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:
识别所述子图接口和所述第一数据流图规格之间的关联;
针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及
根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
21.一种计算系统,用于组合数据流图的规格,所述计算系统包括:
输入装置或端口,用于接收多个数据流图规格,所述多个数据流图规格包括:
第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及
第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及
至少一个处理器,用于处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:
识别所述子图接口和所述第一数据流图规格之间的关联;
针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及
根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
22.一种用于确定数据流图的方法,所述方法包括:
在第一用户接口中渲染第一数据流图的表示,所述渲染包括:
渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及
基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及
在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:
渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,
基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性,以及
渲染所述第二用户接口的一部分,该部分用于接收确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性的用户输入,其中所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
23.根据权利要求22所述的方法,其中,还包括生成用于存储所述第一数据流图的表示的数据结构,所述数据结构包括:
表示第一组一个或多个组件的数据,该第一组一个或多个组件包括经由所述子图接口外部的一个或多个流汇合点所连接的数据的一个或多个流;以及
表示第二组一个或多个组件的数据,该第二组一个或多个组件包括经由所述子图接口内部的一个或多个流汇合点所连接的数据的一个或多个流。
24.根据权利要求22或23所述的方法,其中,所述关系对应于所述第一描述符和所述第二描述符相同。
25.根据权利要求22所述的方法,其中,所述方向与数据的第一描述符或计算用特性的值从所述第一流汇合点向所述子图的所述第一组件的向内传送相对应。
26.根据权利要求22所述的方法,其中,所述方向与数据的第一描述符或计算用特性的值从所述第一流汇合点向所述第一数据流图的所述第三组件的向外传送相对应。
27.根据权利要求22或23所述的方法,其中,所述第一描述符用于描述所述第一数据流图的所述第三组件的端口和所述子图的所述第一组件的端口之间所传送的数据的数据特性。
28.根据权利要求27所述的方法,其中,所述数据特性包括所传送的数据内的记录的字段的格式。
29.根据权利要求22或23所述的方法,其中,所述描述符用于描述所述第一数据流图的所述第三组件和所述子图的所述第一组件至少之一的计算用特性。
30.根据权利要求29所述的方法,其中,所述计算用特性包括所述第一数据流图的所述第三组件或所述子图的所述第一组件所表示的计算的执行的并行程度。
31.根据权利要求22或23所述的方法,其中,所述第一用户接口是由第一计算系统所生成的。
32.根据权利要求31所述的方法,其中,所述第二用户接口是由与所述第一计算系统不同的第二计算系统所生成的。
33.一种存储有用于确定数据流图的软件的非瞬态计算机可读介质,所述软件包括用于使计算系统执行以下处理的指令:
在第一用户接口中渲染第一数据流图的表示,所述渲染包括:
渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及
基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及
在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:
渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,
基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性,以及
渲染所述第二用户接口的一部分,该部分用于接收确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性的用户输入,其中所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
34.一种计算系统,用于确定数据流图,所述计算系统包括:
第一计算装置,用于在第一用户接口中渲染第一数据流图的表示,所述渲染包括:
渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及
基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及
第二计算装置,用于在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:
渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,
基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性,以及
渲染所述第二用户接口的一部分,该部分用于接收确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性的用户输入,其中所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
CN201480074609.1A 2013-12-05 2014-12-05 管理包括子图的数据流图所用的接口 Active CN106170762B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361912057P 2013-12-05 2013-12-05
US61/912,057 2013-12-05
US201462031388P 2014-07-31 2014-07-31
US62/031,388 2014-07-31
PCT/US2014/068754 WO2015085152A1 (en) 2013-12-05 2014-12-05 Managing interfaces for dataflow graphs composed of sub-graphs

Publications (2)

Publication Number Publication Date
CN106170762A CN106170762A (zh) 2016-11-30
CN106170762B true CN106170762B (zh) 2020-01-14

Family

ID=52232445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480074609.1A Active CN106170762B (zh) 2013-12-05 2014-12-05 管理包括子图的数据流图所用的接口

Country Status (8)

Country Link
US (4) US9886241B2 (zh)
EP (2) EP4375833A2 (zh)
JP (1) JP6626823B2 (zh)
CN (1) CN106170762B (zh)
AU (2) AU2014360308B2 (zh)
CA (3) CA3114544A1 (zh)
SG (1) SG11201604525TA (zh)
WO (1) WO2015085152A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886319B2 (en) 2009-02-13 2018-02-06 Ab Initio Technology Llc Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
KR101687213B1 (ko) 2010-06-15 2016-12-16 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
CA3114544A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow composed of sub-graphs
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
CN105242976A (zh) * 2015-09-17 2016-01-13 上海寰信网络信息技术有限公司 一种程序中逻辑单元之间数据传输的方法与系统
WO2017112654A2 (en) * 2015-12-21 2017-06-29 Ab Initio Technology Llc Sub-graph interface generation
US10642580B1 (en) * 2016-09-20 2020-05-05 Amazon Technologies, Inc. Simplifying and reusing visual programming graphs
US10678515B1 (en) 2016-09-20 2020-06-09 Amazon Technologies, Inc. Simplifying and reusing visual programming graphs
US10025566B1 (en) * 2016-10-07 2018-07-17 The Mathworks, Inc. Scheduling technique to transform dataflow graph into efficient schedule
US20210141351A1 (en) * 2017-03-31 2021-05-13 Intel Corporation Declarative intentional programming in machine-to-machine systems
US11194551B2 (en) 2017-06-07 2021-12-07 Ab Initio Technology Llc Dataflow graph configuration
US11816496B2 (en) 2017-08-31 2023-11-14 Micro Focus Llc Managing containers using attribute/value pairs
CN108037973B (zh) * 2017-12-20 2021-11-16 苏州优圣美智能系统有限公司 一种与数据处理工具交互的数据流建模和处理系统
JPWO2019198221A1 (ja) * 2018-04-13 2020-04-30 三菱電機株式会社 データ処理装置、データ処理方法及びプログラム
US10666744B2 (en) 2018-06-01 2020-05-26 The Mathworks, Inc. Managing discovery and selection of service interface specifications
US10990364B2 (en) * 2018-06-06 2021-04-27 Ab Initio Technology Llc Updating executable graphs
US11036546B1 (en) * 2019-04-16 2021-06-15 Xilinx, Inc. Multi-threaded shared memory functional simulation of dataflow graph
US11262898B2 (en) * 2019-10-31 2022-03-01 Salesforce.Com, Inc. Visual context in dataflows
JP2023525796A (ja) * 2020-05-12 2023-06-19 ライブランプ インコーポレーテッド エンティティレベル・オプト・アウトを伴うアイデンティティ・グラフ・データ構造システム及び方法
US11080026B1 (en) 2020-07-28 2021-08-03 Electronic Arts Inc. Combined building of dual representation program instructions
CA3210343A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Dataset multiplexer for data processing system
WO2022165321A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Data processing system with manipulation of logical dataset groups
US11556316B2 (en) * 2021-03-31 2023-01-17 Intuit Inc. Distributed extensible dynamic graph
US20230063753A1 (en) * 2021-08-30 2023-03-02 International Business Machines Corporation Testing virtual reality integration with a development environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
CN103069385A (zh) * 2010-06-15 2013-04-24 起元技术有限责任公司 动态加载基于图的计算

Family Cites Families (268)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662343A (en) 1970-07-29 1972-05-09 Docutel Corp Credit card automatic currency dispenser
US3662401A (en) 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4814979A (en) 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4914568A (en) 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5127104A (en) 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
JPS63231613A (ja) 1987-03-20 1988-09-27 Matsushita Giken Kk コマンド設定方法
JPS6413189A (en) 1987-07-06 1989-01-18 Nec Corp Character signal generation circuit
JPH0194431A (ja) 1987-10-06 1989-04-13 Matsushita Electric Ind Co Ltd ソフトウェア部品合成装置
US5050068A (en) 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
US5357632A (en) 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5280619A (en) 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
JPH05134886A (ja) 1990-11-30 1993-06-01 Fujitsu Ltd デツドロツク検出方式
US5323452A (en) 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
DE4216871C2 (de) 1991-05-21 2001-09-06 Digital Equipment Corp Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
EP0529303A3 (en) 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5333319A (en) 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5418888A (en) 1992-06-04 1995-05-23 Alden; John L. System for revelance criteria management of actions and values in a rete network
JP3223933B2 (ja) 1993-02-10 2001-10-29 日本電信電話株式会社 知識ベース推論方法およびその装置
US5432942A (en) 1993-06-10 1995-07-11 The United States Of America As Represented By The Secretary Of The Navy Data structure extraction, conversion and display tool
US5745778A (en) 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US6044211A (en) 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5890997A (en) 1994-08-03 1999-04-06 Roth; Eric S. Computerized system for the design, execution, and tracking of exercise programs
JPH08106540A (ja) 1994-10-06 1996-04-23 Toshiba Corp 編集装置
US5692168A (en) 1994-10-18 1997-11-25 Cyrix Corporation Prefetch buffer using flow control bit to identify changes of flow within the code stream
JPH08305576A (ja) 1995-01-12 1996-11-22 Internatl Business Mach Corp <Ibm> コンピュータ・ユーザとの対話を行うためのエキスパート・システム及びその方法
US5673369A (en) 1995-03-02 1997-09-30 International Business Machines Corporation Authoring knowledge-based systems using interactive directed graphs
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
JP3154942B2 (ja) 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
US5630047A (en) 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
JP3258228B2 (ja) 1996-03-15 2002-02-18 株式会社東芝 チェックポイント生成方法
US7415466B2 (en) 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US6006242A (en) 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
JP3672208B2 (ja) 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US6016516A (en) 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6760903B1 (en) 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
US5799266A (en) 1996-09-19 1998-08-25 Sun Microsystems, Inc. Automatic generation of test drivers
US6038558A (en) 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US5930794A (en) 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
US6151531A (en) 1996-12-12 2000-11-21 Charles Frankel Et Al System and method for managing the alteration of garments
US5924095A (en) 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US5933640A (en) 1997-02-26 1999-08-03 Digital Equipment Corporation Method for analyzing and presenting test execution flows of programs
US5899988A (en) 1997-02-28 1999-05-04 Oracle Corporation Bitmapped indexing with high granularity locking
US5999729A (en) 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US5950212A (en) 1997-04-11 1999-09-07 Oracle Corporation Method and system for workload based group committing for improved performance
US6088716A (en) 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6032158A (en) 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
US6044394A (en) 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US6145017A (en) 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
US6173276B1 (en) 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6587836B1 (en) 1997-09-26 2003-07-01 Worldcom, Inc. Authentication and entitlement for users of web based data management programs
US6332212B1 (en) 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6014670A (en) 1997-11-07 2000-01-11 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6339775B1 (en) 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6044374A (en) 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
JPH11184766A (ja) 1997-12-18 1999-07-09 Nippon Telegr & Teleph Corp <Ntt> ビジネスイベントサーバ
US6272650B1 (en) 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6208345B1 (en) 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6480876B2 (en) 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6675189B2 (en) 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US6314114B1 (en) 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
JP2000010788A (ja) 1998-06-25 2000-01-14 Sharp Corp 緊急動作処理機能を有するコンピュータ装置
US6259988B1 (en) 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
JP2000089955A (ja) * 1998-09-17 2000-03-31 Fujitsu Ltd プログラム実行装置、プログラム作成装置及びこれらのプログラム記憶媒体
JP2000099317A (ja) 1998-09-18 2000-04-07 Toshiba Corp ユーザインタフェース設計装置及び方法
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6608628B1 (en) 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6608630B1 (en) 1998-11-09 2003-08-19 Broadcom Corporation Graphics display system with line buffer control scheme
US6449711B1 (en) 1999-02-04 2002-09-10 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs
US6538651B1 (en) 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6816825B1 (en) 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
JP2001022571A (ja) 1999-07-09 2001-01-26 Riso Kagaku Corp 電子機器及び該電子機器の制御プログラム書き換え方法
US6647408B1 (en) 1999-07-16 2003-11-11 Novell, Inc. Task distribution
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6640244B1 (en) 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US20020129340A1 (en) 1999-10-28 2002-09-12 Tuttle Douglas D. Reconfigurable isomorphic software representations
US7137116B2 (en) 1999-11-09 2006-11-14 Microsoft Corporation Method and system for performing a task on a computer
US6879946B2 (en) 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
WO2001046798A2 (en) 1999-12-20 2001-06-28 Headway Research Limited System and method for computer-aided graph-based dependency analysis
US6848100B1 (en) 2000-03-31 2005-01-25 Intel Corporation Hierarchical software path profiling
WO2001074820A1 (de) 2000-03-31 2001-10-11 Sanochemia Pharmazeutika Aktiengesellschaft Neue derivate und analoga von galanthamin
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6813761B1 (en) 2000-06-30 2004-11-02 Microsoft Corporation Methods for enhancing flow analysis
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6832369B1 (en) 2000-08-01 2004-12-14 International Business Machines Corporation Object oriented method and apparatus for class variable initialization
US6496961B2 (en) 2000-10-27 2002-12-17 Nec Usa, Inc. Dynamic detection and removal of inactive clauses in SAT with application in image computation
US7463626B2 (en) 2000-11-21 2008-12-09 Roy Subhash C Phase and frequency drift and jitter compensation in a distributed telecommunications switch
US6975628B2 (en) 2000-12-22 2005-12-13 Intel Corporation Method for representing and controlling packet data flow through packet forwarding hardware
US20020152244A1 (en) 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US6804800B2 (en) 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
JP4294879B2 (ja) 2001-02-05 2009-07-15 株式会社日立製作所 サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム
US20020111876A1 (en) 2001-02-09 2002-08-15 Rudraraju Panduranga R. Transaction aggregation system and method
US7082386B2 (en) 2001-02-21 2006-07-25 International Business Machines Corporation Generalized software modeling tool
US7188091B2 (en) 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US6651234B2 (en) 2001-04-06 2003-11-18 Nec Corporation Partition-based decision heuristics for SAT and image computation using SAT and BDDs
US20020147745A1 (en) 2001-04-09 2002-10-10 Robert Houben Method and apparatus for document markup language driven server
US7082604B2 (en) 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US20040093559A1 (en) 2001-05-25 2004-05-13 Ruth Amaru Web client for viewing and interrogating enterprise data semantically
GB2376094A (en) 2001-05-30 2002-12-04 Ibm Flexible navigation of a workflow graph in a data processing system
US7069536B2 (en) 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US6868526B2 (en) 2001-07-18 2005-03-15 The Mathworks, Inc. Graphical subclassing
US20030033432A1 (en) 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US7594220B2 (en) * 2001-08-14 2009-09-22 National Instruments Corporation Configuration diagram with context sensitive connectivity
US20040006745A1 (en) 2001-08-31 2004-01-08 Van Helden Wico Methods, apparatuses, system, and articles for associating metadata with datastream
US7165030B2 (en) 2001-09-17 2007-01-16 Massachusetts Institute Of Technology Concatenative speech synthesis using a finite-state transducer
US7130484B2 (en) 2001-10-15 2006-10-31 Jonas August Biased curve indicator random field filters for enhancement of contours in images
US7085426B2 (en) 2001-10-15 2006-08-01 Jonas August Volterra filters for enhancement of contours in images
DE10152213B4 (de) 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
US7092401B2 (en) 2001-11-15 2006-08-15 International Business Machines Corporation Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
DE60106467T2 (de) 2001-12-14 2006-02-23 Hewlett-Packard Development Co., L.P., Houston Verfahren zum Installieren Überwachungsagenten, System und Computerprogramm von Objekten in einem IT-Netz Überwachung
US7240247B2 (en) 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
US20040041838A1 (en) 2002-09-04 2004-03-04 Adusumilli Venkata J.R.B. Method and system for graphing data
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7694272B2 (en) 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7412658B2 (en) 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7711772B2 (en) 2002-11-15 2010-05-04 Schlumberger Technology Corporation Web-based system and method for electronic data delivery
US7292537B2 (en) 2002-11-29 2007-11-06 Alcatel Lucent Measurement architecture to obtain per-hop one-way packet loss and delay in multi-class service networks
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7441008B2 (en) 2002-12-18 2008-10-21 International Business Machines Corporation Method for correlating transactions and messages
US20050193056A1 (en) 2002-12-26 2005-09-01 Schaefer Diane E. Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US20040148373A1 (en) 2003-01-23 2004-07-29 International Business Machines Corporation Service level agreement compliance measurement
WO2004072796A2 (en) 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7417645B2 (en) 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7669129B2 (en) 2003-04-04 2010-02-23 Avid Technology, Inc. Graphical user interface for providing editing of transform hierarchies within an effects tree
US7665025B2 (en) 2003-04-16 2010-02-16 The Mathworks, Inc. Signal navigation and label propagation in block diagrams
US20040225657A1 (en) 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
US8265979B2 (en) 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
WO2004113557A2 (en) 2003-06-18 2004-12-29 Applera Corporation Methods and systems for the analysis of biological sequence data
CA2432866A1 (en) 2003-06-20 2004-12-20 Ibm Canada Limited - Ibm Canada Limitee Debugging optimized flows
EP1639510A1 (en) 2003-06-24 2006-03-29 BAE Systems PLC A method, tool and system for increasing the efficiency of a design process
AU2004252918B2 (en) 2003-06-25 2009-12-10 Ab Initio Technology Llc. Computer-aided parallelizing of computation graphs
WO2005008414A2 (en) 2003-07-11 2005-01-27 Computer Associates Think, Inc. Method and apparatus for parallel action processing
GB0318196D0 (en) 2003-08-02 2003-09-03 Ibm A method apparatus and computer program for processing a queue of messages
US7243088B2 (en) 2003-08-06 2007-07-10 Oracle International Corporation Database management system with efficient version control
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
US8307109B2 (en) 2003-08-27 2012-11-06 International Business Machines Corporation Methods and systems for real time integration services
US7174479B2 (en) 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
KR100922141B1 (ko) 2003-09-15 2009-10-19 아브 이니티오 소프트웨어 엘엘시 데이터 프로파일링 방법 및 시스템
US7287133B2 (en) 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US20050102670A1 (en) 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines
US7408566B2 (en) 2003-10-22 2008-08-05 Oki Data Corporation Semiconductor device, LED print head and image-forming apparatus using same, and method of manufacturing semiconductor device
US20050097515A1 (en) 2003-10-31 2005-05-05 Honeywell International, Inc. Data empowered laborsaving test architecture
US7840949B2 (en) 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
US7480863B2 (en) 2003-11-26 2009-01-20 International Business Machines Corporation Dynamic and intelligent hover assistance
US7296072B2 (en) 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US7404189B2 (en) 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
US7543275B2 (en) 2004-01-29 2009-06-02 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US7594227B2 (en) 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
US7467383B2 (en) 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
EP2408193A3 (en) 2004-04-16 2014-01-15 James A. Aman Visible and non-visible light sensing camera for videoing and object tracking
US20050256818A1 (en) 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
US7143120B2 (en) 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
JP2007536634A (ja) 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7614037B2 (en) 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
US7316001B2 (en) 2004-06-05 2008-01-01 Graphlogic Inc. Object process graph system
CN101031882B (zh) 2004-06-08 2010-09-08 达尔特设备互操作有限公司 用于通用设备互操作性平台的设备组招募和内容再现的体系结构、装置和方法
US20060011668A1 (en) 2004-07-17 2006-01-19 The Hardway, Llc Dispenser seal device and method
US7398514B2 (en) 2004-09-29 2008-07-08 Microsoft Corporation Test automation stack layering
US7343482B2 (en) 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
JP4759983B2 (ja) 2004-11-04 2011-08-31 船井電機株式会社 ディスク装置のファームウェア書き換え方法、及びファームウェア書き換えプログラム
US7598953B2 (en) 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
US8082541B2 (en) 2004-12-09 2011-12-20 Advantest Corporation Method and system for performing installation and configuration management of tester instrument modules
US7487442B2 (en) 2004-12-20 2009-02-03 Microsoft Corporation Method, system, and computer-readable medium for the layout of automatically-placed elements and user-placed elements in a chart
US7665093B2 (en) 2004-12-22 2010-02-16 Microsoft Corporation Synchronization of runtime and application state via batching of workflow transactions
US7703027B2 (en) 2005-01-13 2010-04-20 National Instruments Corporation Merging graphical programs
US20060282474A1 (en) 2005-01-18 2006-12-14 Mackinnon Allan S Jr Systems and methods for processing changing data
US8396886B1 (en) 2005-02-03 2013-03-12 Sybase Inc. Continuous processing language for real-time data streams
US7620947B2 (en) 2005-03-11 2009-11-17 Autodesk, Inc. Enhanced directed graph representation for dependency systems
JP4622611B2 (ja) * 2005-03-24 2011-02-02 ソニー株式会社 信号処理装置
US7505975B2 (en) 2005-04-14 2009-03-17 Bea Systems, Inc. Use of transaction context to select single database instance for global transaction
JP4246176B2 (ja) 2005-04-25 2009-04-02 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070118839A1 (en) 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
JP4781089B2 (ja) 2005-11-15 2011-09-28 株式会社ソニー・コンピュータエンタテインメント タスク割り当て方法およびタスク割り当て装置
US7590806B2 (en) 2005-12-07 2009-09-15 Microsoft Corporation Filtering of transactional memory operations using associative tables
US8073671B2 (en) 2006-03-31 2011-12-06 Microsoft Corporation Dynamic software performance models
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
US8550344B2 (en) 2006-06-16 2013-10-08 The Invention Science Fund I, Llc Specialty stents with flow control features or the like
JP5894724B2 (ja) 2006-08-10 2016-03-30 アビニシオ テクノロジー エルエルシー グラフ型計算の分散サービス
US7844946B2 (en) 2006-09-26 2010-11-30 Intel Corporation Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections
EP2092424B1 (en) 2006-10-19 2015-12-30 Checkmarx Ltd. Locating security vulnerabilities in source code
US8191052B2 (en) 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US8209703B2 (en) 2006-12-08 2012-06-26 SAP France S.A. Apparatus and method for dataflow execution in a distributed environment using directed acyclic graph and prioritization of sub-dataflow tasks
US20080244524A1 (en) 2007-03-27 2008-10-02 Tim Kelso Program Test System
US7805635B2 (en) 2007-04-09 2010-09-28 International Business Machines Corporation Constraint programming for reduction of system test-configuration-matrix complexity
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
WO2008131106A1 (en) * 2007-04-17 2008-10-30 Earl Industries Llc Digital system for organizing diverse information
JP4073033B1 (ja) 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
CA2965896C (en) 2007-07-26 2020-01-07 Ab Initio Technology Llc Transactional graph-based computation with error handling
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
JP5453273B2 (ja) 2007-09-20 2014-03-26 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータフロー管理
US7996388B2 (en) 2007-10-17 2011-08-09 Oracle International Corporation Adding new continuous queries to a data stream management system operating on existing queries
US8521867B2 (en) 2007-10-20 2013-08-27 Oracle International Corporation Support for incrementally processing user defined aggregations in a data stream management system
US7886141B2 (en) 2007-10-27 2011-02-08 Asix Electronics Corporation Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US20090193416A1 (en) 2008-01-24 2009-07-30 Nec Laboratories America, Inc. Decidability of reachability for threads communicating via locks
US8225288B2 (en) 2008-01-29 2012-07-17 Intuit Inc. Model-based testing using branches, decisions, and options
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
US20090235267A1 (en) 2008-03-13 2009-09-17 International Business Machines Corporation Consolidated display of resource performance trends
US9184874B2 (en) 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
US8336052B2 (en) 2008-06-16 2012-12-18 International Business Machines Corporation Management, control, and monitoring of workload including unrelated processes of different containers
KR101499599B1 (ko) 2008-06-30 2015-03-18 아브 이니티오 테크놀로지 엘엘시 그래프 기반 계산에서의 데이터 로깅
US20100070955A1 (en) 2008-07-08 2010-03-18 Nec Laboratories America Alias analysis for concurrent software programs
US8782613B2 (en) 2008-08-12 2014-07-15 Hewlett-Packard Development Company, L.P. Optimizing applications using source code patterns and performance analysis
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
JP5337447B2 (ja) 2008-10-28 2013-11-06 株式会社日立製作所 ストリームデータ処理方法、及びシステム
US20100169137A1 (en) 2008-12-31 2010-07-01 Ebay Inc. Methods and systems to analyze data using a graph
US7979479B2 (en) 2009-01-08 2011-07-12 International Business Machines Corporation Transaction-controlled graph processing and management
US8635694B2 (en) 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US9886319B2 (en) * 2009-02-13 2018-02-06 Ab Initio Technology Llc Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
US7992040B2 (en) 2009-02-20 2011-08-02 International Business Machines Corporation Root cause analysis by correlating symptoms with asynchronous changes
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
US8332811B2 (en) 2009-04-30 2012-12-11 United Parcel Service Of America, Inc. Systems and methods for generating source code for workflow platform
US8473901B1 (en) 2009-06-12 2013-06-25 The Mathworks, Inc. Non-literal representation of programming language code
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
WO2011069131A1 (en) 2009-12-04 2011-06-09 Google Inc. Presenting real time search results
KR101862235B1 (ko) 2009-12-14 2018-05-29 아브 이니티오 테크놀로지 엘엘시 사용자 인터페이스 요소 지정
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US8997040B2 (en) 2010-03-24 2015-03-31 Microsoft Technology Licensing, Llc Variable closure
JP5531731B2 (ja) * 2010-03-31 2014-06-25 富士通株式会社 配線設計支援方法、配線設計支援プログラム、及び配線設計支援装置
US8484243B2 (en) 2010-05-05 2013-07-09 Cisco Technology, Inc. Order-independent stream query processing
AU2014262225A1 (en) 2010-06-15 2014-12-04 Ab Initio Technology Llc Dynamically loading graph-based computations
US8458729B2 (en) 2010-07-20 2013-06-04 International Business Machines Corporation Managing and optimizing workflows among computer applications
US9158650B2 (en) 2010-08-04 2015-10-13 BoxTone, Inc. Mobile application performance management
US9727438B2 (en) 2010-08-25 2017-08-08 Ab Initio Technology Llc Evaluating dataflow graph characteristics
WO2012061109A1 (en) * 2010-10-25 2012-05-10 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
CN102012862A (zh) 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 基于控制流图逻辑结构对比的编译器验证方法
US8997024B2 (en) * 2010-12-09 2015-03-31 Microsoft Technology Licensing, Llc Navigating between views of a graph using placemarkers
AU2012100128A4 (en) 2011-02-22 2012-03-08 Zensar Technologies Ltd A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom
US8863089B2 (en) 2011-02-25 2014-10-14 Nintendo Co., Ltd. Method and apparatus for visualizing computer program execution
US8732669B2 (en) 2011-03-11 2014-05-20 Oracle International Corporation Efficient model checking technique for finding software defects
US9165029B2 (en) 2011-04-12 2015-10-20 Microsoft Technology Licensing, Llc Navigating performance data from different subsystems
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
AU2012281182B2 (en) 2011-07-12 2015-07-09 Experian Information Solutions, Inc. Systems and methods for a large-scale credit data processing architecture
US9152470B2 (en) 2011-09-07 2015-10-06 Imagine Communications Corp. Systems and methods for computing applications
US9607045B2 (en) 2012-07-12 2017-03-28 Microsoft Technology Licensing, Llc Progressive query computation using streaming architectures
US9323650B2 (en) 2012-07-23 2016-04-26 Infosys Limited Methods for generating software test input data and devices thereof
US9875094B2 (en) 2012-08-29 2018-01-23 International Business Machines Corporation Microcode upgrade in a storage system
JP5887418B2 (ja) 2012-09-14 2016-03-16 株式会社日立製作所 ストリームデータ多重処理方法
US9953059B2 (en) 2012-09-28 2018-04-24 Oracle International Corporation Generation of archiver queries for continuous queries over archived relations
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
JP2014157510A (ja) 2013-02-15 2014-08-28 International Business Maschines Corporation ストリーム・データ処理システム、方法及びプログラム
US8977600B2 (en) 2013-05-24 2015-03-10 Software AG USA Inc. System and method for continuous analytics run against a combination of static and real-time data
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
CA3114544A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow composed of sub-graphs
AU2014362192B2 (en) 2013-12-13 2020-01-30 Ab Initio Technology Llc Dynamically determining a mode of a data processing application
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
CN103069385A (zh) * 2010-06-15 2013-04-24 起元技术有限责任公司 动态加载基于图的计算

Also Published As

Publication number Publication date
US20150160926A1 (en) 2015-06-11
CA3128713A1 (en) 2015-06-11
CA2932763A1 (en) 2015-06-11
CN106170762A (zh) 2016-11-30
CA2932763C (en) 2022-07-12
EP4375833A2 (en) 2024-05-29
US9886241B2 (en) 2018-02-06
US10901702B2 (en) 2021-01-26
EP3092557B1 (en) 2024-03-27
US20190095176A1 (en) 2019-03-28
AU2014360308B2 (en) 2018-11-29
JP2017502391A (ja) 2017-01-19
AU2019201135B2 (en) 2019-05-30
JP6626823B2 (ja) 2019-12-25
US10180821B2 (en) 2019-01-15
SG11201604525TA (en) 2016-07-28
AU2019201135A1 (en) 2019-03-07
WO2015085152A1 (en) 2015-06-11
CA3114544A1 (en) 2015-06-11
US10318252B2 (en) 2019-06-11
CA3128713C (en) 2022-06-21
US20150160927A1 (en) 2015-06-11
EP3092557A1 (en) 2016-11-16
US20180121169A1 (en) 2018-05-03
AU2014360308A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
CN106170762B (zh) 管理包括子图的数据流图所用的接口
US10282181B2 (en) Source code translation
CN108475189B (zh) 子图接口生成的方法、系统及计算机可读介质
US20230112179A1 (en) Automated modification of computer programs
CN118202331A (zh) 计算机程序的自动修改

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1231979

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant