WO2020194604A1 - ライセンス移行ツール、プログラム、及びライセンス移行システム - Google Patents

ライセンス移行ツール、プログラム、及びライセンス移行システム Download PDF

Info

Publication number
WO2020194604A1
WO2020194604A1 PCT/JP2019/013379 JP2019013379W WO2020194604A1 WO 2020194604 A1 WO2020194604 A1 WO 2020194604A1 JP 2019013379 W JP2019013379 W JP 2019013379W WO 2020194604 A1 WO2020194604 A1 WO 2020194604A1
Authority
WO
WIPO (PCT)
Prior art keywords
license
key
identifier
license key
plc
Prior art date
Application number
PCT/JP2019/013379
Other languages
English (en)
French (fr)
Inventor
吉岡 正裕
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2019568127A priority Critical patent/JP6701463B1/ja
Priority to PCT/JP2019/013379 priority patent/WO2020194604A1/ja
Priority to KR1020217026824A priority patent/KR102314391B1/ko
Priority to CN201980094382.XA priority patent/CN113614716B/zh
Publication of WO2020194604A1 publication Critical patent/WO2020194604A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Definitions

  • the present invention relates to a license transfer tool, a program, and a license transfer system.
  • the license management server managed by the application program distributor and the device on which the application program is installed communicate via the network, and the license management server Activation may be performed.
  • the application program uninstalled from the device may be installed on another device. In this case, it is necessary to transfer the license of the application program.
  • Patent Document 1 describes that the license is transferred as follows.
  • the device from which the license is transferred When the application program is uninstalled, the device from which the license is transferred generates an uninstall certification code and sends the uninstall certification code to the license management server.
  • the device to which the license is transferred generates the unique identification code and sends the unique identification code to the license management server.
  • the license management server determines whether the received uninstall certification code and the unique identification code are valid, and if they are valid, permits license transfer. When permitting the license transfer, the license management server sends an installation permission notification to the device to which the license is transferred.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to transfer a license between stand-alone devices that cannot communicate with a license management server.
  • the license transfer tool transfers the license key indicating that the use of the application program is permitted between two or more devices that are not connected to the external network.
  • the license key includes an identifier that identifies the device in which the license key is registered.
  • the key acquisition means provided in the license transfer tool acquires the license key from the first device which is the device from which the license is transferred.
  • the identifier acquisition means included in the license transfer tool acquires a second identifier that identifies the second device from the second device that is the device to which the license is transferred.
  • the regeneration means provided by the license transfer tool deletes the first identifier that identifies the first device from the license key obtained from the first device, adds the second identifier of the second device as an identifier, and creates a new license. Generate a key and supply a new license key to the second device.
  • the license transfer tool acquires a license key from the first device which is the license transfer source device, and identifies the second device from the second device which is the license transfer destination device. To get.
  • the license transfer tool deletes the first identifier that identifies the first device from the license key obtained from the first device, adds the second identifier of the second device as an identifier, and generates a new license key. Supply a new license key to the second device. With such a configuration, licenses can be transferred between stand-alone devices that cannot communicate with the license management server.
  • a block diagram showing a functional configuration of a license management system according to an embodiment of the present invention The figure which shows the hardware configuration of the license management system which concerns on embodiment.
  • the figure which shows the structure of the program storage part of PLC which concerns on embodiment The figure which shows the structure of the license key storage part of PLC which concerns on embodiment
  • the figure which shows the structure of the license key which concerns on embodiment The figure which shows an example of the data stored in the application conformity table which concerns on embodiment.
  • the figure which shows an example of the data stored in the license registration table which concerns on embodiment The figure which shows an example of the menu screen of the license management tool which concerns on embodiment Flowchart of license issuance request processing of license management tool according to the embodiment
  • the figure which shows an example of the selection screen which selects the target of registration of the license key which concerns on embodiment The figure which shows an example of the registration completion screen of the license key which concerns on embodiment
  • the license management system 1 shown in FIG. 1 manages the license of the application program executed by the programmable logic controllers 101 and 102.
  • the license management system 1 includes a license management tool 500 that manages license registration of a programmable logic controller used in a production line in a factory, and a license management server 600 that issues a license.
  • Programmable logic controllers 101 and 102 are control devices that control mechanical devices (not shown) used in a production line in a factory.
  • the programmable logic controllers 101 and 102 may be collectively referred to as a programmable logic controller 100 (PLC100).
  • the license management tool 500 for example, a personal computer located in the same factory as the programmable logic controller 100 and having a dedicated program installed is used.
  • the license management server 600 is, for example, a server under the control of a manufacturer that develops and sells application programs.
  • the PLC100 controls a mechanical device connected via an internal network (not shown) in a factory by executing an application program sold as a product.
  • the PLC100 needs to have a license indicating that the use of the application program is licensed.
  • the PLC 100 can execute the application program if it has the license key of the application program.
  • the license key is a code indicating that the PLC100 has a license.
  • the license management server 600 issues a license key.
  • the PLC100 is not connected to the external network and cannot communicate with the license management server 600.
  • the external network is an open network such as the Internet.
  • the license management tool 500 can communicate with the license management server 600 via an external network. Therefore, the license management tool 500 acquires the license key from the license management server 600 instead of the PLC 100, and supplies the acquired license key to the PLC 100.
  • the license management tool 500 performs a process related to the transfer of the license key.
  • the transfer of the license key is to transfer the license key from the PLC100 which has the license key for one application program to another PLC100.
  • the PLC100 that has the license key will be able to execute the application program.
  • the PLC100 that no longer has the license key cannot execute the application program.
  • the PLC 100 includes a memory 11 for storing various programs and data, an input / output interface 12 for exchanging data between the license management tool 500 via a communication cable 701, and a PLC 100. It has an MPU (Micro Processing Unit) 13 that controls the whole.
  • the memory 11 and the input / output interface 12 are connected to the MPU 13 via the bus 19 and communicate with the MPU 13.
  • the memory 11 includes a volatile memory and a non-volatile memory.
  • the memory 11 stores programs for realizing various functions of the PLC 100.
  • the memory 11 stores a license management program 111, which is a program that causes the MPU 13 to execute processes such as storing and retrieving the license key. Further, the memory 11 is used as a work memory of the MPU 13.
  • the memory 11 stores an identifier for uniquely identifying the PLC 100.
  • the serial code assigned to the PLC 100 at the time of manufacturing the PLC 100 is used as the identifier assigned to the PLC 100.
  • the memory 11 stores a user ID which is information for identifying the user.
  • the user of the PLC100 is, for example, the administrator of the PLC100.
  • the input / output interface 12 includes, for example, a USB controller, converts the data supplied from the MPU 13 into an electric signal, and outputs the converted signal to the license management tool 500 via the communication cable 701.
  • the communication cable 701 is, for example, a USB cable. Further, the input / output interface 12 receives the electric signal output by the license management tool 500 via the communication cable 701, restores the received electric signal to data, and outputs the received electric signal to the MPU 13.
  • the MPU 13 executes various programs stored in the memory 11 to realize various functions of the PLC 100. For example, by executing the license management program 111, processing such as storing and retrieving the license key is executed.
  • the license management tool 500 is licensed via a memory 51 that stores various programs and data, an input / output interface 52 that exchanges data between the PLC 100 and the PLC 100 via a communication cable 701, and a network 702. It has a communication interface 53 that communicates with the management server 600, an input device 54 that detects an input operation of a user, a display device 55 that outputs an image, and a CPU (Central Processing Unit) 56 that controls the entire license management tool 500. ..
  • the memory 51, the input / output interface 52, the communication interface 53, the input device 54, and the display device 55 are connected to the CPU 56 via the bus 59, and each communicates with the CPU 56.
  • the memory 51 includes a volatile memory and a non-volatile memory.
  • the memory 51 stores programs for realizing various functions of the license management tool 500. Specifically, the memory 51 stores the license management program 511. Further, the memory 51 is used as a work memory of the CPU 56.
  • the license management program 511 is a program that causes the CPU 56 to execute the license key registration process and the license key transfer process.
  • the input / output interface 52 includes, for example, a USB controller, converts data supplied from the CPU 56 into an electric signal, and outputs the converted signal to the PLC 100 via the communication cable 701. Further, the input / output interface 52 receives the electric signal output by the PLC 100 via the communication cable 701, restores the received electric signal to data, and outputs the received electric signal to the CPU 56.
  • a USB controller converts data supplied from the CPU 56 into an electric signal, and outputs the converted signal to the PLC 100 via the communication cable 701. Further, the input / output interface 52 receives the electric signal output by the PLC 100 via the communication cable 701, restores the received electric signal to data, and outputs the received electric signal to the CPU 56.
  • the communication interface 53 includes a network interface circuit and communicates with the license management server 600 via the network 702 under the control of the CPU 56.
  • the network 702 is, for example, the Internet.
  • the input device 54 includes a mouse, operation keys, and the like, receives an operation input from the user, and outputs a signal indicating the user's operation input to the CPU 56.
  • the display device 55 includes a display and displays an image based on a signal supplied from the CPU 56 on the display.
  • the CPU 56 executes various programs stored in the memory 51 to realize various functions of the license management tool 500. Specifically, the CPU 56 registers the license key of the application program in the PLCs 101 and 102 by executing the license management program 511. Further, the CPU 56 transfers the license key possessed by the PLC 101 to the PLC 102 by executing the license management program 511, for example.
  • the license management server 600 includes a memory 61 for storing various programs and data, a communication interface 62 for communicating with the license management tool 500 via the network 702, and a CPU 63 for controlling the entire license management server 600.
  • the memory 61 and the communication interface 62 are connected to the CPU 63 via the bus 69, and each communicate with the CPU 63.
  • the memory 61 includes a volatile memory and a non-volatile memory.
  • the memory 61 stores programs for realizing various functions of the license management server 600. Specifically, the memory 61 stores the license management program 611. Further, the memory 51 is used as a work memory of the CPU 56.
  • the license management program 611 is a program that causes the CPU 63 to execute a process of issuing a license key and a process of managing information related to license registration.
  • the communication interface 62 includes a network interface circuit and communicates with the license management server 600 via the network 702 under the control of the CPU 63.
  • the CPU 63 executes various programs stored in the memory 61 to realize various functions of the license management server 600. Specifically, the CPU 63 issues a license key by executing the license management program 611.
  • the PLC 100 has a program storage unit 110 that stores an application program, a license key storage unit 120 that stores a license key, an invalidation key storage unit 130 that stores an invalidation key, and a PLC 100 that stores an application program.
  • a license confirmation unit 140 that determines whether or not the license key is valid before execution, a license transmission / reception unit 150 that exchanges a license key between the license management tool 500, and a program execution that executes an application program. Includes part 160.
  • the program storage unit 110 stores the application program executed by the PLC 100.
  • Application programs include programs sold as products. As shown in FIG. 3, it is assumed that the program storage unit 110 stores the application programs 1101 to 1103 purchased by the user.
  • the PLC 100 needs to have each application key in order to execute the application programs 1101 to 1103.
  • the application programs 1101 to 1103 may be collectively referred to as an application program 1100.
  • the function of the program storage unit 110 is realized by the memory 11 shown in FIG.
  • the license key storage unit 120 shown in FIG. 1 stores the license key corresponding to each of the application programs 1100 executed by the PLC 100. As shown in FIG. 3, it is assumed that the program storage unit 110 stores the application programs 1101 to 1103. In this case, as shown in FIG. 4, the license key storage unit 120 stores the license keys 1201 to 1203 corresponding to the application programs 1101 to 1103, respectively. Hereinafter, the license keys 1201 to 1203 may be collectively referred to as a license key 1200.
  • the license key storage unit 120 is an example of the license key storage means of the present invention.
  • the license key 1200 is supplied from the license management tool 500 shown in FIG.
  • the license transmission / reception unit 150 which will be described later, stores the license key 1200 supplied from the license management tool 500 in the license key storage unit 120.
  • the function of the license key storage unit 120 is realized by the memory 11 shown in FIG. It is desirable that the license key storage unit 120 is provided in an area of the memory 11 that cannot be referred to by the user.
  • the license transmission / reception unit 150 is an example of the storage means of the present invention.
  • the license key storage unit 120 stores the license key 1200 and the application ID that identifies the application program 1100.
  • the license key 1200 includes a license code 1200a, a device ID 1200b, a transition counter 1200c, and an invalidation flag 1200d.
  • the license code 1200a is an identification code assigned to each license of the application program 1100. In the embodiment, it is assumed that one PLC100 can execute the application program 1100 with one license.
  • the device ID 1200b is an identifier for uniquely identifying the PLC100 in which the application program 1100 is installed. An identifier of PLC100 in which the license key 1200 is registered is set in the device ID 1200b.
  • the PLC 100 determines whether or not the device ID 1200b of the license key 1200 matches the identifier of the own machine. When the PLC 100 determines that the device ID 1200b of the license key 1200 matches the identifier of its own machine, the PLC 100 executes the application program 1100. On the other hand, if the PLC 100 determines that the device ID 1200b of the license key 1200 does not match the identifier of the own machine, the PLC 100 does not execute the application program 1100. With such a configuration, it is possible to control the PLC100, which should not execute the application program 1100, so as not to execute the application program 1100.
  • the license management server 600 When the license key 1200 is issued for the first time, the license management server 600 generates the license key 1200. Therefore, the license management server 600 is supplied with the identifier of the PLC 100 from the license management tool 500. The license management server 600 sets the identifier of the PLC 100 in the license key 1200 as the device ID 1200b. At the time of migration of the license key 1200, the license management tool 500 regenerates the license key 1200. In this case, the license management tool 500 sets the identifier of the destination PLC100 as the device ID 1200b in the license key 1200.
  • the migration counter 1200c stores a value indicating the number of migrations, which is the number of times the license of the application program 1100 has been migrated.
  • the value of the migration counter 1200c is an initial value, for example, "0" when the license key 1200 is first generated.
  • the value of the transition counter 1200c is added by "1" at the timing when the license key 1200 is regenerated.
  • the license management server 600 sets an initial value in the value of the migration counter 1200c when the license key 1200 is generated.
  • the license management tool 500 adds the value of the migration counter 1200c of the license key 1200 by a predetermined number, for example, "1".
  • the value of the transition counter 1200c is an initial value, for example, “0”.
  • the PLC 101 cannot execute the application program 1101 due to some reason such as a malfunction of the PLC 101.
  • the administrator of the PLC 100 installs the application program 1101 on the PLC 102 and uses the license management tool 500 to transfer the license key 1200 of the application program 1101 to the PLC 102.
  • the value of the transition counter 1200c at this time is a value obtained by adding "1" to the initial value, that is, "1".
  • the invalidation flag 1200d has a value indicating whether or not the license key 1200 is an invalidation key.
  • the invalidation key is used to prevent unauthorized use of the license key 1200.
  • the invalidation key is stored in the source PLC100 when the license key 1200 is transferred to another PLC100.
  • the invalidation flag 1200d As a value indicating that the license key 1200 is a valid key, for example, "0" is set in the invalidation flag 1200d.
  • the value of the invalidation flag 1200d is, for example, "1", indicating that the key is an invalidation key.
  • the license management tool 500 copies the license key 1200 to be migrated, sets the invalidation flag 1200d of the copied key to "1", generates an invalidation key, and generates an invalidation key to generate the migration source. Save the invalidation key in the PLC100 of.
  • the PLC100 does not accept the supplied license key 1200 when the license management tool 500 supplies an invalidation key that matches the part excluding the invalidation flag 1200d of the license key 1200.
  • the invalidation key storage unit 130 shown in FIG. 1 stores the invalidation key.
  • the license management tool 500 issues an invalidation key to the migration source PLC100 when the license key 1200 is migrated. Therefore, the invalidation key storage unit 130 stores the invalidation key only when the invalidation key is supplied from the license management tool 500.
  • the function of the invalidation key storage unit 130 is realized by the memory 11 shown in FIG. It is desirable that the invalidation key storage unit 130 is provided in an area of the memory 11 that cannot be referred to by the user.
  • the license management server 600 when the license key 1200 is issued for the first time, the license management server 600 generates the license key 1200 including the PLC101 identifier as the device ID 1200b of the license key 1200, and transmits the license key 1200 to the license management tool 500.
  • the user or another person copies the license key 1200 for PLC101 stored in the license management tool 500 to a certain area in the memory 51.
  • the license key 1200 is registered in the PLC 101
  • the user or another person operates the license management tool 500 to transfer the license key 1200 to the PLC 102.
  • the user or another person re-registers the copied license key 1200 for the PLC 101 in the PLC 101.
  • the license key 1200 for the PLC 101 can be registered in the PLC 101, and the application program 1100 can be executed by the two PLC 100s by purchasing only one license.
  • the user or another person operates the license management tool 500 to obtain the license key 1200 acquired from the PLC 101 during the process of migrating the license key 1200 registered in the PLC 101 from the PLC 101 to the PLC 102.
  • the copy is made to a certain area in the memory 51.
  • the license key 1200 regenerated by the license management tool 500 is registered in the migration destination PLC 102, and then the user or another person registers the copied license key 1200 for the PLC 101 in the PLC 101 again.
  • the license key 1200 for the PLC 101 can be registered in the PLC 101, and the application program 1100 can be executed by the two PLC 100s by purchasing only one license.
  • the license management tool 500 when migrating the license key 1200, the license management tool 500 generates an invalidation key from the license key 1200 held by the migration source PLC100 and transfers the invalidation key. Register with the original PLC101.
  • the license confirmation unit 140 shown in FIG. 1 confirms whether or not the PLC 100 has the license key 1200 necessary for executing the application program 1100.
  • the license confirmation unit 140 determines whether or not the license key 1200 corresponding to the application program 1100 exists in the license key storage unit 120 shown in FIG. When the license key 1200 exists in the license key storage unit 120, the license confirmation unit 140 determines whether or not the value of the device ID 1200b of the license key 1200 matches the identifier of the PLC 100 stored in the memory 11. Determine if the license key 1200 is valid. The license confirmation unit 140 notifies the program execution unit 160 whether or not the license key 1200 is valid. The function of the license confirmation unit 140 is realized by the MPU 13 shown in FIG.
  • the license transmission / reception unit 150 shown in FIG. 1 receives the license key 1200 from the license management tool 500, and determines whether the license key 1200 can be registered. When the license transmission / reception unit 150 determines that the supplied license key 1200 can be registered, the license key 1200 stores the license key 1200 in the license key storage unit 120.
  • the license transmission / reception unit 150 determines whether or not the invalidation key in which the portion of the received license key 1200 excluding the invalidation flag 1200d matches is stored in the invalidation key storage unit 130.
  • the license transmission / reception unit 150 stores the license key 1200 in the license key storage unit 120 when the parts other than the invalidation flag 1200d do not have the matching invalidation key.
  • the license transmission / reception unit 150 does not store the license key 1200 in the license key storage unit 120 when the parts other than the invalidation flag 1200d have matching invalidation keys.
  • the license transmission / reception unit 150 transmits the identifier of the PLC 100 to the license management tool 500.
  • the license management server 600 sets the identifier of the PLC 100 in the license key 1200 as the device ID 1200b.
  • the license management tool 500 sets the identifier of the PLC 100 in the license key 1200 as the device ID 1200b.
  • the license transmission / reception unit 150 is an example of the identifier transmission means of the present invention.
  • the license transmission / reception unit 150 displays a list of the values of the license key 1200 stored in the license key storage unit 120 in the license management tool 500. Send to.
  • the license transmission / reception unit 150 takes out the designated license key 1200 from the license key storage unit 120 and transfers the license key 1200 to the license management tool 500. Send. Therefore, the extracted license key 1200 is not stored in the license key storage unit 120.
  • the license transmission / reception unit 150 stores the invalidation key in the invalidation key storage unit 130.
  • the function of the license transmission / reception unit 150 is realized by the MPU 13 shown in FIG. 2 executing the license management program 111.
  • the program execution unit 160 shown in FIG. 1 executes the application program 1100. Prior to executing the application program 1100, the program execution unit 160 inquires the license confirmation unit 140 whether or not the license key 1200 corresponding to the application program 1100 is valid. When the program execution unit 160 determines that the license key 1200 is valid based on the response from the license confirmation unit 140, the program execution unit 160 executes the application program 1100 stored in the program storage unit 110. The function of the program execution unit 160 is realized by the MPU 13 shown in FIG.
  • the license management tool 500 functionally migrates the purchase data storage unit 510 that stores data related to the purchased application program 1100, the license registration unit 520 that registers a new license key 1200 in the PLC 100, and the license key 1200. Includes the license transfer unit 530.
  • the purchase data storage unit 510 stores the application ID and the application name that specify the purchased application program 1100 in order to specify the application program 1100 that the user has purchased.
  • the function of the purchase data storage unit 510 is realized by the memory 51 shown in FIG.
  • the license registration unit 520 shown in FIG. 1 receives an instruction for issuing a new license key 1200 from the user, it sends an issuance request requesting the issuance of the license key 1200 to the license management server 600.
  • the license registration unit 520 transmits the license key 1200 to the PLC 100.
  • the license registration unit 520 displays a list of application names of the purchased application program 1100 stored in the purchase data storage unit 510 on the display device 55 shown in FIG.
  • the license registration unit 520 requests the identifier from the connected PLC 100 and acquires the identifier from the PLC 100.
  • the license registration unit 520 transmits a license issuance request to the license management server 600.
  • the license issuance request includes a user ID that identifies the user of the PLC 100, an identifier of the PLC 100 received from the PLC 100, and an application ID that identifies the application program 1100 specified by the user.
  • the license registration unit 520 receives the license key 1200 from the license management server 600, the license registration unit 520 transmits the received license key 1200 to the PLC 100.
  • the license registration unit 520 when the license registration unit 520 receives a notification from the license management server 600 that the license key 1200 cannot be issued, it notifies the user that the registration of the license key 1200 has failed. For example, the license registration unit 520 displays a message to the effect that the registration of the license key 1200 has failed on the display device 55 shown in FIG.
  • the function of the license registration unit 520 is realized by the CPU 56 shown in FIG. 2 executing the license management program 511.
  • the license transfer unit 530 shown in FIG. 1 receives an instruction to transfer the license key 1200 from the user, the license transfer unit 530 acquires the license key 1200 from the connected migration source PLC100.
  • the license transfer unit 530 acquires an identifier from the migration destination PLC100, regenerates a new license key 1200 including the identifier, and gives a new license key 1200 to the migration destination PLC100.
  • the function of the license transfer unit 530 is realized by the CPU 56 shown in FIG. 2 executing the license management program 511.
  • the license transfer unit 530 includes a key acquisition unit 531, an identifier acquisition unit 532, a regeneration unit 533, and an invalidation key generation unit 534.
  • the key acquisition unit 531 When the user connects the license management tool 500 and the migration source PLC100 and issues an instruction to migrate the license key 1200, the key acquisition unit 531 first obtains information about the license key 1200 held by the migration source PLC100. Request to the migration source PLC100. The key acquisition unit 531 presents to the user information about the license key 1200 received from the migration source PLC. The key acquisition unit 531 requests the migration source PLC100 to take out the license key 1200 specified by the user. When the key acquisition unit 531 acquires the license key 1200 from the migration source PLC100, the key acquisition unit 531 supplies the license key 1200 to the regeneration unit 533.
  • the key acquisition unit 531 is an example of the key acquisition means of the present invention.
  • the identifier acquisition unit 532 When the user connects the license management tool 500 and the migration destination PLC100, the identifier acquisition unit 532 requests the identifier from the migration destination PLC100. When the identifier acquisition unit 532 acquires the identifier from the migration destination PLC100, the identifier acquisition unit 532 supplies the identifier to the regeneration unit 533.
  • the identifier acquisition unit 532 is an example of the identifier acquisition means of the present invention.
  • the regeneration unit 533 instructs the invalidation key generation unit 534 to generate the invalidation key before regenerating the license key 1200.
  • the regeneration unit 533 regenerates the license key 1200 after the invalidation key generation unit 534 generates the invalidation key.
  • the regeneration unit 533 is an example of the regeneration means of the present invention.
  • the regeneration unit 533 deletes the identifier of the migration source PLC100 set as the device ID 1200b from the license key 1200 acquired by the key acquisition unit 531 from the migration source PLC100.
  • the regeneration unit 533 sets the identifier of the destination PLC100 as the device ID 1200b of the license key 1200. Further, the regeneration unit 533 increments the value of the migration counter 1200c of the license key 1200 by one. In this way, the regeneration unit 533 regenerates the license key 1200.
  • the regeneration unit 533 transmits the regenerated license key 1200 to the migration destination PLC100.
  • the regeneration unit 533 transmits the transferred license key information to the license management server 600.
  • the transferred license key information includes a user ID that identifies the user of the PLC 100, a license key 1200 transmitted to the migration destination PLC 100, and an identifier of the migration destination PLC 100.
  • the invalidation key generation unit 534 generates an invalidation key when instructed by the regeneration unit 533.
  • the invalidation key generation unit 534 duplicates the migration source license key 1200, sets the invalidation flag 1200d of the duplicated key to "1", and generates an invalidation key.
  • the invalidation key generated by the invalidation key generation unit 534 differs only in the value of the invalidation flag 1200d from the license key 1200 held by the migration source PLC100.
  • the invalidation key generation unit 534 transmits the invalidation key to the migration source PLC100.
  • the invalidation key generation unit 534 is an example of the invalidation key generation means of the present invention.
  • the transfer source PLC 101 is an example of the first device of the present invention
  • the transfer destination PLC 102 is an example of the second device of the present invention.
  • the identifier of the migration source PLC101 is an example of the first identifier of the present invention
  • the identifier of the migration destination PLC102 is an example of the second identifier of the present invention.
  • the license management server 600 includes an application data storage unit 610 that stores data related to application programs, a license data storage unit 620 that stores data related to licenses, and a license management unit 630 that issues a license key 1200. Including.
  • the application data storage unit 610 stores the application compatibility table 610a as shown in FIG.
  • the application conformance table 610a stores data indicating whether or not each application program 1100 can be executed for each model of the PLC 100.
  • the application compatibility table 610a stores a value indicating whether each application program 1100 can be executed (OK) or cannot be executed (NG) according to the model of the PLC100.
  • the PLC100 of "TYPE2" can execute "application 1001" and "application 1004", and cannot execute other application programs 1100.
  • an administrator who manages the license management server 600 at a manufacturer that develops and sells an application program stores the application conformity table 610a in the application data storage unit 610.
  • the function of the application data storage unit 610 is realized by the memory 61 shown in FIG.
  • the license data storage unit 620 shown in FIG. 1 stores the purchase license table 620a as shown in FIG. 7.
  • the purchase license table 620a stores data indicating the number of licenses purchased and the number of licenses used for each user.
  • the purchase license table 620a shows a user ID that is an identifier that identifies the user, an application ID that identifies the application program 1100, a purchase license that indicates the number of licenses purchased by the user, and a license registered in the PLC 100. Includes usage licenses indicating numbers.
  • a user whose user ID is "2009002” has purchased three licenses of "application 1001", but has not used the application program 1100 for all the purchased licenses. Further, this user has purchased one license of "application 1002” and four licenses of "application 1003", and is using the application program 1100 for all the purchased licenses.
  • the license data storage unit 620 shown in FIG. 1 stores the license registration table 620b as shown in FIG.
  • the license registration table 620b stores data related to the license key 1200 issued to the PLC 100.
  • the license registration table 620b stores data for identifying the license key 1200 issued to the PLC 100 for each combination of the user and the application program 1100.
  • the license registration table 620b includes a user ID that is an identifier that identifies the user, an application ID that identifies the application program 1100, an issued license key, and an identifier of the PLC100.
  • an administrator who manages the license management server 600 at a manufacturer that develops and sells an application program stores the purchase license table 620a and the license registration table 620b in the license data storage unit 620.
  • the function of the license data storage unit 620 is realized by the memory 61 shown in FIG.
  • the license management unit 630 shown in FIG. 1 When the license management unit 630 shown in FIG. 1 receives a license issuance request from the license management tool 500, it issues a license key 1200.
  • the license management unit 630 determines whether or not the license can be issued. Specifically, the license management unit 630 refers to the application conformance table 610a, and the model of the PLC100 specified from the identifier of the PLC100 included in the received license issuance request executes the designated application program 1100. Determine if it can be done. The information indicating the model of the PLC100 is included in the serial code which is the identifier of the PLC100, and the license management unit 630 can identify the model of the PLC100 from this information.
  • the license management unit 630 determines whether or not the user having the user ID included in the license issuance request has purchased the license of the specified application program 1100 by referring to the purchase license table 620a. .. If the user has purchased a license, the license management unit 630 determines whether or not there is an unused license.
  • the license management unit 630 determines that the license key 1200 can be issued when the user has purchased the license and has an unused license. Therefore, the license management unit 630 generates the license key 1200 as shown in FIG.
  • the license management unit 630 generates a random number using the user ID as a seed, and sets a value obtained by adding the application ID to the generated random number in the license code 1200a.
  • the license management unit 630 sets the device ID 1200b with the PLC100 identifier included in the license issuance request.
  • the license management unit 630 sets an initial value, for example, “0” in the transition counter 1200c.
  • the license management unit 630 sets the invalidation flag 1200d to "0" as a value indicating that the license key 1200 is a valid key.
  • the license management unit 630 transmits the license key 1200 generated in this manner to the license management tool 500.
  • the license management unit 630 registers the user ID, application ID, and PLC100 identifier included in the license issuance request and the issued license key 1200 in the license registration table 620b.
  • the license management unit 630 cannot issue the license key 1200 if the model of the PLC100 cannot execute the specified application program 1100, the user has not purchased the license, or there is no unused license. Determine that it is possible. In this case, the license management unit 630 notifies the license management tool 500 that the license key 1200 cannot be issued.
  • the function of the license management unit 630 is realized by the CPU 63 shown in FIG. 2 executing the license management program 611.
  • the license management unit 630 when the license management unit 630 receives the user ID that identifies the user of the PLC 100, the license key 1200 registered in the migration destination PLC 100, and the identifier of the migration destination PLC 100 from the license management tool 500, the license management unit 630 registers the license. Update table 620b. Specifically, the license management unit 630 updates the data specified by the received license key 1200 and the identifier among the data in the license registration table 620b with the received license key 1200 and the identifier of the PLC 100. After that, the license management unit 630 sends an update completion notification indicating that the update of the license registration table 620b is completed to the license management tool 500.
  • the CPU 56 functions as a license registration unit 520 by executing the license management program 511.
  • the license registration unit 520 requests an identifier from the PLC 101 (step S11).
  • the license transmission / reception unit 150 of the PLC 101 transmits the identifier to the license management tool 500.
  • the license registration unit 520 displays the application program selection screen as shown in FIG. 11A.
  • the license registration unit 520 displays a screen on which the user can select any of the purchased application programs 1100 stored in the purchase data storage unit 510 shown in FIG.
  • the user selects a desired application program and presses the "register" button.
  • the license registration unit 520 accepts the selection of the application program (step S13) and transmits the license issuance request to the license management server 600 (step S14).
  • the license issuance request includes a user ID of the user of the PLC 100, an identifier of the PLC 100, and an application ID that identifies the application program 1100.
  • the license registration unit 520 receives the license key 1200 from the license management server 600, it determines that the license issuance was successful (step S15; Yes).
  • the license registration unit 520 transmits the license key 1200 to the PLC 101 (step S16), and displays a registration completion screen as shown in FIG. 11B.
  • the license registration unit 520 when the license registration unit 520 receives a notification from the license management server 600 that the license key 1200 cannot be issued, it determines that the license issuance has failed (step S15; No), and for example, as shown in FIG. 11C. A screen is displayed to notify that the license issuance has failed (step S17).
  • the processing on the license management server 600 side regarding the issuance of the license key 1200 is as follows.
  • the CPU 63 shown in FIG. 2 functions as the license management unit 630 shown in FIG. 1 by executing the license management program 611.
  • step S21 when the license management unit 630 receives the license issuance request from the license management tool 500 (step S21; Yes), the PLC 100 refers to the application conformance table 610a, and the PLC 100 selects the designated application program 1100. It is determined whether or not it can be executed (step S22). When the license management unit 630 determines that the PLC 100 can execute the designated application program 1100 (step S22; Yes), the license management unit 630 executes the process of step S23.
  • the license management unit 630 determines that the PLC 100 cannot execute the specified application program 1100 (step S22; No), it notifies the license management tool 500 that the license issuance has failed (step S27). ..
  • step S23 the license management unit 630 refers to the purchase license table 620a and determines whether or not the user of the PLC 100 has a usable license for the application program 1100 (step S23).
  • the license management unit 630 determines that the user of the PLC 100 has a usable license for the application program 1100 (step S23; Yes)
  • the license management unit 630 generates a license key 1200 (step S24).
  • the license management unit 630 transmits the generated license key 1200 to the license management tool 500 (step S25). After that, the license management unit 630 registers the information of the license key 1200 in the license registration table 620b shown in FIG. 8 (step S26).
  • the license management unit 630 issues a license when the user of the PLC100 has not purchased the application program 1100, or has purchased the application program 1100 but is using all the licenses (step S23; No). Notifies the license management tool 500 that the failure has occurred (step S27).
  • the above is the processing on the license management server 600 side at the time of initial registration of the license.
  • the user operates the input device 54 of the license management tool 500 to open the menu screen.
  • the CPU 56 displays a menu screen as shown in FIG. 9 on the display device 55.
  • the CPU 56 functions as the license transfer unit 530 shown in FIG. 1 by executing the license management program 511.
  • the license transfer unit 530 requests the transfer source PLC101 for information on license registration (step S31).
  • the license transmission / reception unit 150 of the PLC 101 transmits a list of values of the license key 1200 stored in the license key storage unit 120 and an identifier of the PLC 101 to the license management tool 500 as license registration information.
  • the license transfer unit 530 receives the information about the license registration (step S32)
  • the license transfer unit 530 displays a selection screen of the application program to be transferred as shown in FIG. 15A based on the received data.
  • the license transfer unit 530 requests the transfer source PLC101 to take out the license key 1200 of the selected application program 1100 (step S34). In response to this, it is assumed that the license transmission / reception unit 150 of the PLC 101 takes out the designated license key 1200 and sends the license key 1200 to the license management tool 500.
  • the license transfer unit 530 When the license transfer unit 530 receives the license key 1200 from the transfer source PLC101 (step S35; Yes), the license transfer unit 530 copies the received license key 1200, and sets "1" in the invalidation flag 1200d of the copied license key 1200. To generate an invalidation key. (Step S36).
  • the license transfer unit 530 transmits the invalidation key to the transfer source PLC101 (step S37). In response to this, the license transmission / reception unit 150 of the PLC 101 stores the received invalidation key in the invalidation key storage unit 130. After that, the license transfer unit 530 executes the process of step S38.
  • the license transfer unit 530 instructs the user to switch the connection (step S38).
  • the license transfer unit 530 displays a screen as shown in FIG. 15B and instructs the transfer destination to connect to the PLC 102. It is assumed that the user removes the communication cable 701 from the migration source PLC 101, disconnects the license management tool 500 from the PLC 101, and then connects the communication cable 701 to the migration destination PLC 102. Therefore, the license management tool 500 can communicate with the migration destination PLC102.
  • the license transfer unit 530 requests an identifier from the transfer destination PLC 102 (step S39).
  • the license transmission / reception unit 150 of the PLC 102 transmits the identifier to the license management tool 500.
  • the license transfer unit 530 regenerates a new license key 1200 from the license key 1200 received from the migration source PLC101 (step S41). Specifically, the license transmission / reception unit 150 deletes the identifier of the migration source PLC101 set as the device ID 1200b of the license key 1200 as shown in FIG. 5, and newly obtains the identifier obtained from the migration destination PLC 102. Set the license key 1200 as the device ID 1200b. Further, the license transfer unit 530 increases the value of the transfer counter 1200c of the license key 1200 by one.
  • the license transfer unit 530 transmits the regenerated license key 1200 to the transfer destination PLC 102 (step S42).
  • the license transmission / reception unit 150 of the PLC 102 stores the received license key 1200 in the license key storage unit 120.
  • the license transfer unit 530 transmits the license key information to the license management server 600 (step S51).
  • the license key information includes a user ID that identifies the user of the PLC 100, a license key 1200 transmitted to the migration destination PLC 102, and an identifier of the PLC 102.
  • the license transfer unit 530 receives the update completion report from the license management server 600 (step S52)
  • the license transfer unit 530 displays the transfer completion screen as shown in FIG. 15C.
  • the license management unit 630 of the license management server 600 when the license management unit 630 of the license management server 600 receives the license key information from the license management tool 500 (step S61), it updates the data in the license registration table 620b (step S62). Specifically, the license management unit 630 updates the data specified by the received user ID among the data in the license registration table 620b with the received license key 1200 and the identifier. After that, the license management unit 630 transmits an update completion notification indicating that the update of the license registration table 620b is completed to the license management tool 500 (step S63).
  • the license management tool 500 transfers the license key 1200 between two or more PLCs 100 that are not connected to the external network.
  • the license management tool 500 deletes the PLC101 identifier from the license key 1200 acquired from the migration source PLC101 and sets the migration destination PLC102 identifier in the license key 1200 to regenerate the license key 1200 and create a new one.
  • the license key 1200 is supplied to the migration destination PLC102.
  • the license management tool 500 can transfer licenses between stand-alone devices that cannot communicate with the license management server.
  • the license transmission / reception unit 150 when the license transmission / reception unit 150 stores the invalidation key in the invalidation key storage unit 130 in which the parts other than the invalidation flag 1200d of the received license key 1200 match, the license key 1200 is stored. I explained an example of not accepting. However, it is not limited to this.
  • the license management tool 500 may not send the license key 1200 to the PLC 100 when the PLC 100 has the invalidation key.
  • the regenerating unit 533 of the license management tool 500 may request the PLC 100 for the invalidation key possessed by the PLC 100 before transmitting the regenerated license key 1200 to the migration destination PLC100. ..
  • the PLC 100 shall transmit a list of invalidation key values stored in the invalidation key storage unit 130 to the license management tool 500. If the invalidation key received from the PLC 100 includes an invalidation key that matches the part other than the invalidation flag 1200d of the regenerated license key 1200, the regeneration unit 553 regenerates the license key 1200. May not be transmitted to the migration destination PLC100.
  • the license management tool 500 has described an example in which the invalidation key is transmitted to the migration source PLC 100 before supplying the new license key 1200 to the migration destination PLC 100, but the present invention is not limited to this.
  • the license management tool 500 acquires the license key 1200 from the migration source PLC100 and copies the license key 1200, or generates an invalidation key from the license key 1200.
  • the license management tool 500 generates a new license key 1200 after the connection of the PLC 100 is switched, and sends the new license key 1200 to the migration destination PLC 100.
  • the license management tool 500 transmits the invalidation key to the migration source PLC100.
  • the invalidation key is provided to the migration source PLC100 after the registration of the license key 1200 to the migration destination PLC100 is completed, if the registration of the new license key 1200 to the migration destination PLC100 fails. It is also possible to return the license key 1200 to the migration source PLC100 again.
  • the identifier of the migration source PLC101 is included in the license key 1200 as the first identifier, and when a new license key 1200 is generated, the identifier of the migration source PLC101 is taken out from the license key 1200.
  • the identifier of the destination PLC 102 is added to the license key 1200 as the second identifier.
  • an identifier other than the identifier of the migration source PLC100 and the identifier of the migration destination PLC100 may be used as the first identifier, or the hash value generated from the identifier of PLC102 may be used as the second identifier.
  • the license management tool 500 executes the license information update process shown in FIG. 16A following the transfer process of the license key 1200, but the present invention is not limited to this.
  • the license management tool 500 may execute the license information update process separately from the process of migrating the license key 1200.
  • the license management tool 500 may not always be connected to the network 702. In such a case, the license management tool 500 may execute the license information update process shown in FIG. 16A when connected to the network 702.
  • the license management tool 500 communicates with the PLC 100 via the communication cable 701
  • the license management tool 500 and the PLC 100 may perform wireless communication.
  • a computer-readable recording medium including a magnetic disk, an optical disk, a magneto-optical disk, a flash memory, a semiconductor memory, and a magnetic tape can be used.
  • License management system 11,51,61 memory, 12,52 input / output interface, 13 MPU, 19,59,69 bus, 53,62 communication interface, 54 input device, 55 display device, 56,63 CPU, 101, 102 (100) Programmable logic controller (PLC), 110 Program storage unit, 111,511 License management program, 120 License key storage unit, 130 Invalidation key storage unit, 140 License confirmation unit, 150 License transmission / reception unit, 160 Program execution unit , 500 License management tool, 510 Purchase data storage unit, 511 License management program, 520 License registration unit, 530 License transfer unit, 513 Key acquisition unit, 532 Identifier acquisition unit, 533 Regeneration unit, 534 Invalidation key generation unit, 600 License management server, 610 application data storage unit, 610a application conformance table, 611 license management program, 620 license data storage unit, 620a purchase license table, 620b license registration table, 630 license management unit, 701 communication cable, 702 network, 1101 ⁇ 1103 (1100) application program, 1201-1203 (1200) license key, 1200

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Storage Device Security (AREA)

Abstract

ライセンス管理ツール(500)は、アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上のPLC(101)とPLC(102)との間で移行する。ライセンスキーは、ライセンスキーが登録されている装置を識別する識別子を含む。ライセンス移行部(530)は、ライセンスの移行元のPLC(101)から、ライセンスキーを取得する。ライセンス移行部(530)は、ライセンスの移行先のPLC(102)から、PLC(102)の第2識別子を取得する。ライセンス移行部(530)は、PLC(101)から取得したライセンスキーから、PLC(101)の第1識別子を削除して、PLC(102)の第2識別子を追加して、新しいライセンスキーを生成し、PLC(102)に新しいライセンスキーを送信する。

Description

ライセンス移行ツール、プログラム、及びライセンス移行システム
 本発明は、ライセンス移行ツール、プログラム、及びライセンス移行システムに関する。
 市場で製品として販売されているアプリケーションプログラムの不正利用を防止するため、アプリケーションプログラムの販売元が管理するライセンス管理サーバとアプリケーションプログラムがインストールされた装置とがネットワークを介して通信し、ライセンス管理サーバがライセンス認証を行うことがある。
 また、装置からアンインストールしたアプリケーションプログラムを、他の装置にインストールすることがある。この場合、アプリケーションプログラムのライセンスを移行する必要がある。
 例えば、特許文献1には、次のようにライセンスを移行することが記載されている。ライセンスの移行元である装置は、アプリケーションプログラムがアンインストールされると、アンインストール証明コードを生成し、ライセンス管理サーバにアンインストール証明コードを送信する。ライセンスの移行先の装置は、固有識別コードを生成し、ライセンス管理サーバに固有識別コードを送信する。ライセンス管理サーバは、受信したアンインストール証明コードと固有識別コードとが正当か否かを判別し、正当である場合にライセンス移行を許可する。ライセンス移行を許可する場合、ライセンス管理サーバは、インストール許可通知をライセンスの移行先の装置に送信する。
