CN101192239A - 实现用于集成系统的统一模型的系统和方法 - Google Patents

实现用于集成系统的统一模型的系统和方法 Download PDF

Info

Publication number
CN101192239A
CN101192239A CNA2007101927274A CN200710192727A CN101192239A CN 101192239 A CN101192239 A CN 101192239A CN A2007101927274 A CNA2007101927274 A CN A2007101927274A CN 200710192727 A CN200710192727 A CN 200710192727A CN 101192239 A CN101192239 A CN 101192239A
Authority
CN
China
Prior art keywords
operator
data
data item
particle
square frame
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.)
Pending
Application number
CNA2007101927274A
Other languages
English (en)
Inventor
A·巴尔-奥尔
M·J·贝克勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101192239A publication Critical patent/CN101192239A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

介绍一种实现用于集成系统的统一模型的系统和方法。用户提供输入到集成化语言引擎以便将算子组件和弧组件放置到数据流程图上。算子组件包括用于表达数据流的数据端口,并且还包括用于表达控制流的元端口。弧组件将算子组件连接起来供数据和控制信息在各算子组件间流动。数据流程图是表达应用的有向非循环图,其在设计过程期间不包括人工边界。一旦集成化语言引擎生成数据流程图,则该集成化语言引擎将该数据流程图编译成生成的应用代码。

Description

