(57)【要約】【課題】処理対象データを複数のサーバ装置のいずれかで処理するシステムにおいて、可用性やスループットを最適化する。【解決手段】サービス監視装置１００は、ネットワーク４００から処理対象データを受信して処理するサーバ装置３２０、サーバ装置３２０の稼働状態とネットワーク４００の状態との少なくともいずれかを監視し、監視結果を監視情報として格納する。ＥＳＢ２００は、処理対象データをネットワーク４００を介して送信するサーバ装置３１０からネットワーク４００を介して処理対象データを受信すると、サービス監視装置１００から前記監視情報を取得し、監視情報に基づきサーバ装置３２０，サーバ装置３３０のうち処理対象データを転送するべきサーバ装置を決定し、決定したサーバ装置にネットワーク４００を介して処理対象データを転送する。【選択図】図１
2010003121.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークから処理の対象となる処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視する監視部と、
前記監視部による監視結果を示す監視情報を格納する監視結果格納部と
を有する監視装置と、
前記処理対象データを前記ネットワークを介して送信するデータ送信装置から前記ネットワークを介して前記処理対象データを受信する処理対象データ受信部と、
前記処理対象データ受信部により前記処理対象データが受信されると前記監視装置から前記監視情報を取得する監視情報取得部と、
前記監視情報取得部により取得された前記監視情報に基づいて、前記複数のサーバ装置のうち前記処理対象データを転送するべきサーバ装置を決定するサーバ決定部と、
前記サーバ決定部により決定された前記サーバ装置に、前記ネットワークを介して前記処理対象データを転送する処理対象データ転送部と
を有する転送装置と
を備えたことを特徴とするデータ転送システム。
【請求項２】
前記監視装置は、さらに、
前記監視部による監視の監視条件が定義された監視条件定義を格納する監視条件定義格納部を備え、
前記監視部は、
前記監視条件定義に従って、監視することを特徴とする請求項１記載のデータ転送システム。
【請求項３】
前記監視情報取得部は、
前記監視情報を前記処理対象データに挿入して前記サーバ決定部に出力し、
前記サーバ決定部は、
前記挿入された前記監視情報を参照することにより、前記サーバ装置を決定することを特徴とする請求項１または２のいずれかに記載のデータ転送システム。
【請求項４】
前記転送装置は、さらに、
前記監視情報取得部により取得された前記監視情報をログとして蓄積するロギング処理部を有することを特徴とする請求項１〜３のいずれかに記載のデータ転送システム。
【請求項５】
処理の対象となる処理対象データをネットワークを介して送信するデータ送信装置から前記ネットワークを介して前記処理対象データを受信する処理対象データ受信部と、
前記処理対象データ受信部により前記処理対象データが受信されると、前記ネットワークから前記処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視するとともに監視結果を示す監視情報を格納する監視装置から、前記監視情報を取得する監視情報取得部と、
前記監視情報取得部により取得された前記監視情報に基づいて、前記複数のサーバ装置のうち前記処理対象データを転送するべきサーバ装置を決定するサーバ決定部と、
前記サーバ決定部により決定された前記サーバ装置に、前記ネットワークを介して前記処理対象データを転送する処理対象データ転送部と
を有することを特徴とする転送装置。
【請求項６】
ネットワークから処理の対象となる処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視する監視部と、
前記監視部による監視結果を示す監視情報を格納する監視結果格納部と、
前記ネットワークを介して前記処理対象データを受信する監視側受信部と、
前記監視側受信部により前記処理対象データが受信されると前記監視結果格納部から前記監視情報を取得し、取得した前記監視情報を前記処理対象データに挿入する監視側挿入部と
を備えたことを特徴とする監視装置。
【請求項７】
ネットワークから処理の対象となる処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視する監視部と、
前記監視部による監視結果を示す監視情報を格納する監視結果格納部と
を有する監視装置と、
前記処理対象データを前記ネットワークを介して送信するデータ送信装置から前記ネットワークを介して前記処理対象データを受信する処理対象データ受信部と、
前記処理対象データ受信部により前記処理対象データが受信されると前記監視装置から前記監視情報を取得し、取得した前記監視情報を前記処理対象データに挿入する監視情報取得部と、
前記監視情報取得部により取得された前記監視情報をログとして蓄積するロギング処理部と、
所定の前記サーバ装置に、前記ネットワークを介して前記監視情報の挿入された前記処理対象データを転送する処理対象データ転送部と
を有する転送装置と
を備えたことを特徴とするデータ転送システム。
【請求項８】
コンピュータを
処理の対象となる処理対象データをネットワークを介して送信するデータ送信装置から前記ネットワークを介して前記処理対象データを受信する処理対象データ受信部、
前記処理対象データ受信部により前記処理対象データが受信されると、前記ネットワークから前記処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視するとともに監視結果を示す監視情報を格納する監視装置から、前記監視情報を取得する監視情報取得部、
前記監視情報取得部により取得された前記監視情報に基づいて、前記複数のサーバ装置のうち前記処理対象データを転送するべきサーバ装置を決定するサーバ決定部、
前記サーバ決定部により決定された前記サーバ装置に、前記ネットワークを介して前記処理対象データを転送する処理対象データ転送部
として機能させることを特徴とする転送プログラム。
【請求項９】
コンピュータを
ネットワークから処理の対象となる処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視する監視部、
前記監視部による監視結果を示す監視情報を格納する監視結果格納部、
前記ネットワークを介して前記処理対象データを受信する監視側受信部、
前記監視側受信部により前記処理対象データが受信されると前記監視結果格納部から前記監視情報を取得し、取得した前記監視情報を前記処理対象データに挿入する監視側挿入部
として機能させることを特徴とする監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は処理対象データを転送するデータ転送システム及び転送装置及び監視装置及び転送プログラム及び監視プログラムに関する。
【背景技術】
【０００２】
近年のサービス（データ通信）連携システムは、プロトコルの異なるサーバ間で効率的にデータ交換処理行うためにＥＳＢ（エンタープライズ・サービス・バス）を介して処理することが多い（例えば、非特許文献１、特許文献１）。
【０００３】
ＥＳＢは一般にＩＥＴＦ／Ｗ３Ｃ／ＯＡＳＩＳといった標準化団体で策定されたＷｅｂサービス標準プロトコル（非特許文献２）及びＷｉｎｄｏｗｓ（登録商標）Ｆｉｌｅ共有プロトコル、ＦＴＰ（ファイル転送），ＨＴＴＰ（Ｗｅｂ），ＳＭＴＰ（電子メール），ＳＱＬ（ＤＢ（ＤａｔａＢａｓｅ））等の、デファクトスタンダードプロトコルで接続するためのプロトコル別接続処理部（バインディングコンポーネントと呼ばれる）が用意されており、この接続処理部にＵＲＬやサービス名などの具体的接続条件を与えることで接続が可能になる。また、ＥＳＢ内部処理用には、データ変換処理部（ＸＳＬＴなど）、スクリプト処理部、ルール処理部、ＥＪＢ（登録商標）（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ（登録商標）  Ｂｅａｎｓ）処理部、ＷＳ−ＢＰＥＬ処理部などのサービス処理部（サービスエンジンと呼ばれる）を持つ。ＥＳＢではルーティング定義により、各バインディングコンポーネントとサービスエンジン間のデータフローを定義することができる。データフローはＥＳＢの定義として各処理を静的に接続する方法の他、流れるデータに応じてデータフローを変更することができるいわゆるＣＢＲ（コンテンツ・ベース・ルーティング）が知られている。ＥＳＢを使うことにより、サーバ間のプロトコルの違いを吸収でき、また各処理（プロセス）の処理順序の変更が容易になる。
【０００４】
コンテンツベースルーティング（ＣｏｎｔｅｎｔｓＢａｓｅＲｏｕｔｉｎｇ：ＣＢＲ）はいくつか方式がある。標準化されたコンテンツベースルーティング方式としてはＷＳ−ＢＰＥＬ（Ｓｅｒｖｉｃｅｓ  Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｅｘｅｃｕｔｉｏｎ  Ｌａｎｇｕａｇｅ）などがあり、他にＪａｖａ（登録商標）Ｓｃｒｉｐｔなどによるスクリプトベースルーティングの他、独自の文法により制御を行うものもある。
【０００５】
（１）特許文献１には、ＥＳＢの動作原理が説明されている。特許文献１に示されているデータ処理装置を汎用化・拡張したものがＥＳＢである。
（２）また、非特許文献１には、ＥＳＢの一般的な動作原理、コンテンツベースルーティング（ＣＢＲ）が解説されている。
（３）また、非特許文献２には、Ｗｅｂサービス標準についての一般的な解説が記載されている。
【特許文献１】特開２００６−２１５９６８号公報
【非特許文献１】デビッド・Ａ．チャペル，エンタープライズサービスバス―ＥＳＢとＳＯＡによる次世代アプリケーション統合，オライリージャパン，２００５／０２，Ｐ１３５−Ｐ１４０（コンテンツベースルーティング，ＣＢＲ）
【非特許文献２】青木利春  監修「Ｗｅｂサービスコンピューティング」電子情報通信学会，平成１７年２月１日、Ｐ５２−ｐ７３等
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＥＳＢでは各接続・処理プロセスを柔軟に変更することはできるが、連携先サーバの稼動状態（運用情報）を考慮したルーティングはされていなかった。このため、連携先にデータ転送を試みた際に連携先が障害であるとエラーになるため、障害がおきた後に、一旦キューに保存し、リトライするという処理が必要になる。また連携先の処理負荷が大きい場合はスループットが悪くなる。
【０００７】
この発明は上記のような課題を解決するためになされたもので、データ連携処理（ルーティング処理）を監視システムと連携させ処理データに連携先稼動情報を取得・挿入し、データ転送時に、この稼動情報を参考に最適な連携先決定し転送する。これにより、可用性やスループットを最適化することを目的とする。また、処理対象のデータと、データを処理するシステムの監視情報を一体とすることで、システムにおいて必要に応じたログ出力を行うことを目的とする。
【課題を解決するための手段】
【０００８】
この発明のデータ転送システムは、
ネットワークから処理の対象となる処理対象データを受信して処理する複数のサーバ装置の稼働状態と前記ネットワークの状態との少なくともいずれかを監視する監視部と、
前記監視部による監視結果を示す監視情報を格納する監視結果格納部と
を有する監視装置と、
前記処理対象データを前記ネットワークを介して送信するデータ送信装置から前記ネットワークを介して前記処理対象データを受信する処理対象データ受信部と、
前記処理対象データ受信部により前記処理対象データが受信されると前記監視装置から前記監視情報を取得する監視情報取得部と、
前記監視情報取得部により取得された前記監視情報に基づいて、前記複数のサーバ装置のうち前記処理対象データを転送するべきサーバ装置を決定するサーバ決定部と、
前記サーバ決定部により決定された前記サーバ装置に、前記ネットワークを介して前記処理対象データを転送する処理対象データ転送部と
を有する転送装置と
を備えたことを特徴とする。
【発明の効果】
【０００９】
この発明により、処理対象データを複数のサーバ装置のいずれかで処理するシステムにおいて、可用性やスループットを最適化することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１〜図１４を参照して実施の形態１を説明する。
【００１１】
図１は、実施の形態１のデータ転送システム１０００のシステム構成の一例を示す図である。データ転送システム１０００は、サービス監視装置１００、ＥＳＢ２００、外部サーバ装置３１０〜３３０から構成される。サービス監視装置１００、ＥＳＢ２００、外部サーバ装置３１０〜３３０はいずれもコンピュータである。これらのコンピュータはネットワーク４００に接続しており、互いに通信が可能である。
【００１２】
図２は、コンピュータであるサービス監視装置１００、あるいはＥＳＢ２００、あるいは外部サーバ装置３１０〜３３０の外観の一例を示す図である。以下の図２及び図３の説明はサービス監視装置１００を想定して説明するが、ＥＳＢ２００、外部サーバ装置３１０〜３３０についても同様である。
【００１３】
図２において、サービス監視装置１００は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
【００１４】
図３は、コンピュータで実現されるサービス監視装置１００のハードウェア資源の一例を示す図である。図３において、サービス監視装置１００は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００１５】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部の一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００１６】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００１７】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１８】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００１９】
ファイル群８２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２０】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２１】
また、以下に述べる実施の形態の説明において、「〜部」として説明するものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００２２】
図４は、データ転送システム１０００を構成するサービス監視装置１００（監視装置）、ＥＳＢ２００（転送装置）のブロック構成を示す図である。図４を用いてサービス監視装置１００、ＥＳＢ２００の構成を説明する。図４では、サービス監視装置１００、ＥＳＢ２００、発注外部サーバ３１０（データ送信装置）、第１受注外部サーバ３２０（サーバ装置）、第２受注外部サーバ３３０（サーバ装置）は、図１に示すように、ネットワーク４００に接続しているが、ネットワーク４００は省略して記載している。
【００２３】
（サービス監視装置１００）
サービス監視装置１００は、ＥＳＢ設定・管理ＧＵＩ（ＧｒａｐｈｉｃａｌＵｓｅｒＩｎｔｅｒｆａｃｅ）部１１０、ルーティング情報生成部１２０、サービス・Ｎ／Ｗ（ＮｅｔＷｏｒｋ）監視部１３０（監視部）、ＥＳＢ管理部１４０、サービス監視ＤＢ（ＤａｔａＢａｓｅ）参照部１５０、監視条件定義１６１を格納する監視条件定義格納部１６０、サービス監視ＤＢ１７１を格納するサービス監視ＤＢ格納部１７０（監視結果格納部）、監視側通信部１８０（監視側受信部の例）を備える。
【００２４】
（ＥＳＢ２００）
ＥＳＢ２００（転送装置）は、ＥＳＢ側通信部２０５、サービスフロー前処理部２１０、データ変換処理部２２０、監視情報挿入処理部２３０（監視情報取得部）、ＣＢＲ処理部２４０（サーバ決定部）、コンテンツロギング処理部２５０、ＥＳＢ制御部２６０、メッセージバス２７０、ＥＳＢ定義２７１としてサービス管理ＤＢ２７２、接続アダプタ２８１（処理対象データ受信部）、接続アダプタ２８２、接続アダプタ２８３（処理対象データ転送部）を備える。サービスフロー前処理部２１０〜コンテンツロギング処理部２５０は、後述のようにサービスエンジン（ＳＥ）であり、それぞれ前処理定義２１１、データ変換定義２２１、監視情報挿入定義２３１、ＣＢＲ定義２４１、ログ定義２５１を持ち、これらの定義に基づいて処理を実行する。また、接続アダプタ２８１、接続アダプタ２８２、接続アダプタ２８３は、後述のようにＢＣ（バインディング・コンポーネント）である。これらは、それぞれ共有接続ファイル定義２９１、再送待ちキュー２９２、ｈｔｔｐ接続定義２９３をもつ。
【００２５】
（サービス監視装置１００）
サービス監視装置１００は、ＥＳＢ２００上のサービスフロー前処理部２１０、監視情報挿入処理部２３０、ＣＢＲ処理部２４０（振り分け処理）、ロギング処理２５０等と連動しながら動作する。サービス監視装置１００のうち、ＥＳＢ設定・管理ＧＵＩ部１１０は、ＥＳＢ設定部１１１、サービスプロセス（呼び出し順序）設計部１１２、プロセス監視設計部１１３を備える。これらは、ＥＳＢ設定、サービスプロセス（呼び出し順序）設計、プロセス監視設計を行うためのインタフェース機能をもつ。ＥＳＢ設定・管理ＧＵＩ部１１０は、サービスプロセス設計部１１２により、特定の業務処理用のサービスフローの設計を行う。また、プロセス監視設計部１１３により、監視対象とするサービスの監視方法および設計した業務フローにおいて「監視情報」を挿入する手順、当該挿入された「監視情報」に基づいてルーティング処理を行う手順を設計する。ここで監視情報とは、監視条件定義に従って、サービス・Ｎ／Ｗ監視部１３０により監視された監視結果を示す情報である。いかなるものを監視情報とするかについては、監視条件定義による。例えば、監視情報とは、連携処理先のサービス（サーバ装置）の稼動状態や、ネットワーク４００の状態や、連携システム間のネットワーク運用管理情報（障害・性能情報）などである。
【００２６】
（定義情報の送信）
サービスプロセス設計部１１２、プロセス監視設計部１１３により生成されたこれらの「設計情報」により、ルーティング情報生成部１２０がＥＳＢ２００に配布する定義情報を生成する。ルーティング情報生成部１２０により生成された定義情報は、「ＥＳＢ管理部１４０」が監視側通信部１８０を用いてＥＳＢ側通信部２０５に送信し、ＥＳＢ側通信部２０５からＥＳＢ制御部２６０をとおしてＥＳＢ２００に展開される。またＥＳＢ管理部１４０は、ＥＳＢプロセスの起動・停止などの制御も行う。
【００２７】
（監視条件定義１６１の生成）
プロセス監視設計部１１３は、監視対象となる各サービスの「監視条件定義１６１」を生成・保存する。図５は、プロセス監視設計部１１３により生成される監視条件定義１６１の例を示す図である。サービス・Ｎ／Ｗ監視部１３０は、この監視条件定義１６１に基づいて、監視対象に指定されたサービス等を監視し、監視結果をサービス監視ＤＢ１７１に保存する。これらの監視条件定義１６１、及びサービス監視ＤＢ１７１に格納された監視結果は、サービス監視ＤＢ参照部１５０を介することにより、他のシステムからも参照することができる。
【００２８】
（ＥＳＢ２００上のバインディング・コンポーネントＢＣ）
ＥＳＢ２００の機能として、外部システムと様々なプロトコルにより接続する機能は、いわゆるＢＣ（バインディング・コンポーネント）機能（図４に示す接続アダプタ）により提供されている。ＢＣはプロトコル別の接続処理部品といえる。各プロトコル別の接続部品にサービス名、（エンドポイント）アドレス情報等を定義し、この接続定義を対応するＢＣに展開することで定義に基づいた接続処理が実行される。接続アダプタは、例えば、ＨＴＴＰ，ＳＯＡＰ／ＨＴＴＰ，ＪＭＳ（Ｊａｖａ（登録商標）  Ｍｅｓｓａｇ  Ｓｅｒｖｉｃｅ），ＳＱＬ、ファイル共有プロトコルなどの様々なプロトコル処理用のＢＣがある。
【００２９】
データ転送システム１０００ではＢＣの機能はそのまま利用する。以下、説明のために、入力用の接続アダプタ２８１を共有ファイルプロトコル接続アダプタ、出力用の接続アダプタとしてＨＴＴＰ（ＨｙｐｅｒＴｅｘｔＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌ）として説明するが特にこれに限定するわけではない。
【００３０】
（メッセージバス２７０）
ＥＳＢ２００にはメッセージバス２７０がある。これはデータをやりとりするための通信路であり、外部から受信したデータはＥＳＢ２００内では正規化形式（通常ＸＭＬ形式）に変換され、この正規化されたメッセージを各専用処理モジュールであるＳＥ（サービスエンジン）間で受け渡して一連の業務処理を進めていく。
【００３１】
（ＥＳＢサービスエンジン）
また、ＥＳＢの機能としてＳＥ（サービスエンジン）がある。例えば、データ変換（ＣＳＶファイルからＸＭＬ形式への変換、ＸＭＬ形式のフォーマット変換）サービスエンジン、コンテンツベースルーティング（ＣＢＲ）サービスエンジンなどがある。データ変換ＳＥに、変換処理の具体的な定義（ＡフォーマットからＢフォーマットへの変換指示）をサービス定義とし、これをデータ変換ＳＥに展開すると、指示されたデータ変換処理がなされる。図４では、データ変換処理部２２０にデータ変換定義２２１を適用している。
【００３２】
（ＥＳＢ２００のサービスエンジン）
データ転送システム１０００のＥＳＢ２００では、一般的なデータ変換処理等のサービスエンジン（データ変換処理部２２０に相当）はそのまま利用する。これに加えて、サービス監視装置１００と連動するいくつかのサービスエンジンを追加する。ＥＳＢ２００では、データフローの識別をするための「サービスフロー前処理部２１０」（ＳＥ１）、関連サービスの監視情報をデータ自体に挿入する「監視情報挿入処理部２３０」（ＳＥ３）、「（挿入された監視情報に基づき連携先のサービスを変化させる）ＣＢＲ処理部２４０」（ＳＥ４）、「（データとシステムの状態をログする、）コンテンツロギング処理部２５０」（ＳＥ５）を追加する。
【００３３】
（定義ファイル）
また、各ＢＣ，各ＳＥの呼び出し順序制御、すなわち“ルーティング情報”は、前述したように定義ファイルとして表現され、ＥＳＢ管理部１４０からＥＳＢ制御部２６０に配布された後、「サービス管理ＤＢ２７２」に保存される。ルーティング制御の記述方式にはＷＳ−ＢＰＥＬなど標準化されたものの他、様々な記述方法がある。サービス監視装置データ転送システム１０００では、特に特定しておらず、ルーティング定義が可能であればいずれの方法でもよい。また、各ＢＣ２９１〜２９３，ＳＥ用の各定義２１１〜２５１には、サービス名とアドレス情報（エンドポイントアドレス）が記載指定されるが、これらのアドレス情報も定義配布時に抽出され、サービス管理ＤＢ２７２に保存されるものとする。
【００３４】
（通信プロトコル）
サービス監視装置１００（監視側通信部１８０）とＥＳＢ２００（ＥＳＢ側通信部２０５）との間は、ＪＭＸ／ＳＮＭＰなどの管理通信プロトコルで通信する。なお、監視情報挿入処理部２３０はＥＳＢ２００上にある必要はなく、サービス監視装置１００に監視側挿入部として実装してもよい。この場合、監視側挿入部は、ＥＳＢ２００から監視側通信部１８０を介してデータ変換処理部２２０によるデータ変換後のデータを受け取り、監視情報挿入処理部２３０と同様の処理を行ない、監視側通信部１８０を介して、処理後のデータをＣＢＲ処理部２４０に返す。
【００３５】
図５では、サービス・Ｎ／Ｗ監視部１３０が参照する監視条件定義１６１の例を示した。サービス・Ｎ／Ｗ監視部１３０は、この監視条件定義１６１に従って、ＥＳＢ２００上のサービスまたは外部サーバで提供されるサービスを適宜監視する。監視条件は監視条件定義１６１によって定義されるが、監視条件は、例えば、連携処理先のサービス（サーバ装置）や連携システム間のネットワーク運用管理情報（障害・性能情報）である。
【００３６】
サービス・Ｎ／Ｗ監視部１３０は、ＰＩＮＧ／ＳＮＭＰなどの標準プロトコルの他、サービスが提供されているＴＣＰ／ＵＤＰポートのチェックを行う方法が一般的である。また、システムによってはサービス監視用のダミーデータ（ヘルスチェックデータ）を送信しその応答により監視し、サービスの稼動状態を調べる方法を提供するものもある。これらの監視は定義ファイルで指定された周期によりポーリング監視を行う方法の他、監視対象のサービスからの通知よっても監視結果を取得することができる。監視結果はサービス監視ＤＢ１７１に保存され、監視結果はサービス監視ＤＢ参照サービスＡＰＩ等（サービス監視ＤＢ参照部１５０）により参照可能になっているものとする。これらは一般的に知られた方法のため説明は省略する。
【００３７】
（一般的な場合のデータ処理の動作）
図６を用いて、データ転送システム１０００のデータ処理の動作を説明する。図６のように、定義ファイルによって各サービス処理の順序がサービス処理フローとして定義される。ＥＳＢ処理の順番は定義を変更することで可能である。ここでは、まず図６とは別に、一般的な処理フローとして、
（１）入力処理、
（２）データ変換処理、
（３）出力処理
が定義されている場合を考える。
【００３８】
例えば、「（１）入力処理」では、特定のディレクトリパス上の共有フォルダにおかれたＣＳＶ形式のファイルをファイル共有プロトコルにより取り込む。取り込んだＣＳＶデータは、ＥＳＢメッセージバスを介してデータ変換処理に送信される。
「（２）データ変換処理」ではＣＳＶ形式の発注データファイルをデータ変換定義に従って受注システムが指定するＸＭＬ形式ファイルに変換する。データ変換定義は一般的な手法と特にかわらないためこの説明は省略する。
「（３）データ変換処理」では、変換されたデータを受注システムに送付するために、ＨＴＴＰ出力接続アダプタを通して外部サーバ（図４の第１受注外部サーバ３２０）に送信する、という一連のデータフローが定義されているとする。
【００３９】
上記処理では、第１受注外部サーバ３２０が障害の場合、もしくはＥＳＢと第１受注外部サーバ３２０間のネットワークの障害が起こった場合には、処理が停止してしまう。このため、従来は一般的に、次のように処理していた。すなわち、データ送信処理が失敗した場合は、一旦データをキューイングし、一定時間後に再送処理を行っていた。この方式では第１受注外部サーバ３２０の障害であることをサービス監視装置１００で検出済みの場合であっても、一旦データ出力処理を実行し、エラー処理としてデータを一時蓄積し、その後エラーとなったデータの再送処理を実施する。このため、出力処理分の無駄が生じ、また再送処理は通常一定時間後に試行するためデータ転送性能も悪くなるという課題があった。
【００４０】
（本データ転送システム１０００の特徴）
そこで本データ転送システム１０００では、可用性向上や負荷分散により性能を向上させたい処理の前に、監視情報挿入処理部２３０による監視情報挿入処理と、ＣＢＲ処理部２４０による挿入監視情報に基づく振り分け処理（連携先切り替え処理）を挿入することで前述の課題を解決する。これらの処理を行う際に、各トランザクション単位でこれらの処理を適用するためにはフローを識別するための処理が必要となる。そのために、一連の処理が実行される前にサービスフロー前処理部２１０による前処理（「サービスフロー前処理）として、定義された業務フローのクラスＩＤ及び処理中のフローを識別するため（フローの）インスタンスＩＤを挿入する機能を実装する。これらの前処理はＢＣの一部の機能として実装しても良いが、データ転送システム１０００では共通的な単体の前処理機能として説明する。
【００４１】
可用性や性能を向上させるために、外部サーバとして第１受注外部サーバ３２０と同じ機能をもつ第２受注外部サーバ３３０を追加する。
【００４２】
次に、データ転送システム１０００で処理する場合の一連の処理手順を、図６を参照して説明する。
【００４３】
（入力処理：ＢＣ１）
発注外部サーバ３１０（データ送信装置の一例）の特定共有フォルダに処理の対象となる発注データファイル（処理対象データの一例）が保存（入力）される。入力の接続アダプタ２８１はファイルが置かれるとこれを検知し、これを入力として図６に示す入力処理（ＢＣ１）を開始する。接続定義（共有接続Ｆｉｌｅ定義２９１）では、サービス名、フォルダのアドレス（ＵＲＬ）、検出方式（フォルダのポーリング）、検出間隔などが定義されている。発注データファイルを取り込んだ後は、接続アダプタ２８１は図６の定義に従って、サービスフロー前処理部２１０に入力データを渡す（ＳＥ１−ｓｅ１を呼び出す）。
【００４４】
（ＳＥ１：前処理）
図７は、前処理定義２１１（ｓｅ１）の一例を示す図である。サービスフロー前処理部２１０は、前処理定義２１１に従って、前処理を実行する。まずサービスフロー前処理部２１０は、入力された発注データファイルのヘッダーとして、図６の処理フロー定義を識別するためのｆｌｏｗ・ｃｌａｓｓＩＤを挿入する。また、図６の各々の処理を識別するためのインスタンス番号も挿入する。その他、前処理を実施した日時、図６のフローの各サービスのうち、監視情報を挿入するサービス名などを挿入する。この後、サービスフロー前処理部２１０は、データ変換処理部２２０（変換処理ＳＥ２−ｓｅ２）を呼び出す。
【００４５】
（ＳＥ２：データ変換処理）
データ変換処理部２２０（変換処理ＳＥ２−ｓｅ２）は、従前の場合と同様に、データ変換定義２２１（定義ｓｅ２）に従って、ＣＳＶ形式のファイルをＸＭＬ形式に変換する。変換処理自体は一般的な方法であるため説明は省略する。
【００４６】
図８は、データ変換処理部２２０によって変換されたデータ２０１の例を示す図である。＜Ｈｅａｄｅｒ＞部２１６はサービスフロー前処理部２１０により挿入された情報である。  ＜Ｄａｔａ＞部２１２は、データ変換定義２２１（ｓｅ２）に基づきデータ変換処理部２２０によりよりＸＭＬ（ｅＸｔｅｎｓｉｂｌｅＭａｒｋｕｐＬａｎｇｕａｇｅ）に変換されたデータである。データ変換処理（ＳＥ２−ｓｅ２）が終わると、図６のフロー定義に従ってデータ変換処理部２２０は監視情報挿入処理部２３０（ＳＥ３−ｓｅ３）を呼び出し、データ２０１を渡す。
【００４７】
（ＳＥ３：監視情報挿入処理）
監視情報挿入処理部２３０（ＳＥ３−ｓｅ３）は、図８に示すデータ２０１を受信する。図９は、監視情報挿入定義２３１（ｓｅ３）の例を示す図である。この図９の例では、全てのフローに対して、指示された監視対象サービスの情報を挿入すべきことが指示されている。また、監視情報を取得するためのサービスインタフェース（ＧｅｔＳｅｒｖｉｃｅＳｔａｔｕｓ／ＧｅｔＮｅｔｗｏｒｋＳｔａｔｕｓ）が指定されている。また、データ２０１中のヘッダー部２１６には監視すべきサービス（Ｍａｎａｇｅｍｅｎｔ＿ｐｌｎｋのＨＴＴＰＳｅｒｖｉｃｅ）が指定されている。
【００４８】
図１０は、監視情報挿入処理部２３０による処理手順を示す図である。監視情報サービスは、サービスエンジン起動時に、定義（監視情報挿入定義２３１）により、どの処理フローについて監視情報を挿入するか、監視情報をどのインタフェースで取得するかを記憶する。監視情報挿入処理部２３０は、監視対象サービス名をデータ２０１の＜Ｍａｎａｇｅｍｅｎｔ＿ｐｌｎｋ＞タグ２１３により取得する。この例では「ＨＴＴＰ  Ｓｅｒｖｉｃｅ」の情報を取得することがわかる（Ｓ１０１）。次に監視情報挿入処理部２３０は、「ＨＴＴＰ  Ｓｅｒｖｉｃｅ」の監視情報（サービス稼働情報）を「ＧｅｔＳｅｒｖｉｃｅＳｔａｔｕｓ」等のサービスインタフェースを利用し取得する（Ｓ１０２）。「ＧｅｔＳｅｒｖｉｃｅＳｔａｔｕｓ」等は、管理用通信により、監視情報挿入処理部２３０がＥＳＢ側通信部２０５を用いて監視側通信部１８０を介して、サービス監視ＤＢ１７１を参照してサービス状態を取得する。またＯＳやネットワークの状態も取得するように指定されていればこれも取得する。
【００４９】
監視情報挿入処理部２３０は、取得した挿入監視データをデータ２０１に追記（挿入）し（Ｓ１０３）、データ２０２とする。図１１は、データ２０１に監視情報が挿入されたデータ２０２を示す図である。監視情報挿入処理部２３０による処理の終了後は、監視情報挿入処理部２３０は図６の定義に従ってＣＢＲ処理部２４０（ＳＥ４−ｓｅ４）を呼び出す。
【００５０】
（ＳＥ４：振り分け処理）
ＳＥ４は、ＣＢＲ処理部２４０による振り分け処理である。ＣＢＲ（コンテンツベースルーティング）とは、処理すべきデータの中身によりサービスを変える処理である。例えば購入の決済データがコンテンツルーティング処理部にインプットされた場合に、（ＸＭＬ）データの購入総額（タグ）に記載された金額をチェックする。もし、購入総額が１００万以上であれば、管理部門の承認をうけるためのサーバにデータを送信し、そうでなければ発注サーバに送信するという処理が実現されている。購入総額の判断部の定義方法には様々な方法があるが、ＸＭＬ形式の記載、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔなどのスクリプト記載、ＢＰＥＬ形式の記載などが知られている。
【００５１】
次に図１２のフローチャートを用いて、挿入された監視情報に基づくＣＢＲ処理部２４０の振り分け処理を説明する。
【００５２】
また、図１３は、挿入監視情報に基づくデータ振り分け定義２４１（ＣＢＲ定義）の例を示す図である。図１３は、スクリプト記述型の定義によりコンテンツベースルーティングを定義している。
【００５３】
ＣＢＲ処理部２４０（振り分け処理ＳＥ４−ｓｅ４）は、監視情報挿入処理部２３０から監視情報付のデータ２０２を受信する。ＣＢＲ処理部２４０では最終データ送信先のサービス名（ここではヘッダー部のＳｅｒｖｉｃｅＴｏ）を取得する（Ｓ２０１）。次に取得したサービスのステータスを監視情報挿入処理部２３０により挿入された、ＭａｎａｇｅｍｅｎｔＩｎｆｏタグ部分より取得し、最新のサービス状態を確認する（Ｓ２０２）。次にＣＢＲ処理部２４０は、サービス状態を判定する（Ｓ２０３）。サービスが正常に稼動中であれば（Ｓ２０３のＹＥＳ）、ＣＢＲ処理部２４０は、図６の親フローに戻しそのまま次の処理（外部サービス呼び出し）を呼び出す（Ｓ２０４）。サービスが稼動中でなければ（Ｓ２０３のＮＯ）、ＣＢＲ処理部２４０は、ＭａｎａｇｅｍｅｎｔＩｎｆｏタグ部分２１５より代替サービスを探し、その名前を取得し、代替サービスが稼働中かを判定する（Ｓ２０５）。代替サービスで稼動中のものがあった場合は（Ｓ２０５のＹＥＳ）、サービス転送先情報（ここではヘッダー部のＳｅｒｉｖｃｅＴｏ）を、取得した代替サービス名（ＨｔｔｐＳｅｒｖｉｃｅ２）に書き換える（Ｓ２０６）。その後、図６の親フローに戻し、次の処理を呼び出す。代替サービスがなければ（Ｓ２０５のＮＯ）、通常のエラー処理としてエラーキュー（再送待ちキュー２９２）にいれ、一定時間経過後に再送信を試みる（Ｓ２０７）。
【００５４】
最後に図６のフローではＨＴＴＰ送信サービス（出力処理ＢＣ２：接続アダプタ２８３）が呼び出される。ＨＴＴＰ用のＢＣ（接続アダプタ２８３）は送信先を決めるため、メッセージ中の送信先情報（ＳｅｒｖｉｃｅＴｏ）より読み出す。この部分は振り分け処理によりアドレスが書き換えられているため、システムで設定された本来の送信先（ＨＴＴＰＳｅｒｖｉｃｅ１）ではなくリライトされたアドレス情報（ＨＴＴＰＳｅｒｖｉｃｅ２）に基づき、サービスが呼び出される。この処理により、サービス障害の場合、代替サービスを呼び出すことで処理を継続していくことが可能になる。
【００５５】
上記のように通常の業務処理に監視用の処理ステップ（基本的には前処理、監視情報挿入処理部２３０、監視情報を利用したＣＢＲ処理部２４０（ルーティング処理部））を挿入する方法・システムにより、全体システムとしての可用性や性能を上げることが可能になる。
【００５６】
（ロギング処理）
上例では監視用の処理サービスステップとして、前処理、監視情報挿入処理部２３０による監視情報挿入処理、ＣＢＲ処理部２４０による監視情報を利用したルーティング処理を元のフローに埋め込むことで可用性を向上する例を示したが、さほど可用性を考慮する必要のないシステムにおいては当該ルーティング処理（振り分け処理）をコンテンツロギング処理部２５０によるロギング処理に置き換えて、システムログをとるように変更することも容易に可能である。ログ定義２６１の例を図１４に示す。この例では図６の業務フロー処理の場合は全てのデータをダンプし、それ以外の処理ではヘッダー部のみダンプすることを示している。またこの応用としては、データに監視情報が挿入されている場合、ステータスが障害のときのみ詳細にダンプし、それ以外はダンプしないなどの処理を行うことも容易に実装可能になる。
【００５７】
また、図４に示しているように、ＣＢＲ処理部２４０を備え、更に、コンテンツロギング処理部２５０を備えた構成にしても良いことはもちろんである。
【００５８】
実施の形態１のデータ転送システム１０００によれば、元々の業務処理をそのまま利用し、これに監視情報を追加し、この監視情報に基づいて振り分け処理（ＣＢＲ処理部２４０）やコンテンツロギング処理部２５０を柔軟に定義できるため、データ単位で適時稼動中のサービスを選択して負荷分散処理したり、監視情報を考慮してログを出力できるなどのメリットがある。トランザクションデータ中に連携サービスの稼動情報を埋め込み、その監視データ（コンテンツ）に基づいて、最適なサービスを動的に決定するため連携先のサービス停止時にも柔軟にバックアップサーバへ転送することが可能になり、信頼性を向上させることができる。
【００５９】
また、振り分け処理、ログ処理などはＥＳＢ２００上のプロセスである必要はないためシステムの拡張性の点でも本システム・方式は有用である。
【００６０】
以上の実施の形態では、
一連の業務プロセス処理を、分散した複数のサーバを連携させ分散処理する分散処理システムにおいて、処理対象の業務データ中に連携処理先のサービス（サーバ装置）や連携システム間のネットワーク運用管理情報（障害・性能情報）を挿入する運用情報付加機能と、業務データ（コンテンツ）中に挿入された運用情報により、最適な連携先サービスを動的に選択するデータ分散処理システム（サービス連携型統合運用管理装置）を説明した。
【００６１】
以上の実施の形態では、
一連の業務プロセス処理において、分散した複数のサーバを（サービスバスにより）連携させ分散処理するシステムにおいて、処理対象の業務データ（コンテンツ）中に連携先のサービス（サーバ）や連携システム間のネットワークに関する運用管理情報（障害・性能情報）を挿入し、業務データ（コンテンツ）中に挿入された当該運用情報により、最適な連携先サービス（サーバ）動的に変更し、連携させることを特徴とするデータ分散処理方式を説明した。
【００６２】
以上の実施の形態では、
一連の業務プロセス処理において、分散した複数のサーバを（サービスバスにより）連携させ分散処理するシステムにおいて、処理対象の業務データ（コンテンツ）中に連携先のサービス、ネットワークの運用管理情報（障害管理・性能管理情報）を挿入することに特徴を有する統合運用管理システムを説明した。
【００６３】
以上の実施の形態では、
一連の業務プロセス処理において、分散した複数のサーバを（サービスバスにより）連携させ分散処理するシステムにおいて、処理対象の業務データ（コンテンツ）中に連携先のサービス、ネットワークの運用管理情報（障害管理・性能管理情報）を挿入し、別途挿入情報をログに書き出す統合運用管理システムを説明した。
【図面の簡単な説明】
【００６４】
【図１】実施の形態１におけるデータ転送システムのシステム構成を示す図。
【図２】実施の形態１におけるサービス監視装置等の外観の一例を示す図。
【図３】実施の形態１におけるサービス監視装置等のハードウェア構成を示す図。
【図４】実施の形態１におけるサービス監視装置、ＥＳＢのブロック図。
【図５】実施の形態１における監視条件定義の一例を示す図。
【図６】実施の形態１におけるデータ転送システムの動作を示すフローチャート。
【図７】実施の形態１における前処理定義を示す図。
【図８】実施の形態１における処理対象データを示す図。
【図９】実施の形態１における監視情報挿入定義の一例を示す図。
【図１０】実施の形態１における監視情報の挿入手順を示すフローチャート。
【図１１】実施の形態１における監視情報が挿入された処理対象データの例を示す図。
【図１２】実施の形態１におけるＣＢＲ処理の手順を示すフローチャート。
【図１３】実施の形態１におけるＣＢＲ定義の例を示す図。
【図１４】実施の形態１におけるログ定義２５１の例を示す図。
【符号の説明】
【００６５】
１００  サービス監視装置、１１０  ＥＳＢ設定・管理ＧＵＩ部、１１１  ＥＳＢ設定部、１１２  サービスプロセス設計部、１１３  プロセス監視設計部、１２０  ルーティング情報生成部、１３０  サービス・Ｎ／Ｗ監視部、１４０  ＥＳＢ管理部、１５０  サービス監視ＤＢ参照部、１６０  監視条件定義格納部、１６１  監視条件定義、１７０  サービス監視ＤＢ格納部、１７１  サービス監視ＤＢ、１８０  監視側通信部、２００  ＥＳＢ、２０５  ＥＳＢ側通信部、２１０  サービスフロー前処理部、２１１  前処理定義、２２０  データ変換処理部、２２１  データ変換定義、２３０  監視情報挿入処理部、２３１  監視情報挿入定義、２４０  ＣＢＲ処理部、２４１  ＣＢＲ定義、２５０  コンテンツロギング処理部、２５１  ログ定義、２６０  ＥＳＢ制御部、２７０  メッセージバス、２７１  ＥＳＢ定義、２７２  サービス管理ＤＢ、２８１，２８２，２８３  接続アダプタ、２９１  共有接続ファイル定義、２９２  再送待ちキュー、２９３  ｈｔｔｐ接続定義、３１０  発注外部サーバ、３２０  第１受注外部サーバ、３３０  第２受注外部サーバ、４００  ネットワーク、１０００  データ転送システム。
【図１】
2010003121.tif 000003
【図２】
2010003121.tif 000004
【図３】
2010003121.tif 000005
【図４】
2010003121.tif 000006
【図５】
2010003121.tif 000007
【図６】
2010003121.tif 000008
【図７】
2010003121.tif 000009
【図８】
2010003121.tif 000010
【図９】
2010003121.tif 000011
【図１０】
2010003121.tif 000012
【図１１】
2010003121.tif 000013
【図１２】
2010003121.tif 000014
【図１３】
2010003121.tif 000015
【図１４】
2010003121.tif 000016