特開2009-245169号公報
 特許文献1に記載された構成では、ライセンスの移行元の装置とライセンスの移行先の装置とが、ネットワークを介してライセンス管理サーバと通信可能であることが必要である。しかし、ライセンスの移行元の装置とライセンスの移行先の装置とが、ネットワークを介してライセンス管理サーバと通信することができない場合もある。例えば、ファクトリーオートメーションの分野で使用されるコントローラは、セキュリティの観点から、外部のネットワークに接続されていないことがある。このように、ライセンスの移行元の装置とライセンスの移行先の装置とが、ネットワークを介してライセンス管理サーバと通信することが不可能である場合には、ライセンス管理サーバを介したライセンス移行を実行することができない。
 本発明は上記実情に鑑みなされたものであり、ライセンス管理サーバと通信することができないスタンドアロンの装置間でライセンスを移行することを目的とする。
 上記目的を達成するため、本発明に係るライセンス移行ツールは、アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上の装置の間で移行する。ライセンスキーは、ライセンスキーが登録されている装置を識別する識別子を含む。ライセンス移行ツールが備えるキー取得手段は、ライセンスの移行元の装置である第1装置から、ライセンスキーを取得する。ライセンス移行ツールが備える識別子取得手段は、ライセンスの移行先の装置である第2装置から、第2装置を識別する第2識別子を取得する。ライセンス移行ツールが備える再生成手段は、第1装置から取得したライセンスキーから、第1装置を識別する第1識別子を削除して、第2装置の第2識別子を識別子として追加して、新しいライセンスキーを生成し、第2装置に新しいライセンスキーを供給する。
 本発明に係るライセンス移行ツールは、ライセンスの移行元の装置である第1装置から、ライセンスキーを取得し、ライセンスの移行先の装置である第2装置から、第2装置を識別する第2識別子を取得する。ライセンス移行ツールは、第1装置から取得したライセンスキーから、第1装置を識別する第1識別子を削除して、第2装置の第2識別子を識別子として追加して、新しいライセンスキーを生成し、第2装置に新しいライセンスキーを供給する。このような構成を備えることで、ライセンス管理サーバと通信することができないスタンドアロンの装置間でライセンスを移行することができる。
