基于上下文的数据库安全的系统和方法

文档序号:6513432阅读:223来源:国知局
基于上下文的数据库安全的系统和方法
【专利摘要】本发明涉及基于上下文的数据库安全的系统和方法。具体而言,处理器实现的方法、系统和/或计算机程序产品保护数据存储区。非上下文的数据对象和上下文对象相关联,以定义合成的基于上下文的对象。合成的基于上下文的对象和数据结构中包括与非上下文的数据对象和上下文对象中包含的数据相关联的数据的至少一个具体数据存储区相关联。从用户接收对与不明确的主题相关的数据的不明确的请求。来自用户的不明确的请求的上下文被确定并与合成的基于上下文的对象相关联,合成的基于上下文的对象与包括与来自用户的现在为上下文请求的上下文相关的数据的具体数据存储区相关联。然后向用户提供对具体数据存储区的访问,而阻止对数据结构中其他数据存储区的访问。
【专利说明】基于上下文的数据库安全的系统和方法
【技术领域】
[0001]本公开涉及计算机领域,特别是计算机中数据库的使用。更具体而言,本公开涉及基于上下文的数据库。
【背景技术】
[0002]数据库是数据集合。数据库类型的例子包括关系数据库、图形数据库、网络数据库和面向对象的数据库。每种类型的数据库以非动态的方式呈现数据,其中数据被静态存储。

【发明内容】

[0003]一种处理器实现的方法、系统和/或计算机程序产品保护数据存储区。非上下文的数据对象和上下文对象相关联以定义合成的基于上下文的对象。合成的基于上下文的对象和数据结构中的至少一个具体数据存储区相关联,其中具体数据存储区包括与非上下文的数据对象和上下文对象中包含的数据相关联的数据。从用户接收对与不明确的主题相关的数据的不明确的请求。来自用户的不明确的请求的上下文被确定并与合成的基于上下文的对象相关联,所述合成的基于上下文的对象与所述具体数据存储区相关联,其中具体数据存储区包括与来自用户的现在为上下文请求的上下文相关的数据。然后向用户提供对具体数据存储区的访问,而阻止对数据结构中其他数据存储区的访问。
【专利附图】

