IP Library Granted Patent US 9,489,530
Granted Patent B2
US 9,489,530 · App. 13/299,304 · Granted Nov 8, 2016

Methods and apparatus for anonymising user data by aggregation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,489,530
App. No.
13/299,304
Granted
Nov 8, 2016
Kind
B2
Abstract

In one aspect of a method of anonymizing user data by aggregation, at least one server-side device receives an anonymous aggregation command from a user client device. The anonymous aggregation command includes a specification of a set of users and an action to be taken. A list of users who meet the specification in the anonymous aggregation command is generated. The list of users who meet the specification is validated as meeting at least one criterion for anonymous aggregation. The action in the anonymous aggregation command is triggered to be taken in respect of the validated list of users who meet the specification.

Claims (47)

1. A method of anonymising user data by aggregation, the method comprising at least one server-side device:

receiving, at the at least one server-side device, an anonymous aggregation command from a user client device, the anonymous aggregation command including a specification of a set of users, the specification relating to user behavior, the anonymous aggregation command further including an action to be taken in respect of at least some of the users who meet the specification;

generating an aggregated list of users who meet the specification in the anonymous aggregation command;

validating the aggregated list of users who meet the specification by determining if the aggregated list meets at least one criterion for anonymous aggregation; and

if the aggregated list is validated as meeting the at least one criterion, triggering the action in the anonymous aggregation command to be taken in respect of the validated aggregated list of users who meet the specification.

2. A method according to claim 1 , comprising:

storing, in an event index, event information relating to events that have taken place concerning a user.

3. A method according to claim 2 , wherein the generating an aggregated list of users comprises executing a query in the event index to retrieve the list of users who meet the specification in the anonymous aggregation command.

4. A method according to claim 1 , wherein event information relating to events is stored in plural event indexes, and the generating an aggregated list of users comprises executing queries in the plural event indexes to retrieve the list of users who meet the specification in the anonymous aggregation command.

5. A method according to claim 4 , wherein at least two of the event indexes are stored in a distributed manner in different nodes of a network.

6. A method according to claim 2 , comprising executing a query in the event index in respect of the user of the user client device in order to validate the specification in the anonymous aggregation command for that user.

7. A method according to claim 2 , comprising storing in the event index subject data concerning the subject matter of actions carried out by users.

8. A method according to claim 1 , wherein the generating an aggregated list of users comprises:

causing a query to be issued to retrieve event information relating to events that have taken place concerning a user.

9. A method according to claim 8 , comprising generating the aggregated list of users who meet the specification from responses received to the issued queries.

10. A method according to claim 8 , comprising causing a query to be issued to retrieve event information relating to the user of the user client device in order to validate the specification in the anonymous aggregation command for that user.

11. A method according to claim 1 , wherein the generating an aggregated list of users involves a list sharing method whereby lists of at least one of users, data and objects are stored in a distributed manner across a number of nodes of a network, and a list created by one node can be checked for common elements by another node without requiring that the other node can read the whole list.

12. A method according to claim 1 , wherein the action to be taken comprises creating an object addressed to each of the users in the validated list of users.

13. A method according to claim 1 , wherein the action to be taken comprises outputting an indication of the number of users in the validated list of users for receipt by the user client device that issued the anonymous aggregation command.

14. A method of triggering an action to be taken in respect of users whose data has been anonymised by aggregation, the method comprising a client-side device:

issuing an anonymous aggregation command for receipt by a server-side device, the anonymous aggregation command including:

a reference to the user on whose behalf the command is being issued; a specification of a set of users, the specification relating to user behavior; and an action to be taken by the server-side device in respect of users in an aggregated list of users who meet the specification and are validated as meeting at least one criterion for anonymous aggregation.

15. A method according to claim 14 , comprising receiving at the client-side device data from the server-side device in respect of a validated list of users who meet the specification.

16. Apparatus comprising one or more server-side devices for anonymizing user data by aggregation, the apparatus providing a processing system constructed and arranged to:

