COM In-Process Server Memory Segmentation for Legacy Integration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Legacy field device management apparatuses face difficulties in integrating Component Object Model (COM) technology due to the overuse of global/static variables, which requires significant code changes or reduces processing speed when trying to adapt existing software libraries.
Innovation Solution
Implementing a launch-program COM in-process server that manages COM instances in different memory spaces, intercepting functions like GetClassObject and CanUnloadNow to prevent direct OS execution and generate COM objects in separate memory spaces, allowing for the use of legacy libraries without altering their design or performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If COM technology is integrated with legacy libraries, then adaptability is improved, but code complexity increases due to global/static variable conflicts
Solution Approach 1:
The patent introduces a launch-program COM in-process server as an intermediary layer between the COM system and legacy libraries. This mediator intercepts COM function calls (such as GetClassObject and CanUnloadNow) and translates them into safe executions that prevent direct OS access, thereby enabling COM integration without requiring changes to the legacy library's global/static variable structure.
Solution Approach 2:
The patent segments the COM execution environment into separate memory spaces using multiple COM in-process servers. Each server handles specific COM instances independently, isolating potential conflicts between legacy libraries and COM components. This segmentation allows legacy code to run in its original form while COM technology is integrated at the system level.
2Adaptability or versatility
If legacy libraries are modified to remove global/static variables, then adaptability to COM is improved, but development time increases
Solution Approach 1:
The launch-program COM in-process server acts as a mediator that allows legacy libraries to maintain their original global/static variable structure while still being compatible with COM technology. The intermediary handles the translation and isolation work, eliminating the need for time-consuming code modifications to the legacy libraries.
3Speed
If COM instances share common memory space, then processing speed is maintained, but reliability decreases due to variable conflicts
Solution Approach 1:
The patent divides the memory space into separate compartments by creating multiple COM in-process servers, each with its own memory space. This segmentation isolates global/static variables used by different legacy libraries, preventing conflicts while maintaining efficient inter-process communication through the standardized COM interface.
Solution Approach 2:
The launch-program COM in-process server serves as an intermediary that manages memory allocation and variable isolation between different COM instances. It ensures that each COM instance has its own memory space, preventing variable conflicts while maintaining reliable execution of legacy libraries.
Data Source
AI summary
A field device management apparatus may include a plurality of COM in-process servers, each of which acquires and manages device data related to a corresponding one of field devices, and a launch-program COM in-process server that stores a launch-program, the launch-program activating an instance in each of the plurality of COM in-process servers, the launch-program preventing four different functions from being executed directly by an OS in the plurality of COM in-process servers. The plurality of COM in-process servers may be initialized on the Microsoft Windows operating system to generate COM objects in different memory spaces.


