Software Version Compatibility Metadata and Message Queuing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems fail to maintain compatibility between different versions of software programs across multiple devices, leading to incompatibilities and loss of functionality when updates are applied without ensuring compatibility across devices.

Innovation Solution

The system employs compatibility metadata to determine compatible versions of programs and messages, allowing devices to transition states and queue messages to prioritize traffic and prevent errors during updates, ensuring that updates are applied only when compatibility is maintained across devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a program is updated to a new version on one device, then the program gains bug fixes and improved features, but it may become incompatible with other programs on separate devices

Engineering Contradiction:
Improveprogram functionalityVSAvoidinter-program compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary compatibility checking before allowing program updates. Compatibility metadata is analyzed in advance to determine whether updating a program would create incompatibilities with other programs on the same or connected devices. This preliminary action prevents incompatible updates from being applied, thereby maintaining inter-program compatibility while still allowing safe updates to proceed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If updates are applied automatically to programs on multiple devices, then program versions are kept current, but compatibility between programs on different devices may be lost

Engineering Contradiction:
Improveupdate efficiencyVSAvoidinter-device compatibility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms where devices exchange compatibility information and update status with each other. When a program is updated on one device, the system provides feedback to connected devices about the update status and compatibility implications. This feedback loop allows the system to coordinate updates across multiple devices, ensuring that compatibility is maintained while still enabling efficient updates to be applied.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If a user applies available updates to programs on one device, then the program gets improved functionality, but the functionality of programs on other devices may be crippled

Engineering Contradiction:
Improveupdate applicationVSAvoidfunctionality loss
Core Design Contradiction:
Ease of operationVSObject-generated harmful factors

Solution Approach 1:

The system applies preliminary anti-action by preventing incompatible updates from being applied in the first place. Before allowing an update to be applied, the system checks compatibility metadata and determines whether the update would cause functionality loss on the current device or connected devices. If incompatibility is detected, the update is blocked or the user is warned, thereby preventing the harmful effect of functionality loss before it can occur.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS10095500B2Revision locking
Publication Date: 2018.10.09 APPLE INC
  • US10095500B2 patent drawing
  • US10095500B2 patent drawing
  • US10095500B2 patent drawing

AI summary

When a new version of a first program is to be installed on a first device, metadata supplied to that device specifies which versions of a second program stored on a second device are compatible with the new version. The first device uses this metadata to determine a compatibility classification that indicates how compatible the current version of the second program and the new version of the first program are, and transitions to a state representative of this compatibility classification. A process executing on the first device receives messages from applications executing on the first device. The process reads mappings between these applications and the message types these applications send. The process forwards an application's message to the second device if the application sends a message type allowable in the first device's state. Otherwise, the process queues that message at least until the first device transitions to a different state.