【附图说明】
[0004]图1描述其中可实现本公开的示例性的系统和网络;
[0005]图2示出用于生成一个或多个合成的基于上下文的对象的过程;
[0006]图3示出示例性情况,其中合成的基于上下文的对象被定义用于非上下文的数据对象数据“104 一 106”;
[0007]图4描述示例性情况,其中合成的基于上下文的对象被定义用于非上下文的数据对象的数据“好公司”;
[0008]图5示出用于关联一个或多个数据存储区和具体合成的基于上下文的对象的过程;
[0009]图6描述示例性的用户界面,该用户界面使能对与不明确的主题有关的数据的用户请求;
[0010]图7描述通过使用特定合成的基于上下文的对象而施加安全保护到特定数据存储区的过程;
[0011]图8-9示出合成的基于上下文的对象的层次创建;
[0012]图10描述层次合成的基于上下文的对象数据库;
[0013]图11示出通过使用层次合成的基于上下文的对象库而施加安全保护到一个或多个数据存储区的过程;以及
[0014]图12是通过使用合成的基于上下文的对象而由计算机处理器执行以保护数据存储区的一个或多个步骤的高级流程图。
【具体实施方式】
[0015]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0016]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0017]计算机可读的信号介质可包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0018]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0019]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0020]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个块以及流程图和/或框图中各块的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个块中规定的功能/动作的装置。
[0021]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个块中规定的功能/动作的指令的制造品(article of manufacture)0
[0022]计算机程序指令还可被加载到计算机、其它可编程数据处理装置或其他设备上,使得在计算机、其它可编程装置或其他设备上执行一系列的操作步骤,用以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图块中指定的功能/动作的流程。
[0023]现在参照附图,特别是图1,描述了可由本发明的实施利用并在本发明实施中利用的示例性系统和网络的框图。注意的是,为计算机102显示并在计算机102内显示的一些或全部的示例性体系结构(包括所述的硬件和软件两者)可由软件部署服务器150、数据存储系统152、用户计算机154和/或用户数据服务器156利用。
[0024]示例性的计算机102包括耦接到系统总线106的处理器104。处理器104可利用一个或多个处理器,每个处理器具有一个或多个处理器核。驱动/支持显示器110的视频适配器108也耦接到系统总线106。系统总线106通过总线桥112耦接到输入/输出(I/O)总线114。I/O接口 116耦接到I/O总线114。I/O接口 116提供与各种I/O设备的通信,各种I/O设备包括键盘118、鼠标120、介质托盘122 (其可包括诸如⑶-ROM驱动的存储设备,多媒体接口等)、打印机124和外部USB端口 126。虽然连接到I/O接口 116的端口格式可以是对计算机体系结构领域技术人员已知的任意格式,在一个实施例中,这些端口中的一些或全部是通用串行总线(USB)端口。
[0025]正如所述,计算机102能够使用网络接口 130与软件部署服务器150通信。网络接口 130是硬件网络接口,例如网络接口卡(NIC)等。网络128可以是诸如因特网的外部网络,或者诸如以太网或虚拟专用网络(VPN)的内部网络。
[0026]硬盘接口 132也耦接到系统总线106。硬盘接口 132与硬盘驱动器134对接。在一个实施例中,硬盘驱动器134位于系统存储器136中,系统存储器136也耦接到系统总线106。系统存储器被定义为计算机102中最低级别的易失性存储器。该易失性存储器包括另外的较高级的易失性存储器(未示出),包括但不限于高速缓冲存储器、寄存器和缓冲器。位于系统存储器136中的数据包括计算机102的操作系统(OS) 138和应用程序144。
[0027]0S138包括用于提供对资源(例如应用程序144)的透明用户访问的壳(shell)140。通常,壳140是提供解释器以及用户和操作系统之间界面的程序。更具体而言,壳140执行被输入到命令行用户界面中的命令或者来自文件的命令。因此,壳140 (也被称为命令处理器)通常是操作系统软件层级的最高级别,并充当命令解释器。壳提供系统提示,解释通过键盘、鼠标或其它用户输入介质输入的命令,并把解释的命令发送给操作系统的合适的更低级别(例如内核142)以用于处理。注意的是,虽然壳140是基于文本、面向行的用户界面,本发明将会同样很好地支持其它用户界面模式,例如图形、语音、手势等。
[0028]正如所述,0S138还包括内核142,内核142包括0S138的功能的更低级别,包括提供由0S138和应用程序144的其它部分所需的必要服务,包括存储器管理、过程和任务管理、盘管理以及鼠标和键盘管理。
[0029]应用程序144包括以示例性方式显示为浏览器146的渲染器。浏览器146包括使得万维网(WWW)客户端(例如计算机102)使用超文本传输协议(HTTP)消息向互联网发送网络消息以及接收网络消息的程序模块和指令,由此使能与软件部署服务器150和其它计算机系统的通信。
[0030]计算机102的系统存储器(以及软件部署服务器150的系统存储器)中的应用程序144还包括基于合成的基于上下文的对象的安全逻辑(SCB0BSL) 148。SCB0BSL148包括用于实现下述过程(包括图2-12中所述的那些过程)的代码。在一个实施例中,计算机102能够从包括按需基础的软件部署服务器150下载SCB0BSL148,其中直到需要执行才下载SCB0BSL148中的代码。还要注意的是,在本发明的一个实施例中,软件部署服务器150执行与本发明相关联的所有功能(包括SCB0BSL148的执行),从而免得计算机102必须使用其自己的内部计算资源以执行SCB0BSL148。
[0031]数据存储系统152存储电子数据结构,电子数据结构可以是音频文件、视频文件、网站内容、文本文件等。在一个实施例中,计算机102包含本文所述的合成的基于上下文的对象数据库,而数据存储系统152包含非上下文的数据对象数据库、上下文对象数据库和本文所述的数据结构。例如,在一个实施例中,图2所描述的示例性合成的基于上下文的对象数据库202存储于合成的基于上下文的对象数据库存储系统中,合成的基于上下文的对象数据库存储系统是硬盘驱动器134和/或计算机102的系统存储器136和/或数据存储系统152的一部分;图2所描述的非上下文的数据对象数据库206存储于非上下文的数据对象数据库存储系统中,非上下文的数据对象数据库存储系统是硬盘驱动器134和/或计算机102的系统存储器136和/或数据存储系统152的一部分;图2所描述的上下文对象数据库212存储于上下文对象数据库存储系统中,上下文对象数据库存储系统是硬盘驱动器134和/或计算机102的系统存储器136和/或数据存储系统152的一部分;而图4所描述的数据结构504存储于数据结构存储系统中,数据结构存储系统是硬盘驱动器134和/或计算机102的系统存储器136和/或数据存储系统152的一部分。
[0032]注意的是,计算机102中描述的硬件元件并不旨在是穷举性的,而是表示性的,用以突出本发明所需的必要部件。例如,计算机102可包括替代的存储器存储设备,例如磁带、数字通用盘(DVD)、BernoulIi盒等。这些和其它变形旨在落在本发明的精神和范围内。
[0033]注意的是,SCB0BSL148能够生成和/或利用在图2_12中参考的基于上下文的系统中所描述的一些或全部数据库。
[0034]现在参考图2,呈现用于在系统200中生成一个或多个合成的基于上下文的对象的过程。注意的是,系统200是图1中所示的计算机102和/或数据存储系统152中发现的处理和存储逻辑电路,处理和存储逻辑电路处理、支持和/或包含图2中所描述的数据库、指针和对象。
[0035]合成的基于上下文的对象数据库202在系统200内,合成的基于上下文的对象数据库202包含多个合成的基于上下文的对象204a-204n (从而指示“η”个数量的对象,其中“η”是整数)。由至少一个非上下文的数据对象和至少一个上下文对象定义合成的基于上下文的对象204a-204n中的每一个。也就是说,至少一个非上下文的数据对象与至少一个上下文对象相关联,用以定义一个或多个合成的基于上下文的对象204a-204n。非上下文的数据对象不明确地涉及多个主题,而上下文对象提供从多个主题中识别非上下文的数据对象的具体主题的上下文。
[0036]注意的是,非上下文的数据对象包含本身没有任何意义的数据,因此不明确地描述多个主题。也就是说,上下文对象中的数据不仅是由非上下文的数据对象描述的数据/对象的属性或描述符。相反,为了给这些非上下文的数据对象意义,上下文对象提供关于非上下文的数据对象的额外信息。因此,上下文对象不只描述某物,而是它们定义某物是什么。没有上下文对象,非上下文的数据对象包含没有意义的数据,有了上下文对象,非上下文的数据对象变得有意义。
[0037]例如,假设非上下文的数据对象数据库206包括多个非上下文的数据对象208r-208t (因而指示“t”个数量的对象,其中“t”是整数)。然而,这些非上下文的数据对象208r-208t中每一个内的数据本身是不明确的,因为它没有上下文。也就是说,非上下文的数据对象208r-208t的每一个内的数据是突出的没有任何意义的数据,因而关于其主题是不明确的。为了给非上下文的数据对象208r-208t的每一个内的数据意义,它们被给定上下文,该上下文由存储在上下文对象数据库212中的一个或多个上下文对象210x-210z内所包含的数据提供(从而指示“z”个数量的对象,其中“z”是整数)。例如,如果指针214a将非上下文的数据对象208r指向合成的基于上下文的对象204a,而指针216a将上下文对象210x指向合成的基于上下文的对象204a,从而将非上下文的数据对象208r和上下文对象210x与合成的基于上下文的对象204a相关联(例如,在合成的基于上下文的对象204a中存储或以其他方式关联非上下文的数据对象208r和上下文对象210x内的数据),非上下文的数据对象208r内的数据现在已由上下文对象210x内的数据给予明确的意义。因此,此上下文的意义存储在合成的基于上下文的对象204a内(或以其他方式与合成的基于上下文的对象204a相关联)。
[0038]同样,如果指针214b将非上下文的数据对象208s内的数据与合成的基于上下文的对象204b相关联,而指针216c将上下文对象210z内的数据与合成的基于上下文的对象204b相关联,则非上下文的数据对象208s内的数据现在由上下文对象210z中的数据给予意义。因此这种上下文的意义存储在合成的基于上下文的对象204b内(或以其他方式与合成的基于上下文的对象204b关联)。
[0039]注意的是,不止一个上下文对象可给予特定的非上下文的数据对象意义。例如,上下文对象210x和上下文对象210y都可指向合成的基于上下文的对象204a,从而向图2所示的非上下文的数据对象208r提供复合的上下文意义。此复合的上下文意义向非上下文的数据对象208r中的数据提供上下文的各种层。
[0040]还要注意的是,虽然指针器214a_214b和216a_216c被逻辑地显示指向一个或多个合成的基于上下文的对象204a-204n,在一个实施例中,合成的基于上下文的对象204a-204n实际上指向非上下文的数据对象208r_208t和上下文对象210x_210z。也就是说,在一个实施例中,合成的基于上下文的对象204a-204n通过使用指针214a_214b和216a-216c定位非上下文的数据对象208r_208t和上下文对象210x_210z。
[0041]注意的是,本文所述的非上下文的数据对象内的数据是如此不明确以至于本质上是无意义的。例如,考虑图3中所描述的示例性情况,其中来自非上下文的数据对象308r的数据仅仅是术语/值“104-106”。单独存在的话,“104-106”是无意义的。正如所述,来自非上下文的数据对象308r的数据(例如,存储在查找表中或由查找表相关联,等等)和合成的基于上下文的对象304a相关联,合成的基于上下文的对象304a专用于主题“高血压”。来自非上下文的数据对象308e的该数据(“104-106”)也与合成的基于上下文的对象304b和合成的基于上下文的对象304η相关联,合成的基于上下文的对象304b专用于主题“人类发烧”,合成的基于上下文的对象304η专用于主题“深海洋学”。为了给“高血压”的上下文中的术语/值“ 104-106”上下文意义(即定义术语/值“ 104-106”),上下文对象310χ还与合成的基于上下文的对象304a相关联(例如,存储在查找表中或由查找表相关联,等等),所述上下文对象310x包含上下文数据“毫米汞柱”和“舒张血压”。因此,多个上下文数据不仅可以提供值“104-106”的比例/单位(毫米汞柱)上下文,该数据还可提供所需的上下文数据“舒张血压”,用以识别合成的基于上下文的对象304a的主题(高血压)。
[0042]同样,上下文对象310y与合成的基于上下文的对象304b相关联,上下文对象310y向由非上下文的数据对象308r提供的术语/值“104-106”提供“关于华氏温标的温度”和“人类”的上下文数据。因此,合成的基于上下文的对象304b现在将术语/值“104-106”定义为与“人类发烧”的主题有关。同样,上下文对象310z与合成的基于上下文的对象304η相关联,上下文对象310ζ向由非上下文的数据对象308r提供的术语/值“ 104-106”提供“大气”的上下文数据。在这种情况下,合成的基于上下文的对象数据库302的生成器确定大量的大气用于定义深海压力。因此,合成的基于上下文的对象304η现在将术语/值“ 104-106”定义为与“深海洋学”的主题有关。
[0043]现在参考图4,来自非上下文的数据对象408r的数据是术语“好公司”。单独存在的话,“好公司”是没有意义的,因为术语“好”是模糊的/不明确的。正如所述,来自非上下文的数据对象408r的数据与合成的基于上下文的对象404a相关联(例如,存储在查找表中或者由查找表相关联,等等),合成的基于上下文的对象404a专用于主题“产品质量”。来自非上下文的数据对象408r的非上下文的数据(“好公司”)也与合成的基于上下文的对象404b和合成的基于上下文的对象404η相关联,合成的基于上下文的对象404b专用于主题“财务健康”,合成的基于上下文的对象404η专用于主题“慈善”。为了给“产品质量”上下文中的术语/值“好公司”上下文意义(即定义“好公司”的意思),包含与“产品”相关的上下文数据的上下文对象410χ也与合成的基于上下文的对象404a相关联(例如,存储在查找表中或由查找表相关联,等等)。
[0044]同样,上下文对象410y与合成的基于上下文的对象404b相关联,上下文对象410y向由非上下文的数据对象408r提供的术语“好公司”提供“财务”的上下文数据。因此,合成的基于上下文的对象404b现在将术语“好公司”定义为与公司的“财务健康”的主题有关。同样,上下文对象410z与合成的基于上下文的对象404η相关联,上下文对象410z向由非上下文的数据对象408r提供的术语“好公司”提供“慈善”的上下文数据。因此,合成的基于上下文的对象404η现在根据其表示“慈善”的历史而定义“好公司”。
[0045]一旦定义合成的基于上下文的对象,它们可被链接到数据存储区。数据存储区被定义为一组集成数据(例如文本文件、视频文件、网页等)的数据存放处。现在参考图5,呈现用于将一个或多个数据存储区与系统500中具体合成的基于上下文的对象相关联的过程。注意的是,系统500是图1所示的计算机102和/或数据存储系统152中发现的处理和存储逻辑电路,处理和存储逻辑电路处理、支持和/或包含图5所述的数据库、指针和对象。数据结构504是多个数据存储区502m-502p的数据库(从而指示“P”个数据存储区,其中“P”是整数),该数据库可以是文本文档、分层式文件、元组(tuple)、面向对象的数据库存储区、电子表格单元、统一资源定位符(URL)等。[0046]也就是说,在一个实施例中,数据结构504是文本文档的数据库(由一个或多个数据存储区502m-502p表示),例如期刊文章、网页文章、电存储的业务/医疗/操作说明等。
[0047]在一个实施例中,数据结构504是以分层方式存储(例如以树形图、轻量级目录访问协议(LDAP)文件夹等)的文本、音频、视频、多媒体等文件(由一个或多个数据存储区502m-502p表不)的数据库。
[0048]在一个实施例中,数据结构504是关系数据库,该关系数据库是通过一组正式描述的表格组织的数据项的集合。表格由一行或多行组成,被称为“元组”。每个元组(由一个或多个数据存储区502m-502p表示)共享共同的属性,在表格中共同的属性由列标题描述。每个元组还包括键,键可以是主键或外键。主键是在本地元组的第一数据单元中存储的识别符(例如字母、数字、符号等)。外键与主键通常相同,除了存储在远程元组的第一数据单元中,从而允许本地元组逻辑地链接到外地元组。
[0049]在一个实施例中,数据结构504是存储对象(由一个或多个数据存储区502m_502p表示)的面向对象的数据库。正如计算机软件领域技术人员所理解,对象包含数据(例如整数、串、实数、对另一个对象的引用等)以及方法的属性,所述方法类似于程序/功能并定义对象的行为。因此,面向对象的数据库包含可执行代码和数据两者。
[0050]在一个实施例中,数据结构504是由单元(由一个或多个数据存储区502m-502p表示)的行和列组成的电子表格。每个单元(由一个或多个数据存储区502m-502p表示)包含数字或文本数据,或者基于电子表格中一个或多个其他单元的内容而计算值的公式。
[0051]在一个实施例中,数据结构504是用于识别网页的通用资源定位符(URL)的集合,在所述网页中,每个URL (或URL的集合)由一个或多个数据存储区502m-502p表示。
[0052]这些所述的数据存储区类型是示例性的,不应被解释为限制数据结构504内发现的数据存储区的类型。
[0053]注意的是,数据结构504在一个实施例中是同质的,而数据结构504在另一个实施例中是异质的。例如,假设在第一个例子中,数据结构504是关系数据库,而所有的数据存储区502p-502m是元组。在这第一个例子中,数据结构504是同质的,因为所有的数据存储区502p-502m是相同类型。然而,假设在第二个例子中,数据存储区502m是文本文件,数据存储区502η是财务电子表格,数据存储区502ρ是来自关系数据库的元祖等。在这第二个例子中,数据结构504是异质的数据结构,因为它包含不同格式的数据存储区。
[0054]因此图5表示正被“覆盖”一个或多个合成的基于上下文的对象404a_404n的各种数据存储区。也就是说,为了方便探索/搜索数据结构504,数据存储区502m-502p中的一个或多个被映射到来自合成的基于上下文的对象404a-404n的特定合成的基于上下文的对象。例如,指针506(例如位于合成的基于上下文的对象404a和数据存储区502m两者中的识别符)基于以下事实而将合成的基于上下文的对象404a指向数据存储区502m,所述事实为,数据存储区502m包含非上下文的数据对象408r中发现的数据(“好公司”)以及上下文对象410x中的数据(“产品”),非上下文的数据对象408r中发现的数据以及上下文对象410x中的数据一起给如上所述的合成的基于上下文的对象404a主题意义。同样,指针508将合成的基于上下文的对象404b指向数据存储区502η,因为合成的基于上下文的对象404b和数据存储区502η两者都包含来自非上下文的数据对象408r以及上下文对象410y的数据。同样,指针510将合成的基于上下文的对象404η指向数据存储区502ρ,因为合成的基于上下文的对象404η和数据存储区502ρ两者都包含来自非上下文的数据对象408r以及上下文对象410z的数据。
[0055]正如图5所述,指针使能各种数据存储区与主题特定的合成的基于上下文的对象相关联。这种关联便利根据主题搜索数据结构504,该主题由来自特定合成的基于上下文的对象的非上下文的数据对象和上下文对象的数据组合定义。
[0056]现在参考图6,呈现了示例性的用户界面600,用户界面600呈现数据搜索程序602,所述数据搜索程序602使能对与不明确话题相关的数据的用户请求。例如,假设用户在关于公司(高亮的字段608)的窗格606的有效字段604内输入问题。更具体而言,用户问“公司X”是否是“好”(高亮的字段610)公司。(注意的是,术语“公司X”和“好”可被输入到预定义的有效字段中,或者它们可由查询“公司X是好公司吗? ”的上下文解释高亮/指定)。单独存在的话,此查询是如此不明确以至于没有意义。也就是说,“好”是什么意思?然而,通过将此查询关联到本文所述的特定合成的基于上下文的对象之一,回答查询的合适数据存储区可被定位。
[0057]此外,在一个实施例中使用查询的上下文以提供数据存储区的安全。也就是说,如果用户的请求旨在得出关于一个话题的信息,则关于另一个话题的信息被保护(例如对请求的用户隐蔽)。然后参考图7中的系统700,假设用户正使用请求的计算机702 (例如图1中所述的用户计算机154)发送查询704 (例如,“公司X是好公司吗? ”)。基于查询的上下文,安全模块706通过指针708、710或712将此查询704匹配到合成的基于上下文的对象404a-404n之一。此查询的上下文可以基于一个或多个因素。
[0058]例如,在一个实施例中,该查询的上下文仅仅基于用户的身份。因此,假设用户在图6的窗格612中检查她是“投资者B”,“投资者B”将她识别为具体的人。基于此用户身份,安全模块706可在表格中查找她,并确定她被授权访问由合成的基于上下文的对象404b所指的任意数据存储区,(因此提供关于公司X的财务信息),但被禁止访问由图7中合成的基于上下文的对象404a或404η所指的任意数据存储区。因此,“查询的上下文”基于“谁”正在问这个问题。
[0059]在一个实施例中,查询的上下文基于查询目的。例如,假设用户在图6的窗格614中指示他正在“寻找投资”。此上下文将使得安全模块706确定该请求应该被指引到合成的基于上下文的对象404b (使得用户接收关于公司X的财务信息),但禁止用户访问由图7中合成的基于上下文的对象404a或404η所指的任意数据存储区,因为它们与公司的财务不直接相关。
[0060]虽然查询的目的以及因此上下文可以基于用户对图6的窗格14的输入,在一个实施例中,通过识别请求的用户使用什么数据库(呈现在窗格616中)而确定请求的目的/上下文。因此,如果请求的用户使用专用于金融投资的社交媒体网络和网页,则请求的上下文/目的被视为与公司X的财务健康有关,并且查询704由安全模块706仅仅指引到图7中合成的基于上下文的对象404b。
[0061]注意的是,图7所述的过程不仅将请求指引到适当的数据存储区,而且还为数据结构内的其他数据存储区提供安全。例如,如果图7中的安全模块706确定用户请求的上下文在公司财务的领域中,则请求仅被指引到公众可获得的那些财务数据存储区,并且阻止访问公司X的私人财务数据。然而,如果请求的用户在图6的UI600中指示她请求的目的是进行公司X的财务审计,则该请求将被指引到通常保密的财务信息,假设安全模块706能够确认请求的用户被授权访问这种数据的话。在一个实施例中,通过检查请求的用户的身份,安全模块706确认这种授权,以便确定她是否在核准的列表中。在一个实施例中,安全模块706仅仅通过查询的所述目的(来自窗格614)确认这种授权,假设其他保障措施(例如防火墙等)在适当的位置以保护公司X的敏感数据的话。
[0062]虽然上述合成的基于上下文的对象是单一层(即来自于单一的非上下文的数据对象以及一个或多个上下文对象),在一个实施例中,合成的基于上下文的对象是分层式的。例如,考虑图8中的系统800。上述合成的基于上下文的对象404a可被确定为模糊和不明确的,因为“产品质量”的上下文可具有多个意义。因此,不可能指向如上所述的有意义的数据存储区。然而,在此实施例中,合成的基于上下文的对象404a被重新定义为非上下文的数据对象808r,非上下文的数据对象808r用于填充(populate)在合成的基于上下文的对象数据库802中的合成的基于上下文的对象810a-810n。这些合成的基于上下文的对象810a-810n被提供来自上下文对象808x-808z的有意义的上下文。因此,合成的基于上下文的对象810a现在被理解为关于“产品安全”的上下文。
[0063]然而,甚至术语“产品安全”可能太模糊以至于不能指向有意义的数据存储区。因此,正如图9所述,合成的基于上下文的对象810a被重新定义为非上下文的数据对象908r,非上下文的数据对象908r用于填充在合成的基于上下文的对象数据库902中的合成的基于上下文的对象910a-910n。这些合成的基于上下文的对象910a_910n被提供来自上下文对象908x-908z的有意义的上下文。因此,合成的基于上下文的对象910b现在被理解为关于由公司X所制造产品的“产品测试协议”记录的上下文。
[0064]一旦生成分层式合成的基于上下文的对象(正如图8-图9所述),它们可被安排在分层式合成的基于上下文的对象数据库1002中,正如图10所描述。例如,垂直库1004包括如上所述的合成的基于上下文的对象404a、810a和910b。
[0065]再参考图11,呈现了一种过程,用于通过使用分层式合成的基于上下文的对象库而将安全保护施加到一个或多个数据存储区。请求的计算机702发送查询请求1118到安全模块706。安全模块706然后指向(使用指针1120)图10所述的垂直库1004。这允许指针1106、1110和1114访问由合成的基于上下文的对象404a、810a和910b指向的所有数据存储区1102m-1102p。然而,如果安全模块706指向(即指引查询请求1118)到合成的基于上下文的对象810a (使用指针1122),则为用户仅仅访问来自数据结构1104的数据存储区1102m和1102η (使用指针1108和1112)。同样,如果安全模块706使用指针1124来指向合成的基于上下文的对象910b,则只有指针1116用于指向数据存储区1102p。指向数据存储区的程度是由于查询的上下文。也就是说,如果安全模块706确定查询的范围保证使用垂直库1004中所有合成的基于上下文的对象,则访问三个数据存储区(1102m、1102n、1102p)。然而,如果查询的范围/上下文窄得多,则只访问数据存储区1102p。同样,中间合成的基于上下文的对象(例如810a)可用于访问与合成的基于上下文的对象以及其父对象(即合成的基于上下文的对象404a)两者相关的数据存储区。
[0066]图12呈现了通过合成的基于上下文的对象的用户而由计算机处理器执行以保护数据存储区的一个或多个步骤的高级流程图。启动块块1202之后,非上下文的数据对象与上下文对象相关联,用以定义合成的基于上下文的对象(块1204)。正如本文所述,非上下文的数据对象与多个主题不明确地有关。单独存在的话,不清楚关于非上下文的数据对象中的数据指引向这些多个主题中的哪一个。然而,上下文对象提供从多个主题中识别非上下文的数据对象的具体主题的上下文。
[0067]正如块1206中所述,合成的基于上下文的对象与至少一个具体数据存储区相关联。该至少一个具体数据存储区包含与非上下文的数据对象和上下文对象中包含的数据相关联的数据。也就是说,数据存储区中的数据可与非上下文的数据对象和上下文对象中发现的数据相同(也就是说,术语“好公司”和“产品”在数据存储区以及各自的非上下文的数据对象和上下文对象两者中);它可能与非上下文的数据对象和上下文对象中发现的数据同义(即术语“好公司”和“产品”是各自的非上下文的数据对象和上下文对象,而同义的“强的企业”和“货物”在数据存储区中);和/或它可能仅被视为凭借先前已创建的查找表而相关(即术语“好公司”被映射到“强的企业”,和/或术语“产品”被映射到查询表或类似相关联的数据结构中的术语“货物”)。
[0068]在一个实施例中,通过对数据结构进行数据挖掘来识别数据存储区中的术语,以便在一个或多个数据存储区中定位来自非上下文的数据对象和上下文对象的数据。因此,此数据挖掘定位至少一个具体数据存储区,所述至少一个具体数据存储区含有非上下文的数据对象和上下文对象中所包含的数据。
[0069]在一个实施例中,数据存储区是文本文档。在此实施例中,数据挖掘需要在文本文档中搜索作为合成的基于上下文的对象的一部分的文本数据,然后将包含此文本数据的文本文档与合成的基于上下文的对象相关联。
[0070]在一个实施例中,数据存储区是视频文件。在此实施例中,数据挖掘需要在与视频文件相关联的元数据中搜索作为合成的基于上下文的对象的一部分的文本数据,然后将具有此元数据的视频文件和合成的基于上下文的对象相关联。
[0071]在一个实施例中,数据存储区是网页。在此实施例中,数据挖掘需要在网页中搜索作为合成的基于上下文的对象的一部分的文本数据,然后将包含此文本数据的网页与合成的基于上下文的对象相关联。
[0072]注意的是,在一个实施例中,用于数据结构中特定数据存储区的具体主题仅是那个特定的数据存储区专有的。也就是说,只有一个数据存储区被映射到特定合成的基于上下文的对象,使得在每个合成的基于上下文的对象和每个数据存储区之间有一对一的关系。还要注意的是,在另一个实施例中,用于数据结构中特定数据存储区的具体主题与至少一个其他的数据存储区重叠。也就是说,多个数据存储区被映射到特定合成的基于上下文的对象,使得在特定合成的基于上下文的对象和多个数据存储区之间有一对多的关系。
[0073]正如图8-图10所述,用于指向一个或多个数据存储区的合成的基于上下文的对象可能来自维度受限的分层式合成的基于上下文的对象库(例如图10中的垂直库1004),维度受限的分层式合成的基于上下文的对象库已被构造用于多个合成的基于上下文的对象。正如本文所述,维度受限的分层式合成的基于上下文的对象库内的相同维度的合成的基于上下文的对象共享来自相同的非上下文的数据对象的数据,而维度受限的分层式合成的基于上下文的对象库内的相同维度的合成的基于上下文的对象包含与来自不同的上下文对象的互异数据。
[0074]现在参照块1208,接收来自用户的对与不明确的主题有关的数据的请求(例如通过图1中的计算机102和/或通过图7所示的安全模块706)。然后处理器确定来自用户的不明确的请求的上下文。在一个实施例中,这是通过识别用户而执行的(块1210),使得用户的身份提供所需的信息,用以确定请求的上下文。在一个实施例中,通过确定请求的目的,执行此上下文的确定(±夹1212)。可通过接收描述目的的图6中的用户输入(例如来自窗格614)而执行此确定。
[0075]在一个实施例中,通过对描述请求的用户的当前兴趣的数据库进行数据挖掘而确定不明确的请求的目的。例如,如果用户使用专用于金融投资的网站和社交网络,则请求的目的被视为与获得关于公司财务实力的信息有关。
[0076]在一个实施例中,通过对描述具体用户的教育背景的数据库进行数据挖掘而确定不明确的请求的目的。例如,为了确定特定用户具有的教育类型和水平,对注册/校友数据库进行数据挖掘。该教育类型/水平提供所需的信息,用以确定搜索请求的上下文(也就是说,什么是用户实际要求的?)。
[0077]在一个实施例中,通过对识别具体用户的朋友的兴趣的数据库进行数据挖掘而确定不明确的请求的目的。例如,如果由请求的用户所使用的社交网站表明该用户在投资界有很多朋友,则该请求被视为与请求关于公司的财务信息有关。
[0078]在一个实施例中,通过对描述具体用户所在的地方的数据库进行数据挖掘而确定不明确的请求的目的。因此,来自居住在特定地理位置的人的问题不同于居住在另一个城市的人所问的那些问题,因为他们有不同的上下文(也就是说,不同的季节,不同的当地餐馆等),从而对于该请求有不同的目的。
[0079]在一个实施例中,通过对描述具体用户的职业经历的数据库进行数据挖掘而确定不明确的请求的目的。因此,曾在某些工作中为特定雇主工作的人具有上下文特定的人物面貌,所述上下文特定的人物面貌识别他们搜索请求的上下文,从而识别目的。
[0080]一旦确定查询的上下文(根据请求者的身份或请求的目的),先前不明确的请求现在是有意义的上下文请求。
[0081]正如查询块1214中所述,然后做出关于问问题的人和/或查询的目的对特定的数据存储区是否合适的确定(例如通过安全模块706)。如果不是,则阻止访问该数据存储区(块1216和1218)。例如,如果查询的目的是为了获得公司产品线的信息,则关于公司财务信息的数据存储区中的信息被阻止给用户。
[0082]然而,如果该请求的目的适合访问特定的数据存储区(正如由安全模块706确定),则来自用户的现在为上下文请求的上下文与特定合成的基于上下文的对象相关联,以便将该请求指向具体数据存储区,所述具体数据存储区包含与来自用户的请求的上下文有关的数据(块1220)。正如块1222中所述,然后向用户被提供仅对适当数据存储区的访问,阻止该用户对数据结构中其他数据存储区的访问。该过程在终止器块1224处终止。
[0083]附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个块可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个块、以及框图和/或流程图中的块的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0084]本文所用的术语仅仅是为了描述特定实施例,而不旨在限制本发明。正如本文所使用,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文清楚地以其他方式指示。将进一步理解的是,当在此说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的组。
[0085]下面权利要求中所有装置或步骤加功能元件的对应结构、材料、动作和等价物旨在包括用于结合具体要求的其他要求的元件执行功能的任何结构、材料或动作。为了说明和描述的目的,已经提出了本发明各种实施例的描述,但并不旨在穷举或以所公开的形式限制到本发明。不脱离本发明的范围和精神的情况下,许多修改和变化对本领域普通技术人员来说将显而易见。选择和描述该实施例,以便最好地解释本发明的原理和实际应用,并且使本领域其他普通技术人员能够针对具有适合设想的具体用途的各种变化的各种实施例理解本发明。
[0086]还要注意的是,本公开中描述的任何方法可通过使用VHDL(VHSIC硬件描述语言)程序和VHDL芯片来实现。VHDL是用于现场可编程门阵列(FPGA)、专用集成电路(ASIC)和其它类似电子设备的示例性设计输入语言。因此,本文所述的任何软件实现的方法可由基于硬件的VHDL程序仿真,基于硬件的VHDL程序然后被应用于VHDL芯片,例如FPGA。
[0087]如此已通过参照其说明性实施例详细描述了本申请的本发明的实施例,将显而易见的是,在不脱离在所附权利要求中限定的本发明的范围的情况下,修改和变化是可能的。
【权利要求】
1.一种用于保护数据存储区的处理器实现的方法,该处理器实现的方法包括: 由处理器关联非上下文的数据对象和上下文对象,用以定义合成的基于上下文的对象,其中非上下文的数据对象不明确地涉及多个主题,并且其中上下文对象提供从多个主题中识别非上下文的数据对象的具体主题的上下文; 由处理器关联合成的基于上下文的对象和数据结构中的至少一个具体数据存储区,其中所述至少一个具体数据存储区包括与非上下文的数据对象和上下文对象中包含的数据相关联的数据; 由处理器接收二进制数据串,其中二进制数据串描述来自用户的、对与不明确的主题相关的数据的不明确的请求; 由处理器确定来自用户的不明确的请求的上下文,用以创建上下文请求; 由处理器关联来自用户的上下文请求的上下文和合成的基于上下文的对象,其中所述至少一个具体数据存储区包括与来自用户的上下文请求的上下文相关的数据;以及 由处理器为用户提供对所述至少一个具体数据存储区的访问,而阻止对数据结构中其他数据存储区的访问。
2.如权利要求1所述的处理器实现的方法,还包括: 由处理器根据不明确的请求的目的确定来自用户的不明确的请求的上下文。
3.如权利要求2所述的处理器实现的方法,还包括: 由处理器接收用户输入,该用户输 入描述不明确的请求的目的。
4.如权利要求2所述的处理器实现的方法,还包括: 由处理器通过对描述用户当前兴趣的数据库进行数据挖掘来确定不明确的请求的目的。
5.如权利要求2所述的处理器实现的方法,还包括: 由处理器通过对描述用户教育背景的数据库进行数据挖掘来确定不明确的请求的目的。
6.如权利要求2所述的处理器实现的方法,还包括: 由处理器通过对识别用户朋友的数据库进行数据挖掘来确定不明确的请求的目的。
7.如权利要求2所述的处理器实现的方法,还包括: 由处理器通过对描述用户所在地的数据库进行数据挖掘来确定不明确的请求的目的。
8.如权利要求2所述的处理器实现的方法,还包括: 由处理器通过对描述用户职业经历的数据库进行数据挖掘来确定不明确的请求的目的。
9.如权利要求1所述的处理器实现的方法,还包括: 由处理器根据用户的身份确定不明确的请求的上下文。
10.如权利要求1所述的处理器实现的方法,还包括: 由处理器为多个合成的基于上下文的对象构造维度受限的分层式合成的基于上下文的对象库,其中维度受限的分层式合成的基于上下文的对象库内的相同维度的合成的基于上下文的对象共享来自相同的非上下文的数据对象的数据,其中维度受限的分层式合成的基于上下文的对象库内的相同维度的合成的基于上下文的对象包含来自不同上下文对象的互异数据;从用户接收对至少一个数据存储区的不明确的请求,所述至少一个数据存储区与维度受限的分层式合成的基于上下文的对象库内的相同维度的合成的基于上下文的对象相关联;以及 向用户返回所述至少一个具体数据存储区,所述至少一个具体数据存储区与维度受限的分层式合成的基于上下文的对象库内的相同维度的合成的基于上下文的对象相关联。
11.如权利要求1所述的处理器实现的方法,其中所述至少一个具体数据存储区是文本文档,并且其中处理器实现的方法还包括: 由处理器在文本文档中搜索作为合成的基于上下文的对象的一部分的文本数据;以及 关联包含所述文本数据的文本文档和合成的基于上下文的对象。
12.如权利要求1所述的处理器实现的方法,其中所述至少一个具体数据存储区是视频文件,并且其中处理器实现的方法还包括: 由处理器在与视频文件相关联的元数据中搜索作为合成的基于上下文的对象的一部分的文本数据;以及 关联具有所述元数据的视频文件和合成的基于上下文的对象。
13.如权利要求1所述的处理器实现的方法,其中所述至少一个具体数据存储区是网页,其中处理器实现的方法还包括: 由处理器在网页中搜索作为合成的基于上下文的对象的一部分的文本数据;以及 关联包含所述文本数据的网页和合成的基于上下文的对象。`
14.一种计算机系统,包括: 处理器、计算机可读存储器和计算机可读存储介质; 第一程序指令,关联非上下文的数据对象和上下文对象,用以定义合成的基于上下文的对象,其中非上下文的数据对象不明确地涉及多个主题,并且其中上下文对象提供从多个主题中识别非上下文的数据对象的具体主题的上下文; 第二程序指令,关联合成的基于上下文的对象和数据结构中的至少一个具体数据存储区,其中所述至少一个具体数据存储区包括与非上下文的数据对象和上下文对象中包含的数据相关联的数据; 第三程序指令,从用户接收对与不明确的主题相关的数据的不明确的请求; 第四程序指令,确定来自用户的不明确的请求的上下文,用以生成上下文请求; 第五程序指令,关联来自用户的上下文请求的上下文和合成的基于上下文的对象,所述合成的基于上下文的对象与所述至少一个具体数据存储区相关联,其中所述至少一个具体数据存储区包括与来自用户的不明确的请求的上下文相关的数据;以及 第六程序指令,为用户提供对所述至少一个具体数据存储区的访问,而阻止对数据结构中其他数据存储区的访问;并且其中 第一、第二、第三、第四、第五和第六程序指令存储在计算机可读存储介质上,用于由处理器通过计算机可读存储器执行。
15.如权利要求14所述的计算机系统,还包括: 第七程序指令,根据不明确的请求的目的确定来自用户的不明确的请求的上下文;并且其中第七程序指令存储在计算机可读存储介质上,用于由处理器通过计算机可读存储器执行。
16.如权利要求15所述的计算机系统,还包括: 第八程序指令,接收描述不明确的请求的目的的用户输入;并且其中第八程序指令存储在计算机可读存储介质上,用于由`处理器通过计算机可读存储器执行。
【文档编号】G06F17/30GK103699559SQ201310447306
【公开日】2014年4月2日 申请日期:2013年9月27日 优先权日:2012年9月27日
【发明者】R·R·弗莱德朗得, J·R·可里默 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1