CN110050257B - 可执行数据流图的差分 - Google Patents
可执行数据流图的差分 Download PDFInfo
- Publication number
- CN110050257B CN110050257B CN201780075659.5A CN201780075659A CN110050257B CN 110050257 B CN110050257 B CN 110050257B CN 201780075659 A CN201780075659 A CN 201780075659A CN 110050257 B CN110050257 B CN 110050257B
- Authority
- CN
- China
- Prior art keywords
- node
- dataflow graph
- link
- graph
- executable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种用于显示第一可执行数据流图与第二可执行数据流图之间的差异的方法包括比较该第一可执行数据流图的规范和该第二可执行数据流图的规范,该比较包括以下中的至少一者:识别该第一数据流图中的不与该第二数据流图的任何节点或链路相对应的特定节点或链路;以及识别该第一数据流图中的与该第二数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异。该方法包括制定并显示该第一数据流图或该第二数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:所识别的特定节点或链路、该第一节点或链路与第二节点或链路之间的所识别的差异。
Description
优先权要求
本申请要求于2016年12月7日提交的美国专利申请序列号62/431,195和2017年5月5日提交的美国专利申请序列号15/587,987的优先权,所述美国专利申请通过援引以其全文并入本文。
背景技术
在计算机程序的开发或执行期间,可对计算机程序进行改变。关于改变的信息对于开发者可以是有用的,例如,用于帮助开发者理解改变的影响、确定更新的计算机程序不再正常运行的原因、或跟踪来自多个人员的编辑。
发明内容
在一方面,一种方法用于显示第一可执行数据流图和第二可执行数据流图之间的差异,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路。该方法包括通过计算机比较该第一可执行数据流图的规范和该第二可执行数据流图的规范,以识别该第一数据流图和该第二数据流图之间的一个或多个差异。给定可执行数据流图的该规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的该数据的操作。比较该第一数据流图和该第二数据流图包括以下中的至少一者:(1)识别该第一数据流图中的不与该第二数据流图的任何节点或链路相对应的特定节点或链路,以及(2)识别该第一数据流图中的与该第二数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异。该方法包括制定该第一数据流图或该第二数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及在图形编辑界面中显示该图形表示。
实施例可包括以下特征中的一个或多个。
该第一数据流图是特定数据流图的第一版本,并且其中,该第二数据流图是该特定数据流图的第二版本。
识别该第一节点或链路与该第二节点或链路之间的差异包括识别该第一节点或链路的已解析参数与该第二节点或链路的已解析参数之间的差异。
识别该第一节点或链路与该第二节点或链路之间的差异包括识别该第一节点或链路的参数的表达式与该第二节点或链路的参数的表达式之间的差异。
该图形指示符是该图形表示中该第一节点或链路、该第二节点或链路或该特定节点或链路的颜色。
该图形指示符的颜色指示该第一节点或链路与该第二节点或链路之间的所识别的差异的类型。
该图形指示符是该图形表示中该第一节点或链路、该第二节点或链路或该特定节点或链路的阴影或填充物。
该图形指示符包括定位在该第一节点或链路、该第二节点或链路或该特定节点或链路附近的符号。
该图形指示符响应于用户交互。该方法包括使得能够响应于与该图形指示符的用户交互而访问指示所识别的差异的信息。
该第一数据流图包含第一数据流子图,并且其中该第二数据流图包含第二数据流子图,并且该方法包括比较该第一数据流子图的规范和该第二数据流子图的规范;并且基于该比较,识别该第一数据流子图与该第二数据流子图之间的一个或多个差异。
该图形表示包括该第一数据流子图的至少一部分或该第二数据流子图的至少一部分的图形表示,该图形表示包括该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的图形指示符。
该图形表示包括:该第一数据流图与该第二数据流图之间的这些识别的差异中的至少一个、以及该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的层级表示。
比较该第一数据流图的规范和该第二数据流图的规范包括比较由该第一数据流图引用的第一文件和由该第二数据流图引用的第二文件。该图形表示包括该第一文件与该第二文件之间的一个或多个差异的图形表示。
识别与第二节点或链路相对应的第一节点或链路包括基于以下中的一者或多者来识别该第一节点:(1)该第一节点或链路和该第二节点或链路的名称,以及(2)该第一节点或链路和该第二节点或链路的标识符。
识别与第二节点或链路相对应的第一节点或链路包括基于与进入或离开该第一节点和该第二节点的数据流相关联的信息来识别该第一节点。
识别与第二节点或链路相对应的第一节点或链路包括基于该第一节点或链路和该第二节点或链路的上游或下游的节点或链路来识别该第一节点或链路。
该方法包括准备该第一数据流图和该第二数据流图以供执行;以及比较所准备的第一数据流图和第二数据流图的规范。
在一个方面,一种非暂态计算机可读介质存储用于使计算机显示第一可执行数据流图与第二可执行数据流图之间的差异的指令,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路。指令使计算机比较该第一可执行数据流图的规范与该第二可执行数据流图的规范,以识别该第一数据流图与该第二数据流图之间的一个或多个差异。给定可执行数据流图的该规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的该数据的操作。比较该第一数据流图和该第二数据流图包括以下中的至少一者:(1)识别该第一数据流图中的不与该第二数据流图的任何节点或链路相对应的特定节点或链路,以及(2)识别该第一数据流图中的与该第二数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异。该指令使该计算机制定该第一数据流图或该第二数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及在图形编辑界面中显示该图形表示。
在一个方面,一种系统用于显示第一可执行数据流图与第二可执行数据流图之间的差异,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路。该系统包括处理器和存储器,该处理器和存储器被配置为比较该第一可执行数据流图的规范和该第二可执行数据流图的规范,以识别该第一数据流图与该第二数据流图之间的一个或多个差异。给定可执行数据流图的该规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的该数据的操作。比较该第一数据流图和该第二数据流图包括以下中的至少一者:(1)识别该第一数据流图中的不与该第二数据流图的任何节点或链路相对应的特定节点或链路,以及(2)识别该第一数据流图中的与该第二数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异。该处理器和存储器被配置为制定该第一数据流图或该第二数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及在图形编辑界面中显示该图形表示。
在一个方面,一种系统用于显示第一可执行数据流图与第二可执行数据流图之间的差异,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路。该系统包括用于比较该第一可执行数据流图的规范和该第二可执行数据流图的规范以识别该第一数据流图与该第二数据流图之间的一个或多个差异的装置。给定可执行数据流图的该规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的该数据的操作。比较该第一数据流图和该第二数据流图包括以下中的至少一者:(1)识别该第一数据流图中的不与该第二数据流图的任何节点或链路相对应的特定节点或链路,以及(2)识别该第一数据流图中的与该第二数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异。该系统包括用于制定该第一数据流图或该第二数据流图的节点或链路中的至少一些的图形表示的装置,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及用于在图形编辑界面中显示该图形表示的装置。
在一个方面,一种方法用于显示可执行数据流图的第一版本与该可执行数据流图的第二版本之间的差异,该数据流图可执行以处理由该数据流图接收的数据,该数据流图的每一个版本包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路。该方法包括利用集成控制系统监测作业的状态,该作业包括可被执行以处理数据的一个或多个操作,该作业与该可执行数据流图的第一版本相关联。该方法包括使得能够输出指示该作业的状态的信息;响应于与该集成控制系统的用户交互或所输出的信息,识别该可执行数据流图的第二版本;比较该数据流图的第一版本的规范和该数据流图的第二版本的规范,以识别该数据流图的第一版本与该数据流图的第二版本之间的一个或多个差异。给定可执行数据流图的该规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的该数据的操作。比较该数据流图的第一版本和该数据流图的第二版本包括以下中的至少一者:(1)识别该数据流图的第一版本中的不与该数据流图的第二版本的任何节点或链路相对应的第一节点或链路,(2)识别该数据流图的第二版本中的不与该数据流图的第一版本的任何节点或链路相对应的第二节点或链路,以及(3)识别该数据流图的第一版本中的与该数据流图的第二版本的第四节点或链路相对应的第三节点或链路,并识别该第三节点或链路与该第四节点或链路之间的差异。该方法包括制定该数据流图的第一版本或该数据流图的第二版本的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的第一节点或链路,(2)所识别的第二节点或链路,以及(3)该第三节点或链路与该第四节点或链路之间的所识别的差异。
实施例可包括以下特征中的一个或多个。
先前执行的作业与该数据流图的第二版本相关联。
该图形表示包括这些识别的差异中的一个或多个的层级表示。
该方法包括制定该图形表示以用于在该集成控制系统的用户界面中显示。
识别该数据流图的第一版本与该数据流图的第二版本之间的差异包括识别该数据流图的第一版本的已解析参数与该数据流图的第二版本的已解析参数之间的差异。
识别该数据流图的第一版本与该数据流图的第二版本之间的差异包括识别该数据流图的第一版本的参数的表达式与该数据流图的第二版本的参数的表达式之间的差异。
识别该数据流图的第一版本与该数据流图的第二版本之间的差异包括识别由该数据流图的第一版本引用的第一文件与由该数据流图的第二版本引用的第二文件之间的差异。
监测该作业的状态包括监测以下中的一个或多个:该作业的活动、该作业的实际开始时间、该作业的估计开始时间、与该作业相关联的处理持续时间和该作业的大小。
监测该作业的状态包括确定该作业是否成功完成。
该方法包括监测应用程序的状态,其中该作业与该应用程序相关联。
该方法包括监测计算设备的状态,其中该应用程序由该计算设备托管。
这里描述的方法使得能够呈现可执行应用程序(诸如计算机程序(例如,数据流图))之间的差异的图形表示,从而提供这些应用程序之间的差异的高级视觉概览。例如,第一数据流图(例如,该数据流图的早期版本)和第二数据流图(例如,该数据流图的后期编辑版本)之间的差异的图形表示可描绘在编辑过程期间添加、移除或修改的组件的高级视图。可执行应用程序之间差异的该图形表示可以是交互式的。例如,用户可自顶向下搜索该图形表示中的组件以查看关于此组件的详细信息,诸如关于对该组件进行的修改的信息。
关于数据流图之间的差异的所呈现的信息可在图创建或编辑期间向开发者提供有价值的技术支持。例如,开发者可使用可视化来协调源代码控制系统中不同分支上发生的开发。开发者可使用该可视化来刷新她关于她相对于源代码控制下的版本进行的最近改变的记忆。开发者可使用可视化来评估其他人对图的最近改变,例如以确认另一个开发者进行了预期的改变而没有其他改变、或确保已满足某些质量标准。开发者或质量控制团队可希望了解为什么图的行为在连续版本之间发生变化,例如,为什么图的较新版本崩溃、运行较慢、给出错误答案、消耗较多CPU时间或以其他方式不同地表现。开发者可希望通过差异可视化来编辑图,例如,将多个版本合并到单个版本中或撤消对图的改变。
在图产生之后,图之间的差异的可视化在技术上可以是有价值的。例如,开发团队创建的新特征可与来自分支的小错误修复相统一。质量控制团队可意识到在对图进行的一系列改变中某处引入了特定的错误代码行,并且该可视化可用于发现哪个版本是具有此代码的第一版本,使得可以通知受影响的客户。
附图说明
图1是图的图示。
图2A和图2B是图之间的差异的图形表示的图示。
图3是导航树的图示。
图4至图7是节点级视图的图示。
图8A和图8B是图之间的差异的图形表示的图示。
图9是导航树的图示。
图10是差异查看器界面的图示。
图11是图分析系统的图示。
图12是处理环境的图示。
图13是控制中心界面的图示。
图14是流程图。
图15是数据处理系统的图示。
具体实施方式
我们在此描述了一种方法,该方法以图形方式表示诸如计算机程序(例如,数据流图)的可执行应用程序之间的差异,从而提供应用程序之间的差异的高级视觉概览。例如,第一数据流图(例如,数据流图的早期版本)和第二数据流图(例如,数据流图的后期编辑版本)之间的差异的图形表示可描绘在编辑过程期间添加、移除或修改的组件。可执行应用程序之间差异的该图形表示可以是交互式的。例如,用户可自顶向下搜索该图形表示中的组件以查看关于此组件的详细信息,诸如关于对该组件进行的修改的信息。在一些情况下,可执行应用程序之间的差异中的一个或多个可通过与可执行应用程序之间的差异的图形表示的用户交互来手动地或自动地从一个可执行应用程序迁移到另一个可执行应用程序。
数据流图(我们有时也将其称为图)是计算机程序的视觉表示,该视觉表示可包括代表数据处理组件和数据集(诸如数据源和数据接收器)的节点。数据集可以是例如文件、数据库表或可提供数据(例如,数据记录)以供图进行处理或接收由图进行处理的数据的其他类型的数据源或接收器。数据处理组件和数据集有时统称为图的节点。连接图的两个节点的链路表示第一节点和第二节点之间的数据流。图1示出包括通过流14连接到过滤器组件16的数据源12的简单数据流图10。过滤器组件16通过流18连接到数据接收器20。
图的节点可具有可与流连接的输入端口和/或输出端口。在图1的示例中,流14、18的上游端部分别连接到数据源12的输出端口和过滤器组件14的输出端口。流14、18的下游端部分别连接到过滤器组件14的输入端口和数据接收器20的输入端口。
数据处理组件执行用于处理数据的操作。数据处理组件是由代码定义的对象的图形表示,该代码在被执行时实施数据处理组件的操作。可关于一个或多个参数定义数据处理组件的操作。可在由数据处理组件的代码引用的文件(例如,.dml文件)中定义参数。例如,文件可包括与数据处理组件相关联的参数的值或表达式。当图被实例化时(例如,在运行时),评估参数的表达式以获得参数的值,有时称为解析参数。参数值或表达式可例如由用户通过用户界面定义(例如,响应于提示)、从文件定义、或根据同一情境或不同情境中的另一参数定义。例如,通过将参数指定为具有与另一参数“相同”的关系,可从不同的情境导出参数(例如,在不同组件的情境中评估的参数)。
在一些示例中,图中的组件可使用其自身与流互连的一组其他组件来实施。通过其实施图中的组件的该组组件被称为子图,并且是图的节点。
用于识别第一图和第二图(例如,图的第一版本和图的第二编辑版本)之间的差异的分析(有时称为差分分析)可识别存在于第一图中但不存在于第二图中的节点(称为删除的节点或移除的节点)、存在于第二图中但不存在于第一图中的节点(称为添加的节点)、或已修改的节点。修改的节点在第一图和第二图之间可大致上类似,但是具有参数、属性或与节点相关联的其他特征的改变,如下面进一步讨论的。差分分析还可识别第一图的流与第二图的流之间的差异。
计划是涉及执行多个图的过程的视觉表示。在计划中,各个图是节点,并且通过指示计划的图之间的数据流的流来互连。此处描述的方法可用于以图形方式表示计划之间的差异。例如,对第一计划和第二计划执行的差分分析可识别存在于第一计划中但不存在于第二计划中的节点(例如,图)、存在于第二计划中但不存在于第一计划中的节点、或已修改的节点。
在一些示例中,可执行嵌套差分分析,该嵌套差分分析识别计划之间的差异、计划中的相应图之间的差异、图中的相应子图之间的差异、和/或图中的节点引用的相应参数文件之间的差异。嵌套差分分析结果的图形表示可指示计划、图和子图以及相关联的差异的层级性质。
尽管我们通常参考以下讨论中的图之间的差异的分析和图形表示,但是该方法通常也可应用于计划、子图、参数文件和/或由图引用的其他文件的分析和图形表示。
在图创建或编辑期间,图之间的差异的可视化对于开发者可以是有价值的。例如,开发者可使用可视化来协调源代码控制系统中不同分支上发生的开发。开发者可使用该可视化来刷新她关于她相对于源代码控制下的版本进行的最近改变的记忆。开发者可使用可视化来评估其他人对图的最近改变,例如以确认他们进行了预期的改变而没有其他改变、或确保已满足某些质量标准。开发者或质量控制团队可希望了解为什么图的行为在连续版本之间发生变化,例如,为什么新版本崩溃、或运行较慢、或给出错误答案、或消耗较多CPU时间。开发者可希望通过差异可视化来编辑图,例如,将多个版本合并到单个版本中或撤消对图的改变。
图之间的差异的可视化对于处于监督角色的人员(诸如项目经理)可以是有价值的,该人员希望查看对图的更新但不一定打算自己编辑图。
在图产生之后,图之间的差异的可视化可以是有价值的。例如,开发团队创建的新特征可与来自分支的小错误修复相统一。质量控制团队可意识到在对图进行的一系列改变中某处引入了特定的错误代码行,并且该可视化可用于发现哪个版本是具有此代码的第一版本,使得可以通知受影响的客户。
参见图2A和图2B,在示例中,在画布上示出图的两个版本的图形表示:第一版本的表示200(有时简称为第一版本200)和第二版本的表示202(有时简称为第二版本202)。例如,图可处于其开发过程中,并且第一版本200可以是图的较早版本,并且第二版本202可以是图的较新版本。图的第一版本200和第二版本202之间的差异以图形方式显示,例如通过表示图的第一版本200和第二版本202之间的差异的指示符显示。指示符可以是例如颜色、阴影、填充物、图标、符号、文本注释或其他类型的指示符。在示例中,删除的节点(存在于图的第一版本200中但不存在于图的第二版本202中的节点)以红色示出。添加的节点(存在于图的第二版本202中但不存在于图的第一版本200中的节点)以绿色示出。修改的节点(存在于图的两个版本200、202中但不相同的节点)以蓝色示出。
在图2A和图2B的示例中,输出文件204是存在于图的第一版本200中但不存在于第二版本202中的删除的节点。输出文件204在画布上以红色示出。过滤器组件206和垃圾组件208是存在于图的第二版本202中但不存在于第一版本200中的添加的节点。过滤器组件206和垃圾组件208在画布20上以绿色示出。重新格式化组件210存在于图的两个版本200、202中,但具有修改。例如,重新格式化组件210的参数或属性的表达式或值可在图的两个版本200、202之间不同。重新格式化组件210在画布上以蓝色示出。
在一些示例中,图的第一版本200和/或第二版本202的节点可响应于用户交互,诸如点击、敲击、悬停或其他交互。例如,用户可将指针悬停在重新格式化组件210上以查看关于修改的附加信息,诸如在图的第一版本200和第二版本202之间不同的重新格式化组件210的参数或属性的列表。在一些示例中,附加信息可显示在画布上,例如,在节点附近或画布的空白区域中。在一些示例中,例如在画布前面打开新窗口或信息气泡以显示信息。
参见图3,在一些示例中,图的第一版本200与第二版本202之间的差异的图形表示可采用导航树220中的层级列表的形式。导航树220可列出在逻辑结构中类似于图200、202的树结构中的节点。在一些示例中,导航树220可列出图200、202的所有节点。在一些示例中,导航树220可仅列出在图的版本200、202之间不同的那些节点,诸如仅添加的节点、删除的节点和修改的节点。
导航树可用于描绘计划之间的差异的层级列表。除了计划的其他方面之外,用于计划的导航树可包括节点(例如,图)的列表,诸如任务的列表、方法的列表或其他方面。
添加、删除和修改的节点中的每一个由导航树220的层级列表中的条目表示。与列表上的每一个节点相关联的图标例如通过图标的颜色、阴影、填充物、形状或另一特性来指示该节点是否是添加的节点、删除的节点或修改的节点。在图3的示例中,删除的节点的图标是绿色方块,添加的节点的图标是绿色方块,并且修改的节点的图标是蓝色方块。
例如,导航树220中的一个或多个条目可包括子条目,以提供关于节点的附加信息。例如,如果节点是修改的节点,则图的第一版本200和第二版本202之间不同的节点的每一个特征可列出在修改的节点的条目下的相应子条目中。例如,对于重新格式化组件210(修改的组件),可针对在第一版本200和第二版本202之间不同的每一个特征(例如,参数或属性或其他特征)将子条目包括在导航树220中。子条目可包括关于特征的信息,例如特征的类型(例如,参数、属性或另一类型的特征)、特征的名称、图的第一版本200中的特征的值、图的第二版本202中的特征的值、或其他信息。
参见图4,在一些示例中,可在节点级视图250中以表格格式显示图的第一版本200和第二版本202中的修改的节点(例如,重新格式化组件210)之间的差异。节点级视图250包括列出节点特征(诸如节点的描述、参数、属性、布局、端口或其他特征)的一个或多个表。
在图4的示例中,参数和属性表列出了节点的参数和属性。参数和属性表可仅包括具有在图的第一版本和第二版本之间不同的值或表达式的那些参数和属性、或可包括节点的所有参数和属性。每一行表示一个参数或属性,并包括图的第一版本200中的参数或属性的值或表达式(称为“旧值”)和/或图的第二版本202中的参数或属性的值(称为“新值”)。在图的第一版本200和第二版本202之间不同的值可用指示符(诸如突出显示部分、图标或另一类型的指示符)标记。例如,在图4的示例中,突出显示转换组件的旧值和新值,从而指示这些值在图的第一版本200和第二版本202之间不同。
节点级视图250中的表的名称列显示参数或属性的名称。在一些示例中,名称列可包括名称是参数的名称还是属性的名称的指示符(例如,图标、字母或另一指示符)。例如,参数名称可用菱形标记,并且属性名称可用等号标记。在一些示例中,名称列可包括参数是输入参数还是本地参数的指示符。
参见图5,在一些示例中,节点级视图的参数和属性表260可包括附加列,诸如类型列、必需列、导出列或另一列。如果适用,类型列可显示参数的dml类型。类型列不适用于组件属性。对于计划,类型列可显示任务类型,诸如图、字符串、选择项或另一任务类型。必需列可包括指示符,该指示符指示是否需要参数以及参数的所需状态是否在版本之间发生了改变。导出列可包括参数是否已导出以及参数的导出状态是否在版本之间发生了改变的指示符。
参见图6,节点级视图可包括端口表270,该端口表包括节点的端口的列表。端口的列表可仅包括在图的第一版本和第二版本之间已改变的那些端口、或可包括所有端口。每一行表示一个端口,并且包括端口的名称和差异的类型(例如,添加、删除或修改)。可通过指示符来描绘差异的类型。在一些示例中,用户可与端口的名称交互(例如,通过点击或敲击名称)来访问端口的参数的列表或表。
参见图7,当表征计划之间的差异时,节点级视图可包括方法表280,该方法表包括计划的方法的列表。方法的列表可仅包括在计划的第一版本和第二版本之间已改变的那些方法、或可包括所有方法。每一行表示一种方法,并且包括方法的名称和差异的类型(例如,删除、添加或修改)。可通过指示符来描绘差异的类型。在一些示例中,用户可与方法的名称交互(例如,通过点击或敲击名称)来访问该方法的参数的列表或表。
在一些示例中,文本差分视图(未示出)可显示节点(例如,修改的节点)的代码,其中指示图的第一版本和第二版本中的每一个中的节点的代码之间的差异。可例如通过格式化(例如,下划线、删除线、粗体、斜体或其他格式化)、突出显示或其他方法来指示差异。在一些示例中,呈现图的版本中的仅一个中的节点的代码,其中指示呈现的代码与图的另一版本中的节点的代码之间的差异。在一些示例中,呈现图的两个版本中的节点的代码,并且代码的每一个版本可具有相对于代码的另一个版本的差异的指示。
图的第一版本200与第二版本202之间的差异的这些各个视图中的每一个可为用户提供优点。图的第一版本200与第二版本202之间的差异的在画布20上的图形显示使用户能够快速掌握高级别的差异,并且没有大量细节。例如,画布上的第一版本200和第二版本202的显示使用户能够快速可视化已添加或删除哪些节点,以及已修改哪些节点。导航树220的层级列表使用户能够关注图的其余部分的背景之外的各个节点。节点级视图250向用户提供对关于节点的改变的具体信息的访问,例如使得用户可自顶向下搜索以详细理解图的每一个版本200、202中的节点的特征。
在一些示例中,图可包括子图,并且两个图之间的差异的图形表示可提供关于由图引用的子图之间的差异的信息。参见图8A和图8B,在画布上示出包括子图904的图的第一版本900和第二版本902的表示。第一版本900和第二版本902之间的差异由指示符示出。如果子图中存在差异,则子图上的指示符可提供差异的高级指示。在一些示例中,响应于与子图904的用户交互,可提供附加信息,诸如子图904中的差异的列表或描述。在一些示例中,响应于与子图904的用户交互,适当时可利用差异的指示符显示形成子图904的组件。
在图8A和图8B的示例中,已删除了输出文件906,并且已添加了过滤器组件908和垃圾组件910。另外,子图904中的节点已被修改,这由子图904上的指示符描绘。
参见图9,导航树920可列出图的第一版本900和第二版本902的添加的节点、删除的节点和修改的节点。如果已经添加、删除或修改了子图904的节点,则子图904被包括在列表中,并且节点(例如,重新格式化组件)被列出在子图904的条目下的子条目中。如果子图904的列出的节点是修改的节点,则此节点的子条目(例如,对于重新格式化组件)本身可具有针对在图的第一版本900和第二版本902之间不同的每一个特征(例如,参数或属性或其他特征)的子条目。
参见图10,在一些示例中,可将多个视图集成到差异查看器界面60(有时也称为差异查看器)中。图10的示例差异查看器60包括画布62,该画布示出图的第一版本600和图的第二版本602的图形表示。在图10的差异查看器60中,画布62以并排取向示出图的第一版本600和第二版本602;在一些示例中,画布可以以上下取向示出第一版本600和第二版本602。画布62可以是可缩放的和可滑动的,以允许用户关注图的第一版本600或第二版本602中的感兴趣区域。差异查看器60还包括导航树620和节点级视图650。在差异查看器60中,由各种视图提供的各种级别的信息都可在单个紧凑的用户界面中被用户访问。
在图10的示例中,指示符是定位在节点附近的图标,并且图标的形状和颜色一起指示差异的类型。例如,红色“X”指示删除的节点,绿色加号指示添加的节点,并且黄色星号指示修改的节点。导航树620中的条目可根据改变的类型(诸如添加、删除或修改)进行分组。
差异查看器60可以是交互式的。例如,用户可选择差异以获得关于此差异的信息。关于差异的信息可仅在用户选择差异的视图中显示、或在一个或多个附加视图中显示,例如,在所有视图中显示。例如,当用户与画布上的节点交互时(例如,通过点击“预处理旧”组件604),可在导航树上显示此节点的子条目,并且可在节点级视图中显示此节点的特征的表。画布、导航树和节点级视图都可在差异查看器600中同时可见,使用户能够全面了解高级差异和关于所选择的节点的差异的细节两者。
在一些示例中,用户与节点的交互类型控制关于此节点显示的信息。例如,单击节点可使此节点的特征(例如,参数或属性)显示在节点级视图650中。双击子图可扩展画布中的子图并且可使子图的属性和参数在节点级视图650中显示,并且使导航树620中的子图的条目扩展。还可提供响应于不同类型的用户交互而显示的信息的其他示例。
在一些示例中,用户可连续地逐步浏览每一个差异以查看关于第一版本600和第二版本602之间的每一个差异的信息。在一些示例中,用户可选择仅显示可影响图执行的那些差异,诸如参数值的改变或节点的添加或删除。在一些示例中,用户可选择显示所有差异,包括可影响图执行的差异和不影响图执行的差异两者(例如,评论和图例的差异、属性诸如作者的属性和版本属性的属性值的改变、放置节点的x和y坐标的改变、字体改变或其他差异)。
参见图11,分析第一图800和第二图802之间的差异的图分析系统80包括分析每一个图800、802的规范的图分析器引擎804。图分析器引擎804确定第一图800中的哪些节点(例如,组件或数据集)与第二图802中的节点相对应。相应的节点不一定相同并且可在图之间修改,但是通常类似,以至于足以被视为两个图中的相同节点。
在一些示例中,图分析器引擎804基于与节点相关联的元数据(诸如节点(例如,数据处理组件对数据集、或具体类型的数据处理组件或数据集)类型中的一个或多个、节点的名称、节点的唯一标识符或与节点相关联的其他元数据)来识别相应节点。在一些示例中,图分析器引擎804基于与进入或离开节点的数据流相关联的信息(诸如端口的名称或数量、进入节点的数据流的名称或源、离开节点的数据流的名称或目的地、或与进入或离开节点的数据流相关联的其他信息)来识别相应节点。在一些示例中,图分析器引擎804基于拓扑信息(诸如特定节点相对于其他节点定位在图中的位置(例如,哪些节点在特定节点的上游或下游))来识别相应节点。在一些示例中,图分析器804基于画布上的图的图形表示中的节点的位置(例如,x-y坐标)来识别相应节点。然而,在一些示例中,图分析器804在识别相应节点时不使用任何位置信息,例如,这是因为画布上的节点的位置对节点或包含节点的图的功能没有影响。
对于其在第二图802中没有相应节点的第一图800中的任何节点由图分析器引擎804识别为删除的节点。对于其在第一图800中没有相应节点的第二图802中的任何节点由图分析器引擎804识别为添加的节点。由图分析器引擎804分析在第一图800和第二图802之间相对应的节点以确定节点是否已被修改。可视化引擎810生成数据以使得能够呈现第一图800和第二图802之间的差异的图形表示。
在一些示例中,图分析器引擎804可分析可影响图执行的特征和不影响图执行的特征。影响图执行的特征可包括例如参数,诸如参数表达式或参数值。不影响图执行的特征可包括例如属性值(例如,作者属性、名称属性、版本属性或其他属性)、评论、图例、格式(例如,字体)、画布上的组件的位置或其他特征。在一些示例中,图分析器引擎804可仅分析可影响图执行的特征,并且可忽略不影响图执行的特征。
与两个相应节点中的每一个相关联的参数的分析可识别任何参数是被添加(例如,存在于第二图的节点中但不存在于第一图的相应节点中的参数)还是被移除(例如,存在于第一图的节点中但不存在于第二图的相应节点中的参数)。参数分析可包括对定义参数的表达式、参数的值或两者的分析。
在一些示例中,与两个相应节点中的每一个相关联的参数的分析可确定是否修改了相应参数的表达式。为了分析参数的表达式,可对与每一个节点相对应的源代码执行参数分析。在一些示例中,在图800、802被实例化之后执行参数分析,并且可例如在每一个图调用由节点的规范引用的任何参数文件之后解析所有参数。当在图实例化之后执行参数分析时,图分析器引擎804比较参数值。
在一些示例中,可由图分析器引擎804分析与两个相应节点中的每一个相关联的参数的顺序;在一些示例中,图分析器引擎忽略参数的顺序。在一些示例中,可由图分析器引擎804分析仅用于依赖性分析的参数的表达式或值;在一些示例中,图分析器引擎忽略这些参数的表达式或值。
在一些示例中,图分析器引擎804可分析由图或计划引用的外部文件,以识别由图800、802引用的文件之间的任何差异。在一些示例中,图分析器引擎804仅分析某些类型的文件,诸如记录格式文件(例如,.dml文件)、转换文件(例如,.xfr文件)、或其内容可影响图执行的其他类型的文件。不考虑其他文件,诸如提供数据以用于由图或计划进行处理的文件。
在一些示例中,可在分析之前将待分析的图或计划升级为通用文件格式。例如,可将图或计划升级为图或计划的当前文件格式或最新文件格式。在一些示例中,可以以它们自己的原始文件格式分析图或计划。保留用于比较的原始文件格式可以是有用的,例如,用于识别由文件格式改变引起或以其他方式与文件格式改变相关的差异。
在一些示例中,可在默认情况下设置由图分析器引擎804执行的分析的范围,例如,可在默认情况下设置图分析器引擎804以仅考虑影响图执行的差异。在一些示例中,用户可指定待由图执行引擎执行的分析的范围。
在一些示例中,可将图之间的差异的图形表示集成到软件开发平台中。软件开发平台可由例如开发或维护软件(诸如图)的软件开发者使用。开发者可利用图的先前版本与图的更新版本之间的差异的图形表示,以例如提醒他自己最近的改变、检查另一个开发者的近期改变、或识别图修改不成功的潜在原因、或用于其他目的。
在一些示例中,可将图之间的差异的图形表示集成到软件管理平台中。软件管理平台可由例如监督软件(诸如图)开发或维护的管理者使用。管理者可利用图的先前版本与图的更新版本之间的差异的图形表示,以例如观察软件开发进度、识别需要额外开发的图的部分、帮助进行故障排除、或用于其他目的。
在一些示例中,可将图之间的差异的图形表示集成到操作控制中心中,该操作控制中心有助于处理环境的各个组件的集成管理。控制中心可监测和显示处理环境的组件(诸如计算设备、应用程序或作业)的状态,并且可允许操作员主动管理处理环境的组件。示例控制中心的描述可见于美国申请号14/690,114中,该美国申请的内容通过援引以其全文并入本文。
参见图12,处理环境900包括可由用户902或代表该用户操作以处理数据的硬件和软件组件。硬件组件可包括硬件计算设备904,诸如服务器,我们有时将其称为“主机”。服务器中的每一个可包括一个或多个数据处理器和用于存储由一个或多个数据处理器执行的指令的一个或多个存储装置。处理环境900的软件组件可包括应用程序906、作业908或服务910。软件组件各自在主机904中的一个或多个上执行或对其有影响。
应用程序906是可用于实行各种数据处理功能(包括例如建立用于数据处理的框架、执行数据处理框架或分析处理的数据)的计算机程序(诸如软件产品)。应用程序可以是旨在执行或帮助用户执行特定域中的任务(诸如文字处理)的程序。可使用处理环境900中的主机904中的一个或多个、应用程序906中的一个或多个或两者来执行一个或多个作业908。作业908是被执行以处理数据的一个或多个操作的集合。作业的示例是基于图的处理环境中的图或计划。
在一些示例中,应用程序906或作业908可利用一种或多种服务910。服务910是应用程序的特殊情况,诸如长期运行的应用程序,例如,只要主机或服务器正在运行就预期运行的应用程序,该应用程序的目标是代表应用程序或用户执行的任务(服务)的特定集合。可由服务910执行的示例任务包括例如通过用户界面对事件进行日志记录或使事件可见。示例服务910包括例如数据库912、队列914、文件916、应用服务器918或另一类型的服务。
集成控制中心950监测处理环境900的硬件和软件组件的实时状态。在一些示例中,控制中心950可在主机904中的一个上执行;在一些示例中,控制中心950在不同的计算设备952上执行。例如,控制中心950可监测用户902已访问的主机904和应用程序906以及代表用户902执行的作业908的状态。可在用户界面956上显示关于处理环境900的组件的实时状态信息954。可以以集成方式显示状态信息954,以突出显示处理环境900的各个组件(诸如主机904、应用程序906、作业908、服务910或其他组件)之间的关系。可显示状态信息954,以便显示处理环境的组件中的一个或多个的状态或各个组件的状态之间的关系。可通过控制中心获得实时状态信息和历史状态度量和数据处理度量(例如,与处理的记录的数量、处理时间、处理持续时间相关的度量或其他度量)。通过用户界面956,用户902可采取与处理环境的组件中的一个或多个相关的动作,或可定义响应于与处理环境的组件中的一个或多个相关的预定义事件而自动实行的动作。
可针对主机904监测和显示的实时状态度量的示例包括例如:
主机的操作状态——例如,主机是否在线、在线时是否出现错误或警告情况、或脱机。在一些情况下,控制中心950可监测与主机的操作状态有关的细节,诸如主机是否脱机以进行例行维护或是否由于故障(例如,磁盘失效)而脱机。
主机的总中央处理单元(CPU)利用率。
主机的总可用存储器或使用的存储器。
与主机相关联的文件系统数量。
文件系统的总可用磁盘空间或使用的磁盘空间。
主机上运行的作业数量。
主机上运行的作业中的每一个的身份。
主机上运行的作业中的每一个的CPU利用率、存储器利用率或两者。
主机上运行的应用程序的数量。
主机上运行的应用程序中的每一个的身份。
主机上运行的应用程序中的每一个的CPU利用率、存储器利用率或两者。
特定用户902相对于用户许可的最大CPU或存储器量的CPU利用率、存储器利用率或两者。
存储在主机上的许可证密钥的状态(例如,到期日期)以及与此许可证密钥相关联的应用程序的身份。
操作系统的参数
CPU数量
CPU种类
CPU速度
还可监测其他实时状态度量。在一些示例中,用户902可定义待由控制中心950监测的自定义状态度量。
控制中心950还可维护允许跟踪主机904的历史状态度量的信息。例如,控制中心950可维护允许跟踪主机的历史操作状态的信息,诸如主机904在给定时间段内已脱机的时间百分比、主机904在给定时间段内经历的错误或警告情况的次数、或历史操作状态的其他指示符。控制中心950可维护允许跟踪在主机904上运行的作业908的平均或总数量、在主机904上操作的应用程序906的平均或总数量、主机904平均或最大CPU负载、主机904的平均或最小可用存储器、或主机904的历史状态的其他指示符的信息。虽然该类型的信息中的一些可见于主机904的一个或多个日志文件中,但是由控制中心950提供的集成显示使信息可更容易访问并且更容易理解,从而允许具有较少具体技术知识的人员访问和分析主机904的历史状态度量。
可针对产品或服务监测和显示的实时状态度量的示例包括例如:
产品或服务的许可证密钥的状态——例如,有效、有效但即将到期或已到期。
其上发布产品或服务的许可证密钥的密钥服务器的身份。
产品或服务在其上操作的主机的身份。
利用产品或服务的作业的数量。
利用产品或服务的作业的身份。
产品或服务的配置文件的位置。
产品或服务的日志文件的位置。
产品或服务利用的任何服务的身份。
产品或服务利用的服务中的每一种的状态(例如,在线、在线时出现错误或警告情况、或脱机)。
与产品或服务相关的任何组件的身份和状态。
还可监测其他实时状态度量。在一些示例中,用户902可定义待由控制中心950监测的自定义状态度量。
可针对作业908监测和显示的实时状态度量的示例包括例如:
作业的实时操作状态–例如,作业是否正在运行、已停止或暂停、正等待运行或已完成。
作业的开始时间、经过时间(如果正在进行)、或结束时间(如果已完成)。
作业的总经过时间是否满足作业的目标处理时间(例如,服务级别协议(SLA))。
其上正在运行作业的主机的身份。
作业的CPU利用率。
作业利用的任何产品或服务的身份。
作业输出的数据的类型。
作业输出的数据的位置。
执行作业期间处理的记录的数量。
执行作业期间拒绝的记录的数量。
作业利用的服务中的每一种的状态。
还可监测其他实时状态度量。在一些示例中,用户902可定义待由控制中心950监测的自定义状态度量。
控制中心950还可维护允许跟踪作业908的历史状态度量的信息。例如,控制中心950可维护允许跟踪平均运行时间、平均CPU利用率、被拒绝的记录的平均数量或给定类型的作业的其他历史度量的信息。
可采取与作业相关的动作的示例包括例如:
开始或停止作业。
调度作业。
重新运行作业。
禁用作业以使其无法运行。
启用已禁用的作业以使其运行。
使作业暂时中止。
使作业从暂时中止解除。
调查并解决关于作业的问题。
忽略失败的作业,以使得依赖于它的作业无论如何都会运行。
查看并导航到任何原先或后续作业。
查看并导航到作业的任何先前态势。
查看并导航到母作业或任何子作业。
查看作业使用的队列。
查看作业使用的文件。
查看作业使用的资源。
查看作业使用的产品和服务。
控制中心还可启用除上面列出的动作之外的动作。
控制中心可监测作业使用的队列914。在一些具体实施中,作业取决于在数据处理组件之间传递的数据,因此知道队列状态使用户洞察作业的整体性能。
控制中心可监测作业使用的资源。资源表示由计划使用的处理环境的某个方面。例如,可将硬件组件、测量或编程对象定义为资源。CPU时间、处理器单元、FTP(文件传输协议)端口、磁盘容量、文件计数、输入流和事件触发器以及JVM(Java虚拟机)池是资源的示例。定义资源的目的是平衡处理环境中的需求和容量。具体地,可使用资源对系统上放置的负载施加最大限制和排序。
用户界面956显示由控制中心950监测的状态信息中的一些或全部,并允许用户采取与处理环境900的一个或多个组件有关的动作。一般来讲,状态信息以突出显示处理环境900的各个组件之间的关系的连贯、集成的方式显示和链接在用户界面956上。该显示范例不是在空白中显示关于处理环境的每一个单独组件的信息,而是以可见或可访问方式洞察处理环境的组件之间的重叠。利用该显示范例,可理解和解决特定组件的性能问题的潜在影响因素以及性能问题对其他组件的潜在影响。
例如,利用在控制中心950的用户界面956上提供的信息的集成显示,用户902可识别在特定主机904脱机进行维护时将受影响的那些作业908。相反地,用户902可注意到某些作业908的运行速度比预期更慢。通过用户界面956,用户902可能够确定这些作业908全部在同一主机904上运行并且此主机904是CPU绑定的或I/O(输入-输出)绑定的。在这两种情况下,用户902可采取动作来减轻任何潜在的性能问题或解决实际的性能问题。例如,通过用户界面956并且响应于主机904将被脱机以进行例行维护的通知,用户902可暂时将受影响的作业908或由那些作业908利用的应用程序906或两者迁移到不同的主机904上。在CPU绑定或I/O绑定的主机904的示例中,用户可向系统管理员警告此主机904的潜在容量问题。
在一些示例中,当执行与图相关联的作业时,操作控制中心记录图的源代码的版本。如果作业未能成功完成,则可将与此作业相关联的图与图的另一版本(例如,与先前成功完成的作业相关联的图)进行比较。图的两个版本之间的差异的图形表示可帮助操作员容易地理解可引起作业失败的已改变的内容。
在一些示例中,可响应于用户输入(诸如获得关于失败的作业的更多信息的用户请求)执行图的两个版本之间的比较。例如,用户可通过用户界面956或通过指示作业的失败状态的警告或通信来访问比较功能。
参见图13,在操作控制中心界面350的示例中,作业窗口352提供对关于作业(诸如完成的作业、当前正在运行的作业或经调度在未来运行的作业)的细节的访问。从作业窗口352,比较动作354使基于其执行作业的图的版本能够与图的另一版本(诸如,当前版本或先前版本)进行比较。在图12的示例中,作业窗口352提供关于基于特定图成功运行的最近作业的细节,并且比较动作354将图的此版本与图的当前版本进行比较。这样的比较可以是有用的,例如,用于理解为什么基于图的当前版本运行的作业不再能够成功完成。这样的比较也可以是有用的,例如,用于确定图是否已经相对于较早版本被修改。
参见图14,在以图形方式表示差异的示例方法中,比较第一计算机程序(例如,第一图)的规范和第二计算机程序(例如,第二图)的规范(300)。基于比较,识别第一计算机程序与第二计算机程序之间的一个或多个差异(302)。一个或多个差异可包括存在于第一图中而不存在于第二图中的节点。一个或多个差异可包括第一图中的第一节点,该第一节点与第二图中的第二节点相对应并且具有与第二节点的相应特征不同的特征,诸如参数值或参数表达式。呈现识别的差异的图形表示(304)。图形表示响应于用户交互。
图15示出数据处理系统1000的示例,其中可使用用于差异的图形表示的技术。系统1000包括数据源1002,该数据源可包括一个或多个数据源诸如存储设备或到在线数据流的连接,数据源中的每一个可以以各种格式(例如,数据库表、电子表格文件、平面文本文件或大型计算机使用的本机格式)中的任一种存储或提供数据。数据可以是逻辑数据、分析数据或机器数据。执行环境1004包括预处理模块1006和执行模块1012。例如,在合适的操作系统(诸如UNIX操作系统版本)的控制下,执行环境1004可被托管在一个或多个通用计算机上。例如,执行环境1004可包括多节点并行计算环境,该多节点并行计算环境包括使用多个中央处理单元(CPU)或处理器核的计算机系统的配置、或是本地的(例如,多处理器系统,诸如对称多处理(SMP)计算机)、或是本地分布式的(例如,作为集群或大规模并行处理(MPP)系统联接的多个处理器)、或是远程的或远程分布的(例如,经由局域网(LAN)和/或广域网(WAN)联接的多个处理器)、或其任何组合。
提供数据源1002的存储设备对执行环境1004可以是本地的,例如,被存储在连接到托管执行环境1004的计算机的存储介质(例如,硬盘驱动器1008)上、或可远离执行环境1004,例如,被托管在远程系统(例如,大型计算机1010)上,该远程系统通过远程连接(例如,由云计算基础设施提供)与托管执行环境1004的计算机通信。
预处理模块1006从数据源1002读取数据并准备数据处理应用程序以供执行。例如,预处理模块1006可编译数据处理应用程序、将编译数据处理应用程序存储到执行环境1004可访问的数据存储系统1016和/或加载来自该数据存储系统的编译数据处理应用程序、以及执行其他任务以准备数据处理应用程序以供执行。
执行模块1012执行由预处理模块1006准备的数据处理应用程序,以处理数据集并生成由处理产生的输出数据1014。输出数据1014可存储回数据源1002中或存储在执行环境1004可访问的数据存储系统1016中、或以其他方式使用。数据存储系统1016也可由开发环境1018访问,其中开发者1020能够设计并编辑将由执行模块1012执行的数据处理应用程序。在一些具体实施中,开发环境1018是用于将应用程序开发为数据流图的系统,该数据流图包括通过顶点之间的有向链路(表示工作元素(即数据)的流)连接的顶点(表示数据处理组件或数据集)。例如,在名称为“为基于图的应用程序管理参数(Managing Parametersfor Graph-Based Applications)”的美国专利公布号2007/0011668中更详细地描述了这种环境,该公布通过援引并入本文。在名称为“执行表示为图的计算(EXECUTINGCOMPUTATIONS EXPRESSED AS GRAPHS)”的美国专利5,966,072中描述了一种用于执行此类基于图的计算的系统,该专利通过援引以其全文并入本文。根据该系统制成的数据流图提供了用于将信息输入和输出由图组件表示的各个过程、用于在过程之间移动信息、以及用于为过程限定运行顺序的方法。该系统包括从任何可用方法中选择过程间通信方法的算法(例如,根据图的链路的通信路径可使用TCP/IP或UNIX域套接字、或使用共享存储器以在过程之间传递数据)。
预处理模块1006可从可体现数据源1002的各种类型的系统(包括不同形式的数据库系统)接收数据。数据可被组织为具有相应字段(也称为“属性”或“列”)的值(包括可能的空值)的记录。当首先从数据源读取数据时,预处理模块1006通常以关于此数据源中的记录的一些初始格式信息开始。在一些情况下,数据源的记录结构最初可能不是已知的,而是可在分析数据源或数据之后确定。关于记录的初始信息可包括例如表示不同值的位数、记录内的字段的顺序,以及由位表示的值的类型(例如,字符串、有符号/无符号整数)。
可使用执行合适软件的计算系统来实施上述差异的图形表示的方法。例如,软件可包括一个或多个计算机程序中的在一个或多个编程的或可编程的计算系统(其可以具有各种架构,诸如分布式、客户端/服务器、或网格)上执行的程序,该计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、至少一个用户界面(用于使用至少一个输入设备或端口接收输入,并且用于使用至少一个输出设备或端口提供输出)。软件可包括较大程序的一个或多个模块,例如,提供与对图的设计、配置和执行有关的服务的模块。程序模块(例如,图的元素)可被实施为数据结构或符合存储在数据储存库中的数据模型的其他经组织的数据。
软件可设置在有形、非暂态介质诸如CD-ROM或其他计算机可读介质(例如,可由通用或专用计算系统或设备读取)上、或通过网络的通信介质递送(例如,被编码到传播信号中)到其被执行的计算系统的有形、非暂态介质。该处理的一些或全部可在专用计算机上执行、或使用专用硬件诸如协处理器或现场可编程门阵列(FPGA)或专用的专用集成电路(ASIC)来执行。该处理可以以分布式方式来实施,其中由软件指定的计算的不同部分由不同的计算元件执行。每一个这种计算机程序优选地存储在或下载到可由通用或专用可编程计算机访问的存储设备的计算机可读存储介质(例如,固态存储器或介质、或磁性介质或光学介质)上,以便当由计算机读取存储设备介质以执行本文中描述的处理时,对计算机进行配置和操作。也可认为本发明的系统被实施为配置有计算机程序的有形非暂态介质,其中,如此配置的介质致使计算机以指定的且预定义的方式操作以便执行本文中描述的处理步骤中的一项或多项。
已经描述了本发明的多个实施例。然而,应当理解,前述描述旨在说明而非限制本发明的范围,本发明的范围由所附权利要求书的范围限定。因此,其他实施例也在所附权利要求书的范围内。例如,在不背离本发明的范围的情况下,可进行各种修改。另外,上述步骤中的一些可以是顺序独立的,并且因此可以以与所描述的顺序不同的顺序来执行。
Claims (47)
1.一种用于显示第一可执行数据流图与第二可执行数据流图之间的差异的方法,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路,该方法包括:
通过计算机比较该第一可执行数据流图的规范和该第二可执行数据流图的规范,以识别该第一可执行数据流图与该第二可执行数据流图之间的一个或多个差异,
其中,给定可执行数据流图的规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的数据的操作;
比较该第一可执行数据流图和该第二可执行数据流图包括以下中的至少一者:
(1)识别该第一可执行数据流图中的不与该第二可执行数据流图的任何节点或链路相对应的特定节点或链路,以及
(2)识别该第一可执行数据流图中的与该第二可执行数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异;以及
制定该第一可执行数据流图或该第二可执行数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及
在图形编辑界面中显示该图形表示,
其中,识别该第一节点或链路与该第二节点或链路之间的差异包括以下至少之一:
识别该第一节点或链路的已解析参数与该第二节点或链路的已解析参数之间的差异,以及
识别该第一节点或链路的参数的表达式与该第二节点或链路的参数的表达式之间的差异。
2.如权利要求1所述的方法,其中该第一可执行数据流图是特定数据流图的第一版本,并且其中,该第二可执行数据流图是该特定数据流图的第二版本。
3.如权利要求1所述的方法,其中该图形指示符是该图形表示中该第一节点或链路、该第二节点或链路或该特定节点或链路的颜色。
4.如权利要求3所述的方法,其中该图形指示符的颜色指示该第一节点或链路与该第二节点或链路之间的所识别的差异的类型。
5.如权利要求1所述的方法,其中该图形指示符是该图形表示中该第一节点或链路、该第二节点或链路或该特定节点或链路的阴影或填充物。
6.如权利要求1所述的方法,其中该图形指示符包括定位在该第一节点或链路、该第二节点或链路或该特定节点或链路附近的符号。
7.如权利要求1所述的方法,其中该图形指示符对用户交互进行响应。
8.如权利要求7所述的方法,包括使得能够响应于与该图形指示符的用户交互而访问指示所识别的差异的信息。
9.如权利要求1所述的方法,其中该第一可执行数据流图包含第一数据流子图,并且其中,该第二可执行数据流图包含第二数据流子图,并且该方法包括:
比较该第一数据流子图的规范和该第二数据流子图的规范;以及
基于该比较,识别该第一数据流子图与该第二数据流子图之间的一个或多个差异。
10.如权利要求9所述的方法,其中该图形表示包括该第一数据流子图的至少一部分或该第二数据流子图的至少一部分的图形表示,该图形表示包括该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的图形指示符。
11.如权利要求9所述的方法,其中该图形表示包括:该第一可执行数据流图与该第二可执行数据流图之间的这些识别的差异中的至少一个、以及该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的层级表示。
12.如权利要求1所述的方法,其中比较该第一可执行数据流图的规范和该第二可执行数据流图的规范包括比较由该第一可执行数据流图引用的第一文件和由该第二可执行数据流图引用的第二文件。
13.如权利要求12所述的方法,其中该图形表示包括该第一文件与该第二文件之间的一个或多个差异的图形表示。
14.如权利要求1所述的方法,其中识别与第二节点或链路相对应的第一节点或链路包括基于以下中的一者或多者来识别该第一节点:(1)该第一节点或链路和该第二节点或链路的名称,以及(2)该第一节点或链路和该第二节点或链路的标识符。
15.如权利要求1所述的方法,其中识别与第二节点或链路相对应的第一节点或链路包括基于与进入或离开该第一节点和该第二节点的数据流相关联的信息来识别该第一节点。
16.如权利要求1所述的方法,其中识别与第二节点或链路相对应的第一节点或链路包括基于该第一节点或链路和该第二节点或链路的上游或下游的节点或链路来识别该第一节点或链路。
17.如权利要求1所述的方法,包括:
准备该第一可执行数据流图和该第二可执行数据流图以供执行;以及
比较所准备的第一可执行数据流图和第二可执行数据流图的规范。
18.一种存储有指令的非暂态计算机可读介质,这些指令用于使计算机显示第一可执行数据流图与第二可执行数据流图之间的差异,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路,这些指令使该计算机:
比较该第一可执行数据流图的规范与该第二可执行数据流图的规范,以识别该第一可执行数据流图与该第二可执行数据流图之间的一个或多个差异,
其中,给定可执行数据流图的规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的数据的操作;
比较该第一可执行数据流图和该第二可执行数据流图包括以下中的至少一者:
(1)识别该第一可执行数据流图中的不与该第二可执行数据流图的任何节点或链路相对应的特定节点或链路,以及
(2)识别该第一可执行数据流图中的与该第二可执行数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异;以及
制定该第一可执行数据流图或该第二可执行数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及
在图形编辑界面中显示该图形表示,
其中,识别该第一节点或链路与该第二节点或链路之间的差异包括以下至少之一:
识别该第一节点或链路的已解析参数与该第二节点或链路的已解析参数之间的差异,以及
识别该第一节点或链路的参数的表达式与该第二节点或链路的参数的表达式之间的差异。
19.如权利要求18所述的非暂态计算机可读介质,其中该图形指示符对用户交互进行响应。
20.如权利要求19所述的非暂态计算机可读介质,该指令使计算机能够响应于与该图形指示符的用户交互而访问指示所识别的差异的信息。
21.如权利要求18所述的非暂态计算机可读介质,其中该第一可执行数据流图包含第一数据流子图,并且其中,该第二可执行数据流图包含第二数据流子图,并且其中,该指令使计算机:
比较该第一数据流子图的规范和该第二数据流子图的规范;以及
基于该比较,识别该第一数据流子图与该第二数据流子图之间的一个或多个差异。
22.如权利要求21所述的非暂态计算机可读介质,其中该图形表示包括该第一数据流子图的至少一部分或该第二数据流子图的至少一部分的图形表示,该图形表示包括该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的图形指示符。
23.如权利要求21所述的非暂态计算机可读介质,其中该图形表示包括:该第一可执行数据流图与该第二可执行数据流图之间的这些识别的差异中的至少一个、以及该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的层级表示。
24.如权利要求18所述的非暂态计算机可读介质,其中识别与第二节点或链路相对应的第一节点或链路包括基于以下中的一者或多者来识别该第一节点:(1)该第一节点或链路和该第二节点或链路的名称,以及(2)该第一节点或链路和该第二节点或链路的标识符。
25.如权利要求18所述的非暂态计算机可读介质,其中识别与第二节点或链路相对应的第一节点或链路包括基于与进入或离开该第一节点和该第二节点的数据流相关联的信息来识别该第一节点。
26.如权利要求18所述的非暂态计算机可读介质,其中识别与第二节点或链路相对应的第一节点或链路包括基于该第一节点或链路和该第二节点或链路的上游或下游的节点或链路来识别该第一节点或链路。
27.如权利要求18所述的非暂态计算机可读介质,该指令使计算机:
准备该第一可执行数据流图和该第二可执行数据流图以供执行;以及
比较所准备的第一可执行数据流图和第二可执行数据流图的规范。
28.一种用于显示第一可执行数据流图与第二可执行数据流图之间的差异的系统,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路,该系统包括:
一个或多个处理器和存储器,该一个或多个处理器和存储器被配置为:
比较该第一可执行数据流图的规范与该第二可执行数据流图的规范,以识别该第一可执行数据流图与该第二可执行数据流图之间的一个或多个差异,
其中,给定可执行数据流图的规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的数据的操作;
比较该第一可执行数据流图和该第二可执行数据流图包括以下中的至少一者:
(1)识别该第一可执行数据流图中的不与该第二可执行数据流图的任何节点或链路相对应的特定节点或链路,以及
(2)识别该第一可执行数据流图中的与该第二可执行数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异;以及
制定该第一可执行数据流图或该第二可执行数据流图的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及
在图形编辑界面中显示该图形表示,
其中,识别该第一节点或链路与该第二节点或链路之间的差异包括以下至少之一:
识别该第一节点或链路的已解析参数与该第二节点或链路的已解析参数之间的差异,以及
识别该第一节点或链路的参数的表达式与该第二节点或链路的参数的表达式之间的差异。
29.如权利要求28所述的系统,其中该图形指示符对用户交互进行响应。
30.如权利要求29所述的系统,其中该一个或多个处理器和存储器被配置为能够响应于与该图形指示符的用户交互而访问指示所识别的差异的信息。
31.如权利要求28所述的系统,其中该第一可执行数据流图包含第一数据流子图,并且其中,该第二可执行数据流图包含第二数据流子图,并且其中,该一个或多个处理器和存储器被配置为:
比较该第一数据流子图的规范和该第二数据流子图的规范;以及
基于该比较,识别该第一数据流子图与该第二数据流子图之间的一个或多个差异。
32.如权利要求31所述的系统,其中该图形表示包括该第一数据流子图的至少一部分或该第二数据流子图的至少一部分的图形表示,该图形表示包括该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的图形指示符。
33.如权利要求31所述的系统,其中该图形表示包括:该第一可执行数据流图与该第二可执行数据流图之间的这些识别的差异中的至少一个、以及该第一数据流子图与该第二数据流子图之间的这些识别的差异中的至少一个的层级表示。
34.如权利要求28所述的系统,其中识别与第二节点或链路相对应的第一节点或链路包括基于以下中的一者或多者来识别该第一节点:(1)该第一节点或链路和该第二节点或链路的名称,以及(2)该第一节点或链路和该第二节点或链路的标识符。
35.如权利要求28所述的系统,其中识别与第二节点或链路相对应的第一节点或链路包括基于与进入或离开该第一节点和该第二节点的数据流相关联的信息来识别该第一节点。
36.如权利要求28所述的系统,其中识别与第二节点或链路相对应的第一节点或链路包括基于该第一节点或链路和该第二节点或链路的上游或下游的节点或链路来识别该第一节点或链路。
37.如权利要求28所述的系统,其中该一个或多个处理器和存储器被配置为:
准备该第一可执行数据流图和该第二可执行数据流图以供执行;以及
比较所准备的第一可执行数据流图和第二可执行数据流图的规范。
38.一种用于显示第一可执行数据流图与第二可执行数据流图之间的差异的系统,每一个数据流图可执行以处理由该数据流图接收的数据,每一个数据流图包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路,该系统包括:
用于比较该第一可执行数据流图的规范和该第二可执行数据流图的规范以识别该第一可执行数据流图与该第二可执行数据流图之间的一个或多个差异的装置,
其中,给定可执行数据流图的规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的数据的操作;
比较该第一可执行数据流图和该第二可执行数据流图包括以下中的至少一者:
(1)识别该第一可执行数据流图中的不与该第二可执行数据流图的任何节点或链路相对应的特定节点或链路,以及
(2)识别该第一可执行数据流图中的与该第二可执行数据流图的第二节点或链路相对应的第一节点或链路,并识别该第一节点或链路与该第二节点或链路之间的差异;以及
用于制定该第一可执行数据流图或该第二可执行数据流图的节点或链路中的至少一些的图形表示的装置,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的特定节点或链路,(2)该第一节点或链路与该第二节点或链路之间的所识别的差异;以及
用于在图形编辑界面中显示该图形表示的装置,
其中,识别该第一节点或链路与该第二节点或链路之间的差异包括以下至少之一:
识别该第一节点或链路的已解析参数与该第二节点或链路的已解析参数之间的差异,以及
识别该第一节点或链路的参数的表达式与该第二节点或链路的参数的表达式之间的差异。
39.一种用于显示可执行数据流图的第一版本与该可执行数据流图的第二版本之间的差异的方法,该数据流图可执行以处理由该数据流图接收的数据,该数据流图的每一个版本包括表示数据处理组件的一个或多个节点以及表示组件之间的数据流的一个或多个链路,该方法包括:
利用集成控制系统监测作业的状态,该作业包括可被执行以处理数据的一个或多个操作,该作业与该可执行数据流图的第一版本相关联;
使得能够输出指示该作业的状态的信息;
响应于与该集成控制系统的用户交互或所输出的信息,识别该可执行数据流图的第二版本;
比较该数据流图的第一版本的规范和该数据流图的第二版本的规范,以识别该数据流图的第一版本与该数据流图的第二版本之间的一个或多个差异,
其中,给定可执行数据流图的规范定义各自表示要由该数据流图处理的数据源的一个或多个节点、各自表示数据处理组件的一个或多个节点、和各自表示由该数据流图处理的数据的目的地的一个或多个节点,该数据处理组件定义待执行以处理来自该数据源的数据的操作;
比较该数据流图的第一版本和该数据流图的第二版本包括以下中的至少一者:
(1)识别该数据流图的第一版本中的不与该数据流图的第二版本的任何节点或链路相对应的第一节点或链路,
(2)识别该数据流图的第二版本中的不与该数据流图的第一版本的任何节点或链路相对应的第二节点或链路,以及
(3)识别该数据流图的第一版本中的与该数据流图的第二版本的第四节点或链路相对应的第三节点或链路,并识别该第三节点或链路与该第四节点或链路之间的差异,
制定该数据流图的第一版本或该数据流图的第二版本的节点或链路中的至少一些的图形表示,该图形表示包括以下中的至少一者的图形指示符:(1)所识别的第一节点或链路,(2)所识别的第二节点或链路,以及(3)该第三节点或链路与该第四节点或链路之间的所识别的差异,
其中,识别该数据流图的第一版本与该数据流图的第二版本之间的差异包括以下至少之一:
识别该数据流图的第一版本的已解析参数与该数据流图的第二版本的已解析参数之间的差异,以及
识别该数据流图的第一版本的参数的表达式与该数据流图的第二版本的参数的表达式之间的差异。
40.如权利要求39所述的方法,其中先前执行的作业与该数据流图的第二版本相关联。
41.如权利要求39所述的方法,其中该图形表示包括这些识别的差异中的一个或多个的层级表示。
42.如权利要求39所述的方法,包括制定该图形表示以用于在该集成控制系统的用户界面中显示。
43.如权利要求39所述的方法,其中识别该数据流图的第一版本与该数据流图的第二版本之间的差异还包括识别由该数据流图的第一版本引用的第一文件与由该数据流图的第二版本引用的第二文件之间的差异。
44.如权利要求39所述的方法,其中监测该作业的状态包括监测以下中的一个或多个:该作业的活动、该作业的实际开始时间、该作业的估计开始时间、与该作业相关联的处理持续时间和该作业的大小。
45.如权利要求39所述的方法,其中监测该作业的状态包括确定该作业是否成功完成。
46.如权利要求39所述的方法,包括监测应用程序的状态,其中,该作业与该应用程序相关联。
47.如权利要求46所述的方法,包括监测计算设备的状态,其中,该应用程序由该计算设备托管。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662431195P | 2016-12-07 | 2016-12-07 | |
US62/431,195 | 2016-12-07 | ||
US15/587,987 US10802945B2 (en) | 2016-12-07 | 2017-05-05 | Differencing of executable dataflow graphs |
US15/587,987 | 2017-05-05 | ||
PCT/US2017/064493 WO2018106589A1 (en) | 2016-12-07 | 2017-12-04 | Differencing of executable dataflow graphs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110050257A CN110050257A (zh) | 2019-07-23 |
CN110050257B true CN110050257B (zh) | 2023-06-30 |
Family
ID=62240131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780075659.5A Active CN110050257B (zh) | 2016-12-07 | 2017-12-04 | 可执行数据流图的差分 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10802945B2 (zh) |
EP (1) | EP3552092B1 (zh) |
JP (2) | JP6913168B2 (zh) |
CN (1) | CN110050257B (zh) |
AU (1) | AU2017370567B2 (zh) |
CA (1) | CA3046071A1 (zh) |
DE (1) | DE112017006164T5 (zh) |
WO (1) | WO2018106589A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116751293A (zh) | 2016-06-14 | 2023-09-15 | 瑞泽恩制药公司 | 抗c5抗体及其用途 |
US11853529B2 (en) | 2016-11-07 | 2023-12-26 | Tableau Software, Inc. | User interface to prepare and curate data for subsequent analysis |
US10242079B2 (en) | 2016-11-07 | 2019-03-26 | Tableau Software, Inc. | Optimizing execution of data transformation flows |
US10885057B2 (en) | 2016-11-07 | 2021-01-05 | Tableau Software, Inc. | Correlated incremental loading of multiple data sets for an interactive data prep application |
US10802945B2 (en) | 2016-12-07 | 2020-10-13 | Ab Initio Technology Llc | Differencing of executable dataflow graphs |
US10802698B1 (en) * | 2017-02-06 | 2020-10-13 | Lucid Software, Inc. | Diagrams for structured data |
EP3404535A1 (en) * | 2017-05-15 | 2018-11-21 | Ecole Nationale de l'Aviation Civile | Method and apparatus for processing code |
US11010273B2 (en) * | 2017-06-28 | 2021-05-18 | Intel Corporation | Software condition evaluation apparatus and methods |
US10394691B1 (en) * | 2017-10-05 | 2019-08-27 | Tableau Software, Inc. | Resolution of data flow errors using the lineage of detected error conditions |
EP3724226A1 (en) | 2017-12-13 | 2020-10-21 | Regeneron Pharmaceuticals, Inc. | Anti-c5 antibody combinations and uses thereof |
US10990364B2 (en) * | 2018-06-06 | 2021-04-27 | Ab Initio Technology Llc | Updating executable graphs |
US10691304B1 (en) | 2018-10-22 | 2020-06-23 | Tableau Software, Inc. | Data preparation user interface with conglomerate heterogeneous process flow elements |
US11250032B1 (en) | 2018-10-22 | 2022-02-15 | Tableau Software, Inc. | Data preparation user interface with conditional remapping of data values |
US11126411B2 (en) * | 2018-12-13 | 2021-09-21 | Sap Se | Dashboard user interface for data driven applications |
JP2020160854A (ja) * | 2019-03-27 | 2020-10-01 | 株式会社日立製作所 | コード管理システム、及びコード管理方法 |
CN110928765B (zh) * | 2019-10-11 | 2021-08-03 | 京东数字科技控股有限公司 | 一种链路测试方法及装置 |
US11100097B1 (en) | 2019-11-12 | 2021-08-24 | Tableau Software, Inc. | Visually defining multi-row table calculations in a data preparation application |
EP3822770A1 (en) * | 2019-11-15 | 2021-05-19 | Nvidia Corporation | Techniques for modifying an executable graph to perform a workload associated with a new task graph |
US11487641B1 (en) * | 2019-11-25 | 2022-11-01 | EMC IP Holding Company LLC | Micro services recommendation system for identifying code areas at risk |
US11698848B2 (en) | 2020-01-15 | 2023-07-11 | Microsoft Technology Licensing, Llc | Diffing a subject replayable execution trace against a plurality of comparison replayable execution traces |
US11698847B2 (en) | 2020-01-15 | 2023-07-11 | Microsoft Technology Licensing, Llc | Diffing a subject replayable execution trace against a comparison replayable execution trace |
US11243869B2 (en) * | 2020-01-15 | 2022-02-08 | Microsoft Technologly Licensing, LLC | Diffing of replayable execution traces |
CN112015397B (zh) * | 2020-09-07 | 2023-09-26 | 深圳职业技术学院 | 环路检测方法及系统 |
CN112187579B (zh) * | 2020-09-28 | 2021-11-23 | 中国建设银行股份有限公司 | 数据传输异常辅助处理方法、装置、设备及可读存储介质 |
US12008040B2 (en) | 2021-03-25 | 2024-06-11 | Databricks, Inc. | Dataflow graph processing with expectations |
CN113419739B (zh) * | 2021-06-22 | 2022-12-06 | 网易(杭州)网络有限公司 | 节点图差异检测方法、装置、电子设备及存储介质 |
US12032994B1 (en) | 2021-10-18 | 2024-07-09 | Tableau Software, LLC | Linking outputs for automatic execution of tasks |
US11656744B1 (en) * | 2022-03-14 | 2023-05-23 | Wolters Kluwer Technology BV | Interactive tool for efficiently developing task flows |
US11989537B2 (en) * | 2022-06-09 | 2024-05-21 | Xilinx, Inc. | Dataflow-based computer program visualization and refactoring |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974254A (en) * | 1997-06-06 | 1999-10-26 | National Instruments Corporation | Method for detecting differences between graphical programs |
CN102754072A (zh) * | 2009-12-14 | 2012-10-24 | 起元技术有限责任公司 | 规定用户界面元素 |
JP2014197297A (ja) * | 2013-03-29 | 2014-10-16 | 日本電気株式会社 | 移動車両位置検知システム、サーバ、車両端末、移動車両位置検知方法、プログラム、および記録媒体 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
JPH10177477A (ja) | 1996-10-18 | 1998-06-30 | Nippon Steel Corp | 業務設計支援システム |
US7139837B1 (en) * | 2002-10-04 | 2006-11-21 | Ipolicy Networks, Inc. | Rule engine |
US7594227B2 (en) * | 2004-03-08 | 2009-09-22 | Ab Initio Technology Llc | Dependency graph parameter scoping |
CA2579691A1 (en) * | 2004-09-16 | 2006-03-30 | Telenor Asa | A method, system, and computer program product for searching for, navigating among, and ranking of documents in a personal web |
US7703027B2 (en) * | 2005-01-13 | 2010-04-20 | National Instruments Corporation | Merging graphical programs |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US9110706B2 (en) * | 2009-02-09 | 2015-08-18 | Microsoft Technology Licensing, Llc | General purpose distributed data parallel computing using a high level language |
US8205113B2 (en) * | 2009-07-14 | 2012-06-19 | Ab Initio Technology Llc | Fault tolerant batch processing |
US9811233B2 (en) * | 2013-02-12 | 2017-11-07 | Ab Initio Technology Llc | Building applications for configuring processes |
JP6061273B2 (ja) * | 2013-03-29 | 2017-01-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 表示装置、表示方法、及びプログラム |
US10338543B2 (en) * | 2014-04-04 | 2019-07-02 | Schneider Electric Software, Llc | Integrated model predictive control and advanced process control |
US10152406B2 (en) * | 2015-08-25 | 2018-12-11 | Fujistu Limited | Software program repair |
US10802945B2 (en) | 2016-12-07 | 2020-10-13 | Ab Initio Technology Llc | Differencing of executable dataflow graphs |
-
2017
- 2017-05-05 US US15/587,987 patent/US10802945B2/en active Active
- 2017-12-04 CN CN201780075659.5A patent/CN110050257B/zh active Active
- 2017-12-04 AU AU2017370567A patent/AU2017370567B2/en active Active
- 2017-12-04 JP JP2019528545A patent/JP6913168B2/ja active Active
- 2017-12-04 EP EP17822835.9A patent/EP3552092B1/en active Active
- 2017-12-04 DE DE112017006164.4T patent/DE112017006164T5/de active Pending
- 2017-12-04 CA CA3046071A patent/CA3046071A1/en active Pending
- 2017-12-04 WO PCT/US2017/064493 patent/WO2018106589A1/en unknown
-
2020
- 2020-10-09 US US17/067,020 patent/US11455229B2/en active Active
-
2021
- 2021-07-09 JP JP2021113911A patent/JP2021180013A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974254A (en) * | 1997-06-06 | 1999-10-26 | National Instruments Corporation | Method for detecting differences between graphical programs |
CN102754072A (zh) * | 2009-12-14 | 2012-10-24 | 起元技术有限责任公司 | 规定用户界面元素 |
JP2014197297A (ja) * | 2013-03-29 | 2014-10-16 | 日本電気株式会社 | 移動車両位置検知システム、サーバ、車両端末、移動車両位置検知方法、プログラム、および記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20180157579A1 (en) | 2018-06-07 |
US10802945B2 (en) | 2020-10-13 |
AU2017370567A1 (en) | 2019-06-06 |
US11455229B2 (en) | 2022-09-27 |
EP3552092A1 (en) | 2019-10-16 |
JP2021180013A (ja) | 2021-11-18 |
US20210208999A1 (en) | 2021-07-08 |
CN110050257A (zh) | 2019-07-23 |
JP2020504862A (ja) | 2020-02-13 |
AU2017370567B2 (en) | 2022-03-10 |
CA3046071A1 (en) | 2018-06-14 |
JP6913168B2 (ja) | 2021-08-04 |
WO2018106589A1 (en) | 2018-06-14 |
DE112017006164T5 (de) | 2019-08-29 |
EP3552092B1 (en) | 2022-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110050257B (zh) | 可执行数据流图的差分 | |
EP2609507B1 (en) | Evaluating dataflow graph characteristics | |
KR102126099B1 (ko) | 데이터에 규칙 지정 및 적용 | |
US8196047B2 (en) | Flexible visualization for services | |
US8832662B2 (en) | Rules engine for architectural governance | |
US10083060B2 (en) | System for error checking of process definitions for batch processes | |
US9495200B2 (en) | System for partitioning batch processes | |
US8413108B2 (en) | Architectural data metrics overlay | |
US20140075357A1 (en) | Enabling real-time opertional environment conformity to an enterprise model | |
US8904357B2 (en) | Dashboard for architectural governance | |
US11442837B2 (en) | Monitoring long running workflows for robotic process automation | |
CN112368675B (zh) | 更新可执行图的方法、系统和介质 | |
US10884798B2 (en) | Pipeline task verification for a data processing platform | |
US9959288B2 (en) | Declarative cluster management | |
US11494713B2 (en) | Robotic process automation analytics platform | |
Xu et al. | ECL-watch: a big data application performance tuning tool in the HPCC systems platform | |
Henning | Prototype of a scalable monitoring infrastructure for Industrial DevOps | |
Røhne | Architectural Anti-Pattern Identification and Mitigation in Microservice Applications Based on Telemetry | |
Stanev et al. | Architecture knowledge for software generation | |
FÉLIX | METHODOLOGY FOR RECOMMENDATION OF MICROSERVICES ARCHITECTURES | |
Röhl | Design and implementation of a framework to automate the inclusion of patterns in existing architectures |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |