JPWO2007088728A1 - 多層分散処理システム - Google Patents

多層分散処理システム Download PDF

Info

Publication number
JPWO2007088728A1
JPWO2007088728A1 JP2007556809A JP2007556809A JPWO2007088728A1 JP WO2007088728 A1 JPWO2007088728 A1 JP WO2007088728A1 JP 2007556809 A JP2007556809 A JP 2007556809A JP 2007556809 A JP2007556809 A JP 2007556809A JP WO2007088728 A1 JPWO2007088728 A1 JP WO2007088728A1
Authority
JP
Japan
Prior art keywords
node
layer
transaction
processing system
distributed processing
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
Application number
JP2007556809A
Other languages
English (en)
Inventor
慶捷 杜
慶捷 杜
中川 真也
真也 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JPWO2007088728A1 publication Critical patent/JPWO2007088728A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

トランザクションを分割して実行する複数層の独立性を容易に高めることを目的とする。ノード30は、分散トランザクション管理部により、下位層のノード30をトランザクションに対して割り当てる。また、ノード30は、下位層のノード30を所定のトランザクションに対して他の30とともに共有する。ただし、複数のノード30により共有されるノード30は、読み出し専用或いは機能の特性より書き込みも可能な共有のノードである。このように、ノード30それぞれは、新しいトランザクションを開始する場合に、利用されていないノード30を分散トランザクション管理部34によって下位層で探す。そして、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5は、それぞれのノード30がどのトランザクションに対して利用されているか、または利用されていないかを確認するとともに記憶する。

Description

