首页> 中国专利> 用于检测处理元素内的不允许的数据组合的方法和系统

用于检测处理元素内的不允许的数据组合的方法和系统

摘要

本发明涉及一种用于检测处理元素内的不允许的数据组合的方法和系统。描述了用于检测处理元素内的不允许的数据组合的技术。本发明的各实施例通常可以接收要使用所述处理元素处理的数据,并判定所接收的数据和当前工作状态是否违反描述不允许的数据组合的一个或多个规则。如果检测到不允许的组合,本发明的各实施例可以以防止所述处理元素内的不允许数据组合的备选方式管理所接收的数据的处理。

著录项

  • 公开/公告号CN102375875A

    专利类型发明专利

  • 公开/公告日2012-03-14

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201110235347.0

  • 发明设计人 M·J·布兰松;J·M·桑多索索;

    申请日2011-08-16

  • 分类号G06F17/30;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-18 04:38:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-04-16

    授权

    授权

  • 2012-04-25

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20110816

    实质审查的生效

  • 2012-03-14

    公开

    公开

说明书

背景技术

当计算机数据库变得极其复杂时,对数据库系统的计算要求也快速增 加。数据库系统通常被配置为将存储数据的过程与访问、操纵或使用数据 库中存储的数据进行分离。更具体地说,数据库使用这样的模型:其中数 据首先被存储,然后被索引,然后被查询。但是,此模型无法满足某些实 时应用的性能要求。例如,数据库系统接收和存储入站数据的速率会限制 可以处理或以其他方式计算多少数据。这又会限制数据库应用实时处理大 量数据的能力。

发明内容

本发明的实施例提供了一种用于检测第一处理元素内的不允许的数据 组合的方法和系统。所述方法和系统包括接收要处理的数据。所述方法和 系统还包括确定描述所述第一处理元素内的预定数据组合的一个或多个规 则。此外,所述方法和系统包括确定所述第一处理元素的当前工作状态, 其中所述当前工作状态包括正在所述第一处理元素上处理的其他数据和可 由所述第一处理元素访问的其他数据。所述方法和系统还包括通过一个或 多个计算机处理器的运算,判定所接收的数据和所确定的当前工作状态是 否违反所述一个或多个规则中的任何规则。

本发明的第二实施例提供了一种用于检测第一处理元素内的不允许的 数据组合的计算机程序产品。所述计算机程序产品包括接收要处理的数据。 所述计算机程序产品还包括确定描述所述第一处理元素内的预定数据组合 的一个或多个规则。此外,所述计算机程序产品包括确定所述第一处理元 素的当前工作状态,其中所述当前工作状态包括正在所述第一处理元素上 处理的其他数据和可由所述第一处理元素访问的其他数据。所述计算机程 序产品还包括通过一个或多个计算机处理器的运算,判定所接收的数据和 所确定的当前工作状态是否违反所述一个或多个规则中的任何规则。此外, 所述计算机程序产品包括在判定所接收的数据和所确定的当前工作状态不 违反所述一个或多个规则中的任何规则时,在所述第一处理元素上处理所 接收的数据。

附图说明

为了详细理解可实现上述方面的方式,可以通过参考附图做出上面简 要概述的本发明的实施例的具体描述。

但是要指出,附图仅示出了本发明的典型实施例,因此并不被视为限 制本发明的范围,因为本发明可允许其他同样有效的实施例:

图1A-1B示出了根据本发明的一个实施例的被配置为执行流应用的计 算基础设施100;

图2是根据本发明的一个实施例的图1A-1B的计算节点130的更详细 的视图;

图3是根据本发明的一个实施例的图1的服务器计算系统105的更详 细的视图;

图4示出了根据本发明的一个实施例的流应用中的计算节点的一个实 例;

图5是示出根据本发明的一个实施例的防止处理元素上的不允许数据 组合的方法的流程图;

图6是示出根据本发明的一个实施例的防止处理元素上的不允许数据 组合的方法的流程图;以及

图7是示出根据本发明的一个实施例的防止处理元素上的不允许数据 组合的方法的流程图。

具体实施方式

基于流的计算和基于流的数据库计算作为数据库系统的正在发展技术 出现。提供的产品允许用户创建可在流数据到达数据库文件之前对流数据 进行处理和查询的应用。通过这种新兴技术,用户可以指定处理逻辑以便 在入站数据记录“执行(in flight)”时应用于这些记录,并且在非常短的 时间内(通常在几毫秒内)提供结果。使用此类处理构造应用开创了新的 编程范例,这将允许开发各种创新性的应用、系统和过程,同时对应用编 程人员和数据库开发人员提出新的挑战。

在流应用中,运算符相互连接以便数据从一个处理元素流向下一个处 理元素(例如通过TCP/IP套接字)。通过跨节点分布应用(通过创建许 多小的可执行代码段(运算符))以及在多个节点上复制处理元素并在处 理元素之间进行负载平衡来获得可伸缩性。流应用中的处理元素(和运算 符)可以融合在一起以形成较大的处理元素。这样做可允许处理元素共享 公共进程空间,从而导致运算符之间的通信远快于使用进程间通信技术(例 如,使用TCP/IP套接字)获得的通信。此外,处理元素可以被动态地插 入表示通过流应用的数据流的运算符图或被从运算符图动态地删除,以及 在运行时与流应用融合或取消融合。

流应用的一个优点是它们允许用户以粒度方式控制通过应用的数据过 程流。换言之,用户可以针对每个处理元素指定对入站数据执行各种操作 的特定运算符,并且可以通过修改运算符及其执行顺序而动态改变流应用。 此外,流应用能够处理大量数据,同时限制处理中的任何“瓶颈”。

但是,由于流应用通常处理大量数据,这些数据的处理跨多个计算节 点分布于多个处理元素,这对应用编程人员和数据库开发人员提出了额外 的挑战。一个此类挑战是防止使用同一处理元素处理不允许的数据组合, 不允许的数据组合可能导致不正确的决策制定或者出现不当操作。作为一 个实例,流应用可能希望防止在移植手术适合性分析中考虑患者的特定遗 传标记。此外,除了简单地防止在适合性分析中考虑遗传标记之外,流应 用开发人员可能希望防止决策制定组件(例如,处理元素)甚至具有患者 遗传标记数据的访问权限,以便防止甚至出现不正确的决策制定。

作为第二个实例,对于执行自动股票交易的公司而言,不允许的数据 组合可以是可能导致(或被解释为)内幕交易信息的任何数据组合。此类 组合例如可能在所接收的数据集与当前可由处理元素访问的其他数据之间 出现。此外,不允许的组合可能在所接收的数据集本身内的各值之间出现。 此外,在被配置为防止出现任何不当操作的本发明的一个实施例中,不允 许的组合可能在所接收的数据集与最近由处理元素处理的其他数据之间出 现,即使所述其他数据不再可由处理元素访问。因此,本发明的各实施例 可以被配置为通过防止在处理元素上同时出现多个数据组合而防止可能导 致内幕交易(或出现内幕交易)的任何不正确的计算。

本发明的各实施例提供了用于标识处理元素上的不允许的数据组合, 并且仅在确定处理不会导致不允许的数据组合之后才在处理元素上处理所 接收的数据的技术。具体地说,本发明的各实施例可以访问描述处理元素 的不允许的数据组合的规则。此外,本发明的各实施例可以确定第一处理 元素的当前工作状态。在确定当前工作状态和所接收的数据元素的组合不 违反一个或多个规则中的任何规则时,本发明的各实施例可以在第一处理 元素上处理所接收的数据元素。

以下参考了本发明的各实施例。但是应该理解,本发明并不限于描述 的特定实施例。相反,将构想以下特性和元素(无论是否与不同实施例相 关)的任意组合以实施和实现本发明。此外,虽然本发明的各实施例可以 相对于其他可能解决方案和/或相对于现有技术实现优点,但特定优点是否 由给定实施例实现并不会限制本发明。因此,以下方面、特性、实施例和 优点仅是示例性的,并不被视为所附权利要求的元素或限制,除非在权利 要求(多个)中明确指出。同样,对“本发明”的引用不应被理解为在此 披露的任何发明主题的概括,并且不应被视为所附权利要求的元素或限制, 除非在权利要求(多个)中明确指出。

如本领域的技术人员将理解的,本发明的各方面可以体现为系统、方 法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、 完全软件实施例(包括固件、驻留软件、微代码等)或组合了在此通常被 称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。 此外,本发明的各方面可以采取体现在一个或多个计算机可读介质(在介 质中包含计算机可读程序代码)中的计算机程序产品的形式。

