Application Compatibility Verification via Functional Manifests

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users face unsatisfactory experiences in electronic marketplaces when applications purchased or downloaded do not support their host computers, leading to compatibility issues and a lack of refunds, as existing methods rely on specific host platforms or programs rather than functional requirements.

Innovation Solution

The proposed solution involves modifying application manifests to list required and optional functions instead of specific host programs, allowing the system to automatically expand or contract compatibility based on available host programs, ensuring applications are listed only if the user's computer supports the necessary functions, and enabling enhanced features if optional functions are available.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application manifests specify specific host platforms or programs, then the application can be targeted to work with particular software, but the application may not be compatible with the user's actual computer configuration leading to unsatisfactory user experience

Engineering Contradiction:
Improveapplication compatibilityVSAvoidhost platform flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent changes the parameters listed in application manifests from specific host program names to functional requirements. Instead of specifying 'Microsoft Word 2010', the manifest lists required functions such as 'document editing', 'file saving', and 'text formatting'. This parameter transformation allows the compatibility system to match applications with host computers based on functional capabilities rather than specific software versions, thereby improving both reliability and adaptability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent creates a universal compatibility mechanism where application requirements are expressed in terms of generic functions that can be provided by multiple different host programs. The system maintains a database of host programs and their supported functions, allowing any program that provides the required functions to satisfy the application's requirements. This universal approach resolves the contradiction by making applications adaptable to various host platforms while maintaining reliable compatibility through functional verification.

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

2Reliability

If application manifests are updated to reflect changes in host programs, then compatibility information remains current, but frequent updates increase system complexity and maintenance burden

Engineering Contradiction:
Improvecompatibility information accuracyVSAvoidmanifest update frequency
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent inverts the traditional approach by not updating application manifests when host programs change, but rather updating the host program database to reflect new capabilities. When a host program is updated or a new program is added, the system adds the program to the database with its supported functions. The compatibility determination then automatically uses this updated information without requiring manifest modifications. This inversion eliminates the need for frequent manifest updates while maintaining accurate compatibility information.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The system implements self-service compatibility determination where the automated comparison between application functional requirements and host program capabilities in the database eliminates the need for manual manifest updates. The system automatically determines compatibility by matching required functions with available functions, reducing both the frequency and complexity of updates while maintaining reliable compatibility information.

Inventive Principle:
Principle #25Self-service

3Reliability

If the system checks compatibility before allowing download, then users experience fewer compatibility issues, but the compatibility verification process increases system complexity

Engineering Contradiction:
Improveuser experience qualityVSAvoidcompatibility verification system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs compatibility verification as a preliminary action before allowing application download. The system compares the application's required functions against the host computer's available functions and only permits download if compatibility is confirmed. This preliminary check prevents users from downloading incompatible applications, thereby improving user experience quality while the automated nature of the function-matching process keeps the verification system relatively simple.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary compatibility verification layer that mediates between the application marketplace and the user's computer. This intermediary system uses the functional requirements from application manifests and the functional capabilities database to determine compatibility, acting as a buffer that simplifies the overall system architecture while providing reliable compatibility assurance to users.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2864895B1Identification of host-compatible downloadable applications
Publication Date: 2022.03.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2864895B1 patent drawingFigure 1
  • EP2864895B1 patent drawingFigure 2A~2B
  • EP2864895B1 patent drawingFigure 3

AI summary

A user's (client) computer sends a request for a listing of applications which can be downloaded from a server in an electronic marketplace and a list of functions provided by a host program. A description of an application, such as in an application manifest, provides a list of required functions and, preferably, a list of optional functions for a software application. The server sends a list of applications supported by those functions. Those supported applications are displayed to the user as being available for downloading. The user selects the desired application and the user's computer requests, and the server provides, a download of that application. The downloaded application will then operate on the user's computer using the required functions provided by the host programs, and may use any optional functions provided by the host programs.