Shared Resource Allocation for Cloud Application Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In platform as a service (PAAS) cloud environments, deploying applications with shared utility modules is inefficient due to duplicate copies of modules being installed across multiple runtime instances, leading to wasteful disk and memory usage, as well as increased loading and CPU cycles.

Innovation Solution

A method is implemented to identify and select an existing runtime instance with the greatest number of shared resources matching the required application modules, allowing for installation of new applications to utilize these shared resources, thereby reducing duplicate copies and optimizing resource usage by converting utility modules from 'by value' to 'by reference' and linking them to existing shared resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If application modules are installed with their own copies of utility modules, then installation and deployment is simple and straightforward, but disk space and memory usage increases significantly due to duplicate copies

Engineering Contradiction:
Improveinstallation simplicityVSAvoiddisk space usage
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent merges duplicate utility modules across multiple application modules by installing them once as shared resources in a common bundle repository. The OSGi framework enables multiple application modules to reference and share the same utility module instances, eliminating redundant copies while maintaining installation simplicity through automated resource sharing mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Utility modules are transformed into universal shared resources that can be instantiated once and shared across multiple application modules. The bundle repository creates universal access points that serve multiple applications simultaneously, allowing a single utility module to fulfill the needs of many different application modules without requiring separate copies.

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

2Reliability

If multiple copies of utility modules are stored on hard disk for different application modules, then each application module has dedicated resources, but memory usage increases when multiple versions are loaded into runtime instances

Engineering Contradiction:
Improveresource availabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines multiple instances of the same utility module into a single shared instance in the bundle repository. The OSGi runtime framework manages resource sharing by allowing multiple application modules to reference the same utility module in memory, ensuring that only one copy resides in memory at a time while maintaining reliable access for all applications.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of copying utility modules to multiple locations on disk, the patent uses symbolic references and imports in the bundle manifest that point to the shared resource in the bundle repository. This creates lightweight references rather than heavy duplications, allowing multiple applications to access the same in-memory instance without actual copying.

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If utility modules are packaged as part of each application module, then deployment is straightforward, but loading time and CPU cycles increase due to repeated loading of duplicate modules

Engineering Contradiction:
Improvedeployment simplicityVSAvoidloading time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-installing shared utility modules in the common bundle repository before application modules are deployed. When application modules are installed, they automatically reference the pre-existing shared resources, eliminating the need to load utility modules repeatedly during deployment. The OSGi framework handles the referencing automatically through bundle manifest configuration.

Inventive Principle:
Principle #10Preliminary action

4Quantity of substance

If shared resources are used in a common bundle repository, then disk and memory usage is reduced, but it requires coordination between application module developers and framework administrators in advance

Engineering Contradiction:
Improveresource efficiencyVSAvoidcoordination complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling application module developers to automatically declare their utility module requirements in the bundle manifest without needing manual coordination with framework administrators. The OSGi runtime framework automatically resolves these declarations, matches them with available shared resources in the bundle repository, and configures the references automatically. This eliminates the need for advance planning meetings and manual resource allocation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9038059B2Automatically targeting application modules to individual machines and application framework runtimes instances
Publication Date: 2015.05.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9038059B2 patent drawing
  • US9038059B2 patent drawing
  • US9038059B2 patent drawing

AI summary

Methods, computer program products, and systems for installing an application at a runtime instance. A method includes receiving a request to install an application and accessing data defining shared resources required by the application. Data that defines shared resources already installed at existing runtime instances is accessed. An existing runtime instance with the greatest number of installed shared resources common to the shared resources required by the application is selected. The application is installed at the selected runtime instance.