可以使用一个或多个计算机可读介质的任意组合。所述计算机可读介 质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介 质例如可以是(但不限于)电、磁、光、电磁、红外线或半导体系统、装 置或设备或它们的任意适当组合。计算机可读存储介质的更具体的实例(非 穷举列表)可以包括以下项:具有一条或多条线的电连接、便携式计算机 软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写 可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器 (CD-ROM)、光存储设备、磁存储设备或它们的任意适当组合。在本文 档的上下文中,计算机可读存储介质可以是任何能够包含或存储由指令执 行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序 的有形介质。

计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播 的带有计算机可读程序代码的数据信号。此类传播信号可以采取任何不同 的形式,包括但不限于电磁、光或它们的任意适合组合。计算机可读信号 介质可以是任何并非计算机可读存储介质并且可以传送、传播或传输由指 令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的 程序的计算机可读介质。

可以使用任何适当的介质(包括但不限于无线、有线、光缆、RF等或 它们的任意适当组合)来传输计算机可读介质中包含的程序代码。

用于执行本发明的各方面的操作的计算机程序代码可以使用一种或多 种编程语言的任意组合来编写,所述编程语言包括诸如Java、Smalltalk、 C++之类的面向对象的编程语言或者诸如“C”编程语言或类似的编程语言 之类的常规过程编程语言。所述程序代码可以完全地在用户的计算上执行、 部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户 的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上 执行。在后一种情形中,远程计算机可以通过任何种类的网络-包括局域 网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用 因特网服务提供商来通过因特网)连接到外部计算机。

下面参考根据本发明的各实施例的方法、装置(系统)和计算机程序 产品的流程图和/或方块图对本发明的各方面进行描述。将理解,所述流程 图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可 以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算 机、专用计算机或其他可编程数据处理装置的处理器以产生机器,以便通 过所述计算机或其他可编程数据处理装置的处理器执行的所述指令产生用 于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的装置。

这些计算机程序指令也可以被存储在可引导计算机、其他可编程数据 处理装置或其他设备以特定方式执行功能的计算机可读介质中,以便存储 在所述计算机可读介质中的所述指令产生一件包括实现在所述一个或多个 流程图和/或方块图方块中指定的功能/操作的指令的制品。

所述计算机程序指令还可被加载到计算机、其他可编程数据处理装置 或其他设备,以导致在所述计算机、其他可编程装置或其他设备上执行一 系列操作步骤以产生计算机实现的过程,从而在所述计算机或其他可编程 装置上执行的指令提供用于实现在一个或多个流程图和/或方块图方块中 指定的功能/操作的过程。

本发明的各实施例可以通过云计算基础设施被提供给最终用户。云计 算通常指通过网络作为服务来供应可扩展的计算资源。更正式地说,云计 算可以被定义为在计算资源及其基础技术架构(例如,服务器、存储设备、 网络)之间提供抽象的计算能力,从而能够对可配置的计算资源共享池进 行方便、按需的网络访问,可以以最少的管理工作或服务提供商交互快速 地供应和释放所述可配置的计算资源。因此,云计算允许用户访问“云” 中的虚拟计算资源(例如,存储设备、数据、应用,甚至完整的虚拟化计 算系统),而不考虑用于提供所述计算资源的基础物理系统(或这些系统 的位置)。

通常,云计算资源通过按使用付费的方式被提供给用户,其中用户仅 针对实际使用的计算资源(例如,用户使用的存储空间量或用户实例化的 虚拟化系统的数量)付费。用户可以通过因特网在任何时间、从任何位置 访问驻留在云中的任何资源。在本发明的上下文中,用户可以访问云中提 供的应用或相关数据。例如,用于创建流应用的节点可以是由云服务提供 商托管的虚拟机。这可允许用户从连接到与云相连的网络(例如,因特网) 的任何计算系统访问此信息。

