Assembly Manager for Selective Client Code Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software deployment methods are inefficient and resource-intensive, particularly due to the need for universal installations that include irrelevant client-specific code, leading to increased memory usage, network traffic, and lengthy update schedules, especially when clients use third-party servers where the software provider lacks update permissions.

Innovation Solution

An assembly management system that compiles client-specific code, versions it, and stores it in a repository, allowing for selective deployment of general application code to clients, with client-specific assemblies retrieved and executed only when necessary, either written to disk or streamed for memory execution depending on permissions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a universal installation containing all clients' code is deployed to all clients, then all clients receive the complete application code, but memory usage increases and irrelevant code is installed on each client device

Engineering Contradiction:
Improvecode completenessVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the application code into two distinct parts: universal code (common to all clients) and client-specific code (unique to each client). The universal installation only contains the universal code, while client-specific code is delivered separately through a web service interface. This segmentation eliminates the need to distribute all clients' code to every device, thereby reducing memory usage while maintaining code completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts client-specific code from the universal installation package. Instead of bundling all clients' code together, the system separates client-specific assemblies and makes them available on-demand through a web service. This extraction allows the universal installation to be lean and efficient, while still providing access to complete functionality when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If a universal installation containing all clients' code is deployed, then all clients can access the application, but regression testing becomes costly and time consuming

Engineering Contradiction:
Improveclient coverageVSAvoidtesting time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

By segmenting the codebase into universal and client-specific components, the patent enables independent testing of each segment. Universal code can be tested once and applied to all clients, while client-specific code can be tested separately. This segmentation dramatically reduces regression testing time and costs compared to testing the complete universal installation for every client.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs partial testing by only testing the universal code once and relying on modular design to ensure client-specific code integrates correctly. This partial action approach avoids the excessive action of fully testing every combination of universal and client-specific code, thereby reducing testing time while maintaining quality.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If a client-specific installation is created for each client, then each client receives only their relevant code, but the number of deployments increases and management becomes difficult

Engineering Contradiction:
Improvecode relevanceVSAvoiddeployment management
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent merges the benefits of client-specific installations with the simplicity of universal deployment. A single universal installation package is distributed to all clients, but the system combines it with on-demand delivery of client-specific code through a web service. This merging approach maintains code relevance while avoiding the complexity of managing multiple separate deployments.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The universal installation package serves as a multi-functional base that can be deployed to any client. The system then uses a web service interface to add client-specific functionality on-demand. This universality allows a single deployment mechanism to serve all clients while still providing customized code, thereby reducing deployment management complexity.

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

4Reliability

If updates are performed on third party servers where the provider lacks permission, then the application can be updated, but the update schedule becomes lengthy and dependent on client IT departments

Engineering Contradiction:
Improveupdate capabilityVSAvoidupdate speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements preliminary action by having the universal installation package pre-configured with all necessary update mechanisms and permissions. The system prepares client-specific code assemblies in advance and makes them available through a web service interface. This preliminary preparation allows updates to be applied quickly without requiring lengthy approval processes from third-party server administrators or client IT departments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The update system is designed to be self-service capable within the permissions it has been granted. The universal installation includes automated update mechanisms that can independently retrieve and apply updates without requiring manual intervention from client IT departments. This self-service approach significantly accelerates the update process while maintaining reliability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10701057B2Assembly manager
Publication Date: 2020.06.30 EXPERIAN HEALTH INC
  • US10701057B2 patent drawing
  • US10701057B2 patent drawing
  • US10701057B2 patent drawing

AI summary

An assembly management system allows a software service provider (SSP) to compile and upload client-specific client application code into a repository. The SSP deploys a client application comprising non-client-specific code to various clients. When a user logs in, a call is made to a web service, which queries the repository for code specific to the requesting client. If available, the web service sends a response with the name and version of the assembly to which the client is subscribed. If the locally-saved version does not match the version of the assembly in the repository, and if the SSP has permission to write to the client's disk, the web service retrieves the assembly and commits it to the disk. If the SSP does not have permission, the assembly is streamed to the client device and retained and executed in memory for the duration of the login.