JP6701463B1 - License transfer tool, program, and license transfer system - Google Patents

License transfer tool, program, and license transfer system Download PDF

Info

Publication number
JP6701463B1
JP6701463B1 JP2019568127A JP2019568127A JP6701463B1 JP 6701463 B1 JP6701463 B1 JP 6701463B1 JP 2019568127 A JP2019568127 A JP 2019568127A JP 2019568127 A JP2019568127 A JP 2019568127A JP 6701463 B1 JP6701463 B1 JP 6701463B1
Authority
JP
Japan
Prior art keywords
license
key
identifier
plc
license key
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2019568127A
Other languages
Japanese (ja)
Other versions
JPWO2020194604A1 (en
Inventor
吉岡 正裕
正裕 吉岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6701463B1 publication Critical patent/JP6701463B1/en
Publication of JPWO2020194604A1 publication Critical patent/JPWO2020194604A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • General Engineering & Computer Science (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)に新しいライセンスキーを送信する。The license management tool (500) transfers a license key indicating that the application program is licensed between two or more PLCs (101) and PLCs (102) not connected to an external network. The license key includes an identifier that identifies the device for which the license key is registered. The license transfer unit (530) acquires a license key from the license transfer source PLC (101). The license transfer unit (530) acquires the second identifier of the PLC (102) from the license transfer destination PLC (102). The license transfer unit (530) deletes the first identifier of the PLC (101) from the license key acquired from the PLC (101) and adds the second identifier of the PLC (102) to generate a new license key. Then, the new license key is transmitted to the PLC (102).

Description

本発明は、ライセンス移行ツール、プログラム、及びライセンス移行システムに関する。   The present invention relates to a license transfer tool, a program, and a license transfer system.

市場で製品として販売されているアプリケーションプログラムの不正利用を防止するため、アプリケーションプログラムの販売元が管理するライセンス管理サーバとアプリケーションプログラムがインストールされた装置とがネットワークを介して通信し、ライセンス管理サーバがライセンス認証を行うことがある。   To prevent unauthorized use of application programs sold as products on the market, 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 May perform license authentication.

また、装置からアンインストールしたアプリケーションプログラムを、他の装置にインストールすることがある。この場合、アプリケーションプログラムのライセンスを移行する必要がある。   Further, the application program uninstalled from the device may be installed in another device. In this case, it is necessary to transfer the license of the application program.

例えば、特許文献1には、次のようにライセンスを移行することが記載されている。ライセンスの移行元である装置は、アプリケーションプログラムがアンインストールされると、アンインストール証明コードを生成し、ライセンス管理サーバにアンインストール証明コードを送信する。ライセンスの移行先の装置は、固有識別コードを生成し、ライセンス管理サーバに固有識別コードを送信する。ライセンス管理サーバは、受信したアンインストール証明コードと固有識別コードとが正当か否かを判別し、正当である場合にライセンス移行を許可する。ライセンス移行を許可する場合、ライセンス管理サーバは、インストール許可通知をライセンスの移行先の装置に送信する。   For example, Patent Document 1 describes that a license is transferred as follows. When the application program is uninstalled, the device as the license transfer source 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 a unique identification code and transmits the unique identification code to the license management server. The license management server determines whether or not the received uninstall certification code and unique identification code are valid, and permits the license transfer if they are valid. When permitting license transfer, the license management server transmits an installation permission notification to the license transfer destination device.

特開2009−245169号公報JP, 2009-245169, A

特許文献1に記載された構成では、ライセンスの移行元の装置とライセンスの移行先の装置とが、ネットワークを介してライセンス管理サーバと通信可能であることが必要である。しかし、ライセンスの移行元の装置とライセンスの移行先の装置とが、ネットワークを介してライセンス管理サーバと通信することができない場合もある。例えば、ファクトリーオートメーションの分野で使用されるコントローラは、セキュリティの観点から、外部のネットワークに接続されていないことがある。このように、ライセンスの移行元の装置とライセンスの移行先の装置とが、ネットワークを介してライセンス管理サーバと通信することが不可能である場合には、ライセンス管理サーバを介したライセンス移行を実行することができない。   In the configuration described in Patent Document 1, it is necessary that the device of the license transfer source and the device of the license transfer destination can communicate with the license management server via the network. However, there is a case where the license transfer source device and the license transfer destination device cannot communicate with the license management server via the network. For example, a controller used in the field of factory automation may not be connected to an external network for security reasons. As described above, when the device of the license transfer source and the device of the license transfer destination cannot communicate with the license management server via the network, the license transfer is performed via the license management server. Can not do it.

本発明は上記実情に鑑みなされたものであり、ライセンス管理サーバと通信することができないスタンドアロンの装置間でライセンスを移行することを目的とする。   The present invention has been made in view of the above circumstances, and an object thereof is to transfer a license between stand-alone devices that cannot communicate with a license management server.

上記目的を達成するため、本発明に係るライセンス移行ツールは、アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上の装置の間で移行する。ライセンスキーは、ライセンスキーが登録されている装置を識別する識別子を含む。ライセンス移行ツールが備えるキー取得手段は、ライセンスの移行元の装置である第1装置から、ライセンスキーを取得する。ライセンス移行ツールが備える識別子取得手段は、ライセンスの移行先の装置である第2装置から、第2装置を識別する第2識別子を取得する。ライセンス移行ツールが備える再生成手段は、第1装置から取得したライセンスキーから、第1装置を識別する第1識別子を削除して、第2装置の第2識別子を識別子として追加して、新しいライセンスキーを生成し、第2装置に新しいライセンスキーを供給する。   To achieve the above object, the license migration tool according to the present invention migrates a license key indicating that the application program is licensed, between two or more devices that are not connected to an external network. The license key includes an identifier that identifies the device for which the license key is registered. The key acquisition unit included 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 unit included in the license transfer tool acquires a second identifier for identifying the second device from the second device which is the transfer destination device of the license. The regenerating unit included in the license transfer tool deletes the first identifier for identifying the first device from the license key acquired 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.

本発明に係るライセンス移行ツールは、ライセンスの移行元の装置である第1装置から、ライセンスキーを取得し、ライセンスの移行先の装置である第2装置から、第2装置を識別する第2識別子を取得する。ライセンス移行ツールは、第1装置から取得したライセンスキーから、第1装置を識別する第1識別子を削除して、第2装置の第2識別子を識別子として追加して、新しいライセンスキーを生成し、第2装置に新しいライセンスキーを供給する。このような構成を備えることで、ライセンス管理サーバと通信することができないスタンドアロンの装置間でライセンスを移行することができる。   The license transfer tool according to the present invention obtains a license key from a first device which is a device of a license transfer source, and a second identifier which identifies a second device from a second device which is a device of a license transfer destination. To get. The license transfer tool deletes the first identifier for identifying the first device from the license key acquired 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, it is possible to transfer the license between the stand-alone devices that cannot communicate with the license management server.

本発明の実施の形態に係るライセンス管理システムの機能構成を示すブロック図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 constitutions of the license management system which concerns on embodiment. 実施の形態に係るPLCのプログラム記憶部の構成を示す図The figure which shows the structure of the program storage part of PLC which concerns on embodiment. 実施の形態に係るPLCのライセンスキー記憶部の構成を示す図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 purchase license 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 the license management tool according to the embodiment 実施の形態に係るライセンスキーの登録の対象を選択する選択画面の一例を示す図The figure which shows an example of the selection screen which selects the registration object 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 figure which shows an example of the screen which notifies the registration failure of the license key which concerns on embodiment 実施の形態に係るライセンス管理サーバのライセンス発行処理のフローチャートFlowchart of license issuance process of license management server according to the embodiment 実施の形態に係るライセンス管理ツールのライセンス移行処理のフローチャート(前半)Flowchart of license transfer processing of the license management tool according to the embodiment (first half) 実施の形態に係るライセンス管理ツールのライセンス移行処理のフローチャート(後半)Flowchart of the license transfer process of the license management tool according to the embodiment (second half) 実施の形態に係るライセンスキーの移行の対象を選択する選択画面の一例を示す図The figure which shows an example of the selection screen which selects the transfer target of the license key which concerns on embodiment 実施の形態に係るライセンスキーの移行の際のPLCの接続の切り替え指示画面の一例を示す図The figure which shows an example of the switching instruction screen of the connection of the PLC at the time of transfer of the license key which concerns on embodiment. 実施の形態に係るライセンスキーの移行完了画面の一例を示す図The figure which shows an example of the transfer completion screen of the license key which concerns on embodiment 実施の形態に係るライセンス管理ツールのライセンス情報更新処理のフローチャートFlowchart of license information update processing of the license management tool according to the embodiment 実施の形態に係るライセンス管理サーバのライセンス情報更新処理のフローチャートFlowchart of license information update processing of the license management server according to the embodiment

(実施の形態)
以下、本発明の実施の形態に係るライセンス管理システムについて、図面を参照しつつ詳細に説明する。
(Embodiment)
Hereinafter, a license management system according to an embodiment of the present invention will be described in detail with reference to the drawings.

図1に示すライセンス管理システム1は、プログラマブルロジックコントローラ101及び102が実行するアプリケーションプログラムのライセンスを管理する。ライセンス管理システム1は、工場内の生産ラインで使用されるプログラマブルロジックコントローラのライセンスの登録を管理するライセンス管理ツール500と、ライセンスを発行するライセンス管理サーバ600とを含む。   The license management system 1 shown in FIG. 1 manages licenses of application programs executed by the programmable logic controllers 101 and 102. The license management system 1 includes a license management tool 500 that manages registration of a license of a programmable logic controller used in a production line in a factory, and a license management server 600 that issues a license.

プログラマブルロジックコントローラ101及び102は、工場内の生産ラインで使用される機械装置(不図示)を制御する制御装置である。以下、プログラマブルロジックコントローラ101及び102をひとまとめにしてプログラマブルロジックコントローラ100(PLC100)と称することがある。   The programmable logic controllers 101 and 102 are control devices that control mechanical devices (not shown) used in a production line in a factory. Hereinafter, the programmable logic controllers 101 and 102 may be collectively referred to as a programmable logic controller 100 (PLC100).

ライセンス管理ツール500として、例えば、プログラマブルロジックコントローラ100と同じ工場内にあり、専用のプログラムをインストールしたパーソナルコンピュータが使用される。ライセンス管理サーバ600は、例えば、アプリケーションプログラムを開発・販売するメーカの管理下にあるサーバである。   As the license management tool 500, for example, a personal computer 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 who develops and sells application programs.

PLC100は、製品として販売されているアプリケーションプログラムを実行することにより、例えば、工場内の内部ネットワーク(不図示)を介して接続されている機械装置を制御する。PLC100は、アプリケーションプログラムを実行するため、アプリケーションプログラムの使用が許諾されていることを示すライセンスを有している必要がある。実施の形態においては、PLC100は、アプリケーションプログラムのライセンスキー有している場合に、そのアプリケーションプログラムを実行することができる。ライセンスキーは、PLC100がライセンスを有していることを示すコードである。ライセンス管理サーバ600がライセンスキーを発行する。   The PLC 100 controls, for example, a mechanical device connected via an internal network (not shown) in the factory by executing an application program sold as a product. Since the PLC 100 executes the application program, the PLC 100 needs to have a license indicating that the use of the application program is permitted. In the embodiment, PLC 100 can execute an application program when it has the license key of the application program. The license key is a code indicating that the PLC 100 has a license. The license management server 600 issues a license key.

PLC100は、外部ネットワークに接続されておらず、ライセンス管理サーバ600と通信することができない。外部ネットワークは、インターネットのようなオープンなネットワークである。一方、ライセンス管理ツール500は、外部ネットワークを介してライセンス管理サーバ600と通信できる。このため、ライセンス管理ツール500が、PLC100に代わり、ライセンス管理サーバ600からライセンスキーを取得し、取得したライセンスキーをPLC100に供給する。   The PLC 100 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. On the other hand, the license management tool 500 can communicate with the license management server 600 via an external network. Therefore, the license management tool 500 acquires a license key from the license management server 600 instead of the PLC 100 and supplies the acquired license key to the PLC 100.

さらに、実施の形態に特徴的な構成として、ライセンス管理ツール500は、ライセンスキーの移行に係る処理を行う。ライセンスキーの移行とは、あるアプリケーションプログラムについてのライセンスキーを有しているPLC100から、他のPLC100にライセンスキーを移すことである。ライセンスキーを有するようになったPLC100は、そのアプリケーションプログラムを実行できるようになる。一方、ライセンスキーを有しなくなったPLC100は、そのアプリケーションプログラムを実行できなくなる。   Further, as a characteristic configuration of the embodiment, the license management tool 500 performs processing related to license key transfer. The transfer of the license key is to transfer the license key from the PLC 100 having the license key for a certain application program to another PLC 100. The PLC 100 having the license key can execute the application program. On the other hand, the PLC 100 without the license key cannot execute the application program.

図2に示すように、PLC100はハードウェア構成として、各種プログラム及びデータを記憶するメモリ11と、通信ケーブル701を介してライセンス管理ツール500との間でデータを授受する入出力インタフェース12と、PLC100全体を制御するMPU(Micro Processing Unit)13と、を有する。メモリ11と入出力インタフェース12とは、バス19を介してMPU13に接続されており、MPU13と通信する。   As shown in FIG. 2, the PLC 100 has, as a hardware configuration, a memory 11 for storing various programs and data, an input/output interface 12 for exchanging data with the license management tool 500 via a communication cable 701, and a PLC 100. It has MPU (Micro Processing Unit) 13 which 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.

メモリ11は、揮発性メモリと不揮発性メモリとを含む。メモリ11は、PLC100の各種機能を実現するためのプログラムを記憶する。メモリ11は、ライセンスキーの格納、取り出し等の処理をMPU13に実行させるプログラムであるライセンス管理プログラム111を記憶する。さらに、メモリ11はMPU13のワークメモリとして用いられる。メモリ11は、PLC100を一意に識別するための識別子を記憶する。実施の形態では、PLC100に割り当てられた識別子として、PLC100の製造時にPLC100に割り当てられたシリアルコードを使用するものとする。さらに、メモリ11は、ユーザを識別する情報であるユーザIDを記憶する。PLC100のユーザは、例えば、PLC100の管理者である。   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 that is a program that causes the MPU 13 to execute processing such as storage and retrieval of license keys. Further, the memory 11 is used as a work memory for the MPU 13. The memory 11 stores an identifier for uniquely identifying the PLC 100. In the embodiment, the serial code assigned to the PLC 100 when the PLC 100 is manufactured is used as the identifier assigned to the PLC 100. Further, the memory 11 stores a user ID which is information for identifying the user. The user of PLC100 is an administrator of PLC100, for example.

入出力インタフェース12は、例えば、USBコントローラを含み、MPU13から供給されたデータを電気信号に変換し、通信ケーブル701を介して変換した信号をライセンス管理ツール500に出力する。通信ケーブル701は、例えば、USBケーブルである。また、入出力インタフェース12は、通信ケーブル701を介して、ライセンス管理ツール500が出力した電気信号を受け付け、受け付けた電気信号をデータに復元してMPU13に出力する。   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 via the communication cable 701 to the license management tool 500. 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 into data, and outputs the data to the MPU 13.

MPU13は、メモリ11に記憶されている各種プログラムを実行して、PLC100の各種機能を実現する。例えば、ライセンス管理プログラム111を実行することにより、ライセンスキーの格納、取り出し等の処理を実行する。   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 storage and retrieval of license keys is executed.

ライセンス管理ツール500は、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ51と、通信ケーブル701を介してPLC100との間でデータを授受する入出力インタフェース52と、ネットワーク702を介してライセンス管理サーバ600と通信する通信インタフェース53と、ユーザの入力操作を検出する入力装置54と、画像を出力する表示装置55と、ライセンス管理ツール500全体を制御するCPU(Central Processing Unit)56とを有する。メモリ51と入出力インタフェース52と通信インタフェース53と入力装置54と表示装置55とは、バス59を介してCPU56に接続されており、それぞれCPU56と通信する。   The license management tool 500 has, as a hardware configuration, a memory 51 for storing various programs and data, an input/output interface 52 for exchanging data with the PLC 100 via a communication cable 701, and a license via a network 702. It has a communication interface 53 that communicates with the management server 600, an input device 54 that detects a user's input operation, 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 communicate with the CPU 56, respectively.

メモリ51は、揮発性メモリと不揮発性メモリとを含む。メモリ51は、ライセンス管理ツール500の各種機能を実現するためのプログラムを格納する。具体的には、メモリ51は、ライセンス管理プログラム511を記憶する。さらに、メモリ51はCPU56のワークメモリとして用いられる。   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 for the CPU 56.

ライセンス管理プログラム511は、ライセンスキーの登録処理と、ライセンスキーの移行処理とをCPU56に実行させるプログラムである。   The license management program 511 is a program that causes the CPU 56 to execute a license key registration process and a license key transfer process.

入出力インタフェース52は、例えば、USBコントローラを含み、CPU56から供給されたデータを電気信号に変換し、通信ケーブル701を介して変換した信号をPLC100に出力する。また、入出力インタフェース52は、通信ケーブル701を介して、PLC100が出力した電気信号を受け付け、受け付けた電気信号をデータに復元してCPU56に出力する。   The input/output interface 52 includes, for example, a USB controller, converts the 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 into data, and outputs the data to the CPU 56.

通信インタフェース53は、ネットワークインタフェース回路を含み、CPU56の制御の下、ネットワーク702を介して、ライセンス管理サーバ600と通信する。ネットワーク702は、例えば、インターネットである。   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.

入力装置54は、マウス、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号をCPU56に出力する。   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 operation input of the user to the CPU 56.

表示装置55は、ディスプレイを含み、CPU56から供給される信号に基づく画像をディスプレイに表示する。   The display device 55 includes a display and displays an image based on a signal supplied from the CPU 56 on the display.

CPU56は、メモリ51に記憶されている各種プログラムを実行して、ライセンス管理ツール500の各種機能を実現する。具体的には、CPU56は、ライセンス管理プログラム511を実行することにより、PLC101及び102にアプリケーションプログラムのライセンスキーを登録する。さらに、CPU56は、ライセンス管理プログラム511を実行することにより、例えば、PLC101が有しているライセンスキーをPLC102に移行する。   The CPU 56 executes various programs stored in the memory 51 and realizes various functions of the license management tool 500. Specifically, the CPU 56 executes the license management program 511 to register the license key of the application program in the PLC 101 and 102. Further, the CPU 56 executes the license management program 511 to transfer the license key held by the PLC 101 to the PLC 102, for example.

ライセンス管理サーバ600は、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ61と、ネットワーク702を介してライセンス管理ツール500と通信する通信インタフェース62と、ライセンス管理サーバ600全体を制御するCPU63とを有する。メモリ61と通信インタフェース62とは、バス69を介してCPU63に接続されており、それぞれCPU63と通信する。   The license management server 600 has, as a hardware configuration, a memory 61 that stores various programs and data, a communication interface 62 that communicates with the license management tool 500 via a network 702, and a CPU 63 that controls the entire license management server 600. Have. The memory 61 and the communication interface 62 are connected to the CPU 63 via the bus 69, and communicate with the CPU 63.

メモリ61は、揮発性メモリと不揮発性メモリとを含む。メモリ61は、ライセンス管理サーバ600の各種機能を実現するためのプログラムを格納する。具体的には、メモリ61は、ライセンス管理プログラム611を記憶する。さらに、メモリ51はCPU56のワークメモリとして用いられる。   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 for the CPU 56.

ライセンス管理プログラム611は、ライセンスキーを発行する処理と、ライセンスの登録に関する情報を管理する処理とをCPU63に実行させるプログラムである。   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 about license registration.

通信インタフェース62は、ネットワークインタフェース回路を含み、CPU63の制御の下、ネットワーク702を介して、ライセンス管理サーバ600と通信する。   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.

CPU63は、メモリ61に記憶されている各種プログラムを実行して、ライセンス管理サーバ600の各種機能を実現する。具体的には、CPU63は、ライセンス管理プログラム611を実行することによりライセンスキーを発行する。   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.

次に、図1を参照して、PLC100の機能構成を説明する。PLC100は、機能的には、アプリケーションプログラムを記憶するプログラム記憶部110と、ライセンスキーを記憶するライセンスキー記憶部120と、無効化キーを記憶する無効化キー記憶部130と、PLC100がアプリケーションプログラムを実行する前にライセンスキーが正当なものであるか否かを判別するライセンス確認部140と、ライセンス管理ツール500との間でライセンスキーを授受するライセンス送受信部150と、アプリケーションプログラムを実行するプログラム実行部160とを含む。   Next, the functional configuration of the PLC 100 will be described with reference to FIG. Functionally, 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 the license key is valid before execution, a license transmission/reception unit 150 that exchanges the license key with the license management tool 500, and program execution that executes an application program. Section 160.

プログラム記憶部110は、PLC100が実行するアプリケーションプログラムを記憶する。アプリケーションプログラムは、製品として販売されているプログラムを含む。図3に示すように、プログラム記憶部110は、ユーザが購入したアプリケーションプログラム1101〜1103を記憶しているとする。PLC100は、アプリケーションプログラム1101〜1103を実行するためには、それぞれのアプリケーションキーを有している必要がある。以下、アプリケーションプログラム1101〜1103をまとめてアプリケーションプログラム1100と称することがある。プログラム記憶部110の機能は、図2に示すメモリ11により実現される。   The program storage unit 110 stores an application program executed by the PLC 100. The application program includes a program sold as a product. 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 respective application keys in order to execute the application programs 1101 to 1103. Hereinafter, 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.

図1に示すライセンスキー記憶部120は、PLC100が実行するアプリケーションプログラム1100それぞれに対応するライセンスキーを記憶する。図3に示すように、プログラム記憶部110がアプリケーションプログラム1101〜1103を記憶しているとする。この場合、図4に示すように、ライセンスキー記憶部120は、アプリケーションプログラム1101〜1103にそれぞれ対応するライセンスキー1201〜1203を記憶する。以下、ライセンスキー1201〜1203をまとめてライセンスキー1200と称することがある。ライセンスキー記憶部120は、本発明のライセンスキー記憶手段の一例である。   The license key storage unit 120 shown in FIG. 1 stores a license key corresponding to each application program 1100 executed by the PLC 100. As shown in FIG. 3, it is assumed that the program storage unit 110 stores application programs 1101 to 1103. In this case, as shown in FIG. 4, the license key storage unit 120 stores 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.

ライセンスキー1200は、図1に示すライセンス管理ツール500から供給される。後述のライセンス送受信部150は、ライセンス管理ツール500から供給されたライセンスキー1200をライセンスキー記憶部120に格納する。ライセンスキー記憶部120の機能は、図2に示すメモリ11により実現される。ライセンスキー記憶部120は、メモリ11の、ユーザが参照することができない領域に設けられることが望ましい。ライセンス送受信部150は、本発明の格納手段の一例である。   The license key 1200 is supplied from the license management tool 500 shown in FIG. The license transmitting/receiving 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. The license key storage unit 120 is preferably provided in an area of the memory 11 that the user cannot refer to. The license transmission/reception unit 150 is an example of the storage means of the present invention.

図4に示すように、ライセンスキー記憶部120は、ライセンスキー1200と、アプリケーションプログラム1100を特定するアプリケーションIDとを記憶する。図5に示すように、ライセンスキー1200は、ライセンスコード1200aと、装置ID1200bと、移行カウンタ1200cと、無効化フラグ1200dとを含む。   As shown in FIG. 4, the license key storage unit 120 stores a license key 1200 and an application ID that identifies the application program 1100. As shown in FIG. 5, the license key 1200 includes a license code 1200a, a device ID 1200b, a migration counter 1200c, and an invalidation flag 1200d.

ライセンスコード1200aは、アプリケーションプログラム1100の1ライセンス毎に割り振られた識別コードである。実施の形態では、1ライセンスで、1つのPLC100がアプリケーションプログラム1100を実行できるものとする。   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 PLC 100 can execute the application program 1100 with one license.

装置ID1200bは、アプリケーションプログラム1100がインストールされているPLC100を一意に識別するための識別子である。装置ID1200bには、ライセンスキー1200が登録されているPLC100の識別子がセットされている。   The device ID 1200b is an identifier for uniquely identifying the PLC 100 in which the application program 1100 is installed. An identifier of the PLC 100 in which the license key 1200 is registered is set in the device ID 1200b.

PLC100は、アプリケーションプログラム1100の実行時に、ライセンスキー1200の装置ID1200bが自機の識別子と一致するか否かを判別する。PLC100は、ライセンスキー1200の装置ID1200bが自機の識別子と一致すると判別すると、アプリケーションプログラム1100を実行する。一方、PLC100は、ライセンスキー1200の装置ID1200bが自機の識別子と一致しないと判別すると、アプリケーションプログラム1100を実行しない。このような構成によりアプリケーションプログラム1100を実行するべきでないPLC100がアプリケーションプログラム1100を実行することがないよう制御することができる。   The PLC 100 determines whether the device ID 1200b of the license key 1200 matches the identifier of the own device when the application program 1100 is executed. When the PLC 100 determines that the device ID 1200b of the license key 1200 matches the identifier of the own device, the PLC 100 executes the application program 1100. On the other hand, when the PLC 100 determines that the device ID 1200b of the license key 1200 does not match the identifier of the own device, the PLC 100 does not execute the application program 1100. With such a configuration, the PLC 100 that should not execute the application program 1100 can be controlled so as not to execute the application program 1100.

ライセンスキー1200の初回発行時には、ライセンス管理サーバ600がライセンスキー1200を生成する。このため、ライセンス管理サーバ600には、ライセンス管理ツール500からPLC100の識別子が供給される。ライセンス管理サーバ600は、装置ID1200bとしてPLC100の識別子をライセンスキー1200にセットする。ライセンスキー1200の移行時には、ライセンス管理ツール500がライセンスキー1200を再生成する。この場合、ライセンス管理ツール500が、装置ID1200bとして移行先のPLC100の識別子をライセンスキー1200にセットする。   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 tool 500 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 as the device ID 1200b in the license key 1200. When the license key 1200 is transferred, the license management tool 500 regenerates the license key 1200. In this case, the license management tool 500 sets the identifier of the PLC 100 of the transfer destination as the device ID 1200b in the license key 1200.

移行カウンタ1200cには、アプリケーションプログラム1100のライセンスが移行された回数である移行回数を示す値が格納される。移行カウンタ1200cの値は、ライセンスキー1200が初回に生成されたときは初期値、例えば、“0”である。移行カウンタ1200cの値は、ライセンスキー1200が再生成されるタイミングで、“1”加算される。   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 transition 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 incremented by "1" at the timing when the license key 1200 is regenerated.

ライセンス管理サーバ600は、ライセンスキー1200の生成時に、移行カウンタ1200cの値に初期値をセットする。ライセンス管理ツール500は、移行処理において、ライセンスキー1200の移行カウンタ1200cの値を決められた数だけ、例えば、“1”を、加算する。   The license management server 600 sets an initial value to the value of the migration counter 1200c when the license key 1200 is generated. In the migration processing, 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".

例えば、PLC100の管理者がアプリケーションプログラム1101を1ライセンス購入したとする。管理者が、最初にPLC101にアプリケーションプログラム1101をインストールし、ライセンス管理ツール500を介して、PLC101にアプリケーションプログラム1101に対応するライセンスキー1200を登録したとする。このとき、移行カウンタ1200cの値は初期値、例えば、“0”である。その後、PLC101の動作不良といった何らかの事情により、PLC101がアプリケーションプログラム1101を実行することができなくなったとする。PLC100の管理者が、PLC102にアプリケーションプログラム1101をインストールし、ライセンス管理ツール500を使用して、アプリケーションプログラム1101のライセンスキー1200をPLC102に移行したとする。このときの移行カウンタ1200cの値は、初期値に“1”が加算された値、即ち、“1”である。   For example, assume that the administrator of the PLC 100 purchases one license of the application program 1101. It is assumed that the administrator first installs the application program 1101 in the PLC 101 and registers the license key 1200 corresponding to the application program 1101 in the PLC 101 via the license management tool 500. At this time, the value of the transition counter 1200c is an initial value, for example, "0". After that, it is assumed that the PLC 101 cannot execute the application program 1101 due to some reason such as a malfunction of the PLC 101. It is assumed that the administrator of the PLC 100 installs the application program 1101 in 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".

無効化フラグ1200dは、ライセンスキー1200が無効化キーであるか否かを示す値を持つ。無効化キーは、ライセンスキー1200の不正使用を防止するために使用される。無効化キーは、ライセンスキー1200を他のPLC100に移行したときに、移行元のPLC100に保存される。   The invalidation flag 1200d has a value indicating whether the license key 1200 is an invalidation key. The invalidation key is used to prevent unauthorized use of the license key 1200. The deactivation key is stored in the transfer source PLC 100 when the license key 1200 is transferred to another PLC 100.

ライセンスキー1200が有効なキーであることを示す値として、例えば、無効化フラグ1200dに“0”がセットされる。無効化フラグ1200dの値が、例えば、“1”であることは、そのキーが無効化キーであることを示す。   As a value indicating that the license key 1200 is a valid key, for example, "0" is set in the invalidation flag 1200d. For example, the value of the invalidation flag 1200d being “1” indicates that the key is an invalidation key.

ライセンス管理ツール500は、ライセンスキー1200を移行する際に、移行するライセンスキー1200をコピーし、コピーしたキーの無効化フラグ1200dに“1”をセットして、無効化キーを生成し、移行元のPLC100に無効化キーを保存する。   When migrating the license key 1200, 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 then transfers The invalidation key is stored in the PLC 100.

PLC100は、ライセンス管理ツール500から、ライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが供給された場合、供給されたライセンスキー1200を受け付けない。   The PLC 100 does not accept the supplied license key 1200 when the license management tool 500 supplies an invalidation key in which a portion of the license key 1200 excluding the invalidation flag 1200d matches.

図1に示す無効化キー記憶部130は、無効化キーを記憶する。前述のように、ライセンス管理ツール500は、ライセンスキー1200の移行時に無効化キーを移行元のPLC100に発行する。このため、無効化キー記憶部130は、ライセンス管理ツール500から無効化キーが供給された場合のみ無効化キーを記憶する。無効化キー記憶部130の機能は、図2に示すメモリ11により実現される。無効化キー記憶部130は、メモリ11の、ユーザが参照することができない領域に設けられることが望ましい。   The invalidation key storage unit 130 illustrated in FIG. 1 stores the invalidation key. As described above, the license management tool 500 issues an invalidation key to the migration source PLC 100 when the license key 1200 is migrated. Therefore, the revocation key storage unit 130 stores the revocation key only when the revocation 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. The invalidation key storage unit 130 is preferably provided in an area of the memory 11 that the user cannot refer to.

無効化キーを利用することでライセンスキー1200の不正使用を防止することができる。以下に、無効化キーを使用しない場合に想定される不正使用の例を説明する。   By using the revocation key, it is possible to prevent unauthorized use of the license key 1200. Below, an example of unauthorized use that is assumed when the invalidation key is not used will be described.

例えば、ライセンスキー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を実行することが可能となってしまう。   For example, when the license key 1200 is issued for the first time, the license management server 600 generates the license key 1200 including the identifier of the PLC 101 as the device ID 1200b of the license key 1200 and sends the license key 1200 to the license management tool 500. At this time, it is assumed that the user or another person has copied the license key 1200 for the PLC 101 stored in the license management tool 500 to a certain area in the memory 51. It is assumed that after the license key 1200 is registered in the PLC 101, a user or another person operates the license management tool 500 to transfer the license key 1200 to the PLC 102. Further, it is assumed that the user or another person re-registers the copied license key 1200 for the PLC 101 in the PLC 101. In this case, the license key 1200 for the PLC 101 can be registered in the PLC 101, and it becomes possible to execute the application program 1100 with the two PLCs 100 by purchasing only one license.

また、例えば、ユーザあるいは他の者が、ライセンス管理ツール500を操作して、PLC101に登録されているライセンスキー1200をPLC101からPLC102に移行する処理の最中に、PLC101から取得したライセンスキー1200を、例えば、メモリ51内のある領域にコピーしたとする。ライセンス管理ツール500により再生成されたライセンスキー1200が移行先のPLC102に登録された後、ユーザあるいは他の者が、コピーしておいたPLC101用のライセンスキー1200をPLC101に再び登録したとする。この場合も、PLC101用のライセンスキー1200をPLC101に登録することができてしまい、1ライセンスのみの購入で2つのPLC100でアプリケーションプログラム1100を実行できてしまう。   Further, for example, the user or another person operates the license management tool 500 to transfer the license key 1200 registered in the PLC 101 from the PLC 101 to the PLC 102 during the process of transferring the license key 1200 acquired from the PLC 101 to the license key 1200. For example, assume that a copy is made to a certain area in the memory 51. It is assumed that after the license key 1200 regenerated by the license management tool 500 is registered in the transfer destination PLC 102, the user or another person again registers the copied license key 1200 for the PLC 101 in the PLC 101. Also in this case, 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 PLCs 100 by purchasing only one license.

このような不正利用を防止するため、ライセンスキー1200を移行する場合に、ライセンス管理ツール500は、移行元のPLC100が有していたライセンスキー1200から無効化キーを生成し、無効化キーを移行元のPLC101に登録する。   In order to prevent such unauthorized use, when migrating the license key 1200, the license management tool 500 generates an invalidation key from the license key 1200 of the PLC 100 of the migration source, and migrates the invalidation key. Register with the original PLC 101.

図1に示すライセンス確認部140は、PLC100が、アプリケーションプログラム1100の実行に必要なライセンスキー1200を有しているか否かを確認する。   The license confirmation unit 140 shown in FIG. 1 confirms whether or not the PLC 100 has a license key 1200 required to execute the application program 1100.

具体的には、ライセンス確認部140は、図4に示すライセンスキー記憶部120にアプリケーションプログラム1100に対応するライセンスキー1200が存在するか否かを判別する。ライセンス確認部140は、ライセンスキー記憶部120にライセンスキー1200が存在する場合、ライセンスキー1200の装置ID1200bの値が、メモリ11に格納されているPLC100の識別子と一致するか否かに応じて、ライセンスキー1200が有効であるか否かを判別する。ライセンス確認部140は、ライセンスキー1200が有効に存在するか否かをプログラム実行部160に通知する。ライセンス確認部140の機能は、図2に示すMPU13により実現される。   Specifically, 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 the value of the device ID 1200b of the license key 1200 matches the identifier of the PLC 100 stored in the memory 11. It is determined whether 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.

図1に示すライセンス送受信部150は、ライセンス管理ツール500からライセンスキー1200を受信し、そのライセンスキー1200が登録可能か判別する。ライセンス送受信部150は、供給されたライセンスキー1200が登録可能であると判別した場合、そのライセンスキー1200をライセンスキー記憶部120に格納する。   The license transmitting/receiving 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 transmitting/receiving unit 150 determines that the supplied license key 1200 can be registered, the license transmitting/receiving unit 150 stores the license key 1200 in the license key storage unit 120.

具体的には、ライセンス送受信部150は、受信したライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが、無効化キー記憶部130に格納されているか否かを判別する。ライセンス送受信部150は、無効化フラグ1200dを除く部分が一致する無効化キーを有していない場合には、ライセンスキー1200をライセンスキー記憶部120に格納する。一方、ライセンス送受信部150は、無効化フラグ1200dを除く部分が一致する無効化キーを有している場合には、ライセンスキー1200をライセンスキー記憶部120に格納しない。   Specifically, the license transmission/reception unit 150 determines whether or not the invalidation key storing unit 130 stores an invalidation key that matches the received license key 1200 except for the invalidation flag 1200d. The license transmitting/receiving unit 150 stores the license key 1200 in the license key storage unit 120 when the invalidation key does not have a matching portion except the invalidation flag 1200d. On the other hand, the license transmitting/receiving unit 150 does not store the license key 1200 in the license key storage unit 120 when the portions other than the invalidation flag 1200d have the same invalidation key.

さらに、ライセンス送受信部150は、ライセンスキー1200の新規発行時及び移行時に、ライセンス管理ツール500からPLC100の識別子を要求されると、PLC100の識別子をライセンス管理ツール500に送信する。ライセンスキー1200の初回発行時には、ライセンス管理サーバ600が装置ID1200bとしてPLC100の識別子をライセンスキー1200にセットする。また、ライセンスキー1200の移行時には、ライセンス管理ツール500が装置ID1200bとしてPLC100の識別子をライセンスキー1200にセットする。ライセンス送受信部150は、本発明の識別子送信手段の一例である。   Furthermore, when the license management tool 500 requests the identifier of the PLC 100 when the license key 1200 is newly issued or transferred, the license transmission/reception unit 150 transmits the PLC 100 identifier to the license management tool 500. When the license key 1200 is issued for the first time, the license management server 600 sets the identifier of the PLC 100 as the device ID 1200b in the license key 1200. Further, when the license key 1200 is transferred, the license management tool 500 sets the identifier of the PLC 100 as the device ID 1200b in the license key 1200. The license transmitting/receiving unit 150 is an example of the identifier transmitting unit of the present invention.

ライセンス送受信部150は、ライセンスキー1200の移行時にライセンス管理ツール500から保有するライセンスに関するデータを要求されると、ライセンスキー記憶部120に格納されているライセンスキー1200の値の一覧をライセンス管理ツール500に送信する。   When the license transmission/reception unit 150 is requested by the license management tool 500 for data regarding a license held when the license key 1200 is transferred, the license transmission/reception unit 150 displays a list of values of the license key 1200 stored in the license key storage unit 120. Send to.

さらに、ライセンス送受信部150は、ライセンス管理ツール500からライセンスキー1200の取り出しを要求されると、指定されたライセンスキー1200をライセンスキー記憶部120から取り出して、そのライセンスキー1200をライセンス管理ツール500に送信する。よって、取り出されたライセンスキー1200は、ライセンスキー記憶部120内に記憶されなくなる。   Further, when the license transmission/reception unit 150 is requested by the license management tool 500 to retrieve the license key 1200, the license transmission/reception unit 150 retrieves the specified license key 1200 from the license key storage unit 120 and sends the license key 1200 to the license management tool 500. Send. Therefore, the extracted license key 1200 is no longer stored in the license key storage unit 120.

ライセンス送受信部150は、ライセンスキー1200の移行時に、ライセンス管理ツール500から無効化キーが供給されると、無効化キーを無効化キー記憶部130に格納する。ライセンス送受信部150の機能は、図2に示すMPU13がライセンス管理プログラム111を実行することにより実現される。   When the invalidation key is supplied from the license management tool 500 when the license key 1200 is transferred, the license transmission/reception unit 150 stores the invalidation key in the invalidation key storage unit 130. The function of the license transmitting/receiving unit 150 is realized by the MPU 13 shown in FIG. 2 executing the license management program 111.

図1に示すプログラム実行部160は、アプリケーションプログラム1100を実行する。プログラム実行部160は、アプリケーションプログラム1100を実行するのに先だって、アプリケーションプログラム1100に対応するライセンスキー1200が有効に存在するか否かをライセンス確認部140に問い合わせる。プログラム実行部160は、ライセンス確認部140からの応答に基づいてライセンスキー1200が有効に存在すると判別した場合に、プログラム記憶部110に格納されているアプリケーションプログラム1100を実行する。プログラム実行部160の機能は図2に示すMPU13により実現される。   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 of the license confirmation unit 140 whether the license key 1200 corresponding to the application program 1100 is valid. The program execution unit 160 executes the application program 1100 stored in the program storage unit 110 when it is determined that the license key 1200 is valid based on the response from the license confirmation unit 140. The function of the program execution unit 160 is realized by the MPU 13 shown in FIG.

続いて、図1に示すライセンス管理ツール500の機能構成を説明する。ライセンス管理ツール500は、機能的には、購入済みのアプリケーションプログラム1100に関するデータを記憶する購入データ記憶部510と、新規のライセンスキー1200をPLC100に登録するライセンス登録部520と、ライセンスキー1200を移行するライセンス移行部530とを含む。   Next, the functional configuration of the license management tool 500 shown in FIG. 1 will be described. Functionally, the license management tool 500 transfers a purchase data storage unit 510 that stores data related to a purchased application program 1100, a license registration unit 520 that registers a new license key 1200 to the PLC 100, and a license key 1200. And a license transfer unit 530.

購入データ記憶部510は、ユーザが購入済みのアプリケーションプログラム1100を特定するため、購入済みアプリケーションプログラム1100を特定するアプリケ−ションIDとアプリケーション名とを記憶する。購入データ記憶部510の機能は、図2に示すメモリ51により実現される。   The purchase data storage unit 510 stores an application ID and an 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.

図1に示すライセンス登録部520は、ユーザからライセンスキー1200の新規発行の指示を受け付けると、ライセンス管理サーバ600にライセンスキー1200の発行を要求する発行要求を送信する。ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200が発行されると、ライセンスキー1200をPLC100に送信する。   When the license registration unit 520 illustrated in FIG. 1 receives an instruction to newly issue a license key 1200 from the user, the license registration unit 520 transmits an issuance request for requesting issuance of the license key 1200 to the license management server 600. When the license key 1200 is issued from the license management server 600, the license registration unit 520 transmits the license key 1200 to the PLC 100.

具体的には、まず、ライセンス登録部520は、購入データ記憶部510に格納されている購入済みのアプリケーションプログラム1100のアプリケーション名の一覧を図2に示す表示装置55に表示する。ユーザがアプリケーションを選択すると、ライセンス登録部520は、接続されているPLC100にその識別子を要求し、PLC100から識別子を取得する。ライセンス登録部520は、ライセンス発行要求をライセンス管理サーバ600に送信する。ライセンス発行要求には、PLC100のユーザを識別するユーザIDと、PLC100から受信したPLC100の識別子と、ユーザが指定するアプリケーションプログラム1100を特定するアプリケーションIDと、が含まれている。ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200を受信すると、受信したライセンスキー1200をPLC100に送信する。   Specifically, first, the license registration unit 520 displays a list of application names of the purchased application programs 1100 stored in the purchase data storage unit 510 on the display device 55 shown in FIG. When the user selects an application, the license registration unit 520 requests the connected PLC 100 for the identifier and acquires the identifier from the PLC 100. The license registration unit 520 sends a license issuance request to the license management server 600. The license issuance request includes the user ID for identifying the user of the PLC 100, the identifier of the PLC 100 received from the PLC 100, and the application ID for specifying the application program 1100 designated by the user. Upon receiving 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.

一方、ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200を発行ができない旨の通知を受けると、ライセンスキー1200の登録に失敗したことをユーザに通知する。例えば、ライセンス登録部520は、図2に示す表示装置55にライセンスキー1200の登録に失敗した旨のメッセージを表示する。ライセンス登録部520の機能は、図2に示すCPU56が、ライセンス管理プログラム511を実行することにより実現される。   On the other hand, when the license registration unit 520 receives a notification from the license management server 600 that the license key 1200 cannot be issued, the license registration unit 520 notifies the user that registration of the license key 1200 has failed. For example, the license registration unit 520 displays a message to the effect that 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.

図1に示すライセンス移行部530は、ユーザからライセンスキー1200の移行の指示を受け付けると、接続されている移行元のPLC100からライセンスキー1200を取得する。ライセンス移行部530は、移行先のPLC100に接続されると、移行先のPLC100から識別子を取得し、その識別子を含む新たなライセンスキー1200を再生成し、移行先のPLC100に新たなライセンスキー1200を供給する。ライセンス移行部530の機能は、図2に示すCPU56が、ライセンス管理プログラム511を実行することにより実現される   When the license transfer unit 530 illustrated in FIG. 1 receives a transfer instruction of the license key 1200 from the user, the license transfer unit 530 acquires the license key 1200 from the connected PLC 100 of the transfer source. When the license transfer unit 530 is connected to the transfer-destination PLC 100, the license transfer unit 530 acquires an identifier from the transfer-destination PLC 100, regenerates a new license key 1200 including the identifier, and renews the transfer-destination PLC 100 with a new license key 1200. To supply. The function of the license transfer unit 530 is realized by the CPU 56 shown in FIG. 2 executing the license management program 511.

ライセンス移行部530は、キー取得部531と、識別子取得部532と、再生成部533と、無効化キー生成部534とを含む。   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.

キー取得部531は、ユーザが、ライセンス管理ツール500と移行元のPLC100とを接続し、ライセンスキー1200の移行の指示を出すと、まず、移行元のPLC100が保有するライセンスキー1200についての情報を移行元のPLC100に要求する。キー取得部531は、移行元のPLCから受信したライセンスキー1200についての情報をユーザに提示する。キー取得部531は、ユーザから指定されたライセンスキー1200の取り出しを移行元のPLC100に要求する。キー取得部531は、移行元のPLC100からライセンスキー1200を取得すると、ライセンスキー1200を再生成部533に供給する。キー取得部531は、本発明のキー取得手段の一例である。   When the user connects the license management tool 500 and the PLC 100 of the transfer source and issues an instruction to transfer the license key 1200, the key acquisition unit 531 first displays information about the license key 1200 held by the PLC 100 of the transfer source. Request to the PLC 100 of the transfer source. The key acquisition unit 531 presents the user with the information about the license key 1200 received from the transfer source PLC. The key acquisition unit 531 requests the transfer source PLC 100 to take out the license key 1200 specified by the user. Upon acquiring the license key 1200 from the transfer-source PLC 100, 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 unit of the present invention.

識別子取得部532は、ユーザがライセンス管理ツール500と移行先のPLC100とを接続すると、移行先のPLC100に識別子を要求する。識別子取得部532は、移行先のPLC100から識別子を取得すると、識別子を再生成部533に供給する。識別子取得部532は、本発明の識別子取得手段の一例である。   When the user connects the license management tool 500 and the PLC 100 of the migration destination, the identifier acquisition unit 532 requests the identifier of the PLC 100 of the migration destination. When the identifier acquisition unit 532 acquires the identifier from the migration destination PLC 100, 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 unit of the present invention.

再生成部533は、キー取得部531が移行元のPLC100からライセンスキー1200を取得すると、ライセンスキー1200を再生成する前に、無効化キーの生成を無効化キー生成部534に指示する。再生成部533は、無効化キー生成部534が無効化キーを生成した後、ライセンスキー1200を再生成する。再生成部533は、本発明の再生成手段の一例である。   When the key acquisition unit 531 acquires the license key 1200 from the transfer source PLC 100, the regeneration unit 533 instructs the deactivation key generation unit 534 to generate an invalidation key before regenerating the license key 1200. The regeneration unit 533 regenerates the license key 1200 after the revocation key generation unit 534 generates the revocation key. The regeneration unit 533 is an example of the regeneration unit of the present invention.

再生成部533は、キー取得部531が移行元のPLC100から取得したライセンスキー1200から、装置ID1200bとしてセットされている移行元のPLC100の識別子を削除する。再生成部533はそのライセンスキー1200の装置ID1200bとして、移行先のPLC100の識別子をセットする。さらに、再生成部533は、ライセンスキー1200の移行カウンタ1200cの値を1つ増やす。このようにして、再生成部533はライセンスキー1200を再生成する。再生成部533は、再生成したライセンスキー1200を移行先のPLC100に送信する。   The regenerating unit 533 deletes the identifier of the transfer-source PLC 100 set as the device ID 1200b from the license key 1200 acquired by the key acquisition unit 531 from the transfer-source PLC 100. The regeneration unit 533 sets the identifier of the transfer destination PLC 100 as the device ID 1200b of the license key 1200. Further, the regeneration unit 533 increments the value of the transition 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 transfer-destination PLC 100.

その後、再生成部533は、移行したライセンスキーの情報をライセンス管理サーバ600に送信する。移行したライセンスキーの情報は、PLC100のユーザを識別するユーザIDと、移行先のPLC100に送信したライセンスキー1200と、移行先のPLC100の識別子とを含む。   After that, the regeneration unit 533 transmits the information of the transferred license key to the license management server 600. The information of the transferred license key includes a user ID for identifying the user of the PLC 100, the license key 1200 transmitted to the transfer destination PLC 100, and the identifier of the transfer destination PLC 100.

無効化キー生成部534は、再生成部533から指示されると無効化キーを生成する。まず、無効化キー生成部534は、移行元のライセンスキー1200を複製し、複製したキーの無効化フラグ1200dに“1”をセットして、無効化キーを生成する。無効化キー生成部534が生成した無効化キーは、移行元のPLC100が有していたライセンスキー1200と、無効化フラグ1200dの値だけが異なる。無効化キー生成部534は無効化キーを移行元のPLC100に送信する。無効化キー生成部534は、本発明の無効化キー生成手段の一例である。   The invalidation key generation unit 534 generates the invalidation key when instructed by the regeneration unit 533. First, the revocation key generation unit 534 duplicates the transfer source license key 1200 and sets the revocation flag 1200d of the duplicated key to "1" to generate the revocation key. The invalidation key generated by the invalidation key generation unit 534 differs from the license key 1200 possessed by the transfer-source PLC 100 only in the value of the invalidation flag 1200d. The revocation key generation unit 534 transmits the revocation key to the PLC 100 that is the migration source. The revocation key generation unit 534 is an example of revocation key generation means of the present invention.

PLC101が有するライセンスキー1200をPLC102に移行する場合には、移行元のPLC101は、本発明の第1装置の一例であり、移行先のPLC102は、本発明の第2装置の一例である。移行元のPLC101の識別子は、本発明の第1識別子の一例であり、移行先のPLC102の識別子は、本発明の第2識別子の一例である。   When the license key 1200 of the PLC 101 is transferred to the PLC 102, the transfer source PLC 101 is an example of the first device of the present invention, and the transfer destination PLC 102 is an example of the second device of the present invention. The identifier of the migration source PLC 101 is an example of the first identifier of the present invention, and the identifier of the migration destination PLC 102 is an example of the second identifier of the present invention.

続いて、ライセンス管理サーバ600の機能構成を説明する。ライセンス管理サーバ600は、機能的には、アプリケーションプログラムに関するデータを記憶するアプリケーションデータ記憶部610と、ライセンスに関するデータを記憶するライセンスデータ記憶部620と、ライセンスキー1200を発行するライセンス管理部630とを含む。   Next, the functional configuration of the license management server 600 will be described. Functionally, the license management server 600 includes an application data storage unit 610 that stores data related to an application program, a license data storage unit 620 that stores data related to a license, and a license management unit 630 that issues a license key 1200. Including.

アプリケーションデータ記憶部610は、図6に示すようなアプリケーション適合テーブル610aを格納する。アプリケーション適合テーブル610aは、PLC100の機種毎の各アプリケーションプログラム1100の実行可否の対応を示すデータを記憶する。図示する例では、アプリケーション適合テーブル610aは、PLC100の機種に応じて各アプリケーションプログラム1100の実行が可能(OK)であるか、実行が不可(NG)であるかを示す値を記憶する。例えば、“TYPE2”のPLC100は、“アプリケーション1001”と“アプリケーション1004”とを実行することができ、その他のアプリケーションプログラム1100を実行することができない。例えば、アプリケーションプログラムを開発・販売するメーカにおいてライセンス管理サーバ600を管理する管理者が、アプリケーション適合テーブル610aをアプリケーションデータ記憶部610に格納する。アプリケーションデータ記憶部610の機能は、図2に示すメモリ61により実現される。   The application data storage unit 610 stores an application compatibility table 610a as shown in FIG. The application compatibility table 610a stores data indicating the correspondence of execution propriety of each application program 1100 for each model of the PLC 100. In the illustrated example, 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 PLC 100. For example, the PLC 100 of “TYPE 2” can execute “application 1001” and “application 1004”, but cannot execute other application programs 1100. For example, an administrator who manages the license management server 600 in a manufacturer who develops and sells application programs stores the application compatibility 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.

図1に示すライセンスデータ記憶部620は、図7に示すような購入ライセンステーブル620aを格納する。購入ライセンステーブル620aは、ユーザ毎の、ライセンスの購入数及び使用数を示すデータを記憶する。図示する例では、購入ライセンステーブル620aは、ユーザを特定する識別子であるユーザIDと、アプリケーションプログラム1100を特定するアプリケーションIDと、ユーザが購入したライセンス数を示す購入ライセンスと、PLC100に登録されたライセンス数を示す使用ライセンスとを含む。   The license data storage unit 620 shown in FIG. 1 stores a purchase license table 620a as shown in FIG. The purchase license table 620a stores data indicating the number of purchased licenses and the number of used licenses for each user. In the illustrated example, the purchase license table 620a has a user ID that is an identifier that identifies a user, an application ID that identifies the application program 1100, a purchase license that indicates the number of licenses that the user has purchased, and a license registered in the PLC 100. And a usage license indicating the number.

例えば、ユーザIDが“2019002”であるユーザは、“アプリケーション1001”の3ライセンス購入しているが、購入した全てのライセンス分のアプリケーションプログラム1100を使用していない。さらに、このユーザは、“アプリケーション1002”を1ライセンス、“アプリケーション1003”を4ライセンス購入しており、購入した全てのライセンス分のアプリケーションプログラム1100を使用している。   For example, the user whose user ID is “2011002” has purchased three licenses of “application 1001”, but has not used the application programs 1100 for all the purchased licenses. Further, this user has purchased one license for the “application 1002” and four licenses for the “application 1003”, and is using the application programs 1100 for all the purchased licenses.

さらに、図1に示すライセンスデータ記憶部620は、図8に示すようなライセンス登録テーブル620bを格納する。ライセンス登録テーブル620bは、PLC100に発行されたライセンスキー1200に関するデータを記憶する。ライセンス登録テーブル620bは、ユーザとアプリケーションプログラム1100との組み合わせ毎に、PLC100に発行されたライセンスキー1200を特定するデータを記憶する。   Further, the license data storage unit 620 shown in FIG. 1 stores a license registration table 620b as shown in FIG. The license registration table 620b stores data regarding the license key 1200 issued to the PLC 100. The license registration table 620b stores data that specifies the license key 1200 issued to the PLC 100 for each combination of the user and the application program 1100.

図示する例では、ライセンス登録テーブル620bは、ユーザを特定する識別子であるユーザIDと、アプリケーションプログラム1100を特定するアプリケーションIDと、発行されたライセンスキーと、PLC100の識別子とを含む。   In the illustrated example, the license registration table 620b includes a user ID that is an identifier that identifies a user, an application ID that identifies the application program 1100, an issued license key, and an identifier of the PLC 100.

例えば、アプリケーションプログラムを開発・販売するメーカにおいてライセンス管理サーバ600を管理する管理者が、購入ライセンステーブル620a及びライセンス登録テーブル620bをライセンスデータ記憶部620に格納する。ライセンスデータ記憶部620の機能は、図2に示すメモリ61により実現される。   For example, an administrator who manages the license management server 600 in a manufacturer who develops and sells application programs 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.

図1に示すライセンス管理部630は、ライセンス管理ツール500からライセンス発行要求を受信すると、ライセンスキー1200を発行する。   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.

まず、ライセンス管理部630は、ライセンス発行の可否を判別する。具体的には、ライセンス管理部630は、アプリケーション適合テーブル610aを参照して、受信したライセンス発行要求に含まれているPLC100の識別子から特定されるPLC100の機種が、指定されたアプリケーションプログラム1100を実行できるか否かを判別する。PLC100の機種を示す情報は、PLC100の識別子であるシリアルコードに含まれており、この情報からライセンス管理部630はPLC100の機種を特定することができる。   First, the license management unit 630 determines whether a license can be issued. Specifically, the license management unit 630 refers to the application compatibility table 610a, and the model of the PLC 100 specified by the identifier of the PLC 100 included in the received license issuance request executes the designated application program 1100. Determine if it is possible. The information indicating the model of the PLC 100 is included in the serial code that is the identifier of the PLC 100, and the license management unit 630 can identify the model of the PLC 100 from this information.

続いて、ライセンス管理部630は、購入ライセンステーブル620aを参照して、ライセンス発行要求に含まれるユーザIDを有するユーザが、指定されたアプリケーションプログラム1100のライセンスを購入済みであるか否かを判別する。ユーザがライセンスを購入済みである場合、ライセンス管理部630は、未使用のライセンスがあるか否かを判別する。   Next, the license management unit 630 refers to the purchase license table 620a and determines whether or not the user having the user ID included in the license issuance request has purchased the license of the designated application program 1100. . If the user has already purchased a license, the license management unit 630 determines whether or not there is an unused license.

ライセンス管理部630は、ユーザがライセンスを購入済み、かつ、未使用のライセンスがある場合、ライセンスキー1200の発行が可能であると判別する。よって、ライセンス管理部630は、図5に示すようなライセンスキー1200を生成する。   The license management unit 630 determines that the license key 1200 can be issued when the user has purchased a license and has an unused license. Therefore, the license management unit 630 generates a license key 1200 as shown in FIG.

ライセンス管理部630は、例えば、ユーザIDをシードとして乱数を生成し、生成した乱数にアプリケーションIDを付加した値を、ライセンスコード1200aにセットする。ライセンス管理部630は、装置ID1200bに、ライセンス発行要求に含まれているPLC100の識別子をセットする。ライセンス管理部630は、移行カウンタ1200cには、初期値、例えば、“0”をセットする。ライセンス管理部630は、無効化フラグ1200dに、ライセンスキー1200が有効なキーであることを示す値として、“0”をセットする。ライセンス管理部630は、このようにして生成したライセンスキー1200をライセンス管理ツール500に送信する。   The license management unit 630, for example, 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 to the license code 1200a. The license management unit 630 sets the device ID 1200b to the identifier of the PLC 100 included in the license issuance request. The license management unit 630 sets an initial value, for example, “0” in the migration counter 1200c. The license management unit 630 sets “0” in the invalidation flag 1200d as a value indicating that the license key 1200 is a valid key. The license management unit 630 transmits the license key 1200 thus generated to the license management tool 500.

その後、ライセンス管理部630は、ライセンス登録テーブル620bに、ライセンス発行要求に含まれていたユーザID、アプリケーションID、及びPLC100の識別子と、発行したライセンスキー1200とを登録する。   After that, the license management unit 630 registers the user ID, the application ID, the identifier of the PLC 100 included in the license issuance request, and the issued license key 1200 in the license registration table 620b.

一方、ライセンス管理部630は、PLC100の機種が、指定されたアプリケーションプログラム1100を実行できない、あるいは、ユーザがライセンスを購入済みでない、あるいは、未使用のライセンスがない場合、ライセンスキー1200の発行が不可能であると判別する。この場合、ライセンス管理部630は、ライセンス管理ツール500にライセンスキー1200を発行できない旨を通知する。ライセンス管理部630の機能は、図2に示すCPU63がライセンス管理プログラム611を実行することにより実現される。   On the other hand, if the model of PLC 100 cannot execute the designated application program 1100, the user has not purchased a license, or there is no unused license, the license management unit 630 fails to issue the license key 1200. 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.

また、ライセンス管理部630は、ライセンス管理ツール500から、PLC100のユーザを識別するユーザIDと、移行先のPLC100に登録されたライセンスキー1200と、移行先のPLC100の識別子とを受信すると、ライセンス登録テーブル620bを更新する。具体的には、ライセンス管理部630は、ライセンス登録テーブル620bのデータのうち、受信したライセンスキー1200と識別子により特定されるデータを、受信したライセンスキー1200とPLC100の識別子とで更新する。その後、ライセンス管理部630は、ライセンス管理ツール500にライセンス登録テーブル620bの更新が完了した旨を示す更新完了通知を送信する。   Further, when the license management unit 630 receives from the license management tool 500 the user ID for identifying the user of the PLC 100, the license key 1200 registered in the transfer destination PLC 100, and the identifier of the transfer destination PLC 100, the license registration is performed. The table 620b is updated. Specifically, the license management unit 630 updates, among the data of the license registration table 620b, the data specified by the received license key 1200 and the identifier with the received license key 1200 and the identifier of the PLC 100. 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.

(ライセンスキーの初回の登録)
続いて、ライセンスキー1200の初回の登録処理を説明する。まず、ユーザは、通信ケーブル701により、ライセンス管理ツール500とPLC101とを接続する。ユーザは、ライセンス管理ツール500の入力装置54を操作してメニュー画面を開く。ユーザの操作に応答して、CPU56は、表示装置55に図9に示すようなメニュー画面を表示する。ここで、ユーザが「ライセンスキーの登録」を選択したとする。
(First time registration of license key)
Next, the initial registration process of the license key 1200 will be described. First, the user connects the license management tool 500 and the PLC 101 with the communication cable 701. The user operates the input device 54 of the license management tool 500 to open the menu screen. In response to the user's operation, the CPU 56 displays the menu screen as shown in FIG. 9 on the display device 55. Here, it is assumed that the user selects “register license key”.

CPU56はライセンス管理プログラム511を実行することにより、ライセンス登録部520として機能する。図10に示すように、まず、ライセンス登録部520は、PLC101に識別子を要求する(ステップS11)。これに応答して、PLC101のライセンス送受信部150が識別子をライセンス管理ツール500に送信したとする。ライセンス登録部520は、PLC101から識別子を受信すると(ステップS12)、図11Aに示すようなアプリケーションプログラムの選択画面を表示する。ここで、ライセンス登録部520は、図1に示す購入データ記憶部510に格納されている購入済みのアプリケーションプログラム1100のうちいずれかをユーザが選択することができる画面を表示する。ここで、ユーザが所望のアプリケーションプログラムを選択し、「登録」ボタンを押したとする。   The CPU 56 functions as the license registration unit 520 by executing the license management program 511. As shown in FIG. 10, first, the license registration unit 520 requests an identifier from the PLC 101 (step S11). In response to this, assume that the license transmitting/receiving unit 150 of the PLC 101 transmits the identifier to the license management tool 500. Upon receiving the identifier from the PLC 101 (step S12), the license registration unit 520 displays an application program selection screen as shown in FIG. 11A. Here, the license registration unit 520 displays a screen that allows the user to select any of the purchased application programs 1100 stored in the purchase data storage unit 510 shown in FIG. Here, it is assumed that the user selects a desired application program and presses the "register" button.

よって、図10に示すように、ライセンス登録部520は、アプリケーションプログラムの選択を受け付け(ステップS13)、ライセンス発行要求をライセンス管理サーバ600に送信する(ステップS14)。ライセンス発行要求には、PLC100のユーザのユーザIDと、PLC100の識別子と、アプリケーションプログラム1100を特定するアプリケーションIDと、が含まれている。   Therefore, as shown in FIG. 10, the license registration unit 520 receives the selection of the application program (step S13), and transmits a license issuance request to the license management server 600 (step S14). The license issuance request includes the user ID of the user of the PLC 100, the identifier of the PLC 100, and the application ID that identifies the application program 1100.

その後、ライセンス登録部520は、ライセンス管理サーバ600から、ライセンスキー1200を受信した場合、ライセンス発行が成功したと判別する(ステップS15;Yes)。ライセンス登録部520は、ライセンスキー1200をPLC101に送信し(ステップS16)、図11Bに示すような、登録完了画面を表示する。   After that, when the license registration unit 520 receives the license key 1200 from the license management server 600, the license registration unit 520 determines that the license issuance is 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.

一方、ライセンス登録部520は、ライセンス管理サーバ600からライセンスキー1200を発行できない旨の通知を受信した場合、ライセンス発行が失敗したと判別し(ステップS15;No)、例えば、図11Cに示すような画面を表示してライセンス発行が失敗した旨を通知する(ステップS17)。   On the other hand, when the license registration unit 520 receives a notification from the license management server 600 that the license key 1200 cannot be issued, the license registration unit 520 determines that the license issuance has failed (step S15; No), for example, as shown in FIG. 11C. A screen is displayed to notify that the license issuance has failed (step S17).

ライセンスキー1200の発行に関するライセンス管理サーバ600側の処理は以下の通りである。図2に示すCPU63は、ライセンス管理プログラム611を実行することにより、図1に示すライセンス管理部630として機能する。   The process 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.

図12に示すように、ライセンス管理部630は、ライセンス管理ツール500からライセンス発行要求を受信すると(ステップS21;Yes)、アプリケーション適合テーブル610aを参照して、PLC100が、指定されたアプリケーションプログラム1100を実行することができるか否かを判別する(ステップS22)。ライセンス管理部630は、PLC100が指定されたアプリケーションプログラム1100を実行することができると判別すると(ステップS22;Yes)、ステップS23の処理を実行する。   As illustrated in FIG. 12, 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 compatibility table 610a and causes the PLC 100 to execute the specified application program 1100. It is determined whether 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.

一方、ライセンス管理部630は、PLC100が指定されたアプリケーションプログラム1100を実行することができないと判別すると(ステップS22;No)、ライセンス発行が失敗した旨をライセンス管理ツール500に通知する(ステップS27)。   On the other hand, when the license management unit 630 determines that the PLC 100 cannot execute the designated application program 1100 (step S22; No), it notifies the license management tool 500 that the license issuance has failed (step S27). .

ステップS23では、ライセンス管理部630は、購入ライセンステーブル620aを参照して、PLC100のユーザが、そのアプリケーションプログラム1100の使用可能なライセンスを有しているか否かを判別する(ステップS23)。ライセンス管理部630は、PLC100のユーザが、そのアプリケーションプログラム1100の使用可能なライセンスを有していると判別すると(ステップS23;Yes)、ライセンスキー1200を生成する(ステップS24)。   In step S23, the license management unit 630 refers to the purchase license table 620a and determines whether the user of the PLC 100 has a usable license for the application program 1100 (step S23). When the license management unit 630 determines that the user of the PLC 100 has the usable license of the application program 1100 (step S23; Yes), the license management unit 630 generates the license key 1200 (step S24).

ライセンス管理部630は、生成したライセンスキー1200をライセンス管理ツール500に送信する(ステップS25)。その後、ライセンス管理部630は、ライセンスキー1200の情報を、図8に示すライセンス登録テーブル620bに登録する(ステップS26)。   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).