本発明の実施の形態に係るライセンス管理システムの機能構成を示すブロック図 実施の形態に係るライセンス管理システムのハードウェア構成を示す図 実施の形態に係るPLCのプログラム記憶部の構成を示す図 実施の形態に係るPLCのライセンスキー記憶部の構成を示す図 実施の形態に係るライセンスキーの構成を示す図 実施の形態に係るアプリケーション適合テーブルに格納されるデータの一例を示す図 実施の形態に係る購入ライセンステーブルに格納されるデータの一例を示す図 実施の形態に係るライセンス登録テーブルに格納されるデータの一例を示す図 実施の形態に係るライセンス管理ツールのメニュー画面の一例を示す図 実施の形態に係るライセンス管理ツールのライセンス発行要求処理のフローチャート 実施の形態に係るライセンスキーの登録の対象を選択する選択画面の一例を示す図 実施の形態に係るライセンスキーの登録完了画面の一例を示す図 実施の形態に係るライセンスキーの登録の失敗を通知する画面の一例を示す図 実施の形態に係るライセンス管理サーバのライセンス発行処理のフローチャート 実施の形態に係るライセンス管理ツールのライセンス移行処理のフローチャート(前半) 実施の形態に係るライセンス管理ツールのライセンス移行処理のフローチャート(後半) 実施の形態に係るライセンスキーの移行の対象を選択する選択画面の一例を示す図 実施の形態に係るライセンスキーの移行の際のPLCの接続の切り替え指示画面の一例を示す図 実施の形態に係るライセンスキーの移行完了画面の一例を示す図 実施の形態に係るライセンス管理ツールのライセンス情報更新処理のフローチャート 実施の形態に係るライセンス管理サーバのライセンス情報更新処理のフローチャート
(実施の形態)
 以下、本発明の実施の形態に係るライセンス管理システムについて、図面を参照しつつ詳細に説明する。
 図1に示すライセンス管理システム1は、プログラマブルロジックコントローラ101及び102が実行するアプリケーションプログラムのライセンスを管理する。ライセンス管理システム1は、工場内の生産ラインで使用されるプログラマブルロジックコントローラのライセンスの登録を管理するライセンス管理ツール500と、ライセンスを発行するライセンス管理サーバ600とを含む。
 プログラマブルロジックコントローラ101及び102は、工場内の生産ラインで使用される機械装置(不図示)を制御する制御装置である。以下、プログラマブルロジックコントローラ101及び102をひとまとめにしてプログラマブルロジックコントローラ100(PLC100)と称することがある。
 ライセンス管理ツール500として、例えば、プログラマブルロジックコントローラ100と同じ工場内にあり、専用のプログラムをインストールしたパーソナルコンピュータが使用される。ライセンス管理サーバ600は、例えば、アプリケーションプログラムを開発・販売するメーカの管理下にあるサーバである。
 PLC100は、製品として販売されているアプリケーションプログラムを実行することにより、例えば、工場内の内部ネットワーク(不図示)を介して接続されている機械装置を制御する。PLC100は、アプリケーションプログラムを実行するため、アプリケーションプログラムの使用が許諾されていることを示すライセンスを有している必要がある。実施の形態においては、PLC100は、アプリケーションプログラムのライセンスキー有している場合に、そのアプリケーションプログラムを実行することができる。ライセンスキーは、PLC100がライセンスを有していることを示すコードである。ライセンス管理サーバ600がライセンスキーを発行する。
 PLC100は、外部ネットワークに接続されておらず、ライセンス管理サーバ600と通信することができない。外部ネットワークは、インターネットのようなオープンなネットワークである。一方、ライセンス管理ツール500は、外部ネットワークを介してライセンス管理サーバ600と通信できる。このため、ライセンス管理ツール500が、PLC100に代わり、ライセンス管理サーバ600からライセンスキーを取得し、取得したライセンスキーをPLC100に供給する。
 さらに、実施の形態に特徴的な構成として、ライセンス管理ツール500は、ライセンスキーの移行に係る処理を行う。ライセンスキーの移行とは、あるアプリケーションプログラムについてのライセンスキーを有しているPLC100から、他のPLC100にライセンスキーを移すことである。ライセンスキーを有するようになったPLC100は、そのアプリケーションプログラムを実行できるようになる。一方、ライセンスキーを有しなくなったPLC100は、そのアプリケーションプログラムを実行できなくなる。
 図2に示すように、PLC100はハードウェア構成として、各種プログラム及びデータを記憶するメモリ11と、通信ケーブル701を介してライセンス管理ツール500との間でデータを授受する入出力インタフェース12と、PLC100全体を制御するMPU(Micro Processing Unit)13と、を有する。メモリ11と入出力インタフェース12とは、バス19を介してMPU13に接続されており、MPU13と通信する。
 メモリ11は、揮発性メモリと不揮発性メモリとを含む。メモリ11は、PLC100の各種機能を実現するためのプログラムを記憶する。メモリ11は、ライセンスキーの格納、取り出し等の処理をMPU13に実行させるプログラムであるライセンス管理プログラム111を記憶する。さらに、メモリ11はMPU13のワークメモリとして用いられる。メモリ11は、PLC100を一意に識別するための識別子を記憶する。実施の形態では、PLC100に割り当てられた識別子として、PLC100の製造時にPLC100に割り当てられたシリアルコードを使用するものとする。さらに、メモリ11は、ユーザを識別する情報であるユーザIDを記憶する。PLC100のユーザは、例えば、PLC100の管理者である。
 入出力インタフェース12は、例えば、USBコントローラを含み、MPU13から供給されたデータを電気信号に変換し、通信ケーブル701を介して変換した信号をライセンス管理ツール500に出力する。通信ケーブル701は、例えば、USBケーブルである。また、入出力インタフェース12は、通信ケーブル701を介して、ライセンス管理ツール500が出力した電気信号を受け付け、受け付けた電気信号をデータに復元してMPU13に出力する。
 MPU13は、メモリ11に記憶されている各種プログラムを実行して、PLC100の各種機能を実現する。例えば、ライセンス管理プログラム111を実行することにより、ライセンスキーの格納、取り出し等の処理を実行する。
 ライセンス管理ツール500は、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ51と、通信ケーブル701を介してPLC100との間でデータを授受する入出力インタフェース52と、ネットワーク702を介してライセンス管理サーバ600と通信する通信インタフェース53と、ユーザの入力操作を検出する入力装置54と、画像を出力する表示装置55と、ライセンス管理ツール500全体を制御するCPU(Central Processing Unit)56とを有する。メモリ51と入出力インタフェース52と通信インタフェース53と入力装置54と表示装置55とは、バス59を介してCPU56に接続されており、それぞれCPU56と通信する。
 メモリ51は、揮発性メモリと不揮発性メモリとを含む。メモリ51は、ライセンス管理ツール500の各種機能を実現するためのプログラムを格納する。具体的には、メモリ51は、ライセンス管理プログラム511を記憶する。さらに、メモリ51はCPU56のワークメモリとして用いられる。
 ライセンス管理プログラム511は、ライセンスキーの登録処理と、ライセンスキーの移行処理とをCPU56に実行させるプログラムである。
 入出力インタフェース52は、例えば、USBコントローラを含み、CPU56から供給されたデータを電気信号に変換し、通信ケーブル701を介して変換した信号をPLC100に出力する。また、入出力インタフェース52は、通信ケーブル701を介して、PLC100が出力した電気信号を受け付け、受け付けた電気信号をデータに復元してCPU56に出力する。
 通信インタフェース53は、ネットワークインタフェース回路を含み、CPU56の制御の下、ネットワーク702を介して、ライセンス管理サーバ600と通信する。ネットワーク702は、例えば、インターネットである。
 入力装置54は、マウス、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号をCPU56に出力する。
 表示装置55は、ディスプレイを含み、CPU56から供給される信号に基づく画像をディスプレイに表示する。
 CPU56は、メモリ51に記憶されている各種プログラムを実行して、ライセンス管理ツール500の各種機能を実現する。具体的には、CPU56は、ライセンス管理プログラム511を実行することにより、PLC101及び102にアプリケーションプログラムのライセンスキーを登録する。さらに、CPU56は、ライセンス管理プログラム511を実行することにより、例えば、PLC101が有しているライセンスキーをPLC102に移行する。
 ライセンス管理サーバ600は、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ61と、ネットワーク702を介してライセンス管理ツール500と通信する通信インタフェース62と、ライセンス管理サーバ600全体を制御するCPU63とを有する。メモリ61と通信インタフェース62とは、バス69を介してCPU63に接続されており、それぞれCPU63と通信する。
 メモリ61は、揮発性メモリと不揮発性メモリとを含む。メモリ61は、ライセンス管理サーバ600の各種機能を実現するためのプログラムを格納する。具体的には、メモリ61は、ライセンス管理プログラム611を記憶する。さらに、メモリ51はCPU56のワークメモリとして用いられる。
 ライセンス管理プログラム611は、ライセンスキーを発行する処理と、ライセンスの登録に関する情報を管理する処理とをCPU63に実行させるプログラムである。
 通信インタフェース62は、ネットワークインタフェース回路を含み、CPU63の制御の下、ネットワーク702を介して、ライセンス管理サーバ600と通信する。
 CPU63は、メモリ61に記憶されている各種プログラムを実行して、ライセンス管理サーバ600の各種機能を実現する。具体的には、CPU63は、ライセンス管理プログラム611を実行することによりライセンスキーを発行する。
 次に、図1を参照して、PLC100の機能構成を説明する。PLC100は、機能的には、アプリケーションプログラムを記憶するプログラム記憶部110と、ライセンスキーを記憶するライセンスキー記憶部120と、無効化キーを記憶する無効化キー記憶部130と、PLC100がアプリケーションプログラムを実行する前にライセンスキーが正当なものであるか否かを判別するライセンス確認部140と、ライセンス管理ツール500との間でライセンスキーを授受するライセンス送受信部150と、アプリケーションプログラムを実行するプログラム実行部160とを含む。
 プログラム記憶部110は、PLC100が実行するアプリケーションプログラムを記憶する。アプリケーションプログラムは、製品として販売されているプログラムを含む。図3に示すように、プログラム記憶部110は、ユーザが購入したアプリケーションプログラム1101~1103を記憶しているとする。PLC100は、アプリケーションプログラム1101~1103を実行するためには、それぞれのアプリケーションキーを有している必要がある。以下、アプリケーションプログラム1101~1103をまとめてアプリケーションプログラム1100と称することがある。プログラム記憶部110の機能は、図2に示すメモリ11により実現される。
 図1に示すライセンスキー記憶部120は、PLC100が実行するアプリケーションプログラム1100それぞれに対応するライセンスキーを記憶する。図3に示すように、プログラム記憶部110がアプリケーションプログラム1101~1103を記憶しているとする。この場合、図4に示すように、ライセンスキー記憶部120は、アプリケーションプログラム1101~1103にそれぞれ対応するライセンスキー1201~1203を記憶する。以下、ライセンスキー1201~1203をまとめてライセンスキー1200と称することがある。ライセンスキー記憶部120は、本発明のライセンスキー記憶手段の一例である。
 ライセンスキー1200は、図1に示すライセンス管理ツール500から供給される。後述のライセンス送受信部150は、ライセンス管理ツール500から供給されたライセンスキー1200をライセンスキー記憶部120に格納する。ライセンスキー記憶部120の機能は、図2に示すメモリ11により実現される。ライセンスキー記憶部120は、メモリ11の、ユーザが参照することができない領域に設けられることが望ましい。ライセンス送受信部150は、本発明の格納手段の一例である。
 図4に示すように、ライセンスキー記憶部120は、ライセンスキー1200と、アプリケーションプログラム1100を特定するアプリケーションIDとを記憶する。図5に示すように、ライセンスキー1200は、ライセンスコード1200aと、装置ID1200bと、移行カウンタ1200cと、無効化フラグ1200dとを含む。
 ライセンスコード1200aは、アプリケーションプログラム1100の1ライセンス毎に割り振られた識別コードである。実施の形態では、1ライセンスで、1つのPLC100がアプリケーションプログラム1100を実行できるものとする。
 装置ID1200bは、アプリケーションプログラム1100がインストールされているPLC100を一意に識別するための識別子である。装置ID1200bには、ライセンスキー1200が登録されているPLC100の識別子がセットされている。
 PLC100は、アプリケーションプログラム1100の実行時に、ライセンスキー1200の装置ID1200bが自機の識別子と一致するか否かを判別する。PLC100は、ライセンスキー1200の装置ID1200bが自機の識別子と一致すると判別すると、アプリケーションプログラム1100を実行する。一方、PLC100は、ライセンスキー1200の装置ID1200bが自機の識別子と一致しないと判別すると、アプリケーションプログラム1100を実行しない。このような構成によりアプリケーションプログラム1100を実行するべきでないPLC100がアプリケーションプログラム1100を実行することがないよう制御することができる。
 ライセンスキー1200の初回発行時には、ライセンス管理サーバ600がライセンスキー1200を生成する。このため、ライセンス管理サーバ600には、ライセンス管理ツール500からPLC100の識別子が供給される。ライセンス管理サーバ600は、装置ID1200bとしてPLC100の識別子をライセンスキー1200にセットする。ライセンスキー1200の移行時には、ライセンス管理ツール500がライセンスキー1200を再生成する。この場合、ライセンス管理ツール500が、装置ID1200bとして移行先のPLC100の識別子をライセンスキー1200にセットする。
 移行カウンタ1200cには、アプリケーションプログラム1100のライセンスが移行された回数である移行回数を示す値が格納される。移行カウンタ1200cの値は、ライセンスキー1200が初回に生成されたときは初期値、例えば、“0”である。移行カウンタ1200cの値は、ライセンスキー1200が再生成されるタイミングで、“1”加算される。
 ライセンス管理サーバ600は、ライセンスキー1200の生成時に、移行カウンタ1200cの値に初期値をセットする。ライセンス管理ツール500は、移行処理において、ライセンスキー1200の移行カウンタ1200cの値を決められた数だけ、例えば、“1”を、加算する。
 例えば、PLC100の管理者がアプリケーションプログラム1101を1ライセンス購入したとする。管理者が、最初にPLC101にアプリケーションプログラム1101をインストールし、ライセンス管理ツール500を介して、PLC101にアプリケーションプログラム1101に対応するライセンスキー1200を登録したとする。このとき、移行カウンタ1200cの値は初期値、例えば、“0”である。その後、PLC101の動作不良といった何らかの事情により、PLC101がアプリケーションプログラム1101を実行することができなくなったとする。PLC100の管理者が、PLC102にアプリケーションプログラム1101をインストールし、ライセンス管理ツール500を使用して、アプリケーションプログラム1101のライセンスキー1200をPLC102に移行したとする。このときの移行カウンタ1200cの値は、初期値に“1”が加算された値、即ち、“1”である。
 無効化フラグ1200dは、ライセンスキー1200が無効化キーであるか否かを示す値を持つ。無効化キーは、ライセンスキー1200の不正使用を防止するために使用される。無効化キーは、ライセンスキー1200を他のPLC100に移行したときに、移行元のPLC100に保存される。
 ライセンスキー1200が有効なキーであることを示す値として、例えば、無効化フラグ1200dに“0”がセットされる。無効化フラグ1200dの値が、例えば、“1”であることは、そのキーが無効化キーであることを示す。
 ライセンス管理ツール500は、ライセンスキー1200を移行する際に、移行するライセンスキー1200をコピーし、コピーしたキーの無効化フラグ1200dに“1”をセットして、無効化キーを生成し、移行元のPLC100に無効化キーを保存する。
 PLC100は、ライセンス管理ツール500から、ライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが供給された場合、供給されたライセンスキー1200を受け付けない。
 図1に示す無効化キー記憶部130は、無効化キーを記憶する。前述のように、ライセンス管理ツール500は、ライセンスキー1200の移行時に無効化キーを移行元のPLC100に発行する。このため、無効化キー記憶部130は、ライセンス管理ツール500から無効化キーが供給された場合のみ無効化キーを記憶する。無効化キー記憶部130の機能は、図2に示すメモリ11により実現される。無効化キー記憶部130は、メモリ11の、ユーザが参照することができない領域に設けられることが望ましい。
 無効化キーを利用することでライセンスキー1200の不正使用を防止することができる。以下に、無効化キーを使用しない場合に想定される不正使用の例を説明する。
 例えば、ライセンスキー1200の初回の発行時には、ライセンス管理サーバ600がライセンスキー1200の装置ID1200bとしてPLC101の識別子を含むライセンスキー1200を生成し、ライセンス管理ツール500にライセンスキー1200を送信する。このとき、ユーザあるいは他の者が、ライセンス管理ツール500に保存されたPLC101用のライセンスキー1200をメモリ51内のある領域にコピーしたとする。PLC101にライセンスキー1200が登録された後、ユーザあるいは他の者が、ライセンス管理ツール500を操作して、ライセンスキー1200をPLC102に移行したとする。さらに、ユーザあるいは他の者が、コピーしておいたPLC101用のライセンスキー1200をPLC101に再び登録したとする。この場合、PLC101用のライセンスキー1200をPLC101に登録することができてしまい、1ライセンスのみの購入で2つのPLC100でアプリケーションプログラム1100を実行することが可能となってしまう。
 また、例えば、ユーザあるいは他の者が、ライセンス管理ツール500を操作して、PLC101に登録されているライセンスキー1200をPLC101からPLC102に移行する処理の最中に、PLC101から取得したライセンスキー1200を、例えば、メモリ51内のある領域にコピーしたとする。ライセンス管理ツール500により再生成されたライセンスキー1200が移行先のPLC102に登録された後、ユーザあるいは他の者が、コピーしておいたPLC101用のライセンスキー1200をPLC101に再び登録したとする。この場合も、PLC101用のライセンスキー1200をPLC101に登録することができてしまい、1ライセンスのみの購入で2つのPLC100でアプリケーションプログラム1100を実行できてしまう。
 このような不正利用を防止するため、ライセンスキー1200を移行する場合に、ライセンス管理ツール500は、移行元のPLC100が有していたライセンスキー1200から無効化キーを生成し、無効化キーを移行元のPLC101に登録する。
 図1に示すライセンス確認部140は、PLC100が、アプリケーションプログラム1100の実行に必要なライセンスキー1200を有しているか否かを確認する。
 具体的には、ライセンス確認部140は、図4に示すライセンスキー記憶部120にアプリケーションプログラム1100に対応するライセンスキー1200が存在するか否かを判別する。ライセンス確認部140は、ライセンスキー記憶部120にライセンスキー1200が存在する場合、ライセンスキー1200の装置ID1200bの値が、メモリ11に格納されているPLC100の識別子と一致するか否かに応じて、ライセンスキー1200が有効であるか否かを判別する。ライセンス確認部140は、ライセンスキー1200が有効に存在するか否かをプログラム実行部160に通知する。ライセンス確認部140の機能は、図2に示すMPU13により実現される。
 図1に示すライセンス送受信部150は、ライセンス管理ツール500からライセンスキー1200を受信し、そのライセンスキー1200が登録可能か判別する。ライセンス送受信部150は、供給されたライセンスキー1200が登録可能であると判別した場合、そのライセンスキー1200をライセンスキー記憶部120に格納する。
 具体的には、ライセンス送受信部150は、受信したライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが、無効化キー記憶部130に格納されているか否かを判別する。ライセンス送受信部150は、無効化フラグ1200dを除く部分が一致する無効化キーを有していない場合には、ライセンスキー1200をライセンスキー記憶部120に格納する。一方、ライセンス送受信部150は、無効化フラグ1200dを除く部分が一致する無効化キーを有している場合には、ライセンスキー1200をライセンスキー記憶部120に格納しない。
 さらに、ライセンス送受信部150は、ライセンスキー1200の新規発行時及び移行時に、ライセンス管理ツール500からPLC100の識別子を要求されると、PLC100の識別子をライセンス管理ツール500に送信する。ライセンスキー1200の初回発行時には、ライセンス管理サーバ600が装置ID1200bとしてPLC100の識別子をライセンスキー1200にセットする。また、ライセンスキー1200の移行時には、ライセンス管理ツール500が装置ID1200bとしてPLC100の識別子をライセンスキー1200にセットする。ライセンス送受信部150は、本発明の識別子送信手段の一例である。
 ライセンス送受信部150は、ライセンスキー1200の移行時にライセンス管理ツール500から保有するライセンスに関するデータを要求されると、ライセンスキー記憶部120に格納されているライセンスキー1200の値の一覧をライセンス管理ツール500に送信する。
 さらに、ライセンス送受信部150は、ライセンス管理ツール500からライセンスキー1200の取り出しを要求されると、指定されたライセンスキー1200をライセンスキー記憶部120から取り出して、そのライセンスキー1200をライセンス管理ツール500に送信する。よって、取り出されたライセンスキー1200は、ライセンスキー記憶部120内に記憶されなくなる。
 ライセンス送受信部150は、ライセンスキー1200の移行時に、ライセンス管理ツール500から無効化キーが供給されると、無効化キーを無効化キー記憶部130に格納する。ライセンス送受信部150の機能は、図2に示すMPU13がライセンス管理プログラム111を実行することにより実現される。
 図1に示すプログラム実行部160は、アプリケーションプログラム1100を実行する。プログラム実行部160は、アプリケーションプログラム1100を実行するのに先だって、アプリケーションプログラム1100に対応するライセンスキー1200が有効に存在するか否かをライセンス確認部140に問い合わせる。プログラム実行部160は、ライセンス確認部140からの応答に基づいてライセンスキー1200が有効に存在すると判別した場合に、プログラム記憶部110に格納されているアプリケーションプログラム1100を実行する。プログラム実行部160の機能は図2に示すMPU13により実現される。
 続いて、図1に示すライセンス管理ツール500の機能構成を説明する。ライセンス管理ツール500は、機能的には、購入済みのアプリケーションプログラム1100に関するデータを記憶する購入データ記憶部510と、新規のライセンスキー1200をPLC100に登録するライセンス登録部520と、ライセンスキー1200を移行するライセンス移行部530とを含む。
 購入データ記憶部510は、ユーザが購入済みのアプリケーションプログラム1100を特定するため、購入済みアプリケーションプログラム1100を特定するアプリケ-ションIDとアプリケーション名とを記憶する。購入データ記憶部510の機能は、図2に示すメモリ51により実現される。
 図1に示すライセンス登録部520は、ユーザからライセンスキー1200の新規発行の指示を受け付けると、ライセンス管理サーバ600にライセンスキー1200の発行を要求する発行要求を送信する。ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200が発行されると、ライセンスキー1200をPLC100に送信する。
 具体的には、まず、ライセンス登録部520は、購入データ記憶部510に格納されている購入済みのアプリケーションプログラム1100のアプリケーション名の一覧を図2に示す表示装置55に表示する。ユーザがアプリケーションを選択すると、ライセンス登録部520は、接続されているPLC100にその識別子を要求し、PLC100から識別子を取得する。ライセンス登録部520は、ライセンス発行要求をライセンス管理サーバ600に送信する。ライセンス発行要求には、PLC100のユーザを識別するユーザIDと、PLC100から受信したPLC100の識別子と、ユーザが指定するアプリケーションプログラム1100を特定するアプリケーションIDと、が含まれている。ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200を受信すると、受信したライセンスキー1200をPLC100に送信する。
 一方、ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200を発行ができない旨の通知を受けると、ライセンスキー1200の登録に失敗したことをユーザに通知する。例えば、ライセンス登録部520は、図2に示す表示装置55にライセンスキー1200の登録に失敗した旨のメッセージを表示する。ライセンス登録部520の機能は、図2に示すCPU56が、ライセンス管理プログラム511を実行することにより実現される。
 図1に示すライセンス移行部530は、ユーザからライセンスキー1200の移行の指示を受け付けると、接続されている移行元のPLC100からライセンスキー1200を取得する。ライセンス移行部530は、移行先のPLC100に接続されると、移行先のPLC100から識別子を取得し、その識別子を含む新たなライセンスキー1200を再生成し、移行先のPLC100に新たなライセンスキー1200を供給する。ライセンス移行部530の機能は、図2に示すCPU56が、ライセンス管理プログラム511を実行することにより実現される
 ライセンス移行部530は、キー取得部531と、識別子取得部532と、再生成部533と、無効化キー生成部534とを含む。
 キー取得部531は、ユーザが、ライセンス管理ツール500と移行元のPLC100とを接続し、ライセンスキー1200の移行の指示を出すと、まず、移行元のPLC100が保有するライセンスキー1200についての情報を移行元のPLC100に要求する。キー取得部531は、移行元のPLCから受信したライセンスキー1200についての情報をユーザに提示する。キー取得部531は、ユーザから指定されたライセンスキー1200の取り出しを移行元のPLC100に要求する。キー取得部531は、移行元のPLC100からライセンスキー1200を取得すると、ライセンスキー1200を再生成部533に供給する。キー取得部531は、本発明のキー取得手段の一例である。
 識別子取得部532は、ユーザがライセンス管理ツール500と移行先のPLC100とを接続すると、移行先のPLC100に識別子を要求する。識別子取得部532は、移行先のPLC100から識別子を取得すると、識別子を再生成部533に供給する。識別子取得部532は、本発明の識別子取得手段の一例である。
 再生成部533は、キー取得部531が移行元のPLC100からライセンスキー1200を取得すると、ライセンスキー1200を再生成する前に、無効化キーの生成を無効化キー生成部534に指示する。再生成部533は、無効化キー生成部534が無効化キーを生成した後、ライセンスキー1200を再生成する。再生成部533は、本発明の再生成手段の一例である。
 再生成部533は、キー取得部531が移行元のPLC100から取得したライセンスキー1200から、装置ID1200bとしてセットされている移行元のPLC100の識別子を削除する。再生成部533はそのライセンスキー1200の装置ID1200bとして、移行先のPLC100の識別子をセットする。さらに、再生成部533は、ライセンスキー1200の移行カウンタ1200cの値を1つ増やす。このようにして、再生成部533はライセンスキー1200を再生成する。再生成部533は、再生成したライセンスキー1200を移行先のPLC100に送信する。
 その後、再生成部533は、移行したライセンスキーの情報をライセンス管理サーバ600に送信する。移行したライセンスキーの情報は、PLC100のユーザを識別するユーザIDと、移行先のPLC100に送信したライセンスキー1200と、移行先のPLC100の識別子とを含む。
 無効化キー生成部534は、再生成部533から指示されると無効化キーを生成する。まず、無効化キー生成部534は、移行元のライセンスキー1200を複製し、複製したキーの無効化フラグ1200dに“1”をセットして、無効化キーを生成する。無効化キー生成部534が生成した無効化キーは、移行元のPLC100が有していたライセンスキー1200と、無効化フラグ1200dの値だけが異なる。無効化キー生成部534は無効化キーを移行元のPLC100に送信する。無効化キー生成部534は、本発明の無効化キー生成手段の一例である。
 PLC101が有するライセンスキー1200をPLC102に移行する場合には、移行元のPLC101は、本発明の第1装置の一例であり、移行先のPLC102は、本発明の第2装置の一例である。移行元のPLC101の識別子は、本発明の第1識別子の一例であり、移行先のPLC102の識別子は、本発明の第2識別子の一例である。
 続いて、ライセンス管理サーバ600の機能構成を説明する。ライセンス管理サーバ600は、機能的には、アプリケーションプログラムに関するデータを記憶するアプリケーションデータ記憶部610と、ライセンスに関するデータを記憶するライセンスデータ記憶部620と、ライセンスキー1200を発行するライセンス管理部630とを含む。
 アプリケーションデータ記憶部610は、図6に示すようなアプリケーション適合テーブル610aを格納する。アプリケーション適合テーブル610aは、PLC100の機種毎の各アプリケーションプログラム1100の実行可否の対応を示すデータを記憶する。図示する例では、アプリケーション適合テーブル610aは、PLC100の機種に応じて各アプリケーションプログラム1100の実行が可能(OK)であるか、実行が不可(NG)であるかを示す値を記憶する。例えば、“TYPE2”のPLC100は、“アプリケーション1001”と“アプリケーション1004”とを実行することができ、その他のアプリケーションプログラム1100を実行することができない。例えば、アプリケーションプログラムを開発・販売するメーカにおいてライセンス管理サーバ600を管理する管理者が、アプリケーション適合テーブル610aをアプリケーションデータ記憶部610に格納する。アプリケーションデータ記憶部610の機能は、図2に示すメモリ61により実現される。
 図1に示すライセンスデータ記憶部620は、図7に示すような購入ライセンステーブル620aを格納する。購入ライセンステーブル620aは、ユーザ毎の、ライセンスの購入数及び使用数を示すデータを記憶する。図示する例では、購入ライセンステーブル620aは、ユーザを特定する識別子であるユーザIDと、アプリケーションプログラム1100を特定するアプリケーションIDと、ユーザが購入したライセンス数を示す購入ライセンスと、PLC100に登録されたライセンス数を示す使用ライセンスとを含む。
 例えば、ユーザIDが“2019002”であるユーザは、“アプリケーション1001”の3ライセンス購入しているが、購入した全てのライセンス分のアプリケーションプログラム1100を使用していない。さらに、このユーザは、“アプリケーション1002”を1ライセンス、“アプリケーション1003”を4ライセンス購入しており、購入した全てのライセンス分のアプリケーションプログラム1100を使用している。
 さらに、図1に示すライセンスデータ記憶部620は、図8に示すようなライセンス登録テーブル620bを格納する。ライセンス登録テーブル620bは、PLC100に発行されたライセンスキー1200に関するデータを記憶する。ライセンス登録テーブル620bは、ユーザとアプリケーションプログラム1100との組み合わせ毎に、PLC100に発行されたライセンスキー1200を特定するデータを記憶する。
 図示する例では、ライセンス登録テーブル620bは、ユーザを特定する識別子であるユーザIDと、アプリケーションプログラム1100を特定するアプリケーションIDと、発行されたライセンスキーと、PLC100の識別子とを含む。
 例えば、アプリケーションプログラムを開発・販売するメーカにおいてライセンス管理サーバ600を管理する管理者が、購入ライセンステーブル620a及びライセンス登録テーブル620bをライセンスデータ記憶部620に格納する。ライセンスデータ記憶部620の機能は、図2に示すメモリ61により実現される。
 図1に示すライセンス管理部630は、ライセンス管理ツール500からライセンス発行要求を受信すると、ライセンスキー1200を発行する。
 まず、ライセンス管理部630は、ライセンス発行の可否を判別する。具体的には、ライセンス管理部630は、アプリケーション適合テーブル610aを参照して、受信したライセンス発行要求に含まれているPLC100の識別子から特定されるPLC100の機種が、指定されたアプリケーションプログラム1100を実行できるか否かを判別する。PLC100の機種を示す情報は、PLC100の識別子であるシリアルコードに含まれており、この情報からライセンス管理部630はPLC100の機種を特定することができる。
 続いて、ライセンス管理部630は、購入ライセンステーブル620aを参照して、ライセンス発行要求に含まれるユーザIDを有するユーザが、指定されたアプリケーションプログラム1100のライセンスを購入済みであるか否かを判別する。ユーザがライセンスを購入済みである場合、ライセンス管理部630は、未使用のライセンスがあるか否かを判別する。
 ライセンス管理部630は、ユーザがライセンスを購入済み、かつ、未使用のライセンスがある場合、ライセンスキー1200の発行が可能であると判別する。よって、ライセンス管理部630は、図5に示すようなライセンスキー1200を生成する。
 ライセンス管理部630は、例えば、ユーザIDをシードとして乱数を生成し、生成した乱数にアプリケーションIDを付加した値を、ライセンスコード1200aにセットする。ライセンス管理部630は、装置ID1200bに、ライセンス発行要求に含まれているPLC100の識別子をセットする。ライセンス管理部630は、移行カウンタ1200cには、初期値、例えば、“0”をセットする。ライセンス管理部630は、無効化フラグ1200dに、ライセンスキー1200が有効なキーであることを示す値として、“0”をセットする。ライセンス管理部630は、このようにして生成したライセンスキー1200をライセンス管理ツール500に送信する。
 その後、ライセンス管理部630は、ライセンス登録テーブル620bに、ライセンス発行要求に含まれていたユーザID、アプリケーションID、及びPLC100の識別子と、発行したライセンスキー1200とを登録する。
 一方、ライセンス管理部630は、PLC100の機種が、指定されたアプリケーションプログラム1100を実行できない、あるいは、ユーザがライセンスを購入済みでない、あるいは、未使用のライセンスがない場合、ライセンスキー1200の発行が不可能であると判別する。この場合、ライセンス管理部630は、ライセンス管理ツール500にライセンスキー1200を発行できない旨を通知する。ライセンス管理部630の機能は、図2に示すCPU63がライセンス管理プログラム611を実行することにより実現される。
 また、ライセンス管理部630は、ライセンス管理ツール500から、PLC100のユーザを識別するユーザIDと、移行先のPLC100に登録されたライセンスキー1200と、移行先のPLC100の識別子とを受信すると、ライセンス登録テーブル620bを更新する。具体的には、ライセンス管理部630は、ライセンス登録テーブル620bのデータのうち、受信したライセンスキー1200と識別子により特定されるデータを、受信したライセンスキー1200とPLC100の識別子とで更新する。その後、ライセンス管理部630は、ライセンス管理ツール500にライセンス登録テーブル620bの更新が完了した旨を示す更新完了通知を送信する。
(ライセンスキーの初回の登録)
 続いて、ライセンスキー1200の初回の登録処理を説明する。まず、ユーザは、通信ケーブル701により、ライセンス管理ツール500とPLC101とを接続する。ユーザは、ライセンス管理ツール500の入力装置54を操作してメニュー画面を開く。ユーザの操作に応答して、CPU56は、表示装置55に図9に示すようなメニュー画面を表示する。ここで、ユーザが「ライセンスキーの登録」を選択したとする。
 CPU56はライセンス管理プログラム511を実行することにより、ライセンス登録部520として機能する。図10に示すように、まず、ライセンス登録部520は、PLC101に識別子を要求する(ステップS11)。これに応答して、PLC101のライセンス送受信部150が識別子をライセンス管理ツール500に送信したとする。ライセンス登録部520は、PLC101から識別子を受信すると(ステップS12)、図11Aに示すようなアプリケーションプログラムの選択画面を表示する。ここで、ライセンス登録部520は、図1に示す購入データ記憶部510に格納されている購入済みのアプリケーションプログラム1100のうちいずれかをユーザが選択することができる画面を表示する。ここで、ユーザが所望のアプリケーションプログラムを選択し、「登録」ボタンを押したとする。
 よって、図10に示すように、ライセンス登録部520は、アプリケーションプログラムの選択を受け付け(ステップS13)、ライセンス発行要求をライセンス管理サーバ600に送信する(ステップS14)。ライセンス発行要求には、PLC100のユーザのユーザIDと、PLC100の識別子と、アプリケーションプログラム1100を特定するアプリケーションIDと、が含まれている。
 その後、ライセンス登録部520は、ライセンス管理サーバ600から、ライセンスキー1200を受信した場合、ライセンス発行が成功したと判別する(ステップS15;Yes)。ライセンス登録部520は、ライセンスキー1200をPLC101に送信し(ステップS16)、図11Bに示すような、登録完了画面を表示する。
 一方、ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200を発行できない旨の通知を受信した場合、ライセンス発行が失敗したと判別し(ステップS15;No)、例えば、図11Cに示すような画面を表示してライセンス発行が失敗した旨を通知する(ステップS17)。
 ライセンスキー1200の発行に関するライセンス管理サーバ600側の処理は以下の通りである。図2に示すCPU63は、ライセンス管理プログラム611を実行することにより、図1に示すライセンス管理部630として機能する。
 図12に示すように、ライセンス管理部630は、ライセンス管理ツール500からライセンス発行要求を受信すると(ステップS21;Yes)、アプリケーション適合テーブル610aを参照して、PLC100が、指定されたアプリケーションプログラム1100を実行することができるか否かを判別する(ステップS22)。ライセンス管理部630は、PLC100が指定されたアプリケーションプログラム1100を実行することができると判別すると(ステップS22;Yes)、ステップS23の処理を実行する。
 一方、ライセンス管理部630は、PLC100が指定されたアプリケーションプログラム1100を実行することができないと判別すると(ステップS22;No)、ライセンス発行が失敗した旨をライセンス管理ツール500に通知する(ステップS27)。
 ステップS23では、ライセンス管理部630は、購入ライセンステーブル620aを参照して、PLC100のユーザが、そのアプリケーションプログラム1100の使用可能なライセンスを有しているか否かを判別する(ステップS23)。ライセンス管理部630は、PLC100のユーザが、そのアプリケーションプログラム1100の使用可能なライセンスを有していると判別すると(ステップS23;Yes)、ライセンスキー1200を生成する(ステップS24)。
 ライセンス管理部630は、生成したライセンスキー1200をライセンス管理ツール500に送信する(ステップS25)。その後、ライセンス管理部630は、ライセンスキー1200の情報を、図8に示すライセンス登録テーブル620bに登録する(ステップS26)。
 一方、ライセンス管理部630は、PLC100のユーザが、アプリケーションプログラム1100を購入していない、あるいは、購入しているものの、全てのライセンスを使用中である場合には(ステップS23;No)、ライセンス発行が失敗した旨をライセンス管理ツール500に通知する(ステップS27)。以上が、ライセンスの初回の登録時におけるライセンス管理サーバ600側の処理である。
(ライセンスキーの移行)
 続いて、ライセンスキー1200の移行処理を説明する。以下の説明においては、PLC101が有するライセンスキー1200をPLC102に移行する例を説明する。ユーザは、通信ケーブル701により、ライセンス管理ツール500と移行元のPLC101とを接続する。なお、ライセンス管理ツール500は、ネットワーク702を介して、ライセンス管理サーバ600に接続されている必要はない。
 ユーザは、ライセンス管理ツール500の入力装置54を操作してメニュー画面を開く。ユーザの操作に応答して、CPU56は、表示装置55に図9に示すようなメニュー画面を表示する。ここで、ユーザが「ライセンスキーの移行」を選択したとする。CPU56は、ライセンス管理プログラム511を実行することにより、図1に示すライセンス移行部530として機能する。
 図13に示すように、ライセンス移行部530は、移行元のPLC101にライセンス登録についての情報を要求する(ステップS31)。これに応答して、PLC101のライセンス送受信部150は、ライセンス登録の情報として、ライセンスキー記憶部120に格納されているライセンスキー1200の値の一覧と、PLC101の識別子とをライセンス管理ツール500に送信する。ライセンス移行部530は、ライセンス登録についての情報を受信すると(ステップS32)、受信したデータに基づいて、図15Aに示すような、移行するアプリケーションプログラムの選択画面を表示する。
 ユーザがライセンスを移行するアプリケーションプログラム1100を選択すると(ステップS33;Yes)、ライセンス移行部530は、選択されたアプリケーションプログラム1100のライセンスキー1200の取り出しを移行元のPLC101に要求する(ステップS34)。これに応答して、PLC101のライセンス送受信部150が、指定されたライセンスキー1200を取り出して、ライセンスキー1200をライセンス管理ツール500に送信したとする。
 ライセンス移行部530は、移行元のPLC101からライセンスキー1200を受信すると(ステップS35;Yes)、受信したライセンスキー1200をコピーし、コピーしたライセンスキー1200の無効化フラグ1200dに“1”をセットして、無効化キーを生成する。(ステップS36)。
 ライセンス移行部530は、無効化キーを移行元のPLC101に送信する(ステップS37)。これに応答して、PLC101のライセンス送受信部150は、受信した無効化キーを無効化キー記憶部130に格納する。その後、ライセンス移行部530は、ステップS38の処理を実行する。
 図14に示すように、ライセンス移行部530は、ユーザに接続の切り替えを指示する(ステップS38)。ライセンス移行部530は、図15Bに示すような画面を表示して、移行先のPLC102に接続することを指示する。ユーザが、移行元のPLC101から通信ケーブル701を取り外し、ライセンス管理ツール500とPLC101との接続を切り、その後、通信ケーブル701を移行先のPLC102に接続したものとする。よって、ライセンス管理ツール500は、移行先のPLC102と通信可能となる。
 図14に示すように、ライセンス移行部530は、移行先のPLC102に識別子を要求する(ステップS39)。これに応答して、PLC102のライセンス送受信部150は、識別子をライセンス管理ツール500に送信する。
 ライセンス移行部530は、移行先のPLC102から識別子を受信すると(ステップS40)、移行元のPLC101から受信したライセンスキー1200から新しいライセンスキー1200を再生成する(ステップS41)。具体的には、ライセンス送受信部150は、図5に示すような、ライセンスキー1200の装置ID1200bとしてセットされている移行元のPLC101の識別子を削除し、移行先のPLC102から取得した識別子を新たな装置ID1200bとしてライセンスキー1200にセットする。さらに、ライセンス移行部530は、ライセンスキー1200の移行カウンタ1200cの値を1つ増やす。
 図14に示すように、ライセンス移行部530は、再生成したライセンスキー1200を移行先のPLC102に送信する(ステップS42)。これに応答して、PLC102のライセンス送受信部150は、受信したライセンスキー1200をライセンスキー記憶部120に記憶する。
 ライセンスキー1200の移行が完了すると、図16Aに示すように、ライセンス移行部530は、ライセンスキーの情報をライセンス管理サーバ600に送信する(ステップS51)。ライセンスキーの情報は、PLC100のユーザを識別するユーザIDと、移行先のPLC102に送信したライセンスキー1200と、PLC102の識別子と、を含む。ライセンス移行部530は、ライセンス管理サーバ600から、更新完了報告を受信すると(ステップS52)、図15Cに示すような移行完了画面を表示する。
 図16Bに示すように、ライセンス管理サーバ600のライセンス管理部630は、ライセンス管理ツール500からライセンスキーの情報を受信すると(ステップS61)、ライセンス登録テーブル620bのデータを更新する(ステップS62)。具体的には、ライセンス管理部630は、ライセンス登録テーブル620bのデータのうち、受信したユーザIDにより特定されるデータを、受信したライセンスキー1200と識別子とで更新する。その後、ライセンス管理部630は、ライセンス管理ツール500にライセンス登録テーブル620bの更新が完了した旨を示す更新完了通知を送信する(ステップS63)。
 以上説明したように、実施の形態に係る構成においては、ライセンス管理ツール500が、外部ネットワークに接続されていない2以上のPLC100の間でライセンスキー1200を移行する。ライセンス管理ツール500は、移行元のPLC101から取得したライセンスキー1200からPLC101の識別子を削除して、移行先のPLC102の識別子をライセンスキー1200にセットすることにより、ライセンスキー1200を再生成し、新しいライセンスキー1200を移行先のPLC102に供給する。このような構成を備えることで、ライセンス管理ツール500は、ライセンス管理サーバと通信することができないスタンドアロンの装置間でライセンスを移行することができる。
 実施の形態においては、ライセンス送受信部150が、受信したライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが、無効化キー記憶部130に格納されている場合に、ライセンスキー1200を受け付けない例を説明した。しかし、これに限られない。
 例えば、ライセンス管理ツール500は、PLC100が無効化キーを有している場合には、PLC100にライセンスキー1200を送信しないようにしてもよい。具体的には、ライセンス管理ツール500の再生成部533が、再生成したライセンスキー1200を移行先のPLC100に送信する前に、PLC100にPLC100が有している無効化キーを要求してもよい。これに応答して、PLC100は、無効化キー記憶部130に格納されているか無効化キーの値の一覧をライセンス管理ツール500に送信するものとする。再生成部553は、PLC100から受信した無効化キーのうちに、再生成したライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが存在する場合には、再生成したライセンスキー1200を、移行先のPLC100に送信しないようにしてもよい。
 実施の形態においては、ライセンス管理ツール500は、移行先のPLC100に新しいライセンスキー1200を供給する前に、移行元のPLC100に無効化キーを送信する例を説明したが、これに限られない。
 例えば、ライセンス管理ツール500は、移行元のPLC100からライセンスキー1200を取得し、ライセンスキー1200をコピーする、あるいは、ライセンスキー1200から無効化キーを生成する。ライセンス管理ツール500は、PLC100の接続の切り替えが行われた後、新しいライセンスキー1200を生成し、移行先のPLC100に新しいライセンスキー1200を送信する。その後、ユーザにより、再度、ライセンス管理ツール500と移行先のPLC100とが接続されると、ライセンス管理ツール500は、無効化キーを移行元のPLC100に送信する。この場合、移行先のPLC100へのライセンスキー1200の登録が完了した後に、移行元のPLC100に無効化キーを提供するので、仮に、新しいライセンスキー1200の移行先のPLC100への登録が失敗した場合には、移行元のPLC100に再度ライセンスキー1200を戻すことも可能である。
 実施の形態では、移行元のPLC101の識別子が第1識別子として、ライセンスキー1200に含まれており、新たにライセンスキー1200を生成する場合には、ライセンスキー1200から移行元のPLC101の識別子を取り出し、その後、移行先のPLC102の識別子が第2識別子としてライセンスキー1200に追加する例を説明した。しかし、第1識別子、第2識別子として、移行元のPLC100の識別子、移行先のPLC100の識別子以外を使用してもよい。例えば、PLC101の識別子から生成したハッシュ値を第1識別子としてもよく、PLC102の識別子から生成したハッシュ値を第2識別子としてもよい。
 実施の形態においては、ライセンス管理ツール500は、ライセンスキー1200の移行の処理に続けて、図16Aに示すライセンス情報更新処理を実行したが、これに限られない。例えば、ライセンス管理ツール500は、ライセンス情報更新処理を、ライセンスキー1200の移行の処理とは別個に実行してもよい。例えば、ライセンス管理ツール500が、ネットワーク702に常時接続されていないことがある。このような場合には、ライセンス管理ツール500は、ネットワーク702に接続されると、図16Aに示すライセンス情報更新処理を実行するようにしてもよい。
 実施の形態においては、ライセンス管理ツール500が、通信ケーブル701を介してPLC100と通信する例を説明したが、ライセンス管理ツール500とPLC100とは無線通信を行ってもよい。
 上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
 本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
