JPH10320220A - 記述子を転送する方法および装置 - Google Patents

記述子を転送する方法および装置

Info

Publication number
JPH10320220A
JPH10320220A JP10068531A JP6853198A JPH10320220A JP H10320220 A JPH10320220 A JP H10320220A JP 10068531 A JP10068531 A JP 10068531A JP 6853198 A JP6853198 A JP 6853198A JP H10320220 A JPH10320220 A JP H10320220A
Authority
JP
Japan
Prior art keywords
descriptor
server
work
request
work request
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.)
Granted
Application number
JP10068531A
Other languages
English (en)
Other versions
JP3251902B2 (ja
Inventor
F Olto Donald
ドナルド・エフ・オルト
D Aman Jeffrey
ジェフリー・ディー・アマン
S Bender Ernest
アーネスト・エス・ベンダー
Dyrenberger Donna
ドンナ・ディレンバーガー
B Emes David
デヴィット・ビー・エメス
G Spiegel Michael
マイケル・ジー・スピイジェル
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 JPH10320220A publication Critical patent/JPH10320220A/ja
Application granted granted Critical
Publication of JP3251902B2 publication Critical patent/JP3251902B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 聴取デーモンからトランザクション・モデル
を実行しているサーバへソケット接続を転送する方法を
提供する。 【解決手段】 聴取デーモンは、クライアントからの要
求を受け取ると直ちに会話を受け入れ、ソケットを作成
する。次に、聴取デーモンは、作業要求をシステムによ
って管理される作業待ち行列上に置くputwork呼
び出しを実行する。しばらくして、手作業またはオペレ
ーティング・システムによって作成されたサーバ・プロ
セスが複数のスレッドを作成する。これらのスレッド
は、聴取デーモンにより作成された作業要求を取り出す
ため、getworkサービスを呼び出す。getwo
rkサービスはソケットを呼び出し側のプロセスへ転送
し、それが引き継いだファイル記述子をスレッドへ通知
する。したがって、スレッドは通信リンクを提供する中
間プロセスを必要とせず、クライアントの要求を処理し
クライアントへ直接応答することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はファイル記述子(さ
らに具体的には、ソケット記述子)を第一のサーバ・プ
ロセスから第二のサーバ・プロセスへ(さらに具体的に
は、マルチプロセス、マルチスレッドのクライアント/
サーバ・システム内の複数のサーバ・プロセスの1つで
実行されているスレッドへ)転送することに関する。
【0002】
【従来の技術】クライアント/サーバ・システムはデー
タ処理の分野でよく知られている。クライアント/サー
バ・システムでは、クライアント・プロセスがサーバ・
プロセスへ要求を出し、クライアント・プロセスのため
にサービスを実行するように要求する。サーバは、それ
に応答して、クライアントへ返答を送り、サービスの結
果をクライアントへ通知する。
【0003】現在、多くのサーバ・アプリケーションが
存在しており、開発者は種々の能力をもったサーバ・シ
ステム上でそれらのサーバ・アプリケーションを実行で
きることを望んでいる。これらのサーバ・アプリケーシ
ョンは、それらが実行されるコンピュータの大きさへス
ケールを合わせる必要がある。本発明は、1つのサーバ
に対して同時に要求される何千という作業要求をどのよ
うにサポートするかを問題としている。
【0004】現在、サーバに要求を出す多くのクライア
ントをサポートするモデルに2つがある。第一のモデル
は、各クライアントのために別個のプロセスすなわちア
ドレス空間をサーバに作成させる(典型的には、for
k()またはspawn()のシステム呼び出しを使用
して)。第二のモデルは、各クライアントのために別個
のスレッドすなわちタスクをサーバに作成させる(たと
えば、pthread_create()システム呼び
出しを使用して)。
【0005】プロセス・モデル(前記第一のモデル)に
は、いくつかの欠点がある。各プロセスの作成は大きな
システム・オーバヘッドを生じる傾向がある。各プロセ
スは、一度作成されると、記憶域のようなシステム資源
をかなり消費する。オペレーティング・プロセスは、一
般的にそれがサポートできるプロセスの数に制限を設け
ている。多くのクライアント/サーバ関係では、クライ
アントが長い時間にわたってアイドル状態になる。この
場合、アドレス空間をクライアントのために結合するこ
とは、受け入れ難い資源の浪費である。プロセス・モデ
ルでは、サーバは典型的にはソケット接続を確立するこ
とによってクライアントへの接続を設定する。ソケット
はソケット記述子によって表され、このソケット記述子
はfork()またはspawn()システム呼び出し
上で子プロセスへ引き継がれる。
【0006】スレッド・モデル(前記第二のモデル)で
は、異なった問題が存在する。単一プロセス内でサポー
トできるスレッドの数は、いくつかの要因によって制限
される。主な制限要因は、1つのスレッドによって消費
される記憶域とスレッド間の直列化である。スレッド・
モデルでは、サーバ内の主なスレッドが、ソケット接続
を確立することによってクライアントへの接続を確立す
る。ソケットはソケット記述子によって表され、このソ
ケット記述子はサーバ・プロセス中のすべてのスレッド
によって共用される。
【0007】一般的な問題の具体的な例として、1つの
システムが400のプロセスをサポートし、各プロセス
が最大で200のスレッドをサポートできる場合を考え
る。サーバが4000のクライアントをサポートする必
要があるとき、プロセス・モデルもスレッド・モデルも
十分に機能しない。
【0008】この問題を解決するためには、作業負荷を
複数のプロセス間に分配する必要がある。これらのプロ
セスは最初のサーバの拡張として動作する。どのプロセ
スを論じているかを明確にするために、最初のサーバを
「聴取デーモン(listening daemo
n)」と呼ぶことにする。なぜなら、その仕事はクライ
アントからの接続を聴取することだからである。クライ
アントの作業を実行するプロセスは、単に「サーバ・プ
ロセス」または「サーバ」と呼ぶことにする。
【0009】上記の例では、1つの聴取デーモンと20
のサーバ(その各々は200のスレッドを実行する)が
あればよい。この構成で、最適のパフォーマンスを得る
ために、サーバの数と各サーバ内のスレッドの数を変動
させることができる。
【0010】新しいプロセスを作成するfork()お
よびspawn()サービス、および新しいスレッドを
作成するpthread_create()サービス
は、ソケットを表す記述子を含めてファイル記述子を渡
すか共用するメカニズムを提供する。しかし、本発明が
使用される環境のようにクライアントへの接続が確立さ
れる前にサーバ空間が作成されているような場合には、
このようなサービスは役に立たない。したがって、聴取
デーモンが、クライアントの要求が実行されるスレッド
への接続を渡すことができる新しいメカニズムが必要で
ある。
【0011】この問題はすでに解決を試みられていた
が、その解決方法のパフォーマンスは、ある環境では許
容できないものであった。すなわち、1つの方法では、
聴取デーモンが会話を受け入れ、次に、ある種の作業負
荷平衡アルゴリズムを使用して、クライアントが実際に
どこに接続されるべきかを決定する。この場合、各サー
バは別個のポートを所有していてよい。次に、聴取デー
モンはクライアントへ応答を送り、特定のポートへ再接
続するようにクライアントへ命令し、そのポートによっ
てクライアントは利用可能なサーバを獲得する。
【0012】他の方法では、聴取デーモンが各サーバへ
の別個の通信経路(パイプ)を維持する必要がある。聴
取デーモンが接続要求を受け取ったとき、それは選択さ
れたサーバへ情報を渡す必要がある。次に、聴取デーモ
ンはクライアントへの接続を破棄し、その間にサーバは
その接続を再確立する。
【0013】前述した2つの方法のいずれも、クライア
ントと実際に作業を実行するサーバとの間に接続を確立
するとき二重のオーバヘッドが発生する。ある種のサー
バでは、サーバは接続本位に構成されているから、この
ようなオーバヘッドは許容される。このことは、接続を
確立するのに必要なオーバヘッドと比較して、サーバが
長時間クライアントへの接続を維持することを意味す
る。しかし、他のクライアント/サーバ・システムはト
ランザクション型モデルを使用する。このモデルでは、
クライアントは、単一要求の間のみ接続を確立する要求
を行う。ワールド・ワイド・ウェブはトランザクション
型モデルの例である。トランザクション型モデルでは、
二重接続のオーバヘッドは、そのトランザションを実行
するオーバヘッドよりも容易に大きくなる可能性があ
る。
【0014】
【発明が解決しようとする課題】聴取デーモンからトラ
ンザクション・モデルを実行しているサーバへソケット
接続を転送する場合、その転送をうまく処理する良い方
法が必要である。
【0015】
【課題を解決するための手段】本発明によれば、聴取デ
ーモンはクライアントの要求を受け取り、その要求を、
作業負荷マネージャによってサービスされる待ち行列に
置く。作業負荷マネージャは必要に応じて追加のサーバ
を開始する。サーバは、クライアントの作業を実行する
ために複数のスレッドを開始する。サーバ内の各スレッ
ドは作業待ち行列から作業要求を引き出す。作業要求を
待ち行列で待機させ、また待ち行列から解除するために
使用されるサービスは、ソケットを、聴取デーモンから
サーバ内で実行されているスレッドへ転送するメカニズ
ムを提供する。
【0016】このモデルは、聴取デーモンがサーバのア
ドレス空間を管理しなければならない必要性を除き、ま
た作業が開始される前にクライアントへ何回も接続しな
ければならない必要性を除く。トランザクション・モデ
ルでは、この方法は現存する方法と比べて優れたパフォ
ーマンスを提供する。
【0017】
【発明の実施の形態】本明細書で使用される用語のいく
つかを説明しておくが、これらの用語は標準的といって
もよい技術用語である。
【0018】ファイル記述子とは、プロセスによって入
出力(I/O)用にオープンされたファイルまたはその
同等オブジェクトを識別するためにプロセスによって使
用される小さな整数である。一般的に、ある種のファイ
ル記述子は予約されている。たとえば、標準入力につい
ては0であり、標準出力については1であり、標準エラ
ーについては2である。したがって、プロセスによって
オープンされた最初のファイルは3の記述子を割り当て
られ、第二のファイルは4の記述子を割り当てられ、以
下同様である。ファイル記述子はファイル記述子テーブ
ルへのインデックスであり、ファイル記述子テーブル
は、特定のプロセスのために維持され、ファイル・アク
セス情報を含む他のデータ構造(たとえば仮想ノード
(vnode))へのポインタを含む。(本明細書で
は、「ファイル記述子(FD)」とは、そのインデック
スが指し示すテーブル・エントリを示すためにも使用さ
れる)。プロセスがファイルをクローズするとき、その
ファイルへ前に割り当てられた記述子は、次にオープン
されるファイルへ割り当てることができる。ファイル記
述子はプロセスに固有のもので、いくつかのプロセスに
よってオープンされた同一のファイルは、各プロセスの
ために異なった記述子を割り当てられてよい。ファイル
記述子は当技術分野でよく知られているが、その詳細は
1990年のUNIX Network Progra
mming(W.R.Stevens著)の28ページ
に説明されている。
【0019】ソケットとは、通信接続の各端部にあるプ
ログラミング構造である。このプログラミング構造は、
第一のプロセスが、通信接続の他の端部にある第二のプ
ロセス(通常は遠隔マシン上にある)と通信することが
できるようにする。各プロセスは、通信接続のその端部
に置かれたソケットと直接に対話することによって他の
プロセスと通信する。プロセスは、ファイルのオープン
に類似した方式でソケットをオープンし、ファイル記述
子(具体的にはソケット記述子)を受け取る。プロセス
はソケット記述子によってソケットを識別する。ソケッ
トも当技術分野で周知の技術であり、前記のUNIX
Network Programmingの258〜3
41ページ、および1992年のModern Ope
rating Systems(A.S.Tanenb
aun著)の292〜293ページに説明されている。
【0020】ここで図1を参照すると、本発明を組み込
んだクライアント/サーバ・システム100は1つまた
は複数のクライアント102を含み、その各々は通信接
続104を介してサーバ・システム106へ接続されて
いる。通信接続104はTCP/IPのような任意適当
な通信プロトコルによって管理されてよい。サーバ・シ
ステム106は1つまたは複数の聴取デーモン108を
含み、その各々は1つまたは複数のサーバ・プロセス1
16(すなわち、サーバ)によってサービスされる。
【0021】通信接続104は、特定のクライアント1
02を、クライアントとサーバの端部にあるそれぞれの
ソケット104aおよび104b(プロセスはソケット
記述子を使用してこれらを識別する)を介してサーバ・
システム106中の特定のサーバ・プロセス(聴取デー
モン108またはサーバ・プロセス116)へ結合す
る。(通信接続104とそのソケット104a〜104
bとの間には、一対一の対応関係があるので、「通信接
続」および「ソケット」の用語は相互互換的に使用され
る。)
【0022】聴取デーモン108は、オペレーティング
・システム(OS)カーネル112によって提供される
putwork()サービス122およびgetwor
k()サービス124を介して作業をサーバ・プロセス
116へ分配する。オペレーティング・システム(O
S)カーネル112は、IBM System/390
(商標)(S/390(商標))サーバを含むサーバ・
システム106上で実行されるIBM(商標) OS/
390(商標)オペレーティング・システムのカーネル
部分であってよい。しかし、本発明は特定のハードウェ
アまたはソフトウェアのプラットフォームに限定される
ものではない。オペレーティング・システム(OS)カ
ーネル112は、必要性と導入方針に基づいて追加のサ
ーバ・プロセス116を作成する。各クライアントの要
求は、最終的には、これから説明するようにして聴取デ
ーモン108から作業スレッド118へ転送されるソケ
ット104bおよび通信接続104を介して、サーバ・
プロセス116で実行される作業スレッド118によっ
てサービスされる。サーバ・プロセス116の複数のア
ドレス空間で複数の作業スレッド118を作成する場
合、その作成は、任意適当な手段を使用して制御するこ
とができる。使用される特定の手段は本発明を構成する
ものではない。
【0023】さらに、サーバ・システム106はオペレ
ーティング・システム(OS)カーネル112に関連し
たプログラミングである作業負荷マネージャ(WLM)
126を含む。作業負荷マネージャ(WLM)126
は、システム資源マネージャ(図示されていない)と結
合して働き、各種のサービス・クラスへのシステム資源
の割り振りを制御する。作業単位は、サービス・クラス
が所定の目的にどのように合致するかに基づいて、各種
のサービス・クラスへ分類される。作業負荷マネージャ
(WLM)126の動作は本発明を構成するものではな
い。それは米国特許第5,473,773号、1995
年2月3日に出願された米国出願第08/383,16
8号、および前記の米国出願第08/828,440号
に詳細に説明されている。
【0024】本発明は、聴取デーモン108からサーバ
・プロセス116中で実行されている作業スレッド11
8へソケット104b(したがって、対応する通信接続
104)を転送するために使用される手順に関する。サ
ーバ端部でのこのソケット転送はクライアント102に
対して透明であり、クライアント102のソケット10
4aは通常の方式で動作する。
【0025】図2は、聴取デーモン108によって取ら
れるプロシージャ200を示す。まず、聴取デーモン1
08はオペレーティング・システム(OS)カーネル1
12にサーバとして登録する(ステップ202)。同様
なステップがサーバ・プロセス116によって取られる
とき、オペレーティング・システム(OS)カーネル1
12は聴取デーモン108から作業を受け取り、適切な
サーバ・プロセス116へその作業をディスパッチする
ことができる。
【0026】次に、聴取デーモン108はエンドレス・
ループへ入り、通信接続104(通信ポート)上の入力
を待機する(ステップ204)。聴取デーモン108が
会話を受け取ったとき(ステップ206)、それはソケ
ット104bを表すソケット記述子を受け取る。ソケッ
ト104bはクライアント102との間の将来のすべて
の通信に使用される。OS/390のようなUNIX
(商標)準拠システムでは、ステップ204および20
6は、当技術分野で周知のようにオペレーティング・シ
ステム(OS)カーネル112へのlisten()お
よびaccept()システム呼び出しを介して実行さ
れる。
【0027】次に、聴取デーモン108はクライアント
の要求を表すputwork()パラメータ300(図
3を参照)の集合を作成する(ステップ208)。作業
の要求は、聴取デーモン108がサーバ・プロセス11
6へ渡す必要があるデータ、およびサーバへ転送される
必要があるファイル記述子(ソケット記述子を含む)か
ら構成される。サーバ・プロセス116へ転送する必要
があるファイル記述子は、ソケット104bを表すもの
である場合が多い。
【0028】次に、聴取デーモン108はオペレーティ
ング・システム(OS)カーネル112のputwor
k()サービス122を呼び出し、それに作業要求を表
すputwork()パラメータ300(図3)を渡す
(ステップ212)。putwork()サービス12
2によって実行される処理ステップは、後に説明する図
4および図5に示されている。
【0029】ステップ208および212で実行される
パラメータ処理は、いくつかの点でspawn()と呼
ばれる標準のUNIX関数で実行されるものと類似して
いる。以下に、spawn()の変形を説明する。sp
awn()関数によって、第一のプロセス(たとえば聴
取デーモン)は新しいプロセスを作成することができ、
その新しいプロセスへデータおよび新プロセス用の複製
ファイル記述子が渡される。しかし、spawn()関
数は新しいプロセスを作成するので、オペレーティング
・システム(OS)カーネル112に著しいオーバヘッ
ドが発生する。
【0030】聴取デーモン108は、作業要求をオペレ
ーティング・システム(OS)カーネル112のput
work()サービス122へ渡した後でループバック
し(ステップ214)、クライアント102からの他の
要求を待機する。
【0031】図3は、聴取デーモンがクライアントの作
業要求を表すために組み立てるputwork()パラ
メータ300を示す。オプション310によって、聴取
デーモン108は、ファイル記述子がサーバ・プロセス
116へ転送された後で、putwork()サービス
122がそのファイル記述子をクローズするように要求
することができる。それによって、聴取デーモン108
が別個の呼び出しを行ってソケット104bをクローズ
するオーバヘッドを避けることができる。次のパラメー
タは分類データ312である。このデータは、作業を処
理する正しいサーバ・プロセス116を指定するために
オペレーティング・システム(OS)カーネル112に
よって使用される。アプリケーション・データ314に
よって、聴取デーモン108は、任意のパラメータを、
サーバ・プロセス116中でクライアントの要求を実行
する作業スレッド118へ渡すことができる。
【0032】ファイル記述子リスト316は、聴取デー
モン108がサーバ・プロセス116へ転送することを
望む1つまたは複数のファイル記述子318(すなわ
ち、ファイル記述子テーブルへのインデックス)を含
む。前述したように、通信接続104をクライアント1
02へ提供するソケット104bを表すファイル記述子
318がただ1つだけ渡される場合が多い。
【0033】ここで図4を参照すると、聴取デーモン1
08およびサーバ・プロセス116を含むサーバ・シス
テム106上の各プロセスは、当技術分野で知られるよ
うに、それぞれのファイル記述子テーブルを有する。こ
のファイル記述子テーブルは、すべてのオープン・ファ
イルまたは通信接続104を表すソケット104bのよ
うな他のオブジェクトを追跡するために使用される。し
たがって、聴取デーモン108はファイル記述子テーブ
ル402を有する。
【0034】ソケット104bが作成されるとき、オペ
レーティング・システム(OS)カーネル112はソケ
ットを表す仮想ノード404を作成する。次に、オペレ
ーティング・システム(OS)カーネル112は、それ
がソケット104bを作成しているプロセスのファイル
記述子テーブル(この場合、ファイル記述子テーブル4
02)を走査し、利用可能なスロットがあるかどうかを
調べる。スロットNがファイル記述子テーブル402中
の最初の利用可能なスロットであると仮定すると、オペ
レーティング・システム(OS)カーネル112は仮想
ノード404を指し示すポインタをスロットNに記憶す
る。(サーバ・プロセス116へ転送されるのは、ファ
イル記述子テーブル402へのインデックスNではな
く、ポインタである。)聴取デーモン108の立場から
すれば、Nによってインデックスされたポインタは(こ
こで、Nはプロセスへ戻されるファイル記述子318で
ある)、ソケット104bを表し、したがってクライア
ント102への通信接続104を表す。クライアント1
02との通信を実行するのに必要な実際の情報は、仮想
ノード404へ記憶される。
【0035】同様にして、オペレーティング・システム
中のサーバ・プロセス116は、それ自身のファイル記
述子テーブル420を有する。サーバ・プロセス116
内の作業スレッド118は共通のファイル記述子テーブ
ル420を共用する。なぜなら、プロセス中の1つのス
レッドにオープンされているファイルその他のオブジェ
クトは、すべてのスレッドにオープンされているからで
ある。
【0036】図5は、聴取デーモン108からのput
work()要求(図2のステップ212)を処理して
いるときの、putwork()サービス122によっ
て実行されるプロシージャ450を示す。
【0037】まず、putwork()サービス122
は、聴取デーモン108によって与えられた分類データ
312に基づいて作業要求を分類する(ステップ45
2)。putwork()サービス122は、作業要求
を分類した後、作業要求を表す作業負荷マネージャ(W
LM)エンクレーブ128を作成する。1996年のI
BM出版物「MVS Programming: Wo
rkload Management Service
s,GC28−1773−00」の39〜44ページに
説明されているように、作業負荷マネージャ(WLM)
エンクレーブ128は、資源割り振りのために単一の実
体として管理される資源ユーザ(たとえばスレッドまた
はプロセス)の集合を定義する。これは、作業要求と作
業負荷マネージャ(WLM)エンクレーブ128との間
の作業関係のビジネス単位を確立する。
【0038】さらに、エンクレーブは、1996年12
月17日に出願された米国出願第08/768,038
号に説明されている。
【0039】ここで説明されている作業単位を特定のエ
ンクレーブと関連づけるのに使用される特定のデータ構
造、および、作業負荷マネージャ(WLM)126およ
び関連するシステム要素が、単一の「ビジネス作業単
位」として特定の作業負荷マネージャ(WLM)エンク
レーブ128へ関連づけられる作業単位へ資源を割り振
る方法は、本発明を構成するものではない。前記の参考
文献で説明されている各種のデータ構造または割り振り
方法を使用することができる。
【0040】次に、putwork()サービス122
は、ユーザ提供のパラメータおよびファイル記述子のコ
ピーを作成して、作業スレッド118が作業要求を得る
とき、それらを利用できるようにする。したがって、図
4を参照すると、putwork()サービス122は
一時的ファイル記述子テーブル406を作成する(ステ
ップ456)。呼び出し側のファイル記述子リスト31
6(図3)内の各ファイル記述子318は、この一時的
ファイル記述子テーブル406内に複写されたファイル
記述子テーブル402内の対応するエントリを有し、し
たがって、それは一時的ファイル記述子テーブル中に対
応するエントリ408を有する。
【0041】ファイル記述子408が一時的ファイル記
述子テーブル406中に捕捉された後、聴取デーモンの
ファイル記述子テーブル402は、呼び出し側がそのオ
プション310中で指定していればクローズされる(す
なわち、ファイル記述子テーブル402から削除され
る)(ステップ458)。
【0042】すべてのファイル記述子が処理され一時的
ファイル記述子テーブル406に複写された後、put
work()サービス122は作業要求410を作成す
る。この作業要求410は、アプリケーション・データ
412(putwork()パラメータ300からのア
プリケーション・データ314)およびその作業要求の
ための一時的ファイル記述子テーブル408へのポイン
タ413を含む(ステップ460)。次に、この作業要
求410は、分類データ312によって指示される適切
な作業待ち行列414上に置かれる(ステップ46
2)。
【0043】後に、getwork()要求がサーバ・
プロセス116内で実行されている作業スレッド118
から生じるとき、getwork()サービス124は
他のファイル記述子転送を実行する。まず、getwo
rk()サービス124は、サーバ・プロセス116の
ファイル記述子テーブル420を走査する。一時的ファ
イル記述子テーブル406内の各エントリ408につい
て、新しいエントリ422がサーバ・プロセス116の
ファイル記述子テーブル420内に複写される。このス
テップが完了すると、サーバ・プロセス116(したが
って、その作業スレッド118)は、聴取デーモン10
8が有している同じファイルまたは通信リンク(すなわ
ちソケット)へのアクセスを有する。
【0044】図6および図7は、サーバ・プロセス11
6およびその作業スレッド118によって実行される処
理を示す。図6を参照すると、サーバ・プロセス116
が開始されたとき、それは聴取デーモン108と同じよ
うな方法でサーバ登録サービスを呼び出す(ステップ5
02)。これは、要素を付け加える聴取デーモン108
および要素を除去するサーバ・プロセス116へ作業待
ち行列414をバインドするのに必要な情報をオペレー
ティング・システム(OS)カーネル112へ提供す
る。次に、サーバ・プロセス116は、複数の作業スレ
ッド118を作成するために、pthread_cre
ate()システム呼び出しをオペレーティング・シス
テム(OS)カーネル112へ出す(ステップ50
4)。
【0045】図7は、サーバ・プロセス116によって
作成された作業スレッド118によって取られるプロシ
ージャ550を示す。図7を参照すると、作業スレッド
118は、それが作成されると、クライアント102か
ら次の作業要求410を要求するためgetwor
k()サービス124を呼び出す。getwork()
サービス124の動作は図8に示され、後で詳細に説明
される。作業スレッド118はgetwork()サー
ビス124から1つまたは複数のファイル記述子422
(すなわち、仮想ノードへのポインタ)を受け取る。ス
レッドはそれを使用して作業要求410を処理しクライ
アント102へ結果を戻す。
【0046】この特定の例では、作業スレッド118
は、作業要求410を取り出した後で、その作業要求が
別個のアプリケーション・プログラム120(図1を参
照)の呼び出しを必要とするかどうかを決定する。作業
スレッド118は、アプリケーション・プログラム12
0を呼び出すために、オペレーティング・システム(O
S)カーネル112のspawn()サービス130を
呼び出す(ステップ554)。spawn()サービス
130の動作は次に説明される。
【0047】作業要求410が完了したとき、作業スレ
ッド118は処理された作業要求に関連した任意の必要
な資源をクリーンアップする。このクリーンアップは、
作業要求410に関連したファイル記述子422をファ
イル記述子テーブル420から削除することによってそ
れをクローズすることを含む(ステップ556)。次
に、作業スレッド118は、次のgetwork()呼
び出しを実行するために、ステップ552へ戻る(ステ
ップ558)。
【0048】図8は、作業スレッド118(図7のステ
ップ552)によって呼び出されたときの、オペレーテ
ィング・システム(OS)カーネル112(図1)のg
etwork()サービス124によって実行されるプ
ロシージャ600を示す。
【0049】getworkサービス124は、前に得
られた作業要求410の完了時に作業スレッド118に
よって再び呼び出されたとき、まず作業負荷マネージャ
(WLM)エンクレーブ128と呼び出し側の作業スレ
ッド118との間の関連づけをクリーンアップしようと
する(ステップ602)。前の作業要求410は作業ス
レッド118によって完全に処理されているので、作業
負荷マネージャ(WLM)エンクレーブ128はもはや
関連をもたない。したがって、クリーンアップ処理の一
環として、作業負荷マネージャ(WLM)エンクレーブ
128が削除される。それは、前の作業要求410の終
了をサーバ・システム106へ知らせる。
【0050】次に、getwork()サービス124
は、作業待ち行列414から次の作業要求410を取り
出そうとする(ステップ604)。作業が得られなけれ
ば、作業スレッド118は、さらに作業が到着するま
で、当技術分野で周知の方式によって一時停止される。
【0051】次に、getwork()サービス124
は、呼び出し側の作業スレッドとその作業負荷マネージ
ャ(WLM)エンクレーブ128との間でビジネス作業
単位関係を確立するために、呼び出し側の作業スレッド
118を含むディスパッチ可能作業単位を、作業要求4
10のために作成された作業負荷マネージャ(WLM)
エンクレーブ128に関連づける(ステップ606)。
【0052】getwork()サービス124は、次
の作業要求410を取り出すと、図4および図5に関連
して説明したようにしてファイル記述子を一時的ファイ
ル記述子テーブル406からサーバ・プロセス116の
ファイル記述子テーブル420へ転送する(ステップ6
08)。
【0053】ファイル記述子の転送が完了すると、一時
的ファイル記述子テーブル406内のファイル記述子が
クローズされ、一時的ファイル記述子テーブル406が
解放される(ステップ610)。
【0054】最後に、getwork()サービス12
4は、どのファイル記述子422が使用できるかを、
(適切な戻りパラメータを設定することによって)呼び
出し側の作業スレッド118へ通知する(ステップ61
2)。
【0055】図9はspawn()サービス130によ
って取られるプロシージャ700を示す。まず、spa
wn()サービス130は、アプリケーション・プログ
ラム120のインスタンスから構成される新しい子プロ
セス704を作成する(ステップ702)。子プロセス
704は、子作成処理の一部として親の処理属性の多く
を引き継いでいる。
【0056】spawn()サービス130は、子プロ
セス704を作成した後に、子プロセスを、spawn
()サービスを呼び出した作業スレッド118の作業負
荷マネージャ(WLM)エンクレーブ128に関連づけ
る(ステップ706)。これは、新しい子プロセス70
4と作業要求410との間のビジネス作業単位関係を確
立する。
【0057】最後に、spawn()サービス130
は、目標のアプリケーション・プログラムへ制御を転送
する(ステップ708)。目標のアプリケーション・プ
ログラムが終了したとき、それが作業負荷マネージャ
(WLM)エンクレーブ128との間で有する関連づけ
は破棄される。
【0058】本発明は、1つまたは複数のハードウェア
・マシン上で実行されるソフトウェア(すなわち、プロ
グラム記憶装置に記憶されたマシン読み取り可能な命令
プログラム)として実施されるのが望ましい。特定の実
施例が説明されたが、当業者にとって各種の変更が可能
であることは明らかである。したがって、本発明はUN
IX準拠のシステムを参照して説明されたが、本発明は
そのようなシステムに限定されず、同様の構造が使用さ
れる任意のシステムで実施することができる。
【0059】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)第一のサーバ・プロセスがクライアントから到着
する作業要求を受け取り、該作業要求が第二のサーバ・
プロセスによって実行される作業を指定すると共にそれ
に関連づけられた記述子を有しており、前記第一および
第二のサーバ・プロセスはそれぞれに関連づけられた記
述子テーブルを有しているクライアント/サーバ・シス
テムで前記記述子を前記第一のサーバ・プロセスから前
記第二のサーバ・プロセスへ転送する方法であって、前
記第一のサーバ・プロセスからの要求に応答して、前記
作業要求を到着する作業要求の待ち行列へ追加して前記
作業要求を待ち行列で待機させ、待機させた前記作業要
求に関連する記述子を前記第一の記述子テーブルから待
機させた前記作業要求に関連する一時的記述子テーブル
へ複写するステップと、前記第二のサーバ・プロセスか
らの、作業に対する要求に応答して、前記待ち行列から
作業要求を除去して前記作業要求を待ち行列から解除
し、解除された前記作業要求に関連した記述子を解除さ
れた前記作業要求に関連した一時的記述子テーブルから
前記第二の記述子テーブルへ複写するステップとを含
む、記述子の転送方法。 (2)前記第一のサーバ・プロセスが聴取デーモンであ
る、上記(1)に記載の記述子の転送方法。 (3)前記記述子がソケット記述子である、上記(1)
に記載の記述子の転送方法。 (4)前記待ち行列での待機ステップが、前記記述子を
前記一時的記述子テーブルへ複写した後に前記記述子を
前記第一の記述子テーブルから削除するステップを含
む、上記(1)に記載の記述子の転送方法。 (5)前記待ち行列からの解除ステップが、前記記述子
を前記第二の記述子テーブルへ複写した後に前記記述子
を前記一時的記述子テーブルから削除するステップを含
む、上記(1)に記載の記述子の転送方法。 (6)前記クライアント/サーバ・システムが複数の第
二のサーバ・プロセスを有し、これらのサーバ・プロセ
スの各々がそれに関連づけられた記述子を有している、
上記(1)に記載の記述子の転送方法。 (7)前記第二のサーバ・プロセスが複数の同時に実行
されるスレッドを有し、前記作業に対する要求が前記ス
レッドの1つから発生する、上記(1)に記載の記述子
の転送方法。 (8)前記待ち行列への待機ステップが、前記第一のサ
ーバ・プロセスからのシステム呼び出しに応答してオペ
レーティング・システム・カーネルによって実行され
る、上記(1)に記載の記述子の転送方法。 (9)前記待ち行列からの解除ステップが、前記第二の
サーバ・プロセスからのシステム呼び出しに応答してオ
ペレーティング・システム・カーネルによって実行され
る、上記(1)に記載の記述子の転送方法。 (10)上記(1)に記載の記述子の転送方法を実行す
るためにマシンによって実行可能な命令のプログラムを
記憶した、マシンで読み取り可能なプログラム記憶装
置。 (11)第一のサーバ・プロセスがクライアントから到
着する作業要求を受け取り、前記作業要求が第二のサー
バ・プロセスによって実行される作業を指定すると共に
記述子を関連づけられており、前記第一および第二のサ
ーバ・プロセスがそれぞれに関連づけられた第一および
第二の記述子テーブルを有しているクライアント/サー
バ・システムで前記記述子を前記第一のサーバ・プロセ
スから前記第二のサーバ・プロセスへ転送する装置であ
って、前記第一のサーバ・プロセスからの要求に応答し
て、前記作業要求を到着する作業要求の待ち行列へ追加
して前記作業要求を待ち行列で待機させ、待機させられ
た前記作業要求に関連した記述子を前記第一の記述子テ
ーブルから待機させられた前記作業要求に関連した一時
的記述子テーブルへ複写する待ち行列待機手段と、前記
第二のサーバ・プロセスからの、作業に対する要求に応
答して、前記待ち行列から作業要求を除去して前記作業
要求を待ち行列から解除し、解除された前記作業要求に
関連する記述子を解除された前記作業要求に関連した一
時的記述子テーブルから前記第二の記述子テーブルへ複
写する待ち行列解除手段とを含む、記述子の転送装置。 (12)前記待ち行列待機手段が、前記記述子を前記一
時的記述子テーブルへ複写した後に前記記述子を前記第
一の記述子テーブルから削除する手段を含む、上記(1
1)に記載の記述子の転送装置。 (13)前記待ち行列解除手段が、前記記述子を前記第
二の記述子テーブルへ複写した後に前記記述子を前記一
時的記述子テーブルから削除する手段を含む、上記(1
1)に記載の記述子の転送装置。
【図面の簡単な説明】
【図1】本発明を組み込んだクライアント/サーバ・シ
ステムのブロック図である。
【図2】聴取デーモン中で実行される処理を示す図であ
る。
【図3】聴取デーモンによってputwork()のカ
ーネル呼び出し上へ渡される情報を示す図である。
【図4】本発明によって使用されるファイル記述子テー
ブルおよび作業待ち行列を示す図である。
【図5】本発明のputwork()サービスによって
実行されるステップを示す図である。
【図6】各々のサーバ・プロセスによって実行される処
理ステップを示す図である。
【図7】サーバ・プロセスによって作成された各作業ス
レッドによって実行される処理ステップを示す図であ
る。
【図8】本発明のgetwork()サービスによって
実行されるステップを示す図である。
【図9】本発明のspawn()サービスによって実行
されるステップを示す図である。
【符号の説明】 100 クライアント/サーバ・システム 102 クライアント 104 通信接続 104a ソケット 104b ソケット 106 サーバ・システム 108 聴取デーモン 112 オペレーティング・システム(OS)カー
ネル 116 サーバ・プロセス 118 作業スレッド 120 アプリケーション・プログラム 122 putwork()サービス 124 getwork()サービス 126 作業負荷マネージャ(WLM) 128 作業負荷マネージャ(WLM)エンクレー
ブ 130 spawn()サービス 200 プロシージャ 300 putwork()パラメータ 310 オプション 312 分類データ 314 アプリケーション・データ 316 ファイル記述子リスト 318 ファイル記述子(FD) 402 ファイル記述子テーブル 403 ポインタ 404 仮想ノード 406 一時的ファイル記述子テーブル 408 エントリ 410 作業要求 412 アプリケーション・データ 413 ポインタ 414 作業待ち行列 420 ファイル記述子テーブル 422 ファイル記述子 450 プロシージャ 550 プロシージャ 600 プロシージャ 700 プロシージャ 704 子プロセス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・ディー・アマン アメリカ合衆国12603、 ニューヨーク州 ポケプシィ プレストウイック・コート 40 (72)発明者 アーネスト・エス・ベンダー アメリカ合衆国12477、 ニューヨーク州 サウジャタイズ パイン・グロウブ・スク ール・ロード 27 (72)発明者 ドンナ・ディレンバーガー アメリカ合衆国10598、 ニューヨーク州 ヨークタウン・ハイツ モーニングビュ ー・ドライブ 1747 (72)発明者 デヴィット・ビー・エメス アメリカ合衆国12603、 ニューヨーク州 ポケプシィ ヴァサール・ロード 29 (72)発明者 マイケル・ジー・スピイジェル アメリカ合衆国10950、 ニューヨーク州 モンロー サンセット・ハイツ 10

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】第一のサーバ・プロセスがクライアントか
    ら到着する作業要求を受け取り、該作業要求が第二のサ
    ーバ・プロセスによって実行される作業を指定すると共
    にそれに関連づけられた記述子を有しており、前記第一
    および第二のサーバ・プロセスはそれぞれに関連づけら
    れた記述子テーブルを有しているクライアント/サーバ
    ・システムで前記記述子を前記第一のサーバ・プロセス
    から前記第二のサーバ・プロセスへ転送する方法であっ
    て、 前記第一のサーバ・プロセスからの要求に応答して、前
    記作業要求を到着する作業要求の待ち行列へ追加して前
    記作業要求を待ち行列で待機させ、待機させた前記作業
    要求に関連する記述子を前記第一の記述子テーブルから
    待機させた前記作業要求に関連する一時的記述子テーブ
    ルへ複写するステップと、 前記第二のサーバ・プロセスからの、作業に対する要求
    に応答して、前記待ち行列から作業要求を除去して前記
    作業要求を待ち行列から解除し、解除された前記作業要
    求に関連した記述子を解除された前記作業要求に関連し
    た一時的記述子テーブルから前記第二の記述子テーブル
    へ複写するステップとを含む、 記述子の転送方法。
  2. 【請求項2】前記第一のサーバ・プロセスが聴取デーモ
    ンである、請求項1に記載の記述子の転送方法。
  3. 【請求項3】前記記述子がソケット記述子である、請求
    項1に記載の記述子の転送方法。
  4. 【請求項4】前記待ち行列での待機ステップが、前記記
    述子を前記一時的記述子テーブルへ複写した後に前記記
    述子を前記第一の記述子テーブルから削除するステップ
    を含む、請求項1に記載の記述子の転送方法。
  5. 【請求項5】前記待ち行列からの解除ステップが、前記
    記述子を前記第二の記述子テーブルへ複写した後に前記
    記述子を前記一時的記述子テーブルから削除するステッ
    プを含む、請求項1に記載の記述子の転送方法。
  6. 【請求項6】前記クライアント/サーバ・システムが複
    数の第二のサーバ・プロセスを有し、これらのサーバ・
    プロセスの各々がそれに関連づけられた記述子を有して
    いる、請求項1に記載の記述子の転送方法。
  7. 【請求項7】前記第二のサーバ・プロセスが複数の同時
    に実行されるスレッドを有し、前記作業に対する要求が
    前記スレッドの1つから発生する、請求項1に記載の記
    述子の転送方法。
  8. 【請求項8】前記待ち行列への待機ステップが、前記第
    一のサーバ・プロセスからのシステム呼び出しに応答し
    てオペレーティング・システム・カーネルによって実行
    される、請求項1に記載の記述子の転送方法。
  9. 【請求項9】前記待ち行列からの解除ステップが、前記
    第二のサーバ・プロセスからのシステム呼び出しに応答
    してオペレーティング・システム・カーネルによって実
    行される、請求項1に記載の記述子の転送方法。
  10. 【請求項10】請求項1に記載の記述子の転送方法を実
    行するためにマシンによって実行可能な命令のプログラ
    ムを記憶した、マシンで読み取り可能なプログラム記憶
    装置。
  11. 【請求項11】第一のサーバ・プロセスがクライアント
    から到着する作業要求を受け取り、前記作業要求が第二
    のサーバ・プロセスによって実行される作業を指定する
    と共に記述子を関連づけられており、前記第一および第
    二のサーバ・プロセスがそれぞれに関連づけられた第一
    および第二の記述子テーブルを有しているクライアント
    /サーバ・システムで前記記述子を前記第一のサーバ・
    プロセスから前記第二のサーバ・プロセスへ転送する装
    置であって、 前記第一のサーバ・プロセスからの要求に応答して、前
    記作業要求を到着する作業要求の待ち行列へ追加して前
    記作業要求を待ち行列で待機させ、待機させられた前記
    作業要求に関連した記述子を前記第一の記述子テーブル
    から待機させられた前記作業要求に関連した一時的記述
    子テーブルへ複写する待ち行列待機手段と、 前記第二のサーバ・プロセスからの、作業に対する要求
    に応答して、前記待ち行列から作業要求を除去して前記
    作業要求を待ち行列から解除し、解除された前記作業要
    求に関連する記述子を解除された前記作業要求に関連し
    た一時的記述子テーブルから前記第二の記述子テーブル
    へ複写する待ち行列解除手段とを含む、 記述子の転送装置。
  12. 【請求項12】前記待ち行列待機手段が、前記記述子を
    前記一時的記述子テーブルへ複写した後に前記記述子を
    前記第一の記述子テーブルから削除する手段を含む、請
    求項11に記載の記述子の転送装置。
  13. 【請求項13】前記待ち行列解除手段が、前記記述子を
    前記第二の記述子テーブルへ複写した後に前記記述子を
    前記一時的記述子テーブルから削除する手段を含む、請
    求項11に記載の記述子の転送装置。
