Optimization method, system and computing device for implementing software function extension based on dll

By using hot-plugging DLL modules and an interceptor mechanism, the lack of flexibility and security risks in existing DLL plugin development are resolved, enabling flexible expansion and rapid iteration of software functions, and improving performance and security.

CN119987831BActive Publication Date: 2025-11-04BEIJING PARATERA TECH +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510053423.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-13
Publication Date
2025-11-04
Estimated Expiration
2045-01-13

AI Technical Summary

Technical Problem

Existing technologies that utilize DLLs and Hooks for plugin development lack flexibility, struggle to adapt to rapidly changing development needs, exhibit unstable performance, and pose security risks.

Method used

Software functionality is extended through DLL modules, which are hot-swappable and integrated into the target software. The first interceptor captures external data for verification, while the second interceptor captures the content to be output for content filtering and security checks. Functional plugins are managed through a standardized set of methods and an extension manager.

Benefits of technology

It enables flexible and rapid development and deployment of plugins without modifying the software source code, improving the flexibility and stability of software function expansion, avoiding security risks, and enhancing performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119987831B_ABST
    Figure CN119987831B_ABST
Patent Text Reader

Abstract

The application discloses an optimization method and system for realizing software function expansion based on DLL and a computing device. The DLL module is integrated in target software of a client in a hot plug manner. The method comprises the following steps: in response to a request of inputting external data through a data input interface of the target software, capturing the external data through a first interceptor; verifying the external data, obtaining a verification result and returning the verification result to the target software, so that the target software processes the external data according to the verification result; in response to a request of outputting to-be-output content through a data output interface of the target software, capturing the to-be-output content through a second interceptor; performing content filtering and security detection on the to-be-output content, obtaining target output content and returning the target output content to the target software, so that the target output content is displayed on the client. The application can flexibly and quickly develop and deploy plug-ins without modifying software source codes, and then realize flexible expansion and rapid iteration of software functions through the plug-ins.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of software development, and particularly relates to an optimization method for realizing software function expansion based on DLL, an optimization system for realizing software function expansion based on DLL and a computing device. BACKGROUND

[0002] In modern software development, plug-in is a common way to extend software functions. Plug-in allows developers to add new functions or improve existing functions to software without modifying the core code of the main program. This modular development method improves the maintainability and scalability of software. However, the traditional plug-in development method usually requires modification of the source code of the main program, which limits the flexibility and portability of the plug-in.

[0003] In the prior art, DLL and Hook technology are used for plug-in development to realize dynamic expansion of software functions. DLL allows developers to define and operate data models, while Hook technology allows developers to intercept and modify software behavior. However, the use of DLL and Hook technology for plug-in development lacks flexibility and is difficult to adapt to rapidly changing development needs. Moreover, the performance is not stable when dealing with large amounts of data and high-frequency calls, and there are security risks.

[0004] Therefore, an optimization method for realizing software function expansion based on DLL is needed to solve the problems in the prior art. SUMMARY

[0005] To this end, the present application provides an optimization method for realizing software function expansion based on DLL and an optimization system for realizing software function expansion based on DLL to solve or at least alleviate the above problems.

[0006] According to one aspect of the present application, an optimization method for realizing software function expansion based on DLL is provided, which is executed in a DLL module adapted to be integrated into a target software of a client through hot plug-in to realize expansion of functions of the target software. The method comprises: in response to a request for inputting external data through a data input interface of the target software, capturing the external data through a first interceptor; verifying the external data to obtain a verification result and returning the verification result to the target software so that the target software processes the external data according to the verification result; in response to a request for outputting to-be-output content through a data output interface of the target software, capturing the to-be-output content through a second interceptor; performing content filtering and security detection on the to-be-output content to obtain target output content and returning the target output content to the target software so as to display the target output content on the client.

[0007] Optionally, according to the optimization method for implementing software function extension based on DLL, the DLL module comprises a standardized method set, an extension manager and a plurality of function plug-ins, so as to operate each function plug-in by using the standardized method set, and load, unload or manage each function plug-in by using the extension manager.

[0008] Optionally, according to the optimization method for implementing software function extension based on DLL, the method further comprises: in response to a DLL function call request sent by a third-party extension software, sending a corresponding software function call request to the target software; receiving a function call result returned by the target software, and returning to the third-party extension software.

