Self-Updating Application Agent for Automated Software Version Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users face downtime and increased costs due to the need for manual intervention in updating software applications, which often goes unaddressed or incomplete due to the complexity of identifying and installing updates, especially in secured environments like financial institutions or hospitals.

Innovation Solution

A self-updating mechanism where an application agent, operating remotely with a secured data store, periodically communicates its version to a data center update module, allowing for automatic updates when discrepancies are detected, ensuring the agent version matches the expected version without user interaction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual update process is used, then user control over update timing is improved, but system downtime increases

Engineering Contradiction:
Improveuser controlVSAvoidsystem downtime
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The application agent automatically checks for updates, downloads them, and performs self-updates without requiring user intervention. The system monitors its own version status and executes update procedures autonomously, eliminating the need for users to manually check and install updates while minimizing downtime through automated scheduling.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs update checks and downloads update packages in advance during periods of low utilization. Update files are retrieved and prepared before they are actually needed, so when an update is required, the installation can proceed immediately without waiting for download, thereby reducing system downtime.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If manual update process is used, then update installation flexibility is improved, but operational costs increase

Engineering Contradiction:
Improveupdate flexibilityVSAvoidoperational costs
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The application agent autonomously manages the entire update lifecycle including checking for updates, downloading update packages, installing updates, and verifying successful installation. This eliminates the need for dedicated IT staff to manually manage updates across multiple systems, significantly reducing operational costs while maintaining update flexibility through configurable update policies.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system continuously monitors its own version status by comparing current version information with available update information. This feedback mechanism enables automated decision-making about when to update, allowing the system to balance update timing with operational requirements without manual intervention, thereby reducing costs while maintaining flexibility.

Inventive Principle:
Principle #23Feedback

3Productivity

If automated update mechanism is implemented, then system productivity is improved, but device complexity increases

Engineering Contradiction:
Improveupdate efficiencyVSAvoidupdate mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The update functionality is separated into a distinct application agent component that operates independently from the main application. The agent is further divided into modular sub-functions: version checking, update downloading, update installation, and verification. This segmentation allows each module to be developed and maintained independently, managing complexity while enabling automated updates that significantly improve productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The application agent serves as an intermediary between the main application and the update management system. It handles all complex update operations autonomously, presenting a simple interface to the user while managing the complexity of update checks, downloads, installations, and verifications in the background, thereby improving productivity without exposing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If update checks are performed frequently, then software reliability is improved, but network bandwidth consumption increases

Engineering Contradiction:
Improvesoftware currencyVSAvoidnetwork bandwidth
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The application agent performs update checks at predetermined intervals rather than continuously. The check frequency is configured based on update importance and network conditions, balancing the need for current software with network bandwidth conservation. This periodic approach maintains software reliability while significantly reducing unnecessary network traffic compared to continuous checking.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system dynamically adjusts update check parameters such as frequency and timing based on operational conditions, network availability, and update urgency. During periods of high network traffic or low system utilization, check parameters are modified to optimize the balance between maintaining software currency and conserving network bandwidth, thereby improving reliability efficiently.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9400642B2Self-updating application agent
Publication Date: 2016.07.26 HARRIS DAWN HLDG INC
  • US9400642B2 patent drawing
  • US9400642B2 patent drawing
  • US9400642B2 patent drawing

AI summary

Methods, apparatuses, and computer program products are described herein that are configured to enable a self-update. In some example embodiments, a method is provided that comprises receiving a communication from a data center update module, the communication comprising an expected agent version identifier. The method of this embodiment may also include determining whether the expected agent version identifier is equal to a current agent version identifier. The method of this embodiment may also include causing an application agent to perform a self-update in an instance in which the expected agent version identifier is not equal to a current agent version identifier.