Serial Ordering Software Objects Cyclic Dependencies

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedependency validationVSAvoidcomputing and network resources
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveprocessing continuityVSAvoidruntime failure risk
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improveloading simplicityVSAvoiddependency satisfaction
Core Design Contradiction:
Ease of operationVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11442711B2Serial ordering of software objects with cyclic dependencies
Publication Date: 2022.09.13 SAP SE
  • US11442711B2 patent drawing
  • US11442711B2 patent drawing
  • US11442711B2 patent drawing

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.