首页 / 专利库 / 软件 / 软件包 / 软件组件 / 管理包括子图的数据流图所用的接口

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

阅读:1017发布:2021-01-20

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

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

说明书全文

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

[0001] 相关申请的交叉引用
[0002] 本申请要求2013年12月5日提交的美国申请序列号61/912,057和2014年7月31日提交的美国申请序列号62/031,388的优先权。

背景技术

[0003] 本说明书涉及管理数据流图中的子图所用的接口。
[0004] 许多软件应用程序为了处理数据而存在。这些软件应用程序中的一部分被指定为数据流图。数据流图通常包括通过有时被称为“流(flow)”的链接而相互连接的多个数据处理组件。
[0005] 在执行数据流图的情况下,从数据库或者从一些其它数据存储器或数据排队系统接收数据(例如,数据集)。所接收到的数据通过根据组件和流的相互连接所定义的依赖性而传播通过流并进入组件来行进通过数据流图。各组件在经由流提供处理后的数据作为输出数据之前,根据与该组件相关联的预定功能来处理所接收到的数据。在数据流图的输出处,处理后的数据例如存储在其它数据存储器或数据排队系统中,提供给其它下游系统或呈现给用户。
[0006] 数据流图的开发者通常通过将表示组件的拖拽到图形用户接口所提供的图形工作区域(或“画布(canvas)”)上,并且利用表示数据流的链接使这些组件相互连接来确定图,以使得该数据流图实现期望功能。一旦开发者对其数据流图的实现满意,则该开发者可以将该数据流图保存至存储器以供以后使用。通常,如果开发者需要在以后改变数据流图的实现,则该开发者可以使图形用户接口从存储器读取所保存的数据流图,对该数据流图进行改变,然后将修改后的数据流图再保存至存储器。
[0007] 在一些示例中,数据流图的一段或多段自身是使用数据流图来实现的,该一段或多段被称为“子图”。在这些示例中,子图是数据流图的一部分。因而,为了改变给定数据流图内所使用的子图,开发者请求系统从盘读取该数据流图,由此使得开发者能够在图形用户接口中打开该数据流图。然后开发者将在同一图形用户接口内打开子图段,以使得可以编辑子图。开发者可以对子图进行改变,然后开发者使数据流图与修改后的子图一起再保存至存储器,由此将子图的变化嵌入在所保存的数据流图中。发明内容
[0008] 在一方面,通常,一种用于组合数据流图的规格的方法,所述方法包括:经由输入装置或端口接收多个数据流图规格,所述多个数据流图规格包括:(“子图”所用的)第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及(“容器图”所用的)第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流。该方法包括使用至少一个处理器来处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:识别所述子图接口和所述第一数据流图规格之间的关联;针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
[0009] 方面可以包括以下特征中的一个或多个特征。
[0010] 所述第一数据流图规格包括至少一个指示,该至少一个指示表示与所述第一组件相关联的描述符与同所述第二组件相关联的描述符相同。
[0011] 所确定出的方向与数据的第一描述符或计算用特性的值从所述子图接口上的所述第一流汇合点向所述第二组件的向内传送相对应。
[0012] 所述第一描述符是从所述第三组件向所述第一流汇合点提供的。
[0013] 所述第一描述符是从所述第二组件向所述第一组件提供的。
[0014] 所述第二数据流图规格包括至少一个指示,该至少一个指示表示与所述第三组件相关联的描述符与同所述子图接口相关联的描述符相同。
[0015] 所述第二数据流图规格包括至少一个指示,该至少一个指示表示与第四组件相关联的描述符与同所述第三组件相关联的描述符相同。
[0016] 所确定出的方向与数据的第一描述符或计算用特性的值从所述子图接口上的所述第一流汇合点向所述第三组件的向外传送相对应。
[0017] 所述第一描述符是从所述第一组件向所述第一流汇合点提供的。
[0018] 所述第一描述符是从所述第三组件向所述第四组件提供的。
[0019] 所述描述符用于描述所述第一组件的端口和所述第二组件的端口之间所传送的数据的数据特性。
[0020] 所述数据特性包括所传送的数据内的记录的字段的格式。
[0021] 所述描述符用于描述所述第一数据流图规格和所述第二数据流图规格至少之一的组件的计算用特性。
[0022] 所述计算用特性包括所述组件所表示的计算的执行的并行程度。
[0023] 对所述第一数据流图进行加密。
[0024] 对所述第二数据流图进行加密。
[0025] 所述第一数据流图的所述两个以上组件分布在所述第一数据流图中的第一组多个顺次执行的级中。
[0026] 所述第二数据流图包括多个组件,所述多个组件和所述子图接口分布在所述第二数据流图中的第二组多个顺次执行的级中。
[0027] 使数据流图准备好执行包括基于所述第一组多个顺次执行的级和所述第二组多个顺次执行的级来确定包括在所述数据流图中的多个级。
[0028] 在另一方面,通常,一种以非瞬态形式存储在计算机可读介质上的软件,用于组合数据流图的规格,所述软件包括使计算系统执行以下处理的指令:经由输入装置或端口接收多个数据流图规格,所述多个数据流图规格包括:第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及使用至少一个处理器来处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:识别所述子图接口和所述第一数据流图规格之间的关联;针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
[0029] 在另一方面,通常,一种计算系统,用于组合数据流图的规格,所述计算系统包括:输入装置或端口,用于接收多个数据流图规格,所述多个数据流图规格包括:第一数据流图规格,其确定通过表示组件之间的数据的流的链接而连接的两个以上组件,所述两个以上组件包括第一组件和第二组件,其中至少一个组件表示应用于流入该组件的端口的数据的计算,并且至少一个组件表示用于提供流出该组件的端口的数据的计算,以及第二数据流图规格,其确定至少一个第三组件和至少一个子图接口,其中所述子图接口包括表示下述(1)和(2)之间的连接的至少一个流汇合点,其中(1)是所述子图接口外部的至/来自所述第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述第一数据流图规格的组件的端口的数据的流;以及至少一个处理器,用于处理包括所述第一数据流图规格和所述第二数据流图规格的信息,以生成组合数据流图规格,所述处理包括:识别所述子图接口和所述第一数据流图规格之间的关联;针对所述子图接口上的至少第一流汇合点,确定与传送数据的描述符或计算用特性的值相关联的方向,以及根据所确定出的方向将数据的描述符或计算用特性的值从所述第一流汇合点传送至所述第一数据流图规格所确定的组件或所述第二数据流图规格所确定的组件。
[0030] 在另一方面,通常,一种用于确定数据流图的方法,所述方法包括:在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性,以及渲染所述第二用户接口的一部分,该部分用于接收确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性的用户输入,其中所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
[0031] 在另一方面,通常,一种用于确定数据流图的方法,所述方法包括:在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,以及基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性。
[0032] 方面可以包括以下特征中的一个或多个特征。
[0033] 所述方法还包括生成用于存储所述第一数据流图的表示的数据结构,所述数据结构包括:表示第一组一个或多个组件的数据,该第一组一个或多个组件包括经由所述子图接口外部的一个或多个流汇合点所连接的数据的一个或多个流;以及表示第二组一个或多个组件的数据,该第二组一个或多个组件包括经由所述子图接口内部的一个或多个流汇合点所连接的数据的一个或多个流。
[0034] 所述关系对应于所述第一描述符和所述第二描述符相同。
[0035] 所述第二用户接口包括用于接收用户输入的部分,所述用户输入确定所述子图接口的所定义的流汇合点的集合中的各流汇合点的属性。
[0036] 所述属性包括与传送同相应流汇合点相关联的数据的描述符或计算用特性相关联的方向。
[0037] 所述方向与数据的第一描述符或计算用特性的值从所述第一流汇合点向所述子图的所述第一组件的向内传送相对应。
[0038] 所述方向与数据的第一描述符或计算用特性的值从所述第一流汇合点向所述第一数据流图的所述第三组件的向外传送相对应。
[0039] 所述第一描述符用于描述所述第一数据流图的所述第三组件的端口和所述子图的所述第一组件的端口之间所传送的数据的数据特性。
[0040] 所述数据特性包括所传送的数据内的记录的字段的格式。
[0041] 所述描述符用于描述所述第一数据流图的所述第三组件和所述子图的所述第一组件至少之一的计算用特性。
[0042] 所述计算用特性包括所述第一数据流图的所述第三组件或所述子图的所述第一组件所表示的计算的执行的并行程度。
[0043] 所述第一用户接口是由第一计算系统所生成的。
[0044] 所述第二用户接口是由与所述第一计算系统不同的第二计算系统所生成的。
[0045] 在另一方面,通常,一种以非瞬态形式存储在计算机可读介质中的软件,用于确定数据流图,所述软件包括用于使计算系统执行以下处理的指令:在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,以及基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性。
[0046] 在另一方面,通常,一种计算系统,用于确定数据流图,所述计算系统包括:第一计算装置,用于在第一用户接口中渲染第一数据流图的表示,所述渲染包括:渲染所述第一数据流图的多个组件,其中至少一个组件表示与流入输入端口的数据和流出输出端口的数据至少之一相关联的计算,以及基于表示从所述第一数据流图的第一组件的输出端口到所述第一数据流图的第二组件的输入端口的数据的流的用户输入,渲染所述第一组件的输出端口和所述第二组件的输入端口之间的链接;以及第二计算装置,用于在第二用户接口中渲染所述第一数据流图的子图的表示,所述渲染包括:渲染至少一个子图接口,所述子图接口包括一个或多个流汇合点,其中所述子图接口的第一流汇合点表示下述(1)和(2)之间的连接,其中(1)是所述子图接口外部的至/来自所述第一数据流图的第三组件的端口的数据的流,(2)是所述子图接口内部的至/来自所述子图的第一组件的端口的数据的流,基于表示下述(1)和(2)之间的关系的用户输入来渲染所述子图接口的所述第一流汇合点和第二流汇合点之间的链接,其中(1)是与所述子图接口的所述第一流汇合点相关联的数据的第一描述符或计算用特性,(2)是与所述子图接口的所述第二流汇合点相关联的数据的第二描述符或计算用特性。
[0047] 方面可以包括以下优点中的一个或多个优点。
[0048] 除其它优点以外,用以管理包括子图的动态链接的子图接口的方法便于使代码抽象化以及在数据流图开发环境中重复使用。子图向子图接口的动态链接涉及使针对要使用多个可能子图中的哪一个来实现与该子图接口相关联的功能的判断延迟(例如,直到恰好在执行之前为止)。因而,容器图(即,具有一个或多个子图接口的数据流图)可以用作能够重复使用并定制的模板。模板数据流图可以发送至客户。然后,客户可以供给用于实现子图接口的图逻辑并且针对客户的需求和操作环境来定制模板数据流图。客户可以包括定制数据流图的用户,以及/或者向其它用户提供定制数据流图的开发者。
[0049] 子图接口提供制作遍及接口的多个实现而通用的数据流图的能。子图接口提供在子图接口的任何实现之前针对接口开发图的能力。子图接口提供在无需使用的具体实例的情况下针对接口验证实现的能力。子图接口提供区分子图的实现的发送位置许可、加密或其它属性的能力。
[0050] 一些实施例使得能够根据与子图接口相关联的实现子图得出包括该子图接口的容器图中的元数据。元数据例如可以包括提供给组件或从组件提供的数据的描述符(例如,记录格式)、组件的计算用特性或者与组件相关联的计算资源。有利地,根据实现子图得出容器图所用的元数据使得该容器图相对于从该实现子图得到或者进入该实现子图的数据的类型是可配置的。这在开发者指定实现子图读取具有特定记录格式的数据并且将该数据传递至预定义的容器图以供进一步处理的情况下尤其有用。在一些示例中,预定义的容器图是由一些其它实体所指定的并且可以是只读的、加密的或者以一些其它方式受到保护以免被查看和/或修改。在一些示例中,实现子图可以是只读的,加密的或者以一些其它方式受到保护以免被查看和/或修改。这种图需要能够容纳来自实现子图的不同类型的记录格式而无需用户干预。还可以根据包括子图接口的容器图得出与该子图接口相关联的实现子图中的元数据,这可以使得不同容器图中的实现子图的使用具有一定的灵活性。
[0051] 开发者可以有利地创建并使用子图接口的实现的库。这些库可以用于减少开发时间并且鼓励代码重复使用。
[0052] 一些实施例使得能够根据容器图对子图接口的子图实现进行依赖性分析和内省。
[0053] 用于开发容器图的图形用户接口可以包括多级以及如何将这些级应用于任意子图接口的图形指示,这使得开发者能够理解这些级将如何影响数据流图的不同部分(例如,哪些数据流将穿过级边界,由此使得通过该数据流的数据持久地存储在缓冲器中)。
[0054] 用于开发子图接口的图形用户接口鼓励开发者将动态链接的子图视为受制于强抽象边界,由此要求与开发一个或多个子图实现分开地(或通常在开发一个或多个子图实现之前)开发子图接口,并且在一些示例中,与开发容器图分开地(或者在开发容器图之前)开发子图接口。
[0055] 根据以下说明书、以及根据权利要求书,本发明的其它特征和有点将变得明显。附图说明
[0056] 图1A是被配置为使用动态链接的子图的系统的框图
[0057] 图1B是准备数据流图以供执行的不同阶段的流程图
[0058] 图2A是包括子图接口的数据流图。
[0059] 图2B是子图接口的实现。
[0060] 图2C是组合数据流图。
[0061] 图2D是子图接口开发用户接口。
[0062] 图2E是子图接口属性用户接口的端口配置标签。
[0063] 图3A示出图2A的数据流图中的编辑时间记录格式元数据传播。
[0064] 图3B示出图2B的子图接口的实现中的编辑时间记录格式元数据传播。
[0065] 图3C示出图2C的组合数据流图中的链接时间记录格式元数据传播。
[0066] 图4A示出图2A的数据流图中的编辑时间布局元数据传播。
[0067] 图4B示出图2B的子图接口的实现中的编辑时间布局元数据传播。
[0068] 图4C示出图2C的组合数据流图中的链接时间布局元数据传播。

