Service Agent Abstraction for Version Compatibility and Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Client applications accessing remote backend services face challenges due to tight coupling with specific service versions, leading to increased maintenance and performance issues from network delays and unnecessary network traffic, especially when dealing with stale cached data.

Innovation Solution

A service agent abstraction allows client applications to interact with multiple service versions and platforms, including demonstration modes, while a caching framework manages data validity and storage agnostically, using IndexedDB for cache management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If client applications are tightly coupled to specific service versions, then the application can access service functionality, but the application requires frequent updates and increased maintenance when service versions change

Engineering Contradiction:
Improveservice version compatibilityVSAvoidapplication maintenance complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a service adapter as an intermediary layer between the client application and the backend service. This adapter handles version-specific communication protocols and data formats, allowing the application to work with multiple service versions without requiring updates. The adapter translates between different service versions and the application's unified interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the service integration logic into separate adapter components for different service versions. Each adapter is an independent module that can be configured or updated without affecting the core application or other adapters, thereby reducing maintenance complexity while maintaining adaptability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If data is always retrieved from the server, then the application ensures data currency, but the application increases network traffic and suffers performance reduction due to network delays

Engineering Contradiction:
Improvedata currencyVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a caching mechanism that pre-loads and stores frequently accessed data locally on the client device. The cache stores data with associated freshness metadata, allowing the application to retrieve data locally without network delays while maintaining data currency through selective refreshes based on the metadata.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a local cache is used to store server data, then the application reduces network traffic and improves performance, but the application risks using stale data that has become outdated

Engineering Contradiction:
Improveapplication performanceVSAvoiddata currency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where the cache system continuously monitors data freshness using metadata (such as timestamps or version identifiers). When data exceeds its freshness threshold, the system automatically triggers a refresh by querying the server for updated data, ensuring data currency while maintaining performance benefits of local caching.

Inventive Principle:
Principle #23Feedback

4Reliability

If the client application queries the server to check cache data validity, then the application ensures data currency, but the application increases network traffic and reduces performance

Engineering Contradiction:
Improvedata currency verificationVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a partial validation approach where the application only queries the server for cache validation when absolutely necessary (such as when metadata indicates potential staleness or when forced refresh is triggered). Most cache accesses are served locally without server validation, reducing network traffic while maintaining data currency through selective validation.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10909064B2Application architecture supporting multiple services and caching
Publication Date: 2021.02.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10909064B2 patent drawing
  • US10909064B2 patent drawing
  • US10909064B2 patent drawing

AI summary

A service agent provides an interface for the actions that a client application needs to perform against a server. The service agent selects an appropriate service implementation based on configuration information. The service implementation is associated with a particular service version or source. A number of service implementations are available to the service agent. The service agent also creates a cache service instance that is compatible with the service instance. The client application makes data requests through the service agent. The cache service retrieves requested data from a local storage or from a selected service, if the data is not available locally. The cache service stores an expiration value with the data in the cache. The expiration value is retrieved when data is requested from the cache. The cache data is returned only if the expiration value has not exceeded an expiration policy.