(57)【要約】【課題】非同期処理における様々な要件に対して柔軟に対応すること。【解決手段】情報処理装置は、データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理装置において、前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数のコネクタと、前記複数のコネクタとそれぞれ対応付けられ、対応する前記コネクタが取得した前記実行データを実行処理する複数のワーカースレッドと、前記複数のコネクタ及び前記複数のワーカースレッドを制御し、前記業務毎にシステムリソースの割り当てを調整する制御部と、を備える。【選択図】図１
2017033094.tif 000002
【特許請求の範囲】
【請求項１】
データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理装置において、
前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数のコネクタと、
前記複数のコネクタとそれぞれ対応付けられ、対応する前記コネクタが取得した前記実行データを実行処理する複数のワーカースレッドと、
前記複数のコネクタ及び前記複数のワーカースレッドを制御し、前記業務毎にシステムリソースの割り当てを調整する制御部と、
を備えることを特徴とする、情報処理装置。
【請求項２】
前記制御部は、実行処理の起動タイミング及び停止タイミング、またはそのいずれか一方を、前記コネクタ毎に制御する、
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、実行処理の１トランザクションあたりの前記実行データの量を、前記コネクタ毎に制御する、
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記コネクタに複数の前記ワーカースレッドが対応付けられ、前記コネクタが取得した順に前記実行データを前記ワーカースレッドに割り当て、かつ、関連性がある前記実行データについては他の前記ワーカースレッドの割り当てによる実行処理の追い越しを抑止するために、同一の前記ワーカースレッドへ前記関連性がある前記実行データを優先的に割り当てる、
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項５】
業務に紐づく実行データを複数の業務毎に複数有する他の装置と、
前記他の装置から前記実行データを取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理装置であって、前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数のコネクタと、前記複数のコネクタとそれぞれ対応付けられ、対応する前記コネクタが取得した前記実行データを実行処理する複数のワーカースレッドと、前記複数のコネクタ及び前記複数のワーカースレッドを制御し、前記業務毎にシステムリソースの割り当てを調整する制御部と、を備える前記情報処理装置と、
を有することを特徴とする、情報処理システム。
【請求項６】
データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理方法において、
前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数の第１ステップと、
前記複数の第１ステップとそれぞれ対応付けられ、対応する前記第１ステップが取得した実行データを実行処理する複数の第２ステップと、
前記複数の第１ステップ及び前記複数の第２ステップを制御し、前記業務毎にシステムリソースの割り当てを調整する第３ステップと、
を有することを特徴とする、情報処理方法。
【請求項７】
データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって1つのプロセスにて実行処理するコンピュータに、
前記複数の業務にそれぞれ対応付けられた、非同期処理エンドポイントから前記実行データを取得する複数の第１ステップと、
前記複数の第１ステップとそれぞれ対応付けられ、対応する前記第１ステップが取得した実行データを実行処理する複数の第２ステップと、
前記複数の第１ステップ及び前記複数の第２ステップを制御し、前記業務毎にシステムリソースの割り当てを調整する第３ステップと、
を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処置装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
電子商取引の分野等における大規模なシステムにおいて、非同期に処理するバックエンドプロセスを含んで分散トランザクション処理を実行する非同期処理の実行方式が用いられる。従来のマルチスレッドによって非同期処理を行うサーバシステムは、複数のクライアントからの処理要求を処理するために、１つのリスナと複数のワーカースレッドを有する。例えば、特許文献１に記載のサーバシステムでは、リスナがクライアントからの処理要求を受けて、その処理要求に対する処理を、ランダムにいずれかのワーカースレッドに割り当てる。ワーカースレッドは、リスナによって割り当てられた処理について、クライアントからデータを受け取り、受け取ったデータについて処理を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５０９２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の非同期処理のサーバシステムは、クライアントからの処理要求に対する処理を、ランダムにいずれかのワーカースレッドに割り当てるため、それぞれの処理要求（業務）毎にワーカースレッドのシステムリソースを割り当てることができない。そのため、例えば、より優先度が高い処理要求（業務）に、より多くのシステムリソースを割り当てるようなことは困難である。また、従来の非同期処理のサーバシステムにおいては、例えばサーバやＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）を増設することによって、ワーカースレッドのシステムリソースを拡大する際には、それぞれの処理要求（業務）を分割する等の事前準備が必要になり、容易にシステムリソースを拡大することは困難である。このように、従来の非同期処理のサーバシステムは、非同期処理における様々な要件に対して柔軟に対応することができないという課題がある。
【０００５】
本発明は上記の点に鑑みてなされたものであり、非同期処理における様々な要件に対して柔軟に対応することができる情報処置装置、情報処理システム、情報処理方法、及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
（１）本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理装置において、前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数のコネクタと、前記複数のコネクタとそれぞれ対応付けられ、対応する前記コネクタが取得した前記実行データを実行処理する複数のワーカースレッドと、前記複数のコネクタ及び前記複数のワーカースレッドを制御し、前記業務毎にシステムリソースの割り当てを調整する制御部と、を備えることを特徴とする、情報処理装置である。
【０００７】
（２）また、本発明の一態様としては、前記制御部は、実行処理の起動タイミング及び停止タイミング、またはそのいずれか一方を、前記コネクタ毎に制御する、ことを特徴とする、（１）に記載の情報処理装置である。
【０００８】
（３）また、本発明の一態様としては、前記制御部は、実行処理の１トランザクションあたりの前記実行データの量を、前記コネクタ毎に制御する、ことを特徴とする、（１）に記載の情報処理装置である。
【０００９】
（４）また、本発明の一態様としては、前記コネクタに複数の前記ワーカースレッドが対応付けられ、前記コネクタが取得した順に前記実行データを前記ワーカースレッドに割り当て、かつ、関連性がある前記実行データについては他の前記ワーカースレッドの割り当てによる実行処理の追い越しを抑止するために、同一の前記ワーカースレッドへ前記関連性がある前記実行データを優先的に割り当てる、ことを特徴とする、（１）に記載の情報処理装置である。
【００１０】
（５）また、本発明の一態様としては、業務に紐づく実行データを複数の業務毎に複数有する他の装置と、前記他の装置から前記実行データを取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理装置であって、前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数のコネクタと、前記複数のコネクタとそれぞれ対応付けられ、対応する前記コネクタが取得した前記実行データを実行処理する複数のワーカースレッドと、前記複数のコネクタ及び前記複数のワーカースレッドを制御し、前記業務毎にシステムリソースの割り当てを調整する制御部と、を備える前記情報処理装置と、を有することを特徴とする、情報処理システムである。
【００１１】
（６）また、本発明の一態様としては、データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって１つの処理プロセスにて実行処理する情報処理方法において、前記複数の業務にそれぞれ対応付けられた非同期処理エンドポイントから前記実行データを取得する複数の第１ステップと、前記複数の第１ステップとそれぞれ対応付けられ、対応する前記第１ステップが取得した実行データを実行処理する複数の第２ステップと、前記複数の第１ステップ及び前記複数の第２ステップを制御し、前記業務毎にシステムリソースの割り当てを調整する第３ステップと、を有することを特徴とする、情報処理方法である。
【００１２】
（７）また、本発明の一態様としては、データベースやメッセージングサービスサーバより業務に紐づく実行データを複数の業務毎に複数取得し、非同期処理によって1つのプロセスにて実行処理するコンピュータに、前記複数の業務にそれぞれ対応付けられた、非同期処理エンドポイントから前記実行データを取得する複数の第１ステップと、前記複数の第１ステップとそれぞれ対応付けられ、対応する前記第１ステップが取得した実行データを実行処理する複数の第２ステップと、前記複数の第１ステップ及び前記複数の第２ステップを制御し、前記業務毎にシステムリソースの割り当てを調整する第３ステップと、を実行させるための、プログラムである。
【発明の効果】
【００１３】
本発明によれば、非同期処理における様々な要件に対して柔軟に対応することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【図２】本発明の第２の実施形態に係る情報処理システムの構成の一例を示す概略図である。
【図３】本発明の第３の実施形態に係る情報処理システムの構成の一例を示す概略図である。
【図４】本発明の第４の実施形態に係る情報処理システムと従来システムとの稼働率の比較を示す概略図である。
【図５】本発明の第５の実施形態に係る情報処理システムの構成の一例を示す概略図である。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下、本発明の第１の実施形態について、図面を参照しながら説明する。
図１は、本発明の第１の実施形態に係る情報処理システム１Ａの構成の一例を示すブロック図である。
第１の実施形態に係る情報処理システム１Ａは、情報処理装置１０Ａと、メッセージサーバ２０Ａと、を含んで構成される。
【００１６】
情報処理装置１０Ａは、メッセージサーバ２０Ａから取得する処理対象データを用いてソフトウェア処理を実行する装置である。情報処理装置１０Ａは、例えば、アプリケーションを実行するアプリケーションサーバである。
【００１７】
また、メッセージサーバ２０Ａは、クライアント（図示せず）から処理対象データを取得し、取得したデータを、複数個のデータをまとめたデータ群（以下、メッセージとも称する）にして、情報処理装置１０Ａへ提供するためのサーバ装置である。
メッセージサーバ２０Ａは、例えば、Ｊａｖａ（登録商標）プログラムにネットワークを介してデータを送受信させるためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）であるＪＭＳ（Ｊａｖａ（登録商標）  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ）を実行するサーバ装置である。
【００１８】
第１の実施形態に係る情報処理装置１０Ａは、複数のコネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）と、複数の業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）と、複数のワーカースレッド１０３Ａ（１０３Ａ−１ａ、１０３Ａ−１ｂ、・・・、１０３Ａ−１ｊ、１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ、及び１０３Ａ−３ａ）と、制御部１０４Ａとを含んで構成される。
なお、図１に示す情報処理装置１０Ａにおいては、３個のコネクタ、３個の業務ロジック、及び合計１６個のワーカースレッドが含まれるが、それぞれの個数はこれに限られるものではなく、任意の個数で構わない。
なお、ここでいう業務ロジックとは、業務に特化した処理を行うプログラムである。業務に特化した処理とは、例えば、各クライアント（連携する他のシステム）から要求され、顧客情報や契約情報などの業務に必要な情報をデータベースに反映する処理等である。
【００１９】
コネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）は、外部リソース（例えば、メッセージサーバ、またはデータベース）と接続し、処理対象データを取得する。第１の実施形態においては、コネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）は、メッセージサーバ２０Ａと接続する。
コネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）は、一度の処理で複数個のデータ（メッセージ）を取得することで、バッチコミットを行うことができる。バッチコミットとは、複数個のデータを１トランザクションで処理することでコミットのオーバーヘッドを軽減し、スループットを向上させることができる実行方式である。
【００２０】
業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）は、コネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）が取得した処理対象データを実行処理するためのロジック（例えば、プログラムコード）である。業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）は、後述するワーカースレッド１０３Ａ（１０３Ａ−１ａ、１０３Ａ−１ｂ、・・・、１０３Ａ−１ｊ、１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ、及び１０３Ａ−３ａ）が生成されることにより実行される。
なお、図１に示すようにコネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）と、業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）とは、それぞれ１対１に対応づけられる。例えば、処理内容が異なる２種類の業務ロジック、「顧客情報更新」及び「契約情報更新」が存在する場合には、各業務ロジックにそれぞれ１つのコネクタが対応づけられる。
【００２１】
ワーカースレッド１０３Ａ（１０３Ａ−１ａ、１０３Ａ−１ｂ、・・・、１０３Ａ−１ｊ、１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ、及び１０３Ａ−３ａ）は、並列処理におけるプログラムの実行単位である。各ワーカースレッド１０３Ａは、複数個生成されることによって、対応する業務ロジック１０２を並列に複数同時実行することができる。
ワーカースレッド１０３Ａ（１０３Ａ−１ａ、１０３Ａ−１ｂ、・・・、１０３Ａ−１ｊ、１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ、及び１０３Ａ−３ａ）は、処理対象データが存在する場合に、業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）を実行する。また、ワーカースレッド１０３Ａ（１０３Ａ−１ａ、１０３Ａ−１ｂ、・・・、１０３Ａ−１ｊ、１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ、及び１０３Ａ−３ａ）は、処理対象データが存在しない場合には、新たな処理対象データが発生するまで待機する。
【００２２】
第１の実施形態に係る情報処理装置１０Ａにおいて、各業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）を実行するために生成されるワーカースレッド１０３Ａの数の上限値は、予め定められている。図１に例示する情報処理装置１０Ａにおいては、業務ロジック１０２Ａ−１を実行するワーカースレッド１０３Ａ−１は、最大１０個まで生成される（ワーカースレッド１０３Ａ−１ａ、ワーカースレッド１０３Ａ−１ｂ、・・・、ワーカースレッド１０３Ａ−１ｊ））。また、業務ロジック１０２Ａ−２を実行するワーカースレッド１０３Ａ−２は、最大５個まで生成される（ワーカースレッド１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ）。また、業務ロジック１０２Ａ−２を実行するワーカースレッド１０３Ａ−２は、最大でも１個のみ生成される（ワーカースレッド１０３Ａ−３ａ）。
生成される各ワーカースレッド１０３Ａの数の上限値は、例えば、予め設定ファイル（図示せず）等に定義される。生成される各ワーカースレッド１０３Ａの数の上限値は、例えば、各業務の重要度に応じて、情報処理装置１０Ａのユーザによって定義される。
【００２３】
制御部１０４Ａは、コネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）の動作の制御、及びワーカースレッド１０３Ａ（１０３Ａ−１ａ、１０３Ａ−１ｂ、・・・、１０３Ａ−１ｊ、１０３Ａ−２ａ、１０３Ａ−２ｂ、・・・、１０３Ａ−２ｅ、及び１０３Ａ−３ａ）の生成、等を制御する。制御部１０４Ａは、例えば、上述した制御ファイルが示す定義に基づいて、ワーカースレッド１０３Ａが起動している数が上限数に達しているかを判定する。制御部１０４Ａは、ワーカースレッド１０３Ａが起動している数が上限数に達していないと判定した場合には、ワーカースレッド１０３Ａを新たに生成する。また、制御部１０４Ａは、ワーカースレッド１０３Ａが起動している数が上限数に達していると判定した場合には、実行中のワーカースレッドのいずれかが実行完了して消滅するまで待機した後、ワーカースレッド１０３Ａを新たに生成する。
【００２４】
メッセージサーバ２０Ａは、業務２０１Ａ（２０１Ａ−１、２０１Ａ−２、２０１Ａ−３）と、処理対象データ２０２Ａ（２０２Ａ−１、２０２Ａ−２、２０２Ａ−３）と、を含んで構成される。
図１に例示するメッセージサーバ２０Ａにおいては、３個の業務２０１Ａ（２０１Ａ−１、２０１Ａ−２、２０１Ａ−３）があり、それぞれの業務２０１Ａ（２０１Ａ−１、２０１Ａ−２、２０１Ａ−３）は、それぞれ処理対象データ２０２Ａ（２０２Ａ−１、２０２Ａ−２、２０２Ａ−３）を有する。メッセージサーバ２０Ａは、例えば、各処理対象データ２０２Ａ（２０２Ａ−１、２０２Ａ−２、２０２Ａ−３）を、それぞれクライアント（図示せず）から取得する。
図１に例示するメッセージサーバ２０Ａにおいては、３個の業務２０１Ａ（２０１Ａ−１、２０１Ａ−２、２０１Ａ−３）が含まれるが、その個数は３個に限られるものではなく、それよりも多くてもよいし、少なくてもよい。
【００２５】
また、図１に例示する情報処理システム１Ａにおいては、メッセージサーバ２０Ａが有する各業務２０１Ａ（２０１Ａ−１、２０１Ａ−２、２０１Ａ−３）と、情報処理装置１０Ａの各コネクタ１０１Ａ（１０１Ａ−１、１０１Ａ−２、１０１Ａ−３）とは、１対１に対応付けられているが、これに限られない。例えば、メッセージサーバ２０Ａが有する業務２０１Ａの１つに、情報処理装置１０Ａのコネクタ１０１Ａが複数個対応づけられていても構わない。
【００２６】
以上説明したように、第１の実施形態に係る情報処理システム１Ａにおいて、情報処理装置１０Ａは、各業務ロジック１０２Ａ（１０２Ａ−１、１０２Ａ−２、１０２Ａ−３）を実行するために生成されるワーカースレッド１０３Ａの個数の上限値を、それぞれ個別に設定することができる。これにより、情報処理装置１０Ａは、メッセージサーバ２０Ａが有する業務毎に、任意のシステムリソース（ワーカースレッド数）をそれぞれ割り当てることができる。
以上により、本発明の第１の実施形態に係る情報処理システム１Ａは、非同期処理において、業務毎に異なる割合で、システムリソースの割り当てを指定（調整）したいという要件に対して、柔軟に対応することができる。
【００２７】
（第２の実施形態）
以下、本発明の第２の実施形態について、図面を参照しながら説明する。
図２は、本発明の第２の実施形態に係る情報処理システム１Ｂの構成の一例を示す概略図である。なお、上記説明した第１の実施形態に係る情報処理システム１Ａと共通する部分については説明を省略する。
第２の実施形態に係る情報処理システム１Ｂは、システムリソースの拡張により処理性能の向上（例えば、実行処理速度の高速化）が可能である。例えば、業務２０１Ｂの処理対象データ２０２Ｂが増えて高負荷化することにより、実行処理速度を高速化したい場合等において、システムリソースの拡張がなされる。
【００２８】
下記において説明する情報処理システム１Ｂのシステムリソース拡張方法として、スケールアップとスケールアウトの２つの方法がある。
スケールアップは、既存の各情報処理装置１０Ｂを機能強化して処理性能を向上させることである。例えば、スケールアップは、情報処理装置１０ＢのＣＰＵやメモリ等が増設されることによって、情報処理装置１０Ｂの処理性能が向上することである。
また、スケールアウトは、情報処理装置１０Ｂの台数を増やすことによって情報処理システム１Ｂの処理性能を向上させることである。例えば、スケールアウトは、既存の情報処理装置１０Ｂ−１に加え、新たに情報処理装置１０Ｂ−２を増設されることによって情報処理システム１Ｂ全体の処理性能が向上することである。
【００２９】
第２の実施形態に係る情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）は、上述したように、スケールアップを図ることができる。情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）は、スケールアップにより、多重起動可能なワーカースレッド数の上限値を増やすことが可能である。なお、上限値の設定変更は、コネクタ毎に可能である。多重起動するワーカースレッド数が増えることにより、ワーカースレッドに紐づいて実行される業務ロジック数も増える。
【００３０】
なお、従来のシステムは、コネクタ１０１Ｂ（１０１Ｂ−１，１０１Ｂ−２）を備えていないことにより、システムを運用しつつ、スケールアップをすることが容易ではなかった。すなわち、従来のシステムは、生成可能なワーカースレッド１０３Ｂ−１の個数を増やすためには、処理対象データを予め分割し、関連するデータ毎にまとめて情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）にそれぞれ提供するような構成である必要があった。
【００３１】
一方、第２の実施形態に係る情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）は、コネクタ１０１Ｂ（１０１Ｂ−１，１０１Ｂ−２）を備える。また、第２の実施形態に係る情報処理システム１において、情報処理装置１０Ｂ−１が備えるコネクタ１０１Ｂ−１と、情報処理装置１０Ｂ−２が備えるコネクタ１０１Ｂ−２とは、制御装置３０Ｂにより制御部１０４Ｂ（１０４Ｂ−１、１０４Ｂ−２）を介して、互いに排他制御されて処理対象データ２０２Ｂのデータ取得を行う。これにより、第２の実施形態に係る情報処理システム１Ｂでは、処理対象データ２０２Ｂが、実行順序の保障が求められるデータである場合であっても、実行順序の保障をしつつ、情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）がそれぞれ同時起動可能なワーカースレッドの上限数を追加するスケールアップを図ることができる。したがって、従来のシステムに比べ、第２の実施形態に係る情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）は、スケールアップを容易に行うことができる。
【００３２】
また、第２の実施形態に係る情報処理システム１Ｂは、既存の情報処理装置１０Ｂ−１に加え、情報処理装置１０Ｂ（例えば情報処理装置１０Ｂ−２）を新たに追加することによって、上述したスケールアウトを図ることができる。例えば、このスケールアウトにより、情報処理システム１Ｂが生成可能なワーカースレッド１０３Ｂの個数の上限値は、既存の情報処理装置１０Ｂ−１が生成可能なワーカースレッド１０３Ｂ（例えば、ワーカースレッド１０３Ｂ−１ａ、１０３Ｂ−１ｂ、・・・、１０３Ｂ−１ｊ）の個数の上限値（例えば、１０個）に、新たに追加した情報処理装置１０Ｂ−２が生成可能なワーカースレッド１０３Ｂ（例えば、ワーカースレッド１０３Ｂ−２ａ、１０３Ｂ−２ｂ、・・・、１０３Ｂ−２ｊ）の個数の上限値（例えば、１０個）を加えた個数（例えば、２０個）となる。
【００３３】
なお、従来のシステムは、コネクタ１０１Ｂ（１０１Ｂ−１，１０１Ｂ−２）を備えていないことにより、システムを運用しつつ、スケールアウトをすることが容易ではなかった。すなわち、従来のシステムは、上述したように、生成可能なワーカースレッド１０３Ｂ−１の個数を増やすためには、処理対象データを予め分割し、関連するデータ毎にまとめて情報処理装置１０Ｂ−１のコネクタ１０１Ｂ−１、及び情報処理装置１０Ｂ−２のコネクタ１０１Ｂ−２に提供するような構成である必要があった。
【００３４】
一方、第２の実施形態に係る情報処理装置１０Ｂ（１０Ｂ−１、１０Ｂ−２）は、コネクタ１０１Ｂ（１０１Ｂ−１、１０１Ｂ−２）を備える。また、第２の実施形態に係る情報処理システム１において、情報処理装置１０Ｂ−１が備えるコネクタ１０１Ｂ−１と、情報処理装置１０Ｂ−２が備えるコネクタ１０１Ｂ−２とは、制御装置３０Ｂにより制御部１０４Ｂ（１０４Ｂ−１、１０４Ｂ−２）を介して、互いに排他制御されて処理対象データ２０２Ｂのデータ取得を行う。これにより、第２の実施形態に係る情報処理システム１Ｂでは、処理対象データ２０２Ｂが、実行順序の保障が求められるデータである場合であっても、実行順序の保障をしつつ、新たな情報処理装置１０Ｂを追加するスケールアウトを図ることができる。したがって、従来のシステムに比べ、第２の実施形態に係る情報処理システム１Ｂは、スケールアウトを容易に行うことができる。
【００３５】
以上説明したように、本発明の第２の実施形態に係る情報処理システム１Ｂは、非同期処理において、情報処理システム１Ｂの運用をしつつ、容易にシステムリソースの拡張をしたいという要件に対して、柔軟に対応することができる。
【００３６】
（第３の実施形態）
以下、本発明の第３の実施形態について、図面を参照しながら説明する。
図３は、本発明の第３の実施形態に係る情報処理システム１Ｃの構成の一例を示す概略図である。なお、上記説明した第１の実施形態に係る情報処理システム１Ａ、及び第２の実施形態に係る情報処理システム１Ｂと共通する部分については説明を省略する。
【００３７】
第３の実施形態に係る情報処理システム１Ｃは、業務毎に柔軟な運用が可能である。例えば、情報処理システム１Ｃは、業務２０１Ｃ（２０１Ｃ−１、２０１Ｃ−２、２０１Ｃ−３）毎に、情報処理装置１０Ｃによる実行処理を起動または停止することができる。また、例えば、情報処理システム１Ｃは、業務２０１Ｃ（２０１Ｃ−１、２０１Ｃ−２、２０１Ｃ−３）毎に、運用時間（起動タイミング及び停止タイミング）を指定することができる。また、例えば、情報処理システム１Ｃは、連携する他システム（クライアント）において障害が発生した場合であっても、当該障害が発生したシステムから提供された処理対象データ２０１Ｃを取得するコネクタ１０３Ｃのみを、部分的に停止することができる。
【００３８】
図３に図示するように、連携する他システムがＤＢサーバ５０Ｃ−１である場合には、ＤＢサーバ５０Ｃ−１から提供される処理対象データ２０２Ｃ−１を取得するコネクタ１０１Ｃ−１は、例えば、常時起動状態にされる。
【００３９】
また、図３に図示するように、連携する他システムが、９時から１８時までの時間帯のみ運用される他システム５０Ｃ−２である場合には、他システム５０Ｃ−２から提供される処理対象データ２０２Ｃ−２を取得するコネクタ１０１Ｃ−２は、例えば、他システム５０Ｃ−２の運用時間帯と同一の時間帯である９時から１８時までの時間帯にのみ、起動した状態にされる。すなわち、情報処理装置１０Ｃは、他システム５０Ｃ−２から処理対象データ２０２Ｃ−２が提供されることのない時間帯は、他システム５０Ｃ−２から提供される処理対象データ２０２Ｃ−２を取得するためのコネクタ１０１Ｃ−２を停止状態にさせておくことができる。これにより、情報処理装置１０Ｃの運用コストを低減させることができる。
なお、コネクタ１０１Ｃ−２の起動処理及び停止処理は、例えば、運用管理ツール６０Ｃによって制御される。
【００４０】
また、図３に図示するように、連携する他システム５０Ｃ−３において障害が発生した場合には、他システム５０Ｃ−３から提供される処理対象データ２０２Ｃ−３を取得するコネクタ１０１Ｃ−３は、例えば、停止した状態にされる。すなわち、情報処理装置１０Ｃは、障害発生によって他システム５０Ｃ−３から処理対象データ２０２Ｃ−３が提供されることのない状態である場合、他システム５０Ｃ−３から提供される処理対象データ２０２Ｃ−３を取得するためのコネクタ１０１Ｃ−３を停止状態にさせておくことができる。これにより、情報処理装置１０Ｃの運用コストを低減させることができる。
【００４１】
以上説明したように、第３の実施形態に係る情報処理システム１Ａにおいて、情報処理装置１０Ａは、連携する他システム５０Ｃ（５０Ｃ−１、５０Ｃ−２、５０Ｃ−３）によりそれぞれ提供される処理対象データ２０２Ｃ（２０２Ｃ−１、２０２Ｃ−２、２０２Ｃ−３）をそれぞれ取得するコネクタ１０１Ｃ（１０２Ｃ−１、１０２Ｃ−２、１０２Ｃ−３）毎に、実行処理を起動または停止させることができる。
【００４２】
以上により、本発明の第３の実施形態に係る情報処理システム１Ｃは、非同期処理において、業務毎に情報処理装置１０Ｃの起動及び停止を制御したいという要件に対して、柔軟に対応することができる。
【００４３】
（第４の実施形態）
以下、本発明の第４の実施形態について、図面を参照しながら説明する。
図４は、本発明の第４の実施形態に係る情報処理システム１と従来システムとの稼働率の比較を示す概略図である。
【００４４】
図４（Ａ）の上段の図は、従来システムにおける処理対象データの処理の実行イメージを表す。従来システムにおいては、各クライアントから取得した１つの処理対象データ（メッセージ）の処理を実行する毎に、コミット処理を行う。図４（Ａ）の上段の図に示すように、従来システムは、処理対象データの実行処理ｍａ１を実行した後、コミット処理ｃａ１を実行する。次に、従来システムは、実行処理ｍａ２を実行した後、コミット処理ｃａ２を実行する。次に、従来システムは、実行処理ｍａ３を実行した後、コミット処理ｃａ３を実行する。
【００４５】
なお、コミット処理とは、トランザクション処理が成功した時に、その結果を確定させる処理のことである。また、トランザクション処理とは、関連する複数の処理や操作を一つの処理単位にまとめて管理する方式のことである。
【００４６】
図４（Ａ）の下段の図は、従来システムにおける処理対象データの処理の実行に伴う、従来システムの稼働率（例えば、ＣＰＵ使用率）のイメージを表す。従来システムでは、１つの処理対象データ（メッセージ）の処理を実行する毎にコミット処理を行うことによって、図４（Ａ）の下段の図に図示するように、従来システムの稼働率が頻繁に低下と上昇を繰り返すことになる。これは、稼働率が低下するコミット処理を頻繁に行うことに起因する。
【００４７】
一方、図４（Ｂ）の上段の図は、第４の実施形態に係る情報処理装置１０における、処理対象データの処理の実行イメージを表す。第４の実施形態に係る情報処理装置１０は、１トランザクションで処理する処理対象データ（メッセージ）の数を、業務毎に設定することができる。第４の実施形態に係る情報処理装置１０は、各クライアントから取得した処理対象データ（メッセージ）について予め指定された量だけ連続して実行処理する毎に、コミット処理を行う。図４（Ｂ）の上段の図に示すように、第４の実施形態に係る情報処理装置１０は、処理対象データの実行処理ｍａ１を実行した後、コミット処理ｃａ１を実行する。
【００４８】
図４（Ｂ）の下段の図は、第４の実施形態に係る情報処理装置１０における、処理対象データの処理の実行に伴う、情報処理装置１０の稼働率（例えば、ＣＰＵ使用率）のイメージを表す。情報処理装置１０では、予め指定された量の処理対象データ（メッセージ）を連続して実行処理する毎にコミット処理を行うことによって、図４（Ｂ）の下段の図に図示するように、従来システムと比べ稼働率が上昇している期間を長くすることができる。すなわち、第４の実施形態に係る情報処理装置１０は、１トランザクションで複数の処理対象データ（メッセージ）を処理することで、コミット処理の実行に起因するオーバーヘッドを低減することができる。
【００４９】
以上により、本発明の第４の実施形態に係る情報処理システム１は、非同期処理において、業務単位で、自らの情報処理システム１の稼働率を向上させたいという要件に対して、柔軟に対応することができる。
【００５０】
（第５の実施形態）
以下、本発明の第５の実施形態について、図面を参照しながら説明する。
図５は、本発明の第５の実施形態に係る情報処理システム１Ｄの構成の一例を示す概略図である。なお、上記説明した第１の実施形態に係る情報処理システム１Ａ、乃至第３の実施形態に係る情報処理システム１Ｃと共通する部分については説明を省略する。
【００５１】
第５の実施形態に係る情報処理システム１Ｄは、処理対象データ２０２Ｄの実行処理において、実行順序を保障しつつ実行処理を行うことができる。
図５に図示するように、メッセージサーバ２０Ｄには、例えば、業務２０１Ｄに関する処理対象データ２０２Ｄが３個発生している状態である。以下、これらの３個の処理対象データ２０２Ｄを、それぞれメッセージｒ１、メッセージｒ２、及びメッセージｒ３と称する。
【００５２】
メッセージｒ１、メッセージｒ２、及びメッセージｒ３には、それぞれ「ｏｒｄｅｒＩＤ」が付与されている。ｏｒｄｅｒＩＤとは、例えば、業務ルールに基づいて付与された識別子である。ｏｒｄｅｒＩＤが同一であるメッセージ間においては、実行順序の保障が求められる。
図５に図示するように、例えば、メッセージｒ１、メッセージｒ２、及びメッセージｒ３に付与されているｏｒｄｅｒＩＤは、それぞれ「００１０」、「００１１」、及び「００１０」である。また、例えば、メッセージｒ１、メッセージｒ２、及びメッセージｒ３に基づいて実行される処理は、それぞれ「登録」、「登録」、及び「キャンセル」である。
【００５３】
メッセージｒ１とメッセージｒ３とは同一のｏｒｄｅｒＩＤである「００１０」が付与されているため、メッセージｒ１とメッセージｒ３との間では、実行順序の保障が求められる。すなわち、メッセージｒ１に基づく実行処理が行われる前にメッセージｒ３に基づく実行処理が行われてはならないことを示す。
【００５４】
図５に図示する、メッセージｒ１、メッセージｒ２、及びメッセージｒ３は、例えば、電子商取引における購入処理を示すメッセージである。メッセージｒ１、及びメッセージｒ３は、例えば、それぞれ同一のオーダー（購入手続き）に対する、購入手続実行（登録）処理、及び購入手続取消（キャンセル）処理である。また、メッセージｒ２は、例えば、メッセージｒ１及びメッセージｒ３に基づくオーダーとは異なる別のオーダーの購入手続実行（登録）処理である。
【００５５】
したがって、メッセージｒ１、及びメッセージｒ３が、正しい順序で（メッセージｒ１が先に）実行された場合には、一度行われた購入手続が正常にキャンセルされる結果となる。逆に、メッセージｒ１、及びメッセージｒ３が、誤った順序で（メッセージｒ３が先に）実行された場合には、購入手続実行（登録）処理が後に行われることによって、購入手続が誤ってキャンセルされない結果となる。
【００５６】
第５の実施形態に係る情報処理装置１０Ｄは、コネクタ１０１Ｄが取得したメッセージの実行処理の実行順序を保障するため、実行処理の実行順序を制御する順序制御部１０５Ｄを備える。なお、順序制御部１０５Ｄは、制御部１０４Ｄと共通の部材によって構成されるものであっても構わない。
【００５７】
順序制御部１０５Ｄは、まず、コネクタ１０１Ｄからメッセージｒ１を取得する。順序制御部１０５Ｄは、メッセージｒ１に付与されたｏｒｄｅｒＩＤが「００１０」であることを確認し、（例えば、一時的に）記憶する。そして、順序制御部１０５Ｄは、例えば、メッセージｒ１をワーカースレッド１０３Ｄ−１ｒに割り当てる。
【００５８】
次に、順序制御部１０５Ｄは、コネクタ１０１Ｄからメッセージｒ２を取得する。順序制御部１０５Ｄは、メッセージｒ２に付与されたｏｒｄｅｒＩＤが「００１１」であることを確認し、（例えば、一時的に）記憶する。そして、順序制御部１０５Ｄは、メッセージｒ２に付与されたｏｒｄｅｒＩＤがメッセージｒ１に付与されたｏｒｄｅｒＩＤとは異なることを確認することによって、順序制御部１０５Ｄは、メッセージｒ１を割り当てたワーカースレッド１０３Ｄ−１ａとは異なるワーカースレッド１０３Ｄ−１ｂに、メッセージｒ２を割り当てる。
【００５９】
次に、順序制御部１０５Ｄは、コネクタ１０１Ｄからメッセージｒ３を取得する。順序制御部１０５Ｄは、メッセージｒ３に付与されたｏｒｄｅｒＩＤが「００１０」であることを確認し、（例えば、一時的に）記憶する。そして、順序制御部１０５Ｄは、メッセージｒ３に付与されたｏｒｄｅｒＩＤがメッセージｒ１に付与されたｏｒｄｅｒＩＤと同一であることを確認することによって、順序制御部１０５Ｄは、メッセージｒ１を割り当てたワーカースレッド１０３Ｄ−１ａとは同一のワーカースレッド１０３Ｄ−１ａに、メッセージｒ３を割り当てる。
【００６０】
これにより、メッセージｒ１の実行処理が完了するまではワーカースレッド１０３Ｄ−１ａが解放されないため、メッセージｒ３の実行処理は開始されることがない。よって、第４の実施形態に係る情報処理装置１０は、メッセージｒ１とメッセージｒ３との間で求められる実行順序の保障を担保しつつ、実行処理を行うことができる。
【００６１】
以上により、本発明の第５の実施形態に係る情報処理システム１Ｄは、非同期処理において、業務毎に、実行順序を保障した並列処理を実行したいという要件に対して、柔軟に対応することができる。
【００６２】
以上説明したように、本発明の第１の実施形態乃至第５の実施形態に係る情報処理システム１及び情報処理装置１０は、非同期処理における様々な要件に対して柔軟に対応することができる。
【００６３】
以上、この発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００６４】
なお、上述した各実施形態における情報処理システム１（１Ａ、１Ｂ、・・・、１Ｄ）の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【００６５】
なお、ここでいう「コンピュータシステム」とは、情報処理システム１（１Ａ、１Ｂ、・・・、１Ｄ）に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００６６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【００６７】
また、上述した第１の実施形態における情報処理システム１（１Ａ、１Ｂ、・・・、１Ｄ）、を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。情報処理システム１（１Ａ、１Ｂ、・・・、１Ｄ）の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【００６８】
１・・・情報処理システム、１０・・・情報処理装置、２０・・・メッセージサーバ、３０・・・制御装置、５０・・・他システム、６０・・・運用管理ツール、１０１・・・コネクタ、１０２・・・業務ロジック、１０３・・ワーカースレッド、１０４・・・制御部、１０５・・・順序制御部、２０１・・・業務、２０２・・・処理対象データ、２０３・・・エンドポイント、ｍａ・・・実行処理、ｍｂ・・・実行処理、ｃａ・・・コミット処理、ｃｂ・・・コミット処理、ｒ・・・メッセージ
【図１】
2017033094.tif 000003
【図２】
2017033094.tif 000004
【図３】
2017033094.tif 000005
【図４】
2017033094.tif 000006
【図５】
2017033094.tif 000007