Java Agent for Inter-Module Access Check Override
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The majority of Java applications still rely on Java version 8 or prior due to concerns about adding complexity, despite the advantages of Java version 9's module system, which introduces complexity in managing module permissions and access restrictions.
Innovation Solution
A Modular Java Manager (MJM) is introduced that acts as a Java agent, providing an audit trail of changes needed for Java 9+ compliance, allowing for automated policy scripting and monitoring module activities to prevent production failures, and generating notifications for access check failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If Java version 9 module system is implemented, then module access control and security are improved, but system complexity increases
Solution Approach 1:
The patent introduces an agent as an intermediary component that mediates between the Java application and the module system. The agent intercepts module access requests, determines whether they should be allowed based on configured policies, and enforces the decisions. This mediator approach maintains the security benefits of Java 9 modules while abstracting away the complexity from the application code, as the agent handles the intricate module resolution and access control logic centrally rather than requiring complex annotations and configurations throughout the application.
2Reliability
If strict module access restrictions are enforced, then security and encapsulation are improved, but application functionality may be broken
Solution Approach 1:
The patent implements dynamic access control policies that can adapt based on the specific context of each module access request. Rather than applying static, rigid restrictions, the agent evaluates each request against configurable policies that can allow access under certain conditions while blocking it under others. This dynamic approach enables the system to maintain strict encapsulation where needed while automatically permitting necessary inter-module communications, thus preserving application functionality without compromising security.
3Adaptability or versatility
If Java 9+ compliance is enforced, then modernization benefits are achieved, but migration complexity increases
Solution Approach 1:
The patent employs preliminary action by having the agent analyze module access patterns and generate compliance reports before full Java 9+ enforcement is implemented. The agent can identify potential compliance issues, suggest necessary module exports and opens statements, and allow developers to progressively migrate their codebase. This preliminary analysis and gradual migration approach reduces the complexity of Java 9+ adoption by providing a clear roadmap and automated guidance rather than requiring complete rewriting of module structures at once.
Data Source
AI summary
In one embodiment, an agent inserts instrumentation into a Java Platform Module System in which a plurality of Java modules of an application is executed. The agent captures, using the instrumentation, an access check failure for an inter-module operation between the Java modules. The agent overrides, using the instrumentation, the access check failure. The agent reports the captured access check failure to a user interface.


