(57)【特許請求の範囲】
【請求項１】
クライアントからのトランザクションの要求信号を処理する処理サーバが複数台存在し、それらの前記処理サーバに対して前記要求信号を分散させる分散処理装置であって、
前記分散処理装置は、複数台の前記処理サーバと、その各前記処理サーバに対してそれぞれトランザクションデータを格納するデータ管理装置と、複数台の前記処理サーバから前記要求信号の分配先である１台の前記処理サーバを選択する振り分けサーバとを含めて構成され、
前記分散処理装置の記憶手段には、
グループ化された複数の関連するトランザクションと、それらのトランザクションのデータの配置先を示す配置ＩＤとの対応を示す第１対応データと、
前記配置ＩＤに対応するデータの配置先である前記データ管理装置に接続される前記処理サーバの装置ＩＤと前記配置ＩＤとの対応を示す第２対応データとが、それぞれ格納されており、
前記振り分けサーバは、受信した前記要求信号から、前記配置ＩＤを検索キーとして、前記第２対応データから、対応する前記処理サーバの前記装置ＩＤを前記要求信号の分配先として特定し、その特定した前記処理サーバへと前記要求信号を転送し、
前記処理サーバは、前記要求信号を受信してトランザクションの処理を実行し、その実行によってグループ化された複数の関連するトランザクションの構成変更を行うときに、前記第１対応データによって対応づけられている前記配置ＩＤとトランザクションとの対応関係を変更するともに、変更された前記対応関係の配置ＩＤから前記第２対応データによって対応づけられている前記処理サーバに接続される前記データ管理装置へと、変更前の前記処理サーバに接続される前記データ管理装置から、トランザクションのデータを移動することを特徴とする
分散処理装置。
【請求項２】
前記複数の関連するトランザクションとは、ＳＩＰ（Session Initiation Protocol）におけるＢ２ＢＵＡ（Back-to-Back User Agent）によって終端される複数の前記クライアント間の呼接続であり、
前記トランザクションの構成変更とは、前記呼接続によって前記クライアント間での通話処理が行われているときの、前記クライアントの話者変更であることを特徴とする
請求項１に記載の分散処理装置。
【請求項３】
前記処理サーバは、前記要求信号を受信してトランザクションの処理を実行し、その実行によって自身に接続されている前記データ管理装置とは別の前記データ管理装置内のデータへのアクセスを行うときに、前記配置ＩＤをキーとして、前記分散処理装置の記憶手段から対応する前記処理サーバを特定し、その特定した前記処理サーバに接続されている前記データ管理装置に対して、前記データへのアクセスを行うことを特徴とする
請求項１または請求項２に記載の分散処理装置。
【請求項４】
前記分散処理装置の記憶手段には、前記第２対応データとして、前記配置ＩＤの始点から終点までの範囲を示す値域に対して、１つの前記装置ＩＤを対応づける値域対応データが格納されており、
前記分散処理装置内に新たな前記処理サーバが追加されるときには、前記値域対応データのうちの１つの値域を選択して、その選択した前記値域対応データの値域を分割して、分割した片方の値域を新たな前記処理サーバの前記装置ＩＤに対応付け、
前記分散処理装置内から前記処理サーバが削除されるときには、前記値域対応データのうちの削除される前記処理サーバに対応する値域を選択して、その選択した前記値域対応データの値域を他の前記処理サーバの値域へと統合することを特徴とする
請求項１ないし請求項３のいずれか１項に記載の分散処理装置。
【請求項５】
クライアントからのトランザクションの要求信号を処理する処理サーバが複数台存在し、それらの前記処理サーバに対して前記要求信号を分散させる分散処理装置による分散処理方法であって、
前記分散処理装置は、複数台の前記処理サーバと、その各前記処理サーバに対してそれぞれトランザクションデータを格納するデータ管理装置と、複数台の前記処理サーバから前記要求信号の分配先である１台の前記処理サーバを選択する振り分けサーバとを含めて構成され、
前記分散処理装置の記憶手段には、
グループ化された複数の関連するトランザクションと、それらのトランザクションのデータの配置先を示す配置ＩＤとの対応を示す第１対応データと、
前記配置ＩＤに対応するデータの配置先である前記データ管理装置に接続される前記処理サーバの装置ＩＤと前記配置ＩＤとの対応を示す第２対応データとが、それぞれ格納されており、
前記振り分けサーバは、受信した前記要求信号から、前記配置ＩＤを検索キーとして、前記第２対応データから、対応する前記処理サーバの前記装置ＩＤを前記要求信号の分配先として特定し、その特定した前記処理サーバへと前記要求信号を転送し、
前記処理サーバは、前記要求信号を受信してトランザクションの処理を実行し、その実行によってグループ化された複数の関連するトランザクションの構成変更を行うときに、前記第１対応データによって対応づけられている前記配置ＩＤとトランザクションとの対応関係を変更するともに、変更された前記対応関係の配置ＩＤから前記第２対応データによって対応づけられている前記処理サーバに接続される前記データ管理装置へと、変更前の前記処理サーバに接続される前記データ管理装置から、トランザクションのデータを移動することを特徴とする
分散処理方法。
【請求項６】
前記複数の関連するトランザクションとは、ＳＩＰ（Session Initiation Protocol）におけるＢ２ＢＵＡ（Back-to-Back User Agent）によって終端される複数の前記クライアント間の呼接続であり、
前記トランザクションの構成変更とは、前記呼接続によって前記クライアント間での通話処理が行われているときの、前記クライアントの話者変更であることを特徴とする
請求項５に記載の分散処理方法。
【請求項７】
前記処理サーバは、前記要求信号を受信してトランザクションの処理を実行し、その実行によって自身に接続されている前記データ管理装置とは別の前記データ管理装置内のデータへのアクセスを行うときに、前記配置ＩＤをキーとして、前記分散処理装置の記憶手段から対応する前記処理サーバを特定し、その特定した前記処理サーバに接続されている前記データ管理装置に対して、前記データへのアクセスを行うことを特徴とする
請求項５または請求項６に記載の分散処理方法。
【請求項８】
前記分散処理装置の記憶手段には、前記配置ＩＤと前記装置ＩＤとの対応情報として、前記配置ＩＤの始点から終点までの範囲を示す値域に対して、１つの前記装置ＩＤを対応づける値域対応データが格納されており、
前記分散処理装置内に新たな前記処理サーバが追加されるときには、前記値域対応データのうちの１つの値域を選択して、その選択した前記値域対応データの値域を分割して、分割した片方の値域を新たな前記処理サーバの前記装置ＩＤに対応付け、
前記分散処理装置内から前記処理サーバが削除されるときには、前記値域対応データのうちの削除される前記処理サーバに対応する値域を選択して、その選択した前記値域対応データの値域を他の前記処理サーバの値域へと統合することを特徴とする
請求項５ないし請求項７のいずれか１項に記載の分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理装置、および、分散処理方法の技術に関する。
【背景技術】
【０００２】
トランザクション処理システムでは、クライアントから処理サーバへとトランザクションの要求が送信されると、処理サーバがその処理を行い、その結果を応答信号としてクライアントへと返信する。そして、複数の処理サーバが協調して動作する分散処理システムとすることで、クライアントの台数増加に対応する。そして、分散処理システムのロードバランサは、クライアントからそれぞれ発行される要求に対して、単一の出入り口として受け付けると、それらの要求を複数の処理サーバにそれぞれ分配する。
【０００３】
ロードバランサが要求された処理を振り分ける手法としては、コンシステント・ハッシングを挙げることができる（非特許文献１）。コンシステント・ハッシングは、データの保管要求と取得要求のみを受け付ける単純なインタフェースを持ち、受信した信号の要求するデータの識別子を見て、複数のサーバのうち何れのサーバが対象のデータを管理しているかを特定し、このサーバに対して保管要求及び取得要求を振り分けることを行う。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】D. Karger, E. Lehman, T. Leighton, M. Levine, D. Lewin, and R. Panigrahy, “Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web,” in Proceedings of the 29th ACM Symposium on Theory of Computing (STOC'97), May 1997 ,pp.654-663.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
トランザクション処理システムが扱うトランザクションとして、複数のトランザクション状態間が関連する場合も考えられる。ここで、トランザクション間が「関連する」とは、例えばＳＩＰ（Session Initiation Protocol）におけるＢ２ＢＵＡ（Back-to-Back User Agent）のように、２つの呼をアプリケーションサーバが終端し、これを常に対として処理を行うような形態を指す。
【０００６】
なお、Ｂ２ＢＵＡとは、２台のクライアント間でＳＩＰのセッションを接続するときに、対応しているＳＩＰの方式の違いなどにより、その２台が直接接続できないときに、その２台のセッションを仲介する別の装置（Ｂ２ＢＵＡ）を設けることにより、Ｂ２ＢＵＡをアダプタとして２台のクライアントがセッションを接続できるようにする仕組みである。
【０００７】
そこで、関連する複数のトランザクションを同じ１つの処理サーバへと分配することにより、複数のトランザクション間での処理の待ち合わせ時間を短縮することができる。
一方、複数のトランザクション間の関連性は、時間の経過によって変化することもある。例えば、Ｂ２ＢＵＡ接続によるユーザＡとユーザＢとによる二者通話と、ユーザＣとユーザＤとによる二者通話が成立していた場合に、呼を切断することなく、それぞれＡ−Ｃ、Ｂ−Ｄ間の二者通話に入れ替える場合が、挙げられる。
しかし、従来のトランザクション分配処理では、このような複数のトランザクション間の関連性を考慮した効率的な分配が行われておらず、トランザクションの処理効率を落としてしまっている。
【０００８】
そこで、本発明は、複数のトランザクション間の関連性を考慮した効率的なトランザクション分配処理を実現することを、主な目的とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、クライアントからのトランザクションの要求信号を処理する処理サーバが複数台存在し、それらの前記処理サーバに対して前記要求信号を分散させる分散処理装置であって、前記分散処理装置が、複数台の前記処理サーバと、その各前記処理サーバに対してそれぞれトランザクションデータを格納するデータ管理装置と、複数台の前記処理サーバから前記要求信号の分配先である１台の前記処理サーバを選択する振り分けサーバとを含めて構成され、前記分散処理装置の記憶手段には、グループ化された複数の関連するトランザクションと、それらのトランザクションのデータの配置先を示す配置ＩＤとの対応を示す第１対応データと、前記配置ＩＤに対応するデータの配置先である前記データ管理装置に接続される前記処理サーバの装置ＩＤと前記配置ＩＤとの対応を示す第２対応データとが、それぞれ格納されており、前記振り分けサーバは、受信した前記要求信号から、前記配置ＩＤを検索キーとして、前記第２対応データから、対応する前記処理サーバの前記装置ＩＤを前記要求信号の分配先として特定し、その特定した前記処理サーバへと前記要求信号を転送し、前記処理サーバは、前記要求信号を受信してトランザクションの処理を実行し、その実行によってグループ化された複数の関連するトランザクションの構成変更を行うときに、前記第１対応データによって対応づけられている前記配置ＩＤとトランザクションとの対応関係を変更するともに、変更された前記対応関係の配置ＩＤから前記第２対応データによって対応づけられている前記処理サーバに接続される前記データ管理装置へと、変更前の前記処理サーバに接続される前記データ管理装置から、トランザクションのデータを移動することを特徴とする。
【００１０】
これにより、複数の関連するトランザクションを単位として１つの配置ＩＤを割り当てるとともに、その複数の関連するトランザクションの構成変更を行うことで、複数のトランザクション間の関連性を考慮した効率的なトランザクション分配処理を実現することができる。
【００１１】
本発明は、前記複数の関連するトランザクションとは、ＳＩＰ（Session Initiation Protocol）におけるＢ２ＢＵＡ（Back-to-Back User Agent）によって終端される複数の前記クライアント間の呼接続であり、前記トランザクションの構成変更とは、前記呼接続によって前記クライアント間での通話処理が行われているときの、前記クライアントの話者変更であることを特徴とする。
【００１２】
これにより、呼を切断することなく、二者通話の通話相手をに入れ替えることができる。
【００１３】
本発明は、前記処理サーバが、前記要求信号を受信してトランザクションの処理を実行し、その実行によって自身に接続されている前記データ管理装置とは別の前記データ管理装置内のデータへのアクセスを行うときに、前記配置ＩＤをキーとして、前記分散処理装置の記憶手段から対応する前記処理サーバを特定し、その特定した前記処理サーバに接続されている前記データ管理装置に対して、前記データへのアクセスを行うことを特徴とする。
【００１４】
これにより、処理サーバは、自身が担当していないデータへのアクセスを実現できる。
【００１５】
本発明は、前記分散処理装置の記憶手段には、前記配置ＩＤと前記装置ＩＤとの対応情報として、前記配置ＩＤの始点から終点までの範囲を示す値域に対して、１つの前記装置ＩＤを対応づける値域対応データが格納されており、前記分散処理装置内に新たな前記処理サーバが追加されるときには、前記値域対応データのうちの１つの前記装置ＩＤを選択して、その選択した前記値域対応データの値域を分割して、分割した片方の値域を新たな前記処理サーバの前記装置ＩＤに対応付け、前記分散処理装置内から前記処理サーバが削除されるときには、前記値域対応データのうちの削除される前記処理サーバの前記装置ＩＤを選択して、その選択した前記値域対応データの値域を他の前記処理サーバの値域へと統合することを特徴とする。
【００１６】
これにより、処理サーバの増設を行っても、処理サーバ間でのアクセス処理待ちなどのボトルネックが発生せず、トランザクション処理システムの性能を向上させることができる。
【発明の効果】
【００１７】
本発明によれば、複数のトランザクション間の関連性を考慮した効率的なトランザクション分配処理を実現することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に関するトランザクション処理システムを示す構成図である。
【図２】本発明の一実施形態に関するトランザクション処理システムにおける装置構成例を示す構成図である。
【図３】本発明の一実施形態に関するトランザクション処理システムの各サーバの詳細を示す構成図である。
【図４】本発明の一実施形態に関する振り分けサーバにおけるトランザクションの振り分け処理を示すフローチャートである。
【図５】本発明の一実施形態に関する処理サーバにおけるトランザクションの実行処理を示すフローチャートである。
【図６】第１比較例におけるトランザクション処理システムを示す構成図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【００２０】
図１は、トランザクション処理システムを示す構成図である。トランザクション処理システムは、クライアント１と、ロードバランサ２と、分散システム９とがネットワークで接続されて構成される。分散システム９内は、振り分けサーバ４と、処理サーバ５と、データ管理装置６とから構成されている。図１のトランザクション処理システムを構成する各装置の台数は、図１に例示した台数に限定されず、任意の台数としてもよい。
【００２１】
なお、図１のトランザクション処理システムを構成する各装置は、ＣＰＵ（Central Processing Unit）とメモリとハードディスク（記憶手段）とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
【００２２】
トランザクション処理システムで動作するプログラムの一例として、電話などの呼（セッション）処理を行うアプリケーションサーバを実現するための、分散処理ミドルウェアがある。分散処理ミドルウェアは、アプリケーションを分散処理ミドルウェアとは別に用意するもので、アプリケーションからは装置が分散していることを意識することなくサービスの処理を実現することができるようにするものである。このような分散処理ミドルウェアを使うことによって、外部からは単一のアプリケーションサーバのように見せながら、実態は複数台のサーバによる台数効果によって大規模な処理を行うことが可能になる。
【００２３】
クライアント１は、処理サーバ５に対して、トランザクションの処理を要求する。ロードバランサ２は、クライアント１からの要求を受け、分散システム９内の複数台の振り分けサーバ４のうちの１台を選択し、その選択した振り分けサーバ４に処理を依頼する。
ここで、クライアント１からは、ロードバランサ２という出入り口を介して、分散システム９があたかも単一の装置で動作するシステムとして見えるため、分散システム９内の装置構成を柔軟に変更する（装置の追加や削除など）ことができる。
【００２４】
振り分けサーバ４は、ロードバランサ２からの要求を受け、複数台の処理サーバ５のうちの１台を選択し、その選択した処理サーバ５に処理を依頼する。ここで、処理サーバ５の選択処理においては、データ管理装置６内に管理されているトランザクションのデータの所在が参照される。まず、処理サーバ５とデータ管理装置６とは１：１で接続されており、あるトランザクションのデータは、ある１台のデータ管理装置６が格納している。よって、要求されたトランザクションのデータを管理するデータ管理装置６を収容する処理サーバ５を、振り分けサーバ４が選択する必要がある。
処理サーバ５は、振り分けサーバ４からの要求を受け、データ管理装置６内のトランザクションのデータにアクセスすることで、トランザクションの要求を処理する。
【００２５】
図２は、トランザクション処理システムにおける装置構成例を示す構成図である。図１との違いは、分散システム９内の各装置（振り分けサーバ４、処理サーバ５、および、データ管理装置６）が、１台のサーバ装置８の筐体内に収容されている点である。
一般的に、装置間通信（ネットワークケーブルを介した通信）は、通信ヘッダ処理などにより、装置内通信（内部バスを介した通信）よりも通信速度が遅い。よって、通信頻度の高い装置群をサーバ装置８（分散処理装置）という１台の物理的な装置内に収めることにより、装置内通信の頻度を上げ、通信効率を向上させることができる。
【００２６】
図３は、トランザクション処理システムの各サーバの詳細を示す構成図である。
振り分けサーバ４は、トランザクション分散部４１と、データ配置テーブル４２（第２対応データ）と、配置検索部４３とを有する。
処理サーバ５は、トランザクション処理部５１と、配置ＩＤ割当部５２と、集合変更部５３と、他管理データ取得部５４と、トランザクション管理テーブル５５（第１対応データ）とを有する。
【００２７】
トランザクション分散部４１は、データ配置テーブル４２を参照して、ロードバランサ２からのトランザクションの要求を処理する処理サーバ５を決定し、その処理サーバ５のトランザクション処理部５１へと要求を送信する。
トランザクション処理部５１は、トランザクションの要求を受け、データ管理装置６内のトランザクションのデータをアクセスして、トランザクションの要求を処理する。
【００２８】
トランザクション処理部５１は、トランザクションの要求を処理する過程において、データ管理装置６内のトランザクションのデータの配置に変更（新規データ作成、既存データ移動、既存データ削除など）が発生したときには、配置ＩＤ割当部５２に対して、トランザクションのデータに対して割り当てる配置ＩＤの割当処理を依頼する。
トランザクション処理部５１は、トランザクションの要求を処理する過程において、トランザクションのデータと、配置ＩＤとの対応関係に変更が発生したときには、集合変更部５３に対して、その対応関係の変更処理を依頼する。
トランザクション処理部５１は、トランザクションの要求を処理する過程において、他装置の処理サーバ５配下のデータ管理装置６内にデータアクセスを行うときには、他管理データ取得部５４に対して、そのデータアクセスを依頼する。
【００２９】
【表１】
0005452516.tif 000002
【００３０】
表１は、データ配置テーブル４２を例示した表である。データ配置テーブル４２は、処理サーバ５のＩＤごとに、その処理サーバ５が担当する配置ＩＤの値域（始点ＩＤから終点ＩＤまでの範囲を示す）を対応づける表である。
処理サーバ５のＩＤは、担当する配置ＩＤの始点となる配置ＩＤと同じ値としてもよいし、ランダムな値としてもよい。
配置ＩＤとは、１つ以上のトランザクションのデータに対して割り当てられるＩＤであり、同じ配置ＩＤが割り当てられるトランザクションのデータは、同じ１つのデータ管理装置６内に格納される。例えば、配置ＩＤ「１００」が割り当てられるトランザクションのデータは、処理サーバ５「Ｐ１」配下のデータ管理装置６に格納される。
トランザクションのデータとは、トランザクションを処理するときに必要なデータであり、例えば、呼処理における呼の識別子、発信者、受信者、状態遷移を含む。
トランザクションの状態遷移とは、話し中、呼び出し中などの呼の状態を示すパラメータである。
【００３１】
データ配置テーブル４２内の処理サーバＩＤと配置ＩＤとの対応データの初期値は、管理者などからあらかじめ与えられている。配置ＩＤの値域は、各処理サーバ５間で重複や漏れがないように設定することで、任意の配置ＩＤから１台の処理サーバ５を求めることができる。
また、データ配置テーブル４２内の配置ＩＤの値域は、まだどのトランザクションのデータにも割り当てられていない（未発行の）配置ＩＤの分も、あらかじめデータ配置テーブル４２に登録しておくことが望ましい。これにより、配置ＩＤの発行処理や削除処理の回数に依存せずに、データ配置テーブル４２を更新する必要がなくなる。
【００３２】
【表２】
0005452516.tif 000003
【００３３】
表２は、表１のデータ配置テーブル４２に対して、１台のサーバＰ５が追加されたときのデータ配置テーブル４２を例示した表である。
サーバＰ５の追加に伴い、既存の４台の処理サーバ５がそれぞれ担当している配置ＩＤの値域のうち、１つの配置ＩＤの値域を選択して、その選択した値域を分割してサーバＰ５にも割り当てる。
表２では、分割前の各処理サーバが受け持っているデータ量の内、最も大きいデータ量（Ｄ＝４００）を担当するサーバＰ４の値域（６００〜９９９）を選択し、その選択した分割前の値域を２分割する（６００〜７９９，８００〜９９９）。これにより、処理サーバごとのデータ量が均一化される。
同様に、処理サーバの減少時（例えば、処理サーバＰ３の故障発生）には、減少対象の処理サーバＰ３が受け持っている値域（４００〜５９９）の前後を担当する担当処理サーバ（Ｐ２，Ｐ４）を選択し、その選択した２台のうちの現在受け持っているデータ量が小さい方の処理サーバ（表２の場合はデータ量が同じなので、Ｐ２）に、減少対象の担当処理サーバが担当する値域を統合する（２００〜５９９）。
【００３４】
このように、データ配置テーブル４２に対する処理サーバ５の増減時にはデータ配置テーブル４２の更新が必要になるが、その更新範囲である配置ＩＤの値域の変更量は、１台分の処理サーバ５の担当量だけで済む。例えば、処理サーバ５が５台に増加したときには、１／５の変更量で済み、処理サーバ５がＮ台に増加したときには、１／Ｎの変更量で済む。
担当する処理サーバ５の変更には、その処理サーバ５が収容するデータ管理装置６内のデータの移動を伴うので、データ配置テーブル４２の変更量が少ないことにより、データ移動処理の負荷を削減することができる。
【００３５】
トランザクション分散部４１は、ロードバランサ２からトランザクションの処理要求を受け付けると、その配置ＩＤを検索キーとして、データ配置テーブル４２から、トランザクションの処理要求を担当する処理サーバ５を決定する。なお、トランザクションの処理要求に配置ＩＤが含まれていないときには、そのトランザクションＩＤを検索キーとして、後記するトランザクション管理テーブル５５（表３）から配置ＩＤを取得してもよい。
つまり、トランザクション分散部４１は、コンシステント・ハッシングのデータ管理者の特定と類似したロジックを用いることで、データ管理者の代わりに処理サーバ５の特定を行う。
そして、トランザクション分散部４１は、決定した処理サーバ５のトランザクション処理部５１に対して、トランザクションの処理要求を通知する。
【００３６】
配置ＩＤ割当部５２は、１つ以上のトランザクションに対して、１つの配置ＩＤを割り当て、その結果をトランザクション管理テーブル５５へと格納する。なお、複数のトランザクションをグループ化して１つの配置ＩＤを割り当てるときには、同じ配置ＩＤが割り当てられた複数のトランザクションは、互いに関連するトランザクションである。「関連するトランザクション」とは、例えば、Ｂ２ＢＵＡにより接続される２つの呼処理が挙げられるが、トランザクションの種類は呼処理に限定されず、また、トランザクションの本数は２つに限定されない。
【００３７】
【表３】
0005452516.tif 000004
【００３８】
表３は、トランザクション管理テーブル５５を例示した表である。トランザクション管理テーブル５５は、配置ＩＤごとに、その配置ＩＤが割り当てられている１つ以上のトランザクションのＩＤを対応づける表である。
例えば、配置ＩＤ「０」と配置ＩＤ「１」のレコードでは、それぞれＢ２ＢＵＡにより接続される２つのトランザクションがグループ化されて１つの配置ＩＤに対応する。
また、配置ＩＤ「２」のレコードでは、ＳＩＰにおけるＳＩＰプロキシに相当するような非常にシンプルな１つのトランザクション「Ｔ４」に対応する。
【００３９】
【表４】
0005452516.tif 000005
【００４０】
表４は、トランザクション管理テーブル５５（配置ＩＤ＝０，１の変更）を例示した表である。
集合変更部５３は、複数のトランザクション間の関連性がトランザクションの処理中で変更されるときに、その変更をトランザクション管理テーブル５５へと反映させるとともに、トランザクション管理テーブル５５の更新内容をもとに、データ管理装置６内のトランザクションのデータの移動処理を制御する。
【００４１】
集合変更部５３は、表４では、配置ＩＤ「０」のトランザクション「Ｔ０，Ｔ１」と、配置ＩＤ「１」のトランザクション「Ｔ２，Ｔ３」とが変更前であるときに、Ｔ１およびＴ２をそれぞれレコード間で移動することで、配置ＩＤ「０」のトランザクション「Ｔ０，Ｔ２」と、配置ＩＤ「１」のトランザクション「Ｔ１，Ｔ３」として、トランザクション管理テーブル５５を更新する。
なお、このようなトランザクション管理テーブル５５の更新処理は、例えば、Ｂ２ＢＵＡにおける話者の入れ替えに伴い発生する。
【００４２】
他管理データ取得部５４は、トランザクション処理部５１からの指示を受け、他の処理サーバ５が収容するデータ管理装置６へのデータアクセスを行う。なお、トランザクション処理部５１からの他装置で管理するデータの取得指示は、例えば、Ｂ２ＢＵＡにおける話者の入れ替えを行うにあたって、入れ替え先のＢ２ＢＵＡの各トランザクション状態が通話確立状態になっているか確認するなどの、別のＢ２ＢＵＡ状態へのアクセスが発生したときに、通知される。
【００４３】
まず、他管理データ取得部５４は、トランザクション処理部５１から通知された配置ＩＤを、配置検索部４３に通知することにより、振り分けサーバ４にその配置ＩＤを担当する処理サーバ５の特定を依頼する。
配置検索部４３は、データ配置テーブル４２を参照して、配置ＩＤから処理サーバ５を特定する。
他管理データ取得部５４は、特定された他装置である処理サーバ５に収容されるデータ管理装置６から、トランザクション処理部５１からの指示を受けたデータを取得する。これにより、複数台の処理サーバ５が１台のデータ管理装置６を直接共有（接続）していなくても、自身の担当しないデータを取得することができる。
【００４４】
図４は、振り分けサーバ４のトランザクション分散部４１が実行するトランザクションの振り分け処理を示すフローチャートである。
Ｓ１０１では、ロードバランサ２より信号を受信する。
Ｓ１０２では、Ｓ１０１の信号中に配置ＩＤが含まれているか否かを判定し、Ｓ１０２でＹｅｓならＳ１０４へ進み、Ｓ１０２でＮｏならＳ１０３へ進む。
Ｓ１０３では、配置ＩＤ割当部５２に対して、新たにＳ１０１の信号に割り当てる配置ＩＤの割当を依頼し、Ｓ１０４へ進む。
Ｓ１０４では、データ配置テーブル４２を参照して、Ｓ１０１の信号に割り当てられる配置ＩＤから、その配置ＩＤを担当する処理サーバ５を特定する。
Ｓ１０５では、Ｓ１０４で特定した処理サーバ５に対して、Ｓ１０１で受信した信号を転送する。
【００４５】
図５は、処理サーバ５におけるトランザクションの実行処理を示すフローチャートである。
【００４６】
Ｓ２０１では、処理サーバ５は、Ｓ１０５の信号を受信する。
Ｓ２０２では、トランザクション処理部５１は、適宜データ管理装置６に対して、Ｓ２０１の信号に対応するトランザクションのデータにアクセスを行いつつ、トランザクションの処理を実行する。
トランザクション処理部５１は、Ｓ２０２の処理中に他装置が管理するデータへのアクセスが発生したときには（Ｓ２０３，Ｙｅｓ）、他管理データ取得部５４を介して、他装置が管理するデータへのアクセスを実行し（Ｓ２０４）、Ｓ２０５へ進む。一方、アクセスが発生しないときには（Ｓ２０３，Ｎｏ）、Ｓ２０５へ進む。
【００４７】
トランザクション処理部５１は、Ｓ２０２の処理中にトランザクション管理テーブル５５内の１つの配置ＩＤが割り当てられているトランザクショングループを構成するトランザクションの変更が発生したときには（Ｓ２０５，Ｙｅｓ）、集合変更部５３を介して、トランザクション管理テーブル５５を更新する（Ｓ２０６）とともに、Ｓ２０１で受信した信号への応答信号に埋め込む配置ＩＤを、Ｓ２０６で変更後の配置ＩＤへと変更し（Ｓ２０７）、Ｓ２１１へ進む。一方、トランザクションの変更が発生しないときには（Ｓ２０５，Ｎｏ）、Ｓ２１１へ進む。
【００４８】
Ｓ２１１では、トランザクション処理部５１は、Ｓ２０２で実行されたトランザクションの処理を終了させる。
Ｓ２１２では、Ｓ２０２〜Ｓ２１１で処理した結果をもとに、Ｓ２０１の受信信号に対する応答信号を、クライアント１へと送信する。
【００４９】
以上説明した本実施形態によれば、集合変更部５３が、複数のトランザクション間の関連性の変更に伴って、トランザクションの分配をトランザクション管理テーブル５５に更新することにより、複数のトランザクション間の関連性を考慮した効率的なトランザクション分配処理を実現することができる。
【００５０】
さらに、本実施形態によれば、データ配置テーブル４２の変更処理をなるべく小さくするために、データ配置テーブル４２の内容を、処理サーバ５ごとの配置ＩＤの値域を割り当てるように構成する。以下、このデータ配置テーブル４２の構成内容による効果を説明するために、３つの比較例（第１比較例〜第３比較例）との比較を行う。
（第１比較例）データ配置テーブルを持たない構成。
（第２比較例）データ配置テーブルとして、使用される配置ＩＤが発行される度に、その配置ＩＤを処理サーバ５に対応づける構成。
（第３比較例）データ配置テーブルとして、配置ＩＤを入力パラメータとする剰余演算の結果の値を元に、処理サーバ５に対応づける構成。
【００５１】
図６は、第１比較例におけるトランザクション処理システムを示す構成図である。この第１比較例は、図１のトランザクション処理システムと比較すると、振り分けサーバ４を持たない点と、複数の処理サーバが１つのデータ管理装置を共有する点とで異なる。
【００５２】
ロードバランサは、トランザクションの要求を処理サーバに振り分けるときに、どの処理サーバに振り分けても、振り分け先の処理サーバが同じデータ管理装置からデータアクセスすることができるので、データ配置テーブル４２は不要になる。
【００５３】
しかし、データ管理装置を共有する構成では、複数の処理サーバ上で関連する複数のトランザクション処理が発生すると、それぞれ発生したデータアクセスを複数の処理サーバ間で待ち合わせる無駄な時間がボトルネックとして発生してしまい、処理サーバの台数を増加しても、トランザクション処理システム全体の性能向上は困難となる。
【００５４】
【表５】
0005452516.tif 000006
【００５５】
表５は、第２比較例のデータ配置テーブル（配置ＩＤごとの管理）を例示した表である。第２比較例の振り分けサーバは、表５の配置ＩＤごとのデータ配置テーブルを参照することで、トランザクションの分配先となる処理サーバを特定する。
しかし、配置ＩＤの数は、トランザクションの数であるため、データ配置テーブルのレコード数が多くなってしまうため、データ配置テーブルの更新処理がトランザクション処理システムのボトルネックとなってしまう。
【００５６】
【表６】
0005452516.tif 000007
【００５７】
表６は、第３比較例のデータ配置テーブル（剰余演算での管理）を例示した表である。関数「mod（ａ，ｂ）＝ｃ」とは、被除数ａを除数ｂで除算したときの剰余がｃである旨の剰余関数である。サーバＰ５の追加前において、例えば、配置ＩＤ＝１０の要求を受けた振り分けサーバは、１０÷４＝２余り２なので、余り２に対応するサーバＰ３を振り分け先として選択する。
しかし、第３比較例では、処理サーバの増減時に大きなボトルネックが発生してしまう。例えば、４台のサーバＰ１〜Ｐ４に対して、新たにサーバＰ５が追加されたとする。サーバ台数が、剰余演算における除数に該当するため、たった１台のサーバが追加されただけでも、データ配置テーブルの内容が大幅に（厳密にはＮを処理サーバ台数とした場合、全体の（Ｎ−１）／Ｎ）変更されてしまう。例えば、表６の構成では、Ｎ＝４からＮ＝５への変更に伴い、全体の４／５の内容がデータ配置テーブルにおいて変更される。
データ配置テーブルの変更処理だけでなく、その変更後のデータ配置テーブルの内容に合わせて、トランザクションのデータそのものを変更先へとデータ移動する必要があり、このデータ移動処理が第３比較例での大きなボトルネックである。
【００５８】
一方、本実施形態のデータ配置テーブル４２（表１，表２）では、配置ＩＤを値域で設定するとともに、処理サーバ５の台数変更時には、配置ＩＤの値域を変更（分割、統合）するだけで済むので、前記第１比較例〜第３比較例でそれぞれ発生したトランザクション処理システムのボトルネックが発生せず、処理サーバ５の台数増加に伴い、トランザクション処理システムの性能を向上させることができる。
【符号の説明】
【００５９】
１      クライアント
２      ロードバランサ
４      振り分けサーバ
５      処理サーバ
６      データ管理装置
８      サーバ装置
９      分散システム
４１    トランザクション分散部
４２    データ配置テーブル（第２対応データ）
４３    配置検索部
５１    トランザクション処理部
５２    配置ＩＤ割当部
５３    集合変更部
５４    他管理データ取得部
５５    トランザクション管理テーブル（第１対応データ）
【図１】
0005452516.tif 000008
【図２】
0005452516.tif 000009
【図３】
0005452516.tif 000010
【図４】
0005452516.tif 000011
【図５】
0005452516.tif 000012
【図６】
0005452516.tif 000013