Modular Printer Driver Architecture for Dynamic Plug-in Expansion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional printer driver expansion technologies require recompilation and reinstallation, leading to high development costs and user inconvenience, as they necessitate creating all modules for plug-ins to add new functions, making dynamic expansion difficult and costly.
Innovation Solution
A printer driver architecture with modular design, including an interface unit for plug-in addition, a storage unit for setting information, and a core driver that allows partial process execution by existing modules, reducing the need for all modules in plug-ins and enabling dynamic expansion without recompilation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a new function is added as a plug-in using conventional technology, then the function can be added dynamically without recompilation, but a lot of processes such as display of screen, saving of setting, and control of print must be performed by the plug-in itself, making development costly
Solution Approach 1:
The printer driver is divided into a core driver portion and a plug-in portion. The core driver contains common processes such as display of screen, saving of setting, and control of print. The plug-in only needs to provide the specific additional function, while relying on the core driver for common processes. This segmentation reduces plug-in development complexity while maintaining function expansion capability.
Solution Approach 2:
The core driver is designed to provide universal services that can be shared by multiple plug-ins. It implements common functions such as user interface display, setting management, and print control that are needed regardless of which specific plug-in is used. This multi-functionality approach allows different plug-ins to leverage the same infrastructure, reducing overall system complexity.
2Adaptability or versatility
If the function of a printer driver is expanded by conventional methods, then new functions can be added, but it is necessary to recompile the printer driver and reinstall it, deteriorating user convenience
Solution Approach 1:
The printer driver is designed with dynamic loading capability, allowing plug-ins to be added or removed at runtime without requiring recompilation or reinstallation of the core driver. The system can dynamically load the plug-in module when needed and unload it when not needed, providing flexible function expansion that maintains user convenience.
Solution Approach 2:
The core driver is pre-configured with an interface that can accept and integrate plug-ins. The framework for plug-in integration is established in advance in the core driver, so that when a plug-in is added, it can be seamlessly integrated without requiring modifications to the core driver. This preliminary preparation enables easy function expansion.
3Adaptability or versatility
If all processes are implemented in a plug-in to realize a predetermined function, then the function can be independently added, but the development cost becomes high because all processes must be developed
Solution Approach 1:
Common processes such as display of screen, saving of setting, and control of print are extracted from the plug-in and placed in the core driver. The plug-in only needs to implement the specific additional function logic, while relying on the core driver for common processes. This extraction significantly reduces the development burden on plug-ins while maintaining functional independence.
Solution Approach 2:
The core driver acts as an intermediary between the user and the plug-in. It handles common interactions such as displaying settings, saving configurations, and controlling the printing process. The plug-in communicates with the core driver through defined interfaces, allowing the plug-in to focus on its specific function while the core driver manages the complex interaction processes.
Data Source
AI summary
A printer driver includes a plurality of modules, an interface unit that accepts the addition of plug-in including one or more additional modules for realizing a predetermined function, and a storage unit that stores setting information that defines information related to a partial process for realizing the predetermined function of the plug-in. The plurality of modules performs a process that is the partial process for realizing the predetermined function and cannot be realized in the additional modules included in the plug-in in accordance with the setting information.