[0009] Optionally, according to the optimization method for implementing software function extension based on DLL, the method further comprises: if the verification result indicates that the external data fails to pass the verification, generating a corresponding timing message and pushing the timing message to the third-party extension software.

[0010] Optionally, according to the optimization method for implementing software function extension based on DLL, the third-party extension software is adapted to communicate with the DLL module based on a unified specification interface provided by the DLL module through a TCP protocol, a socket protocol or an http protocol.

[0011] Optionally, according to the optimization method for implementing software function extension based on DLL, the content filtering and security detection on the to-be-output content to obtain target output content comprises: content filtering on the to-be-output content to filter out sensitive information in the to-be-output content to obtain first output content; and security detection on the first output content to detect whether malicious code exists in the first output content, and removing the detected malicious code to obtain the target output content.

[0012] Optionally, according to the optimization method for implementing software function extension based on DLL, the verification on the external data to obtain a verification result comprises: cleaning the external data to remove invalid data, repeated data or abnormal data in the external data; and format and content verification on the cleaned external data to obtain the verification result.

[0013] Optionally, according to the optimization method for implementing software function extension based on DLL, the method further comprises: pre-adding the first interceptor in the form of an annotation on a data input interface of the target software; and pre-adding the second interceptor in the form of an annotation on a data output interface of the target software.

[0014] According to an aspect of the present application, there is provided an optimization system for implementing software function extension based on DLL, the optimization system comprising: a target software deployed on a client; a DLL module adapted to be integrated into the target software through hot plug and adapted to execute the method as described above to implement the extension of the function of the target software.

[0015] Optionally, the optimization system for implementing software function extension based on DLL according to the present application further comprises: a third-party extension software adapted to communicate with the DLL module through TCP protocol, socket protocol or http protocol based on the uniform specification interface provided by the DLL module.

[0016] Optionally, the optimization system for implementing software function extension based on DLL according to the present application, the third-party extension software is adapted to send a DLL function call request to the DLL module; the DLL module is adapted to: in response to the DLL function call request sent by the third-party extension software, send a corresponding software function call request to the target software, receive the function call result returned by the target software and return to the third-party extension software.

[0017] According to an aspect of the present application, there is provided a computing device comprising: at least one processor; a memory storing program instructions, wherein the program instructions are configured to be executed by the at least one processor, and the program instructions comprise instructions for executing the optimization method for implementing software function extension based on DLL as described above.

[0018] According to an aspect of the present application, there is provided a computer program product comprising computer program / instructions, wherein the computer program / instructions, when executed by a processor, implement the method as described above.

[0019] According to an aspect of the present application, there is provided a readable storage medium storing program instructions, which, when read and executed by a computing device, cause the computing device to execute the optimization method for implementing software function extension based on DLL as described above.

[0020] According to the technical scheme of the application, the optimization method for realizing software function expansion based on DLL is provided, the DLL module can be integrated in the software through the non-inductive hot plug mode, so that the developer can flexibly and quickly develop and deploy the plug-in without modifying the software source code, and then realize the flexible expansion and rapid iteration of the software function through the plug-in. When the external data is input through the data input interface of the target software, the DLL module captures the external data through the first interceptor, and returns the verification result to the target software after verifying the external data, so that the expansion function of verifying the external data can be realized. When the to-be-output content is output through the data output interface of the target software, the DLL module captures the to-be-output content through the second interceptor, and obtains the target output content after performing content filtering and safety detection on the to-be-output content, and returns the target output content to the target software for display on the client, so that the expansion function of performing content filtering and safety detection on the to-be-output content can be realized, and potential safety hazards can be avoided.

[0021] Secondly, according to the technical scheme of the application, the various function plug-ins in the DLL module are isolated from each other, so that the performance is more stable when a large amount of data is processed and high-frequency calls are used.

[0022] In addition, the third-party extension software can call the function of the target software through the DLL module, and then can realize the enhancement and expansion on the existing software function.

[0023] The above description is only a summary of the technical scheme of the application, in order to more clearly understand the technical means of the application, the specific embodiments of the application can be implemented according to the content of the specification, and in order to make the above and other purposes, characteristics and advantages of the application more obvious and easy to understand, the following specific embodiments of the application are described. BRIEF DESCRIPTION OF DRAWINGS

