Image Forming Apparatus Memory Isolation for Java and Native Interoperability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

When using different programming languages for software development, errors in memory operations by one program can inadvertently affect the operation of another program, leading to issues such as data loss or system crashes, particularly when programs lack memory management automation.

Innovation Solution

The solution involves isolating the logical memory spaces of different programming environments within an image forming apparatus, ensuring that errors in memory operations do not cross boundaries by using a native server and client mechanism that operates independently, allowing programs developed in different languages to execute without interfering with each other's memory spaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If programs developed in different programming languages share a logical memory space to enable calling between them, then interoperability is improved, but memory operation errors can propagate across program boundaries reducing reliability

Engineering Contradiction:
ImproveinteroperabilityVSAvoidmemory operation safety
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent divides the memory space into separate logical memory spaces for different programming languages (e.g., Java virtual machine memory space and native application memory space). This segmentation prevents memory operation errors from propagating across language boundaries while still enabling interoperability through controlled interfaces such as the native method interface that allows Java programs to call native applications without sharing the same logical memory space.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If automatic memory management is implemented to simplify programming, then ease of operation is improved, but programs lacking this feature cannot be developed in certain languages

Engineering Contradiction:
Improvememory management automationVSAvoidprogramming language compatibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces a native method interface as an intermediary layer between programs with automatic memory management (Java virtual machine) and programs without it (native applications). This intermediary enables calling between different programming languages while maintaining their respective memory management characteristics, allowing Java programs to call native applications without requiring the native applications to implement automatic memory management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3470981B1Image forming apparatus and method controlling the same
Publication Date: 2024.11.27 CANON KK
  • EP3470981B1 patent drawingFigure 1~2
  • EP3470981B1 patent drawingFigure 3
  • EP3470981B1 patent drawingFigure 4

AI summary

A native client (331, 704) transmits, in accordance with a request from an image processing plugin application executed in a Java execution environment (330), a processing request for requesting execution of image processing using a native module (316, 703) executed in a C/C++ execution environment. A native server (315, 705) receives the processing request transmitted from the native client and executes the image processing by executing the native module in accordance with the received processing request. The native server is operated on a native control process (350) that uses a memory space independent of a memory space used in the Java execution environment.