Serial Ordering Software Objects Cyclic Dependencies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional technologies face inefficiencies and risks of runtime failures when dealing with software environments that have cyclic dependencies, as they often waste resources on unnecessary validation or skip validation altogether, leading to costly failures.
Innovation Solution
The use of graph technologies to reorder software objects serially by replacing strongly connected components with contracted nodes, resulting in a directed acyclic graph that allows for topological ordering and efficient loading, ensuring prerequisites are processed before dependent objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional technologies perform validation of dependencies after all software objects have been loaded, then dependency validation is completed, but computing and network resources are wasted particularly when there are a large number of software objects
Solution Approach 1:
The patent performs dependency validation during the loading process itself rather than after all objects are loaded. By validating dependencies as each software object is loaded and immediately notifying dependent objects, the system completes validation work progressively during loading, eliminating the need for a separate post-loading validation phase and reducing wasted computing resources.
Solution Approach 2:
The patent divides the validation process into incremental steps corresponding to individual software object loading events. Instead of treating validation as a single bulk operation after all objects are loaded, the system segments validation into discrete tasks that are performed and completed as each object becomes available, reducing overall resource consumption.
2Productivity
If conventional technologies skip validation when cyclic dependencies are present, then processing can continue, but runtime failures occur when a missing dependency is encountered
Solution Approach 1:
The patent implements a self-service validation mechanism where each software object automatically notifies its dependent objects when it is loaded. This self-notification system ensures that dependencies are validated without requiring external intervention or skipping validation, even in the presence of cyclic dependencies, thereby preventing runtime failures while maintaining processing continuity.
Solution Approach 2:
The patent establishes a feedback loop where loaded software objects automatically notify their dependents, creating a chain of validation notifications that propagates through the dependency graph. This feedback mechanism ensures that all dependencies are validated and accounted for, including those in cyclic relationships, without requiring the system to skip validation or risk runtime failures.
3Ease of operation
If software objects are loaded in arbitrary order, then loading is simple, but dependency requirements may not be satisfied leading to validation failures
Solution Approach 1:
The patent performs preliminary identification of dependency relationships and notification targets before the loading process begins. By pre-processing the dependency graph to determine which objects depend on which others, the system can load objects in any order while ensuring that validation notifications are sent to the correct dependent objects, maintaining both loading simplicity and dependency satisfaction.
Solution Approach 2:
The patent implements automatic dependency validation where each loaded software object self-validates its dependencies by notifying its dependents. This self-service mechanism eliminates the need for complex external ordering logic, allowing objects to be loaded in simple arbitrary order while still ensuring all dependency requirements are satisfied through automatic notification and validation.
Data Source
AI summary
Methods and apparatus are disclosed for serializing software objects for loading onto a cloud-hosted tenant, or for other serialized operations. Nodes and edges of a directed graph represent respective software objects and the dependencies among the software objects. A search for strongly connected components reveals cyclic dependencies. Each strongly connected component can be replaced by a contracted node to obtain a condensation of the original directed graph. A topological ordering can be determined for the condensation, and the software objects can be processed or loaded according to the topological ordering. Such ordering provides that software objects of a strongly connected component are processed consecutively while, for all other dependencies, a prerequisite object is processed (loaded) before its dependent object(s). Examples of SAP Analytics Cloud and Data Warehouse Cloud are provided. Exemplary, push and pull loading procedures, topological ordering, and validation are disclosed.