[0024] In order to achieve the above and related purposes, certain illustrative aspects will be described herein in connection with the following description and drawings, which indicate various ways in which the principles disclosed herein can be practiced, and all aspects and equivalents thereof are intended to fall within the scope of the claimed subject matter. The above and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings in which like reference characters refer to like elements throughout. The same reference characters in different instances of drawing figures typically represent the same element or component.

[0025] Figure 1 A schematic diagram of an optimization system 100 for realizing software function expansion based on DLL according to an embodiment of the application is shown;

[0026] Figure 2 A schematic diagram of a computing device 200 according to an embodiment of the application is shown;

[0027] Figure 3 A flowchart illustrating an optimization method 300 for extending software functionality based on a DLL, according to an embodiment of the present invention, is shown. Detailed Implementation

[0028] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.

[0029] To address the issues of insufficient flexibility, unstable performance, and security vulnerabilities in existing plug-in development methods, this invention provides an optimized method for extending software functionality based on DLLs. DLL modules can be integrated into the software through seamless hot-swapping, enabling developers to flexibly and quickly develop and deploy plug-ins without modifying the software source code. This allows for flexible expansion and rapid iteration of software functionality through plug-ins.

[0030] The optimization method for software function extension based on DLLs provided in this invention can be implemented in an optimization system for software function extension based on DLLs. The optimization system for software function extension based on DLLs of this invention is described below.

[0031] Figure 1 A schematic diagram of an optimization system 100 for extending software functionality based on a DLL, according to an embodiment of the present invention, is shown. The optimization system 100 for extending software functionality based on a DLL, according to the present invention, can be deployed in a computing device.

[0032] like Figure 1 As shown, in an embodiment of the present invention, the optimization system 100 for extending software functionality based on a DLL includes a DLL module and target software for which functionality needs to be extended. The target software can be deployed on a client. The DLL module can be hot-swapped and integrated into the target software to extend the functionality of the target software.

[0033] It should be noted that the present invention does not limit the type of target software, which can be implemented as any software that requires functional expansion. For example, in some embodiments, the target software can be information monitoring software.

[0034] In some embodiments, the DLL module includes a standardized method set, an extension manager, and a plurality of functional plug-ins. The standardized method set may, for example, include an initialize method, an execute method, and a destroy method, but the present application is not limited thereto. The plurality of functional plug-ins may, for example, include a data verification plug-in, a data filtering plug-in, a message communication plug-in, and other functional plug-ins, and the present application is not limited to the specific types of the functional plug-ins. In this way, the standardized method set provided by the DLL module can be used to operate the functional plug-ins, and the extension manager provided by the DLL module can be used to load, unload, or manage the functional plug-ins. Based on this, the DLL module in the present application can be integrated in software in a hot-swap-free manner, so that developers can flexibly and quickly develop and deploy plug-ins without modifying the source code of the software, and thus the software functions can be flexibly extended and quickly iterated through the plug-ins.

[0035] In the embodiments of the present application, when external data is input through the data input interface of the target software, the DLL module can capture the external data through the first interceptor in response to a request for inputting the external data through the data input interface of the target software, then verify the external data to obtain a verification result, and return the verification result to the target software, so that the target software can continue to process (data flow conversion processing) the external data according to the verification result. Moreover, when the content to be output is output through the data output interface of the target software, the DLL module can capture the content to be output through the second interceptor in response to a request for outputting the content to be output through the data output interface of the target software, and perform content filtering and security detection on the content to be output to obtain target output content, and then return the target output content to the target software, so that the target output content obtained after the content filtering and the security detection can be displayed on the client.

[0036] In some embodiments, the optimization system 100 for implementing software function extension based on DLL can further include one or more third-party extension software. The third-party extension software can communicate with the DLL module based on the uniform specification interface provided by the DLL module through TCP protocol, socket protocol, or http protocol. Based on this, the third-party extension software can call the functions of the target software via the DLL module, and thus can enhance and extend the existing software functions. Moreover, the third-party extension software can receive the timing messages pushed by the DLL module based on any one of the TCP protocol, the socket protocol, or the http protocol.