一方、ライセンス管理部630は、PLC100のユーザが、アプリケーションプログラム1100を購入していない、あるいは、購入しているものの、全てのライセンスを使用中である場合には(ステップS23;No)、ライセンス発行が失敗した旨をライセンス管理ツール500に通知する(ステップS27)。以上が、ライセンスの初回の登録時におけるライセンス管理サーバ600側の処理である。   On the other hand, if the user of the PLC 100 has not purchased the application program 1100 or has purchased the application program 1100 but all the licenses are being used (step S23; No), the license management unit 630 issues the license. Is notified to the license management tool 500 (step S27). The above is the processing on the license management server 600 side when the license is first registered.

(ライセンスキーの移行)
続いて、ライセンスキー1200の移行処理を説明する。以下の説明においては、PLC101が有するライセンスキー1200をPLC102に移行する例を説明する。ユーザは、通信ケーブル701により、ライセンス管理ツール500と移行元のPLC101とを接続する。なお、ライセンス管理ツール500は、ネットワーク702を介して、ライセンス管理サーバ600に接続されている必要はない。
(Transition of license key)
Next, the transfer process of the license key 1200 will be described. In the following description, an example in which the license key 1200 of the PLC 101 is transferred to the PLC 102 will be described. The user connects the license management tool 500 and the migration source PLC 101 with the communication cable 701. The license management tool 500 does not need to be connected to the license management server 600 via the network 702.

