Extension Point Virtualization Using Reparse Points
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application virtualization methods face scalability issues due to the need for custom proxies for each operating system extension point, which is impractical and time-consuming, especially with over 3000 extension points in Microsoft Windows, and requires constant detection and management of new extension points.
Innovation Solution
The extension point virtualization system employs operating system-provided reparse points to minimize registration and redirect resources, using a single file system filter to handle multiple extension points, eliminating the need for custom proxies and simplifying the process of adding new extension points by registering new locations generically.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If custom proxies are implemented for each operating system extension point, then application isolation is preserved, but device complexity and development time increase significantly
Solution Approach 1:
The patent introduces reparse points as an intermediary mechanism between applications and the operating system file system. Instead of implementing custom proxies for each extension point, the system uses reparse points to redirect file system operations to virtualized locations, thereby preserving application isolation while eliminating the need for complex custom proxy implementations for each of the 3000+ extension points
Solution Approach 2:
The patent creates a universal reparse point handler that can manage multiple extension points through a single file system filter. This single mechanism handles diverse extension point types (file associations, registry keys, environment variables) uniformly, reducing development complexity from implementing 3000+ individual proxies to maintaining one generic handler
2Adaptability or versatility
If custom proxies are implemented for each extension point, then extension point management is achieved, but productivity and development efficiency decrease
Solution Approach 1:
The system enables self-service extension point management through declarative configuration files that automatically define reparse point behavior. New extension points can be added by simply registering their locations in configuration files without requiring custom proxy code, allowing the system to adapt to new extension points automatically and significantly reducing development and testing time
3Device complexity
If reparse points are used for extension point virtualization, then device complexity is reduced, but measurement precision of extension point behavior may be affected
Solution Approach 1:
The patent creates virtual copies of extension point data structures (registry keys, file associations, environment variables) at reparse point locations. These copies mirror the original extension point behavior exactly, allowing the system to reduce complexity by using generic reparse point handling while maintaining precise detection and management of extension point behavior through the virtualized copies
Data Source
AI summary
An extension point virtualization system uses operating system-provided reparse points to provide minimal extension point registration. Reparse points preserve application isolation while removing the scale problem of writing custom extension point proxies for each extension point. Instead, the system can use a single file system filter that generically handles application virtualization reparse points, and store reparse point data for extension points that need redirection. Many extension points can be handled by redirecting the operating system from a typical location for an application resource to a virtualized safe location for the application resource. Thus, the system simplifies the process of handling new extension points by allowing an application virtualization system to simply register new locations that should be handled with reparse points and to then handle registered locations generically.