本発明は、トランザクションを所定の複数の層に分割して実行する多層分散処理システムに関する。
背景技術
トランザクションを複数の層に分割して実行する多層分散処理システムが知られている。
この種の多層分散処理システムにおいて、トランザクションの各層を2相コミットプロトコルによって処理し、個々の層ごとのACID(Atomicity, Consistency, Isolation and Durability)を保証することにより、トランザクションの総体の原子性(Atomicity)を保証することは公知である(特許文献1参照)。
しかしながら、上記従来例においては、1つの層の処理に他の層の処理を挿入しなければならず、各層の独立性を高めることができないという問題があった。また、1つのトランザクションの期間が長い場合、リソースを維持するための記憶装置の必要量が多くなるとともに、データの更新などに対する管理および保守が困難になってしまう。
特開平10−69418号公報
本発明は、上述した背景からなされたものであり、トランザクションを分割して実行する複数層の独立性を容易に高めることができる多層分散処理システムを提供することを目的とする。
[多層分散処理システム]
上記目的を達成するために、本発明にかかる多層分散処理システムは、1つ以上のトランザクションを所定の複数の層に分割し、分割した層ごとにそれぞれ1つ以上設けられたノードの組み合わせにより、1つ以上のトランザクションをそれぞれ実行する多層分散処理システムであって、上位の層に属する上位ノードは、トランザクションに対する下位の層に属する下位ノードの実行状況を、監視する監視手段を有し、前記下位ノードは、自己の実行状況を前記上位ノードが監視できる監視可能化手段と、前記上位ノードへ前記監視可能化手段を介して実行状況に応じてサービスを提供する機能部とを有する。
好適には、前記上位ノードは、前記下位ノードを監視するための第1の通信手段を有し、前記下位ノードは、前記上位ノードに対してサービスを提供するための第2の通信手段を有する。
また、好適には、前記上位ノードは、前記下位ノードに固有な情報、および前記監視手段を介して監視した実行状況に基づいて、前記下位ノードを特定するノード特定手段を有し、特定された前記下位ノードは前記上位ノードにサービスを提供する。
また、好適には、前記下位ノードは、前記上位ノードの要求に応じて、前記下位ノードの前記機能部の属性および実行状況に応じて自己が特定されるための情報を送信する手段を有する。
また、好適には、前記下位ノードは、自己が特定されるための情報を記憶する記憶手段と、前記自己が特定されるための情報を動的に更新する更新手段とをさらに有する。
また、好適には、トランザクションに応じて1つ以上の前記機能部のバージョンを限定するバージョン限定手段と、前記バージョン限定手段が限定したバージョンの前記機能部を有する前記ノードを特定するように、前記ノード特定手段を制御する制御手段とをさらに有する。
また、好適には、互いにバージョンが異なる前記機能部をそれぞれ有する複数の前記ノードを同一の層に有する。
また、好適には、前記ノードの利用状況を収集する手段と、特定の状況に対して、前記ノードの機能を制御する手段を持つ、管理装置を有する。
また、好適には、前記管理装置は、前記ノードの利用状況に基づいて、全ての前記ノードの前記ノード特定手段を動的に更新するノード更新手段を有する。
また、好適には、前記管理装置は、前記ノードの利用状況に基づいて、動的に前記ノードを特定し、前記ノードのバージョンを更新する、バージョン更新手段を有する。
本発明にかかる多層分散処理システムによれば、トランザクションを分割して実行する複数層の独立性を容易に高めることができる。
本発明にかかる多層分散処理システムの構成を例示する図である。 図1に示した管理装置、第1層ノードホスト、第2層ノードホストおよび第3層ノードホストの構成を例示する図である。 コンピュータなどによって実行可能なトランザクションの構成を例示する図である。 第1層ノードホスト、第2層ノードホストおよび第3層ノードホストの構成を例示する図である。 分散トランザクション管理部の構成を示す図である。 複数のトランザクションに対するノードの割り当てを例示する図である。 管理装置の構成を示す図である。 トランザクションに対するノードの関連付けを例示する概念図である。 多層分散処理システムによるトランザクションの実行サイクルを示す図である。 分散トランザクション管理部により管理される関係ノードリストの状態遷移図である。 分散トランザクション管理部の実行状態を示す状態遷移図である。 ノード割り当てフェーズにおいて、各ノードの分散トランザクション管理部それぞれが要求された1つ以上のトランザクションに対して、下位層のノードを検索する処理(S10)を示すフローチャートである。 ノード割り当てフェーズにおいて、各ノードの分散トランザクション管理部それぞれが要求された1つ以上のトランザクションに対して、ノードを割り当てる処理(S20)を示すフローチャートである。 管理装置がノードのバージョンを管理する処理(S30)を例示するフローチャートである。
[多層分散処理システム1]
以下、本発明の実施形態を説明する。
図1は、本発明にかかる多層分散処理システム1の構成を例示する図である。
図1に示すように、多層分散処理システム1は、例えばTCP/IPを用いたネットワーク10を介し、互いに接続された管理装置2、第1層ノードホスト3−1,3−2、第2層ノードホスト4−1,4−2、第3層ノードホスト5−1,5−2から構成されるネットワークシステムであり、1つ以上のトランザクションを例えば第1層から第3層に分割して実行するようにされている。
なお、トランザクションを機能ごとに分割する層の数は、3以上であってもよい。
また、管理装置2は、多層分散処理システム1の管理者に対して援助を行うコンポーネントであって、多層分散処理システム1におけるオプションである。
つまり、多層分散処理システム1は、管理装置2を有していなくても、1つ以上のトランザクションを分割して実行することができるようにされている。
以下、第1層ノードホスト3−1,3−2など複数ある構成部分のいずれかを特定せずに示す場合には、単に「第1層ノードホスト3」などと略記することがある。
[ハードウエア]
図2は、図1に示した管理装置2、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5の構成を例示する図である。
図2に示すように、管理装置2、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5それぞれは、CPU600およびメモリ602などを含む本体60、表示装置およびキーボードなどを含む入出力装置62、通信を行う通信装置64、および、CD装置、FD装置およびHDD装置などの記憶装置66から構成される。
つまり、管理装置2、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5は、それぞれコンピュータとしての構成部分を有している。
[トランザクションの構成例]
次に、トランザクションの構成例について説明する。
図3は、コンピュータなどによって実行可能なトランザクションT100の構成を例示する図である。
図3に示すように、トランザクションT100は、ファンクション層T102、プロセス層T104、サービス層T106、インフォメーション層T108、アプリケーション層T110およびリソース層T112から構成される。
トランザクションT100は、例えばビジネスプロセスなどであり、複数の処理を直列化した期間の長いトランザクション(グローバルトランザクション)である。
ファンクション層T102は、例えばUI(ユーザインターフェイス)および管理ツールなどである。
プロセス層T104は、ファンクション層T102のファンクションを実現するビジネスプロセスのワークフローなどであり、トランザクションT100を定義する。
また、プロセス層T104は、サービス層T106が提供する複数のサービスをトランザクション固有の特性にしたがって直列化し、呼び出すにより、トランザクションT100を実行する。
サービス層T106は、サービスを提供する同時に、あるプロセスが特定なサービスをアクセスできるかどうかなどのセキュリティの維持も行う。
なお、サービス層T106より下の各層は、分散される。
インフォメーション層T108は、トランザクションT100により実行されるアプリケーション層T110の有する機能を所定の出力に結合して、サービス層T106のサービスが必要なインフォメーションを提供するミドルウェア層である。
リソース層T112は、例えばデータベースである。
[トランザクションに対するノードの関連付け]
図8は、トランザクションに対するノードの関連付けを例示する概念図である。
図8に示すように、トランザクションXは、例えば複数の層(0〜3)に分割される。
多層分散処理システム1は、トランザクションXに対し、ノードホスト名および機能(ポート番号による)によって層ごとにノードなどのノーを特定することにより、トランザクションXと各層のノードとの関係を確認する。
点線は読み出し専用の共有ノードとすることが出来、或いは、機能の特性より書き込みも可能な共有ノードとすることも出来る。
[第1層ノードホスト3、第2層ノードホスト4、第3層ノードホスト5の構成]
図4は、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5の構成を例示する図である。
図4に示すように、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5は、例えば4つのノード30−1〜30−4をそれぞれ有し、同様の構成になっている。
ノード30−1〜30−4は、トランザクションの所定の層それぞれにおいて、層ごとに同等のレベルの異なる機能或いは同じ機能を実行する。
なお、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5は、ノード30の数を4つに限定されず、それぞれ異なる数のノード30を有するものであってもよい。
ノード30−1〜30−4は、それぞれ値が異なるノードポート32、分散トランザクション管理部(Distributed Transaction Manager:DTM)34およびファンクションノード36から構成される。
ノードポート32は、ノード30−1〜30−4のファンクションノード36がそれぞれ有する固有の機能に対応する固有のポート番号である。
分散トランザクション管理部34は、ノード30をそれぞれ管理するための情報(図5を用いて後述)を有し、結合されるべき他のノード30のファンクションノード36を、ノードポート32を介してコールする。
なお、トランザクションT100においては、サービス層T106からリソース層T112の処理を実行するために分散トランザクション管理部34が用いられる。
ファンクションノード36は、トランザクションの所定の層それぞれにおいて、層ごとに同等のレベルの異なるサービス、または同一のサービスを実行するサービス実行部であり、割り当てインターフェイス(I/F)360および機能インターフェイス(I/F)362が実装されている。
割り当てI/F360は、他のノード30の分散トランザクション管理部34により、ノードポート32を介してファンクションノード36がメソッドによってコールされるためのインターフェイスである。
割り当てI/F360は、割り当てが必要とされる機能の要求をコールされると、ファンクションノード36が提供可能な機能が必要とされる機能と一致する場合に、例えば真をリターンするようにされている。
また、割り当てI/F360は、ノード30が共有可能である場合にも、例えば真をリターンするようにされている。
機能I/F362は、ファンクションノード36がサービスを入出力するためのインターフェイスである。
[分散トランザクション管理部34の構成]
次に、分散トランザクション管理部34の構成について詳述する。
図5は、分散トランザクション管理部34の構成を示す図である。図5に示すように、分散トランザクション管理部34は、ステータスフラグ340、割り当て(指定)済みトランザクションID342、共有トランザクションIDリスト344、ノード検索区分346、関係ノードリスト348、バージョンID350、バージョン時間区分352、ノード選択アルゴリズム354および実行状況モニタ用アドレス356を有する。
ステータスフラグ340は、自ノード30が上位層のノード30によって利用されている状況を示すフラグであり、以下の3通りの状況を示す値のいずれかを示す。
・フリー(解放):自ノード30は、上位層のノード30から解放されている。
・割り当て済み :自ノード30は、上位層のノード30に利用(占有を含む)されている。
・共有 :1つ以上のトランザクションに対し、上位層の複数のノード30に共有されている。
割り当て済みトランザクションID(ATID)342は、ステータスフラグ340が割り当て済みである場合、自ノード30が割り当てられているトランザクションを特定するトランザクションIDを記憶する構成部分である。
なお、トランザクションIDは、例えばプロセス層T104の処理を実行する第1層ノードホスト3などのノードホストアドレス(IPアドレスまたはホスト名)と、ノードID(プロセスID)により構成される。
共有トランザクションIDリスト(STL)344は、ステータスフラグ340が共有である場合、自ノード30を共有しているトランザクションのトランザクションIDを共有リストとして記憶する構成部分である。
ノード検索区分(Node Search Segmentation:NSS)346は、ノードホストのいずれかを特定するアドレスと、ノード30のポート番号との組み合わせを1つ以上含む区分リスト(図示せず)を有し、分散トランザクション管理部34それぞれに対する情報の交換とノード30を割り当てるための特別な通信チャネルを構成する。
例えば、ノード検索区分346は、区分リストを用いて下位層の利用可能なノード30を検索する。
区分リストは、例えばトランザクションの開始および終了を宣言するノードホストのIPアドレスおよびノードポート32のポート番号の組み合わせなどであってもよいし、ワイルドカードのノードホスト名のリスト、またはノードホスト名のリストなどでもよい。
例えばIPアドレスおよびノードポートによって、ノード検索区分を構成する場合、以下のように構成する。
192.168.0.10〜20 それぞれのポート100−200、と
192.168.0.21〜30 それぞれのポート120−200
また、ワイルドカードのノードホスト名のリスト、或いはノードホスト名によって、ノード検索区分を構成する場合、以下のように構成する。
host1 〜 host20 それぞれのポート110−120、と
host3? 〜 host5? それぞれのポート200−300
ここで、「host3?」はhost30〜host39、host3a〜host3zなどを意味する。
関係ノードリスト(Related Node List:RNL)348は、自ノード30に利用されている下位層のノード30のノードリストを記憶する構成部分である。
ノードリストは、順序がノード30をコミットする順序になっており、ノードホストのアドレスとノードポート32を保持する。
バージョンID350は、自ノード30のファンクションノード36の機能のバージョンを示すIDを記憶する構成部分である。
バージョン時間区分352は、ファンクションノード36の機能のバージョンをタイムスタンプに応じて区分し、自ノード30を共有できるトランザクションを区分するための情報を記憶する構成部分である。
例えば、バージョン時間区分352は、トランザクションの開始および終了の時間の対を含む。
また、バージョン時間区分352は、トランザクションの開始および終了またはこれらのいずれかの時間が空(null)の場合、区分に対する制限を無制限とする。
ノード選択アルゴリズム354は、下位層の同一の機能を有する利用されていない複数のノード30から、どのように1つのノード30を選択するかを記述したアルゴリズムを記憶する構成部分である。
実行状況モニタ用アドレス356は、管理装置2がノード30の実行状況をモニタするためのアドレスを記憶する構成部分である。
[トランザクションに対するノード30の割り当て]
次に、トランザクションに対するノード30の割り当てについて説明する。
図6は、複数のトランザクションに対するノード30の割り当てを例示する図である。
なお、図6においては、第1層ノードホスト3−1,3−2、第2層ノードホスト4−1,4−2および第3層ノードホスト5−1,5−2がそれぞれノード30を2つずつ有する場合が例示されている。
ノード30は、実線の矢印で示したように、下位層のノード30を所定のトランザクションに対して割り当てる(占有する)。
また、ノード30は、破線の矢印で示したように、下位層のノード30を所定のトランザクションに対して他の30とともに共有する。
ただし、複数のノード30により共有されるノード30は、読み出し専用或いは機能の特性より書き込みも可能な共有のノードである。
また、ノード30は、他のノード30との間で交換される情報に応じて共有を承認された場合に、複数のノード30により共有されるようにされてもよい。
このように、ノード30それぞれは、新しいトランザクションを開始する場合に、利用されていないノード30を下位層で探し、新しいトランザクションに対して割り当てる。
そして、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5は、それぞれのノード30がどのトランザクションに対して利用されているか、または利用されていないかを分散トランザクション管理部34それぞれにより確認するとともに記憶する。
[管理装置(Manage Assistant)2]
次に、管理装置2について詳述する。
管理装置2は、上述したように、多層分散処理システム1の管理者に対する援助を行うコンポーネントであり、以下の援助を管理者に対して行う。
−多層分散処理システム1によるトランザクションの実行を監視する
−多層分散処理システム1のパフォーマンスの改善のために、多層分散処理システム1の構成を変更する
−ファンクションノード36の更新
図7は、管理装置2の構成を示す図である。図7に示すように、管理者用UI部20、実行状況モニタ22、ノード検索区分更新部24、ノード選択アルゴリズム更新部26およびファンクションノード更新部28を有する。
管理者用UI部(Administrator Console)20は、管理者用に対するUI(Use Interface)である。
実行状況モニタ22は、公開アドレスとポート220を有し、多層分散処理システム1を構成する各部の実行状況を収集し、管理者に対してレポートする。
公開アドレスとポート220は、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5それぞれの分散トランザクション管理部34によって知られている。
つまり、分散トランザクション管理部34それぞれが公開アドレスとポート220をあて先として実行状況を送信することにより、実行状況モニタ22第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5それぞれの実行状況を収集することができる。
ノード検索区分更新部(Node Search Segmentation Updater)24は、予め管理者が定義した状況に多層分散処理システム1の状況がなると、ノード30が下位層のノード30を検索するためのノード検索区分更新情報を全ての分散トランザクション管理部34に対してブロードキャストする。予め管理者が定義した状況はたとえば、ある区分に、使用不可になったホスト或いは、新規追加したホストの数が設定した数をオーバーした状況などである。
ノード検索区分更新情報のブロードキャストは、多層分散処理システム1のパフォーマンスを改善するためのものであり、ノード検索区分更新情報がブロードキャストされなくても、各分散トランザクション管理部34は、十分に広い区分構成から利用されていないノード30を発見することができるようにされている。
ノード選択アルゴリズム更新部(Node Choice algorithm Updater)26は、全ての実行パッケージを保持するアルゴリズムライブラリ260を有し、予め管理者が定義した状況に多層分散処理システム1の状況がなると、パフォーマンスを改善するために、ノード選択アルゴリズムの実行パッケージを各分散トランザクション管理部34に対して送信する。
ノード選択アルゴリズムは、例えばキャッシュにより、同じノード30を利用し続けるように設定するアルゴリズムなどである。
例としては、応答時間が最も早いノードを選択するアルゴリズムについて説明する。すなわち、あるノードが管理している下位ノード数が3つあり、何らかの原因でそのうち2つが使用できなくなった場合を想定する。ノード選択アルゴリズム更新部(Node Choice algorithm Updater)26は、当該ノードに、より簡単な同じノードを利用し続けるように設定するアルゴリズムを送信する。当該ノードは送信されたアルゴリズムを置き換えて実行する。その結果、使用できる1つの下位ノードを選択し、使用できない下位ノードはアクセスしないので、全体のパフォーマンスを改善することが出来る。
なお、ノード検索区分を更新する手段、及び、ノード選択アルゴリズムを更新する手段を含む手段をノード更新手段と呼ぶものとする。
ファンクションノード更新部(Function Node Updater)28は、管理者用UI部20を介した管理者の指示などに応じて、ノード30のファンクションノード36を新しいバージョンのものに更新し、分散トランザクション管理部34のバージョンID350を変更する。
[多層分散処理システム1によるトランザクションの実行:ワークフロー]
次に、多層分散処理システム1によるトランザクションの実行について説明する。
図9は、多層分散処理システム1によるトランザクションの実行サイクルを示す図である。
図9に示すように、多層分散処理システム1は、ノード割り当てフェーズ(P100)、機能実行フェーズ(P102)およびコミットプロセスフェーズ(P104)により、トランザクションを実行する。
ノード割り当てフェーズ(P100)において、例えば管理装置2は、第1層ノードホスト3、第2層ノードホスト4および第3層ノードホスト5などのアドレスをグループ分けする。
例えばIPアドレスによって、ノードホストをグループ分けする場合、以下のようにIPアドレスを分割する。
インフォメーション層:192.168.0.10〜69
アプリケーション層 :192.168.0.70〜159
リソース層 :192.168.0.160〜250
また、ノードホスト名によって、ノードホストをグループ分けする場合、以下のように分割する。
インフォメーション層:インフォホスト1〜インフォホスト20
アプリケーション層 :アプリホスト1〜アプリホスト50
リソース層 :リソースホスト1〜リソースホスト80
各ノード30は、トランザクションに必要な機能を有する下位層のノード30を分散トランザクション管理部34によって検索し、下位層の所定のアドレスとポートの区分において利用されていないノード30を選択する。
機能実行フェーズ(P102)において、トランザクションは、必要なノード30の機能が結合されることにより、実行される。
コミットプロセスフェーズ(P104)において、各ノード30は、2段階の処理を行う。
まず、ノード30は、準備処理として、終了するトランザクションの全ての分散トランザクション管理部34のツリーが準備の状態になったことを確認する。
次に、ノード30それぞれにより、もう一度トランザクションをコミットし、トランザクションがフェイルした場合にはロールバックを行う。
[分散トランザクション管理部34の属性管理]
図10は、分散トランザクション管理部34により管理される関係ノードリスト348の状態遷移図である。
関係ノードリスト348は、上述したように自ノード30に利用されている下位層のノード30のノードリスト(ノードホストのアドレスとノードポート32)を保持する。
トランザクションがコミットされた後に新しいトランザクションが開始されても、分散トランザクション管理部34は、関係ノードリスト348がノードリストを記憶した状態から移行しない(a1)。
つまり、トランザクションがコミットされても、関係ノードリスト348は、すぐにはクリアされない。
分散トランザクション管理部34は、新しいトランザクションが開始されると、アドレスを区分する前に、関係ノードリスト348に含まるノード30にアクセスする。
つまり、分散トランザクション管理部34は、新しいトランザクションに対し、まず関係ノードリスト348に記憶されたノード30を検索して、下位層のノード30を割り当てる。
関係ノードリスト348に含まるノード30がアクセスされると、分散トランザクション管理部34は、関係ノードリスト348がノードリストを記憶した状態から、関係ノードリスト348が空の状態に移行する(ノード検索:a2)。
ノード30が要求する機能に対し、下位層のノード30が割り当てられると、ノードリストに新しいノード30のノードホストのアドレスとノードポート32とが追加され、関係ノードリスト348は、空の状態からノードリストを記憶した状態に移行する(a3)。
図11は、分散トランザクション管理部34の実行状態を示す状態遷移図である。
分散トランザクション管理部34は、自ノード30がトランザクションに対して割り当てられると、解放の状態から割り当て済みの状態に移行する(b1)。
また、分散トランザクション管理部34は、トランザクションがコミットされると、割り当て済みの状態から解放の状態に移行する(b2)。
また、分散トランザクション管理部34は、自ノード30がトランザクションに対して共有されると、解放の状態から共有済み状態に移行する(b3)。
また、分散トランザクション管理部34は、共有トランザクションIDリスト344が空にされると、共有済み状態から解放の状態に移行する(b4)。
[ノード割り当てフェーズ(P100)における検索]
図12は、ノード割り当てフェーズ(P100)において、各ノード30の分散トランザクション管理部34それぞれが要求された1つ以上のトランザクションに対して、下位層のノード30を検索する処理(S10)を示すフローチャートである。
図12に示すように、ステップ100(S100)において、分散トランザクション管理部34は、関係ノードリスト348が空であるか否かを確認し、関係ノードリスト348が空の場合はS106の処理に進み、関係ノードリスト348が空でない場合はS102の処理に進む。
ステップ102(S102)において、分散トランザクション管理部34は、必要な機能を有する下位層の利用されていないノード30、または共有可能なノード30を関係ノードリスト348から探す。
ステップ104(S104)において、分散トランザクション管理部34は、必要な機能を割り当てることができるノード30を発見した場合にはS114の処理に進み、発見しない場合にはS106の処理に進む。
ステップ106(S106)において、分散トランザクション管理部34は、各ノード検索区分346における利用可能なノード30の検索を開始する。
ステップ108(S108)において、分散トランザクション管理部34は、各ノード30に対して実行状況を問い合わせることにより、利用可能なノード30の検索を開始する。(実行状況の確認)
ステップ110(S110)において、分散トランザクション管理部34は、必要な機能を割り当てることができるノード30を発見した場合にはS114の処理に進み、発見しない場合(フェイルした場合)にはS112の処理に進む。
ステップ112(S112)において、分散トランザクション管理部34は、管理装置2の実行状況モニタ22にノード30を発見しなかった旨(フェイル)を送信する。
ステップ114(S114)において、分散トランザクション管理部34は、関係ノードリスト348をクリアする。
ステップ116(S116)において、分散トランザクション管理部34は、発見したノード30を関係ノードリスト348に追加する。
[ノード割り当てフェーズ(P100)における割り当て]
図13は、ノード割り当てフェーズ(P100)において、各ノード30の分散トランザクション管理部34それぞれが要求された1つ以上のトランザクションに対して、ノード30を割り当てる処理(S20)を示すフローチャートである。
図13に示すように、ステップ200(S200)において、分散トランザクション管理部34は、下位層の自ノード30が上位層のノード30に割り当てられているか否かを判定し、割り当てられている場合にはS206の処理に進み、解放されている場合にはS202の処理に進む。
ステップ202(S202)において、上位層のノード30がトランザクションに要求される機能を有するファンクションノード36の割り当てI/F360のメソッドをコールする。
ステップ204(S204)において、上位層のノード30は、下位層のノード30からのリターンが真(要求機能)であるか否かを判定し、リターンが真である場合にはS208の処理に進み、リターンが真でない場合にはS206の処理に進む。
ステップ206(S206)において、下位層のノード30は、機能を要求した上位層のノード30および実行状況モニタ22にフェイルを示す情報を送信する。
ステップ208(S208)において、上位層のノード30は、トランザクションによる機能のバージョンに関する要求があるか否かを判定し、要求がある場合にはS210の処理に進み、要求がない場合にはS212の処理に進む。
ステップ210(S210)において、上位層のノード30は、下位層の機能に対するバージョンの要求が下位層のバージョンID350に記憶しているバージョンIDと同じであるか否かを判定し、同じである場合にはS214の処理に進み、同じでない場合にはS206の処理に進む。
ステップ212(S212)において、上位層のノード30は、下位層のバージョン時間区分352に含まれるタイムスタンプを参照し、下位層の機能が共有可能なバージョンであることを示すタイムスタンプであるか否かを判定し、共有可能なバージョンが示されている場合にはS214の処理に進み、共有できないバージョンである場合にはS206の処理に進む。
ステップ214(S214)において、上位層のノード30は、共有可能な機能を有する下位層のノード30の割り当てI/F360のメソッドをコールする。
ステップ216(S216)において、上位層のノード30は、下位層のノード30からのリターンが真(共有可能)であるか否かを判定し、リターンが真である場合にはS218の処理に進み、リターンが真でない場合にはS220の処理に進む。
ステップ218(S218)において、下位層のノード30は、トランザクションIDを共有トランザクションIDリスト344に追加する。
ステップ220(S220)において、下位層のノード30は、トランザクションIDを割り当て済みトランザクションID342に記憶する。
ステップ222(S222)において、下位層のノード30は、機能を要求した上位層のノード30に、利用可能なノード30の発見をを示す情報を応答する。
なお、上位層のノード30が下位層のノード30に対して機能を要求する場合、以下のような実装が推奨される。
・IDによるアプローチ
−Java(登録商標)環境において、クラス名またはJavaBeans名(登録商標)
−DCOM(登録商標)環境において、DCOM名またはID
・記述によるアプローチ
−ファンクションタイプ
・データアクセス、ビジネスロジックなど
−ファンクションサブタイプ
・データアクセスに対するテーブル名
・ビジネスロジックに対するビジネスステップ
−操作属性
・データアクセスに対するテーブルの挿入/選択/更新
[ノード30のバージョン管理]
次に、ノード30のバージョン管理について詳述する。
管理者が管理者用UI部20を介してノード30のバージョンの更新をセットアップした場合、多層分散処理システム1は、管理装置2によってノード30のバージョンを更新する。
管理装置2は、いくつのノード30がどのバージョンの更新または維持を行うかを制御する。
例えば、管理装置2は、第1層ノードホスト3−1の全てのノード30を最新のバージョンに更新する。
また、管理装置2は、例えば3つのノード30はバージョン1を維持し、5つのノード30はバージョン2を維持し、その他のノード30は最新のバージョンに更新するようにしてもよいし、10%のノード30はバージョン1を維持し、20%のノード30はバージョン2を維持し、その他のノード30は最新のバージョンに更新するようにしてもよい。
また、管理装置2は、所定のバージョンのノード30に対し、タイムスタンプによる区分を行う。
図14は、管理装置2がノード30のバージョンを管理する処理(S30)を例示するフローチャートである。
図14に示すように、ステップ300(S300)において、管理装置2は、各層のノード30に対して検索を開始する。
ステップ302(S302)において、管理装置2は、各ノード30の機能を確認する。
ステップ304(S304)において、管理装置2は、トランザクションに対するターゲットとなるノードリストに、所定の機能を有する全てのノード30を追加する。
ステップ306(S306)において、管理装置2は、例えば管理者用UI部20を介して入力される管理者の指示に応じて、所定の機能を有するノード30の全てを最新のバージョンに更新するか否かを判定し、全てのノード30のバージョンを更新する場合にはS310の処理に進み、所定の機能を有するノード30のいくつかを選択してバージョンの更新を行う場合にはS308の処理に進む。
ステップ308(S308)において、管理装置2は、例えば管理者用UI部20を介して入力される管理者の指示に応じて、各ノード30に対し、どのノード30をどのバージョンにするかを示すバージョン更新プランを生成する。
ステップ310(S310)において、管理装置2は、ノードの確認のループを開始する。
ノードの確認のループは、変数Nの値が1で始まり、1ずつ増加してノード数になるまで、後述するS318までの処理を個々のノード30に対して繰り返す。
ステップ312(S312)において、管理装置2は、ノード30が利用されているか否かを判定し、利用されている場合にはS314の処理に進み、利用されていない場合にはS318の処理に進む。
ステップ314(S314)において、管理装置2は、ノード30に対し、バージョンの更新と時間区分の設定を行う。
ステップ316(S316)において、管理装置2は、S314の処理でバージョンの更新と時間区分の設定を行ったノード30をターゲットとなるノードリストから削除する。
ステップ318(S318)において、管理装置2は、S310に示した条件が満たされた場合に、ノードの確認のループを終了する。
ステップ320(S320)において、管理装置2は、ターゲットとなるノードリストが空になったか否かを判定し、空になっていない場合にはS322の処理に進み、空になっている場合には処理を終了する。
ステップ322(S322)において、管理装置2は、後に再びS30の処理を行えるように、実行状況モニタ22のタイマの状況を設定する。
したがって、多層分散処理システム1は、トランザクションの種類に応じて異なるバージョンのノード30を割り当てることができ、1つのシステム内において、複数のバージョンのノード30が異なる複数のトランザクションに対する実行を行うことができる。
符号の説明
1・・・多層分散処理システム
10・・・ネットワーク
T100・・・トランザクション
T102・・・ファンクション層
T104・・・プロセス層
T106・・・サービス層
T108・・・インフォメーション層
T110・・・アプリケーション層
T112・・・リソース層
2・・・管理装置
20・・・管理者用UI部
22・・・実行状況モニタ
220・・・公開アドレスとポート
24・・・ノード検索区分更新部
26・・・ノード選択アルゴリズム更新部
260・・・アルゴリズムライブラリ
28・・・ファンクションノード更新部
3−1,3−2・・・第1層ノードホスト
30−1〜30−4・・・ノード
32・・・ノードポート
34・・・分散トランザクション管理部
340・・・ステータスフラグ
342・・・割り当て済みトランザクションID
344・・・共有トランザクションIDリスト
346・・・ノード検索区分
348・・・関係ノードリスト
350・・・バージョンID
352・・・バージョン時間区分
354・・・ノード選択アルゴリズム
356・・・実行状況モニタ用アドレス
36・・・ファンクションノード
360・・・割り当てI/F
362・・・機能I/F
4−1,4−2・・・第2層ノードホスト
5−1,5−2・・・第3層ノードホスト
60・・・本体
600・・・CPU
602・・・メモリ
62・・・入出力装置
64・・・通信装置
66・・・記憶装置
本発明は、トランザクションを所定の複数の層に分割して実行する多層分散処理システムなどに利用することができる。

