Model Driven Customization Framework for Software Upgrade Conflicts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in efficiently managing and applying customizations across multiple layers when updating a base system, leading to potential conflicts and increased developer time, as customizations made by different entities (ISVs, VARs, and end-users) can be incompatible with updates, requiring manual handling and increasing the risk of errors.

Innovation Solution

A system comprising an upgrade system, a difference generation system, a combining engine, and a difference application engine that detects user upgrades, retrieves customized versions, combines customizations with upgrade changes, and applies these changes to the base system, ensuring compatibility and efficient customization management, while utilizing a meta-model to inspect and apply changes effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If customizations are applied by overwriting base application models, then the base system can be customized to meet organizational requirements, but conflicts arise during upgrades and manual handling increases developer time and error risk

Engineering Contradiction:
Improvecustomization capabilityVSAvoiddeveloper time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the customization management process into distinct components: a customization manager that tracks customizations separately from the base system, a difference generation system that identifies changes, and a combining engine that merges customizations with updates. This segmentation automates what was previously manual work, reducing developer time while preserving full customization capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary customization manager that acts as a mediator between the base system and customizations. This intermediary tracks customizations independently and facilitates automated merging during upgrades, eliminating the need for manual conflict resolution and reducing developer intervention time.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If customizations are applied by overwriting base application models, then the base system can be customized to meet organizational requirements, but conflicts arise during upgrades requiring manual handling

Engineering Contradiction:
Improvecustomization capabilityVSAvoiderror likelihood
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms through the customization manager that continuously tracks customizations and provides information to the combining engine. This feedback loop enables automated detection and resolution of conflicts between customizations and base system updates, reducing manual intervention and minimizing errors.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system enables self-service automation where the customization manager and combining engine automatically manage customization tracking, conflict detection, and merging during upgrades. This self-service approach eliminates manual conflict resolution processes, reducing both developer time and error likelihood.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If multiple layers of customization are applied by different entities, then the system can be heavily customized to meet specific organizational needs, but managing and applying these customizations during upgrades becomes complex

Engineering Contradiction:
Improvemulti-layer customizationVSAvoidcustomization management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the management of multiple customization layers by introducing a hierarchical tracking structure where the customization manager independently records each layer's changes. The combining engine then systematically processes these segmented layers during upgrades, automating the complex merging process and reducing management complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The customization manager serves as an intermediary that consolidates information from multiple customization layers and presents a unified view to the combining engine. This intermediary abstraction simplifies the management of multi-layer customizations by handling the complexity of tracking and merging automatically.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If customizations are applied by overwriting base application models, then the base system can be customized, but upgrade processes require manual handling increasing error risk

Engineering Contradiction:
Improveupgrade efficiencyVSAvoiderror likelihood
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements self-service automation where the difference generation system automatically identifies changes, the customization manager tracks customizations, and the combining engine automatically merges them during upgrades. This automated self-service process eliminates manual handling, simultaneously improving upgrade efficiency and reducing error likelihood.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback mechanisms where the customization manager continuously monitors customizations and provides real-time information to the combining engine during upgrades. This feedback enables automated conflict detection and resolution, improving upgrade efficiency while maintaining high reliability by eliminating manual errors.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10067755B2Model driven customization framework
Publication Date: 2018.09.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10067755B2 patent drawing
  • US10067755B2 patent drawing
  • US10067755B2 patent drawing

AI summary

A computing system comprises, in one example, an upgrade system configured to detect a user upgrade input indicating that a base version of a computing system is to be upgraded, by applying a set of upgrade changes to the base version, to obtain an upgraded version of the computing system, a difference generation system configured to retrieve a customized version of the base version of the computing system and identify that the customized version corresponds to the base version with customizations applied, a combining engine configured to obtain the customizations applied to the base version and the upgrade changes, and combine the customizations with the upgrade changes to obtain a full set of changes, and a difference application engine configured to apply the full set of changes to the base version of the computing system to obtain a customized, upgraded version of the computing system.