[0037] Specifically, the third-party extension software can send a DLL function call request to the DLL module based on the above communication mechanism. The DLL module can send a corresponding software function call request to the target software in response to the DLL function call request sent by the third-party extension software, and then the DLL module receives the function call result returned by the target software and returns the function call result to the third-party extension software. In this way, the third-party extension software can call the function of the target software through the DLL module, and further can enhance and extend the existing software function.

[0038] It can be seen that, according to the optimization system 100 for implementing software function extension based on DLL provided by the embodiment of the present application, the DLL module can be integrated in the software through the non-inductive hot plug manner, so that the developer can flexibly and quickly develop and deploy the plug-in without modifying the software source code, and further implement flexible extension and rapid iteration of the software function through the plug-in. Wherein, when the external data is input through the data input interface of the target software, the DLL module captures the external data through the first interceptor, and returns the verification result to the target software after verifying the external data, so as to implement the extension function of verifying the external data. When the to-be-output content is output through the data output interface of the target software, the DLL module captures the to-be-output content through the second interceptor, and obtains the target output content after performing content filtering and security detection on the to-be-output content, and returns the target output content to the target software for display on the client, so as to implement the extension function of performing content filtering and security detection on the to-be-output content, and further avoid potential security risks. In addition, the various function plug-ins in the DLL module are isolated from each other, so that the performance is more stable when a large amount of data is processed and high-frequency calls are made by using the function plug-in. In addition, the third-party extension software can call the function of the target software through the DLL module, and further can enhance and extend the existing software function.

[0039] In the embodiment of the present application, the DLL module in the optimization system 100 for implementing software function extension based on DLL is adapted to execute the optimization method 300 for implementing software function extension based on DLL to implement flexible development and deployment of plug-ins and further extend the function of the target software. The optimization method 300 for implementing software function extension based on DLL of the present application will be described in detail below.

[0040] In one embodiment, the DLL module of the present application can be deployed in a computing device described below, so that the optimization method 300 for implementing software function extension based on DLL of the present application can be executed in the computing device.

[0041] Figure 2 A schematic diagram of a computing device 200 according to an embodiment of the present application is shown. As shown in FIG. 2, the computing device 200 includes a processor 201, a memory 202, a bus 203, a display 204, an input device 205, and a communication interface 206. Figure 2As shown, in a basic configuration, computing device 200 includes at least one processing unit 202 and system memory 204. According to one aspect, depending on the configuration and type of the computing device, the processing unit 202 may be implemented as a processor. System memory 204 includes, but is not limited to, volatile memory (e.g., random access memory), non-volatile memory (e.g., read-only memory), flash memory, or any combination of such memories. According to one aspect, system memory 204 includes an operating system 205.

[0042] According to one aspect, operating system 205 is, for example, suitable for controlling the operation of computing device 200. Furthermore, examples are practiced in conjunction with graphics libraries, other operating systems, or any other applications, and are not limited to any particular application or system. Figure 2 The basic configuration is illustrated by the components within the dashed lines. According to one aspect, the computing device 200 has additional features or functions. For example, according to one aspect, the computing device 200 includes additional data storage devices (removable and / or non-removable), such as disks, optical discs, or magnetic tapes. This additional storage... Figure 2 The middle part is shown by removable storage device 209 and non-removable storage device 210.

[0043] As stated above, according to one aspect, program module 203 is stored in system memory 204. According to one aspect, program module 203 may include one or more applications. The present invention does not limit the type of application; for example, applications may include: email and contact applications, word processing applications, spreadsheet applications, database applications, slideshow applications, drawing or computer-aided applications, web browser applications, etc.

[0044] In an embodiment of the present invention, program module 203 includes multiple program instructions for executing the optimization method 300 of the present invention for extending software functions based on DLL.

[0045] According to one aspect, examples can be practiced on circuits including discrete electronic components, packaged or integrated electronic chips containing logic gates, circuits utilizing microprocessors, or on a single chip containing electronic components or a microprocessor. For example, it can be practiced via wherein... Figure 2Each or many of the components illustrated in FIG. 1 can be practiced on a system-on-a-chip (SOC) integrated on a single integrated circuit in accordance with examples. According to one aspect, such an SOC device can include one or more processing units, graphics units, communications units, system virtualization units, and various application functionality all of which are integrated (or "burned") onto the chip substrate according to an embodiment. When operating via an SOC, the functionality described herein can be operated via specialized logic integrated with other components of the computing device 200 on the single integrated circuit (chip). Embodiments of the application can also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the application can be practiced within a general computer system or in any other circuits or systems.