Claims (10)

  1. 1つ以上のトランザクションを所定の複数の層に分割し、分割した層ごとにそれぞれ1つ以上設けられたノードの組み合わせにより、1つ以上のトランザクションをそれぞれ実行する多層分散処理システムであって、
    上位の層に属する上位ノードは、
    トランザクションに対する下位の層に属する下位ノードの実行状況を、監視する監視手段を有し、
    前記下位ノードは、
    自己の実行状況を前記上位ノードが監視できる監視可能化手段と、
    前記上位ノードへ前記監視可能化手段を介して実行状況に応じてサービスを提供する機能部と
    を有する多層分散処理システム。
  2. 前記上位ノードは、
    前記下位ノードを監視するための第1の通信手段を有し、
    前記下位ノードは、
    前記上位ノードに対してサービスを提供するための第2の通信手段
    を有する請求の範囲第1項に記載の多層分散処理システム。
  3. 前記上位ノードは、
    前記下位ノードに固有な情報、および前記監視手段を介して監視した実行状況に基づいて、前記下位ノードを特定するノード特定手段を有し、
    特定された前記下位ノードは前記上位ノードにサービスを提供する
    請求の範囲第1項に記載の多層分散処理システム。
  4. 前記下位ノードは、
    前記上位ノードの要求に応じて、前記下位ノードの前記機能部の属性および実行状況に応じて自己が特定されるための情報を送信する手段を有する
    請求の範囲第3項に記載の多層分散処理システム。
  5. 前記下位ノードは、
    自己が特定されるための情報を記憶する記憶手段と、
    前記自己が特定されるための情報を動的に更新する更新手段と
    をさらに有する請求の範囲第4項に記載の多層分散処理システム。
  6. トランザクションに応じて1つ以上の前記機能部のバージョンを限定するバージョン限定手段と、
    前記バージョン限定手段が限定したバージョンの前記機能部を有する前記ノードを特定するように、前記ノード特定手段を制御する制御手段と
    をさらに有する請求の範囲第3項に記載の多層分散処理システム。
  7. 互いにバージョンが異なる前記機能部をそれぞれ有する複数の前記ノードを同一の層に有する
    請求の範囲第6項に記載の多層分散処理システム。
  8. 前記ノードの利用状況を収集する手段と、特定の状況に対して、前記ノードの機能を制御する手段を持つ、管理装置を有する
    請求の範囲第1項に記載の多層分散処理システム。
  9. 前記管理装置は、前記ノードの利用状況に基づいて、全ての前記ノードの前記ノード特定手段を動的に更新するノード更新手段を有する
    請求の範囲第8項に記載の多層分散処理システム。
  10. 前記管理装置は、前記ノードの利用状況に基づいて、動的に前記ノードを特定し、前記ノードのバージョンを更新する、バージョン更新手段を有する
    請求の範囲第8項に記載の多層分散処理システム。
