Dynamic Software Module Loading via Environment Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large computer systems face challenges in speed of change and complexity due to incremental development and expansion, leading to entropy and difficulty in modifying components, especially in environments requiring mobile and consumer device readiness and function portability across different customer segments.

Innovation Solution

A method and system for dynamically loading an executable composite software application on a user device by maintaining an enterprise universe of application modules, filtering them based on environment definitions, and launching relevant modules through container modules, considering criteria such as minimum certification levels and user authentication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a system is built as a single manageable unit and expanded incrementally by adding components, then the system can be developed quickly and easily in the short term, but it becomes exceeding difficult to change components at a later stage and entropy creeps into the system

Engineering Contradiction:
Improvespeed of developmentVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the monolithic software system into independent, deployable microservices that can be developed, deployed, and scaled separately. Each microservice is a self-contained unit with its own business logic, data access, and deployment lifecycle, allowing teams to work independently without affecting other parts of the system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system employs dynamic service registration and discovery mechanisms that allow microservices to be added, removed, or updated at runtime without requiring system-wide redeployment. The service registry dynamically tracks available services, enabling the system to adapt to changing component configurations in real-time.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If additional components are added to broaden functional breadth, then the system can serve more customer segments and functions, but it becomes exceeding difficult to change the further component at a later stage

Engineering Contradiction:
Improvefunctional breadthVSAvoidease of modification
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent segments the system into independent microservices that can be selectively deployed based on functional requirements. Each service encapsulates specific business functionality, allowing the system to broaden its capabilities by adding new services without complicating the modification of existing ones.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements a universal service registry and standardized communication protocols that allow diverse microservices to be integrated uniformly. This universal interface layer enables different types of services (customer-facing, backend, analytics) to be added and modified through the same deployment mechanisms.

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

3Ease of operation

If the system is managed and operated as a single unit, then operational simplicity is maintained initially, but speed of change and portability of functions across different customer segments is reduced

Engineering Contradiction:
Improveoperational simplicityVSAvoidspeed of change
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system uses dynamic service discovery and load balancing that automatically manage the complexity of multiple microservices. The service registry and gateway automatically route requests to appropriate services, maintaining operational simplicity for users while enabling rapid changes in the underlying service architecture.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces a service gateway as an intermediary layer that abstracts the complexity of multiple microservices from end users. The gateway handles service routing, authentication, and load balancing, allowing the system to operate as a unified interface while supporting independent service deployment and rapid iteration.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Stability of the object's composition

If components are tightly integrated in a monolithic system, then system coherence is maintained, but portability of functions across different customer segments and mobile devices is reduced

Engineering Contradiction:
Improvesystem coherenceVSAvoidportability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent segments the monolithic application into independent microservices that can be selectively deployed to different environments (mobile, web, desktop). Each service maintains its own data access layer and business logic, enabling the same service to be ported across different customer segments and device types without compromising system coherence.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements universal service interfaces and standardized communication protocols that allow microservices to be accessed uniformly across different platforms and customer segments. This enables a single service to serve multiple contexts (mobile app, web portal, API client) while maintaining consistent behavior and data access patterns.

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

Data Source

PatentUS9513936B2Dynamically loadable composite software application
Publication Date: 2016.12.06 COMMONWEALTH BANK OF AUSTRALIA
  • US9513936B2 patent drawing
  • US9513936B2 patent drawing
  • US9513936B2 patent drawing

AI summary

The present invention provides a method of and system for dynamically loading an executable composite software application, for use on a user device. An enterprise universe including multiple application modules is maintained, with each application module being configured to perform a particular functionality within the software application. This universe is filtered in terms of a particular environment definition to result in an environment subset of application modules, wherein the environment definition defines criteria according to which application modules exist in the environment. In response to receiving a container launch request from a user device, one or more application modules from the environment subset is launched as the executable composite software application on the user device through a container module associated with the user device.