JP6563807B2 - 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム - Google Patents

情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム Download PDF

Info

Publication number
JP6563807B2
JP6563807B2 JP2015254619A JP2015254619A JP6563807B2 JP 6563807 B2 JP6563807 B2 JP 6563807B2 JP 2015254619 A JP2015254619 A JP 2015254619A JP 2015254619 A JP2015254619 A JP 2015254619A JP 6563807 B2 JP6563807 B2 JP 6563807B2
Authority
JP
Japan
Prior art keywords
processing
identification information
request
information
transaction
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.)
Active
Application number
JP2015254619A
Other languages
English (en)
Other versions
JP2017117355A (ja
Inventor
登 蕪木
登 蕪木
Original Assignee
株式会社インターファクトリー
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 株式会社インターファクトリー filed Critical 株式会社インターファクトリー
Priority to JP2015254619A priority Critical patent/JP6563807B2/ja
Publication of JP2017117355A publication Critical patent/JP2017117355A/ja
Application granted granted Critical
Publication of JP6563807B2 publication Critical patent/JP6563807B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラムに関する。
従来では、多数のデータを迅速に処理したり、1台のサーバ(情報処理装置)に係る処理負荷を軽減するため、複数の処理サーバと、その複数のサーバに処理を分散させる分散サーバとを備えた情報処理システムが存在する(例えば、特許文献1参照)。上述したシステムでは、分散サーバがそれぞれの処理サーバの稼働状況を監視し、監視結果に応じて処理を分散することで、処理サーバにおける負荷の平均化を図っている。
また、特許文献1では、到達したトランザクションの順序と受付順序との間に順序の入れ替わりが発生することのないように、ルータが入力されるパケットに対してタイムスタンプを付与し、受付サーバが同一識別子を有する複数のパケットに分割されて伝送されたトランザクションに対し、複数のパケットに付与したタイムスタンプの最も遅い時刻を当該トランザクションのタイムスタンプとして付与している。処理サーバは、複数の受付サーバから受信した複数のトランザクションのうち、予め設定した最大遅延時間を経過したトランザクションに対して付与されたトランザクションのタイムスタンプに従ってソートすることで、データ順序を保証している。
特開2012−129857号公報
しかしながら、従来手法では、例えば複数のサーバ間でデータベース(DB)に対する単一のトランザクション(DBトランザクション)を扱うことはできない。従来手法のような分散システムの環境においては、リクエスト毎に処理するサーバが変化するため、複数リクエストに跨るトランザクションを利用することは困難である。
例えば、所定のデータベースからデータを読み取り、リクエストされた1又は複数の処理を行い、その結果をデータベースにアップロードしてコミットする場合に、それぞれの処理を異なる処理サーバで分散してしまうと、読み取ったデータに対して途中の処理結果が反映されていなかったり、次の処理の入力データに更新前のデータを用いてしまう等の問題が生じる。そのため、コミット又はロールバックするまでの一連のトランザクション処理は、1つの処理サーバ内で処理されるのが好ましい。
また、特許文献1では、処理サーバが、予め設定した最大遅延時間を経過したトランザクションに対して付与されたトランザクションのタイムスタンプに従ってソートし、データ順序を保証する処理の修正が必要となるが、処理サーバの負担や修正の手間がかかるため、その前段階のサーバ等での処理の修正のみで1つの処理サーバ内で処理されるようにするのが好ましい。また、特許文献1に示すように処理順序に対するタイムスタンプを設定する場合には、そのタイムスタンプを付与して管理する処理の負荷がかかってしまうという問題が生じる。
本発明は、上述した課題に鑑みてなされたものであって、複数の情報処理装置を用いた場合であっても適切なトランザクション処理を実現するための情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラムを提供することを目的とする。
本発明の1つの態様としての情報処理システムは、ユーザ端末と、該ユーザ端末からの処理実行リクエストに対する処理を実行する複数の情報処理装置と、前記複数の情報処理装置に対して前記処理実行リクエストを振り分けて前記処理を分散させる中継装置とを有する情報処理システムにおいて、前記ユーザ端末は、前記複数の情報処理装置に対して前記処理実行リクエストを実行する情報処理装置の識別情報の生成リクエストを前記中継装置に送信する識別情報要求手段と、前記識別情報要求手段により得られる前記識別情報を前記処理実行リクエストに付加して前記中継装置に送信する処理要求手段とを有し、
前記情報処理装置は、前記中継装置から前記生成リクエストを受信した際、自己の識別情報と処理識別情報とを生成する識別情報生成手段と、前記中継装置から前記処理実行リクエストを受信した際、前記処理実行リクエストに含まれる識別情報が、自己の識別情報であるか否かを判定する処理対象判定手段と、前記処理対象判定手段による判定結果、前記自己の識別情報でない場合に、対象の情報処理装置に前記処理実行リクエストを送信する処理実行手段とを有する。
本発明によれば、複数の情報処理装置を用いた場合であっても適切なトランザクション処理を実現することができる。
情報処理システムの概略構成の一例を示す図である。 ユーザ端末の機能構成例を示す図である。 アプリケーションサーバの機能構成の一例を示す図である。 ハードウェア構成の一例を示す図である。 本実施形態におけるDBトランザクション処理の第1の実施例を示すシーケンス図である。 本実施形態におけるDBトランザクション処理の第2の実施例を示すシーケンス図である。 アプリケーションサーバ又はDB内で管理されるテーブルの一例を示す図である。
以下、図面に基づいて実施形態を説明する。
<情報処理システムの概略構成例>
図1は、情報処理システムの概略構成の一例を示す図である。図1に示す情報処理システム10は、ユーザ端末11と、分散サーバ12と、複数のアプリケーションサーバ13−1〜13−n(以下、必要に応じて「アプリケーションサーバ13」という)と、記憶装置の一例としてのデータベース(以下、必要に応じて「DB」という)とを有する。ユーザ端末11と、分散サーバ12とは、インターネットやLAN(Local Area Network)等に代表される通信ネットワーク15−1によりデータの送受信が可能な状態で接続されている。また、分散サーバ12とアプリケーションサーバ13とは、同様の通信ネットワーク15−2によりデータの送受信が可能な状態で接続されている。通信ネットワーク15−1及び通信ネットワーク15−2は、同一のネットワークでもよい。
ユーザ端末11は、DB14に対して何らかのトランザクション処理の実行を指示するユーザが使用する端末である。ユーザ端末11は、ユーザからの指示により、通信ネットワーク15−1を介して分散サーバ12にアクセスして、1又は複数のトランザクション処理の実行を指示する。
なお、DB14に対するトランザクション処理とは、例えばDB14にデータを書き込んだり、DB14に格納されたデータを検索して対象のデータを抽出したり、アプリケーションサーバ13により抽出したデータに対してデータの修正や更新等を行ったり、その結果に対してDBをアップデートする等の処理又は、これらの一連の処理であるが、処理内容については、これに限定されるものではない。また、トランザクション処理は、トランザクション処理の結果が正常であればコミット処理(トランザクションによるDB14の更新内容を有効にする処理)、又は正常でない場合には、ロールバック処理(トランザクションによるDB14の更新内容を無効にする処理)を含んでもよい。
分散サーバ12は、ユーザ端末11からのリクエストに応じて、DB14を処理する複数のアプリケーションサーバ13の少なくとも1つにリクエスト(例えば、DBトランザクションの生成リクエスト等)を振り分けて送信する。例えば、分散サーバ12は、定期的に各アプリケーションサーバ13から現時点での稼働情報を取得する。なお、分散サーバ12は、定期的ではなく、ユーザ端末11からのリクエスト要求があった場合に、各アプリケーションサーバ13へ稼働情報の問い合わせを行って、稼働情報を取得してもよい。
また、分散サーバ12は、取得した稼働情報に基づいて、各アプリケーションサーバ13の負荷のバランスが均等になるように調整してリクエストを送信する。ここで、稼働情報とは、例えばCPU(Central Processing Unit)使用率や、処理待ちのリクエスト数等であるが、これに限定されるものではない。
分散サーバ12は、例えば稼働情報から、CPU負荷の最も少ないアプリケーションサーバ13又は処理待ちリクエストの最も少ないアプリケーションサーバ13に対してリクエストを割り当てて出力する。割り当て手法については、これに限定されるものではなく、例えば分散サーバ12は、上述したCPU使用率及び処理待ちリクエスト数の両方の情報に基づいてリクエストを送信してもよい。また、分散サーバ12は、稼働情報に関係なく、所定の順序で順番に処理を振り分けてもよく、リクエスト内容に基づいて、対応する処理が実行可能なアプリケーションがインストールされたアプリケーションサーバ13に処理を振り分けてもよい。
アプリケーションサーバ13は、例えば、Java(登録商標)等のプログラムを実行したり、SQL(Structured Query Language)等によりDB14に対して処理の処理を実行したりするための各種アプリケーションプログラムがインストールされたサーバである。アプリケーションサーバ13は、それぞれが同一のアプリケーションをインストールしてもよく、異なるアプリケーションを含めてインストールしてもよい。
アプリケーションサーバ13は、通信ネットワーク15−2を介して分散サーバ12から取得した識別情報リクエスト(例えば、DBトランザクションの生成リクエスト等)に対して、予め設定されたアプリケーションサーバ13を識別する識別情報を返信する。また、アプリケーションサーバ13は、分散サーバ12から得られたリクエスト情報を取得し、取得したリクエスト情報に含まれる識別情報が、自己の識別情報であるか否かを判定し、自己の識別情報である場合には、対応する処理を実行する。
また、アプリケーションサーバ13は、自己の識別情報でない場合には、通信ネットワーク15−2を介して識別情報に対応する他のアプリケーションサーバ13に送信する。DB14には、ユーザ端末11からの指示に対応する処理を行う各種データが格納されている。DB14に格納されるデータ例としては、例えば、シングルテナントシステムやマルチテナントシステム等における各EC(Electronic Commerce)サイト等で管理されるユーザ情報、商品情報、利用履歴、ネットショッピング等における課金情報等の各種データであるが、データの内容については、これに限定されるものではない。
なお、上述したユーザ端末11は、例えばPC(Personal Computer)、スマートフォン、タブレット端末等の情報処理装置であるが、これに限定されるものではない。また、分散サーバ12は、例えば汎用のサーバ、PC等の中継装置であるが、これに限定されるものではない。また、アプリケーションサーバ13は、例えば汎用のサーバ、PC等の情報処理装置であるが、これに限定されるものではなく、例えば1又は複数の情報処理装置からなるクラウドコンピューティングにより構成されたクラウドサーバであってもよい。また、図1に示す情報処理システム10においては、1つのユーザ端末11及び1つの分散サーバ12を有しているが、これに限定されるものではなく、複数のユーザ端末11及び複数の分散サーバ12を有していてもよい。
本実施形態では、上述した各アプリケーションサーバ13に対応する識別情報(例えば、装置ID等)や処理識別情報(例えば、トランザクションID)から、そのトランザクションを処理しているアプリケーションサーバ(担当サーバ)を特定し、担当サーバ以外のサーバにリクエストが送信された場合には、そのリクエストを担当サーバに送り、その結果をクライアントに返す処理を行うことで、一連のトランザクション処理を1つのサーバで実施することができるため、適切なトランザクション処理を実現することができる。
次に、上述した情報処理システム10におけるユーザ端末11及びアプリケーションサーバ13の機能構成例について、図を用いて説明する。
<ユーザ端末11の機能構成例>
図2は、ユーザ端末の機能構成例を示す図である。図2の例において、ユーザ端末11は、入力手段21と、出力手段22と、記憶手段23と、識別情報要求手段24と、識別情報取得手段25と、処理要求手段26と、処理結果取得手段27と、通信手段28と、制御手段29とを有する。
入力手段21は、ユーザ端末11を使用するユーザ等から各種指示の入力を受け付ける。入力手段21は、例えばキーボードやマウス等のポインティングデバイス等からなる。
出力手段22は、入力手段21により入力された内容や、その入力内容に基づいて実行された内容等の表示や出力を行う。出力手段22は、ディスプレイやスピーカ等からなる。なお、入力手段21と出力手段22とは、例えばタッチパネル等のように一体型の入出力手段であってもよい。この場合には、ユーザの指やタッチペン等を用いて画面上の所定の位置をタッチして入力を行うことができる。
記憶手段23は、本実施形態におけるDBトランザクション処理を提供するための各種処理に必要な各種データを記憶する。例えば、記憶手段23は、分散サーバ12にアクセスするためのアドレス情報等や実行要求、実行結果等の履歴情報等を記憶するが、記憶する情報はこれに限定されるものではない。また、記憶手段23は、必要に応じて記憶された各種データを読み出したり、各種データを書き込んだりすることができる。
識別情報要求手段24は、1又は複数の処理を有するトランザクション処理を実行する前に、トランザクション生成リクエストを通信ネットワーク15−1を介して分散サーバ12に送信する。識別情報取得手段25は、識別情報要求手段24により要求した結果として、トランザクションを実行するアプリケーションサーバ13から、そのアプリケーションサーバ13の識別情報を取得する。識別情報取得手段25は、取得した識別情報を記憶手段23に記憶してもよい。
処理要求手段26は、ユーザ等からの指示により、DB14に対する1又は複数のトランザクション処理のリクエスト(処理実行リクエスト)を分散サーバ12に出力する。このとき、処理要求手段26は、識別情報取得手段25により取得した識別情報(例えば、トランザクションID)を付加したリクエスト情報を生成し、生成したリクエスト情報を通信ネットワーク15−1を介して分散サーバ12に送信する。なお、処理要求手段26は、複数のトランザクション処理を1つずつリクエストを送信してもよく、複数のトランザクション処理を纏めて送信してもよい。リクエストする処理の一例としては、トランザクションIDを指定してDB14に対する所定の操作(データの取得、編集、作成、削除、更新、トランザクションのコミット、ロールバック等)であるが、これに限定されるものではない。
また、処理要求手段26は、複数のリクエストを纏めて送信する場合に、リクエストに処理番号を付加して送信し、アプリケーションサーバ13に処理番号に対応させた順序で、リクエストを実行させてもよい。これにより、リクエストの順番が通信経路の違い及び通信時間等により入れ替われることがなく、処理の順序でリクエストに対する処理を実行させることができる。
処理結果取得手段27は、処理要求手段26により要求した処理の結果を取得する。処理結果取得手段27は、取得した情報を記憶手段23等に記憶する。
通信手段28は、通信ネットワーク15−1を介して分散サーバ12にDBトランザクション処理の生成リクエストや実行リクエストを送信したり、分散サーバ12から取得した情報を抽出することができるが、これに限定されるものではない。
制御手段29は、ユーザ端末11の各構成全体を制御する。制御手段29は、例えば、入力手段21によるデータ入力、出力手段22によるデータ出力、識別情報要求手段24による識別情報の要求、識別情報取得手段25による識別情報の取得、処理要求手段26による処理要求、処理結果取得手段27による処理結果の取得、通信手段28によるデータ通信等を行う。
なお、制御手段29による制御内容については、これに限定されるものではない。例えば、制御手段29は、DBトランザクション処理の実行の開始や終了を制御したり、エラー発生時の処理等を制御する。
<アプリケーションサーバ13の機能構成例>
次に、上述した情報処理システム10におけるアプリケーションサーバ13機能構成例について、図を用いて説明する。図3は、アプリケーションサーバの機能構成の一例を示す図である。図3の例において、アプリケーションサーバ13は、入力手段31と、出力手段32と、記憶手段33と、識別情報生成手段34と、処理対象判定手段35と、処理実行手段36と、通信手段37と、制御手段38とを有する。
入力手段31は、アプリケーションサーバ13を使用するユーザ等から各種指示の入力を受け付ける。入力手段31は、例えばキーボードやマウス等のポインティングデバイス等からなる。
出力手段32は、入力手段31により入力された内容や、その入力内容に基づいて実行された内容等の表示や出力を行う。出力手段32は、ディスプレイやスピーカ等からなる。なお、入力手段31と出力手段32とは、例えばタッチパネル等のように一体型の入出力手段であってもよい。この場合には、ユーザの指やタッチペン等を用いて画面上の所定の位置をタッチして入力を行うことができる。
記憶手段33は、本実施形態におけるDBトランザクション処理を提供するための各種処理に必要な各種データを記憶する。例えば、記憶手段33は、分散サーバ12又は他のアプリケーションサーバ13にアクセスするためのアドレス情報、処理を実行するための各種アプリケーション(例えば、プログラム、ソフトウェア等を含む)、実行要求や実行結果等の履歴情報等を記憶するが、記憶する情報はこれに限定されるものではない。また、記憶手段33は、必要に応じて記憶された各種データを読み出したり、各種データを書き込んだりすることができる。
識別情報生成手段34は、通信ネットワーク15−2を介して分散サーバ12から得られるDBトランザクション生成リクエスト(生成リクエスト)に対して自己(アプリケーションサーバ13)の識別情報等を付加する。例えば、識別情報生成手段34は、予め設定された自己を特定する情報(例えば、端末ID、IPアドレス等)と、任意の数値(シーケンス番号、乱数等)とを組み合わせて、トランザクションIDを生成する。また、識別情報生成手段34は、トランザクションIDに基づいて、一連のDBトランザクションの処理内容を管理し、上述したトランザクションIDとDBトランザクションとをテーブルに保存する。また、識別情報生成手段34は、生成したトランザクションIDを分散サーバ12を介してユーザ端末11に送信する。
なお、識別情報生成手段34は、例えば分散サーバ12から取得したリクエスト情報にトランザクションIDが付与されていない場合に、そのリクエストは識別情報を生成するリクエストであると判断してトランザクションIDを生成してもよい。
処理対象判定手段35は、分散サーバ12から取得したリクエストにトランザクションIDが含まれている場合、そのトランザクションIDから処理対象のトランザクションIDであるか否かを判定する。処理対象判定手段35は、判定した結果、処理対象のトランザクションIDである場合には、処理実行手段36により対象のリクエストに対応する処理を実行させる。また、処理対象判定手段35は、判定した結果、処理対象のトランザクションIDに含まれる端末IDからアプリケーションサーバ13を特定し、特定したアプリケーションサーバ13に、ユーザ端末11からのリクエストと同一のリクエストを送信する。なお、処理対象判定手段35は、通信ネットワーク15−2を介して対象のアプリケーションサーバ13に直接送信してもよく、分散サーバ12を介して送信してもよい。
処理実行手段36は、処理対象判定手段35により自己が行うと判定されたリクエストに対応するDBトランザクション処理を実行する。処理実行手段36は、例えばトランザクション生成処理で登録したデータ(例えば、テーブル等)に基づいて、トランザクションIDからDBトランザクションを特定する。また、処理実行手段36は、そのトランザクションを用いて、例えばDB14に格納されたデータや、ユーザ端末11から入力されたデータに対して、ユーザ端末11からのリクエストを処理し、その結果を出力する。
なお、処理実行手段36は、リクエストに処理番号が含まれている場合には、その順序で、リクエストを実行することができる。また、この順序に関する情報又は実行結果は、記憶手段33に記憶されたテーブル等に記憶して管理することができる。
通信手段37は、通信ネットワーク15−2を介して分散サーバ12とデータの送受信を行ったり、DB14に対してデータの書き込みや読み込み等を行う。
制御手段38は、アプリケーションサーバ13の各構成全体を制御する。制御手段38は、例えば入力手段31によるデータ入力、出力手段32によるデータ出力、識別情報生成手段34による識別情報の生成、処理対象判定手段35による処理対象リクエストの判定、処理実行手段36による処理実行、通信手段37によるデータ通信等を行う。
なお、制御手段38による制御内容については、これに限定されるものではない。例えば、制御手段38は、DBトランザクション処理の実行の開始や終了を制御したり、エラー発生時の処理等を制御する。
<ハードウェア構成例>
次に、上述したユーザ端末11及びアプリケーションサーバ13におけるハードウェア構成例について図を用いて説明する。図4は、ハードウェア構成の一例を示す図である。図4の例において、ユーザ端末11及びアプリケーションサーバ13等に適用される情報処理装置(コンピュータ)は、入力装置41と、出力装置42と、ドライブ装置43と、補助記憶装置44と、主記憶装置45と、CPU46と、通信制御装置47とを有し、これらはシステムバスBで相互に接続されている。
入力装置41は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスや、マイクロフォン等の音声入力デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。
出力装置42は、本実施形態における処理を行うためのコンピュータ本体(ユーザ端末11、アプリケーションサーバ13)を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ等を有する。出力装置42は、CPU46が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
ここで、本実施形態において、例えばコンピュータ本体にインストールされる実行プログラムは、記録媒体48等により提供される。記録媒体48は、ドライブ装置43にセット可能である。CPU46からの制御信号に基づき、記録媒体48に格納された実行プログラムが、記録媒体48からドライブ装置43を介して補助記憶装置44にインストールされる。
補助記憶装置44は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等のストレージ手段等である。補助記憶装置44は、CPU46からの制御信号に基づき、本実施形態における実行プログラム(処理制御プログラムの一例としてのDBトランザクション処理プログラム)や、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置44は、CPU46からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
主記憶装置45は、CPU46により補助記憶装置44から読み出された実行プログラム等を格納する。主記憶装置45は、ROM(Read Only Memory)やRAM(Random Access Memory)等である。
CPU46は、OS(Operating System)等の制御プログラム、及び主記憶装置45に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現する。プログラムの実行中に必要な各種情報等は、補助記憶装置44から取得することができ、また実行結果等を格納することもできる。
具体的には、CPU46は、例えば入力装置41から得られるプログラムの実行指示等に基づき、補助記憶装置44にインストールされたプログラムを実行させることにより、主記憶装置45上でプログラムに対応する処理を行う。
例えば、図4に示すハードウェア構成が、ユーザ端末11である場合、CPU46は、入力手段21によるデータ入力、出力手段22によるデータ出力、識別情報要求手段24による識別情報の要求、識別情報取得手段25による識別情報の取得、処理要求手段26による処理要求、処理結果取得手段27による処理結果の取得、通信手段28によるデータ通信等の処理を実行する。また、図4に示すハードウェア構成が、アプリケーションサーバ13である場合、CPU46は、入力手段31によるデータ入力、出力手段32によるデータ出力、識別情報生成手段34による識別情報の生成、処理対象判定手段35による処理対象リクエストの判定、処理実行手段36による処理実行、通信手段37によるデータ通信等の処理を行う。
なお、CPU46における処理内容は、これに限定されるものではない。CPU46により実行された内容は、必要に応じて補助記憶装置44等に記憶される。
通信制御装置47は、上述した通信ネットワーク15を介して、他の外部装置との通信を行う。通信制御装置47は、CPU46からの制御信号に基づき、通信ネットワーク15等と接続することにより、実行プログラムやソフトウェア、設定情報等を外部装置等から取得する。また、通信制御装置47は、プログラムを実行することで得られた実行結果を他の外部装置等に提供したり、本実施形態における実行プログラム自体を外部装置等に提供してもよい。
記録媒体48は、上述したように実行プログラム等が格納されたコンピュータで読み取り可能な記録媒体である。記録媒体48は、例えばフラッシュメモリ等の半導体メモリやCD−ROM、DVD等の可搬型の記録媒体であるが、これに限定されるものではない。
図3に示すハードウェア構成に実行プログラム(例えば、処理制御プログラムの一例としてのDBトランザクション処理プログラム等)をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態におけるDBトランザクション処理等を実現することができる。
<DBトランザクション処理>
次に、本実施形態におけるDBトランザクション処理について、シーケンス図を用いて説明する。
<第1の実施例>
図5は、本実施形態におけるDBトランザクション処理の第1の実施例を示すシーケンス図である。図5の例においては、説明の便宜上、ユーザ端末11と、分散サーバ12と、2つのアプリケーションサーバ13−1,13−2を用いて説明するが、アプリケーションサーバの数等については、これに限定されるものではない。
図5の例では、予め定期的にアプリケーションサーバ13−1,13−2の稼働情報が分散サーバ12に入力されているものとする(S01,S02)。
ユーザ端末は、DBトランザクションの生成リクエストを生成し(S03)、通信ネットワーク15−1を介して分散サーバ12に送信する(S04)。次に、分散サーバ12は、リクエストを受信した時点において、アプリケーションサーバ13−1,13−2のそれぞれの稼働情報(例えば、CPU使用率、待機中のトランザクションの数(未処理件数))等に基づいて、リクエストの振り分け先を決定し(S05)、振り分け先にリクエスト情報を送信する(S06)。なお、図5の例では、アプリケーションサーバ13−1を振り分け先に決定した場合の処理を示す。
アプリケーションサーバ13−1は、分散サーバ12からのDBトランザクション生成リクエストに対してトランザクションIDを生成し(S07)、生成したトランザクションIDとDBトランザクションとを関連付けて保存する(S08)。また、アプリケーションサーバ13−1は、トランザクションIDを分散サーバ12に送信する(S09)。分散サーバ12は、取得したトランザクションIDをユーザ端末11に送信する(S10)。
ユーザ端末11は、DBトランザクションの処理内容を設定し(S11)、その内容(リクエスト)にトランザクションIDを付与して分散サーバ12に送信する(S12)。分散サーバ12は、リクエストに対して、S01、S02の処理で得られた稼働情報に基づいて振り分け先のアプリケーションサーバ13を決定し(S13)、決定したアプリケーションサーバ13にリクエストを送信する(S14)。なお、図5の例では、アプリケーションサーバ13−2を振り分け先とした場合の例を示す。
アプリケーションサーバ13−2は、受信したリクエストに対して処理対象判定を行う(S15)。処理判定では、リクエストに付加されたトランザクションIDが、自己で生成したトランザクションIDであるか否かを判断し、自己のトランザクションでない場合、対象のアプリケーションサーバ13−1に送信する(S16)。なお、図5の例では、説明の便宜上、処理対象判定の結果として、自己のトランザクションIDでない場合を示している。
アプリケーションサーバ13−1は、アプリケーションサーバ13−2からリクエストを受け取り、所定のタイミングでリクエストに対応するトランザクション処理を実行する(S17)。また、アプリケーションサーバ13−2は、実行結果をアプリケーションサーバ13−1に送信する(S18)。アプリケーションサーバ13−1は、実行結果をユーザ端末11に送信する(S19)。
<第2の実施例>
図6は、本実施形態におけるDBトランザクション処理の第2の実施例を示すシーケンス図である。図6の例においても、図5と同様にユーザ端末11と、分散サーバ12と、2つのアプリケーションサーバ13−1,13−2を用いて説明するが、アプリケーションサーバの数等については、これに限定されるものではない。
ここで、図6の例において、S21〜S33の処理は、図5に示すS01〜S13の処理と同様であるため、ここでの説明は省略する。
第2の実施例では、S33の分散サーバ12による振り分け処理において、トランザクション処理のリクエストの振り分け先をアプリケーションサーバ13−1に決定し(S33)、決定したアプリケーションサーバ13−1にリクエストを送信する(S34)。
アプリケーションサーバ13−1は、受信したリクエストに対して処理対象判定を行う(S35)。処理判定では、リクエストに付加されたトランザクションIDが、自己で生成したトランザクションIDであるか否かを判断し、自己のトランザクションであるため、所定のタイミングでリクエストに対応するトランザクション処理を実行する(S36)。また、アプリケーションサーバ13−1は、実行結果をユーザ端末11に送信する(S37)。
なお、上述した図5,図6の例では、S15,S25の処理において、アプリケーションサーバ13−1が割り振られているが、アプリケーションサーバ13−2が割り振られた場合にも、上述した図5,図6の例に示すように、処理対象判定が行われて、自己のトランザクションIDがリクエストに含まれている場合に、そのリクエスト処理を実行する。
上述した処理シーケンスにより、適切なトランザクション処理を実現することができる。また、本実施形態において、分散サーバ12は、従来の振り分け処理と、ユーザ端末11及びアプリケーションサーバ13間のデータの送受信のみを行うだけであるため、例えば分散サーバ12が外部機関が提供する装置であり、本実施形態に対する機種変更やバージョンアップ等を行うことができない状態であっても、既存の分散サーバのままで、本実施形態を実現することができる。
<DBトランザクション処理の具体例>
ここで、上述した本実施形態におけるDBトランザクション処理の具体例について、説明する。
ユーザ端末11は、DB14に対して何らかの処理を実行する場合、トランザクションの生成を行う。また、ユーザ端末11は、生成したトランザクションにて、以下のSQL(処理実行リクエスト)を実行するものとする。
「SELECT ZAIKO_COUNT FROM ITEM WHERE ITEM_ID=1 FOR UPDATE」(処理A)
また、生成したトランザクションにて、以下のSQLを実行するものとする。
「UPDATE ITEM SET ZAIKO_COUNT = 99 WHERE ITEM_ID=1」(処理B)
更に、ユーザ端末は、生成したトランザクションをコミットする(処理C)。ここで、アプリケーションサーバ13として、2つのアプリケーションサーバ13−1,13−2を有する場合、例えば以下のような順序で処理が行われる。
(1)アプリケーションサーバ13−1が、トランザクション生成リクエストを受け取る。アプリケーションサーバ13−1は、DB14とのトランザクションを生成し、それを表すID(トランザクションID)として「TX1」を割り当てる。また、アプリケーションサーバ13−1は、自己の装置を表す文字列(APP1)と、トランザクションIDとを、自己のテーブル(記憶手段33又はDB14)に保存する。また、アプリケーションサーバ13−1は、装置識別情報の文字列(APP1)と、トランザクションIDとを結合した「APP1_TX1」をユーザ端末11に送信する。なお、「APP1_TX1」は、装置の識別情報を含めたトランザクションIDと言い換えることもでき、トランザクションIDを含めた装置の識別情報と言い換えることもできる。
(2)次に、ユーザ端末11は、上述した「APP1_TX1」を取得し、トランザクションにてSQL(例えば、上述の処理A)を実行するリクエストに、取得した「APP1_TX1」を付加して、分散サーバ12に送信する。
ここで、分散サーバ12による振り分け処理により、上記のリクエストがアプリケーションサーバ13−2に割り当てられたとする。アプリケーションサーバ13−2は、リクエストに含まれる「APP1_」の部分を見てアプリケーションサーバ13−1の担当であると判断し、ユーザ端末11から受け取ったリクエストと同一のリクエストをアプリケーションサーバ13−1に送信する。
(3)アプリケーションサーバ13−1は、アプリケーションサーバ13−2から受け取ったリクエストに含まれる「APP1_」の部分を見て自分の処理対象のリクエストであると判断し、「TX1」を割り当てたトランザクションにてSQLを実行し、その結果をアプリケーションサーバ13−2に返す。
(4)その後、アプリケーションサーバ13−2は、アプリケーションサーバ13−1からのレスポンス(処理実行結果)をユーザ端末11へのレスポンスとして、分散サーバ12を介して、対象のユーザ端末11に送信する。
(5)次に、ユーザ端末11は、トランザクションにてSQL(例えば、上述の処理B)を実行するリクエストに「APP1_TX1」を付加して分散サーバ12に送信する。分散サーバ12による振り分け処理により、このリクエストを、例えばアプリケーションサーバ13−1が受け取ったとする。アプリケーションサーバ13−1は、リクエストに含まれる「APP1_」の部分を見て自分の担当であることを判断し、「TX1」を割り当てたトランザクションにてSQLを実行し、そのレスポンスを分散サーバ12を介してユーザ端末11に送信する。
(6)次に、ユーザ端末11は、トランザクションをコミットするリクエスト(例えば、上述の処理C)に、「APP1_TX1」を含めて分散サーバ12に送信する。分散サーバ12による振り分け処理により、このリクエストを、例えばアプリケーションサーバ13−2が受け取ったとする。この場合、上述した処理Aのときの処理と同様、アプリケーションサーバ13−2は、これがアプリケーションサーバ13−1の担当であると判断し、同じリクエストをアプリケーションサーバ13−1に送信する。アプリケーションサーバ13−1は「TX1」に割り当てたトランザクションをコミットし、その結果をアプリケーションサーバ13−2に送信する。その後、アプリケーションサーバ13−2は、アプリケーションサーバ13−1から受け取った結果(レスポンス)を分散サーバ12を介してユーザ端末11に送信する。なお、上述した処理Cにおいて、レスポンスの結果から処理A又は処理Bのトランザクションが正常に終了しなかった場合には、コミットではなく、ロールバックする処理を行ってもよい。
上述した処理により、コミット又はロールバックするまでの一連のトランザクション処理を、1つのアプリケーションサーバ内で処理することができる。したがって、複数のアプリケーションサーバを用いた場合であっても適切なトランザクション処理を実現することができる。
<アプリケーションサーバ13又はDB14内で管理されるテーブル例(データ例)>
次に、アプリケーションサーバ13又はDB14に保存して、管理されるテーブル例(データ例)について、図を用いて説明する。図7は、アプリケーションサーバ又はDB内で管理されるテーブルの一例を示す図である。図7の例において、アプリケーションサーバ13又はDB14内で管理されるテーブルの項目としては、例えば「装置ID」、「トランザクションID」、「処理番号」、「フラグ」等であるがこれに限定されるものではない。
「装置ID」は、上述したアプリケーションサーバ13を識別するための識別情報である。「トランザクションID」は、トランザクションを識別するための識別情報である。「処理番号」は、複数のトランザクションを所定の順序で行う場合、処理番号を含めて管理するための情報である。番号順に処理を行うことで、所望する順序で複数のトランザクション処理を実行することができる。
「フラグ」は、対象のトランザクション処理を実行したか否かを判別するための情報である。図6の例では、処理済みのトランザクション処理の場合には「1」をセットし、未処理の場合には、「0」を設定する。これにより、処理実行手段36は、連続するトランザクションにおいて、所定の順序で処理を行う場合に、後の処理リクエストが、先に担当のアプリケーションサーバ13に届く場合であっても、所定の順序で実行することができる。
上述した「処理番号」は、ユーザ端末11で付与されるため、分散サーバ12は、従来通りの処理を行えばよく、分散サーバ12の処理負担が増加することはない。
なお、上述したテーブル例においては、「処理番号」、「フラグ」の項目を有していなくてもよい。
<他の実施形態>
上述したトランザクション処理は、DB14を対象にしているが、本実施形態では、これに限定されるものではない。例えば、DBトランザクションに限らず、特定のサーバでしかアクセスできないリソース(例えば、ファイル)に関するリクエストを処理したい場合等にも適用することができる。
上述の例の場合には、DBトランザクション処理の場合と同様の構成を適用してアプリケーションサーバを特定して処理を実行することができる。この場合、ユーザ端末11の識別情報要求手段24は、トランザクション生成処理の代わりにリソースID生成処理のリクエストを行う。分散サーバ12は、振り分け先のアプリケーションサーバ13にそのリクエストを送信し、アプリケーションサーバ13上において、そのアプリケーションサーバ13でしかアクセスできないリソースを生成した際に、そのリソースを特定するIDを発行する。その際、トランザクションIDと同様の方法で、該当サーバを特定する情報(例えば、端末ID等)をリソースIDに含めておく。
なお、リソースIDは、例えばユーザ端末11へのレスポンスに含めてもよく、アプリケーションサーバ13がユーザ端末11を呼び出す際の引数に含めてもよいが、これに限定されるものではない。
これにより、ユーザ端末は、リソースIDをリクエストに付加して送信することで、各アプリケーションサーバ13は、自己が担当するリソースに対する処理を受信した場合に、リソースIDを元に該当リソースを特定し、対応する処理を行い、その結果をユーザ端末11に送信することができる。
<まとめ>
上述したように、本発明によれば、複数の情報処理装置を用いた場合であっても適切なトランザクション処理(例えば、DBに対するトランザクション処理又はリソースに対する処理を含む)を実現することができる。また、上述した本実施形態によれば、既存の分散サーバ12やDB14のプログラムは修正せずに、アプリケーションサーバ13の機能を追加することで、適切なトランザクション処理を実現することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。また、上述した実施形態で述べたフローチャートは、矛盾の無い限り順序を入れ替えてもよい。また、上述した実施形態の全部又は一部を組み合わせることができる。
10 情報処理システム
11 ユーザ端末(情報処理装置の一例)
12 分散サーバ(中継装置の一例)
13 アプリケーションサーバ(情報処理装置の一例)
14 DB
15 通信ネットワーク
21,31 入力手段
22,32 出力手段
23,33 記憶手段
24 識別情報要求手段
25 識別情報取得手段
26 処理要求手段
27 処理結果取得手段
28,37 通信手段
29,38 制御手段
34 識別情報生成手段
35 処理対象判定手段
36 処理実行手段
41 入力装置
42 出力装置
43 ドライブ装置
44 補助記憶装置
45 主記憶装置
46 CPU
47 通信制御装置
48 記録媒体

Claims (8)

  1. ユーザ端末と、該ユーザ端末からの処理実行リクエストに対する処理を実行する複数の情報処理装置と、前記複数の情報処理装置に対して前記処理実行リクエストを振り分けて前記処理を分散させる中継装置とを有する情報処理システムにおいて、
    前記ユーザ端末は、
    前記複数の情報処理装置に対して前記処理実行リクエストを実行する情報処理装置の識別情報の生成リクエストを前記中継装置に送信する識別情報要求手段と、
    前記識別情報要求手段により得られる前記識別情報を前記処理実行リクエストに付加して前記中継装置に送信する処理要求手段とを有し、
    前記情報処理装置は、
    前記中継装置から前記生成リクエストを受信した際、自己の識別情報と処理識別情報とを生成する識別情報生成手段と、
    前記中継装置から前記処理実行リクエストを受信した際、前記処理実行リクエストに含まれる識別情報が、自己の識別情報であるか否かを判定する処理対象判定手段と、
    前記処理対象判定手段による判定結果、前記自己の識別情報でない場合に、対象の情報処理装置に前記処理実行リクエストを送信する処理実行手段とを有することを特徴とする情報処理システム。
  2. 前記処理実行手段は、
    前記対象の情報処理装置からの実行結果を取得し、取得した結果を前記中継装置を介して前記ユーザ端末に送信することを特徴とする請求項1に記載の情報処理システム。
  3. 前記処理実行手段は、
    前記処理対象判定手段による判定結果、前記自己の識別情報である場合に、前記処理実行リクエストを実行することを特徴とする請求項1又は2に記載の情報処理システム。
  4. 前記処理要求手段は、前記処理実行リクエストに処理番号を付加して送信し、
    前記処理実行手段は、前記処理番号に対応させた順序で、前記処理実行リクエストを実行することを特徴とする請求項1乃至3の何れか1項に記載の情報処理システム。
  5. 前記処理実行リクエストは、
    データベースに対するトランザクション処理又はリソースに対する処理を含むことを特徴とする請求項1乃至4の何れか1項に記載の情報処理システム。
  6. 中継装置から得られるユーザ端末からの処理実行リクエストに対する処理を実行する情報処理装置において、
    前記中継装置から自己の識別情報の生成リクエストを受信した場合に、自己の識別情報と処理識別情報とを生成する識別情報生成手段と、
    前記中継装置から前記処理実行リクエストを受信した際、前記処理実行リクエストに含まれる識別情報が、自己の識別情報であるか否かを判定する処理対象判定手段と、
    前記処理対象判定手段による判定結果、前記自己の識別情報でない場合に、対象の情報処理装置に前記処理実行リクエストを送信する処理実行手段とを有することを特徴とする情報処理装置。
  7. 中継装置から得られるユーザ端末からの処理実行リクエストに対する処理を実行する情報処理装置における処理制御方法において、
    前記中継装置から自己の識別情報の生成リクエストを受信した場合に、自己の識別情報と処理識別情報とを生成する識別情報生成ステップと、
    前記中継装置から前記処理実行リクエストを受信した際、前記処理実行リクエストに含まれる識別情報が、自己の識別情報であるか否かを判定する処理対象判定ステップと、
    前記処理対象判定ステップによる判定結果、前記自己の識別情報でない場合に、対象の情報処理装置に前記処理実行リクエストを送信する処理実行ステップとを有することを特徴とする処理制御方法。
  8. 中継装置から得られるユーザ端末からの処理実行リクエストに対する処理を実行する処理制御プログラムにおいて、
    コンピュータを、
    前記中継装置から自己の識別情報の生成リクエストを受信した場合に、自己の識別情報と処理識別情報とを生成する識別情報生成手段、
    前記中継装置から前記処理実行リクエストを受信した際、前記処理実行リクエストに含まれる識別情報が、自己の識別情報であるか否かを判定する処理対象判定手段、及び、
    前記処理対象判定手段による判定結果、前記自己の識別情報でない場合に、対象の情報処理装置に前記処理実行リクエストを送信する処理実行手段として機能させるための処理制御プログラム。
JP2015254619A 2015-12-25 2015-12-25 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム Active JP6563807B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015254619A JP6563807B2 (ja) 2015-12-25 2015-12-25 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015254619A JP6563807B2 (ja) 2015-12-25 2015-12-25 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム

Publications (2)

Publication Number Publication Date
JP2017117355A JP2017117355A (ja) 2017-06-29
JP6563807B2 true JP6563807B2 (ja) 2019-08-21

Family

ID=59234533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015254619A Active JP6563807B2 (ja) 2015-12-25 2015-12-25 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム

Country Status (1)

Country Link
JP (1) JP6563807B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162846B (zh) 2020-11-27 2021-04-09 腾讯科技(深圳)有限公司 事务处理方法、设备及计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4208556B2 (ja) * 2002-11-27 2009-01-14 富士通株式会社 中継装置
WO2009034994A1 (ja) * 2007-09-13 2009-03-19 Nec Corporation 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム
JP5458688B2 (ja) * 2009-03-19 2014-04-02 富士通株式会社 一意性保証支援プログラム、サービス提供システム、及び一意性保証実現方法
JP5338555B2 (ja) * 2009-08-11 2013-11-13 富士通株式会社 負荷分散装置、負荷分散方法および負荷分散プログラム
JP6204256B2 (ja) * 2014-04-23 2017-09-27 日本電信電話株式会社 分散処理システム、分散データ管理装置および分散データ管理方法
WO2016104537A1 (ja) * 2014-12-24 2016-06-30 エヌ・ティ・ティ・コミュニケーションズ株式会社 負荷分散装置、負荷分散方法及びプログラム

Also Published As

Publication number Publication date
JP2017117355A (ja) 2017-06-29

Similar Documents

Publication Publication Date Title
US11829742B2 (en) Container-based server environments
US11032140B2 (en) Using a template to update a stack of resources
US10491700B2 (en) Application managed service instances
US9348709B2 (en) Managing nodes in a distributed computing environment
US20190034460A1 (en) Co-locating Microservice Persistence Containers within Tenant-Specific Database
US11463509B2 (en) Rolling capacity upgrade control
TW201229795A (en) Web service patterns for globally distributed service fabric
US10832309B2 (en) Inventory data model for large scale flash sales
US10838798B2 (en) Processing system for performing predictive error resolution and dynamic system configuration control
WO2018035799A1 (zh) 数据查询方法、应用和数据库服务器、中间件及系统
US20190187968A1 (en) Distribution and execution of instructions in a distributed computing environment
JP2016508349A (ja) クラスタ境界にわたるサービス移行
US10558449B2 (en) Distribution and execution of instructions in a distributed computing environment
CN106302640A (zh) 数据请求处理方法及装置
US8930518B2 (en) Processing of write requests in application server clusters
US20220382601A1 (en) Configuration map based sharding for containers in a machine learning serving infrastructure
US11275601B2 (en) System and method for auto recovery of deleted virtual machines identified through comparison of virtual machine management application snapshots and having corresponding backups at a storage device
US20200012520A1 (en) Methods for scheduling multiple batches of concurrent jobs
WO2018188607A1 (zh) 流处理方法及装置
JP6563807B2 (ja) 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム
US9600271B2 (en) System, method, and computer-readable medium
JP2017515236A (ja) ハードディスクがアプリケーションコードを実行するための方法および装置
JP2017123040A (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
US12081625B2 (en) Session based data persistency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190725

R150 Certificate of patent or registration of utility model

Ref document number: 6563807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250