[0046] According to one aspect, the computing device 200 can also have one or more input device(s) 212 such as a keyboard, a mouse, a pen, a voice input device, a touch input device, etc. Output device(s) 214 such as a display, speakers, a printer, etc. can also be included. The aforementioned devices are examples and others can be used. The computing device 200 can include one or more communication connections 216 allowing communications with other computing devices 218. Examples of suitable communication connections 216 include, but are not limited to: RF transmitter, receiver, and / or transceiver circuitry; universal serial bus (USB), parallel, and / or serial ports.

[0047] The term computer readable media as used herein includes computer storage media. Computer storage media can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, or program modules. The system memory 204, the removable storage device 209, and the non-removable storage device 210 are all computer storage media examples (i.e., memory storage.) Computer storage media can include Random Access Memory (RAM), Read Only Memory (ROM), Electronically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by computing device 200. According to one aspect, any such computer storage media can be part of the computing device 200. Computer storage media does not include a modulated data signal or other propagated data signal.

[0048] According to an aspect, a communication medium is embodied by a computer readable instruction, a data structure, a program module, or other data embodied in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. According to an aspect, the term "modulated data signal" describes a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.

[0049] In an embodiment according to the present application, the computing device 200 is configured to perform the optimization method 300 for implementing software function extension based on DLL. The computing device 200 comprises one or more processors, and one or more readable storage media storing program instructions which, when configured to be executed by the one or more processors, cause the computing device to perform the optimization method 300 for implementing software function extension based on DLL in an embodiment of the present application, so that the computing device 200 implements flexible and fast development and deployment of plug-ins without modifying software source code by performing the optimization method 300 for implementing software function extension based on DLL of the present application, thereby realizing flexible extension and fast iteration of software functions.

[0050] In an embodiment of the present application, the DLL module is deployed in the computing device 200, which can be configured to perform the optimization method 300 for implementing software function extension based on DLL.

[0051] In an embodiment of the present application, the DLL module can be integrated into the target software (i.e., the software that needs to be functionally extended) of the client in a hot-plugging manner to realize the extension of the functions of the target software.

[0052] The optimization method 300 for implementing software function extension based on DLL in an embodiment of the present application is described in detail as follows.

[0053] Figure 3 A flowchart of the optimization method 300 for implementing software function extension based on DLL provided by an embodiment of the present application is shown. As shown in Figure 3 The optimization method 300 for implementing software function extension based on DLL comprises the following steps 310-340.

[0054] In step 310, the DLL module can capture external data through the first interceptor in response to a request for inputting external data through a data input interface of the target software.

[0055] In some embodiments of the present application, when a user requests to input external data through a data input interface of the target software at the client side, the DLL module can intercept the input of the external data. Specifically, the DLL module can capture the external data through the first interceptor in response to the request to input the external data through the data input interface of the target software.

[0056] In some embodiments of the present application, the first interceptor can be implemented by a DLL and added in the form of an annotation on the data input interface of the target software in advance, and the first interceptor is configured to capture the external data before the external data is input through the data input interface of the target software. Based on this, when the external data is input through the data input interface of the target software, the external data can be captured in advance through the first interceptor.

[0057] Subsequently, in step 320, the DLL module can verify the captured external data to obtain a verification result and return the verification result to the target software, so that the target software can continue to process (data flow processing) the external data according to the verification result. It can be understood that the verification result can indicate that the external data is verified to be passed or the external data is verified to be failed. Based on this, the extended function of verifying the external data can be realized.

[0058] In some embodiments of the present application, the external data can be, for example, user login data used to authenticate the identity of a user. After the DLL module verifies the user login data, if the verification result indicates that the verification is passed, the user can access and operate the target software after the DLL module returns the verification result to the target software. The external data can also be monitoring data. The DLL module can verify the monitoring data and return the verification result to the target software, and the target software can determine whether the monitoring data is abnormal or reaches a warning condition according to the verification result.