图1A-1B示出了根据本发明的一个实施例的被配置为执行流应用的计 算基础设施100。如所示出的,计算基础设施100包括管理系统105和多 个计算节点1301-4,每个计算节点连接到通信网络120。此外,管理系统 105包括运算符图132和流管理器134。如下面更详细描述的,运算符图 132表示从一个或多个源处理元素(PE)开始一直到一个或多个汇(sink) 处理元素的流应用。这种从源到汇的流在此通常也被称为执行路径。通常, 数据元素流入流应用的源PE并由该PE处理。通常,处理元素从流接收具有 数据元素的N元组以及将具有数据元素的N元组发出到流(除了流在该处终 止的汇PE之外)。当然,由处理元素接收的N元组不必是向下游发送的同 一N元组。此外,处理元素可以被配置为以不同于N元组的格式接收或发出 数据(例如,处理元素可交换标记为XML文档的数据)。此外,每个处理 元素可以被配置为对所接收的元组执行任何形式的数据处理功能,例如包 括写入数据库表或执行其他数据库操作(例如数据联接、拆分、读取等) 以及执行其他数据分析功能或操作。

流管理器134可以被配置为监视在计算节点1301-4上运行的流应用, 以及更改运算符图132的结构。例如,流管理器134可以将处理元素(PE) 从一个计算节点130移动到另一个节点,以便例如管理计算基础设施100 中的计算节点130的处理负载。进而,流管理器134可以通过插入、删除、 融合、取消融合或以其他方式修改在计算节点1301-4上运行的处理元素(或 何种数据元组流入处理元素)来控制流应用。在本发明的一个实施例中, 管理系统105可以维护多个运算符图132。在此类实施例中,一个运算符 图132被指定为主运算符图,它表示总体或默认处理流,而其他运算符图 可以表示备选处理流。

图1B示出了包括十个在计算节点1301-4上运行的处理元素(标记为 PE1-PE10)的实例运算符图。虽然处理元素可以作为独立运行的进程执行 并具有它自己的进程ID(PID)和存储器空间,但是也可以融合多个处理 元素以作为单个进程(具有PID和存储器空间)运行。在两个(或更多) 处理元素独立运行的情况下,可以使用网络套接字(例如,TCP/IP套接字) 进行进程间通信。但是,当进程融合在一起时,融合后的处理元素可以使 用更快速的通信技术在处理元素(以及每个处理元素中的运算符)之间传 递N元组(或其他数据)。

如所示出的,运算符图始于源135(流入标记为PE1的处理元素)并 终于汇1401-2(从标记为PE6和PE10的处理元素流出)。计算节点1301包 括处理元素PE1、PE2和PE3。源135流入处理元素PE1,处理元素PE1又 发出由PE2和PE3接收的元组。例如,PE1可以拆分在元组中接收的数据 元素并将某些数据元素传递到PE2,同时将其他数据元素传递到PE3。流向 PE2的数据由PE2中包含的运算符处理,生成的元组然后被发出到计算节 点1302上的PE4。同样,由PE4发出的数据元组流向汇PE61401。类似地, 从PE3流向PE5的数据元组也到达汇PE61401。因此,除了对于此实例运 算符图是汇之外,PE6可以被配置为执行联接运算,从而组合从PE4和PE5 接收的元组。此实例运算符图还示出了从PE3流向计算节点1303上的PE7 的数据元组,计算节点1303本身示出了流向PE8并循环返回PE7的数据元 组。从PE8发出的数据元组流向计算节点1304上的PE9,PE9又发出要由 汇PE101402处理的元组。

此外,虽然在流应用的上下文中描述了本发明的各实施例,但是这并 非与本公开相关的唯一上下文。相反,此类描述没有限制并且仅为了示例 性目的。当然,本领域的技术人员将认识到,本发明的各实施例可以被配 置为与任何能够执行在此描述的功能的计算机系统或应用一起工作。例如, 本发明的各实施例可以被配置为在具有标准数据库处理应用的群集环境中 工作。

图2是根据本发明的一个实施例的图1A-1B的计算节点130的更详细 的视图。如所示出的,计算节点130包括但不限于中央处理单元(CPU) 205、网络接口215、互连220、存储器225和存储单元230。计算节点130 还可以包括用于将I/O设备212(例如,键盘、显示器和鼠标设备)连接 到计算节点130的I/O设备接口210。