实现用于集成系统的统一模型的系统和方法
技术领域
本发明涉及一种实现用于集成系统的统一模型的系统和方法。更为特别地,本发明涉及一种系统和方法,其用于使用统一模型以在数据流程图中表达应用而不设人工边界,其反过来允许更大的应用优化。
背景技术
集成世界中的应用通常按诸如批量、事务和连续之类的类别进行区分。批量处理集成应用(IA)主要使用在新的集成解决方案替代旧定制的完全不同的应用并且需要移动现有数据的情况下。事务IA主要以商业过程管理(BPM)的形式出现,其中各种应用在事务保证下通过互换请求和彼此应答来实现商业过程。而连续IA是判决支持领域中的新兴应用。综合事件处理(CEP)、事件驱动架构(EDA)、实时数据挖掘和知识提取、商业活动监视(BAM)都是连续应用的例子,其连续地处理来自完全不同的应用的按时间排序的数据以提供对在机构中流动的数据更好的理解。
在企业集成世界中的主流技术是ETL(提取、变换、装载)、EAI(企业应用集成)和EII(企业信息集成)。这些技术中的每种技术相比其他技术都具有优点和缺点,并且因此这些技术的任何一种都没有获得压倒性的胜利。虽然这些技术具有不同的能力,但是它们仍然共享许多概念和组件,并且在许多时候可以使用一种技术来替代另一种。
SQL(选择查询语言)模型是在关系数据库所基于的EII系统背后的模型。用SQL表达的这种模型被变换成数据流有向树图。该图的顶点是集合算子,并且数据集合在各算子间流动,只要它们是可用的。在ETL系统背后的模型也是类似于SQL模型的数据流模型,虽然该模型可以表达任何有向非循环图而不仅仅是树图。在EAI系统背后的模型是工作流模型。该模型可以用BPEL来表达并且表示有向非循环图,在该图中顶点是一旦进入数据就执行的活动。
所发现的挑战是,现有技术具有人工区分,其产生相当多的冗余。另外,现有技术不提供针对连续应用的解决方案。所发现的另一个挑战是,现有模型中的每种模型相比其他模型具有缺点,并且因此对于解决方案架构而言,选择设计应用将使用的系统和模型可能并不总是清楚的。另外,因为现有模型的缺点,许多解决方案不能使用现有模型来实现。作为结果,解决方案架构可能需要定制解决方案,其开发和维护起来都很昂贵。此外,定制解决方案通常质量较低,因为打包软件经历更苛刻的测试。
因此,需要一种系统和方法,其使用包含现有系统模型的优点的统一模型来表达应用。
发明内容
已经发现,通过使用一种用于在数据流计算系统中使用数据流程图来模拟数据流的系统、方法和计算机程序产品解决了上述挑战。该数据流程图包括多个算子,每个算子包括至少一个输入端口或至少一个输出端口。该数据流程图还包括多个弧,每个弧将算子的输出端口之一连接到不同算子的输入端口。在该数据流程图中,多个数据项沿着各算子之间的弧以流进行流动。第一算子将多个数据项归类成粒子并对该粒子归类执行计算,其得到已计算的多个数据项。该第一算子在多个弧之一上将已计算的多个数据项传送给第二算子。另外,该第一算子基于元状态转移在它的元端口之一上产生控制数据项,所述元状态转移响应于对在粒子归类执行的计算。最终,该第一算子将控制数据项传送给另一算子,其反过来基于控制数据项来控制已计算的多个数据项的流动。
在一个实施例中,该系统、方法和计算机程序产品使用控制数据项来通过使用门算子控制已计算的多个数据项的流动。在这个实施例中,门算子阻止已计算的多个数据项到达不同的算子,直到控制数据项指示门算子将已计算的多个数据项提供给不同的算子。
在一个实施例中,该系统、方法和计算机程序产品将控制数据项传送给第二算子,其给第二算子指示一时间,以在该时间处处理已计算的多个数据项。在另一实施例中,该系统、方法和计算机程序产品预定连接到元端口的弧只接收多个控制数据项的子集。
在一个实施例中,该系统、方法和计算机程序产品将对应于在多个弧上流动的多个数据项的分层数据模型中层级的重复部分的粒子归类。
在一个实施例中,该系统、方法和计算机程序产品将多个控制数据项耦合到外部资源运算,以便指示所述外部资源运算的开始或完成。在另一实施例中,该系统、方法和计算机程序产品包括使用多个算子对多个数据项的并行执行。在又一实施例中,该系统、方法和计算机程序产品从包括流水线执行和数据并行执行的组中选择该并行执行。
在一个实施例中,该系统、方法和计算机程序产品包括一个或多个声明状态的算子,其累积在包括在粒子中的多个数据项上的状态。
在一个实施例中,该系统、方法和计算机程序产品将数据流程图编译成可顺序执行的代码。在另一实施例中,该系统、方法和计算机程序产品在第一算子处包括对应于与对包括在粒子中的多个数据项执行的计算相关的当前处理状态的元状态。在又一实施例中,该系统、方法和计算机程序产品表达在多个行为之间的控制依赖性。
在一个实施例中,该系统、方法和计算机程序产品将第一算子和第二算子指定为独立的处理构造。
在一个实施例中,该系统、方法和计算机程序产品在数据流程图中包括方框,所述数据流程图包括第一算子和第二算子。在另一实施例中,该系统、方法和计算机程序产品包括方框元状态,该方框元状态对应于与第一算子和第二算子相关联的元状态。在又一实施例中,该系统、方法和计算机程序产品在方框上包括方框元端口,其基于方框元状态的转移来产生方框控制数据。
在一个实施例中,该系统、方法和计算机程序产品使用数据流程图来对应于批量数据处理应用。在另一实施例中,该系统、方法和计算机程序产品使用数据流程图来对应流数据处理应用。在又一实施例中,该系统、方法和计算机程序产品使用数据流程图来对应事件处理应用。在又一实施例中,该系统、方法和计算机程序产品在数据流程图中包括图形符号。在另一实施例中,该系统、方法和计算机程序产品在数据流程图中包括非图形语言实现。
上述内容是概述并且因此必要地包含对细节的简化、概括和省略;因此本领域的普通技术人员将意识到该概述只是说明性的并且不是旨在作为任何限制。在以下阐述的非限制的详细描述中,由权利要求所唯一定义的其它方面、发明性的特征、以及本发明的优点将变得明显。
附图说明
通过参考附图可以更好地理解本发明,并且向本领域的普通技术人员明白展示本发明的众多目的、特征以及优点。
图1是示出用户基于统一集成模型创建数据流程图的示图;
图2是示出在使用统一集成模型来生成应用代码时所采取的步骤的流程图;
图3是示出算子组件的输入端口、输出端口和元端口的示图;
图4A是用于算子组件的弧级元状态的状态图;
图4B是用于算子组件的粒子级元状态的状态图;
图5是示出统一集成模型的各种组件的示图;
图6是示出算子通过弧接收粒子并通过其它弧将粒子提供给其它算子的示图;
图7是在统一集成模型内“熔合”粒子和“分裂”粒子的示图;
图8是示出在统一集成模型内将粒子视作波的示图;
图9是示出算子组件使用元端口来顺序地处理粒子的示图;
图10是示出数据模型的示图;
图11是示出需要不同模型来表达应用的现有技术的示图;
图12是示出使用统一集成模型所表达的应用的示图;
图13是能够实现本发明的计算设备的框图。
具体实施方式
以下内容旨在提供对本发明的例子的详细描述,并且不应该被用来限制本发明自身。相反,任何数量的变型可落入所附的权利要求所定义的本发明的范围内。
图1是示出用户基于统一集成模型创建数据流程图的示图。用户100提供输入110给集成化语言引擎130,其使用统一集成模型来生成数据流程图。反过来,集成化语言引擎130编译数据流程图以创建应用代码。
系统120包括集成化语言引擎130、组件存储库140、数据流程图存储库150、以及代码存储库160。集成化语言引擎130从用户100接收输入110用于创建数据流程图。数据流程图是有向非循环图,其包括诸如算子、弧和方框之类的组件以表达应用。使用统一模型组件,在应用设计过程期间,不放置人工边界,由此能够进行优化以确定如何以不同的方式实现不同的设计方面(更多的细节请参见图12和对应的文字)。组件存储库140、数据流程图存储库150和代码存储库160可被存储在诸如计算机硬盘驱动器之类的非易失性存储区域上。
集成化语言引擎130从对应于输入110的组件存储库140检索组件,并在数据流程图上由用户100所指定的位置处插入组件,诸如算子和/或弧。当用户100结束编辑数据流程图时,集成化语言引擎130编译数据流程图,并在代码存储库160中存储已编译的代码。
集成化语言引擎130给用户100提供设计综合集成的能力,在单个图形设计范例中综合集成涉及事务、批量、流和事件驱动行为的组合。另外,集成化语言引擎130还给用户100提供以单个工具表达这种设计的能力,而不需要在设计过程中过早地针对不同的最后执行环境强迫使用不同的工具。
图2是示出在使用统一集成模型来生成应用代码时所采取的步骤的流程图。处理开始于200处,其中处理在步骤210处从用户100接收输入。例如,用户100可选择将被插入数据流程图的统一模型组件,诸如算子、弧和方框。
在步骤220处,处理从组件存储库140检索统一模型组件,开始生成数据流程图,其被存储在数据流程图存储库150中。数据流程图可对应于诸如批量数据处理应用、流数据处理应用或事件处理应用之类的应用。数据流程图可包括图形符号或非图形语言实现。组件存储库140和数据流程图存储库150与图1中所示出的相同。
确定用户100是否希望提供关于数据流程图的更多的输入,诸如添加更多的算子和/或使用弧连接算子(判决230)。如果用户100希望提供更多的输入,则判决230转向“是”分支232,其返回以处理更多的用户输入。这种循环一直继续直到用户100结束编辑数据流程图,在该点处判决230转向“否”分支238。
在步骤240处,处理使用编译器和优化器来编译在绘图存储库150中存储的数据流程图,并且将已编译的代码存储在代码存储库160中。在步骤250处,处理执行应用代码,并在步骤260处结束。代码存储库160与图1中所示出的相同。
图3是示出算子组件的输入端口、输出端口和元端口的示图。算子300从外部源读取数据,将数据写到外部源,以及施加数据变换。通常,算子300通过输入端口310和320从进入弧消费数据,并通过输出端口330在外出弧上产生数据。在一个实施例中,统一集成模型提供多个算子类型作为内置算子以提供公共数据存取和变换。在这个实施例中,当用户需要其他算子类型时,用户可创建定制算子并接着将它们集成到统一集成模型。
算子300包括算子300产生控制数据项的两个“元端口”,其是弧级元端口340和粒子级元端口350。弧级元端口340提供“弧级”元状态,其从处理起始点到处理终止点一直保持算子300的执行状态。粒子级元端口350提供“粒子级”元状态,其提供在任何给定的时间点处输入粒子的执行状态。
另外,元端口340和350与“点火(firing)规则”相关联,其定义元状态粒子前进穿过元端口的元状态转移。在一个实施例中,当定义了不只一个转换时,粒子级元端口350可以针对单个进入粒子发送多个粒子。
另外,算子300服从生产者-消费者模型,其中数据是依照值而不是引用进行移动的。换言之,粒子不与其它粒子共享数据。算子300针对每个输入粒子维护元状态,其保持执行状态。当算子300连接到另一算子时,可建立异步通信。在一个实施例中,用户可改变到两个算子之间的同步通信。在这个实施例中,这种改变对应着性能的优化,而语义可保留为异步的。
算子300在输入粒子上可以是“声明状态的”或“无状态的”。当算子300是声明状态的,算子300维护各执行步骤之间的内部状态。例如,窗口算子是收集多个粒子并基于给定的窗口定义来生成单个粒子的算子。在每个执行步骤中,窗口算子消费单个粒子并更新其内部状态,直到该窗口结束并产生输出粒子。
当算子300是“无状态的”,算子300不维护执行步骤之间的内部状态。例如,在单个执行步骤中,分类算子消费单个粒子,对该粒子内的下属内容进行分类,以及产生包含已分类内容的单个粒子。在执行步骤的结尾处,分类算子不保持状态。
图4A是用于算子组件的弧级元状态的状态图。弧级元状态从处理起始点到处理终止点一直保持算子执行的状态。弧级元状态开始于初始状态400,并前进到就绪状态410。当粒子到达时,算子转移到执行状态420。在算子执行之后,当弧关闭时算子转移到已完成状态430,或者当算子遇到不可恢复的错误时转移到错误状态440。
图4B是用于算子组件的粒子级元状态的状态图。粒子级元状态包括在任何给定的时间点处的输入粒子的执行状态。算子的粒子级元状态开始于空状态450。当粒子到达时,算子转移到“处理中”状态460。从处理中状态460开始,当处理完成时算子粒子级状态转移到已完成状态470,或者当处理遇到错误时转移到错误状态480。
图5是示出统一集成模型的各种组件的示图。模型500包括数据源510、算子A540、算子B560、以及数据目标580。弧530将数据源510的输出端口连接到算子A540的输入端口。弧550将算子A540的输出端口连接到算子B560的输入端口。并且,弧570将算子B560的输出端口连接到数据目标580的输入端口。弧530、弧550和弧570中的每个弧表示它所连接的算子之间的数据流。在一个实施例中,算子A540和算子B560可以是独立的处理构造。
算子A540和算子B560在“步骤”中执行对应的算法。在每个步骤中,算子消费来自输入端口的单个粒子,并在它的每个输出端口上产生有限整数数量的粒子。
图5示出粒子520沿着弧530行进。如可以看见的那样,粒子520包括粒子520-526。粒子520-526中的每个粒子是可被算子整个地消费或产生的数据单元。在一给定的时间点,弧530、弧550和弧570或者包含已排好序的粒子,或者处于关闭(closed)状态。弧上的每个粒子在被包括在该弧中的粒子联合中可以被唯一地识别。在一个实施例中,弧可以是有限弧或无限弧。有限弧具有“关闭时间”t1,对于大于t1的每个时间t2,弧不包括粒子并且处于关闭状态。相反,无限弧没有任何关闭时间。
弧内的粒子顺序是到达的顺序(FIFO)。然而,仅当算子是声明状态的算子时,粒子的顺序才是重要的。因此,在实现中,系统可以针对无状态的算子无序地处理粒子,并且在必要时在声明状态的算子之前再次对粒子重新排序。当用户明确地创建执行分支(例如通过使用开关算子)时,用户可负责在必要时通过可用构造来重新获得执行顺序。在一个实施例中,此处所描述的本发明可自动地重新建立执行顺序。
考虑粒子520-526,每个粒子主要由它关联的模式(schema)来分类,而在相同弧上的粒子遵守相同的模式。
图6是示出算子通过弧接收粒子并通过其它弧将粒子提供给其它算子的示图。算子620经由数据端口连接到弧。单个输入端口连接到单个弧,而单个输出端口可连接到多个弧用于复制。端口可限制弧的类型(有限数据弧、无限数据弧)和其所连接的数据的类型(经由模式)。
算子600通过弧610提供粒子615给算子620。反过来,算子620处理粒子615,并分别通过弧630、640和650提供粒子635、645和655给算子660、670和680。
图7是在统一集成模型内“熔合”粒子和“分裂”粒子的示图。使用此处所描述的本发明,粒子可被“分裂”成较小的粒子,并且较小的粒子可被“熔合”成较大的粒子。图7示出粒子700和710可被分裂成粒子720和730。同样,粒子720和730可被熔合成粒子700和710。
分裂和熔合粒子实现了控制粒度的改变。使用处理消费者订单的系统作为例子,每个订单包括一组零件。在这个例子中,单个消费者订单可被视为粒子而该订单的各零件是该粒子内的子粒子。此处所描述的本发明允许用户以零件级粒度或者以订单级粒度来描述各操作之间的依赖性。当用户仅在订单级粒度来表达依赖性时,系统可通过并行地处理零件(例如,作为波。参见下文)来进一步优化执行。另外,通过这种二元性,统一集成模型将工作流模型语义与数据流模型语义相结合。
图8是示出在统一集成模型内将粒子视作波的示图。当粒子计算发生时,粒子可以具有“波”的性质。波800包括粒子850、855和860,而波810包括粒子865、870和875。当波800和810通过算子820-840时,粒子信息被视作连续的信息流而不是离散的项。由此,算子组件当波到达时开始计算,并且当波结束时结束计算。
另外,“不确定性原则”允许系统在处理期间将波分开并对它从新排序,并且接着逻辑地将波重构成粒子。换言之,对波所表示的信息所进行的实际计算可包括并行执行,诸如流水线执行和数据并行操作。然而,用户可将波视作好像它是处于单个离散的粒子步骤。
图9是示出算子组件使用元端口来顺序地处理粒子的示图。算子900提供粒子905和910给算子915和多输入门940。如可以看到的那样,图9中所示出的例子示出应用要求在插入操作(插入记录960)之前执行删除操作(删除记录915)。
删除记录算子915包括元端口918,其使用数据流弧提供控制数据项给算子组件940。删除记录算子915针对所处理的进入粒子产生在弧919上携带元状态(也即,控制数据项)(元状态A925和元状态B920)的粒子。在一个实施例中,弧919预定(subscribe)只接收元状态的子集。多输入门940接收元状态A925和元状态B920,其使来自多输入门940的数据端口的粒子945和950能够传送到插入记录960,由此实现所需要的顺序处理。
图10是示出数据模型的示图。数据模型1000是通用数据模型,其表示可由使用此处描述的本发明所表达的处理来运算(manipulate)的所有数据。如本领域的普通技术人员可以明白的那样,数据模型1000与现有XPath1.0/XSchema1.0数据模型相类似并具有相同的表达能力,其中它们能够描述各种各样的分层数据结构。作为结果,此处所描述的本发明能够将对应于数据项的层级的重复部分的粒子归类。
图11是示出需要不同模型来表达应用的当前技术的示图。如可以看见的那样,绘图1100需要各种模型来表达应用,其是批量处理模型1110、商业处理管理模型1120和1140、以及流处理模型1130。这样,结果得到的应用必须在不同的系统上实现以适应不同的模型。
图12是示出使用统一集成模型所表达的应用的示图。如可以看见的那样,数据流程图1200不包括在诸如图11中所示出的应用中的人工边界。作为结果,数据流程图1200允许进行优化以确定用于特定设计领域的适当的实现。
从重用的观点来看,此处所描述的本发明允许用户在不同的执行环境中重用组件或组件的组合而在实现或语义方面没有任何差异。例如,数据流程图1200包括用于不同分类功能的算子1220和1240,这二者都是分类算子组件。算子1220通过零件的保质期(expiration date)进行分类而算子1240通过零件的名字进行分类。另外,数据流程图1200包括算子1270和1230,这二者都是合并算子组件。算子1230合并每周的不可得到的零件的计数和每周的可得到的零件的计数,而算子1270将订单和消费者信息与可得到的零件的信息合并。
另外,数据流程图1200可包括方框,其是算子的归类。这些方框包括对应于被包括在该方框里的算子的元状态的方框元状态。方框还包括基于方框元状态的转移来产生方框控制数据的元端口。
数据流程图1200还用数据流语义来表达控制依赖性,其使用算子1250和1260示出。这种组合提供一种便利的方法来表达应用同时通过改变粒子粒度来指定不同的控制级。
此外,数据流程图1200保持分层依赖性。如可以看见的那样,通过使用算子1210、1240和1260,单个概念可被分成多个概念,同时能保持它们的分层依赖性。
图13说明信息处理系统1301,其是能够执行此处所描述的计算操作的计算机系统的简化例子。计算机系统1301包括处理器1300,其被耦合到主机(host)总线1302。二级(L2)高速缓冲存储器1304也耦合到主机总线1302。主机-PCI桥1306被耦合到主存储器1308,包括高速缓冲存储器和主存储器控制功能,以及提供总线控制以处理在PCI总线1310、处理器1300、L2高速缓冲存储器1304、主存储器1308和主机总线1302之间的转换。主存储器1308被耦合到主机-PCI桥1306和主机总线1302。诸如LAN卡1330之类的由主机处理器1300独自使用的设备被耦合到PCI总线1310。服务处理器接口和ISA存取通路(Pass-through)1312提供在PCI总线1310和PCI总线1314之间的接口。以这种方式,PCI总线1314与PCI总线1310相隔离。诸如闪存1318之类的设备被耦合到PCI总线1314。在一个实现中,闪存1318包括BIOS代码,其合并了用于各种低级系统功能和系统启动功能的必要的处理器可执行代码。
PCI总线1314提供用于由主机处理器1300和包括例如闪存1318的服务处理器1316所共享的各种设备的接口。PCI-ISA桥1335提供用于处理在PCI总线1314与ISA总线1340之间的转移的总线控制、通用串行总线(USB)功能1345、电源管理功能1355,并可包括其它未示出的功能元素,诸如实时时钟(RTC)、DMA控制、中断支持以及系统管理总线支持。非易失性RAM1320被附到ISA总线1340。服务处理器1316包括JTAG和I2C总线1322,用于在初始化步骤期间与处理器1300进行通信。JTAG/I2C总线1322还耦合到L2高速缓存1304、主机-PCI桥1306和主存储器1308,提供在处理器、服务处理器、L2高速缓存、主机-PCI桥以及主存储器之间的通信路径。服务处理器1316还有权使用系统电源资源以便关掉信息处理设备1301。
外围设备和输入/输出(I/O)设备可被附到各种接口(例如,耦合到ISA总线1340的并行接口1362、串行接口1364、键盘接口1368以及鼠标接口1370)。作为替代,通过将超级I/O控制器(未示出)附到ISA总线1340,可以适应许多I/O设备。
为了将计算机系统1301附到另一计算机系统以通过网络拷贝文件,LAN卡1330被耦合到PCI总线1310。类似地,为了将计算机系统1301连接到ISP以使用电话线连接来连接到因特网,调制解调器13135被连接到串行口1364和PCI-ISA桥1335。
尽管图13示出使用处理器1300的一个信息处理系统,但是信息处理系统可以采取许多形式。例如,信息处理系统1301采用的形式可以是桌面计算机、服务器、便携式计算机、膝上型计算机、笔记本或其它形式因素的计算机或数据处理系统。信息处理系统1301还可以采用其它形式因素,诸如个人数字助理(PDA)、游戏设备、ATM机器、便携式电话设备、通信设备或包括处理器和存储器的其它设备。
本发明的优选的实施例之一是客户端应用,也即在代码模块中的一组指令(程序代码),其例如可以驻留在计算机的随机存取存储器中。直到被计算机需要为止,这组指令可以存储在另一计算机存储器中,例如存储在硬盘驱动器或像光盘(供最终在CD ROM中使用)或软盘(供最终在软盘驱动器中使用)这样的可移除存储器,或者可以经由因特网或其它计算机网络下载。因此,本发明可被实现成计算机程序产品用于在计算机中使用。另外,虽然在使用软件有选择地进行激活或配置的通用计算机中方便地实现了所描述的各种所方法,但是本领域的普通技术人员还将认识到这些方法可以用硬件、固件、或被构造成执行所需方法步骤的更专用的装置来实现。
63尽管已经示出并描述了本发明的特定实施例,但是基于此处的教导,本领域的普通技术人员将明白,在不偏离本发明和其更广的方面的条件下,可以进行变换和修改。因此,所附权利要求在其范围内包括属于本发明的真实精神和范围内的所有这种变换和修改。此外,应当理解,本发明仅由所附的权利要求来限定。本领域的普通技术人员应当理解,如果意指指定数量的所引入的权利要求要素,则这种意指将在权利要求中明确地陈述,并且如果没有这种陈述就不存在任何这种限制。对于非限制性的举例,作为帮助理解,以下所附权利要求包含使用引言性短语“至少一个”和“一个或多个”来引进权利要求要素。然而,使用这种短语不应当被解释成暗指由非限定性冠词“一个”和“一种”引入的权利要求要素将包含这种所引入的权利要求要素的任何特定权利要求限制到只包含一个这种要素的发明,即使当同一权利要求包括引言性短语“一个或多个”或“至少一个”和诸如“一个”和“一种”之类的非限定性冠词;同样的情况也适用于限定性冠词的在权利要求中的使用。