[0059] In some embodiments of the present application, the specific process of verifying the external data is as follows: first, the external data is cleaned to remove invalid data, duplicate data or abnormal data in the external data. For example, regular expressions can be used to filter out text data in the external data that does not conform to the format, or noise data in the external data can be removed by a rejection algorithm, so as to clean the external data. Further, the cleaned external data can be verified in terms of format and content to obtain a verification result. For example, it can be determined whether the cleaned external data conforms to a predetermined format, and whether the numerical data in the external data is within a predetermined range. The numerical data within the predetermined range indicates that the data is normal and does not reach a warning condition, and the numerical data outside the predetermined range indicates that the data is abnormal and reaches a warning condition.

[0060] In step 230, the DLL module can capture the content to be output through the second interceptor in response to a request for outputting the content to be output through the data output interface of the target software.

[0061] For example, in some embodiments, when the server outputs the content to be output (the content to be displayed on the client) through the data output interface of the target software, the DLL module can perform output interception on the content to be output. Specifically, the DLL module can capture the content to be output through the second interceptor in response to a request for outputting the content to be output through the data output interface of the target software.

[0062] In some embodiments of the present application, the second interceptor can be implemented by a DLL, and the second interceptor can be added in the form of an annotation on the data output interface of the target software in advance. The second interceptor is used to capture the content to be output before the content to be output is output through the data output interface of the target software. Based on this, when the content to be output is output through the data output interface of the target software, the content to be output can be captured in advance through the second interceptor.

[0063] Then, in step 240, the DLL module can perform content filtering and security detection on the content to be output to obtain target output content, and can return the target output content to the target software, so that the target output content obtained after content filtering and security detection can be displayed on the client. Based on this, the extended function of performing content filtering and security detection on the content to be output can be implemented, and thus the security of content output can be improved, and potential security risks can be avoided.

[0064] In some embodiments of the present application, the specific process of performing content filtering and security detection on the content to be output is as follows: first, content filtering can be performed on the content to be output to filter out sensitive information in the content to be output to obtain first output content. Then, security detection is performed on the first output content to detect whether malicious code (or malicious script) exists in the first output content, and if the malicious code is detected in the first output content, the detected malicious code is removed, so that the target output content is obtained.

[0065] In some embodiments of the present application, the DLL module includes a standardized method set, an extension manager, and a plurality of functional plug-ins. The standardized method set may, for example, include an initialize method, an execute method, and a destroy method, but the present application is not limited thereto. The plurality of functional plug-ins may, for example, include a data verification plug-in, a data filtering plug-in, a message communication plug-in, and other functional plug-ins, and the present application is not limited to the specific types of the functional plug-ins. In this way, the standardized method set provided by the DLL module can be used to operate the functional plug-ins, and the extension manager provided by the DLL module can be used to load, unload, or manage the functional plug-ins. Based on this, the DLL module in the present application can be integrated in software in a hot-swap manner, so that developers can flexibly and quickly develop and deploy plug-ins without modifying the source code of the software, and then achieve flexible expansion and rapid iteration of software functions through the plug-ins.

[0066] In some embodiments, in step 320, the DLL module can verify the captured external data through the data verification plug-in to obtain a verification result. In step 340, the DLL module can perform content filtering and security detection on the to-be-output content through the data filtering plug-in to obtain target output content.

[0067] In addition, in some embodiments, the DLL module can also aggregate and statistically process data (e.g., monitoring data) in the target software through other functional plug-ins, for example, can statistically process the maximum value, the minimum value, the average value, etc. of the data within a period of time, to generate a corresponding data report and display it to the user.

[0068] In some embodiments of the present application, the optimization system 100 for implementing software function expansion based on DLL can also include one or more third-party extension software. The third-party extension software can communicate with the DLL module, and the third-party extension software can send a DLL function call request to the DLL module. The DLL module can respond to the DLL function call request sent by the third-party extension software, send a corresponding software function call request to the target software, and then the DLL module receives the function call result returned by the target software and returns the function call result to the third-party extension software. In this way, the third-party extension software can call the functions of the target software through the DLL module, and thus can achieve enhancement and expansion on the existing software functions.

