Dynamic Graph Software Upgrade Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications, such as VoIP call control systems, require complete definition and implementation before deployment, leading to delayed availability of functions and services due to the need for extensive upfront development, resulting in prolonged deployment times and potential network downtime during software updates.

Innovation Solution

A method and apparatus for dynamically defining and instantiating undefined portions of a graph, allowing existing defined portions of software to continue running while new functions are defined and instantiated, using an execution engine to detect and replace undefined graph portions with newly generated definitions, enabling on-the-fly updates without system shutdown.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the software application is fully defined and implemented before deployment, then the software reliability is improved, but the deployment time increases

Engineering Contradiction:
Improvesoftware reliabilityVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The software application is divided into multiple independent modules or components that can be developed, tested, and deployed separately. This allows different portions of the software to be released at different times, reducing overall deployment time while maintaining reliability through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Critical and high-priority software components are defined and implemented before deployment, while less critical portions can be added or refined after initial deployment. This preliminary action ensures that essential functionality is reliable and operational before the full software suite is complete.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If the software application is deployed with partial functionality, then the deployment time is reduced, but the software completeness deteriorates

Engineering Contradiction:
Improvedeployment timeVSAvoidsoftware completeness
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The software system is designed with dynamic capabilities that allow it to evolve and expand after deployment. New features and functionalities can be added, activated, or deactivated based on user needs and feedback, transforming a static partial implementation into a dynamically complete system over time.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The core software platform is designed with universal architecture and common components that can support multiple functions and features. This allows the initial deployment to cover essential universal functions while enabling easy addition of specialized features without requiring complete redesign.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If the software upgrade requires system shutdown, then the upgrade reliability is improved, but the service availability deteriorates

Engineering Contradiction:
Improveupgrade reliabilityVSAvoidservice availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The software system is segmented into multiple independent modules or services that can be upgraded separately. Critical modules can be updated while non-critical modules continue to operate, allowing upgrades without complete system shutdown and maintaining service availability for essential functions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary mechanism or transition layer is introduced that facilitates smooth software upgrades without requiring system shutdown. This intermediary handles the transition between old and new software versions, ensuring reliability while maintaining continuous service availability.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If redundant systems are used for software updates, then the service availability is maintained, but the system complexity increases

Engineering Contradiction:
Improveservice availabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of static redundant systems, the architecture uses dynamic failover capabilities where a single system can transition between active and standby roles. This dynamic approach maintains service availability during updates without requiring permanent duplicate systems, reducing overall complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system is designed with multi-functional components that can serve both primary and backup roles. A single system can perform update operations while simultaneously maintaining service availability through integrated failover mechanisms, eliminating the need for separate dedicated redundant systems.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8141065B2Method and apparatus for performing non service affecting software upgrades in place
Publication Date: 2012.03.20 WSOU INVESTMENTS LLC
  • US8141065B2 patent drawing
  • US8141065B2 patent drawing
  • US8141065B2 patent drawing

AI summary

The invention includes a method and apparatus for dynamically defining and instantiating an undefined portion of a graph, where the graph has a plurality of states and a plurality of state transitions. A method includes executing the graph where the graph comprises a defined portion and an undefined portion and a plurality of tokens traverse the graph executing functions, suspending the one of the tokens in response to the one of the tokens detecting the undefined portion of the graph, generating a new portion of the graph for the undefined portion of the graph, replacing the undefined portion of the graph with the new portion of the graph, and releasing the suspended token. The new portion of the graph is generated by generating at least one definition file for the undefined portion of the graph and executing the at least one definition file to form thereby the new portion of the graph. The at least one definition file is generated by obtaining information adapted for defining the undefined portion of the graph and generating the at least one definition file using the obtained information.