ユーザは、ライセンス管理ツール500の入力装置54を操作してメニュー画面を開く。ユーザの操作に応答して、CPU56は、表示装置55に図9に示すようなメニュー画面を表示する。ここで、ユーザが「ライセンスキーの移行」を選択したとする。CPU56は、ライセンス管理プログラム511を実行することにより、図1に示すライセンス移行部530として機能する。   The user operates the input device 54 of the license management tool 500 to open the menu screen. In response to the user's operation, the CPU 56 displays a menu screen as shown in FIG. 9 on the display device 55. Here, it is assumed that the user selects “transfer of license key”. The CPU 56 functions as the license transfer unit 530 shown in FIG. 1 by executing the license management program 511.

図13に示すように、ライセンス移行部530は、移行元のPLC101にライセンス登録についての情報を要求する(ステップS31)。これに応答して、PLC101のライセンス送受信部150は、ライセンス登録の情報として、ライセンスキー記憶部120に格納されているライセンスキー1200の値の一覧と、PLC101の識別子とをライセンス管理ツール500に送信する。ライセンス移行部530は、ライセンス登録についての情報を受信すると(ステップS32)、受信したデータに基づいて、図15Aに示すような、移行するアプリケーションプログラムの選択画面を表示する。   As shown in FIG. 13, the license transfer unit 530 requests the transfer source PLC 101 for information about license registration (step S31). In response to this, 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 the identifier of the PLC 101 to the license management tool 500 as license registration information. To do. Upon receiving the information about the license registration (step S32), the license transfer unit 530 displays the selection screen of the application program to be transferred as shown in FIG. 15A based on the received data.

ユーザがライセンスを移行するアプリケーションプログラム1100を選択すると(ステップS33;Yes)、ライセンス移行部530は、選択されたアプリケーションプログラム1100のライセンスキー1200の取り出しを移行元のPLC101に要求する(ステップS34)。これに応答して、PLC101のライセンス送受信部150が、指定されたライセンスキー1200を取り出して、ライセンスキー1200をライセンス管理ツール500に送信したとする。   When the user selects the application program 1100 to which the license is transferred (step S33; Yes), the license transfer unit 530 requests the transfer source PLC 101 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 transmitting/receiving unit 150 of the PLC 101 takes out the designated license key 1200 and transmits the license key 1200 to the license management tool 500.

ライセンス移行部530は、移行元のPLC101からライセンスキー1200を受信すると(ステップS35;Yes)、受信したライセンスキー1200をコピーし、コピーしたライセンスキー1200の無効化フラグ1200dに“1”をセットして、無効化キーを生成する。(ステップS36)。   When the license transfer unit 530 receives the license key 1200 from the transfer source PLC 101 (step S35; Yes), the license transfer unit 530 copies the received license key 1200 and sets the invalidation flag 1200d of the copied license key 1200 to "1". To generate an invalidation key. (Step S36).

ライセンス移行部530は、無効化キーを移行元のPLC101に送信する(ステップS37)。これに応答して、PLC101のライセンス送受信部150は、受信した無効化キーを無効化キー記憶部130に格納する。その後、ライセンス移行部530は、ステップS38の処理を実行する。   The license transfer unit 530 transmits the invalidation key to the transfer-source PLC 101 (step S37). In response to this, the license transmitting/receiving 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.

図14に示すように、ライセンス移行部530は、ユーザに接続の切り替えを指示する(ステップS38)。ライセンス移行部530は、図15Bに示すような画面を表示して、移行先のPLC102に接続することを指示する。ユーザが、移行元のPLC101から通信ケーブル701を取り外し、ライセンス管理ツール500とPLC101との接続を切り、その後、通信ケーブル701を移行先のPLC102に接続したものとする。よって、ライセンス管理ツール500は、移行先のPLC102と通信可能となる。   As shown in FIG. 14, 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 to connect to the transfer destination 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 PLC 102.

図14に示すように、ライセンス移行部530は、移行先のPLC102に識別子を要求する(ステップS39)。これに応答して、PLC102のライセンス送受信部150は、識別子をライセンス管理ツール500に送信する。   As shown in FIG. 14, the license transfer unit 530 requests an identifier from the transfer destination PLC 102 (step S39). In response to this, the license transmitting/receiving unit 150 of the PLC 102 transmits the identifier to the license management tool 500.

ライセンス移行部530は、移行先のPLC102から識別子を受信すると(ステップS40)、移行元のPLC101から受信したライセンスキー1200から新しいライセンスキー1200を再生成する(ステップS41)。具体的には、ライセンス送受信部150は、図5に示すような、ライセンスキー1200の装置ID1200bとしてセットされている移行元のPLC101の識別子を削除し、移行先のPLC102から取得した識別子を新たな装置ID1200bとしてライセンスキー1200にセットする。さらに、ライセンス移行部530は、ライセンスキー1200の移行カウンタ1200cの値を1つ増やす。   Upon receiving the identifier from the transfer destination PLC 102 (step S40), the license transfer unit 530 regenerates a new license key 1200 from the license key 1200 received from the transfer source PLC 101 (step S41). Specifically, the license transmitting/receiving unit 150 deletes the identifier of the transfer source PLC 101 set as the device ID 1200b of the license key 1200 as shown in FIG. 5, and replaces the identifier acquired from the transfer destination PLC 102 with a new one. The license key 1200 is set as the device ID 1200b. Further, the license transfer unit 530 increments the value of the transfer counter 1200c of the license key 1200 by one.

図14に示すように、ライセンス移行部530は、再生成したライセンスキー1200を移行先のPLC102に送信する(ステップS42)。これに応答して、PLC102のライセンス送受信部150は、受信したライセンスキー1200をライセンスキー記憶部120に記憶する。   As shown in FIG. 14, the license transfer unit 530 transmits the regenerated license key 1200 to the transfer destination PLC 102 (step S42). In response to this, the license transmitting/receiving unit 150 of the PLC 102 stores the received license key 1200 in the license key storage unit 120.

ライセンスキー1200の移行が完了すると、図16Aに示すように、ライセンス移行部530は、ライセンスキーの情報をライセンス管理サーバ600に送信する(ステップS51)。ライセンスキーの情報は、PLC100のユーザを識別するユーザIDと、移行先のPLC102に送信したライセンスキー1200と、PLC102の識別子と、を含む。ライセンス移行部530は、ライセンス管理サーバ600から、更新完了報告を受信すると(ステップS52)、図15Cに示すような移行完了画面を表示する。   When the transfer of the license key 1200 is completed, the license transfer unit 530 transmits information on the license key to the license management server 600 as shown in FIG. 16A (step S51). The license key information includes a user ID for identifying the user of the PLC 100, the license key 1200 transmitted to the transfer destination PLC 102, and the PLC 102 identifier. Upon receiving the update completion report from the license management server 600 (step S52), the license migration unit 530 displays a migration completion screen as shown in FIG. 15C.

