JP2017033095A - 情報処理システム、情報処理方法、プログラム、及び情報処置装置 - Google Patents
情報処理システム、情報処理方法、プログラム、及び情報処置装置 Download PDFInfo
- Publication number
- JP2017033095A JP2017033095A JP2015149741A JP2015149741A JP2017033095A JP 2017033095 A JP2017033095 A JP 2017033095A JP 2015149741 A JP2015149741 A JP 2015149741A JP 2015149741 A JP2015149741 A JP 2015149741A JP 2017033095 A JP2017033095 A JP 2017033095A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- connector
- execution data
- execution
- business
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】非同期処理における様々な要件に対して柔軟に対応すること。
【解決手段】データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理システムにおいて、情報処理システムは、前記業務の実行データを取得するコネクタと、前記コネクタが取得した前記実行データを実行処理するワーカースレッドと、前記コネクタ及び前記ワーカースレッドを制御する制御部と、をそれぞれ有する複数の情報処理装置と、複数の前記情報処理装置に配置された各コネクタが行う実行処理を排他制御するコネクタ間排他制御装置と、を有する。
【選択図】図2
【解決手段】データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理システムにおいて、情報処理システムは、前記業務の実行データを取得するコネクタと、前記コネクタが取得した前記実行データを実行処理するワーカースレッドと、前記コネクタ及び前記ワーカースレッドを制御する制御部と、をそれぞれ有する複数の情報処理装置と、複数の前記情報処理装置に配置された各コネクタが行う実行処理を排他制御するコネクタ間排他制御装置と、を有する。
【選択図】図2
Description
本発明は、情報処理システム、情報処理方法、プログラム、及び情報処置装置に関する。
電子商取引の分野等における大規模なシステムにおいて、非同期に処理するバックエンドプロセスを含んで分散トランザクション処理を実行する非同期処理の実行方式が用いられる。従来のマルチスレッドによって非同期処理を行うサーバシステムは、複数のクライアントからの処理要求を処理するために、1つのリスナと複数のワーカースレッドを有する。例えば、特許文献1に記載のサーバシステムでは、リスナがクライアントからの処理要求を受けて、その処理要求に対する処理を、ランダムにいずれかのワーカースレッドに割り当てる。ワーカースレッドは、リスナによって割り当てられた処理について、クライアントからデータを受け取り、受け取ったデータについて処理を実行する。
しかしながら、従来の非同期処理のサーバシステムは、クライアントからの処理要求に対する処理を、ランダムにいずれかのワーカースレッドに割り当てるため、それぞれの処理要求(業務)毎にワーカースレッドのシステムリソースを割り当てることができない。そのため、例えば、より優先度が高い処理要求(業務)に、より多くのシステムリソースを割り当てるようなことは困難である。また、従来の非同期処理のサーバシステムにおいては、例えばサーバやCPU(Central Processing Unit;中央演算処理装置)を増設することによって、ワーカースレッドのシステムリソースを拡大する際には、それぞれの処理要求(業務)を分割する等の事前準備が必要になり、容易にシステムリソースを拡大することは困難である。このように、従来の非同期処理のサーバシステムは、非同期処理における様々な要件に対して柔軟に対応することができないという課題がある。
本発明は上記の点に鑑みてなされたものであり、非同期処理における様々な要件に対して柔軟に対応することができる情報処理システム、情報処理方法、プログラム、及び情報処置装置を提供する。
(1)本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理システムにおいて、前記業務の実行データを取得するコネクタと、前記コネクタが取得した前記実行データを実行処理するワーカースレッドと、前記コネクタ及び前記ワーカースレッドを制御する制御部と、をそれぞれ有する複数の情報処理装置と、複数の前記情報処理装置に配置された各コネクタが行う実行処理を排他制御するコネクタ間排他制御装置と、を有することを特徴とする、情報処理システムである。
(2)本発明の一態様としては、前記制御部は、実行処理の起動タイミング及び停止タイミング、またはそのいずれか一方を、コネクタ毎に制御する、ことを特徴とする、(1)に記載の情報処理システムである。
(3)本発明の一態様としては、前記制御部は、実行処理の1トランザクションあたりの前記実行データの量を、コネクタ毎に制御する、ことを特徴とする、(1)に記載の情報処理システムである。
(4)本発明の一態様としては、前記コネクタに複数の前記ワーカースレッドが対応付けられ、前記コネクタが取得した順に前記実行データを前記ワーカースレッドに割り当て、かつ、関連性がある前記実行データについては他の前記ワーカースレッドの割り当てによる実行処理の追い越しを抑止するために、同一の前記ワーカースレッドへ前記関連性がある前記実行データを優先的に割り当てる、ことを特徴とする、(1)に記載の情報処理システムである。
(5)本発明の一態様としては、データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理方法において、前記業務の実行データを取得する第1ステップと、前記第1ステップが取得した前記実行データを実行処理する第2ステップと、前記第1ステップ及び前記第2ステップを制御する第3ステップと、複数の前記第1ステップ乃至第3ステップが行う実行処理を排他制御する第4ステップと、を有することを特徴とする、情報処理方法である。
(6)本発明の一態様としては、データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理するコンピュータに、前記業務の実行データを取得する第1ステップと、前記第1ステップが取得した前記実行データを実行処理する第2ステップと、前記第1ステップ及び前記第2ステップを制御する第3ステップと、複数の前記第1ステップ乃至第3ステップが行う実行処理を排他制御する第4ステップと、を実行させるための、プログラムである。
(7)本発明の一態様としては、データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理装置において、前記業務の実行データを取得するコネクタと、前記コネクタが取得した前記実行データを実行処理するワーカースレッドと、前記コネクタ及び前記ワーカースレッドを制御する制御部と、を備え、前記コネクタは、前記データベースや前記メッセージングサービスサーバより前記業務の前記実行データを、少なくとも1つの他の前記情報処理装置との間において排他的に取得する、ことを特徴とする、情報処理装置である。
本発明によれば、非同期処理における様々な要件に対して柔軟に対応することができる。
(第1の実施形態)
以下、本発明の第1の実施形態について、図面を参照しながら説明する。
図1は、本発明の第1の実施形態に係る情報処理システム1Aの構成の一例を示すブロック図である。
第1の実施形態に係る情報処理システム1Aは、情報処理装置10Aと、メッセージサーバ20Aと、を含んで構成される。
以下、本発明の第1の実施形態について、図面を参照しながら説明する。
図1は、本発明の第1の実施形態に係る情報処理システム1Aの構成の一例を示すブロック図である。
第1の実施形態に係る情報処理システム1Aは、情報処理装置10Aと、メッセージサーバ20Aと、を含んで構成される。
情報処理装置10Aは、メッセージサーバ20Aから取得する処理対象データを用いてソフトウェア処理を実行する装置である。情報処理装置10Aは、例えば、アプリケーションを実行するアプリケーションサーバである。
また、メッセージサーバ20Aは、クライアント(図示せず)から処理対象データを取得し、取得したデータを、複数個のデータをまとめたデータ群(以下、メッセージとも称する)にして、情報処理装置10Aへ提供するためのサーバ装置である。
メッセージサーバ20Aは、例えば、Java(登録商標)プログラムにネットワークを介してデータを送受信させるためのAPI(Application Programming Interface)であるJMS(Java(登録商標) Message Service)を実行するサーバ装置である。
メッセージサーバ20Aは、例えば、Java(登録商標)プログラムにネットワークを介してデータを送受信させるためのAPI(Application Programming Interface)であるJMS(Java(登録商標) Message Service)を実行するサーバ装置である。
第1の実施形態に係る情報処理装置10Aは、複数のコネクタ101A(101A−1、101A−2、101A−3)と、複数の業務ロジック102A(102A−1、102A−2、102A−3)と、複数のワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)と、制御部104Aとを含んで構成される。
なお、図1に示す情報処理装置10Aにおいては、3個のコネクタ、3個の業務ロジック、及び合計16個のワーカースレッドが含まれるが、それぞれの個数はこれに限られるものではなく、任意の個数で構わない。
なお、ここでいう業務ロジックとは、業務に特化した処理を行うプログラムである。業務に特化した処理とは、例えば、各クライアント(連携する他のシステム)から要求され、顧客情報や契約情報などの業務に必要な情報をデータベースに反映する処理等である。
なお、図1に示す情報処理装置10Aにおいては、3個のコネクタ、3個の業務ロジック、及び合計16個のワーカースレッドが含まれるが、それぞれの個数はこれに限られるものではなく、任意の個数で構わない。
なお、ここでいう業務ロジックとは、業務に特化した処理を行うプログラムである。業務に特化した処理とは、例えば、各クライアント(連携する他のシステム)から要求され、顧客情報や契約情報などの業務に必要な情報をデータベースに反映する処理等である。
コネクタ101A(101A−1、101A−2、101A−3)は、外部リソース(例えば、メッセージサーバ、またはデータベース)と接続し、処理対象データを取得する。第1の実施形態においては、コネクタ101A(101A−1、101A−2、101A−3)は、メッセージサーバ20Aと接続する。
コネクタ101A(101A−1、101A−2、101A−3)は、一度の処理で複数個のデータ(メッセージ)を取得することで、バッチコミットを行うことができる。バッチコミットとは、複数個のデータを1トランザクションで処理することでコミットのオーバーヘッドを軽減し、スループットを向上させることができる実行方式である。
コネクタ101A(101A−1、101A−2、101A−3)は、一度の処理で複数個のデータ(メッセージ)を取得することで、バッチコミットを行うことができる。バッチコミットとは、複数個のデータを1トランザクションで処理することでコミットのオーバーヘッドを軽減し、スループットを向上させることができる実行方式である。
業務ロジック102A(102A−1、102A−2、102A−3)は、コネクタ101A(101A−1、101A−2、101A−3)が取得した処理対象データを実行処理するためのロジック(例えば、プログラムコード)である。業務ロジック102A(102A−1、102A−2、102A−3)は、後述するワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)が生成されることにより実行される。
なお、図1に示すようにコネクタ101A(101A−1、101A−2、101A−3)と、業務ロジック102A(102A−1、102A−2、102A−3)とは、それぞれ1対1に対応づけられる。例えば、処理内容が異なる2種類の業務ロジック、「顧客情報更新」及び「契約情報更新」が存在する場合には、各業務ロジックにそれぞれ1つのコネクタが対応づけられる。
なお、図1に示すようにコネクタ101A(101A−1、101A−2、101A−3)と、業務ロジック102A(102A−1、102A−2、102A−3)とは、それぞれ1対1に対応づけられる。例えば、処理内容が異なる2種類の業務ロジック、「顧客情報更新」及び「契約情報更新」が存在する場合には、各業務ロジックにそれぞれ1つのコネクタが対応づけられる。
ワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)は、並列処理におけるプログラムの実行単位である。各ワーカースレッド103Aは、複数個生成されることによって、対応する業務ロジック102を並列に複数同時実行することができる。
ワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)は、処理対象データが存在する場合に、業務ロジック102A(102A−1、102A−2、102A−3)を実行する。また、ワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)は、処理対象データが存在しない場合には、新たな処理対象データが発生するまで待機する。
ワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)は、処理対象データが存在する場合に、業務ロジック102A(102A−1、102A−2、102A−3)を実行する。また、ワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)は、処理対象データが存在しない場合には、新たな処理対象データが発生するまで待機する。
第1の実施形態に係る情報処理装置10Aにおいて、各業務ロジック102A(102A−1、102A−2、102A−3)を実行するために生成されるワーカースレッド103Aの数の上限値は、予め定められている。図1に例示する情報処理装置10Aにおいては、業務ロジック102A−1を実行するワーカースレッド103A−1は、最大10個まで生成される(ワーカースレッド103A−1a、ワーカースレッド103A−1b、・・・、ワーカースレッド103A−1j))。また、業務ロジック102A−2を実行するワーカースレッド103A−2は、最大5個まで生成される(ワーカースレッド103A−2a、103A−2b、・・・、103A−2e)。また、業務ロジック102A−2を実行するワーカースレッド103A−2は、最大でも1個のみ生成される(ワーカースレッド103A−3a)。
生成される各ワーカースレッド103Aの数の上限値は、例えば、予め設定ファイル(図示せず)等に定義される。生成される各ワーカースレッド103Aの数の上限値は、例えば、各業務の重要度に応じて、情報処理装置10Aのユーザによって定義される。
生成される各ワーカースレッド103Aの数の上限値は、例えば、予め設定ファイル(図示せず)等に定義される。生成される各ワーカースレッド103Aの数の上限値は、例えば、各業務の重要度に応じて、情報処理装置10Aのユーザによって定義される。
制御部104Aは、コネクタ101A(101A−1、101A−2、101A−3)の動作の制御、及びワーカースレッド103A(103A−1a、103A−1b、・・・、103A−1j、103A−2a、103A−2b、・・・、103A−2e、及び103A−3a)の生成、等を制御する。制御部104Aは、例えば、上述した制御ファイルが示す定義に基づいて、ワーカースレッド103Aが起動している数が上限数に達しているかを判定する。制御部104Aは、ワーカースレッド103Aが起動している数が上限数に達していないと判定した場合には、ワーカースレッド103Aを新たに生成する。また、制御部104Aは、ワーカースレッド103Aが起動している数が上限数に達していると判定した場合には、実行中のワーカースレッドのいずれかが実行完了して消滅するまで待機した後、ワーカースレッド103Aを新たに生成する。
メッセージサーバ20Aは、業務201A(201A−1、201A−2、201A−3)と、処理対象データ202A(202A−1、202A−2、202A−3)と、を含んで構成される。
図1に例示するメッセージサーバ20Aにおいては、3個の業務201A(201A−1、201A−2、201A−3)があり、それぞれの業務201A(201A−1、201A−2、201A−3)は、それぞれ処理対象データ202A(202A−1、202A−2、202A−3)を有する。メッセージサーバ20Aは、例えば、各処理対象データ202A(202A−1、202A−2、202A−3)を、それぞれクライアント(図示せず)から取得する。
図1に例示するメッセージサーバ20Aにおいては、3個の業務201A(201A−1、201A−2、201A−3)が含まれるが、その個数は3個に限られるものではなく、それよりも多くてもよいし、少なくてもよい。
図1に例示するメッセージサーバ20Aにおいては、3個の業務201A(201A−1、201A−2、201A−3)があり、それぞれの業務201A(201A−1、201A−2、201A−3)は、それぞれ処理対象データ202A(202A−1、202A−2、202A−3)を有する。メッセージサーバ20Aは、例えば、各処理対象データ202A(202A−1、202A−2、202A−3)を、それぞれクライアント(図示せず)から取得する。
図1に例示するメッセージサーバ20Aにおいては、3個の業務201A(201A−1、201A−2、201A−3)が含まれるが、その個数は3個に限られるものではなく、それよりも多くてもよいし、少なくてもよい。
また、図1に例示する情報処理システム1Aにおいては、メッセージサーバ20Aが有する各業務201A(201A−1、201A−2、201A−3)と、情報処理装置10Aの各コネクタ101A(101A−1、101A−2、101A−3)とは、1対1に対応付けられているが、これに限られない。例えば、メッセージサーバ20Aが有する業務201Aの1つに、情報処理装置10Aのコネクタ101Aが複数個対応づけられていても構わない。
以上説明したように、第1の実施形態に係る情報処理システム1Aにおいて、情報処理装置10Aは、各業務ロジック102A(102A−1、102A−2、102A−3)を実行するために生成されるワーカースレッド103Aの個数の上限値を、それぞれ個別に設定することができる。これにより、情報処理装置10Aは、メッセージサーバ20Aが有する業務毎に、任意のシステムリソース(ワーカースレッド数)をそれぞれ割り当てることができる。
以上により、本発明の第1の実施形態に係る情報処理システム1Aは、非同期処理において、業務毎に異なる割合で、システムリソースの割り当てを指定(調整)したいという要件に対して、柔軟に対応することができる。
以上により、本発明の第1の実施形態に係る情報処理システム1Aは、非同期処理において、業務毎に異なる割合で、システムリソースの割り当てを指定(調整)したいという要件に対して、柔軟に対応することができる。
(第2の実施形態)
以下、本発明の第2の実施形態について、図面を参照しながら説明する。
図2は、本発明の第2の実施形態に係る情報処理システム1Bの構成の一例を示す概略図である。なお、上記説明した第1の実施形態に係る情報処理システム1Aと共通する部分については説明を省略する。
第2の実施形態に係る情報処理システム1Bは、システムリソースの拡張により処理性能の向上(例えば、実行処理速度の高速化)が可能である。例えば、業務201Bの処理対象データ202Bが増えて高負荷化することにより、実行処理速度を高速化したい場合等において、システムリソースの拡張がなされる。
以下、本発明の第2の実施形態について、図面を参照しながら説明する。
図2は、本発明の第2の実施形態に係る情報処理システム1Bの構成の一例を示す概略図である。なお、上記説明した第1の実施形態に係る情報処理システム1Aと共通する部分については説明を省略する。
第2の実施形態に係る情報処理システム1Bは、システムリソースの拡張により処理性能の向上(例えば、実行処理速度の高速化)が可能である。例えば、業務201Bの処理対象データ202Bが増えて高負荷化することにより、実行処理速度を高速化したい場合等において、システムリソースの拡張がなされる。
下記において説明する情報処理システム1Bのシステムリソース拡張方法として、スケールアップとスケールアウトの2つの方法がある。
スケールアップは、既存の各情報処理装置10Bを機能強化して処理性能を向上させることである。例えば、スケールアップは、情報処理装置10BのCPUやメモリ等が増設されることによって、情報処理装置10Bの処理性能が向上することである。
また、スケールアウトは、情報処理装置10Bの台数を増やすことによって情報処理システム1Bの処理性能を向上させることである。例えば、スケールアウトは、既存の情報処理装置10B−1に加え、新たに情報処理装置10B−2を増設されることによって情報処理システム1B全体の処理性能が向上することである。
スケールアップは、既存の各情報処理装置10Bを機能強化して処理性能を向上させることである。例えば、スケールアップは、情報処理装置10BのCPUやメモリ等が増設されることによって、情報処理装置10Bの処理性能が向上することである。
また、スケールアウトは、情報処理装置10Bの台数を増やすことによって情報処理システム1Bの処理性能を向上させることである。例えば、スケールアウトは、既存の情報処理装置10B−1に加え、新たに情報処理装置10B−2を増設されることによって情報処理システム1B全体の処理性能が向上することである。
第2の実施形態に係る情報処理装置10B(10B−1、10B−2)は、上述したように、スケールアップを図ることができる。情報処理装置10B(10B−1、10B−2)は、スケールアップにより、多重起動可能なワーカースレッド数の上限値を増やすことが可能である。なお、上限値の設定変更は、コネクタ毎に可能である。多重起動するワーカースレッド数が増えることにより、ワーカースレッドに紐づいて実行される業務ロジック数も増える。
なお、従来のシステムは、コネクタ101B(101B−1,101B−2)を備えていないことにより、システムを運用しつつ、スケールアップをすることが容易ではなかった。すなわち、従来のシステムは、生成可能なワーカースレッド103B−1の個数を増やすためには、処理対象データを予め分割し、関連するデータ毎にまとめて情報処理装置10B(10B−1、10B−2)にそれぞれ提供するような構成である必要があった。
一方、第2の実施形態に係る情報処理装置10B(10B−1、10B−2)は、コネクタ101B(101B−1,101B−2)を備える。また、第2の実施形態に係る情報処理システム1において、情報処理装置10B−1が備えるコネクタ101B−1と、情報処理装置10B−2が備えるコネクタ101B−2とは、制御装置30Bにより制御部104B(104B−1、104B−2)を介して、互いに排他制御されて処理対象データ202Bのデータ取得を行う。これにより、第2の実施形態に係る情報処理システム1Bでは、処理対象データ202Bが、実行順序の保障が求められるデータである場合であっても、実行順序の保障をしつつ、情報処理装置10B(10B−1、10B−2)がそれぞれ同時起動可能なワーカースレッドの上限数を追加するスケールアップを図ることができる。したがって、従来のシステムに比べ、第2の実施形態に係る情報処理装置10B(10B−1、10B−2)は、スケールアップを容易に行うことができる。
また、第2の実施形態に係る情報処理システム1Bは、既存の情報処理装置10B−1に加え、情報処理装置10B(例えば情報処理装置10B−2)を新たに追加することによって、上述したスケールアウトを図ることができる。例えば、このスケールアウトにより、情報処理システム1Bが生成可能なワーカースレッド103Bの個数の上限値は、既存の情報処理装置10B−1が生成可能なワーカースレッド103B(例えば、ワーカースレッド103B−1a、103B−1b、・・・、103B−1j)の個数の上限値(例えば、10個)に、新たに追加した情報処理装置10B−2が生成可能なワーカースレッド103B(例えば、ワーカースレッド103B−2a、103B−2b、・・・、103B−2j)の個数の上限値(例えば、10個)を加えた個数(例えば、20個)となる。
なお、従来のシステムは、コネクタ101B(101B−1,101B−2)を備えていないことにより、システムを運用しつつ、スケールアウトをすることが容易ではなかった。すなわち、従来のシステムは、上述したように、生成可能なワーカースレッド103B−1の個数を増やすためには、処理対象データを予め分割し、関連するデータ毎にまとめて情報処理装置10B−1のコネクタ101B−1、及び情報処理装置10B−2のコネクタ101B−2に提供するような構成である必要があった。
一方、第2の実施形態に係る情報処理装置10B(10B−1、10B−2)は、コネクタ101B(101B−1、101B−2)を備える。また、第2の実施形態に係る情報処理システム1において、情報処理装置10B−1が備えるコネクタ101B−1と、情報処理装置10B−2が備えるコネクタ101B−2とは、制御装置30Bにより制御部104B(104B−1、104B−2)を介して、互いに排他制御されて処理対象データ202Bのデータ取得を行う。これにより、第2の実施形態に係る情報処理システム1Bでは、処理対象データ202Bが、実行順序の保障が求められるデータである場合であっても、実行順序の保障をしつつ、新たな情報処理装置10Bを追加するスケールアウトを図ることができる。したがって、従来のシステムに比べ、第2の実施形態に係る情報処理システム1Bは、スケールアウトを容易に行うことができる。
以上説明したように、本発明の第2の実施形態に係る情報処理システム1Bは、非同期処理において、情報処理システム1Bの運用をしつつ、容易にシステムリソースの拡張をしたいという要件に対して、柔軟に対応することができる。
(第3の実施形態)
以下、本発明の第3の実施形態について、図面を参照しながら説明する。
図3は、本発明の第3の実施形態に係る情報処理システム1Cの構成の一例を示す概略図である。なお、上記説明した第1の実施形態に係る情報処理システム1A、及び第2の実施形態に係る情報処理システム1Bと共通する部分については説明を省略する。
以下、本発明の第3の実施形態について、図面を参照しながら説明する。
図3は、本発明の第3の実施形態に係る情報処理システム1Cの構成の一例を示す概略図である。なお、上記説明した第1の実施形態に係る情報処理システム1A、及び第2の実施形態に係る情報処理システム1Bと共通する部分については説明を省略する。
第3の実施形態に係る情報処理システム1Cは、業務毎に柔軟な運用が可能である。例えば、情報処理システム1Cは、業務201C(201C−1、201C−2、201C−3)毎に、情報処理装置10Cによる実行処理を起動または停止することができる。また、例えば、情報処理システム1Cは、業務201C(201C−1、201C−2、201C−3)毎に、運用時間(起動タイミング及び停止タイミング)を指定することができる。また、例えば、情報処理システム1Cは、連携する他システム(クライアント)において障害が発生した場合であっても、当該障害が発生したシステムから提供された処理対象データ201Cを取得するコネクタ103Cのみを、部分的に停止することができる。
図3に図示するように、連携する他システムがDBサーバ50C−1である場合には、DBサーバ50C−1から提供される処理対象データ202C−1を取得するコネクタ101C−1は、例えば、常時起動状態にされる。
また、図3に図示するように、連携する他システムが、9時から18時までの時間帯のみ運用される他システム50C−2である場合には、他システム50C−2から提供される処理対象データ202C−2を取得するコネクタ101C−2は、例えば、他システム50C−2の運用時間帯と同一の時間帯である9時から18時までの時間帯にのみ、起動した状態にされる。すなわち、情報処理装置10Cは、他システム50C−2から処理対象データ202C−2が提供されることのない時間帯は、他システム50C−2から提供される処理対象データ202C−2を取得するためのコネクタ101C−2を停止状態にさせておくことができる。これにより、情報処理装置10Cの運用コストを低減させることができる。
なお、コネクタ101C−2の起動処理及び停止処理は、例えば、運用管理ツール60Cによって制御される。
なお、コネクタ101C−2の起動処理及び停止処理は、例えば、運用管理ツール60Cによって制御される。
また、図3に図示するように、連携する他システム50C−3において障害が発生した場合には、他システム50C−3から提供される処理対象データ202C−3を取得するコネクタ101C−3は、例えば、停止した状態にされる。すなわち、情報処理装置10Cは、障害発生によって他システム50C−3から処理対象データ202C−3が提供されることのない状態である場合、他システム50C−3から提供される処理対象データ202C−3を取得するためのコネクタ101C−3を停止状態にさせておくことができる。これにより、情報処理装置10Cの運用コストを低減させることができる。
以上説明したように、第3の実施形態に係る情報処理システム1Aにおいて、情報処理装置10Aは、連携する他システム50C(50C−1、50C−2、50C−3)によりそれぞれ提供される処理対象データ202C(202C−1、202C−2、202C−3)をそれぞれ取得するコネクタ101C(102C−1、102C−2、102C−3)毎に、実行処理を起動または停止させることができる。
以上により、本発明の第3の実施形態に係る情報処理システム1Cは、非同期処理において、業務毎に情報処理装置10Cの起動及び停止を制御したいという要件に対して、柔軟に対応することができる。
(第4の実施形態)
以下、本発明の第4の実施形態について、図面を参照しながら説明する。
図4は、本発明の第4の実施形態に係る情報処理システム1と従来システムとの稼働率の比較を示す概略図である。
以下、本発明の第4の実施形態について、図面を参照しながら説明する。
図4は、本発明の第4の実施形態に係る情報処理システム1と従来システムとの稼働率の比較を示す概略図である。
図4(A)の上段の図は、従来システムにおける処理対象データの処理の実行イメージを表す。従来システムにおいては、各クライアントから取得した1つの処理対象データ(メッセージ)の処理を実行する毎に、コミット処理を行う。図4(A)の上段の図に示すように、従来システムは、処理対象データの実行処理ma1を実行した後、コミット処理ca1を実行する。次に、従来システムは、実行処理ma2を実行した後、コミット処理ca2を実行する。次に、従来システムは、実行処理ma3を実行した後、コミット処理ca3を実行する。
なお、コミット処理とは、トランザクション処理が成功した時に、その結果を確定させる処理のことである。また、トランザクション処理とは、関連する複数の処理や操作を一つの処理単位にまとめて管理する方式のことである。
図4(A)の下段の図は、従来システムにおける処理対象データの処理の実行に伴う、従来システムの稼働率(例えば、CPU使用率)のイメージを表す。従来システムでは、1つの処理対象データ(メッセージ)の処理を実行する毎にコミット処理を行うことによって、図4(A)の下段の図に図示するように、従来システムの稼働率が頻繁に低下と上昇を繰り返すことになる。これは、稼働率が低下するコミット処理を頻繁に行うことに起因する。
一方、図4(B)の上段の図は、第4の実施形態に係る情報処理装置10における、処理対象データの処理の実行イメージを表す。第4の実施形態に係る情報処理装置10は、1トランザクションで処理する処理対象データ(メッセージ)の数を、業務毎に設定することができる。第4の実施形態に係る情報処理装置10は、各クライアントから取得した処理対象データ(メッセージ)について予め指定された量だけ連続して実行処理する毎に、コミット処理を行う。図4(B)の上段の図に示すように、第4の実施形態に係る情報処理装置10は、処理対象データの実行処理ma1を実行した後、コミット処理ca1を実行する。
図4(B)の下段の図は、第4の実施形態に係る情報処理装置10における、処理対象データの処理の実行に伴う、情報処理装置10の稼働率(例えば、CPU使用率)のイメージを表す。情報処理装置10では、予め指定された量の処理対象データ(メッセージ)を連続して実行処理する毎にコミット処理を行うことによって、図4(B)の下段の図に図示するように、従来システムと比べ稼働率が上昇している期間を長くすることができる。すなわち、第4の実施形態に係る情報処理装置10は、1トランザクションで複数の処理対象データ(メッセージ)を処理することで、コミット処理の実行に起因するオーバーヘッドを低減することができる。
以上により、本発明の第4の実施形態に係る情報処理システム1は、非同期処理において、業務単位で、自らの情報処理システム1の稼働率を向上させたいという要件に対して、柔軟に対応することができる。
(第5の実施形態)
以下、本発明の第5の実施形態について、図面を参照しながら説明する。
図5は、本発明の第5の実施形態に係る情報処理システム1Dの構成の一例を示す概略図である。なお、上記説明した第1の実施形態に係る情報処理システム1A、乃至第3の実施形態に係る情報処理システム1Cと共通する部分については説明を省略する。
以下、本発明の第5の実施形態について、図面を参照しながら説明する。
図5は、本発明の第5の実施形態に係る情報処理システム1Dの構成の一例を示す概略図である。なお、上記説明した第1の実施形態に係る情報処理システム1A、乃至第3の実施形態に係る情報処理システム1Cと共通する部分については説明を省略する。
第5の実施形態に係る情報処理システム1Dは、処理対象データ202Dの実行処理において、実行順序を保障しつつ実行処理を行うことができる。
図5に図示するように、メッセージサーバ20Dには、例えば、業務201Dに関する処理対象データ202Dが3個発生している状態である。以下、これらの3個の処理対象データ202Dを、それぞれメッセージr1、メッセージr2、及びメッセージr3と称する。
図5に図示するように、メッセージサーバ20Dには、例えば、業務201Dに関する処理対象データ202Dが3個発生している状態である。以下、これらの3個の処理対象データ202Dを、それぞれメッセージr1、メッセージr2、及びメッセージr3と称する。
メッセージr1、メッセージr2、及びメッセージr3には、それぞれ「orderID」が付与されている。orderIDとは、例えば、業務ルールに基づいて付与された識別子である。orderIDが同一であるメッセージ間においては、実行順序の保障が求められる。
図5に図示するように、例えば、メッセージr1、メッセージr2、及びメッセージr3に付与されているorderIDは、それぞれ「0010」、「0011」、及び「0010」である。また、例えば、メッセージr1、メッセージr2、及びメッセージr3に基づいて実行される処理は、それぞれ「登録」、「登録」、及び「キャンセル」である。
図5に図示するように、例えば、メッセージr1、メッセージr2、及びメッセージr3に付与されているorderIDは、それぞれ「0010」、「0011」、及び「0010」である。また、例えば、メッセージr1、メッセージr2、及びメッセージr3に基づいて実行される処理は、それぞれ「登録」、「登録」、及び「キャンセル」である。
メッセージr1とメッセージr3とは同一のorderIDである「0010」が付与されているため、メッセージr1とメッセージr3との間では、実行順序の保障が求められる。すなわち、メッセージr1に基づく実行処理が行われる前にメッセージr3に基づく実行処理が行われてはならないことを示す。
図5に図示する、メッセージr1、メッセージr2、及びメッセージr3は、例えば、電子商取引における購入処理を示すメッセージである。メッセージr1、及びメッセージr3は、例えば、それぞれ同一のオーダー(購入手続き)に対する、購入手続実行(登録)処理、及び購入手続取消(キャンセル)処理である。また、メッセージr2は、例えば、メッセージr1及びメッセージr3に基づくオーダーとは異なる別のオーダーの購入手続実行(登録)処理である。
したがって、メッセージr1、及びメッセージr3が、正しい順序で(メッセージr1が先に)実行された場合には、一度行われた購入手続が正常にキャンセルされる結果となる。逆に、メッセージr1、及びメッセージr3が、誤った順序で(メッセージr3が先に)実行された場合には、購入手続実行(登録)処理が後に行われることによって、購入手続が誤ってキャンセルされない結果となる。
第5の実施形態に係る情報処理装置10Dは、コネクタ101Dが取得したメッセージの実行処理の実行順序を保障するため、実行処理の実行順序を制御する順序制御部105Dを備える。なお、順序制御部105Dは、制御部104Dと共通の部材によって構成されるものであっても構わない。
順序制御部105Dは、まず、コネクタ101Dからメッセージr1を取得する。順序制御部105Dは、メッセージr1に付与されたorderIDが「0010」であることを確認し、(例えば、一時的に)記憶する。そして、順序制御部105Dは、例えば、メッセージr1をワーカースレッド103D−1rに割り当てる。
次に、順序制御部105Dは、コネクタ101Dからメッセージr2を取得する。順序制御部105Dは、メッセージr2に付与されたorderIDが「0011」であることを確認し、(例えば、一時的に)記憶する。そして、順序制御部105Dは、メッセージr2に付与されたorderIDがメッセージr1に付与されたorderIDとは異なることを確認することによって、順序制御部105Dは、メッセージr1を割り当てたワーカースレッド103D−1aとは異なるワーカースレッド103D−1bに、メッセージr2を割り当てる。
次に、順序制御部105Dは、コネクタ101Dからメッセージr3を取得する。順序制御部105Dは、メッセージr3に付与されたorderIDが「0010」であることを確認し、(例えば、一時的に)記憶する。そして、順序制御部105Dは、メッセージr3に付与されたorderIDがメッセージr1に付与されたorderIDと同一であることを確認することによって、順序制御部105Dは、メッセージr1を割り当てたワーカースレッド103D−1aとは同一のワーカースレッド103D−1aに、メッセージr3を割り当てる。
これにより、メッセージr1の実行処理が完了するまではワーカースレッド103D−1aが解放されないため、メッセージr3の実行処理は開始されることがない。よって、第4の実施形態に係る情報処理装置10は、メッセージr1とメッセージr3との間で求められる実行順序の保障を担保しつつ、実行処理を行うことができる。
以上により、本発明の第5の実施形態に係る情報処理システム1Dは、非同期処理において、業務毎に、実行順序を保障した並列処理を実行したいという要件に対して、柔軟に対応することができる。
以上説明したように、本発明の第1の実施形態乃至第5の実施形態に係る情報処理システム1及び情報処理装置10は、非同期処理における様々な要件に対して柔軟に対応することができる。
以上、この発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
なお、上述した各実施形態における情報処理システム1(1A、1B、・・・、1D)の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
なお、ここでいう「コンピュータシステム」とは、情報処理システム1(1A、1B、・・・、1D)に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
また、上述した第1の実施形態における情報処理システム1(1A、1B、・・・、1D)、を、LSI(Large Scale Integration)等の集積回路として実現してもよい。情報処理システム1(1A、1B、・・・、1D)の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
1・・・情報処理システム、10・・・情報処理装置、20・・・メッセージサーバ、30・・・制御装置、50・・・他システム、60・・・運用管理ツール、101・・・コネクタ、102・・・業務ロジック、103・・ワーカースレッド、104・・・制御部、105・・・順序制御部、201・・・業務、202・・・処理対象データ、203・・・エンドポイント、ma・・・実行処理、mb・・・実行処理、ca・・・コミット処理、cb・・・コミット処理、r・・・メッセージ
Claims (7)
- データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理システムにおいて、
前記業務の実行データを取得するコネクタと、前記コネクタが取得した前記実行データを実行処理するワーカースレッドと、前記コネクタ及び前記ワーカースレッドを制御する制御部と、をそれぞれ有する複数の情報処理装置と、
複数の前記情報処理装置に配置された各コネクタが行う実行処理を排他制御するコネクタ間排他制御装置と、
を有することを特徴とする、情報処理システム。 - 前記制御部は、実行処理の起動タイミング及び停止タイミング、またはそのいずれか一方を、コネクタ毎に制御する、
ことを特徴とする、請求項1に記載の情報処理システム。 - 前記制御部は、実行処理の1トランザクションあたりの前記実行データの量を、コネクタ毎に制御する、
ことを特徴とする、請求項1に記載の情報処理システム。 - 前記コネクタに複数の前記ワーカースレッドが対応付けられ、前記コネクタが取得した順に前記実行データを前記ワーカースレッドに割り当て、かつ、関連性がある前記実行データについては他の前記ワーカースレッドの割り当てによる実行処理の追い越しを抑止するために、同一の前記ワーカースレッドへ前記関連性がある前記実行データを優先的に割り当てる、
ことを特徴とする、請求項1に記載の情報処理システム。 - データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理方法において、
前記業務の実行データを取得する第1ステップと、
前記第1ステップが取得した前記実行データを実行処理する第2ステップと、
前記第1ステップ及び前記第2ステップを制御する第3ステップと、
複数の前記第1ステップ乃至第3ステップが行う実行処理を排他制御する第4ステップと、
を有することを特徴とする、情報処理方法。 - データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理するコンピュータに、
前記業務の実行データを取得する第1ステップと、
前記第1ステップが取得した前記実行データを実行処理する第2ステップと、
前記第1ステップ及び前記第2ステップを制御する第3ステップと、
複数の前記第1ステップ乃至第3ステップが行う実行処理を排他制御する第4ステップと、
を実行させるための、プログラム。 - データベースやメッセージングサービスサーバより業務の実行データを取得し、非同期処理によって実行処理する情報処理装置において、
前記業務の実行データを取得するコネクタと、
前記コネクタが取得した前記実行データを実行処理するワーカースレッドと、
前記コネクタ及び前記ワーカースレッドを制御する制御部と、
を備え、
前記コネクタは、前記データベースや前記メッセージングサービスサーバより前記業務の前記実行データを、少なくとも1つの他の前記情報処理装置との間において排他的に取得する、
ことを特徴とする、情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015149741A JP2017033095A (ja) | 2015-07-29 | 2015-07-29 | 情報処理システム、情報処理方法、プログラム、及び情報処置装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015149741A JP2017033095A (ja) | 2015-07-29 | 2015-07-29 | 情報処理システム、情報処理方法、プログラム、及び情報処置装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017033095A true JP2017033095A (ja) | 2017-02-09 |
Family
ID=57987292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015149741A Pending JP2017033095A (ja) | 2015-07-29 | 2015-07-29 | 情報処理システム、情報処理方法、プログラム、及び情報処置装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017033095A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101889749B1 (ko) * | 2017-07-21 | 2018-09-20 | 주식회사 티맥스데이터 | 메시지 스케줄링 방법 |
CN112015559A (zh) * | 2020-09-03 | 2020-12-01 | 深圳虹川科技有限公司 | 基于http协议的异步实时数据更新系统及方法 |
-
2015
- 2015-07-29 JP JP2015149741A patent/JP2017033095A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101889749B1 (ko) * | 2017-07-21 | 2018-09-20 | 주식회사 티맥스데이터 | 메시지 스케줄링 방법 |
US10372517B2 (en) | 2017-07-21 | 2019-08-06 | TmaxData Co., Ltd. | Message scheduling method |
CN112015559A (zh) * | 2020-09-03 | 2020-12-01 | 深圳虹川科技有限公司 | 基于http协议的异步实时数据更新系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090228889A1 (en) | Storage medium storing job management program, information processing apparatus, and job management method | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
WO2009147802A1 (ja) | 優先度制御装置及び優先度制御方法 | |
US10067793B2 (en) | Data processing method and apparatus for executing task code using reservation instruction and release instruction | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
WO2019160060A1 (ja) | 仮想リソース管理装置、仮想リソース割り当て方法、および仮想リソース割り当てプログラム | |
JP2019144717A (ja) | サービス提供システム、資源割り当て方法、及び資源割り当てプログラム | |
CN110069265B (zh) | 服务集群的升级方法、装置及存储介质 | |
US20120096303A1 (en) | Detecting and recovering from process failures | |
JP2017033095A (ja) | 情報処理システム、情報処理方法、プログラム、及び情報処置装置 | |
EP1191439A1 (en) | Computer system and computer-readable record medium | |
JP2016006608A (ja) | 管理方法、仮想マシン、管理サーバ、管理システム、及びコンピュータプログラム | |
JP2017033094A (ja) | 情報処置装置、情報処理システム、情報処理方法、及びプログラム | |
US10970098B2 (en) | Methods for sharing input-output device for process automation on a computing machine and devices thereof | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN113342499B (zh) | 分布式任务调用方法、装置、设备、存储介质、程序产品 | |
CN114327673B (zh) | 一种任务启动方法、装置、电子设备及存储介质 | |
CN115168040A (zh) | 一种作业抢占调度方法、装置、设备和存储介质 | |
JP2016505987A (ja) | アプリケーションプログラムの管理装置及び管理方法 | |
CN110737533A (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
JP2017037539A (ja) | サーバ制御プログラム、サーバ制御方法およびサーバ制御装置 | |
JP5417626B2 (ja) | 管理計算機、ジョブスケジューリング方法及びジョブスケジューリングプログラム | |
JP5530810B2 (ja) | スケールアウトシステムおよび方法ならびにプログラム | |
CN113448734B (zh) | Spark SQL交互式场景下SQL中断系统及方法 | |
JP2009110195A (ja) | 情報処理装置、システム、情報処理引継ぎ制御方法、及び、プログラム |