专利名称:实现用于集成系统的统一模型的系统和方法
技术领域:
本发明涉及一种实现用于集成系统的统一模型的系统和方法。更为 特别地,本发明涉及一种系统和方法,其用于使用统一模型以在数据流 程图中表达应用而不设人工边界,其反过来允许更大的应用优化。
背景技术:
集成世界中的应用通常按诸如批量、事务和连续之类的类别进行区
分。批量处理集成应用(IA)主要使用在新的集成解决方案替代旧定制 的完全不同的应用并且需要移动现有数据的情况下。事务IA主要以商 业过程管理(BPM)的形式出现,其中各种应用在事务保证下通过互换 请求和彼此应答来实现商业过程。而连续IA是判决支持领域中的新兴 应用。综合事件处理(CEP)、事件驱动架构(EDA)、实时数据挖掘和 知识提取、商业活动监视(BAM)都是连续应用的例子,其连续地处理
据更好的理解。
在企业集成世界中的主流技术是ETL (提取、变换、装载)、EAI (企业应用集成)和EII (企业信息集成)。这些技术中的每种技术相比 其他技术都具有优点和缺点,并且因此这些技术的任何一种都没有获得 压倒性的胜利。虽然这些技术具有不同的能力,但是它们仍然共享许多 概念和组件,并且在许多时候可以使用 一种技术来替代另 一种。
SQL (选择查询语言)模型是在关系数据库所基于的EII系统背后 的模型。用SQL表达的这种模型被变换成数据流有向树图。该图的顶点 是集合算子,并且数据集合在各算子间流动,只要它们是可用的。在ETL 系统背后的模型也是类似于SQL模型的数据流模型,虽然该模型可以表 达任何有向非循环图而不仅仅是树图。在EAI系统背后的模型是工作流
模型。该模型可以用BPEL来表达并且表示有向非循环图,在该图中顶 点是一旦进入数据就执行的活动。
所发现的挑战是,现有技术具有人工区分,其产生相当多的冗余。 另外,现有技术不提供针对连续应用的解决方案。所发现的另一个挑战 是,现有模型中的每种模型相比其他模型具有缺点,并且因此对于解决 方案架构而言,选择设计应用将使用的系统和模型可能并不总是清楚 的。另外,因为现有模型的缺点,许多解决方案不能使用现有模型来实 现。作为结果,解决方案架构可能需要定制解决方案,其开发和维护起 来都很昂贵。此外,定制解决方案通常质量较低,因为打包软件经历更 苛刻的测试。
因此,需要一种系统和方法,其使用包含现有系统模型的优点的统 一模型来表达应用。
发明内容
已经发现,通过使用 一种用于在数据流计算系统中使用数据流程图 来模拟数据流的系统、方法和计算机程序产品解决了上述挑战。该数据 流程图包括多个算子,每个算子包括至少一个输入端口或至少一个输出 端口。该数据流程图还包括多个弧,每个弧将算子的输出端口之一连接 到不同算子的输入端口。在该数据流程图中,多个数据项沿着各算子之 间的弧以流进行流动。第一算子将多个数据项归类成粒子并对该粒子归 类执行计算,其得到已计算的多个数据项。该第一算子在多个弧之一上 将已计算的多个数据项传送给第二算子。另外,该第一算子基于元状态 转移在它的元端口之一上产生控制数据项,所述元状态转移响应于对在 粒子归类执行的计算。最终,该第一算子将控制数据项传送给另一算子, 其反过来基于控制数据项来控制已计算的多个数据项的流动。
在一个实施例中,该系统、方法和计算机程序产品使用控制数据项 来通过使用门算子控制已计算的多个数据项的流动。在这个实施例中, 门算子阻止已计算的多个数据项到达不同的算子,直到控制数据项指示 门算子将已计算的多个数据项提供给不同的算子。
在一个实施例中,该系统、方法和计算机程序产品将控制数据项传 送给第二算子,其给第二算子指示一时间,以在该时间处处理已计算的
多个数据项。在另一实施例中,该系统、方法和计算机程序产品预定连 接到元端口的弧只接收多个控制数据项的子集。
在一个实施例中,该系统、方法和计算机程序产品将对应于在多个 弧上流动的多个数据项的分层数据模型中层级的重复部分的粒子归类。
在一个实施例中,该系统、方法和计算机程序产品将多个控制数据 项耦合到外部资源运算,以1更指示所述外部资源运算的开始或完成。在 另一实施例中,该系统、方法和计算机程序产品包括使用多个算子对多 个数据项的并行执行。在又一实施例中,该系统、方法和计算机程序产 品从包括流水线执行和数据并行执行的组中选择该并行执行。
在一个实施例中,该系统、方法和计算机程序产品包括一个或多个 声明状态的算子,其累积在包括在粒子中的多个数据项上的状态。
在一个实施例中,该系统、方法和计算机程序产品将数据流程图编 译成可顺序执行的代码。在另一实施例中,该系统、方法和计算机程序 产品在第 一 算子处包括对应于与对包括在粒子中的多个数据项执行的 计算相关的当前处理状态的元状态。在又一实施例中,该系统、方法和 计算机程序产品表达在多个行为之间的控制依赖性。
在一个实施例中,该系统、方法和计算机程序产品将第一算子和第
二算子指定为独立的处理构造。
在一个实施例中,该系统、方法和计算机程序产品在数据流程图中 包括方框,所述数据流程图包括第一算子和第二算子。在另一实施例中, 该系统、方法和计算机程序产品包括方框元状态,该方框元状态对应于 与第一算子和第二算子相关联的元状态。在又一实施例中,该系统、方 法和计算机程序产品在方框上包括方框元端口 ,其基于方框元状态的转 移来产生方框控制数据。
在一个实施例中,该系统、方法和计算机程序产品使用数据流程图 来对应于批量数据处理应用。在另一实施例中,该系统、方法和计算机 程序产品使用数据流程图来对应流数据处理应用。在又一实施例中,该系统、方法和计算机程序产品使用数据流程图来对应事件处理应用。在 又一实施例中,该系统、方法和计算机程序产品在数据流程图中包括图 形符号。在另一实施例中,该系统、方法和计算机程序产品在数据流程 图中包括非图形语言实现。
上述内容是概述并且因此必要地包含对细节的简化、概括和省略; 因此本领域的普通技术人员将意识到该概述只是说明性的并且不是旨 在作为任何限制。在以下阐述的非限制的详细描述中,由权利要求所唯 一定义的其它方面、发明性的特征、以及本发明的优点将变得明显。
通过参考附图可以更好地理解本发明,并且向本领域的普通技术人 员明白展示本发明的众多目的、特征以及优点。
图1是示出用户基于统一集成模型创建数据流程图的示图; 图2是示出在使用统一集成模型来生成应用代码时所采取的步骤的 流程图3是示出算子组件的输入端口、输出端口和元端口的示图; 图4A是用于算子组件的弧级元状态的状态图; 图4B是用于算子组件的粒子级元状态的状态图; 图5是示出统一集成模型的各种组件的示子的示图7是在统一集成模型内"熔合"粒子和"分裂"粒子的示图; 图8是示出在统一集成模型内将粒子视作波的示图; 图9是示出算子组件使用元端口来顺序地处理粒子的示图; 图IO是示出数据模型的示图11是示出需要不同模型来表达应用的现有技术的示图; 图12是示出使用统一集成模型所表达的应用的示图; 图13是能够实现本发明的计算设备的框图。
具体实施例方式
以下内容旨在提供对本发明的例子的详细描述,并且不应该被用来 限制本发明自身。相反,任何数量的变型可落入所附的权利要求所定义 的本发明的范围内。
图l是示出用户基于统一集成^^莫型创建数据流程图的示图。用户100
提供输入110给集成化语言引擎130,其使用统一集成模型来生成数据 流程图。反过来,集成化语言引擎130编译数据流程图以创建应用代码。
系统120包括集成化语言引擎130、组件存储库140、数据流程图 存储库150、以及代码存储库160。集成化语言引擎130从用户100接 收输入IIO用于创建数据流程图。数据流程图是有向非循环图,其包括 诸如算子、弧和方框之类的组件以表达应用。使用统一模型组件,在应 用i殳计过程期间,不放置人工边界,由此能够进行优化以确定如何以不 同的方式实现不同的设计方面(更多的细节请参见图12和对应的文字)。 组件存储库140、数据流程图存储库150和代码存储库160可被存储在 诸如计算机硬盘驱动器之类的非易失性存储区域上。
集成化语言引擎130从对应于输入110的组件存储库140检索组件, 并在数据流程图上由用户100所指定的位置处插入组件,诸如算子和/ 或弧。当用户IOO结束编辑数据流程图时,集成化语言引擎130编译数 据流程图,并在代码存储库160中存储已编译的代码。
集成化语言引擎130给用户IOO提供设计综合集成的能力,在单个 图形设计范例中综合集成涉及事务、批量、流和事件驱动行为的组合。 另外,.集成化语言引擎130还给用户IOO提供以单个工具表达这种设计 的能力,而不需要在设计过程中过早地针对不同的最后执行环境强迫使 用不同的工具。
图2是示出在使用统一集成模型来生成应用代码时所采取的步骤的 流程图。处理开始于200处,其中处理在步骤210处从用户IOO接收输 入。例如,用户IOO可选择将被插入数据流程图的统一模型组件,诸如 算子、弧和方框。
在步骤220处,处理从组件存储库140 4全索统一一莫型组件,开始生
成数据流程图,其被存储在数据流程图存储库150中。数据流程图可对 应于诸如批量数据处理应用、流数据处理应用或事件处理应用之类的应 用。数据流程图可包括图形符号或非图形语言实现。组件存储库140和 数据流程图存储库150与图1中所示出的相同。
确定用户IOO是否希望提供关于数据流程图的更多的输入,诸如添 加更多的算子和/或使用弧连接算子(判决230)。如果用户100希望提 供更多的输入,则判决230转向"是"分支232,其返回以处理更多的 用户输入。这种循环一直继续直到用户IOO结束编辑数据流程图,在该 点处判决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、算子B 560、以及数据目标580。弧530将数据源510 的输出端口连接到算子A 540的输入端口 。弧550将算子A 540的输出 端口连接到算子B 560的输入端口。并且,弧570将算子B 560的输出 端口连接到数据目标580的输入端口 。弧530、弧550和弧570中的每 个弧表示它所连接的算子之间的数据流。在一个实施例中,算子A540 和算子B 560可以是独立的处理构造。
算子A 540和算子B 560在"步骤"中执行对应的算法。在每个步 骤中,算子消费来自输入端口的单个粒子,并在它的每个输出端口上产 生有限整数数量的粒子。
图5示出粒子520沿着弧530行进。如可以看见的那样,粒子520 包括粒子520 - 526。粒子520 - 526中的每个粒子是可被算子整个地消 费或产生的数据单元。在一给定的时间点,弧530、弧550和弧570或 者包含已排好序的粒子,或者处于关闭(closed)状态。弧上的每个粒 子在被包括在该弧中的粒子联合中可以被唯一地识别。在一个实施例 中,弧可以是有限弧或无限弧。有限弧具有"关闭时间,,tl,对于大于 tl的每个时间t2,弧不包括粒子并且处于关闭状态。相反,无限弧没有 任4可关闭时间。
弧内的粒子顺序是到达的顺序(FIFO)。然而,仅当算子是声明状 态的算子时,粒子的顺序才是重要的。因此,在实现中,系统可以针对 无状态的算子无序地处理粒子,并且在必要时在声明状态的算子之前再 次对粒子重新排序。当用户明确地创建执行分支(例如通过使用开关算 子)时,用户可负责在必要时通过可用构造来重新获得,执行顺序。在一 个实施例中,此处所描述的本发明可自动地重新建立执行顺序。
考虑粒子520 - 526,每个粒子主要由它关联的模式(schema)来分 类,而在相同弧上的粒子遵守相同的模式。
子的示图。算子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和元状态B 920 ) 的粒子。在一个实施例中,弧919预定(subscribe)只接收元状态的子 集。多输入门940接收元状态A 925和元状态B 920,其4吏来自多输入
门940的数据端口的粒子945和950能够传送到插入记录960,由此实 现所需要的顺序处理。
图IO是示出数据模型的示图。数据模型IOOO是通用数据模型,其 表示可由使用此处描述的本发明所表达的处理来运算(manipulate )的所 有数据。如本领域的普通技术人员可以明白的那样,数据模型1000与 现有XPathl.O/XSchemal.O数据模型相类似并具有相同的表达能力,其 中它们能够描述各种各样的分层数据结构。作为结果,此处所描述的本 发明能够将对应于数据项的层级的重复部分的粒子归类。
图11是示出需要不同模型来表达应用的当前技术的示图。如可以看 见的那样,绘图1100需要各种模型来表达应用,其是批量处理模型1110、 商业处理管理模型1120和1140、以及流处理模型1130。这样,结果得 到的应用必须在不同的系统上实现以适应不同的模型。
图12是示出使用统一集成模型所表达的应用的示图。如可以看见 的那样,数据流程图1200不包括在诸如图11中所示出的应用中的人工 边界。作为结果,数据流程图1200允许进行优化以确定用于特定设计 领域的适当的实现。
从重用的观点来看,此处所描述的本发明允许用户在不同的执行环 境中重用组件或组件的组合而在实现或语义方面没有^f壬何差异。例如, 数据流程图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控制、中断支持以及系统管理 总线支持。非易失性RAM 1320被附到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/0控制器(未示出)附到 ISA总线1340,可以适应许多1/0设备。
为了将计算机系统1301附到另一计算机系统以通过网络拷贝文件, LAN卡1330被耦合到PCI总线1310。类似地,为了将计算机系统1301 连接到ISP以使用电话线连接来连接到因特网,调制解调器13135被连 接到串行口 1364和PCI-ISA桥1335。
尽管图13示出使用处理器1300的一个信息处理系统,但是信息处 理系统可以采取许多形式。例如,信息处理系统1301采用的形式可以 是桌面计算机、服务器、便携式计算机、膝上型计算机、笔记本或其它 形式因素的计算机或数据处理系统。信息处理系统1301还可以采用其 它形式因素,诸如个人数字助理(PDA)、游戏设备、ATM机器、便携 式电话设备、通信设备或包括处理器和存储器的其它设备。
本发明的优选的实施例之一是客户端应用,也即在代码模块中的一 组指令(程序代码),其例如可以驻留在计算机的随机存取存储器中。 直到被计算机需要为止,这组指令可以存储在另一计算机存储器中,例 如存储在硬盘驱动器或像光盘(供最终在CD ROM中使用)或软盘(供 最终在软盘驱动器中使用)这样的可移除存储器,或者可以经由因特网 或其它计算机网络下载。因此,本发明可被实现成计算机程序产品用于在计算机中使用。另外,虽然在使用软件有选择地进行激活或配置的通 用计算机中方便地实现了所描述的各种所方法,但是本领域的普通技术 人员还将认识到这些方法可以用硬件、固件、或被构造成执行所需方法 步骤的更专用的装置来实现。
63尽管已经示出并描述了本发明的特定实施例,但是基于此处的教 导,本领域的普通技术人员将明白,在不偏离本发明和其更广的方面的 条件下,可以进行变换和修改。因此,所附权利要求在其范围内包括属 于本发明的真实精神和范围内的所有这种变换和修改。此外,应当理解, 本发明仅由所附的权利要求来限定。本领域的普通技术人员应当理解,
如果意指指定数量的所引入的权利要求要素,则这种意指将在权利要求 中明确地陈述,并且如果没有这种陈述就不存在任何这种限制。对于非 限制性的举例,作为帮助理解,以下所附权利要求包含使用引言性短语 "至少一个"和"一个或多个"来引进权利要求要素。然而,使用这种 短语不应当被解释成暗指由非限定性冠词"一个"和"一种"引入的权 利要求要素将包含这种所引入的权利要求要素的任何特定权利要求限 制到只包含一个这种要素的发明,即使当同一权利要求包括引言性短语
"一个或多个"或"至少一个"和诸如"一个"和"一种"之类的非限 定性冠词;同样的情况也适用于限定性冠词的在权利要求中的使用。
权利要求
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. —种信息处理系统,包括 一个或多个处理器; 可由所述处理器存取的存储器; 可由所述处理器存取的存储设备;以及用于模拟数据流的数据流计算系统,所述数据流计算系统有效地 在数据流程图中包括多个算子,其中所述算子中的每个算子包括至少 一个车lr入端口或至少 一个输出端口 ;在所述数据流程图中包括多个弧,其中所述弧中的每个弧将所述多个算子中的 一个的输出端口之一连接到所述多个算子中的另 一个的输入端口之一;包括多个数据项,所述数据项沿着所述多个算子之间的所述多个弧 以流进行流动;在第一算子处将所述多个数据项归类成粒子;在包括在所述多个算子中的第 一算子处,对包括在所述粒子中的所述多个数据项执行计算,得到已计算的多个数据项;在所述多个弧之一上将所述已计算的多个数据项从所述第一算子 传送到包括在所述多个算子中的第二算子;基于元状态转移在所述第一算子上包括的元端口处产生控制数据 项,所述元状态转移响应于由所述第一算子对所述粒子归类执行的计 算;以及将所述控制数据项从所述第一算子传送到所述多个算子之一,其中 所述控制数据项控制所述已计算的多个数据项的流动。
19. 根据权利要求18所述的信息处理系统,其中所述数据流计算 系统还有效地 使用门算子基于所述控制数据项来控制所述已计算的多个数据项 的流动,所述门算子阻止所述已计算的多个数据项到达所述多个算子之 一,直到所述控制数据项指示所述门算子将所述已计算的多个数据项提 供给所述多个算子之一为止。
20. 根据权利要求18所述的信息处理系统,其中所述数据流计算系统还有效地传送所述控制数据项给所述第二算子,所述控制数据项给所述第二 算子指示一时间,以在所述时间处处理所述已计算的多个数据项。
21. 根据权利要求18所述的信息处理系统,其中所述粒子归类对 应于在所述多个弧上流动的所述多个数据项的分层数据模型中层级的 重复部分。
22. 根据权利要求18所述的信息处理系统,其中所述数据流计算 系统还有效地将所述多个控制数据项耦合到外部资源运算,以便指示所述外部资 源运算的开始或完成。
23. 根据权利要求18所述的信息处理系统,其中所述数据流计算 系统包括使用所述多个算子对所述多个数据项的并行执行;以及其中所述并行执行选自于包括流水线执行和数据并行执行的组。
24. 根据权利要求18所述的信息处理系统,其中所述数据流计算 系统还有效地将所述数据流程图编译成可顺序执行的代码。
25. 根据权利要求18所述的信息处理系统,其中所述数据流计算 系统还有效地表达在多个行为之间的控制依赖性。
26. 根据权利要求18所述的信息处理系统,其中连接到元端口的 弧预定只接收所述多个控制数据项的子集;其中所述数据流程图包括方框,所述方框包括所述第一算子和所述第二算子;其中所述方框包括方框元状态,所述方框元状态对应于与所述第一 算子和所述第二算子相关联的元状态;其中所述方框包括方框元端口 ,其基于所述方框元状态的转移产生方框控制数据;其中所述第 一算子和所述第二算子是独立的处理构造;其中所述第一算子包括对应于与对包括在所述粒子中的所述多个 数据项执行的计算相关的当前处理状态的元状态;其中所述方法还包括一个或多个声明状态的算子,其累积在包括在 所述粒子中的所述多个数据项上的状态;其中所述数据流程图对应于批量数据处理应用;其中所述数据流程图对应于流数据处理应用;其中所述数据流程图对应于事件处理应用;其中所述数据流程图包括图形符号;以及其中所述数据流程图包括非图形语言实现。
全文摘要
介绍一种实现用于集成系统的统一模型的系统和方法。用户提供输入到集成化语言引擎以便将算子组件和弧组件放置到数据流程图上。算子组件包括用于表达数据流的数据端口,并且还包括用于表达控制流的元端口。弧组件将算子组件连接起来供数据和控制信息在各算子组件间流动。数据流程图是表达应用的有向非循环图,其在设计过程期间不包括人工边界。一旦集成化语言引擎生成数据流程图,则该集成化语言引擎将该数据流程图编译成生成的应用代码。
文档编号G06F17/30GK101192239SQ20071019272
公开日2008年6月4日 申请日期2007年11月16日 优先权日2006年12月1日
发明者A·巴尔-奥尔, M·J·贝克勒 申请人:国际商业机器公司