Late bound, transactional configuration system and methods
First Claim
Patent Images
1. A computer system, comprising:
- a memory;
a plurality of configuration keys;
a semantic registry to store, in the memory, a plurality of semantic constraints, each of the plurality of semantic constraints associated with one of the plurality of configuration keys;
a syntax parser to receive text from a configuration source, to parse the text to generate a plurality of key definitions, each of the key definitions associated with one of the plurality of configuration keys and having a corresponding value;
a semantic validator to receive the plurality of key definitions and to validate each of the plurality of key definitions using ones of the plurality of semantic constraints associated with the same key as the key definition; and
a syntax history module to maintain an ordered list of commits in the memory, each commit having one or more committed key definitions; and
at least one application component configured to register semantic constraints with the semantic registry and to register key definitions with the syntax history module, wherein in response to parsing text received from a configuration source, the syntax history module appends an immutable commit to the end of the list of commits, and wherein in response to receiving key definitions registered from the at least one application component, the syntax history module mutates a first commit within the list of commits.
9 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for configuring software systems help guarantee correctness while providing operational flexibility and minimal time to recover. A configuration system uses a un-typed syntax tree with transactional semantics layered under a set of late-bound semantic constraints. Configuration settings are defined in property flies which are parsed into a syntax tree during startup and which can be safely reloaded. Semantic constraints are dynamically specified by software components. The system maintains a transactional history to enable rollback and inspection.
-
Citations
18 Claims
-
1. A computer system, comprising:
-
a memory; a plurality of configuration keys; a semantic registry to store, in the memory, a plurality of semantic constraints, each of the plurality of semantic constraints associated with one of the plurality of configuration keys; a syntax parser to receive text from a configuration source, to parse the text to generate a plurality of key definitions, each of the key definitions associated with one of the plurality of configuration keys and having a corresponding value; a semantic validator to receive the plurality of key definitions and to validate each of the plurality of key definitions using ones of the plurality of semantic constraints associated with the same key as the key definition; and a syntax history module to maintain an ordered list of commits in the memory, each commit having one or more committed key definitions; and at least one application component configured to register semantic constraints with the semantic registry and to register key definitions with the syntax history module, wherein in response to parsing text received from a configuration source, the syntax history module appends an immutable commit to the end of the list of commits, and wherein in response to receiving key definitions registered from the at least one application component, the syntax history module mutates a first commit within the list of commits. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method implemented in a computer system comprising a memory, the method comprising:
-
receiving, from an application component, a plurality of semantic constraints, each of the plurality of semantic constraints associated with one of a plurality of configuration keys; storing the semantic constraints to the memory; receiving text from a configuration source; parsing the text to generate a plurality of first key definitions, each of the first key definitions associated with one or more configuration keys and having a corresponding value; validating each of the first key definitions using ones of the plurality of semantic constraints associated with the same configuration keys as the key definition; appending an immutable commit to the end of an ordered list of commits stored in the memory, the appended commit comprising the first key definitions; receiving second key definitions from the application component; and mutating a first commit within the ordered list of commits to store the second key definitions. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product tangibly embodied in a non-transitory computer-readable medium, the computer-readable medium storing program instructions that are executable to:
-
receive, from an application component, a plurality of semantic constraints, each of the plurality of semantic constraints associated with one of a plurality of configuration keys; store the semantic constraints to a memory; receive text from a configuration source; parse the text to generate a plurality of first key definitions, each of the first key definitions associated with one or more configuration keys and having a corresponding value; validate each of the first key definitions using ones of the plurality of semantic constraints associated with the same configuration keys as the key definition; append an immutable commit to the end of an ordered list of commits stored in the memory, the appended commit comprising the first key definitions; receive second key definitions from the application component; and mutate a first commit within the ordered list of commits to store the second key definitions.
-
Specification