1 ライセンス管理システム、11,51,61 メモリ、12,52 入出力インタフェース、13 MPU、19,59,69 バス、53,62 通信インタフェース、54 入力装置、55 表示装置、56,63 CPU、101,102(100) プログラマブルロジックコントローラ(PLC)、110 プログラム記憶部、111,511 ライセンス管理プログラム、120 ライセンスキー記憶部、130 無効化キー記憶部、140 ライセンス確認部、150 ライセンス送受信部、160 プログラム実行部、500 ライセンス管理ツール、510 購入データ記憶部、511 ライセンス管理プログラム、520 ライセンス登録部、530 ライセンス移行部、531 キー取得部、532 識別子取得部、533 再生成部、534 無効化キー生成部、600 ライセンス管理サーバ、610 アプリケーションデータ記憶部、610a アプリケーション適合テーブル、611 ライセンス管理プログラム、620 ライセンスデータ記憶部、620a 購入ライセンステーブル、620b ライセンス登録テーブル、630 ライセンス管理部、701 通信ケーブル、702 ネットワーク、1101~1103(1100) アプリケーションプログラム、1201~1203(1200) ライセンスキー、1200a ライセンスコード、1200b 装置ID、1200c 移行カウンタ、1200d 無効化フラグ

Claims (10)

  1.  アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上の装置の間で移行するライセンス移行ツールであって、
     前記ライセンスキーは、前記ライセンスキーが登録されている装置を識別する識別子を含み、
     ライセンスの移行元の前記装置である第1装置から、前記ライセンスキーを取得するキー取得手段と、
     ライセンスの移行先の前記装置である第2装置から、前記第2装置を識別する第2識別子を取得する識別子取得手段と、
     前記第1装置から取得した前記ライセンスキーから、前記第1装置を識別する第1識別子を削除して、前記第2装置の前記第2識別子を前記識別子として追加して、新しい前記ライセンスキーを生成し、前記第2装置に新しい前記ライセンスキーを供給する再生成手段と、
     を備えるライセンス移行ツール。
  2.  前記ライセンスキーは、前記アプリケーションプログラムの1ライセンス毎に割り振られた識別コードと、前記ライセンスキーが登録されている前記装置を識別する前記識別子と、前記ライセンスキーの移行回数を示す情報と、を含む、
     請求項1に記載のライセンス移行ツール。
  3.  前記ライセンスキーを有する前記第2装置は、前記ライセンスキーに含まれる前記識別子が、前記第2装置を識別する前記第2識別子と一致する場合に、前記アプリケーションプログラムを実行する、
     請求項1または2に記載のライセンス移行ツール。
  4.  前記再生成手段が、新しい前記ライセンスキーを前記第2装置に供給した後に、前記第1装置に前記ライセンスキーを再度登録することができないことを示す無効化キーを生成し、前記第1装置に前記無効化キーを供給する無効化キー生成手段、
     を備える請求項1または3に記載のライセンス移行ツール。
  5.  前記無効化キー生成手段は、前記第1装置から取得した前記ライセンスキーを複製し、複製したキーに、そのキーが無効であることを示す値を設定して、前記無効化キーを生成する、
     請求項4に記載のライセンス移行ツール。
  6.  前記第2装置は、前記無効化キーを有している場合、前記無効化キーと対応する前記ライセンスキーを受け付けない、
     請求項4または5に記載のライセンス移行ツール。
  7.  前記再生成手段は、前記第2装置が新しい前記ライセンスキーに対応する前記無効化キーを有している場合、新しい前記ライセンスキーを前記第2装置に供給しない、
     請求項4または5に記載のライセンス移行ツール。
  8.  前記装置は、プログラマブルロジックコントローラである、
     請求項1から7のいずれか1項に記載のライセンス移行ツール。
  9.  アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上の装置の間で移行するコンピュータに、
     ライセンスの移行元の前記装置である第1装置から、前記ライセンスキーを取得させ、
     ライセンスの移行先の前記装置である第2装置から、前記第2装置を識別する第2識別子を取得させ、
     前記第1装置から取得した前記ライセンスキーから、前記第1装置を識別する第1識別子を削除して、前記第2装置の前記第2識別子を追加して、新しい前記ライセンスキーを生成させ、
     前記第2装置に新しい前記ライセンスキーを供給させる、
     プログラム。
  10.  アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを移行ツールが第1装置から第2装置へ移行するライセンス移行システムであって、
     前記ライセンスキーは、前記ライセンスキーが登録されている装置を識別する識別子を含み、
     前記移行ツールは、
     ライセンスの移行元の前記第1装置から、前記ライセンスキーを取得するキー取得手段と、
     ライセンスの移行先の前記第2装置から、前記第2装置を識別する第2識別子を取得する識別子取得手段と、
     前記第1装置から取得した前記ライセンスキーから、前記第1装置を識別する第1識別子を削除して、前記第2装置の前記第2識別子を前記識別子として追加して、新しい前記ライセンスキーを生成し、前記第2装置に新しい前記ライセンスキーを供給する再生成手段と、
     を備え、
     前記第1装置は、
     前記ライセンスキーを記憶するライセンスキー記憶手段と、
     前記移行ツールから前記ライセンスキーを要求されると、前記移行ツールに前記ライセンスキー記憶手段が記憶する前記ライセンスキーを送信する送信手段と、
     を備え、
     前記第2装置は、
     前記移行ツールから前記識別子を要求されると、前記移行ツールに前記識別子を送信する識別子送信手段と、
     前記移行ツールから供給された前記ライセンスキーを前記第2装置が有する前記ライセンスキー記憶手段に格納する格納手段と、
     を備える、
     ライセンス移行システム。
PCT/JP2019/013379 2019-03-27 2019-03-27 ライセンス移行ツール、プログラム、及びライセンス移行システム WO2020194604A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019568127A JP6701463B1 (ja) 2019-03-27 2019-03-27 ライセンス移行ツール、プログラム、及びライセンス移行システム
PCT/JP2019/013379 WO2020194604A1 (ja) 2019-03-27 2019-03-27 ライセンス移行ツール、プログラム、及びライセンス移行システム
KR1020217026824A KR102314391B1 (ko) 2019-03-27 2019-03-27 라이센스 이행 툴, 기록 매체, 및 라이센스 이행 시스템
CN201980094382.XA CN113614716B (zh) 2019-03-27 2019-03-27 许可转移工具、记录有程序的计算机可读取记录介质及许可转移系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/013379 WO2020194604A1 (ja) 2019-03-27 2019-03-27 ライセンス移行ツール、プログラム、及びライセンス移行システム

Publications (1)

Publication Number Publication Date
WO2020194604A1 true WO2020194604A1 (ja) 2020-10-01

Family

ID=70776090

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/013379 WO2020194604A1 (ja) 2019-03-27 2019-03-27 ライセンス移行ツール、プログラム、及びライセンス移行システム

Country Status (4)

Country Link
JP (1) JP6701463B1 (ja)
KR (1) KR102314391B1 (ja)
CN (1) CN113614716B (ja)
WO (1) WO2020194604A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651975A (ja) * 1992-07-30 1994-02-25 Fuji Xerox Co Ltd ソフトウェア管理システム
JP2005327196A (ja) * 2004-05-17 2005-11-24 Canon Inc ライセンス管理装置、その制御方法、プログラムおよび記憶媒体
JP2009169782A (ja) * 2008-01-18 2009-07-30 Hitachi Ltd 受信装置および配信装置の再生ライセンス管理方式
JP2010191691A (ja) * 2009-02-18 2010-09-02 Konica Minolta Business Technologies Inc ライセンス管理システム、ライセンス管理コンピュータ、ライセンス管理方法およびライセンス管理プログラム
JP2015026159A (ja) * 2013-07-25 2015-02-05 株式会社バンダイナムコゲームス サーバシステムおよびサーバシステムによる処理方法
JP2018026087A (ja) * 2016-08-05 2018-02-15 株式会社リコー 情報処理システム、アプリケーション導入方法及び情報処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302817A (ja) 2003-03-31 2004-10-28 Matsushita Electric Ind Co Ltd ライセンス管理システム
JP4958671B2 (ja) * 2007-07-24 2012-06-20 キヤノン株式会社 ライセンス管理装置、ライセンス管理方法、及びコンピュータプログラム
JP5136161B2 (ja) 2008-03-31 2013-02-06 富士通株式会社 ソフトウェア・ライセンス管理システム、ソフトウェアをインストール可能な端末装置、ライセンス管理装置、およびプログラム
JP5413078B2 (ja) * 2009-09-14 2014-02-12 株式会社リコー 機器管理システム、機器管理装置、仲介装置、機器管理方法、及び機器管理プログラム
CN103503365A (zh) * 2011-04-25 2014-01-08 松下电器产业株式会社 记录介质装置及控制器
US9292842B2 (en) * 2011-10-28 2016-03-22 Anil H. Pereira Systems and methods for managing software licensing agreements
US9838460B2 (en) 2012-05-29 2017-12-05 Google Llc Tool for sharing applications across client devices
JP6103169B1 (ja) * 2015-11-05 2017-03-29 三菱電機株式会社 セキュリティ装置、及びセキュリティ方法
EP3418833B1 (de) * 2017-06-20 2021-04-07 Siemens Aktiengesellschaft Verfahren und anordnung zum zugriff eines ersten computers auf eine virtuelle maschine eines zweiten computers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651975A (ja) * 1992-07-30 1994-02-25 Fuji Xerox Co Ltd ソフトウェア管理システム
JP2005327196A (ja) * 2004-05-17 2005-11-24 Canon Inc ライセンス管理装置、その制御方法、プログラムおよび記憶媒体
JP2009169782A (ja) * 2008-01-18 2009-07-30 Hitachi Ltd 受信装置および配信装置の再生ライセンス管理方式
JP2010191691A (ja) * 2009-02-18 2010-09-02 Konica Minolta Business Technologies Inc ライセンス管理システム、ライセンス管理コンピュータ、ライセンス管理方法およびライセンス管理プログラム
JP2015026159A (ja) * 2013-07-25 2015-02-05 株式会社バンダイナムコゲームス サーバシステムおよびサーバシステムによる処理方法
JP2018026087A (ja) * 2016-08-05 2018-02-15 株式会社リコー 情報処理システム、アプリケーション導入方法及び情報処理装置

Also Published As

Publication number Publication date
JPWO2020194604A1 (ja) 2021-04-08
KR20210109659A (ko) 2021-09-06
CN113614716B (zh) 2022-09-13
CN113614716A (zh) 2021-11-05
KR102314391B1 (ko) 2021-10-19
JP6701463B1 (ja) 2020-05-27

Similar Documents

Publication Publication Date Title
JP6680022B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP4827467B2 (ja) ライセンス転送システム及びライセンス情報発行サーバ
US20170186117A1 (en) License management apparatus, license management method, and license authentication program
KR102169947B1 (ko) 에이전트 디바이스에 대한 신뢰된 신원을 확립하는 방법
US20080027742A1 (en) Information processing method, information processing apparatus, computer program and storage medium
WO2014199464A1 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP4260759B2 (ja) 機器制御サービス提供プログラム、機器制御サービス提供システムおよび機器制御サービス提供方法
JP5177804B2 (ja) フィールド通信システムおよびフィールド通信方法
WO2013011902A1 (ja) ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、及びプログラム
CN107122630A (zh) 设备授权管理方法和装置
WO2015004706A1 (ja) ストレージ装置およびストレージ装置の制御方法
WO2020194604A1 (ja) ライセンス移行ツール、プログラム、及びライセンス移行システム
WO2012151973A1 (zh) 许可管理方法及装置
JP5991740B2 (ja) ライセンス管理装置、ライセンス管理方法、およびプログラム
CN101246533A (zh) 用于管理数字内容的方法和装置
JP2009098977A (ja) 周辺機器接続システム
WO2015136964A1 (ja) ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
JP2005284506A (ja) ダウンロードシステム及びダウンロードシステムを構成する機器、管理局、リムーバブルメディア
JP2016173715A (ja) ライセンス管理システム、プログラム及びライセンス管理方法
WO2014045490A1 (ja) ライセンス制御システム、ライセンス制御方法、ライセンス適用装置、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP5130126B2 (ja) ライセンス数管理装置、ライセンス数管理方法及びライセンス数管理プログラム
EP2728504A1 (en) License administration device and license administration method
JP6570801B1 (ja) Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール
WO2015194050A1 (ja) 産業機器生産システム、産業機器生産方法、プログラム、及び情報記憶媒体
JP6492418B2 (ja) 決済システム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019568127

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19921844

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217026824

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19921844

Country of ref document: EP

Kind code of ref document: A1