CPU 205检索和执行存储在存储器225中的编程指令。类似地,CPU 205存储和检索驻留在存储器225中的应用数据。互连220用于在CPU 205、 I/O设备接口210、存储单元230、网络接口215和存储器225之间传输编 程指令和应用数据。所包括的CPU 205表示单个CPU、多个CPU、具有 多个处理核心的单个CPU等。所包括的存储器225通常表示随机存取存储 器。诸如硬盘驱动器、固态设备(SSD)或闪存存储驱动器之类的存储单 元230可以存储非易失性数据。

在此实例中,存储器225包括多个处理元素(PE)235、不允许的组 合(FC)组件245、多个FC规则250以及流连接数据255。每个PE 235 都包括运算符240的集合。如以上指出的,每个运算符240可以提供一小 块可执行代码,所述一小块可执行代码被配置为处理流入处理元素(例如, PE 235)的数据以及将数据发出到此PE中的其他运算符240和流应用中 的其他PE。此类PE可以在同一计算节点130上,也可以在可通过数据通 信网络120访问的其他计算节点上。流连接数据255表示计算节点130上 的PE之间的连接(例如,两个单独PE 235之间的TCP/IP套接字连接), 以及到具有流应用中的上游或下游PE的其他计算节点130的连接(也通 过TCP/IP套接字(或其他进程间数据通信机制))。

如所示出的,存储单元230包含缓冲的流数据260。缓冲的流数据260 表示用于从上游处理元素(或从流应用的数据源)流入计算节点105的数 据的存储空间。例如,缓冲的流数据260可以包括等待由PE 235之一处理 的数据元组。缓冲的流数据260还可以存储由PE 235执行的数据处理的结 果,所述结果将被发送到下游处理元素。

FC组件245可以接收要在PE 235之一上处理的数据流的入站元组。 所接收的元组可以接收自源135,或者备选地可以是系统100中的另一个 PE的输出。在接收到元组时,FC组件245可以确定被指定为处理所接收 的元组的PE 235的PE 235的当前工作状态。通常,如在此使用的,PE 235 的工作状态指一段时间内可由PE 235访问的所有数据。例如,PE 235的 当前工作状态可以包括当前正在由PE 235处理的数据(例如,包括在由 PE 235接收的另一个元组中的数据),以及当前可由PE 235访问的所有 数据(例如,存储在可由PE 235访问的数据库中)。此外,当前工作状态 还可以包括所接收的元组本身中的信息。

此外,在本发明的一个实施例中,PE 235的当前工作状态可以包括最 近可由PE 235访问的数据。例如,在本发明的此类实施例中,工作状态可 以包括在上一个元组中接收的数据,尽管此类数据已由PE 235处理并且不 再可由PE 235访问。此外,在此类实施例中,可以指定阈值时间,所述阈 值时间指示必须可由PE 235访问的要包括在当前工作状态中的数据的最 近程度。

一旦确定了当前工作状态,FC组件245然后就可以使用FC规则250 判定在指定PE 235上处理所接收的元组是否将导致不允许的数据组合。例 如,如果所接收的数据元组和PE 235的当前工作状态的组合违反FC规则 250中的至少一个规则,则FC组件245可以判定该元组的处理将导致不允 许的组合。相应地,FC组件245可以采取操作以防止不允许的组合。此类 操作可以包括延迟PE 235上所接收的元组的处理、根据备选执行计划将所 接收的元组发送到另一个PE 235以便处理,或者简单地丢弃所接收的元 组。相反,如果FC组件245判定不违反任何FC规则250,则FC组件245 可以将所接收的元组发送到适合的PE 235以便处理。这样,本发明的各实 施例可以防止在给定处理元素上不正确地使用数据。此外,各实施例还可 以防止出现由可在给定处理元素上访问的数据的不允许组合产生的任何不 当操作。

图3是根据本发明的一个实施例的图1的服务器计算系统105的更详 细的视图。如所示出的,服务器计算系统105包括但不限于中央处理单元 (CPU)305、网络接口315、互连320、存储器325和存储单元330。客 户机系统130还可以包括将I/O设备312(例如,键盘、显示器和鼠标设 备)连接到服务器计算系统105的I/O设备接口310。

