(57)【要約】  コンピュータ（３００）は、１回のアクティベーションにより、アクティベーションサーバ（４００）から、プログラムを利用するための情報と、当該プログラムを利用できるＰＬＣ（１００）の台数を特定する情報とを取得する。ＰＬＣ（１００）は、コンピュータ（３００）から、当該プログラムをインストールされる。当該情報によって特定される台数は、コンピュータ（３００）がＰＬＣ（１００）に上記プログラムをインストールした台数だけ差し引かれるように、更新される。
2015136964.tif 000002
【特許請求の範囲】
【請求項１】
２台以上の制御機器においてプログラムを有効にするための情報であって、前記２台以上の制御機器の台数および前記プログラムに対応する情報を含むキー情報の入力を受け付けるための入力装置と、
前記入力装置に入力された前記キー情報を、アクティベーションサーバへ送信するための通信装置と、
記憶装置と、
前記通信装置が、前記アクティベーションサーバから、前記２台以上の制御機器において前記プログラムを利用可能にするための情報であるライセンス情報を受信した場合に、前記ライセンス情報を前記記憶装置に記憶するためのコントローラとを備え、
前記ライセンス情報は、前記プログラムを利用可能にするためのデータと、前記２台以上の制御機器の台数を特定するための台数情報とを含む、ライセンス情報管理装置。
【請求項２】
前記コントローラは、
前記制御機器に、前記プログラムを利用可能にするためのデータまたは当該データによって利用可能になったプログラムをインストールし、
前記台数情報を、前記インストールを実行した制御機器の台数を差し引くように更新するように構成されている、請求項１に記載のライセンス情報管理装置。
【請求項３】
前記ライセンス情報管理装置に対して着脱可能な記録媒体と通信するためのメディアドライブをさらに備え、
前記コントローラは、前記メディアドライブに特定の記録媒体が装着されていることを条件として、前記インストールを実行するように構成されている、請求項２に記載のライセンス情報管理装置。
【請求項４】
前記コントローラは、前記特定の記録媒体に、前記プログラムを利用可能にするためのデータおよび前記台数情報を記録するように構成されている、請求項３に記載のライセンス情報管理装置。
【請求項５】
前記コントローラは、
前記記憶装置に、前記特定の記録媒体を特定する情報を記録し、
前記記憶装置に記録されている前記特定の記録媒体を特定する情報と前記記録媒体に記録されている当該記録媒体を特定する情報とが一致し、かつ、前記記憶装置に記録されている台数情報と前記記録媒体に記録されている台数情報とが一致したことを条件として、前記インストールを実行するように構成されている、請求項４に記載のライセンス情報管理装置。
【請求項６】
前記コントローラは、前記制御機器に、前記プログラムを利用可能にするためのデータまたは当該データによって利用可能にあったプログラムがインストールされていないことを条件として、前記インストールを実行するように構成されている、請求項２〜請求項５のいずれか１項に記載のライセンス情報管理装置。
【請求項７】
ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理方法であって、
２台以上の制御機器においてプログラムを有効にするための情報であって、前記２台以上の制御機器の台数および前記プログラムに対応する情報を含むキー情報の入力を受け付けるステップと、
入力された前記キー情報を、アクティベーションサーバへ送信するステップと、
前記アクティベーションサーバから、前記２台以上の制御機器において前記プログラムを利用可能にするための情報であるライセンス情報を受信した場合に、前記ライセンス情報を前記コンピュータの記憶装置に記憶するステップとを備え、
前記ライセンス情報は、前記プログラムを利用可能にするためのデータと、前記２台以上の制御機器の台数を特定するための台数情報とを含む、ライセンス情報管理方法。
【請求項８】
ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理用のプログラムであって、
前記プログラムは、前記コンピュータに、
２台以上の制御機器においてプログラムを有効にするための情報であって、前記２台以上の制御機器の台数および前記プログラムに対応する情報を含むキー情報の入力を受け付けるステップと、
入力された前記キー情報を、アクティベーションサーバへ送信するステップと、
前記アクティベーションサーバから、前記２台以上の制御機器において前記プログラムを利用可能にするための情報であるライセンス情報を受信した場合に、前記ライセンス情報を前記コンピュータの記憶装置に記憶するステップとを実行させ、
前記ライセンス情報は、前記プログラムを利用可能にするためのデータと、前記２台以上の制御機器の台数を特定するための台数情報とを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２以上の制御機器のそれぞれにおいてプログラムを利用するためのライセンス情報を管理するライセンス情報管理装置に関する。
【背景技術】
【０００２】
近年、コンピュータにおいて実行されるプログラムは、ネットワーク経由でダウンロードされたり、ネットワーク経由でダウンロードされたデータによってアクティベート（有効化）されるようになってきている。たとえば、特開２００２−１３２３６８号公報（特許文献１）は、ファームウェアの購入者が新たに格納されるファームウェアのために支払った代金分に相当する台数分の装置についてのみファームウェアのダウンロードを許可する、バージョンアップシステムを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１３２３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１の段落０００９に「同一機種を複数台購入した購入者は、この秘密の番号と装置識別子をサーバヘ送って装置識別子のついたファームウェアプログラムをダウンロードする。購入した台数分これを繰り返すことにより、当該機種の識別子が埋め込まれたバージョンアップファームウェアプログラムを台数分ダウンロードすることができる。」と記載されるように、従来、複数の装置においてプログラムを利用しようとする場合、当該複数の装置のそれぞれについてダウンロード等の作業を必要とされ、煩雑であるという問題があった。【０００５】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、２以上の制御機器のそれぞれにおいて利用されるプログラムのライセンス情報を、各制御機器において当該プログラムが利用できるようになるための作業がより容易になる態様で管理することができるライセンス情報管理装置を提供することである。
【課題を解決するための手段】
【０００６】
ある局面に従うと、ライセンス情報管理装置が提供される。ライセンス情報管理装置は、２台以上の制御機器においてプログラムを有効にするための情報であって、２台以上の制御機器の台数およびプログラムに対応する情報を含むキー情報の入力を受け付けるための入力装置と、入力装置に入力されたキー情報を、アクティベーションサーバへ送信するための通信装置と、記憶装置と、通信装置が、アクティベーションサーバから、２台以上の制御機器においてプログラムを利用可能にするための情報であるライセンス情報を受信した場合に、ライセンス情報を記憶装置に記憶するためのコントローラとを備え、ライセンス情報は、プログラムを利用可能にするためのデータと、２台以上の制御機器の台数を特定するための台数情報とを含む。【０００７】
好ましくは、コントローラは、制御機器に、プログラムを利用可能にするためのデータまたは当該データによって利用可能になったプログラムをインストールし、台数情報を、インストールを実行した制御機器の台数を差し引くように更新するように構成されている。【０００８】
好ましくは、ライセンス情報管理装置は、ライセンス情報管理装置に対して着脱可能な記録媒体と通信するためのメディアドライブをさらに備える。コントローラは、メディアドライブに特定の記録媒体が装着されていることを条件として、インストールを実行するように構成されている。【０００９】
好ましくは、コントローラは、特定の記録媒体に、プログラムを利用可能にするためのデータおよび台数情報を記録するように構成されている。【００１０】
好ましくは、コントローラは、記憶装置に、特定の記録媒体を特定する情報を記録し、記憶装置に記録されている特定の記録媒体を特定する情報と記録媒体に記録されている当該記録媒体を特定する情報とが一致し、かつ、記憶装置に記録されている台数情報と記録媒体に記録されている台数情報とが一致したことを条件として、インストールを実行するように構成されている。【００１１】
好ましくは、コントローラは、制御機器に、プログラムを利用可能にするためのデータまたは当該データによって利用可能にあったプログラムがインストールされていないことを条件として、インストールを実行するように構成されている。【００１２】
他の局面に従うと、ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理方法が提供される。ライセンス情報管理方法は、２台以上の制御機器においてプログラムを有効にするための情報であって、２台以上の制御機器の台数およびプログラムに対応する情報を含むキー情報の入力を受け付けるステップと、入力されたキー情報を、アクティベーションサーバへ送信するステップと、アクティベーションサーバから、２台以上の制御機器においてプログラムを利用可能にするための情報であるライセンス情報を受信した場合に、ライセンス情報をコンピュータの記憶装置に記憶するステップとを備える。ライセンス情報は、プログラムを利用可能にするためのデータと、２台以上の制御機器の台数を特定するための台数情報とを含む。【００１３】
さらに他の局面に従うと、ライセンス情報管理装置のコンピュータによって実行されるライセンス情報管理用のプログラムが提供される。ライセンス情報管理用のプログラムは、コンピュータに、２台以上の制御機器においてプログラムを有効にするための情報であって、２台以上の制御機器の台数およびプログラムに対応する情報を含むキー情報の入力を受け付けるステップと、入力されたキー情報を、アクティベーションサーバへ送信するステップと、アクティベーションサーバから、２台以上の制御機器においてプログラムを利用可能にするための情報であるライセンス情報を受信した場合に、ライセンス情報をコンピュータの記憶装置に記憶するステップとを実行させる。ライセンス情報は、プログラムを利用可能にするためのデータと、２台以上の制御機器の台数を特定するための台数情報とを含む。
【発明の効果】
【００１４】
本発明によれば、ライセンス情報管理装置は、一度キー情報をアクティベーションサーバに送信するだけで、２以上の制御機器のそれぞれにおいてプログラムを利用可能にするための情報を取得することができる。これにより、複数の制御機器のそれぞれにおいてプログラムを利用可能にするための作業が容易になる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係るライセンス管理システムの第１の実施の形態の構成を概略的に示す図である。
【図２】コンピュータのハードウェア構成の一例を示す図である。
【図３】ＰＬＣ（プログラマブルロジックコントローラ）のハードウェア構成の一例を示す図である。
【図４】本実施の形態のライセンス情報管理システムにおいて、コンピュータがアクティベーションサーバからライセンス情報を取得するための処理のフローチャートである。
【図５】コンピュータによってＰＬＣにプログラムをインストールするための処理のフローチャートである。
【図６】第２の実施の形態における記録媒体およびコンピュータの利用の態様を模式的に示す図である。
【図７】第２の実施の形態におけるコンピュータのハードウェア構成の一例を示す図である。
【図８】第２の実施の形態のコンピュータと記録媒体とにおいて、ライセンス情報として扱われる情報を模式的に示す図である。
【図９】第２の実施の形態のコンピュータが、アクティベーションサーバからライセンス情報を取得するために実行する処理のフローチャートである。
【図１０】第２の実施の形態のコンピュータにおいて実行される、ＰＬＣにプログラムをインストールするための処理のフローチャートである。
【発明を実施するための形態】
【００１６】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１７】
［第１の実施の形態］
図１は、本発明に係るライセンス管理システムの第１の実施の形態の構成を概略的に示す図である。ライセンス管理システムは、コンピュータ３００と、２以上のＰＬＣ１００とを含む。コンピュータ３００は、ライセンス情報管理装置の一例である。コンピュータ３００は、たとえば汎用のコンピュータによって実現される。
【００１８】
ＰＬＣ１００は、生産工場の製造現場等に設置されるＦＡ（ファクトリオートメーション）システムにおいて、当該システムの制御を司る機器である。また、ＰＬＣ１００は、制御機器の一例である。ただし、本実施の形態において、制御機器はプログラムを実行するプロセッサを備えた機器であれば、ＰＬＣ１００等の、所与の装置を制御するための機器に限定されない。
【００１９】
各ＰＬＣ１００は、コンピュータ３００から、上記システムの制御に利用されるプログラムをダウンロードする。コンピュータ３００は、２以上のＰＬＣ１００によってダウンロードされるプログラムのライセンス情報を管理する。
【００２０】
より具体的には、ユーザは、２以上のＰＬＣ１００にダウンロードされるプログラムのライセンスを購入する。これにより、当該ユーザは、２以上のＰＬＣ１００にプログラムをダウンロードするための情報（以下、「キー情報」という）を入手する。キー情報は、たとえば、上記プログラムを特定する情報とＰＬＣ１００の台数を特定する情報とを含むデータが暗号化されたものである。本実施の形態では、キー情報は、「ライセンスコード」とも呼ばれる。
【００２１】
キー情報を入手したユーザは、コンピュータ３００に、上記キー情報を入力する。これに応じて、コンピュータ３００は、当該キー情報をアクティベーションサーバ４００へ送信する。アクティベーションサーバ４００は、たとえば、外部の装置と通信するための装置および演算機能を有する装置を有する、一般的なサーバによって実現され得る。
【００２２】
アクティベーションサーバ４００は、当該キー情報が正当なものか否かを判断する。正当なものであると判断すると、アクティベーションサーバ４００は、コンピュータ３００を認証し、コンピュータ３００に対して、２以上のＰＬＣ１００についての台数分のプログラムのアクティベーションを実行する。より具体的には、アクティベーションサーバ４００は、コンピュータ３００に対して、２以上のＰＬＣ１００において上記プログラムを利用するための情報（ライセンス情報）を送信する。これにより、２以上のＰＬＣ１００のそれぞれが、コンピュータ３００から上記プログラムをダウンロードできるようになる。
【００２３】
ライセンス情報とは、プログラムを利用可能にするための情報である。ライセンス情報の一例としては、プログラムそのもののデータである。コンピュータ３００においてプログラムが暗号化されて格納されている場合、ライセンス情報は、当該プログラムを復号化するための鍵であり得る。
【００２４】
また、ライセンス情報は、上記プログラムを利用することができるＰＬＣ１００の台数を特定する情報を含む。なお、当該台数は、上記キー情報に対応する。
【００２５】
第１の実施の形態に係るライセンス管理システムでは、コンピュータ３００は、１回のアクティベーション処理（アクティベーションサーバ４００へのキー情報の送信）によって、２以上のＰＬＣ１００にインストールされるプログラムについてのライセンス情報を取得する。これにより、たとえば、公衆ネットワークに接続できない環境などの、２以上のＰＬＣ１００がアクティベーションサーバ４００との通信ができない環境にある場合でも、ユーザは、１台のコンピュータ３００で、当該２以上のＰＬＣ１００にプログラムをインストールできる。
【００２６】
アクティベーションサーバ４００は、認証に利用されたキー情報（または、当該キー情報を特定する情報）を、すでに使用された情報として、記憶することが好ましい。これにより、同じキー情報を利用して、複数回認証が行なわれることが回避され得る。
【００２７】
＜コンピュータ３００のハードウェア構成＞
図２は、コンピュータ３００のハードウェア構成の一例を示す図である。図２に示されるように、コンピュータ３００は、典型的には、汎用のコンピュータで構成される。
【００２８】
より具体的には、図２に示されるように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３０２と、ＲＯＭ（Read  Only  Memory）３０４と、ＲＡＭ（Random  Access  Memory）３０６と、ハードディスク（ＨＤＤ）３０８とを含む。ＣＰＵ３０２は、ＯＳ（Operating  System）を含む各種プログラムを実行する。ＲＯＭ３０４は、ＢＩＯＳ（Basic  Input/Output  System）や各種データを格納する。ＲＡＭ３０６は、ＣＰＵ３０２でのプログラムの実行に必要なデータを格納するための作業領域を提供する。ＨＤＤ３０８は、ＣＰＵ３０２で実行されるプログラムなどを不揮発的に格納する。制御システム１では、ＣＰＵ３０２とＲＡＭ３０６とによって、コントローラの一例が構成される。
【００２９】
ハードディスク３０８には、ＰＬＣ１００にインストールされるプログラムを特定する情報（プログラムＩＤ）と、当該プログラムのデータと、当該プログラムをインストールできるＰＬＣ１００の台数とが記憶され得る。図２において、プログラムＩＤ記憶部３９１は、プログラムＩＤを記憶するための領域を示す。ダウンロードプログラム記憶部３９２は、プログラムのデータを記憶するための領域を示す。ライセンス残数記憶部３９３は、上記台数を記憶するための領域を示す。
【００３０】
コンピュータ３００には、ＰＬＣ１００において実行されるプログラムのライセンス情報を管理するためのアプリケーションがインストールされている。図２において、アプリケーション記憶部３９０は、当該アプリケーションのプログラムを記憶するための領域を示す。当該プログラムは、コンピュータ３００に対して着脱可能な記録媒体に記録されて、コンピュータ３００本体とは独立して流通し得る。
【００３１】
コンピュータ３００は、また、ユーザからの操作を受け付けるキーボード３１０およびマウス３１２と、情報をユーザに提示するためのモニタ３１４と、コネクタ３１６とを含む。コネクタ３１６は、ＵＳＢ（Universal  Serial  Bus）メモリ等の記録媒体６００を含む外部の機器と接続するために設けられている。ＣＰＵ３０２は、コネクタ３１６を介して、記録媒体６００等の外部の機器と通信し得る。これにより、ＣＰＵ３０２は、たとえば記録媒体６００に格納されたプログラムを実行し得る。コンピュータ３００で実行されるプログラムは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードされる場合もあり得る。コンピュータ３００は、さらに、ＰＬＣ１００（ＣＰＵユニット１０４）などと通信するための通信インタフェース（ＩＦ）３１８を含む。
【００３２】
＜ＰＬＣ１００のハードウェア構成＞
図３は、ＰＬＣ１００のハードウェア構成の一例を示す図である。図３に示されるように、ＰＬＣ１００は、プロセッサ１２２と、メインメモリ１２４と、不揮発性メモリ１２６と、入力装置１３２と、コネクタ１３４とを含む。
【００３３】
プロセッサ１２２は、不揮発性メモリ１２６等に格納されたプログラムを実行することにより、ＰＬＣ１００の動作を制御する。メインメモリ１２４は、プロセッサ１２２の作業領域として利用され得る。不揮発性メモリ１２６は、プログラム等の各種のデータを記憶する。入力装置１３２は、外部からの情報の入力を受け付け、たとえばボタン等によって構成される。コネクタ１３４は、ＵＳＢメモリ等の記録媒体を含む外部の機器と接続するために設けられている。プロセッサ１２２は、コネクタ１３４を介して、外部の機器と通信し得る。
【００３４】
＜ライセンス情報を取得するための処理＞
図４は、本実施の形態のライセンス情報管理システムにおいて、コンピュータ３００がアクティベーションサーバ４００からライセンス情報を取得するための処理のフローチャートである。図４では、コンピュータ３００側で実行される処理（図４の左側）と、アクティベーションサーバ４００側で実行される処理（図４の右側）とが示されている。コンピュータ３００側で実行される処理は、たとえばアプリケーション記憶部３９０に格納されたアプリケーションが実行されることによって実現される。
【００３５】
図４を参照して、ステップＳ１０で、コンピュータ３００のＣＰＵ３０２は、キーボード３１０等を介したライセンスコード（キー情報）の入力を受け付ける。そして、制御はステップＳ１２へ進められる。
【００３６】
ステップＳ１２で、ＣＰＵ３０２は、アクティベーションサーバ４００へ、ステップＳ１０で入力を受け付けたライセンスコードを送信する。
【００３７】
これに応じて、ステップＳ３０で、アクティベーションサーバ４００（の演算装置）は、コンピュータ３００から送信されたライセンスコードが正当であるかどうかを判断する。アクティベーションサーバ４００は、たとえばライセンスコードに含まれる数列のハッシュ値を算出し、当該ハッシュ値が特定の値であればライセンスコードが正当であると判断し、当該特定の値以外の値であれば正当ではないと判断する。アクティベーションサーバ４００は、ライセンスコードが正当であると判断するとステップＳ３４へ制御を進め（ステップＳ３０でＹＥＳ）、正当ではないと判断するとステップＳ３２へ制御を進める（ステップＳ３０でＮＯ）。
【００３８】
ステップＳ３２では、アクティベーションサーバ４００は、コンピュータ３００に対して、当該コンピュータ３００が送信したライセンスコードが不正であることを通知する。
【００３９】
当該通知を受信すると、ステップＳ１４で、ＣＰＵ３０２は、ステップＳ１０で入力を受け付けたライセンスコードが不正であることを報知する。当該報知は、たとえばモニタ３１４にその旨のメッセージを表示することによって実現される。
【００４０】
一方、ステップＳ３４で、アクティベーションサーバ４００は、ライセンスコードがまだ認証に利用されていないかどうかを判断する。上記したように、アクティベーションサーバ４００は、認証に利用されたキー情報（ライセンスコード）（または、これを特定する情報）を、すでに使用された情報として、記憶することができる。ステップＳ３４では、アクティベーションサーバ４００は、コンピュータ３００から送信されたライセンスコードがアクティベーションサーバ４００において既に使用された情報として記憶されているかどうかを判断する。アクティベーションサーバ４００は、上記ライセンスコードが既に使用された情報として記憶されていると判断すると、ステップＳ３６へ制御を進める（ステップＳ３４でＮＯ）。また、アクティベーションサーバ４００は、上記ライセンスコードが既に使用された情報として記憶されていないと判断すると、ステップＳ３８へ制御を進める（ステップＳ３４でＹＥＳ）。
【００４１】
ステップＳ３６では、アクティベーションサーバ４００は、コンピュータ３００に、当該コンピュータ３００から送信されたライセンスコードが既に認証に利用されたものであることを通知する。
【００４２】
当該通知を受信すると、ステップＳ１６で、ＣＰＵ３０２は、ステップＳ１０で入力されたライセンスコードが既に認証に利用されたものであるため、利用できないことを報知する。当該報知は、たとえばその旨のメッセージをモニタ３１４に表示することにより実現される。
【００４３】
ステップＳ３８では、アクティベーションサーバ４００は、コンピュータ３００に、ライセンス情報を送信する。送信されるライセンス情報は、ステップＳ１２においてコンピュータ３００から送信されたライセンスコードに対応するプログラムを、当該ライセンスコードが対応する台数の機器が利用するための情報である。なお、当該ライセンスコードは、当該プログラムとＰＬＣ１００の台数とに対応していればよく、直接的に、当該プログラムを特定する情報を含んでいる必要はなく、また、台数を特定する情報を含んでいる必要はない。
【００４４】
ライセンス情報を受信すると、ステップＳ１８は、ＣＰＵ３０２は、ライセンスの認証が成功したことを報知する。当該報知は、たとえばモニタ３１４にその旨のメッセージを表示することによって実現される。そして、制御はステップＳ２０へ進められる。
【００４５】
ステップＳ２０では、ＣＰＵ３０２は、ライセンス情報に基づいて、プログラムのデータをダウンロードプログラム記憶部３８２に格納し、また、当該プログラムをインストールすることができる機器の台数をライセンス残数記憶部２９３に格納して、図４の処理を終了させる。
【００４６】
＜プログラムのインストール＞
図５は、コンピュータ３００によってＰＬＣ１００にプログラムをインストールするための処理のフローチャートである。ＣＰＵ３０２は、当該処理を、たとえばキーボード３１０等を介してインストールを開始するための指示が入力されたことを条件として開始する。また、当該処理は、コンピュータ３００がＰＬＣ１００と接続された状態で開始される。接続は、有線であっても良いし、無線であっても良い。図５の処理は、たとえばアプリケーション記憶部３９０に格納されたアプリケーションが実行されることによって実現される。
【００４７】
図５を参照して、ステップＳ６０で、ＣＰＵ３０２は、ライセンス残数記憶部３９３に記憶された台数（ライセンス残数）が０より大きいか否かを判断する。そして、ＣＰＵ３０２は、０より大きいと判断するとステップＳ６４へ制御を進め（ステップＳ６０でＹＥＳ）、０以下であると判断するとステップＳ６２へ制御を進める（ステップＳ６０でＮＯ）。
【００４８】
ライセンス残数記憶部３９３に格納される台数の値は、ステップＳ２０（図４参照）で、アクティベーションサーバ４００から許可された最大の数として登録される。その後、当該台数の値は、ＰＬＣ１００にプログラムがインストールされるたびに、後述するステップＳ７０で「１」ずつカウントダウンされる。
【００４９】
ステップＳ６２では、ＣＰＵ３０２は、ライセンス残数が不足していることを報知して、図５の処理を終了する。当該報知は、たとえばモニタ３１４にその旨のメッセージを表示することによって実現される。
【００５０】
ステップＳ６４では、ＣＰＵ３０２は、ＰＬＣ１００において、インストールの対象となるプログラムが未だＰＬＣ１００にインストールされていないかどうかを判断する。当該判断は、たとえばＰＬＣ１００の不揮発性メモリ１２６に、当該プログラムと同じファイル名およびバージョンを持つプログラムが格納されているかどうかに基づく。ＣＰＵ３０２は、ＰＬＣ１００に未だ当該プログラムがインストールされていないと判断するとステップＳ６８へ制御を進め（ステップＳ６４でＹＥＳ）、既にインストールされていると判断するとステップＳ６６へ制御を進める。
【００５１】
ステップＳ６６で、ＣＰＵ３０２は、対象のプログラムをインストールしようとしたＰＬＣ１００に既に当該プログラムがインストールされていることを報知して、図５の処理を終了させる。当該報知は、たとえばモニタ３１４にその旨を示すメッセージを表示することによって実現される。
【００５２】
ステップＳ６８で、ＣＰＵ３０２は、対象のプログラムをＰＬＣ１００にインストールする。そして、制御はステップＳ７０へ進められる。
【００５３】
ステップＳ７０で、ＣＰＵ３０２は、ライセンス残数記憶部３９３に格納されている台数（ライセンス残数）を１カウントダウンして、図５の処理を終了させる。
【００５４】
以上説明した第１の実施の形態では、コンピュータ３００は、１回のアクティベーションにより、プログラムを利用するための情報と、当該プログラムを利用できるＰＬＣ１００の台数を特定する情報とを取得する。ＰＬＣ１００は、コンピュータ３００から、当該プログラムをインストールされる。当該情報によって特定される台数は、コンピュータ３００がＰＬＣ１００に上記プログラムをインストールした台数だけ差し引かれるように、更新される。
【００５５】
第１の実施の形態では、コンピュータ３００からＰＬＣ１００にプログラムがインストールされる場合の具体例として、プログラムのデータのダウンロードが説明された。なお、たとえばＰＬＣ１００においてプログラムのデータが暗号化されて格納されている場合には、コンピュータ３００からＰＬＣ１００に、プログラムのデータそのものがダウンロードされる代わりに、当該暗号化の鍵がダウンロードされても良い。
【００５６】
［第２の実施の形態］
第２の実施の形態では、コンピュータ３００と記録媒体６００とによって、ライセンス情報が管理される。より具体的には、コンピュータ３００は、図５を参照して説明されたプログラムのインストールを、記録媒体６００がコンピュータ３００に装着されていることを条件として実行する。ライセンス情報は、コンピュータ３００および記録媒体６００の双方に格納される。
【００５７】
図６は、第２の実施の形態における記録媒体６００およびコンピュータ３００の利用の態様を模式的に示す図である。第２の実施の形態では、さらに、図６に示されるように、記録媒体６００が利用されることにより、あるコンピュータ３００（図６中のコンピュータ３００Ａ）で利用されたライセンス情報を他のコンピュータ３００（図６中のコンピュータ３００Ｂ）に引き継ぐことができる。
【００５８】
＜コンピュータ３００の構成＞
図７は、第２の実施の形態におけるコンピュータ３００のハードウェア構成の一例を示す図である。図７に示されるように、第２の実施の形態のコンピュータ３００のハードウェア構成は、第１の実施の形態のコンピュータ３００のハードウェア構成と同様とすることができる。
【００５９】
第２の実施の形態のコンピュータ３００のＨＤＤ３０８には、コンピュータ３００自体を特定するための情報と、記録媒体６００を特定する情報とがさらに格納される。図７において、ＰＣＩＤ記憶部３９４は、コンピュータ３００自体を特定するための情報を記憶するための領域を示す。メディアＩＤ記憶部３９５は、記録媒体６００を特定する情報を記憶するための領域を示す。
【００６０】
＜ライセンス情報の管理の概要＞
図８は、第２の実施の形態のコンピュータ３００と記録媒体６００とにおいて、ライセンス情報として扱われる情報を模式的に示す図である。図８では、（Ａ）〜（Ｄ）として、コンピュータ３００および記録媒体６００の４つの状態が示されている。図８の（Ａ）〜（Ｄ）では、２台のコンピュータ３００が、コンピュータ３００Ａおよびコンピュータ３００Ｂとして示されている。図８の（Ａ）および（Ｂ）では、１台目のコンピュータ３００Ａと記録媒体６００との組合せが示されている。図８の（Ｂ）および（Ｃ）では、２台目のコンピュータ３００Ｂと記録媒体６００との組合せが示されている。
【００６１】
まず、図８の（Ａ）を参照して、コンピュータ３００Ａは、「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」「メディアＩＤ」および「ダウンロードプログラム」のそれぞれの値を記憶し得る。この中で、図８の（Ａ）に示された状態では、コンピュータ３００Ａは、「ＰＣＩＤ」の値のみを記憶する。「ＰＣＩＤ」は、コンピュータ３００Ａを特定する情報であり、ＰＣＩＤ記憶部３９４に格納される。「ＰＣＩＤ」は、コンピュータ３００Ａの工場出荷時、または、ユーザによってコンピュータ３００Ａの利用開始時等に、ＰＣＩＤ記憶部３９４に登録され得る。
【００６２】
また、記録媒体６００は、コンピュータ３００Ａと同様に、「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」「メディアＩＤ」および「ダウンロードプログラム」のそれぞれの値を記憶し得る。この中で、図８の（Ａ）に示された状態では、記録媒体６００は、「メディアＩＤ」の値のみを記憶する。「メディアＩＤ」は、記録媒体６００を特定する情報である。記録媒体６００は、たとえばＵＳＢメモリ、ＳＤ（Secure  Digital）メモリカードなどのあらゆる種類の記録媒体であり得る。「メディアＩＤ」は、たとえば記録媒体６００の出荷時等、第２の実施の形態のライセンス情報管理システムにおいて利用される前に記録媒体６００に格納されている。
【００６３】
次に、図８の（Ｂ）を参照して、コンピュータ３００Ａは、「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」「メディアＩＤ」および「ダウンロードプログラム」の値を記憶する。
【００６４】
「プログラムＩＤ」は、ＰＬＣ１００にインストールされるプログラムを特定する情報であり、プログラムＩＤ記憶部３９１に格納される。
【００６５】
「ライセンス残数」は、当該プログラムをインストールできるＰＬＣ１００の残数であり、ライセンス残数記憶部３９３に格納される。
【００６６】
「ダウンロードプログラム」は、ＰＬＣ１００にインストールされるプログラムのデータであり、ダウンロードプログラム記憶部３９２に格納される。
【００６７】
コンピュータ３００Ａは、たとえば、アクティベーションサーバ４００からライセンス情報を取得することにより、「プログラムＩＤ」「ライセンス残数」および「ダウンロードプログラム」の値を取得する。また、コンピュータ３００Ａは、記録媒体６００から、「メディアＩＤ」の値を取得する。
【００６８】
図８の（Ｂ）に示された状態では、記録媒体６００においても、「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」「メディアＩＤ」および「ダウンロードプログラム」の値が格納されている。「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」および「ダウンロードプログラム」の値は、コンピュータ３００Ａによって書き込まれる。
【００６９】
コンピュータ３００Ａが故障や紛失によって利用できなくなった場合、ユーザは、コンピュータ３００Ａに接続していた記録媒体６００を、他のコンピュータ３００Ｂに接続する。図８の（Ｃ）には、図８の（Ｂ）に示された記録媒体６００が、ライセンス情報を登録されていないコンピュータ３００Ｂ接続された状態が示されている。
【００７０】
図８の（Ｃ）に示された状態では、記録媒体６００に記録されているデータは、図８の（Ｂ）に示された状態と同様である。
【００７１】
一方、図８の（Ｃ）に示された状態では、コンピュータ３００Ｂは、図８の（Ａ）に示された状態のコンピュータ３００Ａと同様に、「ＰＣＩＤ」のみの値を記憶している。なお、コンピュータ３００Ａの「ＰＣＩＤ」の値が「ＰＣ０１」であるのに対し、コンピュータ３００Ｂの「ＰＣＩＤ」の値は「ＰＣ０２」である。つまり、コンピュータ３００Ｂの「ＰＣＩＤ」の値は、コンピュータ３００Ａの「ＰＣＩＤ」の値とは異なる。
【００７２】
図９を参照して後述するように、コンピュータ３００Ｂは、プログラムをＰＬＣ１００にインストールさせるための処理を実行することにより、記録媒体６００に格納されたライセンス情報を当該コンピュータ３００Ｂに格納できる。これにより、コンピュータ３００Ｂには、図８の（Ｄ）に示される情報が記憶される。より具体的には、図８の（Ｄ）に示されるように、コンピュータ３００Ｂは、記録媒体６００が記憶している「プログラムＩＤ」「ライセンス残数」「メディアＩＤ」および「ダウンロードプログラム」を、当該コンピュータ３００Ｂにコピーする。
【００７３】
コンピュータ３００Ｂは、また、当該コンピュータ３００Ｂの「ＰＣＩＤ」を記録媒体６００に書き込む。これにより、図８の（Ｄ）に示された状態では、記録媒体６００には、「ＰＣＩＤ」の値として、コンピュータ３００Ａの「ＰＣ０１」の代わりに、コンピュータ３００Ｂの「ＰＣ０２」が格納される。
【００７４】
以上、図８を参照して説明したように、第２の実施の形態のライセンス情報管理システムでは、記録媒体６００に格納された情報を利用して、ライセンス情報をあるコンピュータ３００Ａから他のコンピュータ３００Ｂへと引き継ぐことができる。
【００７５】
＜ライセンス情報を取得するための処理＞
図９を参照して、コンピュータ３００Ａおよび記録媒体６００において図８の（Ａ）に示されたデータがどのように格納されるかを説明する。図９は、第２の実施の形態のコンピュータ３００が、アクティベーションサーバ４００からライセンス情報を取得するために実行する処理のフローチャートである。図９に示された処理は、図４のステップＳ２０の制御に相当する。つまり、図９に示された処理は、たとえば、コンピュータ３００（コンピュータ３００Ａ）が、アクティベーションサーバ４００からライセンス情報を受信したことに応じて開始される。
【００７６】
図９を参照して、ステップＳ２００で、コンピュータ３００ＡのＣＰＵ３０２は、コネクタ３１６に記録媒体６００が接続されているかどうかを判断する。そして、ＣＰＵ３０２は、接続されていると判断するとステップＳ２０４へ制御を進め（ステップＳ２００でＹＥＳ）、接続されていないと判断するとステップＳ２０２へ制御を進める（ステップＳ２００でＮＯ）。
【００７７】
ステップＳ２０２で、ＣＰＵ３０２は、エラーを報知してステップＳ２００へ制御を戻す。つまり、図９の処理では、コンピュータ３００Ａのコネクタ３１６に記録媒体６００が接続されない限り、ステップＳ２０４以降の制御が実行されない。
【００７８】
ステップＳ２０４で、ＣＰＵ３０２は、メディアＩＤ記憶部３９５に、メディアＩＤとして、コネクタ３１６に接続された記録媒体６００のＩＤを登録する。そして、制御はステップＳ２０６へ進められる。
【００７９】
ステップＳ２０６で、ＣＰＵ３０２は、図４のステップＳ２０と同様に、ダウンロードプログラム記憶部３９２にプログラムを格納し、ライセンス残数記憶部３９３にライセンス数（台数）を格納する。そして、制御はステップＳ２０８へ進められる。また、ステップＳ２０６では、ＣＰＵ３０２は、プログラムＩＤをプログラムＩＤ記憶部３９１に格納する。なお、プログラムＩＤは、図４のステップＳ１０で格納される場合もあり得る。
【００８０】
ステップＳ２０８では、記録媒体６００に、「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」および「ダウンロードプログラム」を書き込む。そして、図９の処理は終了する。
【００８１】
＜プログラムのインストール＞
図１０は、第２の実施の形態のコンピュータ３００において実行される、ＰＬＣ１００にプログラムをインストールするための処理のフローチャートである。ＣＰＵ３０２は、当該処理を、たとえばキーボード３１０等を介してインストールを開始するための指示が入力されたことを条件として開始する。また、当該処理は、コンピュータ３００がＰＬＣ１００と接続された状態で開始される。接続は、有線であっても良いし、無線であっても良い。図１０の処理は、たとえばアプリケーション記憶部３９０に格納されたアプリケーションが実行されることによって実現される。
【００８２】
図１０を参照して、ステップＳ４０で、ＣＰＵ３０２は、コネクタ３１６に記録媒体６００が接続されているかどうかを判断する。そして、ＣＰＵ３０２は、接続されていると判断するとステップＳ４４へ制御を進め（ステップＳ４０でＹＥＳ）、接続されていないと判断するとステップＳ４２へ制御を進める（ステップＳ４０でＮＯ）。
【００８３】
ステップＳ４２で、ＣＰＵ３０２は、記録媒体６００が接続されていないことによるエラーを報知して、図１０の処理を終了させる。当該報知は、たとえばモニタ３１４に対応するメッセージを表示することによって実現される。
【００８４】
ステップＳ４４で、ＣＰＵ３０２は、記録媒体６００に記録されている情報を読み込む。読み込まれる情報は、図８を参照して説明された、「プログラムＩＤ」「ライセンス残数」「ＰＣＩＤ」「メディアＩＤ」および「ダウンロードプログラム」の値である。そして、制御はステップＳ４６へ進められる。
【００８５】
ステップＳ４６で、ＣＰＵ３０２は、（当該ＣＰＵ３０２が搭載されている）コンピュータ３００のメディアＩＤ記憶部３９５に、「メディアＩＤ」の値が記録されているかどうかを判断する。そして、ＣＰＵ３０２は、記録されていると判断するとステップＳ５０へ制御を進め（ステップＳ４６でＹＥＳ）、記録されていないと判断するとステップＳ４８制御を進める（ステップＳ４６でＮＯ）。
【００８６】
ステップＳ４８で、ＣＰＵ３０２は、記録媒体６００から「プログラムＩＤ」「ライセンス残数」「メディアＩＤ」および「ダウンロードプログラム」を読み込んで、それぞれを、プログラムＩＤ記憶部３９１、ライセンス残数記憶部３９３、メディアＩＤ記憶部３９５、および、ダウンロードプログラム記憶部３９２のそれぞれに書き込む。また、ＣＰＵ３０２は、ＰＣＩＤ記憶部３９４に記録されている「ＰＣＩＤ」を記録媒体６００に書き込む。ステップＳ４８の制御は、図８における（Ｃ）から（Ｄ）への変更に相当する。そして、制御はステップＳ６０へ進められる。
【００８７】
ステップＳ５０で、ＣＰＵ３０２は、記録媒体６００から読み込んだ「メディアＩＤ」が、メディアＩＤ記憶部３９５に記録されているメディアＩＤと一致するかどうかを判断する。そして、ＣＰＵ３０２は、一致すると判断するとステップＳ６０へ制御を進め（ステップＳ５０でＹＥＳ）、一致しないと判断するとステップＳ５２へ制御を進める（ステップＳ５０でＮＯ）。
【００８８】
ステップＳ５２で、ＣＰＵ３０２は、不正な記録媒体６００が接続されていることを報知して、図１０の処理を終了させる。当該報知は、たとえばモニタ３１４にその旨のメッセージを表示することによって実現される。
【００８９】
ステップＳ６０〜Ｓ７０の制御は、図５の処理の対応する制御と同様の態様で実行され得る。
【００９０】
より具体的には、ステップＳ６０で、ＣＰＵ３０２は、ライセンス残数記憶部３９３に記録されたライセンス残数が０より大きいか否かを判断する。そして、ＣＰＵ３０２は、ライセンス残数が０より大きいと判断するとステップＳ６４へ制御を進め（ステップＳ６０でＹＥＳ）、０以下であると判断すろとステップＳ６２へ制御を進める（ステップＳ６０でＮＯ）。
【００９１】
ステップＳ６２で、ＣＰＵ３０２は、プログラムのインストールにはライセンス残数が不足していることを報知して、図１０の処理を終了させる。当該報知は、たとえばその旨のメッセージをモニタ３１４に表示することによって実現される。
【００９２】
ステップＳ６４で、ＣＰＵ３０２は、ＰＬＣ１００において、インストールの対象となるプログラムが未だＰＬＣ１００にインストールされていないかどうかを判断する。そして、ＣＰＵ３０２は、ＰＬＣ１００に未だ当該プログラムがインストールされていないと判断するとステップＳ６８へ制御を進め（ステップＳ６４でＹＥＳ）、既にインストールされていると判断するとステップＳ６６へ制御を進める。
【００９３】
ステップＳ６６で、ＣＰＵ３０２は、対象のプログラムをインストールしようとしたＰＬＣ１００に既に当該プログラムがインストールされていることを報知して、図１０の処理を終了させる。当該報知は、たとえばモニタ３１４にその旨を示すメッセージを表示することによって実現される。
【００９４】
ステップＳ６８で、ＣＰＵ３０２は、対象のプログラムをＰＬＣ１００にインストールする。そして、制御はステップＳ７０へ進められる。
【００９５】
ステップＳ７０で、ＣＰＵ３０２は、ライセンス残数記憶部３９３に格納されているライセンス残数を１カウントダウンする。そして、制御はステップＳ７２へ進められる。
【００９６】
ステップＳ７２で、ＣＰＵ３０２は、記録媒体に記録されたライセンス残数の値を１カウントダウンして、図１０の処理を終了させる。
【００９７】
以上、図９を参照して説明された処理では、ステップＳ２００以降の制御は、コンピュータ３００に記録媒体６００が接続されていることを条件として実行された。なお、コンピュータ３００は、記録媒体６００と接続していなくとも、アクティベーションサーバ４００からライセンス情報を取得（ステップＳ２０８）しても良い。たとえば、コンピュータ３００は、記録媒体６００に接続されることなく、アクティベーションサーバ４００からライセンス情報を取得する。ライセンス情報を取得した後、コンピュータ３００は、アクティベーションサーバ４００から取得したライセンス情報を記録媒体６００に書き込むための、予備的な処理を実行する。図１０に示された処理は、たとえば、当該予備的な処理がすでに実行されたことを条件として、実行可能になる。
【００９８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９９】
１００  ＰＬＣ、１２２  プロセッサ、１２４  メインメモリ、１２６  不揮発性メモリ、１３２  入力装置、１３４，３１６  コネクタ、３００  コンピュータ、３０２  ＣＰＵ、３０８  ＨＤＤ、３９０  アプリケーション記憶部、３９１  プログラムＩＤ記憶部、３９２  ダウンロードプログラム記憶部、３９３  ライセンス残数記憶部、３９４  ＰＣＩＤ記憶部、３９５  メディアＩＤ記憶部、４００  アクティベーションサーバ、６００  記録媒体。
【図１】
2015136964.tif 000003
【図２】
2015136964.tif 000004
【図３】
2015136964.tif 000005
【図４】
2015136964.tif 000006
【図５】
2015136964.tif 000007
【図６】
2015136964.tif 000008
【図７】
2015136964.tif 000009
【図８】
2015136964.tif 000010
【図９】
2015136964.tif 000011
【図１０】
2015136964.tif 000012
【国際調査報告】
2015136964.tif 000013
2015136964.tif 000014
2015136964.tif 000015
2015136964.tif 000016