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

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

Info

Publication number
JPH076111A
JPH076111A JP5204346A JP20434693A JPH076111A JP H076111 A JPH076111 A JP H076111A JP 5204346 A JP5204346 A JP 5204346A JP 20434693 A JP20434693 A JP 20434693A JP H076111 A JPH076111 A JP H076111A
Authority
JP
Japan
Prior art keywords
server
function
client
functions
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5204346A
Other languages
English (en)
Other versions
JPH0827774B2 (ja
Inventor
Reza Jalili
リザ・ジャリリ
Wayne L Wooten
ウェイン・エル・ウットン
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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)

Abstract

(57)【要約】 (修正有) 【目的】サーバーが実行するように設計されていないク
ライアントのオブジェクト・コードを、サーバーがリコ
ンパイル又は再連係することなく実行する。 【構成】クライアントは、実行可能なオブジェクト・コ
ードを、サーバー100がそのオブジェクト・コードを
登録するのを許容する登録情報と共に、サーバーに供給
する。その登録情報は、オフジェクト・コードと共にサ
ーバー・メモリに記憶される。クライアントは、その登
録情報を操作することによって、サーバーにオブジェク
ト・コードを実行させる種々の要求をすることができ
る。サーバーの登録及び要求機能を使って、クライアン
トはオブジェクト・コードを実行させる時期及び頻度を
サーバーに指示する。サーバーは、クライアントの要求
に基づいてコード実行ステップにおけるそのアクション
を変更することによりこれを行う。

Description

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

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】修正可能な機能をサーバーにおいて実行す
    る方法であって、 サーバー・プログラムの実行中、実行可能なオブジェク
    トをクライアント・プログラムによってサーバーにロー
    ドするステップと、 前記オブジェクトに含まれた機能をサーバー内に登録
    し、該登録によって与えられた登録情報により決められ
    た機能をサーバーが実行し得るようにするステップと、 より成る方法。
  2. 【請求項2】前記登録情報はサーバー・メモリにおける
    テーブルに記憶されることを特徴とする請求項1に記載
    の方法。
  3. 【請求項3】前記登録情報は複数の機能の各々の活動状
    態を指定し、サーバー・プログラムの所定ループにおい
    てアクティブ機能だけを実行することを特徴とする請求
    項2に記載の方法。
  4. 【請求項4】前記登録情報は複数の機能の各々の優先順
    位を含むこと及び前記アクティブ機能は該優先順位に従
    ってサーバー・プログラムの所定ループにおいて実行さ
    れることを特徴とする請求項3に記載の方法。
  5. 【請求項5】前記登録情報は複数の機能の各々の反復計
    数値を含むこと及び該機能は反復計数値により決定され
    る数だけサーバー・プログラム・ループを実行させるこ
    とを特徴とする請求項4に記載の方法。
  6. 【請求項6】クライアントは前記登録情報を変更するこ
    とによってオブジェクトを登録抹消するようサーバーに
    要求し、以て、登録抹消されたオブジェクトの機能がサ
    ーバーにより実行されないようにすることを特徴とする
    請求項1に記載の方法。
  7. 【請求項7】クライアントは前記登録情報を変更するこ
    とによって1つの機能を活動化するようサーバーに要求
    し、以て、該機能が少なくとも1つのサーバー・ループ
    において実行されるようにすることを特徴とする請求項
    1に記載の方法。
  8. 【請求項8】クライアントは前記登録情報を変更するこ
    とによって1つの機能を非活動化するようサーバーに要
    求し、以て、該機能がサーバー・ループにおいて実行さ
    れないようにすることを特徴とする請求項1に記載の方
    法。
  9. 【請求項9】クライアントは前記登録情報を変更するこ
    とによって1つの機能を呼び出すようサーバーに要求
    し、以て、該機能が実行されるようにすることを特徴と
    する請求項1に記載の方法。
  10. 【請求項10】クライアントは機能データを設定するよ
    うサーバーに要求し、以て、該機能が引数として使用す
    べき新しいを有するようにすることを特徴とする請求項
    1に記載の方法。
  11. 【請求項11】クライアントは機能データを獲得するよ
    うサーバーに要求し、以て、サーバーが前に実行した機
    能の結果をクライアントに戻すようにすることを特徴と
    する請求項1に記載の方法。
  12. 【請求項12】クライアントは優先順位を設定するよう
    サーバーに要求し、以て、該機能がサーバー・ループに
    おいて異なった順序で実行されるようにすることを特徴
    とする請求項1に記載の方法。
  13. 【請求項13】サーバー・プログラムの特性は、サーバ
    ーに戻らない無限ループで走る機能によって変更される
    ことを特徴とする請求項1に記載の方法。
  14. 【請求項14】クライアントが1つ又は複数の機能をサ
    ーバー上で実行する方法であって、 実行可能なオブジェクト・コード及びオブジェクト・タ
    イプ名をクライアントからサーバーに送るステップと、
    前記オブジェクト・コード、オブジェクト・タイプ名及
    びエントリ機能ポインタをサーバー・メモリの第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 true JPH076111A (ja) 1995-01-10
