JPH0827774B2 - 修正可能な機能をサーバ上で実行する方法 - Google Patents

修正可能な機能をサーバ上で実行する方法

Info

Publication number
JPH0827774B2
JPH0827774B2 JP5204346A JP20434693A JPH0827774B2 JP H0827774 B2 JPH0827774 B2 JP H0827774B2 JP 5204346 A JP5204346 A JP 5204346A JP 20434693 A JP20434693 A JP 20434693A JP H0827774 B2 JPH0827774 B2 JP H0827774B2
Authority
JP
Japan
Prior art keywords
server
function
client
functions
modifiable
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.)
Expired - Fee Related
Application number
JP5204346A
Other languages
English (en)
Other versions
JPH076111A (ja
Inventor
リザ・ジャリリ
ウェイン・エル・ウットン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPH076111A publication Critical patent/JPH076111A/ja
Publication of JPH0827774B2 publication Critical patent/JPH0827774B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、サーバと呼ばれるコン
ピュータ・プログラムに係り、更に詳細に説明すれば、
サーバが実行するように予め設計されていなかったオブ
ジェクト・コードを、サーバ・プログラムの再コンパイ
ル又は再連係なしに、実行できるサーバに係る。
【0002】
【従来の技術】サーバは、他のプログラムに特定のサー
ビスを提供するコンピュータ・プログラムである。クラ
イアントは、サーバのサービスを用いるコンピュータ・
プログラムである。通常、サーバ・プログラムは、クラ
イアントからの要求を待ちながら1つの連続ループでア
イドル稼働している。このプログラム・ループではいつ
も、サーバは、特定の機能を遂行するためのクライアン
トの要求により中断可能である。
【0003】典型的には、クライアントは、これが遂行
し得ないタスクを遂行するようサーバに依頼する。例え
ば、プリント・サーバは、プリンタ接続機構を有する機
械上にあり、プリンタでファイルを印刷するためのクラ
イアントからの要求を受付ける。クライアントがファイ
ルの印刷を望む場合、それはファイルを印刷する要求と
ともに、そのファイルをサーバに送る。クライアント
は、1つのコンピュータ上でサーバとともに走る別のプ
ログラムであってもよく、サーバ・コンピュータに接続
された外部コンピュータ上で走るプログラムであっても
よい。
【0004】一般に、サーバは、プログラムされた機能
を遂行するための要求を受付けることができる。即ち、
サーバは、言語を介してクライアントに利用可能になる
限定された機能セットを有する。その言語は、1つのコ
マンドのような単純なものでもよく、プログラム言語の
ような複雑なものでもよい。クライアントは、サーバの
言語でサーバと通信しなければならない。サーバがクラ
イアントの要求を理解した場合、それは、それ自身のプ
ログラムの適当な部分を実行することによって、その要
求を満足させる。「印刷」のような要求を受け取る場
合、サーバ内の所定の予め連係した機能が実行される。
サーバ・プログラムのこの部分をオブジェクトと呼ぶこ
とにする。
【0005】オブジェクトは、オブジェクト言語と呼ば
れる、コンピュータが読み取り又は理解できる形で書か
れなければならない。このオブジェクト言語は、コンパ
イラと呼ばれる装置によって、人間が理解するプログラ
ム言語から作られる。従来技術では、サーバが新しい機
能を遂行する前に、新しいオブジェクトがプログラム言
語から作られてコンパイルされ、それ自身がコンパイル
されているサーバプログラムと、連係と呼ばれるプロセ
スを通して結合されなければならない。サーバの全ての
部分がコンパイルされた後、そのサーバは実行の準備が
できたことになる。
【0006】従来技術の別の方法は、サーバ内のインタ
ープリタを用いてクライアントの要求を解釈するもので
ある。この場合のクライアントの要求は、サーバが理解
する言語のプログラムである。サーバは、1組の所定機
能を逐次に及びクライアントの要求により指定されたよ
うに呼び出すことによって、そのクライアントの要求を
解釈する。この方法を用いて、クライアントは、前述の
方法を用いる場合よりずっと複雑な要求を行うことがで
きる。しかし、この方法は、サーバ内にプログラムされ
た1組の機能又は能力に、クライアントの要求を制限す
るという欠点を有している。アドベ・ポストスクリプト
・プリンタ・サーバは、その1つの例である(「ポスト
スクリプト」はアドベ・コンピュータ社の商標)。その
サーバには、ポストスクリプト・ファイルと呼ばれるプ
ログラムの形でクライアントの要求が与えられる。ポス
トスクリプト・ファイルは、非コマンド・テキストの他
にコマンドも含んでいる。コマンド・テキストは、非コ
マンド・テキストのフォーマッティング及び印刷を制御
するために、サーバにより解釈される。
【0007】従来技術のサーバは、特殊なアプリケーシ
ョン用に書かれている。それらのサーバは、最初にプロ
グラムされた機能だけしか実行しないし、それらのオリ
ジナル・プログラムとは異なるオブジェクト又はアプリ
ケーションを容易に実行するほど十分に融通性のあるも
のでもない。サーバの設計範囲外のオブジェクトを実行
するためには、従来技術のサーバは書き直され、再コン
パイルされなければならない。本発明者が知っている従
来技術は、そのサーバに予定されてないオブジェクト・
コード機能を、そのサーバの書き直し及び再コンパイル
なしで実行できるサーバを開示するものではない。
【0008】従来技術は、プログラムされてない機能を
実行する単一のサーバについて教示するものではない。
また、従来技術は、修正可能な1組のオブジェクトを実
行できる単一のサーバについて教示するものでもない。
【0009】従来技術では、サーバがクライアントから
のプログラムを受付け且つ解釈する場合、インタプリタ
と関連するオーバヘッドが必要となるために、サーバの
処理速度が減少してしまう。また、インタプリタは、事
前コンパイルされ且つサーバに事前連係されなければな
らないような、予め定義された機能に制限される。
【0010】
【発明が解決しようとする課題】本発明の目的は、当
初、サーバが実行するように設計されなかったオブジェ
クト・コードを、サーバ・プログラムの再コンパイルな
しに実行できるサーバプログラムのための設計を提供す
ることにある。
【0011】本発明の他の目的は、種々の機能を遂行す
るように修正されたオブジェクト・コードを、サーバ・
プログラムの再コンパイルなしに実行できるサーバ・プ
ログラムのための設計を提供することにある。
【0012】本発明の他の目的は、サーバにより遂行さ
れるべく設計された機能とは異なる機能及び別のクライ
アントにより要求された機能実行を含む複数の相異なる
オブジェクトを、再コンパイルしないで実行できるサー
バ・プログラムを提供することにある。
【0013】
【課題を解決するための手段】本発明は、機能と呼ばれ
る種々の相異なるオブジェクト・プログラムを、たとえ
これらのオブジェクト・プログラムを実行するように特
別に設計されていなくても、実行する能力を有するコン
ピュータ・サーバ・プログラムを対象とする。そのサー
バは、これらのプログラムが再コンパイルすることなし
に修正されても、それらを再走させることができる。更
に、1つ又は複数のクライアントは、オブジェクト又は
機能を追加又は削除することができる。サーバは、これ
らのオブジェクト及びそれらの機能を、再プログラム又
は再コンパイルする必要なく、実行する。その結果、こ
のサーバは、多くの相異なる修正可能なオブジェクト
を、従来技術のサーバよりも遥かに速く実行することが
できるのである。
【0014】本発明では、クライアントは、サーバがル
ープしている間に、実行可能なコードで書かれたオブジ
ェクト・プログラムをサーバにロードする。その効果
は、新たにロードされたオブジェクト(実行可能なオブ
ジェクト・コード)を有するサーバが、その新しいオブ
ジェクト・コードの機能をそれ自身のサーバ・プログラ
ムに加えることである(機能は、オブジェクトにより遂
行されるタスクであり、オブジェクトは、1つ又は複数
の機能を含んでいる)。実際には、オブジェクト・コー
ドを加えられたサーバは、その加えられたオブジェクト
・コードの機能を遂行する方法を覚えており、クライア
ントがそのオブジェクト・コードを再ロードする必要な
く、要求に応じて、その新しいオブジェクトの機能を遂
行できる。従って、ますます多くのオブジェクトをサー
バに加えることによって、サーバは、オブジェクトによ
りそれに加えられる各機能を学習し、獲得する。一方、
クライアントは、サーバが以前に加えられた機能を忘
却、即ち、ドロップすることを要求できる。
【0015】クライアントは、サーバが学習すべき機能
及び他の情報を含むオブジェクトをサーバに送る。サー
バは、機能を登録することによってその機能を学習す
る。即ち、サーバは、オブジェクトの機能とオブジェク
ト及び機能に関する情報とをサーバ・メモリに記憶す
る。特に、サーバは、このオブジェクトにより利用され
た機能を識別し、将来の参照のために、それらの機能及
びそれらの機能に関する情報をテーブルに記録する。登
録中、オブジェクト・コード及び他の情報がサーバ・メ
モリにロードされる。クライアントは、サーバに種々の
要求を行って登録情報を修正したり、サーバに或る動作
を遂行させたりできる。
【0016】一旦、オブジェクトがその機能とともにサ
ーバに登録されてしまうと、クライアントは、サーバに
そのオブジェクトの機能を走らせる(実行させる)こと
ができる。これを行うために、クライアントは、その機
能をどのように走らせるかに関する情報をサーバに送
り、その機能を呼び出す(実行する)ようにサーバに要
求する。この時点で、サーバは、その機能を走らせ且つ
その機能を走らせた結果をクライアントに渡すという実
行手順を進めることになる。
【0017】
【実施例】種々のクライアントの要求に応じて、サーバ
がオブジェクトを学習し、忘却するという能力は、サー
バを非常に融通性に富むものにし、即ち、サーバが遂行
し得る機能の数を拡大する。サーバは、新しい各機能を
実行する前にこれを再プログラムしたり、再コンパイル
したりする必要がないため、オブジェクト・プログラム
実行の融通性を増大させる。更に、サーバが既に学習し
たオブジェクト機能は、これをサーバに再ロードする必
要さえない。従って、本発明のサーバは、再プログラム
可能であり、そして、オン・ザ・フライで又は正規のル
ーピングの過程で、再コンパイルのために停止する必要
なく、新しいオブジェクトの機能を実行できる。動的連
係とも呼ばれるこの能力は、この実行の融通性及び速度
を必要とする多くのアプリケーションでこのサーバを使
用可能にする。今まで、これらのサーバ・アプリケーシ
ョンは、ゆっくりしたペースで動作しなければならなか
ったか、或いは、不可能であった。これらのアプリケー
ションのうちの或るものは、マルチメディア・クライア
ント・サーバ・アプリケーション、デバイス・ドライ
バ、リソース・サーバ、マルチユーザCAD、及び分散
処理アプリケーションを含む。
【0018】図1には、本発明のサーバが示されてい
る。サーバ100は、連続ループにおいて走るコンピュ
ータ・プログラムであり、従来技術で典型的に実施され
た任意の方法でループする。好ましい実施例では、その
サーバは、IBM社のRISCシステム/6000上で
走る。なお、このシステムは、IBM “Research Repoprt
RC 16553 1991, The IBM RISC System/6000 : Archtect
ure and Performance"に開示されている。AIX 3.
1が用いられる。従来技術のように、そのループでは少
なくとも1回、このサーバは、何れかのクライアントが
サーバに要求を行っているか否かをボックス10で検査
する。要求が行われていない場合、サーバは、線12を
介してルーピングを続ける。しかし、クライアントが要
求を行っている場合には、サーバは、2つの新規な動作
の1つを行う。第1の動作(ボックス20)は、オブジ
ェクトの登録のようなクライアント要求を処理する。第
2の動作(ボックス30)は、登録されたオブジェクト
機能が活動化される、即ち、後述の方法で実行のために
スケジュールされる場合、その機能の実行である。
【0019】要求を処理する動作(ボックス20)の例
は、次のような活動を含んでいる。即ち、それらは、オ
ブジェクトを登録する(REGISTER)、オブジェクトを登
録抹消する(UNREGISTER)、機能を活動化する(ACTIVA
TE)、オブジェクトを非活動化する(DEACTIVATE)、オ
ブジェクトの機能を呼出す(CALL)、機能データを設定
する(SET FUNCTION DATA)、機能データを獲得する(G
ET FUNCTION DATA)、機能の優先順位を設定する(SET
PRIORITY)である。その他の要求も、当業者には明らか
であろうし、本発明の技術範囲に属するものである。こ
れらの活動については、以下で説明する。
【0020】サーバ100が要求を処理した後(ボック
ス20)、活動化した機能がない場合、サーバはループ
22を継続する。しかし、活動化した機能がある場合に
は、サーバはそれらの機能を実行し(ボックス30)、
然る後、ループ32を継続する。
【0021】クライアントは、サーバがそのクライアン
トのために或るコードを走らせることを必要とするコン
ピュータ・プログラムである。クライアントは、サーバ
と同じコンピュータ上で走ることができ、或いは、サー
バに対して外部にあるがサーバと通信するコンピュータ
上で走ることもできる。このサーバを用いるクライアン
トは、サーバを走らせるための複数のオブジェクトをサ
ーバに与えることもできる。サーバは、複数のクライア
ントをサービスすることができる。
【0022】クライアントを設計するユーザは、各オブ
ジェクトを実行可能な形で書かなければならない。即
ち、オブジェクトの全ての機能は、それらがロードされ
た時にサーバ・コンピュータ上で走るように、オブジェ
クト・コードで書かれ、連係される。
【0023】これらのオブジェクトは、サーバで走るた
めに、或る特性を有さなければならない。オブジェクト
機能の二重登録を防ぐために、ユーザは、オブジェクト
を走らせることをサーバに要求する他の全てのクライア
ントが、オブジェクト・タイプ名を知っていて,それを
用いることを保証する(同じタイプのオブジェクト、即
ち、同じタイプ名を有するオブジェクトは、同じ機能を
有している)。更に、共通のオブジェクト・タイプの間
で共用される機能は、内部状態を有してはならない(例
えば、複数のクライアントにより変更可能なカウンタ
は、コヒーレンスを維持するように管理されなければな
らない。これを達成するには、クライアントは、タイプ
名をそのクライアント・メモリに組み込ませてもよい
し、既知の通信技術を用いてこの情報がクライアント間
で交換されるようにしてもよい)。更に、ユーザは、ク
ライアントがサーバの特性を無限ループで走るオブジェ
クトの特性に変更することを望まない場合、サーバがそ
の無限ループで走るオブジェクトを実行することをクラ
イアントが要求しないようにしなければならない。
【0024】オブジェクトは、実行可能なコード、即
ち、ロードされた時にサーバ上で走るように内部的に連
係したオブジェクト言語、に変換したコンピュータ・プ
ログラムである。クライアントは、登録要求(REGISTE
R)を用いて1つのオブジェクト(即ち、そのオブジェ
クトに含まれた機能)をサーバに登録する。オブジェク
ト及び機能の登録後、クライアントは、そのオブジェク
ト機能を走らせるように、サーバに要求できる。オブジ
ェクトは、走らせることのできる1つ又は複数の機能の
セットである。
【0025】この新規な登録の概念は、ボックス20に
おける要求の処理に含まれる活動の1つであり、以下で
詳述する。
【0026】本発明の全てのオブジェクトに存在する1
つの機能は、エントリ機能と呼ばれる。このエントリ機
能は、機能テーブル(後出)に見出される複数のフィー
ルドを含んだメモリ構造を有している。それは、1つの
引数(即ち、エントリ機能が用いる情報、ここでは、初
期テーブル・ポインタ「ITP」と呼ばれる)も有す
る。
【0027】図2ないし図6には、機能を登録し且つ走
らせるためにサーバにおいて用いられる、情報及びテー
ブル機能のメモリ構造が示されている。その構造は、図
2のサーバ・メモリ・スペース200における変数、図
3の初期テーブル230、図4の機能テーブル250、
図5のタイプ・テーブル270、及び図6の実行テーブ
ル280を含んでいる。機能テーブル250、タイプ・
テーブル270、及び実行テーブル280は、サイズが
拡大及び縮小し得るテーブルである。好ましい実施例
は、これらのテーブルのための連係リスト(矢印26
4、278、298で示される)を用いる。
【0028】サーバは、これに登録されるオブジェクト
に関連する値及び名前を記憶するために、サーバ・メモ
リ・スペース200を利用する。これらの変数は、オブ
ジェクト・タイプ名202、初期テーブル・ポインタ
(ITP)204、機能テーブル内の機能の数(NFT
E)、即ち、機能テーブルの長さ206、所与のオブジ
ェクト内の機能の数(機能数)208、タイプの数(タ
イプ数)、即ち、タイプ・テーブルの長さ210、及び
実行テーブル・エントリの数(実行数)、即ち、実行テ
ーブルの長さ212を含む。また、オブジェクトの機能
により用いられる引数214及び実行可能なオブジェク
ト・コード自体216のためのメモリ・スペースもあ
る。オブジェクト上でエントリ機能を見つけて走らせる
ために用いられるエントリ機能ポインタ(EFP)21
8、そしてインスタンスID220、機能名222も、
サーバ・メモリ・スペース200に含まれる変数であ
る。
【0029】図3の初期テーブル230は、オブジェク
トが最初にサーバに送られる時、そのオブジェクトに関
する情報を記憶するために用いられる。この情報は、後
に、他のテーブルに置かれる。初期テーブル230内の
エントリ246は、6個のフィールド、即ち、機能ポイ
ンタ・フィールド232、引数サイズ・フィールド23
4、出力サイズ・フィールド236、優先順位フィール
ド238、名前フィールド240、タイプ名フィールド
242を有する。
【0030】引数サイズ・フィールド234は、その機
能の引数に対し十分なスペースを割当てるために用いら
れる。出力サイズ・フィールド236は、その機能の結
果に対して十分なスペースを割当てるために用いられ
る。その機能に関連する出力がない場合、出力サイズ・
フィールド236はゼロ値を有し、その場合には、スペ
ースを割当てる必要はない。優先順位フィールド238
は、機能のリスト内で実行すべき機能の優先順位を決定
するために用いられる。名前フィールド240は、その
機能を記号的に参照するために用いられ、タイプ名フィ
ールド242は、その機能を特定のオブジェクト・タイ
プと関連付けるために用いられる。
【0031】図4の機能テーブル250も、その各エン
トリ266に対する6個のフィールドとして、機能ポイ
ンタ・フィールド252、引数サイズ・フィールド25
4、出力サイズ・フィールド256、優先順位フィール
ド258、名前フィールド260、タイプ名フィールド
262を有する。これらのフィールドは、初期テーブル
230内の対応フィールドが記憶する情報と同じ情報を
記憶し、機能及びフォーマットの両方とも、初期テーブ
ル230内のフィールドと同じである。
【0032】図5のタイプ・テーブル270は、その各
エントリ275において3個のフィールド、即ち、タイ
プ名フィールド272(初期テーブル230内のタイプ
名フィールド242と同じ)、機能数フィールド27
4、エントリ機能ポインタ(EFP)フィールド276
を有する。タイプ名フィールド272は、オブジェクト
・タイプの名前である。機能数フィールド274は、こ
のオブジェクトに対して登録される機能の数である。E
FPフィールド276は、そのオブジェクトに存在する
エントリ機能の開始位置に対するポインタである。タイ
プ・テーブル270は、サーバに登録されるオブジェク
トの各タイプごとに1つのエントリを有する。
【0033】図6の実行テーブル280は、サーバが実
行し得る各機能ごとに1つのエントリ296を有する。
実行テーブル280は、9個のフィールド、即ち、機能
名フィールド282、タイプ名フィールド284、イン
スタンス・フィールド286、状態フィールド288、
結果フィールド289、活動フィールド290、反復計
数フィールド292、優先順位フィールド294、機能
ポインタ・フィールド295を有する。
【0034】機能名フィールド282は、所与のオブジ
ェクト内の機能の名前である。オブジェクト、即ち、オ
ブジェクト・タイプは複数の機能を有することができ
る。その機能名は、機能テーブル250の名前フィール
ド260にも現れる。
【0035】インスタンス・フィールド286は、同じ
機能を有する同じオブジェクト・タイプを見つける手が
かりである。例えば、2つ以上のクライアントが同じオ
ブジェクト・タイプを有する場合、インスタンス・フィ
ールド286は、同じオブジェクト・タイプをサーバに
ロードしようとする各クライアントを追跡する。その機
能を登録するクライアントは、そのクライアントに名前
又は番号を付けることによって、或いは、この分野で実
施されている任意の方法を用いることによって、インス
タンス・フィールド286に記録される。従って、実行
テーブル280は、全てのクライアントにより登録され
た各機能ごとに1つの機能エントリを有する。各機能を
登録したクライアントの表示が、インスタンス・フィー
ルド286に記録される。
【0036】状態フィールド288は、所与の機能の引
数を記憶するためにサーバにより割当てられたメモリ・
スペースに対するポインタを含む。
【0037】結果フィールド289は、そのオブジェク
トを走らせた結果を記憶する。このフィールドの大きさ
は、出力サイズ・フィールド256内の結果に対して割
当てられたスペースに依存する。
【0038】活動フィールド290は、機能が活動化さ
れているか否かを表わすフラグを含む。
【0039】反復計数フィールド292は、機能を走ら
せる度にデクレメントされる計数値を含む。この計数値
は、機能を走らせる回数を決定するために用いられる。
反復計数フィールド292内の計数値が所与の値、例え
ば、ゼロまでデクレメントされてしまわない間、その機
能は、サーバがループする度に1回走らされる。この分
野で一般的な他の計数方法も考えられる。
【0040】優先順位フィールド294は、機能テーブ
ル250の優先順位フィールド258内の値と同じ値で
ある。機能ポインタ・フィールド295は、機能テーブ
ル250の機能ポインタ・フィールド252内の値と同
じ値である。
【0041】図7には、クライアントがオブジェクトを
登録する時に関連するステップ300の流れ図が示され
ている。
【0042】ボックス305で、クライアントは、オブ
ジェクト・タイプ名及び実行可能なオブジェクト・コー
ドを、サーバに送る。別の好ましい実施例では、クライ
アントは、オブジェクト・タイプ名202及びそのオブ
ジェクトが存在するファイル名を送る。後者の場合、サ
ーバは、このファイル位置をアクセスし、そこからオブ
ジェクトをロードする。
【0043】ボックス310で、サーバは、クライアン
トが登録のためにシークするオブジェクト・タイプが、
前に登録した任意のクライアントのものと同じであるか
否かを検査する。サーバは、これを行うために、タイプ
・テーブル270を走査して、タイプ名フィールド27
2内のエントリとその入力オブジェクトのタイプ名とを
比較する。タイプ・テーブル270に同じオブジェクト
・タイプが存在しない場合、サーバは、独特のインスタ
ンスIDを獲得し(ボックス315)、そのオブジェク
トをロードする(ボックス320)。しかし、ボックス
310で一致が得られた場合、サーバは、独特のインス
タンスIDを得て(ボックス357)、実行テーブル2
80を更新する(ボックス360)。
【0044】ボックス320で、サーバは、オブジェク
ト・コードをサーバ・メモリ216にロードする。サー
バは、そのコードをロードする時、そのオブジェクトか
らエントリ機能ポインタ(EFP)の値を得て、それを
メモリ・ロケーション218に記憶する。サーバは、オ
ブジェクトからEFPを取り出すことができるオペーテ
ィング・システム機能を呼び出すことによってこれを行
う。これは、本発明を走らせる好ましいオペレーティン
グ・システムであるAIXの標準的な機能である。AI
X内の正規のプログラム実行では、オペレーティング・
システムがEFPのロケーションを決定すると、直ちに
オブジェクトが走らされる。しかし、本発明では、EF
Pがアクセスされると、それは、その後の使用のために
記憶される。即ち、オブジェクトは直ちには実行されな
いことがある。なお、オブジェクトからEFPタイプの
変数をアクセスすることができる如何なるオペレーティ
ング・システムも、本発明の技術範囲に属するものであ
る。
【0045】ボックス320で、サーバは、クライアン
トからオブジェクト・タイプ名も得る。好ましい実施例
では、クライアントは、オブジェクト・コードをサーバ
に与える(ボックス305)と同時に、この情報もサー
バに与える。
【0046】ボックス325で、サーバは、初期テーブ
ル230用のスペースをサーバ・メモリ内で割当てる。
サーバは、初期テーブル・ポインタ(ITP)204に
よって、初期テーブル230の開始ロケーションも定義
する。好ましい実施例では、初期テーブル230は、所
与の機能数に対して割当てられる。この数は、任意のオ
ブジェクトが有するであろう機能数、例えば、100個
のエントリ246よりも大きい。一旦、スペースが割当
てられると、サーバは、ITP(このスペースのロケー
ション)をエントリ機能に渡す。ITPは、そのエント
リ機能の引数に記憶される。EFPを用いて、サーバは
エントリ機能を走らせ、初期テーブル230に記入する
(ボックス330)。別の方法としては、サーバは、未
定義のITPをエントリ機能に渡し、然る後、エントリ
機能自体が初期テーブル230において必要とする以上
のスペースを割当てる。
【0047】ボックス330は、エントリ機能を走らせ
る。サーバは、EFP218を用いてエントリ機能をア
クセスし、それを実行する。エントリ機能は、ITPを
用いて初期テーブル230の開始ロケーション244を
見つける。
【0048】ボックス335で、エントリ機能は、その
関連オブジェクトに関する情報を初期テーブル230に
記入し始める。エントリ機能は、登録すべきオブジェク
ト内の各機能ごとに1つのエントリを、初期テーブル2
30に加える。従って、初期テーブル230は、登録さ
れている機能(オブジェクトにより用いられた機能)と
同数のエントリ246を有することになる。エントリ機
能は、オブジェクトから情報を得て、各エントリに対す
る初期テーブル230の各フィールドに記入する。エン
トリ機能は、そのテーブルに記入されたエントリの数を
戻し、その結果は、機能数208の値、即ち、そのオブ
ジェクト・タイプにおける機能の数、に割当てられる。
【0049】次に、サーバは判断ブロック340に進
み、そのオブジェクトについて幾つの機能が登録された
かを検査する。登録された機能がなかった場合、エラー
・メッセージがクライアントに送られる。しかし、少な
くとも1つの機能が登録されていた場合、サーバは、機
能テーブル250、タイプ・テーブル270、及び実行
テーブル280を更新する(ボックス345、355、
360)。
【0050】ボックス345では、サーバは機能テーブ
ル250を更新する。初期テーブル230内の各エント
リごとに、同一のエントリが機能テーブル250内に作
られる。ボックス350で、機能数208(このオブジ
ェクト又はオブジェクト・タイプ内の機能の数)がNF
TE206の現在値に加えられ、NFTE206を更新
する。NFTE206は、機能テーブル250内の機能
の合計数、即ち、機能テーブル250の長さである。
【0051】ボックス355で、サーバは、登録される
オブジェクト・タイプ(又は、オブジェクト)に対応す
る1つのエントリを加えることによって、タイプ・テー
ブル270を更新する。サーバは、新しいエントリに対
するタイプ・テーブル270の全てのフィールドに記入
する。タイプ名フィールド272は、オブジェクト・タ
イプ名202に等しく設定され、機能数フィールド27
4は、機能数208に等しく設定され、そしてEFPフ
ィールド276は、EFP218に等しく設定される。
タイプ数210は、タイプ・テーブル270の長さを表
わすメモリ変数であり、1ずつインクレメントされる。
【0052】ボックス315及び357は同じ機能を遂
行する。即ち、それらのボックスは独特のインスタンス
ID値を与える。好ましい実施例では、クライアントの
オブジェクトに対するインスタンス番号は、通信が行わ
れるファイル記述子である。カウンタを使ったり、一般
に行われているような独特の名前発生器を使ったりする
ような他の方法も可能である(名前発生器は、既知のス
トリングの連結、例えば、タイプ= "Hand" => インス
タンス= "Hand1" 、又は、既知の名前、例えば"XF$1s
9.187" を発生することによって行うことができる)。
【0053】ボックス360で、サーバは、実行テーブ
ル280を更新する。サーバは、各タイプ名202につ
いて登録されつつあるオブジェクト・タイプの各機能ご
とに1つのエントリ296を作る。従って、実行テーブ
ル280内には、全てのクライアントが登録する全ての
オブジェクト・インスタンス内の各機能ごとに、1つの
エントリが存在する。
【0054】このような各機能に対して、サーバは、実
行テーブル280内の各フィールドに記入することによ
って、そのエントリ296を作成する。機能名フィール
ド282は、名前フィールド260に等しく設定され、
タイプ名フィールド284は、オブジェクト・タイプ名
202に等しく設定され、インスタンス・フィールド2
86は、インスタンスID220に等しく設定され、状
態フィールド288は、サーバによって割当てられた引
数サイズ・フィールド254のメモリ・ブロックに等し
く設定される。活動フィールド290は、偽に設定され
る。反復計数フィールド292は、ゼロに設定される。
優先順位フィールド295は、機能テーブル250の優
先順位フィールド258に等しく設定される。機能ポイ
ンタ・フィールド295は、機能ポインタ・フィールド
252に等しく設定される。
【0055】サーバは、より低い優先順位のエントリ2
96(即ち、優先順位フィールド294の値がより高
い)の前で且つより高い優先順位のエントリ296の後
にあるようなエントリを実行テーブル280に挿入す
る。
【0056】タイプ名が一致したエントリの機能数フィ
ールド274は、実行数エントリ212に加えられる。
即ち、実行数エントリは、実行テーブル280内の現在
のエントリ数を反映するように更新される。
【0057】以上では、図7及びオブジェクトを登録す
る方法を説明したが、本発明の特徴は、他の種々の活
動、即ち、オブジェクトを登録抹消すること、機能を活
動化及び非活動化すること、機能を呼び出すこと、機能
データを設定すること、機能データを獲得すること、優
先順位を設定すること、を含む諸活動を遂行するために
用いることができる。
【0058】オブジェクト登録抹消の要求は、或るオブ
ジェクトの所与のインスタンス(及びその全ての機能)
を除去する、即ち、サーバにそのオブジェクトを「忘
却」させるものである。所与のインスタンスID(及び
その関連の機能)とともに登録抹消されたオブジェクト
は、サーバから除去される。これを行うために、サーバ
は、クライアントから渡されたタイプ名202及びイン
スタンスID220を用いて実行テーブル280を走査
し、所与のタイプ名202及びインスタンスID220
に一致した全てのエントリを除去する。好ましい実施例
では、サーバは、この後、他の任意のインスタンスID
220の同じ所与のタイプ名202を探すために、実行
テーブル280をもう1回走査する。少なくとも1つの
そのようなエントリが見つかる場合、それ以上のアクシ
ョンは取られない。かかるエントリが見つからない場
合、タイプ・テーブル270及び機能テーブル250が
更新される。この更新は、所与のタイプ名202に一致
したタイプ名フィールド272を有するタイプ・テーブ
ル270内のエントリを見つけて除去すること、タイプ
数210を1ずつデクレメントすること、所与のタイプ
名に一致したタイプ名フィールド262を有する機能テ
ーブル250の各エントリを見つけて除去することを含
む。この方法では、登録されたクライアントを有さない
オブジェクト・タイプに対して割当てられたスペース
は、再割当て可能である。
【0059】サーバに登録された機能の活動化状態を変
更するか又はその状態に入るために、クライアントは、
活動化要求を用いる。クライアントは、サーバに機能
名、タイプ名、及びインスタンスを送ることによって、
活動化すべき機能を識別する。サーバは、これらの値
を、実行テーブル280内の機能名フィールド282、
タイプ名フィールド284、及びインスタンス・フィー
ルド286と突合わせる。然る後、一致した機能の反復
計数292は、サーバが与える値に設定される。一致し
た機能の(エントリ296内の)活動フラグ290も、
真に設定される。
【0060】クライアントは、1つの機能を非活動化し
たい時、サーバに非活動化要求を送る。クライアント
は、機能名、タイプ名、及びインスタンスによって、非
活動化すべき機能を識別する。サーバは、機能名フィー
ルド282、タイプ名フィールド284、及びインスタ
ンス・フィールド286を用いて、これらの値を実行テ
ーブル280内のエントリと突合せる。一致が生じる
と、サーバは、エントリ296の活動フィールド290
を偽に設定する。
【0061】1つの機能を走らせる(実行させる)ため
に、クライアントは、呼び出し要求を用いる。クライア
ントは、機能名、タイプ名、及びインスタンスIDによ
って、サーバに対しこの機能を識別する。これらの値
は、サーバ・メモリ・ロケーション222、202及び
220に記憶される。サーバは、機能名フィールド28
2、タイプ名フィールド284、インスタンス・フィー
ルド286を用いて、これらの値を、実行テーブル28
0内のエントリ296と突合わせる。一致が見つかる
と、サーバは機能ポインタ295を用いて、その機能を
実行する。その機能は、その機能に対する引数が存在す
る予め割当てられたスペースを指定する状態フィールド
288の値を渡される。この機能は或る値を戻し、サー
バはその値を検査する。それがゼロよりも大きい場合、
結果フィールド289が指定するメモリ・スペースの内
容がクライアントに送られる。
【0062】1つの機能に対する引数をサーバに供給す
るために、クライアントは、機能データ設定要求を用い
る。クライアントは、その機能名、タイプ名、及びイン
スタンスによって、その機能を識別する。これらの値
は、サーバ・メモリ・スペース200内のロケーション
222、202、及び220に記憶される。サーバは、
機能名フィールド282、タイプ名フィールド284、
及びインスタンス・フィールド286を用いて、これら
の値を実行テーブル280内のエントリと突合わせる。
サーバは、一致を見つける場合、クライアントにより供
給された引数を、その機能の引数用に取っておいたメモ
リ・スペースにコピーする。このメモリ・スペースは、
一致したエントリの状態フィールド288内の値を用い
て見つけられる。サーバは、新しい引数をこのサーバ・
メモリ・スペースにコピーする。
【0063】サーバから機能の結果を得るために、クラ
イアントは、機能データ獲得要求を用いる。クライアン
トは、機能名、タイプ名、及びインスタンスをサーバに
送ることによって、その機能を識別する。これらの値
は、実行テーブル280内の機能名フィールド282、
タイプ名フィールド284、及びインスタンス・フィー
ルド286と突き合わされる。一致したエントリ296
の結果フィールド289は、その機能の結果用に取って
おいたメモリ・ブロックを指定する。サーバは、そのメ
モリ・ブロックの内容を送る。
【0064】機能の実行優先順位を変更又は記入するた
めに、クライアントは、優先順位設定要求を用いる。ク
ライアントは、機能名及びタイプ名をサーバに送ること
によって、その機能を識別する。サーバは、これらの値
を、実行テーブル280内の機能名フィールド282及
びタイプ名フィールド284と突き合わせる。一致した
エントリの優先順位フィールド294は、クライアント
が与える優先順位に設定される。
【0065】図8には、本発明の実行モジュール、即
ち、図1のボックス30に該当する活動の流れ図が示さ
れている。
【0066】ボックス405で、サーバは、一のエント
リ296の機能が活動化されているか否かを決定するた
めに、実行テーブル280内のエントリ296を検査す
る。サーバは、実行テーブル280の活動フィールド2
90を検査することによって、これを行う。検査された
機能がアクティブでない場合(線408によりボックス
440に分岐する)、サーバは次の機能を検査する。し
かし、検査された機能がアクティブである場合、サーバ
はその機能を走らせる(ボックス410)。
【0067】ここで注意すべきは、サーバが、図8に示
されたステップを繰り返しながら実行テーブル280を
最上部から最下部へ移行する、ということである。好ま
しい実施例では、実行テーブル280は、最上部から最
下部へ優先順位の順番に配列されている(優先順位フィ
ールド294内の小さい数は、該当するエントリ296
が高い優先順位を有することを意味する)。別の実施例
では、実行テーブル280内の全ての機能の優先順位は
等しいか、又は重要でない。この場合、各機能の優先順
位は、所与のデフォルト値に設定可能であり、或いは、
優先順位フィールド294を完全に除去することができ
る。
【0068】実行テーブル280のエントリ296に対
する活動フィールド290が活動化されている場合(実
施例では、それが真である)、ボックス410で、その
機能が走らされる。別の実施例では、アクティブな機能
だけ、即ち、サーバが実行するように計画されている機
能だけがリストされる。エントリ296内の機能を走ら
せるために、サーバは、機能ポインタ・フィールド29
5の値を用いる。実行テーブル280内の状態フィール
ド288及び結果フィールド289の値は、その機能を
実行する時に引数として用いられる。状態フィールド2
88の値は、その機能を走らせるのに必要な引数を含ん
だサーバ・メモリ・スペース200に対するポインタで
ある。結果フィールド289の値は、その機能を走らせ
た結果が記憶されるサーバ・メモリ・スペース200に
対するポインタである。
【0069】ボックス415で、走り終わった機能は、
サーバに或る値を戻す。好ましい実施例では、この戻さ
れた値がゼロよりも大きい場合、結果フィールド289
により指定されたメモリ・スペースに記憶されたその機
能の結果が、クライアントに送り返される(ボックス4
20)。しかし、機能がゼロ値を戻す場合、結果フィー
ルド289により指定されたメモリ・スペースに記憶さ
れた結果は、クライアントに送られない。その結果はサ
ーバ・メモリに残り、サーバは線418を介してボック
ス425に分岐する。
【0070】ボックス425では、反復計数フィールド
292の値が検査される。好ましい実施例では、その値
がゼロより大きい場合、ボックス435で、その値は1
ずつデクレメントされる。しかし、反復計数フィールド
292の値がゼロである場合、サーバはボックス440
に進む。
【0071】ボックス437では、ボックス435にお
けるデクレメントの後の、反復計数が検査される。反復
計数がまだゼロでない場合、ボックス440の、次の機
能に対する検査が行われる。反復計数がゼロである場合
は、ボックス438の動作が行われる。
【0072】ボックス438では、活動フラグ・フィー
ルド290が、「偽」に設定される(ゼロの初期反復計
数を有する活動化されたエントリは非活動化されないで
あろうし、従って、クライアントによって明示的に非活
動化されるまで、サーバのメイン・ループの各サイクル
を通して走らされるであろう)。活動フラグ・フィール
ド290を偽に設定した後、サーバはボックス440に
進む。
【0073】ボックス440で、サーバは、実行テーブ
ル280に他の機能があるか否かを決定する。それがあ
る場合、サーバは、次の機能のために、ボックス405
で始まる流れ図の実行を再び開始する。実行テーブル2
80にそれ以上の機能がない場合、サーバは、ボックス
445に進み、そこで、実行テーブル280内の活動化
された機能の実行(図1におけるボックス30)を終了
する。なお、図8のボックス445は、図1の線32に
相当する。
【0074】以下では、実施例がグラフィックス・サー
バである場合を説明する。その場合、本発明のサーバ
は、グラフィック表示装置を制御するために用いられ
る。そのサーバを用いる2つのクライアント、即ち、ク
ライアント1及びクライアント2がある。各クライアン
トは、グラフィック表示装置上にイメージを描き、その
イメージを表示スクリーン内で移動させることを望んで
いるものとする。各クライアントが描こうとしているイ
メージは、手のイメージであって、これは右手のもので
も左手のものでもよい。
【0075】サーバが手を描き且つ動かすために用いる
オブジェクトは、サーバ内に事前にプログラムされてい
ない。それらのオブジェクトは、実行可能な形でクライ
アント1及びクライアント2により与えられる。それら
のオブジェクト及び関連の機能は、前述のように、サー
バにロードされる。それらのオブジェクトは次の通りで
ある。
【0076】 オブジェクト1:タイプ=「Graphics」 機能: 0:名前=「MakeWindow」 引数サイズ= 0 タイプ名=「Graphics」 優先順位= 1 出力サイズ= 0 1:名前=「ClearWindow」 引数サイズ= 0 タイプ名=「Graphics」 優先順位= 2 出力サイズ= 0 2:名前=「TransferToScreen」 引数サイズ= 0 タイプ名=「Graphics」 優先順位= 999 出力サイズ= 0 オブジェクト2:タイプ=「Hand」 機能: 0:名前=「MakeHand」 引数サイズ= 0 タイプ名=「Hand」 優先順位= 30 出力サイズ= 0 1:名前=「DrawHand」 引数サイズ= 13(バイト) タイプ名=「Hand」 優先順位= 40 出力サイズ= 0。
【0077】オブジェクト1は、「Graphics」と呼ばれ
るタイプである。オブジェクト1は、3個の機能、即
ち、「MakeWindow」、「ClearWindow」、及び「Transfe
rToScreen」を有する。これらの機能の各々は、タイプ
として「Graphics」(タイプ名フィールド262内のオ
ブジェクト・タイプ)を有し、引数を有さず(引数サイ
ズ=0)、出力データを発生しない(機能テーブル25
0内の出力サイズ・フィールド256=0)。これらの
機能は、グラフィックス・ウインドウを作り、そのグラ
フィックス・ウインドウを消去し、そしてグラフィック
ス・データを表示装置にコピーする。これらの機能の優
先順位(実行テーブル280内の優先順位フィールド2
94)は、機能「MakeWindow」(優先順位1)が機能
「ClearWindow」(優先順位2)よりも上であり、機能
「ClearWindow」が機能「TransferToScreen」(優先順
位999)よりも上であるように割当てられる。
【0078】オブジェクト2は、「Hand」と呼ばれるタ
イプである。オブジェクト2は、2つの機能、即ち、
「MakeHand」及び「DrawHand」を有する。これらの機能
は、両方とも、「Hand」と呼ばれるタイプ名を有し、出
力データを発生しない(出力サイズ・フィールド256
=0)。機能「MakeHand」は引数を有さない(引数サイ
ズ=0)が、機能「DrawHand」は13バイトの引数を有
する。第1バイトは、手が右か又は左かを指定し、次の
4バイトは、表示スクリーン上の手のX座標位置を与
え、その次の4バイトは、そのY座標位置を与え、最後
の4バイトは、そのZ座標位置を与える。機能「MakeHa
nd」は、手のイメージを記述するためのデータ・セット
を作り、機能「DrawHand」は表示スクリーン上の適正な
位置(x, y,z)にその手を表示する。機能「MakeHand」
は、30という優先順位を有し、機能「DrawHand」は、
40という優先順位を有する。
【0079】クライアント1及びクライアント2は、前
述のような方法で、これらのオブジェクトをサーバに登
録する。この例では、クライアント1は、オブジェクト
1をサーバに登録する。次に、サーバは、オブジェクト
1に対するコードをロードし、そのテーブルを更新す
る。然る後、クライアント1は、オブジェクト2をサー
バに登録する。サーバは、オブジェクト2に対するコー
ドをロードし、再びそのテーブルを更新する。然る後、
クライアント2は、オブジェクト2をサーバに登録す
る。新しいオブジェクト・タイプは導入されないので、
サーバは、オブジェクト2(及びその機能)に対するコ
ードを再びロードする必要はない。しかし、サーバは、
オブジェクト2の第2インスタンスの付加を反映するよ
うに、実行テーブル280を更新する。図9は、この例
の実行テーブル280を示す。図9では、これらの機能
が上から下へ優先順位の順番でリストされていることに
注意されたい。
【0080】一旦、クライアントがそのオブジェクト
(及び関連の機能)を登録してしまうと、これらのクラ
イアントは、前述のように、サーバに要求を行う。クラ
イアント1は、「MakeWindow」インスタンス1(クライ
アント1)及び「MakeHand」インスタンス1を活動化
し、機能データ設定要求を用いてそれらの反復計数を1
に設定する(図9の502参照)。同様に、「ClearWin
dow」インスタンス1、「TransferToScreen」インスタ
ンス1、及び「DrawHand」インスタンス1も、活動化さ
れ、それぞれの反復計数フィールド292は0に設定さ
れる(504参照)。クライアント2は、「MakeHand」
インスタンス2及び「DrawHand」インスタンス2を活動
化し、それぞれの反復計数フィールド292を1及び0
に設定する(506参照)。機能データ設定の要求を用
いて、クライアント1及び2は、「DrawHand」インスタ
ンス1及び2に対する機能データを設定する。インスタ
ンス1は、所与の[x, y, z]位置に左手に関するデー
タを有し、インスタンス2は、所与の[x, y, z]位置
に右手に関するデータを有する。反復計数を1に設定さ
れた機能はサーバ・ループの第1パス上で走るだけであ
り、反復計数を0に設定された機能は全サーバ・ループ
を走ることに注意されたい(ボックス438の前述の説
明を参照)。サーバがループする時、それは活動化され
た機能を実行する(図1のボックス30)。サーバは、
優先順位に従ってリストされている機能テーブル250
内の活動化された機能に遭遇する。
【0081】まず、「MakeWindow」機能が実行され、ウ
インドウが作成される。然る後に、「MakeWindow」機能
は、その反復計数が1であったので非活動化される。次
に、「ClearWindow」機能が実行され、ウインドウは消
去される。「MakeHand」インスタンス1機能が実行さ
れ、手に関するデータ構造が作成される。然る後、「Ma
keHand」インスタンス1機能は、その反復計数が1であ
ったので非活動化される。「MakeHand」インスタンス2
機能が実行され、第2の手に関するデータ構造が作成さ
れる。然る後、「MakeHand」インスタンス2は、その反
復計数が1であったので非活動化される。「DrawHand」
インスタンス1機能が実行され、第1の手がグラフィッ
クス・バッファに描かれる。「DrawHand」インスタンス
2が実行され、第2の手がグラフィックス・バッファに
描かれる。「TransferToScreen」が実行され、その図形
が表示される。
【0082】図9の実行テーブル280から明らかなよ
うに、活動化された機能のエントリ296だけがサーバ
・ループで実行される。これらの機能は、「ClearWindo
w」、「DrawHand」インスタンス1(左手)、「DrawHan
d」インスタンス2(右手)、及び「TransferToScree
n」である。従って、各サーバ・ループによって、ウイ
ンドウが消去され、各々の手が描かれ、表示スクリーン
に送られる(非活動化された機能、即ち、「MakeWindo
w」、「MakeHand」インスタンス1及び「MakeHand」イ
ンスタンス2は、これらのイメージを作成するために、
各サーバ・ループによって反復する必要はない)。その
結果は、表示スクリーン上のそれぞれの[x,y, z]位置
における左手のイメージ(クライアント1による制御)
及び右手のイメージ(クライアント2による制御)であ
る。
【0083】どちらの手のイメージ及び位置も、引数サ
イズ・フィールド内の13バイトの引数データを変更す
るための機能データ設定要求を用いて、クライアントが
その手を制御することにより変更可能である。この要求
の後のサーバ・ループにおいて、その影響を受けた手
は、表示スクリーン上の新しい位置へ移動する(又は、
右から左へ或いはその反対に変わる)。引数を連続的に
変更することにより、それらの手を、表示スクリーン上
の種々の位置へ移動させることができる。
【0084】この例は、前述のものと同じ技術を用いる
ことによって、3個以上のクライアントに対しても拡張
可能である。別の方法として、1つ(又は、複数の)ク
ライアントが複数のサーバ上にイメージを置くこともで
きる。クライアントは、同じ又は異なったオブジェクト
を各サーバに登録し、然る後、そのオブジェクトを種々
のサーバ上で実行することもできる。
【0085】次に、マルチユーザCADにおける実施例
について説明する。当業者は、本発明を用いて、複数の
クライアントが、グラフィック表示装置を制御するサー
バ上に種々の図形設計オブジェクトを登録することを想
像できるであろう。前の例で説明したように、各クライ
アントは、表示スクリーン上に幾つかのイメージの制御
を有するであろう。例えば、自動車の設計では、1つの
クライアントはサスペンションを設計でき、もう1つの
クライアントは車のボディを設計でき、更にもう1つの
クライアントは内装等を設計できる。各設計者は、遠隔
地のサーバによって駆動された図形出力を受け取ること
ができる。各設計者は、他の設計者たちがそれぞれの担
当部分を設計している間、自分自身の担当部分を設計す
ることができる。設計が変更され、サーバが各サーバ・
ループ後に表示スクリーンを更新する時、最終設計に関
する各設計者の結果を図形出力上に見ることができる。
新しいクライアントは、それらのオブジェクトをサーバ
に登録することによって、これを設計過程に追加させる
ことができる。古いクライアントは、それらのオブジェ
クトを登録抹消することによって、容易に除去すること
ができる。
【0086】他の図形設計の例では、複数のサーバによ
って、複数のクライアントにサービスすることが可能で
ある。k個のサイトがあり、各サイトiは、クライアン
トCi、サーバSi、及びユーザUiを有する。各クラ
イアントCiは、そのグラフィック・オブジェクトを全
てのサーバSj(j=0乃至k)に登録する。各ユーザ
Uiは、Siを含む全てのサーバに通信するクライアン
トCiを用いて、それ自身の表示装置上の図形と対話す
る。その結果は、複数のユーザが,1つの共通のシーン
に影響を与えるけれども、それら自身のグラフィック・
オブジェクトとだけ対話するということになる。
【0087】本発明の開示があれば、当業者は、本発明
の範囲内であっても、多くの他の代替例を開発できるで
あろう。次のようないくつかの例がある。
【0088】クライアントは、1つのオブジェクトを1
組の保護(プロテクション)又は許可(パーミッショ
ン)とともに登録することを選択できる。保護又は許可
は、クライアントが要求を行うのを認可又は否認するこ
とである。例えば、クライアントは、1つのオブジェク
トを3つの機能に登録し、そして、そのクライアントだ
けがその実行を要求できるようなそれら機能のうちの2
つの機能の実行を制限するかもしれない。
【0089】保護方式は、2つの部分、即ち、保護を定
義する手段及び保護を強化する手段を必要とする。第1
の部分は、機能テーブル・エントリ(及び初期テーブル
・エントリ)内のフィールドによって実現可能であり、
そしてそのエントリのフィールドは、そのエントリと関
連する特定の機能を、どのクライアントが実行できるか
を指示するものである。その指示は、1つのクライアン
ト名又はクライアント名のリストのような簡単なもので
よい。第2の部分は、クライアントがそのサーバとの全
てのトランザクションのために用いる暗号化された識別
子を、各クライアントと関連付けることによって実現可
能である。そこで、サーバは、そのクライアントの識別
子及び一の機能に関連する許可に基づいて、クライアン
トの要求を認可又は否認する。
【0090】クライアントがサーバに機能を登録し、然
る後、適当と思われる任意の順序でそれらの機能を呼び
出すよう要求できることは、前述の通りである。クライ
アントは、呼び出された機能の結果を同じように得るこ
とができる。
【0091】クライアントは、タスクを達成するための
一連の要求としてプログラムを構成することができる。
そのプログラムは、例えば、次のようになる。
【0092】 Begin Register A ;オブジェクトAを3つの機能a〜cに登録 Call A/a ;オブジェクトAの機能aを呼び出す Call A/b ;オブジェクトAの機能bを呼び出す i=0; While(i < 10) Begin i=i+1; Call A/c ;オブジェクトAの機能cを呼び出す End End。
【0093】実行モジュール(図8)に加えて、又はそ
れに代わって、解釈実行モジュールを考えることができ
よう。その解釈実行モジュールでは、実行モジュール
は、ファイルからのプログラム・ステートメント又はク
ライアントから送られたオブジェクトを読み取り、関連
の要求を順次に実行する。そのプログラムは、例えば、
次のようになる。
【0094】 Begin Call A/a Call A/b i= 0; While(i < 10) Begin i=i+1; Call A/a ;オブジェクトAの機能cを呼び出す End End。
【0095】このプログラムは、サーバが前に登録され
たオブジェクトAの機能aを、然る後、機能b及び機能
cを順次実行させることによって解釈可能である。
【0096】サーバは、ユーザ・インターフェースと対
応するように設計及びコード化することができる。ユー
ザ・インターフェースは、X−ウインドウ又は他の一般
的に実施されている方法を用いて構築することができ
る。ユーザ・インターフェースは、図形的なものでよ
く、ボタン、メニュー、リスト等を含むものでよい。ボ
タン及びメニューは、オペレータに対し、サーバ制御及
び監視能力を与えることができる。グラフィック・イン
ターフェースを用いて、オペレータは、サーバのテーブ
ルの内容(例えば、サーバに現在ロードされている機能
のリスト)を見ること、クライアントによる使用のため
のオブジェクトをサーバにロードすること、オブジェク
トをサーバからアンロードすること、及びサーバの使用
を監視することができる。
【0097】本質的に、ユーザ・インターフェースは、
外部クライアントからの要求を検査し且つそれを処理す
ることに加えて、サーバ・コードがユーザ・インターフ
ェースを介してユーザからの要求を検査して処理するよ
うに、図1を修正する。X−ウインドウのようなイベン
トに基づくユーザ・インターフェースが好ましい。ユー
ザは、グラフィック・ユーザ・インターフェース及びマ
ウスを用いて要求を発生する。ユーザは、リストを介し
て、サーバの状態をフィードバックし、監視する。グラ
フィック・マップは、種々のクライアントからサーバへ
の連結状況を示すことができる。
【0098】
【発明の効果】当初、サーバが実行するように設計され
ていなかったオブジェクト・コードを、サーバ・プログ
ラムを再コンパイルすることなく、そのサーバで実行す
ることができる。
【図面の簡単な説明】
【図1】本発明のサーバの流れ図である。
【図2】サーバがオブジェクトを登録し且つ実行するた
めに用いるサーバ・メモリ・スペースの構成を示す図で
ある。
【図3】初期テーブルを示す図である。
【図4】機能テーブルを示す図である。
【図5】タイプ・テーブルを示す図である。
【図6】実行テーブルを示す図である。
【図7】オブジェクト及びその機能をサーバに登録する
時に遂行されるステップを示す流れ図である。
【図8】サーバを用いてオブジェクト及びその機能を実
行する時に遂行されるステップを示す流れ図である。
【図9】2つの手のイメージを表示スクリーン上に描く
グラフィック表示装置のサーバとして用いられる本発明
のデータ構成を示す図である。
【符号の説明】
200・・・サーバ・メモリ・スペース 230・・・初期テーブル 250・・・機能テーブル 270・・・タイプ・テーブル 280・・・実行テーブル

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 次の各ステップから成る、修正可能な機
    能をサーバ上で実行する方法。 (イ)サーバ・プログラムの実行中に、実行可能なコー
    ドのオブジェクトをクライアント・プログラムによって
    サーバにロードするステップ。 (ロ)前記オブジェクトによって与えられる登録情報を
    使用して、前記オブジェクトに含まれた1つ以上の機能
    をサーバ内に登録するステップ。前記登録情報は、前記
    機能のロケーションを決定するための一の機能ポインタ
    を含んでいる。 (ハ)前記機能ポインタを使用して実行すべき機能を位
    置付けるとともに、当該機能を前記サーバによって実行
    するステップ。
  2. 【請求項2】 前記登録情報は1つ以上の要求に応じて
    修正可能なようにサーバ・メモリにおけるテーブルに記
    憶されることを特徴とする、請求項1記載の修正可能な
    機能をサーバ上で実行する方法。
  3. 【請求項3】 前記登録情報は複数の機能の各々の活動
    状態を指定し、サーバ・プログラムの所定ループにおい
    てアクティブな機能だけが実行されるようにしたことを
    特徴とする、請求項2記載の修正可能な機能をサーバ上
    で実行する方法。
  4. 【請求項4】 前記登録情報は複数の機能の各々の優先
    順位を指定する情報を含み、サーバ・プログラムの所定
    ループにおいて前記アクティブな機能が当該優先順位に
    従って実行されるようにしたことを特徴とする、請求項
    3記載の修正可能な機能をサーバ上で実行する方法。
  5. 【請求項5】 前記登録情報は複数の機能の各々の反復
    計数値を含み、当該各機能がその反復計数値によって決
    定される数のサーバ・プログラム・ループにおいて実行
    されるようにしたことを特徴とする、請求項4記載の修
    正可能な機能をサーバ上で実行する方法。
  6. 【請求項6】 前記クライアントは前記登録情報を変更
    することによってオブジェクトを登録抹消するよう前記
    サーバに要求し、以て、当該登録抹消されたオブジェク
    トの機能が前記サーバによって実行されないようにした
    ことを特徴とする、請求項1記載の修正可能な機能をサ
    ーバ上で実行する方法。
  7. 【請求項7】 前記クライアントは前記登録情報を変更
    することによって一の機能を活動化するよう前記サーバ
    に要求し、以て、当該機能が少なくとも1つのサーバ・
    プログラム・ループにおいて実行されるようにしたこと
    を特徴とする、請求項1記載の修正可能な機能をサーバ
    上で実行する方法。
  8. 【請求項8】 前記クライアントは前記登録情報を変更
    することによって一の機能を非活動化するよう前記サー
    バに要求し、以て、当該機能が何れのサーバ・プログラ
    ム・ループにおいても実行されないようにしたことを特
    徴とする、請求項1記載の修正可能な機能をサーバ上で
    実行する方法。
  9. 【請求項9】 前記クライアントは前記登録情報を変更
    することによって一の機能を呼び出すよう前記サーバに
    要求し、以て、当該機能が実行されるようにしたことを
    特徴とする、請求項1記載の修正可能な機能をサーバ上
    で実行する方法。
  10. 【請求項10】 前記クライアントは機能データを設定
    するよう前記サーバに要求し、以て、当該機能が引数と
    して使用すべき新しいデータを有するようにしたことを
    特徴とする、請求項1記載の修正可能な機能をサーバ上
    で実行する方法。
  11. 【請求項11】 前記クライアントは機能データを獲得
    するよう前記サーバに要求し、以て、前記サーバが以前
    に実行した機能の結果を前記クライアントに戻すように
    したことを特徴とする、請求項1記載の修正可能な機能
    をサーバ上で実行する方法。
  12. 【請求項12】 前記クライアントは優先順位を設定す
    るよう前記サーバに要求し、以て、当該機能がサーバ・
    プログラム・ループにおいて異なった順序で実行される
    ようにしたことを特徴とする、請求項1記載の修正可能
    な機能をサーバ上で実行する方法。
  13. 【請求項13】 サーバ・プログラムの特性は、前記サ
    ーバに戻らない無限ループで走る一の機能によって変更
    されることを特徴とする、請求項1記載の修正可能な機
    能をサーバ上で実行する方法。
  14. 【請求項14】 次の各ステップから成る、修正可能な
    機能をサーバ上で実行する方法。 (イ)実行可能なオブジェクト・コード及びオブジェク
    ト・タイプ名をクライアントからサーバに送るステッ
    プ。 (ロ)前記オブジェクト・コード、オブジェクト・タイ
    プ名及びエントリ機能ポインタをサーバ・メモリの第1
    部分にロードするステップ。 (ハ)エントリ機能を実行させることによって1つ以上
    の機能に関する情報をサーバ・メモリの第2部分に記憶
    するステップ。 (ニ)各機能に関連する情報を優先順位に従ってサーバ
    ・メモリの第3部分に編成するステップ。 (ホ)前記関連する情報が編成された順序で前記機能を
    実行するステップ。
JP5204346A 1992-10-23 1993-08-18 修正可能な機能をサーバ上で実行する方法 Expired - Fee Related JPH0827774B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/965,656 US5423042A (en) 1992-10-23 1992-10-23 Remote procedure execution
US965656 1992-10-23

Publications (2)

Publication Number Publication Date
JPH076111A JPH076111A (ja) 1995-01-10
JPH0827774B2 true JPH0827774B2 (ja) 1996-03-21

Family

ID=25510289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5204346A Expired - Fee Related JPH0827774B2 (ja) 1992-10-23 1993-08-18 修正可能な機能をサーバ上で実行する方法

Country Status (2)

Country Link
US (1) US5423042A (ja)
JP (1) JPH0827774B2 (ja)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507872B1 (en) * 1992-09-25 2003-01-14 David Michael Geshwind Class of methods for improving perceived efficiency of end-user interactive access of a large database such as the world-wide web via a communication network such as “The Internet”
US6708196B1 (en) 1994-04-15 2004-03-16 Microsoft Corporation Method and system for caching presentation data
US5608909A (en) 1994-04-15 1997-03-04 Microsoft Corporation Method and system for caching presentation data of a source object in a presentation cache
JPH08235098A (ja) * 1995-02-22 1996-09-13 Mitsubishi Electric Corp 分散アプリケーション通信方式
JPH08272723A (ja) * 1995-03-30 1996-10-18 Canon Inc 情報処理方法及び装置
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
US5987505A (en) * 1995-04-28 1999-11-16 Fry; Shawn C. Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US5727147A (en) * 1995-12-08 1998-03-10 Sun Microsystems, Inc. System and method for resolving symbolic references to externally located program files
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6272559B1 (en) 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6253282B1 (en) * 1996-07-01 2001-06-26 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server with a client program cache
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6233620B1 (en) * 1996-07-02 2001-05-15 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a presentation engine in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US5933827A (en) * 1996-09-25 1999-08-03 International Business Machines Corporation System for identifying new web pages of interest to a user
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US5884316A (en) * 1996-11-19 1999-03-16 Microsoft Corporation Implicit session context system with object state cache
US5951648A (en) * 1997-03-03 1999-09-14 Mylex Corporation Reliable event delivery system
US6401114B1 (en) * 1997-05-01 2002-06-04 Stratum Technologies Corporation Method and apparatus for dynamic programming across a computer network
US7162519B2 (en) 1998-05-01 2007-01-09 Stratum Technologies Corporation Structure and method for providing customized web pages-therefor
US6199102B1 (en) 1997-08-26 2001-03-06 Christopher Alan Cobb Method and system for filtering electronic messages
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
US6070168A (en) * 1997-12-31 2000-05-30 Nortel Networks Corporation Platform-independent object memory manager
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
EP1057272A2 (en) * 1998-02-26 2000-12-06 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
CN1298514A (zh) 1998-02-26 2001-06-06 太阳微系统公司 确定性散列识别远程方法的方法和系统
US6799224B1 (en) * 1998-03-10 2004-09-28 Quad Research High speed fault tolerant mass storage network information server
US6260155B1 (en) 1998-05-01 2001-07-10 Quad Research Network information server
US6912561B1 (en) 1998-05-22 2005-06-28 International Business Machines Corporation Method and apparatus for using classes, encapsulating data with its behaviors, for transferring between databases and client applications and for enabling applications to adapt to specific constraints of the data
US6366916B1 (en) 1998-05-22 2002-04-02 International Business Machines Corporation Configurable and extensible system for deploying asset management functions to client applications
US6917939B1 (en) 1998-05-22 2005-07-12 International Business Machines Corporation Method and apparatus for configurable mapping between data stores and data structures and a generalized client data model using heterogeneous, specialized storage
US6826571B1 (en) 1998-05-22 2004-11-30 International Business Machines Corporation Method and apparatus for dynamically customizing and extending functions of a server program to enable and restrict functions of the server
US6112227A (en) 1998-08-06 2000-08-29 Heiner; Jeffrey Nelson Filter-in method for reducing junk e-mail
GB2341951A (en) * 1998-09-22 2000-03-29 Ibm Thin-client remote object execution
US6901518B1 (en) 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
US6845393B1 (en) 1999-06-14 2005-01-18 Sun Microsystems, Inc. Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services
US6877163B1 (en) 1999-06-14 2005-04-05 Sun Microsystems, Inc. Method and system for dynamic proxy classes
US7743149B1 (en) * 1999-12-22 2010-06-22 Nortel Networks Limited SIP messages carrying executable computer software code
US7421395B1 (en) * 2000-02-18 2008-09-02 Microsoft Corporation System and method for producing unique account names
US7249192B1 (en) * 2000-03-09 2007-07-24 Hewlett-Packard Development Company, L.P. Protocol for insuring exactly once semantics of transactions across an unordered, unreliable network
US6964034B1 (en) * 2000-04-20 2005-11-08 International Business Machines Corporation Application development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment
US7188251B1 (en) 2000-05-09 2007-03-06 Sun Microsystems, Inc. System and method for secure message-based leasing of resources in a distributed computing environment
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services in a distributed computing environment
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US7080078B1 (en) 2000-05-09 2006-07-18 Sun Microsystems, Inc. Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US6643650B1 (en) 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors in a distributed computing environment
US7200848B1 (en) 2000-05-09 2007-04-03 Sun Microsystems, Inc. Migrating processes using data representation language representations of the processes in a distributed computing environment
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US7243356B1 (en) 2000-05-09 2007-07-10 Sun Microsystems, Inc. Remote method invocation with secure messaging in a distributed computing environment
US6868447B1 (en) 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services in a distributed computing environment
US6973493B1 (en) 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints in a distributed computing environment
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates in a distributed computing environment
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US7263476B1 (en) * 2000-06-12 2007-08-28 Quad Research High speed information processing and mass storage system and method, particularly for information and application servers
US6912572B1 (en) * 2000-06-20 2005-06-28 Syscontrol Ag Server monitoring
US7107587B1 (en) * 2000-09-18 2006-09-12 Microsoft Corporation Access redirector and entry reflector
US7080387B2 (en) * 2000-09-28 2006-07-18 Sun Microsystems, Inc. System and method for mediating communication between software applications
US7296275B2 (en) 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7273137B2 (en) * 2001-08-30 2007-09-25 Fox Factory, Inc. Inertia valve shock absorber
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7516182B2 (en) * 2002-06-18 2009-04-07 Aol Llc Practical techniques for reducing unsolicited electronic messages by identifying sender's addresses
US7207040B2 (en) * 2002-08-15 2007-04-17 Sun Microsystems, Inc. Multi-CPUs support with thread priority control
US7620691B1 (en) 2003-02-10 2009-11-17 Aol Llc Filtering electronic messages while permitting delivery of solicited electronics messages
US7290033B1 (en) 2003-04-18 2007-10-30 America Online, Inc. Sorting electronic messages using attributes of the sender address
US7590695B2 (en) 2003-05-09 2009-09-15 Aol Llc Managing electronic messages
US7496896B2 (en) * 2003-07-17 2009-02-24 Computer Associates Think, Inc. Accessing return values and exceptions
US7627635B1 (en) 2003-07-28 2009-12-01 Aol Llc Managing self-addressed electronic messages
US20050125667A1 (en) * 2003-12-09 2005-06-09 Tim Sullivan Systems and methods for authorizing delivery of incoming messages
WO2005062843A2 (en) * 2003-12-19 2005-07-14 America On Line, Inc Community messaging lists for authorization to deliver electronic messages
US20050193130A1 (en) * 2004-01-22 2005-09-01 Mblx Llc Methods and systems for confirmation of availability of messaging account to user
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7469292B2 (en) * 2004-02-11 2008-12-23 Aol Llc Managing electronic messages using contact information
US7523469B2 (en) * 2004-12-03 2009-04-21 Microsoft Corporation Enabling inter-subsystem resource sharing
US7653684B2 (en) * 2004-12-03 2010-01-26 Microsoft Corporation Enabling inter-subsystem resource sharing
US7650383B2 (en) * 2005-03-15 2010-01-19 Aol Llc Electronic message system with federation of trusted senders
US7647381B2 (en) * 2005-04-04 2010-01-12 Aol Llc Federated challenge credit system
US20070088793A1 (en) * 2005-10-17 2007-04-19 Landsman Richard A Filter for instant messaging
US7937692B2 (en) * 2005-11-30 2011-05-03 Red Hat, Inc. Methods and systems for complete static analysis of software for building a system
JP4846468B2 (ja) 2006-06-30 2011-12-28 株式会社吉野工業所 合成樹脂製ボトル
US8838674B2 (en) * 2006-10-26 2014-09-16 International Business Machines Corporation Plug-in accelerator
CA2675034A1 (en) 2007-01-09 2008-07-17 Visa U.S.A. Inc. Contactless transaction
TW200839561A (en) * 2007-03-22 2008-10-01 Wistron Corp Method of irregular password configuration and verification
US8117622B2 (en) 2009-05-14 2012-02-14 Microsoft Corporation Client application independent extensibility model
US20140372973A1 (en) * 2013-06-12 2014-12-18 Level 3 Communications, Llc System and methods for generating data objects

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4782517A (en) * 1986-09-08 1988-11-01 Bell Communications Research, Inc. System and method for defining and providing telephone network services
US4924384A (en) * 1988-09-21 1990-05-08 International Business Machines Corporation Method for controlling the peer-to-peer processing of a distributed application across a synchronous request/response interface using push-down stack automata
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system

Also Published As

Publication number Publication date
US5423042A (en) 1995-06-06
JPH076111A (ja) 1995-01-10

Similar Documents

Publication Publication Date Title
JPH0827774B2 (ja) 修正可能な機能をサーバ上で実行する方法
US5535389A (en) Business process objects with associated attributes such as version identifier
US5632034A (en) Controlling method invocation sequence through virtual functions in an object-oriented class library
JP2986042B2 (ja) オブジェクト指向プログラミング環境を変更するための方法及び装置
US8966456B2 (en) System and method for providing and using meta-data in a dynamically typed array-based language
De Koster et al. 43 years of actors: a taxonomy of actor models and their key properties
US20030159129A1 (en) Component model for real time system control
KR100478025B1 (ko) 보안해석기에서전용변수함수호출의실행시간을최적화하기위한시스템및그방법
JPH03138735A (ja) データベース管理装置及び方法
JPH06103085A (ja) オブジェクト指向型プログラム言語のためのコンパイラに仮想ファンクションテーブルをインプリメントする方法
JPH03137730A (ja) オブジエクト指向コンピユータ・システム
US5701485A (en) Object oriented dispatch and supercall process and arrangement
JPH02188833A (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
US7146602B2 (en) Builder tool and interface for system supporting multiple virtual machines
JP2000187594A (ja) インタ―フェ―スのランタイム付加
JP2000347864A (ja) ディスパッチテーブル構造のための方法と装置
JPH0635709A (ja) オブジェクトクラス規定装置、ウィジェット及びその実現方法
US20080066002A1 (en) Method for creation, management, and presentation of user-scoped navigation topologies for web applications
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
US7849470B2 (en) System and method for extending a programming language to include multiple dissimilar object systems
JPH0565892B2 (ja)
JP2000056954A (ja) 強化機能を備えるシステムおよび方法
CA2097541C (en) Concurrency control through a class library in object oriented technology
Braverman CASTE: A class system for Tcl
Dardha et al. Background on Components

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees