CN102375875A - 用于检测处理元素内的不允许的数据组合的方法和系统 - Google Patents
用于检测处理元素内的不允许的数据组合的方法和系统 Download PDFInfo
- Publication number
- CN102375875A CN102375875A CN2011102353470A CN201110235347A CN102375875A CN 102375875 A CN102375875 A CN 102375875A CN 2011102353470 A CN2011102353470 A CN 2011102353470A CN 201110235347 A CN201110235347 A CN 201110235347A CN 102375875 A CN102375875 A CN 102375875A
- Authority
- CN
- China
- Prior art keywords
- data
- rule
- received
- processing element
- combination
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种用于检测处理元素内的不允许的数据组合的方法和系统。描述了用于检测处理元素内的不允许的数据组合的技术。本发明的各实施例通常可以接收要使用所述处理元素处理的数据,并判定所接收的数据和当前工作状态是否违反描述不允许的数据组合的一个或多个规则。如果检测到不允许的组合,本发明的各实施例可以以防止所述处理元素内的不允许数据组合的备选方式管理所接收的数据的处理。
Description
背景技术
当计算机数据库变得极其复杂时,对数据库系统的计算要求也快速增加。数据库系统通常被配置为将存储数据的过程与访问、操纵或使用数据库中存储的数据进行分离。更具体地说,数据库使用这样的模型:其中数据首先被存储,然后被索引,然后被查询。但是,此模型无法满足某些实时应用的性能要求。例如,数据库系统接收和存储入站数据的速率会限制可以处理或以其他方式计算多少数据。这又会限制数据库应用实时处理大量数据的能力。
发明内容
本发明的实施例提供了一种用于检测第一处理元素内的不允许的数据组合的方法和系统。所述方法和系统包括接收要处理的数据。所述方法和系统还包括确定描述所述第一处理元素内的预定数据组合的一个或多个规则。此外,所述方法和系统包括确定所述第一处理元素的当前工作状态,其中所述当前工作状态包括正在所述第一处理元素上处理的其他数据和可由所述第一处理元素访问的其他数据。所述方法和系统还包括通过一个或多个计算机处理器的运算,判定所接收的数据和所确定的当前工作状态是否违反所述一个或多个规则中的任何规则。
本发明的第二实施例提供了一种用于检测第一处理元素内的不允许的数据组合的计算机程序产品。所述计算机程序产品包括接收要处理的数据。所述计算机程序产品还包括确定描述所述第一处理元素内的预定数据组合的一个或多个规则。此外,所述计算机程序产品包括确定所述第一处理元素的当前工作状态,其中所述当前工作状态包括正在所述第一处理元素上处理的其他数据和可由所述第一处理元素访问的其他数据。所述计算机程序产品还包括通过一个或多个计算机处理器的运算,判定所接收的数据和所确定的当前工作状态是否违反所述一个或多个规则中的任何规则。此外,所述计算机程序产品包括在判定所接收的数据和所确定的当前工作状态不违反所述一个或多个规则中的任何规则时,在所述第一处理元素上处理所接收的数据。
附图说明
为了详细理解可实现上述方面的方式,可以通过参考附图做出上面简要概述的本发明的实施例的具体描述。
但是要指出,附图仅示出了本发明的典型实施例,因此并不被视为限制本发明的范围,因为本发明可允许其他同样有效的实施例:
图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中的编程指令。类似地,CPU205存储和检索驻留在存储器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结束。
附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
虽然上述内容涉及本发明的各实施例,但可以在不偏离本发明的基本范围的情况下设计本发明的其他和进一步的实施例,并且本发明的范围由以下权利要求确定。
Claims (20)
1.一种检测第一处理元素内的不允许的数据组合的方法,所述方法包括:
接收要处理的数据;
确定描述所述第一处理元素内的预定数据组合的一个或多个规则;
确定所述第一处理元素的当前工作状态,其中所述当前工作状态包括正在所述第一处理元素上处理的其他数据和可由所述第一处理元素访问的其他数据;以及
通过一个或多个计算机处理器的运算,判定所接收的数据和所确定的当前工作状态是否违反所述一个或多个规则中的任何规则。
2.如权利要求1中所述的方法,还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,在第二处理元素上处理所接收的数据。
3.如权利要求2中所述的方法,其中所接收的数据是数据流的一部分,并且还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,在所述第二处理元素上处理来自所述数据流的所有后续接收的数据。
4.如权利要求1中所述的方法,还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,丢弃所接收的数据。
5.如权利要求1中所述的方法,还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,将所接收的数据在所述第一处理节点上的处理延迟预定时间量。
6.如权利要求5中所述的方法,还包括:
确定所述第一处理元素的更新后的工作状态,其中所述更新后的工作状态包括正在所述第一处理元素上处理的其他数据和可由所述第一处理元素访问的其他数据;以及
在判定所接收的数据和所确定的更新后的工作状态的组合不违反所述一个或多个规则中的任何规则时,在所述第一处理元素上处理所接收的数据。
7.如权利要求1中所述的方法,还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,通过使用占位符值替换所接收的数据中的至少一个值来修改所接收的数据;以及
在所述第一处理元素上处理修改后的数据。
8.如权利要求1中所述的方法,其中所确定的当前工作状态进一步包括最近可由所述第一处理元素访问的最近数据,并且其中所述最近数据不再可由所述第一处理元素访问。
9.如权利要求1中所述的方法,还包括:
在确定所接收的数据和所确定的当前工作状态不违反所述一个或多个规则中的任何规则时,通过一个或多个计算机处理器的运算,在所述第一处理元素上处理所接收的数据。
10.如权利要求1中所述的方法,还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时:
限制与在所述第一处理节点上处理数据关联的一个或多个运算;以及
在受限制的第一处理节点上处理所接收的数据。
11.一种系统,包括:
计算机处理器;以及
包含程序的存储器,当所述程序在所述计算机处理器上执行时,将执行用于检测第一处理元素内的不允许的数据组合的操作,所述操作包括:
接收要处理的数据;
确定描述所述第一处理元素内的预定数据组合的一个或多个规则;
确定所述第一处理元素的当前工作状态,其中所述当前工作状态包括正在所述第一处理元素上处理的其他数据和可由所述第一处理元素访问的其他数据;以及
判定所接收的数据和所确定的当前工作状态是否违反所述一个或多个规则中的任何规则。
12.如权利要求11中所述的系统,所述操作还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,在第二处理元素上处理所接收的数据。
13.如权利要求12中所述的系统,其中所接收的数据是数据流的一部分,并且所述操作还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,在所述第二处理元素上处理来自所述数据流的所有后续接收的数据。
14.如权利要求11中所述的系统,所述操作还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,丢弃所接收的数据。
15.如权利要求11中所述的系统,所述操作还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,将所接收的数据在所述第一处理节点上的处理延迟预定时间量。
16.如权利要求15中所述的系统,所述操作还包括:
确定所述第一处理元素的更新后的工作状态,其中所述更新后的工作状态包括正在所述第一处理元素上处理的其他数据和可由所述第一处理元素访问的其他数据;以及
在判定所接收的数据和所确定的更新后的工作状态的组合不违反所述一个或多个规则中的任何规则时,在所述第一处理元素上处理所接收的数据。
17.如权利要求11中所述的系统,所述操作还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时,通过使用占位符值替换所接收的数据中的至少一个值来修改所接收的数据;以及
在所述第一处理元素上处理修改后的数据。
18.如权利要求11中所述的系统,其中所确定的当前工作状态进一步包括最近可由所述第一处理元素访问的最近数据,并且其中所述最近数据不再可由所述第一处理元素访问。
19.如权利要求11中所述的系统,所述操作还包括:
在确定所接收的数据和所确定的当前工作状态不违反所述一个或多个规则中的任何规则时,在所述第一处理元素上处理所接收的数据。
20.如权利要求11中所述的系统,所述操作还包括:
在判定所接收的数据和所确定的当前工作状态的组合违反所述一个或多个规则中的至少一个规则时:
限制与在所述第一处理节点上处理数据关联的一个或多个运算;以及
在受限制的第一处理节点上处理所接收的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/860,068 | 2010-08-20 | ||
US12/860,068 US9218566B2 (en) | 2010-08-20 | 2010-08-20 | Detecting disallowed combinations of data within a processing element |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102375875A true CN102375875A (zh) | 2012-03-14 |
CN102375875B CN102375875B (zh) | 2014-04-16 |
Family
ID=45594856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110235347.0A Active CN102375875B (zh) | 2010-08-20 | 2011-08-16 | 用于检测处理元素内的不允许的数据组合的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9218566B2 (zh) |
CN (1) | CN102375875B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218566B2 (en) | 2010-08-20 | 2015-12-22 | International Business Machines Corporation | Detecting disallowed combinations of data within a processing element |
US9020785B2 (en) | 2012-11-09 | 2015-04-28 | International Business Machines Corporation | Identifying and routing poison tuples in a streaming application |
US9002846B2 (en) * | 2013-03-15 | 2015-04-07 | International Business Machines Corporation | Ending tuple processing in a stream-based computing application |
US9582250B1 (en) * | 2015-08-28 | 2017-02-28 | International Business Machines Corporation | Fusion recommendation for performance management in streams |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230891A1 (en) * | 2003-05-16 | 2004-11-18 | Pravetz James D. | Document modification detection and prevention |
US6850899B1 (en) * | 2000-03-31 | 2005-02-01 | Intel Corporation | Business process and apparatus for online purchases using a rule-based transferable shopping basket |
CN1614565A (zh) * | 2003-11-07 | 2005-05-11 | 趋势株式会社 | 数据包内容过滤装置及方法以及储存媒体 |
WO2006127135A2 (en) * | 2005-05-23 | 2006-11-30 | Sap Governance Risk And Compliance, Inc. | Access enforcer |
CN101697170A (zh) * | 2009-10-27 | 2010-04-21 | 用友软件股份有限公司 | 一种动态选择数据库的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748964A (en) * | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US6640211B1 (en) * | 1999-10-22 | 2003-10-28 | First Genetic Trust Inc. | Genetic profiling and banking system and method |
US9218566B2 (en) | 2010-08-20 | 2015-12-22 | International Business Machines Corporation | Detecting disallowed combinations of data within a processing element |
-
2010
- 2010-08-20 US US12/860,068 patent/US9218566B2/en not_active Expired - Fee Related
-
2011
- 2011-08-16 CN CN201110235347.0A patent/CN102375875B/zh active Active
-
2012
- 2012-11-20 US US13/682,436 patent/US9224092B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850899B1 (en) * | 2000-03-31 | 2005-02-01 | Intel Corporation | Business process and apparatus for online purchases using a rule-based transferable shopping basket |
US20040230891A1 (en) * | 2003-05-16 | 2004-11-18 | Pravetz James D. | Document modification detection and prevention |
CN1614565A (zh) * | 2003-11-07 | 2005-05-11 | 趋势株式会社 | 数据包内容过滤装置及方法以及储存媒体 |
WO2006127135A2 (en) * | 2005-05-23 | 2006-11-30 | Sap Governance Risk And Compliance, Inc. | Access enforcer |
CN101697170A (zh) * | 2009-10-27 | 2010-04-21 | 用友软件股份有限公司 | 一种动态选择数据库的方法和装置 |
Non-Patent Citations (1)
Title |
---|
MICHAEL STONEBRAKER ET AL.: "The 8 Requirements of Real-Time Stream Processing", 《SIGMOD RECORD》 * |
Also Published As
Publication number | Publication date |
---|---|
US9224092B2 (en) | 2015-12-29 |
US9218566B2 (en) | 2015-12-22 |
US20130124446A1 (en) | 2013-05-16 |
CN102375875B (zh) | 2014-04-16 |
US20120047101A1 (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019232804B2 (en) | Decision tables and flow engine for building automated flows within a cloud based development platform | |
US11397744B2 (en) | Systems and methods for data storage and processing | |
ES2765415T3 (es) | Aparato, método y programa de procesamiento de datos basado en microservicios | |
US20170116206A1 (en) | Real-time synchronization of data between disparate cloud data sources | |
JP6755864B2 (ja) | データベースセキュリティ | |
CN102375877A (zh) | 使用属性特征化预测性地移除运行时数据的方法和系统 | |
US20180300829A1 (en) | System for intellectual property landscape analysis, risk management, and opportunity identification | |
CN108140007A (zh) | 跨部署位置安全地部署应用程序 | |
JP2016505953A (ja) | ルールベースのデータ処理システムと方法 | |
CN110291514A (zh) | 通过逻辑映射遍历智能合约数据库 | |
BR112019025269A2 (pt) | microprocessador incluindo um modelo corporativo | |
US20180232807A1 (en) | Advanced decentralized financial decision platform | |
Saxena et al. | Practical real-time data processing and analytics: distributed computing and event processing using Apache Spark, Flink, Storm, and Kafka | |
CN102375875B (zh) | 用于检测处理元素内的不允许的数据组合的方法和系统 | |
CN103733188A (zh) | 使操作器图中的流无效 | |
Singh et al. | Big data: technologies, trends and applications | |
Oueida et al. | Healthcare Operation Improvement Based on Simulation of Cooperative Resource Preservation Nets for None‐Consumable Resources | |
EP3624027A1 (en) | Decision tables and flow engine for building automated flows within a cloud based development platform | |
GB2492204A (en) | Managing events generated from business objects such as purchase orders, schedules job plans and inventory reservations | |
US20230153300A1 (en) | Building cross table index in relational database | |
Essakimuthu et al. | Enhanced Hadoop distribution file system for providing solution to big data challenges | |
US11487776B2 (en) | Managing extract-transform-load operations | |
US20110247008A1 (en) | System and method for federated services | |
US20210165796A1 (en) | Streaming tuple database control | |
Salminen | A metadata model for hybrid data products on a multilateral data marketplace |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |