Dynamic System Model Versioning for Back-End Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software applications often struggle to adapt to different versions of back-end server systems, as service operations and object properties change, leading to compatibility issues and the need for version-specific code, which limits flexibility and scalability.

Innovation Solution

Implementing a dynamically changeable system model that is customizable per version, allowing programmatic generation and extension of system models at runtime, by determining available managed system objects and relationships, and providing version-specific objects and properties based on managed system information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If version-specific code is used to handle different back-end server versions, then compatibility with specific versions is improved, but device complexity and scalability deteriorate

Engineering Contradiction:
Improveversion compatibilityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system model is designed to be dynamically changeable, allowing it to adapt its structure at runtime based on the back-end server version. The model can be programmatically generated and extended to match different versions without requiring static version-specific code, thus reducing code complexity while maintaining compatibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

A single system model is designed to work across multiple back-end server versions by incorporating version-specific objects and properties dynamically. This universal model eliminates the need for separate version-specific codebases, reducing overall system complexity while maintaining reliability across versions.

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

2Device complexity

If a single system model is used across multiple versions, then device complexity is reduced, but adaptability to version changes deteriorates

Engineering Contradiction:
Improvecode complexityVSAvoidversion adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system model incorporates dynamic mechanisms that allow it to change its structure at runtime based on the detected back-end server version. Version-specific objects and properties are programmatically added or removed from the model as needed, enabling a single model to adapt to multiple versions without increasing code complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system model changes its parameters and structure dynamically based on the back-end server version. By programmatically generating and extending the model with version-specific objects and properties, the system maintains adaptability across versions while using a single unified codebase, thus reducing complexity.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If object properties are converted between models for different back-end versions, then compatibility is improved, but loss of time and productivity deteriorate

Engineering Contradiction:
Improveversion compatibilityVSAvoidconversion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of converting object properties between different models, the system dynamically generates a single model that is appropriate for the detected back-end server version. This eliminates the time-consuming conversion process while maintaining compatibility, as the model structure adapts automatically rather than requiring property transformation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9141411B2Model slicing and versioning
Publication Date: 2015.09.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9141411B2 patent drawing
  • US9141411B2 patent drawing
  • US9141411B2 patent drawing

AI summary

Embodiments are directed to implementing a dynamically changeable system model that is customizable per version, programmatically generating system models at runtime and to extending a programmatically generated system model. In an embodiment, a computer system determines that a dynamically changeable system model corresponds to a managed system. The dynamically changeable system model includes various managed system objects. The computer system indicates for the dynamically changeable system model which managed system objects are available in each version of the managed system. The available managed system objects are stored in a data store of the dynamically changeable system model. The computer system requests the managed system to provide current managed system information including at least a version identifier and, based on the managed system information indicated by the managed system, provides to the dynamically changeable system model those managed system objects that are provided by the indicated version of the managed system.