(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024080359
(43)【公開日】2024-06-13
(54)【発明の名称】アクセス制御装置、アクセス制御方法、及びアクセス制御プログラム
(51)【国際特許分類】
H04L 45/24 20220101AFI20240606BHJP
G06F 11/20 20060101ALN20240606BHJP
【FI】
H04L45/24
G06F11/20 631
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022193485
(22)【出願日】2022-12-02
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100157967
【弁理士】
【氏名又は名称】管田 洋明
(72)【発明者】
【氏名】宮田 幸太
【テーマコード(参考)】
5B034
5K030
【Fターム(参考)】
5B034BB11
5B034CC01
5K030GA12
5K030HA08
5K030HC01
5K030LB09
5K030LD20
5K030MB01
5K030MD02
(57)【要約】
【課題】通信ネットワークを介してサービスを提供するシステムの可用性を向上させる。
【解決手段】制御部は、複数のシステムのうち第1システムへ通信ネットワークを介してアクセスするための第1アクセス情報を用いて、第1システムへアクセスし、第1システムから提供されるサービスを利用する。検知部は、第1システムにおける障害の発生を検知する。取得部は、障害の発生が検知された場合、複数のシステムのうち第2システムへ通信ネットワークを介してアクセスするための第2アクセス情報を保持する利用装置から、第2アクセス情報を取得する。制御部は、利用装置から取得された第2アクセス情報を用いて、第2システムへアクセスし、第2システムから提供されるサービスを利用する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のシステムのうち第1システムへ通信ネットワークを介してアクセスするための第1アクセス情報を用いて、前記第1システムへアクセスし、前記第1システムから提供されるサービスを利用する制御部と、
前記第1システムにおける障害の発生を検知する検知部と、
前記障害の発生が検知された場合、前記複数のシステムのうち第2システムへ前記通信ネットワークを介してアクセスするための第2アクセス情報を保持する利用装置から、前記第2アクセス情報を取得する取得部と、
を備え、
前記制御部は、前記利用装置から取得された前記第2アクセス情報を用いて、前記第2システムへアクセスし、前記第2システムから提供される前記サービスを利用することを特徴とするアクセス制御装置。
【請求項2】
前記制御部は、前記第2アクセス情報を用いて前記第2システムを起動し、前記第2アクセス情報を用いて、起動後の前記第2システムから提供される前記サービスを利用することを特徴とする請求項1記載のアクセス制御装置。
【請求項3】
前記第2システムは、前記サービスを提供するサービス提供装置と、前記サービス提供装置を管理する管理装置とを含み、
前記制御部は、前記第2アクセス情報を用いて前記管理装置を起動し、
前記管理装置は、前記サービス提供装置を起動するとともに、前記サービス提供装置へ接続するための接続情報を、前記通信ネットワークを介して前記アクセス制御装置へ送信し、
前記制御部は、前記第2アクセス情報と前記管理装置から受信した前記接続情報とを用いて、起動後の前記サービス提供装置へアクセスし、前記サービス提供装置から提供される前記サービスを利用することを特徴とする請求項2記載のアクセス制御装置。
【請求項4】
前記取得部は、前記アクセス制御装置が前記第2アクセス情報を保持しているか否かをチェックし、前記アクセス制御装置が前記第2アクセス情報を保持していない場合、前記利用装置に対して前記第2アクセス情報を要求することで、前記利用装置から前記第2アクセス情報を取得することを特徴とする請求項1乃至3の何れか1項に記載のアクセス制御装置。
【請求項5】
コンピュータが、
複数のシステムのうち第1システムへ通信ネットワークを介してアクセスするための第1アクセス情報を用いて、前記第1システムへアクセスし、
前記第1システムから提供されるサービスを利用し、
前記第1システムにおける障害の発生を検知し、
前記複数のシステムのうち第2システムへ前記通信ネットワークを介してアクセスするための第2アクセス情報を保持する利用装置から、前記第2アクセス情報を取得し、
前記利用装置から取得された前記第2アクセス情報を用いて、前記第2システムへアクセスし、
前記第2システムから提供される前記サービスを利用する、
ことを特徴とするアクセス制御方法。
【請求項6】
複数のシステムのうち第1システムへ通信ネットワークを介してアクセスするための第1アクセス情報を用いて、前記第1システムへアクセスし、
前記第1システムから提供されるサービスを利用し、
前記第1システムにおける障害の発生を検知し、
前記複数のシステムのうち第2システムへ前記通信ネットワークを介してアクセスするための第2アクセス情報を保持する利用装置から、前記第2アクセス情報を取得し、
前記利用装置から取得された前記第2アクセス情報を用いて、前記第2システムへアクセスし、
前記第2システムから提供される前記サービスを利用する、
処理をコンピュータに実行させるためのアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクセス制御装置、アクセス制御方法、及びアクセス制御プログラムに関する。
【背景技術】
【0002】
デバイスの接続先のアクセスポイントに障害が発生した場合であっても、デバイスが特定のサービスを引き続き利用できるようにするサーバが知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のクラウドシステムにおいて、クラウド全体で障害が発生した場合、デバイスがサービスを引き続き利用することが難しくなる。
【0005】
1つの側面において、本発明は、通信ネットワークを介してサービスを提供するシステムの可用性を向上させることを目的とする。
【課題を解決するための手段】
【0006】
1つの実施形態によれば、アクセス制御装置は、制御部、検知部、及び取得部を含む。制御部は、複数のシステムのうち第1システムへ通信ネットワークを介してアクセスするための第1アクセス情報を用いて、第1システムへアクセスし、第1システムから提供されるサービスを利用する。検知部は、第1システムにおける障害の発生を検知する。
【0007】
取得部は、障害の発生が検知された場合、複数のシステムのうち第2システムへ通信ネットワークを介してアクセスするための第2アクセス情報を保持する利用装置から、第2アクセス情報を取得する。制御部は、利用装置から取得された第2アクセス情報を用いて、第2システムへアクセスし、第2システムから提供されるサービスを利用する。
【発明の効果】
【0008】
1つの側面において、通信ネットワークを介してサービスを提供するシステムの可用性を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態のアクセス制御装置の機能的構成図である。
【
図2】第1のアクセス制御処理のフローチャートである。
【
図5】データベースサーバが保持するデバイス情報を示す図である。
【
図6】データベースサーバが保持するサービス情報を示す図である。
【
図8】デバイスが記憶するデバイス情報を示す図である。
【
図9】第2のアクセス制御処理のフローチャートである。
【
図11】第1障害検知処理のフローチャートである。
【
図13】第1接続先変更処理のフローチャートである。
【
図14】第2障害検知処理のフローチャートである。
【
図15】接続ツール取得処理のフローチャートである。
【
図17】第2接続先変更処理のフローチャートである。
【
図18】アクセス制御処理のシーケンスを示す図である。
【
図19】アクセス制御処理の第1の状態を示す図である。
【
図20】アクセス制御処理の第2の状態を示す図である。
【
図21】アクセス制御処理の第3の状態を示す図である。
【
図22】情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、実施形態を詳細に説明する。
【0011】
図1は、実施形態のアクセス制御装置の機能的構成例を示している。
図1のアクセス制御装置101は、制御部111、検知部112、及び取得部113を含む。
【0012】
図2は、
図1のアクセス制御装置101が行う第1のアクセス制御処理の例を示すフローチャートである。まず、制御部111は、複数のシステムのうち第1システムへ通信ネットワークを介してアクセスするための第1アクセス情報を用いて、第1システムへアクセスし(ステップ201)、第1システムから提供されるサービスを利用する(ステップ202)。次に、検知部112は、第1システムにおける障害の発生を検知する(ステップ203)。
【0013】
次に、取得部113は、複数のシステムのうち第2システムへ通信ネットワークを介してアクセスするための第2アクセス情報を保持する利用装置から、第2アクセス情報を取得する(ステップ204)。そして、制御部111は、利用装置から取得された第2アクセス情報を用いて、第2システムへアクセスし(ステップ205)、第2システムから提供されるサービスを利用する(ステップ206)。
【0014】
図1のアクセス制御装置101によれば、通信ネットワークを介してサービスを提供するシステムの可用性を向上させることができる。
【0015】
図3は、
図1のアクセス制御装置101を含むクラウドサービスシステムの構成例を示している。
図3のクラウドサービスシステムは、サービス提供システム311-1~サービス提供システム311-N(Nは2以上の整数)及びデバイス312-1~デバイス312-M(Mは2以上の整数)を含む。サービス提供システム311-1~サービス提供システム311-Nは、複数のシステムに対応する。
【0016】
各サービス提供システム311-i(i=1~N)は、通信ネットワーク313を介して、他のサービス提供システム311-i及びデバイス312-j(j=1~M)と通信する。通信ネットワーク313は、例えば、公衆回線である。通信ネットワーク313は、無線通信ネットワークであってもよく、有線通信ネットワークであってもよい。
【0017】
図4は、
図3のサービス提供システム311-iの構成例を示している。
図4のサービス提供システム311-iは、サービス提供サーバ411-i、管理サーバ412-i、及びデータベースサーバ413-iを含む。サービス提供サーバ411-i、管理サーバ412-i、及びデータベースサーバ413-iは、情報処理装置(コンピュータ)である。
【0018】
サービス提供サーバ411-iは、通信ネットワーク313を介してデバイス312-jにクラウドサービスを提供する。提供されるクラウドサービスは、例えば、ファイルストレージサービス、グループウェアサービス、ワークフローサービス、財務会計サービス、情報処理サービス等である。以下では、クラウドサービスを指して、単にサービスと記載することがある。
【0019】
データベースサーバ413-iは、デバイス情報及びサービス情報を含む管理情報を保持する。デバイス情報は、デバイス312-1~デバイス312-Mに関する情報であり、サービス情報は、サービスに関する情報である。管理サーバ412-iは、サービス提供サーバ411-i及びデータベースサーバ413-iを管理する。
【0020】
サービス提供サーバ411-iは、サービスを提供するサービス提供装置の一例であり、管理サーバ412-iは、サービス提供装置を管理する管理装置の一例である。
【0021】
各デバイス312-jは、通信ネットワーク313を介して、何れかのサービス提供システム311-i内のサービス提供サーバ411-iへアクセスし、サービス提供サーバ411-iから提供されるクラウドサービスを利用する。デバイス312-jは、情報処理装置である。デバイス312-jは、
図1のアクセス制御装置101に対応する。デバイス312-1~デバイス312-Mは、企業、団体等の組織に属するM台の情報処理装置であってもよい。
【0022】
図5は、データベースサーバ413-iが保持するデバイス情報の例を示している。
図5のデバイス情報は、デバイスID、デバイス種別、サービスID、接続ツールID、及び異常フラグの項目を含む。デバイス情報の各エントリは、各デバイス312-jの情報を含む。
【0023】
デバイスIDは、デバイス312-jの識別情報であり、デバイス種別は、デバイス312-jの種別を表す。デバイス種別“Low”は、低性能デバイスを表し、デバイス種別“High”は、高性能デバイスを表す。低性能デバイスは、CPU(Central Processing Unit)、メモリ等の計算リソースが少ない省リソースデバイスに対応する。
【0024】
サービスIDは、デバイス312-jが利用しているサービスの識別情報であり、接続ツールIDは、デバイス312-jが保持している接続ツールの識別情報である。接続ツールは、デバイス312-jが通信ネットワーク313を介して何れかのサービス提供システム311-iへアクセスするためのプログラムである。接続ツールは、サービス提供システム311-i内の管理サーバ412-iを起動するための起動API(Application Programming Interface)を含む。
【0025】
異常フラグは、デバイス312-jに異常があるか否かを示すフラグである。異常フラグ“0”は、異常がないことを表し、異常フラグ“1”は、異常があることを表す。
【0026】
例えば、デバイス312-1のデバイスIDは“T001”であり、デバイス種別は“Low”であり、サービスIDは“S001”であり、接続ツールIDは“P1”であり、異常フラグは“0”である。したがって、デバイス312-1は、省リソースデバイスであり、接続ツールP1のみを保持している。接続ツールP1は、サービス提供システム311-1へアクセスするための接続ツールである。
【0027】
デバイス312-2のデバイスIDは“T002”であり、デバイス種別は“High”であり、サービスIDは“S002”であり、接続ツールIDは“P1/P2”であり、異常フラグは“0”である。したがって、デバイス312-1は、省リソースデバイスではなく、接続ツールP1及び接続ツールP2を保持している。接続ツールP2は、サービス提供システム311-2へアクセスするための接続ツールである。
【0028】
図6は、データベースサーバ413-iが保持するサービス情報の例を示している。
図6のサービス情報は、サービスID、異常フラグ、環境、接続情報、及びスペックの項目を含む。サービス情報の各エントリは、各サービスの情報を含む。
【0029】
サービスIDは、サービスの識別情報であり、異常フラグは、サービスに異常があるか否かを示すフラグである。異常フラグ“0”は、異常がないことを表し、異常フラグ“1”は、異常があることを表す。
【0030】
環境は、サービスが提供される環境を表し、接続情報は、サービスを利用するための接続先アドレスを表す。接続先アドレスは、例えば、そのサービスを提供するサービス提供サーバ411-iのIP(Internet Protocol)アドレスであってもよい。スペックは、サービスを利用するための性能条件を表す。スペックは、例えば、メモリ容量であってもよい。
【0031】
例えば、サービスS001の異常フラグは“0”であり、環境は“IoT(Internet of Things)サービス”であり、接続情報は“10.?.?.?”であり、スペックは“1G”である。サービスS002の異常フラグは“0”であり、環境は“VM(Virtual Machine)”であり、接続情報は“10.?.?.?”であり、スペックは“1G”である。
【0032】
図7は、
図3のデバイス312-jの機能的構成例を示している。
図7のデバイス312-jは、制御部711、検知部712、取得部713、通信部714、及び記憶部715を含む。制御部711、検知部712、及び取得部713は、
図1の制御部111、検知部112、及び取得部113にそれぞれ対応する。
【0033】
記憶部715は、デバイス情報721及び接続ツール情報722を記憶する。デバイス情報721は、デバイス312-1~デバイス312-Mに関する情報である。接続ツール情報722は、デバイス312-jが保持する1つ又は複数の接続ツールを含む。
【0034】
図8は、デバイス312-jが記憶するデバイス情報721の例を示している。
図8のデバイス情報721は、デバイスID、自デバイス、サービスID、接続ツールID、主接続先、異常フラグ、及び副接続先の項目を含む。デバイス情報721の各エントリは、各デバイス312-jの情報を含む。
【0035】
デバイスIDは、デバイス312-jの識別情報であり、自デバイスは、
図8のデバイス情報721を記憶しているデバイス312-jであるか否かを示す。自デバイス“〇”は、デバイス情報721を記憶しているデバイス312-jであることを示し、自デバイス“-”は、他のデバイス312-jであることを示す。
【0036】
サービスIDは、デバイス312-jが利用しているサービスの識別情報であり、接続ツールIDは、デバイス312-jが保持している接続ツールの識別情報である。
【0037】
主接続先は、サービスIDが示すサービスを利用するためにアクセスするサービス提供システム311-iのうち、第1優先順位のサービス提供システム311-iの識別情報である。異常フラグは、主接続先のサービス提供システム311-iに異常があるか否かを示すフラグである。異常フラグ“0”は、異常がないことを表し、異常フラグ“1”は、異常があることを表す。
【0038】
副接続先は、サービスIDが示すサービスを利用するためにアクセスするサービス提供システム311-iのうち、第2優先順位のサービス提供システム311-iの識別情報である。
【0039】
例えば、デバイスID“T001”が示すデバイス312-1の自デバイスは“〇”であり、サービスIDは“S001”であり、接続ツールIDは“P1”であり、主接続先は“Q1”であり、異常フラグは“0”であり、副接続先は“Q2”である。したがって、
図8のデバイス情報721を記憶しているデバイス312-jは、デバイス312-1である。“Q1”は、サービス提供システム311-1の識別情報であり、“Q2”は、サービス提供システム311-2の識別情報である。
【0040】
デバイスID“T002”が示すデバイス312-2の自デバイスは“-”であり、接続ツールIDは“P1/P2”である。デバイス312-2は、
図8のデバイス情報721を記憶しているデバイス312-jではないため、デバイス312-2のサービスID、主接続先、異常フラグ、及び副接続先は登録されていない。
【0041】
通信部714は、通信ネットワーク313を介して、何れかのサービス提供システム311-i内のサービス提供サーバ411-i及び管理サーバ412-iと通信する。また、通信部714は、通信ネットワーク313を介して、他のデバイス312-jとも通信する。
【0042】
制御部711は、デバイス情報721を参照して、自デバイス“〇”を有するエントリの主接続先を特定し、接続ツール情報722に含まれる接続ツールの中から、主接続先へアクセスするための接続ツールを選択する。次に、制御部711は、選択された接続ツールを用いて、通信部714を介して、主接続先のサービス提供システム311-i内のサービス提供サーバ411-iへアクセスする。そして、制御部711は、通信部714を介して、アクセス先のサービス提供サーバ411-iから提供されるサービスを利用する。
【0043】
主接続先のサービス提供システム311-iは、第1システムに対応し、主接続先へアクセスするための接続ツールは、第1アクセス情報に対応する。
【0044】
検知部712は、一定周期で、アクセス先のサービス提供システム311-i内の管理サーバ412-iへのアクセスを試行し、アクセスの可否をチェックする。管理サーバ412-iへアクセスできない場合、検知部712は、アクセス先のサービス提供システム311-iにおいて障害が発生したと判定することで、障害の発生を検知する。そして、検知部712は、障害の発生を取得部713へ通知する。
【0045】
取得部713は、検知部712から障害の発生が通知された場合、デバイス情報721を参照して、自デバイス“〇”を有するエントリの副接続先を特定する。次に、取得部713は、そのエントリの接続ツールIDに、副接続先へアクセスするための接続ツールの接続ツールIDが含まれているか否かをチェックする。
【0046】
これにより、取得部713は、副接続先へアクセスするための接続ツールを自デバイスが保持しているか否かをチェックする。自デバイスは、取得部713によって参照されるデバイス情報721を記憶しているデバイス312-jに対応する。
【0047】
接続ツールIDに副接続先へアクセスするための接続ツールの接続ツールIDが含まれている場合、制御部711は、接続ツール情報722に含まれる接続ツールの中から、副接続先へアクセスするための接続ツールを選択する。次に、制御部711は、選択された接続ツールを用いて、通信部714を介して、副接続先のサービス提供システム311-i内のサービス提供サーバ411-iへアクセスする。そして、制御部711は、通信部714を介して、アクセス先のサービス提供サーバ411-iから提供されるサービスを利用する。
【0048】
一方、接続ツールIDに副接続先へアクセスするための接続ツールの接続ツールIDが含まれていない場合、取得部713は、デバイス情報721を参照して、その接続ツールを保持している他のデバイス312-jのデバイスIDを特定する。
【0049】
次に、取得部713は、特定されたデバイスIDが示すデバイス312-jに対して、通信部714を介して、副接続先へアクセスするための接続ツールを要求する。そして、取得部713は、通信部714を介して、そのデバイス312-jから、副接続先へアクセスするための接続ツールを取得する。
【0050】
次に、取得部713は、取得された接続ツールを接続ツール情報722に追加し、デバイス情報721において、自デバイス“〇”を有するエントリの接続ツールIDに、取得された接続ツールの接続ツールIDを追加する。
【0051】
制御部711は、デバイス情報721を参照して、自デバイス“〇”を有するエントリの副接続先を特定し、接続ツール情報722に含まれる接続ツールの中から、副接続先へアクセスするための接続ツールを選択する。次に、制御部711は、選択された接続ツールを用いて、通信部714を介して、副接続先のサービス提供システム311-i内のサービス提供サーバ411-iへアクセスする。そして、制御部711は、通信部714を介して、アクセス先のサービス提供サーバ411-iから提供されるサービスを利用する。
【0052】
副接続先のサービス提供システム311-iは、第2システムに対応し、副接続先へアクセスするための接続ツールは、第2アクセス情報に対応する。副接続先へアクセスするための接続ツールを保持している他のデバイス312-jは、第2アクセス情報を保持する利用装置に対応する。
【0053】
図3のクラウドサービスシステムによれば、主接続先のサービス提供システム311-iで障害が発生し、そのサービス提供システム311-iが停止した場合であっても、副接続先のサービス提供システム311-iが同じサービスを提供することができる。これにより、デバイス312-jは同じサービスを引き続き利用することができるため、クラウドサービスシステムの可用性が向上するとともに、サービスのレベルも向上する。
【0054】
副接続先へアクセスするための接続ツールを保持していないデバイス312-jは、その接続ツールを他のデバイス312-jから取得して副接続先へアクセスすることで、同じサービスを引き続き利用することができる。したがって、複数の接続ツールを保持することが難しい省リソースデバイスであっても、主接続先から副接続先へのサービス提供システム311-iの変更に応じて、アクセス先を変更することが可能になる。
【0055】
図9は、
図3のクラウドサービスシステムが行う第2のアクセス制御処理の例を示すフローチャートである。まず、各サービス提供システム311-i内のデータベースサーバ413-iは、他のサービス提供システム311-i内のデータベースサーバ413-iとの間で、定期的に同期処理を行う(ステップ901)。
【0056】
次に、各サービス提供システム311-i内の管理サーバ412-iは、第1障害検知処理を行い(ステップ902)、サービス又はデバイス312-jに障害が発生しているか否かをチェックする(ステップ903)。
【0057】
同じサービス提供システム311-i内のデータベースサーバ413-iが保持しているサービス情報において、何れかのサービスの異常フラグが“1”に設定された場合、そのサービスに障害が発生していると判定される。また、同じサービス提供システム311-i内のデータベースサーバ413-iが保持しているデバイス情報において、何れかのデバイス312-jの異常フラグが“1”に設定された場合、そのデバイス312-jに障害が発生していると判定される。
【0058】
サービス又はデバイス312-jに障害が発生している場合(ステップ903,YES)、管理サーバ412-iは、障害の発生を示すアラートを管理者に通知する(ステップ904)。そして、管理サーバ412-iは、接続先構築処理を行い(ステップ905)、第1接続先変更処理を行う(ステップ906)。
【0059】
次に、各デバイス312-jの検知部712は、第2障害検知処理を行い(ステップ907)、現在アクセスしているサービス提供システム311-iに障害が発生しているか否かをチェックする(ステップ908)。
【0060】
サービス提供システム311-iに障害が発生している場合(ステップ908,YES)、検知部712は、デバイス情報721において、自デバイス“〇”を有するエントリの異常フラグを“1”に設定する。そして、検知部712は、障害の発生を示すアラートを取得部713及び管理者に通知する(ステップ909)。
【0061】
次に、取得部713は、デバイス情報721を参照して、副接続先へアクセスするための接続ツールを自デバイスが保持しているか否かをチェックする(ステップ910)。その接続ツールを自デバイスが保持していない場合(ステップ910,NO)、取得部713は、接続ツール取得処理を行う(ステップ911)。そして、制御部711は、接続先起動処理を行い(ステップ912)、第2接続先変更処理を行う(ステップ913)。
【0062】
サービス又はデバイス312-jの何れにも障害が発生していない場合(ステップ903,NO)、クラウドサービスシステムは、ステップ907以降の処理を行う。サービス提供システム311-iに障害が発生していない場合(ステップ908,NO)、クラウドサービスシステムは、処理を終了する。副接続先へアクセスするための接続ツールを自デバイスが保持している場合(ステップ910,YES)、クラウドサービスシステムは、ステップ912以降の処理を行う。
【0063】
図10は、
図9のステップ901における同期処理の例を示すフローチャートである。まず、各サービス提供システム311-i内のデータベースサーバ413-iは、必要に応じてデバイス情報又はサービス情報を更新し(ステップ1001)、デバイス情報又はサービス情報に変更があるか否かをチェックする(ステップ1002)。
【0064】
変更がある場合(ステップ1002,YES)、データベースサーバ413-iは、他のサービス提供システム311-i内のデータベースサーバ413-iへ変更された情報を送信し、デバイス情報又はサービス情報の更新を要求する(ステップ1003)。他のサービス提供システム311-i内のデータベースサーバ413-iは、受信した情報に基づいてデバイス情報又はサービス情報を更新する。
【0065】
変更がない場合(ステップ1002,NO)、データベースサーバ413-iは、処理を終了する。
【0066】
図11は、
図9のステップ902における第1障害検知処理の例を示すフローチャートである。まず、各サービス提供システム311-i内の管理サーバ412-iは、同じサービス提供システム311-i内のサービス提供サーバ411-iの状態を取得する(ステップ1101)。そして、管理サーバ412-iは、サービス提供サーバ411-iに障害が発生しているか否かをチェックする(ステップ1102)。
【0067】
サービス提供サーバ411-iに障害が発生している場合(ステップ1102,YES)、管理サーバ412-iは、同じサービス提供システム311-i内のデータベースサーバ413-iが保持しているサービス情報にアクセスする。そして、管理サーバ412-iは、障害が発生したサービス提供サーバ411-iが提供しているサービスの異常フラグを“1”に設定する(ステップ1103)。
【0068】
次に、管理サーバ412-iは、同じサービス提供システム311-iのサービスを利用している各デバイス312-jとの通信を試行し(ステップ1104)、デバイス312-jに障害が発生しているか否かをチェックする(ステップ1105)。デバイス312-jからの応答が確認できた場合、デバイス312-jに障害が発生していないと判定され、デバイス312-jからの応答が確認できない場合、デバイス312-jに障害が発生していると判定される。
【0069】
デバイス312-jに障害が発生している場合(ステップ1105,YES)、管理サーバ412-iは、同じサービス提供システム311-i内のデータベースサーバ413-iが保持しているデバイス情報にアクセスする。そして、管理サーバ412-iは、障害が発生したデバイス312-jの異常フラグを“1”に設定する(ステップ1106)。
【0070】
サービス提供サーバ411-iに障害が発生していない場合(ステップ1102,NO)、管理サーバ412-iは、ステップ1104以降の処理を行う。デバイス312-jに障害が発生していない場合(ステップ1105,NO)、管理サーバ412-iは、処理を終了する。
【0071】
図12は、
図9のステップ905における接続先構築処理の例を示すフローチャートである。まず、管理サーバ412-iは、同じサービス提供システム311-i内のデータベースサーバ413-iが保持しているサービス情報にアクセスする。そして、管理サーバ412-iは、異常フラグ“1”を有するエントリの環境を取得する(ステップ1201)。
【0072】
次に、管理サーバ412-iは、同じサービスを同じ環境で提供するサービス提供サーバ411-iを、同じサービス提供システム311-i内に再構築する(ステップ1202)。管理サーバ412-iは、例えば、サービス提供システム311-i内の空いているCPU、メモリ等の計算リソースを組み合わせることで、サービス提供サーバ411-iを再構築する。
【0073】
次に、管理サーバ412-iは、異常フラグ“1”を有するエントリの接続情報を、再構築されたサービス提供サーバ411-iの接続情報に変更し、そのエントリの異常フラグを“0”に設定する(ステップ1203)。
【0074】
図13は、
図9のステップ906における第1接続先変更処理の例を示すフローチャートである。まず、管理サーバ412-iは、再構築されたサービス提供サーバ411-iの接続情報を、障害が発生したサービス提供サーバ411-iが提供するサービスを利用しているデバイス312-jへ送信する(ステップ1301)。
【0075】
デバイス312-jの制御部711は、通信部714を介して、管理サーバ412-iから接続情報を受信する。そして、制御部711は、受信した接続情報を用いて、通信部714を介して、再構築されたサービス提供サーバ411-iへのアクセスを試行し(ステップ1302)、アクセスの可否をチェックする(ステップ1303)。サービス提供サーバ411-iへアクセスできない場合(ステップ1303,NO)、制御部711は、再構築されたサービス提供サーバ411-iにおける障害の発生を示すアラートを、管理者に通知する(ステップ1304)。
【0076】
サービス提供サーバ411-iへアクセスできた場合(ステップ1303,YES)、制御部711は、処理を終了する。その後、制御部711は、通信部714を介して、アクセス先のサービス提供サーバ411-iから提供されるサービスを利用する。
【0077】
図14は、
図9のステップ907における第2障害検知処理の例を示すフローチャートである。検知部712は、一定周期で、通信部714を介して、アクセス先のサービス提供システム311-i内の管理サーバ412-iへのアクセスを試行する(ステップ1401)。
【0078】
管理サーバ412-iへアクセスできない場合、
図9のステップ908において、検知部712は、サービス提供システム311-iに障害が発生していると判定する。管理サーバ412-iへアクセスできた場合、検知部712は、サービス提供システム311-iに障害が発生していないと判定する。
【0079】
図15は、
図9のステップ911における接続ツール取得処理の例を示すフローチャートである。まず、取得部713は、デバイス情報721の接続ツールIDを参照して(ステップ1501)、副接続先へアクセスするための接続ツールを保持している他のデバイス312-jが存在するか否かをチェックする(ステップ1502)。
【0080】
何れかのエントリの接続ツールIDに、副接続先へアクセスするための接続ツールの接続ツールIDが含まれている場合、その接続ツールを保持している他のデバイス312-jが存在すると判定され、そのエントリのデバイスIDが特定される。
【0081】
何れのエントリの接続ツールIDにも、副接続先へアクセスするための接続ツールの接続ツールIDが含まれていない場合、その接続ツールを保持している他のデバイス312-jが存在しないと判定される。
【0082】
他のデバイス312-jが存在する場合(ステップ1502,YES)、取得部713は、そのデバイス312-jに対して、通信部714を介して、副接続先へアクセスするための接続ツールの送信を要求する(ステップ1503)。要求先のデバイス312-jは、副接続先へアクセスするための接続ツールを複製して、要求元のデバイス312-jへ送信する。
【0083】
次に、取得部713は、要求先のデバイス312-jから、通信部714を介して、副接続先へアクセスするための接続ツールを受信する(ステップ1504)。そして、取得部713は、受信した接続ツールを接続ツール情報722に追加し、デバイス情報721において、自デバイス“〇”を有するエントリの接続ツールIDに、受信した接続ツールの接続ツールIDを追加する。
【0084】
次に、取得部713は、自デバイスが省リソースデバイスであるか否かをチェックする(ステップ1505)。自デバイスが省リソースデバイスである場合(ステップ1505,YES)、取得部713は、主接続先へアクセスするための接続ツールを接続ツール情報722から削除する(ステップ1506)。そして、取得部713は、デバイス情報721において、自デバイス“〇”を有するエントリの接続ツールIDから、削除された接続ツールの接続ツールIDを削除する。
【0085】
他のデバイス312-jが存在しない場合(ステップ1502,NO)、取得部713は、副接続先へアクセスするための接続ツールが取得できないことを示すアラートを、管理者に通知する(ステップ1507)。自デバイスが省リソースデバイスではない場合(ステップ1505,NO)、取得部713は、処理を終了する。
【0086】
図16は、
図9のステップ912における接続先起動処理の例を示すフローチャートである。まず、制御部711は、デバイス情報721を参照して、自デバイス“〇”を有するエントリの副接続先を特定し、接続ツール情報722に含まれる接続ツールの中から、副接続先へアクセスするための接続ツールを選択する。そして、制御部711は、選択された接続ツールから、副接続先のサービス提供システム311-i内の管理サーバ412-iを起動するための起動APIを抽出し、その起動APIを実行する(ステップ1601)。
【0087】
次に、制御部711は、副接続先の管理サーバ412-iが起動されたか否かをチェックする(ステップ1602)。管理サーバ412-iからの応答が確認できた場合、管理サーバ412-iが起動されたと判定され、管理サーバ412-iからの応答が確認できない場合、管理サーバ412-iが起動されないと判定される。
【0088】
管理サーバ412-iが起動された場合(ステップ1602,YES)、その管理サーバ412-iは、同じサービス提供システム311-i内のデータベースサーバ413-iが保持しているサービス情報を参照する。次に、管理サーバ412-iは、サービス情報に基づいて、同じサービス提供システム311-i内のサービス提供サーバ411-iを起動する(ステップ1603)。
【0089】
そして、管理サーバ412-iは、起動されたサービス提供サーバ411-iの接続情報を、起動APIを実行したデバイス312-jへ送信する。
【0090】
管理サーバ412-iが起動されない場合(ステップ1602,NO)、制御部711は、副接続先のサービス提供システム311-iへアクセスできないことを示すアラートを、管理者に通知する(ステップ1604)。
【0091】
サービスを利用するデバイス312-jが起動APIを実行して管理サーバ412-iを起動することで、事前にサービス提供システム311-iを二重化しておく必要がなくなる。したがって、冗長なシステムの構築に伴うコストの増加を防止することができる。
【0092】
図17は、
図9のステップ913における第2接続先変更処理の例を示すフローチャートである。まず、制御部711は、通信部714を介して、副接続先の管理サーバ412-iから、サービス提供サーバ411-iの接続情報を受信する(ステップ1701)。そして、制御部711は、受信した接続情報と副接続先へアクセスするための接続ツールとを用いて、通信部714を介して、副接続先のサービス提供サーバ411-iへのアクセスを試行し、アクセスの可否をチェックする(ステップ1702)。
【0093】
サービス提供サーバ411-iへアクセスできた場合(ステップ1702,YES)、制御部711は、そのサービス提供サーバ411-iから提供されるサービスを利用する(ステップ1703)。サービス提供サーバ411-iへアクセスできない場合(ステップ1702,NO)、制御部711は、副接続先のサービス提供システム311-iへアクセスできないことを示すアラートを、管理者に通知する(ステップ1704)。
【0094】
図18は、
図3のクラウドサービスシステムにおいて、N=M=2の場合に行われるアクセス制御処理のシーケンスの例を示している。サービス提供システム311-1内のデータベースサーバ413-1は、例えば、
図5に示したデバイス情報と
図6に示したサービス情報を記憶している。サービス提供システム311-2内のデータベースサーバ413-2も、データベースサーバ413-1と同様のデバイス情報及びサービス情報を記憶している。デバイス312-1は、例えば、
図8に示したデバイス情報721を記憶している。
【0095】
したがって、デバイスID“T001”を有するデバイス312-1は、省リソースデバイスであり、接続ツールP1のみを保持している。デバイスID“T002”を有するデバイス312-2は、省リソースデバイスではなく、接続ツールP1及び接続ツールP2を保持している。デバイス312-1は、接続ツールP1を用いて、主接続先であるサービス提供システム311-1へアクセスし、サービス提供サーバ411-1から提供されるサービスS001を利用している。
【0096】
まず、サービス提供システム311-1内のデータベースサーバ413-1は、デバイス情報又はサービス情報を更新する(手順1801)。次に、データベースサーバ413-1は、サービス提供システム311-2内のデータベースサーバ413-2へ変更された情報を送信し、デバイス情報又はサービス情報の更新を要求する(手順1802)。そして、サービス提供システム311-2内のデータベースサーバ413-2は、受信した情報に基づいてデバイス情報又はサービス情報を更新する(手順1803)。
【0097】
次に、サービス提供システム311-1内の管理サーバ412-1は、サービス提供サーバ411-1又はデバイス312-1に障害が発生しているか否かをチェックする(手順1804)。
【0098】
サービス提供サーバ411-1に障害が発生している場合、管理サーバ412-1は、データベースサーバ413-1が保持しているサービス情報のサービスS001の異常フラグを“1”に設定する。デバイス312-1に障害が発生している場合、管理サーバ412-1は、データベースサーバ413-1が保持しているデバイス情報のデバイスT001の異常フラグを“1”に設定する。
【0099】
次に、管理サーバ412-1は、サービス情報及びデバイス情報の異常フラグを参照して、サービスS001又はデバイス312-1に障害が発生しているか否かをチェックする(手順1805)。
【0100】
サービスS001又はデバイス312-1に障害が発生している場合、管理サーバ412-1は、アラートを管理者に通知する。そして、管理サーバ412-iは、サービスS001を提供するサービス提供サーバ411-1を再構築し(手順1806)、再構築されたサービス提供サーバ411-1の接続情報をデバイス312-1へ送信する(手順1807)。デバイス312-1は、管理サーバ412-1から受信した接続情報を用いて、再構築されたサービス提供サーバ411-1へアクセスする(手順1808)。
【0101】
サービスS001又はデバイス312-1の何れにも障害が発生していない場合、手順1806~手順1808の処理はスキップされる。
【0102】
次に、デバイス312-1は、一定周期で管理サーバ412-1へのアクセスを試行し(手順1809)、サービス提供システム311-1に障害が発生しているか否かをチェックする(手順1810)。
【0103】
サービス提供システム311-1に障害が発生している場合、デバイス312-1は、デバイス情報721のデバイスT001の異常フラグを“1”に設定し、アラートを管理者に通知する。
【0104】
次に、デバイス312-1は、デバイス情報721を参照して、副接続先であるサービス提供システム311-2へアクセスするための接続ツールP2を、自デバイスが保持しているか否かをチェックする(手順1811)。
【0105】
デバイス312-1は接続ツールP2を保持していないため、デバイス312-1は、デバイス情報721の接続ツールIDを参照して、接続ツールP2を保持している他のデバイス312-jが存在するか否かをチェックする(手順1812)。そして、デバイス312-1は、デバイス312-2が接続ツールP2を保持していることを検出する。
【0106】
次に、デバイス312-1は、デバイス312-2に対して接続ツールP2の送信を要求し(手順1813)、デバイス312-2から接続ツールP2を受信する(手順1814)。そして、デバイス312-1は、接続ツールP2を接続ツール情報722に追加する。デバイス312-1は省リソースデバイスであるため、デバイス312-1は、使用していた接続ツールP1を接続ツール情報722から削除する(手順1815)。
【0107】
次に、デバイス312-1は、接続ツールP2から、サービス提供システム311-2内の管理サーバ412-2を起動するための起動APIを抽出し、その起動APIを実行する(手順1816)。管理サーバ412-2が起動されない場合、デバイス312-1は、アラートを管理者に通知する(手順1817)。
【0108】
管理サーバ412-2が起動された場合(手順1818)、管理サーバ412-2は、サービス提供サーバ411-2を起動し(手順1819)、サービス提供サーバ411-2の接続情報をデバイス312-1へ送信する(手順1820)。
【0109】
次に、デバイス312-1は、管理サーバ412-2から受信した接続情報と接続ツールP2とを用いて、サービス提供サーバ411-2へのアクセスを試行する(手順1821)。サービス提供サーバ411-2へアクセスできない場合、デバイス312-1は、アラートを管理者に通知する。
【0110】
サービス提供システム311-1に障害が発生していない場合、手順1811~手順1821の処理はスキップされる。
【0111】
図19は、
図3のクラウドサービスシステムにおいて、N=M=2の場合に行われるアクセス制御処理の第1の状態の例を示している。
図20は、アクセス制御処理の第2の状態の例を示しており、
図21は、アクセス制御処理の第3の状態の例を示している。以下では、
図18のシーケンスを参照しながら、アクセス制御処理における状態の推移について説明する。
【0112】
図19の第1の状態において、サービス提供システム311-1内のデータベースサーバ413-1は、例えば、
図5に示したデバイス情報と
図6に示したサービス情報を記憶している。サービス提供システム311-2内のデータベースサーバ413-2も、データベースサーバ413-1と同様のデバイス情報及びサービス情報を記憶している。デバイス312-1は、例えば、
図8に示したデバイス情報721を記憶している。
【0113】
したがって、デバイスID“T001”を有するデバイス312-1は、省リソースデバイスであり、接続ツールID“P1”を有する接続ツール1911のみを保持している。デバイスID“T002”を有するデバイス312-2は、省リソースデバイスではなく、接続ツール1911と、接続ツールID“P2”を有する接続ツール1912とを保持している。
【0114】
デバイス312-1は、接続ツール1911を用いて、主接続先であるサービス提供システム311-1へアクセスし、サービス提供サーバ411-1から提供されるサービスS001を利用している。
【0115】
サービス提供システム311-1内のデータベースサーバ413-1とサービス提供システム311-2内のデータベースサーバ413-2は、定期的に同期処理を行っている(手順1801~手順1803)。
【0116】
ここで、サービス提供システム311-1に障害が発生し、
図18の手順1805~手順1808の処理が行われない場合を想定する。この場合、デバイス312-1は、一定周期で管理サーバ412-1へのアクセスを試行し(手順1809)、サービス提供システム311-1に障害が発生しているか否かをチェックする(手順1810)。
【0117】
サービス提供システム311-1に障害が発生しているため、デバイス312-1は、デバイス情報721のデバイスT001の異常フラグを“1”に設定し、アラートを管理者に通知する。
【0118】
次に、デバイス312-1は、デバイス情報721を参照して、副接続先であるサービス提供システム311-2へアクセスするための接続ツール1912を、自デバイスが保持しているか否かをチェックする(手順1811)。
【0119】
デバイス312-1は接続ツール1912を保持していないため、デバイス312-1は、デバイス情報721の接続ツールIDを参照して、接続ツール1912を保持している他のデバイス312-jが存在するか否かをチェックする(手順1812)。そして、デバイス312-1は、デバイス312-2が接続ツール1912を保持していることを検出する。
【0120】
次に、
図20の第2の状態において、デバイス312-1は、デバイス312-2に対して接続ツール1912の送信を要求し(手順1813)、デバイス312-2から接続ツール1912を受信する(手順1814)。そして、デバイス312-1は、接続ツール1912を接続ツール情報722に追加する。デバイス312-1は省リソースデバイスであるため、デバイス312-1は、使用していた接続ツール1911を接続ツール情報722から削除する(手順1815)。
【0121】
次に、
図21の第3の状態において、デバイス312-1は、接続ツール1912から、サービス提供システム311-2内の管理サーバ412-2を起動するための起動APIを抽出し、その起動APIを実行する(手順1816)。管理サーバ412-2が起動されない場合、デバイス312-1は、アラートを管理者に通知する(手順1817)。
【0122】
管理サーバ412-2が起動された場合(手順1818)、管理サーバ412-2は、サービス提供サーバ411-2を起動し(手順1819)、サービス提供サーバ411-2の接続情報をデバイス312-1へ送信する(手順1820)。
【0123】
次に、デバイス312-1は、管理サーバ412-2から受信した接続情報と接続ツール1912とを用いて、サービス提供サーバ411-2へのアクセスを試行する(手順1821)。サービス提供サーバ411-2へアクセスできない場合、デバイス312-1は、アラートを管理者に通知する。サービス提供サーバ411-2へアクセスできた場合、デバイス312-1は、サービス提供サーバ411-2から提供されるサービスS001を利用する。
【0124】
図1のアクセス制御装置101の構成は一例に過ぎず、アクセス制御装置101の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
【0125】
図3及び
図19~
図21のクラウドサービスシステムの構成は一例に過ぎず、クラウドサービスシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
【0126】
図4のサービス提供システム311-iの構成は一例に過ぎず、クラウドサービスシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、サービス提供システム311-iは、複数のサービス提供サーバ411-iを含んでいてもよい。
【0127】
図7のデバイス312-jの構成は一例に過ぎず、クラウドサービスシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
【0128】
図2及び
図9~
図17に示したフローチャートは一例に過ぎず、アクセス制御装置101又はクラウドサービスシステムの構成又は条件に応じて、一部の処理を省略又は変更してもよい。
図18に示したシーケンスは一例に過ぎず、クラウドサービスシステムの構成又は条件に応じて、一部の手順を省略又は変更してもよい。
【0129】
図5に示したデバイス情報、
図6に示したサービス情報、及び
図8に示したデバイス情報721は一例に過ぎず、これらの情報は、クラウドサービスシステムの構成又は条件に応じて変化する。
【0130】
図22は、
図1のアクセス制御装置101及び
図7のデバイス312-jとして用いられる情報処理装置のハードウェア構成例を示している。
図22の情報処理装置は、CPU2201、メモリ2202、入力装置2203、出力装置2204、補助記憶装置2205、媒体駆動装置2206、及びネットワーク接続装置2207を含む。これらの構成要素はハードウェアであり、バス2208により互いに接続されている。
【0131】
メモリ2202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)等の半導体メモリであり、処理に用いられるプログラム及びデータを記憶する。メモリ2202は、
図7の記憶部715として動作してもよい。
【0132】
CPU2201(プロセッサ)は、例えば、メモリ2202を利用してプログラムを実行することにより、
図1の制御部111、検知部112、及び取得部113として動作する。CPU2201は、メモリ2202を利用してプログラムを実行することにより、
図7の制御部711、検知部712、及び取得部713としても動作する。
【0133】
入力装置2203は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示又は情報の入力に用いられる。出力装置2204は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせ又は指示、及び処理結果の出力に用いられる。
【0134】
補助記憶装置2205は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置2205は、ハードディスクドライブ又はSSD(Solid State Drive)であってもよい。情報処理装置は、補助記憶装置2205にプログラム及びデータを格納しておき、それらをメモリ2202にロードして使用することができる。補助記憶装置2205は、
図7の記憶部715として動作してもよい。
【0135】
媒体駆動装置2206は、可搬型記録媒体2209を駆動し、その記録内容にアクセスする。可搬型記録媒体2209は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体2209は、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。ユーザ又はオペレータは、可搬型記録媒体2209にプログラム及びデータを格納しておき、それらをメモリ2202にロードして使用することができる。
【0136】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ2202、補助記憶装置2205、又は可搬型記録媒体2209のような、物理的な(非一時的な)記録媒体である。
【0137】
ネットワーク接続装置2207は、通信ネットワーク313に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置2207を介して受信し、それらをメモリ2202にロードして使用することができる。ネットワーク接続装置2207は、
図7の通信部714として動作してもよい。
【0138】
図4のサービス提供サーバ411-i、管理サーバ412-i、及びデータベースサーバ413-iとしては、
図22と同様の情報処理装置を用いることができる。
【0139】
なお、情報処理装置が
図22のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータとのインタフェースが不要な場合は、入力装置2203及び出力装置2204を省略してもよい。可搬型記録媒体2209を使用しない場合は、媒体駆動装置2206を省略してもよい。
【0140】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【符号の説明】
【0141】
101 アクセス制御装置
111、711 制御部
112、712 検知部
113、713 取得部
311-1~311-N サービス提供システム
312-1~312-M デバイス
313 通信ネットワーク
411-i サービス提供サーバ
412-i 管理サーバ
413-i データベースサーバ
714 通信部
715 記憶部
721 デバイス情報
722 接続ツール情報
1911、1912 接続ツール
2201 CPU
2202 メモリ
2203 入力装置
2204 出力装置
2205 補助記憶装置
2206 媒体駆動装置
2207 ネットワーク接続装置
2208 バス
2209 可搬型記録媒体