Dynamic Plug-in Invocation for Directory Server Customization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Prior art directory servers do not allow clients to control the functionality of operations, leading to compromised functionalities for different groups within an organization, resulting in code duplication and increased costs and security risks due to the need for multiple directory servers.
Innovation Solution
A system that dynamically associates plug-ins with database operations, allowing clients to send control-messages specifying plug-ins to execute, along with context-information and invocation-criteria, enabling dynamic selection and execution of plug-ins on a plug-in server, thereby allowing clients to customize operations without static binding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If different groups implement additional functionality at the client side, then each group can have customized operations, but code duplication occurs and maintenance becomes complex
Solution Approach 1:
The patent introduces a plugin server as an intermediary component between the directory server and client applications. This plugin server dynamically loads and executes plugin code, allowing different groups to have customized operations without duplicating code in each client application. The plugin mechanism serves as a centralized repository of reusable functionality that can be selectively invoked.
Solution Approach 2:
The patent implements dynamic plugin loading and execution, where plugins are not statically bound to the directory server but are dynamically associated with operations at runtime. This allows the system to adapt to different group requirements by loading appropriate plugins on-demand, rather than having fixed, hardcoded functionality in each client application.
2Adaptability or versatility
If multiple directory servers are maintained to support different sets of operations, then each group's specific requirements can be met, but costs increase and security is compromised
Solution Approach 1:
The patent creates a universal directory server architecture that can perform multiple different operations by dynamically loading plugins. Instead of requiring separate directory servers for different operational requirements, a single directory server can adapt to various group needs by executing different plugins, thereby reducing the total number of servers needed.
Solution Approach 2:
The patent segments the functionality into modular plugins that can be independently developed, deployed, and executed. This segmentation allows the directory server to maintain a core universal functionality while allowing optional plugin-based extensions for specific group requirements, eliminating the need for multiple complete directory server installations.
3Reliability
If plug-ins are statically bound to operations, then the directory server can perform operations by invoking associated plug-ins, but clients cannot control the functionality of operations
Solution Approach 1:
The patent transitions from static plugin binding to dynamic plugin association. Plugins are not permanently attached to specific operations but are dynamically selected and bound at runtime based on client requests and operational context. This dynamic approach enables clients to control which plugins are invoked for which operations, providing flexibility while maintaining reliable execution.
Solution Approach 2:
The patent implements a feedback mechanism where the directory server evaluates plugin results and determines whether to proceed with the operation or return an error. The server receives plugin output, interprets it (including error identifiers), and uses this feedback to control the flow of operation execution, thereby enabling client-controlled functionality while ensuring reliable operation completion.
Data Source
AI summary
One embodiment of the present invention provides a system stored on a non-transitory computer-readable storage medium for invoking a plug-in that is dynamically associated with a database operation. During operation, a client sends a request to a database system to perform an operation on the database, wherein the request includes a control-message which specifies a plug-in which needs to be executed. Next, the system executes the plug-in at a plug-in server to obtain a plug-in result. Then, the system determines if the plug-in result is an error identifier. If so, the system sends the error identifier to the client. On the other hand, if the plug-in result is not an error identifier, the system performs the operation to obtain an operation result. The system then sends the operation result to the client.