JPH0827774B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235098A (ja) * 1995-02-22 1996-09-13 Mitsubishi Electric Corp 分散アプリケーション通信方式
JPH08272723A (ja) * 1995-03-30 1996-10-18 Canon Inc 情報処理方法及び装置
US8104632B2 (en) 2006-06-30 2012-01-31 Yoshino Kogyosho Co., Ltd. Synthetic resin bottle having a constricted portion with intermittent lateral grooves

Families Citing this family (136)

* 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
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
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service 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
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects 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
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
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
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
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
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
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
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
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
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
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
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
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
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
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
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
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
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
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
US5933827A (en) * 1996-09-25 1999-08-03 International Business Machines Corporation System for identifying new web pages of interest to a user
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
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
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
US7162519B2 (en) 1998-05-01 2007-01-09 Stratum Technologies Corporation Structure and method for providing customized web pages-therefor
US6401114B1 (en) 1997-05-01 2002-06-04 Stratum Technologies Corporation Method and apparatus for dynamic programming across a computer network
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
EP1057272A2 (en) * 1998-02-26 2000-12-06 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
KR20010034514A (ko) 1998-02-26 2001-04-25 케네쓰 올센 원격 메소드를 식별하는 해시 판정 방법 및 시스템
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
US6366916B1 (en) 1998-05-22 2002-04-02 International Business Machines Corporation Configurable and extensible system for deploying asset management functions to client applications
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
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
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
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
US6877163B1 (en) 1999-06-14 2005-04-05 Sun Microsystems, Inc. Method and system for dynamic proxy classes
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
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
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
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
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport 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
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services 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
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates in a distributed computing environment
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors 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
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
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services 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
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates 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
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
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
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates 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
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints 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
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store 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
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in 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
US7882360B2 (en) 2003-12-19 2011-02-01 Aol 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
US7653684B2 (en) * 2004-12-03 2010-01-26 Microsoft Corporation Enabling inter-subsystem resource sharing
US7523469B2 (en) * 2004-12-03 2009-04-21 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
US8838674B2 (en) * 2006-10-26 2014-09-16 International Business Machines Corporation Plug-in accelerator
WO2008086439A1 (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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235098A (ja) * 1995-02-22 1996-09-13 Mitsubishi Electric Corp 分散アプリケーション通信方式
JPH08272723A (ja) * 1995-03-30 1996-10-18 Canon Inc 情報処理方法及び装置
US8104632B2 (en) 2006-06-30 2012-01-31 Yoshino Kogyosho Co., Ltd. Synthetic resin bottle having a constricted portion with intermittent lateral grooves

Also Published As

Publication number Publication date
US5423042A (en) 1995-06-06
JPH0827774B2 (ja) 1996-03-21

Similar Documents

Publication Publication Date Title
JPH076111A (ja) 修正可能な機能をサーバーで実行する方法
US5535389A (en) Business process objects with associated attributes such as version identifier
JP2986042B2 (ja) オブジェクト指向プログラミング環境を変更するための方法及び装置
JP2986051B2 (ja) オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US4833594A (en) Method of tailoring an operating system
JPH03138735A (ja) データベース管理装置及び方法
JPH03137730A (ja) オブジエクト指向コンピユータ・システム
JP2000347864A (ja) ディスパッチテーブル構造のための方法と装置
EP2041649A2 (en) System and method for providing and using meta-data in a dynamically typed array-based language
US20020095396A1 (en) Builder tool and interface for system supporting multiple virtual machines
JP2000187594A (ja) インタ―フェ―スのランタイム付加
US8769439B2 (en) Method for creation, management, and presentation of user-scoped navigation topologies for web applications
US7058656B2 (en) System and method of using extensions in a data structure without interfering with applications unaware of the extensions
US7185325B2 (en) Application class extensions
US5893122A (en) Hyper-media system including plural application processors which execute navigation processing for hyper-media document
CN103150195A (zh) 将以自动化语言表示的控制程序翻译为中间语言的方法
US7849470B2 (en) System and method for extending a programming language to include multiple dissimilar object systems
Musch Singleton
Henrio et al. Active objects with deterministic behaviour
CA2097541C (en) Concurrency control through a class library in object oriented technology
JPH11249873A (ja) ドライバ機能の動的管理方式及び動的管理方法
JP2002328935A (ja) オブジェクト指向データベースのデータ操作においてスキーマに自由度を持たせるプログラム及びデータ操作装置
JP2001075805A (ja) メソッドの遷移型オーバーライドを可能にするディスパッチ・テーブルの構成方法および装置
US5241622A (en) Slot accessing method in object-oriented expert system
US10133586B2 (en) Method to configure, control, and display data products from a user interface

Legal Events

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