Shim Driver Decouples Database Drivers From Web Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database driver implementations are tightly coupled with web applications, making it difficult to test different versions of database drivers without requiring multiple versions of the application to be built and deployed, which is labor-intensive and time-consuming.
Innovation Solution
The implementation of a shim driver that decouples database drivers from web applications by providing a common interface for different database drivers, allowing them to be managed and switched without modifying the web application code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If database drivers are tightly coupled with web applications, then the application can directly access and use the database driver functionality, but it becomes difficult to test different versions of database drivers without requiring multiple versions of the application to be built and deployed
Solution Approach 1:
The patent introduces a shim driver as an intermediary layer between the web application and the actual database driver. The shim driver implements the JDBC interface and contains logic to dynamically load and delegate calls to different vendor-specific database drivers (Oracle, MySQL, PostgreSQL, etc.). This mediator allows the application to interact with a single standardized interface while the shim handles the complexity of switching between different database driver implementations and versions.
2Adaptability or versatility
If multiple versions of database drivers are supported, then flexibility and adaptability improve, but licensing issues and legal hurdles may arise
Solution Approach 1:
The shim driver acts as a legal and technical intermediary that manages the interaction between the application and multiple database driver versions. It provides a single point of control for driver selection and version management, allowing the system to support multiple database drivers without embedding each one directly in the application. This reduces licensing complexity by centralizing driver management and enabling selective loading of only the required driver version.
3Ease of operation
If database drivers are decoupled from web applications using a shim driver, then switching between driver versions becomes easier, but an additional layer of abstraction is introduced
Solution Approach 1:
The shim driver is designed to be universal and multi-functional, implementing the standard JDBC interface while supporting multiple vendor-specific database drivers. It provides a unified entry point for all database operations regardless of the underlying driver being used. The shim driver's loadDriver() method can dynamically load different driver implementations based on configuration, making the system adaptable to different database environments without requiring changes to the application code.
Data Source
AI summary
Disclosed are some implementations of systems, apparatus, methods and computer program products for implementing a shim driver configurable to provide a database driver. A shim driver class is loaded from a class path and instantiated such that a shim driver is generated. A directory path and database driver class name are obtained from a configuration file. An application transmits a request for a database driver via an application programming interface (API) of the shim driver, where the request includes the directory path and database driver class name. The shim driver loads a database driver class identified by the database driver class name using the directory path, instantiates the database driver class such that a first database driver is generated, and provides the first database driver responsive to the request.


