Dynamic Service Provisioning for Client Resource Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current client-server computing systems face challenges in managing diverse clients with varying capabilities and resources, leading to inefficient use of memory, storage, and server resources, as well as limitations in adapting to different client platforms and maintaining state information.

Innovation Solution

The system provides information handling capabilities on an as-needed basis, selecting and uploading appropriate services to clients based on factors like operating system, connection speed, and geographic location, while eliminating unused services and retaining state information at the server for efficient client interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If services are permanently installed at the client computer, then functionality is available when needed, but precious client resources are consumed

Engineering Contradiction:
Improvefunctionality availabilityVSAvoidclient resources
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The system dynamically loads and unloads services based on client needs. Services are not permanently installed but are loaded into the client's virtual machine when required and unloaded when not needed, making the resource allocation dynamic rather than static. This resolves the contradiction by providing functionality availability only when needed while freeing client resources when services are not in use.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The service functionality is extracted from permanent client installation and moved to a on-demand loading model. The essential service code is extracted from the client's permanent storage and replaced with a mechanism that retrieves services from the server only when needed, thereby reducing the permanent resource consumption at the client while maintaining functionality availability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If Java Virtual Machine code is downloaded in full upon accessing the page, then the page can be viewed, but resources in excess of available computing or storage capabilities are required

Engineering Contradiction:
Improvepage viewing capabilityVSAvoidcomputing and storage resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The Java Virtual Machine code is segmented into individual service components that can be loaded separately. Instead of downloading the entire JVM codebase, only the specific service code needed for the current page is downloaded and loaded into the virtual machine. This segmentation allows page viewing capability while reducing the resource requirements to only what is necessary for the specific task.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system downloads only the partial amount of code necessary to view the current page rather than the full JVM codebase. This partial action principle ensures that the client downloads and stores only the minimal required resources (the specific service code for the current page) while still achieving full page viewing capability.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If Java Virtual Machine code is discarded upon exiting the page, then memory is freed, but browsing state information is lost requiring reinitialization

Engineering Contradiction:
Improvememory usageVSAvoidreinitialization time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system implements feedback mechanisms where the virtual machine retains state information about the service code even after the page is exited. The service code remains loaded in the virtual machine's memory space, and its state is preserved through feedback loops that maintain the service instance. This allows the client to return to previously viewed pages without full reinitialization, reducing time loss while managing memory through service lifecycle management rather than complete discard.

Inventive Principle:
Principle #23Feedback

4Ease of manufacture

If content is developed for desktop computers, then communication with standard clients is facilitated, but content is not well suited for dramatically different platforms

Engineering Contradiction:
Improvecontent developmentVSAvoidplatform compatibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The system creates universal service code that can function across multiple client platforms. Instead of developing separate content for each platform, a single service code is developed that can be executed in any virtual machine environment. The service code is designed with multi-functionality to adapt to different client capabilities (desktop, mobile, embedded devices) while maintaining the same core functionality, thereby achieving platform compatibility without sacrificing ease of manufacture.

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

Solution Approach 2:

The service code utilizes parameter changes to adapt to different client platforms. The same service code can execute on diverse platforms by changing its operational parameters based on the client's capabilities and environment. This allows content to be developed once for desktop computers while automatically adapting to dramatically different platforms through parameter adjustments rather than requiring separate content versions.

Inventive Principle:
Principle #35Parameter changes

5Reliability

If all data and executable code are loaded in the server at all times, then all services are always available, but substantial server resources are consumed

Engineering Contradiction:
Improveservice availabilityVSAvoidserver resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The server implements dynamic service loading and unloading based on real-time client requests. Instead of keeping all services permanently loaded, the server dynamically loads only the services that are currently needed by active clients and unloads services when no clients are using them. This dynamic approach maintains service availability for all clients while reducing server resource consumption by keeping only necessary services in memory at any given time.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The server periodically evaluates which services are currently in use and adjusts its resource allocation accordingly. Through periodic monitoring and service lifecycle management, the server ensures that services are loaded when needed and unloaded when not needed, maintaining continuous service availability while optimizing server resource usage through periodic rather than continuous loading of all services.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8001259B2Pervasive, distributed provision of services such as product brokerage
Publication Date: 2011.08.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8001259B2 patent drawing
  • US8001259B2 patent drawing
  • US8001259B2 patent drawing

AI summary

A client-server computing system suited particularly for homogenous clients of varying functional capabilities. Information handling capabilities are provided at the client and server on a customized, as-needed basis. When a service is needed by a client, the server determines a number of factors that may be relevant to the manner in which the service is to be provided. Then, the server selects from between two or more services having different executable code, and uploads the selected service to the client. Thus, the code may be tailored to the client's capabilities, or other aspects of its function. Services are not permanently retained by a client; rather, the client performs an analysis to determine whether services should be retained or purged. Also, state information is not permanently retained by a client; the server retains the information and uploads that information to the client. The server also manages its resources by loading service components on an as-needed basis.