变换生成系统的制作方法_4

文档序号:9204239阅读:来源:国知局
类繁多的编码格式,并且不限于双索引二维数组(dual indexed two dimens1nal array)。例如,图4A和4B中的有向无环图以及图5中示出的双向链表是控制变换执行流的控制结构的例子。控制结构具有对应于执行案例的行。在变换控制结构的上下文中,术语“行”是指一个或多个触发条件以及一个或多个输出的逻辑分组,其中,当已经确定满足行中的所有的触发条件时,行的(多个)输出被执行。在此上下文中,术语“行”并不限于所显示的表格的水平子集。
[0106]图4A-4B示出了基于规则集的变换的表示为有向无环图的示例控制结构400。在本例中,变换所基于的规则集包括规则I和规则2。在本例中,变换可以在数据流图100中的组件150中实现,或等效地,变换可以实现为在组件130中实现的基于规则I的第一变换以及在组件140中实现的基于规则2的第二变换的串联。在图4A和图4B中,每个节点由如相对图3A中描述的使用指针(rule_id,R0W_ID,C0LUMN_ID)标记。
[0107]控制结构400中的节点对应于触发条件或输出。对应于触发条件的节点具有从节点引出的两条边。如果节点对应的触发条件在施加到输入数据时确定为真,则跟随两条边中的一条。如果节点相对应的触发条件在施加到输入数据时确定为假,则跟随两条边中的第二条。对应于输出的节点具有从节点引出的一条边,在生成相应的输出后总是跟随这条边。控制结构400的行可以包括一个或多个触发条件节点序列,由从前一个触发条件节点引出的“真”边依次连接。针对行的序列中的最后一个触发条件节点可通过它的“真”边连接到针对该行的一个或多个输出节点中的第一个。一行中的输出节点引出的边可以连接到该行的另外的输出节点。一行中的最后一个输出节点引出的边可以连接到对应于不同的执行案例或规则的另一行的节点,或者可以将执行流引导到对工作单元的变换处理的终点448。类似地,从触发条件节点引出的“假”边可以连接到对应于不同的执行案例或规则的另一行的节点,或者可以将执行流引导到对工作单元的变换处理的终点448。
[0108]控制结构400对变换的执行流的起点402编码。变换通过评估第一执行案例的第一触发条件404启动。
[0109]在一些情况下,“假”边可能会使得执行流跳转到与当前行不相邻的行,以此跳过对一些执行案例的评估。在处理工作单元(例如,对应于可表示账户、交易、飞机、汽车、计算机、移动设备、建筑物等的输入数据记录)时,这样跳过行可以降低变换的复杂度并减少处理时间。
[0110]在本例中,一些节点,包括触发条件节点420,都没有边连接到它们。缺乏边连接的节点反映了一个事实,即在变换所基于的规则集的逻辑下,相应的触发条件或输出将永远不需要处理。其结果是,可以从控制结构400中省略这些无连接的节点以及相应的触发条件。在图4B的控制结构450中示出了对不必要触发条件的省略。
[0111]在一些情况下,节点可以合并并通过控制结构中的单个节点表示。例如,可以通过创建单个触发条件节点一一其引导对由节点454引用的触发条件和由节点456引用的触发条件进行逻辑AND评估一一来合并节点454和节点456。这是可能的,因为如果两个触发条件都为真,则接下来处理输出节点458,并且如果两个触发条件中的一个为假,则接下来处理节点460。以这种方式,可以合并规则集中对于执行案例的两个触发条件,并由控制结构450中的单个触发条件表示。如果合并的节点对应于这些触发条件的唯一实例,则触发条件也可以在唯一触发条件的列表的单个条目中合并。类似地,可以合并输出节点470和节点472,因为它们相应的输出总是一起生成。在本例中,通过合并输出节点470和节点472,它们相应的行可以合并成单个行,其对应于变换所基于的规则集上的两个执行案例。这些节点合并技术通过降低必须生成的和执行的控制流的代码量,可以降低存储器的使用以及变换的处理时间。
[0112]图5示出了基于表示为所显示的表的规则集的变换的示例控制结构500。控制结构500可以存储为诸如双重链表(例如,行的链表,其中每行包括行的触发条件和输出链表)。在本例中,控制结构500控制基于包括规则I和规则2的规则集的变换的执行流。在本例中,控制结构500引用唯一触发条件的列表300中的触发条件以及唯一输出的列表350中的输出。
[0113]图5中的第一列510描绘控制结构500的行的索引(例如,执行案例号)。可以使用这个索引引用控制结构中的行,以便于在执行流中跳转从而避免不必要的处理。第二列520描绘了每一行的触发条件序列。例如,控制结构500可以包括针对触发条件的代码部分,其引用唯一触发条件的列表300中的触发条件,并在触发条件被评估之后基于结果(例如,通过或不通过/真或假)进一步将引导变换的处理。如果触发条件不通过,则将变换处理引导到不同的行,其可能是序列中远离当前行的多行之外的行,或者是控制结构500中的行。例如,第三行中的代码部分522引导处理过程以评估唯一触发条件的列表300中的第三触发条件,并且如果触发条件不通过,则代码部分522将引导处理过程到控制结构500的第五行,因此跳过第四行。
[0114]如果针对控制结构中的列出行的所有触发条件都通过,则引导处理过程到该行的输出。图5的第四列530描绘了对唯一输出的列表350的输出的引用。最后,在执行对于控制结构500中的行的输出之后,可以引导处理过程以继续处理控制结构500的另一行或结束对当前工作项的处理。图5的第三列540描绘了对控制结构500中的其他行的引用,所述其它行被控制结构的行索引(例如,执行案例号)引用。
[0115]图6展示了可以使用变换生成技术的示例数据处理系统600。系统600包括数据源602,其可以包括数据的一个或多个诸如存储设备或到在线数据流的连接之类的数据源,每一个数据源都可以以多种存储格式的任何一种存储数据(例如,数据库表、电子表格文件、平面文本文件或大型机使用的本机格式)。执行环境604包括变换生成模块606和执行模块612。执行环境604可以托管在一台或多台在诸如UNIX操作系统之类的合适的操作系统控制之下的通用计算机之上。例如,执行环境604可以包括多节点并行计算环境,其包括使用多个中央处理单元(CPU)的计算机系统的配置,无论是本地的(例如,诸如SMP计算机的多处理器系统)、或本地分布(例如,耦合为群集或MPP的多个处理器),或远程的、或远程分布(例如,多个通过局域网络(LAN)和/或广域网(WAN)耦合的处理器),或它们的任何组合。
[0116]变换生成模块606接收包括执行案例序列的规则集,执行案例的至少一个包括一个或多个触发条件以及对在一个或多个触发条件都满足时将生成的输出的规范。规则集还可以包括执行案例,其包括一个或多个输出但缺乏触发条件,或者等同地,具有总是评估为真的触发条件(例如,在示例规则I中的默认的执行案例)。例如,规则集可以由通过应用专家环境622访问该执行环境604的用户626指定。在一些实现中,应用专家环境包括运行在远程计算设备上的客户端软件,其提供给用户626用于指定规则集的GUI。例如,应用专家环境622可以使得用户能够在基于电子表格的GUI中指定规则集,如相对图2A和图2B所述。在一些实现中(未示出),开发环境618和应用程序专家环境622可以被合并,并且可由编辑数据流图以及对于在那些数据流图中实例化的变换的规则集规范的单个用户或用户组访问。
[0117]变换生成模块606基于收到的规则集生成一个或多个变换。可以生成控制一个或多个变换的执行流的控制结构。控制结构可以包括对应于规则集中的执行案例的行。每一行可以包括一个或多个触发条件序列,以及指定对于执行案例的输出的信息。在处理变换数据期间当触发条件不通过时,一些触发条件可引导处理过程在当前行之下的多行的不同行继续,因此跳过对一些执行案例的评估,以缩减变换所需的处理时间。
[0118]控制结构可以连同任何其它对所生成的(多个)变换进行编码的数据一起存储或发送。例如,可以在数据存储系统616中存储控制结构的所生成的变换。在一些实现中(未示出),该变换生成模块606可以被实现为应用程序专家环境622的一部分,并且编码所生成的(多个)变换的数据一一包括控制结构,可以从运行应用专家环境622的远程计算设备发送到执行环境604。
[0119]执行模块612使用由变换生成模块606生成的一种或多种变换以处理输入的数据记录,并生成供传输或存储的输出数据记录。一旦已经生成了基于图的计算的一个或多个变换,则包括(多个)变换的计算可以由执行模块612施加到输入数据。执行模块612从数据源602中读取数据,并生成可以存储在执行环境604可访问的数据存储系统616中的输出数据记录614。例如,数据存储系统616可以包括数据库服务器和/或运行版本控制应用的服务器。
[0120]在一些实现中,执行模块还记录在输入数据记录处理期间评估的触发条件的执行时间和/或结果。例如,变换生成模块606可以使用这些日志,通过改变控制结构的触发条件的顺序更新变换。
[0121]提供数据源602的存储设备可以相对执行环境604是本地的,例如,存储在连接到运行执行环境604的计算机的存储介质上(例如,硬盘驱动器608),或者可以相对执行环境604是远程的,例如,托管在通过远程连接与运行执行环境604的计算机通信的远程系统(例如,主机610)上。
[0122]数据存储系统616还可以由开发环境618访问,其中,开发者620能够创建和管理基于图的计算,其可以包括对应于变换的组件。这些变换的操作可以由用户(例如,用户626)配置,用户可能有该基于图的计算将施加到的应用的专门知识。在一些实现中,开发环境618是用于开发数据流图应用的系统,数据流图包括通过顶点(表示组件或数据集)之间的有向链接(表示工作元素的流)连接的顶点。例如,这样的环境在题为“Managingparameters for graph-based applicat1ns” 的美国公开号 2007/0011668 中描述得更加详细,以引用方式将其并入本文。用于执行这样的基于图的计算的系统在美国专利5, 566, 072 “EXECUTING COMPUTAT1NS EXPRESSED AS GRAPHS” 中描述,通过引用将其并入本文。根据本系统制成的数据流图提供用于将信息传入或移出由图组件表示的单个进程、用于在进程之间传递信息、以及用于规定进程的运行顺序的方法。该系统包括选择进程间通信方法的算法(例如,根据图的链接的通信路径可以使用TCP/IP或UNIX域套接字,或使用在进程之间传递数据的共享内存)。
[0123]执行模块612可以从包括不同形式的数据库系统的多种类型的系统中接收数据。数据可以组织为具有用于各自字段(也称为“属性”或“列”)的值的记录,可能包括空值。当第一次从数据源读取数据时,执行模块612通常以关于该数据源中的记录的一些初始格式信息开始。在某些情形下,数据源的记录结构可能是最初未知的,并且可以在分析数据源之后确定。关于记录的初始信息可以包括表示不同值的比特位数、记录中字段的顺序以及比特表示的值的类型(例如,字符串、有符号/无符号整数)。
[0124]图7示出了示例变换生成和执行过程700的流程图。例如,过程700的可以由图6中的执行环境604执行。
[0125]当接收到规则集时702,可以启动700。规则集可以包括执行案例序列。规则集中的执行案例可以包括一个或多个触发条件以及对在执行案例的一个或多个触发条件都满足时将要生成的输出的规范。在一些实现中,通过用户界面(例如,文本文件编辑器、基于电子表格的GU1、或一些其他类型的GUI)接收规则集,用户界面包括与接收规则集的处理装置本地连接的硬件(例如,计算机显示器以及键盘和/或鼠标)。例如,规则集可以通过图6的执行环境604的用户接口来接收。在一些实现中,由服务器通过网络接口从远程处理设备接收规则集。例如,可以通过执行环境604的网络接口从运行应用专家环境622的远程处理设备接收规则集。
[0126]基于接收到的规则集,生成包括控制结构的变换704。在变换施加到输入数据时,控制结构可以用于控制变换的执行流。控制结构可以引用生成的变换的其它部分(例如,唯一触发条件的列表和/或唯一输出的列表)。控制结构可以用多种格式编码。控制结构格式的例子包括编译为用于执行环境中的一个或多个处理器的可执行文件、包括可由计算机语言解释器或编译器在运行时编译的文本的文本文件、包括可被解释或编译的代码部分的文本记录的双索引(二维)数组、图4A和图4B的有向无环图以及图5中示出的双向链衣?寺寺O
[0127]所生成的控制结构可以包括对应于规则集中一个或多个执行案例的行。控制结构中的行可以包括一个或多个触发条件的序列以及指定执行案例的输出的信息。控制结构的行可以是对应于规则集中一个或多个触发条件以及执行案例的一个或多个输出的执行控制流代码的逻辑分组。在一些实现中,控制结构的行包括代码部分序列(例如,存储为链表),其引导变换的执行,以使得处理设备
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1