US-12619662-B2 - Systems and methods for contract-based loading of executable graph-based models
Abstract
A method for contract-based loading of executable-graph based models is provided. A stimulus and an associated context are received. The stimulus is associated with a contract node having a contract identifier. Based on the contract identifier, a contract node manifest associated with the contract node, a storage location associated with a contract node state, and node identifiers of nodes associated with the contract node are obtained. The contract node is generated based on the contract node manifest and the contract node state. Node manifests associated with the nodes are obtained. Each node manifest comprises a node identifier and a storage location associated with a respective node state. Node states for the nodes are obtained. Each node state is obtained from the storage location associated with the respective node state. The nodes are generated based on the node manifests and the node states.
Inventors
- Steven SCHILDERS
Assignees
- Infosys Limited
Dates
- Publication Date
- 20260505
- Application Date
- 20250306
Claims (12)
- 1 . A method for contract-based loading of executable-graph based models, the method comprising: receiving, by processing circuitry, a stimulus and an associated context, wherein the stimulus is associated with a contract node having a contract identifier; obtaining, by the processing circuitry and based on the contract identifier, a contract node manifest associated with the contract node, the contract node manifest comprising the contract identifier, a first storage location associated with a contract node state, and one or more node identifiers of one or more nodes associated with the contract node; obtaining, by the processing circuitry, the contract node state from the first storage location; generating, by the processing circuitry, the contract node based on the contract node manifest and the contract node state; obtaining, by the processing circuitry and based on the one or more node identifiers, one or more node manifests associated with the one or more nodes, wherein each of the one or more node manifests comprises a respective node identifier of the one or more node identifiers and a storage location associated with a respective node state; obtaining, by the processing circuitry, one or more node states for the one or more nodes, wherein each node state is obtained from the storage location associated with the respective node state; generating, by the processing circuitry, the one or more nodes based on the one or more node manifests and the one or more node states; generating, by the processing circuitry, one or more mappings from the contract node to the one or more nodes such that the contract node acts as a proxy for the one or more nodes; and processing, by the processing circuitry, the stimulus based on the contract node.
- 2 . The method of claim 1 wherein the contract node manifest is obtained from a contract node manifest state, the contract node manifest state comprising the contract identifier.
- 3 . The method of claim 1 wherein each of the one or more node manifests are obtained from respective manifest states comprising the respective node identifiers.
- 4 . The method of claim 1 wherein each of the one or more node manifests further comprise a node group identifier associated with a first node group, the one or more nodes forming part of the first node group.
- 5 . The method of claim 4 wherein the one or more nodes comprise a subset of all nodes within the first node group.
- 6 . The method of claim 4 further comprising: obtaining, by the processing circuitry and based on the node group identifier, a node group manifest associated with a node group node, wherein the node group manifest comprises the node group identifier and a second storage location associated with a node group node state; obtaining, by the processing circuitry, the node group node state from the second storage location; generating, by the processing circuitry, a node group node based on the node group manifest and the node group node state; and associating, by the processing circuitry, the one or more nodes with the node group node thereby generating the node group.
- 7 . The method of claim 6 wherein the contract node acts as a proxy for the one or more nodes in relation to requests from outside of the node group.
- 8 . The method of claim 6 wherein the node group manifest is obtained from a node group manifest state, the node group manifest state comprising the node group identifier.
- 9 . The method of claim 1 wherein the step of processing the stimulus further comprises: mapping, by the processing circuitry, the stimulus to the contract node to determine an access response; and when the access response comprises an acceptance notification, providing, by the processing circuitry, access to the contract node.
- 10 . The method of claim 9 further comprising: generating, by the processing circuitry, an outcome in accordance with access to the contract node being provided; and outputting, by the processing circuitry, the outcome.
- 11 . A system for contract-based loading of executable graph-based models, the system comprising processing circuitry and a memory unit operatively coupled to the processing circuitry and having instructions stored thereon that, when executed by the processing circuitry, cause the processing circuitry to: receive a stimulus and an associated context, wherein the stimulus is associated with a contract node having a contract identifier; obtain, based on the contract identifier, a contract node manifest associated with the contract node, the contract node manifest comprising the contract identifier, a first storage location associated with a contract node state, and one or more node identifiers of one or more nodes associated with the contract node; obtain the contract node state from the first storage location; generate the contract node based on the contract node manifest and the contract node state; obtain, based on the one or more node identifiers, one or more node manifests associated with the one or more nodes, wherein each of the one or more node manifests comprises a respective node identifier of the one or more node identifiers and a storage location associated with a respective node state; obtain one or more node states for the one or more nodes, wherein each node state is obtained from the storage location associated with the respective node state; generate the one or more nodes based on the one or more node manifests and the one or more node states; generate one or more mappings from the contract node to the one or more nodes such that the contract node acts as a proxy for the one or more nodes; and process the stimulus based on the contract node.
- 12 . A non-transitory computer readable medium for contract-based loading of executable graph-based models, the non-transitory computer readable medium storing instructions which, when executed by processing circuitry, cause the processing circuitry to: receive a stimulus and an associated context, wherein the stimulus is associated with a contract node having a contract identifier; obtain, based on the contract identifier, a contract node manifest associated with the contract node, the contract node manifest comprising the contract identifier, a first storage location associated with a contract node state, and one or more node identifiers of one or more nodes associated with the contract node; obtain the contract node state from the first storage location; generate the contract node based on the contract node manifest and the contract node state; obtain, based on the one or more node identifiers, one or more node manifests associated with the one or more nodes, wherein each of the one or more node manifests comprises a respective node identifier of the one or more node identifiers and a storage location associated with a respective node state; obtain one or more node states for the one or more nodes, wherein each node state is obtained from the storage location associated with the respective node state; generate the one or more nodes based on the one or more node manifests and the one or more node states; generate one or more mappings from the contract node to the one or more nodes such that the contract node acts as a proxy for the one or more nodes; and process the stimulus based on the contract node.
Description
RELATED APPLICATIONS The present application is a divisional of U.S. patent application Ser. No. 18/128,385, filed on Mar. 30, 2023. This application claims priority to U.S. patent application Ser. No. 18/128,385, filed on Mar. 30, 2023, which claims priority under 35 U.S.C. § 119 to U.S. Patent App. Ser. No. 63/442,324, filed Jan. 31, 2023; U.S. Patent App. Ser. No. 63/442,682, filed Feb. 1, 2023; U.S. Patent App. Ser. No. 63/448,718, filed Feb. 28, 2023; U.S. Patent App. Ser. No. 63/448,724, filed Feb. 28, 2023; U.S. Patent App. Ser. No. 63/448,743, filed Feb. 28, 2023; U.S. Patent App. Ser. No. 63/448,711, filed Feb. 28, 2023; and U.S. Patent App. Ser. No. 63/448,722, filed Feb. 28, 2023, all of which are incorporated herein by reference in their entirety entireties. TECHNICAL FIELD The present disclosure relates to graph-based models and particularly, but not exclusively, executable graph-based models. Particularly, but not exclusively, the present disclosure relates to providing access restricted executable graph-based models using scopes. Particularly, but not exclusively, the present disclosure relates to the use of contracts to control access to scoped portions of executable graph-based models. BACKGROUND Modern system designs typically separate data storage from any functional data structure used from a processing logic perspective. This separation often occurs when data is “at rest” or at run-time where the processing system interacts with a copy of the relevant data in the processing space that may be of a different representation. This separation also leads to an impedance mismatch which requires some form of a data management solution to perform the necessary mappings between the two states. As a result of this separate of concerns, the processing logic is typically performed in a separate technology and physical tier (in an n-tier architecture) from the data. This is illustrated in the example n-tier architecture shown in FIG. 1. The example n-tier architecture 100 comprises a presentation layer 102, a processing logic layer 104, a data access layer 106, and a database layer 108. The presentation layer 102 comprises applications or components which are used to display the outputs of the processing logic layer 104 to a user or users. The processing logic layer 104 comprises applications, components, or services which perform some form of processing on the data obtained from the data access layer 106. The data access layer 106 comprises the applications, components, and/or services which may access the data used by the processing logic layer 104 and stored at the database layer 108. The database layer 108 handles the persistent storage of the data used by the system (e.g., in the form of a relational database, flat file, NoSQL database, graph database, and the like). The layers of the example n-tier architecture 100 are technically separated. Each layer may utilize a separate set of components to perform specific functionality (e.g., a database management system is used in the database layer 108 whilst an enterprise application is used in the processing logic layer 104). The layers of the n-tier architecture 100 may also be physically separated. For example, the database layer 108 may execute on a remote cloud service, the processing logic layer 104 may execute on a network within an enterprise, and the presentation layer 102 may execute on a user device within the enterprise. While some architectural designs require a clear separation of concerns between data and the use of the data, often the separation enforced by architectures such as that illustrated in FIG. 1 may severely inhibit the flexibility, extensibility, and responsiveness of any system created. Therefore, there is a need for enhanced architectures which provide improved flexibility, extensibility, and responsiveness thereby providing more efficient data processing systems. SUMMARY OF DISCLOSURE According to an embodiment of the present disclosure, there is provided a method for access management in an executable graph-based model. The executable graph-based model comprises a plurality of nodes and an overlay structure comprising processing logic, the overlay structure associated with one or more executable nodes of the plurality of nodes. The method comprises determining a first node group of the executable graph-based model, the first node group comprising at least one node. The method further comprises associating a first contract with the first node group such that the first contract is configured to act as a proxy for one or more nodes within the first node group in relation to requests from outside the first node group. The method further comprises receiving a stimulus and a context associated therewith, where the stimulus is associated with the first contract. The method further comprises, in response to the stimulus being received, mapping the stimulus to the first contract to determine an access response, and processing the