Resource access filtering system and database structure for use therewith
First Claim
1. A resource access filtering system, comprising:
- one or more server devices, in combination, comprising;
a generator unit arranged to create a database structure, wherein the generator unit comprisesa categorization unit arranged to provide a plurality of resource identifiers each associated with a respective category code,a hashing unit arranged to hash each of the plurality of resource identifiers to provide a hash value, and to divide the hash value into at least first and second hash portions, anda storing unit arranged to output the database structure including at least a hash array and a main data section, wherein the main data section comprises the second hash portions and the respective category codes divided amongst a plurality of main data blocks, and the hash array comprises the first hash portions each associated with a pointer to a respective one of the main data blocks in the main data section; and
a filter unit arranged to control access to a resource with reference to a category code obtained from the database structure according to a demanded resource identifier, wherein the filtering unit comprisesa communication unit arranged to obtain the demanded resource identifier in relation to a resource access request made by the client device,a database access unit arranged to return a category code appropriate to the demanded resource identifier from the database structure, by generating a search hash value based on the resource identifier and dividing the search hash value into at least first and second hash portions, identifying a respective main data block in the main data section of the database structure by consulting the hash array using the first hash portion and retrieving the category code from the respective main data block according to the second hash portion, anda control unit arranged to determine a control action in relation to the resource access request made by the client device with reference to the category code obtained by the database access unit,wherein the hashing unit is arranged to divide each of the hash values into at least the first and second hash portions and a third hash portion, and the storing unit is arranged to discard each of the third hash portions; and
the database access unit is arranged to divide the search hash value derived from the demanded resource identifier into corresponding at least the first and second hash portions and a third hash portion.
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.
289 Citations
25 Claims
-
1. A resource access filtering system, comprising:
-
one or more server devices, in combination, comprising; a generator unit arranged to create a database structure, wherein the generator unit comprises a categorization unit arranged to provide a plurality of resource identifiers each associated with a respective category code, a hashing unit arranged to hash each of the plurality of resource identifiers to provide a hash value, and to divide the hash value into at least first and second hash portions, and a storing unit arranged to output the database structure including at least a hash array and a main data section, wherein the main data section comprises the second hash portions and the respective category codes divided amongst a plurality of main data blocks, and the hash array comprises the first hash portions each associated with a pointer to a respective one of the main data blocks in the main data section; and a filter unit arranged to control access to a resource with reference to a category code obtained from the database structure according to a demanded resource identifier, wherein the filtering unit comprises a communication unit arranged to obtain the demanded resource identifier in relation to a resource access request made by the client device, a database access unit arranged to return a category code appropriate to the demanded resource identifier from the database structure, by generating a search hash value based on the resource identifier and dividing the search hash value into at least first and second hash portions, identifying a respective main data block in the main data section of the database structure by consulting the hash array using the first hash portion and retrieving the category code from the respective main data block according to the second hash portion, and a control unit arranged to determine a control action in relation to the resource access request made by the client device with reference to the category code obtained by the database access unit, wherein the hashing unit is arranged to divide each of the hash values into at least the first and second hash portions and a third hash portion, and the storing unit is arranged to discard each of the third hash portions; and the database access unit is arranged to divide the search hash value derived from the demanded resource identifier into corresponding at least the first and second hash portions and a third hash portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21)
-
-
19. A filter apparatus to control access to resources in a computing system, comprising:
-
a processor configured to; provide a plurality of resource identifiers, each associated with a respective category code; hash each of the plurality of resource identifiers to provide a hash value, and to divide the hash value into at least first and second hash portions; and output the database structure to a memory, said output data structure including at least a hash array and a main data section, wherein the main data section comprises the second hash portions and the respective category codes divided amongst a plurality of main data blocks, and the hash array comprises the first hash portions each associated with a pointer to a respective one of the main data blocks in the main data section, control access by a client device to a resource with reference to a category code obtained from the database structure according to a demanded resource identifier; and obtain the category code appropriate to the demanded resource identifier from the database structure, by generating a search hash value based on the demanded resource identifier and dividing the search hash value into at least first and second hash portions, identifying a respective main data block in a main data section of the database structure by consulting the hash array using the first hash portion, and retrieving the category code from the respective main data block according to the second hash portion. - View Dependent Claims (22, 23)
-
-
20. A computer implemented method of controlling access by a client device to a demanded resource identifier:
-
providing a plurality of resource identifiers each associated with a respective category code; hashing each of the plurality of resource identifiers to provide a respective hash value and dividing the respective hash value into at least a first hash portion and a second hash portion; and storing at least a main hash array and a main data section in the database structure, wherein the main data section comprises a plurality of main data blocks each comprising a set of the second hash portions associated with the respective category codes, and the main hash array comprises the first hash portions each associated with a reference to a respective one of the plurality of main data blocks in the main data section, receiving the demanded resource identifier from the client device which identifies a resource in a computing system; creating a hash value based on the resource identifier and dividing the hash value into at least first and second hash portions; identifying a main data block in a main data section of the database structure by consulting a hash array using the first hash portion; and retrieving a category code from the identified main data block according to the second hash portion controlling access by the client device to the demanded resource identifier based, at least in part, on the category code. - View Dependent Claims (24, 25)
-
Specification