CN113711218A - 协同智能的约束查询以及约束计算 - Google Patents
协同智能的约束查询以及约束计算 Download PDFInfo
- Publication number
- CN113711218A CN113711218A CN202080028730.6A CN202080028730A CN113711218A CN 113711218 A CN113711218 A CN 113711218A CN 202080028730 A CN202080028730 A CN 202080028730A CN 113711218 A CN113711218 A CN 113711218A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- constraints
- collaborative
- constrained
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000003860 storage Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 1
- 230000002776 aggregation Effects 0.000 description 24
- 238000004220 aggregation Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000004927 fusion Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000001914 filtration Methods 0.000 description 8
- 230000000670 limiting effect Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000037406 food intake Effects 0.000 description 5
- 239000000470 constituent Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000011012 sanitization Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000035508 accumulation Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了用于约束查询的技术,允许数据消耗方查询受托方环境中受制于可配置约束的协同数据,以得出协同智能,而不暴露租户所提供的底层原始数据或者被受托方环境屏蔽的协同数据。约束可以以多种方式响应于查询被应用,包括在执行前重新格式化查询,在执行查询后应用约束,约束符合条件的查询执行,在执行之前应用访问约束,等等。为了重新格式化受制于约束的查询,所述查询可以被解析成执行树,通过用与约束一致的自定义可执行逻辑单元替换与特定约束不一致的可执行逻辑单元,执行树可以被重新格式化成受约束的执行树。受约束的执行树可以被转换成受托方环境所使用的所述语言,并且被转发以供执行。
Description
背景技术
商业和技术越来越依赖于数据。可以观察、收集、得出和分析许多类型的数据,以获得启发科学和技术进步的见解。在许多情况下,有价值的智能可以从数据集中得出,并且有用的产品和服务可以基于该智能而被开发。这种类型的智能可以帮助推进行业,诸如银行业、教育、政府、医疗保健、制造业、零售业以及几乎任何其他行业。然而,在许多情况下,特定数据所有者拥有或可用的数据集在某些基本方面是不完整的或有限的。信息共享是弥合数据集中的间隙的一种方式,并且共享数据已经成为越来越普遍的做法。共享数据有许多好处。然而,也有许多担忧和障碍。
发明内容
本公开的实施例涉及用于基于约束计算和查询来得出协同智能(collaborativeintelligence)的技术。在高级别,数据受托方可以操作受托方环境,该受托方环境得出受制于可配置约束的协同智能,而不共享原始数据。受托方环境可以包括数据隐私管道,通过该管道可以摄取、融合、得出和净化数据,以生成协同数据,而不损害数据隐私。协同数据可以被存储和被查询,以提供受制于可配置约束的协同智能。在一些实施例中,数据隐私管道是作为在受托方环境中所实现的分布式计算或云计算服务(云服务)而被提供的,并且可以根据需要启动(spin up)和关闭(spin down)。
为了能够进行约束计算和查询,约束管理器可以监控和协调受托方环境中受约束的协同数据的使用和生成。如本文中所使用的,协同数据是指已经从共享的输入数据(例如来自不同用户的数据)得出的(derived)数据。共享的输入数据可以来自任何数目的源(例如不同的用户),并且可以被处理以生成中间数据,该中间数据本身可以被处理以生成协同数据。协同数据可以包括被允许共享的可暴露部分和不允许共享的受限制的部分。虽然协同数据的受限制的部分可能无法被共享,但是它可以包括可操作部分,该可操作部分可以被用来得出可以被共享的协同智能。在一些实施例中,可以从可暴露数据和/或受限制的数据得出协同智能,并且可以提供协同智能,而不暴露受限制的数据。
可以提供用户接口,以使租户(例如客户、企业、用户)能够指定对在受托方环境中使用和访问其数据的期望的计算和约束,包括符合条件的数据源以及其数据可以如何被处理或被共享。可以实现任何数目的各种类型的约束,包括数据访问约束、数据处理约束、数据聚合约束和数据净化约束,仅举几例。约束管理器可以与受托方环境中的各个组件进行通信以实现约束。例如,执行可执行逻辑单元(诸如命令或函数调用)的请求可能被发出给约束管理器,该约束管理器可以授予或拒绝许可。许可可以根据实现约束的一个或多个条件而被授予,诸如要求用受约束的可执行逻辑单元替换特定的可执行逻辑单元。当约束应用于生成协同数据和中间数据时,模式、约束和/或属性元数据的任何组合都可以与数据相关联。因此,约束管理器可以在受托方环境中协调约束计算。
在一些实施例中,约束查询可以应用于允许与受托方环境相关联的数据消耗方查询受托方环境中受制于约束的协同数据。约束查询可以允许数据消耗方访问协同数据或得出协同智能,同时强制执行约束以防止暴露指定的数据(已经针对强制执行特定约束而被标识的数据)。约束可以以多种方式响应于查询而被应用,包括在执行前重新格式化查询,在执行查询后应用约束,约束符合条件的查询执行,在执行之前应用访问约束,等等。为了重新格式化受约束的查询,可以将查询解析成执行树,该执行树包括可执行逻辑单元的分层布置,该分层布置在被执行时实现查询。通过用与约束一致的自定义可执行逻辑单元替换与特定约束不一致的可执行逻辑单元,执行树可以被重新格式化成受约束的执行树。受约束的执行树可以被转换成受托方环境所使用的语言,并且被转发以供执行。
提供本发明内容是为了引入简化形式的概念的选择,这些概念还将在以下具体实施方式中进行描述。本发明内容既不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在单独用于帮助确定所要求保护的主题的范围。
附图说明
以下参照附图详细描述本发明,其中:
图1是根据本文中所描述的实施例的示例协同智能环境的框图;
图2是根据本文中所描述的实施例的示例受约束查询组件的框图;
图3A是根据本文中所描述的实施例的所发出的查询的示例,并且图3B是对应执行树的示例;
图4A是根据本文中所描述的实施例的受约束的执行树的示例,并且图4B是对应查询的示例;
图5是示出了根据本文中所描述的实施例的生成协同数据的示例方法的流程图;
图6是示出了根据本文中所描述的实施例的生成协同数据的示例方法的流程图;
图7是示出了根据本文中所描述的实施例的为数据受托方环境中的协同数据提供受约束的计算的示例方法的流程图;
图8是示出了根据本文中所描述的实施例的为数据受托方环境中的协同数据提供受约束的访问的示例方法的流程图;
图9是示出了根据本文中所描述的实施例的用于约束查询的示例方法的流程图;
图10是示出了根据本文中所描述的实施例的用于受约束查询的示例方法的流程图;
图11是适合用于实现本文中所描述的实施例的示例计算环境的框图;以及
图12是适合用于实现本文中所描述的实施例的示例计算环境的框图。
具体实施方式
概述
共享数据有许多好处。例如,共享数据通常造成更完整的数据集、鼓励协同努力、并且产生更好的智能(例如对事件或情况、或者关于不同类型的实体的信息、关系和事实的理解或知识)。研究人员受益于更多可用的数据。进一步地,共享可以激发对研究的兴趣,并且可以激励产生更高的数据质量。一般来说,共享可以在研究和开发中引起协同效应和效率。
然而,对于共享数据还有许多担忧和障碍。作为实际问题,不同行业共享数据的能力和意愿各不相同。数据隐私和保密性问题对许多行业是基础性的,诸如医疗保健和银行业。在许多情况下,法律、法规和消费者需求限制了共享数据的能力。此外,观察、收集、得出和分析数据集的动作通常是昂贵且劳动密集型的工作,并且许多人担心共享数据会失去竞争优势。即使有足够的动机来共享数据,共享数据的控制和访问问题也常常是共享的障碍。实际上,障碍往往会妨碍数据共享以及随之而来的进步机会。因此,需要数据共享技术来在确保数据隐私并且促进对共享数据的控制和访问的同时促进协同智能的开发。
因此,本公开的实施例涉及用于基于约束计算和约束查询来得出协同智能的技术。在高级别,数据受托方可以操作受托方环境,该受托方环境被配置为为租户得出受制于可配置约束的协同智能,而不暴露租户所提供的底层原始数据或由受托方环境屏蔽的协同数据。如本文中所使用的,协同数据是指已经从共享的输入数据(例如来自不同用户的数据)得出的数据。共享的输入数据可以来自任何数目的源(例如不同的用户),并且可以被处理以生成中间数据,该中间数据本身可以被处理以生成协同数据。协同数据可以包括被允许共享的可暴露部分和不被允许共享的受限制的部分。虽然协同数据的受限制的部分可能无法被共享,但是它可以包括可操作部分,该可操作部分可以被用来得出可以被共享的协同智能。在一些实施例中,可以从可暴露数据和/或受限制的数据得出协同智能,并且可以提供协同智能,而不暴露受限制的数据。例如,可配置约束可以以编程方式管理对某些底层数据(例如个人可标识信息,某些其他敏感信息,或者被收集、被存储或被使用的任何其他指定信息)的限制(例如允许某些操作,但不允许其他操作)以及这些底层如何能够和不能够被访问、被使用、被存储或被显示(或其变型)。进一步地,可配置约束可以以编程方式支持对可访问数据的协同智能操作(例如得出聚合统计),而不显示被操作的个体数据条目。
通过依赖于受托方计算来执行数据处理,租户可以从彼此的数据得出协同智能,而不会损害数据隐私。为达到这点,受托方环境可以包括一个或多个数据隐私管道,通过这些管道,数据可以被摄取、被融合、被得出和/或被净化,以生成协同数据。数据隐私管道可以是作为在受托方环境中所实现的分布式计算或云计算服务(云服务)而被提供的,并且可以根据需要启动和关闭。在一些实施例中,将数据提供到数据隐私管道中的租户无法访问管道。而是,管道输出受制于一个或多个租户所提供的约束的协同数据。取决于指定的约束,协同数据可以从受托方环境被输出(例如因为它已经根据指定的约束被净化)和/或可以被存储在受托方环境中并且被受托方环境屏蔽。被屏蔽的协同数据可以被查询,以得出受制于可配置约束的协同智能(例如不暴露被屏蔽的协同数据)。
一般来说,数据隐私管道可以接受一个或多个租户所提供的数据。最初,数据隐私管道可以依据与一个或多个租户的合约或其他租户协议确定来输入数据是否是联合数据。被确定为联合数据的数据可以被摄取,并且被确定为不是联合数据的数据可以被丢弃。在这方面,联合数据指的是在生成协同数据时指定要被摄取的任何共享数据(例如在与一个或多个租户的租户协议中所指定或以其他方式所标识的c)。被摄取的数据可以包括来自多个源的数据,因此数据隐私管道可以根据租户协议中所指定的计算和约束来融合来自多个源的数据。例如,受约束的数据融合可以实现一个或多个约束来组合所摄取的数据,用以以任何数目的方式形成融合的联合数据,包括使用一个或多个联结操作(例如,左、右、内、外、反)、自定义连结(例如经由命令式脚本)、数据追加、归一化操作、前述项的某种组合等等。
在一些实施例中,数据隐私管道可以执行受约束的计算以生成得出的联合数据。受约束的计算可以从一个源获取数据(例如所摄取的数据、融合的联合数据),并且执行任何数目的指定计算(例如算术运算、聚合、汇总、过滤、排序、界定)。约束计算的简单示例是计算每城市的平均年龄,其中只在底层数据集包括城市中至少五个人的条目的情况下,才针对该城市执行计算。附加地或备选地,数据隐私管道可以执行数据净化以生成协同数据,该协同数据实现针对存储、访问、精度等的约束。例如,数据净化可以实现租户协议中所指定的约束,该约束指定是否应当屏蔽协同数据(例如被存储在受托方环境中)、是否可以导出协同数据、是否应当限制所导出的协同数据(例如不导出电子邮件、信用卡号、前述项的部分),等等。像这样,数据隐私管道可以从一个或多个租户所提供的数据生成协同数据,并且提供对协同数据所商定的访问,而不与所有租户共享底层原始数据。
在一些实施例中,为了能够进行约束计算和查询,可以监控和协调受托方环境中受制于可配置约束的协同数据的使用和生成。在高级别,可以通过用户接口提供约束,以使得租户(例如客户、企业、用户)能够指定对使用和访问其在受托方环境中数据的期望的计算和约束,包括符合条件的数据源以及其数据可以如何被你处理或被共享。可以实现任何数目的各种类型的约束,包括数据访问约束、数据处理约束、数据聚合约束和数据净化约束。
例如,可以指定数据访问约束,以允许或禁止访问(例如针对特定用户、账户、组织)。在一些实施例中,指定的约束可以是通用的,使得约束适用于所有潜在的数据消耗方(例如无论什么数据消耗方都只允许访问平均年龄)。在一些实施例中,指定的约束可以应用于指定的用户、账户、组织等(例如不允许组A访问工资数据,但是允许组B访问工资数据)。一般来说,租户可以指定以下约束:限定可以如何将租户的数据与指定的数据集或其部分合并的约束、限制从租户的数据读取数据的模式的约束(例如指定要被应用于租户的数据的水平过滤)、限制所摄取的数据的大小的约束(例如指定存储限制、租户的数据的子采样、要被应用于租户的数据的垂直过滤)、限制可以输出的协同数据的模式的约束、限定协同数据的所有权的约束、限定协同数据是否应当开放、被加密或被屏蔽(例如被存储在受托方环境中)的约束,等等。
在一些实施例中,可以指定各种类型的数据处理约束,诸如指定哪些操作可以被执行的约束(例如可允许和受限制的的计算、二进制检查)、限制比较精度的约束(例如对于数值数据、地理数据、日期和时间数据)、限制积累精度的约束(例如针对地理数据、数值数据、日期或时间数据)、限制位置界定精度的约束(例如将可允许的地理围栏确定限制到特定的网格、最小的地理分区,诸如领域、县、市、州或国家等)、以及其他精度和/或数据处理要求。
附加地或备选地,可以指定一个或多个数据聚合约束,诸如要求最小聚合量的约束(例如至少N个行或不同的字段值)、要求某些统计分布条件有效的约束(例如最小标准偏差)、限定被允许的聚合函数的约束(例如允许最小(min)、最大(max)、平均(average),但不允许百分位数),仅举几例。
在一些实施例中,可以指定一个或多个数据净化约束,诸如要求净化个人可标识信息的约束(例如删除电子邮件、姓名、ID、信用卡号)、要求降低精度净化的约束(例如降低数值、日期和时间、和/或地理精度)、要求净化来自特定字段的值的约束(这可能需要跟踪应用在数据隐私管道中的变换)、要求自定义净化的约束(例如要求执行一个或多个自定义和/或第三方净化脚本)、要求数据掩蔽的约束(例如输出某些数据,诸如电话号码、信用卡、日期,但是掩蔽号码的部分),等等。
附加地或备选地,对于上面列出的约束,可以指定一个或多个约束,该一个或多个约束限制每单位时间(例如分钟、小时、天)的可允许的查询和/或数据访问的数目。通过在相对小的时间窗口内询问一组稍微不同的问题,这样的约束可以操作以降低对屏蔽数据进行反向工程的暴力尝试的风险。一般来说,可以指定一个或多个自定义约束,诸如要求某个指定性质与某些指定标准匹配的约束。这些和其他类型的约束在本公开内被考虑到。
在一些实施例中,约束管理器可以监控和协调受制于指定约束的数据流、生成和访问。例如,约束管理器可以与受托方环境(例如数据隐私管道)中的各个组件通信以实现约束,这些约束可以在约束管理器可访问的合约数据库中被维护。在一些实施例中,组件可以向约束管理器发出请求,以获得执行特定命令、函数调用或其他可执行逻辑单元的许可。约束管理器可以评估请求并且授予或拒绝许可。在些情况下,许可可以受制于与约束中的一个或多个约束对应的一个或多个条件而被授予。作为非限制性示例,可以被实现的一些可能的条件包括要求移位、过滤或重塑数据的操作(例如比较约束的应用,诸如只允许具有一定精度的合并)、要求用一个或多个受约束的可执行逻辑单元替代一个或多个可执行逻辑单元(例如命令或操作)(例如用受约束的平均值替换平均值),等等。
一般来说,约束可以在任何时间或步骤被检查、被验证或以其他方式被强制执行(例如与数据隐私管道的任何部分、受约束的查询相关联地)。因此,强制执行约束的对应功能性可以在任何步骤或多个步骤被应用。在一些实施例中,某些约束的强制执行可以被分配给数据隐私管道的某些部分(例如在摄取期间应用数据访问约束、在数据融合和/或受约束的计算期间应用处理和聚合约束、在数据净化期间应用净化约束)。在另一示例中,在数据融合期间可以应用特定的数据访问约束(例如仅传递参与至少五项不同研究的患者的数据)。这些仅仅是作为示例,并且任何合适的约束强制执行制度都可以在本公开内被实现。
对特定的可执行逻辑单元(例如针对指定的计算、所请求的操作)强制执行约束(例如精度或聚合约束)可以造成任何数目的场景。在一个示例中,可以完全驳回特定的可执行逻辑单元。在另一个示例中,可以允许特定的可执行逻辑单元,但是结果被过滤(例如对特定的行或数据条目不返回值)。在又一示例中,可以允许特定的可执行逻辑单元,但是结果会被改变(例如精度降低、问题被回答具有错误)。这些和其他变型可以被实现。
当约束被应用来生成协同数据时,模式、约束和/或属性元数据的任何组合都可以与协同数据、用于得到协同数据的中间数据或其他数据相关联。一般来说,约束可以跨多个步骤和计算而被强制执行。像这样,在一些实施例中,每个步骤可适用的和/或被满足的约束可以被跟踪和/或与给定步骤所产生的数据相关联。以聚合约束为例,一旦在特定步骤中已经履行了聚合约束,后续步骤便不再需要考虑该约束。在已经针对要被合并的不同数据集指定了不同约束的另一示例中,合并操作可以只需要应用更严格的约束。一般来说,当数据流过数据隐私管道时,适当的约束分配或组合可以被应用和/或被跟踪。这种跟踪可以促进验证特定约束是否已经被应用于特定数据。因此,当约束被应用并且数据被生成时,对应的模式、可适用或被满足的约束、和/或指示所有权或意愿的属性元数据可以与数据集或者对应的条目、行、字段或数据的其他元素相关联。在一些实施例中,取决于可适用的约束,用于得到协同数据的任何中间数据(例如所摄取的数据、融合的联合数据、所得出的联合数据)都可以被删除,并且协同数据可以被存储在受托方环境中和/或作为输出被提供。
在一些实施例中,约束查询可以被应用来允许数据消耗方查询受托方环境中受制于可配置约束的协同数据。在高级别,约束查询可以作为搜索引擎而操作,该搜索引擎允许数据消耗方访问协同数据或从其得出协同智能,而不暴露租户所提供的底层原始数据或被受托方环境屏蔽的协同数据。约束可以以任何数目的方式响应于查询被应用,包括在执行前重新格式化查询,在执行查询后应用约束,约束符合条件的查询执行,在执行之前应用访问约束,等等。
作为非限制性示例,通过确保查询包含至少一个聚合元素并且确保(多个)聚合元素与聚合约束一致,可以针对指定的聚合约束来验证发出的查询。在另一示例中,可以执行与发出的查询对应的执行计划,并且可以针对查询的聚合约束和/或(多个)聚合元素(例如确认结果与所请求的不同行、字段、统计分布的数目对应)来验证结果。在一些实施例中,可以通过基于约束修改元素(例如以限制不同行、字段、统计分布的对应数目)、通过在查询的其他元素之前的执行经修改的元素、前述项的某种组合,等等,来对查询的对应元素强制执行约束。
作为背景,查询通常不是可执行代码。为了执行查询,它通常被转换成可执行的执行计划。在一些实施例中,为了对接收到的查询强制执行约束,可以将该查询解析成对应的执行树,该执行树包括可执行逻辑单元的分层布置,该分层布置在被执行时实现查询。可适用的约束可以被访问,并且可以针对该约束来验证可执行逻辑单元。在一些实施例中,如果一个或多个可执行逻辑单元不被允许,则可以通过基于一个或多个约束来更改可执行逻辑单元中的一个或多个可执行逻辑单元,来有效地重新格式化查询。更具体地,通过遍历执行树并且用与约束一致的自定义可执行逻辑单元替换与特定约束不一致的可执行逻辑单元,与查询对应的执行树可以被重新格式化为成受约束的执行树。附加地或备选地,一个或多个可执行逻辑单元可以被添加到受约束的执行树,以对输出强制执行约束(例如精度约束)。这些仅仅是作为示例,并且用于生成受约束的执行树的任何合适的技术都可以被实现。
一般来说,执行树的可执行逻辑单元可以针对对应的约束上下文而被验证,该约束上下文包括可适用的被访问约束和运行时信息,诸如标识发出查询的请求的数据消耗方的信息、标识可适用的租户协议的信息、标识要对其操作的目标协同数据的信息等。可执行逻辑单元的验证可以涉及构成命令或操作的验证、一个或多个构成参数的验证和/或执行树的其他部分的考虑。可执行逻辑单元的验证可以产生多个可能的结果。例如,可执行逻辑单元可以被允许(例如,可执行逻辑单元可以被复制到受约束的执行树中),可执行逻辑单元可以不被允许(例如查询可以完全不被允许),或者可执行逻辑单元可以被允许但是有变化(例如将对应的受约束的可执行逻辑单元复制到受约束的执行树中)。在一些实施例中,产生的受约束的执行树被转换成受托方环境所使用的语言。产生的执行树可以被执行(例如通过遍历和执行树的可执行逻辑单元的层次结构),并且结果可以被返回给请求的数据消耗方。
像这样,使用本文中所描述的实现方式,用户可以通过数据受托方高效并且有效地共享数据,该数据受托方允许他们得出协同智能,同时确保数据隐私性并且提供对共享数据的可配置控制和访问。
示例协同智能环境
现在参照图1,示出了适合用于实现本发明的实施例的示例协同智能环境100的框图。一般来说,协同智能环境100适合用于生成协同智能,并且除了其他方面以外,促进约束计算和约束查询。协同智能环境100或其部分(例如数据受托方环境110)可以但不必在分布式计算环境(诸如以下关于图11所讨论的分布式计算环境1100)中被实现。协同智能环境100的组件中的任何或所有组件都可以被实现为任何种类的计算设备或其某个部分。例如,在一个实施例中,租户设备101a至101n和数据消耗方设备103a至103n各自可以是计算设备,诸如以下参照图12所描述的计算设备1200。进一步地,数据受托方环境110可以使用一个或多个这样的计算设备而被实现。在实施例中,这些设备可以是个人计算机(PC)、膝上型计算机、工作站、服务器、移动计算设备、PDA、蜂窝电话等的任何组合。协同智能环境100的组件可以经由一个或多个网络彼此通信,这些网络可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境在办公室、企业范围的计算机网络、内联网和互联网中很常见。
协同智能环境100包括数据受托方环境110,数据受托方环境110能够从数据所有者或提供方(例如租户)所提供的受制于可配置约束的原始数据得出协同数据和/或协同智能,而不共享原始数据。一般来说,任何数目的租户都可以将其数据(例如数据集105a至105n)输入到数据受托方环境110中,并且(例如从租户设备101a至101n之一)指定一个或多个约束。数据受托方环境110可以基于一个或多个约束得出协同数据(例如协同数据集107a至107n、被屏蔽的协同数据集160)。任何数目的数据消耗方(例如操作数据消耗方设备103a至103n之一)都可以发出对被屏蔽的协同数据集160夫人查询,并且数据受托方环境110可以从被屏蔽的协同数据集160得出受制于一个或多个约束的协同智能。在一些情况下,经授权的数据消耗方(例如可以由约束中的一个或多个约束限定)可以是拥有或提供原始数据(例如一个或多个数据集105a至105n)或者拥有得出的协同数据(例如屏蔽的协同数据集160)的相同个人或实体。在某些情况下,经授权的数据消耗方可以是某个其他个人或实体。
在图1中所示的实施例中,数据受托方环境110包括约束管理器115。在高级别,寻求共享数据的租户可以通过数据受托方环境110的用户接口向约束管理器115提供一个或多个期望的计算和约束(该计算和约束可以在合约协议中体现)。用户接口可以使租户能够指定期望的计算和约束,这些计算和约束将控制该租户的数据在数据受托方环境110中的使用,包括符合条件的数据源(例如一个或多个数据集105a至105n)以及该租户的数据可以如何被处理或被共享。各种类型的约束都可以被实现,包括数据访问约束、数据处理约束、数据聚合约束、数据净化约束、其一些组合,等等。指定的计算和约束以及租户协议的其他特征可以被存储在约束管理器115可访问的合约数据库(未示出)中。
在图1中所示的实施例中,数据受托方环境110包括数据隐私管道120。在高级别,数据隐私管道120可以接受来自一个或多个指定源(例如一个或多个数据集105a至105n)的数据。基于一个或多个指定的计算和/或约束,数据可以被摄取、被融合、被得出和/或被净化,以生成协同数据(例如,协同数据集107a至107n、被屏蔽的协同数据集160中的一个或多个数据集)。数据隐私管道120可以作为在受托方环境110中所实现的分布式计算或云计算服务(云服务)而被提供,并且可以根据需要启动和关闭。在一些实施例中,将数据提供到数据隐私管道120中的租户无法访问管道。而是,管道输出受制于可适用约束的协同数据。取决于指定的约束,协同数据可以从数据受托方环境110被输出为一个或多个协同数据集107a至107n(例如因为它已经根据指定的约束被净化)和/或可以在数据受托方环境110中被屏蔽(例如被存储为被屏蔽的协同数据集160)。如下面更详细地所解释的,协同数据集160可以被查询,以得出受制于可配置约束的协同智能。
在图1中所示的实施例中,数据隐私管道120包括摄取组件125(产生所摄取的数据130)、受约束融合组件135(产生融合的联合数据140)、受约束计算组件145(产生得出的联合数据150)和净化组件155(产生协同数据集107a至107n和160)。最初,一个或多个数据集105a至105可以被提供给数据隐私管道120(例如通过用户接口、编程接口或数据受托方环境的一些其他接口)。摄取组件125可以依据合约或其他租户协议来确定输入数据或其某个部分是否是联合数据。例如,输入数据或其某个部分可以以某种方式被标识,并且摄取组件125可以与约束管理器115通信,以依据合约数据库中所表示的租户协议来确认所标识的数据是否是联合数据。被确定为联合数据的数据可以被存储为所摄取的数据130,并且被确定为不是联合数据的数据可以被丢弃。
所摄取的数据可以包括来自多个源的数据,因此受约束得融合组件135可以根据租户协议中所指定的计算和约束来融合来自多个源的所摄取的数据。例如,受约束得融合组件135可以与约束管理器115通信,以依据合约数据库中所表示的租户协议来获取、验证或请求指定的融合操作。作为非限制性示例,受约束得融合组件135可以实现一个或多个约束来组合所摄取的数据(例如所摄取的数据130),用以以任何数目的方式形成融合的联合数据(例如融合的联合数据140),包括使用一个或多个联结操作(例如,左、右、内、外、反)、自定义联结(例如经由命令式脚本)、数据追加、归一化操作、其一些组合,等等。
一般来说,受约束计算组件145可以(例如对所摄取的数据130、融合的联合数据140)执行受约束的计算,以生成得出的联合数据(例如得出的联合数据150)。受约束的计算可以包括任何数目的指定的计算(例如算术运算、聚合、汇总、过滤、排序、界定)。一般来说,受约束计算组件145可以与约束管理器115通信,以依据合约数据库中所表示的租户协议来获取、验证或请求指定的计算。作为简单的示例,多个零售商可能同意暴露平均销售数据,因此对应的计算可以包括求平均值。约束计算的简单示例是计算每城市的平均年龄,其中只在底层数据集包括城市中至少五个人的条目的情况下,才对该城市执行计算。这些仅仅是作为示例,并且任何类型的计算和/或约束都可以被实现。
在一些实施例中,净化组件155可以(例如对得出的联合数据150)执行数据净化,以实现针对存储、访问、精度等的约束的方式来生成协同数据(例如协同数据集107a至107n、被屏蔽的协同数据集160中的一个或多个数据集)。例如,净化组件155可以与约束管理器115通信,以依据合约数据库中所表示的租户协议来获取、验证或请求指定的净化操作。像这样,净化组件155可以实现租户协议中所指定的约束,该约束指定协同数据是否应当被屏蔽(例如作为被屏蔽的协同数据集160被存储在数据受托方环境110中)、协同数据是否可以被导出(例如作为协同数据集107a至107n中的一个或多个协同数据集)、被导出的协同数据是否应受限制(例如不导出电子邮件、信用卡号、前述项的部分)、前述项的某种组合,等等。在一些实施例中,用于得到协同数据(例如所摄取的数据、融合的联合数据、得出的联合数据)的中间数据中的任何或所有中间数据都可以被删除,例如与关闭数据隐私管道120相关联。像这样,数据隐私管道120可以从一个或多个租户所提供的数据生成协同数据。
如上所述,约束管理器115可以监控和协调受制于一个或多个指定约束的协同数据的使用和生成。附加地或备选地,约束管理器115可以监控和协调对受制于约束的协同数据的访问。一般来说,约束管理器115可以与数据受托方环境110和/或数据隐私管道120中的各个组件进行通信,以实现指定的计算和/或约束,这些计算和/或约束可以在约束管理器115可访问的合约数据库中被维护。在一些实施例中,组件可以向约束管理器115发出请求以获得执行特定命令、函数调用或其他可执行逻辑单元的许可。约束管理器115可以评估请求并且授予或拒绝许可。在一些情况下,许可可以受制于与约束中的一个或多个约束对应的一个或多个条件而被授予。作为非限制性示例,可以被实现的一些可能的条件包括要求移位、过滤或重塑数据的操作(例如比较约束的应用,诸如只允许具有一定精度的合并)、要求用一个或多个受约束的可执行逻辑单元替代一个或多个可执行逻辑单元(例如命令或操作)(例如用受约束的平均值替换平均值),等等。
一般来说,约束可以在任何时间或步骤被检查、被验证或以其他方式被强制执行(例如与数据隐私管道120、数据受托方环境110的任何组件相关联地)。因此,强制执行约束的对应功能性可以在任何步骤或多个步骤被应用。在一些实施例中,某些约束的强制执行可以被分配给数据隐私管道120的某些组件(例如摄取组件125应用数据访问约束、受约束融合组件135和/或受约束的计算组件145应用处理和聚合约束、净化组件155应用净化约束)。在另一示例中,特定的数据访问约束(例如只传递参与至少五项不同研究的患者的数据)可以被受约束融合组件135应用。这些仅仅是作为示例,并且任何合适的约束强制执行制度都可以在本公开内被实现。
在一些实施例中,通过通信、指示或以其他方式促进任何数目的处置,约束管理器115可以对特定的可执行逻辑单元强制执行约束(例如精度或聚合约束)(例如用于指定的计算、所请求的操作)。在一个示例中,约束管理器115可以完全驳回特定的可执行逻辑单元。在另一示例中,约束管理器115可以允许特定的可执行逻辑单元,但是要求过滤结果(例如对特定的行或数据条目不返回值)。在又一示例中,约束管理器115可以允许特定的可执行逻辑单元,但是要求改变结果(例如精度降低、问题被回答为具有错误)。这些和其他变型可以被实现。
当约束被应用来生成协同数据(例如协同数据集107a至107n、被屏蔽的协同数据集160)时,模式、约束和/或属性元数据的任何组合都可以与协同数据、用于得到协同数据的中间数据(例如所摄取的数据130、融合的联合数据140、得出的联合数据150)等相关联。一般来说,约束可以跨多个步骤和计算而被强制执行。像这样,在一些实施例中,针对每个步骤可适用的和/或被满足的约束可以被跟踪和/或与数据隐私管道120的给定组件所产生的数据相关联。以聚合约束为例,一旦数据隐私管道120的特定组件履行了聚合约束,下游组件便不再需要考虑该约束。在已经针对要被合并的不同数据集指定了不同约束的另一个示例中,合并操作可以只需要应用更严格的约束。一般来说,当数据流过数据隐私管道120时,可以应用和/或跟踪适当的约束分配或组合。这种跟踪可以促进验证特定约束是否已经被应用于特定数据。因此,当应用约束并且生成数据时,对应的模式、可适用或被满足的约束和/或指示数据的所有权或意愿的属性元数据可以与数据集或对应的条目、行、字段或数据的其他元素相关联。一般来说,可以依据合约数据库中所表示的租户协议(例如通过与约束管理器115进行通信)来生成可适用或被满足的约束和/或属性元数据。在一些实施例中,取决于可适用的约束,用于得到协同数据的任何或所有中间数据(例如所摄取的数据130、融合的联合数据140、得出的联合数据150)都可以被删除,并且协同数据可以作为被屏蔽的协同数据集160被存储在数据受托方环境110中和/或作为一个或多个协同数据集107a至107n被输出。
在一些实施例中,数据受托方环境110包括受约束查询组件170,受约束查询组件170可以应用受约束的查询来允许数据消耗方(例如操作数据消耗方设备103a至103n之一)查询数据受托方环境110中受制于一个或多个指定的约束的协同数据(例如被屏蔽的协同数据集160)。在高级别,受约束查询组件170可以作为搜索引擎操作,该搜索引擎允许数据消耗方访问被屏蔽的协同数据集160或者从其得出协同智能,而不暴露租户所提供的原始数据(例如一个或多个数据集105a至105n)、用于生成屏蔽的协同数据集160的中间数据(例如所摄取的数据10、融合的联合数据140、得出的联合数据150)和/或被屏蔽的协同数据集160。一般来说,受约束查询组件170可以与约束管理器115通信,以依据合约数据库中所表示的租户协议来获取、验证或请求指定的操作。受约束查询组件170可以促进约束以多种方式响应于查询的强制执行,包括在执行前重新格式化查询,在执行查询后应用约束,约束符合条件的查询执行(例如只允许一组白名单查询),在执行之前应用访问约束,等等。
现在转向图2,图2是根据本文中所描述的实施例的示例受约束查询组件200的框图。受约束查询组件200可以与图1的受约束查询组件170对应。在高级别,受约束查询组件200可以作为搜索引擎操作,使数据消耗方能够受制于相应租户协议中所指定的一个或多个约束来查询协同数据并且从其得出协同智能。作为背景,查询通常不是可执行代码。为了执行查询,查询通常被转换成执行树,该执行树充当可执行的执行计划的基础。一般来说,通过重新格式化与接收到的查询对应的执行树以在执行前顾及任何可适用的约束,受约束查询组件200可以强制执行约束或促进约束强制执行。在简单的示例中,约束可以允许对补偿数据的查询,但是结果必须是四舍五入的。像这样,在执行前,查询和/或其对应的执行树可以被重新格式化,使得任何返回的搜索结果顾及可适用的约束。在图1中所示的实施例中,受约束查询组件200包括访问约束组件220、查询解析器230、约束查询格式化器240、转换组件250和执行组件260。这种配置仅仅是作为示例,并且具有相似或不同的功能性的其他配置可以根据本公开而被实现。
在高级别,受约束查询组件200可以接收数据消耗方(例如操作图1的数据消耗方设备103a至103n之一)所发出的查询210,该查询请求基于协同数据(例如图1的被屏蔽的协同数据集160)的协同智能。查询210可以采取任何合适的形式或查询语言,并且可以包括对协同数据的一个或多个被请求的操作。在一些实施例中,查询210可以指定运行时信息或以其他方式与其相关联,诸如标识发出查询的请求的数据消耗方的信息、标识可适用的租户协议的信息、标识要对其操作的目标协同数据的信息等。
在一些实施例中,访问约束组件220可以使用与查询210相关联的运行时信息来触发可适用的数据访问约束的查找和强制执行(例如经由与图1的约束管理器115的通信)。例如,访问约束组件220可以针对对应的约束上下文来验证查询210,该约束上下文包括可适用的数据访问约束和与查询210相关联的运行时信息。一般来说,在数据消耗方未被授权访问协同数据集、协同数据集内的目标协同数据(例如特定行的数据)、要被得出的特定类型的所请求的协同智能的场景中,访问约束组件220可以拒绝请求。在这种情况下,访问约束组件220可以向发出的数据消耗方返回通知,通知数据消耗方所请求的查询被拒绝。如果所请求得访问被确定为是经过授权的和/或与可适用的数据访问约束一致,则查询210可以被传递给查询解析器230。
一般来说,查询解析器230可以解析查询210并且生成对应的执行树235。在高级别,执行树235包括可执行逻辑单元的分层布置,该分层布置在执行时实现查询210。可执行逻辑单元可以包括任何合适的命令、操作、函数调用等的布置和组合。约束查询格式化器240可以访问可适用的约束(例如经由与图1的约束管理器115的通信),并且可以针对约束来验证执行树235的可执行逻辑单元。在一些实施例中,如果可执行逻辑单元中的一个或多个可执行逻辑单元不被允许,则可以基于一个或多个约束添加、移除和/或更改一个或多个可执行逻辑单元,来有效地重新格式化查询210。
更具体地,通过遍历执行树235并且用与约束一致的自定义可执行逻辑单元替换与特定约束不一致的可执行逻辑单元,约束查询格式化器240可以将执行树235重新格式化为受约束的执行树245。附加地或备选地,约束查询格式化器240可以添加或移除一个或多个可执行逻辑单元,以对输出强制执行约束(如精度约束)。一般来说,约束查询格式化器240可以针对对应的约束上下文来验证执行树235的可执行逻辑单元,该约束上下文包括可适用的约束和与查询210相关联的运行时信息。这种检查可以涉及构成命令或操作的验证、一个或多个构成参数的验证和/或执行树235的其他部分的考虑,并且可以产生许多可能的结果。例如,可执行逻辑单元可以被允许(例可执行逻辑单元可以被复制到受约束的执行树245中),可执行逻辑单元可以不被允许(例如查询210可以完全不被允许),或可执行逻辑单元可以被允许但是有变化(例如将对应的受约束的可执行逻辑单元复制到受约束的执行树245中)。这些仅仅是作为示例,并且其他变型在本公开内被考虑到。
像这样,约束查询格式化器240可以针对约束来评估每个可执行逻辑单元,添加或移除可执行逻辑单元、和/或用并入和/或应用约束的自定义可执行逻辑单元来替换与约束不一致的一个或多个可执行逻辑单元。可执行逻辑单元与自定义可执行逻辑单元和/或与一个或多个约束(例如规则列表)对应的可执行逻辑单元之间的映射可以以任何合适的方式被检索、被访问和/或被维护(例如被本地存储、经由与图1的约束管理器115的通信而被访问、前述项的某种组合,等等)。映射可以是一对一、一对多或多对一。
在一些实施例中,接收到的查询可能不是使用目标协同数据集(例如图1的被屏蔽的协同数据集160)所使用的同一查询语言。像这样,转换组件250可以将受约束的执行树245从第一查询语言转换为第二查询语言。也就是说,转换组件可以将受约束的执行树245转换成经转换的受约束的执行树255。任何合适的查询语言都可以被实现(例如SQL、SparkQL、Kusto查询语言、C#Linq)。在一些实施例中,受约束的执行树245和/或经转换的受约束的执行树255可以被执行以针对失败来测试,并且失败可能引起对特定的执行、一组可执行逻辑单元、整个查询210等的驳回。
产生的执行树(例如受约束的执行树245和/或经转换的受约束的执行树255,视情况而定)可以被传递给执行组件260以供执行(例如执行对应的执行计划)。一般来说,这种执行操作以从协同数据得出协同智能270。在一些实施例中,协同智能270按原样被返回给请求的数据消耗方。在一些实施例中,在向请求的数据消耗方的传输之前可以附加地或备选地对协同智能270强制执行一个或多个约束。
作为非限制性示例,假设依据特定的租户协议,多个零售商已经同意暴露销售数据,该销售数据包括不应被暴露的一些敏感客户(customer)信息。在该示例中,租户协议指定多个约束,包括每聚合至少20个独特客户的要求、聚合必须跨越至少48小时、不能按用户id聚合、不导出用户id(userid)以及将数值结果四舍五入(round)到最近的两位数字。还假设租户协议允许数据消耗方得出每个客户每周在每个商店所花费的平均(average)消费金额。图3A图示了结构化查询语言(SQL)中对应查询310的示例。这种查询语言仅仅是作为示例,并且任何合适的查询结构都可以被实现。
查询310可以被解析和被转换成对应的执行树(例如通过图2的查询解析器230)。图3B图示了与图3A的查询310对应的示例执行树320的简化表示。一般来说,在查询执行树中,每个可执行逻辑单元都可以接收来自以前的可执行逻辑单元的数据和用于变换数据的一个或多个参数。当执行执行树320时,数据沿着执行树320的左分支从底部到顶部被传递。当数据被传递时,每个可执行逻辑单元应用一个或多个相关联的命令或操作。如本领域技术人员将了解的,执行树320包括可执行逻辑单元的分层布置,该分层不住在被执行时会实现查询310。
为了顾及可适用的约束,可以将执行树320转换为图4A的受约束的执行树410(例如通过图2的约束查询格式化器240)。图3B的执行树320和图4A的受约束的执行树410之间的差异用不同元素周围所绘制的方框来说明。例如,受约束的执行树410包括实现上述约束的四舍五入操作415,其中数值结果必须被四舍五入到最近的两位数字。在另一示例中,受约束的执行树410包括实现上述约束的过滤操作425,其中聚合必须包括至少20个独特客户的数据。受约束的执行树410的这种配置仅仅是作为示例,并且任何合适的配置都可以被实现。为了说明的目的,图4B图示了与受约束的执行树410对应的对应查询420的示例。如将了解的,查询420包括查询310中没有的附加元素,这些元素用于强制执行上述示例约束。通过从底部到顶部沿左分支遍历和执行树的可执行逻辑单元的层次结构,受约束的执行树410可以被执行,如本领域普通技术人员将了解的。像这样,受约束的执行树410可以被执行以得出协同智能,并且协同智能可以被返回给请求的数据消耗方。
示例流程图
参照图5至图10,提供了流程图,图示了与协同智能的生成相关的各种方法。方法可以使用本文中所描述的协同智能环境来执行。在实施例中,具有在其上体现的计算机可执行指令的一个或多个计算机存储介质在由一个或多个处理器执行时可以使一个或多个处理器执行自动升级系统中的方法。
现在转向图5,图5提供了图示生成协同数据的方法500的流程图。最初,在框510,基于多个租户之间的租户协议,摄取来自由多个租户提供的多个输入数据集的数据,以生成多组所摄取的数据。在框520,基于租户协议,融合多组所摄取的数据,以生成融合的联合数据。在框530,基于租户协议,对融合的联合数据执行至少一个受约束计算,以生成得出的联合数据。在框540,基于租户协议,对得出的联合数据执行至少一个净化操作,以生成协同数据。协同数据包括从输入数据集得出的被允许共享的可暴露部分和从输入数据集得出的不被允许共享的受限制的部分。
现在转向图6,图6提供了图示生成协同数据的方法600的流程图。最初,在框610,基于至少一个指定的计算或约束,融合多组数据,以生成融合的联合数据。在框620,基于至少一个指定的计算或约束,对融合的联合数据执行至少一个受约束的计算,以生成得出的联合数据。在框630,基于至少一个指定的计算或约束,对得出的联合数据执行至少一个净化操作,以生成协同数据。协同数据包括从多个数据集得出的被允许共享的可暴露部分和从多个数据集得出的不被允许共享的受限制的部分。在框640,基于至少一个指定的计算或约束,提供对协同数据的可暴露部分的访问。
现在转向图7,图7提供了图示为数据受托方环境中的协同数据提供受约束的计算的方法700的流程图。最初,在框710,接收请求,该请求针对执行所请求的可执行逻辑单元的许可,该逻辑单元与数据受托方环境中从多个租户所提供的多个输入数据集生成协同数据相关联。在框720,响应于接收到请求,访问与协同数据相关联的至少一个约束。在框730,通过基于至少一个约束来分解(resolve)请求,使得能够生成协同数据。协同数据包括被允许共享的可暴露部分和不被允许共享的受限制的部分。数据受托方环境被配置为提供对协同数据的可暴露部分的多个租户访问,而不暴露受限制的部分。
现在转向图8,图8提供了流程图,该流程图图示了提供对数据受托方环境中的协同数据的受约束的访问的方法800。最初,在框810,接收请求,该请求针对执行所请求的可执行逻辑单元的许可,该逻辑单元与对协同数据的访问相关联。协同数据是基于多个租户所提供的多个输入数据集。协同数据包括从多个输入数据集得出并且被允许共享的可暴露部分。协同数据包括从多个输入数据集得出的并且不被允许共享受限制的部分。在框820,响应于接收到请求,访问与协同数据相关联的至少一个约束。在框830,通过基于至少一个约束来分解请求,使得能够访问对协同数据。
现在转向图9,图9提供了图示约束查询方法900的流程图。最初,在框910,接收来自数据消耗方的查询,以从被屏蔽的协同数据生成协同智能。被屏蔽的协同数据是从多个租户所提供的多个输入数据集被生成的。被屏蔽的协同数据包括被允许共享的可暴露部分和不被允许共享的受限制的部分。在框920,发出请求,该请求针对执行与查询对应的至少一个可执行逻辑单元的许可。在框930,接收基于在多个租户之间的租户协议中所指定的一个或多个约束分解请求的响应。在框940,基于查询和分解请求的响应来从被屏蔽的协同数据生成协同智能。
现在转向图10,图10提供了图示受约束查询方法1000的流程图。最初,在框1010中,从数据消耗方的接收被存储在数据受托方环境中的被屏蔽的协同数据的查询。被屏蔽的协同数据是从多个租户所提供的多个输入数据集被生成的。被屏蔽的协同数据包括从多个输入数据集得出的并且允许被共享的可暴露部分和从输入数据集得出的并且不被允许共享的受限制的部分。在框1020中,将查询解析成执行树。在框1030中,基于执行树和在多个租户之间的租户协议中所指定的一个或多个约束来生成受约束的执行树。在框1040中,基于受约束的执行树从被屏蔽的协同数据生成协同智能。
示例分布式计算环境
现在参照图11,图11图示了其中可以采用本公开的实现方式的示例分布式计算环境1100。具体地,图11示出了示例云计算平台1110的高层架构,该平台可以托管协同智能环境或其部分(例如数据受托方环境)。应当理解,本文中所描述的这种和其他布置仅作为示例进行说明。例如,如上所述,本文中所描述的许多元件可以实现为分立或分布式组件或者与其他组件结合实现、并且在任何合适的组合和位置中实现。附加于或代替所示的布置和元件,可以使用其他布置和元件(例如机器、接口、功能、命令和功能分组)。
数据中心可以支持分布式计算环境1100,包括云计算平台1110、机架1120和机架1120中的节点1130(例如计算设备、处理单元或刀片)。协同智能环境和/或数据受托方环境可以以云计算平台1110来实现,该平台跨不同的数据中心和地理区域运行云服务。云计算平台1110可以实现结构控制器1140组件,用于供应和管理云服务的资源分配、部署、升级和管理。通常,云计算平台1110用于存储数据或以分布式方式运行服务应用。数据中心中的云计算基础设施1110可以被配置为托管和支持特定服务应用的端点的操作。云计算基础设施1110可以是公共云、私有云或专用云。
节点1130可以设置有主机1150(例如操作系统或运行时环境),在节点1130上运行已定义的软件堆栈。节点1130还可以被配置为在云计算平台1110内执行专门功能性(例如计算节点或存储节点)。节点1130被分配来运行租户的服务应用的一个或多个部分。租户可以指利用云计算平台1110的资源的客户。云计算平台1110的支持特定租户的服务应用组件可以被称为租户基础设施或租用。术语服务应用、应用或服务在本文中可互换使用,并且广泛地在数据中心之上运行、或者访问数据中心内的存储和计算设备位置的任何软件或软件的部分。
当多于一个的单独服务应用由节点1130支持时,节点1130可以被划分成虚拟机(例如虚拟机1152和虚拟机1154)。物理机器还可以同时运行单独的服务应用。虚拟机或物理机可以被配置为个性化计算环境,由云计算平台1110中的资源1160(例如硬件资源和软件资源)支持。考虑到可以针对特定的服务应用配置资源。进一步地,每个服务应用都可以被分成功能部分,使得每个功能部分能够在单独的虚拟机上运行。在云计算平台1110中,可以在集群中使用多个服务器来运行服务应用和执行数据存储操作。具体地,服务器可以独立执行数据操作,但是被暴露为被称为集群的单个设备。集群中的每个服务器都可以被实现为节点。
客户端设备1180可以被链接到云计算平台1110中的服务应用。客户端设备1180可以是任何类型的计算设备,例如,可以与参照图11所描述的计算设备1100对应。客户端设备1180可以被配置为向云计算平台1110发出命令。在实施例中,客户端设备1180可以通过虚拟互联网协议(IP)和负载均衡器或将通信请求引向云计算平台1110中的指定端点的其他部件来与服务应用进行通信。云计算平台1110的组件可以通过网络(未示出)彼此进行通信,该网络可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。
示例操作环境
已经简要描述了本发明的实施例的概述,下面描述可以实现本发明的实施例的示例操作环境,以便为本发明的各个方面提供一般上下文。具体地,最初参照图12,用于实现本发明的实施例的示例操作环境被示出并且被一般性地指定为计算设备1200。该计算设备1200只是合适的计算环境的一个示例,并不旨在对本发明的使用或功能性的范围提出任何限制。计算设备1200也不应被解释为有与所示的组件中的任何一个组件或组合相关的任何依赖或要求。
本发明可以在计算机代码或计算机可用指令的一般上下文中被描述,包括计算机可执行指令(诸如程序模块),可以由计算机或其他机器执行,诸如个人数据助理或其他手持式设备。一般来说,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中被实践,包括手持式设备、消费电子产品、通用计算机、更专业的计算设备等。本发明还可以在分布式计算环境中被实践,在该环境中,任务由通过通信网络被链接的远程处理设备执行。
参照图12,计算设备1200包括总线1210,总线1210直接或间接耦合以下设备:存储器1212、一个或多个处理器1214、一个或多个呈现组件1216、输入/输出端口1218、输入/输出组件1220和说明性电源1222。总线1210表示可以是一个或多个总线的总线(诸如地址总线、数据总线或其组合)。为了概念上的清晰,图12的各个框都用线表示,并且也考虑到所描述的组件和/或组件功能性的其他布置。例如,我们可以将呈现组件(诸如显示设备)视为I/O组件。同样,处理器具有存储器。我们认识到这是本领域的性质,并且重申图12的图仅仅是可以与本发明的一个或多个实施例结合使用的示例计算设备的说明。不对“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等类别之间做出区分,因为所有这些都在图12的范围内并且参考“计算设备”被考虑到。
计算设备1200通常包括各种计算机可读介质。该计算机可读介质可以是计算设备1200可以访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。通过示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括易失性和非易失性、可移除和不可移除的介质,以用于信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的存储的任何方法或技术中被实现。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储技术、CD-ROM、数字多用盘(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储装置或其他磁存储装置、或者可以用于存储期望信息并且可以由计算设备1200访问的任何其他介质。计算机存储介质不包括信号本身。
通信介质通常在调制数据信号(诸如载波或其他传输机制)中体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”指的是具有其特性中的一个或多个特性或以关于在信号中编码信息的方式被设置或被改变的信号。通过示例,而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、RF、红外线和其他无线介质)。上述任何项的组合也应被包括在计算机可读介质的范围内。
存储器1212包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1200包括一个或多个处理器,从各个实体(诸如存储器612或I/O组件1220)读取数据。(多个)呈现组件1216向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。
I/O端口1218允许计算设备1200逻辑耦合到其他设备,包括I/O组件1220,它们中有一些是内置的。说明性组件包括麦克风、操纵杆、游戏板、卫星天线、扫描仪、打印机、无线设备等。
参考本文中所描述的协同智能环境,本文中所描述的实施例支持约束计算和/或约束查询。协同智能环境的组件可以是集成组件,包括支持协同智能系统内的约束计算和/或约束查询功能性的硬件架构和软件框架。硬件架构指的是物理组件和其相互关系,并且软件框架指的是提供可以用设备上所体现的硬件实现的功能性的软件。
端到端的基于软件的系统可以在系统组件内操作,以操作计算机硬件来提供系统功能性。在低级,硬件处理器执行从用于给定处理器的机器语言(也称为机器代码或本机)指令集中所选择的指令。处理器识别本机指令,并且执行对应的低级功能,例如与逻辑、控制和存储器操作相关的功能。用机器代码编写的低级软件可以为较高级的软件提供更复杂的功能性。如本文中所使用的,计算机可执行指令包括任何软件,包括用机器代码所编写的低级软件、高级软件(诸如应用软件)以及其任何组合。在这方面,系统组件可以管理资源,并且为系统功能性提供服务。其任何其他变型和组合都与本发明的实施例一起被考虑到。
通过示例,协同智能系统可以包括API库,该API库包括针对例程、数据结构、对象类和变量的规范,该规范可以支持设备的硬件架构和系统智能系统的软件框架之间的交互。这些API包括协同智能系统的配置规范,以使得其中的不同组件可以在系统智能系统中彼此通信,如本文中所述。
已经标识出本文中所使用的各个组件,应当理解,为了实现本公开的范围内的期望功能性,可以采用任何数目的组件和布置。例如,为了概念上的清晰,图中所示的实施例中的组件用线示出。也可以实现这些和其他组件的其他布置。例如,虽然一些组件被描述为单个组件,但是本文中所描述的元件中的许多元件可以被实现为分立或分布式组件或与其他组件结合实现,或者在任何合适的组合和位置中实现。有些元件可以完全省略。此外,在本文中被描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件执行,如下所述。例如,各种功能可以由处理器执行,该处理器执行被存储在存储器中的指令。因此,附加于或代替所示的布置和元件,可以使用其他布置和元件(例如机器、接口、功能、命令和功能分组)。
下面的段落中所描述的实施例可以与一个或多个具体描述的备选方案结合。具体地,所要求保护的实施例可以在备选方案中包含对多于一个的其他实施例的引用。所要求保护的实施例可以指定所要求的主题的附加限制。
为了满足法定要求,本发明的实施例的主题在本文中进行了具有特异性的描述。然而,说明书本身并不旨在限制本专利的范围。更确切地说,发明人已经考虑到,结合其他目前或未来的技术,所要求的主题也可以以其他方式体现,以包括不同的步骤或与本文中所描述的步骤相似的步骤的组合。此外,虽然术语“步骤”和/或“框”在本文中可以被用来表示所采用的方法的不同元素,但是这些术语不应被解释为在本文中所公开的各种步骤当中或之间有任何特定顺序,除非和除了当个别步骤的顺序被明确描述时。
出于本公开的目的,词语“包括(including)”具有与词语“包括(comprising)”相同的广义含义,并且词语“访问”包括“接收”、“引用”或“检索”。进一步地,词语“通信”具有与基于软件或硬件的总线、接收器或发送器使用本文中所描述的通信介质所支持的词语“接收”或“发送”相同的广义含义。另外,词语,诸如“一”和“一个”,除非另有相反说明,否则既包括复数也包括单数。因此,例如,当出现一个或多个特征时,就满足了“特征”的约束。同样,术语“或”包括连接词、转折连词和两者(因此a或b包括:a或b中的任一、以及a和b)。
出于上述详细讨论的目的,本发明的实施例参考分布式计算环境进行描述。然而,本文中所描述的分布式计算环境仅仅是示例性的。组件可以被配置用于执行实施例的新颖方面,其中术语“被配置为”可以指“被编程以”使用代码执行特定任务或实现特定抽象数据类型。进一步地,虽然本发明的实施例一般可以指系统智能环境和本文中所描述的原理图,但要理解,所描述的技术可以扩展到其他实现方式上下文。
本发明的实施例已经关于特定实施例进行了描述,这些特定实施例在所有方面都旨在是说明性的,而非限制性的。对于本发明所属的领域中的普通技术人员而言,备选实施例将变得明显,而不偏离其范围。
从上面将看到,本发明非常适合于达到上面与明显的和对结构而言固有的其他优点一起进行说明的所有目标和目的。
将理解,某些特征和子组合是实用的,并且可以在不引用其他特征或子组合的情况下被采用。这是由权利要求的范围考虑到的并且在权利要求的范围内。
Claims (10)
1.一种数据受托方环境,包括:
一个或多个硬件处理器和存储器,所述存储器被配置为向所述一个或多个硬件处理器提供计算机程序指令;
受约束查询组件,被配置为使用所述一个或多个硬件处理器来:
从数据消耗方接收对被存储在所述数据受托方环境中的被屏蔽的协同数据的查询,其中所述被屏蔽的协同数据是在所述数据受托方环境中从所述多个租户所提供的多个输入数据集生成的,其中所述被屏蔽的协同数据包括被允许共享的可暴露部分和不被允许共享的受限制部分,其中所述数据受托方环境被配置为提供对所述被屏蔽的协同数据的所述可暴露部分的所述多个租户访问,而不暴露所述受限制部分;以及
基于所述查询和在所述多个租户之间的租户协议中指定的一个或多个约束,从所述被屏蔽的协同数据生成协同智能。
2.根据权利要求1所述的数据受托方环境,其中所述受约束查询组件被配置为:在执行所述查询前,基于与所述查询相关联的运行时信息来应用在所述租户协议中指定的一个或多个访问约束。
3.一种或多种计算机存储介质,存储计算机可用指令,所述计算机可用指令在由一个或多个计算设备使用时使所述一个或多个计算设备执行操作,所述操作包括:
从数据消耗方接收查询,以从被屏蔽的协同数据生成协同智能,其中所述被屏蔽的协同数据是从所述多个租户所提供的多个输入数据集生成的,其中所述被屏蔽的协同数据包括被允许共享的可暴露部分和不被允许共享的受限制部分;
发出请求,所述请求针对执行与所述查询对应的至少一个可执行逻辑单元的许可;
接收响应,所述响应基于在所述多个租户之间的租户协议中指定的一个或多个约束来分解所述请求;以及
基于所述查询和分解所述请求的所述响应来从所述被屏蔽的协同数据生成协同智能。
4.根据权利要求3所述的一种或多种计算机存储介质,其中生成所述协同智能包括在所述查询的执行之后应用一组所述一个或多个约束。
5.一种用于受约束的查询的方法,所述方法包括:
从数据消耗方接收对被存储在数据受托方环境中的被屏蔽的协同数据的查询,其中所述被屏蔽的协同数据是从多个租户所提供的多个输入数据集生成的,其中所述被屏蔽的协同数据包括被从所述多个输入数据集得出并且被允许共享的可暴露部分、和从所述多个输入数据集被得出并且不被允许共享的受限制部分;
将所述查询解析成执行树;
基于所述执行树和在所述多个租户之间的租户协议中指定的一个或多个约束来生成受约束的执行树;以及
基于所述受约束的执行树来从所述被屏蔽的协同数据生成协同智能。
6.根据权利要求5所述的方法,还包括针对对应的约束上下文验证所述查询,所述约束上下文包括在所述租户协议中指定的可适用数据访问约束和与所述查询相关联的运行时信息。
7.根据权利要求5所述的方法,其中生成所述受约束的执行树包括:遍历所述执行树的可执行逻辑单元,并且针对所述一个或多个约束来验证所述可执行逻辑单元。
8.根据权利要求5所述的方法,其中生成所述受约束的执行树包括:用强制执行所述一个或多个约束的自定义可执行逻辑单元替换与所述一个或多个约束不一致的一个或多个可执行逻辑单元。
9.根据权利要求5所述的方法,其中生成所述受约束的执行树基于可执行逻辑单元与和所述一个或多个约束对应的自定义可执行逻辑单元之间的映射。
10.根据权利要求5所述的方法,还包括:在生成所述受约束的执行树之前,将所述租户协议中指定的一个或多个访问约束应用于所述查询。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/388,703 US11409897B2 (en) | 2019-04-18 | 2019-04-18 | Constraint querying for collaborative intelligence and constraint computing |
US16/388,703 | 2019-04-18 | ||
PCT/US2020/023037 WO2020214304A1 (en) | 2019-04-18 | 2020-03-17 | Constraint querying for collaborative intelligence and constraint computing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113711218A true CN113711218A (zh) | 2021-11-26 |
Family
ID=70289449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080028730.6A Pending CN113711218A (zh) | 2019-04-18 | 2020-03-17 | 协同智能的约束查询以及约束计算 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11409897B2 (zh) |
EP (1) | EP3956794A1 (zh) |
CN (1) | CN113711218A (zh) |
WO (1) | WO2020214304A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11356456B2 (en) | 2019-04-18 | 2022-06-07 | Microsoft Technology Licensing, Llc | Multi-participant and cross-environment pipelines |
US11409904B2 (en) | 2019-04-18 | 2022-08-09 | Microsoft Technology Licensing, Llc | User interface for building a data privacy pipeline and contractual agreement to share data |
US11403299B2 (en) | 2019-04-18 | 2022-08-02 | Microsoft Technology Licensing, Llc | Constraint manager for collaborative intelligence and constraint computing |
US11455410B2 (en) | 2019-04-18 | 2022-09-27 | Microsoft Technology Licensing, Llc | Data privacy pipeline providing collaborative intelligence and constraint computing |
US11934397B2 (en) * | 2020-01-31 | 2024-03-19 | Salesforce, Inc. | Query plan overrides |
US11775681B2 (en) | 2020-09-01 | 2023-10-03 | Microsoft Technology Licensing, Llc | Enforcement flow for pipelines that include entitlements |
US11361106B2 (en) | 2020-09-01 | 2022-06-14 | Microsoft Technology Licensing, Llc | Chaining, triggering, and enforcing entitlements |
US11709813B2 (en) * | 2021-06-10 | 2023-07-25 | Jpmorgan Chase Bank, N.A. | System and method for implementing a contract data management module |
US11922145B2 (en) | 2022-03-01 | 2024-03-05 | Microsoft Technology Licensing, Llc | Initiating data privacy pipelines using reusable templates |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2116954A1 (en) * | 2008-05-09 | 2009-11-11 | Business Objects, S.A. | Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy |
CN102708316A (zh) * | 2012-04-19 | 2012-10-03 | 北京华胜天成科技股份有限公司 | 一种用于多租户架构中数据隔离的方法 |
CN103532981A (zh) * | 2013-10-31 | 2014-01-22 | 中国科学院信息工程研究所 | 一种面向多租户的身份托管鉴权云资源访问控制系统及控制方法 |
CN104205096A (zh) * | 2012-03-21 | 2014-12-10 | 惠普发展公司,有限责任合伙企业 | 多租用环境中的拓扑查询 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437408B2 (en) | 2000-02-14 | 2008-10-14 | Lockheed Martin Corporation | Information aggregation, processing and distribution system |
US6826578B2 (en) | 2002-10-25 | 2004-11-30 | Ge Medical Systems Information Technolgoies, Inc. | Method, system, and computer product for collecting and distributing clinical data for data mining |
US7509684B2 (en) | 2004-10-09 | 2009-03-24 | Microsoft Corporation | Strategies for sanitizing data items |
WO2006076520A2 (en) | 2005-01-14 | 2006-07-20 | International Business Machines Corporation | Sharable multi-tenant reference data utility and repository, including value enhancement and on-demand data delivery and methods of operation |
US7599934B2 (en) | 2005-09-27 | 2009-10-06 | Microsoft Corporation | Server side filtering and sorting with field level security |
US8635660B2 (en) | 2005-12-06 | 2014-01-21 | Oracle International Corporation | Dynamic constraints for query operations |
US8661056B1 (en) | 2008-11-03 | 2014-02-25 | Salesforce.Com, Inc. | System, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service |
WO2011060306A2 (en) * | 2009-11-12 | 2011-05-19 | Salesforce.Com, Inc. | Enterprise level business information networking for changes in a database |
US8713043B2 (en) | 2010-03-01 | 2014-04-29 | Salesforce.Com, Inc. | System, method and computer program product for sharing a single instance of a database stored using a tenant of a multi-tenant on-demand database system |
US8375030B2 (en) | 2010-12-03 | 2013-02-12 | Mitsubishi Electric Research Laboratories, Inc. | Differentially private aggregate classifier for multiple databases |
US8893217B2 (en) | 2011-06-30 | 2014-11-18 | International Business Machines Corporation | Method and apparatus for specifying time-varying intelligent service-oriented model |
US9703834B2 (en) | 2012-03-21 | 2017-07-11 | Hewlett Packard Enterprise Development Lp | Topological query in multi-tenancy environment |
US8925104B2 (en) | 2012-04-13 | 2014-12-30 | At&T Mobility Ii Llc | Event driven permissive sharing of information |
US9195854B2 (en) | 2012-12-19 | 2015-11-24 | Salesforce.Com, Inc. | System and method for controlling the on and off state of features at runtime |
US20150163206A1 (en) | 2013-12-11 | 2015-06-11 | Intralinks, Inc. | Customizable secure data exchange environment |
US9639589B1 (en) | 2013-12-20 | 2017-05-02 | Amazon Technologies, Inc. | Chained replication techniques for large-scale data streams |
US9817991B2 (en) | 2014-05-08 | 2017-11-14 | NetSuite Inc. | System and method for a cloud based solution to track notes against business records |
CN105224566B (zh) * | 2014-06-25 | 2019-03-01 | 国际商业机器公司 | 在关系数据库上支持命令式图形查询的方法和系统 |
US9542570B2 (en) * | 2014-11-10 | 2017-01-10 | Successfactors, Inc. | Permission control |
KR102329333B1 (ko) * | 2014-11-12 | 2021-11-23 | 삼성전자주식회사 | 질의를 처리하는 장치 및 방법 |
WO2016134466A1 (en) | 2015-02-24 | 2016-09-01 | Brightsquid Dental Ltd. | System and method for enabling a multi-location data storage and retrieval system |
US10467234B2 (en) | 2015-11-02 | 2019-11-05 | LeapYear Technologies, Inc. | Differentially private database queries involving rank statistics |
US10324925B2 (en) | 2016-06-19 | 2019-06-18 | Data.World, Inc. | Query generation for collaborative datasets |
US10747774B2 (en) | 2016-06-19 | 2020-08-18 | Data.World, Inc. | Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets |
US10410107B2 (en) | 2016-07-26 | 2019-09-10 | Salesforce.Com, Inc. | Natural language platform for database system |
US10303894B2 (en) | 2016-08-31 | 2019-05-28 | Oracle International Corporation | Fine-grained access control for data manipulation language (DML) operations on relational data |
US11023463B2 (en) * | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US10642832B1 (en) * | 2016-11-06 | 2020-05-05 | Tableau Software, Inc. | Reducing the domain of a subquery by retrieving constraints from the outer query |
US10789572B2 (en) | 2017-02-09 | 2020-09-29 | Ipaladin, Llc | Data processing system and method for managing enterprise information |
US11663205B2 (en) | 2017-05-04 | 2023-05-30 | Salesforce, Inc. | Technologies for asynchronous querying |
US10834087B1 (en) | 2017-06-01 | 2020-11-10 | State Farm Mutual Automobile Insurance Company | Data security systems and methods |
EP3477527A1 (en) | 2017-10-31 | 2019-05-01 | Twinpeek | Privacy management |
US10637887B2 (en) * | 2017-12-29 | 2020-04-28 | Cyphort Inc. | System for query injection detection using abstract syntax trees |
US11126737B2 (en) | 2018-01-09 | 2021-09-21 | Randy Friedman | System and method of decentralized services to make federated raw data sets self-governing for secure sharing and commingling |
US11257073B2 (en) | 2018-01-31 | 2022-02-22 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
US11741253B2 (en) | 2019-01-31 | 2023-08-29 | Hewlett Packard Enterprise Development Lp | Operating system service sanitization of data associated with sensitive information |
US11356456B2 (en) | 2019-04-18 | 2022-06-07 | Microsoft Technology Licensing, Llc | Multi-participant and cross-environment pipelines |
US11455410B2 (en) | 2019-04-18 | 2022-09-27 | Microsoft Technology Licensing, Llc | Data privacy pipeline providing collaborative intelligence and constraint computing |
US11403299B2 (en) | 2019-04-18 | 2022-08-02 | Microsoft Technology Licensing, Llc | Constraint manager for collaborative intelligence and constraint computing |
US11409904B2 (en) | 2019-04-18 | 2022-08-09 | Microsoft Technology Licensing, Llc | User interface for building a data privacy pipeline and contractual agreement to share data |
-
2019
- 2019-04-18 US US16/388,703 patent/US11409897B2/en active Active
-
2020
- 2020-03-17 WO PCT/US2020/023037 patent/WO2020214304A1/en active Application Filing
- 2020-03-17 EP EP20719254.3A patent/EP3956794A1/en active Pending
- 2020-03-17 CN CN202080028730.6A patent/CN113711218A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2116954A1 (en) * | 2008-05-09 | 2009-11-11 | Business Objects, S.A. | Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy |
CN104205096A (zh) * | 2012-03-21 | 2014-12-10 | 惠普发展公司,有限责任合伙企业 | 多租用环境中的拓扑查询 |
CN102708316A (zh) * | 2012-04-19 | 2012-10-03 | 北京华胜天成科技股份有限公司 | 一种用于多租户架构中数据隔离的方法 |
CN103532981A (zh) * | 2013-10-31 | 2014-01-22 | 中国科学院信息工程研究所 | 一种面向多租户的身份托管鉴权云资源访问控制系统及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200334375A1 (en) | 2020-10-22 |
US11409897B2 (en) | 2022-08-09 |
WO2020214304A1 (en) | 2020-10-22 |
EP3956794A1 (en) | 2022-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455410B2 (en) | Data privacy pipeline providing collaborative intelligence and constraint computing | |
CN113711218A (zh) | 协同智能的约束查询以及约束计算 | |
US11403299B2 (en) | Constraint manager for collaborative intelligence and constraint computing | |
US11409904B2 (en) | User interface for building a data privacy pipeline and contractual agreement to share data | |
US11356456B2 (en) | Multi-participant and cross-environment pipelines | |
US11954233B2 (en) | Chaining, triggering, and enforcing entitlements | |
US20190087457A1 (en) | Function semantic based partition-wise sql execution and partition pruning | |
CN111858615A (zh) | 数据库表生成方法、系统、计算机系统和可读存储介质 | |
US11775681B2 (en) | Enforcement flow for pipelines that include entitlements | |
US20230099501A1 (en) | Masking shard operations in distributed database systems | |
US20230107925A1 (en) | Modeling individual interfaces for executing interface queries over multiple interfaces | |
US20200117822A1 (en) | Dynamic authorization matrix and related systems, methods, and computer program products | |
US20220050912A1 (en) | Security semantics for database queries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |