JPH11272484A - クライアント要求をディスパッチする装置及び方法 - Google Patents

クライアント要求をディスパッチする装置及び方法

Info

Publication number
JPH11272484A
JPH11272484A JP11009173A JP917399A JPH11272484A JP H11272484 A JPH11272484 A JP H11272484A JP 11009173 A JP11009173 A JP 11009173A JP 917399 A JP917399 A JP 917399A JP H11272484 A JPH11272484 A JP H11272484A
Authority
JP
Japan
Prior art keywords
request
client
server
holding buffer
meaning
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
JP11009173A
Other languages
English (en)
Inventor
Thomas Freund
トーマス・フレウンド
Iain Stuart Caldwell Houston
アイン・スチュアート・キャルドウェル・ヒューストン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11272484A publication Critical patent/JPH11272484A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/465Distributed object oriented systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

Landscapes

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

Abstract

(57)【要約】 【課題】 異種オブジェクト指向クライアント/サーバ
・コンピューティング環境でサーバ・オブジェクトによ
って実行されるクライアント要求をディスパッチする装
置を提供する。 【解決手段】本願発明の装置は、クライアント要求を装
置へ伝える通信チャネルへ接続された入力及び出力を有
する要求保持バッファと、該要求保持バッファの出力に
接続された複数の並列実行スレッドと、前記要求保持バ
ッファ内の要求の意味及び複数の並列実行スレッドの任
意のもので現在実行されている各要求の意味を検査し、
要求の検査された意味が、要求のディスパッチによって
サーバ・オブジェクト資源への衝突アクセスを生じるこ
とを示す場合、前記要求保持バッファから実行スレッド
への要求のディスパッチを遅延させる意味並行制御手段
とを備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1つのコンピュー
ティング装置(クライアント)が他のコンピューティン
グ装置(サーバ)に、クライアントの作業の一部を実行
するように要求するクライアント/サーバ・コンピュー
ティング(「分散」コンピューティングとしても知られ
る)に関する。
【0002】
【従来の技術】クライアント/サーバ・コンピューティ
ングは、過去数年の間、情報技術分野においてますます
重要となってきた。この種の分散コンピューティングに
よって、1つのマシンは、その作業のいくつかを、例え
ばその作業の実行により適している他のマシンに委任す
ることができる。
【0003】クライアント/サーバ・コンピューティン
グの利点は、オブジェクト指向プログラミング(OO
P)と呼ばれる周知のコンピュータ・プログラミング技
術の使用によって一層高められてきた。OOPは、クラ
イアントとサーバを異なった(異種の)「プラットフォ
ーム」に配置することを可能にする。プラットフォーム
とは、マシンがその作業を行うために使用する特定のハ
ードウェア/ソフトウェア/オペレーティング・システ
ム/通信プロトコルの組み合わせである。OOPによっ
て、クライアント・アプリケーション・プログラム及び
サーバ・アプリケーション・プログラムは、クライアン
ト・アプリケーションの作業要求がどのようにしてサー
バ・アプリケーションへ伝えられ受け取られるかに煩わ
されないで、それぞれのプラットフォーム上で動作する
ことができる。同様に、サーバ・アプリケーションは、
OOPシステムが、どのようにサーバ・アプリケーショ
ンの処理結果を受け取り、変換し、要求したクライアン
ト・アプリケーションへ戻すかに煩わされる必要がな
い。
【0004】OOP技術がどのようにして異種のクライ
アント/サーバ・システムに統合されるかは、米国特許
第5,440,744号及びヨーロッパ特許出願公告第E
P0 677,943 A2号に説明されている。これ
ら2つの刊行物は参照によってここに組み込まれる。し
かし、本発明の環境を文脈的に理解するために、基本ア
ーキテクチャの例を以下に説明する。
【0005】図1に示されるように、クライアント・コ
ンピュータ10(例えば、IBMOS/2オペレーティ
ング・システムを導入されたパーソナル・コンピュー
タ)は、そのオペレーティング・システム上でアプリケ
ーション・プログラム40を実行している(「IBM」
及び「OS/2」はIBM社の商標)。アプリケーショ
ン・プログラム40は、作業がサーバ・コンピュータ2
0上で実行され、データがサーバ・コンピュータ20か
ら戻されて、それをアプリケーション・プログラム40
が後で使用することを定期的に必要とする。サーバ・コ
ンピュータ20は、例えばIBMのMVSオペレーティ
ング・システムを実行している高性能メインフレーム・
コンピュータである(「MVS」もIBM社の商標)。
本発明の目的から言えば、サーバによって実行されるべ
き通信サービスの要求が第1のアプリケーション・プロ
グラム40との交信によって引き起こされるか、アプリ
ケーション・プログラム40がユーザ交信とは独立して
動作しプログラムの実行中に自動的に要求を行うかは、
無関係である。
【0006】クライアント・コンピュータ10がサーバ
・コンピュータ20のサービスを要求したいとき、第1
のアプリケーション・プログラム40は、要求されるサ
ービスを第1の論理手段50に通知する。それは、例え
ば、第1の論理手段に遠隔プロシージャの名前及び入出
力パラメータのリストを送ることによってなされる。次
に、第1の論理手段50は、記憶装置60に記憶された
利用可能な通信サービスの定義を参照して、サーバ・コ
ンピュータ20との必要な通信を確立するタスクを処理
する。すべての可能なサービスは、オブジェクト・クラ
スの結合性フレームワーク(cohesive framework)70と
して定義されている。これらのオブジェクト・クラスは
単一のオブジェクト・クラスから引き出される。サービ
スをこのように定義すると、パフォーマンス及び再使用
可能性について、多数の利点が得られる。
【0007】サーバ・コンピュータ20との必要な通信
を確立するために、第1の論理手段50は、フレームワ
ーク中のどのオブジェクト・クラスが使用されなければ
ならないかを決定し、次にそのオブジェクトのインスタ
ンスを作成し、メッセージがそのオブジェクトに送ら
れ、そのオブジェクトがそのメソッドの1つを呼び出す
ようにする。それによって、サーバ・コンピュータ20
との接続が接続手段80を介して確立され、続いて要求
が第2の論理手段90へ送られる。
【0008】次に、第2の論理手段90は、サーバ・コ
ンピュータ20で実行されている第2のアプリケーショ
ン・プログラム(サービス・アプリケーション100)
に要求を渡し、それによってサービス・アプリケーショ
ン100はその要求(例えば、データ検索プロシージャ
の実行)によって要求された特定のタスクを実行するこ
とができる。一度、このタスクが完了すると、サービス
・アプリケーションは結果をクライアント・コンピュー
タ10へ戻す必要があるかも知れない。サービス・アプ
リケーション100は、要求されたタスクの実行中、及
び結果がクライアント・コンピュータ10へ送られると
きに、第2の論理手段90と交信する。第2の論理手段
90はオブジェクトのインスタンスを確立し、サービス
・アプリケーション100によって要求された態様及び
時点で、これらのオブジェクトの適切なメソッドを呼び
出し、記憶装置110に記憶されたオブジェクト・クラ
スの結合性フレームワークからオブジェクト・インスタ
ンスが作成される。
【0009】上記のテクニックを使用するとき、クライ
アントのアプリケーション・プログラム40は通信アー
キテクチャの影響を受けない。さらに、サービス・アプ
リケーション100はその環境の標準機構を介して呼び
出される。それは遠隔的に呼び出されていることを認識
しない。
【0010】オブジェクト管理グループ(OMG)は、
図1に示されるような異種プラットフォーム上のクライ
アント/サーバ・コンピューティングの各種の局面に関
連した組織の国際的共同体である。OMGは、クライア
ント・コンピュータ(例えば、クライアント・コンピュ
ータ10)がサーバ・マシン(例えば、サーバ・コンピ
ュータ20)と通信する(OOP形式で)場合の公表さ
れた標準を設定している。これらの標準の一部として、
オブジェクト要求ブローカ(Object Request Broker、
ORB)が定義されている。ORBは、オブジェクト指
向ブリッジを、クライアント・マシンとサーバ・マシン
との間に提供する。ORBは、第1及び第2の論理手段
50及び90、及び接続手段80の作業の少なくとも一
部を実行しながら、クライアント・アプリケーション及
びサーバ・アプリケーションを、オブジェクト指向実行
詳細項目から切り離す。
【0011】図2は、そのようなシステムの従来型アー
キテクチャを示す。一度、クライアント要求がORB2
1を介してサーバへの経路を見つけると、ORBはその
要求を実行することのできる特定のサーバ・オブジェク
トを見つけ、その要求をそのサーバ・オブジェクトのオ
ブジェクト・アダプタ22(同様に、OMG標準によっ
て定義される)へ送り、その要求はオブジェクト・アダ
プタのバッファに記憶されて、サーバ・オブジェクトに
よる処理を待つ。サーバ・オブジェクトは複数の並列実
行スレッド(23a、23b、23c)を有し、その任
意の実行スレッドの上でそのインスタンスを実行するこ
とができる。このようにして、サーバ・オブジェクトは
複数の要求を同時に処理することができる。オブジェク
ト・アダプタ22は、並列実行スレッドのいずれが他の
要求を処理する準備を整えているかを調べ、要求の1つ
を次に利用可能な実行スレッドに割り当てる。これは、
前記の米国特許に、サーバが要求を実行スレッドにディ
スパッチする「ディスパッチング」機構として説明され
ている。
【0012】図2のOMG標準サーバ・アーキテクチャ
は、トランザクション処理の分野で特に有用性がある。
コンピュータ実行トランザクション処理システムは、多
数の企業で重要なビジネス・タスクに使用される。トラ
ンザクションは、完全に完了されるか、何のアクション
も伴わないで完全に除去されなければならない単一の作
業単位を定義する。例えば、顧客が現金を引き出そうと
している銀行の現金自動預入支払機の場合、現金を引き
出すアクション、機械中の手持ち現金の残高を減少させ
るアクション、及び顧客の銀行残高を減少させるアクシ
ョンは、すべてが起こらなければならないか、すべてが
起こってはいけないかのどちらかである。従属したアク
ションの1つが生じないと、記録と実際の事象との間に
不一致が起こる。
【0013】分散されたトランザクション処理は、2つ
以上の物理的又は論理的場所に存在する資源に影響を与
えるトランザクションを含む。上記の例では、トランザ
クションはローカルの現金自動預入支払機で管理される
資源に影響を与えると共に銀行のメイン・コンピュータ
によって管理される銀行残高にも影響を与える。そのよ
うなトランザクションは、サーバによって処理される一
連のクライアント要求に関して、1つの特定のサーバ・
コンピュータ(例えば、サーバ・コンピュータ20)と
通信する1つの特定のクライアント・コンピュータ(例
えば、図1のクライアント・コンピュータ10)を含
む。
【0014】典型的なクライアント/サーバ・システム
において、クライアント・システム及びサーバ・システ
ムの各々は、そのようなトランザクションの全体的な処
理に寄与している。さらに、多くの異なったクライアン
トが、別個のトランザクションに携わるために同じサー
バの使用を並行して試みる場合がある。例えば、多くの
異なった銀行ATMマシン(クライアント・システム)
が、銀行の大型中央サーバで実行されているポピュラー
なデータベース・プログラムからデータにアクセスする
ように、トランザクションを同時に開始しようとしてい
るかも知れない。これらの状態のいくつかの場合、サー
バは、並行するトランザクションが相互に影響しないよ
うに、それらの同時的トランザクションを絶縁すること
ができなければならない。すなわち、1つのトランザク
ションが終了するまで(すべての部分がコミットされる
か、すべての部分が打ち切られるまで)、同じサーバ・
オブジェクトにアクセスしようとしいる他のトランザク
ションは待ち状態にされなければならない。
【0015】例えば、夫が、町の1つの場所にある1つ
の銀行のATMマシンで家族の当座預金口座から利子の
高い家族の普通預金口座へ2000ドルを振り替えよう
としており、その妻も町の他の場所にある他のATM
(異なった銀行によって所有される)で同じトランザク
ションを実行しようとしている場合、2つの並行するト
ランザクションがデータベース・サーバを所有する銀行
に問題を起こさないように、サーバはこのような状態を
効果的に処理できなければならない。
【0016】典型的に、この問題を解決する方法は、サ
ーバ・データベース・プログラムが並行アクセスの上に
トランザクション・ロッキングを実行することである。
すなわち、サーバのデータベース管理システム(DBM
S)は、一度第1のクライアント(例えば、夫のAT
M)がアクセスを要求したとき、データベース内に記憶
された家族の口座データへのアクセスをロックする。そ
うすれば、妻のトランザクションが同時に要求されて
も、夫のトランザクションは絶縁され続ける。妻のクラ
イアントATMは、夫のクライアントATMがすでにデ
ータ上にロックを有しているから、データへのアクセス
を許可されない。
【0017】サーバ・アプリケーション(すなわち、D
BMS)に並行制御の責任を持たせることは、複雑なロ
ッキング手法を管理システム・ソフトウェアにすでに組
み込まれた前記のようなデータベース・サーバでは良好
に働いた。しかし、他種のアプリケーションを使用しよ
うとするとき、上記のシステムは、サーバ・アプリケー
ション・プログラマーが、オブジェクト指向プログラム
を書きながら複雑なロッキング体系をそのプログラムに
組み込むことを必要とする。さらに、プログラマーは、
適切なトランザクション状況をプログラムの並行制御局
面に作り出すために、トランザクション理論の徹底的な
知識をもっていなければならない。
【0018】この問題を克服するため、IBM社は、ト
ランザクション・ロッキングがORB(図2のORB2
1)内で実行される方法を開示する特許出願(英国特許
出願第9701566.3号)を1997年1月25日
に出願した。すなわち、各クライアント要求がORB2
1を介してオブジェクト・アダプタ22へ伝えられると
き、前記の方法は、サーバ資源上のロックが必要かどう
かを決定し、もしロックが現在保持されているロックと
衝突しなければ、そのようなロックを得る。もし衝突が
存在すれば、現在保持されて衝突するロック(前の要求
から生じる)が解放されるまで、到着する要求は待たな
ければならない。
【0019】これら従来技術のアプローチの双方におい
て、並行制御を実行するためにはサーバ資源上でロック
を得ることが必要である。そのようなロックを得る場合
に含まれる処理ステップは次のとおりである。まず、到
着する要求が利用可能なスレッドへディスパッチされ、
従ってサーバ・オブジェクトのインスタンスが具体化さ
れる。第2に、サーバ・オブジェクトのこの特定のイン
スタンスに対するローカル記憶装置がこのスレッドのた
めに獲得される。第3に、サーバ・オブジェクトに関連
したプログラムとデータが前記記憶装置にロードされ
る。第4に、関連するファイルが実行のためにアクセス
される。最後に、前記4つのステップのすべてが実行さ
れた後に、サーバ・オブジェクト上でロックが獲得さ
れ、後続の要求がサーバ・オブジェクト資源への前記到
着要求のアクセスと衝突しないようにされる。次にディ
スパッチされる要求については、最初の4つのステップ
が実行され、もしこの要求がロックされた資源へのアク
セスを必要とすれば、その要求は、第1要求から生じる
サーバ・オブジェクトのロックが解放されるまで待たな
ければならない。
【0020】
【発明が解決しようとする課題】並行制御を実行するた
めにロックを使用すると、しばしば中央処理ユニット
(CPU)の資源を非効率的に使用する結果となる。特
に、並行要求の数が増加するときにそうである。例え
ば、2000人のユーザのすべてが同じ外国為替レート
・オブジェクトを共用しており、それらの中の1999
人がポピュラーな外国為替レート(例えば、米国ドルか
ら英国ポンドへ)の最新値を得たいと思い、一人のユー
ザが為替レートの値を更新する要求を出しているものと
仮定する。ロックを使用すると、2000のスレッドを
使用することになり、2000のローカル記憶装置を割
り振る結果となる。この多くの要求をスレッドへディス
パッチし、この多くの記憶領域を獲得し、多数のプログ
ラムをロードし、多数のファイルにアクセスするとき、
非常に多数のCPU処理サイクルが必要となる。従っ
て、そのような技術としては、クライアント要求をディ
スパッチする、もっと効率的な方法が大いに必要であ
る。
【0021】
【課題を解決するための手段】1つの局面に従えば、本
発明は、異種オブジェクト指向クライアント/サーバ・
コンピューティング環境でサーバ・オブジェクトによっ
て実行されるクライアント要求をディスパッチする装置
を提供する。この装置は、クライアント要求を装置へ伝
える通信チャネルへ接続された入力及び出力を有する要
求保持バッファと、該要求保持バッファの出力に接続さ
れた複数の並列実行スレッドと、前記要求保持バッファ
内の要求の意味及び複数の並列実行スレッドの任意のも
ので現在実行されている各要求の意味を検査し、要求の
検査された意味が、要求のディスパッチによってサーバ
・オブジェクト資源への衝突アクセスを生じることを示
す場合、前記要求保持バッファから実行スレッドへの要
求のディスパッチを遅延させる意味並行制御手段とを備
えている。
【0022】要求保持バッファはオブジェクト・アダプ
タ内に含まれることが望ましい。さらに、通信チャネル
はオブジェクト要求ブローカを含むことが望ましい。さ
らに、意味並行制御手段は、バッファ内の要求のディス
パッチがすでにスレッドへディスパッチされた要求と衝
突するかどうかを決定するとき、サーバ・オブジェクト
の状態を考慮に入れることが望ましい。
【0023】第2の局面に従えば、本発明は、異種オブ
ジェクト指向クライアント/サーバ・コンピューティン
グ環境でサーバ・オブジェクトによって実行されるクラ
イアント要求をディスパッチする方法を提供する。この
方法は、クライアント要求を装置へ伝える通信チャネル
へ接続された入力及び出力を有する要求保持バッファの
中の要求の意味を検査するステップと、該要求保持バッ
ファの出力に接続された複数の並列実行スレッドの任意
のもので現在実行されている各要求の意味を検査するス
テップと、要求の検査された意味が、要求のディスパッ
チによってサーバ・オブジェクト資源への衝突アクセス
を生じることを示す場合、前記要求保持バッファから実
行スレッドへの要求のディスパッチを遅延させるステッ
プとを含む。
【0024】第3の局面に従えば、本発明は、本発明の
第2の局面の方法をコンピュータ上で実行するコンピュ
ータ・プログラム製品を提供する。
【0025】従って、本発明では、サーバ・オブジェク
ト資源上にロックを得る必要はないので、サーバで受け
取られたクライアント要求に関するサーバ・オブジェク
トの並行制御は、CPU処理サイクルの非常に大きな節
約を伴う高度に効率的な方式で実行することができる。
具体的には、ロックが獲得されるとき、バッファ中のす
べての要求はスレッドへディスパッチされ、記憶装置が
ディスパッチされた各要求へ割り振られ、他の関連した
処理がディスパッチされた各要求のために起こる。しか
し、本発明では、スレッド上で現在実行されている他の
要求との関連で、1つの要求がサーバ・オブジェクト資
源への衝突アクセスを含まないことが決定されるまで、
その要求はバッファからディスパッチされない(そし
て、その要求に記憶装置は割り振られない)。
【0026】
【発明の実施の形態】図3の実施例において、クライア
ント・プロセスからサーバ・プロセスに受け取られる要
求は、まずサーバのORB31によって受け取られる。
次に、ORB31は、特定のサーバ・オブジェクトへ向
けられた要求を、そのサーバ・オブジェクトのオブジェ
クト・アダプタ32へ渡す。このサーバ・オブジェクト
は多数の並列実行スレッド33a、33b、33cを有
し、それらの並列実行スレッドでは、多数のクライアン
ト要求を実行するために、サーバ・オブジェクトの異な
ったインスタンスを並列に実行することができる。これ
については、前に説明した図2の従来技術と同じであ
る。
【0027】図3の本発明の実施例に従えば、他のソフ
トウェア・ユニットが図2の従来技術に付け加えられ
る。他のソフトウェア・ユニットとは、オブジェクト・
アダプタ32及び実行スレッド33a〜33cの各々か
ら入力を受け取り出力をオブジェクト・アダプタ32へ
与える並行制御ユニット34である。並行制御ユニット
34は、クライアント要求のディスパッチがサーバ・オ
ブジェクト資源への衝突アクセスを生じるときにはオブ
ジェクト・アダプタ32内のクライアント要求が実行ス
レッドへディスパッチされないように保証する機能を実
行する。
【0028】実施例の動作を説明するため、以下の例で
は、サーバ・オブジェクトは銀行口座を表す。従って、
説明される各種の要求は、特定の銀行口座にアクセスす
る要求である。1つの要求は、この口座から預金を引き
出すクライアントATM(現金自動預入支払機)から来
る。この要求は、預金の引き出しを希望する口座所有者
から来る。第2の要求は銀行の職員から来る。この職員
は、その銀行口座に関連する超過引き出し金額の発見を
要求している(おそらく、口座残高はゼロに近づいてお
り、銀行職員は口座が赤になるのを心配している)。第
3の要求は、口座の残高をチェックする他のクライアン
トATMから来る。この要求は、口座所有者から離れた
町の別の場所で他のクライアントATMマシンを使用し
ている口座所有者の妻から来る。
【0029】並行制御ユニット34は、オブジェクト・
アダプタ32内のバッファのトップに位置する要求(実
行スレッド33a、33b、又は33cへ次にディスパ
ッチされる要求)から入力を受け取り、その要求の意味
を決定する。すなわち、並行制御ユニット34は、この
要求が銀行口座オブジェクトへの読み取りアクセスを要
求しているか、銀行口座オブジェクトへの書き込みアク
セスを要求しているか、銀行口座オブジェクトへの読み
取りアクセスも書き込みアクセスも要求していないかを
決定する。
【0030】さらに、並行制御ユニット34は、スレッ
ド上で現在実行されている要求の意味を決定するため
に、実行スレッド33a、33b、33cの各々から入
力を受け取る。すなわち、並行制御ユニット34は、ス
レッド上で実行されている各要求が、銀行口座オブジェ
クトへの読み取りアクセスを含むか、銀行口座オブジェ
クトへの書き込みアクセスを含むか、銀行口座オブジェ
クトへの読み取りアクセスも書き込みアクセスも含まな
いかを決定する。
【0031】次に、並行制御ユニット34は、オブジェ
クト・アダプタ32のバッファのトップに位置する要求
の意味と、実行スレッド33a、33b、33cの各々
で現在実行されている要求の各々の意味とを比較する。
並行制御ユニット34は、バッファのトップに位置する
要求のディスパッチがサーバ・オブジェクト資源への衝
突アクセスを生じない場合にのみ、その要求が利用可能
なスレッドへディスパッチされるのを許す。
【0032】例えば、バッファ内のトップの要求が、銀
行口座の残高をチェックする妻の要求であれば、並行制
御ユニット34は、この要求の意味をチェックし、それ
が読み取り要求であることを決定する。この要求は銀行
口座の残高を読み取ろうとしているにすぎない(この口
座に関連したデータベースの値を変更しようとしている
ものではない)。ここで、実行スレッドの任意のもの
(例えば、実行スレッド33a)で実行されている唯一
の要求が、口座の前もって設定された超過引き出しをチ
ェックする銀行職員の要求であれば、並行制御ユニット
34は、その要求の意味をチェックして、それが読み取
り要求であることを再び決定する(単に超過引き出し金
額を調べて、それを銀行職員へ知らせるには、記憶され
た値を変更する必要はない)。これら2つの要求は共に
読み出し要求であるから、並行制御ユニット34はオブ
ジェクト・アダプタ32内のトップの要求を他のスレッ
ドの1つ(例えば、実行スレッド33b)へディスパッ
チする。
【0033】しかし、預金を引き出そうとしている口座
所有者の要求が、現在、実行スレッド33aで実行され
ており、オブジェクト・アダプタ32内のトップの要求
が、この口座の残高をチェックする口座所有者の妻の要
求である場合、異なった結果が達成される。現在、実行
スレッド33aで実行されている要求の意味は、それが
書き込み要求であることを示すから(それは銀行口座の
残高を減少させる結果となる)、オブジェクト・アダプ
タのバッファにあるトップの要求(これは同じ値を読み
取ろうとしている)はスレッドへディスパッチされず、
実行スレッド33a上で実行されている要求が終了する
まで待たせられる。
【0034】本発明の実施例によって実行されるステッ
プは、図4のフローチャートに示される。
【0035】ステップ41で、並行制御ユニット34
は、オブジェクト・アダプタ32のバッファのトップに
ある要求の意味を検査する(その要求は、次にバッファ
からディスパッチされるべき要求である)。すなわち、
並行制御ユニット34は、その要求がサーバ・オブジェ
クト資源への読み取りアクセスを要求しているのか、書
き込みアクセスを要求しているのかを決定する。
【0036】ステップ42で、並行制御ユニット34
は、実行スレッド33a、33b、33cの各々で現在
実行されている要求の意味を検査する。すなわち、並行
制御ユニット34は、それら要求の各々がサーバ・オブ
ジェクト資源への読み取りアクセスを実行しているの
か、書き込みアクセスを実行しているのかを決定する。
【0037】ステップ43で、並行制御ユニット34
は、ステップ41及び42で収集した情報を使用して、
トップの要求を利用可能な実行スレッドの1つへディス
パッチできるのか(ステップ44)、現在実行されてい
る要求の少なくとも1つの実行がサーバ・オブジェクト
資源へのアクセスを終了するまでディスパッチを待たな
ければならないのか(ステップ45)を決定する。それ
が行われる詳細は次のとおりである。すなわち、読み取
り要求がバッファのトップでディスパッチを待ってお
り、現在実行されている要求のすべてが同様に読み取り
要求である場合、読み取り要求を利用可能なスレッドへ
ディスパッチして、並行実行を行わせることができる。
なぜなら、同じサーバ・オブジェクト資源上で並行する
読み取り動作の間に衝突は存在しないからである。しか
し、書き込み動作が他の書き込み動作又は読み取り動作
と並行して実行されている場合、衝突が存在する。従っ
て、ディスパッチのときに後者の状態が存在すれば、並
行制御ユニット34はオブジェクト・アダプタ32のト
ップの要求のディスパッチを遅延させる。
【0038】さらに、サーバ・オブジェクトの性質に従
って、並行制御ユニット34は、要求のディスパッチを
許すかどうかを決定するとき、サーバ・オブジェクトの
現在の状態を考慮することができる。例えば、サーバ・
オブジェクトが待ち行列であり、その各々の要素が読み
取りおよび書き込み目的のために個別にアドレス可能で
あると仮定する。第1のトランザクションからの1つの
要求は、待ち行列の最初にある要素を読み取る要求であ
り、この要求はすでに実行スレッドへディスパッチされ
ている。ここで、待ち行列の最後の要素への書き込みを
要求している第2の要求(これはディスパッチを待って
いる)は、第1の要求がすでに読み取りアクセスを許可
された同じサーバ・オブジェクトへの書き込みアクセス
を要求している場合でも、同じサーバ・オブジェクトへ
並行してディスパッチすることができる(待ち行列は空
でないとする)。その理由は、第2の要求は書き込み要
求ではあるが、第1の要求(これは読み取り要求であ
る)と衝突しないからである。サーバ・オブジェクトは
複数の要素から構成されているから、これら要素の各々
は相互に衝突することなく異なった要求によって別個に
アクセスすることができる。
【0039】さらに、並行制御ユニット34は、次にデ
ィスパッチする候補としてバッファ内のトップの要求の
みを常に考慮する必要はない。並行制御ユニット34は
バッファ内のすべての要求を検査し、順序に関係なくデ
ィスパッチのために取り出すことができる。
【0040】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)異種オブジェクト指向クライアント/サーバ・コ
ンピューティング環境でサーバ・オブジェクトによって
実行されるクライアント要求をディスパッチする装置で
あって、クライアント要求を前記装置に伝える通信チャ
ネルへ接続された入力及び出力を有する要求保持バッフ
ァと、前記要求保持バッファの出力に接続された複数の
並列実行スレッドと、前記要求保持バッファ内の要求の
意味及び前記複数の並列実行スレッドの任意のもので現
在実行されている各要求の意味を検査し、要求の検査さ
れた意味が、要求のディスパッチによってサーバ・オブ
ジェクト資源への衝突アクセスを生じることを示す場
合、前記要求保持バッファから実行スレッドへの要求の
ディスパッチを遅延させる意味並行制御手段とを備え
た、クライアント要求をディスパッチする装置。 (2)前記要求保持バッファがオブジェクト・アダプタ
に含まれる、上記(1)に記載のクライアント要求をデ
ィスパッチする装置。 (3)前記通信チャネルが、オブジェクト要求ブローカ
を含む、上記(1)に記載のクライアント要求をディス
パッチする装置。 (4)前記意味並行制御手段が、前記要求保持バッファ
内の要求のディスパッチがすでにスレッドへディスパッ
チされた要求と衝突するかどうかを決定するときサーバ
・オブジェクトの状態を考慮する、上記(1)に記載の
クライアント要求をディスパッチする装置。 (5)異種オブジェクト指向クライアント/サーバ・コ
ンピューティング環境でサーバ・オブジェクトによって
実行されるクライアント要求をディスパッチする方法で
あって、クライアント要求を装置に伝える通信チャネル
へ接続された入力及び出力を有する要求保持バッファの
中の要求の意味を検査するステップと、前記要求保持バ
ッファの出力に接続された複数の並列実行スレッドの任
意のもので現在実行されている各要求の意味を検査する
ステップと、要求の検査された意味が、要求のディスパ
ッチによってサーバ・オブジェクト資源への衝突アクセ
スを生じることを示す場合、前記要求保持バッファから
実行スレッドへの要求のディスパッチを遅延させるステ
ップとを含む、クライアント要求をディスパッチする方
法。 (6)前記要求保持バッファがオブジェクト・アダプタ
内に含まれる、上記(5)に記載のクライアント要求を
ディスパッチする方法。 (7)前記通信チャネルがオブジェクト要求ブローカを
含む、上記(5)に記載のクライアント要求をディスパ
ッチする方法。 (8)異種オブジェクト指向クライアント/サーバ・コ
ンピューティング環境でサーバ・オブジェクトによって
実行されるクライアント要求をディスパッチする方法を
コンピュータ上で実行する、コンピュータ読み取り可能
記憶媒体に記憶されたコンピュータ・プログラム製品で
あって、前記方法が、クライアント要求を装置に伝える
通信チャネルへ接続された入力及び出力を有する要求保
持バッファの中の要求の意味を検査するステップと、前
記要求保持バッファの出力に接続された複数の並列実行
スレッドの任意のもので現在実行されている各要求の意
味を検査するステップと、要求の検査された意味が、要
求のディスパッチによってサーバ・オブジェクト資源へ
の衝突アクセスを生じることを示す場合、前記要求保持
バッファから実行スレッドへの要求のディスパッチを遅
延させるステップとを含む、コンピュータ・プログラム
製品。 (9)前記要求保持バッファがオブジェクト・アダプタ
内に含まれる、上記(8)に記載のコンピュータ・プロ
グラム製品。 (10)前記通信チャネルがオブジェクト要求ブローカ
を含む、上記(8)に記載のコンピュータ・プログラム
製品。
【図面の簡単な説明】
【図1】本発明を適用できる、オブジェクト・テクノロ
ジを使用する周知の異種クライアント/サーバ・アーキ
テクチャのブロック図である。
【図2】通常設計に従ったサーバ・アーキテクチャのブ
ロック図である。
【図3】本発明の実施例に従ったサーバ・アーキテクチ
ャのブロック図である。
【図4】本発明の実施例に従った処理ステップを示すフ
ローチャートである。
【符号の説明】
10 クライアント・コンピュータ 20 サーバ・コンピュータ 21 ORB 22 オブジェクト・アダプタ 23a 実行スレッド 23b 実行スレッド 23c 実行スレッド 31 ORB 32 オブジェクト・アダプタ 33a 実行スレッド 33b 実行スレッド 33c 実行スレッド 34 並行制御ユニット 40 アプリケーション・プログラム 50 第1の論理手段 60 記憶装置 70 オブジェクト・クラス結合性フレームワーク 80 接続手段 90 第2の論理手段 100 サービス・アプリケーション 110 記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アイン・スチュアート・キャルドウェル・ ヒューストン イギリス国ディーティー9 6エスディー ドーセット州、 シャーボーン、 ブラ ッドフォード・アバス、 ノース・ストリ ート、 コンベ・コテージ 1

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】異種オブジェクト指向クライアント/サー
    バ・コンピューティング環境でサーバ・オブジェクトに
    よって実行されるクライアント要求をディスパッチする
    装置であって、 クライアント要求を前記装置に伝える通信チャネルへ接
    続された入力及び出力を有する要求保持バッファと、 前記要求保持バッファの出力に接続された複数の並列実
    行スレッドと、 前記要求保持バッファ内の要求の意味及び前記複数の並
    列実行スレッドの任意のもので現在実行されている各要
    求の意味を検査し、要求の検査された意味が、要求のデ
    ィスパッチによってサーバ・オブジェクト資源への衝突
    アクセスを生じることを示す場合、前記要求保持バッフ
    ァから実行スレッドへの要求のディスパッチを遅延させ
    る意味並行制御手段とを備えた、 クライアント要求をディスパッチする装置。
  2. 【請求項2】前記要求保持バッファがオブジェクト・ア
    ダプタに含まれる、請求項1に記載のクライアント要求
    をディスパッチする装置。
  3. 【請求項3】前記通信チャネルが、オブジェクト要求ブ
    ローカを含む、請求項1に記載のクライアント要求をデ
    ィスパッチする装置。
  4. 【請求項4】前記意味並行制御手段が、前記要求保持バ
    ッファ内の要求のディスパッチがすでにスレッドへディ
    スパッチされた要求と衝突するかどうかを決定するとき
    サーバ・オブジェクトの状態を考慮する、請求項1に記
    載のクライアント要求をディスパッチする装置。
  5. 【請求項5】異種オブジェクト指向クライアント/サー
    バ・コンピューティング環境でサーバ・オブジェクトに
    よって実行されるクライアント要求をディスパッチする
    方法であって、 クライアント要求を装置に伝える通信チャネルへ接続さ
    れた入力及び出力を有する要求保持バッファの中の要求
    の意味を検査するステップと、 前記要求保持バッファの出力に接続された複数の並列実
    行スレッドの任意のもので現在実行されている各要求の
    意味を検査するステップと、 要求の検査された意味が、要求のディスパッチによって
    サーバ・オブジェクト資源への衝突アクセスを生じるこ
    とを示す場合、前記要求保持バッファから実行スレッド
    への要求のディスパッチを遅延させるステップとを含
    む、 クライアント要求をディスパッチする方法。
  6. 【請求項6】前記要求保持バッファがオブジェクト・ア
    ダプタ内に含まれる、請求項5に記載のクライアント要
    求をディスパッチする方法。
  7. 【請求項7】前記通信チャネルがオブジェクト要求ブロ
    ーカを含む、請求項5に記載のクライアント要求をディ
    スパッチする方法。
  8. 【請求項8】異種オブジェクト指向クライアント/サー
    バ・コンピューティング環境でサーバ・オブジェクトに
    よって実行されるクライアント要求をディスパッチする
    方法をコンピュータ上で実行する、コンピュータ読み取
    り可能記憶媒体に記憶されたコンピュータ・プログラム
    製品であって、前記方法が、 クライアント要求を装置に伝える通信チャネルへ接続さ
    れた入力及び出力を有する要求保持バッファの中の要求
    の意味を検査するステップと、 前記要求保持バッファの出力に接続された複数の並列実
    行スレッドの任意のもので現在実行されている各要求の
    意味を検査するステップと、 要求の検査された意味が、要求のディスパッチによって
    サーバ・オブジェクト資源への衝突アクセスを生じるこ
    とを示す場合、前記要求保持バッファから実行スレッド
    への要求のディスパッチを遅延させるステップとを含
    む、 コンピュータ・プログラム製品。
  9. 【請求項9】前記要求保持バッファがオブジェクト・ア
    ダプタ内に含まれる、請求項8に記載のコンピュータ・
    プログラム製品。
  10. 【請求項10】前記通信チャネルがオブジェクト要求ブ
    ローカを含む、請求項8に記載のコンピュータ・プログ
    ラム製品。
JP11009173A 1998-02-04 1999-01-18 クライアント要求をディスパッチする装置及び方法 Pending JPH11272484A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9802298A GB2334117A (en) 1998-02-04 1998-02-04 Performing semantic concurrency control in dispatching server computer client requests
GB9802298.1 1998-02-04

Publications (1)

Publication Number Publication Date
JPH11272484A true JPH11272484A (ja) 1999-10-08

Family

ID=10826390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11009173A Pending JPH11272484A (ja) 1998-02-04 1999-01-18 クライアント要求をディスパッチする装置及び方法

Country Status (7)

Country Link
US (1) US6289343B1 (ja)
EP (1) EP0936544A3 (ja)
JP (1) JPH11272484A (ja)
KR (1) KR100322224B1 (ja)
CN (1) CN1225473A (ja)
GB (1) GB2334117A (ja)
TW (1) TW373146B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507903B1 (en) 2000-06-20 2003-01-14 International Business Machines Corporation High performance non-blocking parallel storage manager for parallel software executing on coordinates
US7140018B1 (en) 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
US6763520B1 (en) * 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
CA2322604C (en) * 2000-10-06 2005-06-28 Ibm Canada Limited - Ibm Canada Limitee Deadlock management in database systems with demultiplexed connections
WO2003029975A2 (en) * 2001-09-28 2003-04-10 British Telecommunications Public Limited Company Client server model
KR100899527B1 (ko) * 2002-06-25 2009-05-27 주식회사 케이티 웹 서비스의 멀티쓰레드 운용 시스템 및 방법
US7093230B2 (en) * 2002-07-24 2006-08-15 Sun Microsystems, Inc. Lock management thread pools for distributed data systems
US6986010B2 (en) * 2002-12-13 2006-01-10 Intel Corporation Cache lock mechanism with speculative allocation
US7404067B2 (en) * 2003-09-08 2008-07-22 Intel Corporation Method and apparatus for efficient utilization for prescient instruction prefetch
US8176117B2 (en) * 2003-12-19 2012-05-08 Stmicroelectronics, Inc. Accelerator for object-oriented communications and method
CN100444566C (zh) * 2004-02-20 2008-12-17 中兴通讯股份有限公司 一种多用户并发接入装置及其方法
KR100683172B1 (ko) * 2005-02-14 2007-02-15 삼성전기주식회사 그룹 상황 정보 관리를 위한 추상적 서비스의 의미를 이용한 응용 프로그램간의 충돌 제어 방법 및 그 시스템
CN1327662C (zh) * 2005-07-07 2007-07-18 浙江大学 分布式图案协同设计中的动态多光标感知方法
US7823158B2 (en) 2005-08-18 2010-10-26 International Business Machines Corporation Adaptive scheduling and management of work processing in a target context in resource contention
US7720891B2 (en) * 2006-02-14 2010-05-18 Oracle America, Inc. Synchronized objects for software transactional memory
US7801852B2 (en) * 2007-07-31 2010-09-21 Oracle International Corporation Checkpoint-free in log mining for distributed information sharing
US8799213B2 (en) * 2007-07-31 2014-08-05 Oracle International Corporation Combining capture and apply in a distributed information sharing system
US9230002B2 (en) 2009-01-30 2016-01-05 Oracle International Corporation High performant information sharing and replication for single-publisher and multiple-subscriber configuration
JP2010218506A (ja) * 2009-03-19 2010-09-30 Olympus Corp 分散処理システム、コントロール・ユニット、及びクライアント
US8046633B2 (en) * 2009-12-10 2011-10-25 International Business Machines Corporation Improving data availability during failure detection and recovery processing in a shared resource system
WO2012070727A1 (ko) * 2010-11-23 2012-05-31 경상대학교 산학협력단 Arinc-653 기반 항공기용 컴퓨터 시스템에서 멀티 스레드 프로그램의 경합 치유 방법 및 시스템
US20140249927A1 (en) 2013-03-04 2014-09-04 Michael De Angelo System and method for cyclic recognition-primed notifications and responsive situational awareness in an advertising display network
US11573823B2 (en) * 2019-11-18 2023-02-07 International Business Machines Corporation Parallel execution of applications

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2898012B2 (ja) 1989-04-28 1999-05-31 富士通株式会社 計算機資源の排他制御方式
JP2915074B2 (ja) 1990-05-16 1999-07-05 日本電信電話株式会社 マルチタスク処理システムにおけるイベントデキューイング方法
US5129152A (en) * 1990-12-20 1992-07-14 Hughes Aircraft Company Fast contact measuring machine
JPH05158777A (ja) 1991-12-05 1993-06-25 Hitachi Ltd データ管理システム
JPH0659917A (ja) 1992-08-05 1994-03-04 Hitachi Ltd 共用資源の排他制御方式
US5999942A (en) * 1993-02-11 1999-12-07 Appage Corporation Method and apparatus for enforcement of behavior of application processing systems without modifying application processing systems
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US5758184A (en) * 1995-04-24 1998-05-26 Microsoft Corporation System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads
EP0787396A1 (en) 1995-08-18 1997-08-06 International Business Machines Corporation Parallel execution of requests in osi agents
US5734909A (en) * 1995-09-01 1998-03-31 International Business Machines Corporation Method for controlling the locking and unlocking of system resources in a shared resource distributed computing environment
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
US5778378A (en) * 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
FR2751106B1 (fr) * 1996-07-11 1999-01-08 Alsthom Cge Alcatel Methode de planification de transactions distribuees
US6041383A (en) * 1996-07-22 2000-03-21 Cabletron Systems, Inc. Establishing control of lock token for shared objects upon approval messages from all other processes
GB2320594A (en) * 1996-12-20 1998-06-24 Ibm Dispatching client method calls to parallel execution threads within a server
GB2321540A (en) 1997-01-25 1998-07-29 Ibm Automatic transactional locking using object request broker
GB2327134B (en) * 1997-07-08 2002-04-03 Ibm Apparatus,method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources

