(57)【要約】【課題】バックエンド側で障害が発生した際に業務アプリケーションが実行する処理を軽減する。【解決手段】業務ＡＰ３００からの処理要求を受信するフロントノード１００と、フロントノード１００から処理要求を受信し、処理要求に対する処理を実行するバックノード２００を備え、バックノード２００は、処理要求に対する処理の実行中に障害が発生した場合に、処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合にはフロントノード１００にリトライ指示を通知し、不可能な場合にはエラーを通知する応答生成部２０３を備え、フロントノード１００は、応答生成部２０３からリトライ指示が通知された場合は、業務ＡＰ３００に処理結果を通知せずに、処理要求の再発行を行う要求振分部１０１を備えた、データ処理システム。【選択図】図１
2013073483.tif 000002
【特許請求の範囲】
【請求項１】
業務アプリケーションからの処理要求を受信するフロントノードと、
前記フロントノードから前記処理要求を受信し、前記処理要求に対する処理を実行するバックノードを備え、
前記バックノードは、
前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知する応答生成部を備え、
前記フロントノードは、
前記応答生成部から前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記処理要求の再発行を行う要求振分部を備えた、データ処理システム。
【請求項２】
前記フロントノードは、前記処理要求の重要度を示す情報を前記処理要求に付加して前記バックノードに送信し、
前記バックノードの前記応答生成部は、前記重要度と障害の内容に基づいて前記処理要求の再発行による対処が可能か否かを判断する、請求項１に記載のデータ処理システム。
【請求項３】
前記バックノードは、以降の動作が不可能となる障害が発生した際に前記フロントノードに自ノードが処理不可能な状態であることを通知すると共に、障害が復旧または他のノードへの切り替えが完了したことを前記フロントノードへ通知する状態通知部を備え、
前記フロントノードの前記要求振分部は、前記状態通知部から前記バックノードが処理不可能な状態であるとの通知を受信したら、当該ノードへの処理要求送信を中止し、前記障害が復旧または他のノードへの切り替えが完了したとの通知を受信したら、当該ノードへの処理要求送信を再開する、請求項１または２に記載のデータ処理システム。
【請求項４】
業務アプリケーションからの処理要求をフロントノードで受信し、
前記フロントノードからバックノードへ前記処理要求を送信し、
前記バックノードにおいて前記処理要求に対する処理を実行し、
前記バックノードは、
前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知し、
前記フロントノードは、
前記バックノードから前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記要求の再発行を行う、データ処理方法。
【請求項５】
コンピュータを、
業務アプリケーションからの処理要求を受信するフロントノードと、
前記フロントノードから前記処理要求を受信し、前記処理要求に対する処理を実行するバックノードとして機能させ、
前記バックノードは、
前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知する応答生成部を備え、
前記フロントノードは、
前記応答生成部から前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記処理要求の再発行を行う要求振分部を備えた、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
フロントノードで業務アプリケーションからの処理要求の振り分け、バックノードで実際にデータ処理を行う構成のシステムが知られている。
【０００３】
例えば特許文献１には、フロントエンドサーバがクライアントからのリクエストを受信してバックエンドサーバに転送し、バックエンドサーバがクライアントのリクエストを処理するサーバ装置が記載されている。特許文献１に記載のサーバ装置では、バックエンドサーバが故障すると、フロントエンドサーバは、故障したバックエンドサーバへのリクエスト転送を中止して、クライアントからの再リクエスト時に正常運用している別のバックエンドサーバにリクエストを転送する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１９８６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の装置では、バックノード側で障害が発生した際、業務アプリケーションは故障の内容に応じた処理を行う必要がある。障害の内容は、単純に要求のリトライを行えば処理の継続が可能であるような軽微なものから、オペレータの介入が必要になるようなものまで多岐にわたる。このため、業務アプリケーションの設計や実装が複雑化し、業務アプリケーションの生産性や保守性の低下を招いていた。
【０００６】
そこで、本発明は、バックエンド側で障害が発生した際に業務アプリケーションが実行する処理を軽減することを一つの目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ処理システムは、業務アプリケーションからの処理要求を受信するフロントノードと、前記フロントノードから前記処理要求を受信し、前記処理要求に対する処理を実行するバックノードを備え、前記バックノードは、前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知する応答生成部を備え、前記フロントノードは、前記応答生成部から前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記処理要求の再発行を行う要求振分部を備えている。
【発明の効果】
【０００８】
本発明によれば、バックエンド側で障害が発生した際に業務アプリケーションが実行する処理を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態による、データ処理システムの構成を示すブロック図である。
【図２】本発明の実施の形態による、フロントノードの動作のフローチャートである。
【図３】本発明の実施の形態による、バックノードの動作のフローチャートである。
【図４】本発明の実施の形態による、バックノードによって生成される応答内容を説明する図である。
【図５】本発明の実施の形態による、フロントノードの動作のフローチャートである。
【図６】本発明の実施の形態による、バックノードの動作のフローチャートである。
【図７】本発明の実施の形態による、フロントノードの動作のフローチャートである。
【図８】本発明の実施の形態の変形例による、データ処理システムの構成を示すブロック図である。
【図９】本発明の実施の形態の変形例による、データ処理システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
実施の形態
次に、本発明を実施するための形態について、図面を参照して詳細に説明する。
図１は、本発明の実施の形態によるデータ処理システム１０の構成を示すブロック図である。図に示すように、データ処理システム１０は、フロントノード１００、バックノード２００、及び業務アプリケーション（以下、業務ＡＰと記す。）３００を備えている。フロントノード１００は、バックノード２００及び業務ＡＰ３００と通信回線を介して接続されている。
【００１１】
データ処理システム１０は、ＣＰＵ、ＲＯＭやＲＡＭ等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。また、フロントノード１００、バックノード２００、及び業務ＡＰ３００は、単一のコンピュータにより構成されるものであっても、通信回線を介して互いに接続された複数のコンピュータにより構成されるものであってもよい。また、バックノード２００は複数含まれていてもよい。
【００１２】
フロントノード１００は、要求振分部１０１と要求退避キュー１０２を備えている。要求振分部１０１は、フロントノード１００のＣＰＵがＲＯＭ等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。要求退避キュー１０２は、メモリや外部記憶装置により実装される。
【００１３】
バックノード２００は、状態通知部２０１、要求処理部２０２、応答生成部２０３、及びデータベース２０４を備えている。状態通知部２０１、要求処理部２０２、及び応答生成部２０３は、バックノード２００のＣＰＵがＲＯＭ等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。データベース２０４は外部記憶装置により実装される。
【００１４】
要求振分部１０１は、業務ＡＰ３００からの要求を要求処理部２０２へ送信し、応答生成部２０３からの応答を業務ＡＰ３００へ戻す。また、未処理要求発生時に要求を要求退避キュー１０２へ登録する。
要求退避キュー１０２には未処理要求が蓄積される。
【００１５】
要求処理部２０２は、業務ＡＰ３００からの要求を処理する。
応答生成部２０３は、要求処理部２０２による要求の処理結果と、要求の重要度に基づいて応答を生成し、要求振分部１０１に戻す。生成される応答のパターンは、システムの性質に応じて設計される。
【００１６】
状態通知部２０１は、要求処理部２０２による障害検出や、ノードの復旧など自ノードの状態を要求振分部１０１に通知する。
【００１７】
次に、データ処理システム１０の動作について説明する。
業務ＡＰ３００は、フロントノード１００の要求振分部１０１を介してバックノード２００の要求処理部２０２に要求を送信する。この時、要求には重要度を示す情報を付加する。重要度は業務ＡＰ３００側で決定する。
【００１８】
図２は、フロントノード１００が業務ＡＰ３００から要求を受信した時の動作のフローチャートである。
要求振分部１０１が業務ＡＰ３００から要求を受信すると（ステップＳ２０１）、バックノード２００に要求を送信できる状態か否かを判定する（ステップＳ２０２）。送信可能な場合は（ＹＥＳ）、要求をバックノード２００の要求処理部２０２に送信する（ステップＳ２０３）。一方、バックノード２００に要求が送信できない状態であれば（ステップＳ２０２；ＮＯ）、要求退避キュー１０２に要求を蓄積する（ステップＳ２０４）。
【００１９】
図３は、バックノード２００がフロントノード１００から要求を受信した時の動作のフローチャートである。
要求処理部２０２がフロントノード１００から要求を受信すると（ステップＳ３０１）、要求処理部２０２は受信した要求を処理する（ステップＳ３０２）。この時、障害が発生した場合は（ステップＳ３０３；ＹＥＳ）、障害の内容を状態通知部２０１に通知し（ステップＳ３０４）、ステップＳ３０５に移行する。ステップＳ３０５では、応答生成部２０３処理結果、重要度を通知する。また、障害が発生した場合は障害内容も通知する。
【００２０】
応答生成部２０３は、要求処理部２０２から通知された処理結果、障害内容、要求の重要度に基づいて応答内容を生成し、要求振分部１０１に通知する。
【００２１】
図４は、応答生成部２０３が生成する応答の内容を示す対応表である。図に示すように、通知された処理結果、障害内容、及び要求の重要度に応じて応答内容が定義されており、これに基づいて応答が生成される。
【００２２】
図５は、フロントノード１００がバックノード２００から応答を受信した時の動作のフローチャートである。
要求振分部１０１がバックノード２００から応答を受信すると（ステップＳ５０１）、要求振分部１０１は、受信した応答内容を解析する（ステップＳ５０２）。応答内容がリトライ指示である場合はステップＳ５０３に進む。
【００２３】
応答内容が正常応答またはエラー応答である場合は、ステップＳ５０４に進む。ステップＳ５０３では、業務ＡＰ３００に応答内容を通知せずに、元の要求を要求退避キュー１０２に蓄積する。ステップＳ５０４では、業務ＡＰ３００にそのまま応答内容を通知する。
【００２４】
図６は、図３のステップＳ３０４で、要求処理部２０２から障害内容通知を受信した際の状態通知部２０１の動作のフローチャートである。
状態通知部２０１は、障害内容通知を受信すると（ステップＳ６０１）、障害内容を解析し、以後の処理の継続が不可能な障害か否かを判断する（ステップＳ６０２）。以後の動作が不可能な場合は（ＹＥＳ）、要求振分部１０１へノードダウン通知を送信する（ステップＳ６０３）。以後の動作継続が可能な場合は何も行わない（ステップＳ６０４）。
状態通知部２０１は、バックノード２００が復旧した場合や、別のノードへの切り替えが完了した場合には、復旧通知を要求振分部１０１に送信する。
【００２５】
図７は、要求振分部１０１が状態通知部２０１から通知を受信した際の動作のフローチャートである。
要求振分部１０１は、状態通知部２０１から通知を受信すると（ステップＳ７０１）、通知内容がノードダウンであるか否かを判断する（ステップＳ７０２）。ノードダウンである場合は（ＹＥＳ）、当該バックノード２００への要求送信を閉塞（中止）する（ステップＳ７０３）。通知内容がノードダウンではない場合（ＮＯ）、ノード復旧通知と判断し（ステップＳ７０４）、通知元ノードがダウンしたノードと別のノードである場合（ＹＥＳ）、以後の要求送信先を当該ノードへ変更する（ステップＳ７０６）。
【００２６】
次に、要求退避キュー１０２に蓄積されている未処理要求を新しい送信先のノードへ送信する（ステップＳ７０７）。さらに、当該ノードへの要求送信の閉塞を解除する（ステップＳ７０８）。
【００２７】
以上のように、本実施形態によれば、バックノード２００において障害が発生した際、業務ＡＰ３００からの要求に対する応答内容は重要度と障害の内容に応じて予め定義された応答内容とすることができる。したがって、業務ＡＰ３００が再度要求を発行することを期待する応答を返却した場合は、フロントノード１００から再要求が送信されるため、業務ＡＰ３００から再要求の処理を行う必要がない。
【００２８】
また、フロントノード１００がバックノード２００の復旧後または他ノードへの切り替え処理完了直後から再要求を発行するため、システムの停止時間を最小限に抑えることができる。
【００２９】
また、最終的に業務ＡＰ３００へ返却される応答は、正常またはエラーの２種類であるため、業務ＡＰ３００が応答に対して実装すべきロジックを簡潔にすることができる。
【００３０】
なお、図８に示すように、フロントノード１００が１つのバックノード２００に対して１つの要求退避キュー１０２を備えるようにしてもよい。この構成は、負荷分散等のため、要求の内容に応じて異なるバックノードで処理を行うようにしたい場合に適している。この構成によれば、あるバックノードがダウンした場合は、当該バックノードへの要求送信が閉塞され、対応する退避キューに要求が蓄積される。その間に別の要求が発生しても、その要求が当該バックノード以外のバックノードで処理すべきものであれば、要求を受け付けることができる。
【００３１】
また、図９に示すように、フロントノード１００を複数備える構成であってもよい。この場合は、バックノード２００の状態通知部２０１からの通知先は全フロントノードの要求振分部１０１になる。
【００３２】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）業務アプリケーションからの処理要求を受信するフロントノードと、
前記フロントノードから前記処理要求を受信し、前記処理要求に対する処理を実行するバックノードを備え、
前記バックノードは、
前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知する応答生成部を備え、
前記フロントノードは、
前記応答生成部から前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記処理要求の再発行を行う要求振分部を備えた、データ処理システム。
【００３３】
（付記２）前記フロントノードは、前記処理要求の重要度を示す情報を前記処理要求に付加して前記バックノードに送信し、
前記バックノードの前記応答生成部は、前記重要度と障害の内容に基づいて前記処理要求の再発行による対処が可能か否かを判断する、付記１に記載のデータ処理システム。
【００３４】
（付記３）前記バックノードは、以降の動作が不可能となる障害が発生した際に前記フロントノードに自ノードが処理不可能な状態であることを通知すると共に、障害が復旧または他のノードへの切り替えが完了したことを前記フロントノードへ通知する状態通知部を備え、
前記フロントノードの前記要求振分部は、前記状態通知部から前記バックノードが処理不可能な状態であるとの通知を受信したら、当該ノードへの処理要求送信を中止し、前記障害が復旧または他のノードへの切り替えが完了したとの通知を受信したら、当該ノードへの処理要求送信を再開する、付記１または２に記載のデータ処理システム。
【００３５】
（付記４）業務アプリケーションからの処理要求をフロントノードで受信し、
前記フロントノードからバックノードへ前記処理要求を送信し、
前記バックノードにおいて前記処理要求に対する処理を実行し、
前記バックノードは、
前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知し、
前記フロントノードは、
前記バックノードから前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記要求の再発行を行う、データ処理方法。
【００３６】
（付記５）コンピュータを、
業務アプリケーションからの処理要求を受信するフロントノードと、
前記フロントノードから前記処理要求を受信し、前記処理要求に対する処理を実行するバックノードとして機能させ、
前記バックノードは、
前記処理要求に対する処理の実行中に障害が発生した場合に、前記処理要求の再発行による対処が可能か否かを判断し、対処が可能な場合には前記フロントノードにリトライ指示を通知し、不可能な場合にはエラーを通知する応答生成部を備え、
前記フロントノードは、
前記応答生成部から前記リトライ指示が通知された場合は、前記業務アプリケーションに処理結果を通知せずに、前記処理要求の再発行を行う要求振分部を備えた、プログラム。
【符号の説明】
【００３７】
１０  データ処理システム、１００  フロントノード、１０１  要求振分部、１０２  要求退避キュー、２００  バックノード、２０１  状態通知部、２０２  要求処理部、２０３  応答生成部、２０４  データベース、３００  業務ＡＰ
【図１】
2013073483.tif 000003
【図２】
2013073483.tif 000004
【図３】
2013073483.tif 000005
【図５】
2013073483.tif 000006
【図６】
2013073483.tif 000007
【図７】
2013073483.tif 000008
【図８】
2013073483.tif 000009
【図９】
2013073483.tif 000010
【図４】
2013073483.tif 000011