US11403299B2 - Constraint manager for collaborative intelligence and constraint computing - Google Patents
Constraint manager for collaborative intelligence and constraint computing Download PDFInfo
- Publication number
- US11403299B2 US11403299B2 US16/388,700 US201916388700A US11403299B2 US 11403299 B2 US11403299 B2 US 11403299B2 US 201916388700 A US201916388700 A US 201916388700A US 11403299 B2 US11403299 B2 US 11403299B2
- Authority
- US
- United States
- Prior art keywords
- data
- constraint
- collaborative
- constraints
- trustee environment
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000002776 aggregation Effects 0.000 claims description 30
- 238000004220 aggregation Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 19
- 230000000670 limiting effect Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000011012 sanitization Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 238000006467 substitution reaction Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 2
- 230000000873 masking effect Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 10
- 230000004927 fusion Effects 0.000 description 10
- 230000037406 food intake Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000000470 constituent Substances 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 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
- 238000009987 spinning Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 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
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
- 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/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/26—Visual data mining; Browsing structured data
-
- 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
- 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
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Definitions
- Embodiments of the present disclosure are directed to techniques for deriving collaborative intelligence based on constraint computing and querying.
- a data trustee can operate a trustee environment that derives collaborative intelligence subject to configurable constraints, without sharing raw data.
- the trustee environment can include a data privacy pipeline through which data can be ingested, fused, derived, and sanitized to generate collaborative data without compromising data privacy.
- the collaborative data can be stored and queried to provide collaborative intelligence subject to the configurable constraints.
- the data privacy pipeline is provided as a distributed computing or cloud computing service (cloud service) implemented in the trustee environment and can be spun up and spun down as needed.
- cloud service cloud service
- collaborative data refers to data that has been derived from shared input data (e.g., data from different users).
- Shared input data can come from any number of sources (e.g., different users), and can be processed to generate intermediate data, which itself can be processed to generate collaborative data.
- Collaborative data may include an exposable portion that is allowed to be shared and a restricted portion that is not allowed to be shared. Although the restricted portion of the collaborative data may not be shared, it may include an operable portion that may be used to derive collaborative intelligence that may be shared.
- collaborative intelligence may be derived from exposable data and/or restricted data, and the collaborative intelligence may be provided without exposing the restricted data.
- a user interface can be provided to enable tenants (e.g., customers, businesses, users) to specify desired computations and constraints on the use of and access to their data in the trustee environment, including eligible data sources and how their data can be processed or shared. Any number of various types of constraints may be implemented, including data access constraints, data processing constraints, data aggregation constraints, and data sanitation constraints, to name a few.
- the constraint manager can communicate with various components in the trustee environment to implement the constraints. For example, requests to execute an executable unit of logic such as a command or function call may be issued to the constraint manager, which can grant or deny permission. Permission may be granted subject to one or more conditions that implement the constraints, such as requiring the replacement of a particular executable unit of logic with a constrained executable unit of logic.
- constraints are applied to generate collaborative data and intermediate data, any combination of schema, constraints, and/or attribution metadata can be associated with the data. As such, the constraint manager can orchestrate constraint computing in the trustee environment.
- constraint querying can be applied to allow data consumers, associated with the trustee environment, to query collaborative data in the trustee environment subject to the constraints.
- Constraint querying can allow data consumers to access collaborative data or derive collaborative intelligence while enforcing the constraints to prevent exposing designated data (data that has been identified for enforcing a particular constraint).
- Constraints can be applied in response to a query in multiple ways, including reformatting a query prior to execution, applying constraints after executing a query, constraining eligible queries for execution, applying access constraints prior to execution, and others.
- the query can be parsed into an execution tree comprising a hierarchical arrangement of executable units of logic that, when executed, implement the query.
- the execution tree can be reformatted into a constrained execution tree by replacing executable units of logic inconsistent with a particular constraint with custom executable units of logic that are consistent with the constraint.
- the constrained execution tree can be translated into a language used by the trustee environment and forwarded for execution.
- FIG. 1 is a block diagram of an example collaborative intelligence environment, in accordance with embodiments described herein;
- FIG. 2 is a block diagram of an example constrained querying component, in accordance with embodiments described herein;
- FIG. 3A is an example of an issued query
- FIG. 3B is an example of a corresponding execution tree, in accordance with embodiments described herein;
- FIG. 4A is an example of a constrained execution tree
- FIG. 4B is an example of a corresponding query, in accordance with embodiments described herein;
- FIG. 5 is a flow diagram showing an example method for generating collaborative data, in accordance with embodiments described herein;
- FIG. 6 is a flow diagram showing an example method for generating collaborative data, in accordance with embodiments described herein;
- FIG. 7 is a flow diagram showing an example method for providing constrained computations for collaborative data in a data trustee environment, in accordance with embodiments described herein;
- FIG. 8 is a flow diagram showing an example method for providing constrained access to collaborative data in a data trustee environment, in accordance with embodiments described herein;
- FIG. 9 is a flow diagram showing an example method for constraint querying, in accordance with embodiments described herein;
- FIG. 10 is a flow diagram showing an example method for constrained querying, in accordance with embodiments described herein;
- FIG. 11 is a block diagram of an example computing environment suitable for use in implementing embodiments described herein.
- FIG. 12 is a block diagram of an example computing environment suitable for use in implementing embodiments described herein.
- sharing data often leads to more complete datasets, encourages collaborative efforts, and produces better intelligence (e.g., understanding or knowledge of an event or circumstance, or information, relationships, and facts about different types of entities).
- researchers benefit from more data being available.
- sharing can stimulate interest in research and can incentivize the production of higher data quality.
- sharing can result in synergies and efficiencies in research and development.
- a data trustee can operate a trustee environment configured to derive collaborative intelligence for tenants subject to configurable constraints, without exposing underlying raw data provided by the tenants or collaborative data shielded by the trustee environment.
- collaborative data refers to data that has been derived from shared input data (e.g., data from different users).
- shared input data can come from any number of sources (e.g., different users), and can be processed to generate intermediate data, which itself can be processed to generate collaborative data.
- Collaborative data may include an exposable portion that is allowed to be shared and a restricted portion that is not allowed to be shared.
- collaborative intelligence may be derived from exposable data and/or restricted data, and the collaborative intelligence may be provided without exposing the restricted data.
- configurable constraints may programmatically manage limitations (e.g., allowing some operations, but not others) on certain underlying data (e.g., personally identifiable information, some other sensitive information, or any other designated information that is collected, stored, or used) and how the underlying data can and cannot be accessed, used, stored, or displayed (or variations thereof).
- the configurable constraints may programmatically support collaborative intelligence operations on accessible data (e.g., deriving aggregate statistics), without displaying the individual data entries that were operated on.
- the trustee environment can include one or more data privacy pipelines through which data can be ingested, fused, derived, and/or sanitized to generate collaborative data.
- a data privacy pipeline can be provided as a distributed computing or cloud computing service (cloud service) implemented in the trustee environment, and can be spun up and spun down as needed.
- cloud service cloud service
- tenants providing data into a data privacy pipeline cannot access the pipeline. Instead, the pipeline outputs collaborative data subject to constraints provided by one or more of the tenants.
- the collaborative data can be output from the trustee environment (e.g., because it has been sanitized according to specified constraints) and/or may be stored in, and shielded by, the trustee environment. Shielded collaborative data can be queried to derive collaborative intelligence subject to the configurable constraints (e.g., without exposing the shielded collaborative data).
- a data privacy pipeline can accept data provided by one or more tenants. Initially, the data privacy pipeline may determine whether input data is joint data pursuant to a contract or other tenant agreement with one or more tenants. Data that is determined to be joint data can be ingested, and data that is determined not to be joint data can be dropped.
- joint data refers to any shared data that is designated for ingestion in generating collaborative data (e.g., as designated or otherwise identified in a tenant agreement with one more tenants). Ingested data can include data from multiple sources, so the data privacy pipeline may fuse data from multiple sources according to computations and constraints specified in the tenant agreement.
- constrained data fusion can implement one or more constraints to combine ingested data to form fused joint data in any number of ways, including the use of one or more join operations (e.g., left, right, inner, outer, anti), custom joins (e.g., via imperative scripts), data appends, normalization operations, some combination thereof, and others.
- join operations e.g., left, right, inner, outer, anti
- custom joins e.g., via imperative scripts
- data appends e.g., via imperative scripts
- a data privacy pipeline can perform constrained computations to generate derived joint data.
- Constrained computing can take data from one source (e.g., ingested data, fused joint data) and perform any number of specified computations (e.g., arithmetic operations, aggregation, summarization, filtering, sorting, bounding).
- a simple example of a constraint computation is a calculation of average age per city, where the computation is only to be performed for a city if the underlying dataset includes entries for at least five people in the city.
- a data privacy pipeline can perform data sanitation to generate collaborative data that implements constraints for storage, access, precision, and the like.
- data sanitation can implement constraints specified in the tenant agreement designating whether collaborative data should be shielded (e.g., stored in the trustee environment), whether collaborative data can be exported, whether exported collaborative data should be restricted (e.g., do not export email, credit card numbers, portions thereof), and the like.
- a data privacy pipeline can generate collaborative data from data provided by one or more tenants, and provide agreed-upon access to the collaborative data without sharing the underlying raw data with all the tenants.
- constraints can be provided through a user interface to enable tenants (e.g., customers, businesses, users) to specify desired computations and constraints on the use of and access to their data in the trustee environment, including eligible data sources and how their data may be processed or shared. Any number of various types of constraints may be implemented, including data access constraints, data processing constraints, data aggregation constraints, and data sanitation constraints.
- data access constraints can be specified to allow or forbid access (e.g., to a specific user, account, organization).
- designated constraints can be universal such that the constraints apply to all potential data consumers (e.g., only allow access to average age no matter the data consumer).
- a designated constraint can be applied to a designated user, account, organization, and the like (e.g., do not allow group A to access salary data, but allow group B to access it).
- a tenant may specify constraints defining how the tenant's data can be merged with designated datasets or portions thereof, constraints limiting the schema of data being read from the tenant's data (e.g., specifying horizontal filtering to be applied to a tenant's data), constraints limiting the size of ingested data (e.g., specifying storage limitations, sub-sampling of the tenant's data, vertical filtering to be applied to a tenant's data), constraints limiting the schema of collaborative data that can be output, constraints defining ownership of collaborative data, constraints defining whether collaborative data should be open, encrypted, or shielded (e.g., stored in the trustee environment), and the like.
- constraints limiting the schema of data being read from the tenant's data e.g., specifying horizontal filtering to be applied to a tenant's data
- constraints limiting the size of ingested data e.g., specifying storage limitations, sub-sampling of the tenant's data, vertical filtering to be applied to a tenant's data
- various types of data processing constraints may be designated, such as constraints designating what operations can be performed (e.g., allowable and restricted computations, binary checks), constraints limiting a comparison precision (e.g., for numeric data, geographic data, date and time data), constraints limiting an accumulation precision (e.g., for geographical data, numerical data, date or time data), constraints limiting location bounding precision (e.g., limiting allowable geofencing determinations to specific grids, minimum geographic divisions such as neighborhood, county, city, state, or country, and the like), and other precision and/or data processing requirements.
- constraints designating what operations can be performed e.g., allowable and restricted computations, binary checks
- constraints limiting a comparison precision e.g., for numeric data, geographic data, date and time data
- constraints limiting an accumulation precision e.g., for geographical data, numerical data, date or time data
- constraints limiting location bounding precision e.g., limiting allowable geofencing determinations to specific grids, minimum geographic
- one or more data aggregation constraints can be specified, such as constraints requiring a minimum aggregation amount (e.g., at least N rows or distinct field values), constraints requiring some statistical distribution condition to be valid (e.g., minimum standard deviation), constraints defining allowed aggregation functions (e.g., allow min, max, average, but not percentiles), to name a few examples.
- constraints requiring a minimum aggregation amount e.g., at least N rows or distinct field values
- constraints requiring some statistical distribution condition to be valid e.g., minimum standard deviation
- constraints defining allowed aggregation functions e.g., allow min, max, average, but not percentiles
- one or more data sanitation constraints can be specified, such as constraints requiring sanitation of personally identifiable information (e.g., remove e-mails, names, IDs, credit card numbers), constraints requiring lower precision sanitation (e.g., lower the numeric, data and time, and/or geographical precision), constraints requiring sanitization of values coming from specific fields (which may entail tracking transformations applied in a data privacy pipeline), constraints requiring custom sanitations (e.g., requiring execution of one or more custom and/or third party sanitation scripts), constraints requiring data masking (e.g., output certain data such as phone numbers, credit cards, dates, but mask a portion of the number), and the like.
- constraints requiring sanitation of personally identifiable information e.g., remove e-mails, names, IDs, credit card numbers
- constraints requiring lower precision sanitation e.g., lower the numeric, data and time, and/or geographical precision
- constraints requiring sanitization of values coming from specific fields which may entail tracking transformations applied in a
- one or more constraints can be specified limiting a number of allowable queries and/or data accesses per unit time (e.g., minute, hour, day). Such a constraint can operate to reduce the risk of brute-force attempts to reverse engineer shielded data by asking a set of slightly different questions within a relatively small time window.
- one or more custom constraints can be specified such as a constraint requiring that some designated property match some designated criteria.
- a constraint manager can monitor and orchestrate data flow, generation, and access, subject to the designated constraints.
- the constraint manager can communicate with various components in the trustee environment (e.g., a data privacy pipeline) to implement the constraints, which may be maintained in a contract database accessible to the constraint manager.
- components can issue requests to the constraint manager for permission to execute a particular command, function call, or other executable unit of logic.
- the constraint manager can evaluate the request and grant or deny permission. In some cases, permission may be granted subject to one or more conditions corresponding to one or more of the constraints.
- some possible conditions that can be implemented include requiring operations that shift, filter, or reshape data (e.g., application of comparison constraints such as only allowing a merge with certain precision), requiring substitution of one or more executable units of logic (e.g., commands or operations) with one or more constrained executable units of logic (e.g., replace average with constrained average), and the like.
- operations that shift, filter, or reshape data e.g., application of comparison constraints such as only allowing a merge with certain precision
- substitution of one or more executable units of logic e.g., commands or operations
- constrained executable units of logic e.g., replace average with constrained average
- a constraint can be checked, validated, or otherwise enforced at any time or step (e.g., in association with any portion of a data privacy pipeline, constrained querying). Accordingly, corresponding functionality enforcing a constraint can be applied at any step, or multiple steps.
- enforcement of certain constraints can be allocated to certain portions of a data privacy pipeline (e.g., data access constraints get applied during ingestion, processing and aggregation constraints get applied during data fusion and/or constrained computation, sanitation constraints get applied during data sanitation).
- a particular data access constraint e.g., only pass data for patients who participated in at least five different studies) may be applied during data fusion. These are meant merely as examples, and any suitable constraint enforcement regime may be implemented within the present disclosure.
- Enforcement of a constraint e.g., precision or aggregation constraints
- a particular executable unit of logic can be rejected entirely.
- a particular executable unit of logic can be allowed, but the result is filtered (e.g., no value is returned for a particular row or entry of data).
- a particular executable unit of logic can be allowed, but the result is changed (e.g., precision reduced, a question is answered with false).
- constraints can be applied to generate collaborative data, any combination of schema, constraints, and/or attribution metadata can be associated with the collaborative data, intermediate data used to arrive at the collaborative data, or otherwise.
- constraints can be enforced across multiple steps and computations.
- applicable and/or satisfied constraints for each step can be tracked and/or associated with data produced by a given step. Taking aggregation constraints as an example, once an aggregation constraint has been fulfilled during a particular step, subsequent steps no longer need to consider this constraint. In another example where different constraints have been specified for different datasets to be merged, a merging operation may only need to apply the stricter constraint.
- an appropriate allocation or combination of constraints can be applied and/or tracked as data flows through a data privacy pipeline.
- This tracking can facilitate validating whether a particular constraint has been applied to particular data. Accordingly, as constraints are applied and data is generated, corresponding schema, applicable or satisfied constraints, and/or attribution metadata indicating ownership or providence can be associated with a dataset, or a corresponding entry, row, field, or other element of data. In some embodiments, any intermediate data used in arriving at collaborative data (e.g., ingested data, fused joint data, derived joint data) may be deleted, and collaborative data may be stored in the trustee environment and/or provided as an output, depending on an applicable constraint.
- collaborative data e.g., ingested data, fused joint data, derived joint data
- constraint querying can be applied to allow data consumers to query collaborative data in a trustee environment subject to configurable constraints.
- constraint querying can operate as a search engine that allows data consumers to access or derive collaborative intelligence from collaborative data without exposing underlying raw data provided by the tenants or collaborative data shielded by the trustee environment.
- Constraints can be applied in response to a query in any number of ways, including reformatting a query prior to execution, applying constraints after executing a query, constraining eligible queries for execution, applying access constraints prior to execution, and others.
- an issued query can be validated against a specified aggregation constraint by ensuring that the query contains at least one aggregation element and ensuring that the aggregation element(s) are consistent the aggregation constraint.
- an execution plan corresponding to the issued query can be executed, and the results can be validated against the aggregation constraint and/or the aggregation element(s) of the query (e.g., confirming the results correspond to a requested number of distinct rows, fields, statistical distribution).
- a constraint can be enforced on a corresponding element of a query by modifying the element based on the constraint (e.g., to limit a corresponding number of distinct rows, fields, statistical distribution), by executing the modified element prior to the other elements of the query, some combination thereof, or otherwise.
- queries are generally not executable code.
- the query In order to execute a query, it is normally converted into an execution plan that is executable.
- the query in order to enforce constraints on a received query, the query can be parsed into a corresponding execution tree comprising a hierarchical arrangement of executable units of logic that, when executed, implement the query. Applicable constraints can be accessed, and the executable units of logic can be validated against the constraints.
- the query can effectively be reformatted by altering one or more of the executable units of logic based on one or more constraints.
- the execution tree corresponding to the query can be reformatted into a constrained execution tree by traversing the execution tree and replacing executable units of logic inconsistent with a particular constraint with custom executable units of logic that are consistent with the constraint.
- one or more executable units of logic may be added to the constrained execution tree to enforce constraints (e.g., precision constraints) on the output.
- an executable unit of logic of an execution tree can be validated against a corresponding constraint context comprising an applicable accessed constraint and runtime information such as information identifying the requesting data consumer issuing the query, information identifying an applicable tenant agreement, information identifying target collaborative data on which to operate, and the like.
- Validation of an executable unit of logic can involve validation of a constituent command or operation, one or more constituent parameters, and/or consideration of other parts of the execution tree. Validation of an executable unit of logic can result in a number of possible results.
- an executable unit of logic can be allowed (e.g., the executable unit of logic can be copied into a constrained execution tree), an executable unit of logic can be disallowed (e.g., the query can be disallowed in its entirety), or an executable unit of logic can be allowed but with changes (e.g., copying a corresponding constrained executable unit of logic into the constrained execution tree).
- the resulting constrained execution tree is translated into a language used by the trustee environment.
- the resulting execution tree can be executed (e.g., by traversing and executing the hierarchy of executable units of logic of the tree), and the results can be returned to the requesting data consumer.
- users can efficiently and effectively share data through a data trustee that allows them derive collaborative intelligence, while ensuring data privacy and providing configurable control and access to shared data.
- collaborative intelligence environment 100 is suitable for generation of collaborative intelligence, and, among other things, facilitates constraint computing and constraint querying.
- Collaborative intelligence environment 100 or a portion thereof e.g., data trustee environment 110
- Any or all of the components of collaborative intelligence environment 100 can be implemented as any kind of computing device, or some portion thereof.
- tenant devices 101 a through 101 n and data consumer devices 103 a through 103 n can each be a computing device such as computing device 1200 , as described below with reference to FIG. 12 .
- data trustee environment 110 may be implemented using one or more such computing devices.
- these devices can be any combination of a personal computer (PC), a laptop computer, a workstation, a server, a mobile computing device, a PDA, a cell phone, or the like.
- the components of collaborative intelligence environment 100 may communicate with each other via one or more networks, which may include, without limitation, one or more local area networks (LANs) and/or wide area networks (WANs).
- LANs local area networks
- WANs wide area networks
- Collaborative intelligence environment 100 includes data trustee environment 110 that is capable of deriving collaborative data and/or collaborate intelligence from raw data provided by data owners or providers (e.g., tenants) subject to configurable constraints, without sharing the raw data.
- data trustee environment 110 can input their data (e.g., datasets 105 a through 105 n ) into data trustee environment 110 and designate one or more constraints (e.g., from one of tenant devices 101 a through 101 n ).
- Data trustee environment 110 can derive collaborative data (e.g., collaborative datasets 107 a through 107 n , shielded collaborative dataset 160 ) based on the one or more constraints.
- any number of data consumers may issue queries on shielded collaborative dataset 160 , and data trustee environment 110 may derive collaborative intelligence from shielded collaborative dataset 160 , subject to the one or more constraints.
- an authorized data consumer e.g., which may be defined by one or more of the constraints
- an authorized data consumer may be the same person or entity that owns or provided raw data (e.g., one or more of datasets 105 a through 105 n ) or owns the derived collaborative data (e.g., shielded collaborative dataset 160 ).
- an authorized data consumer may be some other person or entity.
- data trustee environment 110 includes constraint manager 115 .
- tenants that seek to share data can provide one or more desired computations and constraints (which may be embodied in a contractual agreement) to constraint manager 115 through a user interface of data trustee environment 110 .
- the user interface can enable tenants to specify the desired computations and constraints that will control the use of their data in data trustee environment 110 , including eligible data sources (e.g., one or more of datasets 105 a through 105 n ) and how their data may be processed or shared.
- Various types of constraints may be implemented, including data access constraints, data processing constraints, data aggregation constraints, data sanitation constraints, some combination thereof, or others.
- the specified computations and constraints, and other features of a tenant agreement may be stored in a contact database (not depicted) accessible to constraint manager 115 .
- data trustee environment 110 includes data privacy pipeline 120 .
- data privacy pipeline 120 can accept data from one or more specified sources (e.g., one or more of datasets 105 a through 105 n ). The data can be ingested, fused, derived, and/or sanitized to generate collaborative data (e.g., one or more of collaborative datasets 107 a through 107 n , shielded collaborative dataset 160 ) based on one or more specified computations and/or constraints.
- the data privacy pipeline 120 can be provided as a distributed computing or cloud computing service (cloud service) implemented in data trustee environment 110 , and can be spun up and spun down as needed.
- tenants providing data into data privacy pipeline 120 cannot access the pipeline. Instead, the pipeline outputs collaborative data subject to applicable constraints.
- the collaborative data can be output from data trustee environment 110 as one or more of collaborate datasets 107 a through 107 n (e.g., because it has been sanitized according to specified constraints) and/or may be shielded (e.g., stored as shielded collaborative dataset 160 ) in data trustee environment 110 .
- collaborative dataset 160 can be queried to derive collaborative intelligence subject to the configurable constraints.
- data privacy pipeline 120 includes ingestion component 125 (which produces ingested data 130 ), constrained fusion component 135 (which produces fused joint data 140 ), constrained computation component 145 (which produces derived joint data 150 ), and sanitation component 155 (which produces collaborative datasets 107 a through 107 n and 160 ).
- ingestion component 125 can determine whether input data or some portion thereof, is joint data pursuant to a contract or other tenant agreement.
- input data or some portion thereof may be identified in some way, and ingestion component 125 can communicate with constraint manager 115 to confirm whether the identified data is joint data pursuant to a tenant agreement represented in the contract database.
- Data determined to be joint data can be stored as ingested data 130 , and data determined not to be joint data can be dropped.
- Ingested data can include data from multiple sources, so constrained fusion component 135 may fuse ingested data from multiple sources according to computations and constraints specified in a tenant agreement.
- constrained fusion component 135 can communicate with constraint manager 115 to obtain, validate, or request a specified fusion operation pursuant to a tenant agreement represented in the contract database.
- constrained fusion component 135 can implement one or more constraints to combine ingested data (e.g., ingested data 130 ) to form fused joint data (e.g., fused joint data 140 ) in any number of ways, including the use of one or more join operations (e.g., left, right, inner, outer, anti), custom joins (e.g., via imperative scripts), data appends, normalization operations, some combination thereof, and others.
- join operations e.g., left, right, inner, outer, anti
- custom joins e.g., via imperative scripts
- data appends e.g., via imperative scripts
- constrained computation component 145 can perform constrained computations (e.g., on ingested data 130 , fused joint data 140 ) to generate derived joint data (e.g., derived joint data 150 ).
- Constrained computing can involve any number of specified computations (e.g., arithmetic operations, aggregation, summarization, filtering, sorting, bounding).
- constrained computation component 145 can communicate with constraint manager 115 to obtain, validate, or request a specified computation pursuant to a tenant agreement represented in the contract database. By way of a simple example, a number of retailers may agree to expose average sales data, so a corresponding computation may involve averaging.
- a simple example of a constraint computation is a calculation of average age per city, where the computation is only to be performed for a city if the underlying dataset includes entries for at least five people in the city. These are meant simply as examples, and any type of computation and/or constraint can be implemented.
- sanitation component 155 can perform data sanitation (e.g., on derived joint data 150 ) to generate collaborative data (e.g., one or more of collaborative datasets 107 a through 107 n , shielded collaborative dataset 160 ) in a manner that implements constraints for storage, access, precision, and the like.
- sanitation component 155 can communicate with constraint manager 115 to obtain, validate, or request a specified sanitation operation pursuant to a tenant agreement represented in the contract database.
- sanitation component 155 can implement a constraint specified in a tenant agreement that designates whether collaborative data should be shielded (e.g., stored as shielded collaborative dataset 160 in data trustee environment 110 ), whether collaborative data can be exported (e.g., as one or more of collaborative datasets 107 a through 107 n ), whether exported collaborative data should be restricted (e.g., do not export email, credit card numbers, portions thereof), some combination thereof, and the like.
- any or all intermediate data used in arriving at collaborative data e.g., ingested data, fused joint data, derived joint data
- data privacy pipeline 120 can generate collaborative data from data provided by one or more tenants.
- constraint manager 115 can monitor and orchestrate the use and generation of collaborative data subject to one or more specified constraints. Additionally or alternatively, constraint manager 115 can monitor and orchestrate access to collaborative data subject to the constraints.
- constraint manager 115 can communicate with various components in data trustee environment 110 and/or data privacy pipeline 120 to implement specified computations and/or constraints, which may be maintained in a contract database accessible to constraint manager 115 .
- components can issue requests to constraint manager 115 for permission to execute a particular command, function call, or other executable unit of logic.
- Constraint manager 115 can evaluate the request and grant or deny permission. In some cases, permission may be granted subject to one or more conditions corresponding to one or more of the constraints.
- some possible conditions that can be implemented include requiring operations that shift, filter, or reshape data (e.g., application of comparison constraints such as only allowing a merge with certain precision), requiring substitution of one or more executable units of logic (e.g., commands or operations) with one or more constrained executable units of logic (e.g., replace average with constrained average), and the like.
- operations that shift, filter, or reshape data e.g., application of comparison constraints such as only allowing a merge with certain precision
- substitution of one or more executable units of logic e.g., commands or operations
- constrained executable units of logic e.g., replace average with constrained average
- a constraint can be checked, validated, or otherwise enforced at any time or step (e.g., in association with any component of data privacy pipeline 120 , data trustee environment 110 ). Accordingly, corresponding functionality enforcing a constraint can be applied at any step, or multiple steps. In some embodiments, enforcement of certain constraints can be allocated to certain components of data privacy pipeline 120 (e.g., data access constraints get applied by ingestion component 125 , processing and aggregation constraints get applied by constrained fusion component 135 and/or constrained computation component 145 , sanitation constraints get applied by sanitation component 155 ).
- a particular data access constraint (e.g., only pass data for patients who participated in at least five different studies) may be applied by constrained fusion component 135 .
- constrained fusion component 135 may be applied by constrained fusion component 135 .
- data trustee environment 110 includes constrained querying component 170 , which can apply constraint querying to allow data consumers (e.g., operating one of data consumer devices 103 a through 103 n ) to query collaborative data (e.g., shielded collaborative dataset 160 ) in data trustee environment 110 subject to one or more specified constraint.
- constrained querying component 170 can apply constraint querying to allow data consumers (e.g., operating one of data consumer devices 103 a through 103 n ) to query collaborative data (e.g., shielded collaborative dataset 160 ) in data trustee environment 110 subject to one or more specified constraint.
- constrained querying component 170 can operate as a search engine that allows data consumers to access or derive collaborative intelligence from shielded collaborative dataset 160 , without exposing raw data provided by a tenant (e.g., one or more of datasets 105 a through 105 n ), intermediate data used to generate the shielded collaborative dataset 160 (e.g., ingested data 10 , fused joint data 140 , derived joint data 150 ), and/or shielded collaborative dataset 160 .
- constrained querying component 170 can communicate with constraint manager 115 to obtain, validate, or request a specified operation pursuant to a tenant agreement represented in the contract database.
- Constrained querying component 170 can facilitate enforcement of constraints in response to a query in any number of ways, including reformatting a query prior to execution, applying constraints after executing a query, constraining eligible queries for execution (e.g., only permit a set of whitelisted queries), applying access constraints prior to execution, and others.
- FIG. 2 is a block diagram of an example constrained querying component 200 , in accordance with embodiments described herein.
- Constrained querying component 200 may correspond with constrained querying component 170 of FIG. 1 .
- constrained querying component 200 can operate as a search engine, enabling data consumers to query collaborative data and derive collaborative intelligence therefrom, subject to one or more constraints designated in a corresponding tenant agreement.
- queries are generally not executable code.
- the query In order to execute a query, the query is normally converted into an execution tree, which serves as the basis for an execution plan that is executable.
- constrained querying component 200 can enforce constraints, or facilitate the enforcement of constraints, by reformatting an execution tree corresponding to a received query to account for any applicable constraints prior to execution.
- a constraint may permit queries on compensation data, but the result has to be rounded.
- the query and/or its corresponding execution tree can be reformatted prior to execution, such that any returned search results account for applicable constraints.
- constrained querying component 200 includes access constraint component 220 , query parser 230 , constraint query formatter 240 , translation component 250 , and execution component 260 . This configuration is meant merely as an example, and other configurations with similar or different functionality may be implemented in accordance with the present disclosure.
- constrained querying component 200 may receive query 210 issued by a data consumer (e.g., operating one of data consumer devices 103 a through 103 n of FIG. 1 ) requesting collaborative intelligence based on collaborative data (e.g., shielded collaborative dataset 160 of FIG. 1 ).
- Query 210 may take any suitable form or query language, and may comprise one or more requested operations on collaborative data.
- query 210 may specify or otherwise be associated with runtime information, such as information identifying the requesting data consumer issuing the query, information identifying an applicable tenant agreement, information identifying target collaborative data on which to operate, and the like.
- access constraint component 220 can use the runtime information associated with query 210 to trigger a lookup and enforcement of an applicable data access constraint (e.g., via communication with constraint manager 115 of FIG. 1 ). For example, access constraint component 220 can validate query 210 against a corresponding constraint context comprising an applicable data access constraint and the runtime information associated with query 210 . Generally, in scenarios where a data consumer is not authorized to access a collaborative dataset, target collaborative data within a collaborative dataset (e.g., a particular row of data), a particular type of requested collaborative intelligence to be derived, access constraint component 220 can deny the request.
- target collaborative data within a collaborative dataset e.g., a particular row of data
- access constraint component 220 can deny the request.
- access constraint component 220 may return a notification to the issuing data consumer informing the data consumer that the requested query was denied. If the requested access is determined to be authorized and/or consistent with an applicable data access constraint, query 210 can be passed to query parser 230 .
- constraint query formatter 240 can reformat execution tree 235 into constrained execution tree 245 by traversing execution tree 235 and replacing executable units of logic inconsistent with a particular constraint with custom executable units of logic that are consistent with the constraint. Additionally or alternatively, constraint query formatter 240 can add or remove one or more executable units of logic to enforce constraints (e.g., precision constraints) on the output. Generally, constraint query formatter 240 can validate an executable unit of logic of execution tree 235 against a corresponding constraint context comprising an applicable constraint and the runtime information associated with query 210 .
- constraints e.g., precision constraints
- an executable unit of logic can be allowed (e.g., the executable unit of logic can be copied into constrained execution tree 245 ), an executable unit of logic can be disallowed (e.g., query 210 can be disallowed in its entirety), or an executable unit of logic can be allowed but with changes (e.g., copying a corresponding constrained executable unit of logic into constrained execution tree 245 ).
- an executable unit of logic can be allowed (e.g., the executable unit of logic can be copied into constrained execution tree 245 ), an executable unit of logic can be disallowed (e.g., query 210 can be disallowed in its entirety), or an executable unit of logic can be allowed but with changes (e.g., copying a corresponding constrained executable unit of logic into constrained execution tree 245 ).
- constraint query formatter 240 can evaluate each executable unit of logic against the constraints, add or remove executable units of logic, and/or replace one or more executable units of logic inconsistent with a constraint with a custom executable unit of logic that incorporates and/or applies the constraint.
- Mappings between executable units of logic and custom executable units of logic and/or executable units of logic corresponding to one or more constraints can be retrieved, accessed, and/or maintained in any suitable manner (e.g., stored locally, accessed via communication with constraint manager 115 of FIG. 1 , some combination thereof, or otherwise).
- Mappings can be one-to-one, one-to-many, or many-to-one.
- a received query may not be in the same query language used by the target collaborative dataset (e.g., shielded collaborative dataset 160 of FIG. 1 ).
- translation component 250 can translate constrained execution tree 245 from a first query language to a second query language. That is, translation component can translate constrained execution tree 245 into translated constrained execution tree 255 .
- Any suitable query language may be implemented (e.g., SQL, SparkQL, Kusto Query Language, C# Linq).
- constrained execution tree 245 and/or translated constrained execution tree 255 can be executed to test for failure, and a failure may result in rejection of a particular execution, a set of executable units of logic, the entire query 210 , or otherwise.
- FIG. 3A illustrates an example of a corresponding query 310 in Structured Query Language (SQL). This query language is meant merely as an example, and any suitable query structure may be implemented.
- SQL Structured Query Language
- Query 310 may be parsed and converted into a corresponding execution tree (e.g., by query parser 230 of FIG. 2 ).
- FIG. 3B illustrates a simplified representation of an example execution tree 320 that corresponds with query 310 of FIG. 3A .
- each executable unit of logic receives data from a previous executable unit of logic and one or more parameters for transforming the data.
- execution tree 320 data gets passed along the left branch of execution tree 320 , from the bottom to the top.
- each executable unit of logic applies one or more associated commands or operations.
- execution tree 320 comprises a hierarchical arrangement of executable units of logic that, if executed, would implement query 310 .
- execution tree 320 can be converted into constrained execution tree 410 of FIG. 4A (e.g., by constraint query formatter 240 of FIG. 2 ). Differences between execution tree 320 of FIG. 3B and constrained execution tree 410 of FIG. 4A are illustrated with boxes drawn around the different elements.
- constrained execution tree 410 includes a rounding operation 415 that implements the constraint described above in which numeric results must be rounded to the nearest two digits.
- constrained execution tree 410 includes a filtering operation 425 that implements the constraint described above in which aggregations must include data for at least 20 unique customers. This configuration for constrained execution tree 410 is simply meant as an example, and any suitable configuration may be implemented.
- FIG. 4A e.g., by constraint query formatter 240 of FIG. 2 .
- Constrained execution tree 410 can be executed by traversing and executing the hierarchy of executable units of logic of the tree along the left branch, from bottom to top, as will be appreciated by those of ordinary skill in the art. As such, constrained execution tree 410 can be executed to derive collaborative intelligence, and the collaborative intelligence can be returned to a requesting data consumer.
- FIGS. 5-10 flow diagrams are provided illustrating various methods relating to generation of collaborative intelligence.
- the methods can be performed using the collaborative intelligence environment described herein.
- one or more computer storage media having computer-executable instructions embodied thereon can, when executed by one or more processors, cause the one or more processors to perform the methods in the autonomous upgrade system.
- FIG. 5 a flow diagram is provided that illustrates a method 500 for generating collaborative data.
- data from a plurality of input datasets provided by the plurality of tenants is ingested, based on a tenant agreement among a plurality of tenants, to generate a plurality of sets of ingested data.
- the plurality of sets of ingested data are fused, based on the tenant agreement, to generate fused joint data.
- at least one constrained computation is performed on the fused joint data, based on the tenant agreement, to generate derived joint data.
- at least one sanitation operation is performed on the derived joint data, based on the tenant agreement, to generate collaborative data.
- the collaborative data comprises an exposable portion derived from the input datasets that is allowed to be shared and a restricted portion derived from the input datasets that is not allowed to be shared.
- FIG. 6 a flow diagram is provided that illustrates a method 600 for generating collaborative data.
- a plurality of sets of data are fused, based on at least one specified computation or constraint, to generate fused joint data.
- at block 620 at least one constrained computation is performed on the fused joint data, based on the at least one specified computation or constraint, to generate derived joint data.
- at block 630 at least one sanitation operation is performed on the derived joint data, based on the at least one specified computation or constraint, to generate the collaborative data.
- the collaborative data comprises an exposable portion derived from the plurality of sets of data that is allowed to be shared and a restricted portion derived from the plurality of sets of data that is not allowed to be shared.
- access to the exposable portion of the collaborative data is provided based on the at least one specified computation or constraint.
- FIG. 7 a flow diagram is provided that illustrates a method 700 for providing constrained computations for collaborative data in a data trustee environment.
- a request is received for permission to execute a requested executable unit of logic associated with generation of collaborative data in a data trustee environment from a plurality of input datasets provided by a plurality of tenants.
- at least one constraint associated with the collaborative data is accessed in response to receiving the request.
- the generation of the collaborative data is enabled by resolving the request based on the at least one constraint.
- the collaborative data includes an exposable portion that is allowed to be shared and a restricted portion that is not allowed to be shared.
- the data trustee environment is configured to provide the plurality of tenants access to the exposable portion of the collaborative data without exposing the restricted portion.
- FIG. 8 a flow diagram is provided that illustrates a method 800 for providing constrained access to collaborative data in a data trustee environment.
- a request is received for permission to execute a requested executable unit of logic associated with access to the collaborative data.
- the collaborative data is based on a plurality of input datasets provided by a plurality of tenants.
- the collaborative data includes an exposable portion that is derived from the plurality of input datasets and is allowed to be shared.
- the collaborative data includes a restricted portion that is derived from the plurality of input datasets and is not allowed to be shared.
- at least one constraint associated with the collaborative data is accessed in response to receiving the request.
- the access to the collaborative data is enabled by resolving the request based on the at least one constraint.
- a flow diagram is provided that illustrates a method 900 for constraint querying.
- a query to generate collaborative intelligence from shielded collaborative data is received from a data consumer.
- the shielded collaborative data is generated from a plurality of input datasets provided by the plurality of tenants.
- the shielded collaborative data includes an exposable portion that is allowed to be shared and a restricted portion that is not allowed to be shared.
- a request for permission to execute at least one executable unit of logic corresponding to the query is issued.
- a response is received resolving the request based on one or more constraints specified in a tenant agreement among the plurality of tenants.
- collaborative intelligence is generated from the shielded collaborative data based on the query and the response resolving the request.
- a flow diagram is provided that illustrates a method 1000 for constrained querying.
- a query on shielded collaborative data stored in a data trustee environment is received from a data consumer.
- the shielded collaborative data is generated from a plurality of input datasets provided by a plurality of tenants.
- the shielded collaborative data includes an exposable portion derived from the plurality of input datasets and allowed to be shared and a restricted portion derived from the plurality of input datasets and not allowed to be shared.
- the query is parsed into an execution tree.
- a constrained execution tree is generated based on the execution tree and one or more constraints specified in a tenant agreement among the plurality of tenants.
- collaborative intelligence is generated from the shielded collaborative data based on the constrained execution tree.
- FIG. 11 illustrates an example distributed computing environment 1100 in which implementations of the present disclosure may be employed.
- FIG. 11 shows a high level architecture of an example cloud computing platform 1110 that can host a collaborative intelligence environment, or a portion thereof (e.g., a data trustee environment).
- a collaborative intelligence environment e.g., a data trustee environment.
- FIG. 11 shows a high level architecture of an example cloud computing platform 1110 that can host a collaborative intelligence environment, or a portion thereof (e.g., a data trustee environment).
- a collaborative intelligence environment e.g., a data trustee environment
- FIG. 11 shows a high level architecture of an example cloud computing platform 1110 that can host a collaborative intelligence environment, or a portion thereof (e.g., a data trustee environment).
- this and other arrangements described herein are set forth only as examples.
- many of the elements described herein may be implemented as discrete or distributed components or in conjunction with other components, and in any suitable combination and location.
- Other arrangements and elements e.
- Data centers can support distributed computing environment 1100 that includes cloud computing platform 1110 , rack 1120 , and node 1130 (e.g., computing devices, processing units, or blades) in rack 1120 .
- the collaborative intelligence environment and/or data trustee environment can be implemented with cloud computing platform 1110 that runs cloud services across different data centers and geographic regions.
- Cloud computing platform 1110 can implement fabric controller 1140 component for provisioning and managing resource allocation, deployment, upgrade, and management of cloud services.
- cloud computing platform 1110 acts to store data or run service applications in a distributed manner.
- Cloud computing infrastructure 1110 in a data center can be configured to host and support operation of endpoints of a particular service application.
- Cloud computing infrastructure 1110 may be a public cloud, a private cloud, or a dedicated cloud.
- Node 1130 can be provisioned with host 1150 (e.g., operating system or runtime environment) running a defined software stack on node 1130 .
- Node 1130 can also be configured to perform specialized functionality (e.g., compute nodes or storage nodes) within cloud computing platform 1110 .
- Node 1130 is allocated to run one or more portions of a service application of a tenant.
- a tenant can refer to a customer utilizing resources of cloud computing platform 1110 .
- Service application components of cloud computing platform 1110 that support a particular tenant can be referred to as a tenant infrastructure or tenancy.
- the terms service application, application, or service are used interchangeably herein and broadly refer to any software, or portions of software, that run on top of, or access storage and compute device locations within, a datacenter.
- nodes 1130 may be partitioned into virtual machines (e.g., virtual machine 1152 and virtual machine 1154 ). Physical machines can also concurrently run separate service applications.
- the virtual machines or physical machines can be configured as individualized computing environments that are supported by resources 1160 (e.g., hardware resources and software resources) in cloud computing platform 1110 . It is contemplated that resources can be configured for specific service applications.
- each service application may be divided into functional portions such that each functional portion is able to run on a separate virtual machine.
- cloud computing platform 1110 multiple servers may be used to run service applications and perform data storage operations in a cluster. In particular, the servers may perform data operations independently but exposed as a single device referred to as a cluster. Each server in the cluster can be implemented as a node.
- Client device 1180 may be linked to a service application in cloud computing platform 1110 .
- Client device 1180 may be any type of computing device, which may correspond to computing device 1100 described with reference to FIG. 11 , for example.
- Client device 1180 can be configured to issue commands to cloud computing platform 1110 .
- client device 1180 may communicate with service applications through a virtual Internet Protocol (IP) and load balancer or other means that direct communication requests to designated endpoints in cloud computing platform 1110 .
- IP Internet Protocol
- the components of cloud computing platform 1110 may communicate with each other over a network (not shown), which may include, without limitation, one or more local area networks (LANs) and/or wide area networks (WANs).
- LANs local area networks
- WANs wide area networks
- computing device 1200 an example operating environment in which embodiments of the present invention may be implemented is described below in order to provide a general context for various aspects of the present invention.
- FIG. 12 an example operating environment for implementing embodiments of the present invention is shown and designated generally as computing device 1200 .
- Computing device 1200 is but one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should computing device 1200 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated.
- the invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device.
- program modules including routines, programs, objects, components, data structures, etc. refer to code that perform particular tasks or implement particular abstract data types.
- the invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialty computing devices, etc.
- the invention may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.
- computing device 1200 includes bus 1210 that directly or indirectly couples the following devices: memory 1212 , one or more processors 1214 , one or more presentation components 1216 , input/output ports 1218 , input/output components 1220 , and illustrative power supply 1222 .
- Bus 1210 represents what may be one or more buses (such as an address bus, data bus, or combination thereof).
- the various blocks of FIG. 12 are shown with lines for the sake of conceptual clarity, and other arrangements of the described components and/or component functionality are also contemplated. For example, one may consider a presentation component such as a display device to be an I/O component. Also, processors have memory. We recognize that such is the nature of the art, and reiterate that the diagram of FIG.
- FIG. 12 is merely illustrative of an example computing device that can be used in connection with one or more embodiments of the present invention. Distinction is not made between such categories as “workstation,” “server,” “laptop,” “hand-held device,” etc., as all are contemplated within the scope of FIG. 12 and reference to “computing device.”
- Computing device 1200 typically includes a variety of computer-readable media.
- Computer-readable media can be any available media that can be accessed by computing device 1200 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer-readable media may comprise computer storage media and communication media.
- Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 1200 .
- Computer storage media excludes signals per se.
- Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
- Memory 1212 includes computer storage media in the form of volatile and/or nonvolatile memory.
- the memory may be removable, non-removable, or a combination thereof.
- Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc.
- Computing device 1200 includes one or more processors that read data from various entities such as memory 612 or I/O components 1220 .
- Presentation component(s) 1216 present data indications to a user or other device.
- Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.
- I/O ports 1218 allow computing device 1200 to be logically coupled to other devices including I/O components 1220 , some of which may be built in.
- I/O components 1220 include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.
- inventions described herein support constraint computing and/or constraint querying.
- the components of the collaborative intelligence environment can be integrated components that include a hardware architecture and a software framework that support constraint computing and/or constraint querying functionality within a collaborative intelligence system.
- the hardware architecture refers to physical components and interrelationships thereof
- the software framework refers to software providing functionality that can be implemented with hardware embodied on a device.
- the end-to-end software-based system can operate within the system components to operate computer hardware to provide system functionality.
- hardware processors execute instructions selected from a machine language (also referred to as machine code or native) instruction set for a given processor.
- the processor recognizes the native instructions and performs corresponding low level functions relating, for example, to logic, control and memory operations.
- Low level software written in machine code can provide more complex functionality to higher levels of software.
- computer-executable instructions includes any software, including low level software written in machine code, higher level software such as application software and any combination thereof.
- the system components can manage resources and provide services for system functionality. Any other variations and combinations thereof are contemplated with embodiments of the present invention.
- the collaborative intelligence system can include an API library that includes specifications for routines, data structures, object classes, and variables may support the interaction between the hardware architecture of the device and the software framework of the collaborative intelligence system.
- These APIs include configuration specifications for the collaborative intelligence system such that the different components therein can communicate with each other in the collaborative intelligence system, as described herein.
- Embodiments described in the paragraphs below may be combined with one or more of the specifically described alternatives.
- an embodiment that is claimed may contain a reference, in the alternative, to more than one other embodiment.
- the embodiment that is claimed may specify a further limitation of the subject matter claimed.
- the word “including” has the same broad meaning as the word “comprising,” and the word “accessing” comprises “receiving,” “referencing,” or “retrieving.” Further the word “communicating” has the same broad meaning as the word “receiving,” or “transmitting” facilitated by software or hardware-based buses, receivers, or transmitters using communication media described herein.
- words such as “a” and “an,” unless otherwise indicated to the contrary include the plural as well as the singular. Thus, for example, the constraint of “a feature” is satisfied where one or more features are present.
- the term “or” includes the conjunctive, the disjunctive, and both (a or b thus includes either a or b, as well as a and b).
- embodiments of the present invention are described with reference to a distributed computing environment; however the distributed computing environment depicted herein is merely exemplary. Components can be configured for performing novel aspects of embodiments, where the term “configured for” can refer to “programmed to” perform particular tasks or implement particular abstract data types using code. Further, while embodiments of the present invention may generally refer to the collaborative intelligence environment and the schematics described herein, it is understood that the techniques described may be extended to other implementation contexts.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (20)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/388,700 US11403299B2 (en) | 2019-04-18 | 2019-04-18 | Constraint manager for collaborative intelligence and constraint computing |
EP20719528.0A EP3956795A1 (en) | 2019-04-18 | 2020-03-18 | Constraint manager for collaborative intelligence and constraint computing |
CN202080029070.3A CN113711219B (en) | 2019-04-18 | 2020-03-18 | Constraint manager for collaborative intelligence and constraint computing |
PCT/US2020/023234 WO2020214313A1 (en) | 2019-04-18 | 2020-03-18 | Constraint manager for collaborative intelligence and constraint computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/388,700 US11403299B2 (en) | 2019-04-18 | 2019-04-18 | Constraint manager for collaborative intelligence and constraint computing |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200334259A1 US20200334259A1 (en) | 2020-10-22 |
US11403299B2 true US11403299B2 (en) | 2022-08-02 |
Family
ID=70289848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/388,700 Active US11403299B2 (en) | 2019-04-18 | 2019-04-18 | Constraint manager for collaborative intelligence and constraint computing |
Country Status (4)
Country | Link |
---|---|
US (1) | US11403299B2 (en) |
EP (1) | EP3956795A1 (en) |
CN (1) | CN113711219B (en) |
WO (1) | WO2020214313A1 (en) |
Families Citing this family (11)
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 |
US11409897B2 (en) | 2019-04-18 | 2022-08-09 | Microsoft Technology Licensing, Llc | Constraint querying 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 |
US12210532B2 (en) * | 2020-07-09 | 2025-01-28 | Fidelity Information Services, Llc | Multi-tenancy data analytics platform |
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 |
US11809445B2 (en) * | 2021-08-31 | 2023-11-07 | Sap Se | Cross LoB blending handling along with permissions |
US12182004B2 (en) | 2022-03-01 | 2024-12-31 | Microsoft Technology Licensing, Llc | Debugging data privacy pipelines using sample data |
US20230281342A1 (en) * | 2022-03-01 | 2023-09-07 | Microsoft Technology Licensing, Llc | Granting entitlements to log data generated by a data privacy pipeline to facilitate debugging |
US11922145B2 (en) | 2022-03-01 | 2024-03-05 | Microsoft Technology Licensing, Llc | Initiating data privacy pipelines using reusable templates |
Citations (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083217A1 (en) | 2002-10-25 | 2004-04-29 | Cameron Brackett | Method, system, and computer product for collecting and distributing clinical data for data mining |
US20040111639A1 (en) | 2000-02-14 | 2004-06-10 | Schwartz Michael I. | Information aggregation, processing and distribution system |
US20060080554A1 (en) | 2004-10-09 | 2006-04-13 | 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 |
US20070073695A1 (en) | 2005-09-27 | 2007-03-29 | Microsoft Corporation | Server side filtering and sorting with field level security |
US20070130616A1 (en) | 2005-12-06 | 2007-06-07 | Oracle International Corporation | Dynamic constraints for query operations |
US20090282045A1 (en) | 2008-05-09 | 2009-11-12 | Business Objects, S.A. | Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy |
US20120143922A1 (en) | 2010-12-03 | 2012-06-07 | Shantanu Rane | Differentially private aggregate classifier for multiple databases |
US20130007835A1 (en) | 2011-06-30 | 2013-01-03 | International Business Machines Corporation | Method and apparatus for specifying time-varying intelligent service-oriented model |
US8478722B2 (en) | 2009-11-12 | 2013-07-02 | Salesforce.Com, Inc. | Enterprise level business information networking for changes in a database |
US20130239228A1 (en) | 2008-11-03 | 2013-09-12 | 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 |
US20130276134A1 (en) | 2012-04-13 | 2013-10-17 | At&T Mobility Ii Llc | Event driven permissive sharing of information |
US20140173720A1 (en) | 2012-12-19 | 2014-06-19 | 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 |
US9195850B2 (en) * | 2010-03-01 | 2015-11-24 | 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 |
US20150379082A1 (en) * | 2014-06-25 | 2015-12-31 | International Business Machines Corporation | Supporting imperative graphic queries on a relational database |
US20160132686A1 (en) * | 2014-11-10 | 2016-05-12 | Yang Peng | Permission control |
US20160132553A1 (en) * | 2014-11-12 | 2016-05-12 | Samsung Electronics Co., Ltd. | Apparatus and method for processing query |
US9703834B2 (en) | 2012-03-21 | 2017-07-11 | Hewlett Packard Enterprise Development Lp | Topological query in multi-tenancy environment |
US20170235645A1 (en) | 2013-12-20 | 2017-08-17 | 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 |
US20170364553A1 (en) | 2016-06-19 | 2017-12-21 | data.world | Query generation for collaborative datasets |
US20180032576A1 (en) | 2016-07-26 | 2018-02-01 | Salesforce.Com, Inc. | Natural language platform for database system |
US20180053012A1 (en) * | 2015-02-24 | 2018-02-22 | Brightsquid Dental Ltd. | System and method for enabling a multi-location data storage and retrieval system |
US20180060603A1 (en) * | 2016-08-31 | 2018-03-01 | Oracle International Corporation | Fine-grained access control for data manipulation language (dml) operations on relational data |
US20180210936A1 (en) | 2016-06-19 | 2018-07-26 | Data.World, Inc. | Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets |
US20180225630A1 (en) | 2017-02-09 | 2018-08-09 | Jill Creager | Data Processing System and Method for Managing Enterprise Information |
US20180322168A1 (en) * | 2017-05-04 | 2018-11-08 | Salesforce.Com, Inc. | Technologies for asynchronous querying |
US20180349384A1 (en) | 2015-11-02 | 2018-12-06 | LeapYear Technologies, Inc. | Differentially private database queries involving rank statistics |
EP3477527A1 (en) | 2017-10-31 | 2019-05-01 | Twinpeek | Privacy management |
US20190147085A1 (en) * | 2016-09-26 | 2019-05-16 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US20190207974A1 (en) * | 2017-12-29 | 2019-07-04 | Cyphort Inc. | System for query injection detection using abstract syntax trees |
US20190213346A1 (en) | 2018-01-09 | 2019-07-11 | Randy Friedman | System and method of decentralized services to make federated raw data sets self-governing for secure sharing and commingling |
US20190236598A1 (en) * | 2018-01-31 | 2019-08-01 | 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 |
US10642832B1 (en) | 2016-11-06 | 2020-05-05 | Tableau Software, Inc. | Reducing the domain of a subquery by retrieving constraints from the outer query |
US20200250334A1 (en) * | 2019-01-31 | 2020-08-06 | Hewlett Packard Enterprise Development Lp | Operating system service sanitization of data associated with sensitive information |
US20200334377A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | User interface for building a data privacy pipeline and contractual agreement to share data |
US20200334370A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | Data privacy pipeline providing collaborative intelligence and constraint computing |
US20200334375A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | Constraint querying for collaborative intelligence and constraint computing |
US20200336488A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | Multi-participant and cross-environment pipelines |
US10834087B1 (en) | 2017-06-01 | 2020-11-10 | State Farm Mutual Automobile Insurance Company | Data security systems and methods |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9560036B2 (en) * | 2010-07-08 | 2017-01-31 | International Business Machines Corporation | Cross-protocol federated single sign-on (F-SSO) for cloud enablement |
CN104050201B (en) * | 2013-03-15 | 2018-04-13 | 伊姆西公司 | Method and apparatus for the data management in multi-tenant distributed environment |
US20190058709A1 (en) * | 2017-08-16 | 2019-02-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Tenant management method and system in a cloud computing environment |
-
2019
- 2019-04-18 US US16/388,700 patent/US11403299B2/en active Active
-
2020
- 2020-03-18 WO PCT/US2020/023234 patent/WO2020214313A1/en active Application Filing
- 2020-03-18 EP EP20719528.0A patent/EP3956795A1/en active Pending
- 2020-03-18 CN CN202080029070.3A patent/CN113711219B/en active Active
Patent Citations (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111639A1 (en) | 2000-02-14 | 2004-06-10 | Schwartz Michael I. | Information aggregation, processing and distribution system |
US20040083217A1 (en) | 2002-10-25 | 2004-04-29 | Cameron Brackett | Method, system, and computer product for collecting and distributing clinical data for data mining |
US20060080554A1 (en) | 2004-10-09 | 2006-04-13 | 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 |
US20070073695A1 (en) | 2005-09-27 | 2007-03-29 | Microsoft Corporation | Server side filtering and sorting with field level security |
US20070130616A1 (en) | 2005-12-06 | 2007-06-07 | Oracle International Corporation | Dynamic constraints for query operations |
US20090282045A1 (en) | 2008-05-09 | 2009-11-12 | Business Objects, S.A. | Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy |
US20130239228A1 (en) | 2008-11-03 | 2013-09-12 | 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 |
US8478722B2 (en) | 2009-11-12 | 2013-07-02 | Salesforce.Com, Inc. | Enterprise level business information networking for changes in a database |
US9195850B2 (en) * | 2010-03-01 | 2015-11-24 | 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 |
US20120143922A1 (en) | 2010-12-03 | 2012-06-07 | Shantanu Rane | Differentially private aggregate classifier for multiple databases |
US20130007835A1 (en) | 2011-06-30 | 2013-01-03 | 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 |
US20130276134A1 (en) | 2012-04-13 | 2013-10-17 | At&T Mobility Ii Llc | Event driven permissive sharing of information |
US20140173720A1 (en) | 2012-12-19 | 2014-06-19 | 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 |
US20170235645A1 (en) | 2013-12-20 | 2017-08-17 | 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 |
US20150379082A1 (en) * | 2014-06-25 | 2015-12-31 | International Business Machines Corporation | Supporting imperative graphic queries on a relational database |
US20160132686A1 (en) * | 2014-11-10 | 2016-05-12 | Yang Peng | Permission control |
US20160132553A1 (en) * | 2014-11-12 | 2016-05-12 | Samsung Electronics Co., Ltd. | Apparatus and method for processing query |
US20180053012A1 (en) * | 2015-02-24 | 2018-02-22 | Brightsquid Dental Ltd. | System and method for enabling a multi-location data storage and retrieval system |
US20180349384A1 (en) | 2015-11-02 | 2018-12-06 | LeapYear Technologies, Inc. | Differentially private database queries involving rank statistics |
US20180210936A1 (en) | 2016-06-19 | 2018-07-26 | Data.World, Inc. | Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets |
US20170364553A1 (en) | 2016-06-19 | 2017-12-21 | data.world | Query generation for collaborative datasets |
US20180032576A1 (en) | 2016-07-26 | 2018-02-01 | Salesforce.Com, Inc. | Natural language platform for database system |
US20180060603A1 (en) * | 2016-08-31 | 2018-03-01 | Oracle International Corporation | Fine-grained access control for data manipulation language (dml) operations on relational data |
US20190147085A1 (en) * | 2016-09-26 | 2019-05-16 | 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 |
US20180225630A1 (en) | 2017-02-09 | 2018-08-09 | Jill Creager | Data Processing System and Method for Managing Enterprise Information |
US20180322168A1 (en) * | 2017-05-04 | 2018-11-08 | Salesforce.Com, 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 |
US20190207974A1 (en) * | 2017-12-29 | 2019-07-04 | Cyphort Inc. | System for query injection detection using abstract syntax trees |
US20190213346A1 (en) | 2018-01-09 | 2019-07-11 | Randy Friedman | System and method of decentralized services to make federated raw data sets self-governing for secure sharing and commingling |
US20190236598A1 (en) * | 2018-01-31 | 2019-08-01 | 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 |
US20200250334A1 (en) * | 2019-01-31 | 2020-08-06 | Hewlett Packard Enterprise Development Lp | Operating system service sanitization of data associated with sensitive information |
US20200334377A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | User interface for building a data privacy pipeline and contractual agreement to share data |
US20200334370A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | Data privacy pipeline providing collaborative intelligence and constraint computing |
US20200334375A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | Constraint querying for collaborative intelligence and constraint computing |
US20200336488A1 (en) | 2019-04-18 | 2020-10-22 | Microsoft Technology Licensing, Llc | Multi-participant and cross-environment pipelines |
Non-Patent Citations (52)
Title |
---|
"Advisory Office Action Issued in U.S. Appl. No. 16/388,696", dated Jul. 15, 2021, 4 Pages. |
"Final Office Action Issued in U.S. Appl. No. 16/388,696", dated Feb. 28, 2022, 21 Pages. |
"Final Office Action Issued in U.S. Appl. No. 16/388,696", dated May 3, 2021, 22 Pages. |
"Final Office Action Issued in U.S. Appl. No. 16/388,703", dated May 25, 2021, 24 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US20/024331", dated Jun. 15, 2020, 15 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US2020/023037", dated May 29, 2020, 17 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US2020/023043", dated May 15, 2020, 14 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US2020/023234", dated Jun. 8, 2020, 12 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US2020/026488", dated Jun. 16, 2020, 15 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US21/037147", dated Sep. 24, 2021, 10 Pages. |
"International Search Report and Written Opinion Issued in PCT Application No. PCT/US21/037152", dated Sep. 24, 2021, 10 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/388,696", dated Aug. 20, 2021, 21 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/388,696", dated Oct. 30, 2020, 23 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/388,703", dated Dec. 11, 2020, 25 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/665,916", dated May 14, 2021, 22 Pages. |
"Non Final Office Action Issued in U.S. Appl. No. 16/736,399", dated Jun. 11, 2021, 21 Pages. |
"Non Final Office Action Issued In U.S. Appl. No. 17/009,414", dated Oct. 13, 2021, 14 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/388,696", dated May 23, 2022, 10 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/388,703", dated Mar. 16, 2022, 10 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/388,703", dated Nov. 2, 2021, 10 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/665,916", dated Mar. 23, 2022, 10 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/665,916", dated Nov. 29, 2021, 11 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/736,399", dated Mar. 30, 2022, 6 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 16/736,399", dated Sep. 24, 2021, 9 Pages. |
"Notice of Allowance Issued in U.S. Appl. No. 17/009,414", dated Feb. 15, 2022, 10 Pages. |
Fan, Wenfei, "Data Quality: From Theory to Practice", In Journal of ACM SIGMOD Record, vol. 44, Issue 3, Sep. 2015, pp. 7-18. |
Krishna,"Live Data Analytics With Collaborative Edge and Cloud Processing in Wireless IoT Networks", Jan. 31, 2017, IEEE, pp. 4621-4635 (Year: 2017). * |
Montori et al., "A Collaborative Internet of Things Architecture for Smart Cities and Environmental Monitoring", In Internet of Things Journal, vol. 5, Issue 2, Apr., 2018, pp. 592-605. |
Papernot, et al., "SoK: Security and Privacy in Machine Learning", In IEEE European Symposium on Security and Privacy, Apr. 24, 2018, pp. 399-414. |
U.S. Appl. No. 11/361,106, filed Jul. 14, 2022. |
U.S. Appl. No. 16/388,696 | US-2020-0334370-A1 filed Apr. 18, 2019 | published Oct. 22, 2020. |
U.S. Appl. No. 16/388,700 | US-2020-0334259-A1, filed Apr. 18, 2019 | published Oct. 22, 2022. |
U.S. Appl. No. 16/388,703 | US-2020-0334375-A1 filed Apr. 18, 2019 | published Oct. 22, 2022. |
U.S. Appl. No. 16/665,916 | US-2020-00334377-A1, filed Oct. 28, 2019, published Oct. 22, 2022. |
U.S. Appl. No. 16/665,916 | US-2020-0334377-A1 filed Oct. 28, 2019 | published Oct. 22, 2022. |
U.S. Appl. No. 16/736,399 | US-2020-0336488-A1 filed Jan. 7, 2022, published Oct. 22, 2020. |
U.S. Appl. No. 16/739,399 | US-2020-0336488-A1 | U.S. Pat. No. 11,356,456 filed Jan. 7, 2022 | published Oct. 22, 2020 | issued Jun. 7, 2022. |
U.S. Appl. No. 17/009,407 | US 2022-0067199-A1 filed Sep. 1, 2020 | published Mar. 3, 2022. |
U.S. Appl. No. 17/009,414 | US-2022-0067200-A1 filed Sep. 1, 2020 | published Mar. 3, 2022. |
U.S. Appl. No. 17/656,006, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,051, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,057, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,062, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,066, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,073, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,079, filed Mar. 23, 2022. |
U.S. Appl. No. 17/656,082, filed Mar. 23, 2022. |
U.S. Appl. No. 17/684,189, filed Mar. 1, 2022. |
U.S. Appl. No. 17/684,204, filed Mar. 1, 2022. |
U.S. Appl. No. 17/684,210, filed Mar. 1, 2022. |
U.S. Appl. No. 17/743,341, filed May 12, 2022. |
Xiao, et al., "Security and Privacy in Cloud Computing", In Proceedings of IEEE Communications Surveys & Tutorials, vol. 15, Issue 2, First Quarter 2013, pp. 843-859. |
Also Published As
Publication number | Publication date |
---|---|
WO2020214313A1 (en) | 2020-10-22 |
US20200334259A1 (en) | 2020-10-22 |
CN113711219B (en) | 2024-11-29 |
CN113711219A (en) | 2021-11-26 |
EP3956795A1 (en) | 2022-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220398338A1 (en) | Data privacy pipeline providing collaborative intelligence and constraint computing | |
US11403299B2 (en) | Constraint manager for collaborative intelligence and constraint computing | |
US11409897B2 (en) | Constraint querying for collaborative intelligence and constraint computing | |
US11188791B2 (en) | Anonymizing data for preserving privacy during use for federated machine learning | |
US20220215119A1 (en) | Providing an input dataset into an input slot of a computational step of a data pipeline | |
US11356456B2 (en) | Multi-participant and cross-environment pipelines | |
US11954233B2 (en) | Chaining, triggering, and enforcing entitlements | |
US11775681B2 (en) | Enforcement flow for pipelines that include entitlements | |
JP7266354B2 (en) | Data anonymization | |
CA3056284A1 (en) | Integrated entity view across distributed systems | |
US20200201829A1 (en) | Systems and methods for compiling a database | |
US20250013782A1 (en) | Consent data pipeline architecture and operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TABER, YISROEL GERSHON;TURGEMAN, TOMER;ROZENBAUM, LEV;SIGNING DATES FROM 20190503 TO 20190505;REEL/FRAME:049170/0908 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
FEPP | Fee payment procedure |
Free format text: PETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PTGR); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: WITHDRAW FROM ISSUE AWAITING ACTION |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |