Dynamic Graph Software Upgrade Engine
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Loss of time
If the software application is deployed with partial functionality, then the deployment time is reduced, but the software completeness deteriorates
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.
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.
3Reliability
If the software upgrade requires system shutdown, then the upgrade reliability is improved, but the service availability deteriorates
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.
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.
4Productivity
If redundant systems are used for software updates, then the service availability is maintained, but the system complexity increases
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.
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.
Data Source
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.