Also Published As

Publication number Publication date
CN1225473A (zh) 1999-08-11
KR100322224B1 (ko) 2002-02-07
EP0936544A3 (en) 2006-07-26
KR19990072256A (ko) 1999-09-27
GB2334117A (en) 1999-08-11
GB9802298D0 (en) 1998-04-01
US6289343B1 (en) 2001-09-11
EP0936544A2 (en) 1999-08-18
TW373146B (en) 1999-11-01

Similar Documents

Publication Publication Date Title
JPH11272484A (ja) クライアント要求をディスパッチする装置及び方法
US7281050B2 (en) Distributed token manager with transactional properties
JP3048894B2 (ja) 資源変更トランザクション要求を制御する方法およびシステム
US6052731A (en) Apparatus, method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources
EP0855649B1 (en) Apparatus and method for automatic transactional locking in an object-oriented computer system
EP0849921B1 (en) Apparatus and method for dispatching client method calls within a server computer system
US5852732A (en) Heterogeneous operations with differing transaction protocols
JPH11259443A (ja) クライアント要求をスケジュ―ルしディスパッチする装置及び方法
US20030131041A1 (en) System and method for coordinating access to data for a distributed application
JPH08286918A (ja) 手順トランザクション・コーディネータと相互動作するオブジェクト指向トランザクション・サービスを作成するためのシステムおよび方法
JPH08286962A (ja) 処理システム及びオブジェクト活動化をスケジュールする方法
US6044404A (en) Apparatus, method and computer program for providing arbitrary locking modes for controlling concurrent access to server resources
JP3579353B2 (ja) クライアント/サーバ・コンピューティング・システム、およびクライアント/サーバ処理方法
US6345316B1 (en) Apparatus, method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction state data
KR100403659B1 (ko) 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체
JP3628577B2 (ja) サーバ・データ処理装置、操作方法および記憶装置
US6324589B1 (en) Apparatus, method and computer program product for client/server computing with reduced cross-process calls
US6829632B1 (en) Apparatus, method and computer program product for client/server computing with timing of creation of coordinator transaction state object being based on triggering events