Claims (26)

1.一种用计算机实现的方法,用于使用数据流计算系统来模拟数据流,所述方法包括:
包括多个算子的数据流程图,其中所述算子中的每个算子包括至少一个输入端口或至少一个输出端口;
多个弧,其中所述弧中的每个弧将所述多个算子中的一个的输出端口之一连接到所述多个算子中的另一个的输入端口之一;
多个数据项,其沿着所述多个算子之间的所述多个弧以流进行流动;
在第一算子处将所述多个数据项归类成粒子;
在包括在所述多个算子中的第一算子处,对包括在所述粒子中的所述多个数据项执行计算,得到已计算的多个数据项;
在所述多个弧之一上将所述已计算的多个数据项从所述第一算子传送到包括在所述多个算子中的第二算子;
基于元状态转移在所述第一算子上包括的元端口处产生控制数据项,所述元状态转移响应于由所述第一算子对所述粒子归类执行的计算;以及
将所述控制数据项从所述第一算子传送到所述多个算子之一,其中所述控制数据项控制所述已计算的多个数据项的流动。
2.根据权利要求1所述的方法,其中所述控制数据项使用门算子来控制所述已计算的多个数据项的流动,所述门算子阻止所述已计算的多个数据项到达所述多个算子之一,直到所述控制数据项指示所述门算子将所述已计算的多个数据项提供给所述多个算子之一为止。
3.根据权利要求1所述的方法,其中所述控制数据项被传送给所述第二算子,所述控制数据项给所述第二算子指示一时间,以在所述时间处处理所述已计算的多个数据项。
4.根据权利要求1所述的方法,其中被连接到元端口的所述弧预定只接收所述多个控制数据项的子集。
5.根据权利要求1所述的方法,其中所述粒子归类对应于在所述多个弧上流动的所述多个数据项的分层数据模型中层级的重复部分。
6.根据权利要求1所述的方法,其中所述粒子归类还包括:
将所述多个控制数据项耦合到外部资源运算,以便指示所述外部资源运算的开始或完成。
7.根据权利要求1所述的方法,其中所述方法包括使用所述多个算子对所述多个数据项的并行执行。
8.根据权利要求7所述的方法,其中所述并行执行选自于流水线执行和数据并行执行。
9.根据权利要求1所述的方法,其中所述方法还包括一个或多个声明状态的算子,其累积在包括在所述粒子中的所述多个数据项上的状态。
10.根据权利要求1所述的方法,还包括:
将所述数据流程图编译成可顺序执行的代码。
11.根据权利要求1所述的方法,其中所述第一算子包括对应于与对包括在所述粒子中的所述多个数据项执行的计算相关的当前处理状态的元状态。
12.根据权利要求1所述的方法,还包括:
表达在多个行为之间的控制依赖性。
13.根据权利要求1所述的方法,其中所述第一算子和所述第二算子是独立的处理构造。
14.根据权利要求1所述的方法,其中所述数据流程图包括方框,所述方框包括所述第一算子和所述第二算子。
15.根据权利要求14所述的方法,其中所述方框包括方框元状态,所述方框元状态对应于与所述第一算子和所述第二算子相关联的元状态。
16.根据权利要求15所述的方法,其中所述方框包括方框元端口,其基于所述方框元状态的转移产生方框控制数据。
17.根据权利要求1所述的方法,还包括:
其中所述数据流程图对应于批量数据处理应用;
其中所述数据流程图对应于流数据处理应用;
其中所述数据流程图对应于事件处理应用;
其中所述数据流程图包括图形符号;以及
其中所述数据流程图包括非图形语言实现。
18.一种信息处理系统,包括:
一个或多个处理器;
可由所述处理器存取的存储器;
可由所述处理器存取的存储设备;以及
用于模拟数据流的数据流计算系统,所述数据流计算系统有效地:
在数据流程图中包括多个算子,其中所述算子中的每个算子包括至少一个输入端口或至少一个输出端口;
在所述数据流程图中包括多个弧,其中所述弧中的每个弧将所述多个算子中的一个的输出端口之一连接到所述多个算子中的另一个的输入端口之一;
包括多个数据项,所述数据项沿着所述多个算子之间的所述多个弧以流进行流动;
在第一算子处将所述多个数据项归类成粒子;
在包括在所述多个算子中的第一算子处,对包括在所述粒子中的所述多个数据项执行计算,得到已计算的多个数据项;
在所述多个弧之一上将所述已计算的多个数据项从所述第一算子传送到包括在所述多个算子中的第二算子;
基于元状态转移在所述第一算子上包括的元端口处产生控制数据项,所述元状态转移响应于由所述第一算子对所述粒子归类执行的计算;以及
将所述控制数据项从所述第一算子传送到所述多个算子之一,其中所述控制数据项控制所述已计算的多个数据项的流动。
19.根据权利要求18所述的信息处理系统,其中所述数据流计算系统还有效地:
使用门算子基于所述控制数据项来控制所述已计算的多个数据项的流动,所述门算子阻止所述已计算的多个数据项到达所述多个算子之一,直到所述控制数据项指示所述门算子将所述已计算的多个数据项提供给所述多个算子之一为止。
20.根据权利要求18所述的信息处理系统,其中所述数据流计算系统还有效地:
传送所述控制数据项给所述第二算子,所述控制数据项给所述第二算子指示一时间,以在所述时间处处理所述已计算的多个数据项。
21.根据权利要求18所述的信息处理系统,其中所述粒子归类对应于在所述多个弧上流动的所述多个数据项的分层数据模型中层级的重复部分。
22.根据权利要求18所述的信息处理系统,其中所述数据流计算系统还有效地:
将所述多个控制数据项耦合到外部资源运算,以便指示所述外部资源运算的开始或完成。
23.根据权利要求18所述的信息处理系统,其中所述数据流计算系统包括使用所述多个算子对所述多个数据项的并行执行;以及
其中所述并行执行选自于包括流水线执行和数据并行执行的组。
24.根据权利要求18所述的信息处理系统,其中所述数据流计算系统还有效地:
将所述数据流程图编译成可顺序执行的代码。
25.根据权利要求18所述的信息处理系统,其中所述数据流计算系统还有效地:
表达在多个行为之间的控制依赖性。
26.根据权利要求18所述的信息处理系统,其中连接到元端口的弧预定只接收所述多个控制数据项的子集;
其中所述数据流程图包括方框,所述方框包括所述第一算子和所述第二算子;
其中所述方框包括方框元状态,所述方框元状态对应于与所述第一算子和所述第二算子相关联的元状态;
其中所述方框包括方框元端口,其基于所述方框元状态的转移产生方框控制数据;
其中所述第一算子和所述第二算子是独立的处理构造;
其中所述第一算子包括对应于与对包括在所述粒子中的所述多个数据项执行的计算相关的当前处理状态的元状态;
其中所述方法还包括一个或多个声明状态的算子,其累积在包括在所述粒子中的所述多个数据项上的状态;
其中所述数据流程图对应于批量数据处理应用;
其中所述数据流程图对应于流数据处理应用;
其中所述数据流程图对应于事件处理应用;
其中所述数据流程图包括图形符号;以及
其中所述数据流程图包括非图形语言实现。
CNA2007101927274A 2006-12-01 2007-11-16 实现用于集成系统的统一模型的系统和方法 Pending CN101192239A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/566,193 2006-12-01
US11/566,193 US7774189B2 (en) 2006-12-01 2006-12-01 System and method for simulating data flow using dataflow computing system