receive at at least one server-side device an anonymous aggregation command from a user client device, the anonymous aggregation command including a specification of a set of users, the specification relating to user behavior, the anonymous aggregation command further including an action to be taken in respect of at least some of the users who meet the specification;

generate an aggregated list of users who meet the specification in the anonymous aggregation command;

validate the aggregated list of users who meet the specification by determining if the aggregated list meets at least one criterion for anonymous aggregation; and

if the aggregated list is validated as meeting the at least one criterion, trigger the action in the anonymous aggregation command to be taken in respect of the validated aggregated list of users who meet the specification.

17. Apparatus according to claim 16 , the processing system being constructed and arranged to:

store, in an event index, event information relating to events that have taken place concerning a user.

18. Apparatus according to claim 17 , the processing system being constructed and arranged to execute a query in the event index to retrieve the list of users who meet the specification in the anonymous aggregation command.

19. Apparatus according to claim 18 , wherein event information relating to events is stored in plural event indexes, the processing system being constructed and arranged to:

generate an aggregated list of users by executing queries in the plural event indexes to retrieve

the list of users who meet the specification in the anonymous aggregation command.

20. Apparatus according to claim 17 , the processing system being constructed and arranged to execute a query in the event index in respect of the user of the user client device in order to validate the specification in the anonymous aggregation command for that user.

21. Apparatus according to claim 17 , the processing system being constructed and arranged to store in the event index subject data concerning the subject matter of actions carried out by users.

22. Apparatus according to claim 16 , the processing system being constructed and arranged to cause a query to be issued to retrieve event information relating to events that have taken place concerning a user.

23. Apparatus according to claim 22 , the processing system being constructed and arranged to generate the aggregated list of users who meet the specification from responses received to the issued queries.

24. Apparatus according to claim 22 , the processing system being constructed and arranged to cause a query to be issued to retrieve event information relating to the user of the user client device in order to validate the specification in the anonymous aggregation command for that user.

25. Apparatus according to claim 16 , the processing system being constructed and arranged such that the generating an aggregated list of users involves a list sharing method whereby lists of at least one of users, data and objects are stored in a distributed manner across a number of nodes of a network, and a list created by one node can be checked for common elements by another node without requiring that the other node can read the whole list.

26. Apparatus according to claim 16 , the processing system being constructed and arranged to creating an object addressed to each of the users in the validated list of users.

27. Apparatus according to claim 16 , the processing system being constructed and arranged to output an indication of the number of users in the validated list of users for receipt by the user client device that issued the anonymous aggregation command.

28. A client-side device for triggering an action to be taken in respect of users whose data has been anonymised by aggregation, the device comprising a processing system constructed and arranged to:

issue an anonymous aggregation command for receipt by a server-side device, the anonymous aggregation command including: a reference to the user on whose behalf the command is being issued; a specification of a set of users, the specification relating to user behavior; and an action to be taken by the server-side device in respect of users in an aggregated list of users who meet the specification and are validated as meeting at least one criterion for anonymous aggregation.

29. A client-side device according to claim 28 , the processing system being constructed and arranged to carry out an action in respect of data concerning a validated aggregated list of users who meet the specification received from the server-side device.

30. A non-transitory computer-readable storage medium comprising a set of computer-readable instructions stored thereon, which, when executed by a processing system, cause the processing system to carry out a method according to claim 1 .

31. A non-transitory computer-readable storage medium comprising a set of computer-readable instructions stored thereon, which, when executed by a processing system, cause the processing system to carry out a method according to claim 14 .

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: GOOD TECHNOLOGY HOLDINGS LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 045196/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2017
From: GOOD TECHNOLOGY CORPORATION
To: GOOD TECHNOLOGY HOLDINGS LIMITED
Reel/Frame 041069/0783 →
CHANGE OF NAME Recorded Nov 29, 2012
From: VISTO CORPORATION
To: GOOD TECHNOLOGY CORPORATION
Reel/Frame 029382/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2011
From: HAWKINS, SIAVASH JAMES JOORABCHIAN
To: VISTO CORPORATION
Reel/Frame 027293/0523 →