与图2的CPU 205一样,CPU 305被配置为检索和执行存储在存储器 325和存储单元330中的编程指令。类似地,CPU 305被配置为存储和检 索驻留在存储器325和存储单元330中的应用数据。互连320被配置为在 CPU 305、I/O设备接口310、存储单元330、网络接口315和存储器325 之间移动诸如编程指令和应用数据之类的数据。与CPU 205一样,所包括 的CPU 305表示单个CPU、多个CPU、具有多个处理核心的单个CPU等。 所包括的存储器325通常表示随机存取存储器。网络接口315被配置为通 过通信网络120传输数据。虽然被示为单个单元,但存储单元330可以是 固定和/或可移动的存储设备(例如固定盘驱动器、可移动存储器卡、光存 储设备、SSD或闪存设备、网络连接存储(NAS)或到存储区域网络(SAN) 设备的连接)的组合。

如所示出的,存储器325存储流管理器132。此外,存储单元330包 括主运算符图335和备选运算符图340。流管理器132通常可以根据主运 算符图335将作为数据流的一部分接收的元组路由到PE 235以便处理。如 上所述,在本发明的一个实施例中,如果FC组件245判定所接收的元组 和当前工作状态的组合违反FC规则250中的至少一个规则,则FC组件 245然后可以根据备选执行路径将给定元组路由到第二PE 235。在这种情 况下,可以由备选运算符图240指定备选执行路径。此外,在本发明的一 个实施例中,EPT组件245还被配置为通知流管理器132根据备选运算符 图340将所有后续针对数据流接收的元组路由到PE 235。

图4示出了根据本发明的一个实施例的流应用中的计算节点的实例。 如所示出的,计算节点1302包括三个处理元素2352、2353和2354(标记为 PE1-PE3)。在示出的实例中,在计算节点1302上,处理元素2352接收N 元组数据流并将N元组发出到处理元素2353和2354(分别标记为PE2和 PE3)。处理元素PE2和PE3又将N元组发出到计算节点1303上的处理元 素2355。在此实例中,PE 135(标记为PE1)接收包括属性<姓名,部门, 薪金,性别>的元组。PE1获得此N元组,并根据由PE1接收的元组中的性 别值生成一组被发送到PE2的元组和另一组被发送到PE3的元组。依次地, PE2和PE3针对从PE1接收的每个元组执行数据库写入,并生成被发送到 PE4的属性为<姓名,部门,薪金>的元组。一旦接收到该元组,PE4就访 问第三方Web服务并生成在流应用中进一步向下游发送的元组。

继续此实例,示出的流应用可以是针对企业的所有员工自动执行奖金 处理的自动薪金应用。但是,假设由于公众对高管薪酬的强烈抗议,企业 希望手动处理来自部门“主管”并且薪金在200,000美元以上的所有员工 的奖金。因此,流应用开发人员可以创建指定PE1上不允许的数据组合的 FC规则250,其中“部门”属性包含值“主管”而“薪金”属性包含大于 “200000”的值。如果FC组件245然后接收到包含值<Jane Doe,主管, 300000,F>的元组,则FC组件245可以判定PE1上此元组的处理将违反 上述FC规则250。

在判定所述元组的处理将违反FC规则250中的至少一个规则时,本 发明的各实施例可以防止使用该处理元素处理所接收的元组。相反,FC 组件245可以使用备选执行路径(例如,使用另一个PE 235)重定向所接 收的元组以便处理。在另一个实施例中,所接收的元组可简单地被丢弃而 不做处理。例如,如果流应用开发人员知道高管奖金被手动处理并与其他 员工相分离,则FC组件245可以被配置为丢弃所有这样的元组:如果处 理这些元组,将违反指定“部门”属性包含值“主管”而“薪金”属性包 含大于“200000”的值的FC规则250。

通过在检测到不允许的数据组合时防止在处理元素上处理所接收的元 组,本发明的各实施例可以防止出现不允许的数据组合用于不正确的手段 的情况。作为另一个实例,本发明的各实施例可用于防止在判定患者是否 适合器官移植时针对特定条件使用患者的遗传标记。此外,本发明的各实 施例不仅可以防止实际使用此标记(即,实际不当操作),而且还可以防 止出现任何不当操作。也就是说,即使在判定患者是否适合器官移植时没 有使用有关患者遗传标记的数据,企业也可能希望所述遗传标记数据甚至 不可用于做出资格决策的处理元素。通过确保处理元素无法访问遗传标记 数据,本发明的各实施例确保了防止甚至出现任何不正确的决策制定。

图5是示出根据本发明的一个实施例的防止处理元素235上的不允许 数据组合的方法500的流程图。如所示出的,方法500始于步骤520,其 中FC组件245接收数据元组以便使用指定处理元素235处理。在接收到 数据元组时,FC组件245确定标识指定处理元素235的不允许的数据组合 的任何相关FC规则250(步骤522)。一旦FC组件245确定了任何相关 FC规则250,FC组件245就判定指定处理元素235的当前工作状态(步 骤524)。

FC组件245然后判定使用PE 235处理所接收的数据元组是否将导致 不允许的数据组合(步骤526)。如果FC组件245判定处理不会导致不允 许的组合,则FC组件245将所接收的元组发送到指定处理元素235以便 处理(步骤528)。但是,如果FC组件245判定处理将在处理元素235 上导致不允许的数据组合,则FC组件245丢弃所接收的元组(步骤530)。 一旦丢弃了元组,FC组件245然后就记录有关所丢弃的元组的信息(步骤 532)。丢弃元组并记录有关该元组的信息之后,或者备选地使用所述处理 元素处理所接收的元组之后,方法500将结束。

如上面所讨论的,FC组件245可以以其他方式处理所接收的元组,而 不是丢弃所接收的元组。例如,在本发明的一个实施例中,FC组件245 可以使用占位符值替换所接收的元组中的值,然后将修改后的元组发送到 处理元素以便处理。例如,假设企业希望防止处理元素在判定患者是否适 合器官移植时针对特定特性考虑(或者能够考虑)患者的遗传标记。因此, 当接收到包含患者数据的元组时,FC组件245可以使用占位符值替换该元 组中描述遗传标记的任何属性,从而指示进行了替换。一旦使用占位符值 替换了标记数据,FC组件245就可以判定处理元素的更新后的工作状态, 然后判定修改后的元组和更新后的工作状态是否违反FC规则250中的任 何规则。如果FC组件245判定不违反任何规则,则FC组件245可以将 修改后的元组发送到处理元素以便处理。

在本发明的另一个实施例中,FC组件245可改为根据备选执行路径将 所接收的元组发送到另一个处理元素以便处理,而不是丢失所接收的元组。 例如,遵循上面讨论的实例,假设由于公众对高管薪酬的强烈抗议,企业 希望手动处理来自部门“主管”并且薪金在200,000美元以上的所有员工 的奖金。在这种情况下,企业可以创建FC规则250,从而防止在处理元素 上运行的自动薪金程序处理其中“部门”属性具有值“主管”并且“薪金” 属性具有大于200,000美元的值的员工数据。如果FC组件245然后判定所 接收的数据元组违反了上述FC规则250,则FC组件245可以防止在所述 处理元素上处理所述元组,并可以改为根据备选执行路径将所述元组重定 向到另一个处理元素。因此,在此实例中,FC组件245可以将所接收的元 组发送到针对处理高管薪金特别指定的处理元素。

在本发明的另一个实施例中,FC组件245可以将所接收的元组发送到 处理元素以便处理,而不是丢弃所接收的元组,但可能限制该处理元素可 采取的操作。因此,例如假设处理元素通常对入站元组执行两个操作:访 问数据库的第一操作和访问第三方服务的第二操作。此外,假设所接收的 元组和访问数据库的第一操作将产生禁止的组合。因此,在此实例中,FC 组件245可以将所接收的元组发送到处理元素,但可以将该处理元素限制 为在处理所述元组时仅执行第二操作。通过此方式,FC组件245可以避免 中断流应用的正常操作流,同时仍然防止处理元素内出现禁止的数据组合。

图6是示出根据本发明的一个实施例的防止处理元素上的不允许数据 组合的方法600的流程图。如所示出的,方法600始于步骤620,其中FC 组件245判定如果指定处理元素处理所接收的数据元组,是否将出现不允 许的组合。例如,FC组件245可以在先前方法500的步骤526处进行此类 判定。在检测到如果处理所接收的元组将会出现不允许的组合时,FC组件 245延迟在处理元素上处理所接收的元组(步骤622)。在本发明的一个实 施例中,处理被延迟的时间量是预定的固定时间量。在本发明的另一个实 施例中,FC组件245根据任何数量的因素计算时间量。FC组件245可以 考虑的示意性因素包括但不限于违反哪个FC规则250以触发不允许的组 合、所接收的元组中包含的值、收集的有关所接收的元组的元数据,以及 各种外部因素(例如,时间、接收元组的速率等)。

一旦FC组件245延迟了所接收的元组的处理,FC组件245然后就确 定指定处理元素的更新后的工作状态(步骤624)。此外,在示出的实施 例中,FC组件245判定如果在指定处理元素上处理所接收的元组,是否将 出现不允许的组合(步骤626)。FC组件245可以基于所接收的元组和指 定处理元素的更新后的工作状态的组合是否违反FC规则250中的任何规 则来进行决策。如果FC组件245判定此处理将导致不允许的组合,则所 述方法再次在步骤620开始,因为FC组件245再次检测到不允许的数据 组合。相反,如果FC组件245判定所述组合将不会违反FC规则250中 的任何规则,则FC组件245将所接收的元组发送到指定处理元素以便处 理(步骤628)。所述处理元素处理所接收的元组之后,方法600将结束。

有利地,方法600防止处理元素内不允许的数据组合,同时避免重定 向(例如,到由备选执行路径指定的另一个处理元素)或丢弃所接收的数 据元组(其处理将违反FC规则250中的至少一个规则)。例如,假设处 理元素接收到第一数据元组并存储所述第一元组中包含的值。此外,假设 该处理元素在某一时间量之后删除所存储的值。如果该处理元素然后接收 到第二数据元组,并且如果FC组件245判定第二元组和所存储的值的组 合违反FC规则250中的至少一个规则,则FC组件245可以延迟第二元 组在该处理元素上的处理,直到所存储的值被删除为止。这样,FC组件 245在该处理元素上避免了不允许的数据组合。

如上所述,FC组件245可以被配置为在检测到潜在的不允许组合时执 行各种操作。在本发明的特定实施例中,这些操作可以被组合,以便在检 测到潜在的不允许组合时执行多个操作。图7是示出根据本发明的一个实 施例的防止处理元素上的不允许数据组合的方法700的流程图。如所示出 的,方法700始于步骤720,其中FC组件245判定如果指定处理元素要处 理所接收的数据元组,是否将出现不允许的组合。例如,FC组件245可以 在上面讨论的方法500的步骤526处进行此类判定。在检测到如果处理所 接收的元组将会出现不允许的组合时,FC组件245判定备选执行路径是否 可用于处理所接收的数据元组(步骤722)。例如,FC组件245可以查询 管理系统105上的流管理器132以确定备选运算符图340是否可用于处理 所接收的元组。

如果FC组件245判定备选执行路径可用于处理所接收的数据元组, 则FC组件245将所接收的元组重定向到在备选执行路径中指定的处理元 素以便处理所接收的元组(步骤724)。相反,如果FC组件245判定没有 可用的备选执行路径,则FC组件245延迟所接收的元组在所述处理元素 上的处理(步骤726)。如上面所讨论的,处理被延迟的时间量可以是预 定的时间量,也可以是计算的时间量。

FC组件245延迟所接收的元组的处理之后,FC组件245确定指定处 理元素的更新后的工作状态(步骤728)。FC组件245然后判定如果在指 定处理元素上处理所接收的元组,是否将出现不允许的组合(步骤730)。 FC组件245可以根据所接收的元组和指定处理元素的更新后的工作状态 的组合是否违反FC规则250中的任何规则来进行决策。如果FC组件245 判定此处理将导致不允许的组合,则所述方法再次在步骤620开始,因为 FC组件245再次检测到不允许的数据组合。相反,如果FC组件245判定 所述组合将不会违反FC规则250中的任何规则,则FC组件245将所接 收的元组发送到指定处理元素以便处理(步骤628)。所述处理元素处理 所接收的元组之后,方法600结束。

附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方 法和计算机程序产品的可能实施方式的架构、功能和操作。在此方面,所 述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述 代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还 应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明 的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行, 或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。 还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图 中的方块的组合可以由执行指定功能或操作的基于专用硬件的系统或专用 硬件和计算机指令的组合来实现。

虽然上述内容涉及本发明的各实施例,但可以在不偏离本发明的基本 范围的情况下设计本发明的其他和进一步的实施例,并且本发明的范围由 以下权利要求确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号