Publications (1)

Publication Number Publication Date
CN101192239A true CN101192239A (zh) 2008-06-04

Family

ID=39494515

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101927274A Pending CN101192239A (zh) 2006-12-01 2007-11-16 实现用于集成系统的统一模型的系统和方法

Country Status (2)

Country Link
US (1) US7774189B2 (zh)
CN (1) CN101192239A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102870129A (zh) * 2010-05-03 2013-01-09 国际商业机器公司 动态自适应进程发现和遵守
CN106547522A (zh) * 2015-09-17 2017-03-29 华为技术有限公司 一种流应用优化的方法及装置
CN106687921A (zh) * 2014-09-02 2017-05-17 起元科技有限公司 在基于图的程序中指定组件
CN107621934A (zh) * 2017-07-28 2018-01-23 中国人民解放军国防信息学院 基于组件化、图形化算子的评估指标计算方法及装置
WO2018019232A1 (zh) * 2016-07-29 2018-02-01 华为技术有限公司 流计算方法、装置及系统
US10885003B2 (en) 2014-09-02 2021-01-05 Ab Initio Technology Llc Compiling graph-based program specifications
CN112801439A (zh) * 2019-11-14 2021-05-14 深圳百迈技术有限公司 任务管理方法及装置
WO2023065906A1 (en) * 2021-10-20 2023-04-27 International Business Machines Corporation Inter-operator backpropagation in automl frameworks

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8160979B1 (en) * 2006-12-20 2012-04-17 Cisco Technology, Inc. Method and apparatus for providing a virtual service agent that receives queries, compares questions to a set of queries, and allows a user to confirm a closest match
US20090125553A1 (en) * 2007-11-14 2009-05-14 Microsoft Corporation Asynchronous processing and function shipping in ssis
US9043774B2 (en) * 2008-02-12 2015-05-26 William G. Bently Systems and methods for information flow analysis
US8161380B2 (en) * 2008-06-26 2012-04-17 International Business Machines Corporation Pipeline optimization based on polymorphic schema knowledge
WO2015047140A1 (en) * 2013-09-24 2015-04-02 Telefonaktiebolaget L M Ericsson (Publ) Simplified creation of an application in a selected stream processing platform
WO2015094269A1 (en) * 2013-12-19 2015-06-25 Hewlett-Packard Development Company, L.P. Hybrid flows containing a continuous flow
EP3189422A1 (en) 2014-09-02 2017-07-12 AB Initio Technology LLC Executing graph-based program specifications
AU2015311999B2 (en) * 2014-09-02 2019-09-19 Ab Initio Technology Llc Controlling data processing tasks
US9760406B2 (en) 2014-09-02 2017-09-12 Ab Initio Technology Llc Controlling data processing tasks
US9933918B2 (en) 2014-09-02 2018-04-03 Ab Initio Technology Llc Specifying control and data connections in graph-based programs
WO2016036822A1 (en) 2014-09-02 2016-03-10 Ab Initio Technology Llc Managing execution state of components in a graph-based program specification for controlling their associated tasks
CN106687920B (zh) 2014-09-02 2020-07-03 起元科技有限公司 管理任务的调用
CN104504143B (zh) 2015-01-04 2017-12-29 华为技术有限公司 一种流图优化方法及其装置
US11573965B2 (en) 2016-09-15 2023-02-07 Oracle International Corporation Data partitioning and parallelism in a distributed event processing system
CA3071616A1 (en) 2017-08-01 2019-02-07 The Chamberlain Group, Inc. System for facilitating access to a secured area
US11055942B2 (en) 2017-08-01 2021-07-06 The Chamberlain Group, Inc. System and method for facilitating access to a secured area

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4145733A (en) 1974-03-29 1979-03-20 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US5603018A (en) 1991-07-15 1997-02-11 Mitsubishi Denki Kabushiki Kaisha Program developing system allowing a specification definition to be represented by a plurality of different graphical, non-procedural representation formats
IL100598A0 (en) * 1992-01-06 1992-09-06 Univ Bar Ilan Dataflow computer
US5724570A (en) * 1995-06-07 1998-03-03 Tandem Computers Incorporated Method and apparatus for a complete SQL subquery elimination process
US5806062A (en) 1995-10-17 1998-09-08 Lucent Technologies Inc. Data analysis system using virtual databases
US6311265B1 (en) 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
US5822593A (en) * 1996-12-06 1998-10-13 Xerox Corporation High-level loop fusion
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US6192504B1 (en) * 1997-05-14 2001-02-20 International Business Machines Corporation Methods and systems for functionally describing a digital hardware design and for converting a functional specification of same into a netlist
US20030014379A1 (en) 1999-07-01 2003-01-16 Isaac Saias Adaptive and reliable system and method for operations management
US6601058B2 (en) 1998-10-05 2003-07-29 Michael Forster Data exploration system and method
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6654952B1 (en) 2000-02-03 2003-11-25 Sun Microsystems, Inc. Region based optimizations using data dependence graphs
US7467371B1 (en) * 2000-04-28 2008-12-16 Microsoft Corporation Binding for business workflow processes
AUPQ966400A0 (en) * 2000-08-24 2000-09-21 Xemplex Pty Ltd Method of graphically defining a formula
US6918111B1 (en) 2000-10-03 2005-07-12 Sun Microsystems, Inc. System and method for scheduling instructions to maximize outstanding prefetches and loads
WO2002103551A1 (en) 2001-06-15 2002-12-27 Cadence Design Systems, Inc. Enhancing mergeability of datapaths and reducing datapath widths by rebalancing data flow topology
US7080088B1 (en) 2002-01-30 2006-07-18 Oracle International Corporation Automatic reconciliation of bindable objects
US6732354B2 (en) 2002-04-23 2004-05-04 Quicksilver Technology, Inc. Method, system and software for programming reconfigurable hardware
WO2004034625A2 (en) 2002-10-07 2004-04-22 Metatomix, Inc. Methods and apparatus for identifying related nodes in a directed graph having named arcs
US7299458B2 (en) * 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US7089542B2 (en) * 2002-12-13 2006-08-08 International Business Machines Corporation Method and apparatus for finding errors in software programs using satisfiability of constraints
US20040123072A1 (en) 2002-12-18 2004-06-24 International Business Machines Corporation Method and system for modeling non-interlocked diversely bypassed exposed pipeline processors for static scheduling
JP4377704B2 (ja) 2003-01-24 2009-12-02 株式会社東芝 フローデータ生成方法およびフローデータ生成装置
US7669129B2 (en) 2003-04-04 2010-02-23 Avid Technology, Inc. Graphical user interface for providing editing of transform hierarchies within an effects tree
US7093231B2 (en) 2003-05-06 2006-08-15 David H. Alderson Grammer for regular expressions
US7392514B2 (en) * 2003-06-26 2008-06-24 Microsoft Corporation Data flow chasing
US20050071359A1 (en) 2003-09-25 2005-03-31 Elandassery Deepak S. Method for automated database schema evolution
US7840949B2 (en) 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
US7254590B2 (en) 2003-12-03 2007-08-07 Informatica Corporation Set-oriented real-time data processing based on transaction boundaries
US20050251527A1 (en) 2004-05-07 2005-11-10 Mark Phillips System and method for integrating disparate data and application sources using a web services orchestration platform with business process execution language (BPEL)
US7530052B2 (en) * 2004-05-14 2009-05-05 National Instruments Corporation Creating and executing a graphical program with first model of computation that includes a structure supporting second model of computation
US7506304B2 (en) 2004-05-14 2009-03-17 National Instruments Corporation Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation
US8230408B2 (en) * 2004-06-30 2012-07-24 Coherent Logix, Incorporated Execution of hardware description language (HDL) programs
US7941794B2 (en) 2004-08-30 2011-05-10 Sanyo Electric Co., Ltd. Data flow graph processing method and processing apparatus provided with reconfigurable circuit
US7707387B2 (en) 2005-06-01 2010-04-27 Microsoft Corporation Conditional execution via content addressable memory and parallel computing execution model
US20080082984A1 (en) * 2006-09-29 2008-04-03 Siemens Technology-To-Business Center, Llc Methods, apparatus and storage medium for use in association with a dataflow system
US9038041B2 (en) 2006-12-04 2015-05-19 Tibco Software, Inc. Stream processor with compiled programs
US8141080B2 (en) * 2007-08-30 2012-03-20 International Business Machines Corporation Asynchronous data structure pull application programming interface (API) for stream systems
US7860863B2 (en) 2007-09-05 2010-12-28 International Business Machines Corporation Optimization model for processing hierarchical data in stream systems
US7941460B2 (en) * 2007-09-05 2011-05-10 International Business Machines Corporation Compilation model for processing hierarchical data in stream systems

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102870129A (zh) * 2010-05-03 2013-01-09 国际商业机器公司 动态自适应进程发现和遵守
CN106687921A (zh) * 2014-09-02 2017-05-17 起元科技有限公司 在基于图的程序中指定组件
US11301445B2 (en) 2014-09-02 2022-04-12 Ab Initio Technology Llc Compiling graph-based program specifications
US10885003B2 (en) 2014-09-02 2021-01-05 Ab Initio Technology Llc Compiling graph-based program specifications
US10896025B2 (en) 2014-09-02 2021-01-19 Ab Initio Technology Llc Specifying components in graph-based programs
CN106687921B (zh) * 2014-09-02 2021-02-02 起元科技有限公司 在基于图的程序中指定组件
CN106547522A (zh) * 2015-09-17 2017-03-29 华为技术有限公司 一种流应用优化的方法及装置
CN106547522B (zh) * 2015-09-17 2020-02-14 华为技术有限公司 一种流应用优化的方法及装置
US11132402B2 (en) 2016-07-29 2021-09-28 Huawei Technologies Co., Ltd. Stream computing method, apparatus, and system
WO2018019232A1 (zh) * 2016-07-29 2018-02-01 华为技术有限公司 流计算方法、装置及系统
CN107678790A (zh) * 2016-07-29 2018-02-09 华为技术有限公司 流计算方法、装置及系统
CN107678790B (zh) * 2016-07-29 2020-05-08 华为技术有限公司 流计算方法、装置及系统
CN107621934B (zh) * 2017-07-28 2020-11-03 中国人民解放军国防信息学院 基于组件化、图形化算子的评估指标计算方法及装置
CN107621934A (zh) * 2017-07-28 2018-01-23 中国人民解放军国防信息学院 基于组件化、图形化算子的评估指标计算方法及装置
CN112801439A (zh) * 2019-11-14 2021-05-14 深圳百迈技术有限公司 任务管理方法及装置
WO2023065906A1 (en) * 2021-10-20 2023-04-27 International Business Machines Corporation Inter-operator backpropagation in automl frameworks