具体实施方式

[0069] 图1A示出可以使用动态链接的子图的数据处理系统100的示例。系统100包括数据源102,其中该数据源102可以包括诸如存储装置或者至线上数据流的连接等的一个或多个数据的源,其中该一个或多个数据的源各自可以以各种格式(例如,数据库表、电子表格文件、非结构文本(flat text)文件或大型机所使用的原始格式)中的任何格式来存储或提供数据。执行环境104包括图准备模块106和图执行模块112。很通常地,图准备模块106将数据流图的规格(以下更详细地说明)装配并链接到可由图执行模块112执行的表示中。执行环境104例如可以在诸如某个版本的UNIX操作系统等的适当的操作系统的控制下安装在一个或多个通用计算机上。例如,执行环境104可以包括包含使用多个中央处理单元(CPU)或多个处理器内核计算机系统的结构的多节点并行计算环境,可以是本地的(例如,诸如对称多处理(SMP)计算机等的多处理器系统)或本地分布式的(例如,作为集群所连接的多个处理器或大规模并行处理(MPP)系统)、或者远程或远程分布式的(例如,经由局域网(LAN)和/或广域网(WAN)连接的多个处理器)、或者它们的任何组合。
[0070] 在一些示例中,执行环境104从数据源102读取数据,通过(例如,利用图执行模块112)执行与该数据有关的数据流图来处理该数据,并且将处理后的数据存储在数据存储系统中。提供数据源102的存储装置相对于执行环境104可以是本地的,例如,可以存储在连接至安装有执行环境104的计算机的存储介质(例如,硬盘驱动器108)上,或者相对于执行环境104可以是远程的,例如,安装在经由(例如,计算基础设施所提供的)远程连接与安装有执行环境104的计算机进行通信的远程系统(例如,大型机110)上。
[0071] 图执行模块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)(表示工作元素(即,数据)的流)相连接。例如,在通过引用包含于此的标题为“Managing Parameters for Graph-Based Applications”的美国专利公开号2007/0011668中更详细地说明了这种环境。在通过引用包含于此的标题为“EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS”的美国专利5,966,072中说明了用于执行这种基于图的计算的系统。根据该系统所制作的数据流图提供用于将信息输入至图组件所表示的个别处理或从图组件所表示的个别处理获得信息的方法、用于在处理之间移动信息的方法以及用于定义处理的运行顺序的方法。该系统包括用于从任何可用方法中选取处理间通信方法的算法(例如,与图的链接相对应的通信路径可以使用TCP/IP或UNIX域套接字或者使用共享存储器在处理之间传递数据)。
[0072] 执行模块104可以接收来自包括不同形式的数据库系统的可以实现数据源102的各种系统的数据。该数据可以被组织成具有针对各字段(还被称为“属性”或“列”)的值的可能包括空值的记录。在第一次从数据源读取数据的情况下,执行模块104通常从与该数据源中的记录有关的一些初始格式信息开始。在一些情形中,数据源的记录结构最初可能是未知的并且作为替代可以在对该数据源或数据进行了分析之后才确定。与记录有关的初始信息例如可以包括表示独特值的位的数量、记录内的字段的顺序以及位所表示的值的类型(例如,字符串、有符号/无符号整数)。
[0073] 图1B示出使用数据处理系统100来准备数据流图以供执行以及执行数据流图的不同阶段的示例。在编辑时间,任意数量的开发者编辑(150)不同的数据流图,其中任意数量的开发者可以包括编辑容器图的一个开发者120A,以及对实现该数据流图中所包括的子图接口的实现子图进行编辑的另一开发者120B。在一些情况下,实现子图自身可以包括将由其自身嵌套的实现子图来实现的子图接口。然后,图开发者或图用户可以开始由图准备模块106来执行的使用子图的动态链接来准备数据流图以供执行的处理。图准备模块106判断(152)准备中的数据流图中是否存在任何未链接的子图接口。如果存在,则模块106链接(154)适当的子图。在该可能递归的链接处理期间(称为“链接时间”),可能存在与需要评价的数据流图相关联的各种参数,其中这些参数包括表示哪个特定实现子图应链接至给定子图接口的参数。在动态链接完成之后,模块106(在“编译时间”)将完全装配好的数据流图编译(156)成可执行形式,并且执行模块104(在“运行时间”)执行(158)编译后的数据流图。可能存在与在编译时间或运行时间评价的数据流图相关联的某些参数。
[0074] 1容器图、子图和子图接口
[0075] 参考图2A,第一数据流图200的框图被配置为使用多个组件处理来自第一输入数据集202A和第二输入数据集202B的数据并且将所得到的处理后的数据存储在输出数据集202C中。第一数据流图200包括第一组件208A、第二组件208B和子图接口210。很通常地,子图接口210使得子图能够动态地加载在第一数据流图中。在一些示例中,第一数据流图200由于其包括子图接口而被称为“容器图”。
[0076] 组件各自具有用于接收输入数据的一个或多个输入端口以及用于提供输出数据的一个或多个输出端口。通常,各组件对流入其输入端口的输入数据应用计算并且经由该组件的输出端口提供计算结果作为输出。注意,在一些示例中,某些类型的组件可以仅包括输入端口或者仅包括输出端口。子图接口包括一个或多个流汇合点,其中流汇合点定义容器图和与子图接口相关联的子图中的流之间的连接点(以下更详细地说明)。各流汇合点表示至/来自第一数据流图的组件上的端口的数据的流和至/来自第二数据流图的组件上的端口的数据的流之间的连接(或“汇合点”)。数据集和组件的端口以及子图接口的流汇合点通过流206A~206E相互连接,这定义了数据如何在第一数据流图200的数据集、组件和子图接口之间传播。
[0077] 具体地,针对图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。
[0078] 在第一数据流图200中,第一组件208A和第二组件208B是传统上已知的实现诸如排序、联合和各种数据变换等的功能的数据流图组件。
[0079] 子图接口210是数据流图中使得能够使用子图的动态链接来管理第一数据流图200的一部分的规格的特殊类型的节点。在一些示例中,子图接口210接收包括指向盘上的第二数据流图规格的路径的参数输入PS 212。紧挨在第一数据流图200的执行之前,第二数据流图动态地链接到第一数据流图200中,实质上取代了子图接口210。
[0080] 通常,为了可以使第二数据流图动态链接到第一数据流图200中,第二数据流图必须适应于子图接口210所定义的接口。也就是说,第二数据流图必须具有连接至子图接口的流汇合点的端口。通过使第二数据流图强制适应于子图接口210,已知在无需检验第二数据流图的情况下,连接至第一数据流图200中的子图接口210的端口的流可以直接连接至第二数据流图中的子图接口210的端口,由此在这两个数据流图中的端口之间形成单个流。
[0081] 参考图2B,第二数据流图201的一个示例适应于图2A的子图接口210。在一些示例中,由于第二数据流图210适应于子图接口210并且针对子图接口210实现功能,因此第二数据流图201被称为“实现子图”。
[0082] 第二数据流图201被配置为使用多个组件处理来自子图接口210所确定的第一流汇合点204D和第二流汇合点204F的数据,并且提供所得到的处理后的数据作为至子图接口210所定义的第三流汇合点204G的输出。组件各自具有用于接收输入数据的一个或多个输入端口以及用于提供输出数据的一个或多个输出端口。组件的端口通过流206F~206I相互连接,这定义了数据如何在第二数据流图201的子图接口210和组件之间传播。
[0083] 具体地,针对图2B的第二数据流图201,第三组件208C上所包括的第四输入端口204K使用第六流206F连接至图形接口210上所包括的第二流汇合点204F。第四组件208D上所包括的第五输入端口204M使用第七流206G连接至图形接口210上所包括的第一流汇合点
204D。第四组件208D上所包括的第六输入端口204N使用第八流206H连接至第三组件208C上所包括的第五输出端口204L。图形接口210上所包括的第三流汇合点204G使用第九流206I连接至第四组件208D上所包括的第六输出端口204O。
[0084] 注意,在一些示例中,第二数据流图201中的组件的端口和流汇合点(即,206F、206G、206I)之间的连接不是传统的流而是流汇合点和端口之间的绑定(即,关联)或终端连接器。在第二数据流图201链接到第一数据流图200中的情况下,剥去绑定或终端连接器并且第二数据流图201中的组件的端口直接连接至第一数据流图200的流。
[0085] 2动态链接
[0086] 再参考图2A,紧挨在图执行模块112执行数据流图之前,图准备模块106处理第一数据流图200和第二数据流图201的一部分,以准备第一数据流图200以供执行。除了其它步骤以外,该处理包括在第一数据流图200中的子图接口210的位置处将第二数据流图201动态链接(即,绑定)到第一数据流图200中。
[0087] 为了将第二数据流图201动态链接到第一数据流图200中,图准备模块106对提供至子图接口210的参数输入PS 212进行分析以确定盘上所存储的哪个实现子图与子图接口210相关联。加载所确定出的实现子图(例如,第二数据流图201)并对其进行实例化,并且将该实现子图的参数和端口绑定在第一数据流图200中以构成组合数据流图。然后对子图接口的流汇合点的至少一部分进行分析以确定元数据传播的方向,其中该方向对应于与流汇合点相关联的数据的描述符或计算用特性(即,元数据)的传送方向。在元数据传播的处理中,针对至少部分流汇合点,根据所确定出的方向将数据的描述符或计算用特性从该流汇合点传送至第一数据流图200中的组件或组件上的端口或者第二数据流图201中的组件或组件上的端口。以下详细说明元数据传播的该处理。
[0088] 参考图2C,组合数据流图300包括图2A的第一数据流图200以及取代子图接口210而链接的第二数据流图201。由于第二数据流图201是子图接口210的实现并且适应于子图接口210,因此第二数据流图210的所有输入和输出端口经由流连接至第一数据流图200的组件。
[0089] 组合数据流图300可由图执行模块112来执行。
[0090] 3元数据传播
[0091] 在数据流图中,通常,管理与数据流图中的组件的端口相关联的元数据以及/或者与这些组件自身相关联的元数据很重要。如上所述,在一些示例中,元数据包括数据的描述符(例如,端口所用的包括流入或流出端口的记录的字段序列和数据类型的记录格式)或者计算用特性(例如,组件的分区或布局)。在一些示例中,元数据可以包括组件可以使用的一定量的存储器、组件可以使用哪些计算资源、有序程度(sortedness)、压缩方法、字符集、二进制表示(例如,大字节序(big-endian)、小字节序(little-endian))或数据变换。
[0092] 元数据管理可以手动、自动或者通过使用手动和自动元数据管理的组合来实现。针对手动元数据管理,元数据例如由图开发者或图用户来供给。对于自动元数据管理,元数据从图中(例如,由图开发者或者由图用户)显式定义了元数据的部分传播至图中未显式定义元数据的部分。在图用户或开发者没有直接供给给定端口或组件所用的元数据的情况下使用元数据传播。在这种情况下,从图中的其它端口或组件得出给定端口或组件所用的元数据。这里所使用的术语“元数据传播”是指该得出处理。
[0093] 在图2A的第一数据流图200中,传统元数据传播的一个简单示例在针对第一组件208A的第一输入端口204B未显式定义记录格式元数据的情况下发生。第一输入端口204B经由第一流206A连接至第二输入数据集202B的第一输出端口204A。通常,第二输入数据集
202B所供给的数据的记录格式始终是显式已知的,因此与第一输出端口204A相关联的元数据是显式定义的。与第一输出端口204A相关联的显式定义的元数据经由第一流206A向第一输入端口204B传播,其中该元数据与第一输入端口204B相关联。
[0094] 上述的第一输出端口204A和第一输入端口204B之间的元数据传播经由第一流206A在与数据流经数据流图相同的方向(即,从左向右)上发生。然而,在一些示例中,元数据经由流在与数据流经数据流图的方向相反的方向上传播。例如,与输出数据集202C的第三输入端口204J相关联的显式定义的元数据经由第五流206E在与数据经由第五流206E流动的方向相反的方向上向第二组件208B的第四输出端口204I传播。
[0095] 在包括传统组件和数据集的传统数据流图中,显式定义的元数据传播通过数据流图使得数据流图中的所有端口和组件与元数据相关联。通常对元数据传播中出现的任何冲突进行标记以供开发者进行干预。然而,通常以与仅包括传统组件的数据流图的元数据传播不同的方式来应对包括子图接口的数据流图的元数据传播。特别地,元数据可以分两个阶段传播:编辑时间元数据传播阶段和链接时间元数据解析阶段。
[0096] 使用该两阶段方式,在编辑时间,容器图(即,包括子图接口的图)的开发者以及将取代子图接口而链接的实现子图(即,适应于子图接口的子图)的开发者不必知道彼此的元数据。在无权访问传播信息的情况下,传统的元数据传播将无法得知元数据应在“向内”的方向上传播到实现子图中(即,容器图用作实现子图所用的元数据的源)还是在“向外”的方向上从实现子图传播(即,容器图用作来自实现子图的元数据的宿(sink))。
[0097] 为了便于在包括子图接口的数据流图中传播元数据,子图接口的各流汇合点确定元数据传播的方向。在编辑时间元数据传播期间,元数据与流汇合点相关联,然后,在链接时间根据元数据传播的方向从流汇合点传送相关联的元数据。在一些示例中,元数据传播的可能方向的集合包括“向内”传播和“向外”传播。可以采用布尔(Boolean)变量的形式来存储特定的向内方向值和特定的向外方向值,其中,例如可以针对这种传播或者为了确定所指示的元数据传播的方向对该布尔变量进行检索。
[0098] 3.1.1向内元数据传播
[0099] 在声明子图接口上的流汇合点具有“向内”的元数据传播方向的情况下,容器图中的元数据传播经由连接至流汇合点(最终至连接到实现子图中的流(或绑定)的端口)的流来供给元数据定义。
[0100] 也就是说,在容器图中,编辑时间元数据传播将流汇合点视为元数据宿。特别地,容器图中的编辑时间元数据传播使用如上所述的传统元数据传播在容器图的传统组件之间传播元数据。在元数据传播至子图接口上的具有“向内”元数据传播方向的流汇合点的情况下,该元数据不能再继续传播。该元数据维持在流汇合点处,直到实现子图链接到容器图中并且可以(如下所述)进行链接时间元数据解析为止。
[0101] 在实现子图中,编辑时间元数据传播将具有“向内”元数据传播方向的流汇合点视为元数据源。然而,在实现子图的情况下,子图接口上的流汇合点处的实际元数据值是未知的(这是由于该值仅可以在链接时间从容器图获得)。因而,为了针对实现子图进行编辑时间传播,针对流汇合点处的元数据分配占位符值并且如上所述使用传统元数据传播使该占位符值传播通过实现子图。在实现子图链接到容器图中并且进行链接时间元数据解析的情况下对该占位符值进行解析。
[0102] 在链接时间元数据解析阶段,在实现子图链接到容器图中的情况下,将维持在具有“向内”元数据传播方向的流汇合点处的元数据传送到实现子图中并且传送至该实现子图的组件的适当端口。在一些示例中,链接时间元数据解析仅通过利用容器图中的相应流汇合点处所维持的元数据值来简单替换实现子图中的流汇合点处的占位符值来解析该占位符值。
[0103] 在一些示例中,“向内”元数据传播是默认的,并且即使在图容器子图接口将始终供给显式元数据定义的情况下也是适当的。
[0104] 3.1.2向外元数据传播
[0105] 在声明子图接口上的流汇合点具有“向外”的元数据传播方向的情况下,实现子图中的元数据传播向容器图供给流汇合点所用的元数据定义。
[0106] 也就是说,在容器图中,尽管不存在针对元数据的编辑时间定义(这是由于该定义仅可以在链接时间从实现子图获得),编辑时间元数据传播仍将流汇合点视为元数据源。特别地,容器图中的编辑时间元数据传播使用如上所述的传统元数据传播在容器图中的传统组件之间传播元数据。在子图接口上的具有向外的元数据传播方向的流汇合点上进行元数据传播的情况下,针对该流汇合点处的元数据分配占位符值,并且使用传统元数据传播使该占位符值传播通过容器图。
[0107] 在实现子图中,编辑时间元数据传播将具有“向外”的元数据传播方向的流汇合点视为元数据宿。特定的,实现子图中的编辑时间元数据传播使用如上所述的传统元数据传播在容器图中的传统组件之间传播元数据。在元数据传播至子图接口上的具有“向外”的元数据传播方向的流汇合点的情况下,元数据不能再继续传播。该元数据维持在流汇合点处,直到实现子图链接到容器图中并且可以(如下所述)进行链接时间元数据解析为止。
[0108] 在链接时间元数据解析阶段,在实现子图链接到容器图中的情况下,将维持在具有“向外”的元数据传播方向的流汇合点处的元数据传送出至容器图,并且传送出至容器图的组件的适当端口。在一些示例中,链接时间元数据解析识别容器子图中的流汇合点处的占位符值并且仅利用实现子图中的流汇合点处所维持的元数据值来简单替换该占位符值。
[0109] 在一些示例中,不允许开发者显式定义具有“向外”的元数据传播方向的流汇合点所用的元数据。
[0110] 4子图接口开发图形用户接口
[0111] 参考图2D,子图接口开发图形用户接口220便于创建、检验和修改子图接口224。子图用户接口开发图形用户接口220包括显示窗口222,其中该显示窗口222用于向开发者呈现包括多个输入流汇合点226、输出流汇合点228以及输入流汇合点226和输出流汇合点228之间的一个或多个链接229的子图接口224的图形表示。
[0112] 很通常地,子图接口224用作严格原型,其中子图接口224的任何子图实现和包括子图接口224的任何容器图必须适应于该原型。这样,图形用户接口220的子图接口224的外部可以被视为独立开发的容器图所用的占位符,并且图形用户接口中的子图接口224的内部可以被视为独立开发的子图实现所用的占位符。
[0113] 流汇合点226、228被配置在子图接口224的边界上并且用作连接至/来自子图接口224外部的组件的端口的数据的流(例如,来自容器图中的组件的端口的数据的流)以及至/来自子图接口224内部的组件的端口的数据的流(即,至子图实现中的组件的端口的数据的流)的桥梁。在图2D中,子图接口224包括两个输入流汇合点226(即,in0和in1)以及两个输出流汇合点228(即,out0和out1)。然而,子图接口224可以包括任意数量的输入流汇合点
226和输出流汇合点228。
[0114] 各输入流汇合点226与数据的描述符和/或计算用特性(即,元数据)的传播方向(即,向内或向外)相关联。如上所述,传播方向判断传播通过输入流汇合点226的元数据是由容器图所提供的还是由子图实现所提供的。如果输入流汇合点226的传播方向为向外,则输入流汇合点226定义通过输入流汇合点226的数据的记录格式以及附接至输入流汇合点226的组件的布局。
[0115] 类似地,各输出流汇合点228与数据的描述符和/或计算用特性(即,元数据)的传播方向(即,向内或向外)相关联。如上所述,传播方向判断传播通过输出流汇合点228的元数据是由容器图所提供的还是由子图实现所提供的。如果输出流汇合点228的传播方向为向外,则输出流汇合点228定义通过输出流汇合点228的数据的记录格式以及附接至输出流汇合点228的组件的布局。
[0116] 在一些示例中,开发者可以通过右击子图接口224的边界并且从右击菜单中选择“添加输入流汇合点”或“添加输出流汇合点”菜单项来添加流汇合点226、228。在其它示例中,图形用户接口220包括用于向子图接口224添加流汇合点的特殊工具。类似地,可以使用右击菜单选项或专用工具从子图接口224中移除流汇合点
[0117] 输入流汇合点226和输出流汇合点228之间的一个或多个链接229表示与输入流汇合点226相关联的数据的数据描述符或计算用特性(即,元数据)以及与输出流汇合点226相关联的数据的数据描述符或计算用特性(即,元数据)之间的关系。在图2D中,单个链接229将第一输入流汇合点in0连接至第一输出流汇合点out0。链接229表示在与第一输入流汇合点in0相关联的数据或计算用特性(元数据)和与第一输出流汇合点out0相关联的数据或计算用特性(即,元数据)之间存在关系。在一些示例中,链接229表示与第一输入流汇合点in0和第一输出流汇合点out0相关联的任何数据或计算用特性(即,元数据)必须是相同的。这可以通过表示一个特性是根据其它特性所得出的链接229来实现。
[0118] 在一些示例中,开发者可以通过点击第一种类型的第一流汇合点(例如,输入流汇合点)并且在子图接口224内部从第一流汇合点到第二种类型的第二流会汇合点(例如,输出流汇合点)绘制一条线由此使用该线来连接这两个流汇合点,从而创建输入流汇合点226和输出流汇合点228之间的链接229。
[0119] 参考图2E,子图接口属性用户接口232的流汇合点配置标签230使得用户能够配置子图接口的一个或多个流汇合点。流汇合点配置标签包括汇合点列表控制234以及包括记录格式元数据传播方向控制238的传播控制部分236、布局元数据传播方向控制240、布局关联控制242、“可扇入扇出(can fan)”控制244和要求控制246。
[0120] 流汇合点列表控制234显示所有流汇合点的列表,其中流汇合点分类为输入流汇合点类别248和输出流汇合点类别250。开发者可以从流汇合点列表控制234中选择一个或多个流汇合点以进行配置。然后,开发者可以使用传播控制部分236中的控制238、240、242、244和246来配置所选择的流汇合点。特别地,开发者可以使用记录格式元数据传播方向控制238来选择所选择的流汇合点的记录格式元数据传播的方向是向内还是向外。开发者可以使用布局元数据传播方向控制240来选择所选择的流汇合点的布局元数据传播的方向是向内还是向外。开发者可以使用布局关联控制242来选择与所选择的流汇合点相关联的布局参数的名称。开发者可以使用“can fan”控制244来指定是否允许所选择的流汇合点扇入或扇出。开发者可以使用要求控制246来指定所选择的流汇合点是否是子图接口所要求的。
[0121] 在一些示例中,开发者可以通过右击子图接口并且从右击菜单中选择属性项来访问子图接口属性用户接口232的流汇合点配置标签230。
[0122] 在一些示例中,还可以利用图2D的图形用户接口220来定义子图接口224的子图接口中所允许的多个级。
[0123] 5示例
[0124] 以下章节提供图2A和2B的数据流图的元数据传播的示例。图3A~3C和图4A~4C中的粗虚线表示元数据传播,并且线上的箭头表示元数据传播的方向。
[0125] 5.1记录格式元数据传播
[0126] 参考图3A~3C,示出图2A的第一数据流图200和图2B的第二数据流图201中的记录格式元数据传播的示例。现在参考图3A,在本示例中,假定子图接口210的第一流汇合点204D和子图接口210的第二流汇合点204F均具有“向内”的元数据传播方向,并且子图接口的第三流汇合点204G具有“向外”的元数据传播方向。还假定第一数据流图200中仅有的显式定义的元数据是与第一输入数据集202A的第二输出端口204C相关联的记录格式A、与第二输入数据集202B的第一输出端口204A相关联的记录格式B以及与输出数据集202C的第三输入端口204J相关联的记录格式C。
[0127] 在图开发者正在编辑第一数据流图200的情况下,在第一数据流图200上进行编辑时间记录格式元数据传播。特别地,记录格式A经由第二流206B从第一输入数据集202A的第二输出端口204C向子图接口210的第一流汇合点204D传播。由于第一流汇合点204D具有“向内”的元数据传播方向,因此记录格式A不再继续传播并且维持在第一流汇合点204D处以供以后在链接时间元数据解析阶段使用。
[0128] 记录格式B经由第一流206A从第二输入数据集202B的第一输出端口204A向第一组件208A的第一输入端口204B传播,其中记录格式B与第一输入端口204B相关联。编辑时间元数据传播处理判断为第一组件208A没有对元数据应用任何变换,因此使记录格式B传播通过该组件并且使记录格式B与第一组件208A的第三输出端口204E相关联。
[0129] 然后,记录格式B经由第三流206C从第一组件208A的第三输出端口204E向子图接口210的第二流汇合点204F传播。由于第二流汇合点204F具有“向内”的元数据传播方向,因此记录格式B不再继续传播并且维持在第二流汇合点204F处以供以后在链接时间元数据解析中使用。
[0130] 然后,记录格式C经由第五流206E从输出数据集202C的第三输入端口204J向第二组件208B的第四输出端口204I传播,其中记录格式C与第四输出端口204I相关联。
[0131] 由于子图接口210的第三流汇合点204G具有“向外”的元数据传播方向,因此在第一数据流图200中,与流汇合点相关联的元数据在编辑时间是未知的并且预期要由实现子图在链接时间提供。由于该原因,因此暂时使占位符记录格式TBD1与第三流汇合点204G相关联。占位符记录格式TBD1经由第四流206D向第二组件208B的第二输入端口204H传播,其中占位符记录格式TBD1与第二输入端口204H相关联。该占位符维持在第三流汇合点204G和第二输入端口204H处,直到链接时间元数据解析对TBD1的实际值进行解析并且将该实际值关联为第三流汇合点204G和第二输入端口204H所用的元数据为止。
[0132] 参考图3B,在图开发者正在编辑第二数据流图201的情况下,在第二数据流图201上进行编辑时间元数据传播。第二数据流图201具有单个端口(也就是第四组件208D的第六输出端口204O),并且元数据被显式定义为记录格式E。
[0133] 如上所述,第二数据流图201适应于子图接口210(即,第一数据流图200中所包括的子图接口)。由于该原因,子图接口210的端口的元数据传播方向在第二数据流图201中与在第一数据流图200中相同。也就是说,子图接口210的第一流汇合点204D和子图接口210的第二流汇合点204F均具有“向内”的元数据传播方向,并且子图接口的第三流汇合点204G具有“向外”的元数据传播方向。
[0134] 由于第一流汇合点204D具有“向内”的元数据传播方向,因此在第二数据流图201中,与端口相关联的元数据在编辑时间是未知的,并且预期要由容器图(即,第一数据流图200)在链接时间提供。由于该原因,因此暂时将占位符记录格式TBD2与第一流汇合点204D相关联。占位符记录格式TBD2经由第七流206G向第四组件208D的第五输入端口204M传播,其中占位符记录格式TBD2与第五输入端口204M暂时相关联。该占位符维持在第一流汇合点
204D和第五输入端口204M处,直到链接时间元数据解析对TBD2的实际值进行解析并且将该实际值关联为第五输入204M所用的元数据为止。
[0135] 类似地,由于第二流汇合点204F具有“向内”的元数据传播方向,因此在第二数据流图201中,与端口相关联的元数据在编辑时间是未知的,并且要由容器图(即,第一数据流图200)在链接时间提供。由于该原因,因此暂时将占位符记录格式TBD3与第二流汇合点204F相关联。占位符记录格式TBD3经由第六流206F向第三组件208C的第四输入端口204K传播,其中占位符记录格式TBD3与第四输入端口204K暂时相关联。然后,编辑时间元数据传播处理判断为第三组件208C没有对元数据应用任何变换,因此使记录格式TBD3传播通过该组件并且使记录格式TBD3与第三组件208C的第五输出端口204L相关联。然后,TBD3经由第八流
206H向第四组件208D的第六输入端口204N传播,其中TBD3与第六输入端口204N暂时相关联。
[0136] 占位符TBD3维持在第二流汇合点204F以及三个端口204K、204L、204N处,直到链接时间元数据解析对TBD3的实际值进行解析并且将该实际值关联为这些端口所用的元数据为止。
[0137] 记录格式E经由第九流206I从第四组件208D的第六输出端口204O向子图接口210的第三流汇合点204G传播。由于第三流汇合点204G具有“向外”的元数据传播方向,因此记录格式F不再继续传播并且维持在第三流汇合点端口204G处以供以后在链接时间元数据解析中使用。
[0138] 参考图3C,紧挨在运行时间之前,第二数据流图201链接到第一数据流图200中,得到组合数据流图300,并且进行链接时间元数据解析。为了进行链接时间元数据解析,对子图接口210的各流汇合点的属性进行分析以确定关联的元数据传播的方向。针对子图接口210的具有向内的元数据传播方向的流汇合点,将维持在第一数据流图200中的流汇合点处的记录格式元数据“向内”传送至第二数据流图201的组件的适当端口。类似地,针对子图接口210的具有向外的元数据传播方向的流汇合点,将维持在第二数据流图201中的流汇合点处的记录格式元数据向外传送至第一数据流图200的组件的适当端口。
[0139] 特别地,对第一流汇合点204D进行分析并且确定第一流汇合点204D具有“向内”的元数据传播方向。然后,确定第一流汇合点204D与第一数据流图200中所定义的元数据记录格式A相关联并且与第二数据流图201中的占位符元数据TBD2相关联。链接时间元数据解析阶段使与第二数据流图201中的TBD2相关联的所有端口(即,第五输入端口204M)与记录格式A相关联。
[0140] 对第二流汇合点204F进行分析并且确定第二流汇合点204F具有“向内”的元数据传播方向。然后,确定第二流汇合点204F与第一数据流图200中所定义的元数据记录格式B相关联并且与第二数据流图201中的占位符元数据TBD3相关联。链接时间元数据解析阶段使与第二数据流图201中的TBD3相关联的所有端口(即,第四输入端口204K、第五输出端口204L和第六输入端口204N)与记录格式B相关联。
[0141] 对第三流汇合点204G进行分析并且确定第三流汇合点204G具有“向外”的元数据传播方向。然后,确定第三流汇合点204G与第二数据流图201中所定义的元数据记录格式E相关联并且与第一数据流图200中的占位符元数据TBD1相关联。链接时间元数据解析阶段使与第一数据流图200中的TBD1相关联的所有端口(即,第二输入端口204H)与记录格式E相关联。
[0142] 作为上述的编辑时间元数据传播处理和链接时间元数据解析处理的结果,组合数据流图300中的所有端口与有效记录格式元数据相关联。
[0143] 5.2布局元数据传播
[0144] 参考图4A~4C,示出图2A的第一数据流图200和图2B的第二数据流图201中的布局元数据传播的示例。为了便于传播布局元数据,子图接口212的设计者指定了与子图接口212相关联的一个或多个布局元数据参数。针对该一个或多个布局元数据参数中的各布局元数据参数,子图接口设计者指定了元数据传播的方向。在定义了布局元数据参数的情况下,子图接口212的设计者使子图接口的各流汇合点与布局元数据参数其中之一相关联。在一些示例中,各流汇合点确定其自身的唯一布局元数据参数。在其它示例中,布局元数据参数比流汇合点少,并且某些布局元数据参数与多于一个流汇合点相关联。在这种示例中,共用共通的布局元数据参数的流汇合点必须全部符合元数据传播的方向以及所传播的与共通的布局元数据参数相关联的布局值。
[0145] 现在参考图4A,在本示例中,假定子图接口212具有与其相关联的两个布局元数据参数:具有“向外”的元数据传播方向的第一布局元数据参数和具有“向内”的元数据传播方向的第二布局元数据参数。第一布局元数据参数与第一流汇合点204D和第二流汇合点204F相关联。第二布局元数据参数与第三流汇合点204G相关联。还假定与第一组件208A和第二组件208B相关联的布局元数据并非是显式定义的,因此由元数据传播来定义。
[0146] 在图开发者正在编辑第一数据流图200的情况下,在第一数据流图200上进行编辑时间布局元数据传播。由于第一组件208A所用的布局元数据并非是显式定义的,因此预期从与具有“向外”的元数据传播方向的第一布局元数据参数相关联的第二流汇合点204F来传播第一组件208A所用的布局元数据。然而,在第一数据流图200中,与第二流汇合点204F相关联的布局元数据在编辑时间是未知的并且预期要由实现子图在链接时间提供。由于该原因,向第一组件208A传播占位符布局元数据TBD1并且暂时使占位符布局元数据TBD1与第一组件208A相关联。该占位符布局元数据维持在第一组件208A处,直到链接时间元数据解析对TBD1的实际值进行解析并且将该实际值关联为第一组件208A所用的布局元数据为止。
[0147] 类似地,第二组件208B所用的布局元数据并非是显式定义的。然而,编辑时间布局元数据传播可以对连接至第二组件208B的第四输出端口204I的输出数据集202C的配置进行分析以推断出第二组件208B所用的布局元数据。在图4A的示例中,元数据传播对输出数据集202C的配置进行分析并且判断为输出数据集202C被配置为从其上游组件(即,第二组件208B)的两个并行执行的实例接收数据。基于输出数据集202C的配置,元数据传播推断第二组件208B的两个实例在第一数据流图200的执行期间并行执行(即,第二组件208C运行表示为图中的2x的“双向并行”)。基于该判断,元数据传播使2x布局元数据与第二组件208B相关联。
[0148] 然后,元数据传播将2x布局元数据从第二组件208B向第三流汇合点204G传播。由于第三流汇合点204G与具有“向内”的元数据传播方向的第二布局元数据参数相关联,因此布局元数据2x不再继续传播并且维持在第三流汇合点204G处以供以后在链接时间元数据解析中使用。
[0149] 注意,由于已经具有布局元数据的文件连接至第一数据流图200中的第一流汇合点204D,因此没有经由第一流汇合点204D发生布局元数据传播。
[0150] 参考图4B,在图开发者正在编辑第二数据流图201的情况下,在第二数据流图201上进行编辑时间布局元数据传播。第二数据流图201中所包括的第三组件208C具有显式定义的布局元数据,其中该布局元数据表示在第二数据流图201的执行期间运行第三组件208C的一个实例(表示为图中的1x)。第二数据流图201中所包括的第四组件208D所用的布局元数据并非是显式定义的,因此由元数据传播来定义。
[0151] 由于第二流汇合点204F与具有“向外”的元数据传播方向的第一布局元数据参数相关联,因此第三组件208C所用的1x布局元数据向第二流汇合点204F传播,其中该1x布局元数据维持在第二流汇合点204F处以供以后在链接时间元数据解析阶段使用。
[0152] 由于第四组件208D所用的布局元数据并非是显式定义的,因此预期将从与具有“向内”的元数据传播方向的第二布局元数据参数相关联的第三流汇合点204G来传播第四组件208D的布局元数据。然而,在第二数据流图201中,与第三流汇合点204G相关联的布局元数据在编辑时间是未知的,并且预期要由容器图在链接时间提供。由于该原因,向第四组件208D传播占位符布局元数据TBD2并且使占位符布局元数据TBD2暂时与第四组件208D相关联。占位符布局元数据维持在第四组件208D处,直到链接时间元数据解析对TBD2的实际值进行解析并且将该实际值关联为第四组件208D所用的布局元数据为止。
[0153] 参考图4C,紧挨在运行时间之前,第二数据流图201链接到第一数据流图200中,得到组合数据流图300并且进行链路时间元数据解析。为了进行链路时间元数据解析,对与子图接口210的各流汇合点相关联的布局元数据参数进行分析以确定与各流汇合点相关联的元数据传播的方向。针对子图接口210的具有“向内”的元数据传播方向的流汇合点,将维持在第一数据流图200中的流汇合点处的布局元数据向内传送至第二数据流图201的适当组件。类似地,针对子图接口210的具有“向外”的元数据传播方向的端口,将维持在第二数据流图201中的流汇合点处的布局元数据向外传送至第一数据流图200的适当组件。
[0154] 特别地,对与第二流汇合点204F相关联的第一布局元数据参数进行分析并且判断为第二流汇合点204F具有“向外”的元数据传播方向。然后,判断为第二流汇合点204F与第二数据流图201中的显式定义的布局元数据(即,1x)相关联并且与第一数据流图200中的占位符布局元数据TBD1相关联。链接时间元数据解析阶段使与第一数据流图200中的TBD1相关联的所有组件(即,第一组件208A)与布局元数据1x相关联。
[0155] 对与第三流汇合点204G相关联的第二布局元数据参数进行分析并且判断为第三流汇合点204G具有“向内”的元数据传播方向。然后,判断为第三流汇合点204G与第二数据流图201中的占位符布局元数据TBD2相关联并且与第一数据流图200中的显式定义的布局元数据(即,2x)相关联。链接时间元数据解析使与第二数据流图201中的TBD2相关联的所有组件(即,第四组件208D)与布局元数据2x相关联。
[0156] 作为上述的编辑时间元数据传播处理和链接时间元数据解析处理的结果,组合数据流图300中的所有组件与有效的布局元数据相关联。
[0157] 在上述的部分示例中,将元数据传播描述为用于将与给定端口、终端或组件相关联的显式定义的元数据复制到具有未定义的元数据的其它端口、终端或组件的操作。然后,使所复制的元数据与该其它端口、终端或组件相关联。
[0158] 然而,在一些示例中,代替复制元数据,元数据传播使用指示器来表示具有显式定义的元数据的端口、终端或组件与具有未定义的元数据的端口、终端或组件之间的关联。例如,具有未定义的元数据的给定端口可以具有元数据指示器,其中元数据传播将该元数据指示器分配给与另一不同的端口相关联的显式定义的元数据。在链接时间,传播不再发生。反而,对该指示器进行解析以使得该显式定义的元数据与该另一不同的端口相关联。
[0159] 6应用
[0160] 在一些示例中,给定子图接口可以与适应于该子图接口的实现子图的库相关联。然后,将该子图接口放置在容器图中的图开发者可以易于在开发期间从该库的任意实现子图中进行挑选。
[0161] 在一些示例中,上述的子图接口的使用便于代码的抽象化。例如,子图接口的给定实现可以仅存在于盘上的一个位置但可以用在许多容器图中。针对盘上的实现所进行的改变对在不要求容器图的任何修改的情况下使用该实现的所有容器图的功能产生影响。
[0162] 7替代例
[0163] 在一些示例中,对某些实现子图进行加密以使得未授权用户不能检验这些子图的内容。在这种示例中,子图接口能够链接加密的实现子图。在一些示例中,对某些容器图进行加密以使得未授权用户不能检验这些容器图的内容。
[0164] 在一些示例中,图接口的各流汇合点包括以下属性中的一个或多个:标签、数据流方向、流汇合点扇入还是扇出的指示、是否要求流汇合点的指示、元数据传播方向以及关联的布局元数据参数的名称。
[0165] 在一些示例中,子图接口的设计者可以指定用于定义子图接口的两个以上流汇合点之间的元数据关系的规则。例如,子图接口设计者可以指定输入流汇合点和输出流汇合点具有相同的元数据。
[0166] 在一些示例中,子图接口可以被实现为使得该子图接口支持多级子图实现。很通常地,多级图是使组件分割成以预定义顺序顺次执行的两个以上的“级”的图。例如,多级图可以包括三级:一级、二级和三级,其中这三级各自包括一个或多个组件。在操作时,在第一级的组件完成它们的处理之前,第二级的组件不开始处理数据。类似地,在第二级的组件完成它们的处理之前,第三级的组件不开始处理数据。
[0167] 为了容纳具有多级的动态子图,子图接口包括使得子图接口的设计者能够指定子图接口是单级还是多级的参数。在将子图接口指定为多级的情况下,设计者不需要针对该子图接口指定固定数量的级。
[0168] 针对被指定为多级的子图接口的实现的要求的示例包括以下要求。子图接口的任何实现必须使所有组件在单级 内连接至该子图接口的输入端口(或流汇合点)。此外,子图接口的任何实现必须使所有组件在单级 内连接至该子图接口的输出端口(或流汇合点),其中, 是该实现中最大的级。子图接口的实现可以具有仅处于子图实现内部的任意数量的级。
[0169] 在正在编辑包括多级子图接口的容器图的情况下,暂时假定子图实现的输出处的级等于输入处的级+1。这足以使图开发者确定下游组件将会在何时处于同一级内。然而,编辑时间级不必与运行时间级相同。
[0170] 在代替子图接口而绑定实现子图的情况下,按照如下方式来更新组合图所用的整体级信息:
[0171] 1)针对给定子图实现,设I为用于向该给定子图实现的输入流汇合点进行写入的组件的级的最大值。针对给定的输入级的值I处的所有多级子图实现,计算作为这些多级子图实现中的纯内部级的数量的最大值的M。
[0172] 2)使图中具有大于I的级的所有组件的级递增M,并且向下游传递级增量。
[0173] 3)将子图实现的输出级O设置为子图实现的输出端口的下游组件的集合的调整后的级的最小值。
[0174] 4)针对包括一个或多个多级子图实现的组合图中的各级重复该处理。
[0175] 如果子图实现中的输入级 不为0,则一定数量m(m>0)的内部级发生在子图实现的第一输入级之前。子图实现的这些“前置级(pre-phase)”是有用的,例如用于创建主输入处理中所要使用的查找文件。在这种情况下,如果 则可能需要使所有组件的整体级递增以使得该m个前置级可以在组合数据流图中以正级数来运行。这可以以级方式在级中执行,由此在起始级I(调整之前)中进行值为所有子图实现的前置级的最大值的递增,向下游传播级增量并且针对下一级进行迭代
[0176] 在一些示例中,以上的调整算法可能会引起子图实现中的组件的级编号之间的空隙(例如,如果在与该子图实现相同的输入级中存在具有内部级的其它子图实现)。例如,考虑输入级0中的两个子图实现:具有两个内部级的A和具有一个内部级的B。A和B的下一下游组件的级至少为1,这是由于A和B是多级图实现。内部级计数的最大值是2,因此A和B两者的调整后的整体输出级是3。这意味着B将包括级空隙,B的输入级将为0,B仅有的纯内部级将为1,但B的输出级将为3。这种级空隙对于数据流图的操作并非是有害的。
[0177] 在一些示例中,同一输入级I中的多个子图实现的纯内部级将彼此重叠。这可能由于资源限制而成问题并且子图实现优选具有私有的内部级空间。由于该原因,可以使得子图实现选择不与其它子图实现共享该子图实现的内部级。这可以例如使用与子图实现有关的可以被解析为布尔值的(例如,命名为private_internal_phasing的)本地参数来实现。在private_internal_phasing为真的情况下,将以上步骤1中的M的计算改变为输入级I处的子图实现在private_internal_phasing被设置为真的情况下的内部级之和,并将该和与输入级I处的剩余子图实现的内部级计数的最大值相加。
[0178] 在一些示例中,子图接口可能不具有任何流终端,但仍可以用于使得用户能够根据加载了哪个子图实现来定义资源的不同集合(例如,查找文件)以供特定容器图使用。
[0179] 在一些示例中,通过使用接口的简单文字规格而不通过使用图形用户接口来实现子图接口。
[0180] 在一些示例中,将子图接口的实现简化为使用“向导”格的图形用户接口。例如,向导风格的图形用户接口将通过提出一系列问题并且基于用户的答案自动生成子图接口来引导用户实现子图接口。在一个示例中,向导风格的图形用户接口包括多个页面,其中这些页面包括但不限于预检检查页面(即,介绍页面)、文件名称和位置页面、参数定义页面、流汇合点定义和元数据传播页面、布局元数据页面和汇总页面。
[0181] 8系统配置
[0182] 可以例如使用执行适当软件的指令的可编程计算系统来实现上述的用于管理子图和子图接口的方法,或者可以在诸如现场可编程阵列(FPGA)等的适当硬件中或者以某种混合形式来实现这些方法。例如,在编程方法中,该软件可以包括在一个或多个编程或可编程计算系统(可以具有诸如分布式、客户端/服务器或网格等的各种架构)上执行的一个或多个计算机程序中的进程,其中该一个或多个编程或可编程计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、(用于使用至少一个输入装置或端口接收输入、并且用于使用至少一个输出装置或端口提供输出的)至少一个用户界面。该软件可以包括例如提供与数据流图的设计、结构和执行相关的服务的更大程序的一个或多个模块。该程序的模块(例如,数据流图的元素)可以实现为数据结构或符合数据仓库中所存储的数据模型的其它有组织的数据。
[0183] 可以将软件设置在诸如CD-ROM或(例如,利用通用或专用计算系统或装置可读取的)其它计算机可读介质等的有形非瞬态介质上、或者经由网络的通信介质(例如,以编码在传送信号中的形式)传递至执行该软件的计算系统的有形非瞬态介质。可以在专用计算机上、或者使用诸如协处理器现场可编程门阵列(FPGA)或专用集成电路(ASIC)等的专用硬件来进行该处理的一部分或全部。可以以利用不同的计算元件来进行软件所指定的计算的不同部分的分布式方式来实现该处理。优选将这种计算机程序各自存储在通用或专用可编程计算机可访问的存储装置的计算机可读存储介质(例如,固态存储器或介质、或者磁性或光学介质)上或者下载至该计算机可读存储介质,以在利用计算机读取存储装置介质以进行这里所述的处理的情况下配置计算机并使该计算机进行工作。本发明的系统还可被视为作为配置有计算机程序的有形非瞬态介质来实现,其中如此配置成的介质使计算机以特定的预定义方式进行工作,以进行这里所述的处理步骤中的一个或多个。
[0184] 已经说明了多个实施例。然而,应当理解,上述说明意图例示而并非限制由所附权利要求书的范围所定义的本发明的范围。因此,其它实施例也在所附权利要求书的范围内。例如,可以在没有背离本发明的范围的情况下进行各种变形。另外,上述步骤中的一部分可以是顺序独立的,因而可以以与所述顺序不同的顺序来进行。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