[0069] In some embodiments, if the verification result indicates that the external data verification fails (data anomaly, reaching a warning condition), the DDL module can generate a corresponding timing message and can push the timing message to the third-party extension software for alarm. In addition, in some embodiments, the DDL module can also generate a corresponding timing message and push it to the third-party extension software according to a predetermined time period, for example, it can generate a summary analysis report of monitoring data and push it to the third-party extension software.

[0070] In some embodiments, the DLL module can generate a timing message and push it to the third-party extension software through the message communication plug-in.

[0071] In some embodiments of the present application, the third-party extension software can communicate with the DLL module based on the unified specification interface provided by the DLL module through TCP protocol, socket protocol or http protocol. Based on the above communication mechanism, the third-party extension software can send a DLL function call request to the DLL module to call the function of the target software through the DLL module. And the DDL module can push the timing message to the third-party extension software based on any one of the TCP protocol, socket protocol or http protocol, and the third-party extension software can receive the timing message pushed by the DLL module based on any one of the TCP protocol, socket protocol or http protocol.

[0072] According to the optimization method 300 for implementing software function extension based on DLL of the present application, the DLL module can be integrated in the software in a non-inductive hot plug manner, so that the developer can flexibly and quickly develop and deploy the plug-in without modifying the software source code, and then realize flexible extension and rapid iteration of software function through the plug-in. Wherein, when the external data is input through the data input interface of the target software, the DLL module captures the external data through the first interceptor and returns the verification result to the target software after verifying the external data, which can realize the extension function of verifying the external data. When the content to be output is output through the data output interface of the target software, the DLL module captures the content to be output through the second interceptor, and obtains the target output content after content filtering and security detection of the content to be output, and returns the target output content to the target software for display on the client, which can realize the extension function of content filtering and security detection of the content to be output, and thus can avoid potential security risks.

[0073] Secondly, according to the technical scheme of the present application, each functional plug-in in the DLL module is isolated from each other, so that the performance is more stable when a large amount of data is processed and high-frequency calls are used.

[0074] In addition, according to the technical scheme of the present application, the third-party extension software can call the function of the target software via the DLL module, and thus can enhance and extend the existing software function.

[0075] In addition, the embodiment of the present application further discloses: A8, the method of any one of A1-7, wherein the first interceptor is added in the form of an annotation on the data input interface of the target software in advance; and the second interceptor is added in the form of an annotation on the data output interface of the target software in advance. B10, the system of B9, wherein the third-party extension software is adapted to communicate with the DLL module based on the uniform specification interface provided by the DLL module through a TCP protocol, a socket protocol or an http protocol. B11, the system of B10, wherein the third-party extension software is adapted to send a DLL function calling request to the DLL module; and the DLL module is adapted to send a corresponding software function calling request to the target software in response to the DLL function calling request sent by the third-party extension software, receive a function calling result returned by the target software and return the function calling result to the third-party extension software. C14, a readable storage medium storing program instructions, when the program instructions are read and processed by a computing device, the computing device processes the method of any one of A1-A8.

[0076] The various techniques described herein can be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus of the present application, or certain aspects or portions thereof, can take the form of program code (i.e., instructions) embodied in tangible media, such as removable hard disks, USB flash drives, floppy diskettes, CD-ROMs, or any other machine-readable storage medium wherein, when the program code is loaded into an apparatus, such as a computer, the apparatus becomes an implementation of the present application for practicing the methods.

[0077] In the case of program code execution on programmable computers, the mobile terminal generally includes a processor, a memory that is readable by the processor (including volatile and non-volatile memory and / or storage elements), at least one input device, and at least one output device. The memory is configured to store program code; the processor is configured to execute instructions in the program code stored in the memory according to the program code stored in the memory to implement the optimization method for extending software function based on DLL of the present application.

[0078] By way of example, and not limitation, readable media can include volatile and non-volatile, removable and non-removable media implemented in a method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer readable media is accessible by a computer. However, computer readable media is not comprised of propagated signals per se. Combinations of the above should also be included within the scope of readable media.

[0079] In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the application can be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been described in detail in order to not obscure the understanding of this description.

[0080] In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the application can be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been described in detail in order to not obscure the understanding of this description.

