(57)【要約】【課題】複数のサービスを統合して一つのサービスとして提供するシステムにおいて、障害の発生を抑制する。【解決手段】処理要求に応じた処理を実行してサービスを提供する１または複数の個別サービス提供装置２００と、処理要求に応じて個別サービス提供装置２００によるサービスを統合して提供する統合サービス提供装置１００と、障害が発生した個別サービス提供装置２００およびこの個別サービス提供装置２００に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納した障害記録データベース（ＤＢ）４００と、を備える。統合サービス提供装置１００は、受け付けた処理要求に応じたサービスを提供する個別サービス提供装置２００と処理要求との組が障害記録データベース４００に格納された障害記録データに該当する場合、この処理要求をこの個別サービス提供装置２００に処理させない。【選択図】図１
2018060420.tif 000002
【特許請求の範囲】
【請求項１】
処理要求に応じた処理を実行してサービスを提供する１または複数の個別サービス提供装置と、
処理要求に応じて前記個別サービス提供装置によるサービスを統合して提供する統合サービス提供装置と、
障害が発生した前記個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納したデータベースと、を備え、
前記統合サービス提供装置は、受け付けた処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該処理要求を当該個別サービス提供装置に処理させないことを特徴とする、情報処理システム。
【請求項２】
前記個別サービス提供装置として、同種のサービスを提供する複数の個別サービス提供装置を備え、
前記統合サービス提供装置は、受け付けた処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該処理要求を当該個別サービス提供装置と同種のサービスを提供する他の個別サービス提供装置に処理させることを特徴とする、請求項１に記載の情報処理システム。
【請求項３】
前記個別サービス提供装置として、相異なる方式で同種のサービスを提供する複数の個別サービス提供装置を備え、
前記統合サービス提供装置は、受け付けた処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該処理要求を当該個別サービス提供装置とは異なる方式で同種のサービスを提供する他の個別サービス提供装置に処理させることを特徴とする、請求項１に記載の情報処理システム。
【請求項４】
前記統合サービス提供装置は、受け付けた処理要求が複数の前記個別サービス提供装置による処理を要求するものであり、当該処理要求に応じたサービスの一つを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該個別サービス提供装置による処理を実行させずに、他の個別サービス提供装置による処理を実行させることを特徴とする、請求項１乃至請求項３のいずれかに記載の情報処理システム。
【請求項５】
前記個別サービス提供装置において障害が発生した場合に、障害が発生した当該個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けて障害記録を生成し、前記データベースに格納する障害監視装置をさらに備えることを特徴とする、請求項１乃至請求項４のいずれかに記載の情報処理システム。
【請求項６】
ネットワークを介して外部装置と送受信を行う送受信部と、
前記送受信部により受信した処理要求に関し、当該処理要求に応じた処理を実行してサービスを提供する個別サービス提供装置に処理を実行させるサービス依頼制御部と、を備え、
前記サービス依頼制御部は、前記処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組を、障害が発生した前記個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納したデータベースに照会し、該当する障害記録がある場合に、当該処理要求を当該個別サービス提供装置に処理させないことを特徴とする、情報処理装置。
【請求項７】
コンピュータを、
ネットワークを介して外部装置と送受信を行う送受信手段と、
前記送受信手段により受信した処理要求に関し、当該処理要求に応じた処理を実行してサービスを提供する個別サービス提供装置に処理を実行させるサービス依頼制御手段として機能させ、
前記サービス依頼制御手段の機能として、前記処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組を、障害が発生した前記個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納したデータベースに照会し、該当する障害記録がある場合に、当該処理要求を当該個別サービス提供装置に処理させないように制御することを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
ネットワーク上の複数のサーバにより提供されるサービスを統合して、一つのサービスとして提供するシステムがある。この種のシステムでは、サーバの一つに障害が発生した場合に、システムにより提供されるサービス全体に影響が及ぶことを抑制するための仕組みが設けられる。特許文献１には、ネットワークで接続された複数のホストコンピュータに分散して存在するジョブ間で排他制御を行うネットワークジョブ実行システムにおいて、ホストコンピュータのうちの１つであって排他資源を管理するサーバホストが障害で停止した場合には、あらかじめ定めた優先順位により次順位のホストコンピュータがサーバホストとなり、継続して動作することを特徴とするネットワークジョブ実行システムが開示されている。また、特許文献２には、クライアントが発行した処理要求・サーバでの処理結果・及び関連情報を対応付けて保持し、サーバ障害発生時に、クライアントが発行した処理要求が既に実行済みの処理要求に包含される場合に、対応する過去の処理結果をクライアントに返送するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３２８１３０号公報
【特許文献２】特開２０００−３０５９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サービスを提供する複数のサーバの一つに障害が発生した場合に対応する技術では、障害が発生したことによりサービス全体に及ぶ影響を軽減することはできるとしても、障害が発生している以上、その影響を完全になくすことは困難である。
【０００５】
本発明の目的は、複数のサービスを統合して一つのサービスとして提供するシステムにおいて、障害の発生を抑制することにある。
【課題を解決するための手段】
【０００６】
本発明の請求項１に係る情報処理システムは、
処理要求に応じた処理を実行してサービスを提供する１または複数の個別サービス提供装置と、
処理要求に応じて前記個別サービス提供装置によるサービスを統合して提供する統合サービス提供装置と、
障害が発生した前記個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納したデータベースと、を備え、
前記統合サービス提供装置は、受け付けた処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該処理要求を当該個別サービス提供装置に処理させないことを特徴とする、情報処理システムである。
本発明の請求項２に係る情報処理システムは、
前記個別サービス提供装置として、同種のサービスを提供する複数の個別サービス提供装置を備え、
前記統合サービス提供装置は、受け付けた処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該処理要求を当該個別サービス提供装置と同種のサービスを提供する他の個別サービス提供装置に処理させることを特徴とする、請求項１に記載の情報処理システムである。
本発明の請求項３に係る情報処理システムは、
前記個別サービス提供装置として、相異なる方式で同種のサービスを提供する複数の個別サービス提供装置を備え、
前記統合サービス提供装置は、受け付けた処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該処理要求を当該個別サービス提供装置とは異なる方式で同種のサービスを提供する他の個別サービス提供装置に処理させることを特徴とする、請求項１に記載の情報処理システムである。
本発明の請求項４に係る情報処理システムは、
前記統合サービス提供装置は、受け付けた処理要求が複数の前記個別サービス提供装置による処理を要求するものであり、当該処理要求に応じたサービスの一つを提供する前記個別サービス提供装置と当該処理要求との組が前記データベースに格納された障害記録に該当する場合、当該個別サービス提供装置による処理を実行させずに、他の個別サービス提供装置による処理を実行させることを特徴とする、請求項１乃至請求項３のいずれかに記載の情報処理システムである。
本発明の請求項５に係る情報処理システムは、
前記個別サービス提供装置において障害が発生した場合に、障害が発生した当該個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けて障害記録を生成し、前記データベースに格納する障害監視装置をさらに備えることを特徴とする、請求項１乃至請求項４のいずれかに記載の情報処理システムである。
本発明の請求項６に係る情報処理装置は、
ネットワークを介して外部装置と送受信を行う送受信部と、
前記送受信部により受信した処理要求に関し、当該処理要求に応じた処理を実行してサービスを提供する個別サービス提供装置に処理を実行させるサービス依頼制御部と、を備え、
前記サービス依頼制御部は、前記処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組を、障害が発生した前記個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納したデータベースに照会し、該当する障害記録がある場合に、当該処理要求を当該個別サービス提供装置に処理させないことを特徴とする、情報処理装置である。
本発明の請求項７に係るプログラムは、
コンピュータを、
ネットワークを介して外部装置と送受信を行う送受信手段と、
前記送受信手段により受信した処理要求に関し、当該処理要求に応じた処理を実行してサービスを提供する個別サービス提供装置に処理を実行させるサービス依頼制御手段として機能させ、
前記サービス依頼制御手段の機能として、前記処理要求に応じたサービスを提供する前記個別サービス提供装置と当該処理要求との組を、障害が発生した前記個別サービス提供装置および当該個別サービス提供装置に障害を発生させた処理要求に関する情報を対応付けた障害記録を格納したデータベースに照会し、該当する障害記録がある場合に、当該処理要求を当該個別サービス提供装置に処理させないように制御することを特徴とする、プログラムである。
【発明の効果】
【０００７】
請求項１の発明によれば、発生した障害に対する対応措置を行う構成と比較して、処理要求および個別サービス提供装置の組に応じて生じ得る障害の発生を未然に回避することができる。
請求項２の発明によれば、発生した障害に対する対応措置を行う構成と比較して、障害の発生を未然に回避しながら、処理要求に応じたサービスを提供することができる。
請求項３の発明によれば、発生した障害に対する対応措置を行う構成と比較して、障害の発生を未然に回避しながら、処理要求に応じたサービスを提供することができる。
請求項４の発明によれば、発生した障害に対する対応措置を行う構成と比較して、障害の発生を未然に回避しながら、実行可能な処理によるサービスを提供することができる。
請求項５の発明によれば、発生した障害に基づいて障害記録を生成することにより、同様の障害の発生を防止することができる。
請求項６の発明によれば、発生した障害に対する対応措置を行う構成と比較して、処理要求および個別サービス提供装置の組に応じて生じ得る障害の発生を未然に回避することができる。
請求項７の発明によれば、発生した障害に対する対応措置を行う構成と比較して、本発明のプログラムを実行するコンピュータにおいて、処理要求および個別サービス提供装置の組に応じて生じ得る障害の発生を未然に回避することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態が適用される情報処理システムの構成例を示す図である。
【図２】統合サービス提供装置の機能構成を示す図である。
【図３】個別サービス提供装置の機能構成を示す図である。
【図４】障害監視装置の機能構成を示す図である。
【図５】障害記録ＤＢに格納される障害記録データの構成例を示す図である。
【図６】本実施形態による第１の場面における動作を示すシーケンス図である。
【図７】本実施形態による第２の場面における動作を示すシーケンス図である。
【図８】本実施形態による第３の場面における動作を示すシーケンス図である。
【図９】本実施形態による第４の場面における動作を示すシーケンス図である。
【図１０】統合サービス提供装置、個別サービス提供装置、障害監視装置等を実現するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【０００９】
＜本実施形態が適用される情報処理システムの構成＞
図１は、本実施形態が適用される情報処理システムの構成例を示す図である。図１に示すように、本実施形態による情報処理システム１０は、統合サービス提供装置１００と、個別サービス提供装置２００と、障害監視装置３００と、障害記録データベース（ＤＢ）４００と、死活監視装置５００と、クライアント端末６００とを備える。各装置は、ネットワーク２０を介して接続されている。図示の構成において、３機の個別サービス提供装置２００が記載されているが、個別サービス提供装置２００は、提供するサービスに応じて設けられ、図示の構成（３機）には限定されない。また、図示の構成において、クライアント端末６００が１台のみ記載されているが、実際のシステムにおいては複数台のクライアント端末６００がネットワーク２０に接続されて、提供されるサービスを利用する。
【００１０】
ネットワーク２０は、各装置間での情報通信に用いられるものであれば特に限定されず、例えばインターネットやＬＡＮ（Local Area Network）等としてよい。情報通信に用いられる通信回線は、有線であっても無線であっても良い。また、複数のネットワークや通信回線を介して各装置を接続しても良い。特に図示しないが、ネットワーク２０には、ネットワークや通信回線を接続するためのゲートウェイやハブ、無線ＬＡＮにおけるアクセスポイント等の中継装置が適宜設けられる。なお、詳しくは後述するが、本実施形態において、統合サービス提供装置１００や個別サービス提供装置２００は、仮想マシンにより実現される場合がある。その場合、各装置が物理的にネットワーク２０に接続されるのではなく、仮想的な各装置が構築されている物理的なサーバマシンがネットワーク２０に接続されている。
【００１１】
統合サービス提供装置１００は、コンピュータにより実現される。統合サービス提供装置１００は、単体のコンピュータにより構成してもよいし、ネットワーク２０に接続された複数のコンピュータにより構成してもよい。後者の場合、統合サービス提供装置１００としての機能は、複数のコンピュータによる分散処理にて実現される。また、統合サービス提供装置１００は、ネットワーク２０に接続されたコンピュータ上に構築された仮想マシンにより実現してもよい。この場合、統合サービス提供装置１００は、１台のコンピュータ上に構築した仮想マシンであってもよいし、複数のコンピュータに機能を分散させて構築した仮想マシンであってもよい。
【００１２】
統合サービス提供装置１００は、クライアント端末６００から処理要求を受け付け、自装置が提供するサービスにおける処理を実行する他、受け付けた処理要求に応じて、個別サービス提供装置２００にアクセスし、処理要求を送信して、各個別サービス提供装置２００が提供するサービスにおける処理を実行させる。複数の個別サービス提供装置２００に処理を実行させる場合、各処理を順次実行させてもよいし、並列実行が可能な複数の処理に関しては、並列に実行させてもよい。
【００１３】
具体例として、文字が書かれた画像データに対して、光学的文字認識処理（ＯＣＲ；Optical Character Recognition/Reader）を行い、画像変換処理を行い、ネットワーク上の記憶装置に格納する処理（格納処理）を実行する場合を考える。ここで、光学的文字認識処理と画像変換処理とは、各々、別個の個別サービス提供装置２００により実行され、格納処理は統合サービス提供装置１００が実行するものとする。この場合、統合サービス提供装置１００は、まず、光学的文字認識処理を実行する個別サービス提供装置２００にアクセスして画像データを送り、光学的文字認識処理を実行させる。そして、個別サービス提供装置２００から光学的文字認識処理の処理結果を受け取ると、次に統合サービス提供装置１００は、画像変換処理を実行する個別サービス提供装置２００にアクセスして画像データを送り、画像変換処理を実行させる。そして、個別サービス提供装置２００から画像変換処理の処理結果を受け取ると、次に統合サービス提供装置１００は、光学的文字認識処理および画像変換処理の処理結果を記憶装置に格納する。なお、上記の具体例において、例えば、光学的文字認識処理と画像変換処理とが互いに独立した処理である場合、画像変換処理を先に実行させてもよいし、これらの処理を並列に実行してもよい。
【００１４】
また、詳細は後述するが、本実施形態において、統合サービス提供装置１００は、障害記録ＤＢ４００に記録されている障害記録データを参照し、必要に応じて、クライアント端末６００からの処理要求の実行方法を制御する。本実施形態では、この障害記録データを参酌して処理要求の実行方法を制御することにより、個別サービス提供装置２００における障害の発生を抑制する。
【００１５】
個別サービス提供装置２００は、コンピュータにより実現される。個別サービス提供装置２００は、単体のコンピュータにより構成してもよいし、ネットワーク２０に接続された複数のコンピュータにより構成してもよい。後者の場合、個別サービス提供装置２００としての機能は、複数のコンピュータによる分散処理にて実現される。また、個別サービス提供装置２００は、ネットワーク２０に接続されたコンピュータ上に構築された仮想マシンにより実現してもよい。この場合、個別サービス提供装置２００は、１台のコンピュータ上に構築した仮想マシンであってもよいし、複数のコンピュータに機能を分散させて構築した仮想マシンであってもよい。
【００１６】
この種の情報処理システム１０では、システム構成に冗長性を持たせるため、同じ機能を有する個別サービス提供装置２００が複数設けられる場合がある。この場合、同一の方式で機能を実現する個別サービス提供装置２００を複数設けてもよいし、異なる方式により同一の機能を実現する個別サービス提供装置２００を設けてもよい。例えば、画像変換処理を実行する個別サービス提供装置２００の場合、一の画像処理エンジンを有する個別サービス提供装置２００と同じ画像処理エンジンを有する個別サービス提供装置２００を設けてもよいし、異なる画像処理エンジンを有する個別サービス提供装置２００を設けてもよい。
【００１７】
障害監視装置３００は、統合サービス提供装置１００および個別サービス提供装置２００に障害が発生していないかを監視するコンピュータ（サーバ）である。障害監視装置３００は、単体のコンピュータにより構成してもよいし、複数のコンピュータにより構成してもよい。また、仮想マシンにより実現してもよい。障害監視装置３００は、統合サービス提供装置１００および個別サービス提供装置２００の動作を監視し、いずれかの装置において障害が発生すると、予め定められた障害対応処理を実行し障害記録データを生成する。具体的には、障害が発生した個別サービス提供装置２００から障害が発生した際に実行していた（障害を発生させた）処理要求に係るコンテンツを取得する。そして、取得したコンテンツの識別情報を生成する。例えば、コンテンツ・データのハッシュ値を計算し、コンテンツの識別情報とする。そして、生成したコンテンツの識別情報と障害が発生した個別サービス提供装置２００の識別情報とを対応付けて、障害記録データとする。
【００１８】
障害記録ＤＢ４００は、障害監視装置３００により生成された障害記録データを格納するデータベース・サーバである。障害記録ＤＢ４００を構成するサーバは、単体のコンピュータにより構成してもよいし、ネットワーク２０に接続された複数のコンピュータにより構成してもよい。
【００１９】
死活監視装置５００は、統合サービス提供装置１００および個別サービス提供装置２００が動作しているか否かを監視するコンピュータ（サーバ）である。死活監視装置５００は、単体のコンピュータにより構成してもよいし、複数のコンピュータにより構成してもよい。また、仮想マシンにより実現してもよい。本実施形態の死活監視装置５００は、統合サービス提供装置１００および個別サービス提供装置２００の動作を監視し、いずれかの装置において障害の発生等に起因して動作が停止した場合、動作が停止した装置を自動復旧させる。統合サービス提供装置１００および個別サービス提供装置２００の復旧は、ハードウェアの再起動や、仮想マシンにおけるインスタンス（ノード）の再生成など、装置構成に応じた既存の手法により行ってよい。
【００２０】
クライアント端末６００は、本実施形態の情報処理システム１０に対して処理要求を発行するコンピュータである。クライアント端末６００は、統合サービス提供装置１００および個別サービス提供装置２００により提供されるサービスの利用者が使用する端末装置であり、パーソナルコンピュータ、携帯情報端末、プリンタ複合機、その他の種々の情報処理装置により実現される。
【００２１】
＜統合サービス提供装置の機能構成＞
図２は、統合サービス提供装置１００の機能構成を示す図である。図２に示すように、統合サービス提供装置１００は、送受信部１１０と、要求保持部１２０と、サービス依頼制御部１３０と、応答保持部１４０と、サービス実行部１５０と、エラー処理実行部１６０とを備える。
【００２２】
送受信部１１０は、ネットワーク・インターフェイス（図示せず）を介してネットワーク２０にアクセスし、個別サービス提供装置２００、障害記録ＤＢ４００、クライアント端末６００等とデータ交換を行う。
【００２３】
要求保持部１２０は、送受信部１１０により受信した、クライアント端末６００からの処理要求を保持するキューである。クライアント端末６００から受信した処理要求は、一時的に要求保持部１２０に保持された後、サービス依頼制御部１３０の制御の下、順次、個別サービス提供装置２００等へ送信される。また、処理要求が統合サービス提供装置１００のサービスにおける処理を要求するものである場合は、サービス実行部１５０により処理要求に対する処理が実行される。
【００２４】
サービス依頼制御部１３０は、クライアント端末６００から受け付けた処理要求の内容に応じて、個別サービス提供装置２００に処理要求を送信し、送信先の個別サービス提供装置２００が提供するサービスにおける処理の実行を依頼する。処理要求の送信先は、例えば、クライアント端末６００から受け付けた処理要求の種類や、処理要求を発行したクライアント端末６００等に応じて、特定の個別サービス提供装置２００が初期的に設定されている。そして、同じ機能を有する個別サービス提供装置２００が複数存在する場合は、個別サービス提供装置２００における負荷の状態等に応じて、送信先を、初期設定とは異なる個別サービス提供装置２００に変更する。
【００２５】
さらに、サービス依頼制御部１３０は、処理要求の送信先を設定するために、障害記録ＤＢ４００を参照する。具体的には、送信しようとする処理要求に係るコンテンツの識別情報を計算し、障害記録ＤＢ４００に格納されている障害記録データを検索する。障害記録ＤＢ４００に該当する識別情報が存在する場合、サービス依頼制御部１３０は、障害記録データにおいて識別情報に対応付けられた個別サービス提供装置２００と同種のサービスを実行可能であって、同装置とは異なる個別サービス提供装置２００（代替サービス）を送信先に設定する。障害監視装置３００について上述したように、障害記録データは、障害が発生した処理要求に係るコンテンツと個別サービス提供装置２００とを関連付けたデータである。したがって、同じ組み合わせで処理を実行すると、再び障害が発生する可能性が高い。そこで、処理要求の送信先を別の個別サービス提供装置２００とすることにより、障害の発生を未然に回避する。
【００２６】
応答保持部１４０は、送受信部１１０により受信した、個別サービス提供装置２００からの処理要求に対する応答を保持するキューである。個別サービス提供装置２００のサービスにおいて処理要求に対する処理結果（例えば、光学的文字認識処理により得られたテキストデータや画像変換処理による返還後の画像データ）が生じる場合は、処理結果のデータが応答に含まれ、応答保持部１４０に保持される。応答保持部１４０に保持された応答は、さらに他の個別サービス提供装置２００による処理を要する場合は、サービス依頼制御部１３０の制御の下、次の個別サービス提供装置２００へ送信される。また、応答が、統合サービス提供装置１００のサービスにおける処理の対象である場合は、サービス実行部１５０による処理が実行される。
【００２７】
サービス実行部１５０は、クライアント端末６００から受け付けた処理要求や、個別サービス提供装置２００から受け付けた応答が、次に統合サービス提供装置１００のサービスにおける処理を要求するものである場合、処理を実行する。そして、処理が完了したならば、処理の完了を示す応答をクライアント端末６００へ返送する。さらに、クライアント端末６００から受け付けた処理要求が処理結果の返送を要するものである場合は、サービス実行部１５０が、処理結果を含む応答をクライアント端末６００へ返送する。
【００２８】
エラー処理実行部１６０は、サービス実行部１５０による処理や個別サービス提供装置２００の処理において障害が発生し、処理要求に対する応答ができなくなった場合に、エラー処理として、サービスを提供できない旨の報知をクライアント端末６００に対して行う。また、エラー処理実行部１６０は、サービス依頼制御部１３０による処理要求の送信先の制御において、代替サービスを実施する個別サービス提供装置２００が存在せず、サービスを提供できない場合にも、エラー処理として、サービスを提供できない旨の報知をクライアント端末６００に対して行う。
【００２９】
＜個別サービス提供装置の機能構成＞
図３は、個別サービス提供装置２００の機能構成を示す図である。図３に示すように、個別サービス提供装置２００は、送受信部２１０と、要求保持部２２０と、サービス実行部２３０と、エラー処理実行部２４０とを備える。
【００３０】
送受信部２１０は、ネットワーク・インターフェイス（図示せず）を介してネットワーク２０にアクセスし、統合サービス提供装置１００、障害監視装置３００等とデータ交換を行う。
【００３１】
要求保持部２２０は、送受信部２１０により受信した、統合サービス提供装置１００からの処理要求を保持するキューである。統合サービス提供装置１００から受信した処理要求は、一時的に要求保持部２２０に保持された後、サービス実行部２３０により、順次、処理される。本実施形態において、要求保持部２２０は、サービス実行部２３０とは別のサーバ上に設けてもよい。このようにすれば、障害の発生によりサービス実行部２３０が完全に動作しない場合であっても、要求保持部２２０が設けられたサーバは動作可能であり、要求保持部２２０にアクセスすることが可能となる。
【００３２】
サービス実行部２３０は、統合サービス提供装置１００から受け付けた処理要求に応じて、自装置が提供するサービスにおける処理を実行する。そして、処理が完了したならば、処理の完了を示す応答を統合サービス提供装置１００へ返送する。さらに、受け付けた処理要求が処理結果の返送を要するものである場合は、サービス実行部２３０が、処理結果を含む応答を統合サービス提供装置１００へ返送する。
【００３３】
エラー処理実行部２４０は、サービス実行部２３０による処理において障害が発生し、処理要求に対する応答ができなくなった場合に、エラー処理として、処理を実行中の処理要求を要求保持部２２０から読み出して障害監視装置３００へ送信する。なお、エラー処理実行部２４０も、要求保持部２２０と同様に、サービス実行部２３０とは別のサーバ上に設けてもよい。このようにすれば、障害の発生によりサービス実行部２３０が完全に動作しない場合であっても、エラー処理実行部２４０の機能は維持される。
【００３４】
＜障害監視装置の機能構成＞
図４は、障害監視装置３００の機能構成を示す図である。図４に示すように、障害監視装置３００は、送受信部３１０と、エラー処理要求保持部３２０と、障害記録データ生成部３３０と、サービス依頼制御部３４０と、エラー処理実行部３５０とを備える。
【００３５】
送受信部３１０は、ネットワーク・インターフェイス（図示せず）を介してネットワーク２０にアクセスし、個別サービス提供装置２００、障害記録ＤＢ４００等とデータ交換を行う。
【００３６】
エラー処理要求保持部３２０は、送受信部３１０により受信した、障害の発生した個別サービス提供装置２００における障害発生の原因となった処理要求を保持するキューである。障害の発生した個別サービス提供装置２００から受信した処理要求は、一時的にエラー処理要求保持部３２０に保持された後、障害記録データ生成部３３０により、順次読み出され、障害記録データが生成される。
【００３７】
障害記録データ生成部３３０は、エラー処理要求保持部３２０から障害発生の原因となった処理要求を読み出す。また、障害記録データ生成部３３０は、読み出した処理要求の送信元である個別サービス提供装置２００（障害の発生した装置）の情報を取得する。送信元の情報は、例えば送受信部３１０から取得する。さらに、障害記録データ生成部３３０は、処理要求に係るコンテンツの識別情報を生成し、生成した識別情報と障害の発生した個別サービス提供装置２００の情報とを対応付けて障害記録データを生成する。そして、障害記録データ生成部３３０は、生成した障害記録データを障害記録ＤＢ４００に送り、格納させる。
【００３８】
サービス依頼制御部３４０は、障害記録データ生成部３３０により障害記録データが生成された場合に、障害記録データに係るコンテンツを含む処理要求を個別サービス提供装置２００に送信し、処理の実行を依頼する。この場合、その障害記録データに係る個別サービス提供装置２００と同種のサービスを実行可能であって、同装置とは異なる個別サービス提供装置２００（代替サービス）を送信先に設定する。
【００３９】
エラー処理実行部３５０は、サービス依頼制御部３４０による処理要求の送信先の制御において、代替サービスを実施する個別サービス提供装置２００が存在せず、サービスを提供できない場合に、エラー処理として、その処理要求に関する処理を終了する。なお、この場合に、エラー処理実行部３５０は、その処理要求に関する処理を終了することを統合サービス提供装置１００に報知してもよい。統合サービス提供装置１００は、障害監視装置３００による報知を受け付けると、エラー処理として、サービスを提供できない旨の報知をクライアント端末６００に対して行うようにしてもよい。
【００４０】
＜障害記録データの構成例＞
図５は、障害記録ＤＢ４００に格納される障害記録データの構成例を示す図である。図示のように、障害記録データは、障害を発生させた処理要求に係るコンテンツの識別情報と、障害の発生した個別サービス提供装置２００の情報（図示の例ではサービス名）との組となっている。図５に示す例では、サービスとして光学的文字認識処理（ＯＣＲ）を提供する個別サービス提供装置２００を表すサービス名「ＯＣＲ−Ｘ」と、「ＯＣＲ−Ｘ」とは異なる処理エンジンにより光学的文字認識処理を実行する個別サービス提供装置２００を表すサービス名「ＯＣＲ−Ｙ」に関する障害記録データが登録されている。「ＯＣＲ−Ｘ」の個別サービス提供装置２００では、識別情報「ａａａａ」で示されるコンテンツと、識別情報「ｂｂｂｂ」で示されるコンテンツとに関する処理要求を実行した際に障害が発生している。また、「ＯＣＲ−Ｙ」の個別サービス提供装置２００では、識別情報「ｃｃｃｃ」で示されるコンテンツに関する処理要求を実行した際に障害が発生している。
【００４１】
＜動作例＞
次に、いくつかの場面に分けて、本実施形態における情報処理システム１０の動作を説明する。ここでは、代替サービスを実施する個別サービス提供装置２００がない構成でエラーが発生した場合（第１の場面）、代替サービスを実施する個別サービス提供装置２００がある構成でエラーが発生した場合（第２の場面）、代替サービスを実施する個別サービス提供装置２００がない構成で障害記録データに基づくサービス依頼制御を行う場合（第３の場面）、代替サービスを実施する個別サービス提供装置２００がある構成で障害記録データに基づくサービス依頼制御を行う場合（第４の場面）の４つの場面について説明する。
【００４２】
図６は、第１の場面における動作を示すシーケンス図である。図６に示す例において、個別サービス提供装置２００は、サービスとして光学的文字認識処理を提供する装置であり、「ＯＣＲ−Ｘ」と記載されている。また、この個別サービス提供装置２００が備える要求保持部２２０は、「ＯＣＲ−Ｘキュー」と記載されている。また、障害監視装置３００が備えるエラー処理要求保持部３２０は、「エラーキュー」と記載されている。図６に示す第１の場面において、死活監視装置５００は、個別サービス提供装置２００（ＯＣＲ−Ｘ）に対し死活監視を行っている（Ｓ６０１）。個別サービス提供装置２００の要求保持部２２０（ＯＣＲ−Ｘキュー）に処理要求が保持されると、個別サービス提供装置２００のサービス実行部２３０が要求保持部２２０から処理要求を読み出し、サービスにおける処理を実行する（Ｓ６０２）。
【００４３】
個別サービス提供装置２００において障害が発生すると（Ｓ６０３）、要求保持部２２０に保持されている処理要求が障害監視装置３００のエラー処理要求保持部３２０（エラーキュー）に送られる（Ｓ６０４）。一方、死活監視装置５００は、個別サービス提供装置２００に障害が発生したことにより、この個別サービス提供装置２００の監視に失敗する（Ｓ６０５）。
【００４４】
エラー処理要求保持部３２０に処理要求が保持されると、障害監視装置３００は、この処理要求を読み出し（Ｓ６０６）、障害記録データを生成して（Ｓ６０７）、生成した障害記録データを障害記録ＤＢ４００に格納する（Ｓ６０８）。そして、障害監視装置３００は、読み出した処理要求を実行できる代替サービスが存在しないため、エラー処理を行って、この処理要求に関する動作を終了する（Ｓ６０９）。一方、死活監視装置５００は、個別サービス提供装置２００（ＯＣＲ−Ｘ）の死活監視に失敗し、同装置が動作していないことが分かったため、この装置を自動復旧させる（Ｓ６１０）。
【００４５】
図７は、第２の場面における動作を示すシーケンス図である。図７に示す例において、個別サービス提供装置２００は、図６に示した「ＯＣＲ−Ｘ」の他に、異なる処理エンジンにて光学的文字認識処理のサービスを提供する装置があり、「ＯＣＲ−Ｙ」と記載されている。この「ＯＣＲ−Ｙ」の個別サービス提供装置２００は、「ＯＣＲ−Ｘ」の個別サービス提供装置２００に対する代替サービスとなり得る。
【００４６】
図７に示す第２の場面において、障害監視装置３００が障害記録データを障害記録ＤＢ４００に格納するまでの動作（Ｓ７０１〜Ｓ７０８）は、図６に示した動作（Ｓ６０１〜Ｓ６０８）と同様である。図７に示す第２の場面においては、代替サービスとして処理要求を実行できる個別サービス提供装置２００（ＯＣＲ−Ｙ）が存在するので、障害監視装置３００は、処理要求を個別サービス提供装置２００（ＯＣＲ−Ｙ）へ送る（Ｓ７０９）。個別サービス提供装置２００（ＯＣＲ−Ｙ）の要求保持部２２０（ＯＣＲ−Ｙキュー）に処理要求が保持されると、個別サービス提供装置２００のサービス実行部２３０が要求保持部２２０から処理要求を読み出し、サービスにおける処理を実行する（Ｓ７１１）。一方、死活監視装置５００は、個別サービス提供装置２００（ＯＣＲ−Ｘ）の死活監視に失敗し、同装置が動作していないことが分かったため、この装置を自動復旧させる（Ｓ７１０）。
【００４７】
図８は、第３の場面における動作を示すシーケンス図である。図８に示す例において、個別サービス提供装置２００は「ＯＣＲ−Ｘ」と記載されており、この個別サービス提供装置２００が備える要求保持部２２０は「ＯＣＲ−Ｘキュー」と記載されている。図８に示す第３の場面において、まず、クライアント端末６００から統合サービス提供装置１００へ処理要求が送られる（Ｓ８０１）。統合サービス提供装置１００は、受け付けた処理要求における処理対象のコンテンツの識別情報を計算し（Ｓ８０２）、得られた識別情報をキーとして障害記録ＤＢ４００に照会する（Ｓ８０３）。ここでは、該当する障害記録データが存在したため、この処理要求に対する処理を個別サービス提供装置２００（ＯＣＲ−Ｘ）に実行させることができない。また、この処理要求を実行できる代替サービスが存在しないため、クライアント端末６００に対し、処理要求に対するサービスを提供できないことを示すエラー通知を返送し、動作を終了する（Ｓ８０４）。
【００４８】
図９は、第４の場面における動作を示すシーケンス図である。図９に示す例において、個別サービス提供装置２００は、図８に示した「ＯＣＲ−Ｘ」の他に、異なる処理エンジンにて光学的文字認識処理のサービスを提供する装置があり、「ＯＣＲ−Ｙ」と記載されている。この「ＯＣＲ−Ｙ」の個別サービス提供装置２００は、「ＯＣＲ−Ｘ」の個別サービス提供装置２００に対する代替サービスとなり得る。
【００４９】
図９に示す第４の場面において、障害記録ＤＢ４００に照会するまでの動作（Ｓ９０１〜Ｓ９０３）は、図８に示した動作（Ｓ８０１〜Ｓ８０３）と同様である。図９に示す第４の場面においては、代替サービスとして処理要求を実行できる個別サービス提供装置２００（ＯＣＲ−Ｙ）が存在するので、統合サービス提供装置１００は、処理要求を個別サービス提供装置２００（ＯＣＲ−Ｙ）へ送る（Ｓ９０４）。個別サービス提供装置２００（ＯＣＲ−Ｙ）の要求保持部２２０（ＯＣＲ−Ｙキュー）に処理要求が保持されると、個別サービス提供装置２００のサービス実行部２３０が要求保持部２２０から処理要求を読み出し、サービスにおける処理を実行する（Ｓ９０５）。
【００５０】
以上のように、本実施形態によれば、図８、図９に示す第３、第４の場面のように、個別サービス提供装置２００にサービスにおける処理を実行させると障害が発生する可能性のある処理要求に関しては、個別サービス提供装置２００に処理を実行させない。これにより、個別サービス提供装置２００における障害の発生を未然に回避し、情報処理システム１０によるサービス全体に障害の影響が生じることを抑制する。
【００５１】
以上の動作例では、図６、図７に示す第１、第２の場面のように、ある個別サービス提供装置２００において障害が発生した場合、直ちに処理要求を障害監視装置３００に送り、障害記録データを生成する障害対応処理を行った。これに対し、予め定めた回数は同じ個別サービス提供装置２００で処理の実行を試み、毎回同じ障害が発生する場合に、本実施形態による障害対応処理を行ってもよい。また、障害が発生した個別サービス提供装置２００と同じ方式（例えば同じ処理エンジン）でサービスにおける処理を実行する個別サービス提供装置２００が複数存在する場合は、まず同じ方式で処理を実行する異なる個別サービス提供装置２００に処理を実行させ、それでも同じ障害が発生する場合に、異なる方式でサービスにおける処理を実行する個別サービス提供装置２００に処理をさせるように制御してもよい。このような制御を行ったとき、同じ個別サービス提供装置２００や同じ方式で処理を実行する個別サービス提供装置２００で障害が発生せずに処理を実行できた場合、最初に発生した障害は、処理要求に係るコンテンツに起因する障害ではないと判断できる。この場合は、次に同様の処理要求を同じ個別サービス提供装置２００で処理しても、障害が発生する可能性は低いので、障害記録データを生成する必要はない。
【００５２】
また、処理要求によっては、異なる複数のサービスを利用し、かつその複数のサービスが互いに依存しない場合がある。例えば、文字が書かれた画像データに対して、光学的文字認識処理と画像変換処理とを行う場合であって、いずれも元の画像データに対して処理を行う場合を考える。この場合、光学的文字認識処理を行う個別サービス提供装置２００において処理要求に係るコンテンツに起因する障害が発生したとしても、画像変換処理を行う個別サービス提供装置２００では正常に処理を実行し得る。そこで、統合サービス提供装置１００は、次に光学的文字認識処理および画像変換処理の処理要求を受け付け、その処理要求と光学的文字認識処理を行う個別サービス提供装置２００との組が障害記録データに該当する場合、光学的文字認識処理を行う個別サービス提供装置２００には処理を実行させず（スキップ）、画像変換処理を行う個別サービス提供装置２００にのみ処理を実行させるようにしてもよい。このようにすれば、少なくとも提供可能なサービスに関しては処理を実行し、サービスを提供することができ、サービス全体への影響を抑制することができる。
【００５３】
＜統合サービス提供装置、個別サービス提供装置および障害監視装置のハードウェア構成例＞
図１０は、統合サービス提供装置１００、個別サービス提供装置２００、障害監視装置３００等を実現するコンピュータ（情報処理装置）のハードウェア構成例を示す図である。図１０に示すように、統合サービス提供装置１００は、制御手段および演算手段であるＣＰＵ（Central Processing Unit）１１と、ＲＡＭ１２およびＲＯＭ１３と、外部記憶装置１４と、ネットワーク・インターフェイス１５とを備える。
【００５４】
ＣＰＵ１１は、ＲＯＭ１３に格納されているプログラムを実行することにより、各装置の制御および演算処理の機能を実現する。具体的には、統合サービス提供装置１００においては、サービス依頼制御部１３０、サービス実行部１５０およびエラー処理実行部１６０の機能を実現する。また、個別サービス提供装置２００においては、サービス実行部２３０およびエラー処理実行部２４０の機能を実現する。また、障害監視装置３００においては、障害記録データ生成部３３０、サービス依頼制御部３４０およびエラー処理実行部３５０の機能を実現する。
【００５５】
ＲＡＭ１２は、ＣＰＵ１１による制御や演算処理において作業メモリとして用いられる。また、統合サービス提供装置１００の要求保持部１２０および応答保持部１４０、個別サービス提供装置２００の要求保持部２２０、障害監視装置３００のエラー処理要求保持部３２０等として機能する。ＲＯＭ１３は、ＣＰＵ１１が実行するプログラムや制御において用いられる各種のデータを格納している。外部記憶装置１４は、例えば磁気ディスク装置や、データの読み書きが可能で不揮発性の半導体メモリで実現され、ＲＡＭ１２に展開されてＣＰＵ１１により実行されるプログラムや、ＣＰＵ１１による演算処理の結果を格納する。ネットワーク・インターフェイス１５は、プログラムを実行するＣＰＵ１１に制御されて、各装置における送受信部１１０、２１０、３１０として機能する。なお、図１０に示す構成例は、統合サービス提供装置１００、個別サービス提供装置２００、障害監視装置３００等をコンピュータで実現するハードウェア構成の一例に過ぎない。これらの装置の具体的構成は、本実施形態の機能を実現し得るものであれば、図１０に示す構成例に限定されない。
【符号の説明】
【００５６】
１０…情報処理システム、２０…ネットワーク、１００…統合サービス提供装置、１１０…送受信部、１２０…要求保持部、１３０…サービス依頼制御部、１４０…応答保持部、１５０…サービス実行部、１６０…エラー処理実行部、２００…個別サービス提供装置、２１０…送受信部、２２０…要求保持部、２３０…サービス実行部、２４０…エラー処理実行部、３００…障害監視装置、３１０…送受信部、３２０…エラー処理要求保持部、３３０…障害記録データ生成部、３４０…サービス依頼制御部、３５０…エラー処理実行部、４００…障害記録データベース（ＤＢ）、５００…死活監視装置、６００…クライアント端末
【図１】
2018060420.tif 000003
【図２】
2018060420.tif 000004
【図３】
2018060420.tif 000005
【図４】
2018060420.tif 000006
【図５】
2018060420.tif 000007
【図６】
2018060420.tif 000008
【図７】
2018060420.tif 000009
【図８】
2018060420.tif 000010
【図９】
2018060420.tif 000011
【図１０】
2018060420.tif 000012