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

文档序号:9204239阅读:来源:国知局
检查触发条件或生成输出。基于当前触发条件的评估结果,触发条件的代码部分也可以引导变换执行到对应于不同的触发条件或输出的另一代码部分。当触发条件在变换数据处理期间不通过时,控制结构中的触发条件可以引导处理过程以在行序列中距离当前行多行之外的不同的行继续。以这种方式,可以跳过一些行的触发条件和/或输出的执行,以减少工作单元(例如,输入数据记录)的处理时间。
[0128]在一些实现中,可以基于当序列中的触发条件在数据处理期间不通过时处理将被导向到其的不同行的行号,对行的触发条件序列进行排序。例如,在变换生成期间可以通过以下方式对行的触发条件序列进行排序:通过将在不通过条件下会在控制结构中导致大的跳转的触发条件放在行的触发条件序列中更前的位置,同时将在不通过条件下会在控制结构中导致小的跳转的触发条件放在行的触发条件序列中靠后的位置。
[0129]在一些实现中,控制结构的行通过以下方式生成704:省略也在执行案例序列中紧接着对应的执行案例之前的执行案例中出现的相应的执行案例的触发条件。这一省略可以降低变换的编译和/或执行的内存需求。
[0130]在一些实现中,作为变换的一部分,还生成规则集的唯一触发条件的列表704。包括规则I和规则2的规则集的唯一触发条件的列表300是可生成的唯一触发条件的列表的例子。例如,当行中的触发条件序列存储为代码部分序列时,代码部分中的一个可以引导处理过程到在规则集的唯一触发条件的列表中编码的触发条件。
[0131]在一些实现中,作为变换的一部分,还生成规则集的唯一输出的列表704。包括规则I和规则2的规则集的唯一输出的列表300是可生成的唯一输出的列表的例子。例如,当行中的输出存储为代码部分序列时,代码部分可以引导处理过程到在规则集的唯一输出的列表中的输出。
[0132]在一些实现中,控制结构的行可以还包括这样的代码部分:当行的所有的触发条件满足并且行的(多个)输出已经生成时,其引导处理过程到接下来将处理的控制结构的不同行。
[0133]例如,包括控制结构的变换可以通过在图6的执行环境604上运行的变换生成模块606生成(704) ο
[0134]所生成的变换,包括控制结构,可以被存储和/或传输706。在一些实现中,变换存储在一个存储器装置(例如,随机存取存储器)中,并传递给执行模块,该执行模块可以将变换施加到输入数据。例如,变换可以由变换生成模块606存储(706)在作为执行环境604 —部分的易失性存储器装置中,其可以由图6中的执行模块612访问。在一些实现中,变换可以存储在包括非易失性存储器的数据存储装置(例如,数据库服务器或运行版本控制应用的服务器)中。例如,变换可以存储(706)在数据存储系统616中。在一些实现中,变换可以发送到远程设备(例如,通过电子通信网络)。例如,变换可以从运行在应用专家环境中的变换生成模块发送(706)到远程执行环境以施加到输入数据。
[0135]一旦变换已经生成并可用于将要执行该变换的处理系统,则可以施加变换到输入数据。例如,变换可以由运行包括一个或多个实现变换的组件的数据流图的处理系统访问(例如,数据流图100的组件130和140)。可以从一个或多个数据源接收输入数据(708)(例如,数据源602)。在一些实现中,输入数据被预处理(例如,通过实现连接过程的组件120),以便创建创建可以传递到实现变换的一个或多个组件的数据流的工作单元。由于每个工作单元是基于所接收的输入数据准备的,所以可以被传递到变换。在一些实现中,工作单元组被批量传递到变换。例如,可以通过图6中的执行环境604的网络接口接收输入数据(708)ο
[0136]执行变换(710)以处理所接收的输入数据。在一些实现中,也可以在处理新的输入数据时,在运行时解释和/或编译该变换。例如,可以执行变换(710)并使用相对于图8所描述的过程800将其施加到输入数据。将变换施加到输入数据可以包括针对输入数据,按照使用控制结构确定的顺序检查触发条件。例如,可以通过在图6的执行环境604中运行的执行模块606执行变换(710)。
[0137]变换的执行可以持续(712)直到没有更多的输入数据可用。可以存储反映将变换施加到输入数据的结果的数据(714)(例如,作为写入到数据汇点的输出数据记录)。存储的结果数据可以是基于由控制结构指定的(多个)输出生成的。例如,该结果可以由执行模块612存储在图6中的数据存储系统614中。在一些实现中(未示出),基于控制结构指定的(多个)输出的结果数据通过电子通信网络(例如,通过执行环境的网络接口 604)发送(例如,到应用专家环境622)。
[0138]图8是用于执行基于规则集的变换的示例过程800的流程图。例如,过程800可以通过运行在图6中的执行环境604的执行模块612来执行。
[0139]过程800包括检索(802)将施加到输入数据的变换的控制结构。在一些实现中,当实现变换的数据流图中的组件传递数据流中的工作单元时,检索控制结构(802)。在一些实现中,从存储器设备(例如,随机存取存储器)检索控制结构(802)。在一些实现中,从包括非易失性存储器(例如,数据库服务器或服务器上运行的版本控制程序)的数据存储设备检索控制结构(802)。在一些实现中,控制结构在运行时传递到解释器和/或编译器以准备用于执行的控制结构。
[0140]针对工作单元的输入数据检查第一触发条件810。例如,可以解释和执行编码触发条件的DML表达式,以访问与工作单元相关联的(多个)记录的任何引用输入数据字段,并通过施加触发条件的逻辑来测试被访问的数据。该评估的结果可以是通过或不通过(真或假)。
[0141]可以记录触发条件的评估结果(例如,用于测试、调试或优化的目的)。在一些实现中,可以记录触发条件的执行时间(例如,以微秒或处理器周期测量)。关于施加到输入数据的触发条件的不通过率或执行时间的数据可用于动态地更新控制结构,以尽力降低未来记录的平均处理时间。
[0142]如果工作单元的输入数据没有满足触发条件815 (例如,结果是不通过或假),则可以部分地基于与触发条件(例如,引用或包括该触发条件的代码部分)相关联的控制流代码,引导变换的执行到控制结构的不同行。按照该控制结构,执行可以跳转(820)到控制结构的不同行。例如,某些不通过的条件可能使得执行跳转(820)到控制结构的行序列中距离当前行多行之外的不同的行。以这种方式,可以跳过对某些行的触发条件和/或输出的执行,以降低工作单元的处理时间。可以随后检查(810)新行的下一个触发条件。在一些实现中(未示出),变换的执行可以跳转到没有触发条件的行(例如,对应于缺省执行案例),或直接到控制结构的结束。
[0143]如果工作单元的输入数据满足触发条件(815)(例如,其结果是通过或真),则可以引导变换的执行到控制结构的当前行中的下一个元素。如果行的触发条件序列中有更多的触发条件(825),则检查行中的下一个触发条件(810)。否则,可以生成行的一个或多个输出(830) ο
[0144]例如,可以解释和执行编码输出的DML表达式,以访问与工作单元相关联的记录中的任何引用输入数据字段和/或施加数据逻辑,以生成810 —个或多个输出记录。(多个)结果输出记录可以是全新的,或可以更新或扩展现有记录,以包括另外的字段或其它数据。
[0145]在生成(830)当前行的(多个)输出后,可以引导变换的执行到对应于另外的执行(多个)案例的不同的行。在一些实现中,行包括引导变换的执行到控制结构中的不同行的指针。如果还有执行案例待处理(835),则控制结构可以使得变换的执行跳转(840)到控制结构的不同行。例如,对于多发规则,可能需要处理对应于额外执行案例的额外的行。如果变换对应于具有多个规则的规则集,则控制结构可以使得变换的执行跳转(840)到控制结构中对应于不同规则的不同行。随后可以检查新行的下一个触发条件(810)。
[0146]当没有更多的执行案例一一因此没有更多的行一一需要处理835时,可以基于处理后的输入数据的日志信息动态地更新控制结构。例如,可以部分地基于关于触发条件的执行时间的平均故障率的新的日志信息,对行的触发条件序列中的触发条件进行排序850。
[0147]在一些实现中,可以基于用输入数据执行触发条件使用的时间,对唯一触发条件的列表中的触发条件的执行时间的测量进行更新。可以部分地基于更新后的触发条件的执行时间的测量,对行的触发条件序列中的触发条件进行排序(850)。在一些实现中,可以基于输入数据中的一个或多个记录是否满足该触发条件,对唯一触发条件的列表中的触发条件的不通过率测量进行更新。可以部分地基于更新的触发条件的不通过率测量,对行的触发条件序列中的触发条件进行排序(850)。
[0148]可以存储(852)控制结构的更新版本以应用于未来的输入数据。在一些实现中,可以在存储器设备(例如,随机存取存储器)中存储852更新后的控制结构。在一些实现中,可以在包括非易失性存储器(例如,数据库服务器或运行版本控制应用的服务器)的数据存储设备中存储(852)更新后的控制结构。
[0149]上述变换生成方法可以使用用于在计算机上执行的软件实现。例如,该软件形成一个或多个计算机程序中的过程,所述程序在一个或多个已编程或可编程的计算机系统(其可以是诸如分布式、客户端/服务器、或网格的各种架构)上运行,计算机系统的每一个包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元素)、至少一个输入设备或端口、以及至少一个输出设备或端口。该软件可以形成较大程序的一个或多个模块,例如,提供与数据流图的设计和配置相关的其他服务。该图的节点和元素可以实现为存储在计算机可读介质中的数据结构、或符合在数据仓库中存储的数据模型的其他组织数据。
[0150]该软件可以被提供在通用或专用目的的可编程计算机可读取的诸如CD-ROM的存储介质上,或者通过网络的通信介质向运行它的计算机传递(在传播信号中编码)。所有的功能可以在专用计算机上执行,或者使用诸如协处理器的专用硬件执行。该软件可以按照分布式方式实现,其中该软件所规定的计算的不同部分由不同计算机执行。每一个这样的计算机程序优选存储在或下载到通用或专用可编程计算机可读取的有形的、非暂时性的存储介质或设备(例如,固态存储器或介质、或者磁或光学介质),用于当存储介质或设备由计算机系统读取以执行其中描述的过程时,配置和操作计算机。本发明的系统也可以被认为实现为配置有计算机程序的计算机可读存储介质,其中如此配置的存储介质使得计算机系统按照特定和预定义的方式操作以执行这里描述的功能。
[0151]已经描述了本发明的多个实施例。然而,将理解的是,可以进行各种修改而不脱离本发明的精神和范围。例如,上述一些步骤可以是顺序无关的,并且由此可以按照与描述的顺序不同的顺序来执行。
[0152]应当理解的是,前述描述旨在说明而不是限制由所附权利要求的范围限定的本发明的范围。例如,上面描述的多个功能步骤可以按照不同顺序执行,而基本上不影响总体处理。强调的是,在图2A和图2B的示例中描述的、以及本说明书中通篇引用的关于信用卡账户的特定的业务规则的细节,仅用于说明GUI 200和GUI 250的功能以及它们为其提供用户界面的变换生成系统。所呈现的特定的业务规则的细节不是必需的特征,并且不应被解释为限制权利要求的范围。其它实施例在以下权利要求的范围中。
【主权项】
1.一种由一个或多个数据处理设备执行的用于对变换数据的规则集编码的方法,包括: 接收包括执行案例序列的规则集,执行案例序列中的至少一个执行案例包括一个或多个触发条件以及在一个或多个触发条件全部满足时将生成的输出的规范; 生成包括对应于规则集中的一个或多个执行案例的行的序列的控制结构,每一行包括:一个或多个触发条件的序列以及指定相应执行案例输出的信息,其中生成的控制结构被配置为当触发条件中的一个不通过时,引导处理过程到不同的行继续,并且其中所生成的控制结构被配置为使得,对于控制结构中的触发条件中的至少一个,当所述触发条件中的至少一个不通过时,控制结构将引导处理过程跳过行序列中的至少一行;以及存储或发送所述控制结构。2.如权利要求1所述的方法,还包括: 接收输入数据; 以使用控制结构确定的顺序,针对输入数据检查触发条件;以及 基于由控制结构指定的输出,存储或发送数据。3.如权利要求1所述的方法,其中所述行中的至少一行省略针对相应执行案例的触发条件,其中所省略的触发条件在执行案例序列中所述相应执行案例之前的执行案例中出现。4.如权利要求1所述的方法,其中所述行中的触发条件序列是代码部分的序列,所述代码部分各自引导处理过程到规则集的唯一触发条件的列表中的触发条件。5.如权利要求1所述的方法,其中所述指定行中的输出的信息是代码部分,其引导处理过程到规则集的唯一输出的列表中的输出表达式。6.如权利要求1所述的方法,还包括: 基于在处理数据期间当序列中的触发条件不通过时处理将要被引导到的不同的行
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1