[0081] Similarly, it is to be understood that the mechanical details of the example embodiments of the application can also include any of the mechanical details of the example embodiments of the application described above, or combinations of such details.

[0082] Those skilled in the art will understand that the modules, or units, or components of the devices in the examples disclosed herein can be arranged in a device as described in the examples, or alternatively can be located in one or more devices different from the devices in the examples. The modules in the foregoing examples can be combined as a module or further divided into multiple sub-modules.

[0083] Unless otherwise stated, the use of ordinal adjectives such as "first", "second", "third", etc. to describe a common object is merely intended to distinguish that particular object from another common object whose name is similarly qualified with "first", "second", "third", etc. in the reference of the description. Therefore, the use of "first" object and "second" object subsequently after the initial use of "first" and "second" is merely intended to distinguish one particular object from another particular object and is not intended to imply that the one particular object precedes the other particular object in time, spatial arrangement, ordering, or the like.

Claims

1. An optimization method for implementing software function extension based on a DLL, executed in a DLL module, the DLL module comprising a standardized method set, an extension manager, and a plurality of function plug-ins, so as to operate each function plug-in by using the standardized method set, and load, unload, or manage each function plug-in by using the extension manager, the DLL module being adapted to be integrated in a target software of a client in a hot plug manner, so as to extend the function of the target software, the method comprising: previously adding a first interceptor in the form of an annotation on a data input interface of the target software, and adding a second interceptor in the form of an annotation on a data output interface of the target software; in response to a request of inputting external data through the data input interface of the target software, capturing the external data by the first interceptor; verifying the external data to obtain a verification result, and returning the verification result to the target software, so that the target software processes the external data according to the verification result; in response to a request of outputting to-be-output content through the data output interface of the target software, capturing the to-be-output content by the second interceptor; performing content filtering and security detection on the to-be-output content to obtain target output content, and returning the target output content to the target software, so as to display the target output content on the client; in response to a DLL function call request sent by a third-party extension software, sending a corresponding software function call request to the target software; receiving a function call result returned by the target software, and returning to the third-party extension software.

2. The method of claim 1, wherein, Further comprising: if the verification result indicates that the external data fails to pass the verification, generating a corresponding timing message and pushing to the third-party extension software.

3. The method of claim 1, wherein: the third-party extension software is adapted to communicate with the DLL module based on a unified specification interface provided by the DLL module, through a TCP protocol, a socket protocol, or an http protocol.

4. The method of any one of claims 1-3, wherein, performing content filtering and security detection on the to-be-output content to obtain target output content comprises: performing content filtering on the to-be-output content to filter out sensitive information in the to-be-output content to obtain first output content; performing security detection on the first output content to detect whether malicious code exists in the first output content, and removing the detected malicious code to obtain target output content.

5. The method of any one of claims 1-3, wherein, verifying the external data to obtain a verification result comprises: cleaning the external data to remove invalid data, duplicate data, or abnormal data in the external data; performing format and content verification on the cleaned external data to obtain a verification result.

6. An optimization system for implementing software function extension based on a DLL, comprising: a target software deployed on a client; a DLL module including a standardized method set, an extension manager, and a plurality of functional plug-ins, so as to operate each functional plug-in by using the standardized method set, and load, unload or manage each functional plug-in by using the extension manager, the DLL module being adapted to be integrated in the target software by hot plug, and being adapted to execute the method of any one of claims 1-5 to implement the extension of the function of the target software; a third-party extension software adapted to send a DLL function call request to the DLL module.

7. The system of claim 6, wherein, the third-party extension software is adapted to communicate with the DLL module based on a uniform specification interface provided by the DLL module, through a TCP protocol, a socket protocol or an http protocol.

8. A computing device comprising: at least one processor; and a memory storing program instructions configured to be processed by the at least one processor, the program instructions including instructions for processing the method of any one of claims 1-5.

9. A computer program product comprising computer programs / instructions, wherein, The computer program / instructions, when executed by the processor, implement the method of any one of claims 1-5.

10. A readable storage medium storing program instructions, which, when read and processed by a computing device, cause the computing device to process the method of any one of claims 1-5.

Citation Information

Patent Citations

  • Low-coupling extended business system based on plug-in engine injection

    CN112363755A