This application claims the priority benefit of Taiwan application serial no. 110149306, filed on Dec. 29, 2021. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.
The disclosure relates to a software management technology, and more particularly, to a management method and a management system used for reducing version dependency.
In general, in order to perform a version mapping on software, it needs to be completed through several specific interfaces. The interfaces are defined as requests and responses that meet respective requests. For example,
In view of this, an embodiment of the disclosure provides a management method and a management system used for reducing version dependency, which may achieve a version mapping via a simplified interface.
A management method used for reducing version dependency in the embodiment of the disclosure includes (but is not limited to) the following steps. A server software transmits an executable program code to one or more client software via a simplified interface in response to a function of a server software having a change and the client software being requested to receive the executable program code. The client software executes the executable program code to realize the expected result of the function with the change. The client software keeps the version of the client software constant by setting a separation mechanism between the client software and the executable program code corresponding to the change of the function. The client software transmits response information via the simplified interface. The response information includes a result obtained by the client software executing the executable program code.
A management system used for reducing version dependency in the embodiment of the disclosure includes (but is not limited to) a server software and one or more client software.
Based on the above, according to the management method and the management system used for reducing version dependency in the embodiments of the disclosure, for any changes of the function of the server software and the corresponding request of the client software, the executable program code may be transmitted via the simplified interface, allowing the client software to execute the program code, so as to satisfy the request. In this way, even if the client software does not upgrade the version of the client software corresponding to the changes of the function of the server software (i.e., keeping the version of the client software constant), the expected result of the function of the server software could be achieved, thereby reducing the version dependency.
In order for the aforementioned features and advantages of the disclosure to be more comprehensible, embodiments accompanied with drawings are described in detail below.
Types or contents of the client software 110 and the server software 150 may be changed according to actual requirements, and the embodiment of the disclosure is not limited thereto, for example, backup software, a web browser, or an image editor. Software may also be referred to as an application program, a package, or a software module.
The client software 110 and the server software 150 may run through one or more processors of the same or different computer systems, virtual machines, or containers. The processor may be a central processing unit (CPU), a graphic processing unit (GPU), other programmable general-purpose or special-purpose microprocessors, a digital signal processor (DSP), a programmable controller, a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), other similar components, or a combination of the above components.
Hereinafter, the method in the embodiment of the disclosure will be described with various components or modules in the management system 1. Each of the processes of the method may be adjusted according to the implementation, and is not limited thereto.
In an embodiment, the server software 150 may define and simplify an interface (or referred to as a simplified interface). The simplified interface may be an API, socket IO, or other programming communication interfaces.
The first information is that a requester R provides an executable program code. The first information is used to indicate what to do.
The second information is how the receiver A uses the executable program code. The second information is used to indicate how to do things. Referring to
In an embodiment, the server software 150 may define a task model of the simplified interface. For example, for a task transfer model, the first information used for indicating what to do and the second information used for indicating how to do things are defined. This first information may be based on the platform or cross-platform software. In an embodiment, the second information may be more related to relevant parameters of the executable program code and an exit code. The parameters may be stored in a payload of a network packet.
In an embodiment, since a function of the server software 150 has a change (e.g., addition, removal, or other modifications), and the one or more client software 110 is requested (or has an executing request) for receiving the executable program code or providing of the function with the change, the server software 150 uses the simplified interface to perform processing corresponding to the change of the function. In other words, when the client software also requests to provide updates corresponding to the addition, modification, or removal (collectively referred to as changes) of the function of the server software 150, the expected result of the function with the changes may be realized in the client software via the simplified interface. That is, the requester R provides the executable program code via the simplified interface, and the receiver A executes the executable program code and returns the execution result.
In an embodiment, the executable program code is related to the function with the change. For example, if the change is adding a function, the function of addition may be operated by executing the executable program code. For another example, if the change is modifying a function, the function of modification may be operated by executing the executable program code.
In an embodiment, the simplified interface is also adapted for another change of the same function or another change of other functions. That is to say, when the client software also requests to received the executable program code or provide the updates corresponding to the addition, modification, or removal (collectively referred to as the changes) of the same or different functions of the server software 150, the expected result of the function with the changes may also be realized in the client software via the simplified interface. At this point, the executable program code is related to the other change or changes.
In an embodiment, for the task transfer model, the server software 150 may define an identification code of the executable program code according to the function with the change. The identification code represents an identity of the task model, and may be used by the server-side software 150 to track the status of the task model.
In an embodiment, for the task transfer model, the server software 150 may define one or more return codes of the executable program code. Each of the return codes represents a result of executing the executable program code, for example, success, failure, or a specific type of error. That is, the execution result is represented by coding. In an embodiment, the return code is related to the exit code.
In an embodiment, for the task transfer model, the server software 150 may define one or more result messages of the executable program code. Each of the result messages represents the result of executing the executable program code, for example, success, failure, or the specific type of error. That is, the execution result is represented by words or symbols.
In an embodiment, for a task return model, the server software 150 may define a receiving interface. The receiving interface is for the client software 110 to transmit the return codes and/or the result messages.
In an embodiment, for the task return model, the server software 150 may define analysis of the response information (e.g., the execution result of the executable program code), for example, how to analyze the return codes and/or the result messages.
In an embodiment, if the executable program code is encrypted, the client software 110 may decrypt the executable program code (step S42). Next, the client software 110 executes the executable program code (step S43). If the executable program code corresponds to the change of the function, the client software may realize the expected result of the function with the change. In light of the above, the executable program code may satisfy the executing request of the client software 110, and the client software 110 would keep its version constant by setting a separation mechanism between the client software and the received executable program code corresponding to the change of the function of the server software. That is, the client software 110 does not upgrade the version of the client software corresponding to the change of the function. In other words, the client software 110 does not need to upgrade the version of the client software corresponding to the change of the server software 150, and an upgrading request of the client software 110 may be satisfied by the simplified interface.
In an embodiment, the client software 110 may obtain the executable program code from the file from the server software 150, and obtain the relevant parameters of the executable program code from a packet header. In another embodiment, the relevant parameters may also be stored in the payload of the network packet.
Next, the client software 110 transmits the response information to the server software via the simplified interface (step S44). The response information includes a result obtained by the client software 110 executing the executable program code. For example, the response information includes the return codes and/or the result messages.
In an embodiment, if the relevant parameters of the executable program code include a callback URL, the client software 110 may transmit the response information to the URL. In other embodiments, a destination location of the response information may also have other changes.
In an embodiment, the server software 150 uses a thread to wait for the response information from the client software 110. As shown in
In an embodiment, the response information includes one of the one or more defined return codes. The server software 150 may analyze the result of the executable program code according to the received return code.
In an embodiment, the response information includes one of the one or more defined result messages. The server software 150 may analyze the result of the executable program code according to the received result message.
In some embodiments, the response information includes the return code and the result message. The server software 150 may analyze the result of the executable program code according to the received return code and the received result message.
The detailed descriptions of steps S1410 to S1430 may refer to the descriptions of
Based on the above, in the management method and the management system used for reducing version dependency according to the embodiments of the disclosure, the server software defines the simplified interface, the task model, or the executable program code, and the server software transmits the executable program code via the simplified interface and receives the execution result of the executable program code, and then analyze the execution result. When the server software has the request for providing the upgrades relative to the client software corresponding to the addition, modification, or removal of functions, the simplified interface is defined on the server software, and the executable program code is transmitted to the client software for execution via the simplified interface. The upgrading request may be satisfied by transmitting and receiving the executable program code via the simplified interface, so that the client software keeps the version of the client software constant by setting a separation mechanism between the client software and the executable program code. The executable program code is corresponding to the changes of the function of the server software. In other words, the client software does not upgrade the version of the client software corresponding to the changes of the function of the server software. In addition, after the client software executes the executable program code, it may return the execution result or the information of the executable program code to the server software, and the server software further analyzes the execution result or the information.
Although the disclosure has been described with reference to the above embodiments, they are not intended to limit the disclosure. It will be apparent to one of ordinary skill in the art that modifications to the described embodiments may be made without departing from the spirit and the scope of the disclosure. Accordingly, the scope of the disclosure will be defined by the attached claims and their equivalents and not by the above detailed descriptions.
Number | Date | Country | Kind |
---|---|---|---|
110149306 | Dec 2021 | TW | national |