Java Library Integration for File Descriptor Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a Java execution environment, the consumption of file descriptors increases with the number of libraries used, leading to performance issues and instability, especially in embedded devices with limited resources, as conventional techniques fail to manage library usage effectively.

Innovation Solution

An information processing apparatus and method that integrates multiple libraries into a single integrated library, reducing the number of libraries accessed by the class loader, thereby minimizing file descriptor consumption and optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple libraries are used to provide more functions and enhance software, then the functionality and versatility of the system is improved, but the number of file descriptors consumed increases, leading to resource exhaustion and system instability

Engineering Contradiction:
ImprovefunctionalityVSAvoidfile descriptor consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple JAR library files into a single integrated JAR file. The class loader opens this single integrated library instead of multiple separate libraries, reducing file descriptor consumption from N descriptors (one per library) to just one descriptor, while still providing access to all classes from the original multiple libraries

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The integrated JAR file serves as a universal container that consolidates the functionality of multiple separate libraries. A single file descriptor to this integrated library provides access to classes that were previously distributed across multiple libraries, making the system both more versatile and more resource-efficient

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

2Ease of operation

If libraries are kept separate to maintain modularity and enable direct access, then the ease of operation and flexibility is improved, but the number of opened libraries increases, consuming more file descriptors and affecting processing activation

Engineering Contradiction:
Improvedirect access capabilityVSAvoidprocessing activation
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Multiple separate library files are merged into a single integrated JAR file, reducing the number of file open operations from multiple to one, thereby improving processing activation while maintaining the ability to access all necessary classes

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If libraries are integrated into fewer files to reduce file descriptor consumption, then resource usage is optimized, but the complexity of managing library integration increases

Engineering Contradiction:
Improvefile descriptor usageVSAvoidlibrary management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The library integration is performed in advance during system initialization or deployment, creating a single integrated JAR file that contains all necessary classes. This preliminary action eliminates the need for complex runtime library management, as the class loader simply needs to open and search one pre-integrated file

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10387168B2Information processing apparatus and library management method
Publication Date: 2019.08.20 CANON KK
  • US10387168B2 patent drawing
  • US10387168B2 patent drawing
  • US10387168B2 patent drawing

AI summary

As a portion of processing for activation an apparatus or when an application is installed, a Lib management module determines whether there is a plurality of libraries in a setting of a class path, and, in a case of determining that a plurality of libraries are set, expands the set libraries, and after integrating them as a new library, sets the newly generated library as the class path. In addition, the Lib management module deletes libraries that are included in the library after the integration except for those that are directly accessed.