CN108475189A - 子图接口生成 - Google Patents
子图接口生成 Download PDFInfo
- Publication number
- CN108475189A CN108475189A CN201680075468.4A CN201680075468A CN108475189A CN 108475189 A CN108475189 A CN 108475189A CN 201680075468 A CN201680075468 A CN 201680075468A CN 108475189 A CN108475189 A CN 108475189A
- Authority
- CN
- China
- Prior art keywords
- interface
- interface element
- digraph
- port
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Logic Circuits (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Peptides Or Proteins (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
Abstract
接收包括第一有向图(400)的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件。形成所述第一多个组件所用的图接口(126),包括:形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致。形成所述图接口的包括所述第一多个组件的第一实现(124),所述形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系。
Description
技术领域
本申请要求2015年12月21日提交的美国申请序列62/270,163的优先权。
背景技术
本说明书涉及动态链接子图所用的子图接口的生成。
存在用于处理数据的许多软件应用。这些软件应用中的一些被指定为数据流图。数据流图通常包括多个数据处理组件,其中这多个数据处理组件通过链接(有时被称为“流”)而互连。
在操作中,由数据流图从数据库或者从某一其它数据存储系统接收数据(例如,数据集)。所接收到的数据通过根据组件和流的互连所定义的依赖性传播通过流并进入组件,而通过数据流图。各组件在经由一个或多个流将其接收到的数据提供作为输出数据之前,根据与该组件相关联的预定功能来处理该数据。在数据流图的输出处,处理后的数据例如存储在另一数据存储系统中、被提供至另一下游系统、或者被呈现给用户。
数据流图的开发者一般通过将表示组件的块拖动到图形开发环境(GDE)所提供的图形工作区域(或“画布”)上、并使这些组件与表示数据流的链接互连来指定图,使得数据流图实现期望功能。一旦开发者满意数据流图的实现,则他们可以将该数据流图保存至存储器以供稍后使用。一般来说,如果开发者稍后需要更改数据流图的实现,则他们使GDE从存储器中读取所保存的数据流图、对数据流图进行更改、然后将更改后的数据流图重新保存至存储器。
在一些示例中,数据流图的组件本身使用被称为“子图”的数据流图来实现。为了更改给定数据流图中所使用的组件的子图,从盘中读取数据流图,打开子图组件以使得可以编辑子图,对子图进行更改,并且将数据流图本身重新保存至存储器,从而将对子图的更改嵌入所保存的数据流图中。
发明内容
在一般方面,方法包括:接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;以及形成所述第一多个组件所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符。形成所述图接口包括:形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联;以及配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致,形成所述图接口的包括所述第一多个组件的第一实现,该形成包括:形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及将所述图接口的所述第一实现存储在数据存储系统中。
各方面可以包括以下特征中的一个或多个。
所述方法可以包括:将包括第二有向图的描述的规范存储在所述数据存储系统中,所述第二有向图包括通过一个或多个有向链接的第二集合而互连的第二多个组件,在所述第二有向图中识别通过所述第一有向图的一个或多个有向链接的第一集合而互连的所述第一多个组件的实例,以及利用图接口来替换所识别出的、所述第二有向图中的通过一个或多个有向链接的第一集合而互联的所述第一多个组件的实例。配置所述第一接口元件的一个或多个属性可以包括:确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符,并且基于所确定的一个或多个描述符来配置所述第一接口元件的一个或多个属性。
基于所确定的一个或多个描述符来配置所述第一接口元件的一个或多个属性可以包括:确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符的传播方向,并且基于所确定的传播方向来配置所述第一接口元件的一个或多个属性。
确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符的传播方向可以包括:将所述第一端口识别为将数据特征或计算特征的描述符传播至所述第一接口元件的端口,并且基于所述识别来向所述第一接口元件分配向外传播方向。确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符的传播方向可以包括:将所述第一端口识别为不将数据特征或计算特征的描述符传播至所述第一接口元件的端口,并且基于所述识别来向所述第一接口元件分配向内传播方向。在执行包含所述图接口的第一实现的容器图之前在传播数据特征或计算特征的描述符期间使用所分配的传播方向。
形成所述图接口可以包括:形成所述图接口的第二接口元件,所述第二接口元件与所述第一多个组件中的第二组件的第二端口相关联;以及确定与所述第二组件的第二端口相关联的数据特征或计算特征的一个或多个描述符的传播方向,该确定包括:将所述第二端口识别为不将数据特征或计算特征的描述符传播至所述第二接口元件的端口,并且基于所述识别来向所述第二接口元件分配向内传播方向;以及识别与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符和与所述第二组件的第二端口相关联的数据特征或计算特征的一个或多个描述符之间的关系,并且形成所识别出的、所述第一接口元件和所述第二接口元件之间的关系的表示。
所述关系的表示可以包括如下约束:该约束指示与所述第一接口元件相关联的数据特征或计算特征的一个或多个描述符和与所述第二接口元件相关联的数据特征或计算特征的一个或多个描述符相同。所述方法可以包括:修改所述第一接口元件的一个或多个属性,使得一个或多个其它组件的端口符合所述第一接口元件的一个或多个属性。修改所述第一接口元件的一个或多个属性可以包括:接收用户输入,并且基于所述用户输入来修改所述第一接口元件的一个或多个属性。修改所述第一接口元件的一个或多个属性可以包括:分析所述一个或多个其它组件以确定与所述一个或多个其它组件的端口相关联的数据特征或计算特征的一个或多个描述符,并且基于所确定的与所述一个或多个其它组件的端口相关联的数据特征或计算特征的一个或多个描述符来修改所述第一接口元件的一个或多个属性。
修改所述第一接口元件的一个或多个属性可以包括:分析所述一个或多个其它组件以确定与所述一个或多个其它组件的端口相关联的数据特征或计算特征的一个或多个描述符的传播方向,并且基于所确定的传播方向来修改所述第一接口元件的一个或多个属性。形成所述图接口可以包括:识别与所述第一多个组件相关联的参数,并且将与所述参数相关联的接口元件添加至所述图接口。所述方法可以包括:识别与所述参数相对应的参数值,并且配置所述图接口以使用所识别出的参数值作为默认值。
所述方法可以包括准备所述第二有向图以供执行,该准备包括:从所述数据存储系统读取所述图接口的所述第一实现;以及将所述第一实现插入所述第二有向图中,该插入包括:基于所述图接口的所述第一实现中的所述第一多个组件中的第一组件的第一端口和所述第一接口元件之间的第一对应关系,来在所述图接口的所述第一实现中的所述第一多个组件中的第一组件的第一端口和所述图接口的第一接口元件之间建立有向链接。所述方法可以包括准备所述第二有向图以供执行,该准备包括:从所述数据存储系统读取与所述图接口的所述第一实现不同的所述图接口的第二实现,以及将所述第二实现插入所述第二有向图中,该插入包括:基于所述图接口的所述第二实现中的组件的端口和所述第一接口元件之间的第二对应关系,来在所述图接口的所述第二实现中的组件的端口和所述图接口的第一接口元件之间建立有向链接。
所述第一接口元件可以包括用于将连接至所述第一多个组件中的第一组件的第一端口的有向链接联接至所述第一多个组件中未包括的另一组件的端口的流联结点。
在另一一般方面,软件以非暂时性形式存储在计算机可读介质上以确定图接口和所述图接口的实现。所述软件包括用于使计算系统进行以下操作的指令:接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;以及形成所述第一多个组件所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符。形成所述图接口包括:形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联;以及配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致,形成所述图接口的包括所述第一多个组件的第一实现,该形成包括:形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及将所述图接口的所述第一实现存储在数据存储系统中。
在另一一般方面,用于确定图接口和所述图接口的实现的计算系统包括:输入装置,其被配置为接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;以及至少一个处理器,其被配置为处理所述规范。所述处理包括形成所述第一多个组件所用的图接口。所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符。形成所述图接口包括:形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致;形成所述图接口的包括所述第一多个组件的第一实现,该形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及将所述图接口的所述第一实现存储在数据存储系统中。
在另一一般方面,用于确定图接口和所述图接口的实现的计算系统包括:接收部件,用于接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;以及处理部件,用于处理所述规范。所述处理包括形成所述第一多个组件所用的图接口。所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符。形成所述图接口包括:形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致;形成所述图接口的包括所述第一多个组件的第一实现,该形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及将所述图接口的所述第一实现存储在数据存储系统中。
在另一一般方面,用于确定图接口的方法包括:接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的多个组件;以及形成所述第一有向图所用的图接口。所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符。形成所述图接口包括:分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
各方面可以包括以下特征中的一个或多个。
与所述接口元件相关联的元数据描述符属性可以包括经由所述接口元件而传送的数据的数据特征、或者所述多个组件中的一个或多个组件的计算特征。所述数据特征可以包括所传送数据内的记录的字段的格式。所述计算特征可以包括所述多个组件中的一个或多个组件所表示的计算的执行的并行度。形成所述第一有向图所用的图接口可以包括:针对所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断为与所述接口元件相关联的一个或多个属性指定:所述接口元件被配置为传送参数值通过所述图接口。判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至所述第二有向图中的接口元件可以包括:基于所述多个组件中的将所述元数据描述符属性的值传播至所述接口元件的组件的识别而判断为与所述接口元件相关联的元数据描述符属性的值被传播至所述第一有向图中的接口元件。
判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至所述第二有向图中的接口元件可以包括:基于所述多个组件中没有组件将所述元数据描述符属性的值传播至所述接口元件的判断而判断为与所述接口元件相关联的元数据描述符属性的值被传播至所述第二有向图中的接口元件。形成所述第一有向图所用的图接口可以包括:判断为所述接口元件中的两个或更多个接口元件各自必须与相同属性相关联。所述方法可以包括将所述图接口的表示和所述第一有向图的表示存储在数据存储系统中。所述一个或多个接口元件中的至少一些接口元件可以包括用于将连接至所述多个组件中的组件的端口的有向链接联接至所述多个组件中未包括的另一组件的端口的流联结点。
在另一一般方面,以非暂时性形式存储在计算机可读介质上以确定图接口的软件包括用于使计算系统执行以下操作的指令:接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的第一多个组件;以及形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
在另一一般方面,用于确定图接口的计算系统包括:输入装置,其被配置为接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的第一多个组件;以及至少一个处理器,其被配置为处理所述规范,所述处理包括:形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
在另一一般方面,用于确定图接口的计算系统包括:接收部件,用于接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的第一多个组件;以及处理部件,用于处理所述规范,所述处理包括:形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
各方面可以包括以下优点中的一个或多个。
在数据流图软件开发的上下文中,需要将静态链接子图转换为动态链接子图的能力,包括子图接口和相应的实现子图。在一些示例中,这样做具有挑战性,这是因为一旦静态链接子图从其容器图中删除,就可能出现元数据传播的重大障碍。
例如,当子图接口的实现在容器图中被实例化时,元数据传播处理将实现子图视为好像其所有顶点都是本地图顶点。当元数据传播处理将元数据传播至实现子图中时,来自容器图的元数据与来自实现子图的元数据相混合,从而可能产生不期望的结果。这种缓和在布局元数据的情况下加剧了,这是因为布局算法以复杂的方式依赖于权重的全局考虑来分配布局。布局元数据例如通过指定可以执行的组件的实例数量(例如,可以执行的最大数量、以及/或者需要执行的最小数量)、以及可选的诸如将执行一个或多个实例的特定主机等的其它信息,来指定诸如并行度等的计算特征。
此外,多个不同的容器图和实现子图可以使用任何给定的子图接口,这些容器图和实现子图各自潜在地以不同方式传播通过子图接口。因此,将实现子图中固有的属性与任何一个容器或实现子图中碰巧为真的属性分离开来是有用的。
为此,这里所述的方面根据指定子图自动生成子图接口,并且可选地,用户可继而被允许收紧或放宽与自动生成的子图接口相关联的元数据约束。
在其它优点中,各方面便于创建符合多个容器图和子图实现的动态链接子图接口,从而得到更通用且可再使用的子图接口。
各方面能够自动通过多个步骤,从而可以可选地接收用户输入并且导致创建包括可再使用子图接口的动态链接子图。
根据以下描述和权利要求书,本发明的其它特征和优点将变得显而易见。
附图说明
图1是用于子图接口生成的系统的框图。
图2A是包括子图接口的数据流图。
图2B是子图接口的实现。
图2C是组合数据流图。
图3是为动态链接子图生成而指定的数据流图。
图4是用于动态链接子图生成的开发环境的框图。
图5是自动动态子图生成器的框图。
图6示出第一编辑时元数据传播处理。
图7是具有针对流联结点而确定的元数据传播方向的初始子图接口。
图8是第二编辑时元数据传播处理。
图9是包括元数据规则的初始子图接口。
图10示出包括子图接口参数的初始子图接口。
图11是完整的初始子图接口。
图12是子图接口改善向导的流联结点配置画面。
图13是子图接口改善向导的传播规则配置画面。
图14是子图接口配置向导的布局配置画面。
图15是子图接口配置向导的参数配置画面。
图16是最终子图接口。
具体实施方式
图1示出可以使用子图接口生成技术的数据处理系统100的示例。系统100包括可以包括诸如存储装置或者到在线数据流的连接等的一个或多个数据源的数据源102,其中,该一个或多个数据源中的每一个可以以多种格式中的任一种(例如,数据库表、电子表格文件、纯文本文件、或者主机所使用的本机格式)来存储或提供数据。执行环境104包括预处理模块106和执行模块112。执行环境104例如可以在诸如某版本的UNIX操作系统等的适当的操作系统的控制下安装在一个或多个通用计算机上。例如,执行环境104可以包括多节点并行计算环境,该多节点并行计算环境包括使用多个中央处理单元(CPU)或处理器核心的计算机系统的配置,其中,该多个中央处理单元(CPU)或处理器核心是本地的(例如,诸如对称多处理(SMP)计算机)、或本地分布的(例如,连接作为集群或大规模并行处理(MPP)系统的多个处理器)、或远程的、或远程分布的(例如,经由局域网(LAN)和/或广域网(WAN)而连接的多个处理器)、或其任意组合。
预处理模块106从数据存储系统116读取一个或多个数据流图114,并准备这些数据流图以供执行模块112执行。在一些情况下,该准备处理的一部分包括动态地链接符合数据流图114内的任何子图接口的任何实现子图。这种动态链接通常包括元数据传播。使用这里所述的技术自动生成的任何子图接口将包括诸如流联结点或参数等的元件(称为“接口元件”),其中这些元素的属性已被配置成便于这种元数据传播,如以下更详细所述。然后预处理模块106将“符合”容器数据流图内的子图接口(即,与该子图接口一致)的特定的动态链接实现子图在由执行模块112执行之前加载到该容器数据流图中。例如,符合的实现子图应该具有与子图接口上的流联结点一致的端口,并且应该具有与同子图接口相关联的参数一致的参数值。
执行环境104可以从能够体现数据源102的各种类型的系统(包括不同形式的数据库系统)接收数据。数据可被组织为具有各个字段(也称为“属性”或“列”)的值(包括可能为空的值)的记录。当首先从数据源读取数据时,执行模块112通常以与该数据源中的记录有关的一些初始格式信息开始。在某些情况下,数据源的记录结构最初可能是未知的,并且作为替代,可以是在数据源或数据的分析之后确定的。与记录有关的初始信息可以例如包括表示不同值的位数、记录内的字段的顺序、以及由位表示的值的类型(例如,字符串、有符号/无符号整数)。
提供数据源102的存储装置可以在执行环境104本地(例如,存储在连接至托管执行环境104的计算机的存储介质(例如,硬盘驱动器108)上),或者可以在执行环境104远处(例如,托管在通过(例如,云计算基础架构所提供的)远程连接与托管执行环境104的计算机进行通信的远程系统(例如,主机110)上)。
执行模块112处理预处理模块106所准备的数据以生成输出数据。输出数据可以存储回数据源102中或者执行环境104可访问的数据存储系统116中,或者以其它方式使用。
数据存储系统116还可被开发环境118访问。开发者120可以使用开发环境118来将应用开发为包括顶点(表示数据处理组件或数据集)的数据流图,其中这些顶点通过顶点之间的有向链接(表示工作元素、即数据的流动)来连接。例如,在通过引用而并入于此的标题为“Managing Parameters for Graph-Based Applications”的美国公开号2007/0011668中更详细地描述了这样的环境。在通过引用而并入于此的标题为“EXECUTINGCOMPUTATIONS EXPRESSED AS GRAPHS”的美国专利5,966,072中描述了用于执行这样的基于图的计算的系统。根据本系统制作的数据流图提供了用于将信息输入至图组件所表示的各个处理中并从中输出信息、用于使信息在处理之间移动以及用于定义处理的运行顺序的方法。该系统包括从任何可用方法中选择处理间通信方法(例如,根据图链接的通信路径可以使用TCP/IP或UNIX域套接字或者使用共享内存来在处理间传递数据)的算法。
在一些示例中,开发环境118包括用于根据传统子图生成动态子图的动态子图生成器121,如以下更详细所述。
1动态链接子图
将开发环境118中可以开发的一种特定类型的数据流图称为“动态链接子图”。一般来说,动态链接子图包括两个单独但相关的组件:子图接口、以及符合该子图接口的实现子图。子图接口包括一个或多个“流联结点”,其中这些流联结点定义与子图接口相关联的容器图和子图中的流之间的连接点。各流联结点表示去往或来自第一数据流图的组件上的端口的数据流与去往或来自第二数据流图的组件上的端口的数据流之间的连接(或联结点)。
在开发数据流图时,开发者可以使用子图接口作为用于数据流图中的实现子图的占位符。在一些示例中,将包括子图接口的数据流图称为“容器数据流图”或简称为“容器图”。
参考图2A,容器数据流图200的一个示例包括相对于多个组件208A~208B和子图接口210提供或接收数据的多个数据集202A~202C,其中多个组件208A~208B和子图接口210都具有通过流206A~206E而互连的端口204A~204J。在容器数据流图200中,不存在静态地链接至数据流图中以代替子图接口210的组件。相反,子图接口210用作数据流图200中的占位符,其中数据流图200稍后将被符合子图接口210的实现子图替换。
参考图2B,与图2A的子图接口210相对应的实现子图201的一个示例包括通过流206F~206I而互连的多个组件208C~208D以及端口204D、204F、204G和204K~204O。由于实现子图201是图2A的子图接口210的实现,因此实现子图具有与子图接口210上的输入端口相对应的输入流206G、206F、以及与子图接口210上的输出端口相对应的输出流。
在开发容器数据流图200之后的某一时间(例如,恰好在运行容器数据流图200之前),准备该数据流图以供执行。准备数据流图以供执行的一个步骤包括将实现子图201链接至容器数据流图200中,从而通过利用实现子图201来替换容器数据流图200中的子图接口210来形成组合数据流图。
例如,参考图2C,组合数据流图300包括具有代替子图接口210而链接的图2B中的实现数据流图201的图2A中的容器数据流图200。由于实现数据流图201符合子图接口210,因此实现数据流图201的所有输入和输出端口都经由流而连接至容器数据流图200的组件。在通过将实现子图201链接到容器数据流图200中来实现组合数据流图300之后,可以编译并执行该组合数据流图300。
动态链接子图的以上说明旨在用作主题的引子而非主题的详尽说明。可以在通过引用而并入于此的标题为“MANAGING INTERFACES FOR SUB-GRAPHS”的美国专利申请14/561,494中找到动态链接子图的更详细说明。
2动态链接子图生成
在一些示例中,诸如在标题为“MANAGING INTERFACES FOR SUB-GRAPHS”的美国专利申请14/561,494中所描述的,子图接口是用户指定的,并且用户写入符合子图接口的实现子图。在其它示例中,需要根据现有的传统(即,静态链接的)子图生成子图接口和实现子图。
例如,参考图3,为了发起根据传统子图生成动态链接子图,首先使用开发环境118(例如,通过用户从盘中选择表示传统子图400的文件)来指定传统子图400。
2.1指定子图概要
在该示例中,指定子图400的框图被配置为使用多个组件302A~302C处理从第一输入端口304A和第二输入端口304B接收到的数据、并将处理后的数据写入第一输出端口304C、第二输出端口304D和第三输出端口304E。子图400包括第一组件302A、第二组件302B、第三组件302C、和第四组件302D。这些组件各自具有用于接收输入数据的输入端口和用于提供输出数据的输出端口之一或两者(例如,端口304F~304N)。一般来说,各组件对流入其输入端口的输入数据应用一个或多个计算,并经由其输出端口将计算的结果提供作为输出。注意,某些类型的组件(例如,第三组件302C)可以包括仅输入端口或仅输出端口。
子图400的输入端口和输出端口通过流306A~306G而互连,其中流306A~306G定义数据如何在子图400的端口和组件之间传播。具体地,子图400的边界上所包括的第一输入端口304A通过第一流306A而连接至第一组件302A上所包括的第三输入端口304F。子图400的边界上所包括的第二输入端口304B通过第二流306B而连接至第二组件302B上所包括的第四输入端口304G。第一组件302A上所包括的第四输出端口304H通过第三流306C而连接至第四组件302D上所包括的第五输入端口304J。第二组件302B上所包括的第五输出端口304I通过第四流306D而连接至第四组件302D上所包括的第六输入端口304K。
第三组件302C上所包括的第六输出端口304N通过第五流306E而连接至子图400的边界上的第三输出端口304E。第四组件302D上所包括的第七输出端口304L通过第六流306F而连接至子图400的边界上的第一输出端口304C。第四组件302D上所包括的第八输出端口304M通过第七流306G而连接至子图400的边界上的第二输出端口304D。第三组件302C可由参数P1进行配置。
2.2动态子图生成器
参考图4,为了根据指定子图400生成动态链接子图,首先将指定子图400读取到开发环境118的动态子图生成器121中。在一些示例中,子图生成器121包括自动动态子图生成器122和子图接口改善模块128。一般来说,自动动态子图生成器122自动生成初始子图接口126、并且可选地生成针对指定子图400的实现子图124,并且子图接口改善模块128进行自动化改善处理,可选地被配置为接收用户输入以修改初始子图接口126从而生成最终子图接口130。在一些示例中,最终子图接口130具有比初始子图接口126限制更多或更少的属性,因为接口130上的某些端口可被指定为可选的,或者与接口130上的某些端口相关联的元数据约束可被放宽以使得最终子图接口130可以容纳更大数量的实现子图。最终子图接口130可选地存储在数据存储系统116中以供稍后使用。
在一些示例中,对于针对子图接口126所进行的修改中的至少一些修改,子图接口改善模块128还对实现子图124进行相应的修改。在一些示例中,不生成实现子图124,并且单独使用子图接口130以供一个或多个实现子图的潜在未来开发。
2.2.1自动动态子图生成器
参考图5,自动动态子图生成器122接收指定子图400,并将指定子图400提供至实现子图形成模块132和元数据传播方向识别模块134。
2.2.1.1实现子图形成
实现子图形成模块132处理指定子图400以生成实现子图124,其中该实现子图124作为输出而被传递出动态子图生成器122。在一些示例中,通过首先制作指定子图400的副本来形成实现子图124。然而,如上所述,对于针对子图接口126所进行的至少一些修改,子图接口改善模块128还对指定子图400的副本进行相应的修改以形成实现子图124。例如,被标记为在子图接口126上“向内”传播的流联结点也可被标记为在实现子图124上“向内”传播。此外,可能需要对实现子图124的内部结构的某些编辑以支持指定传播方向。
2.2.1.2元数据传播方向识别
元数据传播方向识别模块134通过识别与指定子图的边界上的端口相对应的流联结点来形成初始子图接口,并且针对所识别出的流联结点确定元数据传播的方向。
在说明元数据传播方向识别模块134的操作之前,呈现关于元数据传播的简要引子。在数据流图中,管理与数据流图中的组件的端口相关联的元数据以及/或者与组件本身相关联的元数据是很重要的。在一些示例中,元数据包括数据的描述符(例如,包括一系列字段的端口记录格式以及流入端口或从端口流出的记录的数据类型)或计算特征(例如,组件的分区或布局)。在其它示例中,元数据可以包括组件可使用的存储器的量,组件可使用哪些计算资源、排序、压缩方法、字符集、二进制表示(例如,大端、小端)、或数据变换。
元数据管理可以手动地、自动地、或者通过使用手动元数据管理和自动元数据管理的组合来完成。对于手动元数据管理,元数据例如由图开发者或图用户提供。对于自动元数据管理,元数据从图的具有已知(即,明确定义的)元数据的部分传播至图的具有未知元数据的部分。在图用户或开发者未直接提供针对给定端口或组件的元数据的情况下,元数据传播是必需的。在这种情况下,必须从图中的其它端口或组件获得针对给定端口或组件的元数据。这里所使用的术语“元数据传播”是指这种获得处理。
在包括传统组件和数据集的传统数据流图中,明确定义的元数据通过数据流图的这种传播导致元数据与数据流图中的所有组件相关联。元数据传播中出现的任何冲突一般被标记为开发者干预。然而,包括子图接口的数据流图的元数据传播一般以不同于仅包括传统组件的数据流图的元数据传播的方式进行处理。特别地,元数据可以分两阶段传播:编辑时元数据传播阶段和链接时元数据解析阶段。
由于容器图(即,包括作为组件的子图接口的图)和代替子图接口而将被链接的实现子图(即,符合子图接口的子图)不知道彼此的元数据信息,因此使用这种两阶段方法。在不访问该信息的情况下,传统元数据传播无法知道元数据是应该沿“向内”方向传播进入实现子图(即,容器图用作实现子图的元数据源)还是沿“向外”方向从实现子图传播(即,容器图用作实现子图的元数据宿)。
因此,为了可以在包括子图接口的数据流图中进行元数据传播,子图接口的各流联结点指定元数据传播的方向。在一些示例中,元数据传播的可能方向的集合包括“向内”传播和“向外”传播。
在子图接口上的流联结点被声明为具有“向内”的元数据传播方向的情况下,容器图中的元数据传播经由连接至流联结点(并最终连接至与实现子图中的流相连的端口)的流来提供元数据定义。也就是说,在容器图中,编辑时元数据传播将流联结点视为元数据宿。
在子图接口上的流联结点被声明为具有“向外”的元数据传播方向的情况下,实现子图中的元数据传播将流联结点的元数据定义提供至容器图。也就是说,在容器图中,编辑时元数据传播将流联结点视为元数据源,尽管不存在元数据的编辑时定义(这是因为定义仅根据链接时的实现子图可用)。
元数据传播方向识别模块134识别指定子图400中的元数据的已知源(例如,端口),并且进行源自所识别的源的元数据传播处理,以确定针对指定子图400的边界上的端口的元数据传播方向以及初始子图接口126上的相应流联结点。
参考图6,在操作中,元数据传播方向识别模块134生成初始子图接口126,其中该初始子图接口126包括与指定子图400的第一输入端口304A相对应的第一流联结点i0 644、与指定子图400的第二输入端口304B相对应的第二流联结点i1 646、与指定子图400的第一输出端口304C相对应的第三流联结点o0 648、与指定子图400的第二输出端口304D相对应的第四流联结点o1 650、以及与指定子图400的第三输出端口304E相对应的第五流联结点o2。
然后元数据传播方向识别模块134(例如,通过分析端口的特征来)识别作为已知元数据源的指定子图400的第一组件302A上所包括的第四输出端口304H、以及指定子图400的第三组件302C上所包括的第六输出端口304N。在图6中,与第四输出端口304H和第六输出端口304N相关联的元数据被分别标示为M1和M2。注意,然而,符号M1和M2不旨在表明任意特定元数据值与已知元数据源相关联。实际上,在一些示例中,与已知元数据源相关联的特定元数据值是未知的,并且M1和M2仅仅是可用于传播的占位符元数据值。当然,在执行容器图时,占位符元数据值是已知的。在其它示例中,M1和M2可以是指与已知元数据源相关联的特定元数据值。
在识别出已知元数据源的情况下,元数据传播方向识别模块134对两个已知元数据源进行编辑时元数据传播处理。
这样,元数据传播方向识别模块134将来自第四输出端口304H的M1沿上游方向(即,沿朝向第一流联结点i0 644的方向)和下游方向(即,沿朝向第三流联结点o0 648和第四流联结点o1 650的方向)进行传播。
在上游方向上,编辑时元数据传播处理判断为第一组件302A不对元数据应用任何变换,因此将元数据M1传播通过组件302A并使其与第一组件302A上的第三输入端口304F相关联。在一些示例中,这种关联由从元数据被传播至的端口开始指示并且结束于元数据所源自的端口的箭头(有时被称为“等同”箭头)(例如,从第三输入端口304F指向第四输出端口304H的箭头)来表示。然后将M1从第三输入端口304F传播至指定子图400的边界上的第一输入端口304A(从而得到从第一输入端口304A指向第四输出端口304H的“等同”箭头),并传播至与第一输入端口304A相关联的第一流联结点i0 644。第一流联结点i0 644被分配“向外”的元数据传播方向,这是因为元数据(即,M1)从已知元数据源传播至流联结点644。
在下游方向上,编辑时元数据传播处理将M1从第一组件302A上的第四输出端口304H传播至第四组件302D上的第五输入端口304J(从而得到从第五输入端口304J指向第四输出端口304H的“等同”箭头)。编辑时元数据传播处理判断为第四组件302D对元数据应用变换,因此不沿下游方向进一步地传播M1。
编辑时元数据传播处理还将M2从第三组件302C上的第六输出端口304N传播至指定子图400的边界上的第三输出端口304E,并传播至与第三输出端口304E相关联的第五流联结点o2 652(从而得到从第三输出端口304E指向第六输出端口304N的“等同”箭头)。第五流联结点o2 652被分配“向外”的元数据传播方向,这是因为元数据(即,M2)从已知元数据源传播至流联结点652。
在编辑时元数据传播处理结束时,不被标记为具有“向外”的元数据传播方向的任何流联结点被标记为具有“向内”的元数据传播方向。参考图7,在本示例中,只有第一流联结点i0 644和第五流联结点o2 652被元数据传播方向识别模块134标记为具有“向外”的元数据传播方向,因此第二流联结点i1646、第三流联结点o0 648和第四流联结点o1 650被元数据传播方向识别模块134标记为具有“向内”的元数据传播方向。在一些示例中,元数据传播方向识别模块134所进行的传播的表示与实现子图124存储在一起。
2.2.1.3元数据规则识别
在确定了针对初始子图接口126上的所有流联结点的元数据传播方向的情况下,初始子图接口126和指定子图400被提供至元数据规则识别模块136,其中该元数据规则识别模块136分析指定子图400以确定包含在初始子图接口126中的元数据规则。
为此,元数据规则识别模块136向具有“向内”的元数据传播方向的各流联结点分配占位符值,并且进行另一编辑时元数据传播处理以发现指定子图400的边界上的端口之间存在的关系。元数据规则识别模块136使用所发现的任何关系来向初始子图接口126的流联结点分配元数据规则。例如,参考图8,占位符元数据D1被分配至第二流联结点i1 646,占位符元数据D2被分配至第三流联结点o0 648,占位符元数据D3被分配至第四流联结点o1650。
元数据规则识别模块136将D1从指定子图400的边界上的第二输入端口304B传播至第二组件302B上的第四输入端口304G(从而得到从第四输入端口304G指向第二输入端口304B的“等同”箭头)。编辑时元数据传播处理判断为第二组件302B不对元数据应用任何变换,因此将D1传播通过第二组件302B至第五输出端口304I(从而得到从第五输出端口304I指向第二输入端口304B的“等同”箭头)。
元数据规则识别模块136还将D2从第一输出端口304C传播至第七输出端口304L(从而得到从第一输出端口304C指向第七输出端口304L的“等同”箭头)。编辑时元数据传播处理判断为第四组件302D对元数据应用变换,因此不进一步地传播D2。
元数据规则识别模块136将D3从第二输出端口304D传播至第八输出端口304M(从而得到从第八输出端口304M指向第二输出端口304D的“等同”箭头)。编辑时元数据传播处理判断为第四组件302D不对元数据D3应用任何变换,因此将D3传播通过第四组件302D至第六输入端口304K(从而得到从第六输入端口304K指向第二输出端口304D的“等同”箭头)。
在从所有端口传播的元数据被标记为具有“向内”的传播方向的情况下,元数据规则识别模块136基于D1和D3的传播而判断为与第二输入端口304B相关联的任何元数据必须等于与第二输出端口304D相关联的元数据。参考图9,元数据规则识别模块136包括针对初始子图接口126的“副本”元数据规则754,以表示第二流联结点i1 646和第四流联结点o1650之间的平等元数据关系。
2.2.1.4参数识别
再次参考图5,在识别出元数据规则的情况下,初始子图接口126和指定子图400都被提供至参数识别模块138,其中该参数识别模块138识别指定子图400中的、编辑时元数据传播处理不可到达但可使用与指定子图相关联的参数进行配置的任何端口或组件,其中所述参数在该指定子图400中不具有默认值。参数识别模块138针对其所识别的任何参数,向初始子图接口126添加子图接口参数。
参考图10,参数识别模块138判断为第三组件302C可以使用在指定子图400中不具有默认值的参数P1进行配置。参数识别模块138因此向初始子图接口126添加子图接口参数P1 1058。
参考图11,参数识别模块138的结果是完整的初始子图接口126。完整的初始子图接口126从自动动态子图生成器122传递出。
注意,在一些示例中,以上述的典型顺序以外的顺序进行自动动态子图生成器122的各个步骤。
2.2.2子图接口改善
再次参考图4,自动子图生成器122所输出的初始子图接口126被提供至子图接口改善模块128,其中该子图接口改善模块128允许用户(或自动化改善处理)修改初始子图接口128以生成最终子图接口130。
在一些示例中,子图接口改善模块128被实现为包括便于用户改善初始子图接口126的多个画面的“向导”。
参考图12,向导1260的第一画面1262包括用于配置由自动子图生成器122自动发现的初始子图接口126的流联结点的表1264。该表包括包含所发现的流联结点的名称的列表的第一列1265、包含用于指示最终子图接口103上是否“需要”各流联结点的复选框1268的第二列1266、以及包含用于指示各流联结点是否“可以扇动(fan)”的复选框1272的第三列1270。
在第二列1266中选中与给定流联结点相对应的复选框指示该给定流联结点是最终图接口130上“所需”的流联结点。取消与给定流联结点相对应的复选框的选中指示该给定流联结点在最终图接口130上是不需要的或者“可选的”。一般来说,在容器图可被编译并执行之前,子图接口上“所需”的流联结点必须连接至该容器图中的流。子图接口上“可选的”流联结点可以连接或者可以不连接至容器图中的流,并且与可选流联结点是否连接至容器图中的流无关地,容器图将进行编译和执行。
在第三列1270中选中与给定流联结点相对应的复选框指示给定流联结点被允许在该流联结点与实现子图中的输入端口相关联的情况下的“扇入”或者在该流联结点与实现子图中的输出端口相关联的情况下的“扇出”。在第三列1270中取消与给定流联结点相对应的复选框的选中指示该给定流联结点不被允许“扇入”或“扇出”。
在图12的示例中,用户已经通过指示第一流联结点i0 644是所需的并且可以扇入、指示第二流联结点i1 646是所需的并且可以扇入、指示第三流联结点o0 648是所需的并且不可以扇出、指示第四流联结点o1 650是所需的并且不可以扇出、以及指示第五流联结点o2 652是可选的并且不可以扇出,来配置这些流联结点。
在用户满意流联结点的配置的情况下,他们点击向导1260中的“确认”按钮1274,从而使向导1260进入向导1260的传播规则配置画面。
参考图13,传播规则配置画面1375包括两个表:包含初始子图接口126上的具有向内元数据传播方向的所有流联结点的第一表1376,以及包含初始子图接口126上的具有向外元数据传播方向的所有流联结点的第二表1378。在第一表1376中,将具有相同元数据所需的流联结点(即,作为“副本”元数据传播规则的一部分的流联结点)分组在一起。
例如,在图13中,第一表1376包括两个组:包含第三流联结点o0 648的第一组1380,以及包含第二流联结点i1 646和第四流联结点o1 650的第二组1382。由于第三流联结点o0 648不是“副本”元数据传播规则的一部分,因此它是第一组1380中的唯一流联结点。由于第二流联结点i1 646和第四流联结点o1 650是“副本”元数据传播规则的一部分(如以上示例中所述),因此这两个流联结点处于相同的组(即,第二组1382)中。
第二表1378包括两个组:包含第一流联结点i0 644的第三组1382,以及包含第五流联结点o2 652的第四组。
向导的用户可以使用传播规则配置画面1375以例如通过对组进行合并以形成“副本”元数据传播规则、或者通过对组进行分割以移除“副本”元数据传播规则来配置元数据传播规则。例如,如果用户不希望第二组1382所指定的“副本”元数据传播规则包括在最终子图接口130上,则他们将把第二组1382分割成两个不同的组,一个包括第二流联结点i1646并且另一个包括第四流联结点o1 650。
在用户满意子图接口所用的传播规则的配置的情况下,他们点击向导1260中的“确认”按钮1374,从而使向导1260进入向导1260的布局配置画面。
参考图14,布局配置画面1488包括具有两个选项的单选按钮。第一选项1490指示最终子图接口130的所有流联结点应该使用相同的布局元数据,如布局参数1492所指定。第二选项1494使得用户能够使用表1496来指定最终图接口的流联结点的定制布局属性。表1496使得用户能够指定与各流联结点相关联的布局元数据的传播方向、并对具有相同布局元数据的流联结点进行分组。
在图14中,用户选择了第一选项1490,该第一选项1490指示所有流联结点都具有相同的布局元数据,如名为“布局”的布局参数所指定。
在用户满意子图接口130所用的布局的配置的情况下,他们点击向导1260中的“确认”按钮1474,从而使向导1260进入向导1260的参数配置画面。
参考图15,向导1260的参数配置画面1549包括用于选择与初始子图接口126相关联的哪些子图接口参数包括在最终子图接口130上的表1597。表1597包括:包含与初始子图接口126上的子图接口参数相关联的参数名称的列表的第一列1598、以及包含用于指示针对第一列1598中所列出的各参数的子图接口参数是否包括在最终子图接口上的复选框1568的第二列1599。
在图15的示例中,第一列1598中仅包括一个参数P1,并且选中与P1相关联的复选框1568,从而指示针对P1的子图接口参数包括在最终子图接口130上。
在用户满意子图接口130所用的子图接口参数的配置的情况下,他们点击向导1260中的“确认”按钮1574,从而使向导1260完成并输出最终子图接口130。
参考图16,最终子图接口130包括所需且具有向外元数据传播方向的第一流联结点i0 644、所需且具有向内元数据传播方向的第二流联结点i1 646、所需且具有向内元数据传播方向的第三流联结点o0 648、所需且具有向内元数据传播方向的第四流联结点o1 650、以及可选且具有向外元数据传播方向的第五流联结点o2 652。最终子图接口130还包括子图接口参数1058P1、以及第二流联结点i1 646和第四流联结点o1 650之间的“副本”元数据规则754。
最终子图接口130能够以与图2A~图2C的子图接口210被使用的方式相同的方式用于容器图中。此外,根据用户对子图接口130进行的改善,预处理模块106可以能够动态地链接并加载包括自动生成的实现子图124的多个不同实现子图,只要这些实现子图符合子图接口130即可。
3可选例
在一些示例中,用户可以在预先存在的数据流图中选择一组组件来生成动态链接子图,而非在盘上指定子图。在完成动态链接子图生成之后,利用数据流图中所生成的动态链接子图的子图接口来替换所选的一组组件。
4实现
上述的子图接口生成方法可以例如使用执行适当软件指令的可编程计算系统来实现,或者可以在诸如现场可编程门阵列(FPGA)等的适当硬件中实现、或者以某种混合形式实现。例如,在编程的方法中,该软件可以包括在一个或多个编程或可编程计算系统(可以具有诸如分布式、客户端/服务器或网格式等的各种架构)上执行的一个或多个计算机程序中的过程,其中该一个或多个编程或可编程计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、至少一个用户接口(用于使用至少一个输入装置或端口来接收输入,并且用于使用至少一个输出装置或端口来提供输出)。该软件可以包括例如提供与数据流图的设计、配置和执行有关的服务的较大程序的一个或多个模块。可以将程序的模块(例如,数据流图的元素)实现为数据结构或符合数据存储库中所存储的数据模型的其它有组织数据。
软件能够在一段时间(例如,诸如动态RAM等的动态存储器装置的刷新周期之间的时间)内以非暂时性形式(诸如包含在易失性或非易失性存储介质或任何其它非暂时性介质中)、使用介质的物理性质(例如,表面凹区和凸区、磁畴或电荷)存储。在为加载指令所作的准备中,软件可以设置在诸如(利用通用或专用计算机系统或装置可读取的)CD-ROM或其它计算机可读介质等的有形、非暂时性介质上,或者可以经由网络的通信介质(例如,以编码在传播信号中的形式)传递至执行该软件的计算系统的有形、非暂时性介质。可以在专用计算机上、或者使用诸如协处理器或现场可编程门阵列(FPGA)或专用特定用途集成电路(ASIC)等的专用硬件来进行一些处理或所有处理。可以以利用不同的计算元件来进行软件所指定的计算的不同部分的分布式方式来实现该处理。优选将每一个这种计算机程序存储在通用或专用可编程计算机可读取的存储装置的计算机可读存储介质(例如,固态存储器或介质、或者磁性或光学介质)上或者下载至该存储介质,以在利用计算机读取存储装置介质以进行这里所述的处理的情况下配置计算机并使该计算机进行工作。本发明的系统还可被视为作为配置有计算机程序的有形、非暂时性介质来实现,其中如此配置成的介质使计算机以特定的预定义方式进行工作,以进行这里所述的处理步骤中的一个或多个。
已经描述了本发明的许多实施例。然而,应当理解,前述描述旨在示出而不是限制本发明的范围,该范围由以下权利要求书的范围限定。因此,其它实施例也在所附权利要求书的范围内。例如,可以在不偏离本发明的范围的情况下作出各种修改。另外,上述步骤中的一些可以是与顺序无关的,因此可以按照与所描述的顺序不同的顺序执行。
Claims (33)
1.一种用于确定图接口和所述图接口的实现的方法,所述方法包括:
接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;
形成所述第一多个组件所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及
配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致;
形成所述图接口的包括所述第一多个组件的第一实现,该形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及
将所述图接口的所述第一实现存储在数据存储系统中。
2.根据权利要求1所述的方法,其中,还包括:
将包括第二有向图的描述的规范存储在所述数据存储系统中,所述第二有向图包括通过一个或多个有向链接的第二集合而互连的第二多个组件;
在所述第二有向图中识别通过所述第一有向图的一个或多个有向链接的第一集合而互连的所述第一多个组件的实例;以及
利用所述图接口来替换所识别出的、所述第二有向图中的通过一个或多个有向链接的第一集合而互联的所述第一多个组件的实例。
3.根据前述权利要求中任一项所述的方法,其中,配置所述第一接口元件的一个或多个属性包括:确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符,并且基于所确定的一个或多个描述符来配置所述第一接口元件的一个或多个属性。
4.根据前述权利要求中任一项所述的方法,其中,基于所确定的一个或多个描述符来配置所述第一接口元件的一个或多个属性包括:确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符的传播方向,并且基于所确定的传播方向来配置所述第一接口元件的一个或多个属性。
5.根据权利要求4所述的方法,其中,确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符的传播方向包括:将所述第一端口识别为将数据特征或计算特征的描述符传播至所述第一接口元件的端口,并且基于所述识别来向所述第一接口元件分配向外传播方向,其中在执行所述容器图之前在传播数据特征或计算特征的描述符期间使用所分配的传播方向。
6.根据权利要求4所述的方法,其中,确定与所述第一组件的第一端口相关联的数据特征或计算特征的一个或多个描述符的传播方向包括:将所述第一端口识别为不将数据特征或计算特征的描述符传播至所述第一接口元件的端口,并且基于所述识别来向所述第一接口元件分配向内传播方向,其中在执行所述容器图之前在传播数据特征或计算特征的描述符期间使用所分配的传播方向。
7.根据权利要求6所述的方法,其中,形成所述图接口包括:
形成所述图接口的第二接口元件,所述第二接口元件与所述第一多个组件中的第二组件的第二端口相关联;
确定与所述第二组件的第二端口相关联的数据特征或计算特征的一个或多个描述符的传播方向,该确定包括:将所述第二端口识别为不将数据特征或计算特征的描述符传播至所述第二接口元件的端口,并且基于所述识别来向所述第二接口元件分配向内传播方向;以及
识别关联于所述第一组件的第一端口的数据特征或计算特征的一个或多个描述符与关联于所述第二组件的第二端口的数据特征或计算特征的一个或多个描述符之间的关系,并且形成所识别出的、所述第一接口元件和所述第二接口元件之间的关系的表示。
8.根据权利要求7所述的方法,其中,所述关系的表示包括如下约束,该约束指示与所述第一接口元件相关联的数据特征或计算特征的一个或多个描述符和与所述第二接口元件相关联的数据特征或计算特征的一个或多个描述符相同。
9.根据前述权利要求中任一项所述的方法,其中,还包括:修改所述第一接口元件的一个或多个属性,使得一个或多个其它组件的端口符合所述第一接口元件的一个或多个属性。
10.根据权利要求9所述的方法,其中,修改所述第一接口元件的一个或多个属性包括:接收用户输入,并且基于所述用户输入来修改所述第一接口元件的一个或多个属性。
11.根据权利要求9或10所述的方法,其中,修改所述第一接口元件的一个或多个属性包括:分析所述一个或多个其它组件以确定与所述一个或多个其它组件的端口相关联的数据特征或计算特征的一个或多个描述符,并且基于所确定的与所述一个或多个其它组件的端口相关联的数据特征或计算特征的一个或多个描述符来修改所述第一接口元件的一个或多个属性。
12.根据权利要求9或10或11所述的方法,其中,修改所述第一接口元件的一个或多个属性包括:分析所述一个或多个其它组件以确定与所述一个或多个其它组件的端口相关联的数据特征或计算特征的一个或多个描述符的传播方向,并且基于所确定的传播方向来修改所述第一接口元件的一个或多个属性。
13.根据前述权利要求中任一项所述的方法,其中,形成所述图接口还包括:识别与所述第一多个组件相关联的参数,并且将与所述参数相关联的接口元件添加至所述图接口。
14.根据权利要求13所述的方法,其中,还包括:识别与所述参数相对应的参数值,并且配置所述图接口以使用所识别出的参数值作为默认值。
15.根据前述权利要求中任一项所述的方法,其中,在引用权利要求2的情况下,所述方法还包括准备所述第二有向图以供执行,该准备包括:
从所述数据存储系统读取所述图接口的所述第一实现,以及
将所述第一实现插入所述第二有向图中,该插入包括:基于所述图接口的所述第一实现中的所述第一多个组件中的第一组件的第一端口和所述第一接口元件之间的第一对应关系,来在所述图接口的所述第一实现中的所述第一多个组件中的第一组件的第一端口和所述图接口的第一接口元件之间建立有向链接。
16.根据前述权利要求中任一项所述的方法,其中,在引用权利要求2的情况下,所述方法还包括准备所述第二有向图以供执行,该准备包括:
从所述数据存储系统读取与所述图接口的所述第一实现不同的所述图接口的第二实现,以及
将所述第二实现插入所述第二有向图中,该插入包括:基于所述图接口的所述第二实现中的组件的端口和所述第一接口元件之间的第二对应关系,来在所述图接口的所述第二实现中的所述组件的端口和所述图接口的第一接口元件之间建立有向链接。
17.根据前述权利要求中任一项所述的方法,其中,所述第一接口元件包括用于将连接至所述第一多个组件中的第一组件的第一端口的有向链接联接至所述第一多个组件中未包括的另一组件的端口的流联结点。
18.一种软件,其以非暂时性形式存储在计算机可读介质上以确定图接口和所述图接口的实现,所述软件包括用于使计算系统执行以下操作的指令:
接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;
形成所述第一多个组件所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及
配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致;
形成所述图接口的包括所述第一多个组件的第一实现,该形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及
将所述图接口的所述第一实现存储在数据存储系统中。
19.一种用于确定图接口和所述图接口的实现的计算系统,所述计算系统包括:
输入装置,其被配置为接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;
至少一个处理器,其被配置为处理所述规范,所述处理包括:
形成所述第一多个组件所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及
配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致;
形成所述图接口的包括所述第一多个组件的第一实现,该形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及
将所述图接口的所述第一实现存储在数据存储系统中。
20.一种用于确定图接口和所述图接口的实现的计算系统,所述计算系统包括:
接收部件,用于接收包括第一有向图的描述的规范,所述第一有向图包括通过一个或多个有向链接的第一集合而互连的第一多个组件;以及
处理部件,用于处理所述规范,所述处理包括:
形成所述第一多个组件所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
形成所述图接口的第一接口元件,所述第一接口元件与所述第一多个组件中的第一组件的第一端口相关联,以及
配置所述第一接口元件的一个或多个属性,使得所述第一组件的第一端口与所述第一接口元件的一个或多个属性相一致;
形成所述图接口的包括所述第一多个组件的第一实现,该形成包括形成所述第一接口元件与所述第一多个组件中的所述第一组件的第一端口之间的第一对应关系;以及
将所述图接口的所述第一实现存储在数据存储系统中。
21.一种用于确定图接口的方法,所述方法包括:
接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的多个组件;以及
形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及
对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
22.根据权利要求21所述的方法,其中,与所述接口元件相关联的元数据描述符属性包括经由所述接口元件而传送的数据的数据特征、或者所述多个组件中的一个或多个组件的计算特征。
23.根据权利要求22所述的方法,其中,所述数据特征包括所传送数据内的记录的字段的格式。
24.根据权利要求22或23所述的方法,其中,所述计算特征包括所述多个组件中的一个或多个组件所表示的计算的执行的并行度。
25.根据权利要求21至24中任一项所述的方法,其中,形成所述第一有向图所用的图接口还包括:针对所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断为:与所述接口元件相关联的一个或多个属性指定所述接口元件被配置为传送参数值通过所述图接口。
26.根据权利要求21至25中任一项所述的方法,其中,判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至所述第二有向图中的接口元件包括:基于所述多个组件中的将所述元数据描述符属性的值传播至所述接口元件的组件的识别而判断为与所述接口元件相关联的元数据描述符属性的值被传播至所述第一有向图中的接口元件。
27.根据权利要求21至25中任一项所述的方法,其中,判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至所述第二有向图中的接口元件包括:基于所述多个组件中没有组件将所述元数据描述符属性的值传播至所述接口元件的判断而判断为与所述接口元件相关联的元数据描述符属性的值被传播至所述第二有向图中的接口元件。
28.根据权利要求21至27中任一项所述的方法,其中,形成所述第一有向图所用的图接口还包括:判断为所述接口元件中的两个或更多个接口元件各自必须与相同属性相关联。
29.根据权利要求21至28中任一项所述的方法,其中,还包括将所述图接口的表示和所述第一有向图的表示存储在数据存储系统中。
30.根据权利要求21至29中任一项所述的方法,其中,所述一个或多个接口元件中的至少一些接口元件包括用于将连接至所述多个组件中的组件的端口的有向链接联接至所述多个组件中未包括的另一组件的端口的流联结点。
31.一种软件,其以非暂时性形式存储在计算机可读介质上以确定图接口,所述软件包括用于使计算系统执行以下操作的指令:
接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的多个组件;以及
形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及
对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
32.一种用于确定图接口的计算系统,所述计算系统包括:
输入装置,其被配置为接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的多个组件;以及
至少一个处理器,其被配置为处理所述规范,所述处理包括:
形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及
对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
33.一种用于确定图接口的计算系统,所述计算系统包括:
接收部件,用于接收包括第一有向图的描述的规范,所述第一有向图包括通过有向链接而互连的多个组件;以及
处理部件,用于处理所述规范,所述处理包括:
形成所述第一有向图所用的图接口,所述图接口是容器图中的、要在执行该容器图之前被符合所述图接口的实现所替换的占位符,其中形成所述图接口包括:
分析所述第一有向图以识别用于形成所述图接口的一个或多个接口元件的信息,并且形成所述一个或多个接口元件,其中所述一个或多个接口元件中的至少一些接口元件的各接口元件与包括元数据描述符属性或元数据传播方向属性至少之一的一个或多个属性相关联;以及
对于所述一个或多个接口元件中的至少一些接口元件的各接口元件,分析所述第一有向图以判断与所述接口元件相关联的元数据描述符属性的值是被传播至所述第一有向图中的接口元件还是被传播至第二有向图中的接口元件,并且基于所述分析的结果来针对所述接口元件配置元数据传播方向属性,其中所述第二有向图是利用所述图接口的容器图。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562270163P | 2015-12-21 | 2015-12-21 | |
US62/270,163 | 2015-12-21 | ||
PCT/US2016/067742 WO2017112654A2 (en) | 2015-12-21 | 2016-12-20 | Sub-graph interface generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108475189A true CN108475189A (zh) | 2018-08-31 |
CN108475189B CN108475189B (zh) | 2021-07-09 |
Family
ID=57777721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680075468.4A Active CN108475189B (zh) | 2015-12-21 | 2016-12-20 | 子图接口生成的方法、系统及计算机可读介质 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10671669B2 (zh) |
EP (2) | EP3394739B1 (zh) |
JP (1) | JP6584672B2 (zh) |
KR (1) | KR102051768B1 (zh) |
CN (1) | CN108475189B (zh) |
AU (1) | AU2016377516B2 (zh) |
CA (2) | CA3005263C (zh) |
SG (1) | SG11201803929YA (zh) |
WO (1) | WO2017112654A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880620A (zh) * | 2022-04-15 | 2022-08-09 | 国家电投集团数字科技有限公司 | 一种有向树组的聚集生成方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9880818B2 (en) | 2014-11-05 | 2018-01-30 | Ab Initio Technology Llc | Application testing |
US10936289B2 (en) * | 2016-06-03 | 2021-03-02 | Ab Initio Technology Llc | Format-specific data processing operations |
US10387453B1 (en) * | 2016-06-29 | 2019-08-20 | EMC IP Holding Company LLC | Database views for graphs using dynamic subgraphs |
US10642867B2 (en) * | 2017-09-15 | 2020-05-05 | Adobe Inc. | Clustering based on a directed graph |
US10666744B2 (en) | 2018-06-01 | 2020-05-26 | The Mathworks, Inc. | Managing discovery and selection of service interface specifications |
US10831456B1 (en) | 2019-05-31 | 2020-11-10 | The Mathworks, Inc. | External code integrations within a computing environment |
US11729222B2 (en) * | 2019-07-12 | 2023-08-15 | Palo Alto Research Center Incorporated | System and method for extracting configuration-related information for reasoning about the security and functionality of a composed internet of things system |
WO2022165321A1 (en) | 2021-01-31 | 2022-08-04 | Ab Initio Technology Llc | Data processing system with manipulation of logical dataset groups |
US11930046B2 (en) | 2021-06-17 | 2024-03-12 | Xerox Corporation | System and method for determining vulnerability metrics for graph-based configuration security |
US11656744B1 (en) * | 2022-03-14 | 2023-05-23 | Wolters Kluwer Technology BV | Interactive tool for efficiently developing task flows |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208695A (zh) * | 2005-06-27 | 2008-06-25 | 起元软件有限公司 | 基于图形计算的元数据管理 |
US8429631B2 (en) * | 2003-11-03 | 2013-04-23 | Pervasive Software, Inc. | System and method for data transformation using dataflow graphs |
CN104282693A (zh) * | 2013-07-08 | 2015-01-14 | 格罗方德半导体公司 | 包括双端口静态随机访问存储器单元的装置及其形成方法 |
US20150160927A1 (en) * | 2013-12-05 | 2015-06-11 | Ab Initio Technology Llc | Managing interfaces for sub-graphs |
CN105144080A (zh) * | 2013-03-15 | 2015-12-09 | 起元技术有限责任公司 | 用于元数据管理的系统 |
Family Cites Families (232)
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 | ソフトウェア部品合成装置 |
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 |
US5323452A (en) | 1990-12-18 | 1994-06-21 | Bell Communications Research, Inc. | Visual programming of telephone network call processing logic |
JPH05197604A (ja) | 1991-05-21 | 1993-08-06 | Digital Equip Corp <Dec> | マルチプロセッサ・コンピュータ及びその動作方法 |
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 |
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
JP3672208B2 (ja) | 1996-07-02 | 2005-07-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 階層化トランザクション処理方法 |
US5857204A (en) | 1996-07-02 | 1999-01-05 | Ab Initio Software Corporation | Restoring the state of a set of files |
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 |
US5999729A (en) | 1997-03-06 | 1999-12-07 | Continuum Software, Inc. | System and method for developing computer programs for execution on parallel processing systems |
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 |
US6574661B1 (en) | 1997-09-26 | 2003-06-03 | Mci Communications Corporation | Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client |
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 |
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 |
US6380945B1 (en) | 1998-11-09 | 2002-04-30 | Broadcom Corporation | Graphics display system with color look-up table loading mechanism |
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 |
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 |
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 |
IES20010131A2 (en) | 1999-12-20 | 2001-05-30 | Headway Res Ltd | System and method for computer-aided graph-based dependency analysis |
US6848100B1 (en) | 2000-03-31 | 2005-01-25 | Intel Corporation | Hierarchical software path profiling |
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 |
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 |
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 |
KR100406630B1 (ko) | 2001-03-13 | 2003-11-20 | 엘지전자 주식회사 | 데모용 데이터의 기록 및 재생방법과, 그에 따른 기록매체 |
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 |
US20040024573A1 (en) * | 2002-07-31 | 2004-02-05 | Sun Microsystems, Inc. | Method, system, and program for rendering information about network components |
WO2003040890A2 (en) * | 2001-11-09 | 2003-05-15 | Sun Microsystems, Inc. | Method, system, and program for rendering a visualization of network devices |
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 |
US6951013B1 (en) | 2002-03-01 | 2005-09-27 | Lozins Neal N | Method for facilitating development and testing of relational database application software |
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 |
EP1636730A2 (en) | 2003-06-18 | 2006-03-22 | 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 |
WO2005001687A2 (en) | 2003-06-25 | 2005-01-06 | Ab Initio Software Corporation | 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 |
US20050102670A1 (en) | 2003-10-21 | 2005-05-12 | Bretl Robert F. | Shared object memory with object management for multiple virtual machines |
US20050097515A1 (en) | 2003-10-31 | 2005-05-05 | Honeywell International, Inc. | Data empowered laborsaving test architecture |
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 |
US7467383B2 (en) | 2004-03-08 | 2008-12-16 | Ab Initio Software Llc | System for controlling task execution using a graphical representation of task dependency |
US7594227B2 (en) | 2004-03-08 | 2009-09-22 | Ab Initio Technology Llc | Dependency graph parameter scoping |
CA2563478A1 (en) | 2004-04-16 | 2005-10-27 | James A. Aman | Automatic event videoing, tracking and content generation system |
US20050256818A1 (en) | 2004-04-30 | 2005-11-17 | Xerox Corporation | Workflow auto generation from user constraints and hierarchical dependence graphs for workflows |
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 |
WO2005121959A2 (en) | 2004-06-08 | 2005-12-22 | Dartdevices Corporation | Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform |
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 |
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 |
US7703027B2 (en) | 2005-01-13 | 2010-04-20 | National Instruments Corporation | Merging graphical programs |
WO2006078751A2 (en) | 2005-01-18 | 2006-07-27 | Everypoint, Inc. | 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 |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US20070118839A1 (en) | 2005-10-24 | 2007-05-24 | Viktors Berstis | Method and apparatus for grid project modeling language |
US7747565B2 (en) | 2005-12-07 | 2010-06-29 | Microsoft Corporation | Garbage collector support for transactional memory |
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 |
WO2008021953A2 (en) | 2006-08-10 | 2008-02-21 | Ab Initio Software Llc | Distributing services in graph-based computations |
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 |
JP5042315B2 (ja) | 2006-10-19 | 2012-10-03 | チェックマークス リミテッド | ソースコード内のセキュリティ脆弱性の検出 |
US8191052B2 (en) | 2006-12-01 | 2012-05-29 | Murex S.A.S. | Producer graph oriented programming and execution |
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 | 透 降矢 | 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム |
CN101821721B (zh) | 2007-07-26 | 2017-04-12 | 起元技术有限责任公司 | 具有误差处理的事务型基于图的计算 |
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 | アビニシオ テクノロジー エルエルシー | グラフベース計算におけるデータフロー管理 |
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 |
US20090193417A1 (en) | 2008-01-24 | 2009-07-30 | Nec Laboratories America, Inc. | Tractable dataflow analysis for concurrent programs via bounded languages |
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 |
WO2010002919A1 (en) | 2008-06-30 | 2010-01-07 | Ab Initio Software Llc | Data logging in graph-based computations |
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 |
US8711148B2 (en) * | 2008-10-01 | 2014-04-29 | International Business Machines Corporation | Method and system for generating and displaying an interactive dynamic selective view of multiply connected objects |
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 |
KR101730513B1 (ko) | 2009-02-13 | 2017-04-26 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
US7992040B2 (en) | 2009-02-20 | 2011-08-02 | International Business Machines Corporation | Root cause analysis by correlating symptoms with asynchronous changes |
US8332811B2 (en) | 2009-04-30 | 2012-12-11 | United Parcel Service Of America, Inc. | Systems and methods for generating source code for workflow platform |
US8327377B2 (en) | 2009-04-30 | 2012-12-04 | Ca, Inc. | Detecting, logging and tracking component dependencies in web service transactions |
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 |
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 |
WO2011159759A1 (en) | 2010-06-15 | 2011-12-22 | Ab Initio Technology Llc | Dynamically loading graph-based computations |
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 |
EP2609507B1 (en) | 2010-08-25 | 2019-05-15 | Ab Initio Technology LLC | Evaluating dataflow graph characteristics |
CN103180826B (zh) | 2010-10-25 | 2017-04-05 | 起元技术有限责任公司 | 在代表计算机程序的数据流图中管理数据集对象 |
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 |
US8775299B2 (en) | 2011-07-12 | 2014-07-08 | Experian Information Solutions, Inc. | Systems and methods for large-scale credit data processing |
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 |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US9811233B2 (en) * | 2013-02-12 | 2017-11-07 | Ab Initio Technology Llc | Building applications for configuring processes |
WO2016041594A2 (en) * | 2014-09-17 | 2016-03-24 | Siemens Aktiengesellschaft | Method and digital tool for engineering software architectures of complex cyber-physical systems of different technical domains |
-
2016
- 2016-12-20 US US15/384,508 patent/US10671669B2/en active Active
- 2016-12-20 KR KR1020187021019A patent/KR102051768B1/ko active IP Right Grant
- 2016-12-20 CA CA3005263A patent/CA3005263C/en active Active
- 2016-12-20 WO PCT/US2016/067742 patent/WO2017112654A2/en active Application Filing
- 2016-12-20 CN CN201680075468.4A patent/CN108475189B/zh active Active
- 2016-12-20 EP EP16825641.0A patent/EP3394739B1/en active Active
- 2016-12-20 SG SG11201803929YA patent/SG11201803929YA/en unknown
- 2016-12-20 EP EP20199926.5A patent/EP3779674B1/en active Active
- 2016-12-20 CA CA3114779A patent/CA3114779C/en active Active
- 2016-12-20 AU AU2016377516A patent/AU2016377516B2/en active Active
- 2016-12-20 JP JP2018529623A patent/JP6584672B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429631B2 (en) * | 2003-11-03 | 2013-04-23 | Pervasive Software, Inc. | System and method for data transformation using dataflow graphs |
CN101208695A (zh) * | 2005-06-27 | 2008-06-25 | 起元软件有限公司 | 基于图形计算的元数据管理 |
CN105144080A (zh) * | 2013-03-15 | 2015-12-09 | 起元技术有限责任公司 | 用于元数据管理的系统 |
CN104282693A (zh) * | 2013-07-08 | 2015-01-14 | 格罗方德半导体公司 | 包括双端口静态随机访问存储器单元的装置及其形成方法 |
US20150160927A1 (en) * | 2013-12-05 | 2015-06-11 | Ab Initio Technology Llc | Managing interfaces for sub-graphs |
Non-Patent Citations (2)
Title |
---|
刘薇: "关于软件工程之中的结构化设计方法探究", 《计算机光盘软件与应用》 * |
李洋等: "认知Mesh网络的动态分层图路由模型及路由策略", 《电子与信息学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880620A (zh) * | 2022-04-15 | 2022-08-09 | 国家电投集团数字科技有限公司 | 一种有向树组的聚集生成方法 |
CN114880620B (zh) * | 2022-04-15 | 2024-05-24 | 国家电投集团数字科技有限公司 | 一种有向树组的聚集生成方法 |
Also Published As
Publication number | Publication date |
---|---|
AU2016377516B2 (en) | 2020-01-30 |
KR102051768B1 (ko) | 2019-12-03 |
WO2017112654A3 (en) | 2017-08-03 |
EP3779674B1 (en) | 2023-02-01 |
CA3005263A1 (en) | 2017-06-29 |
KR20180098324A (ko) | 2018-09-03 |
US10671669B2 (en) | 2020-06-02 |
CA3114779A1 (en) | 2017-06-29 |
CA3005263C (en) | 2021-06-15 |
CN108475189B (zh) | 2021-07-09 |
US20170177740A1 (en) | 2017-06-22 |
SG11201803929YA (en) | 2018-06-28 |
AU2016377516A1 (en) | 2018-05-31 |
WO2017112654A2 (en) | 2017-06-29 |
EP3779674A1 (en) | 2021-02-17 |
JP6584672B2 (ja) | 2019-10-02 |
JP2019505885A (ja) | 2019-02-28 |
EP3394739A2 (en) | 2018-10-31 |
CA3114779C (en) | 2023-03-07 |
EP3394739B1 (en) | 2020-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475189A (zh) | 子图接口生成 | |
CN106170762B (zh) | 管理包括子图的数据流图所用的接口 | |
CN103180826B (zh) | 在代表计算机程序的数据流图中管理数据集对象 | |
JP6449173B2 (ja) | プロセスを構成するためのアプリケーションの構築 | |
CN106663075A (zh) | 执行基于图的程序规范 | |
CN106687921A (zh) | 在基于图的程序中指定组件 | |
CN106687918A (zh) | 编译基于图的程序规范 | |
CN106687920A (zh) | 管理任务的调用 | |
CN106062711A (zh) | 复合控件 | |
CN115516443B (zh) | 根据架构生成优化逻辑 | |
US8635055B1 (en) | Composite signal configuration element for modeling environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1259805 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |