(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-03
(45)【発行日】2022-10-12
(54)【発明の名称】代替用サーバ、方法およびプログラム
(51)【国際特許分類】
G06F 21/10 20130101AFI20221004BHJP
G06F 21/44 20130101ALI20221004BHJP
【FI】
G06F21/10 350
G06F21/44
(21)【出願番号】P 2018221407
(22)【出願日】2018-11-27
【審査請求日】2021-08-19
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(72)【発明者】
【氏名】中川 典昭
【審査官】平井 誠
(56)【参考文献】
【文献】特開2013-235352(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
通常動作させる通常用サーバと、前記通常用サーバに異常が発生したときに切り替えて動作させる代替用サーバとを含むシステムにおける前記代替用サーバであって、前記代替用サーバに搭載されるプログラムの機能の利用可否を判断する
前記代替用サーバにおいて、
自身が代替用サーバであることを示す情報を含む設定情報と、前記プログラムの機能の利用を許可するシステムを識別する第1のホスト名と、を記憶する記憶部と、
前記記憶部に記憶された
前記設定情報に基づき、
自身が
代替用サーバであるか否かを判断する第1の判断手段と、
前記第1の判断手段により、
自身が代替用サーバであると判断された場合、
前記代替用サーバに設定された第2のホスト名を取得する取得手段と、
前記取得手段により取得された前記
第2のホスト名と、前記記憶部に記憶された前記第1のホスト名とが一致する場合は、前記プログラムの機能の利用を利用可と判断し、一致しない場合は、前記プログラムの機能の利用を利用不可と判断する第2の判断手段と
を
有する、代替用サーバ。
【請求項2】
前記通常用サーバが停止したとの通知を受けた後に、前記第1の判断手段に係る処理、前記取得手段に係る処理、及び前記第2の判断手段に係る処理、を行う、請求項1に記載の代替用サーバ。
【請求項3】
通常動作させる通常用サーバと、前記通常用サーバに異常が発生したときに切り替えて動作させる代替用サーバとを含むシステムにおける、前記代替用サーバに搭載されるプログラムの機能の利用可否を判断する方法において、
前記代替用サーバの記憶部に記憶された、自身が代替用サーバであることを示す情報を含む設定情報に基づき、前記代替用サーバが、自身が代替用サーバであるか否かを判断する第1の判断ステップと、
前記第1の判断ステップにより、自身が代替用サーバであると判断された場合、前記代替用サーバが、前記代替用サーバに設定された第2のホスト名を取得する取得ステップと、
前記代替用サーバが前記プログラムの機能の利用可否を判断する第2の判断ステップであって、前記代替用サーバの前記記憶部に記憶された、前記プログラムの機能の利用を許可するシステムを識別する第1のホスト名と、前記取得ステップにより取得された前記第2のホスト名とが一致する場合は、前記プログラムの機能の利用を利用可と判断し、一致しない場合は、前記プログラムの機能の利用を利用不可と判断する、前記第2の判断ステップと
を有する、方法。
【請求項4】
コンピュータに、請求項3に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機能の利用可否を判断する機能管理システム、情報処理装置およびその判断処理をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【0002】
サーバ等の情報処理装置は、プログラムを実行することにより種々の機能を実現し、プログラムのインストールやアンインストールにより機能を増減させることができる。プログラムには、インストール時やインストール後に、そのプログラムの機能を有効にするアクティベーションと呼ばれる作業が必要なプログラムがある。
【0003】
アクティベーションでは、プログラムの利用権限を与え、それを証明するライセンス情報を生成し、所定のサーバや情報処理装置等に登録する。このため、アクティベーションが必要なプログラムに関しては、その機能を利用する際等に、登録されたライセンス情報を参照し、その機能の利用可否を判断している。
【0004】
上記のライセンス情報には、プログラムがインストールされた情報処理装置を一意に特定する識別情報(ロックコード)を含むことができ、ロックコードでアクティベート済みか否かを判断する技術が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、自社でサーバ等を用意するとコストがかかることから、クラウドの利用が増加している。クラウド環境に対応する場合、切れ目なく機能の利用を可能にするため、例えば1台のサーバが何らかの原因で停止しても、もう1台のサーバに切り替えて利用することを可能にするシステムの冗長化が必須となる。
【0006】
しかしながら、上記の従来の技術では、冗長化構成の2台のサーバを両方とも利用できるようにしたい場合、ロックコードがそれぞれ異なるので、2台のサーバのそれぞれに対してアクティベーションを行わなければならないという問題があった。
【0007】
本発明は、上記の問題に鑑みなされたものであり、1回のアクティベーションで2つのシステムの機能の利用を可能にするシステム、装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、発明の一実施形態では、通常動作させる通常用サーバと、前記通常用サーバに異常が発生したときに切り替えて動作させる代替用サーバとを含むシステムにおける前記代替用サーバであって、前記代替用サーバに搭載されるプログラムの機能の利用可否を判断する前記代替用サーバにおいて、自身が代替用サーバであることを示す情報を含む設定情報と、前記プログラムの機能の利用を許可するシステムを識別する第1のホスト名と、を記憶する記憶部と、前記記憶部に記憶された前記設定情報に基づき、自身が代替用サーバであるか否かを判断する第1の判断手段と、前記第1の判断手段により、自身が代替用サーバであると判断された場合、前記代替用サーバに設定された第2のホスト名を取得する取得手段と、前記取得手段により取得された前記第2のホスト名と、前記記憶部に記憶された前記第1のホスト名とが一致する場合は、前記プログラムの機能の利用を利用可と判断し、一致しない場合は、前記プログラムの機能の利用を利用不可と判断する第2の判断手段とを有する、代替用サーバを提供する。
【発明の効果】
【0009】
本発明によれば、1回のアクティベーションで2つのシステムの機能の利用が可能となる。
【図面の簡単な説明】
【0010】
【
図1】冗長化構成をとるシステムの構成例を示した図。
【
図3】冗長化構成をとるシステムを構成するサーバのハードウェア構成の一例を示した図。
【
図4】第1のサーバの機能構成の一例を示したブロック図。
【
図5】第1のサーバにより実行されるアクティベーションの流れを示したフローチャート。
【
図6】第2のサーバの機能構成の一例を示したブロック図。
【
図7】第2のサーバにより実行される処理の流れを示したフローチャート。
【発明を実施するための形態】
【0011】
図1は、冗長化構成をとるシステムの構成例を示した図である。冗長化構成をとるシステムは、例えば2つのサーバ10、11とデータベース12とから構成される。2つのサーバ10、11は、同じの機能を利用して同じサービスを提供するために、同じプログラムがインストールされる。機能は、1つの機能であってもよいし、複数の機能であってもよい。このため、プログラムも、1つのプログラムであってもよいし、複数の機能を実現するための複数のプログラムから構成されるプログラムパッケージ等であってもよい。
【0012】
機能は、いかなる機能であってもよく、例えば印刷を制御する機能、データを振り分ける機能、ワークフローを設定する機能等を挙げることができる。
【0013】
データベース12は、サーバ10、11とは別個の記憶装置として設けられていてもよいし、サーバ10内の記憶装置やサーバ11内の記憶装置とされていてもよい。
【0014】
サーバ10、11は、機能を実現するために、CD-ROMやUSBメモリ等の記録媒体等からプログラムをインストールする。プログラムは、サーバ10、11が接続されたネットワークを介してコンテンツサーバ等からダウンロードし、インストールしてもよい。ここでは、プログラムは、インストールしただけでは、その機能を利用することはできず、アクティベーションが必要なものとして説明する。アクティベーションは、インストール時やインストール後に実行される。
【0015】
図2は、サーバ10にインストールされたプログラムの機能を利用するために実行されるアクティベーションについて説明する図である。サーバ10は、ネットワーク13を介してライセンスサーバ14と接続される。ライセンスサーバ14は、ライセンス情報を作成する装置である。
【0016】
プログラムのインストールは、ユーザ操作により行われる。プログラムには、その利用権限(ライセンス)を識別する情報(プロダクトキー)が割り当てられており、ユーザがプロダクトキーを入力し、ライセンスサーバ14に送信することにより、ライセンス認証を行う。このとき、サーバ10を一意に特定する固有情報として、MACアドレス、ユニークIDの1つであるサーバ10が生成したサーバ10に固有の乱数、サーバ10に設定されたサーバ名(ホスト名)等も一緒に送信する。
【0017】
固有情報としては、これらのうちの2つが使用されるが、これに限られるものではなく、1つのみを使用してもよいし、3つ以上を使用してもよい。また、サーバ10に固有の情報であれば、サーバ10に搭載されている記憶装置であるHDDの製造番号(シリアル番号)等の情報であってもよい。
【0018】
ライセンスサーバ14は、プロダクトキーの有効性を判断し、ライセンス情報を生成して、データベース12に登録する。プロダクトキーの有効性は、例えばライセンス管理テーブルを使用し、ライセンスが既に与えられているか否か、複数台のライセンスが可能な場合はそのライセンス数に達しているか否か等を考慮して判断される。ライセンス情報は、例えば上記のMACアドレス、乱数、ホスト名等を使用して作成され、ライセンスサーバ14が保持する秘密鍵を使用して暗号化された上で、データベース12に登録される。この登録により、アクティベーションが完了する。
【0019】
ライセンスサーバ14は、上記の秘密鍵に対応する公開鍵をサーバ10に提供する。このため、サーバ10は、データベース12上のライセンス情報を、公開鍵で暗号を解除(デコード)し、MACアドレス、乱数、ホスト名等を取り出すことができる。なお、ライセンス情報の暗号化は、公開鍵および秘密鍵を使用するものに限らず、これまでに知られたいかなる方式を使用することができる。
【0020】
サーバ10は、プログラムの機能を利用する際、データベース12に登録されたライセンス情報を使用し、利用可否を判断した上で、そのプログラムを実行し、その機能を利用してサービスを提供する。
【0021】
図3は、サーバ10のハードウェア構成の一例を示した図である。なお、サーバ11は、サーバ10と同じハードウェア構成であるため、サーバ11のハードウェア構成についての説明は省略する。
【0022】
サーバ10は、ハードウェアとして、CPU20、ROM21、RAM22、HDD23、通信I/F24、入出力I/F25、入力装置26、表示装置27を含む。
【0023】
CPU20は、サーバ10全体を制御し、上記のライセンスサーバ14へのライセンスキー等の送信、暗号化されたライセンス情報の取得、暗号化されたライセンス情報のデコード等を実施する。ROM21は、サーバ10を起動させるブートプログラム等を格納する。HDD23は、上記のサーバ10の制御を実現するOS(Operating System)や上記のデコード等の処理を実現するプログラムを格納する。RAM22は、CPU20に対する作業領域を提供する。
【0024】
ROM21は、上記のMACアドレスを格納し、HDD23は、サーバ10に関する各種の設定情報を格納する場所としてレジストリを有し、レジストリに上記の乱数やホスト名を格納する。
【0025】
通信I/F24は、サーバ10をネットワーク13に接続し、ライセンスサーバ14との通信を可能にする。入力装置26は、ユーザの入力を受け付け、表示装置27は、入力された情報等を表示する。入出力I/F25は、入力装置26からの入力や表示装置27への表示を制御する。
【0026】
図4は、サーバ10の機能構成について説明する図である。サーバ10は、HDD23に格納されたプログラムをCPU20が実行することにより各機能部を生成し、各機能部により各処理を実行する。
【0027】
ここでは、すべての機能をプログラムの実行により生成された機能部によって実現しているが、これに限られるものではなく、一部または全部の機能を回路等のハードウェアにより実現されていてもよい。また、これらの機能部の一部または全部は、サーバ10内に実装されていなくてもよく、1以上の他の機器等に実装されていてもよいし、サーバ10と1以上の他の機器とに分散して実装されていてもよい。
【0028】
サーバ10は、プログラムの機能を利用する際、その利用可否を判断する。サーバ10は、この判断処理を実行するため、機能部として、デコード部30、取得部31、判断部32を備える。
【0029】
デコード部30は、データベース12に格納された、暗号化されたライセンス情報をデコードする。このデコードにより、ライセンス情報に含まれるMACアドレスや乱数等を取り出す。この例では、MACアドレスと乱数を使用するものとして説明する。
【0030】
取得部31は、ROM21およびHDD23からMACアドレスおよび乱数を取得する。判断部32は、取得部31が取得したMACアドレスおよび乱数と、デコードされたライセンス情報に含まれるMACアドレスおよび乱数とを比較し、それぞれが一致するかどうかを判断する。判断部32は、一致する場合、利用が許可されていることを表すアクティベート済みと判断する。アクティベート済みと判断された場合、サーバ10は、そのプログラムの機能を利用することができる。
【0031】
一方、判断部32が、アクティベート済みではないと判断した場合は、そのプログラムの機能は利用制限がかかったままの状態であるので、サーバ10は、その機能を利用することはできない。
【0032】
サーバ10による機能の利用可否の判断処理の流れを、
図5を参照して詳細に説明する。プログラムの起動により、ステップ500から処理を開始する。プログラムは、プログラムを識別する識別情報が関連付けられ、データベース12に登録された、暗号化されたライセンス情報にも、プログラムの識別情報が関連付けられている。
【0033】
ステップ501では、取得部31が、プログラムを識別する識別情報に基づき、データベース12に登録された当該識別情報が関連付けられた、暗号化されたライセンス情報を、データベース12から取得する。ステップ502では、デコード部30が、ライセンスサーバ14の秘密鍵で暗号化されたライセンス情報を、ライセンスサーバ14が提供する公開鍵でデコードし、ライセンス情報に含まれるMACアドレスおよび乱数を取り出す。
【0034】
ステップ503で、取得部31が、ROM21およびHDD23から、ROM21およびHDD23に格納されているMACアドレスおよび乱数を取得する。ステップ504で、判断部32が、ステップ502で取り出したMACアドレスおよび乱数と、ステップ503で取得したMACアドレスおよび乱数とを比較し、一致するか否かを判断する。
【0035】
ステップ503で一致すると判断した場合、ステップ504へ進み、アクティベート済みで、プログラムの機能が利用可能と判断する。一方、一致しないと判断した場合、ステップ505へ進み、プログラムの機能が利用不可と判断する。これらの判断が終了したところで、ステップ506で判断処理を終了する。
【0036】
次に、冗長化により同じプログラムをインストールし、同じ機能を利用するサーバ11の機能構成を、
図6に示す。サーバ11でインストールしたプログラムの機能を利用する場合、サーバ10と同様のアクティベーションが必要となる。これは、データベース12に登録されたライセンス情報を、サーバ10とサーバ11との間で共有することができないからである。
【0037】
具体的には、ライセンス情報に含まれるMACアドレスおよび乱数は、サーバ10のもので、サーバ11は、別のMACアドレスおよび乱数をもつため、MACアドレスおよび乱数の比較において一致せず、利用不可と判断されてしまうからである。
【0038】
そこで、サーバ11は、アクティベーションを実行することなく、機能の利用を可能にするために、機能部として、デコード部40、第1の判断部41、第2の判断部42、取得部43、第3の判断部44を含む構成とされる。これらの機能部は、サーバ10と同様、CPUがプログラムを実行することにより生成される。
【0039】
なお、これらの機能部は、プログラムの実行により実現されるものに限らず、これらの機能部の一部または全部が回路等のハードウェアで実現されていてもよい。また、これらの機能部の一部または全部は、サーバ11内に実装されていなくてもよく、1以上の他の機器等に実装されていてもよいし、サーバ11と1以上の他の機器とに分散して実装されていてもよい。
【0040】
デコード部40は、データベース12に格納された、暗号化されたライセンス情報をデコードする。このデコードにより、ライセンス情報に含まれるMACアドレスおよび乱数を取り出す。ライセンス情報に含まれるMACアドレスおよび乱数は、サーバ10のものである。
【0041】
取得部43は、ROMおよびHDDからMACアドレスおよび乱数を取得する。このMACアドレスおよび乱数は、サーバ11のものである。第3の判断部44は、取り出したMACアドレスおよび乱数と、取得したMACアドレスおよび乱数と比較し、それぞれが一致するかどうかを判断する。この場合、サーバが異なるため、第3の判断部44は、一致しないと判断する。
【0042】
ROMやHDD等の記憶部には、サーバ11のMACアドレスや乱数のほか、事前に冗長化構成に関して設定された設定情報と、機能の利用を許可するシステムとして設定されたシステム情報とが記憶される。
【0043】
冗長化構成をとった一方のサーバを通常動作させ、一方のサーバに異常が発生したときに他方のサーバに切り替えて動作させる場合、通常動作させる通常用サーバがプライマリサーバで、異常時に切り替えられる代替用サーバがセカンダリサーバとされる。設定情報は、サーバ10がプライマリサーバで、サーバ11がセカンダリサーバであることを示す情報とされる。設定情報は、プライマリサーバを特定する情報、例えばIPアドレス等と、自身がセカンダリサーバであることを示す情報とを含むことができる。IPアドレスは一例であるので、プライマリサーバを特定できればいかなる情報であってもよい。
【0044】
システム情報は、プログラムの機能の利用を許可するシステムを識別する識別情報、例えばホスト名等とされる。ホスト名は一例であるので、システムを識別できればいかなる情報であってもよい。
【0045】
第1の判断部41は、取得部43により取得された設定情報に基づき、サーバ11がセカンダリサーバであるか否かを判断する。セカンダリサーバである場合、取得部43が、サーバ11を識別する識別情報としてのホスト名を取得する。そして、第2の判断部42が、取得部43により取得されたホスト名と、記憶部に記憶されたシステム情報(ホスト名)とを比較し、一致するか否かにより、アクティベート済みか否かを判断する。
【0046】
第2の判断部42によりアクティベート済みと判断された場合、サーバ11は、そのプログラムの機能を利用することができる。したがって、サーバ11は、アクティベーションを行うことなく、そのプログラムの機能を利用することが可能となる。
【0047】
一方、第2の判断部42によりアクティベート済みではないと判断された場合、サーバ11は、そのプログラムの機能を利用することはできない。
【0048】
この例では、第3の判断部44によりサーバ11のMACアドレス等と、ライセンス情報に含まれるMACアドレス等とにより、機能の利用可否を判断しているが、一般に、サーバが異なり、利用不可と判断されるので、第3の判断部44は必須のものではない。
【0049】
サーバ11による機能の利用可否の判断処理の流れを、
図7を参照して詳細に説明する。サーバ11は、サーバ10の代替用であるため、サーバ10に実装される監視部によりサーバ10に異常が発生し、停止したかどうかを監視し、停止したとの通知を受けて、同じ機能を利用してサービスの提供を開始する。したがって、サーバ10が停止したとの通知を受けて、ステップ700から処理を開始する。監視部は、例えばOSがwindows(登録商標)である場合、windowsサービスを利用して、サーバ10の停止を監視することができる。
【0050】
ステップ701では、取得部43が、データベース12に登録された、暗号化されたライセンス情報をデータベース12から取得する。ライセンス情報は、プログラムを識別する識別情報が紐付けられており、サーバ11で実行しようとするプログラムの識別情報を参照し、対応するライセンス情報を取得することができる。サーバ10、11は、同じプログラムを実装しているため、プログラムには同じ識別情報が付与されている。
【0051】
ステップ702では、デコード部40が、ライセンスサーバ14の秘密鍵で暗号化されたライセンス情報を、ライセンスサーバ14が提供する公開鍵でデコードし、ライセンス情報に含まれるMACアドレスおよび乱数を取り出す。MACアドレスおよび乱数は、サーバ10のものである。
【0052】
ステップ703で、取得部43が、ROM21およびHDD23から、ROM21およびHDD23に格納されているMACアドレスおよび乱数を取得する。ステップ704で、第3の判断部44が、ステップ702で取り出したMACアドレスおよび乱数と、ステップ703で取得したMACアドレスおよび乱数とを比較し、一致するか否かを判断する。冗長化構成をとったシステムにおいては、MACアドレスおよび乱数は一致しない。
【0053】
一致しないと判断された場合、ステップ705へ進み、取得部43が、設定情報を取得する。ステップ706で、第1の判断部41が、設定情報に基づき、サーバ11がセカンダリサーバであるかどうかを判断する。セカンダリサーバであると判断された場合、ステップ707で、取得部43が、システム情報として記憶されているホスト名を取得する。また、取得部43が、サーバ11に設定されたホスト名も取得する。ステップ708では、第2の判断部42が、取得したホスト名を比較し、一致するか否かを判断する。
【0054】
ステップ708でホスト名が一致すると判断した場合、ステップ709へ進み、アクティベート済みで、そのプログラムの機能が利用可能と判断する。一方、ステップ704で一致すると判断された場合、もしくはステップ706でセカンダリサーバでないと判断された場合、またはステップ708でホスト名が一致しないと判断した場合、ステップ710へ進み、そのプログラムの機能が利用不可と判断する。これらの判断が終了したところで、ステップ711で判断処理を終了する。
【0055】
ちなみに、ステップ704で一致すると判断されるケースとしては、何らかのエラーが生じている場合が考えられる。ステップ706でセカンダリサーバでないと判断されるケースとしては、設定情報が設定されていない場合等が考えられる。ステップ708でホスト名が一致しないと判断されるケースとしては、ホスト名がシステム情報として設定されていない場合やホスト名の入力ミス等が考えられる。
【0056】
システムの冗長化は、同じ機能を有する代替用の機器(サーバ)を用意するものに限らず、1つのサーバ上のリソースを2つの論理区画に分割し、一方を通常用とし、他方を代替用としたものであってもよい。また、通常用と代替用の2つに限らず、3以上の機器や論理区画を使用し、冗長化してもよい。
【0057】
以上のように、セカンダリサーバであるサーバ11に、事前に設定情報およびシステム情報を記憶しておき、それらの情報に基づき、アクティベート済みかどうかを判断する構成とすることで、サーバ10への1回のアクティベーションで、2台のサーバ10、11の機能を利用することが可能となる。
【0058】
これまで本発明を、機能管理システム、情報処理装置およびプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。したがって、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。よって、本発明では、上記のプログラムが記録された記録媒体、そのプログラムを、ネットワークを介して提供するサーバ装置等も提供することができるものである。
【符号の説明】
【0059】
10、11…サーバ
12…データベース
13…ネットワーク
14…ライセンスサーバ
20…CPU
21…ROM
22…RAM
23…HDD
24…通信I/F
25…入出力I/F
26…入力装置
27…表示装置
30…デコード部
31…取得部
32…判断部
40…デコード部
41…第1の判断部
42…第2の判断部
43…取得部
44…第3の判断部
【先行技術文献】
【特許文献】
【0060】