Automated Client Software Version Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In client-server environments, software version mismatches between the client and server can lead to program crashes and data corruption, particularly since the server software often dictates the version and includes both server and client parts, making manual version management prone to errors and incompatibilities.

Innovation Solution

A system and method for automated versioning of software on a client machine, where the client determines its installed modules' versions, communicates this information to a server, and receives and automatically installs updates, supporting multiple platforms and programming languages, and enabling over-the-network installation, including prerequisite software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual version management is used, then users have control over installation timing, but version mismatches between client and server occur leading to crashes and data corruption

Engineering Contradiction:
Improvesoftware compatibilityVSAvoidmanual version management
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system enables automatic self-updating of client software by having the client determine its installed modules, communicate version information to the server, receive updates, and automatically install them without human intervention. This self-service mechanism ensures version synchronization between client and server, eliminating crashes and data corruption caused by version mismatches.

Inventive Principle:
Principle #25Self-service

2Reliability

If automatic update mechanism is implemented, then version synchronization between client and server is ensured, but system complexity increases

Engineering Contradiction:
Improveversion compatibilityVSAvoidupdate system architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The automatic update system is segmented into distinct functional modules: a version determination module on the client that identifies installed modules and their versions, a communication module that transmits version information to the server, and an automatic installation module that receives and installs updates. This segmentation manages system complexity by organizing the automatic update functionality into manageable, independent components.

Inventive Principle:
Principle #1Segmentation

3Productivity

If over-the-network installation is performed, then installation speed is improved, but network dependency increases

Engineering Contradiction:
Improveinstallation speedVSAvoidnetwork requirement
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary actions by having the client determine and communicate its installed modules' version information to the server before the actual update installation occurs. This preliminary version checking and communication phase allows the server to prepare appropriate updates in advance, enabling faster over-the-network installation while maintaining adaptability to different network conditions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9213536B2Method and architecture for automatic installation and self-updating of client-side computer software
Publication Date: 2015.12.15 SAP IRELAND LTD
  • US9213536B2 patent drawing
  • US9213536B2 patent drawing
  • US9213536B2 patent drawing

AI summary

Embodiments include systems and methods for automated versioning of software on a client machine, allowing installation and updates over multiple platforms with modules written in different computer languages. In an embodiment, the client sends a list of installed modules to the server. This may be done by causing a client processor to perform method calls determining version information of the installed product. The server then checks the list and sends updates (if any) that are then automatically installed on the client. Some embodiments can perform software installation over-the-network, and prerequisite software may also be automatically installed on the client machine. The system may work on multiple platforms (e.g. Windows™, UNIX) and support multiple computer languages (e.g. C++, Java®, Python®, .NET, etc.).