RESOURCE ACCESS FILTERING SYSTEM AND DATABASE STRUCTURE FOR USE THEREWITH
First Claim
1. A resource access filtering system, comprising:
- a generator unit (50) arranged to create a database structure (400), wherein the generator unit (50) comprises;
a categorization unit (51) arranged to provide a plurality of resource identifiers (200) each associated with a respective category code (310);
a hashing unit (52) arranged to hash each of the plurality of resource identifiers (200) to provide a hash value (300), and to divide the hash value (300) into at least first and second hash portions (301, 302); and
a storing unit (53) arranged to output the database structure (400) including at least a hash array (410) and a main data section (420), wherein the main data section (420) comprises the second hash portions (302) and the respective category codes (310) divided amongst a plurality of main data blocks (421), and the hash array (410) comprises the first hash portions (301) each associated with a pointer (412) to a respective one of the main data blocks (421) in the main data section (420);
a client unit (10) arranged to request access to a resource (32) with reference to a demanded resource identifier (200); and
a filter unit (40) arranged to control access to the resource (32) with reference to a category code (310) obtained from the database structure (400) according to the demanded resource identifier (200), wherein the filtering unit (40) comprises;
a communication unit (41) arranged to obtain the demanded resource identifier (200) in relation to a resource access request made by the client device (10);
a database access unit (42) arranged to return a category code (310) appropriate to the demanded resource identifier (200) from the database structure (400), by generating a search hash value (300) based on the resource identifier (200) and dividing the search hash value (300) into at least first and second hash portions (301, 302), identifying a respective main data block (421) in the main data section (420) of the database structure (400) by consulting the hash array (410) using the first hash portion (301), and retrieving the category code (310) from the respective main data block (421) according to the second hash portion (302); and
a control unit (43) arranged to determine a control action in relation to the resource access request made by the client device (10) with reference to the category code (310) obtained by the database access unit (42),wherein the hashing unit (52) is arranged to divide each of the hash values (300) into at least the first and second hash portions (301, 302) and a third hash portion (303), and the storing unit (53) is arranged to discard each of the third hash portions (303); and
the database access unit (42) is arranged to divide the search hash value (300) derived from the demanded resource identifier (200) into corresponding at least the first and second hash portions (301, 302) and a third hash portion (303).
8 Assignments
0 Petitions
Accused Products
Abstract
A database structure (400) stores data representing a plurality of resource identifiers (200) such as URLs in a computing system. The URLs (200) are each associated with a respective category code (310). Each of resource identifiers (200) is hashed to provide a hash value (300) which is divided into at least first and second hash portions (301, 302). The first hash portions (301) index a main hash array (410) to select a main data block (421) in a main data section (420) holding a set of the second hash portions (302) and the respective category codes (310). For security and compactness, optionally the hash value (300) is further divided to provide a third hash portion (303) which is discarded and is not used to access the database (400). A database generation apparatus, a database search apparatus and a filtering apparatus, a method of creating a database structure and a method of retrieving data from a database structure, and to a computer readable storage medium having a database structure recorded thereon are each described.
-
Citations
25 Claims
-
1. A resource access filtering system, comprising:
-
a generator unit (50) arranged to create a database structure (400), wherein the generator unit (50) comprises; a categorization unit (51) arranged to provide a plurality of resource identifiers (200) each associated with a respective category code (310); a hashing unit (52) arranged to hash each of the plurality of resource identifiers (200) to provide a hash value (300), and to divide the hash value (300) into at least first and second hash portions (301, 302); and a storing unit (53) arranged to output the database structure (400) including at least a hash array (410) and a main data section (420), wherein the main data section (420) comprises the second hash portions (302) and the respective category codes (310) divided amongst a plurality of main data blocks (421), and the hash array (410) comprises the first hash portions (301) each associated with a pointer (412) to a respective one of the main data blocks (421) in the main data section (420); a client unit (10) arranged to request access to a resource (32) with reference to a demanded resource identifier (200); and a filter unit (40) arranged to control access to the resource (32) with reference to a category code (310) obtained from the database structure (400) according to the demanded resource identifier (200), wherein the filtering unit (40) comprises; a communication unit (41) arranged to obtain the demanded resource identifier (200) in relation to a resource access request made by the client device (10); a database access unit (42) arranged to return a category code (310) appropriate to the demanded resource identifier (200) from the database structure (400), by generating a search hash value (300) based on the resource identifier (200) and dividing the search hash value (300) into at least first and second hash portions (301, 302), identifying a respective main data block (421) in the main data section (420) of the database structure (400) by consulting the hash array (410) using the first hash portion (301), and retrieving the category code (310) from the respective main data block (421) according to the second hash portion (302); and a control unit (43) arranged to determine a control action in relation to the resource access request made by the client device (10) with reference to the category code (310) obtained by the database access unit (42), wherein the hashing unit (52) is arranged to divide each of the hash values (300) into at least the first and second hash portions (301, 302) and a third hash portion (303), and the storing unit (53) is arranged to discard each of the third hash portions (303); and the database access unit (42) is arranged to divide the search hash value (300) derived from the demanded resource identifier (200) into corresponding at least the first and second hash portions (301, 302) and a third hash portion (303). - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
2. (canceled)
-
20. A generator apparatus (50) to create a database structure (400), comprising:
-
a processor configured to; provide a plurality of resource identifiers (200) each associated with a respective category code (310); hash each of the plurality of resource identifiers (200) to provide a hash value (300), and to divide the hash value (300) into at least first and second hash portions (301, 302); and output the database structure (400) to a memory, said output data structure including at least a hash array (410) and a main data section (420), wherein the main data section (420) comprises the second hash portions (302) and the respective category codes (310) divided amongst a plurality of main data blocks (421), and the hash array (410) comprises the first hash portions (301) each associated with a pointer (412) to a respective one of the main data blocks (421) in the main data section (420).
-
-
21. A filter apparatus (40) to control access to resources (32) in a computing system, comprising:
-
a filter unit (40) arranged to control access by a client device (10) to a resource (32) with reference to a category code (310) obtained from a database structure (400) according to a demanded resource identifier (200); and a database access unit (42) arranged to obtain the category code (310) appropriate to the demanded resource identifier (200) from the database structure (400), by generating a search hash value (300) based on the demanded resource identifier (200) and dividing the search hash value (300) into at least first and second hash portions (301, 302), identifying a respective main data block (421) in a main data section (420) of the database structure (400) by consulting the hash array (410) using the first hash portion (301), and retrieving the category code (310) from the respective main data block (421) according to the second hash portion (302).
-
-
22. A computer readable storage medium having recorded thereon a database structure (400) storing data representing a plurality of resource identifiers (200) each associated with a respective category code (310), comprising:
-
a main data section (420) having a plurality of main data blocks (421), wherein each of the plurality of main data blocks (421) comprises a plurality of second hash portions (302) and each of the plurality of second hash portions (302) is associated with a respective category code (310); and a main hash array (410) comprising a plurality of first hash portions (301), wherein each of the first hash portions (301) is associated with a reference pointer (412) to a respective one of the plurality of main data blocks (421) in the main data section (420); wherein each of the first hash portions (301) and the second hash portions (302) is divided from a hash value (300) derived a respective one of the plurality of resource identifiers (200).
-
-
23. A method of creating a database structure (400), comprising the computer-implemented steps of:
-
providing a plurality of resource identifiers (200) each associated with a respective category code (310); hashing each of the plurality of resource identifiers (200) to provide a respective hash value (300) and dividing the respective hash value (300) into at least a first hash portion (301) and a second hash portion (302); and storing at least a main hash array (410) and a main data section (420) in the database structure (400), wherein the main data section (420) comprises a plurality of main data blocks (421) each comprising a set of the second hash portions (302) associated with the respective category codes (310), and the main hash array (410) comprises the first hash portions (301) each associated with a reference (412) to a respective one of the plurality of main data blocks (421) in the main data section (420).
-
-
24. A method of retrieving data from a database structure (400), comprising the computer-implemented steps of:
-
receiving a demanded resource identifier (200) which identifies a resource (32) in a computing system; creating a hash value (300) based on the resource identifier (200) and dividing the hash value (300) into at least first and second hash portions (301, 302); identifying a main data block (421) in a main data section (420) of the database structure (400) by consulting a hash array (410) using the first hash portion (301); and retrieving a category code (310) from the identified main data block (421) according to the second hash portion (302).
-
-
25-30. -30. (canceled)
Specification