JP06853198A 1997-03-28 1998-03-18 記述子を転送する方法および装置 Expired - Lifetime JP3251902B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/825302 1997-03-28
US08/825,302 US6192389B1 (en) 1997-03-28 1997-03-28 Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system

Publications (2)

Publication Number Publication Date
JPH10320220A true JPH10320220A (ja) 1998-12-04
JP3251902B2 JP3251902B2 (ja) 2002-01-28

Family

ID=25243655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06853198A Expired - Lifetime JP3251902B2 (ja) 1997-03-28 1998-03-18 記述子を転送する方法および装置

Country Status (2)

Country Link
US (1) US6192389B1 (ja)
JP (1) JP3251902B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530639A (ja) * 2000-04-08 2003-10-14 サン・マイクロシステムズ・インコーポレイテッド サーバ・ソケットで受け取ったイベントを扱うための方法および装置
JP2007011650A (ja) * 2005-06-30 2007-01-18 Ricoh Co Ltd 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
JP2009252107A (ja) * 2008-04-09 2009-10-29 Sony Corp 記録装置、ファイルディスクリプタ生成方法、プログラム
JP2010154518A (ja) * 2008-11-25 2010-07-08 Polycom Inc 同一IPポートを使用するアethanetプリケーションの複数のインスタンス間で、受信したセッションを送信するための方法およびシステム
CN111143302A (zh) * 2019-12-24 2020-05-12 北京明朝万达科技股份有限公司 一种追踪Office文档内容变更的方法及装置

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675195B1 (en) * 1997-06-11 2004-01-06 Oracle International Corporation Method and apparatus for reducing inefficiencies caused by sending multiple commands to a server
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6920475B1 (en) * 1999-04-23 2005-07-19 Oracle International Corporation Communication architecture for distributed computing environment
US6516339B1 (en) 1999-08-18 2003-02-04 International Business Machines Corporation High performance client/server editor
US6681251B1 (en) * 1999-11-18 2004-01-20 International Business Machines Corporation Workload balancing in clustered application servers
US6976258B1 (en) * 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US6529985B1 (en) 2000-02-04 2003-03-04 Ensim Corporation Selective interception of system calls
US6711607B1 (en) 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US6560613B1 (en) * 2000-02-08 2003-05-06 Ensim Corporation Disambiguating file descriptors
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7343421B1 (en) * 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US7143024B1 (en) * 2000-07-07 2006-11-28 Ensim Corporation Associating identifiers with virtual processes
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
US6732211B1 (en) 2000-09-18 2004-05-04 Ensim Corporation Intercepting I/O multiplexing operations involving cross-domain file descriptor sets
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
US6832310B1 (en) 2001-01-04 2004-12-14 Advanced Micro Devices, Inc. Manipulating work queue elements via a hardware adapter and software driver
JP4087072B2 (ja) * 2001-01-25 2008-05-14 株式会社日立製作所 ストレージシステム及び仮想プライベートボリューム制御方法
US6618736B1 (en) 2001-03-09 2003-09-09 Ensim Corporation Template-based creation and archival of file systems
US6922727B2 (en) * 2001-06-26 2005-07-26 International Business Machines Corporation Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US7073181B2 (en) * 2001-11-13 2006-07-04 International Business Machines Corporation System and method for sharing secure sockets layer sessions across multiple processes
KR100450419B1 (ko) * 2002-02-18 2004-09-30 한국전자통신연구원 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법
US7373647B2 (en) * 2003-04-30 2008-05-13 International Business Machines Corporation Method and system for optimizing file table usage
US7703101B2 (en) * 2004-02-13 2010-04-20 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
US7308083B2 (en) * 2004-06-30 2007-12-11 Glenayre Electronics, Inc. Message durability and retrieval in a geographically distributed voice messaging system
US7627578B2 (en) * 2004-09-01 2009-12-01 International Business Machines Corporation Apparatus, system, and method for file system serialization reinitialization
US7490088B2 (en) * 2004-09-01 2009-02-10 International Business Machines Corporation Apparatus, system, and method for preserving connection/position data integrity during file server serialization reinitialization
US7711721B2 (en) * 2004-09-01 2010-05-04 International Business Machines Corporation Apparatus, system, and method for suspending a request during file server serialization reinitialization
US20060075109A1 (en) * 2004-09-28 2006-04-06 Matthew Hartley Methodology, system and computer readable medium for masking network connection data
US8001255B2 (en) * 2006-01-05 2011-08-16 International Business Machines Corporation System, method and program to synchronize file transmission in a distributed computer system
TWI298129B (en) * 2006-01-20 2008-06-21 Hon Hai Prec Ind Co Ltd System and method for processing files distributively
US7661115B2 (en) * 2006-01-30 2010-02-09 International Business Machines Corporation Method, apparatus and program storage device for preserving locked pages in memory when in user mode
US8910165B2 (en) * 2009-10-14 2014-12-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing thread specific protection levels
US8869160B2 (en) * 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
US8856460B2 (en) 2010-09-15 2014-10-07 Oracle International Corporation System and method for zero buffer copying in a middleware environment
US9086909B2 (en) * 2011-05-17 2015-07-21 Oracle International Corporation System and method for supporting work sharing muxing in a cluster
US9110917B2 (en) * 2013-01-11 2015-08-18 Red Hat, Inc. Creating a file descriptor independent of an open operation
US10230675B2 (en) * 2014-01-23 2019-03-12 Microsoft Technology Licensing, Llc Deriving atomic communication threads from independently addressable messages
US10547580B2 (en) 2016-10-05 2020-01-28 Microsoft Technology Licensing, Llc Dynamically re-parenting email messages based on updated conversations
CN110532121B (zh) * 2019-08-20 2022-08-26 新华三大数据技术有限公司 业务模块定位方法及装置
CN112631788B (zh) 2021-01-06 2023-11-28 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器
CN115190149B (zh) * 2022-07-07 2023-04-25 中铁第五勘察设计院集团有限公司 用于铁路勘察的数据采集方法及系统
CN115562872A (zh) * 2022-10-28 2023-01-03 上海赫千电子科技有限公司 一种高并发的some/ip协议栈服务器实现方法
JP2024143213A (ja) * 2023-03-30 2024-10-11 株式会社デンソー サーバ装置、マルチスレッド処理方法、マルチスレッド処理プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249290A (en) 1991-02-22 1993-09-28 At&T Bell Laboratories Method of and apparatus for operating a client/server computer network
US5212793A (en) 1991-09-04 1993-05-18 International Business Machines Corp. Generic initiators
US5504894A (en) 1992-04-30 1996-04-02 International Business Machines Corporation Workload manager for achieving transaction class response time goals in a multiprocessing system
US5619650A (en) * 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
US5437032A (en) 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5473773A (en) 1994-04-04 1995-12-05 International Business Machines Corporation Apparatus and method for managing a data processing system workload according to two or more distinct processing goals
US5537542A (en) 1994-04-04 1996-07-16 International Business Machines Corporation Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
EP0694837A1 (en) 1994-07-25 1996-01-31 International Business Machines Corporation Dynamic workload balancing
US5721876A (en) * 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
US5603029A (en) 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
US6049820A (en) * 1996-06-03 2000-04-11 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
KR19980034552A (ko) * 1996-11-07 1998-08-05 김광호 소켓기능을 이용한 통신시스템의 소켓바인딩 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530639A (ja) * 2000-04-08 2003-10-14 サン・マイクロシステムズ・インコーポレイテッド サーバ・ソケットで受け取ったイベントを扱うための方法および装置
JP2007011650A (ja) * 2005-06-30 2007-01-18 Ricoh Co Ltd 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
JP2009252107A (ja) * 2008-04-09 2009-10-29 Sony Corp 記録装置、ファイルディスクリプタ生成方法、プログラム
US8073885B2 (en) 2008-04-09 2011-12-06 Sony Corporation Recording apparatus, file descriptor generation method, and program
JP2010154518A (ja) * 2008-11-25 2010-07-08 Polycom Inc 同一IPポートを使用するアethanetプリケーションの複数のインスタンス間で、受信したセッションを送信するための方法およびシステム
US8849972B2 (en) 2008-11-25 2014-09-30 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
US9379984B2 (en) 2008-11-25 2016-06-28 Polycom, Inc. Method and system for dispatching received sessions between a pluratlity of instances of an application using the same IP port
US9992247B2 (en) 2008-11-25 2018-06-05 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
US10609096B2 (en) 2008-11-25 2020-03-31 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
CN111143302A (zh) * 2019-12-24 2020-05-12 北京明朝万达科技股份有限公司 一种追踪Office文档内容变更的方法及装置
CN111143302B (zh) * 2019-12-24 2023-06-16 北京明朝万达科技股份有限公司 一种追踪Office文档内容变更的方法及装置

Also Published As

Publication number Publication date
US6192389B1 (en) 2001-02-20
JP3251902B2 (ja) 2002-01-28

Similar Documents

Publication Publication Date Title
JP3251902B2 (ja) 記述子を転送する方法および装置
US6085217A (en) Method and apparatus for controlling the assignment of units of work to a workload enclave in a client/server system
US11500670B2 (en) Computing service with configurable virtualization control levels and accelerated launches
KR102775419B1 (ko) 크로스-클라우드 동작들을 위한 클라우드 서비스
CN112416737B (zh) 一种容器的测试方法、装置、设备和存储介质
US8589920B2 (en) Resource allocation
US6915338B1 (en) System and method providing automatic policy enforcement in a multi-computer service application
CN114363170B (zh) 容器服务网络配置方法及相关产品
US7107329B1 (en) In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption
KR20230125180A (ko) 클라우드 네이티브 애플리케이션을 위한 동적으로 확장 가능한 애플리케이션 방화벽 배포
CN109075986B (zh) 一种网络功能实例的管理方法及相关设备
US6636900B2 (en) Method and apparatus for executing distributed objects over a network
JPH087690B2 (ja) コミット手順におけるエラー・コードおよびエラー記述情報の処理装置および方法
JPH0793272A (ja) 資源の同期点管理を実行する装置および方法
JPH11312153A (ja) オブジェクト・サ―バ間の作業負荷管理方法および装置
JPH087691B2 (ja) コンピュータ・システム及びアプリケーションプログラム実行方法
JPS63201860A (ja) ネツトワーク管理システム
JP2004530196A (ja) 区分処理環境におけるリソース平衡化
JP2001522113A (ja) 分散ウェブアプリケーションサーバ
JP2016524760A (ja) クラウドコンピューティング環境における分散ロック管理
JP2006519441A (ja) サーバロードバランシング及びサーバアフィニティのためのシステム及び方法
JP2003188877A (ja) 分散ネットワークインフラストラクチャサービスを管理するシステム
JPH0563821B2 (ja)
JP2002505471A (ja) 遠隔処理の中断および継続の方法と装置
EP4319084A1 (en) Method and apparatus for deploying container service

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071116

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 12

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

EXPY Cancellation because of completion of term