JP2007556809A 2006-01-31 2007-01-17 多層分散処理システム Pending JPWO2007088728A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006022841 2006-01-31
JP2006022841 2006-01-31
PCT/JP2007/050587 WO2007088728A1 (ja) 2006-01-31 2007-01-17 多層分散処理システム

Publications (1)

Publication Number Publication Date
JPWO2007088728A1 true JPWO2007088728A1 (ja) 2009-06-25

Family

ID=38327306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556809A Pending JPWO2007088728A1 (ja) 2006-01-31 2007-01-17 多層分散処理システム

Country Status (4)

Country Link
US (1) US9015308B2 (ja)
JP (1) JPWO2007088728A1 (ja)
GB (1) GB2449037B (ja)
WO (1) WO2007088728A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009044589A1 (ja) * 2007-10-03 2009-04-09 Nec Corporation 階層型負荷推定システム、方法およびプログラム
JP5732419B2 (ja) * 2012-03-13 2015-06-10 株式会社野村総合研究所 統合アクセス制御システム
US9350629B2 (en) * 2012-08-22 2016-05-24 Oracle International Corporation System and method for ensuring internet protocol (IP) address and node name consistency in a middleware machine environment
KR102436426B1 (ko) * 2017-03-17 2022-08-26 콘비다 와이어리스, 엘엘씨 네트워크 서비스 계층에서의 분산형 트랜잭션 관리
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173988A (ja) * 1991-12-26 1993-07-13 Toshiba Corp 分散処理方式および該分散処理に適用されるトランザクション処理方式
JPH05307478A (ja) * 1992-04-30 1993-11-19 Nippon Telegr & Teleph Corp <Ntt> データベース管理システムの構成法
JPH07302242A (ja) * 1994-04-30 1995-11-14 Mitsubishi Electric Corp 負荷分散方式
JPH1069418A (ja) * 1996-07-02 1998-03-10 Internatl Business Mach Corp <Ibm> 階層化トランザクション処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613801B2 (en) * 1996-07-12 2009-11-03 Microsoft Corporation System and method for monitoring server performance using a server
US20030005068A1 (en) * 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
US7568023B2 (en) * 2002-12-24 2009-07-28 Hewlett-Packard Development Company, L.P. Method, system, and data structure for monitoring transaction performance in a managed computer network environment
US20050022202A1 (en) * 2003-07-09 2005-01-27 Sun Microsystems, Inc. Request failover mechanism for a load balancing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173988A (ja) * 1991-12-26 1993-07-13 Toshiba Corp 分散処理方式および該分散処理に適用されるトランザクション処理方式
JPH05307478A (ja) * 1992-04-30 1993-11-19 Nippon Telegr & Teleph Corp <Ntt> データベース管理システムの構成法
JPH07302242A (ja) * 1994-04-30 1995-11-14 Mitsubishi Electric Corp 負荷分散方式
JPH1069418A (ja) * 1996-07-02 1998-03-10 Internatl Business Mach Corp <Ibm> 階層化トランザクション処理方法

