IP Library Granted Patent US 10,977,029
Granted Patent B2
US 10,977,029 · App. 16/799,477 · Granted Apr 13, 2021

Groups of endpoints and targeting of releases and packages to endpoints

Inventors: Spencer Leavitt George Quin (Kitchener, CA); Thomas Owen Parry (Cambridge, CA); Yuhui Liu (Waterloo, CA); Bradley Alfred Fach (Cambridge, CA)
Assignee: BlackBerry Limited
G06F8/71G06F8/60G06F8/61G06F8/654
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 10,977,029
App. No.
16/799,477
Granted
Apr 13, 2021
Kind
B2
Abstract

Data structures are stored in an endpoint data store. Each data structure represents an endpoint having one or more components, each component having one or more arbitrary properties. Multiple groups of endpoints are identified by name and defined by group criteria expressed in terms of the one or more arbitrary properties of the one or more components of the endpoints that are members of the group. For each group, the group criteria of the group is stored in a data store in association with the name of the group. Packages and releases may be targeted to endpoints in various manners.

Claims (30)

1. A method performed by a computing device, the method comprising:

defining multiple groups of endpoints, each group defined by its group criteria expressed in terms of one or more arbitrary properties of one or more components of the endpoints that are members of the group, wherein each arbitrary property is represented by a respective property tuple comprising a key, a value, a source identifier, and a timestamp, wherein the source identifier identifies a source of the key and the value, and wherein the timestamp represents a time at which the property tuple was stored in the computing device;

for each group, storing in a group data store the group criteria of the group in association with a name of the group; and

managing upgrades to a plurality of endpoints that belong to one or more of the multiple groups by:

targeting a release of at least one package to the plurality of endpoints, wherein the at least one package is enabled for installation on at least one endpoint component that controls endpoint functionality; and

deploying the release to the plurality of endpoints, thereby enabling installation of the at least one package on the at least one endpoint component in order to upgrade the plurality of endpoints.

2. The method as recited in claim 1 , wherein targeting the release comprises defining a deployment for the release that identifies the one or more of the multiple groups by name.

3. The method as recited in claim 1 , wherein targeting the release comprises targeting the release to endpoints that belong to two or more of the multiple groups by defining a deployment for the release that identifies the two or more of the multiple groups by name and that assigns priorities to the identified two or more of the multiple groups.

4. The method as recited in claim 1 , wherein targeting the release comprises associating the release with a filter expressed in terms of the one or more arbitrary properties of the one or more components of the endpoints that are targeted.

5. The method as recited in claim 1 , wherein representations of the one or more arbitrary properties within the data structures are aggregated from multiple sources.

6. The method as recited in claim 1 , wherein the group criteria of one of the multiple groups group includes existence of a particular property.

7. The method as recited in claim 1 , wherein the group criteria of one of the multiple groups includes absence of a particular property.

8. The method as recited in claim 1 , wherein the group criteria of one of the multiple groups includes a comparison of a particular property to a value.

9. The method as recited in claim 1 , wherein the group criteria of one of the multiple groups includes endpoint membership in another group.

10. The method as recited in claim 1 , wherein any packages installed on the components are represented in the data structures.

11. A non-transitory computer-readable medium having stored thereon computer-readable instructions which, when executed by a processor of a computing device, cause the computing device to:

define multiple groups of endpoints, each group defined by its group criteria expressed in terms of the one or more arbitrary properties of one or more components of the endpoints that are members of the group, wherein each arbitrary property is represented by a respective property tuple comprising a key, a value, a source identifier, and a timestamp, wherein the source identifier identifies a source of the key and the value, and wherein the timestamp represents a time at which the property tuple was stored in the computing device;

for each group, store in a group data store the group criteria of the group in association with a name of the group; and

manage upgrades to a plurality of endpoints that belong to one or more of the multiple groups by:

targeting a release of at least one package to the plurality of endpoints, wherein the at least one package is enabled for installation on at least one endpoint component that controls endpoint functionality; and

deploying the release to the plurality of endpoints, thereby enabling installation of the at least one package on the at least one endpoint component in order to upgrade the plurality of endpoints.

12. The non-transitory computer-readable medium as recited in claim 11 , wherein targeting the release comprises defining a deployment for the release that identifies the one or more of the multiple groups by name.

13. The non-transitory computer-readable medium as recited in claim 11 , wherein targeting the release comprises targeting the release to endpoints that belong to two or more of the multiple groups by defining a deployment for the release that identifies the two or more of the multiple groups by name and that assigns priorities to the identified two or more of the multiple groups.

14. The non-transitory computer-readable medium as recited in claim 11 , wherein targeting the release comprises associating the release with a filter expressed in terms of the one or more arbitrary properties of the one or more components of the endpoints that are targeted.

15. The non-transitory computer-readable medium as recited in claim 11 , wherein representations of the one or more arbitrary properties within the data structures are aggregated from multiple sources.

16. The non-transitory computer-readable medium as recited in claim 11 , wherein the group criteria of one of the multiple groups group includes existence of a particular property.

17. The non-transitory computer-readable medium as recited in claim 11 , wherein the group criteria of one of the multiple groups includes absence of a particular property.

18. The non-transitory computer-readable medium as recited in claim 11 , wherein the group criteria of one of the multiple groups includes a comparison of a particular property to a value.

19. The non-transitory computer-readable medium as recited in claim 11 , wherein the group criteria of one of the multiple groups includes endpoint membership in another group.

20. The non-transitory computer-readable medium as recited in claim 11 , wherein any packages installed on the components are represented in the data structures.

Assignments (3)
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 Feb 24, 2020
From: FACH, BRADLEY ALFRED; PARRY, THOMAS OWEN; QUIN, SPENCER LEAVITT GEORGE; LIU, YUHUI
To: BLACKBERRY LIMITED
Reel/Frame 052004/0967 →
Continuity (2)
Continuation 14824979 · Aug 12, 2015
Related Publication 20200264869A1 · Aug 20, 2020