JPH1049381A - 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム - Google Patents

複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム

Info

Publication number
JPH1049381A
JPH1049381A JP8175210A JP17521096A JPH1049381A JP H1049381 A JPH1049381 A JP H1049381A JP 8175210 A JP8175210 A JP 8175210A JP 17521096 A JP17521096 A JP 17521096A JP H1049381 A JPH1049381 A JP H1049381A
Authority
JP
Japan
Prior art keywords
thread
data processing
program
processing system
thread object
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
JP8175210A
Other languages
English (en)
Inventor
Michio Kikuchi
道夫 菊池
Yuichi Nakamura
祐一 中村
Seiji Hamada
誠司 濱田
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
Priority to JP8175210A priority Critical patent/JPH1049381A/ja
Priority to US08/814,426 priority patent/US6463480B2/en
Publication of JPH1049381A publication Critical patent/JPH1049381A/ja
Pending legal-status Critical Current

Links

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/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

Abstract

(57)【要約】 【課題】 スレッドの独立性の高い安全なプログラムを
容易に構築できる環境を提供する。また、複数のクライ
アント要求を並列処理するに際し、資源の有効利用を図
る。 【解決手段】 クライアント要求101は、統一フォー
マットに変換され、パケット情報の形式でキュー125
に蓄えられる。制御部127は、このパケット情報を読
み取り、スレッド制御部131にスレッドの作成を指示
する。この作成されたスレッドのみから参照されるスレ
ッド・オブジェクト141を、システムに予め格納され
ているスレッド・オブジェクト・テンプレート149を
コピーすることにより作成する。クライアント要求は、
オブジェクトの生成、オブジェクトのメソッドの利用、
オブジェクトの削除の3種類であり、クライアント要求
の実行中のみスレッドが作成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数の要求を並列に
処理するためのマルチタスク制御方式に関し、詳しく
は、サーバ・プログラムの開発を支援するマルチ・スレ
ッド・プログラム構築支援方式に関する。
【0002】
【従来の技術】従来より、複数の要求を並列処理するた
め、システムの管理する記憶域に複数のスレッドを作成
し、スレッド単位でプログラムの実行を行っている。こ
のスレッドとは、プロセス内に存在する最少の実行単位
であり、スタックならびにプログラム・カウンターによ
って特徴づけられるものである。通常のプログラムで
は、このような実行単位が1つだけ存在しているが、マ
ルチスレッドプログラムではこのような実行単位が同時
に複数存在している。すなわち、複数の処理を並行して
実行することが可能であり、サーバ・プログラム等を開
発するには必須の技術となっている。
【0003】しかし、従来の技術においては、サーバの
機能はクライアントの要求を同時に受付けるための機
構、スレッドの作成/削除の処理、スレッド間の同期処
理等を行うために、低レベルな命令(API)をプログラマ
が明示的に指示する必要があり、プログラマに非常に高
い技術が求められていた。
【0004】例えば、スレッド固有データと大域データ
を操作する処理に際しては、以下に示すプログラミング
を行う必要があった。なお、ここでは、プログラミング
言語の1つであるC++(OS/2のAPI:"OS/2"はIBM社の商標)
で例示する。この処理では、OrderオブジェクトのIncre
ment()メソッドを呼びだし,aというスレッド固有な変数
をインクリメントすると同時にグローバルなオブジェク
トstockにその結果をストアする処理が行われる。
【0005】 Stock *stock; //グローバル・オブジェクト、複数のスレッドから アクセスされる。 HMTX hmtx; //グローバル・オブジェクトをアクセスするときの //セマフォ・ハンドル main() { stock = new Stock; //グローバル・オブジェクトの作成 DosCreateMutexSem("\\SEM32\\sem1", &hmtx, 0, FALSE); //グローバル・オブジェクト/アクセスのためのセマフォ ... while(!empty) { //クライアントからの要求を処理する //メッセージ・ループ Getmessage(&msg); //キューからのメッセージの呼び出し switch(msg->task) { case NEW: //クライアントからのオブジェクトの生成要求時 _beginthread(ThreadNew, NULL, NULL, msg); //スレッドを作成しThreadNew関数を実行 break; case INCREMENT: //クライアントからのincrement要求 _beginthread(ThreadInc, NULL, NULL, msg); //スレッドを作成しThradInc関数を実行 break; case DELETE: //クライアントからのオブジェクトの削除要求時 _beginthread(ThreadDelete, NULL, NULL, msg); //スレッドを作成しThreadDelete関数を実行 break; .... } } }
【0006】 ThreadNew(MESSAGE *msg) { Order *obj = new Order(); GlobalTable[msg->clientID] = obj //オブジェクトを作成してしてクライアントのIDと作成された //オブジェクトを結び付けるためテーブルに登録する。 }
【0007】 ThreadInc(MESSAGE *msg) { Order *obj = GlobaleTable[msg->ClientID]; //クライアントに対応付けられたオブジェクトをとりだす。 obj->Increment(); //オブジェクトのIncretement()メソッドを呼び出す。 }
【0008】 ThreadDelete(MESSAGE *msg); { Order *obj = GlobaleTable[msg->ClientID]; delete obj; //オブジェクトの削除 }
【0009】 /*ターゲットオブジェクトメソッドの定義 */ /*Increment()メソッドのみを記述。コンストラクタとデストラクタは省略*/ Order::Increment() { a = a +1 .. スレッド固有データのインクリメント DosRequestMutexSem(hmtx, SEM_INDEFINITE_WAIT); //stockオブジェクトの排他制御をおこなうためセマフォ //をリクエストする。 stock->Store(a); //Storeメソッドの呼び出し DosReleaseMutexSem(hmtx); //セマフォをリリースする。 }
【0010】このように、従来のマルチスレッド・サー
バ・プログラミングではスレッド間の競合やオブジェク
トを消去するタイミングをプログラマがすべて管理しな
ければならなかった。そのため、プログラム・エラーに
よるメモリの浪費やスレッド間の競合によるデータの不
整合が発生する危険性があった。これらの要因は、シス
テムの信頼性やスループットの低下、最悪の場合にはサ
ーバ・システムが停止してしまうような事態を生じさせ
る可能性があった。特に、比較的スキルレベルの低いプ
ログラマがサーバ・アプリケーションを開発する場合に
は、それぞれの処理が干渉しないように、スレッドの独
立性を高くすることが重要な課題となっている。
【0011】また、これらの問題を生じさせないように
プログラマは注意を常に払わらなければならないため、
テストやデバッギングに十分な時間を費やさなければな
らず、プログラムの生産性が低下するという問題も発生
していた。
【0012】さらに、複数のクライアントから要求を受
け取り、これらを並行して処理するような典型的なマル
チスレッド・プログラムを開発する際、個々の処理が互
いに干渉してしまうというという問題も存在する。すな
わち、個々の処理は正しくても、干渉の結果、誤った処
理になってしまうことが発生する。このような問題を避
け、安全なプログラムを開発するためには、クライアン
トの要求を個別に処理し、しかも個々の処理ができる限
り干渉しないようにする必要がある。このような個々の
処理の独立性 (Isolation) を容易に実現できる技術が
望まれている。
【0013】かかる従来の問題に関連して、特開平5−
204656号公報や、特開平4−195228号公報
は、スレッドが複数存在するプログラムを解析し、プロ
グラム実行中にスレッドごとに固有データ領域開始アド
レスを保持することにより、スレッド固有データを大域
変数と同様に宣言する技術を開示している。しかし、か
かる技術においても、スレッド間の競合やオブジェクト
の消去するタイミングをプログラマがすべて管理しなけ
ればならないため、プログラム・エラーによるメモリの
浪費やスレッド間の競合によるデータの不整合は避ける
ことはできなかった。
【0014】この一方、特開平4−321136号公報
等、従来のマルチタスク制御方式においては、スレッド
が一旦作成されると、一定のメモリ領域が割りふられる
が、CPU実行権を得ていない状態においても、プログ
ラム終了までこのメモリ領域が確保が持続され、資源の
有効利用がなされていなかった。
【0015】
【発明が解決しようとする課題】本発明の目的は、クラ
イアントからの要求を同時に処理できるマルチスレッド
のプログラムを記述する際に、低レベルな命令を指示す
ることを不要とし、高い技術なくしてもマルチスレッド
のプログラムを作成できるという環境をプログラマに提
供し、プログラミングの生産性を向上させることにあ
る。
【0016】また、本発明の他の目的は、プログラム・
エラーによるメモリの浪費やスレッド間の競合によるデ
ータの不整合を避け、システムの信頼性やスループット
を向上させることにある。
【0017】さらに、本発明の他の目的は、資源の有効
利用が図られたマルチタスク制御方式を提供することに
ある。
【0018】
【課題を解決するための手段】これらの課題を解決する
ために、単一のスレッドのみから参照されるようなオブ
ジェクト (スレッド・オブジェクトと呼ぶ) を導入し、
マルチスレッド固有の低レベルの処理 (例えば、スレッ
ドの管理、排他制御、同期等) を隠蔽するために、これ
らを部品化したものを提供する。本発明において提案す
るスレッド・オブジェクトを用いれば、スレッドの独立
性の高い安全なプログラムを容易に構築できる。また、
マルチスレッドのプログラミングでは、スレッドの管
理、セマフォー等を用いた共有資源の保護、スレッド間
の同期等が困難とされている。本発明では、このような
マルチスレッド固有の低レベルの処理を部品化したもの
を提供することにより、プログラムの開発を容易にする
ことができる。
【0019】スレッド・オブジェクトは、安全なプログ
ラムを書くためには有効であるが、スレッド間でデータ
を共有しなければならない場合もある。本発明において
は、このような点を考慮して、共有オブジェクト (Shar
ed Object) と呼ばれる、別の種類のオブジェクトを提
供する。スレッド・オブジェクトと違い、共有オブジェ
クトは複数のスレッドからのアクセスが可能となってお
り、共有資源の保護という観点からlock/unclock 等の
メソッドが提供されている。
【0020】さらに、本発明では、ローカル・オブジェ
クト・参照テーブルおよびグローバル・オブジェクト参
照テーブルによりスレッド・オブジェクトと共有オブジ
ェクトを実現し固有資源と共有資源の記述を容易にす
る。そして、スレッド・オブジェクトを作成するのか共
有オブジェクトを作成するのかの選択は、ユーザによっ
てなされる。本発明の好適な実施例においては、視覚化
されたプログラム部品によってスレッド・オブジェクト
と共有オブジェクトを表現し、それらを選択することに
よって共有オブジェクトかスレッド・オブジェクトを指
定する。
【0021】クライアント要求をサーバで処理する前
に、スレッド/スレッド・オブジェクト制御部は設計時
に指定されたスレッド・オブジェクトと共有オブジェク
トをグローバル・オブジェクト参照テーブルに登録す
る。グローバル・オブジェクト参照テーブルには、スレ
ッド・オブジェクトと共有オブジェクトの両方がテーブ
ルに登録される。テーブルにはオブジェクトの名前とオ
ブジェクトに対するポインタそしてスレッド・オブジェ
クトかどうかのフラグが格納される。グローバル・オブ
ジェクト参照テーブルにおいて共有オブジェクトのエン
トリは使用される実際のオフジェクトへのポインタが格
納される。一方スレッド・オブジェクトのエントリはク
ライアント要求処理時にコピーされて使用する場合のテ
ンプレートとなる。
【0022】本発明の1の態様においては、オブジェク
ト識別情報と、スレッド・オブジェクト・テンプレート
識別情報を含むデータ処理要求の受領を検出する段階
と、受領の検出に応答して、記憶域の領域内においてス
レッドの作成を行う段階と、スレッド・オブジェクト・
テンプレート識別情報に対応した、スレッド・オブジェ
クト・テンプレートに基づいてスレッド・オブジェクト
を作成する段階と、スレッド・オブジェクトとスレッド
・オブジェクト識別情報を関連付ける段階と、作成した
スレッドを削除する段階とを含むデータ処理システムが
管理する記憶域において、複数のデータ処理要求を処理
する方法が提供される。
【0023】この「オブジェクト識別情報」は、後述す
る本発明の好適な実施例に於けるプロキシーIDに対応
する概念であり、オブジェクトを識別するための情報で
ある。また、「スレッド・オブジェクト・テンプレート
識別情報」とは、後述する本発明の好適な実施例に於け
るオブジェクト名に対応する概念である。そして、「デ
ータ処理要求」とは、本発明の好適な実施例に於けるク
ライアント要求に対応する概念であるが、「データ処理
要求」は、クライアントからサーバへのデータ処理要求
に限定される概念ではなく、スタンドアロン環境や、T
SO(TimeSharing Option)環境等
における処理要求を含む概念である。
【0024】さらに、「スレッド・オブジェクト・テン
プレートに基づいてスレッド・オブジェクトを作成す
る」とは、スレッド・オブジェクト・テンプレートをス
レッド・オブジェクトとほぼ同様な形式で作成し、格納
しておき、スレッド・オブジェクト・テンプレートをコ
ピーすることにより、スレッド・オブジェクトを作成す
る場合の他、スレッド・オブジェクトを作成するのに必
要な情報をスレッド・オブジェクト・テンプレートとし
て格納しておき、このスレッド・オブジェクト・テンプ
レートの情報を使用してスレッド・オブジェクトを作成
すること等を含む。
【0025】そして、「スレッド・オブジェクトとスレ
ッド・オブジェクト識別情報を関連付ける」とは、本発
明の好適な実施例に於けるプロキシーIDマップへの実
際のオブジェクトへのポインタとプロキシーIDの登録
に対応する概念であるが、テーブルによるスレッド・オ
ブジェクトとスレッド・オブジェクト識別情報の関連付
けに限らず、スレッド・オブジェクト識別情報によって
スレッド・オブジェクトを特定できるようにする操作の
全てを含む概念である。また、「スレッドを削除する」
とは、スレッドとして使用していた記憶域を開放する
他、スレッドとして使用していた記憶域を直ちに開放す
ることはしないが、一定の条件が発生することによっ
て、使用していた記憶域を開放するような場合をも含む
概念である。例えば、本発明の好適な実施例では、スレ
ッドIDを0にセットすることにより、他のクライアン
ト要求等によりスレッド作成の必要があれば、そのクラ
イアント要求に0がセットされたスレッドを使用するこ
とができるようにしている。
【0026】本発明の他の一態様においては、オブジェ
クト識別情報を含むデータ処理要求の受領を検出する段
階と、受領の検出に応答して、記憶域の領域内において
スレッドの作成を行う段階と、データ処理システムに予
め格納されており、スレッド・オブジェクト識別情報に
対応した、スレッド・オブジェクトを削除する段階と、
作成したスレッドを削除する段階とを含むデータ処理シ
ステムが管理する記憶域において、複数のデータ処理要
求を処理する方法が提供される。
【0027】本発明の他の一態様においては、オブジェ
クト識別情報と、メソッド識別情報を含むデータ処理要
求の受領を検出する段階と、受領の検出に応答して、記
憶域の領域内においてスレッドの作成を行う段階と、デ
ータ処理システムに予め格納されており、スレッド・オ
ブジェクト識別情報に対応した、スレッド・オブジェク
トを特定する段階と、特定されたスレッド・オブジェク
トをスレッドと関連付ける段階と、スレッド・オブジェ
クトのメソッド識別情報に関連するメソッドをスレッド
において実行する段階と、作成したスレッドを削除する
段階とを含むデータ処理システムが管理する記憶域にお
いて、複数のデータ処理要求を処理する方法が提供され
る。
【0028】本発明の他の一態様においては、オブジェ
クト識別情報と、スレッド・オブジェクト・テンプレー
ト識別情報を含むデータ処理要求の受領を検出すること
をデータ処理システムに指示するプログラムコード手段
と、受領の検出に応答して、記憶域の領域内においてス
レッドの作成を行うことをデータ処理システムに指示す
るプログラムコード手段と、スレッド・オブジェクト・
テンプレート識別情報に対応した、スレッド・オブジェ
クト・テンプレートに基づいてスレッド・オブジェクト
を作成することをデータ処理システムに指示するプログ
ラムコード手段と、スレッド・オブジェクトとスレッド
・オブジェクト識別情報を関連付けることをデータ処理
システムに指示するプログラムコード手段と、作成した
スレッドを削除することをデータ処理システムに指示す
るプログラムコード手段とを含むデータ処理システムが
管理する記憶域において、複数のデータ処理要求を処理
するためのプログラムを格納する記憶媒体が提供され
る。
【0029】本発明の他の一態様においては、オブジェ
クト識別情報と、スレッド・オブジェクト・テンプレー
ト識別情報を含むデータ処理要求の受領を検出すること
をデータ処理システムに指示するプログラムコード手段
と、受領の検出に応答して、記憶域の領域内においてス
レッドの作成を行うことをデータ処理システムに指示す
るプログラムコード手段と、スレッド・オブジェクト・
テンプレート識別情報に対応した、スレッド・オブジェ
クト・テンプレートに基づいてスレッド・オブジェクト
を作成することをデータ処理システムに指示するプログ
ラムコード手段と、スレッドとスレッド・オブジェクト
を関連付けることをデータ処理システムに指示するプロ
グラムコード手段と、作成したスレッドを削除すること
をデータ処理システムに指示するプログラムコード手段
とを含むデータ処理システムが管理する記憶域におい
て、複数のデータ処理要求を処理するためのプログラム
を格納する記憶媒体が提供される。
【0030】「スレッドとスレッド・オブジェクトを関
連付ける」とは、本発明の好適な実施例におけるローカ
ル・オブジェクト参照テーブルにおいてスレッドIDに
対応したテーブルに実際のオブジェクトへのポインタ情
報を登録することに対応した概念である。
【0031】本発明の他の一態様においては、スレッド
・オブジェクト・テンプレート識別情報と、スレッド・
オブジェクト識別情報を含むデータ処理要求を受領し、
格納するデータ処理要求キューと、データ処理要求キュ
ーに格納されているデータ処理要求を受領するスレッド
/スレッド・オブジェクト制御部と、スレッドの作成を
行うスレッド制御部と、スレッド・オブジェクト・テン
プレート識別情報に対応する、データ処理システムに予
め格納されたスレッド・オブジェクト・テンプレートを
ポイントするグローバル・オブジェクト参照テーブル
と、グローバル・オブジェクト参照テーブルでポイント
されたスレッド・オブジェクト・テンプレートに基づい
てスレッド・オブジェクトを作成するオブジェクト制御
部と、スレッド・オブジェクトをスレッドに関連付ける
ローカル・オブジェクト参照テーブルとを含む複数のデ
ータ処理要求を処理するためのシステムが提供される。
【0032】本発明の他の一態様においては、プログラ
ムに存在する、スレッド・オブジェクトのオブジェクト
名及びメソッド名の記述を検出する段階と、データ処理
システムに、スレッド・オブジェクトが存在するか否か
を検査する段階と、スレッド・オブジェクトが存在しな
い場合、オブジェクト名に対応した、スレッド・オブジ
ェクト・テンプレートに基づいてスレッド・オブジェク
トを作成する段階と、メソッド名に対応する作成された
スレッド・オブジェクトのメソッドを実行する段階とを
含むデータ処理システムにおいて、複数の命令が記述さ
れたプログラムを実行する方法が提供される。
【0033】本発明の他の一態様においては、プログラ
ムに存在する、スレッド・オブジェクトのオブジェクト
名及びメソッド名の記述を検出する段階と、データ処理
システムに、スレッド・オブジェクトが存在するか否か
を検査する段階と、スレッド・オブジェクトが存在して
いる場合、メソッド名に対応するスレッド・オブジェク
トのメソッドを実行する段階とを含むデータ処理システ
ムにおいて、複数の命令が記述されたプログラムを実行
する方法が提供される。
【0034】本発明の他の一態様においては、プログラ
ムに存在する、スレッド・オブジェクトのオブジェクト
名及びメソッド名の記述を検出する段階と、データ処理
システムに、スレッド・オブジェクトが存在するか否か
を検査する段階と、スレッド・オブジェクトが存在しな
い場合、オブジェクト名に対応した、スレッド・オブジ
ェクト・テンプレートに基づいてスレッド・オブジェク
トを作成する段階と、オブジェクト名をデータ処理シス
テムにおいて登録する段階と、メソッド名に対応する作
成されたスレッド・オブジェクトのメソッドを実行する
段階とを含むデータ処理システムにおいて、複数の命令
が記述されたプログラムを実行する方法が提供される。
【0035】本発明の他の一態様においては、プログラ
ムに存在する、スレッド・オブジェクトのオブジェクト
名及びメソッド名の記述を検出するオブジェクト・ルッ
クアップ・マネジャと、スレッド・オブジェクトが存在
するか否かを登録するローカル・オブジェクト参照テー
ブルと、スレッド・オブジェクトを作成する情報を格納
するスレッド・オブジェクト・テンプレートとを含む複
数の命令が記述されたプログラムを実行するデータ処理
システムが提供される。
【0036】本発明の他の一態様においては、プログラ
ムに存在する、スレッド・オブジェクトのオブジェクト
名及びメソッド名の記述を検出することをデータ処理シ
ステムに指示するプログラムコード手段と、データ処理
システムに、スレッド・オブジェクトが存在するか否か
を検査することをデータ処理システムに指示するプログ
ラムコード手段と、記スレッド・オブジェクトが存在し
ている場合、メソッド名に対応するスレッド・オブジェ
クトのメソッドを実行することをデータ処理システムに
指示するプログラムコード手段とを含むデータ処理シス
テムにおいて、複数の命令が記述されたプログラムを実
行するためのプログラムを格納する記憶媒体が提供され
る。
【0037】
【実施例】
A.ハードウエア構成 以下、図面を参照して本発明の実施例を説明する。図1
を参照すると、本発明を実施するための(サーバ側の)
ハードウェア構成の概観図が示されている。システム1
20は、中央処理装置(CPU)1とメモリ4とを含ん
でいる。CPU1とメモリ4は、バス2を介して、補助
記憶装置としてのハードディスク装置13とを接続して
ある。フロッピーディスク装置(またはCD−ROM、
MO、MD、ZIP、DVD等の各種記憶媒体の駆動装
置)20はフロッピーディスクコントローラ等の各種コ
ントローラ19を介してバス2へ接続されている。
【0038】フロッピーディスク装置(またはCD−R
OM等の各種媒体の駆動装置)20には、フロッピーデ
ィスク(またはCD−ROM等の各種記憶媒体)が挿入
され、このフロッピーディスク等やハードディスク装置
13、ROM14には、オペレーティングシステムと協
働してCPU等に命令を与え、本発明を実施するための
コンピュータ・プログラムのコードを記録することがで
き、このコードは、メモリ4にロードされることによっ
て実行される。このコンピュータ・プログラムのコード
は圧縮し、または、複数に分割して、複数の媒体に記録
することもできる。
【0039】システム120は更に、ユーザ・インター
フェース・ハードウェアを備えたシステムとすることが
でき、ユーザ・インターフェース・ハードウェアとして
は、例えば、入力をするためのポインティング・デバイ
ス(マウス、ジョイスティック等)7またはキーボード
6や、視覚データをユーザに提示するためのディスプレ
イ12がある。また、パラレルポート16を介してプリ
ンタを接続することや、シリアルポート15を介してモ
デムを接続することが可能であり、シリアルポート15
およびモデムまたは通信アダプタ18を介して他のコン
ピュータと通信を行うことが可能である。
【0040】従って、本発明は、通常のパーソナルコン
ピュータ(PC)、やワークステーションやこれらの組
合せによって実施可能であることを容易に理解できるで
あろう。ただし、これらの構成要素は例示であり、その
全ての構成成要素が本発明の必須の構成要素となるわけ
ではない。例えば、図1は、スタンド・アロン環境のシ
ステムを示しているが、クライアント/サーバ・システ
ムとして本発明を実現し、サーバ・マシンに本発明のシ
ステム120を配置し、クライアント・マシンは、サー
バ・マシンに対して、イーサネット、トークン・リング
などでLAN接続し、クライアント・マシン側には、後
述するサーバ・プログラムを作成し、入力するための入
力装置と、プログラムの実行結果を見るための表示装置
を配置してもよい。また、他のサーバと協働して本シス
テムを構成させる等、設計段階で自由に変更できる。
【0041】オペレーティング・システムとしては、W
indows95、WindowsNT(「Windo
ws95」及び「WindowsNT」は、マイクロソ
フト社の商標)、OS/2(「OS/2」は、IBM社
の商標)、AIX(「AIX」は、IBM社の商標)上
のX−WINDOWシステム(「X−WINDOWシス
テム」は、MIT社の商標)などの、標準でGUIマル
チウインドウ環境をサポートするものが望ましいが、本
発明は、マルチスレッドをサポートするOSであれば、
キャラクタ・ベースのOSでも実現可能であり、特定の
オペレーティング・システム環境、API環境に限定さ
れるものではない。
【0042】B.システム構成 次に、図2のブロック図を参照して、本発明のシステム
構成について説明する。図において、分散オブジェクト
・システム111は、クライアント側の資源管理方法の
違い、ハードウエアの違い、言語の違い等を吸収し、サ
ーバ側に共通フォーマットのデータを提供することを可
能にするものである。本発明の好適な実施例において
は、DSOM(Distributed System
Object Model)が、この機能を提供する
が、DCOM(「DCOM」はマイクロソフト社の商
標)等の他の分散オブジェクト・システムによっても本
発明を実施することができる。分散オブジェクト・シス
テム111は、複数のクライアント要求101,103
を共通のフォーマットに変換し、サーバ120の管理す
るキュー(データ処理要求キュー)125に格納する。
【0043】スレッド/スレッド・オブジェクト制御部
127は、このキューに蓄えられた共通フォーマットの
クライアント要求を解釈し、スレッドやオブジェクトの
生成や削除、ローカル・オブジェクト参照テーブル13
7やプロキシーIDマップへの登録等を行う。
【0044】スレッド制御部131は、スレッドの生成
や削除を行う。マルチスレッド・プログラムを実行する
には、必要に応じてスレッドを生成したり、削除しなけ
ればならない。このようなスレッド管理は以下のような
2つに分けて考えることができる。
【0045】(1) クライアントからの要求を処理する場
合。この場合、クライアントからの要求に応じて、特定
の関数を実行する必要があり、そのためにスレッドを生
成しなければならない。このような外からの要求に対し
ては、システムが自動的にスレッドを生成し、終了とと
もにこれを削除する。
【0046】(2) 部品 (例えば、後述するFIFO部
品) のコールバック関数を実行する場合。この場合、コ
ールバック関数の実行直前にスレッドが生成され、関数
の実行後スレッドは消滅する。スレッドの管理は部品自
身が行うため、ユーザがスレッドを管理するためのコー
ドを書く必要はない。スレッド管理は前者ではシステム
が行い、後者では部品自身が行うため、いずれの場合に
おいてもユーザがスレッド管理のためのコードを書く必
要はない。
【0047】オブジェクト制御部133は、スレッド・
オブジェクトの生成や削除を行う。スレッド・オブジェ
クトの作成は、システムに予め格納されているスレッド
・オブジェクト・テンプレート149をコピーすること
によって行われる。この詳しい動作については後述す
る。
【0048】プロキシーIDマップ135は、クライア
ント要求101,103と実際のオブジェクト141,
143を結び付ける情報を管理する。
【0049】ローカル・オブジェクト参照テーブル13
7はスレッド・オブジェクトの情報を管理する。また、
グローバル・オブジェクト参照テーブル139は、スレ
ッド・オブジェクト作成の基になる情報(スレッド・オ
ブジェクト・テンプレート149)を管理する。
【0050】さらに、オブジェクト・ルックアップ・マ
ネジャ123は、サーバ・プログラム121中で指定さ
れたのオブジェクトを探索し、そのオブジェクトの情報
が管理されていない場合は、そのオブジェクトの作成を
行う。また、スレッド・オブジェクトが指定されたか、
共有オブジェクトが指定されたかを判別する。
【0051】C.クライアントからの要求処理 次に、本発明の好適な実施例において、クライアントか
らの要求がどのように処理されるかについて説明する。
本発明の好適な実施例においては、クライアント要求1
01,103は、分散オブジェクト・システム111に
よって、図3に示すパケット情報に変換され、サーバが
受領した順番に、キュー125に蓄積される。本発明の
好適な実施例においては、このパケット情報129は、
クライアント要求101,103にユニークな情報であ
る。しかし、1つのクライアント要求に対し複数生成さ
れるものであったり、共通の要求内容である複数のクラ
イアント要求等が1つのパケット情報に変換されても実
施可能である。
【0052】なお、この分散オブジェクト・システム1
11は、クライアント要求のフォーマットがクライアン
ト要求毎異なることを想定して設けられているものであ
る。従って、クライアント要求が共通フォーマットで行
われるシステムにおいては不要な構成要素となる。ま
た、本発明の好適な実施例においては、クライアント要
求101,103が発生する毎にサーバ120側のキュ
ー125に、クライアント要求を格納する方式を採用し
ているが、サーバが複数のクライアントに対し、要求が
あるか否かを順番に問いかけ、その問いかけに対しての
みクライアントが、要求をサーバ120側に送出するこ
とができるといった方式を採用することも可能であり、
かかる場合、キュー125は、不要な構成要素となる。
【0053】図3に示すプロキシーID241は、どの
クライアントからの要求であるかを示す情報である。本
発明の好適な実施例において、この情報は、分散オブジ
ェクト・システム111が各クライアントが要求するオ
ブジェクトに対しユニークに設定する。要求種類エント
リ243は、ユーザが要求する処理の内容を管理してい
る。ユーザ要求は、後述するが、本発明の好適な実施例
においては、オブジェクトの作成要求(New)、メソ
ッドの要求(MethodCall)、オブジェクトの
削除要求(Delete)の3種類である。本明細書に
おいては、このオブジェクトに対する種々の要求をオブ
ジェクト・アクションと呼ぶ。
【0054】この要求種類エントリ243には、スレッ
ド/スレッド・オブジェクト制御部127が、その種類
を判別できるように、数字,文字または記号等のデータ
が格納される。ただし、パケット情報129の内容によ
ってもスレッド/スレッド・オブジェクト制御部127
は、クライアント要求の種類を判別することが可能であ
るため、パケット情報129に要求種類のエントリ24
3を設けて要求種類情報を管理することは本発明の必須
の要件とはならない。かかる場合、例えば、プロキシー
ID241の情報のみ存在し、後述するオブジェクト名
245、メソッド名247、引き数の数251の各エン
トリに情報が入っていない場合は、削除要求であると判
断し、削除要求でない場合であって、プロキシーID2
41とオブジェクト名245の情報のみ存在し、メソッ
ド名247、引き数の数251の各エントリに情報が入
っていない場合は、作成要求であると判断し、その他の
場合は、メソッドの要求と判断することも可能である。
【0055】オブジェクト名エントリ245には、クラ
イアントが処理を要求するオブジェクトの名前が格納さ
れる。メソッド名エントリ247は、クライアントが処
理を要求するメソッドの名前が格納される。前述のオブ
ジェクト名とこのメソッド名によって、システムは、実
行すべきメソッドを特定する。戻り値エントリ249
は、ユーザ要求が戻り値を求めている場合、ユーザ要求
の結果である戻り値がこのエントリに格納される。
【0056】引き数の数251は、ユーザ要求で指定さ
れた引き数の総数が格納される。引き数253は、ユー
ザ要求で指定された第1の引き数の内容が格納される。
そして、前述の引き数の数251の数(=n)だけ、引
き数の情報が格納される。
【0057】この要求パケットは、順次サーバ120で
処理され、その結果は、分散オブジェクト・システム1
11に戻され、制御が再びクライアント側に戻されるこ
ととなる。以下、かかる処理内容をクライアント要求の
種類に分けて説明する。
【0058】C1.スレッド・オブジェクトの作成要求 クライアントからの要求が、「オブジェクトの生成」で
あった場合には、要求パケットに図4に示す情報がセッ
トされる。すなわち、要求種類エントリ243には、N
ew要求であることを示す情報がセットされ、プロキシ
ーIDのエントリ241には、クライアントが生成を要
求するオブジェクトに対応するプロキシーIDが格納さ
れる。本発明の好適な実施例において、このプロキシー
IDは、オブジェクトに対して一意的に設定され、設定
されたプロキシーIDの情報は、クライアント(また
は、分散オブジェクト・システム111)側に戻され
る。クライアント(または、分散オブジェクト・システ
ム111)側では、このプロキシーIDを使用して、生
成されたオブジェクトを利用することができる。分散オ
ブジェクト・システム111は、プロキシーIDを一定
の条件で変換してクライアントに返すことができ、この
変換されてクライアントに返された情報と同一の情報を
受けることにより、変換の基になるプロキシーIDを再
度指定することもできる。
【0059】オブジェクト名のエントリ245には、生
成すべきオブジェクト名がセットされる。この要求パケ
ットは、前述のようにスレッド/スレッド・オブジェク
ト制御部127により読み込まれる。スレッド/スレッ
ド・オブジェクト制御部127は、要求種類のエントリ
243の内容から、要求の内容がオブジェクトの生成で
あることを知り、その名前に対応するオブジェクトを図
9に示すグローバル・オブジェクト参照テーブル139
にあるスレッド・オブジェクト・テンプレート149を
オブジェクト制御部133に渡す。
【0060】オブジェクト制御部133は、このスレッ
ド・オブジェクト・テンプレートのコピーを行い、オブ
ジェクト名に、要求パケットのオブジェクト名245を
セットすることにより、ユーザ要求のオブジェクトを生
成する。このように、スレッド単位でスレッド・オブジ
ェクト141をスレッド・オブジェクト・テンプレート
149からコピーして作成し、使用するこにより、複数
のクライアント要求が1つのオブジェクトのメソッドや
プロパティの利用をめぐって競合する事態を回避するこ
とが可能となり、クライアント要求を並列的に実行する
ことが可能となる。
【0061】このスレッド・オブジェクト・テンプレー
トは、サーバ・プログラム121を実行することによっ
て、予めサーバ側に作成されている。このスレッド・オ
ブジェクト・テンプレートを作成する具体的な手順は後
に詳述する。なお、本発明の好適な実施例において、ス
レッド・オブジェクト・テンプレートは、コピーするこ
とによってスレッド・オブジェクトとなる形式でシステ
ムに格納されているが、スレッド・オブジェクト・テン
プレートは、スレッド・オブジェクトを作成するために
必要な情報を管理していればよく、単なるコピーではな
く、何らかのデータ形式の変換によってスレッド・オブ
ジェクトが作成されてもよい。例えば、複数のスレッド
・オブジェクト・テンプレートで共通の情報と、共通で
ない情報を別々に管理し、共通情報を重複して持たない
ようにしたり、スレッド・オブジェクト・テンプレート
のデータを圧縮して格納し、解凍して使用することも可
能である。
【0062】このオブジェクト生成の処理と同時に、オ
ブジェクト生成要求を処理するためのスレッドをスレッ
ド制御部131から得る。具体的には、スレッド制御部
131がオペレーティング・システム(OS)にスレッ
ドの作成を指示し、これに応答して、OSがスレッドを
作成し、この作成したスレッドのスレッドIDをスレッ
ド制御部131に返す。OSがスレッドを作成する手法
は、本発明の出願時において公知の手法であり、OSを
使用するプログラマは、それを意識せず使用することが
できる。
【0063】生成されたオブジェクト情報をスレッド/
スレッド・オブジェクト制御部127は、ローカル・オ
ブジェクト参照テーブル137に登録する。具体的に
は、図7に示すように、ローカル・オブジェクト参照テ
ーブル137には、スレッド作成時にスレッド制御部1
31が付与するスレッドID(m)211,221が付加
され、1つのスレッドに対し、オブジェクト名とオブジ
ェクトを指すポインタが格納されるエントリ213,2
15を有しており、このエントリ213,215に、要
求パケットのオブジェクト名とスレッド/スレッド・オ
ブジェクト制御部127によって実際に作成されたオブ
ジェクトを指すポインタが格納される。
【0064】また、この実際に作成されたオブジェクト
を指すポインタは、図8に示すプロキシーIDマップ1
35に登録される。プロキシーIDマップ135は、プ
ロキシーIDのエントリ231とオブジェクトのポイン
タのエントリ233を有している。このエントリ23
1,235には、プロキシーIDとコピーして得られた
オブジェクトのポインタが対になって登録される。この
テーブルにより、クライアントは、プロキシーIDを使
用して、生成されたオブジェクトを利用することができ
る。
【0065】その後、スレッド/スレッド・オブジェク
ト制御部127は、スレッドの制御をスレッド・オブジ
ェクトのコンストラクタに移す。このオブジェクトのコ
ンストラクタとは、サーバ・プログラムにおいて指定さ
れた、オブジェクトが生成された場合に最初に起動され
るメソッドである。このコンストラクタによって、各パ
ラメータの初期設定等を行うことができる。
【0066】コンストラクタの処理が終わった場合制御
は、スレッド/スレッド・オブジェクト制御部127に
もどされる。スレッド/スレッド・オブジェクト制御部
は、ローカル・オブジェクト参照テーブル137に登録
したテーブルに付加したスレッドIDを「未使用」の状
態にし(本発明の好適な実施例においては、スレッドI
Dに"0"をセットすることにより、システムが、スレッ
ドを「未使用」の状態と判断する)、スレッドを削除し
てクライアントに制御を戻す。作成されたテーブルはそ
のまま残り、以後行われるオブジェクトに対するメソッ
ドの要求等に利用される。
【0067】C2.オブジェクトの削除要求 クライアントからのオブジェクトの削除要求時には要求
パケットに図5に示す情報がセットされる。具体的に
は、クライアントのオブジェクトを識別するプロキシー
IDと、削除要求が指定される。
【0068】スレッド/スレッド・オブジェクト制御部
127は、この要求パケットを受取り、対象となるスレ
ッド・オブジェクトをプロキシーIDマップ135から
プロキシーIDをキーとして捜し出す。スレッド/スレ
ッド・オブジェクト制御部127はスレッド・オブジェ
クトのデストラクタを呼び出すためのスレッドを作成す
る。このデストラクタとは、オブジェクト生成時にシス
テムが付加するメソッドであり、オブジェクトの削除の
指定がなされると実行される。このデストラクタによっ
て、各パラメータについての後処理(終了処理)等を行
うことができる。なお、この処理において作成されたス
レッドのIDは、対象となるオブジェクトのローカル・
オブジェクト参照テーブル137に付けられる。
【0069】その後、スレッド/スレッド・オブジェク
ト制御部127は、この作成されたスレッドにおいて、
デストラクタの処理を行う。処理が終了したあと、スレ
ッド/スレッド・オブジェクト制御部127は、このス
レッドIDに結び付けられたエントリでポイントされる
オブジェクトの削除をオブジェクト制御部133を通じ
ておこなう。その後、該当するエントリをローカル・オ
ブジェクト参照テーブル137から削除する。またプロ
キシーIDマップ135から削除された「オブジェクト
へのポインタ」をもつエントリを削除する。そのあとス
レッドを削除して、制御をクライアント側にもどす。
【0070】C3.オブジェクトのメソッド呼び出し クライアントからのメソッド呼び出し時には、あらかじ
め作成されたオブジェクトに対して呼び出しがスレッド
/スレッド・オブジェクト制御部127を通じて行われ
る。オブジェクトのメソッド呼び出しの処理を行うスレ
ッドは、スレッド/スレッド・オブジェクト制御部12
7によりキューからの要求を受け取った時作成される。
スレッド/スレッド・オブジェクト制御部127はパケ
ット中のプロキシーIDから対象とするスレッド・オブ
ジェクトをプロキシーIDマップ135から探しだす。
その対象となるオブジェクトへのポインタをもつテーブ
ルに作成したスレッドのIDを付加した後、作成したス
レッドにおいて、対象とするオブジェクトのメソッドを
実行する。
【0071】オブジェクトのメソッドの処理が終わると
スレッド/スレッド・オブジェクト制御部127は処理
結果(あれば)を要求パケットに書き戻して結果をクライ
アントに戻す。そしてローカル・オブジェクト参照テー
ブル137に与えたスレッドIDを「未使用」の状態に
し、スレッドを削除する。本発明においては、スレッド
・オブジェクトの作成、利用、削除の各オブジェクト・
アクションに対して、スレッドを作成し、オブジェクト
・アクション終了ごとにスレッドを削除するため、必要
以上にメモリ領域を占有することはなく、システムの保
有する限られた資源を有効に利用することができる。
【0072】D.プログラマ作業手順 次に、本願発明の好適な実施例における共有オブジェク
ト及びスレッド・オブジェクトの利用形態について、プ
ログラマの作業手順に沿って説明する
【0073】D1.オブジェクト定義手順 図10乃至14は、本発明の好適な実施例における、ス
レッド・オブジェクトの設定手順を示す図である。本明
細書においては、スレッド・オブジェクトの設定手順の
みを示すが、メソッドの設定を行わない点を除き、共有
オブジェクトもスレッド・オブジェクトと同様の手順に
より設定される。これは共有オブジェクトにメソッド定
義を許すと、スレッド間での干渉が起こり安全性に問題
がでると考えられるからである。このような観点から、
共有オブジェクトは共有すべきデータを格納するものと
し、その役割を明確にしている。
【0074】図10は、スレッド・オブジェクトの設定
手順における初期状態を示す図である。図において、メ
インウインドウ310は、ビルダのメインウインドウで
あり、アプリケーション・ウインドウ302に対応する
各種フォームや、コード記憶部109に格納された各種
コードを管理するためのウインドウである。
【0075】アプリケーション・ウインドウ320は、
初期状態において、何も情報が入っておらず、プログラ
マはこのアプリケーション・ウインドウ320を用いて
プログラム部品(オブジェクト)の指定等を行う。この
アプリケーション・ウインドウによって、プログラマは
直感的に理解しやすいプログラミングを行うことが可能
になる。
【0076】図の左上に配置された複数のアイコンの集
合体は部品ライブラリ330である。このアイコン1つ
1つがプログラム部品に対応している。これらのアイコ
ンのうち、スレッド・オブジェクトと記されたアイコン
331はユーザ定義スレッド・オブジェクト専用に提供
されているアイコンである。プログラマが新たなスレッ
ド・オブジェクトを作成する場合、図11に示すよう
に、まず、アプリケーション・ウインドウ320に、ス
レッド・オブジェクト・アイコン331をドロップする
(アイコン321)。アプリケーション・ウインドウ3
20にアイコン331を位置づける手法は、ドラッグド
ロップの他、アイコン331をダブルクリックしたり、
アイコン331を選択した状態において、予め設定され
たキーをおす等、種々存在し、設計段階でさまざまに設
定できる。
【0077】そして、図12に示すように、プログラマ
がメイン・ウインドウ310のウインドウの項目をクリ
ックし、プルダウン・メニューを表示させ、プロパティ
・エディタの項目を選択すると、プロパティ・エディタ
・ウインドウ340がオープンする。このウインドウに
より、プログラマは、オブジェクト名の設定を行うこと
ができる。図において、プログラマは、プロパティ・エ
ディタ・ウインドウ340のオブジェクト名入力エント
リ347にキーボード入力することにより、オブジェク
ト名を、"Order"と設定している。そして、登録と
記されたボタン・アイコン341をクリックすることに
よって、プログラマの入力の内容を登録する。この操作
により、オブジェクト名"Order"に対応して、グロ
ーバル・オブジェクト参照テーブル139に、オブジェ
クト名203"Order"が登録される。また、スレッ
ド・オブジェクトのフラグ205は"1"(Yes)にセ
ットされる。さらに、実際のオブジェクトへのポインタ
201には、後述するオブジェクトの定義情報をポイン
トするためのアドレス値が登録される。
【0078】オブジェクト名の設定が終わると、次にプ
ログラマは、プロパティやメソッドの登録を行う。図1
3において表示されているウインドウ350は、オブジ
ェクト・ウインドウである。オブジェクト・ウインドウ
350にはオブジェクト名355が表示されているた
め、プログラマは、スレッド・オブジェクト"Orde
r"のプロパティまたはメソッドを定義していることを
容易に知ることができる。図13において、まず、プロ
パティの登録が行われている。プロパティの定義は、プ
ロパティ入力エントリ357に、プロパティ名とプロパ
ティ・タイプをキーボード入力することにより行うこと
ができる。また、一覧と記されたボタン・アイコン36
1をクリックすると、定形的なプロパティ名とプロパテ
ィ・タイプがプルダウンメニューの形式で表示され、プ
ログラマは、その一覧の中から1つを選択し、利用する
ことができる。
【0079】このプロパティ入力エントリ357に記載
された文字列は、登録のボタン・アイコン363がクリ
ックされることにより登録される。プロパティの登録が
なされると、オブジェクト・ウインドウ350において
は、登録されているプロパティのリスト359に登録さ
れた定義の内容が追加される。図においては、"Its
Contents as long"というプロパティ
の定義文が登録されたことが示されている。
【0080】図14において、プロパティの登録に次い
でメソッドの登録が行われている。プロパティの登録と
メソッドの登録は、どちらを先に行ってもよい。メソッ
ドの登録の、プロパティの登録と同様に、入力エントリ
365に、メソッド名と、メソッド・タイプをキーボー
ド入力することにより行うことができる。また、一覧と
記されたボタン・アイコン369をクリックすると、定
形的なメソッド名とメソッド・タイプがプルダウン・メ
ニューの形式で表示され、プログラマは、その一覧の中
から1つを選択し、利用することができる。
【0081】このメソッド入力エントリ365に記載さ
れた文字列は、登録のボタン・アイコン363がクリッ
クされることにより登録される。メソッドの登録がなさ
れると、オブジェクト・ウインドウ350においては、
登録されているメソッドのリスト367に登録された定
義の内容が追加される。図においては、"Increm
ent()"というメソッドの定義文が登録されたこと
が示されている。このメソッドが実際に実行される内容
であるメソッドのコードは、後述するコード・エディタ
380において定義することができる。
【0082】このメソッドの登録がなされると、グロー
バル・オブジェクト参照テーブル139の実際のオブジ
ェクトへのポインタ201によってポイントすることの
できるオブジェクトの情報が更新される。
【0083】D2.サーバ・プログラム作成手順 次に、上述のユーザ定義のスレッド・オブジェクトの情
報が、プログラム開発時に、どのようにプログラマに用
いられるかを説明する。図15は、本発明の好適な実施
例における、スレッド・オブジェクトの利用手順を示す
図である。図15において、プログラマは、コード・エ
ディタ・ウインドウ380を使用して、サーバ・プログ
ラムのコーディングをしている。プログラマは、このコ
ード・エディタ・ウインドウ380において、図におい
て、オブジェクト名"Order",メソッド名"Inc
rement"のメソッドのコードを定義している。図
におけるのコード記述エントリ393で記載されたコー
ドの内容が、インタプリタに渡されることにより、メソ
ッドのコードとして実行されることとなる。
【0084】このコード・エディタのウインドウでは、
モジュール・エントリ387、オブジェクト・エントリ
389、メソッド・エントリ391の3種類のエントリ
が提供されている。プログラマはこれらのエントリに、
直接キーボード入力することによって、コード記述エン
トリに入力したコードの部品名とメソッド名を指定す
る。各エントリ387,389,391には、プルダウ
ンメニューの機能を有している。
【0085】モジュール・エントリ387のプルダウン
・メニューは、他のフォーム(コード・エディタで編集
した他のコード)を呼び出すために設けられている。こ
のプルダウン・メニューで選択されたフォームが、コー
ド記述エントリ393に表示される。オブジェクト・エ
ントリ389のプルダウン・メニューは、他のスレッド
・オブジェクトを検索し選択するためのプルダウン・メ
ニューである。メソッド・エントリ391のプルダウン
・メニューは、他のメソッドを検索し選択するためのプ
ルダウン・メニューである。
【0086】実行のためのボタン・アイコン381がク
リックされると、このコードがインタプリタに渡され、
前述の手順に従ってコードが実行される。なお、実行の
ためのボタン・アイコン381の他に中断、中止のため
のボタン・アイコン383,385が提供されており、
このアイコンをクリックすることにより、プログラムの
実行を中断または中止することができる。
【0087】サーバ・プログラムからスレッド・オブジ
ェクトを呼び出す際には、サーバ・プログラムからは宛
先スレッド・オブジェクトのオブジェクト名及びメソッ
ド名と引数がオブジェクト・ルックアップ・マネジャ1
23に渡される。オブジェクト・ルックアップ・マネジ
ャ123は、まず、ローカル・オブジェクト参照テーブ
ル137に、対象とするオブジェクトがすでに登録され
ているかどうか検索する。検索にはサーバ・プログラム
121で指定されたオブジェクトの名前と実行されてい
るスレッドID(スレッド制御部131から得ることが
できる)が使われる。
【0088】登録されていれば対象となるオブジェクト
はすでに作成されていると判断され、その対象となるス
レッド・オブジェクトに制御を移す。もし登録されてい
ない場合オブジェクト・ルックアップ・マネジャ123
は、前述のグローバル・オブジェクト参照テーブル13
9から、対応するスレッド・オブジェクト・テンプレー
ト149を探索し、このスレッド・オブジェクト・テン
プレート149をコピーすることによりスレッド・オブ
ジェクトを作成する。そして、そのオブジェクト名を対
応するスレッドIDのローカル・オブジェクト参照テー
ブル137に登録する。このとき、1つのスレッドID
に対し、複数のオブジェクトを登録することもできる。
その後、渡されたメソッド名と引数を用いてスレッド・
オブジェクトのメソッドを実行する。
【0089】上記のいずれでもない場合、対象オブジェ
クトはスレッド・オブジェクトでないと判断し、グロー
バル・オブジェクト参照テーブル139から捜し出され
制御がその対象オブジェクト(共有オブジェクト、FI
FO部品145またはその他の部品およびオブジェクト
147)にうつされる。
【0090】図15に示すように、プログラマは、FI
FO部品のアイコン335を使用することによりFIF
O部品を利用することができる。このFIFO部品は、
複数のスレッドが並行して実行される場合、共有資源へ
のアクセスを制限しなければならないという要求が存在
するが、この要求を満足させるために提供されたプログ
ラム部品である。例えば、プリンタへの出力やファイル
アクセス等である。このような場合、複数のスレッドか
らの要求を順次実行することが必要であり、FIFO部
品145は、このような機能を提供する。FIFO部品
145への要求が処理されている間、他のスレッドは待
ち状態となっており、その処理が終了すると、次の要求
が処理される。通常、このような処理を実現するには O
S が提供する低レベルのAPI (セマフォなど) を用いな
ければならないが、同期部品はこのような低レベルの処
理を隠すことにより、同期処理の実現を容易にできる。
【0091】また、FIFO部品145の他に、TCP
/IP部品337等のその他の部品またはオブジェクト
147もプログラマは利用することができる。このTC
P/IP部品337は、他のシステムとの通信を可能と
するためのプログラム部品である。
【0092】以上説明したようにプログラマはサーバ・
プログラムのコーディングにおいて、各種オブジェクト
やプログラム部品を利用することができ、これにより、
従来の技術のにおいて示したサーバ・プログラムは、ス
レッド・オブジェクト"ThreadObjectOrder"と共有オブ
ジェクト"SharedObjectStock"を用いて次のように記述
できる。
【0093】なお、ThreadObjectOrderのメソッドIncre
ment()は本発明によって実現される装置によりクライア
ントの要求がサーバで処理される際、自動的に呼び出さ
れる。SharedObjectStockはデフォルトで提供されるLoc
k()とUnlock()以外はメソッドを持つことができない。
共有オブジェクトにアクセスするにはプロパティのみを
使用する。
【0094】
【発明の効果】以上説明したように、本発明によれば、
クライアントからの要求を同時に処理できるマルチスレ
ッドのプログラムを記述する際に、低レベルな命令を指
示することを不要とし、高い技術なくしてもマルチスレ
ッドのプログラムを作成可能にする。また、本発明によ
れば、プログラム・エラーによるメモリの浪費やスレッ
ド間の競合によるデータの不整合が避けることができ、
システムの信頼性やスループットを向上させることがで
きる。さらに、本発明によれば、プログラムをマルチタ
スク制御下で実行する場合に、不要なメモリの確保を不
要とし、資源を有効利用することができる。
【0095】
【図面の簡単な説明】
【図1】 ハードウェア構成の一実施例を示すブロック
図である。
【図2】 本発明のシステム構成の一実施例を示す機能
ブロック図である。
【図3】 本発明のキューに格納された情報パケットの
データ構造の一実施例を示す図である。
【図4】 本発明のキューに格納された情報パケットの
データ構造の一実施例を示す図である。
【図5】 本発明のキューに格納された情報パケットの
データ構造の一実施例を示す図である。
【図6】 本発明のキューに格納された情報パケットの
データ構造の一実施例を示す図である。
【図7】 本発明のローカル・オブジェクト参照テーブ
ルの一実施例を示す図である。
【図8】 本発明のプロキシーIDテーブルの一実施例
を示す図である。
【図9】 本発明のグローバル・オブジェクト参照テー
ブルの一実施例を示す図である。
【図10】 本発明の好適な実施例における、スレッド
・オブジェクトの設定手順を示す図である。
【図11】 本発明の好適な実施例における、スレッド
・オブジェクトの設定手順を示す図である。
【図12】 本発明の好適な実施例における、スレッド
・オブジェクトの設定手順を示す図である。
【図13】 本発明の好適な実施例における、スレッド
・オブジェクトの設定手順を示す図である。
【図14】 本発明の好適な実施例における、スレッド
・オブジェクトの設定手順を示す図である。
【図15】 本発明の好適な実施例における、スレッド
・オブジェクトの利用手順を示す図である。
【0096】
【符号の説明】
100 クライアント環境 101,103 クライアント要求 111 分散オブジェクト・システム 120 サーバ環境 121 サーバ・プログラム 123 オブジェクト・ルックアップ・マネジャ 125 キュー 127 スレッド/スレッド・オブジェクト制御部 131 スレッド制御部 133 オブジェクト制御部 135 プロキシーIDマップ 137 ローカル・オブジェクト参照テーブル 139 グローバル・オブジェクト参照テーブル 141 スレッド・オブジェクト 143 共有オブジェクト 145 FIFO部品 147 その他の部品及びオブジェクト 149 スレッド・オブジェクト・テンプレート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 祐一 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 (72)発明者 濱田 誠司 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムが管理する記憶域にお
    いて、複数のデータ処理要求を処理する方法であって、 (a)オブジェクト識別情報と、スレッド・オブジェク
    ト・テンプレート識別情報を含むデータ処理要求の受領
    を検出する段階と、 (b)前記受領の検出に応答して、前記記憶域の領域内
    においてスレッドの作成を行う段階と、 (c)前記スレッド・オブジェクト・テンプレート識別
    情報に対応した、スレッド・オブジェクト・テンプレー
    トに基づいてスレッド・オブジェクトを作成する段階
    と、 (d)前記スレッド・オブジェクトと前記スレッド・オ
    ブジェクト識別情報を関連付ける段階と、 (e)前記作成したスレッドを削除する段階と、を含む
    方法。
  2. 【請求項2】データ処理システムが管理する記憶域にお
    いて、複数のデータ処理要求を処理する方法であって、 (a)オブジェクト識別情報を含むデータ処理要求の受
    領を検出する段階と、 (b)前記受領の検出に応答して、前記記憶域の領域内
    においてスレッドの作成を行う段階と、 (c)前記データ処理システムに予め格納されており、
    前記スレッド・オブジェクト識別情報に対応した、スレ
    ッド・オブジェクトを削除する段階と、 (d)前記作成したスレッドを削除する段階と、 を含む方法。
  3. 【請求項3】データ処理システムが管理する記憶域にお
    いて、複数のデータ処理要求を処理する方法であって、 (a)オブジェクト識別情報と、メソッド識別情報を含
    むデータ処理要求の受領を検出する段階と、 (b)前記受領の検出に応答して、前記記憶域の領域内
    においてスレッドの作成を行う段階と、 (c)前記データ処理システムに予め格納されており、
    前記スレッド・オブジェクト識別情報に対応した、スレ
    ッド・オブジェクトを特定する段階と、 (d)前記特定されたスレッド・オブジェクトを前記ス
    レッドと関連付ける段階と、 (e)前記スレッド・オブジェクトの前記メソッド識別
    情報に関連するメソッドを前記スレッドにおいて実行す
    る段階と、 (f)前記作成したスレッドを削除する段階と、 を含む方法。
  4. 【請求項4】データ処理システムが管理する記憶域にお
    いて、複数のデータ処理要求を処理するためのプログラ
    ムを格納する記憶媒体であって、 該プログラムは、 (a)オブジェクト識別情報と、スレッド・オブジェク
    ト・テンプレート識別情報を含むデータ処理要求の受領
    を検出することを前記データ処理システムに指示するプ
    ログラムコード手段と、 (b)前記受領の検出に応答して、前記記憶域の領域内
    においてスレッドの作成を行うことを前記データ処理シ
    ステムに指示するプログラムコード手段と、 (c)前記スレッド・オブジェクト・テンプレート識別
    情報に対応した、スレッド・オブジェクト・テンプレー
    トに基づいてスレッド・オブジェクトを作成することを
    前記データ処理システムに指示するプログラムコード手
    段と、 (d)前記スレッド・オブジェクトと前記スレッド・オ
    ブジェクト識別情報を関連付けることを前記データ処理
    システムに指示するプログラムコード手段と、 (e)前記作成したスレッドを削除することを前記デー
    タ処理システムに指示するプログラムコード手段と、 を含む記憶媒体。
  5. 【請求項5】データ処理システムが管理する記憶域にお
    いて、複数のデータ処理要求を処理するためのプログラ
    ムを格納する記憶媒体であって、 該プログラムは、 (a)オブジェクト識別情報と、スレッド・オブジェク
    ト・テンプレート識別情報を含むデータ処理要求の受領
    を検出することを前記データ処理システムに指示するプ
    ログラムコード手段と、 (b)前記受領の検出に応答して、前記記憶域の領域内
    においてスレッドの作成を行うことを前記データ処理シ
    ステムに指示するプログラムコード手段と、 (c)前記スレッド・オブジェクト・テンプレート識別
    情報に対応した、スレッド・オブジェクト・テンプレー
    トに基づいてスレッド・オブジェクトを作成することを
    前記データ処理システムに指示するプログラムコード手
    段と、 (d)前記スレッドと前記スレッド・オブジェクトを関
    連付けることを前記データ処理システムに指示するプロ
    グラムコード手段と、 (e)前記作成したスレッドを削除することを前記デー
    タ処理システムに指示するプログラムコード手段と、 を含む記憶媒体。
  6. 【請求項6】複数のデータ処理要求を処理するためのシ
    ステムであって、 (a)スレッド・オブジェクト・テンプレート識別情報
    と、スレッド・オブジェクト識別情報を含むデータ処理
    要求を受領し、格納するデータ処理要求キューと、 (b)前記データ処理要求キューに格納されている前記
    データ処理要求を受領するスレッド/スレッド・オブジ
    ェクト制御部と、 (c)スレッドの作成を行うスレッド制御部と、 (d)前記スレッド・オブジェクト・テンプレート識別
    情報に対応する、前記データ処理システムに予め格納さ
    れたスレッド・オブジェクト・テンプレートをポイント
    するグローバル・オブジェクト参照テーブルと、 (e)前記グローバル・オブジェクト参照テーブルでポ
    イントされたスレッド・オブジェクト・テンプレートに
    基づいてスレッド・オブジェクトを作成するオブジェク
    ト制御部と、 (f)前記スレッド・オブジェクトを前記スレッドに関
    連付けるローカル・オブジェクト参照テーブルと、 を含むシステム。
  7. 【請求項7】データ処理システムにおいて、複数の命令
    が記述されたプログラムを実行する方法であって、 (a)前記プログラムに存在する、スレッド・オブジェ
    クトのオブジェクト名及びメソッド名の記述を検出する
    段階と、 (b)前記データ処理システムに、前記スレッド・オブ
    ジェクトが存在するか否かを検査する段階と、 (c)前記スレッド・オブジェクトが存在しない場合、
    前記オブジェクト名に対応した、スレッド・オブジェク
    ト・テンプレートに基づいてスレッド・オブジェクトを
    作成する段階と、 (d)前記メソッド名に対応する前記作成されたスレッ
    ド・オブジェクトのメソッドを実行する段階と、 を含む方法。
  8. 【請求項8】データ処理システムにおいて、複数の命令
    が記述されたプログラムを実行する方法であって、 (a)前記プログラムに存在する、スレッド・オブジェ
    クトのオブジェクト名及びメソッド名の記述を検出する
    段階と、 (b)前記データ処理システムに、前記スレッド・オブ
    ジェクトが存在するか否かを検査する段階と、 (c)前記スレッド・オブジェクトが存在している場
    合、前記メソッド名に対応する前記スレッド・オブジェ
    クトのメソッドを実行する段階と、 を含む方法。
  9. 【請求項9】データ処理システムにおいて、複数の命令
    が記述されたプログラムを実行する方法であって、 (a)前記プログラムに存在する、スレッド・オブジェ
    クトのオブジェクト名及びメソッド名の記述を検出する
    段階と、 (b)前記データ処理システムに、前記スレッド・オブ
    ジェクトが存在するか否かを検査する段階と、 (c)前記スレッド・オブジェクトが存在しない場合、
    前記オブジェクト名に対応した、スレッド・オブジェク
    ト・テンプレートに基づいてスレッド・オブジェクトを
    作成する段階と、 (d)前記オブジェクト名を前記データ処理システムに
    おいて登録する段階と、 (e)前記メソッド名に対応する前記作成されたスレッ
    ド・オブジェクトのメソッドを実行する段階と、 を含む方法。
  10. 【請求項10】複数の命令が記述されたプログラムを実
    行するデータ処理システムであって、 (a)前記プログラムに存在する、スレッド・オブジェ
    クトのオブジェクト名及びメソッド名の記述を検出する
    オブジェクト・ルックアップ・マネジャと、 (b)前記スレッド・オブジェクトが存在するか否かを
    登録するローカル・オブジェクト参照テーブルと、 (c)前記スレッド・オブジェクトを作成する情報を格
    納するスレッド・オブジェクト・テンプレートと、 を含むシステム。
  11. 【請求項11】データ処理システムにおいて、複数の命
    令が記述されたプログラムを実行するためのプログラム
    を格納する記憶媒体であって、 該プログラムは、 (a)前記プログラムに存在する、スレッド・オブジェ
    クトのオブジェクト名及びメソッド名の記述を検出する
    ことを前記データ処理システムに指示するプログラムコ
    ード手段と、 (b)前記データ処理システムに、前記スレッド・オブ
    ジェクトが存在するか否かを検査することを前記データ
    処理システムに指示するプログラムコード手段と、 (c)前記スレッド・オブジェクトが存在している場
    合、前記メソッド名に対応する前記スレッド・オブジェ
    クトのメソッドを実行することを前記データ処理システ
    ムに指示するプログラムコード手段と、 を含む記憶媒体。
JP8175210A 1996-07-04 1996-07-04 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム Pending JPH1049381A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8175210A JPH1049381A (ja) 1996-07-04 1996-07-04 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム
US08/814,426 US6463480B2 (en) 1996-07-04 1997-03-10 Method and system of processing a plurality of data processing requests, and method and system of executing a program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8175210A JPH1049381A (ja) 1996-07-04 1996-07-04 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム

Publications (1)

Publication Number Publication Date
JPH1049381A true JPH1049381A (ja) 1998-02-20

Family

ID=15992228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8175210A Pending JPH1049381A (ja) 1996-07-04 1996-07-04 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム

Country Status (2)

Country Link
US (1) US6463480B2 (ja)
JP (1) JPH1049381A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6848107B1 (en) 1998-11-18 2005-01-25 Fujitsu Limited Message control apparatus
JP2005222420A (ja) * 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6463446B1 (en) * 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
US20020046228A1 (en) * 1998-03-20 2002-04-18 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US8434099B2 (en) 1998-09-09 2013-04-30 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US7409694B2 (en) * 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
US7565665B2 (en) 1998-09-09 2009-07-21 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US6802065B1 (en) * 1998-12-29 2004-10-05 Honeywell Inc. System and methods for permitting access to a singular network process by multiple user processes
US6704799B1 (en) * 1998-12-29 2004-03-09 Honeywell Inc. Time-efficient inter-process communication in a harmonic rate system
US8543733B1 (en) * 1999-05-12 2013-09-24 Unisys Corporation DCOM object control creator
JP3807588B2 (ja) * 1999-08-12 2006-08-09 富士通株式会社 マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6854114B1 (en) * 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
US6898617B2 (en) * 1999-11-18 2005-05-24 International Business Machines Corporation Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations by dynamically altering eligible thread pools
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7073033B2 (en) 2000-02-25 2006-07-04 Oracle International Corporation Memory model for a run-time environment
AU2001283134A1 (en) * 2000-08-03 2002-02-18 Prelude Systems, Inc. System and method for client-server communication
US6684262B1 (en) * 2000-10-25 2004-01-27 International Business Machines Corporation Method and system for controlling peripheral device interface behavior using thread registration
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030066056A1 (en) * 2001-09-28 2003-04-03 Petersen Paul M. Method and apparatus for accessing thread-privatized global storage objects
WO2003042811A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Efficient fifo communication using semaphores
JP2005509942A (ja) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ P及びvセマフォ操作
US6915392B2 (en) * 2002-07-12 2005-07-05 Intel Corporation Optimizing memory usage by vtable cloning
US7548858B2 (en) * 2003-03-05 2009-06-16 Microsoft Corporation System and method for selective audible rendering of data to a user based on user input
US7676810B2 (en) * 2004-06-03 2010-03-09 Sap Ag Identification of execution context
US7467373B2 (en) * 2004-10-18 2008-12-16 Microsoft Corporation Global object system
US7770159B2 (en) * 2004-10-20 2010-08-03 Microsoft Corporation Virtual types
US7802257B1 (en) * 2005-06-20 2010-09-21 Oracle America, Inc. Mechanism for bridging a thread-oriented computing paradigm and a job-oriented computing paradigm
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
US7917887B2 (en) * 2007-06-28 2011-03-29 Microsoft Corporation DDEX (data designer extensibility) default object implementations for software development processes
US8505030B2 (en) * 2007-11-16 2013-08-06 Microsoft Corporation Coordinating resources using a volatile network intermediary
US8719841B2 (en) * 2007-11-16 2014-05-06 Microsoft Corporation Dispatch mechanism for coordinating application and communication medium state
US9021503B2 (en) * 2007-11-16 2015-04-28 Microsoft Technology Licensing, Llc Coordinating application state and communication medium state
US20090234904A1 (en) * 2008-01-25 2009-09-17 Morgan Stanley (A Delaware Corporation) System and method for dynamic extension of aggregation engine
US8301706B2 (en) 2009-06-15 2012-10-30 Microsoft Corporation Routing of pooled messages via an intermediary
US8326886B2 (en) * 2010-01-21 2012-12-04 Microsoft Corporation Per-thread, per-instance data storage
US8549538B2 (en) 2010-03-18 2013-10-01 Microsoft Corporation Coordinating communication medium state for subtasks
US8250234B2 (en) 2010-04-26 2012-08-21 Microsoft Corporation Hierarchically disassembling messages
US10198289B2 (en) * 2014-04-29 2019-02-05 Entit Software Llc Relating user action flows by storing relationships between threads and objects
CN105824608B (zh) * 2015-01-07 2019-06-28 阿里巴巴集团控股有限公司 处理对象的处理、插件生成方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0416768B1 (en) * 1989-09-08 1998-06-17 Digital Equipment Corporation Thread private memory storage for multi-thread digital data processors
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US5613114A (en) * 1994-04-15 1997-03-18 Apple Computer, Inc System and method for custom context switching
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5805886A (en) * 1994-09-26 1998-09-08 Intel Corporation Method for notifying client applications of events in a shared application in a computer system
US5752031A (en) * 1995-04-24 1998-05-12 Microsoft Corporation Queue object for controlling concurrency in a computer system
US5715450A (en) * 1995-09-27 1998-02-03 Siebel Systems, Inc. Method of selecting and presenting data from a database using a query language to a user of a computer system
US5764915A (en) * 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US5765157A (en) * 1996-06-05 1998-06-09 Sun Microsystems, Inc. Computer system and method for executing threads of execution with reduced run-time memory space requirements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6848107B1 (en) 1998-11-18 2005-01-25 Fujitsu Limited Message control apparatus
JP2005222420A (ja) * 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム

Also Published As

Publication number Publication date
US20010056457A1 (en) 2001-12-27
US6463480B2 (en) 2002-10-08

Similar Documents

Publication Publication Date Title
JPH1049381A (ja) 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム
US6148323A (en) System and method for managing the execution of system management
US6658490B1 (en) Method and system for multi-threaded processing
JP2520543B2 (ja) プログラムの実行を管理する方法及びシステム
US7089561B2 (en) Methods and systems for creating and communicating with computer processes
EP0912014B1 (en) A method, apparatus and program product for accessing a management information service provided by a server
US6308182B1 (en) Information processing apparatus
JP4070248B2 (ja) オブジェクト接続を動的に発生する方法及びシステム
RU2398263C2 (ru) Способ, система и устройство, обеспечивающие предварительный просмотр документа
US5896532A (en) Objects with run-time classes and methods of making them
US5675796A (en) Concurrency management component for use by a computer program during the transfer of a message
US6260077B1 (en) Method, apparatus and program product for interfacing a multi-threaded, client-based API to a single-threaded, server-based API
JP5042993B2 (ja) ソフトウェアアプリケーションを構成する方法
JP3072709B2 (ja) 要求伝達方法
US6633313B1 (en) Event routing mechanism in a computer system
JPH1091444A (ja) 実行時にサービス従属代表をオブジェクトに動的に関連付けるための機構
US20070011687A1 (en) Inter-process message passing
US20050289505A1 (en) Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
JPH10133876A (ja) 低オーバヘッドオブジェクトアダプタ
JPH1063506A (ja) タイプコードで解釈されコンパイル(編集)されたマーシャリングを可能にするトランスポートから独立した呼出しとサーバントインターフェイス
US6470346B2 (en) Remote computation framework
JPH11272483A (ja) サ―バに機能を追加する方法および装置
JP2004505333A (ja) 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語
US5832266A (en) Encapsulation of applications for inclusion within an object management facility environment
JPH11259301A (ja) C++における例外の遅延投入のための方法及び装置