Systems and methods for controlling access to data maintained in a repository
First Claim
1. In a computer system having means for allowing access to a repository of data by a plurality of clients over at least one communications link connected to said computer system, data access control means comprising:
- means for interpreting the format of a data transmission occurring between said computer system and each of said clients wherein the transmission itself contains and is identified by one or more forresta identities, each of said forresta identities may be acted upon independently; and
each of which is unique and unrelated to any means used to identify the parties receiving or sending such transmission;
means for creating said forresta identity as an n-byte character sequence having no conflicting meaning within the coding constructs of a transmission;
means for creating a unique session node managed by the data access control method, wherein said session node exists to identify and validate recognized forresta identities contained within each such transmission; and
means for creating a construction sequence for each new transmission, said sequence identifying the components and forresta identities used to form the transmission and where said sequence results from interpreting forresta identities.
2 Assignments
1 Petition
Accused Products
Abstract
Systems and methods for controlling the dissemination of data from a repository based on request mechanisms that are transparent to the requestor and the connection conveying the requests. The systems and methods are used by the repository to enforce one or more rule sets that implement varying levels of access privilege created by the repository designer. For each user requesting access to privileged data, the repository uses the systems and methods to manage novel information structures whose purpose is to apply the rule sets to the requestor'"'"'s session. By incorporating into each request, a set of values herein named a “forresta” and a “destination”, the systems and methods exercise control over data access, assemblage and presentation. In addition, the systems and methods provide that clients require no enhancements to well-known methods or systems used to facilitate communications with repositories employing this invention.
69 Citations
25 Claims
-
1. In a computer system having means for allowing access to a repository of data by a plurality of clients over at least one communications link connected to said computer system, data access control means comprising:
-
means for interpreting the format of a data transmission occurring between said computer system and each of said clients wherein the transmission itself contains and is identified by one or more forresta identities, each of said forresta identities may be acted upon independently; and
each of which is unique and unrelated to any means used to identify the parties receiving or sending such transmission;
means for creating said forresta identity as an n-byte character sequence having no conflicting meaning within the coding constructs of a transmission;
means for creating a unique session node managed by the data access control method, wherein said session node exists to identify and validate recognized forresta identities contained within each such transmission; and
means for creating a construction sequence for each new transmission, said sequence identifying the components and forresta identities used to form the transmission and where said sequence results from interpreting forresta identities. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
means for recognizing a part of each transmission as being a unique forresta identity, which recognition means connects to further means for parsing and substituting constructs that are components of fragment files;
means for accessing a substitution table containing a set of substitution records, said substitution records including one each of a parse phrase, a substitution index and a substitution phrase;
means for examining the content of a fragment file, each said parse phrase being compared with the content of the fragment file to identify constructs;
means wherein said substitution index is paired with the object of the construct, said object being a reference to tangible data held by the repository and contained within the syntax of the construct, said pairing used as the placeholder value for the syntax of said construct; and
means wherein within said means for identifying placeholders said substitution phrase is used as a replacement for a substitution index and object pair.
-
-
3. The system of claim 2, further including means for assigning a specific attribute value to the fragment file when the content of said fragment file contains a construct that indicates that the viewable area of the client display device should be sub-divided into separate areas of information display.
-
4. The system of claim 2, further including means for constructing a response page table that contains a unique entry for each fragment file list, said list to be used as the template for selecting and assembling data held by the repository into a transmission response as a result of receiving a forresta identity associated with a separate transmission;
- and further including;
means for constructing a reference map table for each said fragment file list contained within the response page table, said reference map table containing an entry for each placeholder found within fragment files identified by the list, said entry containing a position field whose value describes the relative offset position of the placeholder to other placeholders within the content of the fragment file, a parse index field whose value is the substitution index of the placeholder and a target field, whose value identifies the data held by the repository, said target field value representing the object of the placeholder.
- and further including;
-
5. The system of claim 2, wherein the data access control means further includes:
-
means for requesting one or more blocks of un-initialized memory from the operating system of the server computer that is the host of the repository, the size of said memory blocks specified by the value of one or more obtained random numbers;
means for detecting a signature value present within said memory block, said signature value identified by examining the memory block for a repeating value;
means for using the data bits contained within each said memory block as input to a data field to determine the values that may be stored as individual entries in the forresta map table, proceeding to the next memory block when said data bits of the current block have been exhausted;
means for creating an entry in the forresta map table when the contents of the comparison field equate to an eligible symbol;
means for modifying the contents of the comparison field by bit shifting the contents of the comparison field into discard and supplying new bits from the current memory block in use when the content of the comparison field does not equate to an eligible symbol; and
means for increasing the shift count used to modify the comparison field by one each time the contents of said comparison field equate to a symbol already present as an entry in the forresta map table, until such time that the shift count is equal to a value that is more than half of the size of the current memory block in use, then resetting said shift count back to one.
-
-
6. The system of claim 4, further including means for permitting a repository designer through a user interface means to assign a permission value to each and every fragment file and response table entry.
-
7. The system of claim 4, further including means for permitting a repository designer through a user interface to select zero or more alternates, each said alternate being a representation of either of a fragment file or response page table entry, and for permitting said repository designer to assign each said alternate as an alternative choice to the original object of a placeholder.
-
8. The system of claim 1, wherein the means for the maintenance of forresta identity information of future transmissions further comprises:
-
means for creating and maintaining an expected forresta identity list, said list having its elements appearing in a order determined by the current execution state, said elements composed of a pre-determined forresta identity that may appear on a future transmission, and associated with said identity, a position value that specifies the expected relative position of the fragment file or other forresta identity recognized within a transmission;
means for comparing the forresta identity recognized within a transmission with the values maintained by the expected forresta list to determine if the entire transmission should be inhibited; and
means for comparing the forresta identity recognized within a transmission with the values maintained by the expected forresta list to determine if fragment files associated with the expected forresta list position value should be inhibited.
-
-
9. In a computer system allowing access to a repository of data wherein access of the repository by a plurality of clients is permitted over a network communications link that may be connected to a server computer that is the custodian of the data repository, comprising in combination:
-
a source of data that comprises the content of the repository, said data being eligible to be returned to a client as a result of an access request made by the client;
means for organizing data into groups of one or more elements through a user interface based on criteria established by the designer of the repository;
means for using said groups individually or in combination in the formation of a response to a client based on the access made by the client;
means for controlling an access that may be executed by a client, said access being included as a component of group content;
means for the selective assignment of a permission value to said group through a user interface, said permission value specifying the access and combination scope of the group to which it is assigned;
means for determining when the intent of an access is to retrieve data held by the repository;
means for determining when an access or sequence of accesses is invalid for the repository;
means for control of accesses that may be executed by a client, said accesses being components of a named data input stream, comprising means for examining the content of a fragment file to identify embedded constructs that act as an access of data held by the repository when said constructs are executed by a client;
means for identifying the data that is the object of the access;
display means by which the content of fragment files is presented to the repository designer with said constructs displayed uniquely from other content;
means for permitting the retention, deletion or alteration of said constructs by the repository designer through a user interface; and
means for substituting said constructs with a placeholder value;
means for parsing and substituting constructs that are components of fragment files;
further including means for accessing a substitution table containing a set of substitution records, said substitution records including one each of a parse phrase, a substitution index and a substitution phrase;
means for examining the content of a fragment file, said parse phrases are used in comparison with the content of the fragment file to identify constructs;
means wherein said substitution index is paired with the object of the construct, said object being a reference to tangible data held by the repository and contained within the syntax of the construct, said pairing used as the placeholder value for the syntax of said construct; and
means wherein within said means of identifying placeholders said substitution phrase is used as a replacement for a substitution index and object pair. - View Dependent Claims (10)
-
-
11. In a computer system allowing access to a repository of data wherein access of the repository by a plurality of clients is permitted over a network communications link that may be connected to a server computer that is the custodian of the data repository, comprising in combination:
-
a source of data that comprises the content of the repository, said data being eligible to be returned to a client as a result of an access made by the client;
means for organizing data into groups of one or more elements through a user interface based on criteria established by the designer of the repository;
means for using said groups individually or in combination in the formation of a response to a client based on the access made by the client;
means for controlling an access that may be executed by a client, said access being included as a component of group content;
means for the selective assignment of a permission value to said group through a user interface, said permission value specifying the access and combination scope of the group to which it is assigned;
means for determining when the intent of an access is to retrieve data held by the repository;
means for determining when an access or sequence of accesses is invalid for the repository;
means for delineating data into groups comprising input means for reading a named sequence of data, said data intended for use as a component of repository content, by separating said data sequence into one or more fragment files, the content and number of resulting said fragment files determined by the repository designer through a user interface;
means for associating a fragment file with the data input stream from which it was created, wherein said association causes the enumeration of the fragment file;
means for generating a data structure that lists one or more fragment files, said structure specifying the re-assembly order of fragment files, said re-assembly order describing the reconstruction of the data input stream from which the fragment files were created;
means for constructing a response page table that contains a unique entry for each fragment file list, said list to be used as the template for selecting and assembling data held by the repository into a client response as a result of an access made by the client; and
means for constructing a reference map table for each said fragment file list contained within the response page table, said reference map table containing an entry for each placeholder found within fragment files means for constructing a reference map table for each said fragment file identified by the list, said entry containing a position field whose value describes the relative offset position of the placeholder to other placeholders within the content of the fragment file, a parse index field whose value is the substitution index of the placeholder and a target field, whose value identifies the data held by the repository, said target field value representing the object of the placeholder. - View Dependent Claims (12, 13, 14, 15)
means for determining access to said repository comprising a reference field means, a forresta identity field means, a destination field means and a supplementary items field means;
wherein said reference field means identifies the repository;
wherein said forresta identity field means conveys the privilege level and identity of the transmission;
wherein said destination field means identifies the specific data held by said repository that is to be assembled into a transmission for use by the client;
wherein said supplementary items field means contains zero or more values that are required to qualify the specific data being retrieved; and
the forresta identity field means is adapted to convey the privilege value and identity of the transmission of which it is a component, further comprising means for creating a forresta map table, each entry in said table containing one symbol whose appearance within said table is unique, and each said symbol being one of the upper-case characters “
A”
through “
Z”
inclusive, the lowercase characters “
a”
through “
z”
inclusive, and the character representations of the digits “
1”
through “
9”
inclusive, wherein one value of the forresta identity is created by selecting at least eight values from the forresta map table.
-
-
15. The system of claim 14, wherein the destination field means identifies the data held by the repository, further comprising means for using the identifier of a response table entry as the value of the destination field.
-
16. In a computer system allowing access to a repository of data wherein access control means includes means for organizing data into groups of one or more elements through a user interface based on criteria established by the designer of the repository including:
-
means for using said groups individually or in combination in the formation of a response to a client based on the access made by the client;
means for controlling an access that may be executed by a client, said access being included as a component of group content;
means for the selective assignment of a permission value to said group through a user interface, said permission value specifying the access and combination scope of the group to which it is assigned;
means for determining when the intent of an access is to retrieve data held by the repository;
means for determining when an access or sequence of accesses is invalid for the repository;
means for determining access to said repository comprising a reference field means, a forresta field means, a destination field means and a supplementary items field means wherein said reference field means identifies the repository;
wherein said forresta field means conveys the privilege level and identity of the access;
wherein said destination field means identifies the specific data held by said repository that is to be returned to the client as a result of the access;
wherein said supplementary items field means contains zero or more values that are required to qualify the specific data being retrieved;
means wherein the forresta field means is adapted to convey the privilege value and identity of the access of which it is a component, further comprising means for creating a forresta map table, each entry in said table containing one symbol whose appearance within said table is unique, and each said symbol being one of the upper-case characters “
A”
through “
Z”
inclusive, the lowercase characters “
a”
through “
z”
inclusive, and the character representations of the digits “
1”
through “
9”
inclusive, wherein one value of the forresta field is created by selecting at least eight values from the forresta map table;
means for requesting one or more blocks of un-initialized memory from the operating system of the server computer which is the host of the repository, the size of said memory blocks specified by the value of one or more obtained random numbers;
means for using the data bits contained within each said memory block as input to a data field to determine the values that may be stored as individual entries in the forresta map table, proceeding to the next memory block when said data bits of the current block have been exhausted;
means for creating an entry in the forresta map table when the contents of the comparison field equate to an eligible symbol;
means for modifying the contents of the comparison field by bit shifting the contents of the comparison field into discard and supplying new bits from the current memory block in use when the content of the comparison field does not equate to an eligible symbol; and
means for increasing the shift count used to modify the comparison field by one each time the contents of said comparison field equate to a symbol already present as an entry in the forresta map table, until such time that the shift count is equal to a value that is more than half of the size of the current memory block in use, then resetting said shift count back to one. - View Dependent Claims (17, 18, 19)
means for allowing a client to send a transmission to the repository, said transmission containing a forresta identity whose value allows acceptance and processing of the transmission by the repository, said transmission containing a forresta identity without an assigned privilege level;
means for then assigning to said forresta identity a privilege level value;
means for creating a session node data structure that maintains information particular to forresta identities supplied by a client, a state table data structure that maintains historical information regarding previous transmissions made by the client, a value that represents the moment in time the repository last received a transmission from the client, a value that represents the level of privilege assigned to transmissions made by the client, said privilege level created by the repository designer through a user interface, a field containing the destination value of the current transmission, and a data structure that identifies the data elements of the repository that are currently eligible to be used in the construction of a transmission to the client;
means for using a forresta identity assigned to a session node as the value of the forresta field contained within a transmission format, said transmission format being a component of data managed by the repository, and means for using a forresta identity, unique from identities contained within transmissions exchanged between the client and the repository, to identify a session node within a table of zero or more session nodes.
-
-
19. The system of claim 18, wherein the maintenance of historical information regarding previous transmissions made by the client further comprises:
-
means for creating and maintaining a destination list, said list having elements appearing in a specific order, said elements each having a value that specifies a recognized transmission format and a position value specifying the relative position of said format within a data stream, said list being updated on demand;
means for creating and maintaining an expected forresta list, said list having elements appearing in a specific order, said elements each having a value that specifies a recognized forresta identity and a position value specifying the relative position of a transmission format within a data stream, said list being updated on demand; and
means for comparing the values of the forresta and destination fields of a transmission with the values of either of the destination and expected forresta lists, to determine whether or not said transmission should be inhibited.
-
-
20. A data access control method for dynamically constructing a transmission for use by a client, said transmission individualized by including at least one forresta identity within the transmission, said transmission comprised of data elements maintained by a repository and assembled together and delivered to the client as a result of a recognized forresta identity being received by the repository from said client, comprising the steps of:
-
said repository first recognizing said forresta identity by examining at least one known location within the syntax of the transmission for a value that represents an n-byte character sequence having no conflicting meaning within the coding constructs of a transmission;
creating a session node associated with the transmission containing the recognized forresta identity, said format of the session node indexing at least one forresta identity within the transmission and identifying and validating recognized forresta identities contained within each such transmission, and using the contents of said session node to determine if the forresta value is valid within the context of the transmission in which it was recognized;
extracting destination and supplementary items fields that are independent of the forresta identity from the format of a transmission associated with a recognized forresta identity received by the repository, using said extracted fields to determine what data is eligible to be returned as part of a new transmission created by a construction sequence;
creating a construction sequence that indexes the components and forresta identities used to form a new transmission, and where the values of said sequence result from recognizing and validating forresta identities so received; and
processing an entry in a response page table identified by the value of the destination field, said processing including the assemblage of a transmission which includes forresta identities, said transmission composed of fragment files identified by their association with said response page table entry, said transmission suitable for use by the client, said assemblage remaining intact at the repository until received by the client. - View Dependent Claims (21, 22, 23, 24, 25)
including the use of a jump table, said jump table containing a list of parsing references, each such reference identifying a substitution phrase that is recognized as being the next expected placeholder contained within the fragment file;
each such recognized substitution phrase identifying the reference back to the original parse phrase for which the placeholder was originally substituted; and
each such entry in the jump table possessing a permission value, assigned through a user interface, to be used in comparison with the permission value assigned to the forresta identity associated with the current transmission.
-
-
23. The method of claim 20, further comprising the steps of:
-
determining when the processing of a transmission will subdivide the display of the client into multiple viewable areas;
creation of a transmission that exists in multiple parts, each said part wholly contained and wherein at least one part describes the characteristics of one or more of the subdivisions and there exists at least one part for each subdivision that provides the display content of said subdivision;
each of said parts existing temporarily and being destroyed upon being de-referenced or due to a permission violation attributed to the session node to which the parts by way of their forresta identities are associated or due to a transmission containing a forresta identity whose reception was outside a permitted period;
preventing the assemblage of a transmission from any said parts that provide content, said transmission containing a forresta identity possessing a permission higher than that assigned to the part that describes the subdividing;
updating of a session node associated with the forresta identity of a transmission part providing content to said display subdivisions; and
conversion of a placeholder contained within any said part, said placeholder representing a new instance of a subdivision, into a transmission format that permits inclusion of a transmission part, said transmission part being void of a forresta identity or destination value and remaining executable by the client.
-
-
24. The method of claim 20, further comprising the steps of:
-
creating and updating a session node list dynamically, said list containing one entry for each session node that has an assigned privilege value;
validating the authenticity of a session node using a value equivalence by comparison test, said values being one each of the repository memory address of the session node and the repository memory address of session nodes stored as entries in the session node list;
further validating the authenticity of a session node using a value equivalence by comparison test, said values being one each of a signature value assigned to a session node by the client and the signature value found attached to a session node by the repository, both said signature values being comprised of a forresta identity, said identity unique from identities contained within transmissions; and
examining each session node present on the session node list for a permitted reception of transmission period failure, said failure being tested for at each instance of receipt of any access intended for the repository, and by removing all said nodes that show said failure from the session node list, said list having one entry for each session node.
-
-
25. The method of claim 20 further including the steps of:
-
determining if any client has failed to make a transmission containing one or more forresta identities to said repository within a permitted period by examining the status of all outstanding forresta identities each time any forresta identity is recognized; and
examining forresta identities for their use and placement within the current transmission, any said violation of said expected use and placement inhibiting the use of any other transmissions containing a forresta identity between the client and the server.
-
Specification