Framework Refactoring via Type Forwarding and Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems lack a framework that can support both legacy and new public surface areas simultaneously without breaking existing binaries or degrading security guarantees, particularly in environments with varying device capabilities.
Innovation Solution
A framework development system that creates reference assemblies with unique identities, uses type forwarding to forward requests between different surface areas, and provides adapters for runtime and development toolkits, ensuring interoperability and maintaining security guarantees.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a framework is rewritten or a new framework is created for use with lower capability devices, then adaptability to different device capabilities is improved, but development time and cost increase
Solution Approach 1:
The framework is segmented into multiple surface areas (e.g., surface area 1, surface area 2) that can be independently factored and deployed. This allows selective deployment of framework components based on device capabilities without rewriting the entire framework, thus reducing development time while maintaining adaptability.
Solution Approach 2:
The framework employs dynamic loading and unloading of surface areas at runtime. The framework can dynamically adjust which surface areas are loaded based on the target device's capabilities, enabling a single framework to adapt to different devices without requiring separate framework versions for each device type.
2Adaptability or versatility
If framework is refactored to support new public surface areas, then adaptability is improved, but compatibility with existing binaries deteriorates
Solution Approach 1:
A type forwarder assembly acts as an intermediary between the new refactored framework surface areas and existing binaries. The type forwarder provides compatibility layers that map new surface area types to existing types, allowing existing binaries to continue working while the framework evolves with new surface areas.
Solution Approach 2:
The framework introduces new surface areas with backward compatibility attributes that preserve existing type identities. By preliminarily maintaining compatibility attributes during refactoring, the framework ensures that existing binaries can still reference and interact with the framework without requiring changes to their code.
3Adaptability or versatility
If framework evolution is enabled through refactoring, then adaptability is improved, but security guarantees of linking model deteriorate
Solution Approach 1:
The type forwarder assembly serves as a secure intermediary that maintains the integrity of the linking model. It provides controlled type mapping and forwarding mechanisms that preserve security guarantees by ensuring that only authorized types can be accessed and that the linking model's security policies remain intact during framework evolution.
Solution Approach 2:
The framework uses type forwarders that create virtual copies or proxies of existing types. These copies maintain the same security properties and linking characteristics as the original types, allowing framework evolution without compromising security guarantees. The type forwarders act as trusted intermediaries that preserve security policies.
4Adaptability or versatility
If framework is split across different units for independent distribution, then adaptability is improved, but device complexity increases
Solution Approach 1:
The framework is divided into independent surface area units that can be selectively loaded and unloaded. Each surface area is a self-contained unit with its own types and interfaces, allowing independent distribution and deployment. This segmentation reduces device complexity by enabling selective loading of only the necessary surface areas for a given device.
Solution Approach 2:
The framework employs dynamic surface area loading that simplifies the effective framework structure at runtime. By dynamically loading only the necessary surface areas based on device capabilities and usage patterns, the framework reduces the effective complexity visible to devices while maintaining the ability to distribute and update individual surface areas independently.
Data Source
AI summary
The subject disclosure relates to enabling the evolution of a framework by providing public surface area factorings for both old and new public surface areas. The factoring can mitigate changes in the implementation of existing distributions of framework. The factoring can also mitigate breaking existing binaries. Further, the factoring can be provided while mitigating a degradation in the security guarantees of the linking model. The factorings can be applied for runtime and/or for a development toolkit. Thus, multiple, almost simultaneous, interoperable views of a framework implementation can be enabled at runtime and/or at design or build time. The views can represent different versions of the framework.


