説明

複数のインターネットサービスを多重化するサービス中継装置及びサービス中継方法

【課題】システムのコストを低く抑えつつ、クラウドサービスを高稼動率で且つ高信頼性で適用できるようにする。
【解決手段】実施形態によれば、サービス中継装置は、第1及び第2のコンピュータによってそれぞれ提供される等価なサービスである第1及び第2のクラウドサービスにインターネットを介して接続する。サービス中継装置の参照系トランザクション送信手段は、第1及び第2のクラウドサービスが正常状態にある第1の状態において、第3のコンピュータからの参照系トランザクション要求を、第1または第2のクラウドサービスのうち、処理コストがより安いクラウドサービスに送信する。更新系トランザクション送信手段は、第1の状態において、第3のコンピュータからの更新系トランザクション要求を第1及び第2のクラウドサービスに送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、複数のインターネットサービスを多重化するサービス中継装置及びサービス中継方法に関する。
【背景技術】
【0002】
近年、企業活動に利用される情報システムに、インターネット上のソフトウェアサービス(いわゆるクラウドサービス)を積極的に適用する流れがある。従来、社内システムとして構築されていた社内情報システムに関しても、クラウドサービスに移行される流れもある。クラウドサービスを適用するメリットは、主にシステムのTCO(Total Cost of Ownership:総所有コスト)の削減にある。特に運用管理コストが低減される点が注目される。また、システムの導入費用や更新費用等が社内で構築するシステムに比べて大幅に削減されることも魅力の1つである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−176472号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
情報システムにクラウドサービスを適用した場合、当該情報システムのシステム品質の相当の部分がクラウドサービスのサービス品質に依存することになる。クラウドサービスのサービス品質は、一般にサービス提供会社によって保証される。通常、クラウドサービスのサービス品質の保証の程度に関しては、SLA(Service Level Agreement:サービス品質保証契約)として、サービス利用側とサービス提供側とで契約が取り交わされる。当然、高品質なSLAを謳うサービスは高価になる傾向にあり、そうでない場合には比較的安価にサービスが提供される。
【0005】
一方、企業活動に直接関係するような重要な情報システム(基幹システム等)をクラウドサービスで構築する場合、リスクの管理が重要である。具体的には、SLAで謳われるサービス品質のうち、サービスの稼動率(可用性)やデータバックアップ等の信頼性にかかわる部分が特に重要になってくる。また、そもそもSLAが守られるのかという点、つまりサービス提供会社そのものの信頼性もリスク要因である。さらに言えば、サービス提供会社が事業を継続できない事態になった場合などもリスクとして想定するべきである。
【0006】
そこで、クラウドサービスを適用して情報システムを構築する場合において、システムのTCOを低く抑える一方で、信頼性に関するサービス品質やサービス提供会社の信頼性やその事業の安定性などのリスク要因を低減して、クラウドサービスを高稼動率で且つ高信頼性で適用する要求がある。
【0007】
本発明が解決しようとする課題は、システムのコストを低く抑えつつ、クラウドサービスを高稼動率で且つ高信頼性で適用できる、サービス中継装置及びサービス中継方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
実施形態によれば、第1のサービス提供会社の第1のコンピュータによって提供される第1のクラウドサービスと第2のサービス提供会社の第2のコンピュータによって提供される、前記第1のクラウドサービスと等価な第2のクラウドサービスとにインターネットを介して接続し、前記第1のクラウドサービス及び前記第2のクラウドサービスをネットワークを介して第3のコンピュータに中継するサービス中継装置が提供される。このサービス中継装置は、参照系トランザクション送信手段と、更新系トランザクション送信手段と、回復処理手段とを具備する。前記参照系トランザクション送信手段は、前記第1のクラウドサービス及び前記第2のクラウドサービスの両方が正常状態にある第1の状態において、前記第3のコンピュータからの参照系トランザクション要求を、前記第1のクラウドサービスまたは前記第2のクラウドサービスのうち、処理コストがより安いクラウドサービスに送信し、前記第1の状態以外で、前記第1のクラウドサービス及び前記第2のクラウドサービスのいずれか一方のクラウドサービスが正常状態にある第2の状態において、前記参照系トランザクション要求を、前記一方のクラウドサービスに送信する。前記更新系トランザクション送信手段は、前記第1の状態において、前記第3のコンピュータからの更新系トランザクション要求を、前記第1のクラウドサービス及び前記第2のクラウドサービスの双方に送信し、前記第1のクラウドサービス及び前記第2のクラウドサービスのいずれか一方のクラウドサービスが正常状態にあり、且つ他方のクラウドサービスが障害発生により停止している第1の障害状態または前記第1の障害状態から復帰して回復処理中の状態にある第3の状態と、前記一方のクラウドサービスが正常状態にあり、且つ前記他方のクラウドサービスが前記第1の障害状態から復帰不能な第2の障害状態にある第4の状態との各々において、前記更新系トランザクション要求を前記一方のクラウドサービスに送信する。前記更新系トランザクション送信手段はまた、前記第3の状態において、前記更新系トランザクション要求を更新系トランザクション記憶手段に時系列順に記憶する。前記回復処理手段は、前記他方のクラウドサービスが前記第1の障害状態から復帰した場合、前記他方のクラウドサービスに送信されなかった更新系トランザクション要求を前記更新系トランザクション記憶手段から時系列順に取り出して、当該時系列順に取り出された更新系トランザクション要求を前記復帰した他方のクラウドサービスに反映するための回復処理を行う。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図。
【図2】図1に示される障害状態記憶部によって管理される、クラウドサービス毎の、4種の状態間の関係を表す状態遷移図。
【図3】同第1の施形態における参照系トランザクション送信部の動作を説明するためのフローチャート。
【図4】同第1の実施形態における更新系トランザクション送信部の動作を説明するためのフローチャート。
【図5】第2の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図。
【図6】第3の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図。
【図7】同第3の実施形態における更新系トランザクション記憶部の2重化に関する動作を説明するための図。
【図8】第4の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図。
【発明を実施するための形態】
【0010】
以下、実施の形態につき図面を参照して説明する。
[第1の実施形態]
図1は第1の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図である。
【0011】
図1に示す情報処理システムは、例えば、コンピュータ10a及び10bと、コンピュータ20-1〜20-nと、サービス中継装置100とを備えている。コンピュータ10a及び10bとサービス中継装置100とは、第1のネットワーク、例えばインターネット30に接続されている。コンピュータ20-1〜20-nとサービス中継装置100とは、第2のネットワーク、例えばLAN(ローカルエリアネットワーク)40に接続されている。
【0012】
コンピュータ(第1のコンピュータ)10aは、サービス提供会社Aに属しており、クラウドサービス(インターネットサービス)aを提供する。つまりクラウドサービスaはサービス提供会社Aによって提供される。コンピュータ10b(第2のコンピュータ)は、サービス提供会社Bに属しており、クラウドサービスbを提供する。つまりクラウドサービスbはサービス提供会社Bによって提供される。コンピュータ10a及び10bは、クラウドサービスに関し、サーバ(クラウドサービス提供サーバ)として機能する。
【0013】
第1の実施形態においてクラウドサービスa及びbは、データを蓄積し、且つデータを検索・参照・更新するサービスである。このようなクラウドサービスa及びbの典型的な例として、Webデータベースサービスが挙げられる。なお、Webデータベースサービスに限らず、例えば顧客管理サービス、販売管理サービスのような特定用途に特化したサービスも、データを蓄積し、データを検索・参照・更新するサービスである。このようなサービスは、データの参照に関連する処理とデータの更新に関連する処理とに大別される。
【0014】
ここで、クラウドサービスa及びbのサービス単位となる処理、またその要求と応答をトランザクションと呼ぶことにする。この場合、クラウドサービスa及びbのトランザクションは、データの参照に関連するトランザクション(以下、参照系トランザクションと称する)と、データの更新に関連するトランザクション(以下、更新系トランザクションと称する)とに分類される。
【0015】
参照系トランザクションは、クラウドサービス内のデータの検索または参照のみをもっぱら行うものである。参照系トランザクションは、当該参照系トランザクションの結果としてクラウドサービス内のデータが変更されないことで特徴付けられる。一方、更新系トランザクションは、クラウドサービス内のデータの追加、変更または削除を行うものである。更新系トランザクションは、当該更新系トランザクションの結果としてクラウドサービス内のデータが変更されることで特徴付けられる。なお、更新系トランザクションの処理の中でデータの検索または参照が行われることはあり得る。
【0016】
第1の実施形態において、クラウドサービスa及びbの機能は等価である。つまりコンピュータ10bは、コンピュータ10aが提供するクラウドサービスaと機能において同等のクラウドサービスbを提供する。クラウドサービスa及びbはインタフェース仕様が同一であることが望ましいが、信頼性等に関係するSLAについては必ずしも同等である必要はない。同様に、クラウドサービスa及びbの価格(提供価格)についても必ずしも同等である必要はない。一方、サービス提供会社Aとサービス提供会社Bとは異なっていることが望ましい。
【0017】
コンピュータ(第3のコンピュータ)20-1〜20-nは、クラウドサービスを利用する、パーソナルコンピュータ(PC)のようなコンピュータ(情報処理機器)である。つまりコンピュータ20-1〜20-nは、クラウドサービスに関し、当該クラウドサービスを利用するクライアント(クライアントコンピュータ)として機能する。コンピュータ20-1〜20-n及びLAN40は、例えば社内システムを構成している。コンピュータ20-1〜20-nの一部は社内システムのサーバ(つまり社内サーバ)であり、コンピュータ20-1〜20-nの他の一部は社内システムの端末(社内端末)である。この端末には、例えばタブレット端末を用いることも可能である。
【0018】
システムの運用開始の初期状態では、クラウドサービスa及びbに蓄積されている双方のデータは同等であり、当該クラウドサービスa及びbは共に正常に稼働しているものとする。サービス中継装置100は、クラウドサービスa及びbを2重化して、クラウドサービスaまたはbをコンピュータ20-i(i=1〜n)に中継する。つまりコンピュータ20-iがクラウドサービスaまたはbを利用する際には、当該クラウドサービスaまたはbはサービス中継装置100を経由する。サービス中継装置100は、クラウドサービスa及びbがいずれも正常状態にあるときの更新は、両サービスa及びbに対して行う。つまりサービス中継装置100は、クラウドサービスa及びbに関するデータの内容が常に同一となるように制御する。またサービス中継装置100は、更新を伴わないクラウドサービスaまたはbの利用については、課金の少ない方のサービスのみが使用されるように中継する。これによって、クラウドサービスの利用コストを削減することができる。
【0019】
サービス中継装置100は、クラウドサービスa及びbの一方のサービスが一時的な障害状態(第1の障害状態)にある場合、正常状態にある方のクラウドサービスを中継(使用)すると共に、コンピュータ20-iによって要求された更新に関する情報(ここでは、後述する更新系トランザクション要求)を後述する更新系トランザクション記憶部106に時系列順に記憶する。サービス中継装置100は、その後、障害状態にあったクラウドサービスが復帰したときに、更新系トランザクション記憶部106に記憶されている更新に関する情報を、復帰したクラウドサービスに時系列順に反映する回復処理を行う。つまりサービス中継装置100は、クラウドサービスa及びbの両方で扱われるデータの内容が同一になるように制御する。なお、一方のクラウドサービスが復帰不能な障害状態(第2の障害状態)になった場合、サービス中継装置100は、コンピュータ20-iによって要求された更新に関する情報を更新系トランザクション記憶部106に記憶することを止め、正常状態にある方のクラウドサービスのみを使用する。
【0020】
サービス中継装置100、上述の機能を実現するために、トランザクション受信部101、更新系トランザクション送信部102、参照系トランザクション送信部103、障害検出部104、障害状態記憶部105、更新系トランザクション記憶部106、及び回復処理部107を備えている。
【0021】
トランザクション受信部101は、コンピュータ20-iからのクラウドサービスaまたはbの利用に関するトランザクション要求(更新系トランザクション要求または参照系トランザクション要求)を受信する。トランザクション受信部101は、更新系トランザクション要求を受信した場合には、当該更新系トランザクション要求を更新系トランザクション送信部102に送出する。トランザクション受信部101はまた、参照系トランザクション要求を受信した場合には、当該参照系トランザクション要求を参照系トランザクション送信部103に送出する。
【0022】
更新系トランザクション送信部102は、トランザクション受信部101から更新系トランザクション要求を受信した場合、当該更新系トランザクション要求をクラウドサービスa及び/またはb(クラウドサービスaを提供するコンピュータ10a及び/またはクラウドサービスbを提供するコンピュータ10b)にインターネット30を介して送信する。参照系トランザクション送信部103は、トランザクション受信部101から参照系トランザクション要求を受信した場合、当該参照系トランザクション要求をクラウドサービスaまたはb(クラウドサービスaを提供するコンピュータ10aまたはクラウドサービスbを提供するコンピュータ10b)にインターネット30を介して送信する。
【0023】
障害検出部104は、クラウドサービスaまたはbの障害の発生を検出する。また障害検出部104は、クラウドサービスaまたはbの障害からの復帰を検出する。障害状態記憶部105は、クラウドサービスa及びbの障害の状態を記憶する。
【0024】
更新系トランザクション記憶部106は、2つのFIFO(First In First Out:先入れ先出し)バッファ106a及び106bから構成される。つまり更新系トランザクション記憶部106は第1の記憶領域及び第2の記憶領域を有しており、第1の記憶領域はFIFOバッファ106aに割り当てられ、第2の記憶領域はFIFOバッファ106bに割り当てられる。FIFOバッファ106aは、クラウドサービスbで処理される更新系トランザクション要求を時系列順に記憶し、対応する更新トランザクションをクラウドサービスaに反映させるために、その記憶順に出力する。FIFOバッファ106bは、クラウドサービスaで処理される更新系トランザクション要求を時系列順に記憶し、対応する更新トランザクションをクラウドサービスbに反映させるために、その記憶順に出力する。
【0025】
回復処理部107は、障害状態記憶部105に記憶されているクラウドサービスaまたはbの障害状態と、FIFOバッファ106aまたは106bに記憶されている更新に関する情報(更新系トランザクション要求)とに基づいて、クラウドサービスaまたはbの状態を障害状態から回復させる。
【0026】
次に、図1の情報システムにおけるサービス中継装置100を中心とする動作の概要について、典型的なトランザクションの流れを例に説明する。
今、コンピュータ20-1によってトランザクション要求が発行されたものとする。コンピュータ20-1によって発行されたトランザクション要求は、LAN40を介してサービス中継装置100に送信され、当該サービス中継装置100のトランザクション受信部101で受信される。
【0027】
トランザクション受信部101は、コンピュータ20-1からのトランザクション要求を受信すると、当該トランザクション要求の内容に基づき、当該トランザクション要求が、参照系トランザクション要求であるか、或いは更新系トランザクション要求であるかを判定する。即ちトランザクション受信部101は、トランザクション要求が、クラウドサービス内のデータの検索または参照のための参照系トランザクション要求であるか、或いはクラウドサービス内のデータの追加、変更または削除のための更新系トランザクション要求であるかを判定する。
【0028】
参照系トランザクション要求の場合、トランザクション受信部101は、当該参照系トランザクション要求を参照系トランザクション送信部103に送出する。すると参照系トランザクション送信部103は参照系トランザクション要求を受信して、当該参照系トランザクション要求を、クラウドサービスaまたはクラウドサービスb(クラウドサービスaを提供するコンピュータ10aまたはクラウドサービスbを提供するコンピュータ10b)のいずれに送出するかを決定する。この決定手法については後述する。参照系トランザクション送信部103は、参照系トランザクション要求を、決定したサービスにインターネット30を介して送出する。
【0029】
これに対して更新系トランザクション要求の場合、トランザクション受信部101は、当該更新系トランザクション要求を更新系トランザクション送信部102に送出する。すると更新系トランザクション送信部102は更新系トランザクション要求を受信して、当該更新系トランザクション要求を、クラウドサービスa及びbの双方にインターネット30を介して送出する。
【0030】
なお、コンピュータ20-1からのトランザクション要求を、トランザクション受信部101が更新系トランザクション送信部102及び参照系トランザクション送信部103の両方に送出しても構わない。この場合、参照系トランザクション送信部103は、トランザクション要求が参照系トランザクション要求であるかを判定し、参照系トランザクション要求である場合に、当該参照系トランザクション要求をインターネット30を介してクラウドサービスaまたはbに送出すればよい。同様に、参照系トランザクション送信部103は、トランザクション要求が更新系トランザクション要求であるかを判定し、更新系トランザクション要求である場合に、当該更新系トランザクション要求をインターネット30を介してクラウドサービスa及びbに送出すればよい。
【0031】
参照系トランザクション送信部103または更新系トランザクション送信部102によってインターネット30を介して送出された、コンピュータ20-1からのトランザクション要求(参照系トランザクション要求または更新系トランザクション要求)は、宛先のクラウドサービス、つまり、コンピュータ10aが提供するクラウドサービスaまたはコンピュータ10bが提供するクラウドサービスbに到達する。クラウドサービスaまたはb(より詳細には、クラウドサービスaを提供するコンピュータ10aまたはクラウドサービスbを提供するコンピュータ10b)は、コンピュータ20-1からのトランザクション要求を受け取ると、当該トランザクション要求を処理し、当該トランザクション要求に対するコンピュータ20-1宛ての応答(トランザクション応答)を返す。このトランザクション応答は、対応するトランザクション要求とは逆の経路で、更新系トランザクション送信部102または参照系トランザクション送信部103と、トランザクション受信部101と、LAN40とを介して、コンピュータ20-1に到達する。つまり、トランザクション応答に関し、更新系トランザクション送信部102及び参照系トランザクション送信部103は受信部として機能し、トランザクション受信部101は送信部として機能する。
【0032】
次に、サービス中継装置100の動作の詳細を、以下に示す5つのケースのそれぞれについて順に説明する。
第1のケース(以下、ケースR1と称する)は、コンピュータ20-1からのトランザクション要求が参照系トランザクション要求であり、且つクラウドサービスa及びbの両方が正常状態にある場合である。クラウドサービスa及びbの両方が正常状態にある状態を第1の状態と呼ぶ。第2のケース(以下、ケースU1と称する)は、コンピュータ20-1からのトランザクション要求が更新系トランザクション要求であり、且つクラウドサービスa及びbの両方が正常状態にある場合である。
【0033】
第3のケース(以下、ケースR2と称する)は、コンピュータ20-1からのトランザクション要求が参照系トランザクション要求であり、且つ上記第1の状態以外で、クラウドサービスaが正常状態にある場合である。上記第1の状態以外で、クラウドサービスaが正常状態にある状態を、第2の状態と呼ぶ。第2の状態では、クラウドサービスbは、正常状態になく、障害状態、当該障害状態から復帰不能な障害状態、または回復処理中の状態のいずれかの状態にある。但し、以下のケースR2の説明では、クラウドサービスbが障害状態にあるものとする。
【0034】
第4のケース(以下、ケースU2と称する)は、コンピュータ20-1からのトランザクション要求が更新系トランザクション要求であり、且つクラウドサービスaが正常状態にあり、クラウドサービスbが障害状態または回復処理中の状態にある場合である。クラウドサービスaが正常状態にあり、クラウドサービスbが障害状態または回復処理中の状態にある状態を第3の状態と呼ぶ。以下のケースU2の説明では、クラウドサービスbが障害状態にあるものとする。
【0035】
第5のケース(以下、ケースU3と称する)は、コンピュータ20-1からのトランザクション要求が更新系トランザクション要求であり、且つクラウドサービスaが正常状態にあり、クラウドサービスbが復帰不能な障害状態にある場合である。クラウドサービスaが正常状態にあり、クラウドサービスbが復帰不能な障害状態にある状態を第4の状態と呼ぶ。障害状態(第1の障害状態)及び復帰不能な障害状態(第2の障害状態)の詳細については後述する。
【0036】
(ケースR1)
まず、ケースR1におけるサービス中継装置100の動作の詳細について説明する。コンピュータ20-1からのトランザクション要求が参照系トランザクション要求であり、且つクラウドサービスa及びbが正常状態にあるケースR1において、当該参照系トランザクションは、クラウドサービスaまたはbのどちらか一方で処理される。つまりコンピュータ20-1からの参照系トランザクション要求は、LAN40、サービス中継装置100のトランザクション受信部101、サービス中継装置100の参照系トランザクション送信部103、及びインターネット30の経路を通って、クラウドサービスaまたはbのいずれかに到達する。
【0037】
これにより、コンピュータ20-1からの参照系トランザクション要求が到達したクラウドサービスで、当該コンピュータ20-1から要求された参照系トランザクションの処理(つまり、対応するクラウドサービス内のデータの検索または参照を伴う処理)が行われる。参照系トランザクション要求に対するクラウドサービスaまたはbからのトランザクション応答は、当該参照系トランザクション要求とは逆の経路でコンピュータ20-1に到達する。
【0038】
ここで、参照系トランザクション送信部103は、トランザクション受信部101から参照系トランザクション要求を受信した際に、当該参照系トランザクション要求をクラウドサービスaまたはbのいずれに送出するかを、次のように決定する。まず、参照系トランザクション送信部103は、クラウドサービスa及びbが共に正常状態にあるかを、障害状態記憶部105の内容に基づいて判定する。この例のように、クラウドサービスa及びbが共に正常状態にあるならば、参照系トランザクション送信部103は、送出されるべき参照系トランザクション要求の示すトランザクションに関し、サービスコストが安い方のクラウドサービスを選択する。つまり参照系トランザクション送信部103は、クラウドサービスaまたはbのうち、サービスコストが安い方のサービスを、参照系トランザクション要求の送出先として選択する。
【0039】
(ケースU1)
次に、ケースU1におけるサービス中継装置100の動作の詳細について説明する。コンピュータ20-1からのトランザクション要求が更新系トランザクション要求であり、且つクラウドサービスa及びbが正常状態にあるケースU1において、当該更新系トランザクションは、クラウドサービスa及びbの両方で処理される。つまりコンピュータ20-1からの更新系トランザクション要求は、LAN40、トランザクション受信部101、更新系トランザクション送信部102、インターネット30の経路を通って、クラウドサービスa及びbの両方に到達する。これにより、クラウドサービスa及びbの両方で、コンピュータ20-1から要求された更新系トランザクションの処理(つまり、対応するクラウドサービス内のデータの追加、変更または削除を伴う更新)が行われる。
【0040】
ここで、コンピュータ20-1からの更新系トランザクション要求に応じたクラウドサービスa及びbの両方の処理、つまり更新は、一貫性を保って行われる。一般に一貫性を保つ更新の方法として、2フェーズコミットによって行う方法、或いは特許4177339号公報に記載の方法など従来から様々な方法が知られており、いずれを適用しても構わない。更新系トランザクション要求に対するトランザクション応答は、当該更新系トランザクション要求とは逆の経路でコンピュータ20-1に到達する。
【0041】
なお、トランザクションが分割可能な場合、当該トランザクションを例えばトランザクション受信部101にて複数のトランザクションに分割して、分割されたトランザクションが参照系トランザクション送信部103または更新系トランザクション送信部102によって、クラウドサービスに送出される構成とすることも可能である。つまり、トランザクションを分割して処理することも可能である。
上述したケースR1及びU1の説明は、クラウドサービスa及びbがいずれも正常状態にあることを前提としている。
【0042】
次に、クラウドサービスaまたはbのいずれか一方、例えばクラウドサービスbに障害が発生した、上記ケースR2及びU2のそれぞれについて説明する。ここでは、クラウドサービスaは正常な状態にある。
【0043】
クラウドサービスの障害とは、システムに不測の事故が起きて当該クラウドサービスを正常に提供できない場合の他に、当該クラウドサービスの計画停止や、サービス提供会社の事業の継続の打ち切りなども含まれる。ケースR2及びU2では、クラウドサービスbに障害が発生した場合を想定している。しかしクラウドサービスa及びbの役割は対称である。したがって、クラウドサービスaに障害が発生した場合、以下の説明において、aとbを読み替えればよい。
【0044】
サービス中継装置100の障害検出部104は、クラウドサービスbに障害が発生したこと、更にはクラウドサービスbが障害から復帰したことを検出する。このような、クラウドサービスの障害発生、更には障害からの復帰を検出する方法として、従来から様々な方法が知られている。例えば、ハートビート通信を用いて検出する方法、更新系トランザクション送信部102または参照系トランザクション送信部103でのタイムアウト(トランザクション要求に対するトランザクション応答が一定時間内に返らないタイムアウト)によって検出する方法、サービス提供会社からの通知によって検出する方法、これらを組み合わせた方法が挙げられる。いずれの方法を適用しても構わない。
【0045】
今、障害検出部104が、クラウドサービスbに障害が発生したことを、上述した方法のいずれかで検出したものとする。この障害検出部104によるクラウドサービスbの障害の検出は、障害状態記憶部105に反映されて管理される。第1の実施形態において、障害状態記憶部105は、クラウドサービス毎に、対応するクラウドサービスの状態を記憶する。つまり障害状態記憶部105は、クラウドサービス毎に、対応するクラウドサービスが正常状態にあるか否かを記憶すると共に、正常状態にない場合には、対応するクラウドサービスが障害状態にあるか、障害状態から復帰して回復処理の実行中であるか、或いは復帰不能な障害状態にあるかを記憶する。
【0046】
第1の実施形態において、障害状態記憶部105によって記憶され、且つ管理されるクラウドサービスの状態は、正常状態、障害状態(第1の障害状態)、回復処理中、復帰不能な障害状態(第2の障害状態)の4種類である。図2は、障害状態記憶部105によって管理される、クラウドサービス毎の、4種の状態間の関係を表す状態遷移図である。
【0047】
図2に示す状態遷移図によれば、例えばクラウドサービスbが正常状態201にあるときに、当該クラウドサービスbの障害が検出された場合、クラウドサービスbの状態は、正常状態201から障害状態202に遷移する。次に、障害状態202にあるクラウドサービスbの当該障害状態202からの復帰(が可能であること)が検出されると、クラウドサービスbの状態は、障害状態202から、回復処理中203に遷移する。回復処理が完了すると、クラウドサービスbの状態は、回復処理中203から正常状態201に遷移する。一方、障害状態202にあるクラウドサービスbが、復帰不能な障害状態にあることが検出されると、クラウドサービスbの状態は、障害状態202から復帰不能な障害状態204に遷移する。
【0048】
(ケースR2)
ここで、ケースR2におけるサービス中継装置100の動作の詳細について説明する。コンピュータ20-1からのトランザクション要求が参照系トランザクション要求であり、且つクラウドサービスbが障害状態202(回復処理中203または復帰不能な障害状態204でも構わない)にあるケースR2において、当該参照系トランザクションは、正常状態にあるクラウドサービスaのみで処理される。このように、参照系トランザクション要求は、ケースR1とは異なり、クラウドサービスa及びbのサービスコストに無関係に、正常状態にあるクラウドサービスaに送出される。つまりケースR2において、コンピュータ20-1からの参照系トランザクション要求は、LAN40、トランザクション受信部101、参照系トランザクション送信部103及びインターネット30の経路を通って、クラウドサービスaに到達する。参照系トランザクション要求に対するクラウドサービスaからのトランザクション応答は、当該参照系トランザクション要求とは逆の経路でコンピュータ20-1に到達する。
【0049】
(ケースU2)
次に、ケースU2におけるサービス中継装置100の動作の詳細について説明する。コンピュータ20-1からのトランザクション要求が更新系トランザクション要求であり、且つクラウドサービスbが障害状態202にあるケースU2において、当該更新系トランザクション要求で示される更新系トランザクションは、クラウドサービスaで処理されると同時に、当該更新系トランザクション要求が更新系トランザクション記憶部106のFIFOバッファ106bに順に記憶される。つまりケースU2において、コンピュータ20-1からの更新系トランザクション要求は、LAN40、トランザクション受信部101、更新系トランザクション送信部102及びインターネット30の経路を通って、クラウドサービスaに到達する。この更新系トランザクション要求はまた、更新系トランザクション送信部102から更新系トランザクション記憶部106に到達する。
【0050】
更新系トランザクション記憶部106に到達した更新系トランザクション要求は、当該更新系トランザクション記憶部106のFIFOバッファ106bに到達順に記憶される。つまり、更新系トランザクション要求は、FIFOバッファ106bに時系列順に記憶される。一方、更新系トランザクション要求に対するクラウドサービスaからのトランザクション応答は、当該更新系トランザクション要求とは逆の経路でコンピュータ20-1に到達する。ここで、クラウドサービスa及び更新系トランザクション記憶部106(FIFOバッファ106b)の両方の更新は一貫性を保って行われる。一般に一貫性を保つ更新の方法には、ケースU1と同様に従来から様々な方法が知られており、いずれを適用しても構わない。
【0051】
(回復処理RP)
次に、障害中であったクラウドサービスbが復帰した場合の回復処理(回復処理RP)について説明する。前述したように、第1の実施形態においてクラウドサービスa及びbの役割は対称である。したがって、クラウドサービスaが障害中であり、当該障害中であったクラウドサービスaが復帰した場合には、以下の説明において、aとbを読み替えればよい。
【0052】
クラウドサービスbが障害から復帰したことは障害検出部104によって検出される。すると、障害状態記憶部105で管理されるクラウドサービスbの状態は障害状態202から回復処理中203に遷移する。この遷移に伴い、回復処理部107は、以下の回復処理を開始する。
【0053】
回復処理部107は、更新系トランザクション記憶部106(FIFOバッファ106b)に記憶されている、クラウドサービスaで処理されたのと同一の更新系トランザクション要求を時系列順に取り出し、当該時系列順に取り出した更新系トランザクション要求でクラウドサービスbを順に更新するための回復処理を行う。つまり回復処理部107は、時系列順に取り出した更新系トランザクション要求をクラウドサービスbに反映するための回復処理を行う。この回復処理により、クラウドサービスbのデータがクラウドサービスaのデータに一致化される。ここで、更新系トランザクション要求に従ってクラウドサービスaにおいて既に実施済みの更新系トランザクションの処理で更新されたデータが、回復処理でクラウドサービスaからクラウドサービスbに読み出される訳でない点に注意すべきである。
【0054】
回復処理が完了すると、回復処理部107は、障害状態記憶部105で管理されているクラウドサービスbの状態を回復処理中203から正常状態201に遷移する。クラウドサービスaが正常状態201にあり、クラウドサービスbが回復処理中203にある状態は、クラウドサービスbが障害状態202にある状態と同様に、ケースR2またはケースU2に該当する。したがって、クラウドサービスbの状態が回復処理中203の場合、参照系トランザクションは上述したケースR2のときと同様に処理され、更新系トランザクションは上述したケースU2のときと同様に処理される。
【0055】
(ケースU3)
次に、ケースU3におけるサービス中継装置100の動作の詳細について説明する。クラウドサービスbが復帰不能な障害状態204にあるときに、コンピュータ20-1から更新系トランザクション要求が送出されたケースU3において、当該更新系トランザクションは、クラウドサービスaで処理される。つまりケースU3において、コンピュータ20-1からの更新系トランザクション要求は、LAN40、トランザクション受信部101、更新系トランザクション送信部102及びインターネット30の経路を通って、クラウドサービスaに到達する。更新系トランザクション要求に対するクラウドサービスaからのトランザクション応答は、当該更新系トランザクション要求とは逆の経路でコンピュータ20-1に到達する。ここでは、ケースU2で行われるような更新系トランザクション記憶部106(FIFOバッファ106b)の更新を行う必要はない。
上述したケースR2,U2及びU3の説明は、クラウドサービスaが正常状態にあることを前提としている。
【0056】
次に、クラウドサービスbだけでなく、クラウドサービスaも正常状態201にない場合について説明する。
今、正常状態201にないクラウドサービスa及びbのいずれかが回復処理中203であるものとする。この場合、更新系トランザクション送信部102または参照系トランザクション送信部103は、回復処理の完了を待ち合わせて、トランザクションの処理を継続する。もし、正常状態201にないクラウドサービスa及びbの両方が回復処理中203でないか、或いは回復処理が完了せずに、障害状態202または復帰不能な障害状態204に遷移したならば、更新系トランザクション送信部102または参照系トランザクション送信部103は、対応する更新系トランザクション要求または参照系トランザクション要求をアボートする。
【0057】
次に、上述のサービス中継装置100の動作のうち、参照系トランザクション送信部103の動作について、図3のフローチャートを参照して説明する。
参照系トランザクション送信部103は、トランザクション受信部101から参照系トランザクション要求を受信すると(ステップS1)、当該参照系トランザクション要求の送出先となるクラウドサービスを、次のように選択(決定)する。まず、参照系トランザクション送信部103は、障害状態記憶部105に記憶されているクラウドサービスa及びbの状態に基づいて、当該クラウドサービスa及びbが共に正常状態にあるかを判定する(ステップS2)。もし、クラウドサービスa及びbが共に正常状態である(第1の状態)ならば(ステップS2のYES)、つまりケースR1であるならば、参照系トランザクション送信部103は、送出されるべき参照系トランザクション要求の示すトランザクションに関し、クラウドサービスaまたはbのいずれの方がサービスコストが安いかを比較して、サービスコストが安い方のクラウドサービスを当該参照系トランザクション要求の送出先として選択する(ステップS3)。
【0058】
これに対し、クラウドサービスa及びbの少なくとも一方が正常状態にない(第1の状態以外)ならば(ステップS2のNO)、参照系トランザクション送信部103は、クラウドサービスaまたはbのいずれか一方は正常状態にあるかを判定する(ステップS4)。もし、クラウドサービスaまたはbのいずれか一方が正常状態にある(第2の状態)ならば(ステップS4のYES)、つまりケースR2に相当するならば、参照系トランザクション送信部103は、正常状態にある方のクラウドサービスを参照系トランザクション要求の送出先として選択する(ステップS5)。
【0059】
これに対し、クラウドサービスa及びbが共に正常状態にないならば(ステップS4のNO)、参照系トランザクション送信部103は、クラウドサービスaまたはbのいずれかが回復処理中203であるかを判定する(ステップS6)。もし、クラウドサービスaまたはbのいずれかが回復処理中203であるならば(ステップS6のYES)、参照系トランザクション送信部103は、当該回復処理中203のクラウドサービスの回復処理の完了を待ち合わせ(ステップS7)、ステップS2に戻る。一方、クラウドサービスa及びbのいずれも回復処理中203でないならば、参照系トランザクション送信部103は、受信した参照系トランザクション要求の示すトランザクションをエラーとして終了する(ステップS8)。
【0060】
次に、上述のサービス中継装置100の動作のうち、更新系トランザクション送信部102の動作について、図4のフローチャートを参照して説明する。
更新系トランザクション送信部102は、トランザクション受信部101から更新系トランザクション要求を受信すると(ステップS11)、当該更新系トランザクション要求の送出先となるクラウドサービスを、次のように選択(決定)する。まず、更新系トランザクション送信部102は、障害状態記憶部105に記憶されているクラウドサービスa及びbの状態に基づいて、当該クラウドサービスa及びbが共に正常状態にあるかを判定する(ステップS12)。もし、クラウドサービスa及びbが共に正常状態にある(第1の状態)ならば(ステップS12のYES)、つまりケースU1であるならば、更新系トランザクション送信部102は、更新系トランザクション要求をクラウドサービスa及びbの両方に送出し、当該クラウドサービスa及びbを一貫性を保って更新する(ステップS13)。
【0061】
これに対し、クラウドサービスa及びbの少なくとも一方が正常状態にないならば(ステップS12のNO)、更新系トランザクション送信部102は、クラウドサービスaまたはbのいずれか一方は正常状態にあるかを判定する(ステップS14)。もし、クラウドサービスaまたはbのいずれか一方が正常状態にあるならば(ステップS14のYES)、つまりケースU2に相当するならば、更新系トランザクション送信部102は、正常状態にない方のクラウドサービスが復帰不能な障害状態204にあるかを判定する(ステップS15)。もし、正常状態にない方のクラウドサービスが復帰不能な障害状態204にある(第4の状態)ならば(ステップS15のYES)、更新系トランザクション送信部102は、更新系トランザクション要求を正常状態にある方のクラウドサービスに送出し、当該正常状態にある方のクラウドサービスを更新する(ステップS16)。
【0062】
これに対し、正常状態にない方のクラウドサービスが復帰不能な障害状態204にないならば(ステップS15のNO)、つまり障害状態202または回復処理中203の状態(第3の状態)にあるならば、更新系トランザクション送信部102はステップS17に進む。ステップS17において更新系トランザクション送信部102は、更新系トランザクション要求を、正常状態にある方のクラウドサービス及び更新系トランザクション記憶部106(より詳細には、更新系トランザクション記憶部106のFIFOバッファ106a及び106bのうちの対応するFIFOバッファ)に送出し、正常状態にある方のクラウドサービス及び更新系トランザクション記憶部106(対応するFIFOバッファ)の双方を一貫性を保って更新する。
【0063】
一方、クラウドサービスa及びbのいずれも正常状態にないならば(ステップS14のNO)、更新系トランザクション送信部102は、クラウドサービスaまたはbのいずれかが回復処理中203であるかを判定する(ステップS18)。もし、クラウドサービスaまたはbのいずれかが回復処理中203であるならば(ステップS18のYES)、更新系トランザクション送信部102は、当該回復処理中203のクラウドサービスの回復処理の完了を待ち合わせ(ステップS19)、ステップS12に戻る。一方、クラウドサービスa及びbのいずれも回復処理中203でないならば、更新系トランザクション送信部102は、受信した更新系トランザクション要求の示すトランザクションをエラーとして終了する(ステップS20)。
【0064】
更新系トランザクション記憶部106のFIFOバッファ106a及び106bは同時に使用されることはない。したがって、更新系トランザクション記憶部106の記憶領域を、更新系トランザクション記憶部106a及び106bとして共有して使用することも可能である。
【0065】
第1の実施形態によれば、コンピュータ20-1からLAN40上にトランザクション要求が送出された場合、クラウドサービスaまたはbのどちらかが稼動していれば、サービス中継装置100はコンピュータ20-1からのトランザクション要求に対応するサービスを当該コンピュータ20-1に中継することが可能となる。したがって、サービス中継装置100がサービスを中継できる稼動率は、クラウドサービスa及びbの各々の稼動率よりも高くなる。例えば、クラウドサービスa及びbの稼動率がそれぞれ95%であるものとすると、クラウドサービスa及びbが共に稼動できない確率は、(1−0.95)×(1−0.95)×100%=0.25%である。この場合、サービス中継装置100がサービスを中継できる稼動率は、100%−0.25%=99.75%、つまり99%以上となる。したがって、システム全体の稼動率が向上し、信頼性を高めることができる。
【0066】
また、クラウドサービスaまたはbのどちらかが復帰不能な障害状態になった場合や、どちらかのサービス提供会社がサービスの継続をできなくなった場合でも、同様にサービス中継装置100はサービスを継続して中継することができる。したがって、サービス提供会社の信頼性やその事業の安定性に関するリスクを低減することができる。
【0067】
また、クラウドサービスa及びbが、比較的信頼性が低いがサービスコストも低いものとする。このような場合、2つのクラウドサービスa及びbを上記の実施形態のように2重化することにより、十分な信頼性があり、且つコスト(TCO)が低いシステムを構築することが可能となり、更なるコスト削減が可能となる。例えば、クラウドサービスcの稼動率が99%でサービスコストが100万円/月であるのに対して、クラウドサービスa及びbの稼動率がそれぞれ95%でサービスコストが30万円/月であるとする。この場合、後者のクラウドサービスa及びbを2重化した場合、稼動率は上述のように99%以上となり、サービスコストは「60万円/月」+「サービス中継装置100のコスト」となり、クラウドサービスcを単独で利用するよりもコストが安くなる可能性がある。
【0068】
また参照が多い利用形態の場合、比較的信頼性が低いがサービスコストも低いクラウドサービス(例えばクラウドサービスa)と、比較的信頼性が高いが従量制でサービスコストも高いクラウドサービス(例えばクラウドサービスb)とを2重化することにより、更なるなるコスト削減が可能となる。なぜなら、第1の実施形態では、参照に関しては、サービスコストの低い方のサービスのみを使うからである。
【0069】
次に上述のような第1の実施形態の効果について、従来技術と比較して説明する。
一般にクラウドサービスにおいては、従量制により課金するサービスが主流である。特に、データの取り出し(読み出し)の量に課金するサービスも少なからずある。また従来技術において、サービスを2重化する構成を適用することも考えられる。このような2重化構成においては、障害復帰時のデータ一致化のため、一方のサービスから他方のサービスへの全データの読み出しが発生する。その結果、相当量のコストが発生することになる。一方、第1の実施形態においては、回復処理において余分なデータの読み出しは発生せず、結果として余計なコストが発生しないという特徴がある。
【0070】
また第1の実施形態は、システムの運用開始の初期状態で、クラウドサービスa及びbに蓄積されている双方のデータが同等であることを前提とするものであるが、データが何も蓄積されていない状態を初期状態として運用を開始する場合には、一致化するデータが無いので初期一致化のためのコストは特段かからない。
【0071】
サービス提供会社がクラウドサービス内での二重化構成をSLAとして約束している場合もある。しかし、その場合では稼動率に関するリスクは低減されても、サービス提供会社の信頼性やその事業の安定性に関するリスクを低減できない。一方、第1の実施形態では、利用するクラウドサービスa及びbの間で直接の連携関係は必要なく、2重化によってサービス提供会社の信頼性やその事業の安定性に関するリスクを低減できる。第1の実施形態においては、サービス提供会社A及びBの間で全く提携関係等がない場合を想定している。これとは逆に、サービス提供会社A及びBの間で提携関係があるものとすると、2つのサービスの間に共通部分がある可能性が比較的大きくなり、2重化の効果が低減する恐れがある。例えば、2つのサービスが同一のデータセンターに置かれているとか、システムの下請け会社や運用会社が同一であるなどの可能性は、サービス提供会社の信頼性やその事業の安定性に関する2重化の効果を低減させる要因になる。
【0072】
[第2の実施形態]
次に第2の実施形態について説明する。
図5は第2の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図である。図5において、図1と等価な部分には同一符号を付してある。
【0073】
図5に示す情報システムの特徴は、更新系トランザクション記憶部106が、専用のクラウドサービスuの中に配置される点にある。このため、図5に示す情報システムでは、図1に示すサービス中継装置100に代えて、更新系トランザクション記憶部106を持たないサービス中継装置110が用いられる。クラウドサービスuは、例えば、サービス提供会社Uに属するコンピュータ(第4のコンピュータ)10uによって提供されるものとする。
【0074】
第2の実施形態における基本的な動作は、第1の実施形態と同様である。但し、第2の実施形態では、更新系トランザクション記憶部106は、サービス中継装置110の外部のクラウドサービスu内に配置される。クラウドサービスuは、障害で停止する可能性がある。そこで、クラウドサービスuが障害で停止した場合の第2の実施形態の動作について説明する。
【0075】
第1の実施形態の動作から明らかなように、クラウドサービスa及びbが共に正常状態にある間は、更新系トランザクション記憶部106は使用されない。つまり、更新系トランザクション記憶部106が配置されたクラウドサービスuは使用されない。このため、クラウドサービスuが障害で停止したとしても、中継装置110の動作には影響ない。また、クラウドサービスuと同様の別のクラウドサービスu’が存在するならば、クラウドサービスuが復帰不能な障害状態となった場合には、当該別のクラウドサービスu’に切り替えることも可能である。
【0076】
一方、参照系トランザクションに関しては、更新系トランザクション記憶部106は使用されず、したがってクラウドサービスuも使用されない。このため、クラウドサービスuが障害で停止したとしても中継装置110の動作には影響ない。
【0077】
次に、クラウドサービスaまたはbのどちらかが障害状態または回復処理中に、クラウドサービスuが停止したものとする。このような状況は、いわゆる2点障害であり、実際に起きる可能性は低い。この場合、中継装置110の更新系トランザクション送信部102は、更新系トランザクション要求をアボートして終了する。その後、クラウドサービスuが復帰したならば、中継装置110はトランザクションを中継できるようになる。
【0078】
次に、クラウドサービスaまたはbのどちらかが障害状態または回復処理中に、クラウドサービスuが復帰不能な障害状態となったものとする。この場合、中継装置110の回復処理部107は、クラウドサービスaまたはbの正常状態にない方を復帰不能な障害状態であるとして強制的に切り離す。これにより、中継装置110はトランザクションを中継できるようになる。
【0079】
第2の実施形態によれば、更新系トランザクション記憶部106を含めて、全てののデータがクラウドサービス上に配置される。このように社内システム内にデータが蓄積されないため、第2の実施形態によれば、前述のような第1の実施形態での効果に加えて、社内システムを簡素化することができる。クラウドサービスuは、クラウドサービスaまたはbのいずれかが障害となったときに初めて使用される。このため、例えばクラウドサービスuを従量制で契約しておけば、通常時はコストがかからない。極論すれば、クラウドサービスaまたはbのいずれかに障害が発生してからクラウドサービスuを契約してもよい。
【0080】
[第3の実施形態]
次に第3の実施形態について説明する。
図6は第3の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図である。図6において、図1または図5と等価な部分には同一符号を付してある。
【0081】
図6に示す情報システムの特徴は、更新系トランザクション記憶部を、更新系トランザクション記憶部106u及び106vにより2重化して、更新系トランザクション記憶部106u及び106vを、それぞれ専用のクラウドサービスu及びvに配置する構成を適用した点にある。第3の実施形態において、クラウドサービスvは、例えば、サービス提供会社Vに属するコンピュータ(第5のコンピュータ)10vによって提供されるものとする。
【0082】
第3の実施形態における動作は、更新系トランザクション記憶部の二重化に関する動作を除き、第1の実施形態と同様である。そこで、図6に示す情報システムにおける更新系トランザクション記憶部の2重化に関する動作について、図7の動作説明図を参照して説明する。
【0083】
上述したように、更新系トランザクション記憶部は、クラウドサービスu及びvで2重化されている。つまり、図1または図5に示す更新系トランザクション記憶部106に相当する更新系トランザクション記憶部は、クラウドサービスu及びv内にそれぞれ配置された更新系トランザクション記憶部106u及び106vにより2重化されている。図7に示すように、更新系トランザクション記憶部106uは、2つのFIFOバッファ106ua及び106ubから構成され、更新系トランザクション記憶部106vは、2つのFIFOバッファ106va及び106vbから構成される。この点で、更新系トランザクション記憶部106u及び106vは、図1に示す更新系トランザクション記憶部106と同様の構成を有している。
【0084】
以下、第3の実施形態において第1の実施形態と相違する動作について、第1の実施形態におけるケースU2、回復処理RPに相当するケースU2’、回復処理RP’を例に説明する。
(ケースU2’)
まず、コンピュータ20-1からのトランザクション要求が更新系トランザクション要求であり、且つクラウドサービスaが正常状態にあり、クラウドサービスbが障害状態にあるケースU2’におけるサービス中継装置100の動作について説明する。
【0085】
コンピュータ20-1からの更新系トランザクション要求で示される更新系トランザクションは、正常状態にあるクラウドサービスaで処理されると同時に、当該更新系トランザクション要求が、クラウドサービスu内の更新系トランザクション記憶部106uのFIFOバッファ106ub及クラウドサービスv内の更新系トランザクション記憶部106vのFIFOバッファ106vbに順に記憶される。このときの更新系トランザクション要求の流れは、次の通りとなる。
【0086】
まず、更新系トランザクション要求は、コンピュータ20-1からLAN40、サービス中継装置100のトランザクション受信部101を通って、サービス中継装置100の更新系トランザクション送信部102に到達する。更新系トランザクション送信部102に到達した更新系トランザクション要求は、インターネット30を通ってクラウドサービスaに到達する。
【0087】
また、更新系トランザクション送信部102に到達した更新系トランザクション要求は、インターネット30を通って、図7において矢印701u及び701vで示すように、クラウドサービスu及びvにも到達し、更新系トランザクション記憶部106uのFIFOバッファ106ub及び更新系トランザクション記憶部106vのFIFOバッファ106vbに記憶される。更新系トランザクション要求に対するトランザクション応答は、当該更新系トランザクション要求とは逆の経路てコンピュータ20-1に到達する。
【0088】
ここで、クラウドサービスa、更新系トランザクション記憶部106u(FIFOバッファ106ub)及び更新系トランザクション記憶部106v(FIFOバッファ106vb)の3つの更新は一貫性を保って行われる。一般に一貫性を保つ更新の方法として、ケースU1についての説明で挙げたように様々な方法が知られており、いずれを適用しても構わない。
【0089】
(回復処理RP’)
次に、障害状態202にあったクラウドサービスbが復帰した場合の回復処理(回復処理RP’)について説明する。
【0090】
回復処理部107は、更新系トランザクション記憶部106u(FIFOバッファ106ub)及び更新系トランザクション記憶部106v(FIFOバッファ106vb)に記憶されている、クラウドサービスaで処理されたのと同一の更新系トランザクション要求を時系列順に、それぞれ図7において矢印702u及び702vで示すように取り出す。但し、更新系トランザクション記憶部106u及び106vには同一の更新系トランザクション要求の系列が記憶されている。このため、更新系トランザクション要求の取り出しは、更新系トランザクション記憶部106uまたは106vのいずれか一方のみから行えば十分である。この場合、もう一方の更新系トランザクション記憶部に記憶されている更新系トランザクション要求の系列を削除すればよい。
【0091】
回復処理部107は、更新系トランザクション記憶部106uまたは106vから取り出した更新系トランザクション要求に基づき、図7において矢印703で示すように、クラウドサービスbを順に更新していく。回復処理部107による回復処理の進捗状況は、当該回復処理部107内部に記憶される。回復処理部107による回復処理が完了すると、障害状態記憶部105で管理されるクラウドサービスbの状態は回復処理中203から正常状態201に遷移する。
【0092】
次にクラウドサービスuまたはvのいずれか一方が障害となった場合について説明する。クラウドサービスa及びbが共に正常状態にある間は、クラウドサービスu及びvは共に使用されない。このため、クラウドサービスuまたはvの一方が障害で停止したとしても中継装置110の動作には影響ない。
【0093】
一方、参照系トランザクションに関しては、クラウドサービスu及びvは共に使用されない。このため、クラウドサービスuまたはvの一方が障害で停止したとしても中継装置110の動作には影響ない。
【0094】
次に、クラウドサービスaまたはbのどちらかが障害状態または回復処理中に、クラウドサービスuまたはvが停止したものとする。このような状況は、いわゆる2点障害であり、実際に起きる可能性は低い。この場合、中継装置110の更新系トランザクション送信部102は、更新系トランザクション要求をアボートして終了する。
【0095】
クラウドサービスaまたはbのどちらかが回復処理中に、クラウドサービスuまたはvの一方が停止したものとする。この場合、中継装置110の回復処理部107は回復処理を継続することができるので、まずその回復処理を完了させる。回復処理が完了することでクラウドサービスa及びbの両方が正常状態になる場合には、更新トランザクションは正常に処理可能となる。
【0096】
次に、クラウドサービスuまたはvが復帰した場合について説明する。この場合、回復処理部107は、既に回復処理されたところまで更新系トランザクション要求を更新系トランザクション記憶部106uまたは106vから取り出して、当該取り出した更新系トランザクション要求を、復帰したクラウドサービスに反映させることによって、クラウドサービスu及びvの内容を一致化させることができる。この一致化処理は、クラウドサービスuまたはvが停止中に上述の回復処理が行われた可能性があるために必要な処理である。
【0097】
ここで、回復処理の進捗状況は回復処理部107内部に記憶されている。このため、クラウドサービスu及びvの両方が停止していたとしても、一致化処理は実行可能である。また、一致化処理は復帰時点で直ちに行う必要はなく、回復処理を実行する時点で行ってもよい。
【0098】
次に、クラウドサービスuまたはvの一方、例えばクラウドサービスvが復帰不能な状態になったものとする。この時点で、回復処理部107は、復帰不能な状態になったクラウドサービスvを切り離す。このクラウドサービスvが切り離された後の情報システムは、第2の実施形態に係る図5に示す情報システムと同様の構成になり、第2の実施形態と同様な動作によってシステムの運用を継続できる。またその後、別のクラウドサービスwを導入し、回復処理部107が、稼動中のクラウドサービスuから当該クラウドサービスuに配置されている更新系トランザクション記憶部106uの内容をクラウドサービスwにコピーして一致化してもよい。これにより、クラウドサービスvが切り離された状態の情報システムを、再び図6に示す情報システムと等価な構成に戻すことが可能である。
【0099】
第3の実施形態によれば、更新系トランザクション記憶部をクラウドサービスu及びVに2重化して配置することにより、前述したような第2の実施形態での効果に加えて、更新系トランザクション記憶部の耐障害性を向上することができる。特に第3の実施形態によれば、クラウドサービスuまたはvのいずれか一方が復帰不能な状態になった場合でも、システム全体としての復元率を高めることができる。
【0100】
[第4の実施形態]
次に第4の実施形態について説明する。
図8は第4の実施形態に係るサービス中継装置を含む情報システムの構成を示すブロック図である。図8において、図1と等価な部分には同一符号を付してある。
【0101】
図8に示す情報システムの特徴は、サービス中継装置が2重化されている点にある。このため、図8に示す情報システムでは、図1に示すサービス中継装置100に代えて、クラスタマネージャ108を備えたサービス中継装置120-1及び120-2が用いられる。なお、図8では、インターネット30を介してサービス中継装置120-1及び120-2に接続されるコンピュータ10a(クラウドサービスa)及びコンピュータ10b(クラウドサービスb)と、LAN40を介してサービス中継装置120-1及び120-2に接続されるコンピュータ20-1〜20-5は省略されている。
【0102】
第4の実施形態では、サービス中継装置120-1及び120-2は、図1に示すサービス中継装置100と異なり、障害状態記憶部105及び更新系トランザクション記憶部106を備えていない。障害状態記憶部105及び更新系トランザクション記憶部106は、記憶装置130に配置される。また、回復処理部107による回復処理の進捗状況も、当該回復処理部107ではなくて、記憶装置130に記憶される。
【0103】
サービス中継装置120-1及び120-2は、周知のクラスタシステムを構成しており、記憶装置130を共有する。サービス中継装置120-1及び120-2の一方は例えば稼動系として動作し、他方は待機系として動作する。サービス中継装置120-1及び120-2のクラスタマネージャ108は、従来から知られている種々の方法のいずれかによって、それぞれサービス中継装置120-2及び120-1の障害を検出する。ここでは、サービス中継装置120-1及び120-2のクラスタマネージャ108は、経路50を介して相互に通信することにより、通信相手のサービス中継装置120-2及び120-1の障害を検出する。
【0104】
もし、待機系のサービス中継装置が稼動系のサービス中継装置の障害を検出した場合、待機系のサービス中継装置が稼動系に切り替わって、障害となったサービス中継装置の処理を引き継ぐ。例えば、稼動系に切り替わったサービス中継装置は、記憶装置130に配置されている障害状態記憶部105及び更新系トランザクション記憶部106と、当該記憶装置130に記憶されている回復処理の進捗状況を参照することで、障害となったサービス中継装置の処理を正しく引き継ぐことができる。
【0105】
以上説明した少なくとも1つの実施形態によれば、システムのコスト(TCO)を低く抑えつつ、クラウドサービスを高稼動率で且つ高信頼性で適用できる、複数のインターネットサービスを多重化するサービス中継装置及びサービス中継方法を提供できる。
【0106】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0107】
10a…第1のコンピュータ,10b…第2のコンピュータ、10u…第4のコンピュータ、10v…第5のコンピュータ、20-1〜20-n…コンピュータ(第3のコンピュータ)、30…インターネット、40…LAN(ネットワーク)、100,110,120-1,120-2…サービス中継装置、101…トランザクション受信部、102…更新系トランザクション送信部、103…参照系トランザクション送信部、104…障害検出部、105…障害状態記憶部、106,106u,106v…更新系トランザクション記憶部、106a,106b,106ua,106ub,106va,106vb…FIFOバッファ、107…回復処理部、108…クラスタマネージャ、130…記憶装置。

【特許請求の範囲】
【請求項1】
第1のサービス提供会社の第1のコンピュータによって提供される第1のクラウドサービスと第2のサービス提供会社の第2のコンピュータによって提供される、前記第1のクラウドサービスと等価な第2のクラウドサービスとにインターネットを介して接続し、前記第1のクラウドサービス及び前記第2のクラウドサービスをネットワークを介して第3のコンピュータに中継するサービス中継装置であって、
前記第1のクラウドサービス及び前記第2のクラウドサービスの両方が正常状態にある第1の状態において、前記第3のコンピュータからの参照系トランザクション要求を、前記第1のクラウドサービスまたは前記第2のクラウドサービスのうち、処理コストがより安いクラウドサービスに送信し、前記第1の状態以外で、前記第1のクラウドサービス及び前記第2のクラウドサービスのいずれか一方のクラウドサービスが正常状態にある第2の状態において、前記参照系トランザクション要求を、前記一方のクラウドサービスに送信する参照系トランザクション送信手段と、
前記第1の状態において、前記第3のコンピュータからの更新系トランザクション要求を、前記第1のクラウドサービス及び前記第2のクラウドサービスの双方に送信し、前記第1のクラウドサービス及び前記第2のクラウドサービスのいずれか一方のクラウドサービスが正常状態にあり、且つ他方のクラウドサービスが障害発生により停止している第1の障害状態または前記第1の障害状態から復帰して回復処理中の状態にある第3の状態と、前記一方のクラウドサービスが正常状態にあり、且つ前記他方のクラウドサービスが前記第1の障害状態から復帰不能な第2の障害状態にある第4の状態との各々において、前記更新系トランザクション要求を前記一方のクラウドサービスに送信する更新系トランザクション送信手段であって、前記第3の状態において、前記更新系トランザクション要求を更新系トランザクション記憶手段に時系列順に記憶する更新系トランザクション送信手段と、
前記他方のクラウドサービスが前記第1の障害状態から復帰した場合、前記他方のクラウドサービスに送信されなかった更新系トランザクション要求を前記更新系トランザクション記憶手段から時系列順に取り出して、当該時系列順に取り出された更新系トランザクション要求を前記復帰した他方のクラウドサービスに反映するための回復処理を行う回復処理手段と
を具備するサービス中継装置。
【請求項2】
前記第1のクラウドサービス及び前記第2のクラウドサービスを含む、中継されるべき複数のクラウドサービス各々の状態として、前記正常状態、前記第1の障害状態、前記回復処理中の状態、または前記第2の障害状態のいずれにあるかを検出する障害検出手段を更に具備する請求項1記載のサービス中継装置。
【請求項3】
前記更新系トランザクション記憶手段を更に具備する請求項2記載のサービス中継装置。
【請求項4】
前記サービス中継装置は、第3のサービス提供会社の第4のコンピュータによって提供される第3のクラウドサービスにも前記インターネットを介して接続しており、
前記更新系トランザクション記憶手段が前記第3のクラウドサービスに配置されている
請求項2記載のサービス中継装置。
【請求項5】
前記サービス中継装置は、第4のサービス提供会社の第5のコンピュータによって提供される第4のクラウドサービスにも前記インターネットを介して接続しており、
前記更新系トランザクション記憶手段が前記第4のクラウドサービスにも配置されており、
前記更新系トランザクション送信手段は、前記第3の状態において、前記第3のクラウドサービス及び前記第4のクラウドサービスが、前記正常状態または前記回復処理中の状態にあるならば、前記更新系トランザクション要求を、前記第3のクラウドサービスに配置されている前記更新系トランザクション記憶手段及び前記第4のクラウドサービスに配置されている前記更新系トランザクション記憶手段の双方に時系列順に記憶する
請求項4記載のサービス中継装置。
【請求項6】
前記回復処理手段は、前記他方のクラウドサービスが前記第1の障害状態から復帰した場合の前記回復処理のために、前記他方のクラウドサービスに送信されなかった更新系トランザクション要求を、前記第3のクラウドサービスに配置されている前記更新系トランザクション記憶手段または前記第4のクラウドサービスに配置されている前記更新系トランザクション記憶手段のいずれか一方から時系列順に取り出す請求項5記載のサービス中継装置。
【請求項7】
前記回復処理手段は、前記回復処理の進捗状況を示す進捗状況情報を記憶し、前記復帰した他方のクラウドサービスに反映済みの更新系トランザクション要求を、前記進捗状況情報に基づいて、前記第3のクラウドサービスに配置されている前記更新系トランザクション記憶手段及び前記第4のクラウドサービスに配置されている前記更新系トランザクション記憶手段の双方から削除する請求項6記載のサービス中継装置。
【請求項8】
第1のサービス提供会社の第1のコンピュータによって提供される第1のクラウドサービスと第2のサービス提供会社の第2のコンピュータによって提供される、前記第1のクラウドサービスと等価な第2のクラウドサービスとにインターネットを介して接続する、参照系トランザクション送信手段、更新系トランザクション送信手段及び回復処理手段を備えたサービス中継装置において、前記第1のクラウドサービス及び前記第2のクラウドサービスをネットワークを介して第3のコンピュータに中継するためのサービス中継方法であって、
前記第1のクラウドサービス及び前記第2のクラウドサービスの両方が正常状態にある第1の状態において、前記第3のコンピュータからの参照系トランザクション要求を、前記第1のクラウドサービスまたは前記第2のクラウドサービスのうち、処理コストがより安いクラウドサービスに、前記参照系トランザクション送信手段が送信するステップと、
前記第1の状態以外で、前記第1のクラウドサービス及び前記第2のクラウドサービスのいずれか一方のクラウドサービスが正常状態にある第2の状態において、前記参照系トランザクション要求を、前記参照系トランザクション送信手段が前記一方のクラウドサービスに送信するステップと、
前記第1の状態において、前記第3のコンピュータからの更新系トランザクション要求を、前記更新系トランザクション送信手段が前記第1のクラウドサービス及び前記第2のクラウドサービスの双方に送信するステップと、
前記第1のクラウドサービス及び前記第2のクラウドサービスのいずれか一方のクラウドサービスが正常状態にあり、且つ他方のクラウドサービスが障害発生により停止している第1の障害状態または前記第1の障害状態から復帰して回復処理中の状態にある第3の状態と、前記一方のクラウドサービスが正常状態にあり、且つ前記他方のクラウドサービスが前記第1の障害状態から復帰不能な第2の障害状態にある第4の状態との各々において、前記更新系トランザクション要求を前記更新系トランザクション送信手段が前記一方のクラウドサービスに送信するステップと、
前記第3の状態において、前記更新系トランザクション要求を前記更新系トランザクション送信手段が更新系トランザクション記憶手段に時系列順に記憶するステップと、
前記他方のクラウドサービスが前記第1の障害状態から復帰した場合、前記回復処理手段が、前記他方のクラウドサービスに送信されなかった更新系トランザクション要求を前記更新系トランザクション記憶手段から時系列順に取り出して、当該時系列順に取り出された更新系トランザクション要求を前記復帰した他方のクラウドサービスに反映するための回復処理を行うステップと
を具備するサービス中継方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−203473(P2012−203473A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−65007(P2011−65007)
【出願日】平成23年3月23日(2011.3.23)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)