Reviewing cached user-group information in connection with issuing a digital rights management (DRM) license for content
First Claim
1. A method for determining whether an element within an organization is a member of one or more target groups pre-defined within the organization, the organization maintaining a computer network comprising a plurality of storage devices organized into X levels and storing element-group information, the storage devices including a directory at a higher, more-costly level X and at least one cache, each cache being at a lower, less-costly level below X and including at least a portion of the element-group information in the directory, the levels 1 to X corresponding to least-costly to most-costly, the method comprising:
- validating each target group by searching the levels of storage devices to find an item for the target group and, if the target group is found, placing the target group in a validated target bin (V);
validating the element by searching the levels of storage devices to find an item for the element, and if the item for the element is found, determining from the item all groups that the element is listed as being a member of and placing such member-of groups in a search bin (S);
firstly determining whether any group in (S) matches any group in (V);
if so, concluding that the element is a member of a target group; and
if not continuing by moving all groups in (S) to a queue (Q1) corresponding to the storage device at level 1 and performing an iterative process to search for a membership path from the element to any target group, the iterative process comprising, for each level x from 1 to X;
secondly determining whether a queue (Qx) corresponding to the level is empty;
if empty, incrementing the level and returning to the secondly determining step if x<
X, and concluding that the element is not a member of any target group if x=X;
if not empty, removing a group from (Qx) and determining whether the removed group is already in a discard bin (D);
if in (D), returning to the secondly determining step;
if not in (D), searching for an item corresponding to the removed group in the storage device corresponding to the level;
if no such item is found from the search, moving the removed group to (Q(x+1)) if x<
X and moving the removed group to (D) if x=X, and returning to the secondly determining step;
if such an item is found from the search, placing each newly discovered group that the removed group is a member of as determined from the found item into (S), moving the removed group to (D), and returning to the firstly determining step, whereby the iterative process develops all possible paths from the element to any of the validated target groups, and more costly operations at a higher level storage device do not occur until all possible less costly operations at all lower level storage devices are exhausted.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer network has storage devices organized into X levels and storing element-group information. To determine whether an element is a member of any target groups, each target group is validated by searching the storage devices to find a target group item and, if found, placing the target group in a validated target bin (V). Also,, the element is validated by searching the storage devices to find an element item, and if found, determining from the item all groups that the element is listed as being a member of and placing such member-of groups in a search bin (S). If (S) intersects (V), the element is a member of a target group. If not, all groups in (S) are moved to a queue (Q1) corresponding to the storage device at level 1 and an iterative process searches for a membership path from the element to any target group.
-
Citations
20 Claims
-
1. A method for determining whether an element within an organization is a member of one or more target groups pre-defined within the organization, the organization maintaining a computer network comprising a plurality of storage devices organized into X levels and storing element-group information, the storage devices including a directory at a higher, more-costly level X and at least one cache, each cache being at a lower, less-costly level below X and including at least a portion of the element-group information in the directory, the levels 1 to X corresponding to least-costly to most-costly, the method comprising:
-
validating each target group by searching the levels of storage devices to find an item for the target group and, if the target group is found, placing the target group in a validated target bin (V);
validating the element by searching the levels of storage devices to find an item for the element, and if the item for the element is found, determining from the item all groups that the element is listed as being a member of and placing such member-of groups in a search bin (S);
firstly determining whether any group in (S) matches any group in (V);
if so, concluding that the element is a member of a target group; and
if not continuing by moving all groups in (S) to a queue (Q1) corresponding to the storage device at level 1 and performing an iterative process to search for a membership path from the element to any target group, the iterative process comprising, for each level x from 1 to X;
secondly determining whether a queue (Qx) corresponding to the level is empty;
if empty, incrementing the level and returning to the secondly determining step if x<
X, and concluding that the element is not a member of any target group if x=X;
if not empty, removing a group from (Qx) and determining whether the removed group is already in a discard bin (D);
if in (D), returning to the secondly determining step;
if not in (D), searching for an item corresponding to the removed group in the storage device corresponding to the level;
if no such item is found from the search, moving the removed group to (Q(x+1)) if x<
X and moving the removed group to (D) if x=X, and returning to the secondly determining step;
if such an item is found from the search, placing each newly discovered group that the removed group is a member of as determined from the found item into (S), moving the removed group to (D), and returning to the firstly determining step, whereby the iterative process develops all possible paths from the element to any of the validated target groups, and more costly operations at a higher level storage device do not occur until all possible less costly operations at all lower level storage devices are exhausted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable medium having stored thereon computer-executable instructions for performing a method for determining whether an element within an organization is a member of one or more target groups pre-defined within the organization, the organization maintaining a computer network comprising a plurality of storage devices organized into X levels and storing element-group information, the storage devices including a directory at a higher, more-costly level X and at least one cache, each cache being at a lower, less-costly level below X and including at least a portion of the element-group information in the directory, the levels 1 to X corresponding to least-costly to most-costly, the method comprising:
-
validating each target group by searching the levels of storage devices to find an item for the target group and, if the target group is found, placing the target group in a validated target bin (V);
validating the element by searching the levels of storage devices to find an item for the element, and if the item for the element is found, determining from the item all groups that the element is listed as being a member of and placing such member-of groups in a search bin (S);
firstly determining whether any group in (S) matches any group in (V);
if so, concluding that the element is a member of a target group; and
if not continuing by moving all groups in (S) to a queue (Q1) corresponding to the storage device at level 1 and performing an iterative process to search for a membership path from the element to any target group, the iterative process comprising, for each level x from 1 to X;
secondly determining whether a queue (Qx) corresponding to the level is empty;
if empty, incrementing the level and returning to the secondly determining step if x<
X, and concluding that the element is not a member of any target group if x=X;
if not empty, removing a group from (Qx) and determining whether the removed group is already in a discard bin (D);
if in (D), returning to the secondly determining step;
if not in (D), searching for an item corresponding to the removed group in the storage device corresponding to the level;
if no such item is found from the search, moving the removed group to (Q(x+1)) if x<
X and moving the removed group to (D) if x=X, and returning to the secondly determining step;
if such an item is found from the search, placing each newly discovered group that the removed group is a member of as determined from the found item into (S), moving the removed group to (D), and returning to the firstly determining step, whereby the iterative process develops all possible paths from the element to any of the validated target groups, and more costly operations at a higher level storage device do not occur until all possible less costly operations at all lower level storage devices are exhausted. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification