Terminal device, license management method, and network system
The network system with terminal-based license management addresses the inadequacies of conventional methods by allowing terminals to monitor and manage licenses independently, ensuring compliance and preventing unauthorized use or expiration.
Patent Information
- Application Number
- JP2022006402
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-01-19
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2042-01-19
AI Technical Summary
Conventional methods for managing application licenses are inadequate, particularly in scenarios where failures occur between a sales management server system and edge devices, leading to unmanaged application execution.
A network system with an administration server and terminals that include license information acquisition, confirmation, and management units, enabling terminals to monitor and manage licenses independently, even in the absence of a direct connection to the server.
Enables effective management of application licenses across multiple terminals, ensuring compliance and preventing unauthorized use or expiration, even in the event of server failures.
Smart Images

Figure 0007806513000001 
Figure 0007806513000002 
Figure 0007806513000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a technology for managing licenses for application software. [Background technology]
[0002] In recent years, advances in ICT (Information and Communication Technology) have led to the widespread adoption of systems in which multiple devices connected via a network work together to perform processing. In these systems, application software (hereafter sometimes simply referred to as "applications" or "apps") is installed on multiple devices, and each device runs the application.
[0003] On the other hand, when an application is used in a company or the like, a license is set in many cases. For example, the number of devices on which the application is permitted to be installed is set. Alternatively, an expiration date for the application is set. For this reason, methods for managing application licenses have been proposed.
[0004] For example, Patent Document 1 describes an application sales management server system that manages application licenses. Specifically, the sales management server system is connected to a terminal of an intermediary that mediates the sale of applications and to terminals of end users that use edge devices and edge servers, and includes an order processing unit and a distribution processing unit. The order processing unit issues a serial number based on an application purchase request from the intermediary terminal. Upon receiving the serial number from the end user's terminal, the distribution processing unit distributes the application associated with the serial number to the edge server along with a license that includes information on the number of edge devices per license and controls the number of edge devices connected by the application. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Publication No. 2019-021090 Summary of the Invention [Problem to be solved by the invention]
[0006] As described above, methods for managing application licenses have been proposed. However, conventional methods may not be able to properly manage application licenses. For example, in the method described in Patent Document 1, a sales management server system manages the licenses of each edge device. Therefore, if a failure occurs between the sales management server system and an edge device, the application licenses cannot be managed, and in some cases, the edge device may not be able to execute the application.
[0007] An object of one aspect of the present invention is to appropriately manage licenses for applications installed on multiple terminals. [Means for solving the problem]
[0008] A network system according to one embodiment of the present invention includes a plurality of terminals connected to each other via a network, and an administration server that manages licenses of applications implemented on the plurality of terminals. A first terminal of the plurality of terminals includes a license information acquisition unit that acquires license information representing the content of a license of the first application from the administration server when the first terminal owns the first application, a owned application confirmation unit that sends an inquiry message to the other terminals of the plurality of terminals inquiring whether the other terminals own the first application, and a license confirmation unit that confirms whether or not there is a violation of the license based on the license information and responses from the other terminals to the inquiry message. [Effects of the Invention]
[0009] According to the above-described aspect, licenses for applications installed on multiple terminals can be appropriately managed. [Brief explanation of the drawings]
[0010] [Figure 1] 1 is a diagram illustrating an example of a network system according to an embodiment of the present invention. [Figure 2] 10A and 10B are diagrams illustrating an example of registered terminal information and license information. [Figure 3] FIG. 2 is a diagram illustrating an example of an internal management function provided in each terminal. [Figure 4] 3A and 3B are diagrams illustrating an example of terminal management information and application management information stored in a storage unit of each terminal. [Figure 5] 10 is a flowchart illustrating an example of processing by a license information acquisition unit. [Figure 6] 10 is a flowchart illustrating an example of processing by a possessed application confirmation unit and an inquiry response unit. [Figure 7] 10 is a flowchart illustrating an example of processing by a license confirmation unit. [Figure 8] 10 is a flowchart illustrating an example of a process performed by a prior notification unit. [Figure 9] 10 is a flowchart illustrating an example of a process of an application management unit. [Figure 10] 10 is a flowchart illustrating an example of a method for controlling the execution of an application based on the value of an abnormality flag. [Figure 11] 10 is a flowchart illustrating an example of a process of an administrator notification unit. [Figure 12] FIG. 10 is a diagram illustrating an example of a license management sequence by a management server and a terminal. [Figure 13] FIG. 3 is a diagram showing various types of information set in the first embodiment. [Figure 14] FIG. 10 is a diagram showing various types of information set in the second embodiment. [Figure 15] FIG. 11 is a diagram showing various types of information set in the third embodiment. [Figure 16] FIG. 2 is a diagram illustrating an example of a hardware configuration of a terminal. DETAILED DESCRIPTION OF THE INVENTION
[0011] FIG. 1 shows an example of a network system according to an embodiment of the present invention. The network system 100 according to the embodiment of the present invention includes a management server 110 and multiple terminal devices 1 (T001 to T00n). The management server 110 and the multiple terminal devices 1 are each connected to a public network 120. That is, the management server 110 and the multiple terminal devices 1 can communicate with each other via the public network 120. In this example, the multiple terminal devices 1 are installed within a predetermined area. As an example, the multiple terminal devices 1 are installed within a facility such as a factory. Each terminal device 1 may be an embedded device equipped with a microcomputer or may be a personal computer. The multiple terminal devices 1 are each connected to a local network 130. That is, the multiple terminal devices 1 can communicate with each other via the local network 130. In the following description, the terminal devices may be simply referred to as "terminals."
[0012] The terminal 1 is capable of installing one or more applications within itself and executing the applications. The terminal 1 also includes an in-terminal management function 10. As will be explained in detail later, the in-terminal management function 10 periodically accesses the management server 110 and acquires the latest license information for the applications installed within itself. The in-terminal management function 10 can also authenticate the licenses of the applications installed within itself by communicating with the in-terminal management functions 10 of other terminals 1.
[0013] The management server 110 includes a registered terminal management function 111 and a license management function 112. The registered terminal management function 111 manages the terminals 1 that should be managed by the management server 110. In this example, the registered terminal management function 111 manages the terminals 1 that connect to the local network 130. The license management function 112 manages the licenses of applications implemented in the terminals 1 that the registered terminal management function 111 manages.
[0014] FIG. 2(a) shows an example of registered terminal information held by the registered terminal management function 111. The registered terminal information manages a group ID, the number of terminals, and terminal IDs. The group ID identifies a group including one or more terminals 1. For example, terminals 1 that use the same application are grouped together. Alternatively, terminals 1 that are located in the same department within a company are grouped together. The number of terminals indicates the number of terminals that belong to each group. The terminal ID identifies each terminal that belongs to each group. Note that each terminal can belong to multiple groups.
[0015] 2(b) shows an example of license information held by the license management function 112. The license information manages the application ID, the number of licenses, and the expiration date. The application ID identifies the application installed on the terminal 1. The number of licenses indicates the number of terminals 1 that are permitted to install the application. The expiration date indicates the period during which the application can be used.
[0016] 3 shows an example of an in-terminal management function 10 provided in each terminal 1. The in-terminal management function 10 includes a license information acquisition unit 11, a possessed application confirmation unit 12, an inquiry response unit 13, a license confirmation unit 14, a prior notification unit 15, an application management unit 16, an administrator notification unit 17, and a storage unit 18. Note that the in-terminal management function 10 may further include other functions not shown in FIG. 3.
[0017] The license information acquisition unit 11 periodically accesses the management server 110 to acquire the latest license information for the applications held by the terminal. For example, when the terminal 1a holds the application A001, the license information acquisition unit 11 of the terminal 1a accesses the management server 110 to acquire the license information shown in FIG. 2(b). The license information acquired by the license information acquisition unit 11 is stored in the storage unit 18 as part of the application management information described later. That is, the storage unit 18 stores the latest license information for the applications held by the terminal.
[0018] 4(a) shows an example of terminal management information stored in the storage unit 18. Here, the terminal management information includes a terminal ID, another terminal flag, a communication availability flag, time information, a time flag, an error range, and a priority. Note that in this embodiment, the terminal management information shown is stored in a terminal identified by terminal ID=T001 (i.e., terminal T001).
[0019] The terminal ID identifies each terminal connected to the local network 130. However, the terminal ID may also identify each terminal within the group to which the terminal itself belongs. In this example, a terminal identified by terminal ID=T002 also belongs to the group to which terminal T001 belongs. The other terminal flag indicates whether or not other terminals exist within the group to which the terminal itself belongs. In this example, "0" indicates that no other terminals exist, and "1" indicates that other terminals exist. The communication availability flag indicates whether or not communication with other terminals is possible. In this example, "0" indicates a state in which communication with other terminals is possible, and "1" indicates a state in which communication with other terminals is not possible.
[0020] The time information indicates the time kept by the clock installed on each terminal. The time information of other terminals is obtained as a response to an inquiry message sent to the other terminal, as will be explained later. The time flag indicates whether the difference between the time information of the terminal itself and the time information of the other terminal is within a specified error range. "0" indicates that the difference in the time information is within a specified error range, and the time information of the other terminal is normal. "1" indicates that the difference in the time information exceeds a specified error range, and the time information of the other terminal is abnormal. The error range is "1 day" in this example. The priority indicates the priority of each terminal for using the application.
[0021] 4(b) shows an example of application management information stored in the storage unit 18. Here, the application management information includes an application ID, the number of licenses, the expiration date, an execution flag, the operating status of other terminals, an abnormality flag, a grace period, and the date and time when the abnormality occurred.
[0022] The application ID identifies an application held by the terminal itself. In this embodiment, application A001 is installed on the terminal itself (terminal T001 identified by terminal ID=T001). The number of licenses and expiration date are license information acquired from the management server 110. In other words, the number of licenses indicates the number of terminals that are permitted to hold the application, and the expiration date indicates the period during which the application can be used.
[0023] The execution possibility flag indicates whether the application can be executed. "0" indicates that the application can be executed, and "1" indicates that the application cannot be executed. The operation status of other terminals indicates whether other terminals are operating. "0" indicates that other terminals are not operating, and "1" indicates that at least one other terminal is operating.
[0024] The abnormality flag indicates whether or not there is an abnormality related to the application license and the type of abnormality. "0" indicates that no abnormality has occurred. "1" indicates that a violation related to the number of licenses has been detected, "2" indicates that a violation related to the expiration date has been detected, "3" indicates that a violation related to both the number of licenses and the expiration date has been detected, and "4" indicates that the time elapsed since the violation was detected has exceeded the grace period. In this example, the grace period is "1 day." The abnormality occurrence date and time indicates the date and time when the violation related to the number of licenses or the expiration date was detected.
[0025] The owned application confirmation unit 12 creates an inquiry message inquiring whether the other terminals have the same application as the application that the own terminal has, and transmits this inquiry message to each of the other terminals connected to the local network 130. The owned application confirmation unit 12 then receives a response to the inquiry message. Thereafter, the owned application confirmation unit 12 may tally the responses received from one or more other terminals.
[0026] When the inquiry response unit 13 receives an inquiry message from another terminal, it determines whether or not the application specified in the inquiry message is installed in the terminal itself. Then, the inquiry response unit 13 transmits the determination result to the sender of the inquiry message. At this time, the inquiry response unit 13 transmits time information indicating the time measured by the clock of the terminal itself to the sender of the inquiry message together with the determination result. Note that if the application specified in the inquiry message is not installed in the terminal itself, the inquiry response unit 13 does not need to respond to the inquiry message. Alternatively, the inquiry response unit 13 may transmit a message indicating that the specified application is not held to the sender of the inquiry message.
[0027] The license checking unit 14 checks whether there is a license violation based on the application management information (license information in this case) and responses from other terminals. That is, the license checking unit 14 determines whether the number of terminals that own the application exceeds the number of licenses. The license checking unit 14 also determines whether the application has expired.
[0028] When a license violation is detected, the advance notification unit 15 notifies the user of that fact. The notification to the user is performed, for example, using a tool provided in the management server 110. After a license violation is detected, if the violation state continues beyond a grace period, the application management unit 16 forcibly stops the corresponding application. Furthermore, if the violation state is resolved, the application management unit 16 may allow the operation of the application. After a license violation is detected, if the violation state continues beyond a grace period, the administrator notification unit 17 notifies the administrator of the status of the license violation. For example, the ID of the terminal on which the license violation is occurring and the ID of the application on which the license violation is occurring are notified to the administrator via the management server 110.
[0029] In this way, after each terminal acquires license information from management server 110, it monitors license violations of the application in cooperation with other terminals. That is, after acquiring license information from management server 110, multiple terminals connected to local network 130 can monitor license violations of the application without communicating with management server 110. Therefore, even if a failure occurs between management server 110 and terminal 1, the application license can be managed appropriately.
[0030] 5 is a flowchart showing an example of the processing of the license information acquisition unit 11. The processing of this flowchart is executed, for example, periodically, or may be executed in response to an instruction given by the user of the terminal 1.
[0031] In S1, the license information acquisition unit 11 requests license information related to the license of an application held by its own terminal from the management server 110. At this time, the management server 110 is notified of a terminal ID that identifies the terminal requesting the license information and an application ID that identifies the application for which the requested license information applies. The management server 110 then determines whether the license information of the specified application has been updated. Here, it is assumed that the management server 110 is aware of the period at which each terminal requests license information. In this case, the management server 110 determines whether the license information has been updated within this period. If the license information has been updated, the management server 110 transmits the updated license information to the terminal that requested the license information.
[0032] In S2, the license information acquisition unit 11 waits for license information to be transmitted from the management server 110. Then, when the license information is received, in S3 the license information acquisition unit 11 stores the license information in the storage unit 18. At this time, the received license information (number of licenses and expiration date) is stored as part of the application management information shown in FIG. 4(b).
[0033] Fig. 6(a) is a flowchart showing an example of the processing of the retained application confirmation unit 12. Note that the retained application confirmation unit 12, for example, periodically executes the processing of the flowchart shown in Fig. 6(a). Fig. 6(b) is a flowchart showing an example of the processing of the inquiry response unit 13. Here, the retained application confirmation unit 12 operates in cooperation with an inquiry response unit 13 provided in another terminal. Therefore, in the description related to Fig. 6, the terminal on which the retained application confirmation unit 12 operates may be called the "inquiry source terminal," and the terminal on which the inquiry response unit 13 operates may be called the "inquiry destination terminal."
[0034] In S11, the owned application confirmation unit 12 provided in the inquiring terminal creates an inquiry message inquiring whether the terminal owns the same application as the application owned by the terminal itself. In the following description, this application may be referred to as the "target application" or simply as the "target app." The owned application confirmation unit 12 then transmits or broadcasts this inquiry message to all other terminals connected to the local network 130 (i.e., the inquired terminals). Thereafter, in S12, the owned application confirmation unit 12 waits for a response from the inquired terminal. Here, the processing of the inquired terminal that receives the inquiry message will be described.
[0035] In S21, the inquiry response unit 13 of each terminal waits for an inquiry message. Here, the inquiry response unit 13 always waits for an inquiry message. That is, when the inquiry response unit 13 receives an inquiry message, the process of S22 is started. Then, when the inquiry message is received, the inquiry response unit 13 determines in S22 whether or not the own terminal (i.e., the inquiry destination terminal) has the target application specified in the inquiry message.
[0036] When the terminal that received the inquiry message (i.e., the inquiry destination terminal) has the target application, the inquiry response unit 13 responds to the inquiry message in S23. Specifically, the inquiry response unit 13 transmits a response message indicating that the terminal has the target application to the inquiry source terminal. The inquiry response unit 13 also transmits time information indicating the time measured by the clock of the terminal itself (i.e., the inquiry destination terminal) to the inquiry source terminal.
[0037] Returning to the explanation of the processing of the inquiry terminal, in S13, the possessed application confirmation unit 12 counts the number of terminals possessing the target application based on the response from the inquiry terminal. Here, the target application is installed in the inquiry terminal. Therefore, when responses are received from K inquiry terminals, the number of terminals possessing the target application is "K+1".
[0038] In S14, the retained application confirmation unit 12 determines whether the time information is correct. That is, for each inquired terminal that responded to the inquiry message, it is determined whether the difference between the time indicated by the time information of the inquiring terminal and the time indicated by the time information received with the response message is within the "error range" set as terminal management information. If the time difference is within the error range, the retained application confirmation unit 12 determines that the time information of the inquired terminal (i.e., the clock of the inquired terminal) is correct. In this case, in S15, the retained application confirmation unit 12 sets the time flag to "0."
[0039] If the time difference exceeds the error range, the owned application confirmation unit 12 determines that the time information of the inquired terminal (i.e., the clock of the inquired terminal) is incorrect. In this case, the owned application confirmation unit 12 sets the time flag to "1" in S16. If the terminal's clock is incorrect, the application license (especially the expiration date) cannot be managed appropriately. Therefore, by checking the time information in S14 to S16, the application license can be managed appropriately.
[0040] 4(a) from a terminal registered in the terminal management information, the possessed application confirmation unit 12 may set the communication availability flag of that terminal to "1." Furthermore, when the inquired terminal that has received the inquiry message does not possess the target application, the inquired terminal may transmit a message indicating that the target application is not possessed to the inquiring terminal.
[0041] 7 is a flowchart showing an example of the processing of the license confirmation unit 14. The processing of this flowchart is executed following the processing of the owned application confirmation unit 12 shown in FIG.
[0042] In S31, the license confirmation unit 14 checks the number of licenses for the target application by referring to the application management information. When the application management information shown in Fig. 4(b) is set, the number of licenses obtained is "2".
[0043] In S32, the license confirmation unit 14 determines whether the number of terminals possessing the target application is appropriate for the number of licenses for the target application. Here, the number of terminals possessing the target application is a value obtained by adding "1" to the number of inquiry terminals that responded to the inquiry message, as described with reference to FIG. 6. If the number of terminals possessing the target application is equal to or less than the number of licenses, the license confirmation unit 14 determines that the number of licenses is being used appropriately. In this case, in S33, the abnormality flag is set to "0." On the other hand, if the number of terminals possessing the target application exceeds the number of licenses, the license confirmation unit 14 determines that a violation has occurred with respect to the number of licenses. In this case, in S34, the license confirmation unit 14 sets the abnormality flag to "1" and records the current date and time as the date and time of the abnormality occurrence shown in FIG. 4(b).
[0044] In S35, the license confirmation unit 14 determines whether the expiration date of the target application is appropriate. Specifically, if the time flag shown in FIG. 4(a) is "0" and the current time is before the expiration date, it is determined that the expiration date of the target application is appropriate. Then, the processing of the license confirmation unit 14 ends. In this case, the value of the abnormality flag is "0" or "1" as determined in S32 to S34.
[0045] If the current time is later than the expiration date, it is determined that a violation has occurred with respect to the expiration date of the target application. In this case, the license confirmation unit 14 checks in S36 whether the value of the abnormality flag is "0" or "1." If the value of the abnormality flag is "0," the license confirmation unit 14 determines that a violation has not occurred with respect to the number of licenses, but has occurred with respect to the expiration date. In this case, in S37, the license confirmation unit 14 sets the abnormality flag to "2" and records the current date and time as the date and time of the abnormality as shown in FIG. 4(b). On the other hand, if the value of the abnormality flag is "1," the license confirmation unit 14 determines that a violation has occurred with respect to the number of licenses and also with respect to the expiration date. In this case, in S38, the license confirmation unit 14 sets the abnormality flag to "3."
[0046] In this way, the license confirmation unit 14 determines whether or not there is a license violation for the target application, and then sets an abnormality flag indicating the determination result.
[0047] 8 is a flowchart showing an example of the process of the advance notification unit 15. The process of this flowchart is executed following the process of the license confirmation unit 14 shown in FIG.
[0048] In S41, the advance notification unit 15 checks the time flag in the terminal management information shown in Fig. 4(a) and the abnormality flag in the application management information shown in Fig. 4(b). Then, in S42, if the time flag is not zero (i.e., time flag = 1), the advance notification unit 15 determines that the clock of the terminal that holds the target application is not keeping the correct time. In this case, in S43, the advance notification unit 15 notifies the management server 110 that the clock of the terminal that holds the target application is not keeping the correct time, and also gives an advance notification to the user of the terminal.
[0049] In S44, if the abnormality flag is not zero (i.e., abnormality flag = 1 to 3), the advance notification unit 15 determines that a violation related to the license of the target application has occurred. In this case, in S42, the advance notification unit 15 detects the type of license violation according to the value of the abnormality flag, and notifies the management server 110 that a license violation has occurred and the type of license violation, and also notifies the user of the terminal in advance.
[0050] At this point, the intra-terminal management function 10 does not perform control such as forcibly stopping the application in which the license violation has occurred, but waits for the user to resolve the license violation in response to the advance notice.
[0051] 9 is a flowchart showing an example of the processing of the application management unit 16. The processing of this flowchart is not particularly limited, but is preferably executed periodically, for example.
[0052] In S51, the application management unit 16 checks whether or not there is another terminal that has the target application by referring to the terminal management information shown in FIG. 4(a). If there is another terminal, the application management unit 16 determines in S52 whether or not information about the other terminal has been acquired. At this time, if the communication availability flag of the other terminal is "1", it is determined that information about the other terminal has not been acquired. Also, if time information about the other terminal has not been recorded, it is determined that information about the other terminal has not been acquired. Then, if information about the other terminal has not been acquired, the processing of the application management unit 16 proceeds to S57.
[0053] If there are no other terminals (S51: No) or if information about other terminals has been acquired (S52: Yes), the application management unit 16 checks the time flag, error range, abnormality flag, and grace period in S53 to S55. If the time flag is "1" and the difference between the time information of the terminal itself and the time information of the other terminal exceeds the error range, the processing of the application management unit 16 proceeds to S57. Also, if the value of the abnormality flag is other than zero and the elapsed time since the license violation was detected exceeds the grace period, the processing of the application management unit 16 proceeds to S57. The elapsed time since the license violation was detected represents the period from the "date and time of abnormality occurrence" in the application management information to the current time.
[0054] When the time flag is "1" (including a state where the difference in time information does not exceed the error range) and the abnormality flag is "0" (including a state where the time elapsed since the license violation was detected has not exceeded the grace period), the processing of the application management unit 16 proceeds to S56. In other words, when the clock of each terminal is keeping the correct time and no license violation has occurred for the target application, the application management unit 16 permits execution of the target application in S56. At this time, the application management unit 16 sets the execution permission flag to "0".
[0055] When the intra-terminal management function 10 is unable to acquire information about other terminals (S52: No), when the clock of any of the terminals that hold the target application is not keeping the correct time (S54: Yes), or when a license violation has occurred for the target application (S55: Yes), the process of S57 is executed. That is, the application management unit 16 prohibits the execution of the target application. At this time, the application management unit 16 sets the execution permission flag to "0." Furthermore, when the time that has elapsed since the license violation was detected exceeds the grace period, the application management unit 16 may update the abnormality flag to "4."
[0056] However, if the only license violation for the target application is "excessive licenses," the application management unit 16 permits execution of the target application on the number of terminals indicated by the number of licenses, in accordance with the terminal priority, and prohibits execution of the target application on the other terminals. For example, if the number of licenses is two but three terminals own the target application, then of the three terminals, the two terminals with the highest priority are permitted to execute the target application, and the remaining terminal is prohibited from executing the target application.
[0057] Here, the process of the application management unit 16 shown in FIG. 9 is executed in each terminal. Therefore, the application management unit 16 of each terminal only needs to control permission / prohibition of the target application for its own terminal. For example, suppose that the target application is installed on three terminals 1a to 1c, even though the number of licenses is two. In this case, the application management unit 16 of each of the terminals 1a to 1c detects "excess license number." Here, assume that terminal 1a has the highest priority, terminal 1b has the second highest priority, and terminal 1c has the lowest priority. Then, the application management unit 16 of terminals 1a and 1b each permits execution of the target application, while the application management unit 16 of terminal 1c prohibits execution of the target application. As a result, based on the limit imposed by the number of licenses, only two terminals (1a and 1b) can execute the target application. In other words, the license violation is resolved while allowing the application to be executed on as many terminals as permitted by the license.
[0058] 10 is a flowchart showing an example of a method for controlling the execution of an application based on the value of the abnormality flag. The processing of this flowchart corresponds to S55 to S57 of the flowchart shown in FIG.
[0059] In S101 and S102, the application management unit 16 checks the value of the abnormality flag. If the abnormality flag is "0", the processing of the application management unit 16 ends. If the abnormality flag is "1", the application management unit 16 determines that only a license count violation has occurred. In this case, in S103, the application management unit 16 checks the number of licenses L for the target application by referring to the application management information, and in S104, checks the priority ranking K of the own terminal by referring to the terminal management information. Note that the higher the priority, the smaller the value representing the ranking.
[0060] In S105, the application management unit 16 compares the priority ranking K of the own terminal with the number of licenses L. If K is equal to or less than L, the application management unit 16 determines that the own terminal can use the target application preferentially. In this case, in S106, the application management unit 16 permits execution of the target application and sets the execution permission flag to "0." On the other hand, if K is greater than L, the application management unit 16 determines that the own terminal cannot use the target application preferentially. In this case, in S107, the application management unit 16 stops the target application and sets the execution permission flag to "1."
[0061] Thereafter, in S108, the application management unit 16 may transmit a stop instruction for the target application to a terminal whose priority ranking value is greater than the number of licenses L (i.e., a terminal whose priority is lower than L). In this case, it is preferable that the application management unit 16 of the terminal that receives this stop instruction stops the target application.
[0062] It is to be noted that if the abnormality flag is neither “0” nor “1”, it is determined that at least a violation of the expiration date has occurred. In this case, in S107, the application management unit 16 stops the target application and sets the execution permission flag to “1”.
[0063] 11 is a flowchart showing an example of the processing of the administrator notification unit 17. The processing of this flowchart is not particularly limited, but is preferably executed periodically, for example.
[0064] In S61 to S64, the administrator notification unit 17 checks the time flag in the terminal management information shown in FIG. 4(a) and the abnormality flag and execution permission flag in the application management information shown in FIG. 4(b). If the time flag is not "0" (S62: No), the administrator notification unit 17 determines that the clock of the terminal is not keeping the correct time. In this case, the administrator notification unit 17 adds a clock error (a state in which the clock of the terminal is not keeping the correct time) to the warning message in S65. If the abnormality flag is not "0" (S63: No), the administrator notification unit 17 determines that a violation has occurred with the license of the target application. In this case, the administrator notification unit 17 adds a license error (a violation of the license of the target application) to the warning message in S66. If the execution permission flag is not "0" (S64: No), the administrator notification unit 17 determines that the terminal 1 cannot execute the target application. In this case, the administrator notification unit 17 adds an execution error (a state in which the terminal cannot execute the target application) to the warning message in S67.
[0065] Thereafter, in S68, the administrator notification unit 17 transmits a warning message to the management server 110. If the determinations in S62 to S64 are all "Yes," the administrator notification unit 17 does not need to transmit a warning message to the management server 110. Alternatively, the administrator notification unit 17 may transmit a message to the management server 110 indicating that no license violation has occurred.
[0066] 12 shows an example of a license management sequence by the management server 110 and the terminal 1. In this example, two terminals (T001, T002) are connected to a local network. The terminal T001 has an application A001.
[0067] The management server 110 manages the license of the application A001. When the license content (expiration date, number of licenses, etc.) changes, the license information is updated in the management server 110.
[0068] Terminal T001 periodically acquires license information for application A001 from management server 110. Alternatively, management server 110 may notify each terminal of the license information when the contents of the license for application A001 are changed. Terminal T001 then updates the license information (expiration date, number of licenses) in the application management information shown in FIG. 4(b).
[0069] Terminal T001 sends an inquiry message to each terminal connected to the local network. In this example, terminal T001 acts as the inquiry terminal, and terminal T002 acts as the inquiry terminal. The inquiry message inquires whether the inquiry terminal has application A001.
[0070] When terminal T002 receives the inquiry message and application A001 is installed in terminal T002, it sends a response message to terminal T001, the inquiry source terminal. This response message indicates that terminal T002 has application A001. Together with this response message, time information indicating the time kept by the clock of terminal T002 is also notified to terminal T001.
[0071] Terminal T001 counts the number of terminals that have application A001 based on the number of responses to the inquiry message. In addition, terminal T001 verifies the time information.
[0072] Terminal T001 verifies whether there is a violation related to the license of application A001. Specifically, it verifies whether there is a violation of the number of licenses and the expiration date. Then, it sets an abnormality flag according to the verification result.
[0073] When a license violation occurs, terminal T001 sends a prior notification to management server 110. This prior notification indicates the date and time when the license violation was detected, the type of license violation, and so on. Upon receiving the prior notification, management server 110 notifies the user of application A001 that a license violation has occurred. This prompts the user to resolve the license violation.
[0074] Terminal T001 monitors whether the license violation has been resolved based on the time flag and the abnormality flag. Specifically, it determines whether the license violation has been resolved when a grace period has elapsed since the license violation was detected. If the result shows that the license violation has not been resolved, terminal T001 prohibits the execution of application A001. At this time, if the license violation related to application A001 is only "excessive licenses," it may determine whether to stop application A001 depending on the number of licenses and the priority of each terminal. Then, terminal T001 sends an administrator notification to management server 110. Upon receiving the administrator notification, management server 110 notifies the user of application A001 that a license violation has occurred, as necessary.
[0075] 12, terminal T001 verifies whether or not there is a license violation, but in reality, each terminal performs a similar verification. For example, when terminal T002 verifies whether or not there is a license violation, terminal T002 operates as an inquiry terminal, and terminal T001 operates as an inquiry terminal.
[0076] <First Example> 13 shows various types of information set in the first embodiment. That is, one terminal group (G001) is set, and two terminals (T001, T002) belong to this terminal group. Furthermore, the number of licenses for application A001 is two, and the expiration date is January 1, 2023. In the following description, it is assumed that terminal T001 verifies whether or not there is a license violation.
[0077] (1) Terminal T001 acquires license information from management server 110 using license information acquisition unit 11. The license information is saved as part of application management information.
[0078] (2) When terminal T001 recognizes that it owns application A001, it uses owned application confirmation unit 12 to search for a terminal that owns application A001. At this time, an inquiry message is broadcast to each terminal connected to local network 130. In this embodiment, it is assumed that terminal T002 responds to the inquiry message. As a result, terminal T001 detects that terminal T002 owns application A001. In other words, terminal T001 recognizes that there are two terminals that own application A001.
[0079] (3) Terminal T001 uses license confirmation unit 14 to verify whether or not there is a license violation. In this example, the number of terminals that possess application A001 is two, which does not exceed the number of licenses. Also, the time indicated by the time information (i.e., the current time) is before the expiration date. Therefore, terminal T001 determines that no license violation has occurred.
[0080] <Second Example> 14 shows various information set in the second embodiment. That is, one terminal group (G001) is set, and one terminal (T001) belongs to this terminal group. In addition, the number of licenses for application A001 is 1, and its expiration date is January 1, 2023.
[0081] (1) Terminal T001 acquires license information from management server 110 using license information acquisition unit 11. The license information is saved as part of application management information.
[0082] (2) When terminal T001 recognizes that it owns application A001, it uses owned application confirmation unit 12 to search for a terminal that owns application A001. At this time, an inquiry message is broadcast to each terminal connected to local network 130. However, in this embodiment, no response is returned from any terminal. As a result, terminal T001 recognizes that there is only one terminal that owns application A001.
[0083] (3) Terminal T001 uses license confirmation unit 14 to verify whether or not there is a license violation. In this example, the number of terminals that possess application A001 is one, which does not exceed the number of licenses. Also, the time indicated by the time information (i.e., the current time) is before the expiration date. Therefore, terminal T001 determines that no license violation has occurred.
[0084] <Third Example> 15 shows various information set in the third embodiment. That is, one terminal group (G001) is set, and two terminals (T001, T002) belong to this terminal group. In addition, the number of licenses for application A001 is 1, and its expiration date is January 1, 2023.
[0085] (1) Terminal T001 acquires license information from management server 110 using license information acquisition unit 11. The license information is saved as part of application management information.
[0086] (2) When terminal T001 recognizes that it owns application A001, it uses owned application confirmation unit 12 to search for a terminal that owns application A001. At this time, an inquiry message is broadcast to each terminal connected to local network 130. In this embodiment, it is assumed that terminal T002 responds to the inquiry message. As a result, terminal T001 detects that terminal T002 owns application A001. In other words, terminal T001 recognizes that there are two terminals that own application A001.
[0087] (3) Terminal T001 uses license confirmation unit 14 to verify whether or not there is a license violation. In this example, although the number of licenses for application A001 is one, the number of terminals that possess application A001 is two, exceeding the number of licenses. In other words, a violation of the number of licenses has occurred. On the other hand, the time indicated by the time information (i.e., the current time) is before the expiration date, so no violation of the expiration date has occurred. Therefore, terminal T001 updates the abnormality flag to "1" and records the current date and time as the date and time of the abnormality occurrence.
[0088] (4) Terminal T001 notifies the user that a license count violation has occurred for application A001, using advance notification unit 15. However, terminal T001 postpones the suspension of application A001 until a predetermined grace period (one day in this example) has elapsed since the license violation was detected.
[0089] (5) If the license violation is not resolved within the grace period, the application is forcibly stopped. In this example, although the number of licenses for application A001 is one, the number of terminals that own application A001 is two. In this case, one terminal with a high priority is permitted to run application A001, while other terminals with lower priorities are prohibited from running application A001. Here, terminal T001 has the highest priority, and terminal T002 has the second highest priority. Therefore, terminal T001 can continue running application A001, but terminal T002 is prohibited from running application A001.
[0090] Terminal T001 may use application management unit 16 to instruct application management unit 16 of terminal T002 to stop application A001. In this case, terminal T002 stops application A001 in accordance with the instruction received from terminal T001. Furthermore, since the processing of the flowcharts shown in FIGS. 5 to 11 is executed individually in each terminal, terminal T002 also detects that a license violation has occurred. Therefore, application management unit 16 of terminal T002 can stop application A001 without receiving an instruction from terminal T001.
[0091] (6) Terminal T001 uses administrator notification unit 17 to notify management server 110 that a violation of the license count has occurred for application A001. If the number of licenses is increased due to a contract or the like, the license information in management server 110 is updated, and each terminal acquires that license information. Then, when the number of terminals that own application A001 falls below the number of licenses, each terminal uses application management unit 16 to permit execution of application A001.
[0092] <Other Examples> When a failure occurs in communication between the management server 110 and each terminal 1, each terminal 1 (possessed application confirmation unit 12, license confirmation unit 14, application management unit 16) manages application licenses in cooperation with other terminals using license information acquired before the failure occurred. Generally, application licenses are updated or changed infrequently. Therefore, even if the management server 110 cannot be accessed and the license information acquired before the failure occurs must be used, it is believed that application licenses can be managed appropriately.
[0093] In cases where an application is installed in a terminal that is not registered with the management server 110 (i.e., a terminal that does not have the intra-terminal management function 10), it may not be possible to detect a license violation. However, if the application is designed so that it can be executed when permitted by the intra-terminal management function 10, the application cannot be executed on a terminal that is not registered with the management server 110.
[0094] There is also a possibility that a license violation cannot be detected when an application is installed on a terminal that is not connected to the local network 130. However, in this case, even if this terminal has the in-terminal management function 10, it cannot cooperate with other terminals and therefore cannot execute the application.
[0095] <Hardware configuration> 16 shows an example of the hardware configuration of the terminal 1. The terminal 1 is realized by a computer 200 including a processor 201, a memory 202, a storage device 203, an input / output device 204, a recording medium reader 205, and a communication interface 206.
[0096] Processor 201 controls the operation of terminal 1 related to license management by executing a license management program stored in storage device 203. This license management program includes program code that describes the procedures of the flowcharts shown in Figures 5 to 11. Therefore, when processor 201 executes this program, the functions of license information acquisition unit 11, owned application confirmation unit 12, inquiry response unit 13, license confirmation unit 14, advance notification unit 15, application management unit 16, and administrator notification unit 17 shown in Figure 3 are provided.
[0097] The memory 202 is used as a work area for the processor 201. The storage device 203 stores the license management program and other programs described above.
[0098] The input / output device 204 includes input devices such as a keyboard, a mouse, a touch panel, and a microphone. The input / output device 204 also includes output devices such as a display device and a speaker. The recording medium reader 205 can acquire data and information recorded on the recording medium 210. The recording medium 210 is a removable recording medium that can be attached to or detached from the computer 200. The recording medium 210 can be realized by, for example, a semiconductor memory, a medium that records signals optically, or a medium that records signals magnetically. The license management program may be provided to the computer 200 from the recording medium 210. The communication interface 206 provides a function for connecting to a network. When the license management program is stored in the program server 220, the computer 200 may acquire the license management program from the program server 220. [Explanation of symbols]
[0099] 1(T001~T00n) Terminal 10 In-device management function 11 License Information Acquisition Department 12 Application Verification Department 13 Query response section 14 License Verification Section 15 Advance Notice Section 16 Application Management Department 17 Administrator Notification Department 18 Preservation Department 100 Network Systems 110 Management Server 111 Registered terminal management function 112 License Management Function 120 Public Network 130 Local Network
Claims
1. a plurality of terminals connected to each other via a network; a management server that manages licenses of applications installed on the plurality of terminals, A first terminal of the plurality of terminals a license information acquisition unit that acquires license information representing the content of a license for the first application from the management server when the first terminal possesses the first application; an owned application confirmation unit that transmits an inquiry message to other terminals among the plurality of terminals, the inquiry message inquiring whether the other terminals have the first application; a license confirmation unit that confirms whether or not there is a violation of the license based on the license information and a response from the other terminal to the inquiry message; a storage unit that stores information indicating the priority of each terminal; the license information includes a license count representing the number of terminals that can possess the first application; the possessed application confirmation unit counts the number of terminals possessing the first application based on responses from the other terminals; the license confirmation unit determines that a violation of the license has occurred when the number of terminals possessing the first application exceeds the number of licenses; When the number of terminals having the first application exceeds the number of licenses and the value representing the priority ranking of the first terminal exceeds the number of licenses, the first terminal stops the first application. A network system comprising:
2. The terminal that has received the inquiry message responds to the inquiry message if it has the first application.
2. The network system according to claim 1.
3. The computer further includes an application management unit that stops the first application when the violation related to the license is not resolved after a predetermined grace period has elapsed since the violation was detected.
2. The network system according to claim 1.
4. the license information includes an expiration date of the first application; The license confirmation unit determines whether the current time is before or after the expiration date of the first application.
2. The network system according to claim 1.
5. The first terminal stops the first application when the current time is after the expiration date of the first application.
5. The network system according to claim 4.
6. When the first terminal detects a violation related to the license, the first terminal notifies the management server or the user of the first application that the violation has occurred.
6. The network system according to claim 1, wherein:
7. A terminal device that connects to one or more other terminals via a network, a license information acquisition unit that acquires license information representing the content of a license for the first application when the terminal device has the first application; an owned application confirmation unit that transmits an inquiry message to the one or more other terminals inquiring whether the one or more other terminals own the first application; a license confirmation unit that confirms whether or not there is a violation of the license based on the license information and responses from the one or more other terminals to the inquiry message; a storage unit for storing information indicating the priority of the terminal device and the one or more other terminals; the license information includes a license count representing the number of terminals that can possess the first application; the possessed application confirmation unit counts the number of terminals possessing the first application based on responses from the one or more other terminals; the license confirmation unit determines that a violation of the license has occurred when the number of terminals possessing the first application exceeds the number of licenses; When the number of terminals having the first application exceeds the number of licenses and the value representing the priority of the terminal device exceeds the number of licenses, the terminal device stops the first application. A terminal device characterized by:
8. 1. A license management method for managing licenses of applications installed in a network system including a plurality of terminals connected to each other via a network, comprising: a first terminal among the plurality of terminals, when the first terminal possesses a first application, acquires license information representing the content of a license for the first application; the first terminal transmits an inquiry message to the other terminals among the plurality of terminals, inquiring whether the other terminals have the first application; the other terminal responds to the inquiry message when it has the first application; the first terminal checks whether or not there is a violation of the license based on the license information and a response from the other terminal to the inquiry message; the first terminal holds information indicating a priority of each terminal; the license information includes a license count representing the number of terminals that can possess the first application; the first terminal counts the number of terminals that have the first application based on the responses from the other terminals; the first terminal determines that a violation of the license has occurred when the number of terminals possessing the first application exceeds the number of licenses; When the number of terminals having the first application exceeds the number of licenses and the value representing the priority ranking of the first terminal exceeds the number of licenses, the first terminal stops the first application. A license management method comprising:
Citation Information
Patent Citations
License managing method for software and storage medium
JP2002222021A
Method for authenticating license of software
JP2004355488A
Image formation device and license management system
JP2009224826A
Information processor, information processing method and program, and license management system
JP2011180888A
Program, license management system and license management method
JP2012220966A