Dynamic API Descriptor Loading for Set-Top Box Customization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Embedded electronic devices, such as set-top boxes, require customization by service providers to differentiate their offerings, but the complex and changing application programming interface (API) between user interface software and other software components poses challenges for manufacturers and service providers, leading to indirect control and burdensome updates for service providers.

Innovation Solution

A method for dynamically determining and utilizing an application programming interface (API) within electronic devices, where definitions of objects are received, generated, and transferred to the API, allowing software applications to adapt to specific API versions at runtime, eliminating the need for constant revisions and enabling a single version of software to work across different API versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Stability of the object's composition

If the manufacturer maintains complete control over the firmware and software to manage the complex API, then the API stability is improved, but the service provider's customization capability deteriorates

Engineering Contradiction:
ImproveAPI stabilityVSAvoidService provider customization capability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The system segments the API interaction into two independent components: an API descriptor that defines the interface structure and a software application that consumes it. This segmentation allows the manufacturer to control the API descriptor for stability while enabling service providers to customize their software applications without conflicting with the core API structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The API descriptor is generated and registered in advance before the software application executes. This preliminary action establishes a stable contract between the manufacturer's API and the service provider's software, allowing customization to occur within predefined boundaries without compromising API stability.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the manufacturer updates the user interface for each service provider and device model, then the customization requirement is met, but the workload and time consumption increase

Engineering Contradiction:
ImproveCustomization for each service providerVSAvoidTime for updating user interface
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system creates a universal software application that can operate with multiple different API descriptors corresponding to different service providers and device models. A single software version can adapt to various customizations by loading appropriate API descriptors at runtime, eliminating the need to develop and maintain separate software versions for each provider.

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

Solution Approach 2:

Instead of changing the software code for each customization, the system changes the API descriptor parameters dynamically. The software application adapts to different service providers by loading different API descriptor configurations, allowing customization through parameter changes rather than code modifications.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the software is recompiled for each API version change, then the compatibility with the latest API is ensured, but the productivity and deployment speed deteriorate

Engineering Contradiction:
ImproveCompatibility with latest API versionVSAvoidSoftware update deployment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements dynamic API descriptor loading, where the software application can load and switch between different API descriptor versions at runtime without recompilation. This dynamic approach allows the software to adapt to the latest API versions by simply loading updated descriptors, maintaining compatibility while avoiding the time-consuming recompilation process.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The API descriptor acts as an intermediary layer between the software application and the actual API implementation. When the API version changes, only the descriptor needs to be updated, not the application code itself. This intermediary mechanism preserves compatibility while enabling rapid adaptation to new API versions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9374441B2Dynamically determining and utilizing an application programming interface of an electronic device
Publication Date: 2016.06.21 DISH TECHNOLOGIES LLC
  • US9374441B2 patent drawing
  • US9374441B2 patent drawing
  • US9374441B2 patent drawing

AI summary

A method of dynamically determining and utilizing an application programming interface within an electronic device is presented. In the method, a definition of an object is received from the application programming interface, wherein the definition describes at least a portion of the application programming interface. The object is then generated based on the definition, wherein the object includes data for controlling the electronic device. The object is transferred to the application programming interface.