図16Bに示すように、ライセンス管理サーバ600のライセンス管理部630は、ライセンス管理ツール500からライセンスキーの情報を受信すると(ステップS61)、ライセンス登録テーブル620bのデータを更新する(ステップS62)。具体的には、ライセンス管理部630は、ライセンス登録テーブル620bのデータのうち、受信したユーザIDにより特定されるデータを、受信したライセンスキー1200と識別子とで更新する。その後、ライセンス管理部630は、ライセンス管理ツール500にライセンス登録テーブル620bの更新が完了した旨を示す更新完了通知を送信する(ステップS63)。   As shown in FIG. 16B, 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 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).

以上説明したように、実施の形態に係る構成においては、ライセンス管理ツール500が、外部ネットワークに接続されていない2以上のPLC100の間でライセンスキー1200を移行する。ライセンス管理ツール500は、移行元のPLC101から取得したライセンスキー1200からPLC101の識別子を削除して、移行先のPLC102の識別子をライセンスキー1200にセットすることにより、ライセンスキー1200を再生成し、新しいライセンスキー1200を移行先のPLC102に供給する。このような構成を備えることで、ライセンス管理ツール500は、ライセンス管理サーバと通信することができないスタンドアロンの装置間でライセンスを移行することができる。   As described above, in the configuration according to the embodiment, 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 regenerates the license key 1200 by deleting the identifier of the PLC 101 from the license key 1200 acquired from the PLC 101 of the transfer source and setting the identifier of the PLC 102 of the transfer destination in the license key 1200. The license key 1200 is supplied to the PLC 102 of the transfer destination. With such a configuration, the license management tool 500 can transfer a license between stand-alone devices that cannot communicate with the license management server.

実施の形態においては、ライセンス送受信部150が、受信したライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが、無効化キー記憶部130に格納されている場合に、ライセンスキー1200を受け付けない例を説明した。しかし、これに限られない。   In the embodiment, when the license transmission/reception unit 150 stores an invalidation key in which the received license key 1200 except the invalidation flag 1200 d is stored in the invalidation key storage unit 130, the license key 1200. The example that does not accept is explained. However, it is not limited to this.

例えば、ライセンス管理ツール500は、PLC100が無効化キーを有している場合には、PLC100にライセンスキー1200を送信しないようにしてもよい。具体的には、ライセンス管理ツール500の再生成部533が、再生成したライセンスキー1200を移行先のPLC100に送信する前に、PLC100にPLC100が有している無効化キーを要求してもよい。これに応答して、PLC100は、無効化キー記憶部130に格納されているか無効化キーの値の一覧をライセンス管理ツール500に送信するものとする。再生成部553は、PLC100から受信した無効化キーのうちに、再生成したライセンスキー1200の無効化フラグ1200dを除く部分が一致する無効化キーが存在する場合には、再生成したライセンスキー1200を、移行先のPLC100に送信しないようにしてもよい。   For example, the license management tool 500 may not transmit the license key 1200 to the PLC 100 when the PLC 100 has an invalidation key. Specifically, the regenerating unit 533 of the license management tool 500 may request the PLC 100 for an invalidation key that the PLC 100 has before transmitting the regenerated license key 1200 to the PLC 100 of the transfer destination. .. In response to this, the PLC 100 transmits to the license management tool 500 a list of values of the revocation key stored in the revocation key storage unit 130. When the revocation unit 553 receives the revocation license key 1200 from the revocation key received from the PLC 100, if the revocation license key 1200 has a revocation license key 1200 that has a matching portion other than the revocation flag 1200d. May not be transmitted to the PLC 100 of the transfer destination.

実施の形態においては、ライセンス管理ツール500は、移行先のPLC100に新しいライセンスキー1200を供給する前に、移行元のPLC100に無効化キーを送信する例を説明したが、これに限られない。   In the embodiment, the license management tool 500 has described the example in which the deactivation key is transmitted to the transfer source PLC 100 before supplying the new license key 1200 to the transfer destination PLC 100, but the present invention is not limited to this.

例えば、ライセンス管理ツール500は、移行元のPLC100からライセンスキー1200を取得し、ライセンスキー1200をコピーする、あるいは、ライセンスキー1200から無効化キーを生成する。ライセンス管理ツール500は、PLC100の接続の切り替えが行われた後、新しいライセンスキー1200を生成し、移行先のPLC100に新しいライセンスキー1200を送信する。その後、ユーザにより、再度、ライセンス管理ツール500と移行先のPLC100とが接続されると、ライセンス管理ツール500は、無効化キーを移行元のPLC100に送信する。この場合、移行先のPLC100へのライセンスキー1200の登録が完了した後に、移行元のPLC100に無効化キーを提供するので、仮に、新しいライセンスキー1200の移行先のPLC100への登録が失敗した場合には、移行元のPLC100に再度ライセンスキー1200を戻すことも可能である。   For example, the license management tool 500 acquires the license key 1200 from the transfer source PLC 100 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 transmits the new license key 1200 to the PLC 100 of the transfer destination. After that, when the user connects the license management tool 500 and the PLC 100 of the migration destination again, the license management tool 500 sends the deactivation key to the PLC 100 of the migration source. In this case, since the deactivation key is provided to the migration source PLC 100 after the registration of the license key 1200 to the migration destination PLC 100 is completed, if the registration of the new license key 1200 to the migration destination PLC 100 fails. It is also possible to return the license key 1200 to the transfer source PLC 100 again.

実施の形態では、移行元のPLC101の識別子が第1識別子として、ライセンスキー1200に含まれており、新たにライセンスキー1200を生成する場合には、ライセンスキー1200から移行元のPLC101の識別子を取り出し、その後、移行先のPLC102の識別子が第2識別子としてライセンスキー1200に追加する例を説明した。しかし、第1識別子、第2識別子として、移行元のPLC100の識別子、移行先のPLC100の識別子以外を使用してもよい。例えば、PLC101の識別子から生成したハッシュ値を第1識別子としてもよく、PLC102の識別子から生成したハッシュ値を第2識別子としてもよい。   In the embodiment, the identifier of the transfer source PLC 101 is included in the license key 1200 as the first identifier, and when a new license key 1200 is generated, the identifier of the transfer source PLC 101 is extracted from the license key 1200. After that, an example in which the identifier of the PLC 102 of the transfer destination is added to the license key 1200 as the second identifier has been described. However, as the first identifier and the second identifier, an identifier other than the identifier of the PLC 100 of the migration source and the PLC 100 of the migration destination may be used. For example, the hash value generated from the identifier of PLC 101 may be the first identifier, and the hash value generated from the identifier of PLC 102 may be the second identifier.

実施の形態においては、ライセンス管理ツール500は、ライセンスキー1200の移行の処理に続けて、図16Aに示すライセンス情報更新処理を実行したが、これに限られない。例えば、ライセンス管理ツール500は、ライセンス情報更新処理を、ライセンスキー1200の移行の処理とは別個に実行してもよい。例えば、ライセンス管理ツール500が、ネットワーク702に常時接続されていないことがある。このような場合には、ライセンス管理ツール500は、ネットワーク702に接続されると、図16Aに示すライセンス情報更新処理を実行するようにしてもよい。   In the embodiment, the license management tool 500 executes the license information update process shown in FIG. 16A subsequent to the process of migrating the license key 1200, but it is not limited to this. For example, the license management tool 500 may execute the license information update process separately from the process of transferring the license key 1200. For example, 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.

実施の形態においては、ライセンス管理ツール500が、通信ケーブル701を介してPLC100と通信する例を説明したが、ライセンス管理ツール500とPLC100とは無線通信を行ってもよい。   In the embodiment, the example in which the license management tool 500 communicates with the PLC 100 via the communication cable 701 has been described, but the license management tool 500 and the PLC 100 may wirelessly communicate with each other.

上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。   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 as a recording medium for recording the above program.

本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。   The present invention allows various embodiments and modifications without departing from the broad spirit and scope. Further, the above-described embodiments are for explaining the present invention, and do not limit the scope of the present invention. That is, the scope of the present invention is indicated by the scope of the claims, not the embodiments. Various modifications made within the scope of the claims and the scope of the invention equivalent thereto are considered to be within the scope of the present invention.

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 無効化フラグ 1 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, 531 key acquisition unit, 532 identifier acquisition unit, 533 re-generation unit, 534 invalidation key generation unit, 600 License management server, 610 application data storage unit, 610a application compatibility 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 to 1203 (1200) license key, 1200a license code, 1200b device ID, 1200c migration counter, 1200d invalidation flag

Claims (10)

アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上の装置の間で移行するライセンス移行ツールであって、
前記ライセンスキーは、前記ライセンスキーが登録されている装置を識別する識別子を含み、
ライセンスの移行元の前記装置である第1装置から、前記ライセンスキーを取得するキー取得手段と、
ライセンスの移行先の前記装置である第2装置から、前記第2装置を識別する第2識別子を取得する識別子取得手段と、
前記第1装置から取得した前記ライセンスキーから、前記第1装置を識別する第1識別子を削除して、前記第2装置の前記第2識別子を前記識別子として追加して、新しい前記ライセンスキーを生成し、前記第2装置に新しい前記ライセンスキーを供給する再生成手段と、
を備えるライセンス移行ツール。
A license transfer tool for transferring a license key indicating that the application program is licensed between two or more devices not connected to an external network,
The license key includes an identifier that identifies a device with which the license key is registered,
Key acquisition means for acquiring the license key from the first device, which is the device from which the license is transferred,
Identifier acquisition means for acquiring a second identifier for identifying the second device from a second device which is the device to which the license is transferred,
From the license key obtained from the first device, the first identifier for identifying the first device is deleted, and the second identifier of the second device is added as the identifier to generate a new license key. Regenerating means for supplying the new license key to the second device,
License transfer tool with.
前記ライセンスキーは、前記アプリケーションプログラムの1ライセンス毎に割り振られた識別コードと、前記ライセンスキーが登録されている前記装置を識別する前記識別子と、前記ライセンスキーの移行回数を示す情報と、を含む、
請求項1に記載のライセンス移行ツール。
The license key includes an identification code assigned to each license of the application program, the identifier for identifying the device in which the license key is registered, and information indicating the number of times the license key has been transferred. ,
The license transfer tool according to claim 1.
前記ライセンスキーを有する前記第2装置は、前記ライセンスキーに含まれる前記識別子が、前記第2装置を識別する前記第2識別子と一致する場合に、前記アプリケーションプログラムを実行する、
請求項1または2に記載のライセンス移行ツール。
The second device having the license key executes the application program when the identifier included in the license key matches the second identifier for identifying the second device,
The license transfer tool according to claim 1.
前記再生成手段が、新しい前記ライセンスキーを前記第2装置に供給した後に、前記第1装置に前記ライセンスキーを再度登録することができないことを示す無効化キーを生成し、前記第1装置に前記無効化キーを供給する無効化キー生成手段、
を備える請求項1または3に記載のライセンス移行ツール。
The regenerating unit generates an invalidation key indicating that the license key cannot be registered again in the first device after supplying the new license key to the second device, Invalidation key generation means for supplying the invalidation key,
The license transfer tool according to claim 1, further comprising:
前記無効化キー生成手段は、前記第1装置から取得した前記ライセンスキーを複製し、複製したキーに、そのキーが無効であることを示す値を設定して、前記無効化キーを生成する、
請求項4に記載のライセンス移行ツール。
The revocation key generation means duplicates the license key acquired from the first device, sets a value indicating that the key is invalid to the duplicated key, and generates the revocation key.
The license transfer tool according to claim 4.
前記第2装置は、前記無効化キーを有している場合、前記無効化キーと対応する前記ライセンスキーを受け付けない、
請求項4または5に記載のライセンス移行ツール。
If the second device has the revocation key, the second device does not accept the license key corresponding to the revocation key,
The license transfer tool according to claim 4.
前記再生成手段は、前記第2装置が新しい前記ライセンスキーに対応する前記無効化キーを有している場合、新しい前記ライセンスキーを前記第2装置に供給しない、
請求項4または5に記載のライセンス移行ツール。
The regeneration means does not supply the new license key to the second device if the second device has the revocation key corresponding to the new license key;
The license transfer tool according to claim 4.
前記装置は、プログラマブルロジックコントローラである、
請求項1から7のいずれか1項に記載のライセンス移行ツール。
The device is a programmable logic controller,
The license transfer tool according to any one of claims 1 to 7.
アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを、外部ネットワークに接続されていない2以上の装置の間で移行するコンピュータに、
ライセンスの移行元の前記装置である第1装置から、前記ライセンスキーを取得させ、
ライセンスの移行先の前記装置である第2装置から、前記第2装置を識別する第2識別子を取得させ、
前記第1装置から取得した前記ライセンスキーから、前記第1装置を識別する第1識別子を削除して、前記第2装置の前記第2識別子を追加して、新しい前記ライセンスキーを生成させ、
前記第2装置に新しい前記ライセンスキーを供給させる、
プログラム。
A license key indicating that the application program is licensed is transferred to a computer that migrates between two or more devices that are not connected to the external network.
Obtain the license key from the first device, which is the device from which the license is transferred,
A second identifier for identifying the second device is acquired from the second device which is the device to which the license is transferred,
Deleting the first identifier for identifying the first device from the license key obtained from the first device, adding the second identifier of the second device, and generating a new license key;
Causing the second device to supply the new license key,
program.
アプリケーションプログラムの使用が許諾されていることを示すライセンスキーを移行ツールが第1装置から第2装置へ移行するライセンス移行システムであって、
前記第1装置および前記第2装置は、外部ネットワークに接続されておらず、
前記ライセンスキーは、前記ライセンスキーが登録されている装置を識別する識別子を含み、
前記移行ツールは、
ライセンスの移行元の前記第1装置から、前記ライセンスキーを取得するキー取得手段と、
ライセンスの移行先の前記第2装置から、前記第2装置を識別する第2識別子を取得する識別子取得手段と、
前記第1装置から取得した前記ライセンスキーから、前記第1装置を識別する第1識別子を削除して、前記第2装置の前記第2識別子を前記識別子として追加して、新しい前記ライセンスキーを生成し、前記第2装置に新しい前記ライセンスキーを供給する再生成手段と、
を備え、
前記第1装置は、
前記ライセンスキーを記憶するライセンスキー記憶手段と、
前記移行ツールから前記ライセンスキーを要求されると、前記移行ツールに前記ライセンスキー記憶手段が記憶する前記ライセンスキーを送信する送信手段と、
を備え、
前記第2装置は、
前記移行ツールから前記識別子を要求されると、前記移行ツールに前記識別子を送信する識別子送信手段と、
前記移行ツールから供給された前記ライセンスキーを前記第2装置が有する前記ライセンスキー記憶手段に格納する格納手段と、
を備える、
ライセンス移行システム。
A license migration system in which a migration tool migrates a license key indicating that the application program is licensed from the first device to the second device,
The first device and the second device are not connected to an external network,
The license key includes an identifier that identifies a device with which the license key is registered,
The migration tool is
Key acquisition means for acquiring the license key from the first device which is the license transfer source;
Identifier acquiring means for acquiring a second identifier for identifying the second device from the second device to which the license is transferred,
From the license key obtained from the first device, the first identifier for identifying the first device is deleted, and the second identifier of the second device is added as the identifier to generate a new license key. Regenerating means for supplying the new license key to the second device,
Equipped with
The first device is
License key storage means for storing the license key;
Transmitting means for transmitting the license key stored in the license key storage means to the migration tool when the license key is requested from the migration tool;
Equipped with
The second device is
Identifier transmitting means for transmitting the identifier to the migration tool when the identifier is requested from the migration tool,
Storage means for storing the license key supplied from the migration tool in the license key storage means of the second device;
With
License transfer system.
JP2019568127A 2019-03-27 2019-03-27 License transfer tool, program, and license transfer system Active JP6701463B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/013379 WO2020194604A1 (en) 2019-03-27 2019-03-27 License transfer tool, program, and license transfer system

Publications (2)

Publication Number Publication Date
JP6701463B1 true JP6701463B1 (en) 2020-05-27
JPWO2020194604A1 JPWO2020194604A1 (en) 2021-04-08

Family

ID=70776090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019568127A Active JP6701463B1 (en) 2019-03-27 2019-03-27 License transfer tool, program, and license transfer system

Country Status (4)

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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651975A (en) * 1992-07-30 1994-02-25 Fuji Xerox Co Ltd Software managing system
JP2005327196A (en) * 2004-05-17 2005-11-24 Canon Inc License management device, its control method, program, and storage medium
JP2009169782A (en) * 2008-01-18 2009-07-30 Hitachi Ltd Playback license management method for receiver and distribution device
JP2010191691A (en) * 2009-02-18 2010-09-02 Konica Minolta Business Technologies Inc License management system, license management computer, license management method, and license management program
JP2015026159A (en) * 2013-07-25 2015-02-05 株式会社バンダイナムコゲームス Server system and processing method for server system
JP2018026087A (en) * 2016-08-05 2018-02-15 株式会社リコー Information processing system, application introduction method and information processing apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302817A (en) 2003-03-31 2004-10-28 Matsushita Electric Ind Co Ltd License management system
JP4958671B2 (en) * 2007-07-24 2012-06-20 キヤノン株式会社 License management apparatus, license management method, and computer program
JP5136161B2 (en) 2008-03-31 2013-02-06 富士通株式会社 Software license management system, terminal device capable of installing software, license management device, and program
JP5413078B2 (en) * 2009-09-14 2014-02-12 株式会社リコー Device management system, device management device, mediation device, device management method, and device management program
JP6010023B2 (en) * 2011-04-25 2016-10-19 パナソニック株式会社 Recording medium device and controller
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
US10841087B2 (en) * 2015-11-05 2020-11-17 Mitsubishi Electric Corporation Security device, system, and security method
EP3418833B1 (en) * 2017-06-20 2021-04-07 Siemens Aktiengesellschaft Method and assembly for enabling access from a first computer to a virtual machine of a second computer

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651975A (en) * 1992-07-30 1994-02-25 Fuji Xerox Co Ltd Software managing system
JP2005327196A (en) * 2004-05-17 2005-11-24 Canon Inc License management device, its control method, program, and storage medium
JP2009169782A (en) * 2008-01-18 2009-07-30 Hitachi Ltd Playback license management method for receiver and distribution device
JP2010191691A (en) * 2009-02-18 2010-09-02 Konica Minolta Business Technologies Inc License management system, license management computer, license management method, and license management program
JP2015026159A (en) * 2013-07-25 2015-02-05 株式会社バンダイナムコゲームス Server system and processing method for server system
JP2018026087A (en) * 2016-08-05 2018-02-15 株式会社リコー Information processing system, application introduction method and information processing apparatus

Also Published As

Publication number Publication date
WO2020194604A1 (en) 2020-10-01
KR20210109659A (en) 2021-09-06
CN113614716A (en) 2021-11-05
KR102314391B1 (en) 2021-10-19
JPWO2020194604A1 (en) 2021-04-08
CN113614716B (en) 2022-09-13

Similar Documents

Publication Publication Date Title
JP6680022B2 (en) Information processing apparatus, information processing system, information processing method, and program
JP4218451B2 (en) License management system, server device and terminal device
JP5963957B2 (en) Development environment system, development environment device, development environment providing method and program
KR102168392B1 (en) Registry apparatus, agent device, application providing apparatus and corresponding methods
US20160203301A1 (en) License management apparatus, license management method, and license authentication program
JP4260759B2 (en) Device control service providing program, device control service providing system, and device control service providing method
JP2007529835A (en) Method and apparatus for moving or copying rights object between device and portable storage device
JP5395855B2 (en) User terminal, method and system for transmitting digital content
WO2013011902A1 (en) License management device, license management system, license management method, and program
JP5991740B2 (en) License management apparatus, license management method, and program
TW201915753A (en) Data storage apparatus
JP4931554B2 (en) License management system, license management method, and license management program
JP6701463B1 (en) License transfer tool, program, and license transfer system
JP2005284506A (en) Download system, apparatus constituting download system, management station, and removable medium
WO2015136964A1 (en) License information management device, license information management method, and program
JPWO2019159689A1 (en) Electronic devices, information processing devices, information processing methods, programs, and information processing systems
US9363081B2 (en) License administration device and license administration method
WO2014045490A1 (en) License control system, license control method, license application device, and non-transitory computer-readable medium whereupon program is stored
JP5130126B2 (en) License number management device, license number management method, and license number management program
JP2009042925A (en) Content use method, method for determining validity of permanent viewing license, download terminal, server, download system, method for managing content, prorgram, and recording medium
JP6570801B1 (en) CPU unit, programmable logic controller, program, and engineering tool
EP2034420A1 (en) A method and an apparatus for operating right
WO2015194050A1 (en) Industrial equipment production system, industrial equipment production method, program, and information storage medium
JP2024040875A (en) Information consumer electronics and consumer electronics coordination method
JP2008198114A (en) License management device, information processor, license management method and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191209

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191209

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200501

R150 Certificate of patent or registration of utility model

Ref document number: 6701463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250