Module Descriptor Access Control for Software Complexity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software systems face increased complexity and maintenance risks due to growing code size and dependencies, leading to performance issues and unmanageability, which modularization attempts to mitigate but requires effective access control mechanisms to manage visibility and accessibility of module members.

Innovation Solution

A system that identifies module members, infers their visibility based on accessibility, and uses this information to provide access control throughout the software program's life cycle by associating members with tokens and managing package-private access through common loaders, ensuring controlled access and reduced complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of repair

If software systems are modularized to manage complexity, then maintainability and scalability are improved, but access control mechanisms become more complex

Engineering Contradiction:
ImprovemaintainabilityVSAvoidaccess control mechanism complexity
Core Design Contradiction:
Ease of repairVSDevice complexity

Solution Approach 1:

The patent introduces a module descriptor as an intermediary component that mediates access control between modules. The module descriptor contains metadata about module members including visibility and accessibility information, serving as a mediator that automatically enforces access control rules without requiring complex manual management. This resolves the contradiction by providing automated access control through the module descriptor intermediary, improving maintainability while avoiding access control mechanism complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If module members are made more accessible to facilitate development, then ease of operation is improved, but security and encapsulation are compromised

Engineering Contradiction:
Improveease of developmentVSAvoidencapsulation security
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies local quality by differentiating access control at the individual member level within modules. Each module member can have its own visibility and accessibility attributes defined in the module descriptor, allowing fine-grained control where each member's access rights are customized according to its specific requirements. This resolves the contradiction by enabling developers to make specific members accessible when needed while maintaining encapsulation security for other members through differentiated local access control.

Inventive Principle:
Principle #3Local quality

3Reliability

If strict access control is enforced to maintain encapsulation, then reliability is improved, but productivity decreases due to additional access checks

Engineering Contradiction:
Improveencapsulation integrityVSAvoiddevelopment productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by pre-defining visibility and accessibility attributes for all module members in the module descriptor during module creation. The access control rules are established in advance rather than being enforced dynamically during runtime operations. This resolves the contradiction by maintaining encapsulation integrity through pre-established access control rules while improving productivity, as the preliminary definition of access rights eliminates the need for repeated access checks during development and execution.

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If package-private access is facilitated between module portions, then ease of operation is improved, but access control precision is reduced

Engineering Contradiction:
Improvepackage-private access facilitationVSAvoidaccess control precision
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent applies segmentation by dividing the package into multiple modules, each with its own module descriptor that precisely defines member accessibility. Instead of treating the entire package as a single unit with uniform access control, the package is segmented into modular units where each module's access control is independently configured. This resolves the contradiction by facilitating package-private access between modules through the module descriptor mechanism while maintaining access control precision through individual member-level visibility and accessibility attributes in each segmented module.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8640115B2Access control in modules for software development
Publication Date: 2014.01.28 ORACLE INT CORP
  • US8640115B2 patent drawing
  • US8640115B2 patent drawing
  • US8640115B2 patent drawing

AI summary

The disclosed embodiments provide a system that provides access control for a software program. During operation, the system identifies a member of a module to be used in the software program. Next, the system infers the visibility of the member based on the accessibility of the member. Finally, the system uses the visibility and the accessibility to provide access control during the life cycle of the software program.