Also Published As

Publication number Publication date
US20080133209A1 (en) 2008-06-05
US7774189B2 (en) 2010-08-10

Similar Documents

Publication Publication Date Title
CN101192239A (zh) 实现用于集成系统的统一模型的系统和方法
Meftali et al. An optimal memory allocation for application-specific multiprocessor system-on-chip
Palanque et al. Synergistic modelling of tasks, users and systems using formal specification techniques
Yu et al. Polychronous controller synthesis from MARTE CCSL timing specifications
Koziolek et al. Towards a generic quality optimisation framework for component-based system models
Khalimov et al. Towards efficient parameterized synthesis
Simmonds et al. Maintaining Consistency between UML Models Using Description Logic.
Popova et al. From petri nets to guard-stage-milestone models
Etienne et al. Specifications and development of interoperability solution dedicated to multiple expertise collaboration in a design framework
Gardoni et al. Harnessing non-structured information and knowledge and know-how capitalisation in integrated engineering: Case study at aerospatiale matra
Saxena et al. A meta-framework for design space exploration
Bae et al. Integration of workflow management and simulation
Scala et al. Effective grounding for hybrid planning problems represented in PDDL+
Kong et al. The Rosetta meta-model framework
Feng et al. Designing communicating transaction processes by supervisory control theory
Lano et al. Declarative specification of bidirectional transformations using design patterns
Balboni et al. Tosca: A pragmatic approach to co-design automation of control-dominated systems
Ghaibi et al. A tool support for the adaptation of user interfaces based on a business rules management system
Lugato et al. Validation and automatic test generation on UML models: the AGATHA approach
Green et al. HASoC—towards a new method for system-on-a-chip development
Young et al. Enabling interoperable manufacturing knowledge sharing in PLM
Szmuc et al. Formal methods—support or scientific decoration in software development?
Thillai Rani et al. Recurrent deep neural learning classification algorithm based high level synthesis in VLSI circuit with runtime adaptability
Liu et al. Model checking software product line based on multi-valued logic
Zhou et al. CNDAS-WF: Cloud Native Data Analysis System Based On Workflow Engine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080604