(57)【要約】【課題】  １回のアクティベーションで２つのシステムの機能の利用を可能にするシステム、装置およびプログラムを提供する。【解決手段】  このシステムは、機能の利用可否を判断する機能管理システムであり、冗長化構成に関して設定された設定情報に基づき、機能を導入したシステムが所定のシステムであるか否かを判断する第１の判断手段と、所定のシステムであると判断された場合、機能を導入したシステムを識別する識別情報を取得する取得手段と、取得された識別情報に基づき、機能の利用可否を判断する第２の判断手段とを含む。【選択図】  図６
2020087018.tif 000002
【特許請求の範囲】
【請求項１】
機能の利用可否を判断する機能管理システムであって、
冗長化構成に関して設定された設定情報に基づき、前記機能を導入したシステムが所定のシステムであるか否かを判断する第１の判断手段と、
前記第１の判断手段により前記所定のシステムであると判断された場合、前記機能を導入したシステムを識別する識別情報を取得する取得手段と、
前記取得手段により取得された前記識別情報に基づき、前記機能の利用可否を判断する第２の判断手段と
を含む、機能管理システム。
【請求項２】
前記第１の判断手段は、前記所定のシステムとして、前記冗長化構成の２つのシステムのうちの１のシステムに異常が発生した場合に該１のシステムから切り替えて使用される代替用システムであるか否かを判断する、請求項１に記載の機能管理システム。
【請求項３】
前記第２の判断手段は、前記識別情報と、前記機能の利用を許可するシステムとして設定されたシステム情報とを比較し、該識別情報と該システム情報とが一致するか否かにより前記機能の利用可否を判断する、請求項１または２に記載の機能管理システム。
【請求項４】
前記システム情報は、MACアドレス、ユニークID、ホスト名のうちの１以上の情報を含む、請求項３に記載の機能管理システム。
【請求項５】
前記システム情報は、MACアドレス、ユニークID、ホスト名、前記機能の利用を許可するシステムが備える記憶装置のシリアル番号のうちの１以上の情報を含む、請求項３に記載の機能管理システム。
【請求項６】
認証情報として登録された、前記冗長化構成の２つのシステムのうちの１のシステムを一意に特定する固有情報と、前記機能を導入したシステムを一意に特定する固有情報とを比較し、両固有情報が一致するか否かにより前記機能の利用可否を判断する第３の判断手段を含む、請求項１〜５のいずれか１項に記載の機能管理システム。
【請求項７】
機能の利用可否を判断する情報処理装置であって、
冗長化構成に関して設定された設定情報に基づき、前記機能を導入した情報処理装置が所定の装置であるか否かを判断する第１の判断手段と、
前記第１の判断手段により前記所定の装置であると判断された場合、前記機能を導入した情報処理装置を識別する識別情報を取得する取得手段と、
前記取得手段により取得された前記識別情報に基づき、前記機能の利用可否を判断する第２の判断手段と
を含む、情報処理装置。
【請求項８】
機能の利用可否を判断する処理をコンピュータに実行させるためのプログラムであって、
冗長化構成に関して設定された設定情報に基づき、前記機能を導入したシステムが所定のシステムであるか否かを判断するステップと、
前記所定のシステムであると判断された場合、前記機能を導入したシステムを識別する識別情報を取得するステップと、
取得された前記識別情報に基づき、前記機能の利用可否を判断するステップと
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能の利用可否を判断する機能管理システム、情報処理装置およびその判断処理をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
サーバ等の情報処理装置は、プログラムを実行することにより種々の機能を実現し、プログラムのインストールやアンインストールにより機能を増減させることができる。プログラムには、インストール時やインストール後に、そのプログラムの機能を有効にするアクティベーションと呼ばれる作業が必要なプログラムがある。
【０００３】
アクティベーションでは、プログラムの利用権限を与え、それを証明するライセンス情報を生成し、所定のサーバや情報処理装置等に登録する。このため、アクティベーションが必要なプログラムに関しては、その機能を利用する際等に、登録されたライセンス情報を参照し、その機能の利用可否を判断している。
【０００４】
上記のライセンス情報には、プログラムがインストールされた情報処理装置を一意に特定する識別情報（ロックコード）を含むことができ、ロックコードでアクティベート済みか否かを判断する技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、自社でサーバ等を用意するとコストがかかることから、クラウドの利用が増加している。クラウド環境に対応する場合、切れ目なく機能の利用を可能にするため、例えば１台のサーバが何らかの原因で停止しても、もう１台のサーバに切り替えて利用することを可能にするシステムの冗長化が必須となる。
【０００６】
しかしながら、上記の従来の技術では、冗長化構成の２台のサーバを両方とも利用できるようにしたい場合、ロックコードがそれぞれ異なるので、２台のサーバのそれぞれに対してアクティベーションを行わなければならないという問題があった。
【０００７】
本発明は、上記の問題に鑑みなされたものであり、１回のアクティベーションで２つのシステムの機能の利用を可能にするシステム、装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、発明の一実施形態では、機能の利用可否を判断する機能管理システムであって、
冗長化構成に関して設定された設定情報に基づき、機能を導入したシステムが所定のシステムであるか否かを判断する第１の判断手段と、
第１の判断手段により所定のシステムであると判断された場合、機能を導入したシステムを識別する識別情報を取得する取得手段と、
取得手段により取得された識別情報に基づき、機能の利用可否を判断する第２の判断手段と
を含む、機能管理システムを提供する。
【発明の効果】
【０００９】
本発明によれば、１回のアクティベーションで２つのシステムの機能の利用が可能となる。
【図面の簡単な説明】
【００１０】
【図１】冗長化構成をとるシステムの構成例を示した図。
【図２】アクティベーションについて説明する図。
【図３】冗長化構成をとるシステムを構成するサーバのハードウェア構成の一例を示した図。
【図４】第１のサーバの機能構成の一例を示したブロック図。
【図５】第１のサーバにより実行されるアクティベーションの流れを示したフローチャート。
【図６】第２のサーバの機能構成の一例を示したブロック図。
【図７】第２のサーバにより実行される処理の流れを示したフローチャート。
【発明を実施するための形態】
【００１１】
図１は、冗長化構成をとるシステムの構成例を示した図である。冗長化構成をとるシステムは、例えば２つのサーバ１０、１１とデータベース１２とから構成される。２つのサーバ１０、１１は、同じの機能を利用して同じサービスを提供するために、同じプログラムがインストールされる。機能は、１つの機能であってもよいし、複数の機能であってもよい。このため、プログラムも、１つのプログラムであってもよいし、複数の機能を実現するための複数のプログラムから構成されるプログラムパッケージ等であってもよい。
【００１２】
機能は、いかなる機能であってもよく、例えば印刷を制御する機能、データを振り分ける機能、ワークフローを設定する機能等を挙げることができる。
【００１３】
データベース１２は、サーバ１０、１１とは別個の記憶装置として設けられていてもよいし、サーバ１０内の記憶装置やサーバ１１内の記憶装置とされていてもよい。
【００１４】
サーバ１０、１１は、機能を実現するために、CD-ROMやUSBメモリ等の記録媒体等からプログラムをインストールする。プログラムは、サーバ１０、１１が接続されたネットワークを介してコンテンツサーバ等からダウンロードし、インストールしてもよい。ここでは、プログラムは、インストールしただけでは、その機能を利用することはできず、アクティベーションが必要なものとして説明する。アクティベーションは、インストール時やインストール後に実行される。
【００１５】
図２は、サーバ１０にインストールされたプログラムの機能を利用するために実行されるアクティベーションについて説明する図である。サーバ１０は、ネットワーク１３を介してライセンスサーバ１４と接続される。ライセンスサーバ１４は、ライセンス情報を作成する装置である。
【００１６】
プログラムのインストールは、ユーザ操作により行われる。プログラムには、その利用権限（ライセンス）を識別する情報（プロダクトキー）が割り当てられており、ユーザがプロダクトキーを入力し、ライセンスサーバ１４に送信することにより、ライセンス認証を行う。このとき、サーバ１０を一意に特定する固有情報として、MACアドレス、ユニークIDの１つであるサーバ１０が生成したサーバ１０に固有の乱数、サーバ１０に設定されたサーバ名（ホスト名）等も一緒に送信する。
【００１７】
固有情報としては、これらのうちの２つが使用されるが、これに限られるものではなく、１つのみを使用してもよいし、３つ以上を使用してもよい。また、サーバ１０に固有の情報であれば、サーバ１０に搭載されている記憶装置であるHDDの製造番号（シリアル番号）等の情報であってもよい。
【００１８】
ライセンスサーバ１４は、プロダクトキーの有効性を判断し、ライセンス情報を生成して、データベース１２に登録する。プロダクトキーの有効性は、例えばライセンス管理テーブルを使用し、ライセンスが既に与えられているか否か、複数台のライセンスが可能な場合はそのライセンス数に達しているか否か等を考慮して判断される。ライセンス情報は、例えば上記のMACアドレス、乱数、ホスト名等を使用して作成され、ライセンスサーバ１４が保持する秘密鍵を使用して暗号化された上で、データベース１２に登録される。この登録により、アクティベーションが完了する。
【００１９】
ライセンスサーバ１４は、上記の秘密鍵に対応する公開鍵をサーバ１０に提供する。このため、サーバ１０は、データベース１２上のライセンス情報を、公開鍵で暗号を解除（デコード）し、MACアドレス、乱数、ホスト名等を取り出すことができる。なお、ライセンス情報の暗号化は、公開鍵および秘密鍵を使用するものに限らず、これまでに知られたいかなる方式を使用することができる。
【００２０】
サーバ１０は、プログラムの機能を利用する際、データベース１２に登録されたライセンス情報を使用し、利用可否を判断した上で、そのプログラムを実行し、その機能を利用してサービスを提供する。
【００２１】
図３は、サーバ１０のハードウェア構成の一例を示した図である。なお、サーバ１１は、サーバ１０と同じハードウェア構成であるため、サーバ１１のハードウェア構成についての説明は省略する。
【００２２】
サーバ１０は、ハードウェアとして、CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５、入力装置２６、表示装置２７を含む。
【００２３】
CPU２０は、サーバ１０全体を制御し、上記のライセンスサーバ１４へのライセンスキー等の送信、暗号化されたライセンス情報の取得、暗号化されたライセンス情報のデコード等を実施する。ROM２１は、サーバ１０を起動させるブートプログラム等を格納する。HDD２３は、上記のサーバ１０の制御を実現するOS（Operating System）や上記のデコード等の処理を実現するプログラムを格納する。RAM２２は、CPU２０に対する作業領域を提供する。
【００２４】
ROM２１は、上記のMACアドレスを格納し、HDD２３は、サーバ１０に関する各種の設定情報を格納する場所としてレジストリを有し、レジストリに上記の乱数やホスト名を格納する。
【００２５】
通信I/F２４は、サーバ１０をネットワーク１３に接続し、ライセンスサーバ１４との通信を可能にする。入力装置２６は、ユーザの入力を受け付け、表示装置２７は、入力された情報等を表示する。入出力I/F２５は、入力装置２６からの入力や表示装置２７への表示を制御する。
【００２６】
図４は、サーバ１０の機能構成について説明する図である。サーバ１０は、HDD２３に格納されたプログラムをCPU２０が実行することにより各機能部を生成し、各機能部により各処理を実行する。
【００２７】
ここでは、すべての機能をプログラムの実行により生成された機能部によって実現しているが、これに限られるものではなく、一部または全部の機能を回路等のハードウェアにより実現されていてもよい。また、これらの機能部の一部または全部は、サーバ１０内に実装されていなくてもよく、１以上の他の機器等に実装されていてもよいし、サーバ１０と１以上の他の機器とに分散して実装されていてもよい。
【００２８】
サーバ１０は、プログラムの機能を利用する際、その利用可否を判断する。サーバ１０は、この判断処理を実行するため、機能部として、デコード部３０、取得部３１、判断部３２を備える。
【００２９】
デコード部３０は、データベース１２に格納された、暗号化されたライセンス情報をデコードする。このデコードにより、ライセンス情報に含まれるMACアドレスや乱数等を取り出す。この例では、MACアドレスと乱数を使用するものとして説明する。
【００３０】
取得部３１は、ROM２１およびHDD２３からMACアドレスおよび乱数を取得する。判断部３２は、取得部３１が取得したMACアドレスおよび乱数と、デコードされたライセンス情報に含まれるMACアドレスおよび乱数とを比較し、それぞれが一致するかどうかを判断する。判断部３２は、一致する場合、利用が許可されていることを表すアクティベート済みと判断する。アクティベート済みと判断された場合、サーバ１０は、そのプログラムの機能を利用することができる。
【００３１】
一方、判断部３２が、アクティベート済みではないと判断した場合は、そのプログラムの機能は利用制限がかかったままの状態であるので、サーバ１０は、その機能を利用することはできない。
【００３２】
サーバ１０による機能の利用可否の判断処理の流れを、図５を参照して詳細に説明する。プログラムの起動により、ステップ５００から処理を開始する。プログラムは、プログラムを識別する識別情報が関連付けられ、データベース１２に登録された、暗号化されたライセンス情報にも、プログラムの識別情報が関連付けられている。
【００３３】
ステップ５０１では、取得部３１が、プログラムを識別する識別情報に基づき、データベース１２に登録された当該識別情報が関連付けられた、暗号化されたライセンス情報を、データベース１２から取得する。ステップ５０２では、デコード部３０が、ライセンスサーバ１４の秘密鍵で暗号化されたライセンス情報を、ライセンスサーバ１４が提供する公開鍵でデコードし、ライセンス情報に含まれるMACアドレスおよび乱数を取り出す。
【００３４】
ステップ５０３で、取得部３１が、ROM２１およびHDD２３から、ROM２１およびHDD２３に格納されているMACアドレスおよび乱数を取得する。ステップ５０４で、判断部３２が、ステップ５０２で取り出したMACアドレスおよび乱数と、ステップ５０３で取得したMACアドレスおよび乱数とを比較し、一致するか否かを判断する。
【００３５】
ステップ５０３で一致すると判断した場合、ステップ５０４へ進み、アクティベート済みで、プログラムの機能が利用可能と判断する。一方、一致しないと判断した場合、ステップ５０５へ進み、プログラムの機能が利用不可と判断する。これらの判断が終了したところで、ステップ５０６で判断処理を終了する。
【００３６】
次に、冗長化により同じプログラムをインストールし、同じ機能を利用するサーバ１１の機能構成を、図６に示す。サーバ１１でインストールしたプログラムの機能を利用する場合、サーバ１０と同様のアクティベーションが必要となる。これは、データベース１２に登録されたライセンス情報を、サーバ１０とサーバ１１との間で共有することができないからである。
【００３７】
具体的には、ライセンス情報に含まれるMACアドレスおよび乱数は、サーバ１０のもので、サーバ１１は、別のMACアドレスおよび乱数をもつため、MACアドレスおよび乱数の比較において一致せず、利用不可と判断されてしまうからである。
【００３８】
そこで、サーバ１１は、アクティベーションを実行することなく、機能の利用を可能にするために、機能部として、デコード部４０、第１の判断部４１、第２の判断部４２、取得部４３、第３の判断部４４を含む構成とされる。これらの機能部は、サーバ１０と同様、CPUがプログラムを実行することにより生成される。
【００３９】
なお、これらの機能部は、プログラムの実行により実現されるものに限らず、これらの機能部の一部または全部が回路等のハードウェアで実現されていてもよい。また、これらの機能部の一部または全部は、サーバ１１内に実装されていなくてもよく、１以上の他の機器等に実装されていてもよいし、サーバ１１と１以上の他の機器とに分散して実装されていてもよい。
【００４０】
デコード部４０は、データベース１２に格納された、暗号化されたライセンス情報をデコードする。このデコードにより、ライセンス情報に含まれるMACアドレスおよび乱数を取り出す。ライセンス情報に含まれるMACアドレスおよび乱数は、サーバ１０のものである。
【００４１】
取得部４３は、ROMおよびHDDからMACアドレスおよび乱数を取得する。このMACアドレスおよび乱数は、サーバ１１のものである。第３の判断部４４は、取り出したMACアドレスおよび乱数と、取得したMACアドレスおよび乱数と比較し、それぞれが一致するかどうかを判断する。この場合、サーバが異なるため、第３の判断部４４は、一致しないと判断する。
【００４２】
ROMやHDD等の記憶部には、サーバ１１のMACアドレスや乱数のほか、事前に冗長化構成に関して設定された設定情報と、機能の利用を許可するシステムとして設定されたシステム情報とが記憶される。
【００４３】
冗長化構成をとった一方のサーバを通常動作させ、一方のサーバに異常が発生したときに他方のサーバに切り替えて動作させる場合、通常動作させる通常用サーバがプライマリサーバで、異常時に切り替えられる代替用サーバがセカンダリサーバとされる。設定情報は、サーバ１０がプライマリサーバで、サーバ１１がセカンダリサーバであることを示す情報とされる。設定情報は、プライマリサーバを特定する情報、例えばIPアドレス等と、自身がセカンダリサーバであることを示す情報とを含むことができる。IPアドレスは一例であるので、プライマリサーバを特定できればいかなる情報であってもよい。
【００４４】
システム情報は、プログラムの機能の利用を許可するシステムを識別する識別情報、例えばホスト名等とされる。ホスト名は一例であるので、システムを識別できればいかなる情報であってもよい。
【００４５】
第１の判断部４１は、取得部４３により取得された設定情報に基づき、サーバ１１がセカンダリサーバであるか否かを判断する。セカンダリサーバである場合、取得部４３が、サーバ１１を識別する識別情報としてのホスト名を取得する。そして、第２の判断部４２が、取得部４３により取得されたホスト名と、記憶部に記憶されたシステム情報（ホスト名）とを比較し、一致するか否かにより、アクティベート済みか否かを判断する。
【００４６】
第２の判断部４２によりアクティベート済みと判断された場合、サーバ１１は、そのプログラムの機能を利用することができる。したがって、サーバ１１は、アクティベーションを行うことなく、そのプログラムの機能を利用することが可能となる。
【００４７】
一方、第２の判断部４２によりアクティベート済みではないと判断された場合、サーバ１１は、そのプログラムの機能を利用することはできない。
【００４８】
この例では、第３の判断部４４によりサーバ１１のMACアドレス等と、ライセンス情報に含まれるMACアドレス等とにより、機能の利用可否を判断しているが、一般に、サーバが異なり、利用不可と判断されるので、第３の判断部４４は必須のものではない。
【００４９】
サーバ１１による機能の利用可否の判断処理の流れを、図７を参照して詳細に説明する。サーバ１１は、サーバ１０の代替用であるため、サーバ１０に実装される監視部によりサーバ１０に異常が発生し、停止したかどうかを監視し、停止したとの通知を受けて、同じ機能を利用してサービスの提供を開始する。したがって、サーバ１０が停止したとの通知を受けて、ステップ７００から処理を開始する。監視部は、例えばOSがwindows(登録商標)である場合、windowsサービスを利用して、サーバ１０の停止を監視することができる。
【００５０】
ステップ７０１では、取得部４３が、データベース１２に登録された、暗号化されたライセンス情報をデータベース１２から取得する。ライセンス情報は、プログラムを識別する識別情報が紐付けられており、サーバ１１で実行しようとするプログラムの識別情報を参照し、対応するライセンス情報を取得することができる。サーバ１０、１１は、同じプログラムを実装しているため、プログラムには同じ識別情報が付与されている。
【００５１】
ステップ７０２では、デコード部４０が、ライセンスサーバ１４の秘密鍵で暗号化されたライセンス情報を、ライセンスサーバ１４が提供する公開鍵でデコードし、ライセンス情報に含まれるMACアドレスおよび乱数を取り出す。MACアドレスおよび乱数は、サーバ１０のものである。
【００５２】
ステップ７０３で、取得部４３が、ROM２１およびHDD２３から、ROM２１およびHDD２３に格納されているMACアドレスおよび乱数を取得する。ステップ７０４で、第３の判断部４４が、ステップ７０２で取り出したMACアドレスおよび乱数と、ステップ７０３で取得したMACアドレスおよび乱数とを比較し、一致するか否かを判断する。冗長化構成をとったシステムにおいては、MACアドレスおよび乱数は一致しない。
【００５３】
一致しないと判断された場合、ステップ７０５へ進み、取得部４３が、設定情報を取得する。ステップ７０６で、第１の判断部４１が、設定情報に基づき、サーバ１１がセカンダリサーバであるかどうかを判断する。セカンダリサーバであると判断された場合、ステップ７０７で、取得部４３が、システム情報として記憶されているホスト名を取得する。また、取得部４３が、サーバ１１に設定されたホスト名も取得する。ステップ７０８では、第２の判断部４２が、取得したホスト名を比較し、一致するか否かを判断する。
【００５４】
ステップ７０８でホスト名が一致すると判断した場合、ステップ７０９へ進み、アクティベート済みで、そのプログラムの機能が利用可能と判断する。一方、ステップ７０４で一致すると判断された場合、もしくはステップ７０６でセカンダリサーバでないと判断された場合、またはステップ７０８でホスト名が一致しないと判断した場合、ステップ７１０へ進み、そのプログラムの機能が利用不可と判断する。これらの判断が終了したところで、ステップ７１１で判断処理を終了する。
【００５５】
ちなみに、ステップ７０４で一致すると判断されるケースとしては、何らかのエラーが生じている場合が考えられる。ステップ７０６でセカンダリサーバでないと判断されるケースとしては、設定情報が設定されていない場合等が考えられる。ステップ７０８でホスト名が一致しないと判断されるケースとしては、ホスト名がシステム情報として設定されていない場合やホスト名の入力ミス等が考えられる。
【００５６】
システムの冗長化は、同じ機能を有する代替用の機器（サーバ）を用意するものに限らず、１つのサーバ上のリソースを２つの論理区画に分割し、一方を通常用とし、他方を代替用としたものであってもよい。また、通常用と代替用の２つに限らず、３以上の機器や論理区画を使用し、冗長化してもよい。
【００５７】
以上のように、セカンダリサーバであるサーバ１１に、事前に設定情報およびシステム情報を記憶しておき、それらの情報に基づき、アクティベート済みかどうかを判断する構成とすることで、サーバ１０への１回のアクティベーションで、２台のサーバ１０、１１の機能を利用することが可能となる。
【００５８】
これまで本発明を、機能管理システム、情報処理装置およびプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。したがって、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。よって、本発明では、上記のプログラムが記録された記録媒体、そのプログラムを、ネットワークを介して提供するサーバ装置等も提供することができるものである。
【符号の説明】
【００５９】
１０、１１…サーバ
１２…データベース
１３…ネットワーク
１４…ライセンスサーバ
２０…CPU
２１…ROM
２２…RAM
２３…HDD
２４…通信I/F
２５…入出力I/F
２６…入力装置
２７…表示装置
３０…デコード部
３１…取得部
３２…判断部
４０…デコード部
４１…第１の判断部
４２…第２の判断部
４３…取得部
４４…第３の判断部
【先行技術文献】
【特許文献】
【００６０】
【特許文献１】特開２０１０−１１４０８号公報
【図１】
2020087018.tif 000003
【図２】
2020087018.tif 000004
【図３】
2020087018.tif 000005
【図４】
2020087018.tif 000006
【図５】
2020087018.tif 000007
【図６】
2020087018.tif 000008
【図７】
2020087018.tif 000009