Also Published As

Publication number Publication date
GB2449037A (en) 2008-11-05
US9015308B2 (en) 2015-04-21
GB2449037B (en) 2011-04-13
US20090013154A1 (en) 2009-01-08
GB0815639D0 (en) 2008-10-08
WO2007088728A1 (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
JPWO2007088728A1 (ja) 多層分散処理システム
JP7085565B2 (ja) 分離されたネットワークスタックにわたるインテリジェントなスレッド管理
US8713089B2 (en) Dynamic lookup service in a distributed system
US8386540B1 (en) Scalable relational database service
US7349970B2 (en) Workload management of stateful program entities
US6604127B2 (en) Dynamic lookup service in distributed system
US7065526B2 (en) Scalable database management system
CN100394726C (zh) 一种提高基于构件软件系统可靠性的方法
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
US8117641B2 (en) Control device and control method for information system
CN100485676C (zh) 文件系统串行化重新初始化装置、方法和系统
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
CN114070822B (zh) 一种Kubernetes Overlay IP地址管理方法
JP2002049601A (ja) コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品
CN108616424B (zh) 一种资源调度方法、计算机设备和系统
US10761869B2 (en) Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
US20090225654A1 (en) Methods and systems for capability-based system collaboration
JP5235751B2 (ja) 仮想計算機を有する物理計算機
US20120151175A1 (en) Memory apparatus for collective volume memory and method for managing metadata thereof
US20040177017A1 (en) Distributed system and brokering method using context
JP5221281B2 (ja) 階層型リソース監視システム
JP3845111B2 (ja) 複合型計算機システム
CN113254159A (zh) 有状态服务的迁移方法、装置、计算机设备及存储介质
CN115514777A (zh) 资源管理方法及装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121029