JPH07509799A - ネットワークにおけるプロセスの移動,エクセプション及び相互作用に基づいた分散処理のためのシステム及び方法 - Google Patents

ネットワークにおけるプロセスの移動,エクセプション及び相互作用に基づいた分散処理のためのシステム及び方法

Info

Publication number
JPH07509799A
JPH07509799A JP7504073A JP50407395A JPH07509799A JP H07509799 A JPH07509799 A JP H07509799A JP 7504073 A JP7504073 A JP 7504073A JP 50407395 A JP50407395 A JP 50407395A JP H07509799 A JPH07509799 A JP H07509799A
Authority
JP
Japan
Prior art keywords
agent
computer
place
network
class
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
JP7504073A
Other languages
English (en)
Other versions
JP3723572B2 (ja
Inventor
ホワイト,ジェイムス イー.
ヘルゲッサン,クリストファー エス.
ステードマン,ダグラス エイ.
Original Assignee
ジェネラル マジック,インク.
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 ジェネラル マジック,インク. filed Critical ジェネラル マジック,インク.
Publication of JPH07509799A publication Critical patent/JPH07509799A/ja
Application granted granted Critical
Publication of JP3723572B2 publication Critical patent/JP3723572B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】
ネットワークにおけるプロセスの移動、エクセプション及び相互作用に基づいた 分散処理のためのシステム及び方法 ホワイト、ジェイムス イー。 ヘルゲッサン、クリストファー ニス。 ステートマン、ダグラス エイ。 この特許出願書類に開示されている内容には、著作権で保護される事項も含まれ ている。本著作権者は、特許庁のファイルやレコードにある特許出願書類や特許 開示の内容を復製することに対して異議はない。しがしながら、本著作権者が、 本特許出願書類に関して著作権を有していることに変わりはない。 技術分野 本発明は、分散型コンピュータシステム環境の分野に関し、特にプロセスがオブ ジェクト指向環境において作り出され、このプロセスがコンピュータネットワー ク内におけるプロセス自身の動きを指示するような、新しい分散型コンピュータ システム環境に関する。 背景技術 今日多くの異なった種類のコンピュータシステムが利用されているが、これらの システムの多くは、図1に示すように、基本的なコンポーネントから構成されて いる。典型的には、コンピュータシステム20は中央処理装置(以下、CPUと いう)を備え、このCPUl0は、入力バス11を介して入力モジュール12に 接続されるとともに、出力バス13を介して出力モジュール14に接続されてい る。、マた、cputoは、データノ(ス15.16を介してメモリユニット1 7にも接続されている。 CPUl0は、制御及び計算機能を有する。入力モジュール12及び出力モジュ ール14は、コンピュータのユーザとCPUl0間の通信のために用いられる。 入力モジュール12は、情報をCPU10に供給するためのものである。典型的 な入力モジュールとしては、キーボード及びマウスがある。出力モジュール14 は、CPUl0からの情報を表示するためのものである。典型的な出力モジュー ルとしては、ビデオディスプレイモニタ、プリンタ、プロッタ及びその他の視覚 表示手段がある。入力モジュール12及び出力モジュール14は、ときには、イ ンプット/アウトプット(I/’O)ユニットとも呼ばれる。 メモリユニット17は、典型的には、2種類の一般的な形式の情報、すなわちイ ンストラクション(命令)とデータを収容する。コンピュータプログラムは、あ る特定の機能を実現するためにコンピュータによって実行される一連のインスト ラクションから成る。メモリユニット17のデータは、CPUl0において実行 されているコンピュータプログラムのインストラクションに応答して、CPU1 0によって処理される。そして、実行中のコンピュータプログラムは、コンピュ ータプロセス(computer process)と呼ばれる。 メモリユニット17は、典型的には、マスメモリ17A(ときには2次メモリと も呼ばれる)と、メインメモリ17Bとを備えている。メインメモリ17Bは、 通常、CPU10によって現に実行されているプログラムの少なくとも一部分と 、そのプログラムで必要とされるデータを記憶するために用いられる。一方、例 えば磁気ディスクや磁気テープから成るマスメモリ17Aは、プログラム、デー タ、CPUl0によって直ちには必要とされないプログラムやデータ又はメイン メモリ17Bの大きさの制限のためにメインメモリ17B中に収容することので きないプログラムやデータの一部を記憶するために用いられる。 コンピュータのオペレーティングシステムは、CPU10、入力モジュール12 、出力モジュール14、マスメモリ17A及びメインメモリ17Bを連動させ、 後述するユーザアプリケーションとコンピュータハードウェア間のインターフェ イスを行なうコンピュータプロセスである。ここで使用されているコンピュータ ハードウェアという用語は、コンピュータシステムの物理的なコンポーネントを 意味する。コンピュータシステムを正しく動作させるためにはオペレーティング システムが必要である。したがって、オペレーティングシステムは、コンピュー タシステムを立ち上げた時に、ブーティングと呼ばれるプロセスにより、メイン メモリ17Bにロードされ、コンピュータシステムが最終的に終了するまでメイ ンメモリ17Bに留められて実行される。 ユーザアプリケーションは、一般に、オペレーティングシステムとは別のコンピ ュータプロセスであり、オペレーティングシステムとは別に実行される。ユーザ アプリケーションは、ソースコード、すなわち人にわかりやすい形のコンピュー タインストラクションによって作成されており、ある時点に置いて実行される。 このソースコードは、コンピュータシステム20.特にCPU10によって理解 される形のオブジェクトコードに翻訳、すなわちコンパイルされる。そして、い くつかのオブジェクトコードモジュールは、1つの実行イメージの形式となるよ うにリンクされる。ここで、実行イメージとは、コンピュータシステム20のC PU10によって実行可能な形式のことである。そして、このような実行イメー ジをメインメモリ17Bにコピーし、このメインメモリ17Bにコピーされた実 行イメージのインストラクションを1つずつ実行するようにCPU10に指示す ることにより、プログラムは、実行される。前述したように、このような実行状 態にあるコビュータプログラムは、プロセス(process )と呼ばれる。 コンピュータシステム20で実行されているプロセスのインストラクションは、 一般に、コンピュータシステムのリソース(資源)を操作(マニュビュレート) する。例えば、これらのインストラクションは、マスメモリ17Aに記憶されて いるデータを操作したり、入力モジュール12からデータを受け入れたり、又は 出力モジュール14にデータを表示したりすることができる。さらに、あるコン ピュータシステムにおいて実行されるように作られたプロセスは、他のコンピュ ータシステムのリソースを操作するコンピュータインストラクションを発生させ るように構成されることもある。 ところで、コンピュータ通信技術において、2以上のコンピュータシステム間で データを転送することができるように、2以上のコンピュータシステムを接続す ることは、周知のことである。このように接続された2以上のコンピュータシス テムはネットワーク(network)と呼ばれる。このようなネットワークに おいて、各々のコンピュータシステムは、他のコンピュータシステムを、データ の送受信を行なう入力/出力装置として取り扱う。 第1のコンピュータシステムにおいて実行されている第1のプロセスは、第2の コンピュータシステムにおいて実行されている第2のプロセスにインストラクシ ョンを送出することができる。このとき、第2のプロセスは、第1のプロセスか ら受け取ったインストラクションに従って、第2のコンピュータシステムのリソ ースを操作する。第2のプロセスは、クライアント(cl 1ent)プロセス と呼ばれる第1のプロセスにサービスを提供するものであり、サーバー(ser ver)プロセスと呼ばれる。このように、第2のコンピュータシステムのリソ ースを操作するサービスが提供される。 多くのコンピュータ通信システムでは、リモートプロシージャコーリング(re mate procedure calling)を実行する。リモートプロシ ージャコーリングにおいては、第1のコンピュータシステムにおいて実行されて おり、第2のコンピュータシステム内のデータの操作を必要とするクライアント プロセスは、第2のコンピュータシステムにおいて実行され、クライアントプロ セスからの要求に応答してデータを操作するサーバープロセスに動作(acti on)を要求する。そして、サーバープロセスは、クライアントプロセスのため に、有限なオペレーションリスト(operations 1ist)のうちの どれかを遂行する。 しかし、クライアントプロセスによって要求された機能と正確に合致する機能が 、サーバープロセスによって実行される特定の処理機能の中にないことがよくあ る。このようなサーバープロセスで定義されていない機能の実行には、サーバー プロセスへの要求とサーバープロセスがらの応答を繰り返すことが必要となる。 そして、これは通信メディアの多大な使用を必要とするため、コスト及び時間が 非常に増大する。 図2Aに示すフローチャート(ロジックフローダイアグラム)2oOは、リモー トプロシージャコーリングの具体例を示している。このフローチャート200は 、ネットワーク256を介して相互接続されたコンピュータシステム2OA(図 2B)とコンピュータシステム20Bとのやり取りで説明される。ファイル名が ある与えられたパターン、例えばファイル名が”、TMP”で終わるようなパタ ーンに一致し、少なくても30日の間変更されながったコビュータシステム20 B内の全てのファイルを、コンピュータシステム2OA内のクライアントプロセ ス252が削除するものと想定する。このとき、先ず、図2Aに示すステップ2 1において、クライアントプロセス252は、コンピュータシステム20Bにお いて実行されているサーバープロセス254に、全てのファイルリストを要求す るインストラクションを送出する。矢印260(図2B)はこの要求を表わして いる。次に、処理はステップ21(図2A)からステップ22に進み、このステ ップ22において、クライアントプロセス252(図2B)は、矢印262で示 すように、サーバープロセス254からファイルリストを受け取る。このように 、ステップ21.22(図2A)での処理は、ネットワークの通信メディアを介 しての2回の情報転送(トランスファ)を含んでいる。 こごで、図2Aにおいて、2重線で囲まれたステップは、ネットワーク256( 図2B)を介しての情報転送を表している。コンピュータ2OA又はコンピュー タ20B内におけるインストラクションの実行は数ナノ秒がら致マイクロ秒であ るのに対し、ネットワーク256を介しての情報転送には、ネットワーク256 の形態及び情報量に依存するが、一般に数秒から数分を必要とする。さらに、ネ ットワークによっては、大量のデータの転送に1時間以上もかがることがある。 次ニ、処理ハ、7.チー/フ22 (図2 A) カラスf ラフ(FOREA CHFILENAME) 23に移行する。ステップ23とステップ(NEXT ) 23a、23b、23cは、クライアントプロセスによって、ファイルリス トが各ファイル名毎に処理されるようにループを形成している。すなわち、ファ イルリストの各ファイル名に対する処理は、ステップ23がらテストステップ2 4に移行し、このテストステップ24において、クライアントプロセス252( 図2B)は、ファイル名をパターンと比較する。そして、もしファイル名がパタ ーンと一致しない場合には、処理は、テストステップ24(図2A)からステッ プ23aを介してステップ23に戻り、その次のファイル名が処理される。 逆に、ファイル名がパターンに一致している場合には、処理は、テストステップ 24からステップ25に進む。このステップ25において、クライアントプロセ ス252(図2B)は、矢印264で示すように、ファイル名が一致したファイ ルが最後に変更された日付を要求するインストラクションをサーバープロセス2 54に送出する。次に、処理は、ステップ25(図2A)がらステップ26に移 行し、このステップ26において、クライアントプロセス252(図2B)は、 矢印266で示すように、要求した日付をサーバープロセス24がら受取る。こ のように、ステップ25.26(図2A)で、ファイル名が一致する毎に、ネッ トワークの通信メディアを介する転送がさらに2回行われる。 次に、処理は、ステップ26からテストステップ27に進み、このテストステッ プ27において、クライアントプロセス252(図2B)は、受信した日付と現 在の日付から30日を引いた日付とを比較する。そして、ファイルが30日以内 に変更されていたときは、処理は、テストステップ27(図2A)がらステップ 23bを介してステップ23に戻る。そして、ステップ23において、次のファ イル名が処理される。逆に、ファイルが30日以内に変更されてぃながったとき は、処理は、テストステップ27からステップ28に進む。 次に、ステップ28において、クライアントプロセス252(図2B)は、矢印 268で示すように、コンピュータシステム20B内からファイルを削除するイ ンストラクションをサーバープロセス254に送出する。そして、処理は、ステ ップ28(図2A)からステップ29に進み、このステップ29において、クラ イアントプロセス252(図2B)は、矢印270で示すように、その削除処理 に対する確認、すなわちアクルジメント(acknowledgement)を サーバープロセス254から受ける。このように、ステップ28.29(図2A )で、削除されるファイル毎に、ネットワークの通信メディアを介する転送がさ らに2回行われる。 そして、処理は、ステップ29からステップ23cを介してステップ23に戻る 。このようにしてリスト中の全てのファイル名に対する処理が完了したら、処理 は、ステップ23からステップ20bに進み、このステップ20bにおいて処理 が終了する。このように、図2のフローチャートに示すような処理には、ネット ワーク256を介しての多数の情報転送が必要とされる。そして、このようにネ ットワークの通信メディアを過度に使用することは、時間及びコストの浪費にな る。 リモートプロシージャコーリングとは別のアプローチとして、リモートプログラ ミング(remote programming)がある。リモートプログラミ ングにおいて、クライアントプロセスと呼ばれる第1のコンピュータシステムに おいて実行されているプロセスは、第2のコンピュータシステムにおいて実行さ れているサーバープロセスに、インストラクションのリストを送出する。そして 、これらのインストラクションが、サーバープロセスによって実行されて、クラ イアントプロセスの目的が達せられる。このような、サーバープロセスが実行す るインストラクションは、ある程度の普遍性を持たねばならない。すなわち、こ れらのインストラクションは、ある程度の判断能力を備えていなければならない 。 図3Aに示すフローチャートは、リモートプログラミングの具体例を示している 。図2A及び図2Bにおいて説明した具体例をリモートプログラミング環境にお いて実現するには、クライアントプロセス352(図3B)は、ステップ31( 図3A)において、ステップ31の詳細なフローチャートに示すようなインスト ラクションから構成されるプログラムを作成する。このステップ31の詳細につ いては後述する。 次に、処理は、ステップ31からステップ32に進み、このステップ32におい て、プログラムは、矢印358(図3B)で示すように、ネットワーク356を 介しコンピュータ30Bに転送される。そして、処理は、ステップ32(図3A )からステップ33に進み、このステップ33において、プログラムはコンピュ ータ30B(図3B)によって実行される。このプログラムの実行中は、プログ ラムはコンピュータ30B上のプロセス352Aとなっている。そして、プロセ ス352Aにおいて、プログラムのインストラクションは、以下のようなステッ プ31の詳細なフローチャートに従って実行される。 ステップ3l−B(図3A)において、ファイル名のリストが作成される。そし て、処理は、ステップ31−Bからステップ(FOREACHFILENAME  5TEP) 31−Cに進む。ここで、ステップ31−Cとステップ(NEX T) 31−H131−I、31−Jは、ファイルリスト中の各ファイル名毎に 処理を行うように、ループを形成している。そして、各ファイル名について、ス テップ31−Cからテストステップ31−Dに進み、このテストステップ31− Dにおいて、ファイル名がパターンと比較される。そして、ファイル名がパター ンと一致しないときは、処理は、テストステップ31−Dがらステップ31−H を介してステップ31−cに戻る。逆に、ファイル名がパターンに一致するとき は、処理は、テストステップ31−Dからステップ31−Eに移行する。 ステップ31−Hにおいて、プロセス352Aは、検索パターンと一致したファ イル名を有するファイルの最後の変更日付けを検索する。そして、処理は、ステ ップ31−Eがらテストステップ31−Fに移行する。このテストステップ31 −Fにおいて、ファイルの最後の変更日付けと、現在の日付けから30日を引い た日付けとが比較される。ここで、ファイルの最後の変更日付けは、サーバープ ロセス354(図3B)から検索される。そして、最後の変更日付けが30日以 前の日付けよりも新しいときには、処理は、テストステップ3l−F(図3A) からステップ31−■を介してステップ31−cに戻る。逆に、最後の震更日付 けが30日以前の日付であったときには、処理は、テストステップ31−Fから ステップ31−Gに移行する。そして、ステップ31−Gにおいて、サーバープ ロセス354 (図3B)に適切なインストラクションが送出されて、ファイル が削除される。そして、処理は、ステップ3l−G(図3A)からステップ31 −Jを介してステップ31−Cに戻る。こうして、リスト中の全てのファイル名 に対する処理が完了したら、処理は、ステップ31−Cからステップ31−Kに 移行し、プロセス352Aが完了する。このように、プロセス352Aとサーバ ープロセス354間の相互作用は、矢印360(図3B)に示すように、ネット ワーク356を使用することなく、全てコンピュータ30B中において生じる。 こうして、プログラムが成功のうちに終了した後、処理は、ステップ33(図3 A)からステップ34に移行する。そして、このステップ34において、サーバ ープロセス354(図3B)は、矢印362で示すように、プログラムが成功の うぢに終了したことをクライアントプロセス352に報告する。このリモートプ ログラミングプロシージャでは、ネットワークの通信メディアは2回しが使用さ れていないことに注意されたい。すなわち、第1回目の使用は、矢印358で示 すようにインストラクションリスト又はプログラムをサーバープロセス354に 送出するための使用であり、第2回目の使用は、矢印362で示すように、プロ グラムが成功のうちに終了した報告をサーバープロセス354がら受け取るため の使用である。このようなリモートプログラミングプロシージャでは、サーバー プロセス354の開発者によって明白に提供されてぃなかったり、おそらくは予 想さえもされてぃなかったオペレーションを、クライアントプロセス352がサ ーバープロセス354に要求できることにも注意されたい。 しかし、リモートプログラミングでは、2以上のコンピュータシステム上のデー タの操作を連係化することをコンピュータプロセスがめる場合に、リモートプロ シージャコーリングの場合と同様に、非効率となることがある。例えば、あるコ ンピュータXのプロセスは、他のコンピュータシステムYやコンピュータシステ ムZ上の、コンピュータXのファイルと同一の名前、最後の変更日付は及びサイ ズを有する全てのファイルを削除するように要求するがもじれない。そして、図 3A、図3Bにおける前述したサーバープロセス354は、サーバープロセス  。 を実行しているコンピュータシステムであるコンピュータシステムY上のリソー スを、直接操作することができるが、サーバープロセスは、リモートプロシージ ャコーリングにおいて前述したような非効率を生ずることなしには、1以上のコ ンピュータシステムにわたるデータの管理を連係化することができない。 :−ノヨウft’)%−トプロクラムニ対スル改良ハ、C,Daniel Wo lfson、 et al、。 ”Intelligent Routers”、 9th Internati onal Conference on Distribu狽■п@Comp uting Systems at pp、 371−375 (1989)に 記載されている。ウォルソン(Wolfs。 n)等は、ネットワーク内において、あるプロセスが1つのコンピュータシステ ムから別のコンピュータシステムに移動することができるシステムを開示してい る。このプロセスは、実行されたときにプロセスを移動させるインストラクショ ンを生成することによって、ネットワークを介してプロセス自身の移動を指示す る。ここで、インストラクションは、そのプロセスが移動するコンピュータシス テムを指定する。 しかし、ウォルソン等によって開示された方式による解決では、機能性が制限さ れる。また、プロセスは、それぞれのプロセスが移動するコンピュータシステム の固有の要求に適合するように構成されることが必要である。また、プロセス間 で相互に通信することができないので、プロセス間通信の代わりに、それぞれの プロセスは、それぞれのプロセスが実行されているコンピュータシステムのマス メモリにデータを直接に記憶させたり、このマスメモリからデータを直接検索し たりする必要がある。そして、あるプロセスが別のプロセスと相互作用をし得る のは、両方のプロセスが、メツセージを記憶させたり、検索したりするマスメモ リ中のQli!(ロケーション)を正確に知っている場合に限られる。 また、つオルソン等によって開示されたシステムは、いがなる安全性(セキュリ ティ)も与えない。すなわち、ウォルソン等のシステムでは、ある1つのプロセ スに別のプロセスと相互作用することを許容した場合、悪意のあるプロセスが第 2のプロセスの実行を妨げるかもしれない。さらに、ウォルソン等によって開示 されたシステムのプロセスに供給されるインストラクションセットは、非常に限 られており、単に文字列データと実数を現す数値データが供給されるに過ぎない 。 ウォルソン等によって開示されたシステムと同様の別のシステムが、C,Tsi ch自tzis et al、、”KNOs:KNovledge ACqu! 5ILtOn、DfSSelalnaj!On、and Man奄曹浮撃≠■ ion 0bjects”、 ACM Trans、 on office I nformation Systems、 vol、5. 獅潤A l、 pp 。 96−112 (1987)に開示されている。チイクリティス(Tsichr i tzis)等によって開示されたこのシステムは、オブジェクト指向プログ ラミング(object−oriented programming )の− 殺性を、ウォルソン等によって開示されたシステムに付加したものである。 オブジェクト指向プログラミングは、データ及びインストラクションをオブジェ クト(objects )にまとめる。ここでデータは、オブジェクトの状態を 表し、インストラクションは、そのオブジェクトが遂行(perform )で きるタスク(tasks )やオペレーション(operations)である 。このようなオブジェクト指向プログラミングは、非常に有用な基本的な概念で あり、オブジェクト指向プログラミングによれば、コンピュータによって処理さ れる課題が、より簡単な一連のコンピュータインストラクションにまとめられる 。 オブジェクト指向環境において作り出されたオブジェクトは、クラスに分類され る。ある1つのクラスのオブジェクトは、同一の構造の状態を持ち、同一のオペ レーションを遂行する。チイクリティス等によって開示されたシステムは、クラ スの定義を動的に規定していないので、チイクリティス等によって開示された環 境内において作り出されたある特定のクラスのオブジェクトは、その特定のクラ スが定義されたコンピュータシステムに移動できるにすぎない。さらに、チイク リティス等によって開示された環境内のオブジェクトは、それらのオブジェクト が移動するネットワーク内のコンピュータシステムが同質であることが必要であ るように記述されている。 チイクリティス等によって開示されたシステムは、さらに、プロセスをコピーす るインストラクションを有する。すなわち、例えばヘッドプロセスと呼ばれる第 1のプロセスは、このインストラクションによって、それ自身のコピーを作り出 すことができる。このようなコピーはリム(limbs)と呼ばれる。そして、 チイクリティス等によって開示されたシステムでは、ヘッドプロセスの指示によ って、リムが遠隔のコンピュータシステムに送られる。しかし、これらのリムは 動的ではなく、リムのコンピュータインストラクションは;ヘッドプロセスの指 示によってのみ実行される。したがって、遠隔のコンピュータシステム上に位置 するリムのプロセスを動作させるには、ネットワークの通信メディアを介して、 ヘッドプロセスがリムに指示を送る必要がある。かくして、大きなネットワーク の場合、時間及びコストの浪費が大きくなってしまう。 チイクリティス等によって開示されたシステムの効率の悪さは、例えばパーソナ ルコンピュータのような小型のコンピュータが、例えばメインフレームコンピュ ータのような大型のコンピュータを介して、大きなネットワークに接続されてい る場合にも見られる。例えば、ネットワーク上の多くのコンピュータに多くのリ ムを送出する場合、小型のコンピュータは、小型のコンピュータと大型のコンピ ュータとの間で多くの同一のリムを送ることが要求される。このとき、ヘッドプ ロセスのコピーであるリムは、非常に大きくなることがあり、このようなシステ ムでは効率が非常に悪くなることがある。 チイクリティス等は、第2のプロセスに第1のプロセスへのリファレンス(参照 : reference)を与えることによって、第1のプロセスと第2のプロ セスとが通信するシステムを開示している。ここで、リファレンスとは、オブジ ェクトを識別するためのデータであり、このように識別されたオブジェクトに対 してアクセスが許可される。そして、第2のプロセスは、第1のプロセスに対す るリファレンスを有しているので、第2のプロセスは、第1のプロセス内の特定 のコンピュータインストラクションを第1のプロセスが実行するように要求する ことができる。しかし、第1のプロセスは、第2のプロセスに対するリファレン スを取得することなく、第1のプロセスに対するリファレンスを第2のプロセス に与えるので、第2のプロセスは第1のプロセスへのリファレンスを持つが、第 1のプロセスは第2のプロセスに対してアクセスする権限を持たない。このよう なシステムでは、相互のアクセスの許可なく第2のプロセスへのアクセスを行う ような問題のあ右プロセス、すなわち、悪意のあるプログラマによって設計され たプロセスや、他のプロセスを損傷させてしまうように不注意に設計されたプロ セス等の存在が許されてしまう。 このように、ウオルソン等やチイクリティス等による業績にかかわらず、新たな オブジェクトやプロセスのクラスを作り出し、この新たなオブジェクトやプロセ スのクラスを、このような新しいクラスのためのクラス定義を含んでいないネッ トワーク内のコンピュータシステムで転送や処理を行うことができるシステムは 、開示されていない。さらに、ウォルソン等やチイクリティス等は、複雑で階層 的なセキュリティシステムを実現するメカニズムを開示していない。さらに、ウ ォルソン等やチイクリティス等は、互いに相互作用は行うことができるコンピュ ータプロセスを開示しているが、相互のアクセス許可なしには他のプロセスにア クセスできないようなコンピュータプロセスについては開示していない。 また、ウォルソン等やチイクリティス等は、あるプロセスに対して複数の独立し たクローン(clones)を作り出して、それらのクローンをそれぞれのコン ピュータシステムに転送することにより、複数のコンピュータシステムに同時に 転送することができるコンピュータプロセスについては開示していない。また、 チイクリティス等によって開示されたリムは、コンピュータプロセスが遠隔のコ ンピュータシステムにおけるリムの動作を制御するので独立的ではない。さらに 、ウオルソン等やチイクリティス等は、コンピュータネットワークの通信メディ アを介して転送される情報の冗長を最小にして、各コンピュータシステムへのク ローンの転送を効率的に行う方法について開示していない。 発明の概要 本発明では、インターブリート(解釈・実行: 1nterprete)される オブジェクト指向のコンピュータインストラクションセットが、分散型コンピュ ータシステムにおいて実行される新規なコンピュータプロセスを作りだすために 用いられる。 このようなコンピュータインストラクションセットを利用する特別なプロセスは 、分散型コンピュータシステム内で動作するエンジンによって実行される。この エンジンは、分散型コンピュータシステム内において、上述のような特別なプロ セスのインストラクションを、インターブリート、すなわちインストラクション 毎に逐次解読して実行する。 分散型コンピュータシステム内の各エンジンは、プロセスを定義するインストラ クションを一様にインターブリートする。換言すれば、あるプロセスを含み、第 1のエンジンによってインターブリートされるインストラクションは、第1のエ ンジンが動作しているコンピュータシステムの固有の形態に依存しない。したが って、例えば、第1のエンジンと第2のエンジンが別々のコンピュータシステム において動作しており、これらのコンピュータシステムのオペレーティングシス テム及びハードウェアが一般的に互換性がないとしても、これらのインストラク ションは、第2のエンジンに移動され、インターブリートされることができる。 そして、インターブリートされるインストラクションは、エンジンが動作してい るコンピュータシステムの通信、格納(ストレージ)、計算及びその他のサブシ ステムへのインターフェースを用いて実行(インプリメント: implea+ ent)される。 これらのインターフェースは、全体として本発明の実施例の一部を構成するもの である。そして、これらのインターフェースは、本発明の開示の一部であり、引 用することにより本明細書に組み込まれるアペンディックスCに記載されている 。 2以上のエンジンが、1つのネットワークを構成するように相互接続され、この ようなネットワーク内を、本発明のコンピュータプロセスが移動する。本発明の 実施例では、ネットワークは、通常は他のネットワークのクライアントと考えら れ、ネットワークの一部ではないとされるようなコンピュータシステムも含んで いる。例えば、本発明のネットワークの実施例では、ネットワークによって接続 されたワークステーションを含んでいる。なお、本明細書においてワークステー ションは、他のコンピュータシステムへ情報を転送する以外の目的のために使用 されるコンピュータシステムを表している。そして、本発明のエンジンは、コン ピュータプロセスが、各エンジン間を移動できるように相互接続されている。 ある1つのコンピュータプロセスを転送するときは、そのコンピュータシステム が中断され、そのコンピュータシステムの実行状態が保存される。そして、コン ピュータプロセスのインストラクション、保存された実行状態、及びコンピュー タプロセスによって所有されるオブジェクトは、パッケージされ、すなわちエン コードされて、データのストリングが生成される。このデータのストリングは、 ネッワークを形成するために用いられるあらゆる標準的な通信手段で転送するこ とができる。実施例において、このデータのストリングは、アペンディックスD に記載されたプロトコルに従って、エンジン間で転送される。なお、アペンディ ックスDは、本発明の開示の一部であり、引用することにより本明細書に組み込 まれる。 データストリングは、ネットワーク内の目的とするコンピュータシステムに転送 されると、デコードされて、目的とするコンピュータシステム内において、コン ピュータプロセスを生じさせる。このデコードされたコンピュータプロセスは、 前述したようにエンコードされたオブジェクトを含み、保存された実行状態を有 している。そして、目的とするコンピュータシステムは、このコンピュータプロ セスの実行を再開する。 コンピュータプロセスのインストラクションは、目的とするコンピュータシステ ムにおいて実行され、データオブジェクトの定義、生成及び操作や、目的とする コンピュータシステムで実行される他のコンピュータプロセスとの相互作用のよ うな複雑なオペレーションを遂行する。このように、コンピュータプロセスは、 ネットワーク全体を通じて一様にインターブリードされるとともに、コンピュー タシステム間を移動できるようにエンコードやデコードがされる。したがって、 本発明のコンピュータプロセスは、コンピュータ間の通信において新しいレベル の機能及び多様性を提供する。 実施例において、本発明のコンピュータインストラクションセットには、エージ ェントクラスとブレイスクラスの2つのクラスが組み込まれる。エージェントク ラスを用いて形成されたインストラクションは、エンジンによって、エージェン トプロセスを形成するようにインターブリートされる。なお、このエージェント プロセスは、単にエージェントと呼ばれることもある。エージェントは、エージ ェントが生成され、エンジンが実行を開始したとき、活性化されたオブジェクト となる。エージェントクラスは、(i)エージェントが、エージェント自身を検 査して修正すること、(11)エージェントが、後述するように、ネットワーク 内の第1のブレイスプロセスから同じネットワーク内の第2のブレイスプロセス へエージェント自身を転送すること、及び(i i i)エージェントが、その 第2のブレイスプロセスにある他のエージェントと相互作用すること、を可能に するインストラクションを提供する。第1のブレイスプロセス及び第2のブレイ スプロセスは、ネットワーク内の2つの別々のコンピュータシステム内において 実行されていてもよい。すなわち、エージェントは、第1のコンピュータシステ ムから第2のコンピュータシステムに移動することができる。 エージェントは、第1のブレイスプロセスから第2のブレイスプロセスまで、エ ージェントと共に運ばれる情報を持つことができる。その他に、後述するような コンピュータインストラクションセットは、拡張性、汎用性及び機能によって、 エージェントを含むインストラクションに従って、そのエージェント及びそれに よって運ばれる情報がどのように、そしてどの目的点に移動しているのかを定め る上での多くの融通性及び制御可能性を提供する。 工Jジェントの機能はパーミツト(permit)によって制御される。パーミ ツトは、特定の場合に特定のエージェントの特定の機能を制限する。エージェン トのパーミツトは、エージェントクラスについて定義されたいくつかのオペレー ションのうち、どのオペレーションがエージェントによって実行され得るかを指 定する。さらにパーミツトは、エージェントが使用できるリソース(資源)の量 と、エージェントが消滅するまで時間とを制限する。さらに、パーミツトは、他 のエージェントに対するエージェントの相対的な実行の優先度(プライオリティ :priori ty)も指定する。 ブレイスクラスを用いて形成されたインストラクションは、エンジンによってイ ンターブリードされ、本明細書において単にブレイスとも呼ばれるブレイスプロ セスを形成する。ブレイスもまた活性なオブジェクトである。そして、ブレイス クラスは、ブレイスがブレイス自身を検査して修正したり、ブレイスが、エージ ェントのための場所や、エージェントが相互作用する際のコンテキスト(con text)として役立ち得るようにするインストラクションを提供する。各エー ジェントは、それぞれ単一のブレイスを占有する。また、各ブレイスは、他の単 一のブレイスを占有することができる。 ブレイスは、ある程度、エージェントのプライバシー及びセキュリティを供与す る。例えば、他のエージェントとのコンタクトを避けるように形成されたエージ ェントは、一般に他のエージェントには知られてないブレイスや、他のエージェ ントの立ち入りを拒絶するブレイスを占有することができる。逆に、多数のエー ジェントに対して公にサービスを供与するように形成されたエージェントは、他 のエージェントに広く知られていて、他のエージェントの立ち入りを許容するブ レイスを占有することができる。 それぞれのエージェントは、離れている場合には、相互に作用することはできな い。すなわち、いかなる2つのエージェントも、それらが同一のブレイスを占有 していない限り、相互に作用することはできない。第1のブレイスを占有してい る第1のエージェントが、第2のブレイスを占有している第2のエージェントと 相互作用するために、オペレーション”go”に関連して後述するように、第1 のエージェントを第2のブレイスに転送させるインストラクションを、第1のブ レイスを占有している第1のエージェントは、生成する。第1及び第2のエージ ェントの両者が第2のブレイスを占有していると、第1のエージェントは第2の エージェントと相互作用することができる。 このように、本発明のプロセスは、リモートプログラミングの新規なインプリメ ンテーションであり、よく知られているリモートプロシージャコーリングのイン プリメンテーションではない。リモートプログラミングは、(i)ネットワーク の通信メディアを介する通信を必要とせずにプロセスが相互作用することを可能 とし、(i i)長い待ち時間、すなわちハイレイテンシイ (high−1a tency)となることが多いネットワークの通信メディアを介する通信を除い て、プロセス間の相互作用の性能を改善することによって、リモートプロシージ ャコーリングを改良する。 第1のコンピュータシステム内の第1のブレイスプロセスから、第1のコンピュ ータシステム又は第2のコンピュータシステム内の第2のブレイスプロセスへの エージェントプロセスの移動は、トリップと呼ばれる。エージェントは、エージ ェントクラス中において定義されたオペレーション“go”を用いることによフ てトリップを開始する。エージェントは、トリップを定義するチケットを作り出 し、それに従うことによって、ネットワーク内の移動又はコンピュータシステム 内の移動を制御する。ここで、チケットとは、オペレーション”go”に対する アーギュメント(引数)である。実施例では、チケットは、エージェントの移動 先のブレイスと、エージェントが移動する道筋、すなわち” way”と、トリ ップを完了しなければならない時間と、トリップの緊急性の表示、すなわち同時 にスケジュールされている他のエージェントによる他のトリップに対するトリッ プの相対的な優先度とを特定している。 チケットは、エージェントの移動先のブレイスのアドレス、ネーム及びクラス、 又は、アドレス、ネーム及びクラスの任意の組合せを指定することによって、目 的とするブレイスを特定することができる。トリップの目的となるブレイスは、 チケットによって許容された時間内に、エージェントの立ち入りを許可する特定 のアドレス、ネーム及び/又はクラスのブレイスである。 オペレーション゛go”において、エージェントの第1のブレイスから第2のブ レイスへの移動は次のように行われる。(i)エージェントは中断され、第1の エージェントの実行状態が保存される。(ii)エージェントは標準形式、すな わちオクテツトストリーム(エージェントの保存された実行状態の情報を含む) によって表される。(i i i) PIA準形穴形式1のブレイスから第2の ブレイスに転送される。ただし、このとき、第1のコンピュータから第2のコン ピュータに転送されることもある。(1■)第2のブレイスのエージェントが、 この転送された標準形式から、標準形式で表される実行状態も含めて形成される 。(v)11準形式に実行状態が保存されていたエージェントの処理が再開され る。 前述したように、本発明のコンピュータインストラクションセットは、オブジェ クト指向である。したがって、本発明によって形成された全てのオブジェクトは クラスに編成される。本発明の全てのクラスは、エージェントと共に移動するこ とのできるデータオブジェクトによって表される。したがって、あるブレイス内 において定義されていないクラスも、単に、エージェントがクラスを定義し、対 応するクラスオブジェクトをそのブレイスに転送することによって、そのブレイ スに移動してきたエージェントで使用することができる。 本発明の実施例における各オブジェクトは、プロセス、すなわちエージェント又 はブレイスに所有される。そして、エージェントが第1のブレイスから第2のブ レイスに移動する時に、そのエージェントによって所有される全てのオブジェク トはエージェントと共に第2のブレイスに移動する。ただし、後述するように、 本発明の実施例では、第2のブレイスに既に存在しているオブジェクトと同等の オブジェクトは、移動しない。エージェントが所有しているオブジェクトの他に 、これらのオブジェクトがメンバであるクラスを定義する全てのクラスオブジェ クトも、エージェントとともに第2のブレイスに移動する。ここで、クラスオブ ジェクトは、オブジェクトのクラスを表すオブジェクトであり、以下及びアペン ディックスAに説明されるコンピュータインストラクション七ノドに従って構成 されたオブジェクトである。 したがって、第2のブレイスに移動するエージェントによって所有されるオブジ ェクトが、第2のブレイスにおいて定義されていないクラスのメンバであった場 合、エージェントがそのオブジェクトをメンバとするクラスを定義するクラスオ ブジェクトを第2のブレイスに運ぶことにより、そのオブジェクトは、エージェ ントとともに移動することができる。従来の技術によれば、第1のコンピュータ から第2のコンピュータに移動するプロセスは、第2のコンピュータ上において 定義されたクラスに所属するデータオブジェクトしか処理することができなかっ た。従来技術において、通常は、クラスの定義は、移動するプロセスと共に転送 されることはなかった。本発明では、第1のブレイスにおいて新しいクラスを形 成することができ、これらの新しいクラスのメンバは、これらの新しいクラスが 定義されていない他のブレイスに自由に移動する。したがって、本発明は、従来 技術にはみられない高レベルの拡張性、可動性及び汎用性をエージェントに与え る。 本発明によれば、多くのオブジェクトのクラスは、多数のブレイスにおいて定義 されるので、これらのブレイスに移動させる必要はない。本発明の一実施例Iこ おいて、多くのブレイスにおいて見出されることができるクラスオブジェクトや その仕のオブジェクトは、相互変換可能とされている。 相互変換可能(インターチェンジアブル)なオブジェクトは、それぞれ、ダイジ ェストを有している。第1のブレイスから第2のブレイスに移動するエージェン トによって所有される相互変換可能なオブジェクトはエージェントと共に移動せ ず、相互変換可能なオブジェクトのダイジェストがエージェントと共に第2のブ レイスに移動する。エージェントが第2のブレイスに到達すると、第2のブレイ スを含むコンピュータシステム内にある相互変換可能なオブジェクトは、これら の相互変換可能なオブジェクトのどれかが、エージェントと共に転送されてきた ダイジェストと等しいダイジェストを有しているかを検査される。第2のブレイ スを含むコンピュータシステムにおいてそのような相互変換可能なオブジェクト が見出された場合、その相互変換可能なオブジェクトは、第1のブレイスに残さ れてきた相互変換可能なオブジェクトに置き換えられる。しかし、第2のブレイ スにそのような相互変換可能なオブジェクトが見出されなかった場合、第1のブ レイスに残されてきた相互変換可能なオブジェクトが、第2のブレイスに移動す る。これにより、同等なオブジェクトが目的地のブレイスに存在する場合に、ネ ットワークの通信メディアを介してのオブジェクトの移動が避けられる。特に、 クラスオブジェクトは相互変換可能なため、第2のブレイスに移動するエージェ ントは、第2のブレイスにおいて定義されていないクラスを定義するクラスオブ ジェクトのみの第2のブレイスへの移動を生じさせる。ネットワークを通るクラ スオブジェクトの不要な移動を避けることによって、エージェントによって所有 されたオブジェクトが所属するクラスの定義を含んでいないブレイスへの、オブ ジェクトの移動が実用的のものとされる。 本発明の一実施例において、クラスはサイテション(ci tation)によ って特定される。異なるベンダ(製造者)によって供給される多くのコンピュー タシステムを有するコンピュータネットワークにおいて、エージェントプロセス が、それに向かって又はそれから移動することができる色々なコンピュータシス テム上で、ここに開示された色々なバージョンのインストラクションセットをイ ンプリメントすることができる。サイテションは、相互に前方向(rorvar d)又は後方向(backvard)に互換性のあるクラス又はオブジェクトを 特定するために用いられるオブジェクトである。したがって、第1のクラスのオ ブジェクト又は第1のクラス自身の使用を必要とするインストラクションは、第 2のクラスが第1のクラスに対して後方向に互換性がある場合、インストラクシ ョンの特別の要求に依存して、第2のクラスのオブジェクト又は第2のクラス自 身を使用することができる。 第1のブレイスを占有しているエージェントは、そのエージェントの1以上のク ローン(clone)を作りだし、各クローンをそれぞれのブレイスに移動させ ることもできる。クローンは、現存のエージェントプロセスの複写の結果として 生成されるエージェントプロセスである。エージェントは、1以上のクローンの 生成を開始し、制御し、さらに、オペレーション゛’ 5end”の遂行によっ て各クローンのそれぞれのブレイスプロセスへの移動を開始し制御する。エージ ェントは、オペレーション°’ 5end”のアーギュメントとして供給される 1以上のチケットをつくり出すことによって、生成させるべきクローンの数を指 定し、対応するト1ルノブを定義する。各チケットは、エージェントの各クロー ンによって行われるトリップを定義する。エージェントによって供給されるチケ ットの数は、生成されるクローンの数を規定する。 エージェントのあるクローンが第2のブレイスに移動されたとき、そのクローン は、最初、そのクローンが生成された時点におけるエージェントの実行状態を備 えている。したが1て、そのクローンが第2のブレイヌに到達した時、そのクロ ーンは、オペレーション°°gO°′について前述したように、第2のブレイス へのエージェントの移動をシミュレートするように実行を継続する。 従来技術においては、第1のプロセス、すなわちヘッドプロセス(よ、ヘッドプ ロセスと同一のインターフェースを持つプロセス、すなわちヘッドプロセスと同 一のオペレーションを一般に遂行することができるリムプロセスを生成した。リ ムプロセスは、ヘッドプロセスによって指示さ、れな以外の働きはせず、単にヘ ッドプロセスの指示にしたがって、遠隔のコンピュータシステムに移動すること ができる。 し力化、本発明においては、クローンは自立的であり、そのクローンを生成した エージェントによって制御されることはない。例えば、クローンは後述するミー ティングを取り計らうためのエージェントによる全ての試みを無視するように設 計することができ、これにより、エージェントとクローンは相互に作用すること ができるようになる。エージェントは、後述するように他のエージェントと相互 作用を試みるのと同じように、エージェントのクローンと相互作用を試みなけれ ばならない。クローンは自立的であるから、第2のブレイスを占有するクローン は、エージェントによって指示されることなく、更にはエージェントの同意を得 ることもなく、オペレーション゛’ go”の遂行によって第8のブレイスに移 動することができる。 従来技術のリムプロセスは、能動的ではなく、ヘッドプロセスの指示によっての み作業をするので、必然的に、ヘッドプロセスと遠隔のリムプロセスはネットワ ークの通信メディアを介して相互に作用していた。したがって、このような従来 技術のシステムのパラダイムは、リモートプロシージャコーリングに非常に近い ものである。対照的に、本発明に従って形成されたエージェントのクローンは、 能動的であり、自立的であり、エージェントを形成する全てのインストラクショ ンを有している。したがって、ネツトワークの通信メディアを介した相互f乍用 番よ一切必要ない(実際にはいかなる相互作用も許容されない)。したがって、 本発明のパラダイムは、リモートプログラミングにより近いものである。したが って、本発明は、従来技術に比べて汎用性が大幅に向上している。 本発明の一実施例による効率の向上は、オペレーション”5end”の遂行にお いて、あるエージェントのクローンの生成をできるだけ遅らせることによって、 実現される。例えば、第1のクローンと第2のクローンが、それぞれ第1のブレ イスと第2のブレイスとに送られるものとする。そして、エージェントが第1の コンピュータシステムにおいて実行され、第1のブレイスが第2のコンピュータ システムにおいて実行され、第2のブレイスが第3のコンピュータシステムにお いて実行されているものと想定する。さらに、第1のブレイス及び第2のブレイ スに移動する際に、第1及び第2のクローンが、第4のコンピュータシステムに おいて動作しているエンジンを通って移動しなければならないものと想定する。 このような場合、単一のクローンが形成され、第4のコンピュータシステム内に おいて実行しているエンジンに転送される。したがって、元のエージェントをイ ンターブリードしているエンジン内では単一のクローンがっくり出されるにすぎ ないので、そのエンジン内においてスペースが節減される。そして、ただ1つの クローンがネットワークの通信メディアを介して第4のコンピュータシステムに 転送されるので、クローンを第4のコンピュータシステムに転送する時間が節減 される。第4のコンピュータシステム内において実行しているエンジンは、第1 及び第2のクローンを、前記単一のクローンがら形成し、これらの第1及び第2 のクローンをそれぞれ第1及び第2のブレイスに転送する。 エージェントは、エージェントの大きさの大部分を占めるようなオブジェクト( 例えば、デジタル化された音や、ファクシミリ伝送のようなラスター化されたグ ラフィックスイメージ)を所有することができる。そして、各クローンが所有し ているこのように非常に大きなオブジェクトのコピーのいくつかを、単一のエン ジンへ送ることを避けることにより、実質的な時間及び賞月が節減される。 あるブレイスを占有している第1のエージェントは、そのブレイスを占有してい る第2のエージェントとの間でミーティングを開始することができる。このミー ティングの間、第1のエージェントは、オブジェクトの形式のデータを第2のエ ージェントに対して転送したり受け取ったりすることができる。そして、第2の エージェントプロセスは、オブジェクトの形式のデータを第1のエージェントに 対して転送したり受け取ったりすることができる。 本発明は、第1のプロセスによって仮想的な電子掲示板上のメツセージを郵送す ることを教示した従来技術のシステムに対する大幅な改良を示している。このメ ツセージは、次に予定された受領プロセスによって読まれる。従来技術のシステ ムにおいて、第1のプロセスは、仮想的な電子掲示板上においてリファレンスを 郵送することによって、第1のプロセスへのリファレンスを第2のプロセスに与 える。しかし、リファレンスを同時に交換するメカニズムは存在しないため、第 2のプロセスは、第2のプロセスへのリファレンスを第1のプロセスに与える前 に第1のプロセスにアクセスする。したがって、従来技術のシステムには、悪意 のあるプロセスがそれ自身に対するアクセスを他のプロセスに与えることなしに 他のプロセスへのアクセスを取得してしまうのを、防止するメカニズムは存在し ない。 本発明は、第1のプロセスへのアクセスを第2のプロセスに同時に与えること無 しには第1のプロセスが第2のプロセスにアクセスすることができないように、 2つのプロセスの間のコンタクトを確立する改良された方法を提供している。 本発明の一実施例によれば、2つのエージェントは、両方のエージェントが同一 のブレイスを占有し、そのブレイスがミーティングブレイスである場合にのみ相 互作用することができる。ミーティングブレイスは、ブレイスクラスのサブクラ スであるミーティングブレイスクラスのメンバであるブレイスである。第1のエ ージェントは、ミーティングブレイスがミーティングを取り計らうように指示す るインストラクションを送出することによって、第1のエージェントと第2のエ ージェントとの間のミーティングを取り計らうように指示する。送出されたイン ストラクションは、オペレーション”meet”と呼ばれ、第1のエージェント がこのインストラクションを送出することは、“ミーティングの要求“と呼ばれ る。 第1のエージェントは、インストラクションに対するアーギュメントとして、ミ ーティングを定義するペティション(petition)を供給する。ベティシ ョンは、ベティションされるエージェントとして第2のエージェントを特定する ことによってミーティングを定義する。第2のエージェントは、第2のエージェ ントのネーム及び/又はクラスを特定することによって、特定される。ペティシ ョンは、さらに、ミーティングが取り計られたり放棄されたりするのに要する最 長時間を指定することによってミーティングを定義する。 ミーティングを取り計らう際に、ミーティングブレイスは、第2のエージェント に、第1のエージェントのネーム及びクラスを供給するとともに、第2のエージ ェントとのミーティングを要求するインストラクションを第1のエージェントが 送出したことを示す。第2のエージェントは、第1のエージェントのネーム及び クラスを検査し、第1のエージェントとのミーティングを受け入れるか拒絶する かをミーティングブレイスに回答する。 ミーティングが拒絶された場合、第1のエージェントは、第2のエージェントが 利用可能でないことを示す通知を受ける。ミーティングが受け入れられた場合、 ミーティングブレイスは、第1のエージェントへのリファレンスを第2のエージ ェントに与えるとともに、第2のエージェントへのリファレンスを第1のエージ ェントに与える。第1のエージェントは、第2のエージェントへのリファレンス によって、(i)オペレーションを遂行するように第2のエージェントに指示し たり、(i i)アーギュメントとしてオブジェクトを第2のエージェントに供 給したり、(i i i)第2のエージェントからリザルト(結果:resul t)としてオブジェクトを受け取ったりすることができる。第2のエージェント は、第1のエージェントへのリファレンスを有するので、第1のエージェントに ついて同様の能力を有する。 第1のエージェント又は第2のエージェントは、適切な命令を送出することによ って、両者のミーティングを終了させることができる。ミーティングブレイスは 、送出された命令に応答してオペレーション”par t”を実行することによ って、第1のエージェントに含まれる第2のエージェントへのリファレンスをボ イドし、さらに第2のエージェントに含まれる第1のエージェントへのリファレ ンスもボイドし、これにより2つのエージェントの間の相互作用を終了させる。 本発明では、第2のエージェントが同意することなしには、又は第2のエージェ ントに第1のエージェントへのアクセスを許容することなしには、第1のエージ ェントは第2のエージェントにアクセスすることができなくなっており、従来技 術に比べて著しい進歩が見られる。さらに、2つのエージェントは両者が同一の ミーティングブレイスを占有しない限り相互作用できないので、エージェントに 対して中間レベルのセキュリティを与えることができる。例えば、あるエージェ ントは、他のエージェントによってその位置が知られていないミーティングブレ イスを占有することによって、他のエージェントがらそれ自身を保護(プロテク ト: protect)することができる。逆に、容易に見ることができるよう に設計さこのようなメカニズムは従来技術には、見られないものである。 図面の簡単な説明 図1は、従来技術によるコンピュータシステムの構造を示す図である。 図2Aは、リモートプロシージャコーリングを使用した従来技術による方法のフ ローチャートである。 図2Bは、リモートプロシージャコーリングを具体化する従来技術によるネット ワークを示す図である。 図3Aは、リモートプログラミングを使用する従来技術による方法のフローチャ ートである。 図3Bは、リモートプログラミングを具体化する従来技術によるネットワークを 示す図である。 図4A及び4Bは、本発明に従って構成されたネットワークを通るエージェント プロセスの運動を示す図である。 図5A及び5Bは、本発明の原理に従って形成されたコンピユー・タシステムに おいて実行されるプロセスを示す図である。 図5Cは、本発明の一実施例におけるクラス階層の一部を示す図である。 図6A〜6Cは、本発明に従って形成されたネットワークを通るエージェントプ ロセスの運動を示す図である。 図7A〜7Eは、本発明に従って形成されたネットワークを通るエージェントプ ロセスのクローンの運動を示す図である。 図8A〜8Fは、オペレーション”meet”を使用することによる2つのエー ジェントプロセスの間の相互作用を示す図である。 図9A〜9Eは、本発明に従って形成されたブレイスプロセスの相互作用を示す 図である。 図1Oは、本発明に従って構成されたコンピュータネットワークの構成を示す図 である。 図11A及びIIBは、図10に示したネットワークの別の表現形態を現す図で ある。 図12は、本発明の一実施例によるエージェントプロセスのクラス関係を示す線 図である 図13A及び13Bは、オペレーション” go”の遂行による本発明のコンピ ュータネウートワーク内のエージェントプロセスの運動の直前及び直後における 、本発明に従って形成されたエージェントプロセスの状態を示す図である。 図14A〜14Gは、オペレーション” gO”の遂行による、本発明に従うネ ットワークを通るエージェントプロセスの運動を示すフローチャートである。 図15A〜15Eは、本発明に従って形成されたネットワークの構造を示すと共 に、ネットワークを通るあるエージェントプロセスの運動を示す図である。 図16は、パーミツトを含むエージェントプロセスの構造を示す図である。 図17は、図16のバーミツトの構造を示す図である。 図18Aは、テレアドレス、サイテション、テレネーム及びウェイを含む図35 のチケットの構造を示す図である。 図18Bは、図18Aのウェイの構造を示す図である。 図19は、図18Aのテレネームの構造を示す図である。 図20Aは、本発明の一実施例によって形成されたディクショナリを示す図であ る。 図20Bは、本発明の一実施例によって形成されたファインダの構造を示す図で ある。 図21は、本発明の一実施例によるコード化エージェントの構造を示す図である 。 図22A及び22Bは、オペレーション゛°entering”の直前及び直後 のエージェントプロセスの状態を示す図である。 図22Cは、本発明の一実施例によるオペレーション“entering”の動 作の遂行における各ステップを示すフローチャートである。 図23A及び23Bは、オペレーション”exiting”の遂行の直前及び直 後のプロセスの状態の一部を示す図である。 図24A〜24Cは、本発明に従って構成されるネットワークを通るエージェン トプロセスが移動するときの各ステップを示すフローチャートである。 図24Dは、図24A〜24Cに示したステップにおいて使用される、相互変換 (インターチェンジ)されたオブジェクトのレボジトリの構造を示す。 図25は、本発明の原理によって形成されたコンピュータネットワークを示す図 である。 図26A及び26Bは、オペレーション” 5end”の遂行の直前及び直後の エージェントプロセスの状態の一部を示す図である。 図26Cは、オペレーション”5end”の直後のエージェントプロセスのクロ ーンの状態を示す図である。 図27A及び27Bは、オペレーション”5end”の遂行において、エージェ ントプロセスのクローンの形成の前及び後のエンジンプロセスの状態を示す図で ある。 図28は、オペレーション” 5end”の遂行によって、エージェントプロセ スの各クローンが、コンピュータネットワークのそれぞれのコンピュータシステ ムに移行した、図25のコンピュータネットワークを示す図である。 図29A〜29Eは、デイファードクローニングと称される本発明の他の例に従 って構成される、あるエージェントプロセスのクローンが通過して移動するコン ピュータネットワークを示す図である。 図30Aは、ニル(0)及びチケットリストを含むフレームの構造を示す図であ る。 図30Bは、本発明に従って形成されたエージェントプロセスのコード化クロー ンの構造を示す図である。 図31A及び31Bは、オペレーション”tweet”の遂行の直前及び直後に おけるプロセスの状態を示す図である。 図32は、オペレーション”meet−の遂行における各ステップを示すフロー チャートである。 図33は、コンタクトのセントを含むエージェントプロセスの状態の一部を示す 図である。 図34A及び34Bは、オペレーション”a+eeting”の遂行の直前及び 直後におけるプロセスの状態を示す図である。 図35は、本発明の一実施例に従うオペレーション”meettng ”の遂行 における各ステップを示すフローチャートである。 図36は、本発明における相互作用する2つのエージェントプロセスの状態を示 す図である。 図37A及び37Bは、オペレーション゛’ part”の遂行の直前及び直後 におけるエージェントプロセスの状態の一部を示す図である。 図38は、オペレーション” part”の遂行の直後における図36に示した エージェントプロセスの状態を示す図である。 IK39A〜39Fは、本発明において、第1のエージェントプロセスが第2の エージェントプロセスと相互作用している間の、第1のエージェントプロセスの 状態の一部を示す図である。 図40は、本発明の一実施例において、図39A〜39Fに示す相互作用してい る間の、第2のエージェントプロセスの各ステップを示すフローチャートである 。 図41Aは、本発明に従って形成されたクラス定義の構造を示す図である。 図41Bは、本発明の一実施例に従って形成されたクラスオブジェクトの構造を 示す図である。 図4ICは、本発明の第2の実施例に従って形成されたクラスオブジェクトの構 造を示す図である。 図42は、本発明に従って形成されたインターフェースオブジェクトの構造を示 す図である。 図43は、セット、識別子及びブーリアンを含むフィーチャ定義の構造を示す図 である。 図44は、コンストレイント及びブーリアンを含む属性定義の構造を示す図であ る。 図45は、コンストレイント及びリスト(コンストレイントを含む)を含むオペ レーション定義の構造を示す図である。 図46は、コンストレイントの構造を示す図である。 図47は、2つのリストと6つのレキシコンを含むインプリメンテーションオブ ジェクトの構造を示す図である。 図48は、プロシージャ及びリスト(識別子を含む)を含むメソッドの構造を示 す図である。 図49は、図48のプロシージャの構造を示す図である。 図50は、サイテション(テレネーム、2つのインチジャ(整数)及び識別子を 含む)の構造を示す図である。 図51は、サイテションをそれぞれ含む2つの引用(サイト)されたオブジェク トの構造を示す図である。 図52Aは、オペレーション°“dO゛の遂行における各ステップを示すフロー チャートである。 1Z52Bは、インチジャ及びプロシージャを含む定義済みフレームの構造を示 す図である。 図53は、スタック(ユーザフレームを含む)を含むプロセスの実行状態を示す 図である。 図54は、図53のユーザフレームの状態を示す図である。 図55A及び55Bは、図55Cに示すように結合されるフローチャートであり 、ユーザ定義オペレーションの遂行における各ステップを示すフローチャートで ある。 図56Aは、スタック(フレームを含む)を含むプロセスの実行状態を示す図で ある。 (m56Bは、第2のフレーム及び図56Aのプロセスの実行状態を示す図であ る。 図560は、最初に述べたフレームと第2のフレームとを含むスタックを含む図 56A及び56Bのプロセスの実行状態を示す図である。 図57は、本発明に従って、クラス階層からフィーチャ定義とメソッドを選択す る際の各ステップを示すフローチャートである。 図58Aは、リストがメンバであるクラスの階層を示す図である。 図58Bは、クラスリストがメンバであるクラスの階層を示す図である。 図59は、オブジェクトのイニシアリゼイションをするときの各ステップを示す フローチャートである。 図60は、オペレーション”i「パの遂行における各ステップを示すフローチャ ートである。 図61は、オペレーション°’ either”の遂行における各ステップを示 すフローチャートである。 図62A及び62Bは、オペレーション”5elect”の遂行の直前及び直後 におけるプロセスの実行状態を示す図である。 図63は、オペレーション゛’ 5elect’”の遂行における各ステップを 示すフローチャートである。 図64は、オペレーション”5elect”の遂行の動的状態を示す、定義済み フレームの状態を示す図である。 図65は、オペレーション”while”の遂行における各ステップを示すフロ チャートである。 図66A及び66Bは、オペレーション“catch”の直前及び直後における プロセスの実行状態の一部を示す図である。 図67は、オペレーション”catch”の遂行における各ステップを示すフロ チャートである 図68は、オペレーション”Ioon’“の遂行における各ステップを示すフロ チャートである。 図69は、実行されたオブジェクトと2つのインチジャとを含むレビートフレー ムの構造を示す図である。 図70は、オペレーション”repeat”の遂行における各ステップを示すフ ロチャートである。 図71は、スタック(ユーザ定義フレーム、定義済みフレーム、レビートフレム 及び第2のユーザ定義フレームを上部から下部にかけて含む。)を含むプロセス の実行状態を示す図である。 用語の解説 アブストラクトクラス(Abstract C1ass) :アブストラクトク ラス番よ、インスタンス(例)を持たない。アブストラクトクラスは、サブクラ スを持つことができ、アブストラクトクラスは、アブストラクトクラスのサブク ラスによって引き継がれたフィーチャ(feature) 、メソッド(set bed)及びプロノ(ティ(property)を定義することができる。 エージェント(Agent) : エージェントは、あるプレイスに存在し、移 動できるプロセス、すなわち第1のブレイスから第2のブレイスIこ移動するこ とのできるプロセスである。 アーギュメント(Arguments) : アーギュメントは、入力データと してオペレーションの遂行によって使用(consumed)されるオブジェク トである。換言すれば、アーギュメントは、リクエスタ(requester) の要求により、レスポンダ(「esponder)によってオペレーションが遂 行される直前に、リクエスタからレスポンダに転送されるオブジェクトである。 アトリビュート(Attribute) :アトリビュート(属性)は、あるオ ブジェクトの内部状態に関する情報を検索し又はセットするフィーチャである。 通常、この情報は、オブジェクト自身に属するが、時には、アトリビュートを呼 び出す際にオブジェクトを特定化するためのリファレンスに属する。アトリビュ ートは、一対のオペレーションであり、一方のオペレーションはレスポンダの内 部状態に関する情報をセントし、他方のオペレーションはレスポンダの内部状態 に関する情報を検索する。 オーソリティ (Authority) ニオ−ソリティは、ネットワーク内の 種々のリソースを所有して管理するエンティティ (entity)である。オ ーソリティの一例はネットワークのユーザである。オーソリティの作成は管理さ れており、プログラム的に作り出されることはない。すなわちオーソリティは、 プロセスの要求によって作り出されることはない。 クラス(C1ass) :クラスは、(i)クラスのメンバの内部状態を規定す る0以上のプロパティ(property)と、(ii)クラスのメンノ(の内 部挙動を規定する0以上のメソッド(method)と、(iii)クラスのメ ンバの外部的な挙動を規定する0以上のフィーチャ(feature)とを定義 する。 コンクリートクラス(Concrete C1ass) :コンクリートクラス は、インスタンス(例)を有するクラスである。 エンジンブレイス(Engine Place) :各エンジンは、エンジン自 身を表わす1つのエンジンブレイスを必ず有する。 エンジン(Engine) :エンジンは、オブジェクトや基本的なプロセスを 管理するとともに、インストラクションを実行するコンピュータシステム内のマ シンである。エンジンは、通常、オペレーティングシステムや種々のユーザアプ リケーションと共にコンピュータシステムに加えられて、コンピュータシステム 内において実行されるコンピュータプロセスである。1以上のエンジンは、ネッ トワークの各コンピュータシステム内において実行される。そして、各エンジン は少なくとも1つのブレイスを処理する。 エクセプション(Exception) :エクセプション(例外)は、フィー チャの遂行が完全に成功しなかったときに、そのフィーチャの遂行によって”送 出(throw)“されるオブジェクトである。なお、エクセプションは、この ように送出されるオブジェクトの状態を指す用語として使用されることもある。 エクセブションは、あるオペレーションの失敗によって生じるものであり、成功 したオペレーションによって生じるリザルトとは異なっている。そのため、レス ポンダは、エクセプションを°°生成(produce)“するのではなく、エ クセプションを”送出゛°すると言われる。リザルトの生成と、エクセブション の送出との区別は、この明細書の一部であるアベンディンクスAにおいて、より 一層詳細に説明されている。 フィーチャ(Feature) :フィーチャは、オブジェクトが遂行を指示さ れるタスクである。タスクは、コンピュータインストラクションセットを含むメ ソッドによって遂行される。フィーチャの遂行は、そのフィーチャのメソッドに ついてのコンピュータインストラクションの実行によって行われる。あるフィー チャは、あるオブジェクトの特定のクラスと関係があり、あるフィーチャの遂行 は、そのフィーチャを遂行するオブジェクトの特定の内部状態によって異なった ものとなる。フィーチャは、概念的には2つのカテゴリ、すなわち(i)アトリ ビュート及び(i i)オペレーションに分類される。 フレーム(Fraa+e) :フレームは、フィーチャの遂行の間、そのフィー チャを遂行するメソッドの動的状態を記録するオブジェクトである。フレームは 、エンジンが実行しているメソッドに関する情報(現に実行されているインスト ラクションやメソッドに基づくフィーチャを遂行するオブジェクトを特定化する 情報を含む)を保持するために、エンジンによって使用される。 識別子(Identifier) :識別子(アイデンティファイ)は、オブジ ェクトである。そして、このオブジェクトは、他のオブジェクトを参照すること ができるオブジェクトである。識別子の”テキスト(text)”は、ある特定 の範囲内において、他の識別子から識別子を区別するストリング(文字列)であ る。識別子の範囲については、アペンディックスAに詳細に説明されている。 インプリメンテーション(Implementation) :インプリメンテ ーションは、ある特定のフィーチャの遂行の際に実行されるコンピュータステッ プのセットである。インプリメンテーションオブジェクト(implement ation object)は、あるクラスのいろいろのフィーチャのいろいろ のインプリメンテーションを定義するオブジェクトである。 インスタンス(Instance) :オブジェクトが、あるクラスのメンバで あり、そのクラスのいかなるサブクラスのメンバでもない場合に、そのオブジェ クトは、そのクラスのインスタンスである。 インターフェイス(Interface) :インターフエイスは、特定のアト リビュート又は使用された特定のアーギュメントと、ある特定のオペレーション の遂行によって生じる結果であるリザルトとを定義する。インターフェイスオブ ジェクト(inter4ace object)は、あるクラスの種々のフィー チャの種々のインターフェイスを定義するオブジェクトである。 メンバ(Meober) :オブジェクトは、そのオブジェクトがインスタンス となっているクラスのメンバである。また、オブジェクトは、そのクラスのいか なるスーパークラスのメンバでもある。 メソッド(Method) :メソノドは、コンピュータインストラクションセ ットであり、これらのインストラクションの実行は、ある特定のフィーチャの遂 行を構成する。メソッドオブジェクト(method object)は、メソ ッドを規定するオブジェクトである。メソッドは、そのメソッドの実行の間、す なわちそのメソッドのインストラクションの実行の間、動的状態となる。このよ うなメソッドの動的状ネットワーク(Network) :全てのエンジンブレ イス、これらのエンジンブレイスが実行されるコンピュータシステム及びこれら のコンピュータシステムを接続する通信装置は、全体として集合的に1つのネッ トワークを形成する。 オブジェクト(Object) :オブジェクトは、コンピュータシステムにお ける演算処理環境内のエレメントである。オブジェクトは、0以上のプロパティ によりて規定される内部状態と、0以上のメソッドによって規定される内部挙動 と、0以上のフィーチャによって規定される外部挙動とを有する。 オペレーション(Operation) :オペレーションは、インターフェイ ス及びインプリメンテーションを規定するためのフィーチャである。 ブレイス(Place) :プレイヌは、プロセスであり、0以上のプロセスの ための場所である。第1のブレイスは第2のブレイス内に存在することができる 。このとき、第1のブレイスは、第2のブレイスのサブブレイスであり、第2の ブレイスは、第1のブレイスのスーパーブレイスである。 プリミティブ(Primitive) :プリミティブは、プロシージャ又はメ ソッドの形成に使用されるオブジェクト、すなわちインストラクションとして用 いられるオブジェクトである。 プロセス(Process) :プロセスは、自律的な演算処理を構成するオブ ジェクトである。プロセスは、別のオブジェクトからの要求なしにメソッドを遂 行するので、自律的である。プロセスは、そのプロセスの起動と共に中央メソッ ドの遂行を開始し、中央メソッドの完了と共に破棄される。各オブジェクトは、 必ず1つのプロセスに属し、各プロセスはそれ自身に属する。この明細書で使用 する”コンピュータプロモス”と言う用語は、より一般的な周知の定義である、 コンピュータシステムによって実行される一連のインストラクションを意味する 。 プロパティ (Property) ニブロバティは、第2のオブジェクトの内 部状態の一部を表わすオブジェクトである。 リファレンス(Reference) :リファレンス(参照)は、特別のオブ ジェクトを識別するためのデータ構造である。あるフィーチャを遂行するように 指示されたオブジェクトは、フィーチャのりクエスタによって供給されるオブジ ェクトへのリファレンスによって識別される。リファレンスは、プロテクト(保 護)されていることもあり、プロテクトされていないこともある。オブジェクト は、そのオブジェクトを識別するプロテクトされたリファレンスを用いて、変更 や修正がされることはない。 リージョン(Region) :リージョン(領域)は、単一のオーソリティに よって制御されるネットワーク内の1以上のエンジンブレイスである。リージョ ンは、一般に、そのリージョンのエンジンブレイスが稼働しているコンピュータ システムの正確な連係と管理によって識別される。リージョン内のエージェント の転送は、一般に、リージョン間のエージェントの転送に比べて速くて低コスト である。 リージョンは、例えば、広域ネットワークに接続されたローカルエリアネットワ ーク内に存在することもできる。 リクエスタ(Requester) :リクエスタは、他のオブジェクト、すな わちレスポンダに対して、フィーチャを遂行するように指示するオブジェクトで ある。リクエスタは、対象となるフィーチャのレスポンダに入力データとして、 0以上のオブジェク−トを供給し、そのフィーチャ9レスポンダから出方データ として、0又は1つのオブジェクトを受け取る。なお、フィーチャを遂行するよ うにオブジェクトに指示することを、そのフィーチャを遂行するようにオブジェ クトに”要求する”という。 レスポンダ(Responder) :レスポンダは、他のオブジェクト、すな わちリクエスタの指示に従って、フィーチャを実行するオブジェクトである。レ スポンダは、入力データとして0又は1つのオブジェクトを受け取り、そのフィ ーチャの遂行によって0又は1つのオブジェクトを出力データとして供給する。 なお、レスポンダはご応答オブジェクト(レスポンディングオブジェクト: r esponding object) ”とも呼ばれる。 リザルト(Result) :リザルト(結果)は、オペレーションの遂行によ って、出力データとして”生成”されるオブジェクトである。換言すれば、リザ ルトは、リクエスタの要求によってレスポンダがオペレーションを遂行した直後 に、レスポンダからりクエスタに転送されるオブジェクトである。 サブクラス(Subclass) :サブクラスは、1以上の他のクラスがら、 メソッド、プロパティ及び/又はフィーチャの定義を受け継ぐ。サブクラスは、 他のクラスから受け継がなかった1以上のプロパティ、メソッド及び/又はフィ ーチャを定義することができ、そのフィーチャの新しいインプリメーテンション の定義によって、他のクラスから受け継がながったフィーチャを新たに遂行する ことができる。 スーパークラス(Superclass) :サブクラスがプロパティ、メソッ ド及び/又はフィーチャを受け継いだクラスは、そのサブクラスのスーパークラ スである。 バーチャルブレイス(Virtual place) :エンジンプレイスでな いブレイスは、全てバーチャルプレイスである。 叉晟盟り狂態な塁里 本発明の原理によれば、新規のコンピュータプロセスのセットは、複数の相互接 続されたコンピュータシステムの中から選択されたコンピュータシステムにある 特別なコンピュータプロセスをルーティングするとともに、その選択されたコン ピュータシステムにおいて、特別なコンピュータプロセスを実行するために用い られる。具体的には、本発明のコンピュータプロセスは、オブジェクト指向型の コンピュータプロセスとして定義される。本発明のコンピュータプロセスは、( i)プロセス中に、様々なオペレーションを定義するインストラクションセット と、(i i)コンピュータプロセスの遂行の際に、インストラクションセット をインターブリードし、中央処理装置(CPU)の動作を制御するエンジンとを 含む。 後述するように、特別なコンピュータプロセスは、それ自身の移動を指示する。 すなわち、特別なコンピュータプロセスは、ネットワーク内の移動先のコンピュ ータシステムを識別し、そこに移動されることを指示するインストラクションを 実行することにより、コンピュータネットワークを通るそれ自身の転送を指示す る。特別なコンピュータプロセスは、移動先のコンピュータシステムにおいて実 行されている間に、ネットワークの他の箇所からでは使用できないような情報に アクセスすることができる。特別なコンピュータプロセスは、他のコンピュータ システムに移動すべきかを判断するために、このような情報にアクセスして使用 することができる。後述するように、本発明は、従来技術には見られなかったよ うなレベルの移動性、拡張性及び普遍性を有するコンピュータプロセスを提供す る。 従来技術に典型的に見られるリモートプログラミングパラダイム(remote  pr。 graaning paradigms)においては、コンピュータプロセスは 、それ自身の移動を指示することはなく、単に送信先のコンピュータシステムに おいて実行されるように、送信元のコンピュータシステムから送られる。コンピ ュータプロセスが、ネットワークを介してのそれ自身の移動を指示しない場合に は、コンピュータプロセスは、送信先のコンピュータシステムにおいて得られる 情報に基づいて、移動するべき他のコンピュータシステムを選択することができ ない。すなわち、このようなコンピュータプロセスは、新たなコンピュータシス テムに送られる前に、最初に送られたコンピュータシステムで得た情報を持って 、送信元のコンピュータシステムに戻らなければならない。これに対して、本発 明のコンピュータプロセスは、ネットワークを介してそれ自身の移動を指示する ことができる。すなわち、本発明のコンピュータプロセスによれば、従来のリモ ートプログラミングパラダイムを実質的に拡張することとなる。 コンピュータネットワークを介してそれ自身の移動を指示するプロセスを提供す る従来のリモートプログラミングシステムは、普遍性や拡張性に欠けている。 すなわち、従来のシステムは、(i)同種のコンピュータネットワークに限定さ れるか、又は(i i)異種のネットワークにおいて移動するプロセスが、プロ セスを実行するどんなコンピュータシステムにも、すなわち移動中のプロセスが 向かっているコンピュータシステムにも適応するインストラクションを有するこ とを要求しており、普遍性に欠けている。これに対して、本発明では、プロセス は、異種のコンピュータネットワークを介して移動し、プロセスのインストラク ションの実行は、そのプロセスが実行されている特定のコンピュータシステム、 すなわちプロセスの移動先のコンピュータシステムには依存しない。後述するよ うに、以下に開示されるコンピュータインストラクションは、異種のネットワー クのどのコンピュータシステムによっても一様に実行される。すなわち、本発明 に従って形成されるプロセスは、異種のコンピュータネットワークのどのコンピ ュータシステムにも移動でき、そのコンピュータシステムの性質に関する特別な 情報なしに、そのコンピュータシステム内で実行できる。 従来の典型的なリモートプログラミングシステムは、プロセスがデータオブジェ クトのクラスを作り出すことができないう点において、さらには、プロセスがそ のクラスのデータオブジェクトを次に移動するコンピュータシステムでは利用で きないという点において、拡張性に欠けている。今日の多くのコンピュータシス テムはオブジェクト指向型である。既に用語の解説で説明したように、オブジェ トは、(i)0以上のプロパティによって定義される内部状態と、(i i)  0以上のメソッドによって定義される内部挙動と、(i i i) 0以上のフ ィーチャによって定義される外部挙動とを有する。同様なプロパティ、メソッド 及びフィーチャを有するオブジェクトのグループのプロパティ、メソッド及びフ ィーチャは、1つのクラスによって規定される。従来技術のシステムでは、クラ スを定義するプロセスは、そのプロセスが移動したコンピュータシステム内で実 行されている間には、そのクラスのオブジェクトを使用することはできない。ク ラス定義が標準化されていない、一般にクラス定義が非常に大きく複雑である、 及び一般に単一のプロセスが多くのクラスのオブジェクトを使用するというよう な理由により、従来技術のシステムでは、移動するプロセスと共にクラス定義を 移動させることは、はぼ不可能であり、現実的ではない。 従来の典型的なシステムは、プロセスの移動を考慮せずに設計された従来のプロ グラミング言語に基づいているため、クラス定義は標準化されていない。したが って、このように、従来のプログラミング言語を用いて形成されたプロセス中の クラス定義は、通常は、プロセスが生成されたコンピュータシステム固有の情報 に依存している。このような固有の情報とは、例えば、クラス定義の一部の特別 なメモリアドレスである。従来のシステムでは、このようにコンピュータシステ ム固有の情報に依存するため、クラス定義をリモートコンピュータシステムに転 送することは非常に困難である。 本発明において、クラスは、開示されたコンピュータインストラクションセット の一部であるクラスオブジェクトによって表される。本発明に従って形成された プロセスは、あるコンピュータシステムから他のコンピュータシステムに移動す るとき、クラスオブジェクトを含んでいる。したがって、プロセスは、第1のコ ンピュータシステムにおいて、オブジェクトクラスを定義したり、第1のコンピ ュータシステムから第2のコンピュータシステムへ移動したり、第2のコンピュ ータシステムにおいて、そのクラスのオブジェクトを利用したりすることができ る。なお、移動するプロセスによって利用されるクラスを全て転送する必要はな く、移動先のコンピュータシステムにおいて定義されていないクラスのみを転送 すればよく、これにより無駄な転送時間やコストが削減される。 また、本発明は、複数のコンピュータシステムに、プロセスの複数のクローンを 同時に転送する際に、従来技術には見られなかったような、優れた効率性が得ら れる。後述するように、プロセスの1つのクローンの移動経路が、他のクローン の移動経路と一致している間は、プロセスの1つ以上のクローンの生成を遅らせ ることにより、実質的な効率が向上する。クローン及び発明のこの点については 、後で詳細に説明する。 リモートブグラミングシステムにおいて、2つのプロセスは、第1のプロセスが 第2のプロセスに第1のプロセスへのアクセスを与えることによって、情報を共 有する。第1のプロセスは、第2のプロセスへのアクセスを得ることなく、第2 のプロセスに第1のプロセスへのアクセスを与える。この状況において、第2の プロセスは、第2のプロセスのセキュリティ (安全性)を犠牲にすることなく 、第1のプロセスの実行に自由に干渉することができる。本発明によれば、第1 のプロセスは、第2のプロセスへのアクセスを得ると同時に、第3のプロセスの 協力と連係により、第1のプロセスへのアクセスを第2のプロセスに与える。さ らに、第2のプロセスの構成に従って第2のプロセスが第1のプロセスとのこの ようなアクセス権の交換を受け入れたり拒絶したりするような、新たなセキュリ ティが提供される。第3のプロセスは、(i)第2のプロセスにこのようなアク セス権の交換を同意させることや、(ii)各プロセスに他のプロセスへのアク セス権を帰させることを保証する。そして、どのようなプロセスであっても、こ のようなアクセス権の付与の機会がプロセスに与えられない限り、プロセスは他 のプロセスの実行に、干渉することはできない。 本発明の新規なコンピュータプロセスは、エージェントプロセスである。二一ジ ントプロセスは、アペンディクスA〈本発明の一部であり、引用として本明細書 の一部を構成している。)に開示さているコンピュータインストラクションによ って形成されたコンピュータプロセスである。エージェントプロセスは、本発明 の他の新規のコンピュータプロセスであるエンジンによって、それぞれインター ブリートされる。そして、このエンジンによって、以下及びアベンデイクスAに 開示されるコンピュータインストラクションが実行される。本明細書において、 ゛インターブリートするパと言う言葉の意味は、この分野で普通に理解されてい る通りに用いられてる。すなわち、”インターブリートする”と、一連のコンピ ュータインストラクションの中の1つのコンピュータインストラフシロンがエン が解読される。 ここに開示されるように、インストラクションセットのインストラクションをイ ンターブリートすることは、コンパイル(comp i I i ng)に比べ て、より大きな普遍性を提供する。第1のエージェントは、第1のコンピュタ− システムから第2のコンピュタ−システムに移動し、そこで第1のエージェント にプロシージャを与える第2のエージェントとミート(鳳eet) 、すなわち 通信を行うことができる。 そして、第1のエージェントは、第1のエージェントが本来実行するように設計 されていなかったプロシージャを実行することができる。 さらに、本発明の他の新規なコンピュータプロセスは、ブレイスプロセスである 。ブレイスプロセスは、コンピュータネットワークを介して分散している。各エ ージェントプロセスは、それぞれのブレイスプロセスを”占有”している。すな わち、ブレイスプロセスは、エージェントプロセスの内部状態の一部であり、エ ージェントプロセスの実行におけるコンテキストを提供する。各エージェントプ ロセスは、第1のブレイスプロセスから第2のブレイスプロセスへのエージェン トプロセスの移動を開始し、制御することができる。なお、本明細書において、 ”エージェントプロセス”及び”ブレイスプロセス°°は、それぞれ”エージェ ント°及び”ブレイス”と略して記述する。 図4Aは、通信リンク102ABによって接続されたコンピュータシステム12 0A、120Bを有するコンピュータネットワーク100を示している。コンピ ュータシステム120Aは、ブレイス220A及びエージェント150Aを実行 する。エージェント150Aは、図4Aに示すように、ブレイス220Aを占有 している。コンピュータシステム120Bは、ブレイス220Bを実行する。 以下において、エージェント又はブレイスが特定のブレイスを占有しているとい う表現は、そのエージェント又はブレイスがその特定のブレイスを含むコンピュ タ−システム内において実行されているということも含むように解釈するものと する。 エージェント150Aは、コンピュータシステム120Aにインストラクション を送出する。エージェント150Aは、このインストラクションに応答して、イ ンストラクションによって指定されているブレイス、例えばブレイス220Bに 転送される。このインストラクションは、オペレーション”go”と呼ばれ、エ ージェント150Aによるインストラクションの送出は、エージェント150A によるオペレーション”go”の遂行と呼ばれる。 エージェント150Aによってオペレーション”go“が遂行されると、(i) エージェント150Aの実行は中断され、(ii)エージェント150Aは、そ の実行状態を含む標準形式にエンコードされ、(i i i)エージェント15 0Aの標準形式はコンピュータシステム120Bに転送され、(iv)エージェ ント150Aは、保存された実行状態を含む標準形式からデコードされ、(V) コンピュータシステム120B内において、エージェント150Aの実行が再開 される。エージェント150Aによってオペレーション”go”が遂行された後 は、エージェント150Aは、もはやブレイス22OAには存在せず、コンピュ ータシステム120Aでは実行されていない。その代りに、エージェント150 Aは、ブレイス220Bに存在し、コンピュータシステム120B(図4B)内 において実行されている。このように、エージェントは、エージェントの実行の 最中に他のコンピュータシステムに移動できるので、アクセスすべきデータに向 がって自由に移動することができる。 標準形式とは、あるコンピュータシステムがら他のコンピュータシステムへのエ ージェントの転送のために、エージェントがエンコードされた形式である。標準 形式は、エンコードされたエージェントの実行状態を保存しているので、転送先 のコンピュータシステムにおいて、この標準形式をデコードして、オペレーショ ン”gO”の次にこのデコードされたエージェントのインストラクションを実行 することにより、エージェントの実行を再開することができる。本発明のネット ワーク内の各コンピュータシステムは、エージェントに含まれるコンピュータイ ンストラクションの実行に適したどのような形式においても、エージェントを保 有するこ−とができる。しかし、二人の人が会話するためには、共通の言語の文 法や語索を互いに了解していなければならないのと同じように、あるコンピュー タシステムから他のコンピュータシステムにエージェントを転送するときには、 ネットワークのこれらのコンピュータシステムは、エージェントの標準形式を使 用しなければならない。標準形式については、本明細書の一部であるアペンディ ックスB、C,Dに詳細に説明されている。 ・エージェントは、ネットワーク を介してそれ自身の移動、すなわち転送を指示することができる。ここで、第1 のコンピュータシステムから第2のコンピュータシステムへのトリップに必要な パラメータを指定するための手段が提供されなければならない。 このトリップの第1のパラメータは、エージェントが転送されるブレイス、すな わちトリップの目的地である。実施例において、トリップの目的地は、ネーム、 クラス又はアドレスによって指定することができる。アドレスは、例えば、ロー カルエリアネットワーク内の特定の位置を指示する。 2以上のパスウェイ(通路)が第1のコンピュータシステムと第2のコンピュー タシステムの間に存在していることがしばしばある。例えば、あるパスウェイは 迅速だが高価で、別のパスウェイは時間はかかるが安価であるようなことがある 。このようなとき、エージェントの転送に常に好ましいパスウェイというものは 存在しない。したがって、トリップの第2のパラメータは、エージェントが移動 するときの”way”と”means”である。 また、近くのコンピュータシステムヘトリップするように作られたエージエンの エラーが、エージェントの作成者にとって非常に高くつくような、遠隔のコンピ ュータシステムへのエージェントの移動の原因となることがある。そのため、ト リップの重要なパラメータの1つは、トリップがアボート(異常終了)されるま でに、エージェントの転送に使用できる時間又はリソースの量である。 また、ネットワークを介したエージェントの転送を制御する際に考慮しなけらば ならない重要な事項として、上述の他に、セキュリティがある。例えば、ある特 定のコンピュータシステムに転送されている全てのエージェントが、そのコンピ ュータシステムに入ることを許可されると、そのコンピュータシステムは、実質 的な処理を必要とする多くのプロセスによって過負荷となって、スルーブツトが 低下してしまうことがある。 したがって、トリップの別のパラメータは、目的地のブレイスにおいて必要とさ れるエージェントのリソースの量である。そして、エージェントが要求するリソ ースの量が、ブレイスが提供することができるリソースの量、又はブレイスが提 供しようとしているリソースの量を越える場合には、そのエージェントは、その ブレイスへの進入を拒絶されることがある。 実施例において、チケット1306(図4A)は、エージェント150Aの転送 を制御し、目的地のブレイスとして、ブレイス220Bを特定する。図4Aに示 すように、エージェント150Aは、チケット1306を有している。チケット 1306は、ブレイス220Aからブレイス220Bへのエージェント150A のトリップを規定する。実施例において、チケット1306は、(i)そのトリ ップの目的地のブレイスと、(ti)目的地のブレイスに転送されるときにエー ジェント150Aが取るべき”way”又はパスウェイと”−eans”と、( iii)トリップがアボードするまでの時間、すなわちトリップが完了しなけら ばならない時間と、(iv)目的地のブレイスにおいて、エージェント150A が使用をするリソースの量とを規定する。ブレイス220Bにおいてエージェン ト150Aが使用することができるリソースの量を規定することによって、ブレ イス220Bは、ブレイス220Bが提供するリソースよりも多くのリソースを 、エージェント150Aが必要としているかを判断できる。そして、エージェン ト150Aがブレイス220Bが提供するリソースよりも多くのリソースを必要 としている場合、ブレイス220Bは、エージェント150Aの進入を拒絶する ことができる。そして、後述するチケットを使用することによって、エージェン トは、第1のブレイスと第2のブレイスとの間の継続中のトリップを完全に規定 することができる。 前述したように、従来技術によるプロセスは、もともと存在しているコンピュー タシステムにおいて規定されたクラスのオブジェクトしか操作することができな い。換言すれば、従来技術によるプロセスが、オブジェクトクラスを規定した後 に、他の目的地のコンピュータシステムに移動した場合には、そのプロセスは、 目的地のコンピュータシステムが、同一のクラスの定義を含むか、又はそのプロ セスが目的地のコンピュータシステム内の同一クラスを規定している場合を除い て、そのクラスのオブジェクトを操作することができない。後述するように、あ るブレイスから他のブレイスに移動する本発明のエージェントは、目的地のブレ イスにおいては規定されていないクラスの定義を転送する。すなわち、本発明に よるエージェントは、第1のコンピュータシステム内のおいてクラスを定義でき るとともに、第2のコンピュータシステムに移動でき、第2のコンピュータシス テムで実行されている間、そのクラスのオブジェクトを操作することができる。 したがって、本発明のエージェントには、従来技術のプロセスに比べて著しい進 歩が見られる。 その他に、コンピュータプロセスが移動するコンピュータネットワークにおいて 、複雑でマルチレベルのセキュリティシステムを実現する方法が、従来技術では 一般に欠如している。従来技術においては示唆されておらず、本発明によって提 供されるセキュリティ形式は、ブレイスによって提供される。後述するように、 ブレイスは、エージェントに対して進入を許可したり拒絶したりすることによっ て、様々なレベルのセキュリティを提供する。そして、多くのブレイスによって 、マルチレベルの階層的なセキュリティを提供するように構成することができる 。 本発明の色々な局面や実施例についての理解と視覚化を助けるために、色々な状 態を表現したり、相互の関係を表したりする際に、一定の表現方法に基づいて図 面が描かれている。本説明中に用いられている表現方法は、図5A、図5B及び 図5Cに示すようなものである。コンピュータシステム120A(図5A)は、 ブレイス220A、ブレイス220X、ブレイス220Y、エージェント150 A、エージェント150x及びエージェント150Yを実行する。また、コンピ ュータシステム120Aは、オブジェクト140A、140B、140Xを、例 えばコンピュータシステムのマスメモリやメインメモリ(どちらも図示しない) 等のメモリ内に備えている。エージェント150A、150Xはブレイス220 Aを占有し、ブレイス220Yはブレイス220Xを占有し、エージェント15 0Yはブレイス220Yを占有している。エージェント150Aはオブジェクト 140A、140Bを所有し、x−ジzンl−150Xはオブジェクト140X を所有している。占有と所有の相互の関係については、後で詳細に説明するが、 簡単に説明すると、ブレイスの占有によって、様々なレベルやタイプのセキュリ ティが規定され、所有によって、オペレーション゛’ go”を実行するエージ ェントと共にどのオブジェクトが移動するかが決定される。 図5Bは、図5Aに示された相互関係、すなわち上述した相互関係についての、 他の表現である。図5Aは、それぞれの関係、例えば、エージェント150Xが ブレイス220Aを占有しオブジェクト140Xを収容していること等を正確に 表しているが、より複雑な相互関係を表すには適してはいない。そこで、図5B のようなツリー構造は、本発明の種々な実施例の様々なコンピュータインストラ クションを表す際に、より複雑な相互関係を表すために用いられている。 図5Bのツリー構造は、図50に部分的に示されたようなりラス階層ツリーと混 同されるべきではない。図50は、図5A、図5Bに示した様々なアイテムのク ラス関係を表している。オブジェクト140A、140B、140Xは、クラス オブジェクト520によって表されるクラス”Obj ec t”のメンバであ る。クラス内の帰属関係は、前述の用語の解説に詳細に説明されており、この帰 属関係は、クラスと、そのクラスのメンバであるオブジェクトとの間の点線によ って表されている。クラスオブジェクト522は、クラス” 0bject”の サブクラスであるクラス゛’ Process”を表している。ブレイス220 X、220Y、220Aは、クラス゛’ place”のメンバであり、このク ラス”place”は、クラス”Process”のサブクラスであり、クラス オブジェクト524によって表されている。エージェント150A、150X、 150Yは、クラス−Agent”のメンバであり、このクラス”Ager+t ”は、クラス”Process“のサブクラスであり、クラスオブジェクト52 6によって表されている。したがって、ブレイス220X、220Y、20A及 びエージェント150A、150X、150Yは、全て、クラス” Proce ss”のメンバであり、コンピュータプロセスである。一方、オブジェクト14 0A、140B、140Xは、クラス゛’ Process”のメンバではなく 、コンピュータプロセスではない。 あるエージェントがあるブレイスから別のブレイスに転送されるとき、エージェ ントによって所有されているオブジェクトは、エージェントと共に、ブレイスか らブレイスへと転送される。しかし、オブジェクトが大きい場合には、オブジェ クトの転送には、非常に多くのリソースが消費される。一般に、第1のコンピュ ータシステムにおいて実行されている第1のブレイスから、第2のコンピュータ システムにおいて実行されている第2のブレイスに、オブジェクトを含むエージ ェントの転送に要する時間は、既に第2のブレイスに存在しているオブジェクト については転送しないようにすることによって、実質的に減少する。これは単純 な例を考察することによって、容易に示される。エージェント150A(図16 A)は、コンピュータシステム120Aにおいて実行されており、やはりコンピ ュータシステム120Aにおいて実行されているブレイス220Aを占有してい る。このエージェント150Aは、オブジェクト140A、140B、140C を所有している。この実施例では、オブジェクト140Bはダイジェスト622 を有する。ダイジェスト622は、オブジェクト140Bが相互置換可能であり 、ダイジェスト622と同じダイジェストを持つオブジェクトであれば、どのよ うなオブジェクトであってもオブジェクト140Bに代わることができることを 示している。 ブレイス220Bは、オブジェクト624.626を所有している。したがって 、ブレイス220Bには、オブジェクト624,626が存在している。オブジ ェクト624は、ダイジェスト628を有している。プロセスは、そのプロセス によって所有される全てのオブジェクトと、そのプロセスをメンバとするクラス と、そのプロセスによって所有されるオブジェクトをメンバとするクラスとを有 している。前述したように、オペレーション゛gO”を遂行するときに、エージ ェント+ 50A及びエージェント150Aが持っている全てのオブジェクトは 、標準形式で表わされる。しかし、オブジェクト140Bは、エージェント15 0Aの標準形式には含まれない。その代わりに、ダイジェスト622のコピーで あるダイジェスト622−C(図6B)が、エージェント150Aの標準形式に 含まる。エージェント150A、オブジェクト140A、14 QC,ダイジェ スト622−Cは、矢印Aの方向に通信リンク102ABを介して、コンピュー タシステム120Bに転送される。オブジェクト140Bは、少なくともコンピ ュータシステム120B内で相互置換可能な同等のオブジェクトが見出されたこ とが確認されるまで、コンピュータシステムl 2OA内に保持される。 コンピュータシステム120B(図6C)において、エージェント150A、オ ブジェクト140A、140C及びダイジェスト622−Cは、デコードされる 。エージェント150Aをデコードする際に、コンピュータシステム120Bは 、ダイジェスト622−Cを認識し、同等のダイジェストを持ったオブジェクト がブレイス220Bを占有しているかを判断する。ここで、ブレイス220Bを 占有するオブジェクト624は、ダイジェスト628を有している。このダイジ ェスト628はダイジェスト622に等しく、したがって、このダイジェスト6 28はダイジェスト622−Cに等しい。ダイジェスト628はダイジェスト6 22に等しいので、オブジェクト140Bとオブジェクト624は相互に変換可 能である。したがって、エージェント150Aをデコードする際に、オブジェク ト624のコピー、すなわちオブジェクト624−Cが生成され、このオブジェ クト624−Cが、エージェント150Aの相互置換可能なオブジェクト140 Bに置き換えられる。したがって、エージェント150Aは、オブジェクト14 0Bの代わりに、オブジェクト624のコピーであるオブジェクト624−Cを 所有する。したがって、ブレイス220Bへのオブジェクト140Bの転送は行 われない。そして、コンピュータシステム120Bにおいて、相互に変換可能な 同等のオブジェクトが見つかったので、コンピュータシステム120Aからオブ ジェクト140Bが削除される。もちろん、コンピュータシステム120Bにお いて、相互に変換可能な同等のオブジェクトが見つからない場合もある。このよ うな場合には、後述するように、オブジェクト140B (図6B)は、コンピ ュータ12OAから検索される。 第1のブレイスを占有するエージェントは、エージェントの1以上のクローンプ ロセスを作成して、各クローンプロセスをそれぞれのブレイスに転送することが できる。したがって、実際には、あるエージェントは、幾つかのブレイスに移動 して、それらのブレイスを同時に占有することができる。もちろん、同時に移動 するのは、単一のエージェントではなく、そのエージェントの複数のクローンで ある。 エージェントは、同時に、幾つかのブレイスに移動してこれらのブレイスを占有 するために、あるインストラクションを送出する。このインストラクションは、 エージェントの複数のクローンを生成し、各クローンをそれぞれのブレイスに移 動させる。各クローンは1つのエージェントであり、クローンが生成されたとき 、クローンは元のエージェントと同一である。したが、って、クローンは元のエ ージェントと同じ実行状態を備えている。 例えば、コンピュータ12OA(図7A)のブレイス220Aを占有しているエ ージェント150Aは、1以上のブレイスを占有するために、エージェント15 0Aのクローンを生成して転送するインストラクションを、コンピュータシステ ム12OAに送出する。ここで、クローンが転送されるブレイスは、送出された インストラクションに指定されており、例えば、コンピュータシステム120B のブレイス220Bやコンピュータシステム120Cのブレイス220Cである 。 このインストラクションは、オペレーション”5end”と呼ばれる。ここで、 エージェント150Aによるこのインストラクションの送出は、エージェント1 50Aによるオペレーション″5end”の遂行と呼ばれる。図7A、7B、7 C,7Dに示したエージェント150Aによるオペレーション”5end”の遂 行は、本実施例では、エージェント150A内の2つのチケット(図示してない )によりて制御される。これらの2つのチケットは、それぞれのクローンの転送 を制御するとともに、エージェント150Aのそれぞれのクローンが転送される ブレイスであるブレイス220Bとブレイス220Cを特定する。 エージェント150A−1,150A−2(図7B)は、エージェント150A から生成されたクローンであり、ブレイス22OAを占有していないという点を 除いて、エージェント150Aと同一である。前述したように、エージェント1 50A−1,150A−2の実行状態も、最初は、エージェント150Aの実行 状態と同一である。エージェント150A−1,150A−2は、後述するよう に、コンピュータ間通信リンク102ABC(図7C)を通って、それぞれ、ブ レイス220B、220Cに移動す粂。エージェント150Aによる才へレーシ ョン”5end”の実行後(図7D)も、エージェント150Aは、ブレイス2 20Aを占有し続ける。一方、エージェント150A−1は、ブレイス220B を占有し、エージェント150A−2は、ブレイス220Cを占有する。 あるクローンの移動経路と他のクローンの移動経路が同じであるときは、すなわ ち、少なくとも2つのクローンについて移動経路の最初の一部分が同じであると きは、エージェント150Aのクローンの生成の一部を遅らせることによって、 コンピュータシステム120A内の領域や、エージェント150Aのクローンの 転送に要する時間を節減することができる。例えば、図7Eにおいて、エージェ ント150Aの2つのクローンは、それぞれの目的地のブレイス220B、22 0Cに到達するためにコンピュータシステム120Dを通過しなければならない 。 このとき、エージェント150Aの1つのクローン、すなわちエージエン目50 A−1のみが、コンピュータシステム120Dに転送される。そして、エージェ ント150Aの第2のクローン、すなわちエージェント150A−2は、エージ ェント150A−1からコンピュータシステム120Dで生成される。次に、エ ージェント150A−1,150−A2は、それぞれの目的地のブレイス220 B、220Cに転送される。したがって、エージェント150Aから1つのクロ ーンのみがコンピュータシステム12OAによって生成され、このクローンだけ がコンピュータシステム120Dに転送される。かくして、コンピュータシステ ム120Aの領域が節約されるとともに、エージェント150A−1,150A −2をそれぞれの目的地に転送するための時間も節約される。 2つのエージェントは、これらの2つのエージェントの間のミーティングにより 、情報を交換する。このようなミーティングにおいて、各エージェントには、相 手のエージェントに対するリファレンスが与えられる。後述するように、第2の エージェントへのリファレンスを有する第1のエージェントは、(i)第2のエ ージェントに含まれている指示に従って、特定の動作を行うように第2のエージ ェントに指示したり、(it)第2のエージェントに対してデータを送受信した りすることができる。どのようなエージェントであっても、そのエージェントへ のリファレンスを第2のエージェントに与えない限り、第2のエージェントへの リファレンスは与えられない。これにより、エージェントに対する他のエージェ ントからの干渉が防止される。このように、相互アクセスを承認することなしに は、エージェントは第2のエージェントにアクセスすることができない。 あるブレイスを占有する第1のエージェントは、そのブレイスを占有する第2の エージェントとのミーティングを開始することができる。このミーティングにお いて、第1のエージェントは、第2のエージェントにオブジェクトを転送したり 、第2のエージェントからオブジェクトを受け取ったりすることができ、また第 2のエージェントは、第1のエージェントにオブジェクトを転送したり、第1の エージェントからオブジェクトを受取ったりすることができる。 クラス”place” (図5C)のサブクラスは、クラス” Meeting  Place” (図示しない)である。例えば図8A〜8Fに示すように、ブ レイス220Bは、クラス”Meeting Place”のメンバであり、ミ ーティングブレイスである。したがって、ブレイス220Bは、本明細書におい て時にミーティングブレイス220Bと称される。コンピュータシステム120 Bにおいて実行されているミーティングブレイス220B (図8A)は、ミー ティングブレイス220Bを占有しているエージェント150A、150Bに、 矢印A、Bによって示すように、ミーティングにおいて情報を交換するための手 段を提供する。エージェント150A中のペティション3106は、エージェン ト150Aとエージェント150Bの間のミーティングを規定し、管理する。 エージェント150Aとエージェント150Bの間のミーティングは、図8B〜 8Fに示すように構成される。エージェント150A(図8B)は、エージェン ト150Aとエージェント150Bの間のミーティングを準備するようにミーテ ィングブレイス220Bに指示するための、矢印851によって表された第1の コンピュータインストラクションを送出する。第1のインストラクションは、ペ ティション310Gを含んでいる。ここで、ミーティングの制御を行うベティシ ョン3106は、エージェント150Aがエージェント150Bとミーティング しようとしていることを規定している。エンジンは、矢印852に示すように、 第2のコンピュータインストラクションを、ミーティングブレイス220B ( 図8C)のために発生する。このインストラクションは、エージェント150A が第1のコンピュータインストラクションを送出したことをエージェント150 Bに通知する。また、このインストラクションは、エージェント150Aとエー ジェント150Bの間のミーティングが可能であるかを判断するために、コンピ ュータインストラクションをエージェント150B内で実行させる。 エージェント150Aとエージェント150Bの間のミーティングが、承認可能 であると判断されたら(図8D)、エージェント150Bは、矢印853に示す ように、エージェント150Aとエージェント150Bの間のミーティングを準 備するようにエンジンに指示する回答を、ミーティングブレイス220Bのため に、第2のコンピュータインストラクションに対して送出する。そして、エンジ ンは、ミーティングブレイス220B (図8E)のために、エージェント15 0Bへのリファレンスを、矢印854Aに示すように、エージェント150Aに 送出するとともに、エージェント150Aへのリファレンスを、矢印854Bに 示すように、150Bに送出する。こうして、エージェント150A(図8F) は、エージェント150Bへのリファレンスを用いて、矢印855Aに示すよう に、エージェント150Bと相互作用し、エージェント150Bは、エージェン ト150Aへのリファレンスを用いて、矢印855Bに示すように、エージェン ト150Aと相互作用する。 2つのエージェントは、これら2つのエージェントが同一のブレイスを占有して いない限り、ミーティングすることはできない。ブレイスの階層構造は、さまざ まなエージェントに、いろいろなレベルとタイプのアクセス及びセキュリティを 与えるためのメカニズムを、本発明のユーザに提供する。アクセス及びセキュリ ティに、いろいろなレベル及びタイプがあることによる利点は、例えば図9A〜 図9Eに示すような実施例によって示される。 図9A1.t、707902−1.902−2,902−3.902−4.90 2−5を有する建物902を示している。フロア902−3は建物902のブレ イス内の1つのブレイスであり、したがって建物902のサブブレイスである。 図9Bは、ルーム902−3−1.902−3−2.902−3−3.902− 3−4を有するフロア902−3を示している。ルーム902−3−2はフロア 902−3のブレイス内のブレイスであり、したがってフロア902−3のサブ ブレイスである。 建物902の構造は、N層的なセキュリティに好適である。例えば、建物9゜2 には、第1のセキュリティレベルの人々、例えば軍の関係者のみが入れるように 制限することがことができる。フロア902−3には、第2のレベル(より高い レベル)のセキュリティレベルの人々、例えば海軍関係者のみが入れるように、 更に制限することができる。ルーム902−3−2には、第3の(より高いレベ ル)セキュリティレベルの人々、例えば海軍将校のみが入れるように、更に制限 することができる。フロア902−3とは無関係に、フロア902−4には、例 えば空軍関係者のみが入れるように、更に制限することができる。 コンピュータシステム120X(図9C)内のエンジンは、ブレイス220X1 .220X2を実行する。ここで、ブレイス220X1は、例えば、建物9゜2 を表す。ブレイス220X1−1.ブレイス220X1−2は、ブレイス220 X1 (図9D)を占有する。したがって、ブレイス220X1−1、ブレイス 220X−1−2は、ブレイス220X−1のサブブレイスであり、逆に、ブレ イス220Xlは、ブレイス220X1−1.220Xl−2(7)7!、−バ ープレイステある。ここで、ブレイス220X1−1、ブレイス220X1−2 は、例えば、フロア902−4.902−3を表す。また、ブレイス220X1 −2−1は、ブレイス220X1−2 (図9E)を占有する。したがって、ブ レイス220X1−2−1は、ブレイス220X1−2のサブブレイスであり、 ブレイス220XI−2は、ブレイス220X1−2−1のスーパーブレイスで ある。ここで、ブレイス220X1−2−1は、例えば、ルーム902−3−1 を表す本発明の一実施例において、2つのエージェントは、”対面(フェイス− ツウ−フェイス)”しているときだけ、すなわち2つのエージェントが同一のブ レイスを占有するときだけ、ミーティングすることができる。なお、本実施例で は、エージェントは、ただ1つのブレイスのみを占め、そのブレイスのサブブレ イスやスーパーブレイスを同時に占有することはない。例えば、ブレイス220 X1−2を占有するエージェントは、ブレイス220X1又はブレイス220X 1−2−1を同時に占有することはない。建物902(図9A)にいる第1の人 は、フロア902−3にいない限り、フロア902−3の2番目の人と対面して 会話できないのと同様に、ブレイス220X1 (図9D)を占有するエージェ ントは、ブレイス220X1−2を占有するエージェントとは交信できない。ま た、フロア902−3 (図9B)にいる第1の人は、ルーム902−3−2に いない限り、ルーム902−3−2にいる第2の人と対面して会話できないのと 同様に、ブレイス220X1−2 (図9E)を占有するエージェントは、ブレ イス220X1−2−1を占有するエージェントとは交信できない。 このような、ブレイスの階層は、本発明のユーザが、ブレイス220X1へのア クセスを制限したり、更にブレイス220X1−2へのアクセスを制限したり、 更にブレイス220X1−2−1へのアクセスを制限したりすることを可能にす る。ただし、このように実現されるセキュリティの階層は、実行されたブレイス の階層に必ずしも直接に関連しているのではない。例えば、ブレイス220X1 −2へのアクセスは、ブレイス220X1−2のサブブレイス、例えばブレイス 220X1−2−1へのアクセスよりも、更に制限することができる。なお、ブ レイスへのアクセスの制限については、後で詳細に説明する。このように、ブレ イスの階層は、いろいろなエージェントに、あるブレイス、これらのブレイスの サブブレイス、及びこれらのサブブレイスのスーパーブレイスを占有している他 のエージェントに対するいろいろなアクセスレベルを与えることができるような 、高度なセキュリティの階層を、本発明のユーザが構成することを可能にする。 以上に説明した新規なプロセスの詳細をさらに記述するためには、以上に説明し たコンピュータシステムの構造のよりよき理解が必要とされる。図10に示す実 施例において、3つのコンピュータシステムは、コンピュータネットワーク10 0を形成するように接続されている。コンピュータシステム120Aは、CPU 11OA、ネットワーク通信ハードウェア104A及びメモリ117Aを有して いる。ここで、図1の入力モジュール12及び出力モジュール14に対応する入 力モジュール及び出力モジュールは、分かり易くするために割愛している。また 、図1のマスメモリ17A及びメインメモリ17Bは、メモリ117Aを形成す るように組み合わされている。ネットワーク通信ハードウェア104Aは、CP Ull0Aがネットワークを介して信号を伝送させたり、ネットワークから信号 を受けてインターブリードしたりすることができれば、どのような装置でもよい 。 メモリ117Aには、CPUll0A内において同時に動作するコンピュータプ ロセスが存在する。ネットワークマネージャ130Aは、コンピュータネットワ ークのいろいろのコンピュータシステムの間のデータ伝送を管理するコンピュー タプロセスである。オペレーティングシステム131Aは、いろいろなコンポー ネントの動作及びコンピュータシステム120Aのリソースを管理するコンピュ ータプロセスである。例えば、オペレーティングシステム131Aは、CPU1 10A、メモ1J117A及び入力/出力モジュール(図10には示していない 。 図1参照。)の使用を管理する。エンジン132Aは、本発明のオブジェクト指 向コンピュータインストラクションセットのコンピュータインストラクションを インターブリードし、このオブジェクト指向コンピュータインストラクションセ ット中に規定されたオブジェクトに含まれる情報を処理するコンピュータプロセ スである。例えば、エンジン132Aは、ブレイス220A(図4A)とエージ ェント150Aを同時に実行する。ここで、ブレイス220Aとエージェント1 50Aは、本発明のオブジェクト指向コンピュータインストラクションセットに よって構成されるプロセスである。なお、エンジン132Aは、図4八には示さ れていない。 コンピュータシステム12OAのメモIJ117A(図30)内において実行さ れるプロセスとしては、上述した他にも、通常は1以上のプロセス、例えばユー ザアプリケーション133Aが存在する。ユーザアプリケーション133Aは、 エンジン132Aによってインターブリードされるオブジェクト指向インストラ クションセント内において規定されたオブジェクトの生成及び/又はマニピユレ ーションをエンジン132Aに要求することができる。 コンピュータシステム120B、120Cは、コンピュータシステム!2OAと 同様に構成されている。ただし、コンピュータシステム120A、120B。 120Cの一般的な構造は同様であるが、コンピュータシステム120A、12 0B、120Cはその他の点では異なっていてもよい。 コンピュータネットワーク100のコンピュータシステムは、あるコンピュータ システムから他のコンピュータシステムに、エージェントプロセスを転送するこ とができるように接続されている。コンピュータシステム120A、120B。 120Cは、それぞれのネットワーク通信ハードウェア)04A、104B、1 04Cを、通信リンク102AB、102BC1102Acで結合することによ って、コンピュータネットワークを形成するように接続されている。ここで、通 信リンク102AB、102BC,102AC!!、1つのネットワーク通信ハ ードウェア、例えばネットワーク通信ハードウェア104Aがら、別のネットワ ーク通信ハードウニ乙例えばネットワーク通信ハードウェア104Bに、データ を転送することができるものであれば、どのような手段であってもよい。例えば 、ネットワーク通信リンク102ABは、公衆電話網であってもよい。この場合 、ネットワーク通信ハードウェア104A、104Bはモデムである。そして、 ネットワークマネージャ130A、130Bは、通信リンク102AB、すなわ ち公衆電話網を介した通信を確立し利用するように、それぞれのネットワーク通 信ハードウェア104A、104Bにコマンドを送出する。 オブジェクト指向コンピュータインストラクションセットから成るオブジェクト は、エンジン、例えばエンジンL32A(図11A)によって実行される。エン ジン132Aは、通信下部構造132A−CI 、プログラム部132A−P及 びデータ部132A−Dを有する。エンジン132Aによって実行されるオブジ ェクト、例えばオブジェクト140Aの状態を表すデータは、エンジン132A のデータ部132A−Dに記憶されている。エンジン132Aのデータ部132 A−Dは、エンジン132Aのワークスペースとして予約されたメモリ117A (図10)内のメモリスペースであり、通常は、コンピュータシステム12OA 上の他のプロセス、例えばオペレーティングシステム131Aやユーザアプリケ ーション133Aは、アクセスすることはできない。 前述したように、エンジンはプロセス及びオブジェクトを実行する。エンジン1 32Aのプログラム部132A−P (図11A)は、データ部132A−Dに おいて表されるオブジェクトを実行するコンピュータインストラクションを有す る。プログラム部132A−Pを形成するように組み合わされるコンピュータイ ンストラクションは、既知のコンピュータ言語によるものでよい。例えば、実施 例において、エンジンのプログラム部は、本発明の原理にしたがって、C++プ ログラミング言語によって構成されている。 エンジン132Aの通信下部構造132A−CIは、ネットワークlOOを介し て、分散されたエンジンの間でデータを転送するためのコンピュータインストラ クションを有する。エンジンの通信下部構造のさまざまな様相については、この 明細書の一部であるアペンディクスDに一層詳細に説明されている。 図11Bは、図11Aのコンピュータネットワークを別の形式で表現したもので ある。図11Aに示すように、コンピュータシステム120Bのエンジン132 Bは、エンジン132Aと同じように構成されている。 ネットワーク中のオブジェクト 後述するように、ブレイス220A、220B (図4A)、エージェント15 0A、チケット1306等は、本発明の原理に従って、”オブジェクト”を用い て規定されている。前述したように、オブジェクトは、データ部132A−D( 図11A)に記憶されている。そして、このオブジェクトは、エンジン132A 。 132Bによってインターブリードされるコンピュータインストラクションセッ トにしたがって形成され、エンジン132Aによってインターブリートされる。 例えば、データ部132A−D中のオブジェクト140Aは、エンジン132A 、132Bによってインターブリードされるコンピュータインストラクションセ ットにしたがって形成され、エンジン132Aによってインターブリードされる 。 本発明のコンピュータインストラクションセットの概略本発明の新規な各プロセ ス及びこれらのプロセスを定義したり支援したりするために必要ないろいろなフ ィーチャは、本発明のエンジンによってインターブリートされるコンピュータイ ンストラクションセットによって定義される。本発明のコンピュータインストラ クションは、オブジェクト指向である。したがって、本発明のデータ、例えばエ ージェント150Aを表すデータは、それぞれ内部状態と外部挙動とを有するオ ブジェクトに組織化される。あるオブジェクトのプロパティは、そのオブジェク トの内部状態を規定し、そのオブジェクトのフィーチャは、そのオブジェクトの 外部挙動を規定する(前記の用語の解説参照)。各オブジェクトは、複数のクラ スの内の1つのクラスの1つのインスタンス(例)である。 本発明のW、理によれば、後述するミックスインクラスを除いて、コンピュータ インストラクションセットに規定される全てのクラスは、アペンディクスAに詳 細に説明されるクラス゛’ 0bject”のサブクラスである。したがって、 ミックスインクラスを除いて、ここに記述される各クラスは、クラス”0bje cじのフィーチャ及びプロパティを受け継いでいる。 制限された多重継承は、一実施例によれば、ミックスインクラスを用いて実現さ れる。“ミックスイン”又は゛′ミックスインクラス”は、クラス”0bjec t”のサブクラスではないクラスである。以下及びアベンディクスAに記述され るように、ミックスインクラスには、例えば、ミックスインクラス”Execu ted”、”Nawed”・” Referenced”がある。”フレーバ又 は°°フレーバクラス”とも呼ばれる非ミックスインクラスは、多くても1つの フレーバの直接のサブクラスであるが、0以上のミックスインクラスの直接のサ ブクラスで有り得る。ミックスインクラスは、どのクラスのサブクラスでもない か、又は他のミックスインクラスの直接のサブクラスである。特に指定しない限 り、クラスはフレーバである。クラス階層においてサイクルは許されない。すな わち、別のクラスのサブクラスであり且つスーパークラスでもあるクラスは許さ れない。 ミックスインクラスの使用は、フィーチャ及びプロパティが一度定義されると、 広範囲のクラスにわたって使用される。例えば、ミックスインクラス”0rde rd″は、2つのオブジェクトの相対的な順序を定めるオペレーションを規定す る。フレーバクラス”As5ociation” 、” C1tation”  、” Li5t”、” Identifire” 、” Pattern” 、 ” Permit” 、 ” Bit”、 ” Boolean” 、 ” C haracter” 、 ” Numb■秩h 、 ” 0ctet” 、”T ime”は、ミックスインクラス”0rderd”がら 継承される。したがって、アソシエーション、サイテション、リスト、識別子、 パターン、パーミツト、ビット、ブーリアン、キャラクタ、数、オクテツト及び 時間は、同一のクラスの他のメンバに対しである順序を持っている。例えば、数 値の場合、2は、lの”後”であり、3の“前”である。 本発明においてオブジェクトの主要なりラスは、プロセスのクラスである。前述 したようにプロセスは、(i)他のプロセスによって占有されるブレイス、又は (ii)(a)第1のブレイスがらそれ自身を転送して第1のブレイスの占有を 終了し第2のブレイスを占有することができ、(b)同一のブレイスを占有する 他のエージェントと相互作用することができるエージェント、のどちらがである 。 エージェント150A(図11A)は、エンジン132Aによ1て実行される本 発明のコンピュータインストラクションセットに従って形成されたプロセスであ る。エージェント150Aは、(i)それ自身を検査して変更し、(if)ネッ トワーク100中の第1のブレイス(図10)から第2のブレイスにそれ自身を 転送し、(i i i)第2のブレイスを占有する他のエージェントと相互作用 することができる。 本明細書においてプロセスは、アーギュメントを使用して、0又は1つのリザル トを発生させるオペレーションを行なうものとして記述される。ただし、プロセ ス自体は、後述するインストラクションの中から選択されたインストラクション の集合を有するオブジェクトであり、このインストラクションはCPUll0A 内において動作しているエンジン、例えばエンジン132Aによってインターブ リートされる。あるプロセスによる動作の遂行、又は開示されたインストラクシ ョンセットの他のオブジェクトの遂行は、実際には、プロセス又はオブジェクト に含まれる特定のインストラクション群の選択とそのインターブリートである。 エンジンによるプロセスのインストラクションのインターブリートは、ここでは 、°゛プロセスインターブリート′°とも呼ばれる。すなわち、エージェント1 50Aがあるオペレーションを実行する場合、エージェント150Aは、エンジ ン132Δにインストラクションを供給し、エンジン132Aは、そのインスト ラクションをインターブリートし、エージェント150Aによるオペレーション の遂行を行なう適当なタスクを実行するようにCPUll0Aに指示する。プロ セスとエンジンとの間の相互作用は後で詳細に説明する。 本発明の重要な要素は、後で詳細に説明するコンピュータインストラクションセ ットが、ネットワーク100(図10)のそれぞれのコンピュータシステムで、 同様に実現されることである。コンピュータシステム12OA、120B、12 0Cは、完全に異なり且つ互換性がないデータ構造、メモリ形態、CPU及びオ ペレーティングシステムを使用することができる。しかし、エージェントは、コ ンピュータシステム12OA、120B、120Cのどれに対してもそれ自身を 転送することができるので、各コンピュータシステムが標準化された形で本発明 のコンピュータインストラクションセットを実行することが大切である。コンピ ュータシステム12OA、120B、120Cは、コンピュータインストラクシ ョンセットを同様に実行する限り、他の点では互換性がなくてもよい。したがっ て、エージェントは同種のコンピュータネットワークだけでなく、異種のコンピ ュータネットワークのコンピュータシステムの間にも自由に移動することができ る。 典型的な従来技術のシステムでは、プロセスが同極のネットワーク内だけを移動 すること、又はプロセスが、実行されていたコンピュータシステムと互換性を持 ってコンピュータインストラクションを実行するように、特別に設計されている ことを必要としていた。後者のケースにおいては、プロセスは、そのプロセスの 実行が開始されたコンピュータシステムの特別なシステム要求と、そのプロセス が移動しようとしているコンピュータシステムの特別なシステム要求とに対応す るように構成されていた。本発明は、このような従来技術を本質的に改善させた ものであり、本発明のエージェントのコンピュータインストラクションは、異種 のネットワークのいかなるコンピュータシステムにおいても実行できる。 エージェント 前述したように、エージェントの挙動は、部分的にはそのエージェントの内部状 態に依存する。したがって、ネットワーク中のあるエージェントの外部挙動を検 討する前に、エージェントの内部状態のいくつかの特色について、簡単に説明す る。各エージェントは、クラス”Agen t”のメンバである。 クラス°’ Agenじはアブストラクトクラスであり、いかなるエージェント もクラス” Agent”のインスタンスではないことに注意すべきである。ク ラス゛’ Agent”は、抽象的であり、オペレーション1ive”のインプ リメンテーションは、クラス°’ Agent”によって規定されたり、継承さ れたりしない。以下及びアベンデイクスAに一層詳細に説明するように、オペレ ーション”1ive”は、プロセスの生成時にそのプロセス、すなわちエージェ ント又はブレイスによって実行されるステップを規定する。これらのステップは 、全体としてプロセスの”中央プロシージャ°“と呼ばれる。エージェントやブ レイスのための中央プロシージャは予め提供されるものではなく、本発明のユー ザによって、各ユーザの特定のニーズに適合するようなエージェントやブレイス のための中央プロシージャが、設計され提供される。このように、本発明のユー ザは、クラス”Agent”の具体的なサブクラスを生成させ、オペレーション ’ 1ive”のためのインプリメンテーションを供給する。 クラス”Agen t”は、クラス゛’ Process” (図5)のサブク ラスである。クラス” Process”は、クラス°’ 0bject”のサ ブクラスであり、ミックスインクラス”Nawed”からも継承している。クラ ス“0bject”は、ミックスインクラス”Refereneed’“からも 継承している。エージェントは、次のようなアトリビュートを所有している。す なわち、エージェントは、アトリビュートとして、(i)スーパークラス°’  0bject”から受け継がれたアトリビュート”class” 、 ” 5i ze″と、(11)ミックスインクラス” R2r2renced”から継承さ れたアトリビュート“1sProtected”と、(iii)ミックスインク ラス°’ Named”から継承されたアトリビュート” name”と、(i v)スーパークラス゛’ Process”から継承されたアトリビュート”  brand” 、 ” Pern+it” 、 ” privatecIass es”とを所有している。クラス”Agent”はいかなるアトリビュートも規 定しない。前述の各アトリビュート及びクラスは、アペンディクスAにおいて一 層詳細に説明される。 ダイアグラム1270 (図12)は、エージェント150Aがメンバであるク ラスのクラス関係を表している。エージェント150Aは、クラス°“八gen t”を表すドメイン1272に含まれているように図示される通り、クラス”  Agent”のメンバである。クラス” Agent”は抽象的であり、エージ ェント150Aは、クラス” Agent”の1以上のサブクラス(図示しない )のメンバでもある。 ドメイン1272は、クラス”Process”を表すドメイン1274内に完 全に収容されている。したがって、エージェント150Aは、クラス”Proc ess”によって規定されたアトリビュート” brand” 、 ’ Per oit” 、 ” privatecIasses”を継承する。さらに、クラ ス゛’ Agent”のすべてのメンバは、クラス” Process”のメン バでもある。したがって、前述したように、クラス”Agent”はクラス”P rocess′°のサブクラスである。 ドメイン1274は、クラス″object”を表すドメイン1276内に完全 に収容されている。したがって、エージェント150Aは、クラス”0bjec t”によって規定されるアトリビュート”c I ass”、”5ize”を継 承する。さらに、クラス”Agent”のメンバを含むクラス”Process ”のすべてのメンバは、クラス’ 0bject”のメンバでもある。したがっ て、前述したように、クラス”Process”は、クラス” 0bject” のサブクラスである。 クラス”Process”を表すドメイン1274は、クラス°’ Named ’を表すドメイン1278内に収容されている。コネクション1278Aは、ド メイン1274がドメイン1278に収容されていることを示すと共に、クラス “0bject″を表すドメイン1276がドメイン1278内には収容されて なく、ドメイン1278がドメイン1276に収容されていないことを明瞭に表 している。 ドメイン1278によって表されたクラス” Named”は、ミックスインク ラスである。ドメイン1274は、ドメイン1278に含まれているので、エー ジェント150Aは、ドメイン1278に含まれる。したがって、エージェント 150Aは、ミックスインクラス゛Named”のメンバである。ミックスイン クラス″Nal1ed”は、エージェント150Aのアトリビュート”na+m e”を規定しているOコネクション128OAによって示すように、ミックスイ ンクラス”Referenced”を表すドメイン1280は、クラス” 0b ject”を表すドメイン1276を含んでいる。ドメイン1276は、ドメイ ン1280に含まれるので、エージェント150Aは、ドメイン1280に含ま れる。したがって、エージェント150Aは、ミンクスインクラス“Rerer enced”のメンバである。ミックスインクラス” Ref2renced” は、エージェント150Aのアトリビュート” 1sProtected”を規 定する。 本発明の開示である実施例において、各フレーバは、クラス”0bject”の サブクラスであるので、各フレーバは、ミックスインクラス゛’ Refere nced”のサブクラスでもある。したがって、クラス”0bject“のフィ ーチャからクラス”Referenced”のフィーチャを分離する必要はない 。しかし、ミックスインクラス’ Referenced”のフィーチャは、本 発明の概念形成及び理解を助けるために、クラス”0bject”のフィーチャ から分離されている。 用語の解説において述べたように、オブジェクトは、開示されたコンピュータイ ンストラクションセットにおいて、リファレンスによって特定される。後述する ように、オブジェクトにある操作を行なうように指示する場合、オブジェクトは 、リファレンスによって特定される。ミックスインクラス″Reference d″によって定義されたツユ−チャは、オブジェクトを特定するリファレンスに 基づいて動作する。例えば、アトリビュート”1sProtected”は、オ ブジェクト自身が保護されるか否かではなく、オブジェクトへのリファレンスが 保護されるか否かを定める。クラス”0bject”によって定義されたツユ− チャは、リファレンスによって特定されたオブジェクトに対して動作する。例え ば、アトリビュート”c I ass”は、そのオブジェクトがどのクラスのイ ンスタンスであるかを定める。 エージェント150A(図12)によって占有されたブレイスに関する情報を供 与するアトリビュートが、定義されていないことに注意されたい。しかし、エー ジェント150Aによって占有されたブレイスは、エージェント150Aのプロ パティとして保存される。エージェント150Aは、”here (ヒア)”セ レクタの実行によって、どのブレイスをエージェント150Aが占有するかを定 めることができる。セレクタの実行、特に゛°ヒア”セレクタの実行については 、アペンディクスへに詳述されている。エージェント150Aによって占有され ているブレイスであるプロパティは、クラス”Process”によって定義さ れる口したがって、いかなるプロセスも、すなわちブレイス又はエージェントは 、プロセスによって占有されているブレイスであるプロパティを含んでいる。 クラス”Process”は、ミックスインクラス”Named”の直接のサブ クラスであり、本文及びアベンディクスAに開示されたクラスだけである。一方 、クラス”Process”のサブクラスではない、ミックスインクラス”Na med”のサブクラスは、本文及びアベンディクスAに開示されたインストラク ションを用いて、本発明のユーザによって定義される。したがって、クラス”N amed”は、ミックスインクラスである。 各プロセス(エージェント及びブレイス)には、前述したように、プロセスの一 義的な挙動を規定する中央プロシージャが組み合わされている。プロセスの中央 プロシージャは、プロセスによって遂行されるオペレーション゛1ive”を実 現するメソッドである。エンジンは、プロセスにオペレーション”1ive”を 遂行させて、プロセスの中央プロシージャを実行させることにより、プロセスの 処理を開始する。プロセスのためのメソッドについては、後で詳述する。プロセ スがオペレーション”1ive”の実行を完了したら、プロセスが成功しようが しまいが、プロセスは終了させられる。このような、プロセスの終了については 、引用として本明細書の一部とされているアベンディクスAのセクション2.4 .11に説明されている。 エージェントの移動:オペレーション″ 0″前述したように、エージェントは 、オペレーション”gO°゛の遂行によって、ブレイスから他のブレイスへと移 動する。オペレーション“gO”について、例えば図15A〜15Eに示すよう な実際の流れを例にして説明する。ブレイス220Aからブレイス220Bに移 動するために、エージェント150A(図15A)は、オペレーション“gO゛ °を遂行する。図15Aは、エージェント150Aがオペレーション”go”を 遂行する前のネットワーク1500の状態を示している。 エージェント150Aは、オブジェクト140A、140Bを所有し、エンジン 132A内のブレイス220Aを占有している。したがって、エージェント15 0A及びブレイス220Aは、エンジン132Aによって同時にインターブリー ドされるプロセスである。換言すれば、ブレイス220Aとエージェント150 Aは、オペレーション”1ive”を同時に遂行する。エンジン132Bは、ブ レイス220B及びエージェント150Bをインターブリートする。エージェン ト150Bは、ブレイス220Bを占有している。 エンジン132Aの通信下部構造132A−CIは、通信リンク102AZによ って、エンジン132Zの通信下部構造132Z−CIに接続されている。エン ジン132Zは、ブレイス220Zをインターブリートする。通信下部構造13 2Z−CIは、通信リンク102ZBによって、エンジン132Bの通信下部構 造132B−CIにも接続されている。この実施例では、ネットワーク1500 内に3つのコンピュータシステムが示されているにすぎないが、ネットワーク1 500のコンピュータシステムの数は任意の数とすることができる。したがって 、図15Aに示したコンピュータシステムは、本発明の原理を例示しているもの にすぎず、本発明は、図示した特別のネットワークに限定されるものではない。 この実施例において、エージェント150Aによるオペレーション”gO゛°の 遂行は、エンジン132Aから、エンジン132zを介して、エンジン132B に、エージェント150Aを転送することを要求する。したがって、オペレーシ ョン”go”には、エンジン132A、すなわち転送元のエンジンと、エンジン 132Z、すなわち転送途中のエンジンと、エンジン132B、すなわち目的地 のエンジンとにおけるアクションを要求する。 転送元のブレイスを処理するエンジンによって遂行されるオペレーション” O “図13Aは、エージェント150Aがオペレーショ゛°gO”を遂行する直前 における、エージェント150Aの実行状態の一部を含む内部状態の一部を示し ている。プロセスの実行状態については、後で詳細に説明する。スタック130 4は、エージェント150Aの実行状態の一部である。スタック1304は、ト ップ”T”にチケット1306を備えている。チケット1306については、後 で詳細に説明する。オペレーション”go”の遂行によ2て使用されたアーギュ メントは、スタック1304からポツプされるので、スタック1304は、オペ レーション”gO゛°のコンテキストにおいて、”現在のスタック”である。ブ レイス220Aは、エージェント150Aのプロパティであり、エージェント1 50Aがブレイス220Aを占有していることを示している。 r;!J13Bは、エージェント150Aによるオペレーション”gOnの遂行 の直後における、エージェント1 !50Aの実行状態の一部を含む内部状態の 一部を示している。図13A、13Bについては、後で詳細に説明する。 図14Aに示すフローチャート(ロジックフローダイアグラム)1400は、エ ンジン132A(図15A)によって実行されるオペレーション”go”の流れ を示している。オペレーション°’ go”の遂行が開始された時に、エージェ ント150Aは、エンジン132A内において実行されている。すなわち、エン ジン132Aは、転送元のエンジンである。図14Aに示すフローチャートの各 ステップは、エージェント150Aの、ブレイス22OA (図15A)からブ レイス220Bへのトリップの流れを説明している。 エージェント150Aによるオペレーション”go”の遂行において、エンジン 132A(図15A)は、テストステップ(access?) 1402 (図 14A)において、オペレーション” go”の遂行を要求しているエージェン トが、エージェント150Aであるかどうかを判断する。オペレーション”go ”が、エージェント150A(図15A)以外のオブジェクトによって要求され たものであれば、処理は、テストステップ1402 (図14A)から終了ステ ップ1404に移行する。この終了ステップ1404では、オペレーション”g o”は失敗したものとして、クラス°’ pr(1(2551ot Curre nt”のエクセプションが送出される。一方、オベレーション”go”が、エー ジェント150A(図15A−)によって要求されたものであれば、処理は、テ ストステップ1402(図14A>からテストステップ(canGo?) 14 06に移行する。 このテストステップ(canGo?) 1406において、エンジン132A( 図15A)は、エージェント150Aがオペレーション”go”を遂行してもよ いのが否かを判断する。テストステップ(canGo?) 1406において、 エンジン132A(図15A)は、エージェント150 Al1)7 ) ’J  ヒユー )” F’ermit” l:間イ合すせを行う。前述したアトリビ ュート°Permit”は、エージェント150Aの複数のアトリビュートの1 つである。エージェント150Aの多くのアトリビュートについては、クラス“ Process”に関連して、アペンディクスへに詳述されている。 エージェント150Aのアトリビュート”Permit”の問い合わせによって 、エージェント150Aのプロパティ°’ Permit”が生成される。バー ミツト1612 (図16)は、エージェント150Aのプロパティ” Per mit”である。したがって、バーミツト1612は、エージェント150Aの アトリビュート”Permit”を問い合わせることによって生成される。この 実施例において、プロパティ”Permit”は、エージェント150Aの複数 のプロパティの中の1つである。 バーミツト1612(図17)は、アベンディクスAに詳細に説明されている幾 つかのプロパティの中に、プロパティ” charge” 、 ” canGo ” 、 ” age”を含んでいる。ここで、プロパティ” charge”  、” canGo” 、 ” age”は、それぞれインチジャ1702、ブー リアン1704、インチジャ1706である。ブーリアンは、” true”又 は” false”のどちらかの値を有するオブジェクトである。” canG O”テストステップ1406(図14A)において、エンジン132A(図15 A)は、バーミント1612 (図17)のアトリビュート”canGo”に対 して問い合わせを行い、バーミント1612のプロパティ” canGo’“で あるブーリアン1704を生成させ、ブーリアン1704を” true”と比 較する。 ブーリアン1704の値が”false”のときは、処理は、テストステップ( canGo?) 1406 (図14A)から、終了ステップ1408に移行す る。このとき、エージェント150Aは、オペレーション”gO”の遂行による 移動が許されず、オペレーションは失敗に終わり、終了ステップ1408におい て、クラス”Persit Violated”のメンバであるエクセブション を送出する。エクセブション及びその分類はアベンディクスAに一層詳細に説明 されている。 一方、ブーリアン1704 (図17)の値が”true″のときは、処理は、 テストステップ(canGo?) 1406 (図14A)から、ステップ(e ffectuate move)1410に移行する。ステップ(effect uate move) 1410については、図14Bを用いて、後で詳細に説 明する。その後、処理は、ステップ(efTectuate move)141 0(図14A)から、終了ステップ1412に移行し、そこでオペレーション′ °gO”は、エンジン132Aに関する限り、成功の内に終了する。 前述したように、エンジン132A(図15A)によって遂行されるステップ( effectuate move) 1410は、フローチャート1410 ( 図14B)によって示されている。フローチャート1410の第1のステップ、 すなわちステップ(rouLe agent) 1414において、エンジン1 32A(図15A)は、エージエン)150Aをトリップの目的地まで転送する のに使用されるエンジン、すなわち゛°移動目的地”を選出する。ここに使用さ れる移動目的地という用語は、トリップに使用する次のエンジンを示すものであ り、トリップの目的地と混同するべきではない。チケット1306(図13A) は、トリップの目的地として1つのブレイスを定義する。したがって、°゛トリ ップ目的地”は1つのブレイスである。 チケット1306(図13A)によって規定されたトリップの行程に従って、エ ージェント150A(図15A)は、1つのエンジンから次のエンジンへと移動 する。したがって、゛移動目的地′°は1つのエンジンである。一般に、トリッ プには、エージェントがトリップの目的地を有するエンジンに到達するまでに。 エージェントの何回かの転送を要求する。 ステップ1414 (図14B)において、移動目的地を規定するウェイオブジ ェクト、すなわちクラス”Way”のメンバが生成される。移動目的地は、例え ば、(i)現在、エージェント150Aを含んでいるエンジン、すなわちエンジ ン132Aや(この場合エージェント150Aは転送されない)、(if)エン ジン132Aを含むリージョン(領域)内の別のエンジンや、(iii)別のリ ージョンのエンジン等である。前記(ii)又は(iii)のどちらの場合にお いても、エージェント150Aは、後述するように、移動目的地に向かって転送 される。 ゛リージョン”という用語については、用語の解説に規定されている 。エンジンを?I数のリージョンに分類することは、エージェントの移動経路の 決定、すなわちルーティングにおいて重要である。これは、通常、エンジンは、 他のリージョン内のエンジンに比べて、同一のリージョン内のエンジンについて 、より多くの詳細な情報を有しているからである。これは、単一のリージョンの エンジンは、単一の人又は組織によって構成されるためである。このような人又 は組織は、リージョンの°°供給者°′と呼ばれる。このように、単一のリージ ョン内の全てのエンジンは、単一の供給者によって供給されるので、そのリージ ョンの各エンジンには、そのリージョンの他のエンジンについての詳細な情報を 与えることができる。 エンジンをリージョンに分類することは、大型の複雑なネーットワークにおいて 、エージェントをルーティングする上で有用である。あるエージェントが複数の リージョン間を移動する場合、移動目的地のエンジンについての情報を転送元の エンジンが有している必要はない。転送元のエンジンは、どのリージョンにエー ジェントが移動しているかを判断し、エージェントをそのリージョン内のエンジ ンに向かって移動させることができれば十分である。一旦、トリップ目的地であ るブレイスを含むリージョン内のエンジンにエージェントを移動させたら、エー ジェントを、容易にトリップ目的地であるブレイスを含むエンジンに向かってル ーティングさせることができる。 フローチャート1414 (図14C)は、ステップ(route agent ) 1414 (図14B)において実行される各ステップを示しており、後で 詳細に説明する。 処理は、ステップ(route agent) 1414からステップ(iso late agent) 1416に移行し、ここでエージェント150A(図 14A)は切り離される。プロセスの切り離しについてはアベンディクスAに詳 細に説明されており、その説明は引用として本明細畜の一部を構成している。簡 単に説明すると、エージェント150Aは、(i)エージェント150A内の全 てのリファレンスを、他のプロセス及びこれらの他のプロセスによって所有され ているオブジェクトに対してボイド(無効に)して、(i i)他の全てのプロ セス内において、エージェント150A及びエージェント150Aによって所有 されるオブジェクトに対するリファレンスをボイドすることによって、切り離さ れる。処理は、ステップ(isolate agent) 1416 (図14 B)から、ステップ(exiting) 1418に移行する。 このステップ(exiting) 1418において、ブレイス220A (図 15A)は、エンジン132Aの要求によってオペレーション” exitin g”を遂行することにより、エージェント150Aが切り離されたことを知る。 オペレーション”exiting′°については、後で詳細に説明する。処理は 、ステップ(exiting) 1418からテストステップ(next ho p is here?) 1420に移行する。 テストステップ(next hop is here?) 1420において、 エンジン132A(図15A)は、ステップ(route agent) 14 14 (図14B)において定められた移動目的地を現在のエンジン、すなわち エンジン132A(図15A)と比較する。そして、移動目的地が現在のエンジ ン、すなわちエンジン132Aであ7た場合、処理は、テストステップ(nex t hop is here?) 1420 (図14B)がら、ステップ(d eliver agent) 1422に移行する。図1−5A 〜15Eの例 の場合、エージェント150Aは、後述するように、エンジン132Zに転送さ れる。 したがって、移動目的地は現在のエンジン、すなわちエンジン132Aではなく 、処理は、ステップ(deliver agent) 1422 (図14B) には移行しない。しかし、ステップ(del 1ver agent) 142 2及びステップ(deliver agent) 1422に後続する各ステッ プについても、処理を完全なものとするために、以下に説明する。 ステップ(deliver agent) 1422において、エージェント1 50A(図15A)は、チケット1306(図13A)を満足するエンジン13 2A内のブレイスに移動される。ステップ(deliver agent) 1 422 (図14B)は、フローチャート1422 (図14E)に示されてお り、後で詳細に説明する。処理は、ステップ(deliver agent?)  l 422 (図14B)から、テストステップ(exceptiO口?)1 424に移行し、ここでエンジン132A(図15A)は、エージェント150 Aの移動によりエクセブションが送出されたかを判断する。ステップ(deli ver agent) 1422 (図14B)において、エクセプションが送 出されなかった場合、処理はテストステップ1424から終了ステップ1428 に移行する。 終了ステップ1428にて、ステップ(et’Tectuate move)  1410を完了するので、処理は、前述した終了ステップ1412 (図14A )に移行する。 ステップ(deliver agent) 1422 (図14B)において、 エクセブションが送出された場合には、処理は、テストステップ1424からス テップ1426に移行する。ここでエージエン150Aは、フローチャート14 22(図14E)に従って、パーガトリに移動する。バーガトリは、各エンジン 内にあるブレイスであり、プロセスの進入を拒絶することはない。パーガトリに 入る際、エージェント150Aの局所的なバーミツト(ローカルバーミツト:  1ocal permit)は厳しく制限される。例えば、ローカルバーミツト のプロパティ”canGo”には、” true+が設定され、プロバチげca nChrge″、′″canCreate”ごcanDeny” 、 ”can Grant” 、 ” canRestart″、 ” canSend” 、 canTerminate”には、” false”が設定される。プロパティ ゛’ charges”、”age”には、エージェント150Aが、エージェ ント150Aからパーガトリに送ったエクセブションを検出し分析することがで きるとともに、エージェント150Aが、オペレーション”go”の遂行によっ て別のブレイスに移動することができる程度に、大きな値が設定される。 なお、パーミツトに関するプロパティは、アペンディックスAに詳細に説明され ている。 処理は、ステップ1426から終了ステップ1428に移行する。したがって、 前述したように、ステップ(errectuate move) 1410 ( 図14A)は成功のうちに終了する。 前述したように、ステップ(route agent) 1414 (図14B )において判断された移動目的地が現在のエンジン、すなわちエンジン132A であった場合には、処理はテストステップ(next hop is here ?) 1420 (図14B)からステップ(del 1ver agent)  1422に移行する。逆に、移動目的地が現在のエンジンでなかった場合、処 理は、テストステップ(next hop is here?) 1420がら ステップ(Torm destination) 1430に移行する。ステッ プ(form destination)1430において、移動目的地を特定 する目的地オブジェクトが形成される。処理は、ステップ(fora+ des tination) L 430がらステップ(encode agent)  1432に移行する。 このステップ(encode agent) 1432において、エンジン13 2A(図15A)は、アペンディックスBに含まれるテレスクリプトのエンコー ド則に従って、エージェント150Aをエンコードする。アペンディクスBは、 本明細書の一部であり、引用として本明細書の一部を構成している。エージェン ト150Aのエンコードによって、(i)エージェント150Aと、(11)オ ブジェクト14OA、140Bを含むエージェント150Aが所有する全てのオ ブジェクトと、(i i i)エージェント150A及びエージェント150A の所有する全てのオブジェクトがメンバとなっているクラスとが、標準バイナリ 形式にエンコードされたエージェント150A−E (図15B)として表され る。ステップ(form destination) 1430 (図14B) において形成された目的地オブジェクト、すなわち目的地オブジェクト150A −E−D (図21)は、エンコードされたエージェントl 50A−Hに含ま れている。この目的地オブジェクトについては、後で詳細に説明する。図15B に示すように、エンコードされたエージェント150A−Eは、エンジン132 Aの通信下部構造132A−CIに記憶される。 エージェント150A(図15A)は、後で詳細に説明するように、エンコード されたエージェント150A−Hの移動が完了するまで、エンジン132A内に 保存される。 処理は、ステップ(encode agent) 1432からステップ(tr ansfer out) 1434に移行する。このステップ(transfe r out) 1434において、エンジン132A(図15B)は、ステップ (form destination) 1430 (図14B)において形成 された目的地オブジェクトに従って、エンコードされたエージエンt−150A −Hの移動を開始する。この例では、目的地オブジェクトは、エンコードされた エージェント150A−Hの移動目的地としてエンジン132Z(図15B)を 特定する。エンコードされたエージェント150A−Eは、通信下部構造132 AC−CIから、通信リンク102AZを介して、エンジン132Zの通信下部 構造132Z−CIに、通常の2進データとして転送される。通信下部構造13 2A−CIと通信下部構造132Z−CIの間のデータの転送は、アベンディク スCに詳細に記述されている。このアペンデイクスCは、本明細書の一部であり 、引用として本明細書の一部を構成している。前述したように、エンコードされ たエージェント150A−Hの移動は、ステップ(transfer out)  1434において開始される。このように、通信下部構造132A−CIと通 信下部構造132Z−CIと間で、エンコードされたエージェント150A−E の転送が行われている間、フローチャート1410 (図14B)に示すように 、エンジン132Aのプログラム部132A−Pによる処理が行われる。 処理は、ステップ(transfer out) 1434からテストステップ (exception?)1436に移行し、ここでエンジン132Aは、ステ ップ(transfer out) 1434でエクセプションが送出されたか 否か、すなわちエンコードされたエージェント150A−Hの移動の開始が失敗 したか否かを判断する。ステップ(transfer out) 1434が失 敗した場合は、処理は、テストステップ(exception?) 1436か らステップ1426に移行し、前述したように、エージェント150Aはパーガ トリに移動する。逆に、ステップ(transfer out) 1434が成 功した場合、処理は、テストステップ(exception?) 1436から ステップ1438に移行する。 ステップ1438において、エンジン132A(図15B)は、継続中の転送の リストにエージェント150Aを加える。エージェント150Aは、エージェン ト150Aの転送の間、継続中の転送のリストに保持されている。転送が完了し たら、エージェント150Aは、継続中の転送のリストから除かれ、エンジン1 32Aによって廃棄される。エージェント150Aが継続中の転送のリストにあ る間に、エージェント150Aのバーミントが終了した場合、すなわち、エージ ェント150Aの実際の経過時間が、エージェント150Aの実効的バーミツト (eHective per組t)のプロパティ”age”に達した場合には、 エンコードされたエージェント150A−Hの転送は、アボートされる。エージ ェント150Aは、継続中の転送のリストから除かれ、エージェント150Aは 、クラス”PerIlit Expired”のエクセプションを送出し、オペ レーション”go”の遂行は失敗に終わる。プロセスの”実効的バーミツト”に ついては、アペンデイクスAに詳細に説明されている。処理は、フローチャート 1410(図14B)において、ステップ1438から終了ステップ1428に 移行し、ステップ(effectuate move)1410(図14A)が 終了する。 前述したように、ステップ(route agent) 1414において、エ ンジン132A(図15A)は、エージェント150Aの移動目的地を定める。 フローチャー)1414(図14C)は、ステップ(route agent)  1414 (図14B)において実行されるステップを示している。 以下に記述するフローチャート1414(図14C114D)の説明は、図15 A〜15Eに示した例の範囲を越えるような状況についても考慮している。した がって、フローチャート1414(図140.14D)は、図15A−15Hに 示した例とは無関係に説明される。ただし、基本的には、フローチャート141 4 (図14C,14D)は、エンジン132A(図15A)内のブレイス22 0Aからのトリップを行うためにオペレーション°’ go”を遂行するエージ ェント150A(図15A)の動きに基づいて説明される。フローチャート14 14(図14C114D)の説明は、(i)エージェント150Aが、エンジン 132A(図15A)以外のエンジンに転送されるトリップや、(if)エンジ ン132A、132Z、132Bが同一のリージョン内にあるネットワークに限 定されるものではない。また、以下の説明は、エージェント150A(図15A )のトリップを規定するチケット1306(図13A)が、ウェイ、ミーンズ、 テレネーム又は供給者の指定を含むように限定したり、又は含まないように限定 したりするものではない。チケット1306(図13A)は、フローチャート1 414(図14C114D)の流れの中で、(i)エンジン132A(図15A )内のブレイスへのトリップ、(ii)エンジン132Aと同一のリージョン内 のエンジン内のブレイスへのトリップ、又は(i i i)エンジン132Aを 含むリージョンとは異なるリージョン内にあるエンジン内のブレイスへのトリッ プを規定することかできる。 オペレーション’ go”のアーギュメントとして使用されるチケット1306 は、オペレーション゛’go”のために、トリップの目的地及びその他の特徴を 特定するものであることを思い出してほしい。フローチャート1414 (図1 4C)において、エンジン132A(図15A)は、テストステップ1440で 、チケット130B(図13、図18A)のアトリビュート”way”を問い合 わせて、チケット130Bのプロパティ”way”を生成させる。チケット13 06のプロパティ”マay”は、ウェイ1820(図18A)である。ただし、 チケット1306のプロパティ”vay”はオプションであり、0としてしてし まってもよい(図示せず)。 チケット1306がプロパティ”vay”がOの場合、処理はテストステップ1 440から、テストステップ(ticket has provider?)  1460に移行する。このテストステップ1460については、後で詳細に説明 する。逆に、チケット1306のプロパティ゛’ Way”がウェイである場合 、すなわちOでない場合、処理は、テストステップ1440からステップ144 2に移行する。このステップにおいて、エンジン132A(図15A)は、ウェ イ1820(図18A)のアトリビュート”name”を問い合わせて、ウェイ 1820のプロパティ” name”であるテレネームを生成させる。また、ス テップ1442(図14C)において、エンジン132A(図15A)は、その テレネームのプロパティ” authority”を生成し、コピーする。アペ ンディクスAに記載されるようなオクテツトストリングによって表されるリザル トパauthority”は、後述するように、移動目的地を特定するために用 いられる。 処理は、ステップ1442からテストステップ(way has means? ) 1444 (図140)に移行する。そして、このテストステップ1444 でウェイ1820 (図18B)のアトリビュート°” means”が問い合 わされて、ミーンズオブジェクト1822であるウェイ1820のプロパティ° ’ oceans”が生成される。ただし、プロパティ” means”は、オ プションであり、0としてしまってもよい(図示せず)。 ミーンズオブジェクト、すなわちクラス” Means”のメンバは、(i)コ ンピュータ間の通信メディアと、 (11)この通信メディアを介して特定のエ ンジンに向けての転送を行う転送インストラクションとを特定することによって 、エンジンを特定するオブジェクトである。例えば、ミーンズオブジェクトは、 公衆電話網(PSTN)と、エージェントを目的地のエンジンに転送するための 特定のモデムの電話番号を含むモデムインストラクションとを特定する。ミーン ズオブジェクトは、目的地のエンジンにエージェント150Aをルーティングす るのに必要なすべての情報を含む。したがって、チケンh 1306の他のプロ パティは、チケット1306がミーンズオブジェクトを有している場合には、無 視される。 したがって、ウェイ1820のプロパティ°’ meins”がOでない場合、 すなわちミーンズオブジェクト1822(図18B)である場合、処理は、テス トステップ(way has means?) 1444 (514C)からス テップ1446に移行する。 ステップ1446において、ウェイ1822は、移動目的地を規定するウェイと して指定される。なお、ミーンズオブジェクト1822は、最初の移動目的地、 すなわちエージェント150A(図」5A)の最初の転送の目的地のエンジンを 規定するものであり、チケット1306(図18A)によって規定されるトリッ プの目的地(トリップの目的地はエンジンではなくブレイスである。)を規定す るのではない。処理は、ステップ1446から終了ステップ1448に移行し、 フローチャート1414の処理、すなわちステップ(route agent)  1414 (図14B)の処理は、成功のうちに終了する。 エイ1820はミーンズオブジェクトを含んでおらず、処理は、テストステップ (way has means?) 1444 (図140)からテストステッ プ(ticket has name?)+450に移行する。テストステップ (ticket has naa+e?) 1450において、エンジン132 A(図15A)は、チケット1306(図18A)のプロパティ” desti nationName” 、すなわちテレネーム1818を生成し、このテレネ ーム1818を0と比較する。ただし、チケット1306のプロパティ”des tinationName”は、オプションであり、0としてもよい(図示せず )、。 チケット1306のプロパティ” destinationName”が0であ る場合、処理は、テストステップ(ticket has means?) 1 450からテストステップ(ticket has provider?) 1 460に移行する。このテストステップ1460については、後で詳細に説明す る。逆に、チケット1306のプロパティ”dest 1nat 1onNai e”がテレネーム1818である場合には、処理は、テストステップ(tick et has na■e?)1450からステップ1452に移行する。ステッ プ1452において、エンジン132A(図15A)は、エージェント150A の移動目的地への移動経路を規定するウェイオブジェクトを生成する。エンジン 132Aは、上述のステップ1442 (図14C)で生成されコピーされたオ ーソリティと関連するり−ジョンへのウェイオブジェクトを生成するために、及 びテレネーム1818 (図18A)と同じ名前のオーソリティ内にブレイスを 生成するために、ファインダ(後で詳細に説明する)を参照する。このような、 ファインダの使用によるウェイオブジェクトの生成については、後で詳細に説明 する。 処理は、ステップ1452からテストステップ(way out is her e?) 1454に移行する。このテストステップ1454において、エンジン 132A(図15A)は、ステップ1452 (図140)において生成された ウェイオブジェクトが、エンジン132A(図15A)への転送を規定している かを判断する。生成されたウェイオブジェクトが、エンジン132Aへの転送を 規定していない場合、処理は、テストステップ(way out is her e?) 1454から終了ステップ1456に移行する。そして、この終了ステ ップ1456において、フローチャート1414の処理、すなわちステップ(r oute agent) 1414 (図14B)の処理は、成功のうちに終了 する。 一方、生成されたウェイオブジェクトが、エンジン132A(図15A)への転 送を規定している場合、処理は、テストステップ(way out is he re?) l 454からステップ1458に移行する。そして、このステップ 1458において、エンジン132Aは、エージェント150Aがエンジン13 2Aに転送されるべきことを示すフラグを立てる。そして、処理は、ステップ1 458から、テストステップ(ticket has name?) 1480  (図14D)に移行する。このテストステップ1480については、後で詳細 に説明する。 前述したように、チケット1306のプロパティ”way”が0である場合には 、処理は、テストステップ(ticket has name?) 1440か らテストステップ(ticket has provider?) 1460に 移行する。テストステップ(ticket has provider?) 1 460において、エンジン132Aは、チケット1306のプロパティ” de stinationAddress” 、すなわちテレアドレス1814 (図 18A)と、テレアドレス1814のプロパティ”provider”とを生成 する。チケット1306のプロパティ” destinationAddres s”と、テレアドレス1814のプロパティ”prOVider”の、どちらか がOであった場合、処理はテストステップ(ticket has provi der?) 1460から、後で詳細に説明するテストステップ(ticket  has name?)1480に移行する。逆に、チケット1306 (図1 8A)のプロパティ”destinationAddress”及びテレアドレ ス1814のプロパティ” provider”がOでない場合には、チケット 1306は、トリップの目的地を含むリージョンを指定する。そして、処理は、 テストステップ(ticket has provider?) 1460から ステップ1462に移行する。 ステップ1462において、エンジン132A(図15A)は、チケット130 6のプロパティ” destinationAddress”のプロパティ”p rov 1der”によって示されるリージョンのエンジンへの転送を規定する ウェイオブジェクトを生成するためにべ後で詳細に説明するファインダを、参照 する。そして、処理は、ステップ1462 (図14C)からテストステップ1 464に移行する。このステップ1464において、エンジン132A(図15 A)は、ステップ1462においてウェイオブジェクトが正常に生成されたかを 判断する。ステップ1462でウェイオブジェクトが生成された場合、処理は、 テストステップ1464からステップ1472に移行する。このステップ147 2については、後で詳細に説明する。逆に、ステップ1462でウェイオブジェ クトが生成されなかった場合には、処理は、テストステップ1464からステッ プ1466に移行する。 ステップ1466において、エンジン132A(図15A)は、後で詳細に説明 するように、チケット1306のプロパティ” destinationAdd ress″であるテレアドレスのプロパティ” routingAdvice” のアイテムによって示されるリージョンへの転送を規定するウェイオブジェクト を生成するために、ファインダを参照する。テレアドレスのプロパティ、特にプ ロパティ°’ provider”、“routingAdvice”について は、引用として本明細書の一部を構成しているアベンディクスAに、より詳細に 説明されている。簡単に説明すると、テレアドレスのプロパティ”「Outin gAdvice”のアイテムは、0以上のリージョンの供給者を指定する。ここ で、このリージョンは、チケット1306(図18A)によって規定されるトリ ップの目的地としてエージェント150Aを転送させることができると、テレア ドレスの作成者によって想定されている。そして、処理は、ステップ1466  (図14C)から、テストステップ(round?) 1468に移行する。こ のテストステップ1468において、エンジン132A(図15A)は、ステッ プ1466でウェイオブジェクトの生成が成功したかを判断する。ステップ14 66でウェイオブジェクトが生成されなかった場合、処理は、テストステップ( found) 1468から終了ステップ1470に移行し、この終了ステップ 1470において、クラス゛’ Destination Unavailab le”のエクセブションが送出される。逆に、ステップ1466でウェイオブジ ェクトが生成された場合、処理は、テストステップ146Bからテストステップ 1472に移行する。 テストステップ1472において、エンジン132A(図15A)は、ステップ 1462又はステップ1466 (図140)において生成されたウェイオブジ ェクトが、エンジン132A(図15A)への転送を規定しているかを判断する 。 生成されたウェイオブジェクトがエンジン132Aへの転送を規定していない場 合、処理は、テストステップ1472から終了ステップ1474に移行し、この 終了ステップ1474においてフローチャート1414の処理、すなわちステッ プ(route agent) l 414 (図14B)の処理は、成功のう ちに終了する。 逆に、生成さらたウェイオブジェクトがエンジン132A(図15A)への転送 を規定している場合には、処理は、テストステップ1472からステップ147 6に移行する。このステップ1476において、エンジンL32A(図15A) は、チケット1306によって規定されるトリップの目的地を特定するテレネー ムを、チケット1306のプロパティ” destinationAddres s”であるテレアドレスのプロパティ”1ocation”から得る。 エンジン132Aは、便利で効率的ないかなる方法によってテレネームを得ても よい。例えば、エンジン132Aは、キーがオクテツトストリング、例えばオク テツトストリング2000に1 (図2OA)であり、値がテレネーム、例えば テレネーム2000V1であるディクショナリ2000 (図2OA)のような テーブルを使用しても良い。例えば、テレアドレス1814 (図18A)のプ ロパティ” 1ocation”がオクテツトストリング2000に1 (図2 0A)に等しい場合、テレネーム2000V1が、チケット1306(図18A )によって規定されたトリップの目的地であるブレイスを特定するテレネームと して、エンジン132Aによって生成される。 アドレスは、リージョン内に、そのリージョンのエンジンの設計者及び作成者に よって設計され作成されたアドレス体系に従って、割り当てられている。本発明 で開示するインストラクションセットは、特定のアドレス体系を指定するもので はない。各リージョンは、そのリージョンの危も効率的で便利なアドレス体系を 自由に作成することができる。したがって、世界の各主権国家は、郵便サービス を提供する際に、各主権国家自身における住所の体系を設計して作成するのと同 様に、各リージョンは、そのリージョンのための独自のアドレス体系を自由に作 成することができる。当然のことながら、2以上のリージョンにおいて使用され るアドレス体系は、それぞれ同じである必要はない。 アドレス体系を作成する際に、リージョンのエンジンは、1以上のブレイスを含 むロケーションにテレアドレスを割り当てる。テレアドレスを割り当てる際に、 エンジンは、そのテレアドレスによって特定されたロケーション内の1以上のブ レイスを特定するテレネームを生成し記憶する。換言すれば、テレアドレスの割 り当てを行うエンジンは、それぞれのテレアドレスが割り当てられたブレイスの テレネームとテレアドレスとを連結する情報を保持している。このようにして、 エンジン、例えばエンジン132A(図15A)は、特定のテレアドレスを有す るブレイスのテレネームを生成させる。このようなテレネームを配録し生成させ るような特定の機構については、与えられたリージョンでエンジンの設計及び作 成を行う個人又は組織に任される。 処理は、ステップ1476からステップ1478に移行する。このステップ14 78において、エンジン132A(図15A)は、エンジン132Aを含むリー ジョン内のエンジンにエージェント150Aが転送されるべき事を示すフラグを 立てる。処理は、ステップ1478 (図140)からテストステ・ンブ148 0(図14D)に移行する。さらに、処理は、ステップ1458 (図14C) 及びテストステップ1460(これらのステップはどちらもすでに詳細に説明さ れたものである)から、テストステップ1480に移行する。 テストステップ1480 (図14D)において、エンジン132A(図15A )は、チケット130B (図18A)のプロパティ”dest 1nat i onName”がOが、又はテレネーム1818であるかを判断する。チケット 1306のプロパティ”destinationName”が、テレネーム18 18である場合には、処理は、テストステップ1480(図14D)からステッ プ1482に移行する。このステップ1482において、エンジン132A(図 15A)は、テレネーム1818 (図18A)のコピーを生成し、そのコピー は、ステップ1476(図14C)において得られたテレネームに代わって、移 動目的地のテレネームとなる。そして、処理は、ステップ1482(図14D) からステップ1483に移行する。また、チケット1306のプロバチ4 ”  de5jilationName”がOである場合、処理は、テストステップ1 480からステップ1483に直接移行する。 ステップ1483において、エンジン132A(図15A)は、後で詳細に説明 するようにファインダと相談し、前述したようにステップ1476 (図140 )又はステップ1482 (図14D)で生成されたテレネームによって指示さ れるブレイスへの転送を規定するウェイオブジェクトを生成する。そして、処理 は、ステップ1483からテストステップ1484に移行する。このテストステ ップ1484において、エンジン132A(図15A)は、ステップ1458  (図14C)で転送の目的地がエンジン132A (図15A)であることを示 すフラグが立てられたかを判断する。そして、フラグが立てられていない場合、 処理はテストステップ1484から、後述するテストステップ1490に移行す る。逆に、フラグが立てられていた場合、エージェント150A(図15A)の 目的地は、エンジン132A内の他のブレイスであり、処理は、テストステップ 1480 (図14D)からテストステップ1486に移行する。 テストステップ1486において、エンジン132A(図15A)は、ステップ 1483(図14D)で生成されたウェイオブジェクトが、エンジン132A( 図15A)への転送を規定しているがを判断する。生成されたウェイオブジェク トがエンジン132Aへの転送を規定していない場合、処理は、テストステップ 1486(図14D)から終了ステップ1488に移行する。この終了ステップ 1488i、:おいて、クラス−Destination Unavailab le” (り1クセプションが送出され、フローチャート1414 (図14C ,14D)の処理、すなわちステップ(route agent) 1414  (図14B)の処理が終了する。逆に、生成されたウェイオブジェクトがエンジ ン132A(図15A)内のブレイスへの転送を規定している場合、処理は、テ ストステップ1486(図14D)からテストステップ1490に移行する。 テストステップ1490において、エンジン132A(図15A)は、ステップ 1478 (図14C)で転送の目的地がエンジン132A(図15A’)を含 むリージョンであることを指示するフラグが立てられたかを判断する。このフラ グが立てられていない場合、処理はテストステップ1490がら終了ステップ1 496に移行し、この終了ステップ1496において。フローチャート1414 (図14C114D)、すなわちステップ(route agent) 141 4 (図14B)による処理が成功の内に終了する。逆に、フラグが立てられて いない場合、エージェント150A(図15A)を、エンジン132Aを含むリ ージョン内の他のブレイスに移動させる必要があるので、処理は、テストステッ プ1490 (図14D)からテストステップ1492に移行する。テストステ ップ1492において、エンジン132A(図15A)は、ステップ1483( 図14D)で生成されたウェイオブジェクトが、エンジン132A(図15A) を含むリージョン内のブレイスへの転送を規定しているかを判断する。生成され たウェイオブジェクトがエンジン132Aを含むリージョン内のブレイスへの転 送を規定していない場合、処理は、テストステップ1492 (図14D)から 終了ステップ1494に移行する。この終了ステップ1494において、クラス ’ Destination Unavailable”のエクセプションが送 出され、フローチャート1414 (図14C,14D)の処理、すなわちステ ップ(route agent) 1414 (図14B)の処理が終了する。 ステップ1452.1462.1466.1483 (図140)について以上 に説明したように、エンジン132A(図15A)は、チケット1306(図1 3A)によって規定されたトリップの目的地への転送における、エージェント1 50Aのルートを定めるために、ファインダを使用する。ファインダは、エージ ェントの移動目的地を定めるために使用される。例えば、チケット1306 ( 図13A)は、トリップの目的地として、エンジン132B内のブレイス220 B(図15A)を規定する。しかし、エージェント150Aは、エンジン132 Bに到達するためには、最初にエンジン132Zに転送されなければならないの で、エンジン132Zが移動目的地となる。ファインダ2050 (図20B) は、第2のテレネームによって特定されるブレイスに向かう過程における移動目 的地のエンジンのテレネームを生成させるために用いられる。実施例において、 生成されたテレネームは、エンジンによって処理されるエンジンブレイスを特定 することによって、エンジンを特定する。第2のテレネームは、特定のブレイス 、又はオーソリティを識別することができ、これにより、識別されたオーソリテ ィの全てのブレイスを特定する。テレネームは、アペンディックスAに一層詳細 に説明されている。 ステップ1452(図140)のコンテキストにおいて、第2のテレネームは、 テレネーム1818 (図18A)であり、このテレネーム1818は、チケッ ト1306のプロパティ” destinationName−である。ファイ ンダ2050 (図20B)かテレネーム1818に関する情報を含まない場合 、ステップ1452 (図140)のコンテキストにおいて、第2のテレネーム は、前述したようにステップ1442において生成されコピーされるオーソリテ ィを特定化するテレネームである。ステップ1462のコンテキストにおいて、 第2のテレネームは、チケット1306のテレアドレス1814 (図18A) のプロパティ”provider”において特定されたオーソリティを識別する 。ステップ1466 (図14C)のコンテキストにおいて、第2のテレネーム は、チケット1306のテレネーム1814(図18A)のプロパティ゛’ r outingAdvice”であるリストのアイテムにおいて特定されたオーソ リティを識別する。ステップ1483 (図14D)のコンテキストにおいて、 第2のテレネームは、チケット1306のプロパティ″destinat io nName”がOでない場合、チケット1306のテレネーム1818 (図1 8A)であり、その他の場合は、ステップ1476(図140)において生成し たテレネームである。ファインダ2050 (図20B)については、後で、ス テップ1483(図14D)のコンテキストにおいて説明する。なお、ステップ 1483(図14D)のコンテキストにおいて、第2のテレネームは、チケット 1306のテレネーム1818 (図18A)である。 ステップ1452 (図14C) 、1462.1466.1483 (図14 D)において、ファインダ2050 (図20B)の使用によって生成されたテ レネームは、生成されたテレネームによって識別されたエンジンへの転送を規定 するウェイオブジェクトを形成するために用いられる。 エンジン132Aは、ファインダ2050 (図20B)の使用によって、エー ジェント150Aを転送すべきエンジン、すなわち”移動目的地“を定める。フ ァインダ2050は、トリップの目的地からトリップの目的地に向かってのエー ジェント150Aの移動における移動目的地を、エンジン132Aが判断できる ようなものであれば、どのようなデータ構造であってもよい。実施例において、 ファインダ2050は、ディクショナリであり、このディクショナリは、キーが テレネームで、値もテレネームとなっている。キー、例えばテレネーム2050 に1〜2050に6は、オーソリティを特定する。値、例えばテレネーム205 0VI〜2050V6は、それぞれに対応するオーソリティによって特定された ブレイスに到達する際に経過するエンジンを特定する。ファインダ2050のテ レネーム2050に1 (図20B)が、7−L/ネーム1818のものと同一 のオーソリティを持つ場合には、テレネーム2050V1は、移動目的地として 、エンジン132Zを特定する。 本発明の一実施例によれば、ファインダ2050のキーは、テレネーム2050 V7に組み合わされたニル(零)2050に7を含む。テレネーム2050V7 は、直接的に又は間接的に、ネットワーク1500(図15A)や、ネットワー ク1500に接続され得るネットワークの実質的な部分に関する情報を有するエ ンジンを識別する。したがって、テレネーム2050V7によって識別されたエ ンジンは、チケット1306(図18A)に規定されたトリップの目的地に向か うエージェント150Aの経路の決定に、最も適したエンジンである。ファイン ダ2050 (図20B)のキーであるテレネームが、テレネーム1818と同 一のオーソリティのものではない場合、ニル2050に7に組み合わされたテレ ネーム2050V7 (図20B)は、移動目的地を特定する。以下、具体的な 例を示す。 小型のパーソナルコンピュータシステム内においてエンジン132Aが実行され 、エンジン132Aが、1つのオーソリティの1以上のブレイスをインターブリ ートするものと想定する。さらに、エンジン132Z(図15A)が、大型のマ ルチユーザメインフレームコンピュータシステム内において稼働し、このコンピ ュータシステムが多くの異なったオーソリティのブレイスをインターブリートし 、このコンピュータシステム内を、多くの異なったオーソリティの多くのエージ ェントが移動するものと想定する。このような場合、エンジン132Aのファイ ンダは、非常に小さく、特定のオーソリティのブレイスへのエージェントの転送 について、はとんど情報をもたらさないであろう。しかし、エンジン132Zの ファインダは、より広範で包括的であると思われるので、特定のオーソリティの ブレイスに向かう、特定のエージェントのルーティングの際に、情報を提供でき る可能性が高い。このような場合、エンジン132Aのファインダは、トリップ の目的地のブレイスのオーソリティに関する情報を、エンジン132Aのファイ ンダが含まない場合には、エンジン132Zを移動目的地として特定するテレネ ームをニルと組み合わせる。 ファインダ2050 (図20B)を用いても移動目的地を定めることができな かった場合、エンジンは、次のインプリメンテーション、又は、エンジンの供給 者によって選定されたインプリメンテーションに従った他の処理を、インプリメ ントする。チケット1306(図18A)がサイテション1816を有する場合 、エンジン132A(図15A)は、(i)エージェント150Aの現在のブレ イスにテレネームを生成し、後で説明するステップに従って、引用されたクラス のブレイスを見い出すように努めたり、(西)テレネームを生成せずに、エクセ プションを送出して、チケット1306(図18A)をあいまいであるとして拒 絶したり、又は(iii)あいまいに指定されたトリップの目的地として指定さ れたブレイスのテレネームを生成させたりすることができる。同様に、チケット 130Bがサイテションを持たない場合、エンジン132A(図15A)は、( 1)テレネームを生成せずに、エクセブションを送出して、チケット130B  (図18A)をあいまいとして拒絶したり、又は(百)あいまいに指定されたト リップの目的地として指定されたブレイスのテレネームを生成させたりすること ができる。 図15A−15Hの例では、エンジン132A(図15A)は、ファインダ20 50(図20B)と相談して、エージェント150A(図15A)をエンジン1 32Bのブレイス220Bに到達させるために、エージェント150Aをエンジ ン132Zに転送させるように判断する。したがって、エンジン132Zのエン ジンブレイスは、エージェント150Aの移動目的地であり、エージェント15 0Aのエンジン132Zへの転送を規定するウェイオブジェクトが生成される。 このように、フローチャート1414 (図14C114D)に従った処理によ って、チケット1306によって規定されたトリップの目的地に向がってエージ ェント150Aを移動させるために、エージェント150A(図15A)の転送 を規定するウェイオブジェクトが生成される。 フローチャート1410 (図14B)のコンテキストにおいて前述したように 、エージェント150A(図15A)は、ステップ1422 (図14B)にお いて、他のブレイスに配送される。図15A〜15Hの実施例においては、エー ジェント150Aは、エンジン132A内のどのブレイスにも配送されないもの としてきた。しかし、記述を完全にするために、エンジン132A内のブレイス へのエージェント150Aの配送について説明する。エンジン132A内のブレ イスがチケット1306(図13A)によってトリップの目的地として規定され ている場合に、エージェント150A(図15A)は、エンジン132A内のブ レイスに配送される。あるブレイスへエージェントが配送されるということには 、(i)そのエージェントを配送するべき特定のブレイスを選定すること、(i i)そのエージェントをそのブレイスの占有者とすること、及び(iii)オペ レーション”go”をそのエージェントについて継続させることが含まれる。ス テップ(del 1ver agent) 1422は、フローチャート142 2 (図14E)によって示されている。 フローチャート1422 (図14E)による処理は、ステップ(for al l current places) 1422Aから開始する。ステップ(f or all current places) 1422A及びステップ(N EXT)1422cは、現在処理を行っているエンジンであるエンジン132A (図15A)によって実行中の各ブレイスが、ステップ1422B、1422D 、1422E (図14E)に従って処理されるように、処理ループを形成する 。後述するフローチャート1422のコンテキストにおいて、”サブジェクトプ レイス”は、ステップ(for all current places) 1 422A及びステップ(NEXT) 1422 Cによって形成される処理ルー プの繰り返しの際に、処理されるブレイスである。そして、この処理ループの繰 り返しのために、すなわちエンジン132A(図15A)が実行中の各ブレイス のために、処理は、ステップCror all current places ) 1422 Aから、テストステップ(p I acesatisfies  ticket?) 1422 Bに移行する。 現在処理を行っているエンジンは、テストステップ(place 5atisf ies ticket?)1422Bにおいて、サブジェクトプレイスがチケッ ト13o6を満足するかを判断する。 サブジェクトプレイスがチケット1306を満足しない場合、(i)処理は、テ ストステップ(place 5atisfies ticket?) 1422  B (図14E)から、ステ、ブ(NEXT) 1422 Cを経て、ステッ プ(for al l current places) 1422Aに移行し 、新たな処理ループの反復が開始するか、又は(if)処理は、後述するように 、終了ステップ1422Iに移行する。逆に、サブジェクトプレイスがチケット 1306を満足する場合、処理は、テストステップ(place 5atisf ies ticket?) 1422 Bからステップ(entering)  1422 Dに移行する。 後述するように、ブレイスは、エージェント等のプロセスの進入を、オペレーシ ョン”entering”が正常に遂行されたときに許可し、オペレーション” entering”の遂行の際にエクセプションが送出されたときに拒絶する。 オペレーション″entering”の遂行については後述する。 処理は、ステップ(entering) 1422 D (図14E)からテス トステップ(exception?) 1422 Eに移行し、このテストステ ップ1422Hにおいて、現在処理を行っているエンジンは、サブジェクトプレ イスによるオペレーション”enter団&゛の遂行で、エクセブションが送出 されたかを判断する。サブジェクトプレイスによるオペレーション”er+Le ring”の遂行でエクセプションが送出され、それによりサブジェクトプレイ スへのエージェント150−Aの進入を拒絶した場合、処理は、テストステップ 1422Eがらステップ(NEXT)1422Cを経てステップ(for al l current places) 1422Aに移行し、ステップ(for  allcurrent places) 1422 A及びステップ(NEX T) 1422 Cによって規定された処理ループの新たな反復が開始されか、 以下に説明する終了ステップ1422Iに移行する。 その反対に、サブジェクトプレイスによってオペレーション”entering ”が正常に遂行され、サブジェクトプレイスへの進入をエージェント150A( 図15A)に対して許可した場合、処理は、テストステップ1422E(図14 E)からステップ1422Fに移行する。エージェント150A(図15A)は 、ステップ1422Fにおいて、サブジェクトプレイスの占有者とされる。さら に、エージェント150Aがサブジェクトプレイスの占有者であることを示すた めに、エージェント150Aのプロパティがセントされる。 処理は、ステップ1422Fからステップ1422Gに移行する。このステップ 1422Gにおいて、エージェント150Aによって遂行されるオペレーション ”gO゛°が行われる。前述したように、エージェント150Aは、図15A〜 15Eの例では、エンジン132Aのブレイスには配送されない。したがって、 エージェント150Aのためのオペレーション” go”は、後述するように、 エンジン132B(図15E)のブレイス220Bに、エージェント150A( 図15A)が配送されるまでは完了しない。処理は、ステップ1422G(図1 4E)から終了ステップ+422Hに移行し、この終了ステップ1422Hにお いて、フローチャート1422の処理、すなわちステップ(deliver a gent) 1422 (図14B)の処理が成功のうちに終了する。 ステップ(for at l current places) 1422 A  (図14E)及びステップ(NEXT)1422Cによって規定される処理ル ープに従って、エンジン132A(図15A)中に存在するすべてのブレイスが 処理されたが、処理が終了ステップ1422Hに到達していない場合、すなわち 、エンジン132A(図15A)内のどのブレイスも、チケット1306を満足 せず、オペレーション” entering″が正常に行われてもエージェント 150Aの占有を許可しない場合、処理は、ステップ(for all cur rent places) 1422A (図14E)から終了ステップ142 2Iに移行する。この終了ステップ1422 Iにおいて、クラス″Desti nation Unavailable”のエクセブションが送出され、フロー チャート1422の処理、すなわちステップ(deliver agent)  1422 (図14B)は終了する。このように、ステップ(del 1ver  agent) 1422では、トリップの目的地としてチケット1306(図 13A)によって特定されたブレイスにエージェント150A(図15A)が配 送されるが、又は、クラス゛’ Destination Unavailab le”のエクセプションが送出される。 前述したように、図15A〜15Eの実施例において、エンジン132Zは、移 動目的地である。そこで、エージェント150Aは、ステップ1432(図14 B)において、エンコードされたエージェント150A−E (図15B)を形 成するように、エンコードされる。このエンコードされたエージェント150A −Eは、ステップ(transfer out) 1434 (図14B)にお いて、エンジン1面述したように、通信下部構造132A−CIがら通信リンク 102AZを介して通信下部構造132Z−CI (図15C)に至るエンコー ドされたエージェントl 50A−E (図15B)の転送は、ステップ143 4 (図14B)において開始される。エンコードされたエージェント150A −E(図21)には、プロバチ4 ” naffie”ごaddress” 、  ” data−を有する目的地150A−E−Dが付加されている。ここで、 プロパティ”name” 、”address”、”data’は、それぞれテ レネーム2102、テレアドレス2104、オクテツトストリング2106であ る。テレネーム2102及びテレアドレス2104は、エンコードされたエージ ェント150A−Eの移動目的地を規定する。目的地150A−E−D (図2 1)によって規定される移動目的地は、エンジン132Z(図15B)でもエン ジン132Bでもよい。 本発明の一実施例では、ステップ1430(図14B)において形成された目的 地150A−E−D (図21)は、エンコードされたエージェント150A− Eの移動目的地として、エンジン132Z(図15B)を規定する。このとき、 通信下部構造132A−CIは、エンコードされたエージェント150A−Eを 1322の通信下部構造132Z−CIに直接転送する。また、本発明の他の実 施例では、目的地1 !50A−E−D (図21)は、エンコードされたエー ジェント150A−Eの移動目的地としてエンジン132B(図15B)を規定 する。 後者の場合には、通信下部構造132A−CIは、目的地150A−E−D ( 図21)に従ってエンジン132Bに向かうエンコードされたエージェント15 0t’s、Eを、通信下部構造132Z−CI (図15B)又はエンジン13 2Zを介して転送させるための情報及びロジフクを収納する。 前述したどちらの実施例においても、エンジン132Z(図150)がエンコー ドされたエージェント150A−Eを受けると、エンジン132Zは、ステップ (route agent) l 414 (図14B)において、フローチャ ート1400−1(図14F)に示すような、システムオペレーション”tra nsrerln”を遂行する。 エンジン1322 (図150)は、ステップ1402−I (図14F)にお いて、目的地150A−E−D(図21)への転送を規定するウェイオブジェク トを生成させることによって、システムオペレーション°’ transrer ln”の遂行を開始する。エンジン132Zは、ファインダ2050 (図20 B)に関連して前述したように、エンジン132Z(図150)内のファインダ と相談することによって、ステップ1402−I (図14F)において、ウェ イオブジェクトを生成する。 処理は、ステップ1402−1 (図14F)がらテストステップ(way o ut 1shere?) 1404− Iに移行する。このテストステップ(w ay out is here?) 1404−1において、エンジン132Z (図150)は、ステップ1402−I(図14F)で生成されたウェイオブジ ェクトがエンジン132Z(図15c)への転送を規定しているかを判断する。 生成されたウェイオブジェクトが、エンジン132Z(図15C)を移動目的地 として特定していない場合、すなわち目的地150A−E−D (図21)がエ ンジン132B(図15B)を移動目的地として規定している場合、処理は、テ ストステップ(way out is here?) 1404−■ (図14 F)からステップ(transfer out) 1406− Iに移行する。 このステップ1406−Iにおいて、エンジン132Z(図150)は、上述の ステップ(transfer out) 1434 (図14B)と同じように 、目的地150A−E−D (図21)に従って、エンコードされたエージェン ト150A−Hの転送を開始する。 処理は、ステップ(transfer out) 1406− Iからステップ 1408−Iに移行する。このステップ1408−1において、エンジン132 Z(図150)は、ステップ1438 (図14B)について前述したように、 継続中の転送のリストに、エンコードされたエージェント150A−Eを加える 。処理は、ステップ1408−I (図14F)から終了ステップ1410−1 に移行し、システムオペレーション”transferln”は正常に終了する 。 ステップ1402−Iで生成されたウェイオブジェクトが、エンジン132B( 図15C)への転送を規定している場合、エンコードされたデータ150A−E は、生成されたウェイオブジェクトに従って転送される。生成されたウェイオブ ジェクトがエンジン132Zへの転送を規定している場合、処理は、テストステ ップ(way out is here?) 1404− I (図14F)か らステップ1412−■に移行する。このステップ1412−Iにおいて、エン ジン132z(図150)は、エンコードされたされたエージェント150A− Eからチケット1306(図13A、18A)を抽出し、チケット1306のコ ピーを形成する。処理は、ステップ1412−1からステップ1414−1に移 行し、ここでチケットのコピーのプロパティ゛way”がクリア、すなわち0に される。処理は、ステップ14141からステップ(route agent)  1416− Iに移行し、ここでエンジン132Zは、エンコードされたエー ジェントl 50A−Hの転送を規定するウェイオブジェクトを生成する。ステ ップ1416−1において遂行されるプロセスは、フローチャート1414 ( 図14c、14D)に示したプロセスと同一である。このステップ1416−I のコンテキストでは、フローチャート1414の説明において使用されたチケッ ト1306に代えて、ステップ1412−Iにおいて作成したチケットのコピー を用いて、フローチャート1414と同様に処理を行う。ステップ1416−I が終了したら、処理は、テストステップ(wayout is here?)  1418−1に移行する。 テストステップ(way out is here?) l 4 L 8−1に おいて、エンジン132Z(図15C)は、ステップ1416−I (図14F )において生成されたウェイオブジェクトが、エンジン132Z(図150)へ の転送を規定しているかを判断する。生成されたウェイオブジェクトが、エンジ ン132zへの転送を規定している場合、処理は、テストステップ(way o ut is here?) 1418− I C図14F)から、後述するステ ップ(decode agent) 1428− Iに移行する。また、生成さ れたウェイオブジェクトが、エンジン132Z(図15C)への転送を規定して いない場合、処理は、テストステップ(way out is here?)  1418−1(図14F)からステップ(form destination)  1420− Iに移行する。 図15A〜15Fの実施例において、エンコードされたエージェント150A− Eから抽出されコピーされたチケット!306 (図13A)は、エンジン13 2B(図15C)のブレイス220Bへのトリップを規定する。したがって、処 理は、ステップ(form destination) 1420− Iに移行 する。 ステップ(form destination) 1420− Iにおいて、エ ンジン132Z(図15C)は、前述のステップ(form destinat ion) 1430 (図14B)と同じように、目的地150A−E−D ( 図21)を形成する。処理は、ステップ(t。 +v destination) 1420− I (図14F)からステップ (transfer out) 1422−Iに移行する。このステップ142 2−Iにおいて、エンコードされたエージェント150A−E(図150)は、 ステップ(transfer out) 1406−■ (図14F)について 前述したように、目的地150A−E−D (図21)に従って転送される。 処理は、ステップ(transfer out) 1422− Iからステップ 1424−Iに移行する。このステップ1424−Iにおいて、エンジン132 Z(図150)は、ステップ1438 (図14B)について前述したように、 継続中の転送のリストに、エンコードされたエージェント150A−Eを加える 。処理は、1424−I (図14F)から終了ステップ1426−Iに移行し 、ここでシステムオペレーション”けansferln”は正常に終了する。図 15A−15Eの実施例において、エンコードされたエージェント150A−E は、前述したエンジン132Aから132Zへのエンコードされたエージェント 150A−Eの転送と同じように、エンジン132Zからエンジン132B(図 15D)に転送される。 目的地のエンジンの視点から だオペレーション” 0”エンジン132Bが、 通信下部構造132B−CI (図15D)に、エンコードされたエージェント 150A−Eを受け取ったとき、エンジン132Bは、エンジン132Zについ て前述したのと同様に、システムオペレーション”transferln”を遂 行する。エンジン132Bは、ステップ1402−I (図14F)において、 目的地150A−E−D (図21)に従って、転送を規定するウェイオブジェ クトを生成させる。そして、テストステップ(way out is here ?) 1404−■ (図14F)において、生成させたウェイオブジェクトが 、エンジン132B(図15D)への転送を規定しているかを判断する。エンジ ン132BC図15D)は、チケット1306(図13A)によって規定された トリップの目的地であるブレイス220Bを処理している。したがって、生成さ れたウェイオブジェクトは、エンジン132B(図15D)への転送を規定して 11)る。そこで、エンジン132Bによる処理は、テストステップ(way  out is here?) 1404−I(図14F)からステップ1412 −Iに移行する。 ステップ1412−I、1414−I、1416−1において、エンジン132 Bは、エンコードされたエージェント150A−Eからチケット1306 (図 13A)を抽出してコピーし、チケットのコピーのプロパティ゛’ way”を クリアする。そして、エンジン132Bは、このチケットのコピーをチケット1 306の代りに使用して、前述のフローチャー1−1414 (図14C1図1 4D)iこ従って、エンコードされたエージェント150A−Hのルーティング を行う。テストステップ(way out ’+s here?) 1418− 1 C図14F)tこお111で、エンジン132B(図15D)は、ステップ (route agent) 1416− I (図14F)において生成させ たウェイオブジェクトが、エンジン132B (図15D)への転送を規定して いるかを判断する。エンジン132B(図15D))よ、ブレイス220Bの処 理を行うので、生成されたウェイオブジェクトiこよって規定された目的地は、 エンジン132B(図15D)である。したがって、エンジン132Biこよる 処理は、テストステップ(way out is here?) 1418−  I (図14F)力・らステップ(decode agent) 1428−  I lこ移tテする。 このステップ(decode agent) 1428− Iにお(1て、エン ジン132B+よ、アペンディックスBに説明したエンコード則の逆を適用する ことにより、通信下部構造132B−CI中のエンコードされたエージェント1 50A−E (図15D)からエージェント150Aをデコードし、データ部1 32B−D(図15E)にエージェント150Aを格納する。ネットワーク15 00は異種のコンピュータから構成されることがあるため、エンジン132A( 図15A)内のエージェント150Aの形式は、エンジン132B (図15E )内のエージェント150Aを表わすには不適当であることが有り得る。エンジ ン132Aとエンジン132Bとの間にエージェント150Aを転送させる際に 、標準形式のエンコードされたエージェント150A−Eを使用するのであれば 、エンジン132Bは、エージェント150Aを転送させていないときには、エ ンジン132Bにとって最も好都合な任意の形式でエージェント150Aを表現 することができる。 エンジン132Bによる処理は、ステップ(decode agent) 14 28− I (図14F)からステップ(deliver agent) 14 30− Iに移行する。ステップ(deliver agent) l 430 − Iにおいて、エージェント150Aは、ステップ(deliver age nt) 1422 (図14B)について前述したように、フローチャート14 22(図14E)に従って配送される。ステップ(deliver agent ) 1430−■のコンテキストにおいて、チケットは、今や実際のチケット1 30B (図13A)であり、仮定されたチケットではない。ステップ(del  1ver agent) 1430−I(図14F)において、エージェント 150A(図15E)は、ブレイス220Bの占有が許可されており、エージェ ント150Aによって遂行されるオペレーション”go”は、正常に終了する。 そして、処理は、ステップ(deliwer agent) 1430− I  (図14F)から終了ステップ1426−Iに移行する。この終了ステップ14 26−Iにおいて、フローチャート1400−I (図14F)の処理、すなわ ちエンジン132Bによるシステムオペレーション” transferln” の遂行が成功のうちに終了する・フローチャート1400−I (図14F)の 各ステップを遂行する間にエクセプションが送出されたときは、フローチャート 1450=I (図14G)のステップが実行される。ステップ1452−I  (図14G)において、エージェント150Aは、エンコードされたエージェン ト150A−E(図15D)がらデコードされる。エージエン目50Aは、エン ジン132B (図15D)に既に転送されているので、エージェント150A は、エンジン132Aに関連して前述したように、継続中の転送のリスト中には 保持されていない。したがって、エージェント150Aの実行を継続するために は、エージェント150Aをデコードすることが必要になる。処理は、ステップ 1452−I (図14G)からステップ(deliver agent to  purgaLory) 1454− Iに移行する。このステップ1454−  I i、:おいて、x−’;xンt−150A1.t、ステー/ブ1426  (図148)i、:関連して前述したように、バーガトリに配送される。そして 、処理は、ステップ(deliver agent to purgatory ) 1454− I (図14G)から終了ステップ1456−Iに移行し、こ こでフローチャート1450−1による処理が終了する。 バーガトリを占有しているエージェント150Aは、ステップ(deliver  agent)1454−1の結果として、エクセブションを送出する。その結 果、エージェント150Aによって遂行されたオペレーション゛′go”は失敗 となる。 したがって、エージェント150A(図15A〜15E)は、オペレーション” gOooを遂行することによって、エージェント150Aと、エージェント15 0Aによって所有されるオブジェクト、例えばオブジェクト140A、140B とのネットワーク1500を介しての転送を指示する。オペレーション”go” の遂行後は、エージェント150Aについて、オペレーション”go”の次のイ ンストラクションのインターブリートが続けられる。 図13Bは、エージェント15OAによるオペレーション゛go”の遂行直後に おけるエージェント150Aの内部状態及び実行状態の一部を示している。オペ レーション”go”の遂行の結果であるチケットスタブ1308は、スタック1 304のトップにある。ブレイス220Bは、エージェント150Aが占有する ブレイスを特定するエージェント150Aのプロパティであり、これにより、エ ージェント150Aがブレイス220Bを占有することを指示する。 佳人と及び゛出: オペレーション”enterin”及びオペレーション”e xitin”前述したように、ブレイス220Bは、オペレーションenter ing”の遂行によって、エージェント150Aの進入を許可したり拒絶したり する。前述のフローチャート1400(図14A、14B)で表される本実施例 では、ブレイス220Bがオペレーション”entering”を遂行するよう に要求する前に、エンコードされたエージェント150A−E (図15A〜1 5E)をエンジン132Bに転送する。本発明の他の実施例では、エージェント 150Aが、通信リンク102AZを介して通信下部構造132Z−CIへ転送 され更に通信リンク1022Bを介してエンジン132Bに転送される前に、ブ レイス220Bは、オペレーション”entering”を遂行するように指示 される。ブレイス220Bは、オペレーション”entering”を遂行する ことによって、ブレイス220Bを占有する許可をエージェント150Aに与え たり拒絶したりする。しがし、本発明は、待ち時間の長い広域ネットワークにお いても使用されることを想定されている。 ′°待ち時間” (Iatency)という用語は、この明細書では、本発明の 技術分野で通常使用されているように、情報の送出者が情報を最初に送出した時 と、情報の受領者が情報を最初に受領した時との間の時間を表すものとして用い られている。 待ち時間の長いネットワークの場合、短いメツセージでも、目的地に到達するま でに、多くの時間を必要とすることがある。このような場合、ブレイス220B (図15A)がオペレーション゛°61jering”の遂行を要求してリザル トを待つということには、オペレーション”entering”を遂行するため に、この要求を、通信リンク102AZを介して通信下部構造132Z−CIへ 送り、さらに通信リンクl 022Bを介してエンジン132Bへ送ることによ って、ブレイス220Bへ送出するということと、この逆の経路を経て返される 、オペレーション”entering”によって生じたリザルトを待つというこ ととが含まれる。 エンジン132Bにエージェント150Aを転送する前に、このような動作を行 うと、エンジン132A、132Bの間の待ち時間のほぼ2@の時間だけ、エー ジェント150Aをエンジン132Bに転送する時間が遅延される。したがって 、本発明の性能を向上させるため、エージェントl 50Aをエンジン132B に転送するまで、ブレイス220Bによるオペレーション゛’ enterin g”の遂行を遅延させる。 オペレーション°entering”については、オペレーション”go”の結 果、エージェント+50A (図15E)が、ブレイス220Bに進入するとい うコンテキストの中で既に説明したが、オペレーション” entering” は、ブレイス220B内でのプロセスの生成により、プロセス(エージェント又 はブレイス)がブレイス220Bに進入したために、遂行されることもある。プ ロセスの生成についてはアペンディクスAに詳細に説明されている。 図22Aは、オペレーション゛entering”の遂行直前における、エージ ェント150Aの実行状態を表している。プロセス、例えばエージェント150 Aの実行状態を以下に詳細に説明する。オペレーション”entering”は 、エンジン132Bの要求によって遂行され、オペレーション”enterin g”の遂行は、エージェント150A(図15E)の実行状態中に記録される。 エージェント150A又はブレイス220B、好ましくはブレイス220Bの許 可は、オペレーション゛′entering”の遂行によって得られる。 フレーム2200は、エージェント150Aの実行状態の一部分であり、ブレイ ス220Bによって遂行されるオペレーション”entering”の動的な状 態を記録する。フレーム2200は、現在のスタックであるスタック2202を 含む。 スタック2202は、トップから順に、コンタクト2208、バーミツト220 6及びチケット2204を有する。 コンタクト22o8は、ブレイス220Bに進入しようとしているプロセスとし て、エージェント150Aを特定する。以下及びアベンディクスAに詳細に説明 するように、コンタクト2208は、プロパティとして、プロパティ”subj ectName”及びプロパティ”5ubject”を有する。オペレーション ”entering”において、通常はエージェント150Aのリファレンスで ある、コンタクト2208のプロパティ”5ubject“は、ニル(0)であ る。したがって、ブレイス220Bがx−ジエント150Aに進入を許可する前 は、ブレイス220Bにはエージェント150Aに対するリファレンスが与えら れない。コンタクト2208のプロパティ”s ubj ec t Name” は、ブレイス220Bへの進入を要求するエージェントとシテ、エージェント1 50Aを特定するテレネームである。 バーミント2206は、ブレイス220Bに入ろうとしているエージェントの提 案されたローカルバーミツトである。バーミツト2206は、”byProte ctedRe「”をパスしており、したがって、オペレーション”enteri ng”の遂行によっては変更されない。アーギュメント及びリザルトのパス、特 に保護されたリファレンス(例えば” byProtectedRef”)のパ スについては、後で詳細に説明する。エージェントのローカルバーミツトは、与 えられたブレイスにある間、エージェントの能力を規定する。例えば、エージェ ント150Aは、能力及びアローワンスのサブセットを規定するバーミツト22 06を、ブレイス220Bに供給することによって、ブレイス220Bにある間 に、そのネイティブバーミツトの能力及びアローワンスのサブセントにそれ自身 を制限する。 チケット2204は、’ byProtectedRef”をパスする。また、 チケット2204は、レスポンディングブレイス220Bに移動するために使用 されるチケットと同じであり、エージェント150Aが別のブレイスから入ろう としていることを、レスポンディングブレイス220Bに知らせる。チ乞ット2 204がニル(O)である場合、プロセスは、ブレイス220B内でのプロセス の生成によって、レスポンディングブレイス2200OBへの進入を試みる。ク ラス”Place”によって規定された、ブレイスを容認するかを判断する方法 、すなわちオペレーション” entering”をインプリメントする方法は 、常に、クラス” 0ccupancy Denied”のメンバであるエクセ ブションを送出し、レスポンディングブレイスへのプロセスの進入を拒絶する。 しかし、本発明のユーザは、特定の条件のもとにプロセスの進入を許可する、ク ラス”Place”のサブクラスを規定する。これは、エージェントがあるブレ イスから別のブレイスへ移動するために、実際上必要なことである。 ブレイスによって実行されるオペレーション”entering”のインプリメ ンテーションは、このブレイスがインスタンスであるクラスによって提供又は承 継される特別な方法によって規定されているので、各ブレイスは、ネットワーク 中の他のブレイスとは異なった方法で、オペレーション“’ entering ”をインプリメントすることができる。フローチャート2260 (図22C) は、オペレーション”entering”のインプリメンテーションの一例を示 している。したがって、これらの各ステップは、ステップ1422 (図14B )でオペレーション” entering”を遂行の際に、ブレイス220Bに よって行われる。 コンタクト2208 (図22A)、バーミツト2206及びチケット2204 は、それぞれステップ2262 (図22C)、2264.2266において、 スタック2202からポツプされる。処理は、次にテストステップ2272に移 行し、ここでチケット2204がニル(0)と比較される。チケット2204が ニル(0)の場合、エージェント150Aは局地的に生成されており、処理は終 了ステップ2274に移行し、ここでオペレーション”entering”は成 功のうち終了する。し力叱、上述の説明及び後述する説明から明らかなように、 ブレイスは、ある状態のもとではオペレーション”entering”が失敗し 、ブレイス内のプロセスの生成が阻止されるように、規定することができる。 チケット2204がニル(0)でない場合、処理は、テストステップ2272か らテストステップ2276に移行する。テストステップ2276において、バー ミツト2206のプロパティ”charges”が、バーミツト2206のアト リビュート”charges”を問い合わせることによって生成され、バーミツ ト2206のプロパティ”charges”が1000と比較される。バーミツ ト2206のプロパティ”charges”が1000より多い場合、処理は、 テストステップ2276から終了ステップ2278に移行し、そこでクラス”0 ccupancy Denid”のエクセブションが送出され、レスポンディン グブレイスへのエージェントの進入が拒絶される。 バーミント2206のプロパティ”charges”が1000に等しいかそれ よりも小さい場合、処理は、テストステップ2276から終了ステップ2274 に移行し、そこでオペレーション”entering”は成功のうちに終了し、 エージェントはレスポンディングブレイスに進入することが許可される。なお、 図220の実施例において、比較のために用いた1000という数値は、説明の ために任意に選ばれたものに過ぎず、当然のことながら1000以外の数値であ ってもよい。 フローチャート2260の方法は、リソースが限定されているパーソナルコンピ ュータシステム内おいて動作するエンジンによって処理されるブレイスのための 、オペレーション”entering”の適切なインプリメンテーションの例を 示している。上述したように、又アベンディクスAに説明するように、バーミン トのプロパティ”charge”は、処理の許可である。したがって、提案され たローカルバーミツトにおいて、大量の計算及びリソースが必要であることを大 きなチャージアロワンス(charges allowance)によって指示 するエージェントは、フローチャート2260に従って、進入が拒絶される。し たがって、小型のパーソナルコンピュータシステムのオーナーは、そのパーソナ ルコンピュータシステムを、ローカルに作りだされたプロセスや、他の場所で作 りだされたエージェントによる比較的廉価な訪問に限定することができる。 ブレイス220B (図22B)によるオペレーション”entering”の 遂行直後は、オペレーション”entering”はいかなる結果も生じていな いので、スタック2202は空である。 前述したように、ブレイスは、オペレーション“exiting”の遂行によっ て、プロセスの退出、すなわち占有の終了をノートする。フローチャート14o O(図14A、14B)のコンテキストにおいて、オペレーション”go”の結 果、エージェント、すなわちエージェント150Aがブレイス22OAを退出す る。そして、このエージェント150Aのブレイス220Aからの退出の結果と して、ブレイス220Aは、オペレーション”exiting”を実行する。オ ペレーション”exiting”は、プロセス(エージェント又はエージェント )が破壊されて、ブレイス22OAを占有しなくなったときにも、プロセス22 0Aによりて遂行される。 プロセスの破壊はアベンディクスAにより詳細に説明されている。クラス”Pl ace”によって規定されたオペレーション”exiting”のインタフェー スは、図23A、23Bに示されている。 オペレーション”eXiting”は、エンジン132A(図15A)の要求に よって遂行されるので、オペレーション”exiting”の動的状態を記録し ているフレーム2300 (図23A)は、ブレイス220A (図15A)の 実行状態の一部でもなければ、エージェント150Aの実行状態の一部でもない 。実際、ブレイス220Aがオペレーション”exiting”を遂行している 時点においては、エージェント150Aは、もはやブレイス220Aを占有して いない。エンジン132Aは、”エンジンプロセス”の一部として、新しい実行 状態を作り出す。エンジンプロセスは、オペレーション”exiting”又は オペレーション”parting″の遂行のためにエンジンによって作りだされ たプロセスである。オペレーション”parting”は、以下及びアペンディ クスAに詳細に説明されている。 図23Aは、オペレーション”exiting”の遂行の直前におけるフレーム 2300を示している。フレーム2300は現在のスタックである、スタック2 302を有している。スタック2302は、オペレーション”exiting″ のアーギュメントとして、トップから順に、コンタクト2308、バーミツト2 306及びチケット2304を備えている。 コンタクト2308は、ブレイス220Aからを退出するプロセスとして、エー ジェント150A(図15A)を特定する。以下及びアペンディクスに詳細に説 明するように、コンタクト2308は、プロパティとしてプロパティ”subj ectName”及びプロパティ”5ubject”を有している。コンタクト 2308 (図23A)のプロパティ”subjectName”は、エージェ ント150A(図15A)を特定する。また、通常エージェント150A(図1 5A)に対するリファレンスであるコンタクト2308 (図23A)のプロパ ティ”5ubject”は、オペレーション”exiting”によりボイドさ れる。したがって、ブレイス220Aには、退出するエージェント150Aに対 するリファレンスは残されない。 バーミツト2306 (図23A)は、レスポンディングブレイス220A ( 図15A)から退出しているプロセス、すなわちエージェント150Aの現在の 口 。 −カルバ−ミツトである。プロセスのローカルバーミツトは、ブレイスを占有し ている間のプロセスの能力を制限する。ローカルバーミツトについては、アベン ディクスAに詳細に説明されている。バーミツト2306 (図23A)は、” byProtectedRef“をパスしているので、オペレーション“2xi ting”の遂行において、ブレイス22OA (図15A)によって変更され ることはない。 退出するプロセスのローカルバーミツト、すなわちバーミツト2306 (図2 3A)は、ブレイス22OAを占有していた間、退出するプロセスが使用してい たリソースのタイプ及び量を定めるために、レスポンディングブレイス220A (図15A)を実行しているエンジンによって使用される。そのため、退出する プロセスのオーソリティは、それに含まれるリソース及びブレイス22OAにつ いて使用するために、ビル(BILL)されることができる。使用されたリソー スのタイプ及び量は、パーミツト2306 (図23A)と、退出するプロセス に進入を許可したときに、オペレーション”entering”でアーギュメン トとして使用されたパーミツトとを比較することによって、判断される。オペレ ーション”entering”については、既に詳細に説明されており、また、 アペンディクスAにも詳細に説明されている。 例えば、ブレイス22OA (図15A)は、オペレーションパenterin g’を遂行する際に、オペレーション”exiting”の遂行の際に使用され たパーミツト2306(図23A)と後で比較するために、提案されたローカル パーミツト、例えばパーミツト2206 (図22A)を格納しておく。以下及 びアベンディクスAに詳細に説明するように、コンタクト、例えばコンタクト2 3o8は、プロパティ” 5ubjectNotes”を有する。実施例では、 例えば、ブレイス220Aは、コンタクト2208 (図22A)のプロパティ ” 5ubjectNotes”内に、オペレーション” entering” を遂行する際のパーミント2206を格納している。そして、オペレーション”  exiting”を遂行する際に、ブレイス22OA (図15A)は、パー ミント2206 (図22A)とパーミツト2306 (図23A)とを比較す ることによって、ブレイス22OA (図15A)を占有している間にエージェ ント150Aが消費するリソースの量を判断する。ここで、パーミツト2206  (図22A)は、コンタクト2208のプロパティ” 5ubjectNot esN内に格納されており、パーミツト2306 (図23A)は、オペレーシ ョン゛’ exiting”の遂行の際に消費される。 チケット2304 (図23A)は、” byProtectedRer”をパ スしており、チケット1306 (図13A)に等しい。このチケットは、エー ジェント150A(図15A)によって、トリップの目的地を特定するために用 いられるとともに、オペレーション” go”の遂行によりエージェント150 Aがレスボンディングブレイス220Aを退出しようとしていることを、レスボ ンディングブレイス220Aに通知するために用いられる。チケット2304( 図23A)がニル(0)である場合、エージェント150A(図15A)は、エ ージェント150Aの破壊により、レスボンディングブレイス22OAを退出す る。 フレーム2300 (図23B)は、プレイ7.22OA (図15A)による オペレーション”exiting”の遂行の直後の状態を示している。オペレー ション”exiting”は結果を返さないので、スタック2302 (図23 B)は、空(エンプティ)である。フレーム2300 (llK23B) は、 ブレイス220A (図15A)やエージェント150Aの実行状態の一部分で はなく、エンジンプロセスの実行状態の一部である。したがって、オペレーショ ン゛’ exiting”の遂行によって送出されたいかなるエクセプションも 、ブレイス220Aやエージェント150Aに影響を与えることはない。オペレ ーション”exiting”を遂行する際に、ブレイス220Aは、エージェン ト150Aの退出及びエージェント150Aによって所有されるオブジェクト1 40A、140Bの退出をノート(検知)する。 オブジェクトインタチェンジ 1つのブレイスから別のブレイスへエージェントを転送するために必要とされる 時間は、エージェントに含まれるオブジェクトの転送を、目的地のブレイス内に 同等のオブジェクトが存在していないオブジェクトのみに制限することによって 、実質的に減少する。エンジン132Aがらエンジン132Zに移動するエージ ェント150Aが、エージェント150Aと、エージェント150Aの所有する オブジェクトとが、メンバとなっているクラスを表すクラスオブジェクトを含む ため、このようなオブジェクトの転送の制限は特に重要である。クラスオブジェ クトは通常は、非常に大きく、そして1つのエージェント及びそのエージェント が所有するオブジェクトがメンバとなっているクラスは、通常は非常に多数ある ので、これらの全てのクラスオブジェクトを転送することは実用的でない。した がって、エンジン132Aからエンジン132B (図15A)にエージェント 150Aを転送する際に、エンジン132B内のクラスオブジェクトによって表 されないクラスを表すクラスオブジェクトのみを、エージェント150Aと共に エンジン132Bに転送することが望ましい。 ネットワーク1500(図15A〜15E)内の多くのブレイスにおいて同等の オブジェクトを持つと思われるオブジェクトは、ミックスインクラス゛’ In terchanged”のメンバであり、プロパティ°’ digesじを有す る。ミックスインクラス” Interchanged”のメンバは、′”イン タチェンジドオブジェクト′°と呼ばれる。 インタチェンジドオブジェクトのプロパティ゛’ digest”から成るオブ ジェクトは、インタチェンジドオブジェクトのパダイジェスド°とも呼ばれる。 インタチェンジドオブジェクトは、エンジン、例えばエンジン132A又はエン ジン132B(図15A)によって、インタチェンジドオブジェクトのダイジェ ストと同じようなダイジェストを持つ、インタチェンジドオブジェクトのクラス の他のインスタンスと同等であると見なされる。そのダイジェストは、全ての他 のものから第1のインタチェンジドオブジェクトを区別する目的に適したオブジ ェクトである。例えば、インタチェンジドオブジェクトの標準的な2進表示の数 学的ハンシュは、インタチェンジドオブジェクトの多くのクラスに適している。 クラスオブジェクト、すなわちクラス” class”のオブジェクトは、以下 及びアペンディクスAに詳細に説明するように、定義済みクラス及びユーザ定義 クラスを定義し、コンピュータネットワーク1500内のエンジン132A間に おいて震動しない。したがって、クラスオブジェトクトは、インタチェンジドオ ブジェクトである。 転送するデータの量を減少するための、すなわち、エージェント及びエージェン トが所有するオブジェクトを、ブレイスから次のブレイスへ転送する際に必要な 時間を減少させるためのダイジェストの使用について、フローチャート2400 .2450 (図24A及び図24B)に示す。 フローチャート2400 (図24A)は、インタチェンジドオブジェクトを考 慮したときの、エージェント150A(図15A)及びエージェント150Aが 所有するオブジェクトを、転送元のエンジン132Aから目的地のエンジン13 2Bに転送するプロセスを表している。あるエージェントは、そのエージェント によって所有される全てのオブジェクトと、そのエージェントがメンバとなって いる各クラスと、そのエージェントが所有するオブジェクトがメンバとなってい る各クラスとを′°包含゛する。前述したように、エージェント150A及びエ ージェント150Aに包含される全てのオブジェクトは、シツピングボックスに パンケージされ、エンコードされ、エンジン132Bに転送される。エージェン ト150A及びエージェント150Aに包含されるオブジェクトをパッケージに する場合、エンジン132Aは、ステップ2402 (図24A)において、エ ージェント150Aが包含する全てのオブジェクトを集める。処理は、ステップ 2402からステップ(FOREACII 0BJECT) 2404に移行す る。このステップ2404は、ステップ(NEXT) 2412とともに、ステ ップ2402において集められた各オブジェクトを処理する処理ループを形成す る。処理は、ステップ(FOREACli 0BJECT) 2404からテス トステップ2406に移行し、このステップ2406において、エージェント1 50Aが包含する各オブジェクトのクラスのメンバ構成をチェックし、各オブジ ェクトがダイジェストを持つかを判断する。 前述したように、またアベンディクスAに一層詳細に示すように、ミックスイン クラス”Interchanged”のメンバは、ダイジェストを含むことがで きる。したがって、オブジェクトがダイジェストを有する場合、そのオブジェク トはインタチェンジドオブジェクトである。インタチェンジされたオブジェクト がダイジエストを持たない場合、すなわちインタチェンジされたオブジェクトの アトリビュート”digesじがニル(0)である場合、そのインタチェンジさ れたオブジェクトは、インタチェンジされていないオブジェクトとして取り扱わ れる。 オブジェクトがダイジェストを持たない場合、そのオブジェクトがインタチェン ジされたオブジェクトであっても、処理は、テストステップ2406からステッ プ2410に移行する。このステップ2410において、オブジェクトが、アペ ンディクスBのエンコード則にしたがってエンコードされ、シツピングボックス に収納される。また、オブジェクトがダイジェストを有する場合、処理はステッ プ2406からステップ2408に移行する。このステップ2408において、 そのオブジェクトのダイジェストと、そのオブジェクトが1つのインスタンスで あるそのクラスのサイテションとが、アベンディクスBのエンコード則に従って エンコードされ、パーツボックスに収納され、そのパーツボックスが順次、シツ ピングボックスに収納される。 処理は、ステップ2408又はステップ2410から、ステップ(NEXT)  2412に移行し、このステップ2412から、ステップ(FOREACH0B JECT) 2404に移行する。エンジン132Aは、ステップ(FOREA CII 0BJECT) 2404とステップ(NEXT) 2412で形成さ れる処理ループにおいて、エージェント150Aに包含される各オブジェクトに ついて、ステップ2406.2408.2410のプロセスを繰り返す、ステッ プ(FOREAC)l 0BJECT) 2404とステップ(NEXT) 2 412とで形成される処理ループに従って、ステップ2402において集められ た全てのオブジェクトが処理されたら、処理は、ステップ(FOREAC)l  0BJECT)2404からステップ(transfer out encod ed agent) 2414に移行する・ステップ(transfer ou t encoded agent) 2414において、前述したように、転送 元のエンジン132Aによって、シツピングボックスはエンコードされ、目的地 のエンジン132Bに転送される。したがって、目的地のエンジンに転送される エンコードされたエージェントは1.ダイジェストを持たないエージェントが包 含する全てのオブジェクトと、相互変換可能でダイジェストを有するエージェン トが含有する全てのオブジェクトのダイジェストとを包含している。ステップ( transfer out encoded agent) 2414は、ネッ トワークを介したエンジン間の相互作用を示すため、2重線で囲まれたボックス によって表されている。エンジン間のバイナリデータのこのような交換は、上述 した通りであり、またアベンディクスCにも記載されている。 フローチャート2450 (図24B)は、目的地のエンジン132Bの観点か ら見たときの、エンコードされたエージェント150Aの転送を示している。目 的地のエンジン132Bは、ステップ(transfer in encode d agent) 2452において、転送元のエンジン132Aからバイナリ データとしてエンコードされたエージェントを受け取る。図15A〜15Hのコ ンテキストにおいて前述したように、エンコードされたエージェントは、エンジ ン132Aからエンジン132Bに至る過程において、1以上の中間のエンジン 、例えばエンジン132Zを通過することができる。 処理は、ステップ(transfer in encoded agent)  2452からステップ2454に移行する。このステップ2454において、エ ンコードされていたエージェントはデコードされ、エージェントが包含するエー ジェントオブジェクトを中身とするシツピングボックスが再構成される。ダイジ ェストを持たず、エージェントによって包含される各オブジェクトと、ダイジェ ストを有するエージェントによって包含されるインタチェンジドオブジェクトの ダイジェストとは、ステップ(FOREACH0BJECT) 2456及びス テップ(NEXT) 2482によって形成される処理ループに従って、目的地 のエンジン132Bによって処理される。この処理ループの繰り返しにより、ス テップ2454においてデコードされたオブジェクトが1つずつ処理される。 処理は、ステップ(FOREACH0BJECT) 2456からテストステッ プ(digest?)2464に移行する。このテストステップ2464におい て、目的地のエンジン132Bは、オブジェクトがダイジェストであるかを判断 する。オブジェクトがダイジェストでない場合、処理は、テストステップ246 4から直接、ステップ(NEXT) 2462に移行する。一方、オブジェクト がダイジェストである場合、そのオブジェクトは、”サブジェクトダイジェスト “と呼ばれ、処理は、テストステップ2464からテストステップ2466 ( object here?)に移行する。テストステップ2466において、目 的地のエンジン132Bは、サブジェクトダイジェストがエンジン132Bに存 在するインタチェンジドオブジェクトと同等であるかを判断する。この判断につ いては、後で詳細に説明する。 同等のダイジェストを有するインタチェンジドオブジェクトが、ステップ246 6において見出された場合、処理は、テストステップ2466からステップ(s ubstitute object for digest) 2468に移行 する。このステップ2468において、ステップ2454でサブジェクトダイジ ェストとして表されるインタチェンジドオブジェクトにデコードされたオブジェ クト内の全てのリファレンスを、テストステップ2466で見出されたインタチ ェンジドオブジェクトに対するリファレンスに置き換えることによって、サブジ ェクトダイジェストは、インタチェンジドオブジェクトに置き換えられる。そし て、処理は、ステップ2468からステップ2462に移行する。 一方、同等のダイジェストを有するインタチェンジドオブジェクトが、テストス テップ2466において見出されなかった場合、処理は、テストステップ246 6からステップ2470に移行する。このステップ2470では、サブジェクト ダイジェストがダイジェストのリストに付加される。このとき、ダイジェストの リストが存在しない場合には、新しいリストが作りだされる。そして、処理番よ 、ステップ2470から次のステップ2462に移行する。 処理は、ステップ(NEXT) 2462からステップ(FOREACH0BJ ECT) 2456に移行する。ステップ2454においてデコードされた全て のオブジェクトが、ステップ(FOREACH0BJECT) 2456とステ ップ(NEXT) 2462で形成される処理ループに従って処理されたら、処 理は、ステップ(FOREACH0BJECT) 2456から、後述するテス トステップ(l ist?) 2476に移行する。 エンジン132Bは、ステップ2466において、インタチェンジ可能なオブジ ェクトを、以下のように検索する。各エンジンは、同等のインタチェンジ可能な オブジェクトを交換することができる1以上のブレイスを備えている。そして、 これらの各ブレイスは、ブレイス内に存在するインタチェンジ可能なオブジェク トの”リポジトリ(保管場所)”を備えている。ディクショナリ2490 (図 24D)は、ブレイス220B (図15D)のりポジトリである。ディクショ ナリ2490 (図24D)のキーは、クラス、すなわちクラス2400に1, 2400に2.2400に3.2490に4である。各クラスには、ディクショ ナリが組み合わされている。例えばクラス2490に1〜2490に4には、デ ィクショナリ2490A、2490B、2490C12490Dがそれぞれ組み 合わされている。 各ディクショナリ2490A〜2490Dの一般的な構造は同一である。そこで 、ディクショナリ2490Aを例にして説明する。ディクショナリ2490Aの キーはダイジェスト、すなわちダイジェスト2490AK1.2490AK2. 2490AK3である。これらの各ダイジェストには、インタチェンジドオブジ ェクトが組み合わされている。例えば、ダイジェスト2490AK1〜2490 AK3には、インタチェンジされたオブジェクト2490AV1.2490AV 2.2490AV3が、それぞれ組み合わされている。 インタチェンジドオブジェクトは、2つのステップにより、ディクショナリ24 90.2490Aから検索される。前述したように、クラスのサイテションとダ イジェストは、インタチェンジドオブジェクトを表すために、パーツボックスに よって使用される。第1のステップにおいて、サイテションによりて参照された クラスに組み合わされたディクショナリ2490A〜2490Dのうちの1つの ディクショナリを検索するために、サイテションが使用される。例えば、サイテ ンヨンがクラス2490に1を参照している場合、ディクショナリ249OAが 検索される。 第2のステップでは、パーツボックスに含まれるダイジェストと同等のダイジェ ストと、インタチェンジドオブジェクトとの間の関連について、検索されたディ クショナリが探索される。そして、その関連が見いだされたら、インタチェンジ ドオブジェクトが検索される。また、関連が見いだされなかった場合、そのブレ イスは、パーツボックス内のダイジェスト及びサイテションによって表されるイ ンタチェンジドオブジェクトと同等のインタチェンジドオブジェクトを備えてい ない。このように、ディクショナリ2490(図24D)のようなりポジトリは 、同等のインタチェンジドオブジェクトをブレイスが含んでいるかを判断し、こ のようなオブジェクトを検索するだに用いられる。 前述したように、処理は、ステップ(FOREACH0BJECT) 2456 からテストステップ(l ist?) 2476に移行する。このテストステッ プ2476において、目的地のエンジン、例えばエンジン132Bは、ダイジェ ストのリストがステップ2470において作り出されたかを判断し1作り出され ている場合には、リストが空であるかどうかを判断する。ダイジェストのリスト が存在しないか、又は空である場合、処理は、テストステップ(list?)  2476から、ステップ(activateけaveling agent)  2478に移行する。このステップ2478において、エンジン132Bは、エ ージェント150Aの実行についてスケジューリングして、移動中のエージェン ト150Aを活性化する。そして、処理は、ステップ(activate tr aveling agent) 2478から、終了ステップ2479に移行し 、この終了ステップ2479において、エンジン132Bによって行われたエー ジェント150Aの転送が成功のうちに終了する。 もし、ステップ2470においてリストが作り出され、そのリストが少なくとも 1つのダイジェストを含んでいた場合、目的地のエンジン132Bにおいて、少 なくとも1つのインタチェンジドオブジェクトについては、同等のオブジェクト を見い出すことができなかったこととなる。このとき、処理は、テストステップ (list?) 2476から、ステップ(hold travel ing  agent) 2471に移行する。このステップ2471において、移動中の エージェント150Aは、中断された状態で、エンジン132B内の保留待ち行 列に保持される。そして、処理は、ステップ(hold travel ing  agent) 2471からステップ2472に移行する。 ステップ2472において、目的地のエンジン、例えばエンジン132Bは、オ ブジェクト検索エージェント、すなわち” ORA (object retr ieval agent)”を作り出す。ORAは、転送元のエンジン、例えば エンジン132A内から、フローチャート2480 (図240)に従って、イ ンタチェンジドオブジェクトを検索する。処理は、ステップ2472 (図24 B)からステップ2474に移行し、そこでORAは、オペレーション”1iv e“を遂行するように指示される。 そして、これにより、ORAのインターブリートが開始される。後述するように 、ORAの主な動きは、フローチャート2480 (図24C)によって示され る。 そして、処理はステップ2474 (図24B)から終了ステップ2479に移 行し、エンジン132Bによって行なわれた、エージェント150Aの転送が成 功のうちに終了する。なお、移動中のエージェント150Aは活性化されておら ず、シンピングボックスの形状とされる。そして、エージェント150Aは、シ ツピングボックスから再構成され、後述するように、ORAによって再び活性化 される。 フローチャート2480 (図24C)は、ORAの主な処理を表している。ス テップ2482において、ORAは、転送元のエンジン、例えばエンジン132 Aに、オペレーション”go”の遂行によって移動する。処理は、ステップ24 82からステップ2484に移行し、このステップ2484において、ORAは 、エンジン132A内のオブジェクトリボジトリ、例えばデイレクショナリ24 90(図24D)から、ダイジェストのリストに含まれるダイジェストと同等の ダイジェストを有する各オブジェクトのコピーを収集する。処理は、ステップ2 484からステップ2485に移行する。 ステップ2485において、ORAは、目的地のエンジン、例えばエンジン13 2Bに、オペレーション゛gO°°の遂行によって移動する。そして、ORAは 、ダイジェストのリストに含まれていないオブジェクトのコピー、すなわち目的 地のエンジン内に同等のオブジェクトが存在していないオブジェクトのコピーを 持って、目的地のエンジンへ戻ってくる。処理は、ステップ2485からステッ プ2486に移行する。このステップ2486において、ORAは、上述したよ うに、収集してきたオブジェクトを、エージェント150入内のダイジェストと 置き換える。そして、処理は、ステップ2486からステ・ノブ(activa te traveling agent) 2487に移行し、このステップ2 487におし)でエージェント150Aは、シツピングボックスから再構成され 、前述したように、活性化される。 ノ・ノビングポノクスからのエージェント及びエージェントに包含されるオブジ ェクトの再構成については、アベンデイ・ソクスDに詳細に説明されている。そ して、処理は、ステップ2487から終了ステップ2488に移行し、この終了 ステップにおいてORAの主な処理が成功のうちに終了する。 このように、同等のインタチェンジドオブジェクトが、目的地のエンジン内(こ は存在していないインタチェンジドオブジェクトのみを、ネットワークの通信メ ディアを介して転送することによって、効率が向上する。 オペレーション” 5end” エージェントは、オペレーション” 5end”を遂行することによって、同時 にII)くつかのブレイスに移動することができる。図25は、エージェント1 50Alこよるオペレーション”5end”の遂行前のネットワーク2500の 状態を示して11)る。図25の例において、エンジン132へのデータ部13 2A−D内のエージェント150Aは、エンジン132Bのデータ部132B− D内のブレイス220Bにそれ自身のクローンを転送し、それと同時に、エンジ ン132Cのデータ部132C−D中のブレイス220Cにそれ自身のクローン を転送するように構成されている。換言すれば、エージェント150Aは、エー ジェント150Aのクローンの目的地のブレイスとしてブレイス220B、22 0Cを特定イヒする2つのチケフトのリストを、オペレーション″5end”に アーギュメントとして供給して、オペレーション゛’ 5end”を遂行する。 エージェント150Aのクローン番ヨ、エージェント150Aのコピーであり、 このコピー(よ、エージェント150Aの実行状態を含めて、エージェント15 0Aを複写すること4こよって形成される。 そして、このコピーは、新しい名前と識別子が割り当てられ、エンジンをこよる 実行のためのスケジューリングが行われてご活性化”される。クローン各二つ0 てはアペンディンクスAにおいて一層詳細に説明されている。 オペレーション”5end”のインタフェースは、図26A〜26C)こ示され て0る。図26Aは、オペレーション°” 5end”の遂行の直前のフレーム 2602を示している。このフレーム2602は、エージェント150Aの実行 状態の一部分であり、エージェント150Aによって実行されたオペレーション ”5end”の動的状態を記録する。エージェントを含め、プロセスの実行状態 (こつ0て(よ、以下及びアペンディックスA、Bに詳細に説明されている。 スタック2604は、フレーム2602に含まれてll)る。スタック2604 Gよ、アーギュメントがそれからポツプされ、オペレーション”5end”の遂 行時:こ結果がブツシュされるスタックである。現在のスタックである”カレン トスタック”については、以下及びアペンディックスA、Bに一層詳細に規定さ れ、説明されている。 大文字”T“によって示されたスタック2604のトップには、チケット260 8.2610をアイテムとするリスト2606がある。リスト2606のチケッ ト2608.2610は、それぞれ、エージェント150Aに対応するクローン が行なうトリップを定義している。オブジェクト2618.2620は、それぞ れ、チケット2608.2610のプロパティ”travelNote“である 。オブジェクト2618.2620は、オペレーション”5end’の遂行によ って作り出された各クローンの識別を可能とする。例えば、チケット2608. 2610を形成する場合に、エージェント150Aは、それぞれのテキストが” Able”、“Baker”である文字列を、オブジェクト2618.2620 内に格納する。このような場合に、チケット2608に対応するエージェント1 50Aのクローンは、チケット2608のプロパティ” travelNote ”から文字列”Able”を検索する。同様に、チケット2610に対応するエ ージェント150Aのクローンは、チケット2610の’ travelNot e”から文字列” Baker”を検索する。 なお、各クローンを識別する方法は、このような方法に限定されるものではなく 、本発明のユーザの自由である。例えば、オブジェクト2618内に値が1のイ ンチジャを格納し、これによってリスト2606内のチケット2608の位置を 表し、同様に、オブジェクト2620内に値が2のインチジャを格納し、これに よってリスト2606内のチケット2610の位置を表すようにしてもよい。 パーミツト2622.2624は、それぞれ、チケット2608.2610のプ ロパティ” destinationPerIIit”であり、インチジャ26 26.2628は、それぞれ、バーミツト2622.2624のプロパティ”  charges”である。 バーミツト2612は、エージェント150Aのプロパティ”permit”で あり、したがって、エージェント150Aの内部状態の一部を表している。上述 したように、又アペンディックスAに説明するように、バーミツト2612は、 エージェント150Aの実行を制限する。ブーリアン2614は、バーミツト2 612のプロパティ”cansend”である。ブーリアン2614の値が”f alse”であれば、オペレーション”5end”は失敗し、クラス”Perm it Violated“のエクセプションを送出する。バーミツト2612の プロパティ“charges”は、インチジャ2616である。アペンディック スAに一層詳細に説明するように、インチジャ2616は、エージェント150 Aのパーミツト処理のアローワンスを表している。 図25の例において、現在の位置がブレイス220Aであるエージェント150 Aは、エージェント150Aのクローンをブレイス220B、220Cに転送す る。エージェント150は、リスト2606 (図26A)のチケットによって 規定された各目的地のブレイスに、それ自身のクローンを送出する。したがって 、オペレーション”5end”の遂行は、リスト2606中のチケットの数と同 じ数だけ、エージェント150Aのクローンを作り出す。図27A、27Bは、 オペレーション”5end’″の簡単な実施例を表している。ここで、エンジン 132A(図27A)は、リスト2606 (図26A)内のチケットと同じ数 だけ、エージェント150Aのクローンを、データ部132A−D内に作り出す 。この例では、リスト2606 (図26A)は、2つのチケット、すなわちチ ケット2608.2610を備えている。したがって、エンジン132Aは、エ ージェント150A(図27B)の2つのクローン、すなわちエージェント15 0A−1、エージェント150A−2を作り出す。なお、より効率的な実施例、 すなわちエージェントのクローンの作成を遅らせた実施例について、後はど説明 する。 エージェント150Aのクローンを形成する場合、バーミツト2622.262 4は、作り出されたクローンのプロパティ”permit”とされる・換言すれ ば・バーミツト2622は、エージェント150A−1のプロパティ”per組 む”であり、バーミツト2624は、エージェント150A−2のプロパティ”  permit”である。エージェント150A−1、エージェント150A− 2を作り出す際に、エージェント150A、すなわちクローンが形成されたエー ジェントのバーミツト2612の対応するアローワンスから、バーミツト262 2.2624のアローワンスが差し引かれる。換言すれば、エージェント150 A−1,150A−2が作り出された時に、エージェント150Aのチャージア ローワンス、すなわちエージェント150Aのバーミツトのプロバチ4” ch arges”であるインチジャ2616からインチジャ2626,2628の値 が引算される。インチジャ2616がインチジャ2626.2628の合計以下 の場合には、オペレーション”5end”は失敗し、クラス°’ Permit  Violated”のエクセブションが送出される。これは、エージェント1 50Aのチャージアローワンスが、エージェント150Aから作り出されたクロ ーンのチャージアローワンスの合計よりも、小さいからである。 したがって、オペレーション”5end”のアーギュメントとして供給されたチ ケットの一部分であるバーミツトは、オペレーション”5end″の遂行により 作り出されたクローンに固有のバーミツトである固有のバーミツト(ネイティブ パーミツト: native permit)を形成する。チケット2608. 2610は、エージェント150Aのそれぞれのクローンが行なうトリップを規 定する。そして、ノτ−ミツト2622.2624は、それぞれチケット260 8.2610のプロノくティ”permit”であり、オペレーションの対象と なっているエージェントであるレスポンディングエージェント150Aのそれぞ れのクローンのローカルノ(−ミツトである。 本発明の第2の実施例によれば、オペレーション”5end”は、リスト260 6に追加されるアーギュメントとして、インチジャ(図示せず)を使用する。レ スポンディングエージェント150Aのクローンを作り出す際に、それぞれのネ イティブパーミツトは、エクセプションに関連して前述したように形成されるが 、各ネイティブパーミツトのプロパティ“charges”の初期の値は、使用 されるイン代わりにインチジャリストを使用する点が異なる。そして、リスト2 606 (図26A)内のチケットのプロパティ″perfflit”から導か れた、各ネイティブバーミツトのプロパティ”charges”の初期の値は、 使用されるインチジャリストにおける位置が、ネイティブバーミツトを導くのに 使用されたチケットのリスト2606における位置と同じであるインチジャと等 しくする。例えば、リスト2606において位置1にあるチケット2608に対 応するクローンのネイティブパーミツトのプロパティ”charges”の初期 の値は、使用されるインチジャリスト(図示せず)において位置lにあるインチ ジャに等しい。同様に、リスト2606において位置2にあるチケット2610 に対応するクローンのネイティブパーミツトのプロパティ”charges”の 初期の値は、使用されるインチジャリストにおいて位1!!2にあるインチジャ に等しい。 本発明第4の実施例によれば、オペレーション”5end”は、リスト2606 に加えて、アーギュメントとして、バーミツト(図示せず)を使用する。そして 、レスポンディングエージェント150Aのクローンを作り出す際、各ネイティ ブパーミントは、使用されるバーミツトのコピーとする。 本発明の第5の実施例は、前述の第4の実施例と同様であるが、バーミツトのリ ストが単一のバーミツトの代わりに使用される点で異なる。そして、リスト26 06(図26A)中のチケットに対応するそれぞれのクローンの各ネイティブバ ーミツトの初期の値は、使用されるバーミツトのリストにおける位置が、各クロ ーンに対応するチケットのリスト2606における位置と同じであるバーミツト と等しくする。例えば、リスト2606において位置1にあるチケット2608 に対応するクローンのネイティブパーミツトの初期の値は、使用されるバーミツ トのリスト(図示せず)において位置1にあるバーミツトに等しい。同様に、リ スト2606において位l1i2にあるチケット261Oに対応するクローンの ネイティブパーミツトの初期の値は、使用されるバーミツトのリストにおいて位 置2にあるバーミツトに等しい。 上述の各実施例において、レスボンディングエージェント150Aのバーミツト であるバーミツト2612のプロパティ”charges”は、オペレーション ”5end”の遂行において作り出されたエージェントのクローンのネイティブ パーミツトの各プロパティ”charges”の合計分だけ減少する。 エージェント150Aの各クローンは、各クローンに対応するチケットによって 、目的地のブレイスとして特定されたブレイスに転送される。例えば、チケット 2608は、エージェント150A−1の目的地としてブレイス220Bを特定 し、チケット261Oは、エージェント150A−2の目的地としてブレイス2 20Cを特定する。各クローンは、各クローンに対応する目的地のエンジン、例 えばエンジン132Bやエンジン132Cと、転送元のエンジン132Aとの協 調によって、それぞれの目的地のブレイスに移動する。オペレーション”5en d゛°に遂行における、エージェントのクローン、例えばエージェント150A −1やエージェント150A−2のブレイスからブレイスへの転送は、既に詳細 に説明したオペレーション゛’ go”と同様である。 オペレーション”5end’の遂行において、エージェント150Aがエージエ ン1−150A−1,150A−2の生成に成功した場合は、エージェントのク ローンのどれか又は全部の転送が失敗したとしても、エージェント150Aによ るオペレーション°’ 5end”の遂行は成功したものとされる。そして、あ るエージェントのクローンのトリップが失敗した場合、最初にオペレーション” 5end”を遂行したエージェントではなく、エージェントのクローンによって 、トリップのエクセプションが送出される。 エージェント150Aによるオペレーション”5end″の遂行の直後のエージ ェント150Aの実行状態の一部を図26Bに示す。前述した現在のスタックで あるスタック2604は、ニルオブジェクト2630を有している。ニルオブジ ェクトは、もとのエージェントであるオリジナルエージェントのために、結果と して生成され、これによって、オペレーション“5end”の遂行により生成さ れたエージェントのクローンと、オリジナルエージェントとを区別する。 図26Cは、エージェント150Aによるオペレーション″5end″の遂行後 のエージェントL50A−1の実行状態の一部を示している。エージェント15 0Aによるオペレーション” 5end”の遂行後のエージェント150A−2 の実行状態は、後述するように、エージェント150A−1の実行状態に類似し ている。 バーミツト2622は、エージェント150A−1のプロパティ”permit ”である。スタック2604−1は、エージェント150A−1の生成において 作り出されたスタック2604のコピーである。スタック2604−1は、エー ジェント150A−1の現在のスタックである。スタック2604−1のトップ には、チケットスタブ2632がある。チケットスタブ2632は、オペレーシ ョン1send”の遂行によって生成されたエージェントのクローンのオペレー ション”5end”によって生じた結果である。チケットスタブ2632はチケ ット2608から導かれる。 チケットスタブ2632は、クラス” Ticket 5tub”のメンバであ る。チケットスタブ2632は、いくつかあるプロパティの内にプロパティ”  way”、”trayelNote”を含んでいる。チケット2608は、クラ ス”Ticket″のメンバである。 クラス”Ticket”は、クラス”Ticket 5tub”のサブクラスで あるため、チケット2608は、いくつかあるプロパティの内に、スーパークラ ス”Ticket 5tub”から定義が継承されたプロパティ”way″ 、 ” travelNote″を備えている。チケットスタブ2632は、チケッ ト2608から導かれ、チケットスタブ2632のプロパティ”way” ごt ravelNote”は、それぞれチケット2608のプロパティ°” way ” 、” travelNote”に等しい。前述したように、チケツト260 8(図26A)のプロパティ” travelNote”はエージェント150 A−2からエージェント150A−1を区別するために使用することができる。 同様に、エージェント150A−2の現在のスタック(図示せず)は、プロパテ ィ゛’ travelNote”がオブジェクト2620であるチケットスタブ (図示しない)を備えている。 図28は、オペレーション”5end”がエージェント150Aによって遂行さ れた後の、コンピュータネットワーク2500を示している。エージェント15 0Aは、コンピュータプロセスエンジン132Aのデータ部132A−Dに残留 している。エージェント150A−1は、エンジン132Bのデータ部132B −D中のブレイス220Bを占有している。同様に、エージェント150A−2 は、エンジン132Cのデータ部132C−Dにおいて実行されるブレイス22 0Cを占有している。 オペレーション”5end”のアクセスは、°′プライベート”であり、オペレ ーションの要求は、レスポンダのみに制限される。以下及びアペンディックスA に詳細に説明するように、本発明の各フィーチャは、どんな条件のもとにフィー チャの要求がなされうるかを特定するアクセスを備えている。オペレーション”  5end゛のアクセスはプライベートであるので、エージェント150Aのみ が、エージェント150Aによるオペレーション”5end”の遂行を開始する ことができる。 エンジン132Aでさえも、エージェント150Aによる才へレーション“5e nd”の遂行を開始することはできない。 オペレーション”5end”の遂行に必要な時間や、オペレーション”5end ”の遂行時に生成されるエージェントのクローンによって占有されるスペースの 実質的な節減は、クローンの生成を遅らせること(ディファードクローニング) によって実現される。オペレーション”5end”の遂行を行なっているエンジ ンが、ある1つのエージェントの2以上のクローンをあるiつの目的地のエンジ ンに転送すると判断したとき、クローンの生成を延期する。このような場合に、 1つのクローンが目的地のエンジンに転送され、他のクローンは目的地のエンジ ンにおいて転送された1つのクローンから導出される。図29A〜29Dに例を 示す。 エージェント150A(図29A)は、エンジン132A内のブレイス220A を占有している。エンジン132Aは、コンピュータシステムll0A(図示せ ず)内において実行されるコンピュータプロセスである。エージェント150A は、オペレーション” 5end”を遂行しており、エージェント150Aのク ローンの目的地のブレイスとしてブレイス220B、220C1220Dを特定 する3つのチケット(図示せず)のリストを、オペレーションへのアーギュメン トとして供給している。エンジン132Aは、通信リンク102AEを介してエ ンジン132Eと通信する。通信リンク102AEは、オペレーション”go″ に関連して通信リンク102AZ (図15A)について説明した通りである。 エンジン132Eは、エンジン132Aと通信するとともに、通信リンク102 EBFを介してエンジン132B、132Fと通信している。さらに、エンジン 132Fは、通信リンク102FCDを介してエンジン132C,132Dと通 信している。ブレイス220B、220C,220Dは、それぞれエンジン13 2B、132C1132Dによってインターブリートされるプロセスである。し たがって、エージェント150Aのクローンがブレイス220B、220C12 20Dに到達するためには、各クローンは、最初にエンジン132Eに転送され ねばならない。 エンジン132A中においては、エージェント150Aの1つのクローン、すな わちエージェント150A−1が生成される。エージェント150A−1がオペ レーション“5end“を遂行しているとき、エージェント150A−1の実行 状態には、センドフレーム2902が含まれる。エージェントの実行状態につい ては、以下及びアペンディックスAに詳細に説明されている。また、センドフレ ームについては、アペンディックスBに詳細に説明されている。センドフレーム 2902(図3OA)は、チケット2904のリストを含む。ここで、チケット 2904のリストは、チケット2904B、2904C12904Dを含んでお り、これらのチケットは、目的地のブレイスとして、それぞれブレイス220B 、220C,220Dを特定する。したがって、エージェント150Aの単一の クローンであるエージェント150A−1(図29A)は、ブレイス220B、 220C1220Dに移行するべき別々の3つのエージェントのクローンを表し ている。 エンコードされたエージェント150A−1−E (図30B)は、アペンディ ックスBのエンコード則に従って、エージェント150A−1(図29A)をエ ンコードして生成される。エンコードされたエージェントl 50A−1−E  (図30B)には、目的地150A−1−E−DI、150A−1−E−D2. 150A−1−E−D3が含まれ、これらは、エージェント150A(図29A )の3つのクローンのそれぞれの移動目的地を規定する。エージェント150A の3つの全てのクローンがエンジン132Eに転送されるので、目的地150A −1−E−DI、150A−1−E−D2.150A−1−E−D3 (図30 B)は、全て、エージェント150A(図29A)のそれぞれのクローンの移動 目的地としてのエンジン132Eを規定している。エンジン132Aは、目的地 150A−1−E−D 1,150A−1−E−D2.150A−1−E−D3  (図30B)が、それぞれ移動目的地としてエンジン132Eを規定している ことを判断し、エージェント150A(図29A)の1つのクローン、すなわち エンコードされたエージェント150A−1−E (図30B)を、エンジン1 32E(図29B)に転送させる。このように、3つの別々のクローンをエンジ ン132Aからエンジン132Eに転送するのではなく、単一のクローンが、エ ンジン132Eに転送される。これにより、エージェント150Aのクローンに よって占有されたエンジン132A内のスペースの量、及びクローンをエンジン 132Eに転送するために必要とされる時間が減少する。 。 エージェント150A−1は、オペレーション”gO゛°に関連して説明したよ うに、エンコードされ、エンジン132E(図29B)に転送される。そして、 エンジン132Eは、エージェント150A−1のセンドフレーム2902のリ スト2904を検索する。エンコードされたエージェントは、アペンディックス Bに示すように標準化されているので、エンジン、例えばエンジン132Eは、 エンコードされたエージェントL 50A−1をデコードすることなく、リスト 2904を検索することができる。そして、エンジン132Eは、センドフレー ム2902のチケット2904Bに対応する1つのクローンがエンジン132B に転送されるべきことと、チケット2904C12904Dに対応する2つのク ローンがエンジン132Fを経てそれぞれエンジン132C1132Dに転送さ れるべきこととを判断する。そこで、第2のクローン、すなわちエージェント1 50A−2(図290)が、エンジン132Eによってエージェント150A− 1から生成される。エージェント150A−1がエンコードされたように、エー ジェント150A−1のコピーであるエージェント150A−2も同様にエンコ ードされる。エージェントL50A−2は、センドフレーム2902−2を含ん でおり、このセンドフレーム2902−2は、チケットリスト2904−2を含 んでいる。ここで、チケットリスト2904−2は、エージェント150A−1 のセンドフレーム2902のチケットリスト2904から移動したチケット29 04Bを有する。 エージェント150A−2は、エンジン132B (図29D)に転送され、エ ージェント150A−1は、エンジン132F(図29D)に転送される。チケ ット2904Bは、センドフレーム2902−2のただ1つのチケットであり、 トリップの目的地としてブレイス220Bを特定して(Xるので、ブレイス22 0Bは、エージェント150A−2の目的地であり、これ以上番よ、エージェン ト150Aのクローンがエージェント150A−2から生成されること1よなI I’sエージェント150A−2は、エンジン132Bによってデコードされる 。エージェント150A−2は、前述したように、ブレイス220Bによるオペ レーション”entering”の遂行によってブレイス220Bの占有が許可 され、エージェント150A−2についてのオペレーション゛’ 5end”の オペレーション番よ完了する。 したがって、センドフレーム2902Bは、エージェント150A−1の実行状 態から、実行モデルのコンテキストにおいて後述するよ引こ除去される。 エージェント150A−1は、エンジン132Fに転送される。エージェント1 50A−1の実行状態の一部分であるセンドフレーム29021こ1よ、チケッ ト2902C12904Dを含むチケットリスト2904力(含まれる。した力 (つて、エージェント150A−1は、それぞれブレイス220C,220Di こ向力箋って移動しているエージェント150Aの2つのクローンを表してlI Aる。このよう警こ、1つのクローン、すなわちエージェント150A−1だ1 すを、エンジン132Eからエンジン132Fに転送することによって、前述し たよう(こ、エンジン132Eとエンジン132Fの間でデータを転送するの1 こ必要な時間と、エンジン132E内におけるスペースとが、実質的に節減され る。 前述したように、エンジン132Fにおいて、(i)エージェント150Aの第 3のクローン、すなわちエージェント150A−3力(、エージェント150A −1から形成され、(11)センドフレーム(図示せず)(よ、チケット290 4Cを有するエージェント150A−3に含まれる。エージェント150A−3 のコピー元であるエージェント150A−1がエンコードされるのと同様に、エ ージェント150A−3もエンコードされる。チケット2904Cは、エージェ ント150A−1のセンドフレーム2902から除去される。そして、エージェ ント150A−3は、エンジン132Cに転送され、エージェントL50A−1 毛よ、エンジン132D(図29E)に転送される。 エンジン132Cは、チケット2904Cによって規定されるエージェント15 0A−3のトリップの目的地であるブレイス220Cを含み、エンジン132D は、チケット2904Dによつて規定されるエージェント150A−1のト1) ツブの目的地であるブレイス220Dを含む。前述したように、(i)エンジン 132Cは、エージエン目50A−3をデコードし、このエージェント150A −3は、オペレーション”entering”の実行によって、ブレイス220 Cの占有が許可され、(百)エンジン132Dは、エージェント150A−1を デコードし、このエージェント150A−1は、オペレーション”enteri ng”の実行によって、ブレイス220Dの占有が許可される。センドフレーム 2902 (図示せず)は、目的地としてブレイス220Dを特定する1つのチ ケット力(含まれているので、エージェント150A−1についてのオペレーシ ョン”5end−よ終了する。同様に、エージェント150A−3は、単一のブ レイスすなわち、エージェント150A−3によって占有されるブレイスである ブレイス220Cを、トリップの目的地として特定するセンドフレームを含んで いるので、エージェント150A−3についても、オペレーション” 5end ”は同様(こ終了する。 こうして、各エージェント150A−1,150A−2,150A−31よ、そ れぞれのエージェントのクローンが行なうトリップを規定する単一のチケットを 含むセンドフレームを含む実行状態を有するオペレーション”5end”の遂行 を完了する。それぞれの単一のチケットは、前述したよう(こ、それぞれのエー ジェントによるオペレーション”5end”の遂行の結果として生じるチケット スタブを導出するために使用される。 このように、それぞれの目的地のブレイスにいくつかのクローンを転送する際に 、クローンの作成をできるだけ遅らせることによって、オペレーション’ 5e nd“の遂行において、コンピュータ内の記憶スペースや、時間が節減される。 エージェント150A−1の転送中のセンドフレーム2902の構造を、図3O Aに示す。クラス”5end Frame”は、プロパティ”tickets” を規定する。センドフレーム2902のプロパティ” tickets”は、チ ケット2904B、2904C12904Dをアイテムとするリスト2904で ある。チケット2904B、2904C12904Dは、レスポンディングエー ジェント150Aのそれぞれのクローンが行なう各トリップを規定する。 前述したように、エージェント150Aがオペレーション”5end“を遂行す ることによって、1以上のエージェントのクローンが生成される。ここで、エー ジェントの各クローンは、エージェント150Aの1以上のクローンを表す。エ ージェントの各クローン、例えばエージェント150A−1(図29A)を形成 する場合、そのエージェントのクローンにはセンドフレーム2902のコピーが 含まれる。ただし、センドフレームのコピーのプロパティ”tickets”は 、そのエージェントのクローンに対応するチケットのみを包含するように変更さ れる。例えば、エージェント150A−2(図29C)は、センドフレーム29 02−2を含み、このセンドフレーム2902−2は、チケット2904Bを含 む。また、例えば、エージェント150A−1は、センドフレーム2902を含 み、センドフレーム2902は、チケット2904C,2904Dを含む。した がって、エージェント150A−2は、チケット2904Bによって特定された ブレイス、すなわちブレイス220Bに向かって移動しているエージェント15 0Aの1つのクローンを表している。同様に、エージェント150A−1は、チ ケット2904C12904Dによって特定されたブレイスに向かって移動して いるエージェント150Aの2つのクローンをそれぞれ表している。 各クローンがそれぞれの目的地に到達したら、センドフレーム29o2のプロパ ティ”tickets“ (図30A)は、正確に1つのチケットのリストとな る。例えば、エージェント150A−1,150A−2,150A−3(図29 E)は、フレーム2902.2902−2.2902−3をそれぞれ含み、これ らのフレームは、それぞれ単一のチケット、すなわちチケット2904D、29 04B。 2904Cをそれぞれ含む。したがって、各センドフレームは、対応するエージ ェントのクローンが行なうトリップを規定する単一のチケットを有している。こ の単一のチケットは、前述したように、エージェントの各クローンによるオペレ ーション”5end”の遂行の結果として生成されるチケットスタブを形成する ために使用される。 このように、2以上のエージェントのクローンが部分的に同一経路であるトリッ プを行なう場合には、オペレーション“5end”を遂行するエージェントのク ローンの生成を遅らせることによって、コンピュータの記憶スペース及びデータ 転送時間が実質的に節減される。オペレーション”go”のコンテキストによっ て前述したように、あるエージェントによるオペレーション“go”の遂行の間 にエクセプションが送出された場合には、そのエージェントはバーガトリに置く ことができる。同様に、エージェントのクローンによるオペレーション”5en d”の遂行の間にエクセプションが送出された場合には、そのエージェントのク ローンはバーガトリに置くことができる。また、エンコードされたエージェント 、例えばエージェント150A−1(図29B)によって表されるエージェント の、複数のクローンの転送が失敗した場合には、エンコードされたエージェント によって表されるこれらの各クローンは、前述したように、デコードされて活性 化され、バーガトリに置かれる。 エージェント間の相互作用: オペレーション” Meet”同一のブレイスを 占有する2つのエージェントは、一方のエージェントが他方のエージェントにオ ペレーションの遂行や、アトリビュートの設定又は問い合わせを要求することに よって、互いに相互作用することができる。要求されたオペレーションのアーギ ュメントやリザルトを介して、又は、設定や問い合わせがされたアトリビュート を介して、2つのエージェントの間に情報の交換が行なわれる。例えば、エージ ェント150A、150Bは、エンジン132B(図15E)内において実行さ れているブレイス220Bを占有している。したがって、エージェント150A 、150Bは、(i)エージェント150Aが、エージェント150Bにフィー チャを遂行するように要求するか、又は(ii)エージェント150Bが、エー ジェント150Aにフィーチャを遂行するように要求することによって、相互作 用することができる。 エージェント150Aは、エージェント150Aがエージェント150Bに対す るリファレンスを持つ場合にのみ、エージェント150Bにフィーチャを遂行す るように要求することができる。同様に、エージェント150Bは、エージェン ト150Bがエージェント150Aに対するリファレンスを持つ場合にのみ、エ ージェント150Aにフィーチャを遂行するように要求することができる。 エージェント150Aは、エージェント150A、150Bが占有しているミー ティングブレイスによるオペレーション”greet”の遂行を要求することに よって、エージェント150Bに対するリファレンスを取得する。いままで、ブ レイス220Bは、エージェント150A、150Bによって占有されるブレイ スとしてのみ記述してきた。以下の説明では、ブレイス220Bは、ミーティン グブレイス・すなわちクラス°’ Meeting places”のlメンバ である。ミーティングブレイヌについては、アペンディックスAに詳細に説明さ れている。 図31A、31Bは、オペレーション”meet”のインタフェースを表してい る。 フレーム3100は、エージェント150Aの実行状態の一部である。フレーム 3100は、ミーティングブレイス220Bによるオペレーション” meet ”の実行状態を記録する。ミーティングブレイス220Bは、オペレーション” meet”のレスポンダ−としてのエージェント150Aの実行状態内において 、識別される。 フレーム3100は、現在のスタックであるスタック3102を含む。スタック 3102は、オペレーション“meet” (図31人)の遂行の直前に、ペテ ィション3106をトップに備えている。ベティション3106は、オペレーシ ョン”meet’“の遂行によって使用されるアーギュメントである。ペティシ ョン、すなわちクラス”Petition”のメンバについては、以下及びアペ ンディックスAに一層詳細に説明されている。 フローチャート3200 (図32)は、ミーティングブレイス220Bによっ て遂行されるオペレーション”greet”のインプリメンテーションを示して いる。 エンジン132B(図15E)は、ミーティングブレイス220Bによってオペ レーション”mee t”を遂行する際に、ペティション3106(図31A) を分析することによって、ベティションの対象であるエージェントを判断する。 ベティション3106は、ペティションの対象であるエージェントを、ネーム、 クラス、又はその両方によって特定する。ベティションの対象であるエージェン トは、ミーティングを要求しているエージェントがミーティングを行おうとして いるエージェントとして、ペティションによって特定されたエージェントである 。 エンジン132Bは、ステップ(pop petition) 3202 (図 32)において、現在のスタック3102からペティション3106をポツプす る。処理は、ステップ3202からステップ3204に移行する。このステップ 3204において、エンジン132Bは、新しい空(エンプティ)のテレネーム リストを作り出す。 ステップ3204において作り出されたリストに記録されるテレネームは、要求 したエージェントとのミーティングを拒絶した、ベティションの対象であるエー ジェントのテレネームである。したがって、最初は、ペティションの対象である エージエンは、要求したエージェントとのミーディングを拒絶していないので、 このリストは空である。 処理は、ステップ32o4がら、ステップ(find petitioned  agent) 3206に移行する。このステップ32o6において、オペレー ション”meet”を遂行しているエンジンがペティションの対象であるエージ ェントを、すなわち、ステップ3204 (図32)によって作り出されたテレ ネームのリストのアイテムにそのテレネームが含まれていない、ペティション3 106(図31A)を満たすエージェントを見い出す。エージェントがペティシ ョン3106(図31A)を満たすのは次のようなときである。 アベンディクスAに詳細に説明するように、ベティション3106は、プロパテ ィ”agentName”及びプロパティ゛agentclass” (どちら も図示せず)を含んでいる・ただし・プロパティ゛’ agentNaie”ご agentclass”はオプションなので、どちらもニル(0)であってもよ い。ベティション31o6のプロパティ″agentName”がテレネームで 、プロパティ” agentcIass”がニル(0)の場合、ベティションの 対象であるエージェントは、ペティション31o6のプロパティ”agentN ame”であるテレネームによって、テレネームが指定されたエージェントであ る。 プロパティ”agentclass”がサイテションで、プロパティ”agen tName”がニル(0)の場合、ペティションの対象であるエージェントは、 ベティション3106のプロパティ”agen tCI ass”であるサイテ ションによって特定されたクラスのメンバであるエージェントである。どちらの プロパティもニル(0)でない場合、ベティションの対象であるエージェントは 、上述の両方の基準を満たすエージェントである。どちらのプロパティもニル( 0)の場合、クラス’ Meeting Invalid”のエクセプションが 送出され、オペレーション”meet”は失敗に終わる。 処理は・ステップ(find petitioned agent) 3206 からテストステップ3208に移行する。このテストステップ3208において 、エンジン132Bは、ベティションの対象であるエージェントが、ステップ( find petitioned agent)3206において見い出された かを判断する。ベティションの対象であるエージェントが、ステップ(find  petitioned agent) 3206で見い出されなかった場合、 処理は、テストステップ3208がら、後述するステップ(wait) 322 2に移行する。逆にベティションに対象であるエージェントがステップ(rin d petitioned agent) 3206において見い出された場合 、処理は、テストステップ3208からステップ(謡eeting) 3210 に移行する。 ステップ(meeting) 3210において、ベティションの対象であるエ ージェントは、ミーティングブレイス220Bをインターブリートしているエン ジン132Bによって、オペレーション”meeting”を遂行することがめ られる。オペレーション゛’ meetins”の遂行において、ベティション の対象であるエージェントは、エージェント150Aとのミーティングに参加す ることに同意するが、又はこれを拒絶する。オペレーション”meeting” については、以下又はアベンディクスAに詳細に説明されている。 ベティションの対象であるエージェントによるオペレーション”meeting ”の遂行後、処理は、ステップ(meeting) 3210からテストステッ プ3212に移行する。テストステップ3212において、エンジン132Bは 、オペレーション”IIreeting”が成功のうちに終了し、ペティション の対象であるエージェントがミーティングに同意したかを判断する。ベティショ ンの対象であるエージェントがミーティングを拒絶した場合、処理は、テストス テップ3212がら、後述するテストステップ(fully qualifie d?) 3234に移行する。その逆に、ベティションの対象であるエージェン トがミーティングに同意した場合、すなわちオペレーション”meeting” が成功のうちに終了した場合、処理は、テストステップ3212からステップ( bui ld contact) 3216に移行する。 ステップ(bui Id contact) 3216において、コンタクト3 108(図31B)が生成される。ここで、このコンタクト3108のサブジェ クトは、ベティションの対象であるエージェントである。処理は、ステップ(b uild contact) 3216(図32)からステップ(push c ontact) 3218に移行し、このステップ3218において、コンタク ト3108(図31B)がスタック3102に書き込まれることによって、リザ ルトとしてコンタクト3108が生成される。処理は、ステップ(push c ontact) 3218から終了ステップ3220に移行し、このステップ3 220において、オペレーション”a+set”は成功のうちに終了する。 しかし、前述したように、ベティションの対象であるエージェントが、オペレー ション°’ meeting”の遂行において反対を表明し、エージェント15 0Aとのミーティングを拒絶した場合には、処理は、テストステップ3212か らテストステップ(rullyqualified?) 3234に移行する。 テストステップ(ful ly qualified?) 3234において、 エンジン132Bは、ベティション3106(図31A)が適格であるかを判断 する。ベティション3106は、ペティション3106のプロパディ”agen tName”であるテレネームが適格である場合に、適格であるとされる。テレ ネームは、プロパティ”authority”とプロパティ”1dent i  ty”を有する。テレネームについては、アベンディクスAに一層詳細に説明さ れている。テレネームのプロパティ”1dentity”はオプションであり、 ニル(0)とすることができる。テレネームのプロパティ”1dentity” がニル(0)の場合、そのテレネームは部分的に適格であり、テレネームのプロ パティ”authori ty”であるオーソリティの全ての名前付きオブジェ クト(ネームドオブジェクト: namedobject)を示すこととなる。 一方、テレネームのプロパティ”1denti ty”がニル(0)でない場合 、そのテレネームは適格であり、正確にゼロ又は1つの名前付きオブジェクトを 示すこととなる。 テストステップ(fully qualified?) 3234 (図32) において、エンジン132Bは、ベティション3106(図31A)が適格であ るかを判断する。ベティション3106(図31A)が適格の場合、処理はテス トステップ(fullyqual if ied?) 3234から終了ステッ プ323aに移行し、この終了ステップにおいて、クラス”Meeting D enied”のエクセブションが送出され、オペレーション”meeting” は失敗に終わる。したがって、ペティション3106(図31A)が適格であり 、ベティション3106を満たすエージェントがミーティングを拒絶した場合、 オペレーション°’ meet″は失敗に終わる。一方、ペティション31O6 が適格でない場合、処理は、テストステップ(ful Iy qual if  ied?) 3234からステップ(add agent to 1ist)  3214に移行する。 ステップ(add agent to 1ist) 3214において、ステッ プ(find petitioned agent) 3206において見い出 された、ベティションの対象であるエージェントは、ステップ3204において 作り出されたテレネームリストに付加される。 処理は、ステップ(add agent to 1ist) 3214からステ ップ(find petitioned agent) 3206に移行する。 前述したように、ベティションの対象であるエージェントがステップ(rind petitioned agent) 3206において見い出されなかった場 合、処理は、テストステップ3208からステップ(wait) 3222に移 行する。このステップ3222において、エージェント150Aのインターブリ ートは、ペテイション3106(図31A)がタイムアウトにより終了するか、 又はエージェントがミーティングブレイス220Bに入るまで、すなわちミーテ ィング220Bがオペレーション“entering”の遂行を成功するまで中 断される。ペテイション3106は、アペンディクスAに一層詳細に説明される ように、プロパティ″maximu■Wait”を有する。このプロパティ”m axiiumWait”は、オペレーション”meet“の遂行が成功したか否 かに関係なく、オペレーション”meet”の遂行の開始から、オペレーション ”meeじの遂行の完了までに要することができる最長時間を規定する。そして 、ペティション3106は、オペレーション”waiじ−の遂行の開始から、プ ロパティ”−aximumWait”が規定する最長時間が経過したら、タイム アウトにより終了する。 ペティション3106が終了した時に、又はエージェントがミーティングブレイ ス220Bに入った時に、エージェント150Aのインターブリートが再開され 、処理は、ステップ(wait) 3222 (図32)からテストステップ( time 。 ut?)3224に移行する。このテストステップ3224において、エンジン 132B (図15E) は、エージェント150A(図31A)(7)インタ ーブリートの再開がベティション3106の終了の結果であるかを判断する。エ ージェント150Aのインターブリートがベティション3106(図31A)の 終了の結果として再開された場合には、処理は、テストステップ3224 (図 32)がら終了ステップ3226に移行し、このステップ3226において、ク ラス“PetitionExp i red”のエクセプションが送出され、オ ペレーション” meet”は失敗に終わる。 一方、エージェント150A(図31A)のインターブリートが、エージェント がブレイス220Bに入ったことの結果として再開された場合には、処理は、テ ストステップ3224がらテストステップ3228に移行する。このテストステ ップ32281.:オイテ、エンジン132B (図15E) 1.t、ブレイ ス220Bに入ったエージェント(図示せず)が、ベティションの対象であるが 否が、すなわちベティション3106(図31A)を満たし、ステップ3204  (図32)において作り出されたテレネームのリストにないが否を判断する。 ブレイス220Bに入ったエージェントがベティション3106(図31A)を 満たさないが、又はブレイス220Bに入ったエージェントのテレネームがステ ップ3204 (図32)において作り出されたテレネームのリストのアイテム である場合には、処理は、テストステップ3228からステップ(wait)  3222に移行する。 一方、ブレイス220Bに入ったエージェントが、ペティション3106(図3 1A)を満たし、このエージェントのテレネームが、ステップ3204 (図3 2)で作り出されたテレネームのリストのアイテムにない場合、処理は、テスト ステップ3228からステップ(grseting) 3230に移行する。こ のステップ3230では、ブレイス220Bに入ったエージェントは、オペレー ション″meeting”を遂行するように指示される。処理は、ステップ軸e etng) 3230がらテストステップ3232に移行し、このテストステッ プ3232において、エンジン132B(図15E)は、ブレイス220Bに入 ったエージェントによるオペレーション” meet”の遂行が成功し、ブレイ ス220Bに入ったエージェントとエージェント150Aのミーティングが受け 入れられた、又は、オペレーション”meeting”の遂行が失敗し、ブレイ ス220Bに入ったエージェントとエージェント150Aのミーティングが拒絶 されたかを判断する。 ブレイス220Bに入ったエージェントによるオペレーション”meeting ”の遂行が成功した場合、処理は、テストステップ3232がらステップ(bu i ld contact)3216に移行する。前述したように、ステップ( build contact) 3216及びこれに続くステップにおいて、ペ ティションの対象であるエージェント、すなわちブレイス220Bに入ったエー ジェントへのコンタクトが作り出され、そのコンタクトが現在のスタックにブツ シュされ、オペレーション”meeting”は成功のうちに終了する。一方、 ブレイス220Bに入ったエージェントによるオペレーション”Ilsetin g”の遂行に対してエクセプションが送出された場合、処理は、テストステップ 3232がらテストステップ(fully qualifier?) 3238 に移行する。 テストステップ(fully qualifief?) 3238において、エ ンジン132B(図15E)は、ベティション3106(図31A)が適格であ るがを判断する。 ヘティション3106が適格である場合、処理は、テストステップ(fully  qualifier?) 3238 (図32)がら終了ステップ324oに 移行し、この終了ステップにおいて、クラス”Meeting Denied” のエクセプションが送出され、ミーティングブレイス220Bによるオペレーシ ョン”sleeting”の遂行が失敗に終わる。 逆に、ベティション3106(図31A)が適格でない場合、処理は、テストス テップ(fully qualifier?) 3238からステップ(add  agent to 1ist) 3242に移行する。ステップ(add a gent to l 1st) 3242では、ベティションの対象であるエー ジェント、すなわちブレイス220Bに入ったエージェントのテレネームが、ス テップ32o4において作り出されたテレネームのリストに付加される。処理は 、ステップ(add agent to 1ist) 3242から、前述ノス テップ3222に移行する。 このようにして、エージェント1!50Aと、ベティションの対象であるエージ ェントとの間のミーティングが取り決められる。このベティションの対象である エージェントは、(i)ペティション3106において特定されたネーム及びク ラスのエージェントであり、(i +)応答するミーティングブレイスを占有す るエージェントであり、(i i i)ベティション3106において特定され た最長時間内に、ミーティングを行うことに同意したエージェントである。この 最後に述べた条件は、第1のエージェントによって占有されるミーティングブレ イスを占有していないが、ある時間内に到着することが期待されている第2のエ ージェントとのミーティングを、第1のエージェントが要求することを許容する 。 オペレーション”meeting” (図31B)の遂行の直後に、スタック3 1o2は、そのトップに、前述のコンタクト3108を有している。コンタクト 3108は、エージェント150B(図15E)へのりファシスであるプロパテ ィ゛’ 5ubject”を備えている。コンタクト3108(図31B)のプ ロパティ”5ubject”は、コンタクト3108のアトリビュート”5ub ject”を指示することによって生成される。コンタクトのアトリビュート” 5ubject”については、アベンディクスAに詳細に説明されている。した がって、エージェント150Aは、エージェント150B(図15E)へのリフ ァレンスを取得し、したがって、エージェント150Bにフィーチャの遂行を要 求することができる。 オペレーション”meeting’”のコンテキストにおいて後述するように、 エージェント150Bは、オペレーション”meeting”の遂行におけるア ーギュメントとして、コンタクトを使用する。ここで、エージェント150Aを 、ミーティングを要求するエージェントとして特定するミーティングブレイス2 20Bによるオペレーション“grseting”の遂行の後に、エージェント 150Bによって使用されるコンタクトは、エージェント150Aに対するリフ ァレンスであるプロパティ”5ubject”も備えている。したがってエージ ェント150Bは、エージェント150Aのリファレンスを取得し、エージェン ト150Aにフィーチャの遂行を要求することができる。 コンタクトされるエージェントは、ミックスインクラス”Contacted” がら継承されたクラスのメンバである。以下及びアベンディクスAに詳細に説明 するように、ミックスインクラス”Contacted”は、プロパティ“co ntacts”へのアクセスを提供するアトリビュート”contacts”を 規定する。プロパティ“contacts”は、コンタクトのセントである。エ ージェント150B(図33)は、コンタクトされたエージェントであり、した がって、プロパティ”cor+Lacts”としてセット3302を備えている 。前述したように、ミーティングブレイス220Bによるオペレーション°’  meeting”の遂行後、エージェント150Bによるオペレーション” m eeting”の遂行において使用されたコンタクトであるコンタクト34o4 は、エンジン132Bによってセット33o2に付加される。 前述したように、ベティションの対象であるエージェントは、ベティションの対 像であるエージェントによるオペレーション”meeting”の遂行によって 、ミーティングを要求しているエージェントとのミーティングに、同意したり拒 絶したりする。オペレーション″sleeting”は、クラス”Agen t ”によっては、規定も継承もされていない。その代わりに、オペレーション”  meeting”は、ミックスインクラス”Petitioned”によって規 定されている。クラス″Agent”は、ミックスインクラス“Petitio ned”のサブクラスではない。しかし、本発明のユーザによって後から定義さ れる、クラス”Agent”のサブクラスは、ミックスインクラス”Petit ioned“のサブクラスであることができる。したがって、このようなユーザ 定義サブクラスのメンバであるエージェントのみが、オペレーション”meet ing”を遂行することができ、他のエージェントとのミーティングに参加する ことができる。 図34Aは、エージェント150Bによるオペレーション“meeting“の 遂行直前の、エージェント150Aの実行状態を示している。クレーム3400 は、エージェント150Aの実行状態の一部分であり、エージェント150Bが 実行するオペレーション”a+eeting”の動的状態を記録する。オペレー ション“meeting”は、エンジン132Bによって要求される。オペレー ション“−eeting”の遂行は、エージェント150Aの実行状態に記憶さ れる。エージェント150A又はエージェント150B、好ましくはエージェン ト150Bのパーミツトは、オペレーション”meeting“の遂行によって 喪失され得る。エージェント150B(図15E)は、オペレーション”mee ting”のレスポンダとして、エンジン132B中において識別される。 スタック3402は、フレーム3400のプロパティ”5tack”であり、現 在のスタックである。オペレーション”meeting”の遂行の直前に、スタ ック3402は、トップから順に、コンタクト3404とペティション3406 を備えている。 コンタクト3404は、ミーティングを要求するエージェントとして、エージェ ント150Aを特定する。コンタクト3404のプロパティ”5ubjectN ue” (図示せず)は、エージェント150Aのテレネームと同等のテレネー ムであり、これによって、要求するエージェントとして、エージェント150A を特定する。 コンタクト3404のプロパティ”5ubjectcIass” (図示せず) は、エージェント150Aが1つのインスタンスであるクラスを特定するサイテ ションである。 通常、エージェント150Aのリファレンスであるコンタクト34o4のプロパ ティ”5ubject” (図示せず)は、エンジン132Bによってニル(0 )にされる。 したがって、エージェント150Bは、オペレーション°’ meeting” の遂行の際にコンタクト3404を使用することによって、ミーティングを要求 しているエージェントとしてエージェント150Aを適切に特定する上で必要な 全ての情報を持つこととなる。しかし、エージェント150Bは、エージェント 150Aに対するリファレンスは持っておらず、エージェント150Aと相互作 用することはできない。このように、どちらのエージェントも、他のエージェン トと、両者がミーティングに同意するまでは、相互作用することができない。 ベティション3406は、ミーティングを要求する際に、エージェント150A (図15E)によって供給されるベティション3106 (図31A)のコピー である。それはこのアーギュメントが”byCopy”をバスするからである。 それはこのアーギュメントがバスした’ bycopy”だからである。アーギ ュメント”byC。 py”のバスについては、以下及びアベンディクスAに詳細に説明されている。 エージェント150Bは、オペレーション” meeting”を成功のうちに 遂行することによって、コンタクト3404によって特定化されたエージェント とベティション3406 (図34A)によって規定されたミーティングを行う ことに同意する。このミーティングは、エクセプションの送出により拒絶され、 オペレーション”meeting”は失敗に終わる。ミックスインクラス“Pe titioned“によって規定されたオペレーション”meeting”のメ ソッドは決して成功せず、常にクラス”Meeting Denied“のエク セブションを送出する。しがし、ミックスインクラス”Petitioned” から継承された、クラス’ Agent”のサブクラスは、オペレーション”a +seting’”のインプレメンティジョンを、ある特定の場合には成功する ように、再定義することができる。 エージェントは広い範囲のニーズに応え、広い範囲のサービスを遂行することが 予想されるので、クラス”Agent”のサブクラスの数や、オペレーション” meeting”のメソッドのバリエーションは非常に多い。例えば、フローチ ャート3500(図35)は、オペレーション”meeting”のメソッドの 一例を示している。 ステップ3502において、コンタクト3404 (図34A)及びペティショ ン3406は、スタック34o2からポツプされる。処理は、ステップ3502  (図35)からステップ3504に移行し、このステップ35o4において、 コンタクト3404 (12134A)のアトリビュート” 5ubjectc lass”が問い合わされて、コンタクト3404のプロパティ”5ubjec Lclass”が生成する。処理は、ステップ3504 (図35)からテスト ステップ3506に移行し、このテストステップ3506において、コンタクト 3404 (図34A)のプロパティ”5ubjectcIass”が、特定の クラスのサイテションと比較される。コンタクト34o4のプロパティ°’ 5 ubjectcIass”がサイテションに等しい場合、処理は、テストステッ プ3506 (図35)がら終了ステップ35o8に移行し、この終了ステップ 3508において、オペレーション”meeting”は、成功のうちに終了す る。そして、これにより、ミーティングに対する同意が得られる。一方、コンタ クト3404 (図15A)のプロパティ”5ubjectcIass”がサイ テションに等しくない場合、処理は、テストステップ3506 (図35)から 終了ステップ351oに移行し、この終了ステップ3510において、クラス” Meeting Denied”のエクセプションが送出され、オペレーション “meet ing”が失敗に終わる。そして、これにより、コンタクト340 4 (図34A)によって特定されたエージェントとのミーティングが拒絶され る。 前述したように、オペレーション” meeting”の遂行の要求においてア ーギュメントとしてエージェント150B(図15E)に供給され、エージェン ト150Aを特定するコンタクト3404は、エージェント150Aに対するリ ファレンスを含んでいない。その代わりに、コンタクト3404 (図34A) のプロパティ”5ubject″゛は、ニル(0)である。前述したように、ミ ーティングブレイス220B(図15E)によるオペレーション“+eeeti ng”の遂行によって、ミーティングの実施が成功すると、エンジン132Bは 、コンタクト3404 (図34A)のプロパティ”5ubject”を、エー ジェント150Aに対するリファレンスとなるように変更する。 このように、アペンディクスAに記載されるコンピュータインストラクションセ ットの十分な一般性とデータ処理能力は、特定のエージェントが、どのようなエ ージェントと、どのような事情のもとで、ミーティングに同意するように構成さ れているかを定めるために、多くの量のデータを処理する複雑なロジックを適用 するために、使用することができる。 図34Bは、エージェント150B(図15E)によるオペレーション” @e eting”の遂行直後の、フレーム3400の状態を示している。スタック3 402 (図34B)は、オペレーション゛’ IIleeting”はリザル トを生成しないので空(エンプティ)である。オペレーション”+meetin g”のアクセスは、”システム”であり、エンジンだけがオペレーション”me eting”を要求することができる。なお、ミックスインクラス”Petit ioned“に規定されたオペレーション”meeting“は、以上及びアペ ンディクスAにおいて説明されるクラス°’ Meeting Place”に 規定されるオペレーション”meet”とは別のものである。 エージェント間の相互作用の終了: オペレーション“Part”前述したよう に、2つのエージェントは、これらのエージェント間のミーティングが行われて いる間、相互のエージェントに対するリファレンスや、エージェントによって所 有されるオブジェクトに対するリファレンスを交換する。2つのエージェントの 間の相互作用を終了するには、確実に、どちらのエージェントも、他のエージェ ントに対するリファレンスや、他のエージェントが所有するオブジェクトへのリ ファレンスを持たないようすることが必要とする。あるミーティングブレイスを 占有する2つのエージェントの間のミーティングに参加するエージェントは、ミ ーティングブレイスによるオペレーション”part゛の遂行を要求することに よって、そのミーティングを終了させることができる。ミーティングブレイス2 20Bを占有しており、エンジン132B(図15E)によって実行されている エージェント150A、150Bを、図36に示す。ミーティングブレイス22 0Bによるオペレーション’ meeting”の遂行の成功によって、エージ ェント150Aは、エージェント150Bへのリファレンス150A−R1を取 得しており、エージェント150Bは、エージェント150Aへのリファレンス 150B−R1を取得している。また、オブジェクト3602は、エージェント 150Aによって所有されており、同様に、オブジェクト3604は、エージェ ント150Bによって所有されている。図36は、エージェント150A、15 0Bが相互作用してオブジェクト3602.3604へのリファレンスを交換し た後の、エージェント150A、150Bの状態を示している。エージェント1 50Aは、オブジェクト3602へのリファレンスをエージェント150Bに与 えることによって、エージェント150Bにオブジェクト3602へのアクセス を許可する。リファレンス150B−R1,150B−R2によるこのようなア クセスによって、エージェント150Bは、エンジン132Bにインストラクシ ョンを送出することができ、それによってエージェント150A、オブジェクト 3602は、送出されたインストラクションに従って処理を行うことができるよ うになる。同様に、エージェント150Bは、オブジェクト3604へのリファ レンス150A−R2をエージェント150Aに与えることによって、エージェ ント150Aにオブジェクト3604へのアクセスを許可する。 エージェント150Aは、それぞれエージェント150B、オブジェクト360 4、オブジェクト3602へのリファレンス150A−R1,150A−R2, 150A−R3を有している。リファレンス150A−R1,150A−R2, 150A−R3は、(i)スタック中に含まれているか、又は、エージェント1 50Aの実行状態の一部分であるフレーム(図示せず)の変数リスト(図示せず )内に収容されているか、又は(i i)エージェント150Aのプロパティ又 はプロパティの一部分として格納されている。エージェントの実行状態について は後で説明する。同様に、エージェント150Bは、エージェント150A、オ ブジェクト3602及びオブジェクト3604へのそれぞれのリファレンス15 0B−R1,150B−R2,150B−R3を有している。エージェント15 0Bは、オブジェクト3604へのリファレンス150A−R2をエージェント 150Aに与えることによって、(i)エージェント150Aに、オブジェクト 3604がオペレーションを遂行するように要求することを許可し、又は(i  i)エージェント150Aに、オブジェクト3604の一部又は全部をコピーす ることを許可する。 エージェント150A又は150Bは、ミーティングブレイス220Bがオペレ ーション”part“を遂行するように要求することによって、エージェント1 50A、150Bの間の相互作用を終了させることができる。以下の説明では、 エージェント150Aが、ミーティングブレイス220Bにオペレーション”  part゛の遂行を要求するエージェントであるとする。図37A、図37Bは 、それぞれ、ミーティングブレイス220Bによるオペレーション°” par t”の遂行の直前及び直後におけるエージェント150Aの状態を示している。 フレーム3702は、エージェント150Aの実行状態の一部分であり、ミーテ ィングブレイス220Bによって遂行されるオペレーション”part゛の状態 を記録する。ミーティングブレイス220Bは、フレーム3702のプロパティ “rest)Onder”であり、したがってオペレーション゛part’のレ スポンダである。スタック3704は、エージェント150Aの実行状態の一部 分でもあるフレーム37o2のプロパティ”5tack”であり、現在のスタッ クである。 スタック3704のトップにはコンタクト3706がある。コンタクト3706 は、エージェント150Aがそれから分離されるべきエージェントとして、エー ジェント150Bを特定している。エンジン132B(図15E)は、ミーティ ングブレイス220Bのためにオペレーション°’ part”を実行している 間に、オペレーション”part”を行うようにエージェント150Bに指示す る。エージェント150Bは、エージェント150Bが分離しようとしているエ ージェントとしてエージェント1!50Aを特定するコンタクトを、唯一のアー ギュメントとして使用する。通常はエージェント150Aへのリファレンスであ るコンタクトのプロパティ’ 5ubject”は、オペレーション”part ”を要求する前にエンジン132Bによって、ボイドされる(無効にされる)。 したがって、エージェント150Bは、ミーティングの終了後にエージェント1 50Aへのリファレンスとともに残されることはない。 オペレーション”part”の遂行において、エージェント150Bは、リザル トを生成しない。オペレーション” part”の遂行の動的状態は、エージェ ント150B(図15E)やエージェント150Aの実行状態の一部分ではなく 、エンジンプロセスの実行状態の一部分である。オペレーション”part”の 実行によって送出されたエクセプションは、エージェント150Bやエージェン ト150Aには経験されず、したがってこれらのエージェントに対して効果を持 たない。オペレーション”part”の遂行において、エージェント150Bは 、エージェント150A、150Bの間のミーティングが、エージェント150 Aによつて終了されたことの通知を受ける。エージェント150Bがコンタクト されるエージェントである場合、エージェント150Bは、エージェント150 Aを参照するコンタクトである、エージェント150Aのプロパティ″cont acts″のアイテムは、エージェント150Bのプロパティ”contact s”から除かれる。オペレーション”part”のアクセスは、”システム”で あるため、エンジン132Bだけが、エージェント150Bがオペレーション” part”を遂行するように要求できる。 図37Bは、ミーティングブレイス220Bによるオペレージダン”parじの 遂行の直後の、エージェント150Aの状態を示している。オペレージg :/ ” pa「t”はリザルトを生成しないので、スタック3704は空(エンプテ ィ)である。 エージェント150A、150Bの間のミーティングの終了は、エージェント1 50B及びエージェント150Bによって所有される全てのオブジェクトに対す る、エージェント150A内の全てのリファレンスをボイドする(無効にする) 。例えば、図38に示すように、エージェント150Bを以前に特定していたリ ファレンス150A−R1と、オブジェクト3604を以前に特定していたリフ ァレンス150A−R2とは、どちらもボイドされる。同様に、エージェント1 50Bにおいても、エージェント150Aを以前に参照していたリファレンス1 50B−R1と、オブジェクト3604を以前に参照していたリファレンス15 0B−R2とは、ボイドされる。したがって、エージェント150A、150B は、もはや情報の交換を行うことはできない。エージェント150A、150B が、コンタクトされるエージェントである場合、エージェント150Aを特定化 するコンタクトは、エージェント150Bのプロパティ”contacts″か ら除去され、エージェント150Bを特定するコンタクトは、エージェント15 0Aのプロパティ”contacts”から除去される。 大規模な広域ネットワークへの本発明の応用可能性これまで、オペレーション” go”又はオペレーション”5end”の実行によって、エージェント150A (図15A)がミーティングブレイス220Bにそれ自身を転送したり、エージ ェント150Aのクローンがミーティングブレイス220Bに転送されたりする 通信システムを開示してきた。そして、エージェント150Aは、エージェント 150A、150Bとの間のミーティングを取り決めるために、ミーティングブ レイス220Bによってオペレーション”meet”を遂行するように、要求す る。このミーティングの間、エージェント150A、150Bは、後で詳細に説 明するように、情報を交換することができる。 以上の説明は、本発明の非常に簡単な使用に関するものであり、本発明は、もっ と汎用的に使用することが可能である。本文及びアベンディクスAに記述される コンピュータインストラクションセットを応用することにより、エージェントは 、どのブレイスにそのエージェント自身を転送させるのかを判断したり、どのエ ージェントとどのブレイスでミーティングを行って情報を交換するのかを判断し たりするための、非常に複雑で込み入ったロジックを使用することができる。 さらに、本発明は、以上に説明したような2又は3だけのコンピュータシステム を有するネットワークや、同種のコンピュータシステムから成るネットワークに 限定されるものではない。本文及びアベンディクスAに記述されるコンピュータ インストラクションセットは、大きなネットワーク内を移動するエージェントを 生成できるように、大きなネットワークにわたってブレイスを作り出しその位置 を決定することができる。ここで開示したインストラクションセットは、異機種 ネットワークにおいても実行することができるので、広域ネットワークは、大型 のメインフレームコンピュータ、ローカルエリアネットワーク、小型のパーソナ ルコンピュータ等を含むことができ、エージェントは、このような広域ネットワ ーク内を移動できる。 さら−に、2つのエージェントの間の相互作用としてミーティングを定義したが 、エージェントは、複数のミーティングに同時に参加することができる。 したがって、エージェントは、このエージェントが占有しているミーティングブ レイスと同じミーティングブレイスを占有している他の多数のエージェントと、 同時に相互作用することができる。 エージェント150Aとエージェント150Bとの間のミーティングの間、エー ジェント150A(図15E)は、フィーチャを遂行するようにエージェント1 50Bに指示するインストラクションを送出することによって、エージェント1 50Bと相互作用する。フィーチャの遂行が要求されるメカニズムについて後で 説明する。このメカニズムについては、以下及びアペンディクスAに詳細に説明 される。 実行状態は、各プロセスに関係している。用語の解説において説明したように、 各メソッドは、そのメソッドの実行の間、ある動的状態を有する。プロセスの実 行状態は、1以上のフレームを含み、各フレームは、そのプロセスの実行状態の 一部分である、メソッドの動的状態を記録する。各フレームは、スタックを備え る。このスタックには、オペレーションの要求の前にアーギュメントをブツシュ することができる。また、このスタックから、オペレーションの実行後にリザル トをポツプすることができる。現在のフレームのスタックが、現在のスタックと なる。現在のフレームは、エンジンによって実行されているコンピュータインス トラクションを含んでいるフレームである。 オペレーションを要求する前に、リクエスタは、0以上のオブジェクトに対する リファレンスを、現在のスタックにブツシュする。これによって、これらのオブ ジェクトは、オペレーションのためのアーギュメントとして供給される。次に、 リクエスタは、レスポンダに対するリファレンスを、現在のスタックにブツシュ する。レスポンダは、要求されたオペレーションを実行するように、リクエスタ によって指示されたオブジェクトである。最後に、リクエスタは、要求されたオ ペレーションを特定する識別子の実行を要求する。 要求されたオペレーションを実行する際に、エンジンは、現在のスタックのトッ プからオブジェクトをポツプする。そして、このオブジェクトはオペレーション のレスポンダとされる。オペレーションをインプリメントするメソッドは、レス ポンダがメンバであるクラス内に見出され、そして実行される。一実施例によれ ば、メソッドの遂行は、(i)新しいスタックを形成し、(i i)現在のスタ ックからオペレーションのアーギュメントをポツプして、それらを新しいスタッ クにブツシュし、(i i i)新しいスタックを現在のスタックとし、(iv )新しい現在のスタックからアーギュメントをポツプし、(V)オペレーション のよってリザルトが生成された場合、そのリザルトを新しい現在のスタックにブ ツシュし、(■1)リザルトがあるならば、リザルトを、新しい現在のスタック 力・らポツプし、以前に現在のスタックであったスタックにブツシュする。オペ レーション及びフィーチャの実行については、以下及びアペンデイクスAにおい て、一層詳細に説明されている。 以下の例は、オペレーションが要求されるメカニズムを表している。前述したよ うに、ミーティングの間、エージェント150Aは、オペレーションを遂行する ようにエージェント150Bに指示することによって、エージェント150Bと 相互作用する。エージェント150Aは、要求されたオペレーションへのアーギ ュメントとして、エージェント150Aに含まれるオブジェクトを供給する。 これにより、エージェント150Aは、エージェント150Bがこれらのオブジ ェクトにアクセスすることを許可する。また、エージェント150Bは、要求さ れたオペレーションのリザルトとして、オブジェクトを生成する。これ(こより 、エージェント150Bは、エージェント150Aがこのオブジェクトにアクセ スすることを許可する。 図39A〜39Fは、エージェント150Bと相互作用して情報のやり取りを行 うエージェント150A(図15E)の例を示している(エージェント150A については、図39A〜図39Fには示していない。)。 図39Aは、空(エンプティ)のスタック3902を示している。スタック39 02は、エージェント150A(図示せず)の実行状態の現在のスタックである 。図39Aは、スタック3902を空(エンプティ)であるものとして示してい るが、必ずしも空でなくてもよい。しかし、この例において、図39Aに示すス タック3902上のオブジェクトが影響されることはない。” Th1s is  a message”というテキストを有するような文字列であるストリング 3904は、スタック3902 (図39B)にブツシュされる。エージェント 150Bへのリファレンスは、スタック3902 (図390)にブツシュされ る。 エージェント150Aは、次に、識別子を実行する。ここで、この識別子のテキ ストは、”5tore”であり、この識別子は、オペレーション”5tore” を参照する。識別子の実行に際して、オブジェクト、すなわちエージェント15 0Bは、スタック3902からポツプされ、そのオブジェクトは、オペレーショ ン” 5tore” (図39D)を実行するように指示される。この例におい て、オペレーション” 5tore”は、エージェント150Bがメンバである クラスに定義される。このクラスのメソッドは、フローチャート4000(図4 0)によって示される。 オペレーション”5tore”を遂行する際に、エージェント150Bは、ステ ップ4002 (図40)において、スタック3902からストリング3904 をポツプする。ここで、エージェント150Bは、オペレーション”5tore ”を遂行するものであるが、エージェント150Bによるオペレーション“5t ore”の実行の動的状態を記録するフレーム(図示せず)は、エージェント1 50A(図示せず)の実行状態の一部である。エージェント150Aのパーミツ トのチャージアラウワンス、すなわちプロパティ“charges”は、エージ ェント150Bによるオペレーション”5tore”の遂行のリザルトとして送 出される。エージェント150Bは、オペレーション“5tore”を遂行する オブジェクトである。これは、(i)エージエンl−150A(図示せず)の実 行状態が、エージェント150Bをレスポンダとして特定し、(西)オペレージ 1ノ°5tore”のメソッドが、エージェント150Bがメンバであるクラス によって提供され、(i i i)エージェント150Bの内部状態が、オペレ ーション゛5tore”の遂行のコンテキストを提供するからである。 処理は、ステップ4002からステップ4004に移行し、このステップ4゜0 4において、ストリング3904のコピーであるストリング3904−Cが形成 され、図39Eに示した状態となる。ストリング3904.3904−Cは、フ レーム3906内に含まれている。ここで、フレーム3906は、エージェント 150Aの実行状態の一部分であり、エージェント150Bによって遂行された オペレーション゛’ 5tore”の動的状態を記録している。処理は、ステッ プ4004からステップ4006 (図40)に移行し、このステップ4006 において、エージェント150Bは、ストリング3904−Cを格納する。処理 は、ステップ4006からステップ4008に移行し、このステップ4008に お0て、エージェント150Bは、スタック3902からポツプされたストリン グ3904を廃棄する。処理は、ステップ4008から終了ステ・ノブ4010 に移行し、この終了ステップ4010において、オペレーション”5tore” は成功のうちに終了する。ステップ4008の結果、図39Fに示したような状 態となる。こうして、エージェント150Aは、エージェント150Bへの情報 を転送を成功する。 このように、エージェント150Aは、オペレーションを遂行するよう(こエー ジェント150Bに要求することによって、エージェント150Bと相互作用す る。また、エージェント150Aは、オブジェクトを、要求したオペレーション へのアーギュメントとして、及び実行されたオペレーションのリザルトとして、 エージェント150Bに送出する。以上の説明では、エージェント150Bは、 エージェント150Aの要求に従って、オペレーションを遂行するものとしてき た。しかし、オブジェクトによるフィーチャの遂行は、実際には、そのオブジェ クトの内部状態とクラスによつて規定されたコンテキストに基づいた、エンジン によるフィーチャの遂行である。なお、特定のフィーチャの挙動は、そのフィー チャを実行しているオブジェクトの内部状態に依存して変化する。ここで、オブ ジェクトの内部状態の一部分は、オブジェクトのプロパティによって定義される 。 エージェント150Bは、例えば、ステップ4008の後、終了ステップ401 0の前に、スタック3902にオブジェクトをブツシュすることによって、オブ ジェクトをエージェント150Bに転送させることもできる。このオブジェクト は、エージェント150Aによるオペレーション”5tore”のリザルトとし て、スタック3902からポツプされる。さらに、オペレーション” meet ”について前述したように、エージェント150Bは、エージェント150Aへ のリファレンスを含んでいる。したがって、エージェント150Bは、あるオペ レーションを行うようにエージェント150Aに指示したり、そのオペレーショ ンへのアーギュメントとしてエージェント150Aにオブジェクトを供給したり することも本発明の多くの様相は、非常に優れた可動性と融通性をプロセスに許 容する。 第1に、本発明のコンピュータインストラクションセットは、同機種ネットワー ク上でも、異機種ネットワーク上でも、同様にインプリメントされる。第21こ 、クラスは、コンピュータインストラクションのオブジェクトであるので、プロ セスと共にネットワークを介して移動することができる。第3に、コンピュータ インストラクションセットはインターブリートされる。 コンピュータインストラクションセントの同前述したように、データ及びコンピ ュータインストラクションを含むエージェントは、1つのコンピュータシステム から他のコンピュータシステムに移動することができ、どのようなコンピュータ システムにおいても実行可能である。 さらに、エージェントがその内部において移動することのできるネットワークは 、同機種ネットワークでも、異機種ネットワークでもよい。エージェントが移動 可能であるため、エージェントのプロシージャ部分を形成する各コンピュータイ ンストラクションが、ネットワーク上のどのコンピュータシステムで実行される かを正確に定めることは、必ずしもできない。したがって、エージェントがその 内部を通って移動するネットワークの各コンピュータシステムが、同一のコンピ ュータインストラクションセントをサポートしていることが大切である。 開示されたコンピュータインストラクションセットにおいてオブジェクトとして 表されるクラス 第1のコンピュータシステムにおいて実行されているエージェントは、以前に存 在していなかった新しいオブジェクトクラスを作り出すことができる。このとき 、エージェントは、第2のコンピュータシステムにおいて実行中のエンジンに向 かって移動することができる。そして、新しく形成されたクラスのメンバの処理 を含めて、エージェントのインターブリートは、その第2のコンピュータシステ ム内において続けられる。この場合、第2のコンピュータシステムにおいて実行 されているエンジンは、新しく形成されたクラス、又はそのクラスのいかなるメ ンバとも、以前に遭遇したことはない。そして、クラスは、開示されたインスト ラクションセットのオブジェクトとされるので、クラスは、1つのコンピュータ システムから別のコンピュータシステムに、エージェントとともに、移動するこ とができる。 久ユ玉孤造 いくつかのオブジェクトは、クラス、すなわちクラスオブジェクト、識別子及び クラス定義を定義して表現するために、組み合わされる。クラスオブジェクト、 識別子及びクラス定義は、それぞれ、クラス“class”、”Identif ire”、”C1ass Definition″のメンバである。 クラスオブジェクト、すなわちクラス”C1ass”のメンバは、そのフィーチ ャが同一のインターフェイス及びインプリメンテーションを持つオブジェクトセ ットを表すオブジェクトである。オブジェクトセットは、このクラスの“インス タンス°°である。クラス” class”及びクラスオブジェクトについては 、以下及びアベンディクスAに詳細に説明される。 識別子、すなわちクラス”1dentifire”のメンバは、あるクラスをリ ファレンスするために、インターフェイスオブジェクト又はインプリメンテーシ ョンオブジェクト内において使用される。なお、識別子は、他の形式のオブジェ クトも参照する。インターフェイスオブジェクト及びインプリメンテーションオ ブジェクトについては、後で詳細に説明する。第1のインターフェイスオブジェ クト又はインプリメンテーションオブジェクト内の、第1のクラスに参照する第 1の識別子は、第1のインターフェイスオブジェクト又はインプリメンテ−シコ ンオブジェクト内の、他のクラスに参照する識別子とは、異なっている。しかし 、第2のインターフェイスオブジェクト又はインプリメンテーションオブジェク トは、第2のクラスに参照するために、第1の識別子と同等の識別子を使用する ことができる。 インターフェイスオブジェクトとインプリメンテーションオブジェクトは、いく つかのフィーチャ、すなわちオペレーション及びアトリビュートを、規定する。 ここで、アトリビュート(アトリビュートにより、オブジェクトは、オブジェク トの内部状態の一部を供給又は変更するように指示される。)と、オペレーショ ン(オペレーションにより、オブジェクトは、いくつかのコンピュータインスト ラクションを実行するように指示される。)との間の区別は、本発明の概念形成 において重要である。アトリビュートは、概念的には、オペレーションの特別の ケースである。例えば、あるオブジェクトのアトリビュートを問い合わせると、 そのオブジェクトは、そのオブジェクトの内部状態についての情報を供給するコ ンピュータインストラクションを実行するように指示される。 繰り返し説明したきたように、オブジェクトによるフィーチャの遂行は、実際に は、そのオブジェクトの内部状態及びクラスによって規定されたそのオブジェク トのコンテキストに基づく、エンジンによるフィーチャの遂行である。ある特別 なフィーチャの挙動は、そのフィーチャを遂行しているオブジェクトの内部状態 に依存して変化する。ここで、オブジェクトの内部状態は、部分的には、オブジ ェクトのプロパティによって規定される。 単一の識別子で、別々のクラスによって各々規定される2つの別々のフィーチャ を、同時に特定することができる。例えば、オペレーション”add”は、クラ ス”Dictionary“による定義とは違うように、クラス” Numbe r”によって定義される。インターフェイス及びインプリメンテーションを選択 する際に、フィーチャを遂行しているエンジンは、そのフィーチャを遂行するオ ブジェクトのクラスにとって適切な、フィーチャの定義と、関連するメソッドオ ブジェクトとを選択する。換言すれば、フィーチャの定義は、レスポンダをメン バとするクラスから検索される。フィーチャを定義しているコンクリートクラス は、そのフィーチャのインターフェイスと、そのフィーチャのインプリメンテー ションとの両方を規定する。フィーチャを定義するアブストラクトクラスは、そ のフィーチャのインク−フェイスを規定し、またそのフィーチャのインプリメン テーションを規定することができる。 フィーチャの”インターフェイス”は、もしあるならば、そのフィーチャの遂行 において使用されたアーギュメントと、生成されるリザルトとを規定する。さら に、フィーチャによって生成されつるエクセブションは、そのフィーチャのイン ターフェイスによって規定される。ある、クラスによって規定されたフィーチャ のインターフェイスは、クラス定義オブジェクトのプロパティ”1nterfa ce”であるインターフェイスオブジェクト、すなわちクラス゛’ 1nter face”のメンバによって規定され、集合的に表される。クラス”1nter face”については、後で詳細に説明する。 フィーチャのインプリメンテーションは、そのフィーチャの”メソッド“によっ て定義される。フィーチャのメソッドは、取られるべき動作、すなわちそのフィ ーチャの遂行により実行されるべきコンピュータインストラクションを規定する 。メソッドオブジェクト、すなわちクラス”method”のメンバは、一般に 、一連のインストラクションであり、これらのインストラクションの実行は、そ のフィーチャの遂行を構成する。あるクラスによって規定又は継承されたフィー チャのインプリメンテーションは、クラス定義オブジェクトのプロパティ” 1 iple膳entatio口′″であるインプリメンテーションオブジェクト、 すなわちクラス“imple腸entation”のメンバによって規定され、 集合的に表される。クラス″1IIlplHentation’“については、 後で詳細に説明する。 フィーチャの定義は、クラスのスーパークラスから継承される。換言すれば、あ るフィーチャがある特定のクラスについて定義される場合、そのフィーチャは、 そのクラスのサブクラスについても定義される。しかし、サブクラスは、フィー チャのインプリメンテーションを再定義して、スーパークラスから継承されたイ ンプリメンテーションと置き換えることができる。しかし、そのサブクラスのス ーパークラスによってフィーチャが”シール”されている場合は、そのサブクラ スは、スーパークラスがら継承されたインプリメンテーションを再定義すること はできない。 クラスによって定義されるフィーチャは、そのクラスのクラス定義であるクラス ”C1ass Definition”のメンバによって定義される。クラス自 身は、クラスオブジェクトであるクラス”class”のメンバによって表され る。クラスは、識別子であるクラス”Identi r ire”のメンバによ って参照される。 クラスは、最初にアベンディクスAに構造が説明されているクラス定義を作り出 すことによって、作り出される。 クラス定義は、関係するクラスオブジェクトを作り出すために、オペレーション ”makec 1asses”を遂行するように指示される。オペレーション” makecIasses ”の構文及び挙動は、アペンディクスAに詳細に説明 されている。形成されるクラスオブジェクトは、(i)クラス定義オブジェクト に含まれる情報を保存することができ、(百)サイテション4108(図41A )、インターフェイスオブジェクト4110及びインプリメンテーションオブジ ェクト4112をクラスオブジェクトから導出することができるならば、特定の 形式や構造である必要はない。なお、(ii)の条件は、アペンディクスBに説 明するように、クラスオブジェクトのエンコードに必要である。 一実施例において、クラス定義4100(図41A)のためにオペレーション” makec l asses”を遂行しているエンジンは、クラス定義4100 のプロパティをクラスオブジェクト4102に複写して、クラスオブジェクト4 102(図41B)を形成する。 オペレーション°” makecIasses ”の遂行後、クラス定義410 0は廃棄される。 クラス定義4100のプロパティについては、後で詳細に説明する。クラス定義 4100のプロパティは、クラスオブジェクト41o2に複写されている。した がって、クラスオブジェクト4102は、クラス定義オブジェクト4100に含 まれる全ての情報を含んでおり、クラス定義オブジェクト4100のプロパティ を導出することができる。 他の実施例において、コンパイルされたコンピュータプロセスの処理効率の向上 は、サイテション4108、インターフェイスオブジェクト4110及びインプ リメンテーションオブジェクト4112の情報を複製し、クラスオブジェクト4 104内にサイテション構造4108C(図4IC)、インターフェイス構造4 110C及びインプリメンテーション構造4112Cをそれぞれ形成することに よって、実現される。コンパイルされるコンピュータインストラクションから成 るコンピュータプロセスは、インストラクションがインターブリードされるコン ピュータプロセスに比べて、一般により効率的であり、より少ないCPUクロッ クサイクルで、与えられたタスクを遂行する。前述したように、コンピュータイ ンストラクションは最初は人が理解しつるソースコードである。コンピュータイ ンストラクションがコンピュータによって実行される前に、このインストラクシ ョンは、コンピュータによって理解されうるオブジェクトコードやマシンコード に翻訳されなければならない。インターブリートされるコンピュータプロセスは 、各コンピュータインストラクションを実行する毎に、このような翻訳を必要と するが、コンパイルされたコンピュータプロセスは、コンパイルされたコンピュ ータプロセスの実行時に、このような翻訳を必要としない。したがって、コンパ イルされたコンピュータプロセスは、インターブリートされるコンピュータプロ セスに比べて、実質的により効率的である。 サイテション構造4108C、インターフェイス構造4110C及びインプリメ ンテーション構造4112Cは、それぞれサイテション4108、インターフェ イスオブジェクト411O及びインプリメンテーションオブジェクト4112に 相当し、コンパイルされたコンピュータインストラクション、例えばC++プロ グラミング言語で記述されるようなコンピュータインストラクションによって形 成されるオブジェクトである。 サイテション4108、インターフェイスオブジェクト411o及びインプリメ ンテーションオブジェクト4112(図41A)の構造を、クラスオブジェクト 4104(図4IC)に、それぞれサイテション構造4108C、インターフェ イス構造4110C及びインプリメンテーション構造4112Cとして複写する ことによって、クラスオブジェクト41o4によって表されるクラスに関する情 報は、この情報をクラスオブジェクト4102(図41B)のサイテション41 08、インターフェイスオブジェクト4110及びインプリメンテーションオブ ジェクト4112がら復元する場合に比べて、より効率的に復元することができ る。サイテション構造4108C(図41C)、インターフェイス構造4110 C及びインプリメンテーション構造4112Cに含まれる情報は、クラス定義4 100(図41A)の、対応するプロパティに含まれる情報と実質的に同等であ る。 クラスオブジェクトに含まれる情報は、そのクラスオブジェクトが導出されたク ラス定義内に含まれる情報と、実質的に同等である。したがって、クラス定義の 構造の説明は、クラスオブジェクトに含まれる情報の性質の説明を兼ねることと なる。 クラス定義オブジェクト クラスによって定義されたフィーチャは、そのクラスを定義するクラス定義オブ ジェクトにおいて定義される。クラス定義オブジェクト4100の構造は、図4 1Aに示されている。クラス定義オブジェクト4100は、プロパティ”cit aLion” 、 ” 1nterface” 、”imp lemen ea t i on”を含んでいる。サイテション4108は、クラス定義オブジェク ト4100のプロパティ゛’ C1tation”であり、クラス定義オブジェ クト4100によって定義されたクラスを特定するとともに、そのクラスのオー ソリティ、タイトル及びエディジョンも特定する。サイテションの構造について は、以下及びアベンディクスAに一層詳細に説明される。 インターフェイスオブジェクト4110及びインプリメンテーションオブジェク ト4112は、それぞれクラス定義オブジェクト4100のプロパティ”1nt errace” 、 ” implementation”である。インターフ ェイスオブジェクト4110は、クラス定義オブジェクト4100によって定義 されたフィーチャのインターフェイスを定義し、インプリメンテーションオブジ ェクト4112は、クラス定義オブジェクト4100によって定義されたフィー チャのインプリメンテーションを定義する。 インターフェイスオブジェクト インターフェイスオブジェクト4110の構造は図42に示されている。インタ ーフェイスオブジェクト4110のプロパティには、プロパティ“1sAbst ract+、 ” classFeatures −、” 5ealedcIa ssFeatures ” 、 ” 1nstanceFeatur■刀香A ” 5ealedlnstanceFeatures”、 ” vocabul ary”、” 5uperclasses”が含まれる・ブーリアン4208は 、インターフェイスオブジェクト4110のプロパティ”1sAbstract ”である。インターフェイスオブジェクト4110をインターフェイスとするク ラスは、ブーリアン4208が”true”であれば、抽象クラスであり、ブー リアン4208が”true”でなければ、コンクリートクラスである。 レキシコン4218は、インターフェイスオブジェクト4110のプロパティ” c l assFeatures”である。レキシコン4218は、そのクラス の”クラスフィーチャ”の定義のレキシコン(辞書)である。ここで、クラスの クラスフィーチャとは、クラス自身が、すなわちクラス定義オブジェクト410 0(図41A)によって表されるクラスが、レスポンダとなるフィーチャである 。レキシコン4218(図42)のキー、例えば識別子4218には、クラスフ ィーチャを参照する識別子である。レキシコン4218の値、例えばフィーチャ 定義4218Vは、クラスフィーチャを定義するフィーチャ定義である。フィー チャ定義については、後で詳細に説明する。 セット4212は、インターフェイスオブジェクト4110のプロパティ″5e aledcIassFeatures ”である。セット4212は、シールさ れたクラスフィーチャを参照する、例えば識別子4212Iのような、識別子の セットである。シールされたフィーチャは、サブクラスが変更することができな いフィーチャである。 フィーチャがシールされていない場合、クラス定義オブジェクト4100(図4 1A)によって表されたクラスのサブクラスは、フィーチャのインプリメンテー ションを再定義することによって、そのフィーチャを変更することができる。 レキシコン4214(図42)は、インターフェイスオブジェクト4110のプ ロパティ”1nstanceFeatures″゛である。レキシコン4214 は、クラスの”インスタンスフィーチャバの定義のレキシコン(辞書)である。 クラスのインスタンスフィーチャは、そのクラスのメンバがレスポンダであるフ ィーチャである。 レキシコン4214 (図42)のキー(レキシコン4214のキーや値は図示 していない)は、インスタンスフィーチャを参照する識別子であり、レキシコン 4214の値は、インスタンスフィーチャを定義するフィーチャ定義である。 セット4216は、インターフェイスオブジェクト4110のプロパティ”5e aledlntanceFeatures ”である。セット4216は、シー ルされたインスタンスフィーチャを参照する識別子(図示せず)のセットである 。 レキシコン4218は、インターフェイスオブジェクト4110のプロパティ” vocabu l ary”である。レキシコン4218は、インターフェイス オブジェクト4110において参照されたユーザ定義クラスの識別子を、これら のクラスのサイテションと関連させる。レキシコン4218のキーは、識別子、 例えば識別子4218にであり、レキシコン4218の値は、対応するサイテシ ョン、例えばサイテション4218Vである。サイテションについては、以下及 びアベンディクスAに詳細に説明される。インターフェイスオブジェクト411 0のプロパティ”vocabulary“、すなわちレキシコン4218は、イ ンターフェイスオブジェクト411Oの”ボキャブラリイ°°であり、また、ク ラス定義オブジェクト4100(図41A)によって定義されたクラスの”ボキ ャブラリイ”である。 リスト4220 (図42)は、インターフェイスオブジェクト4110のプロ パティ゛” 5uperclasses”である。リスト4220は、クラスを 参照する識別子、例えば識別子4220Iのリストである。リスト4220の識 別子4220Iによって参照されるクラスは、クラス定義オブジェクト4100 (図41A)によって定義されたクラスのイミディエートインターフェイススー パークラスである。 リスト4220 (図42)の最後のアイテムを除く全てのアイテムは、ミック スインクラスを特定し、リスト4220の最後のアイテムは、フレーバを特定す る。 フレーバを特定するリスト4220の最後のアイテムの重要性については、フィ ーチャの実行におけるメソッドオブジェクトの選択と、オブジェクトのイニシア リゼーションとに関連して、後で詳細に説明する。 フィーチャ定義 フィーチャ定義、すなわちクラス”FeatLIre”のメンバは、ある特別の フィーチャのインターフェイスを定義するオブジェクトである。フィーチャ定義 4210V(図43)のプロパティには、プロバチ4 ” exception s”、” 15Public”が含まれる。クラス°’ Feature”は抽 象的なので、フィーチャ定114210Vは、クラス”Feature”のイン スタンスではなく、クラス”Feature”のメンバであり、オペレーション 定義又はアトリビュート定義である。これらの定義については、どちらも以下及 びアペンディクスAに説明される。セント4302は、フイーチャ定11421 0Vのプロパティ” exceptions”である。セット43o2は、例え ば識別子43021のような、識別子のセットである。ここで、これらの識別子 は、それぞれ、定義されたフィーチャによって送出されたエクセプションがメン バであるクラスを参照する。そして、フィーチャ定義4210Vによって定義さ れたフィーチャがエクセブションを送出した時、そのエクセプションは、セット 4302の識別子によって参照されたクラスのうちの1つのメンバであることが 確がぬられる。エクセブションが、セット43o2の識別子によって参照された クラスのメンバでない場合には、エクセブションの代わりに、クラス”unex pectedException”のメンバが送出される。その他の場合には、 エクセブションが送出される。 ブーリアン4304は、フィーチャ定義4210Vのプロパティ”1sPubl  ic”である。ブーリアン4304は、フィーチャ定義4210Vによって定 義されたフィーチャが、パブリックなフィーチャが、又はプライベートなフィー チャかを示す。すなわち、ブーリアン43o4は、定義されたフィーチャのアク セスが”パブリック°であるが′°プライベート”であるがを示す。各フィーチ ャは、それに組み合わされた”アクセス”を持つ。このアクセスは、どんなオブ ジェクトが、どんな状況の下で、各フィーチャが適切に要求されうるがを定める 。本発明の各フィーチャのアクセスについては、アペンディクスA、Bに示され ている。 ブーリアン4304が”true”である場合、そのフィーチャはパブリックで ある。アクセスがパブリックであるフィーチャは、どんなオブジェクトによって 要求されてもよい。ブーリアン43o4が”ralse=である場合、そのフィ ーチャはプライベートである。アクセスがプライベートであるフィーチャは、レ スポンダ、すなわちそれ自身のフィーチャだけを要求することができるオブジェ クトによってのみ、要求される。システムフィーチャ、すなわちアクセスが”シ ステム”であるフィーチャは、全て、予め定義されており、フィーチャ定義によ って定義されるこ太はない。 定義済みフィーチャは、エンジン内においてインプリメントされており、フィー チャ定義のようなオブジェクトによって表されることはない。 アトリビュートの定義 アトリビュートを定義するフィーチャ定義は、アトリビュート定義、すなわちク ラス″Attribute″のメンバである。したがって、クラス”Attri bute”は、クラス“Feature“のサブクラスである。アトリビュート 定義はフィーチャ定義であるので、前述したように、アトリビュート定義は、ク ラス”Feature”によって定義又は継承されたプロパティを継承する。さ らに、アトリビュート定義4400(図44)は、プロパティ゛’ const rait” 、” 1sSeじを含む。 コンストレイント44o2は、アトリビュート定義4400のプロパティ”C0 n5trait”である。コンストレイント44o2は、アトリビュート定義4 400によって定義されたアトリビュートを表すオブジェクトを制約する。後で 詳細に説明するように、コンストレイントは、あるオブジェクトに対する制約を 設定する。 コンストレイントは、(i)そのオブジェクトがメンバであるクラス、(ii) オブジェクトがそのクラスのインスタンスでなければならないがどうが、(ii l)オブジェクトがニル(0)でもよいが、(iv)フィーチャのりクエスタと レスポンダの間でオブジェクトがどのようにパスされるかを制約することができ る。 ブーリアン4404は、アトリビュート定義44oOのプロパティ”1sSet ”である。ブーリアン4404は、アトリビュート定義4400によって定義さ れたアトリビュートが、問い合わせ力呵能なだけでなく、設定も可能であるかを 定める。ブーリアン4404が′°けue”であれば、アトリビュート定義44 00は、設定可能なアトリビュートを規定する。そうでなければ、アトリビュー ト定義4400によって定義されたアトリビュートは、問い合わせのみ可能であ る。 オペレーションの定 前述したように、フィーチャは、アトリビュート又はオペレーションである。 したがって、クラス″Feature“の第2のサブクラスは、クラス” op eration”である、オペレーション定義、すなわちクラス°゛0pera tion”のメンバは・オペレーションのインターフェイスを定義する。 図45は、オペレーション定義4500の構造を示す。オペレーション定義は、 フィーチャ定義であるので、オペレーション定fi4500は、前述したように 、クラス”Feature”によって定義又は継承されたプロパティを含む。さ らに、オペレーション定義は、プロパティ” arguments” 、” r esult”を含む。 リスト4502は、オペレーション定義4500のプロパティ°’ argu+ ments”である。オペレーション定義のプロパティ” argumentS ”は、オプションである。したがって、オペレーション定義のプロパティ°”  argua+ents”は、リストではなく、ニル(0)でもよい。プロパティ “arguments”がニル(0)である場合、オペレーション定義4500 によって定義されたオペレーションは、可変数のアーギュメントを使用する。ア ーギュメントの数が可實であるオペレーションの遂行については、アベンディク スAに説明されている。逆に、プロパティ”arguments”がリスト45 02であれば、オペレーション定義4500によって定義されたオペレーション によって使用されるアーギュメントの数は、ある固定された数であり、この数は 、リスト4502の長さに等しい。プロパティ°’ arguments”が空 のリストであれば、オペレーションはいかなるアーギュメントも使用しない。リ スト4502のアイテム、例えばコンストレイント4502Iは、オペレーショ ン定義4500によって定義されたオペレーションのアーギュメントを制約する コンストレイントである。図46に関連して後述するように、コンストレイント は、オブジェクトのクラス及びパッセージを制約する。 コンストレイント4504は、オペレーション定義4500のプロパティ”re sulL”である。コンストレイント4504は、オペレーション定義4500 によって定義されたオペレーションのリザルトを制約する。オペレーション定義 のプロパティ”resulじもオプションである。 プロパティ”resu I t”がコンストレイント45o4でなくニル(0) である場合、オペレーション定義4500によって定義されたオペレーションは リザルトを生成しない。 コンストレイント 前述したように、コンストレイントは、オブジェクトのクラス及びやり取りを制 約する。コンストレイント4402の構造については、図46に示されている。 コンストレイント4402のプロパティには、プロパティ”classlD”、 ”orclass” 、 ” 1slnstance” 、 ” 1sopti onal” 、 ” passage”が含まれる。 プロパティ”ofcIass”、 ” classlD“は、制約されたオブジ ェクトがメンバでなければならないクラスを特定するための他の方法である。ク ラスオブジェクト4602は、コンストレイント4402のプロパティ”ofc Iass”である。クラスオブジェクト4602は、コンストレイント4402 の設定されたオブジェクトがメンバであるクラスを表している。プロパティ”o fclass”はオプションであり、ニル(0)でもよい。プロパティ”ofc Iass”がニル(0)である場合、そのオブジェクトをメンバとするべきクラ スは、コンストレイント4402のプロパティ”classlD”である識別子 4610によって、参照される。 プロパティ゛’ ofcIass“は、クラスオブジェクトである。したがって 、プロパティ” orclass”は、コンストレイント4402が生成された 時にだけ存在するクラスである。しかし、コンストレイントのプロパティを、現 存するクラスに限定すると、本発明のユーザが複数の独立したクラスを定義する ことを妨げてしまう。 例えば、第1のクラスのフィーチャ定義におけるコンストレイントが、第2のク ラスを参照していたり、第2のクラスの第2のフィーチャ定義における第2のコ ンストレイントが、第1のクラスを参照していることがあり得る。プロパティ“ きる。 ブーリアン46o4は、コンストレイント44o2のプロパティ”1slnst ance”である。ブーリアン46o4は、フンストレイント44o2の設定さ れたオブジェクトが、クラスオブジェクト46o2によって表されたクラスのイ ンスタンスでなければならないがを定める。ブーリアン46o4がtrue”で あれば、コンストレイントが設定されたオブジェクトは、クラスのインスタンス でなければならない。さもなければ、そのクラスにおいて、コンストレイントが 設定されたオブジェクトのメンバとしての地位は、コンストレイント44o2を 十分に満足している。 ブーリアン4606は、コンス)・レイント44o2のプロパティ’ 1sOp tional””CJる。ブー’J7ン46061.t、プロパティ” ofc Iass” 、 ” classlD″とl14係なく、ニルオブジェクトがコ ンストレイント44o2を満たすかを定める。ブーリアン4606が” tru e”であれば、ニルオブジェクトはコンストレイント4402を満たす。本明細 書中の多くの例において示すように、ニルオブジェクトは、割愛されたオプショ ンのアーギュメントや、フィーチャのリザルトの代わりに、スタック中に置くこ とができる。 識別子4608は、コンストレイント44o2のプロパティ°’ passag e”である。 識別子4608は、コンストレイント44o2が設定されたオブジェクトがどん な仕方でパラメーターとして、すなわちアーギュメント又はリザルトとして、通 過するかを示している。識別子4608は、4つの値、すなわち” byRef ”、′byυnprotectedRef”、” byProtectedRe r”及び” byCopy’を持ちつる。識別子4608にこれら4つの値以外 の値が設定されると、クラス”Passage Invalid’のメンバであ るエクセプションが送出される。 フィーチャのりクエスタとそのフィーチャのレスポンダの間での、アーギュメン トに対するリファレンスのやり取りを行う際、エンジンは、リクエスタからアー ギュメントに対する元となるのリファレンスを受け取り、レスポンダに目的のリ ファレンスを供与する。また、リザルトに対するリファレンスのやり取りを行う 際は、元となるリファレンスをレスポンダから受け取り、目的のリファレンスが リクエスタに供給される。 パラメーターが”byRer”によってやり取りされる場合、元となるリファレ ンスと目的のリファレンスとは互いに同一である。パラメーターが”byUnp rotectedRe「”によってやり取りされるとき、元となるリファレンス が保護されている場合には、クラス”Reference Protected ”のエクセブションが送出され、他の場合には、目的のリファレンスは元となる リファレンスである。パラメーターが”byPro tec LedRe r” によってやり取りされるとき、目的のリファレンスは、元となるリファレンスに よって参照されるオブジェクトに対する、保護されたリファレンスである。パラ メーターが”bycopy”によってやり取りされるとき、目的のリファレンス は、元となるリファレンスによって参照されるオブジェクトのコピーに対する保 護されていないリファレンスである。パラメーターのやり取りについては、アペ ンディックスAに一層詳細に説明されている。 このように、コンストレイント4402 (図44)は、オブジェクトのクラス 及びやり取りを制限する。 インプリメンテーションオブジェクト 前述したように、インプリメンテーションオブジェクト4112(図41A)は 、クラス定義オブジェクト4100によって定義されたクラスのクラスインプリ メンテーションを定義する。クラスインプリメンテーションは、次のものを定義 する。(i)定義されたクラスのメンバの0以上のプロパティ。(ii)クラス によって定義された各クラスフィーチャのそれぞれのインプリメンテーション。 (i i i)クラスによって定義された各インスタンスフィーチャのそれぞれ のインプリメンテーション。(iv)クラスについて定義されたアトリビュート を設定するメソッド。(V)定義されたクラスから他のクラスにオブジェクトを 置換するメソッド。(vi)他のクラスから定義されたクラスにオブジェクトを 實換するメソッド。(vii)クラスの定義に用いられる識別子の定義。(vi ii)定義されたクラスのインプリメンテーションスーパークラス。 リスト4702 (図47)は、インプリメンテーションオブジェクト4112 のプロパティ”propert ies”である。リスト4702は、インプリ メンテーションオブジェクト4112がインプリメントするプロパティを定義す る。リスト4702のアイテム、例えば識別子47021は、インプリメンテー ションオブジェクト4112によって定義されたプロパティの識別子である。 レキシコン4704 (947)は、インプリメンテーションオブジェクト41 12のプロパティ”classMethods”である。レキシコン4704は 、クラス定義オブジェクト4100(図41A)によって表されたクラスのクラ スフィーチャのためのメソッドを提供する。レキシコン4704のキー、例えば 識別子4704K(図47)は、クラスフィーチャの識別子である。また、レキ シコン4704の値、例えばメソッドオブジェクト4704Vは、クラスフィー チャのインプリメンテーションを定義するメソッドオブジェクトである。 メソッドオブジェクト、すなわちクラス゛’ method”のメンバは、フィ ーチャのメソッドを定義するオブジェクトである。フィーチャのメソッドは、そ のフィーチャの遂行にあたってエンジンが行う、すなわちそのエンジンを実行し ているコンピューターシステムが行う、特定の一連のステップである。 インストラクションセットが、ユーザ定義されたクラスやフィーチャによって修 正される場合、メソッドは、開示されたインストラクションセットの用語で定義 される。メソッドオブジェクトについては、以下及びアペンディックスAに一層 詳細に説明されている。 レキシコン4706は、インプリメンテーションオブジェクト4112のプロパ ティ”instanceMethods”である。レキシコン4706は、対応 するメソッドオブジェクトに、インスタンスフィーチャの識別子を関連づける。 ここで、対応するこれらのメソッドオブジェクトは、順次、インスタンスフィー チャのインプリメンテーションを定義する。レキシコン4706の構造は、レキ シコン4704の構造と同様であり、この説明は引用によって本明4t[lIの 一部となる。 レキシコン4707は、インプリメンテーションオブジェクト4112のプロパ ティ”setにethods”である。レキシコン4707は、メソッドオブジ ェクトに、それぞれのアトリビュートを特定する識別子を関連づける。アトリビ ュートが”セット”モディファイヤーが存在しているときに実行されると、レキ シコン4707の各メソッドオブジェクトは、対応する識別子のアトリビュート をインプリメントする。換言すれば、レキシコン4707の各メソッドオブジェ クトは、対応するアトリビュートの設定についてのインプリメンテーションを定 義する。”セット°モディファイアが存在しているときにアトリビュートを実行 すること番二ついては、アペンディックスAに説明されている。 レキシコン4708は、インプリメンテーションオブジェクト4112のプロパ ティ”r romMethods”である。レキシコン4708は、メソッドオ ブジェクトに、識別子を関連づける。各識別子は、クラスを参照し、メソッドオ ブジェクトと関連づけられる。ここで、このメソッドオブジェクトは、参照され たクラスから、クラス定義オブジェクト4100(図41A)によって定義され たクラス、すなわちインプリメンテーションがインプリメンテーションオブジェ クト4112(図47)であるクラス、への変換についてのインプリメンテーシ ョンを提供する。 レキシコン4710は、インプリメンテーションオブジェクト4112のプロパ ティ”toMethods“である。レキシコン471oは、メソッドオブジェ クトに、識別子を関連づける。各識別子は、クラスを参照し、メソッドオブジェ クトと関連づけられる。ここで、このメソッドオブジェクトは、クラス定義オブ ジェクト4100(図41A)によって定義されたクラスがら、すなわちインプ リメンテーションがインプリメンテーションオブジェクト4112(図47)で あるクラスから、参照されたクラスへの変換についてのインプリメンテーション を提供する。レキシコン4707.47o8.471oの構造は、レキシコン4 7o4の構造と同様であり、この説明は引用によってこの明細書の一部分となる 。 レキシコン4712は、インプリメンテーションオブジェクト4112のプロパ ティ゛’ vocabulary”である。レキシコン4712は、クラスを特 定するためにインプリメンテーションオブジェクト4112によって使用される 識別子を定義する。レキシコン4712のキー、例えば識別子4712には、特 定のユーザ定義クラスを特定するために、インプリメンテーションオブジェクト 4112内において用いられる識別子である。レキシコン4712の値、例えば サイテション4712Vは、関連づけられた識別子によって特定されるクラスを 特定するサイテションに対応する。レキシコン4712は、インプリメンテーシ ョンオブジェクト4112内のユーザ定義クラスを特定するために用いられる識 別子と、ネットワークを通じてクラスを特定するために用いられるサイテション との間の翻訳を行う。サイテションについては、以下及びアペンディックスAに 詳細に説明されている。 リスト4714は、インプリメンテーションオブジェクト4112のプロパティ ” 5uperclasses”である。リスト4714のアイテム、例えば識 別子4714■は、クラス定義4100(図41人)によって定義されたクラス のインプリメンテーションスーパークラスを特定する識別子である。リスト47 14(図47)(すなわちインプリメンテーションオブジェクト4112のプロ パティ’ 5upercl asses”)は、リスト4220 (すなわちイ ンターフェースオブジェクト4110のプロパティ”5uperc 1asse s”)のアイテムではないクラスの識別子を含むことができる。例えば、第1の クラスは、第1のクラスのフィーチャのインプリメンテーションにおいて、第2 のクラスのフィーチャを使用する能力を持つことにより、得をすることがある。 しかしながら、このようなりラスを設計する際に、第2のクラスのフィーチャそ のものが、第1のクラスによって継承されることは、必ずしも好ましくない。こ のような場合、第2のクラスは、第1のクラスのインプリメンテーションスーパ ークラスとされるが、第1のクラスのインターフェーススーパークラスとはされ ない。 このように、インプリメンテーションオブジェクト4112は、クラス定義オブ ジェクト4110(図41A)によって定義されるクラスについて、(a)定義 されたクラスのメンバのプロパティ、(b)クラス及びインスタンスのフィーチ ャメソッド、(C)アトリビュートを設定するメソッド、 (d)定義されたク ラスへの変換、又は定義されたクラスからの変換についてのメソッド、(e)ク ラスを特定するために用いられる識別子、及び(f)インプリメンテーションス ーパークラス、を定義する。 メソッドオブジェクト 前述したように、メソッドオブジェクトは、フィーチャを遂行する際、又は変換 を遂行する際に実行されるコンピューターのインストラクションを定義する。 図48は、メソッドオブジェクト4800の構造を示す。メソッドオブジェクト 4800のプロパティは、プロパティ” procedure” 、 ” va riables”を含む・プロシージャ48o2は、メソッドオブジェクト48 00のプロパティ”procedure”である。プロシージャ48o2の遂行 は、メソッドオブジェクト4800によって実行される、フィーチャの遂行又は 変換の遂行を構成する。プロシージャについては、後で詳細に説明する。 リスト4804は、メソッドオブジェクト4800のプロパティ“variab les”である。リスト4804は、プロシージャ48o2によって使用される 変数を定義する。リスト4804のアイテム、例えば識別子4804 Iは、メ ソッドオブジェクト4800について定義された変数を参照する識別子である。 あるメソッドの変数の値を示すオブジェクトは、そのメソッドの遂行の間、ユー ザ定義フレームのプロパティ°” variables”としてリスト内に、記 憶される。フレームについては、以下及びアペンディックスAに詳細に説明され ている。 プロシージャ プロシージャ4802の構造は、図49に示される。プロシージャ48o2は、 オブジェクト4902A〜4902Eのリスト49o2を有している。リスト4 902は、クラス”Lisじのメンバではなく、プロシージャ48o2に不可欠 な部分の代わりである。換言すれば、リスト49o2はプロシージャ48o2の プロパティ又はアイテムではなく、リスト49o2をクラス”Li5t”のメン バとして扱うことが可能なフィーチャは提供されていない。本発明の一実施例に おいて、クラス”procedure”は、クラス”Li5t”のインプリメン テーションサブクラスであるが、クラス”Li5t”のインターフェースサブク ラスでない。したがって、クラス゛’ Li5t”によって定義されたフィーチ ャは、クラス”procedure”によって継承されることはないが、クラス ”Li5t”によって定義されたメソッドは、リスト4902を生成しアクセス するために、プロシージャによって使用されることができる。 オブジェクト4902A〜4902Eは、実行オブジェクト、すなわちミックス インクラス”Executed”のメンバである。プロシージャ4802は、順 次、すなわちオブジェクト4902A、オブジェクト4902B、オブジェクト 4902C、オブジェクト4902D、オブジェクト4902Hの順序で、オブ ジェクト4902A〜4902Eを実行することによって遂行される。プロシー ジャ4802の実行の間、予め定義されているフレームは、オブジェクト490 2A〜4902Eのうちのどれが実行されているかを含めて、プロシージャ48 o2の遂行の動的な状態を記録し保持する。予め定義されているフレームについ ては、以下及びアペンディックスBに詳細に説明されている。 サイテション サイテションは、他のオブジェクトと後方向又は前方向に互換性がある一連のオ ブジェクトを特定するオブジェクトである。さらに、サイテシコンは、一連のオ ブジェクト内やプロセス内の特定のオブジェクト、又はその特定のオブジェクト を作り出したプロセスのオーソリティを特定する。また、既に簡単に説明したよ うに、クラスはサイト(引用)されたオブジェクトである。したがって、サイテ ションは、互いに後方向及び前方向に互換性がある一連のクラスを特定するため に用いられる。後方向及び前方向の互換性については、以下及びアペンディック スAに詳細に説明される。 なお、サイテションが互いに前方向又は後方向に互換性があるオブジェクトとし て特定するオブジェクトは、必ずしも前方向又は後方向に互換性がある訳ではな い。例えば、それぞれのサイテションによって互換性があると特定された2つの クラス定義オブジェクトは、単に互換性があることを意図されているに過ぎない 。 サイテション5000 (図50)は、クラス“C1tation“のメンバで ある。サイテション5000のプロパティには、プロパティ”title”、” ■ajorEd山on”、”m1norEdiLion”、”author“が 含まれる。サイテション5000のプロパティ“title”は、識別子500 8である。したがって、識別子5008はサイテション5000のタイトルであ る。サイテションのタイトルは、サイテションによって表される一連の組を参照 する。サイテションのタイトルは、サイテションのオーソリティに関してインタ ーブリートされる。換言すれば、異なったオーソリティの2つのサイテションは 、同等のタイトルを使用することができる。この2つのサイテションは、異なっ たオーソリティによって、互いに区別される。サイテションのオーソリティは、 以下に説明するプロパティ” author”によって特定される。 プロパティ”majorEdition” 、 ” m1norEdition ”は、それぞれインチジャ5004.5006である。したがって、インチジャ 5004.5001Bは、それぞれ、サイテション5000のメージャーエディ ション及びマイナーエディジョンである。ある一連の2つのオブジェクト間の関 係は、それらのオブジェクトのメージャーエディション及びマイナーエディジョ ンの関係によって定められる。例えば、オブジェクト5102.5104(図5 1)は、それぞれサイテション5106.5108によって引用される。インチ ジャ5110.5112は、それぞれ、サイテション5106のメージャーエデ ィションとマイナーエディジョンを表している。インチジャ5114.5116 は、それぞれ、サイテション5108のメージャーエディションとマイナーエデ ィジョンを表している。 サイテション5106のメージャーエディションであるインチジャ5110が、 サイテション5108のマイナーエディジョンであるインチジャ5114よりも 大きい場合には、オブジェクト5102は、オブジェクト5104の生成よりも 後に生成されたものであり、オブジェクト5104に対して後方向に互換性があ る。オブジェクト5102がオブジェクト5104に対して後方向に互換性があ れば、オブジェクト5104は、オブジェクト5102に対して前方向に互換性 がある。逆に、インチジャ511oが、インチジャ5114よりも小さい場合に は、オブジェクト5104は、オブジェクト5102の生成よりも後に生成され たものであり、オブジェクト5102に対して後方向に互換性がある。 また、インチジャ5110.5114が等しい場合は、それぞれオブジェクト5 102.5104のマイナーエディジョンを表しているインチジャ5112.5 116の相対的な値が、オブジェクト5102.5104の間の関係を定める。 例えば、インチジャ5112がインチジャ5116よりも大きい場合は、オブジ ェクト5102はオブジェクト5104の生成よりも後に生成され、オブジェク ト5104に対して後方向に互換性がある。逆に、インチジャ5112がインチ ジャ5116よりも小さい場合は、オブジェクト5104はオブジェクト510 2の生成よりも生成の後に生成され、オブジェクト5102に対して後方向に互 換性がある。 プロパティ”author”は、テレネーム5002 (図50)である。した がって、テレネーム5002は、サイテション5000のオーサーである。テレ ネーム5002は、サイテション5000によって特定されるオブジェクトを生 成したプロセスの名前である。ある一連のオブジェクトは、全て単一のオーソリ ティのプロセスによって生成される。 前方向及び後方向の互換性についてのより正確な定義は、アペンディックスAに 示されている。次の例は、これらのコンセプトの意味及び有用性を示している。 アペンディックスAに定義されるように、クラス”Integer”のメンバ、 すなわちインチジャは、“加算”、”減算”、′掛は算”及び”割り算”を含む 数学的な演算を実行することができる。クラス”Integer”のプロパティ ”C1tation”は、クラス°” Integer”を特定する第1のサイ テションである。本明細書中に記載されるコンピューターインストラクションセ ットをインプリメントする際に、また、本明細書中に記載されるコンピューター インストラクションセットの使用において新しいクラス及び新しいフィーチャを 定義する際に、アペンディックスAに記載されたクラス”Integer”の記 述に適合するクラス”Integer”のメンバに依存して非常に多くのフィー チャが設計される。 本明細書に記述されるコンピューターインストラクションセットの次のバージョ ンにおいて、乱数を生成させるためにオペレーション”randaa+ize” を提供するように第2のクラス”Integer”が設計されているものと想定 する。第1のクラス” Integer”は、第1のクラス゛’ Intege r”と呼ばれる。第2のクラス” Integer”のプロパティ°’ C1t ation”は、第2のサイテションである。さらに、第1のクラス゛’ In teger”と第2のクラス°’ Integer”との間には他の差異は存在 せず、第1のクラス゛’ Integer”のメンバについて要求されたいかな るフィーチャも、第2のクラス”Integer”のメンバによって満たされて いるものと想定する。 このとき、第1のクラス°’ Integer”の記述に適合したインチジャに 依存して設計されたフィーチャは、第2のクラス゛’ Integer’“のイ ンチジャについても、適切に機能する。すなわち、第2のクラス”Intege r”は、第1のクラス”Integer”と後方向に互換性があり、逆に、第1 のクラス“Integer”は、第2のクラス”Integer”と前方向に互 換性がある。 第1及び第2のサイテションのプロパティ“title”は、互いに等しく、ど ちらかのクラス”Integer”を参照する。しかし、第1及び第2のサイテ ションのメージャーエディション及びマイナーエディジョンは、第1のクラス″ Integer”と第2のクラス”Integer”の間の前方向及び後方向の 互換性を反映している。後方向及び前方向に互換性のあるオブジェクトがネット ワーク内において共存することを許容すると、本明細書に記述されるコンピュー ターインストラクションセ・ノドの初期のパーンヨンによって作り出されたオブ ジェクトが、本明細書に記述されるコンピューターインストラクションセットの 後のバージョンを実行するエンジン内において、移動や動作をできるようになる 。以上の説明からあきらかなように、クラスは、それ自身に対して前方向及び後 方向に互換性がある。以上の実施例では、予め定義されているクラスのコンテキ ストにおいて前方向及び後方向の互換性を示したが、ユーザ定義クラスは、通常 、予め定義されているクラスよりも頻繁に変化する。そのため、クラスの間の前 方向及び後方向の互換性を与えることは、ユーザ定義クラスのコンテキストにお いて、特に重要である。 こうして、クラスは、ここに開示されたインストラクションセットの一部分とな る。したがって、クラスは、移動可能であり、エージェントと共に第1のコンピ ューターシステムから第2のコンピューターシステムに移動することができる。 インターブリートされるインストラクションセット前述したように、本発明の3 つの要素によって、コンピュータープロセスは、非常に可動的かつ汎用的になる 。第1に、本発明のコンピューターインストラクションセットは、同種又は異種 のネットワーク内において同様にインプリメントされる。第2に、クラスは、開 示されたコンピューターインストラクションセットのオブジェクトであるので、 インストラクションセットは、拡張性と可動性を兼ね備える。すなわち、遠隔の コンピューターシステムにおいて定義されていないクラスは、可動性を有するコ ンピュータープロセスと共に、遠隔のコンピューターシステムに転送される。以 下の説明は、コンピューターインストラクションセントをより汎用的かつ可動的 にする第3の要素に関する。すなわち、ここに開示されるコンピューターインス トラクションセットのコンピューターインストラクションは、インターブリード される。 多くのコンピュータープロセスは、最初に人が読むことができるソースコードで 書かれ、次にこのソースコードがオブジェクトコードにコンパイルされ、マシン コードにリンクされる。このマシンコードは、人には全く読むことができない。 ソースコードをマシンコードに翻訳する主な利点は、マシンコードがソースコー ドを再コンパイルすることなく、何回でもコンピューターシステムのCPUによ って実行されるため、翻訳を一度だけ行えば良いことである。しかし、異機種ネ ットワークの2つのコンピューターシステムの両方が、同一のマシンコードのイ ンストラクションを実行することはできない。したがって、第1のコンピュータ ーシステムから第2のコンピューターシステムに向がって移動するエージェント は、第1のコンピューターシステムに固有のものでも、第2のコンピューターシ ステムに固有のものでもないが、標準化されたインストラクションセットによっ て表されることが好ましい。 ソースコードを1回だけコンパイルするばよいという利点は、ネットワークの異 種性によって除かれる。そこで、開示されたコンピューターインストラクション セットは、インターブリートされる。本明細書中において、”インターブリード される゛という用語は、当該技術分野において理解されている通りに用いられて いる。すなわち、一連のコンピューターインストラクション中の1つのコンピュ ーターインストラクションが、読み込まれてマシンコードに翻訳されて、一連の コンピューターインストラクション中の次のコンピューターインストラクション が読み込まれる前に、エンジンによって実行される。 開示されたインストラクションセントのインストラクションをインターブリート することによって、コンパイルするよりも、より広い汎用性が得られる。 第1のエージェントは、第1のコンピューターシステムから第2のコンピュータ ーシステムに向かって移動し、第1のエージェントにプロシージャを与える第2 のエージェントと出会う。そして、第1のエージェントは、当初は第1のエージ ェントが遂行するように設計されていなかったプロシージャを遂行する。 以下の説明は、ここに開示されたコンピューターインストラクションのインク− ブリートについての説明である。なお、以下の説明は、プロシージャと、プロシ ージャの個々のアイテムの実行とに焦点を当てている。ここで、個々のアイテム とは、個々のコンピューターインストラクションである。 プ旦2二2二の!丘 プロシージャは、そのプロシージャがオペレーション”do”を遂行するように 要求するインストラクションを送出することによって、遂行される。プロシージ ャの遂行を生じさせる他のプロシージャについては、以下及びアペンディックス Aに説明されている。クラス”procedure”について定義されたオペレ ーション”do”の遂行は、フローチャート5200 (図52A)及び定義済 みフレーム5250(図52B)に示されている。定義済みフレーム525oは 、それぞれインチジャ5252及びプロシージャ48o2であるプロパティ”  position”、”procedure”を含んでいる。定義済みフレーム については、アペンディックスAに詳細に説明されている。定義済みプロシージ ャ525oは、プロシージャ48o2(図49)によって遂行されるオペレーシ ョン”do″の動的な状態を記録する。 ステップ5202 (図52A)において、インチジャ5252は、値1に設定 される。インチジャ5252は、その実行が最も最近に開始されたアイテムのプ ロシージャ4802内における位置を特定する。処理は、ステップ5202 ( 図52A)からテストステップ(end or pr、ocedure?) 5 204に移行し、ここでインチジャ5252 (図52B)がプロシージャ48 o2の長さと比較される。インチジャ5252が、プロシージャ48o2の長さ に比べて短いが、又は等しい場合、処理は、テストステップ5204 (図52 A)からステップ5208に移行する。ステップ5208において、プロシージ ャ4802 (図52B)内の位置がインチジャ5252が示す位置であるアイ テムが遂行される。実行オブジェクトの遂行については、以下及びアペンディッ クスAに詳細に説明される。 プロシージャ4802のアイテムが遂行されると、処理は、ステップ5208( 図52A)からテストステップ(exception?) 5210に移行する 。このテストステップ(exception?) 5210において、エンジン がインターブリードしているプロシージャ4802 (図52B)は、そのアイ テムの遂行が成功したが、又はエクセブションを送出したかを判断する。エクセ ブションが送出された場合、処理は、テストステップ(exception?)  5210 (図52A)から終了ステップ5212に移行する。この終了ステ ップ5212において、オペレーション″d。 ”が失敗に終わり、プロシージャ4802 (図52B)の遂行が終了する。 ステップ5208 (図52A)における、インチジャ5252により示される プロシージャ4802内の位置にあるアイテムの遂行によって、エクセプション が送出された場合、処理は、テストステップ(exception?) 521 0がらステップ5214に移行する。このステップ5214において、インチジ ャ5252 (図52B)がインクリメント(増加)される。処理は、ステップ 5214 (図52A)からテストステップ(end or procedur e?) 5204に移行し、このテストステップ5204において、前述したよ うに、定義済みフレーム5250 (図52B)のプロシージャ”positi on” 、すなわちインチジャ5252が、応答しているプロシージャ4802 の長さと比較される。 インチジャ5252 (図52B)がプロシージャ4802の長さよりも大きい 場合、処理は、テストステップ(end or procedure?) 52 04 (図52A)から終了ステップ5216に移行し、この終了ステップ52 16において、オペレーション”do”は成功のうちに終了する。 このように、プロシージャ4802 (図49及び図52B)によってオペレー ション”do”が遂行されることによって、前述した順序でプロシージャ480 2の各アイテムが実行される。 前述したように、エンジン、例えばエンジン132B(図15A)の主な機能は 、プロシージャの遂行、すなわちプロシージャのアイテムの実行である。本発明 の開示された実施例の実行モデルは、プロシージャの各アイテムが実行されるプ ロセスである。ここに開示された実施例の実行モデルの説明は、6つのセクショ ンに分けられる。第1に、フレームの構造及び組織が説明される。ここで、フレ ームは、フィーチャ又は変換(コンバージョン: convers 1on)を インプリメントするメソッドの動的状態を記録するオブジェクトである。第2に 、識別子の実行が説明される。ここで、フィーチャを参照する識別子の実行は、 参照されたフィーチャの遂行を生じさせる。第3に、フィーチャ又は変換をイン プリメントするメソッドオブジェクトをクラス階層がら選出するプロセスが説明 される。なお、メソッドオブジェクトを検索するクラスオブジェクトの構造は前 述した通りである。第4に、フィーチャのニスカレーション(増大)が説明され る。第5に、モディファイアの実行が説明される。第6に、セレクタの実行が説 明される。 フレーム フレームは、フィーチャ又は変換の実行の間、フィーチャ又は変換をインプリメ ントするメソッドの動的状態を記録するオブジェクトである。プロセスの実行状 態、すなわちエージェント又はブレイスの実行状態は、1以上のフレーム内に記 録される。例えば、図53にプロセス5300の実行状態を示す。1つのプロセ スが生成されるとき、そのプロセスはオペレーション”1ive”を遂行するよ うにめられる。プロセス5300内には、プロパティ”frames”が生成さ れる・このプロパティ” frames”は、プロセス5300の実行スレッド を表すスタック5302である。スタック5302は、プロセス5300の実行 状態を集合的に形成するフレームを有している。プロセス5300がオペレーシ ョン”1ive”を遂行するように初めてめられたとき、スタック5302の単 一のアイテムは、ユーザ定義フレーム5304である。ここで、ユーザ定義フレ ーム5304は、オペレーション“1ive”の動的状態を記録する。 定義済みクラス”Process’ 、”Agenじ、“Place“は、アブ ストラクトクラスである。したがって、本発明の開示された実施例のプロセスは 、ユーザ定義クラスのインスタンスである。定義済みアブストラクトクラス”  Process” 、”Agent”、”P l ace“は、オペレーション ”1ive”のインプリメンテーションを定義しない。したがって、オペレーシ ョン”1ive”のメソッドの動的状態を記録するフレーム5304は、必然的 に、ユーザ定義フレームである。ユーザ定義フレームは、ユーザによって定義さ れたインプリメンテーションによるオペレーションの動的状態を、そのオペレー ションの実行の間、記録するフレームである。ユーザ定義フレーム5304の構 造は、図54に示されている。 ユーザ定義フレーム5304 (図54)のプロパティには、プロパティ゛’  class” 、 ” responder” 、procedure−、”  position” 、 ” 5tack” 、 ” variab撃■刀h が含まれる。クラスオブジェクト5402は、ユーザ定義フレーム5304のプ ロパティ” class“であり、これはスーパークラス”0bject“から 継承されたプロパティである。クラスオブジェクト5402は、ユーザ定義フレ ーム5304がインスタンスであるクラスを表しており、したがって、クラスオ ブジェクト5402は、クラス” User−defined Frame”又 はそのサブクラスを表している。 オブジェクト5404は、ユーザ定義フレーム5304のプロパティ゛’ re sponder”である。オブジェクト5404は、ユーザ定義フレーム530 4に動的状態が記録されるフィーチャ又は変換のレスポンダである。図53のコ ンテキストにおいて、プロセス5300がオペレーション゛1ive”のレスポ ンダであるため、オブジェクト5404は、プロセス5300である。 プロシージャ5406 (図54)は、ユーザ定義フレーム5304のプロパテ ィ” procedure”であり、スーパークラス゛’ Procedure  Frame”から継承されたプロパティである。 プロシージャ5406は、ユーザ定義フレーム5304に動的状態が記録される メソッドオブジェクトのプロパティ” pr(+(edure”である。例えば 、ユーザ定義フレーム5304がメソッドオブジェクト4800 (図48)の 動的状態を記録する場合、プロシージャ4802.5406は同一のプロシージ ャである。 インチジャ5408は、スーパークラス” Procedure Frame” から継承された、ユーザ定義フレーム5304のプロパティ”position ”である。インチジャ5408は、現在実行されているプロシージャ5406の アイテムについて、プロシージャ5406内のポジションを特定する。例えば、 プロシージャ5406の2番目のアイテムが、実行は開始されているが、終了は していない場合、インチジャ5408の値は2となる。 ユーザ定義フレーム5304は、さらに2つのプロパティ、すなわちプロパティ ” 5tack” 、 ” variables”を有する。スタック5410 は、ユーザ定義フレーム5304のプロパティ゛’ 5tack”であり、ユー ザ定義フレーム5304のスタックである。 プロシーリヤ5406の実行の開始時に、スタック5410は、ユーザ定義フレ ーム5304に動的状態が記録されるフィーチャ又は変換の遂行によって使用さ れたアーギュメントを有している。プロシージャ5406の遂行後には、スタッ ク541Oは、フィーチャ又は変更の遂行によってリザルトが生成された場合は 、このリザルトを有している。 リスト5412は、ユーザ定義フレーム5304のプロパティ”variabl es“である。リスト5412のアイテム、例えばオブジェクト5412Iは、 フレームの変数である。変数は、プロシージャ5406が遂行される間、ユーザ 定義フレーム5304の動的状態を記録する。リスト5412(図54)のアイ テムである変数は、ユーザ定義フレーム5304に動的状態が記録されているメ ソッドオブジェクトのプロパティ”variables”の同じポジションにあ るアイテムによって、参照される。例えば、ユーザ定義フレーム5304がメソ ・ソドオブジェクト4800(図48)の動的状態を記録する場合、リスト48 04内のポジション”1°゛にある識別子48041は、リスト5412内のポ ジション”1”に有るオブジェクト5412I(図54)を参照する。 このように、ユーザ定義フレーム5304は、(i)フィーチャ又は変換のレス ポンダと、 (11)フィーチャ又は変換をインプリメントするプロシージャと 、(i i i)現在実行されているインストラクションのプロシージャにおけ るポジションと、(iv)フィーチャ又は変換のアーギュメント又はリザルトを 収容しているスタックと、(V)ユーザ定義フレーム5304の動的状態を記録 する変数と、を記録することによって、ユーザ定義されたフィーチャ又は変換の 動的状態を記録する。 実行オブジェクトの実行 前述したように、プロシージャの遂行とは、プロシージャの各アイテムを順次実 行することである。一般に、実行オブジェクトの実行、すなわちミンクスインク ラス”Executecl”から継承されたオブジェクトの実行は、そのオブジ ェクト;こ対する1叡アレンスが、プロシージャの実行状態を表すフレームのス タ・ツク、例えばスタック5410に保存される結果となる。ただし、識別子、 モディファイア及びセレクタの実行は、このような一般的な原則の例外となって いる。 他の指示をしているモディファイアの存在の元に実行されるのでなt、tll艮 り、実行される識別子は、フィーチャを参照するものと仮定される。したがって 、実行される識別子は、オペレーションを呼び出すか、又はアトリビュートを間 (A合わせる。第1のプロシージャ内のある識別子の実行は、その識別子によっ て参照されるフィーチャを遂行させる。そして、これによって第2のプロシージ ャが生じる。この第2のプロシージャは、識別子によって参照されたアトリビュ ート又はオペレーションをインプリメントする、メソッドオブジェクトのプロシ ージャである。フィーチャを参照する識別子の実行は、フローチャート5500 (図55)に示されている。 フローチャート5500は、図56A〜図56Cのコンテキストにおいて説明さ れる。スタック5302 (図56A)は、プロセス5300の実行スレッド、 すなわちプロパティ°’ frames”である・ユーザ定義フレーム5304 は、現在のフレームである。現在のフレームは、現時点においてアイテムがエン ジンによって実行されているプロシージャ、すなわちプロシージャ5406を含 んでいるフレームである。 換言すれば、プロセス5300のインターブリートにおいてエンジンによって次 に実行されるオブジェクトは、ユーザ定義フレーム5304のプロシージャから 検索される。 プロシージャ5406は、ユーザ定義フレーム5304のプロパティ” pro ceclure”である。インチジャ5408は、ユーザ定義フレーム5304 のプロパティ” position”である。インチジャ5408は、プロセス 5300の処理のうち最も最近にエンジンによって実行が開始されたアイテムに ついて、プロシージャ5406内のポジションを示している。 インチジャ5408によって示されるポジションにあるプロシージャ5406の アイテムが、識別子である場合に、識別子の実行が生じる。この例において、識 別子は、オペレーションを参照する。なお、識別子によって参照されるオペレー ションは、図56A〜図56C及び図55のコンテキストにおいて、サブジェク トオベレーションとも呼ばれる。識別子の実行は、フローチャート5500 ( 図55)に示される。 リクエスタのスタック、すなわちスタック541oは、ステップ55o2におい て、ユーザ定義フレーム53o4のアトリビュー)−” 5tack“に問い合 わせることによって生ずる。ユーザ定義フレーム53o4のプロシージャ540 6 (図56A)の遂行は、インチジャ54o8によって示されるプロシージャ 5406内のポジションにある識別子の実行を、要求する。したがって、現在の フレームであるユーザ定義フレーム53o4のプロパティ” responde r’は、識別子によって参照されるオペレーションのりクエスタである。図56 Aのコンテキストにおいて、レスポンダは、プロセス5300である。したがっ てスタック541oは、”リフテスタのスタック″である。 処理は、ステップ5502 (図55)からテストステップ(stack em pty?) 5504に移行する。識別子が実行される時点において、スタック 5410のトップにあるオブジェクトは、サブジェクトオペレーションのレスポ ンダである。テストステップ(stack ea+pty?) 5504におい て、プロセス!5300をインターブリートしているエンジンは、スタック54 1oが空であるかを判断する。 スタック5410がエンプティである場合、処理は、テストステップ(stac kempty?) 5504がら終了ステップ5506に移行し、ここでクラス ” Re5ponder Missing”のエクセブションが送出され、サブ ジェクトオペレーションは失敗に終わる。一方、スタック541oがエンプティ でない場合、処理は、テストステップ(stack empty?) 5504 からステップ55o8に移行し、このステップ5508において、スタック54 1oのトップにあるオブジェクト(図示せず)が、スタック5410からポツプ される。スタック5410がらポツプされたオブジェクトは、実行中の識別子の サブジェクトオペレーションの将来のレスポンダであり、図56A〜図58C及 び図55のコンテキストにおいてごレスボンディングオブジェクト”とも呼ばれ る。 なお−サブジェクトオペレーションは、ユーザ定義される。したがって、サブジ ェクトオペレーションは、ユーザ定義フレームによって表される。定義済みフィ ーチャは、エンジン内において直接に表される。換言すれば、定義済みオペレー ションを形成するインストラクションは、エンジンであるコンピュータープロセ スを形成するインストラクションに含まれている。実行される識別子が、定義済 みオペレーションを参照する場合は、工、ンジン内のオペレーションを定義する インストラクションが、探索され遂行される。 処理は、ステップ5508からステップ5510に移行する。このステップ55 10において、サブジェクトオペレーションを定義するオペレーション定義が検 索される。オペレーション定義の選択、及び関連するメソッドオブジェクトの選 択については、後述する。処理は、ステップ5510がらテストステップ(aC cess?) 5512に移行する。このテストステップ(access?)  5512において、サブジェクトオペレーションのアクセスが検査される。プロ パティ”1sPubl ic”、例えばブーリアン4404 (図44)は、オ ペレーション定義がら検索される。 サブジェクトオペレーションのアクセスが”パブリック”でなく、すなわちプロ パティ” 1sPublic”が”false”であり、かつ、レスボンディン グオブジェクトが、ユーザ定義フレーム5304のプロパティ”respond er” (図示せず)でない場合、処理は、テストステップ(access?)  5512がら終了テストステップ5514に移行する。 終了ステップ5514において、クラス” Feature Unavaila ble”のエクセプションが送出され、サブジェクトオペレーションは失敗に終 わる。一方、プロパティ”1sPublic”が”true”であるか、又はレ スボンディングオブジェクトがユーザ定義フレーム5304のプロパティ”re sponder”である場合、サブジェクトオペレーションのアクセスは可能で あり、処理は、テストステップ(access?) 5512からテストステッ プ(number of arguIIlents?) 5516に移行する。 テストステップ(number or arguments?) 5516にお いて、オペレーション定義のプロパティ”arguments”が、オペレーシ ョン定義のアトリビュート”argumen is”の問い合わせによって生成 される。プロバチ4″arguments”のリスト中のアイテム数は、スタッ ク5410上のオブジェクトの数と比較される。プロパティ”argument s”が、スタック5410上に存在するオブジェクトの数よりも多くのアーギュ メントの数を定義している場合には、処理は、テストステップ(nuiber  or arguments?) 5516から終了ステップ5518に移行する 。この終了ステップ5518において、クラス”Argument Missi ng”のエクセプションが送出され、サブジェクトオベレーションは失敗に終わ る。 なお、例えば終了ステップ5506又は終了ステップ5514において、サブジ ェクトオペレーションを参照する識別子の実行によって送出されるエクセプショ ンは、同一のエクセプションであり、サブジェクトオペレーションを終了させる 。 ステップ5510において検索されたオペレーション定義のプロパティ”arg uments”によって示されるアーギュメントの数と、少なくとも同じ数のオ ブジェクトがスタック541Oに存在している場合、処理は、テストステップ( number 。 r arguments?) 5516からテストステップ(class of  arguments?) 5520に移行する。このテストステップ5520 において、プロセス5300をインターブリートているエンジンは、アーギュメ ントのポジションにあるスタック5410上の各オブジェクトが、ステップ55 10で検索されたオペレーション定義のプロパティ°’ arguments” であるリスト内の対応するコンストレンドを、満足しているかを判断する。例え ば、オペレーション定義4500のプロパティ″argu+++ents”であ るリスト4502I (図45)のコンストレンド4502Iは、スタック54 10のトップにあるオブジェクトに対応する。コンストレンドの構造については 、以上及びアペンディックスAに詳細に説明されている。 以上に詳細に説明したように、コンストレンドは、(i)オブジェクトがメンバ であるべきクラス、(i i)オブジェクトが、特定されたクラスのインスタン スでもあるべきか、及び(i i i)特定された。クラスには関係なく、ニル (0)が、コンストレンドを満たすか、を特定することによってオブジェクトを 制限する。コンストレンドに対応するスタック5410上の各オブジェクトは、 そのオブジェクトがテストステップ(class or arguments? ) 5520中のコンストレンドを満足しているかを判断するために点検される 。スタック5410上のどのオブジェクトも、オペレーション定義のプロパティ ゛’ arguments”の対応するコンストレンドを満足していない場合、 処理は、ステップ(class or arguments?) 5520から 終了ステップ5522に移行し、そこでクラス” Argument Inva lid”のエクセプションが送出される。 逆に、スタック5410上の各オブジェクトが、対応するコンストレンドを満た す場合、処理は、テストステップ(class or arguments?)  5520がらステップ5524に移行する。このステップ5524において、 レスボンディングオブジェクトのコンテキストにおいてサブジェクトオペレーシ ョンのインプリメンテーションを定義するメソッドオブジェクトが選択される。 メソッドオブジェクトは、後で詳細に説明するように、レスボンディングオブジ ェクトがメンバとなっているクラスの中から選択される。 処理は、ステップ5524からステップ5526に移行し、このステップ552 6において、ユーザ定義される新たなフレーム5602 (図56B)が作り出 される。レスボンディングオブジェクト5604は、新たなユーザ定義フレーム 5602のプロパティ゛” responder”とされる。ステップ5524 において選択されたメソッドオブジェクトのプロパティ°’ procedur e”は、プロシージャ5606であり、新たなユーザ定義フレーム5602のプ ロパティ”procedure”とされる。 ユーザ定義フレーム5602のプロパティ”position“°は、値が1の インテジャ5608となるように初期化される。また、プロパティ”5tack ″は、空のスタック5610にとなるように初期化される。 新たなユーザ定義フレーム56o2が作り出されたら、処理は、ステップ552 6からステップ5528に移行する。このステップ5528において、オブジェ クトは、ユーザ定義フレーム53o4のスタック541oがら、ユーザ定義フレ ーム5602のスタック561oに移動する。このとき、オブジェクトは、オブ ジェクトの順序が保たれるように、スタック541oがらスタック561oに移 動する。換言すれば、スタック5410上の最も上のアーギュメントは、スタッ ク5610のトップに存在し、スタック5410の最も下のアーギュメントは、 スタック561oのボトムに存在する。各オブジェクトは、検索されたオペレー ション定義のプロパティ” arguments”の対応するコンストレンドの プロパティ”passage”に従って移動する。 プロパティ°’ passage”が”byRef”であれば、オブジェクトへ のリファレンスは、スタック5410がらポツプされ、スタック561oに保存 される。したがって、新たなユーザ定義プロシージャ5606は、ユーザ定義フ レーム53o4を要求しているプロシージャ5406と同じ、アーギュメントへ のアクセスを持つ。 プロバチ4 ” passage”が°’ byProtectedRef”で あれば、オブジェクトへのリファレンスは、スタック541oがらポツプされ、 保護されたリファレンスとされて、スタック561oに保存される。したがって 、新たなユーザ定義フレーム5602のプロシージャ5606は、アーギュメン トを変更することができず、アーギュメントは°°リードオンリーバとなる。 プロバチ4 ” passage”が°’ byUnprotectedRef ”であれば、要求しているユーザ定義フレーム53o4のスタック5410上の アーギュメントへのリファレンスが、保護されているかが判断される。この判断 は、アペンディックスAに一層詳細に記述されているアトリビュート”1sPr otected″を問い合わせることによって行う。リファレンスが保護されて いる場合、クラス”Reference Protected”のエクセプショ ンが送出される。その他の場合、リファレンスは、スタック5410からポンプ され、スタック5610に保存される。したがって、新たなユーザ定義フレーム 5602のプロシージャ5606には、保護されていないリファレンスを通じて アーギュメントを変更するためのアクセスが与えられる。 プロパティ” passage”が°’ byCopy”の場合、スタック54 10上に見出されるオブジェクトのコピーが作られ、そのコピーへの保護されて いないリファレンスは、新たなユーザ定義フレーム5602のスタックに保存さ れる。したがって、プロシージャ5606には、アーギュメントのコピーへの無 制限のアクセスが与えられる。ただし、プロシージャ5606には、コピーはバ スするが、アーギュメント自身に対してはアクセスを持たないこうして、新たな ユーザ定義フレーム5602は、完成し、サブジェクトオペレーションの遂行の 直前のサブジェクトオペレーションの動的状態を表す。処理は、ステップ552 8 (図55B)からステップ5530に移行する。このステップ5530にお いて、新たなユーザ定義フレーム5602は、スタック5302(図560)に ブツシュされることによって、プロセス5300の実行状態に含められる。した がって、スタック541oと、そのプロパティ”procedure”がプロシ ージャ5406であるメソッドオブジェクトとは、現在のスタックでも現在のメ ソッドでもなくなる。そして、スタック5610が、現在のスタックとなり、プ ロパティ“’ procedure”がプロシージャ5606であるメソッドオ ブジェクトが、現在のメソッドとなる。処理は、ステップ5530 (図55B )からステップ5532に移行する。このステップ5532において、ユーザ定 義フレーム5602のプロシージャ5606 (図56C)が遂行される。 プロシージャ5406の遂行によって、サブジェクトオペレーションの遂行と、 ユーザ定義フレーム5602の生成とを生じさせる識別子が実行されるように、 ユーザ定義フレーム5602のプロシージャ5606の遂行によって、更なるオ ペレーションを生じさせる識別子が実行される。そして、これにより、新たなフ レームが作り出されて、スタック5302に順次保存され、そのプロシージャが 順次遂行される。このように、プロセス5300の実行状態は、実行のスレッド を表すプロセス5300のプロパティ”frames”であるスタック5302 上の1以上のフレームによって表される。 プロシージャ5606の遂行の後、ユーザ定義フレーム5602は、サブジェク トオペレーションの遂行直後のサブジェクトオペレーションの動的状態を表して いる。 ユーザ定義フレーム56o2のスタック5610は、サブジェクトオペレーショ ンの遂行によってリザルトが生じていれば、このリザルトを有している。処理は 、ステップ5532 (図55B)からステップ5534に移行する。このステ ップ5S34において、サブジェクトオペレーションを定義するオペレーション 定義のプロパティ” result”が、オペレーション定義のアトリビュー) ” result”を問い合わせることによって生成される。処理は、ステップ 5534からテストステップ(result?) 5536に移行し、ここで、 クラス” Con5traint”のプロパティ”result”のメンバーシ ップ(帰属関係)が判断される。換言すれば、プロパティ”resu I t” は、コンストレンドであり、かつニル(0)でないことが検査される。プロパテ ィ゛” result”が、コンストレンドであり、かつニル(0)でない場合 に、サブジェクトオペレーションは、リザルトを生成し、処理は、テストステッ プ(result?) 5536からテストステップ(stack empty ?) 5538にテストステップ(stack empty?) 5538にお いて、プロセス5300 (図56C)をインターブリートしているエンジンは 、スタック5610にオブジェクトが存在するかを判断する。スタック5610 が空であれば、処理は、テストステップ(stack empty?) 553 8 (図55B)から終了ステップ5540に移行する。この終了ステップ55 4oにおいて、クラス” Re5ult Missing”のエクセブションが 送出される。一方、スタック5610 (図560)がオブジェクトを含んでい る場合、処理は、テストステップ(stack empty?) 5538 ( 図55B)からテストステップ(class or results?) 55 42に移行する。このテストステップ5542において、プロセス5300 ( 図56C)をインターブリートしているエンジンは、スタック5610上のオブ ジェクトが、オペレーション定義のプロパティ”result”であるコンスト レンドを満足しているかを判断する。オブジェクトがコンストレンドを満足しな い場合、処理は、テストステップ(c I assor results?)  5542 (図55)から終了ステップ5544に移行する。この終了ステップ 5544において、クラス”Re5ult Invalid”のエクセブション が送出される。一方、オブジェクトがコンストレンドを満足する場合、処理は、 テストステップ(class or results?) 5542からステッ プ5546に移行する。 このステップ5546において、オブジェクトは、前述したように、オペレーシ ョン定義のプロパティ゛’ passage”に従って、ユーザ定義フレーム5 602のスタック5610(図56C)から、ユーザ定義フレーム5304のス タック5410へ移動する。処理は、ステップ5546 (図55B)がらステ ップ5548に移行する。 テストステップ(result?) 5536において、プロパティ”resu lt”がニル(0)である場合、処理は、ステップ5548に直接移行する。こ のステップ5548において、新たなユーザ定義フレーム5602がスタック5 302 (図56B)からポンプされ、廃棄される(図56A)。したがって、 スタック5410と・そのプロパティ” procedure”がプロシージャ 5406であるメソッドオブジェクトとが、再び、それぞれ、現在のスタックと 、現在のメソッドとになる。処理は、ステップ5548 (図55B)からステ ップ555oに移行する。このステップ5550において、プロシージャ54o 6の実行は、インチジャ54o8のインクリメントと、インチジャ54o8によ って示される位置にあるプロシージャ5406のアイテムの実行とによって、継 続される。こうして、オペレーションを参照する識別子の実行によって、そのオ ペレーションが遂行される。 オペレーション定義及びメソッドの゛ 前述したように、サブジェクトオペレーションを定義する、オペレーション定義 とメソッドオブジェクトとは、それぞれステップ5510,5524において選 択される(図55A)。オペレーション定義及びメソッドの選択は、図41Bに ついて前述した本発明の実施例のコンテキストにおいて説明される。この実施例 において、クラスオブジェクト41o2は、クラス定義4100のプロパティ”  C1tation” 、” 1nter4ace”ごimplementat ion”を複写することによって生成される。選択されるオペレーション定義は 、インターフェースオブジェクトがら選択され、選択されるメソッドオブジェク トは、インプリメンテーションオブジェクトから選択される。オペレーション定 義及びメソッドオブジェクトは、フローチャート5700 (図57)に従って 選択される。 適切なオペレーション定義及びメソッドオブジェクトは、レスポンディングオブ ジェクトがインスタンスとなるクラスに依存している。テストステップ(cla ss?)5702において、レスポンディングオブジェクトは、それがクラスオ ブジェクトであるか、すなわちクラス”class”のメンバであるが検査され る。 レスポンディングオブジェクトがクラスオブジェクトの場合、処理は、テストス テップ5702がらステップ(class 1ook up) 5704に移行 する。このステップ5704において、レスポンディングオブジェクトのプロパ ティ”classFeatures”と、レスポンディングオブジェクトのイン ターフェーススーパークラスとが、後述するようにサーチ(検索)される。クラ スフィーチャのレキシコン、すなわちプロパティ”classFeatures ”は、サブジェクトオペレーションの識別子、すなわち実行中の識別子に適合す るキーについてサーチされる。また、ステップ(class 1ook up)  5704において、レスポンディングオブジェクトのプロパティ”class Methods“と、レスポンディングオブジェクトのインプリメンテーション スーパークラスとが、実行中の識別子に関連したメソッドオブジェクトについて 、後述するようにサーチされる。 処理は、ステップ5704からテストステップ5706に移行する。このテスト ステップ5706において、現在のプロセス、例えばプロセス5300 (図5 6A)をインターブリートしているエンジンは、オペレーション定義及びメソッ ドオブジェクトがステップ5704において見出されるかを判断する。サブジェ クトオペレーションを定義するメソッドオブジェクト及びオペレーション定義が 見出された場合は、処理は、テストステップ5706から終了ステップ5708 に移行し、選択のプロセスが終了する。その他の場合には、処理は、テストステ ップ5706からステップ(instance 1ook up) 5710に 移行する。また、レスポンディングオブジェクトがクラスオブジェクトでない場 合、すなわちクラス“class”のメンバでない場合、処理は、テストステッ プ5702からステップ5710に直接移行する。 ステップ5710において、レスポンディングオブジェクトがインスタンスであ るクラスのインターフェースオブジェクトと、そのクラスのインターフェースス ーパークラスのインターフェースオブジェクトのプロパティ” ;n5tanc eFeatures”とが、実行中の識別子に関連するフィーチャ定義について 、サーチされる。 さらに、ステップ5710において、レスポンディングオブジェクトがインスタ ンスであるクラスのインプリメンテーションと、そのクラスのインプリメンテー ションスーパークラスのインプリメンテーションのプロパティ” instan ceMethodS”とが、実行中の識別子に関連するメソッドオブジェクトに ついて、サーチされる。サーチされるスーパークラスの順序については、後述す る。 レスポンディングオブジェクトがクラスオブジェクトである場合には、クラスメ ソッドはクラスフィーチャだけを実行でき、インスタンスメソッドはインスタン スフィーチャだけを実行できる。 処理は、ステップ(instance 1ook up) 5710からテスト ステップ(found?)5712に移行し、このテストステップ5712にお いて、エンジンは、オペレーション定義とメソッドオブジェクトが、ステップ5 710にて検索されたかを判断する。実行中の識別子によって特定されたメソッ ドオブジェクトとオペレーション定義が、検索された場合は、処理は、テストス テップ5712がら終了ステップ5716に移行する。この終了ステップ571 6において、この選択のプロセスは成功のうちに終了する。さもなければ、処理 は、テストステップ5712から終了ステップ5714に移行する。この終了ス テップ5714において、クラス゛’ Feature Unavailabl e”のエクセプションが送出される。 引用として本明細書の一部を構成するアペンディックスAに開示されている定義 済み階層構造の一部が、適切なオペレーション定義及びメソッドオブジェクトに ついて種々のクラスがサーチされる順序を示すために、図58A、図58Bに示 されている。図58A、図58Bは、定義済みインターフェース階層の一部を示 しており、インプリメンテーション階層をサーチするメソッドは、インターフェ ース階層のサーチに関連して、以下に説明される。 階層図5800 (図58A)は、クラス”Li5t”を表すクラスオブジェク ト5802を示している。クラス゛’ Li5t”は、クラスオブジェクト58 04によって表されたミックスインスーパークラス゛’ ordered”、及 びクラスオブジェクト5806によって表されたフレーバスーパークラス”Co 11ection”から継承される。 クラス゛’ Co11ection”は、クラスオブジェクト5808によって 表されるスーツく一クラス”0bject”から継承される。クラス゛’ 0b ject”は、クラスオブジェクト5810によって表されるミックスインスー パークラス”Referenced”から継承される。図58A、図58Bにお いて(i)二mMは、フレーバクラスと、フレーバクラスのサブクラスとの間を 結び、(ii)単一の実線は、ミックスインクラスと、ミックスインクラスのサ ブクラスとの間を結び、(i i i)破線は、あるクラスと、そのクラスのイ ンスタンスとの間に結んでいる。前述したように、インプリメンテーションオブ ジェクト又はインターフェースオブジェクトのプロパティ”5uperclas ses”の最後のアイテムは、ミックスインクラスを特定すべきではない。この 理由については後述する。 例として、フローチャート5700 (図57)のコンテキストにおけるレスポ ンディングオブジェクトが、クラス゛’ Li5t”を表すクラスオブジェクト 5802(図58A)であるものと想定する。ステップ5704 (図57)に おいて、クラスオブジェクト5802のプロパティ”1nterface”であ るインターフェースオブジェクトのプロパティ” classFeatures ”は、実行中の識別子をキーとする関連についてサーチされる。このような関連 が検索された場合、識別子と関連づけられたフィーチャ定義は、サブジェクトオ ペレーションのインターフェースを定義するオペレーション定義であり、選択さ れる。そして、オペレーション定義のサーチは終了する。 一方、そのような関連が検索されなかった場合、クラス”1st”の第1のスー パークラス、すなわちクラス°’ ordered”のインターフェースオブジ ェクトが、適切なオペレーション定義の場合と同様に、サーチされる。適切に特 定されたオペレーション定義が検索されなかった場合、インターフェース階層の 縦型探索において、クラス゛’ ordered”のスーパークラスがサーチさ れる。クラス”orderedooはスーパークラスを持たないので、クラス” Li5t”のインターフェースオブジェクト、すなわちクラス°’ Co11e ction”、のプロパティ” 5uperclasses”の次のアイテムが 前述したようにサーチされる。サーチされる最後のスーパークラスはミックスイ ンクラスではないので、フレーバスーパークラスのサーチの前に各ミックスイン スーパークラスをサーチする。 こうして、クラス”Li5t”について前述したように、図58Aのクラスオブ ジェクトの残りの部分が、クラス”0bject”を表すクラスオブジェクト5 808、クラス”Referenced”を表すクラスオブジェクト5810の 順序でサーチされる。 サブジェクトオベレーションのインプリメンテーションを定義する適切なメソッ ドオブジェクトのサーチは、2つの例外を除いて、適切なオペレーション定義の サーチについて前述した通りである。第1に、あるクラスのインプリメンテーシ ョンオブジェクトのプロパティ°’ classMethods”が、適切に特 定されたメソッドオブジェクトについてサーチされる。第2に、クラス”’ L i5t”の、インターフェーススーパークラスではなく、インプリメンテーショ ンスーパークラスが、適切に特定されたメソッドオブジェクトについてサーチさ れる。 単一のフレーバスーパークラスが、最後にサーチされるスーパークラスであるこ との重要性は、次の仮定の例を検討すれば明らかとなる。例えば、フレーバCo 11ecjion”を表すクラスオブジェクト5806と、クラス°’ cll ection”のスーパークラスを表すクラスオブジェクト5808とが、ミン クスインクラス”ordered ”を表すクラスオブジェクト5804のサー チの前にサーチされるものと想定する。さらに、クラス” 0bject”を表 すクラスオブジェクト5808が、クラス”ordered ”によって適合さ れた1以上のフィーチャ、すなわちクラスオブジェクト5804によってそのメ ソッドが提供された1以上のフィーチャを、定義していると想定する。この仮定 の例においては、クラスオブジェクト5808は常にクラスオブジェクト580 4の前にサーチされるので、クラスオブジェクト5808によって定義されたフ ィーチャについてのメソッドは、常にクラスオブジェクト5808において検索 される。したがって、クラスオブジェクト5804がり一ラスオブジェクト58 08によって定義されたフィーチャに適合することは、不可能である。したがっ て、あるフレーバのフレーバスーパークラスは、常にオペレーション定義又はメ ソッドについてサーチされるフレーバの最後のスーパークラスである。 引き統いて、この例示的な例では、フローチャート5700 (図57)のコン テキストにおけるレスポンディングオブジェクトが、クラス’ Li5t”を表 すクラスオブジェクト5802 (図58A、図58B)であり、階層図585 0 (図58B)が、ステップ5710(図57)においてサーチされるクラス を示している。クラスオブジェクト5802 (図58B)のインスタンスフィ ーチャのためのメソッドオブジェクト及びオペレーション定義についてのサーチ は、前述したようなりラスフィーチャのためのメソッドオブジェクト及びオペレ ーション定義についてのサーチと、次の2つの点で異なっている。第1に、ある クラスのインターフェースオブジェクトのプロノくティ”1nstanceFe atures”(よ、適切に特定されたオペレーション定義についてサーチされ 、あるクラスのインプリメンテーションオブジェクトのプロパティ°’ ins tanceMethods”は、適切に特定されたメ゛ノットオブジェクトにつ いてサーチされる。第2に、レスポンディングオブジェクト、すなわちクラスオ ブジェクト5802がメンバであるクラスがサーチされる。 クラスをサーチする方法は、前述したものと同様であり、ここでは繰り返さない 。適切なオペレーション定義及びメソッドオブジェクトが見出されるが、又は以 下に述べる全てのクラスがサーチされるかするまで、以下のクラスが、以下の順 序においてサーチされる。(1)クラスオブジェクト5802がインスタンスで あるクラス”class”を表すクラスオブジェクト5812.(i i)クラ ス”C1ass”のミックスインスーパークラスあるクラス”l nterch anged”を表すクラスオブジェクト5816゜(i 白)ミックスインクラ ス”Interchanged”のミックスインスーパークラス、したがってク ラス”class”のミックスインスーツ(−クラスであるクラス”U口cha nged”を表すクラスオブジェクト5818゜(iv)クラス”class” のミックスインスーパークラスであるクラス”C1ted”を表すクラスオブジ ェクト5814゜(V)クラス°’ class”のフレーバスーパークラスで あるクラス” 0bject”を表すクラスオブジェクト5808゜(vi)ク ラス°’ 0bject”のミックスインスーパークラスであるクラス゛’ R ererenced”を表すクラスオブジェクト5810゜ 図58A、図58Bのクラスのサーチにおいて、実行中の識別子に関連したオペ レーション定義又はメソッドオブジェクトが見出されない場合には、レスポンデ ィングオブジェクトについてオペレーションが定義されず、クラス°’ Fea tureUnder ind”のエクセプションが送出される。 前述したように、レスポンディングオブジェクトがクラスでない場合には、ステ ップ5704 (図57)の処理は行われない。例えば、レスポンディングオブ ジェクトが、クラス” Li5t”のインスタンスであるリスト5802Aであ 泪11前述したように、階層図5800 (図58A)に示されたクラスがステ ップ5712(図57)においてサーチされる。 本発明の一実施例において、インターフェース階層とインプリメンテーション階 層とは互いに独立である。換言すれば、あるクラスのインターフェーススーツ( −クラスは、必ずしもそのクラスのインプリメンテーションスーパークラスでは なく、あるクラスのインプリメンテーションスーパークラスは、必ずしもそのク ラスのインターフェーススーパークラスではない。このような実施例では、エン ジンは、オペレーション゛’ makeclasses”の遂行の間、インプリ メンテーションの欠けたフィーチャ定義がないように保証する。オペレーション ”makeclasses”が失敗に終わり、クラス゛’ class Exc eption+のエクセプションが送出されるのは〜次の条件の下である。すな わち、この条件とは、定義されるクラスが抽象的ではないこと、及び、その定義 されるクラスが、定義されたフィーチャをインプ「ノメントするメソッドを定義 していないか、又はそのメソッドをインプリメンテーションスーパークラスから 継承していないことである。こうして、インターフェース階層において定義され たフィーチャは、インプリメンテーション階層において見出されたメソッドによ って常にインプリメントされる。 こうして、サブジェクトオペレーションのための適切なオペレーション定義及び メソッドオブジェクトが、前述したようにクラス階層をサーチすることによって 見出されるか、又はエクセブションが送出される。 ニスカレーション 前述したように、スーパークラスからフィーチャを継承するクラスは、フィーチ ャに対する新しいインプリメンテーションの供与によって、フィーチャのインプ リメンテーションを変更することができる。ただし、この新しいインプリメンテ ーションは、スーパークラスによって提供されたインプリメンテーションを使用 することもある。オブジェクトは、フィーチャのニスカレーションによって、現 在のクラスの直接のスーパークラスの特定又は任意の1つによってインプリメン トされるようなフィーチャを遂行するように指示される。アペンディックスAに 一層詳細に説明するように、現在のクラスは、現在実行されているメソッドを供 与するクラスである。 フィーチャは、ニスカレーションされるべきフィーチャを参照する資格のある識 別子(有資格識別子)を実行するか、又は”ニスカレート”セレクタを実行する ことによって、ニスカレーションされる。有資格識別子(qulified 1 dentifier)は、フィーチャのインプリメンテーションを供与するクラ スを特定するブロノくティー qualifier”を含んでいる。 ”ニスカレート”セレクタの実行によってフィーチャがニスカレートされる場合 、いかなる直接のインプリメンテーションスーパークラスも、そのフィーチャの インプリメンテーションを供与することができる。 なお、有資格識別子のプロパティ”qualifier”へにアクセスを与える アトリビュートは、定義されていない。有資格識別子が作り出され、その有資格 識別子が破壊されるまで変更されずに保たれるときに、有資格識別子のプロパテ ィ”qualifier”が設定される。フィーチャのニスカレーションについ てはアペンディックスAに詳細に説明されている。 ニスカレーシランは、オブジェクトの初期化において特に重要な役割をする。 アペンディックスAには、本発明の定義済み各クラスの初期化についての説明が 含まれている。オブジェクトの初期化は、フローチャート5900(図59)に 示されている。このフローチャー1−5900 (図59)は、リストの初期化 について、すなわちクラス゛’ Li5t”のインスタンスの初期化について、 例示的なコンテキストを説明している。オペレーション°’ 1nitiali ze”は、クラス’ Li5t”の直接の各インプリメンテーションスーパーク ラスについてニスカレートされる。 前述したように、階層図5800 (図58A)は、クラス”Li5t″のイン ターフェーススーパークラスを表している。さらに、階層図5800は、クラス ”Li5t”のインプリメンテーションスーパークラスを正確に表している。 ステップ5902において、新しいリストがインスタンスであるクラス、すなわ ちクラス゛’ Li5t”によって定義されたオペレーション”1nitial ize”が、遂行される。オペレーション” 1nitialize”の遂行は 、現在のスタックから0以上のアーギュメントを使用する。処理は、ステップ5 902からステップ5904に移行する。 ステップ5904においては、インプリメンテーションオブジェクトのアトリビ ュート”5uperClasses”を問い合わせることによって、クラス°’  Li5t”のインプリメンテーションオブジェクトのプロパティ”5uper C1asses”が生成される。 前述したように、インプリメンテーションオブジェクトのプロパティ”5upe rcIasses”は、クラスを参照する識別子のリストである。処理は、ステ ップ59o4からステップ(FOREACH5UPERCLASS) 5906  ニ移行する。 ステップ(FOREAC)I 5UPERCLASS) 5906とステップ( NEXT) 5910は、前記のようにして形成されたプロパティ“5uper C1asses”の各スーパークラスがステップ(escalate ’1ni tialize”) 5908において処理されるように、処理ループを形成す る。すなわち、各スーパークラスについて、処理は、ステップ5906からステ ップ5908に移行する。このステップ5908において、スーパークラスは、 フローチャート59ooに従ってオペレーション”1nitialize″を遂 行するように指示される。したがって、フローチャート590oにおいて、イン プリメンテーション階層の縦型探索が反復して遂行される。例えば、ステップ5 908において、゛°1旧tialize”がニスカレートされるような、第1 のイミディエイトスーパークラスは、(i)ステップ59o2において、”1n itialize (の直接のインプリメンテーションスーパークラスを生成さ せ、(iii)ステップ5906及びステップ591oによって定義された処理 ループにおいて、そのスーパークラスの各スーパークラス(ごtnitiali ze (初期化)”をニスカレートする。 処理は、ステップ5908がらステップ591oを経てステップ59o6に移行 する。こうして、プロパティ”5uperclasses”のリストで検索され る順に1イニシアライゼーシヨンが、直接の各インプリメンテーションスーパー クラスにニスカレートされる。クラス”Li5t”のスーパークラスによるオペ レーション”in山alize”のそれぞれの遂行は、現在のスタックがら0以 上のアーギュメントを使用し、スーパークラスの直接のインプリメンテーション スーパークラスに、イニシアライゼーションをニスカレートする。 ステップ5906及びステップ591oの処理ループに従って、クラス”Li5 t”の直接の各インプリメンテーションスーパークラスがオペレーション”1n itialize”を遂行した後、処理は、ステップ59o6がら終了ステップ 5912に移行する。この終了ステップ5912において、クラス”Li5t” によって定義されたオペレーション”1nitialize”の遂行は成功のう ちに終了する。こうして、新しいリストがメンバである各クラスは、前述のステ ップ5710(図57)においてクラスがサーチされた順に、オペレーション”  1nitialize”を遂行する。 モディファイアの 行 識別子の実行については以上に、そしてアペンディックスAに詳細に説明されて いる。しかし、モディファイアの存在や、識別子の性質によって、識別子の実行 が変更されることがある。例えば、アペンディックスAに述べたモディファイア 代替ルールに従って識別子があるアトリビュートを特定した場合、オペレーショ ン°’ getAttribute”が遂行され、只1つのアーギュメントとし て、実行中の識別子が使用される。種々のモディファイアと、識別子の実行に対 する効果とについては、アペンディックスAに説明されており、この説明は引用 として本明細書の一部とされる。 セレクタの実行 セレクタは、基本的な要素であり、その実行によっである特別のアクションが引 き起こされる。各セレクタについては、アペンディックスAに説明されているが 、幾つかのセレクタについてここで説明する。例えば、セレクタ” break ”、”continue” 、”5ucceed”は、プロシージャの遂行のコ ンテキストにおいて、後述される。セレクタ“sen”の実行は、現在のメソッ ドのレスポンダである現在のオブジェクトへのリファレンスを、現在のスタック にブツシュする。図560のコンテキストにおいて、現在のオブジェクトは、フ レーム5602のプロパティ゛’ responder”であるオブジェクト5 604であり、現在のスタックは、フレーム5602のプロパティ”5tack ”であるスタック5610であり、現在のメソッドは、そのプロパティ”pro cedure””がプロシージャ5606であるメソッドオブジェクトである。 セレクタ”Process”の実行によって、現在のプロセスへのリファレンス が、現在のスタックにブツシュされる。図56Cにおいて、現在のプロセスは、 プロセス5300である。現在のプロセスがエンジンブレイスであれば、ニル( 0)が現在のスタックにブツシュされる。 こうして、本発明に従って作り出されたエンジンは、プロシージャのアイテムを 順次実行することによって、プロシージャを実行する。プロシージャのアイテム の実行は、このアイテムが識別子である場合、前述したような状態の元で、その 識別子によって参照されるフィーチャの実行を引き起こす。遂行されるプロシー ジャの動的状態はフレームに記録される。ユーザ定義フィーチャをインプリメン トするメソッドの動的状態は、ユーザ定義フレームに記録される。フィーチャの インターフェースとインプリメンテーションをそれぞれ定義するフィーチャ定義 とメソッドオブジェクトは、レスボンディングオブジェクトのメンバであるクラ スから選択される。現在のクラスのスーパークラスによって提供されたインプリ メンテーションは、フィーチャのニスカレートによって遂行される。例えば、オ ペレーション”1nitialize”は、反復的にニスカレートされ、レスポ ンダがメンバである各クラスによって供与されるメソッドが、遂行される。モデ ィファイアは、識別子の実行を変更するために用いられる。セレクタは、普通に 実行される?Inなアクションが単一のオブジェクトの実行によって生ずるよう にする簡単な手段を提供する。これらのフィーチャの組み合わせにより、ここに 開示されたコンピューターインストラクションセットにおいて、非常に高度の機 能性及び汎用性が得られる。 コントロールコンストラクト 前述したように、エージェントは、1以上のどのブレイスに移動し、1以上のど のエージェントとミーティングするかを定めるための、複雑なロジックを適用す ることができる。ここに開示されたインストラクションセットは、そのインスト ラクションセットからなるプロシージャにおいて、?3[雑で込み入ったロジッ クの実現を可能にする高度な一般性が得られる、多くのインストラクションを提 供している。 以下に、このような高度な一般性を与えるコントロールコンストラクトについて 説明する。(1)リソース及びリソース割当フィーチャは、プロシージャの実行 の間、リソースの共有もしくは排他的コントロールを取得し保持する能力をプロ セスに提供する。(ii)デシジョンハンドリングフィーチャは、プロセスがプ ロシージャを条件的に実行することを可能にする。(iii)エクセブションハ ンドリングフィーチャは、プロセスがエクセブションの送出を検出してそれに対 してアクションをとることを可能にする。(iv)ルーピングフィーチャはプロ シージャを反復遂行して、それにより反復的なタスクを効率的に実行することを 可能にする。 リソース及びリソース割当フィーチャ 以上に説明したように、また、アペンディソクスAに説明するように、1以上の プロセスを処理するエンジンは、それらの処理を同時に行っている。例えば、エ ンジン132B(図15E)は、エージェント150A、150Bを同時に処理 する。エンジン132Bは、エンジン132Bによって実行されるエージェント 150Aによる第1のプロシージャの遂行の間のどの時点でも、エージェント1 50Aによる第1のプロシージャの遂行を一時的に中断することができる。そし て、このとき、エンジン132Bは、エージェント150Bのために第2のプロ シージャを自由に実行することができる。エンジン132Bは、第2のプロシー ジャの遂行のどの時点においても、エージェント150Bのために第2のプロシ ージャの実行を一時的に中断し、エージェント150Aのために第1のプロシー ジャの実行を再開することができる。このようにして、エンジン132Bは、エ ージェント150A、150Bを同時に処理する。 アペンディックスAに説明するように、エンジンは、定義済みフィーチャの大部 分をアトミック(不可分)に遂行する。エンジンが、フィーチャが成功又は失敗 のうちに完了するまで、他のプロセスを処理するためにそのフィーチャの遂行の 中断することを拒んだ場合、そのフィーチャはアトミックに遂行される。フィー チャがアトミックに遂行される場合、そのフィーチャの遂行の問いかなる他のプ ロセスもインターブリードされないので、現在のプロセスを除くいがなるプロセ スもリソースを夏更したり操作したりすることはできない。アトミックに遂行さ れない、定義済みフィーチャは、アペンディックスAに説明されている。 ユーザ定義フィーチャをアトミックに遂行するメカニズムは存在しない。すなわ ち、ユーザ定義フィーチャの遂行の間に、又はアトミックに遂行されないあらか じめ定義されたフィーチャの遂行の間に、プロセスがリソースの共有又は排他的 な使用を取得し得るようにするためのメカニズムが必要である。ユーザは、クラ ス”Re5ource”によって定義される、アペンディックスAに詳細に説明 されているオペレーション”use”の使用によって、リソースの共有又は排他 的な使用が得られるように、プロセスを構成することができる。オペレーション ”use”の遂行の動的状態はクラス”use Frame”のユーズフレーム によって記録される。ユーズフレームについては、付録Bに記載されている。 実行オブジェクトの条件的な実行 実行オブジェクトは、オペレーション゛°1「”又はオペレーション” eit her”の遂行によって条件的に実行される。レスボンディング実行オブジェク トによるオペレーション”j「°の遂行では、ブーリアンオブジェクトが使用さ れ、ブーリアンオブジェクトの値が”true”であれば、実行オブジェクトを 遂行する。なお、プロシージャは、実行オブジェクト、すなわちミックスインク ラス”Executed”のメンバであり、プロシージャの遂行については、図 52A、図52Bを参照して上述したとおりである。 フローチャート6000(図60)は、ミックスインクラス°’ Execut ed”によって定義されたオペレーション°′1f”のインプリメンテーション を示している。 オペレーション°’if”を遂行する際に、レスボンディング実行オブジェクト は、ステップ6002において、現在のスタックからブーリアンオブジェクトを ボ・ツブする。処理は、ステップ6002からテストステップ(boolean ?) 6004に移行し、このテストステップ6004において、ステップ60 02でポツプされたブーリアンオブジェクトが、”true”と比較される。ブ ーリアンオブジェクトが”true”であれば、処理は、テストステップ600 4からステップ6006に移行し、このステップ6006において、レスボンデ ィング実行オブジェクトが遂行される。処理は、ステップ6006から、テスト ステ・ツブ(exception?) 6010に移行し、ここで、オペレーシ ョン” if”を実行しているエンジンが、レスボンディング実行オブジェクト のステップ6006での遂行によってエクセプションが送出されたかを判断する 。 ステップ6006においてエクセプションが送出されなかった場合、処理は、テ ストステップ6010から終了ステップ6008に移行する。また、ブーリアン オブジェクトが゛” false”である場合、処理は、テストステ・ツブ60 04から終了ステップ6008に直接移行する。そして、この終了ステ・ツブ6 0081こお0て、オペレーション”if”が成功のうちに終了する。一方、ス テップ60061こおいてエクセプションが送出された場合、処理は、テストス テップ6010力1ら終了ステップ6012に移行し、この終了ステップ601 2において、レスボンディング実行オブジェクトのステップ6006での遂行に よって送出されたエクセプションが送出され、それによってオペレーション”i f”が失敗となる。オペレーション”ir”の遂行の動的状態は、上述しまたア ベンデイクスBにおいて説明される、定義済みフレーム、すなわちクラス゛’  Predefined Frame’のメンバ、によつて記録される。 オペレーション”either”の使用によって、2つの実行オブジェクトのう ちの1つが選択され実行される。実行オブジェクトは、第2の実行オブジェクト とブーリアンオブジェクトとを使用して、ブーリアンオブジェクトの値が”tr ue”であれば、レスボンディング実行オブジェクトを実行させ、ブーリアンオ ブジェクトの値が” raise”であれば、第2の実行オブジェクトを実行さ せることによって、オペレーション゛either”を遂行する。フローチャー ト6100(図61)は、ミックスインクラス”Executed”によって定 義されたオペレーション”e i ther”のインプリメンテーションを示し ている。 レスボンディング実行オブジェクトは、ステップ6102において第2の実行オ ブジェクトを現在のスタックからポンプする。処理は、ステップ6102からス テップ6104に移行し、このステップ6104において、レスボンディング実 行オブジェクトは、現在のスタックからブーリアンオブジェクトをポツプする。 処理は、ステップ6104からテストステップ6106に移行し、このテストス テップ6106において、ステップ6104においてポツプされたブーリアンが ”true”と比較される。ブーリアンオブジェクトが”true“の場合、処 理は、テストステップ6106からステップ6108に移行し、このステップ6 108において、レスボンディング実行オブジェクトが遂行される。一方、応答 するブーリアンオブジェクトの値が”false”の場合、処理は、テストステ ップ6106からステップ611Oに移行し、このステップ6110において、 第2の実行オブジエクトが遂行される。処理は、ステップ6108又はステップ 6110から、終了ステップ6112に移行する。この終了ステップ6112に おいて、オペレーション”either”が終了し、ステップ6108又はステ ップ611Oにおいてエクセプションが送出されていたならば、エクセブション が送出される。オペレーション”eitller”を遂行する、実行オブジェク トの動的状態は、定義済みフレームによって記録される。 オペレーション”se l ecじの遂行によって、1つの実行オブジェクトが 、1以上の実行オブジェクトから選択され遂行される。オペレーション”5el ect”は、クラス”0bject”によって定義され、遂行されるべき特定の 実行オブジェクトを決定するオブジェクトによって遂行される。図62A、図6 2Bは、オペレーション”se l ec t”のインターフェースを示してい る。図62Aは、オブジェクト6204によって遂行されるオペレーション”5 elect”の動的状態を記録する定義済みフレーム6200の状態を示してい る。定義済みフレーム6200は、プロセス(図示せず)の実行状態の一部分で あり、オペレーション”5elect”の遂行直前の状態を示している。 オブジェクト6204はレスポンダである。定義済みフレーム6200は、オブ ジェクト6204を特定するプロパティ“responder”を持たない・そ の代わりに、オブジェクト6204は、現在のプロセスのプロパティ”fram es”であるスタック(図示せず)上における現在のフレームの直下のフレーム (図示せず)のプロパティ”procedure”内のポジションによって、レ スポンダとして特定される。 オブジェクト6204は、そのポジションが、そのフレームのプロパティ”po s 1Lion”よりもlだけ少ないプロシージャ(図示せず)のアイテムであ る。例えば、ユーザ定義フレーム5602 (図56C)のレスポンダは、その ポジションがインチジャ5408の値よりもlだけ少ないプロシージャ5406 のアイテムである。 スタック6202 (図62A)は、現在のスタックである。スタック6202 上には、オペレーションのアーギュメントを示し、文字”M”によってポジショ ンが示されるマークと、1以上の対のオブジェクト及びそれに関連する実行オブ ジェクトとがある。例えば、スタック6202は、トップからマークのすぐ上の 部分にかけて、オブジェクト6206と、実行オブジェクト6208と、オブジ ェクト6210と、実行オブジェクト62.12と、ニル(0)6214と、実 行オブジェクト6216とを収容している。オブジェクト6206.621o及 びニル(0)6214は、それぞれの実行されるオブジェクト62o8.621 2.6216に関連づけられている。 オペレーション”5elect”のインプリメンテーションは、フローチャート 6300(図63)によって示される。ステップ6302において、オブジェク ト6206〜6216(図62A)及びマークが、スタック6202がらポツプ される。処理は、ステップ6302からステップ6304に移行する。このステ ップ6304において、オブジェクト6206.6210及びニル(0)621 4をキーと腰それぞれ実行オブジェクト6208.6212.6216を関連す る値とするディクショナリが形成される。処理は、ステップ6304がらステッ プ6306に移行する。このステップ6306において、関連づけられたキーが レスポンディングオブジェクト6204に等しい実行オブジェクトが、ステップ 6304において形成されたディクショナリから検索される。ディクショナリの キーが与えられたときのディクショナリの値の検索については、アベンディクス Aに一層詳細に説明されている。 処理は、ステップ6306からテストステップ6308に移行する。テストステ ップ6308において、オペレーション”5elect”を実行しているエンジ ンは、実行オブジェクトがディクショナリーから検索されたかを判断する。応答 するオブジェクト6204とキーが等しい実行オブジェクトがディクショナリー 内において検索された場合、処理は、ステップ6314に移行する。このステッ プ6314において、検索された実行オブジェクトが遂行される。処理は、ステ ップ6314からテストステップ6318に移行し、このテストステップ631 8において、エンジンは、実行オブジェクトの遂行がステップ6314において 成功のうちに完了したかを判断する。 ステップ6314において実行オブジェクトの遂行が失敗し、エクセプションが 送出された場合、処理は、テストステップ6318から終了ステップ6320に 移行する。この終了ステップ6320において、エクセブションが送出され、オ ペレーション“5elect”は失敗に終わる。一方、検索された実行オブジェ クトがステップ6314において成功のうちに遂行された場合、処理は、テスト ステップ6318から終了ステップ6316に移行する。この終了ステップ63 16において、オペレーション°’ 5elect″は成功のうちに終了する。 テストステップ6308において、レスボンディングオブジェクト6204に等 しいキーが、ステップ6304において形成されたディクショナリから検索され なかった場合、処理は、テストステップ6308からステップ6310に移行す る。このステップ6310において、ディクショナリ内に含まれる関連づけられ たキーがニル(0)である実行オブジェクト、例えばニル(0)6214と関連 づけられたオブジェクト6216が検索される。処理は、ステップ6310がら テストステップ6312に移行し、このテストステップ6312において、エン ジンは、実行オブジェクトがステップ6310において成功のうちに検索された かを判断する。ニル(0)と等しいキーを有するディクショナリ内の実行オブジ ェクトが検索された場合、処理は、テストステップ6312からステップ631 4に移行し、このステップ6314において、前述したように実行オブジェクト が遂行される。 一方、ステップ6310において実行オブジェクトが検索されなかった場合、オ ブジェクト6204に等しいキー及びニル(0)6214に等しいキーが、ディ クショナリーにおいて見いだされなかったので、処理は、テストステップ631 2から終了ステップ6316に移行する。前述したように、終了ステップ631 6において、オペレーション”5elect”は成功のうちに終了する。すなわ ち、レスボンディングオブジェクトやニル(0)とキーが等しい実行オブジェク トがない場合、オペレーション”5elect”は、ディクショナリー内の実行 オブジェクトを遂行することなく、成功のうちに終了する。 図62Bは、レスポンディングオブジェクト6204によるオペレーション“5 elect”の遂行の直後のセレクトフレーム6200の状態を示している。オ ペレーション”5elect”の遂行は、図62Bの空のスタック6202に示 すように、いかなるリザルトも生じない。 実行オブジェクトは、オペレーション”while”の遂行によって、条件が満 たされるまで繰り返し実行される。オペレーション”while”の遂行の動的 状態は、定義済みフレーム6402 (図64)に記録される。実行オブジェク ト6404は、オペレーション”while”のレスポンダであり、レスボンデ ィング実行オブジェクトである。実行ブジエクト6404は、定義済みフレーム 6402のプロパティ”procedure”である。実行オブジェクト640 6は、定義済みフレーム6402のプロパティ” precondition” であり、後述するようにアーギュメントとして使用される実行オブジェクトであ る。 オペレーション゛’while”は、レスボンディング実行オブジェクト640 4によって遂行される。ここで、レスボンディング実行オブジェクト6404は 、アーギュメントとして、実行オブジェクト6406を使用する。オペレーショ ン″vhi1e“の遂行は、フローチャート6500 (図65)によって示さ れている。ステップ6502において、実行オブジェクト6406が、現在のス タックからポツプされる。処理は、ステップ6502からステップ6504に移 行し、このステツブ6504において、実行オブジェクト6406が遂行される 。実行オブジェクト6406がステップ6504で遂行されることによって、レ スポンディング実行オブジェクト6404が遂行されるか否かを示すブーリアン が、現在のスタックにブツシュされる。 処理は、ステップ6504からテストステップ6506に移行し、このテストス テップ6506において、オペレーション” while”を遂行しているエン ジンは、実行オブジェクト6406の遂行によってエクセブションが送出された かを判断する。実行オブジェクト6406の遂行がエクセプションを送出した場 合、処理は、テストステップ6506から終了ステップ6508に移行し、この 終了ステップ6508において、オペレーション゛’ while”によってエ クセブションが送出され、オペレーション”While”は失敗に終わる。一方 、実行されるオブジェクト6406が成功のうちに遂行された場合、処理は、テ ストステップ6506からステップ6510に移行する。 ステップ6510において、ブーリアンが現在のスタックからポツプされる。 処理は、ステップ6510からテストステップ6512に移行する。このテスト ステップ6512において、現在のスタックからポツプされたブーリアンが”t 「ue”と比較される。ブーリアンが’ true”の場合は、処理は、テスト ステップ6512からステップ6514に移行し、このステップ6514におい て、レスポンディング実行オブジェクト6406が遂行される。処理は、ステッ プ6514からテストステップ6516に移行し、このテストステップ6516 において、エンジンは、実行オブジェクト6406がエクセプションを送出した かを判断する。 ステップ6514で実行オブジェクト6406の遂行によってエクセプションが 送出された場合、処理は、テストステップ6516からテストステップ6522 に移行する。このテストステップ6522において、送出されたエクセブション は、以下及びアベンディクスAに説明きれるセレクタ”continue”の実 行によって送出される内部的なエクセブション°’ continue”と比較 される。後で詳細に説明するように、セレクタ″continue”の実行は、 プロシージャの反復的な遂行を終了させ、そのプロシージャの新しい反復的な遂 行を開始させる。ステップ6514において送出されたエクセブションが、内部 的なエクセプション”continue”の場合、処理は、テストステップ65 22から、前述のステップ6504に移行する。 一方、ステップ6514において送出されたエクセブションが内部的なエクセブ ション°゛continue”でない場合、処理は、テストステップ6522か らテストステップ6524に移行する。このテストステップ6524において、 ステップ6514において送出されたエクセプションが、以下及びアベンディク スAに説明されるセレクタ゛” break”の実行によって送出される内部的 なエクセブション”break”と比較される。後で詳細に説明するように、セ レクタ”break“の実行によって、プロシージャの反復的な遂行が、そのプ ロシージャの新しい反復的な遂行を開始することなく終了される。ステップ65 14において送出されたエクセブションが内部的なエクセブション゛break ”の場合、処理は、テストステップ6522から終了ステップ6520に移行し 、この終了ステップ6520において、オペレーション“while”は、後述 するように成功のうちに終了する。 一方、ステップ6514において送出されたエクセブションが内部的なエクセプ ション”break”でない場合、処理は、テストステップ6524から終了ス テップ6518に移行する。この終了ステップ6518において、ステップ65 14において送出されたエクセプションが送出され、オペレーション”whil e”は失敗に終わる。 また、実行オブジェクト6404の遂行が成功し、ステップ6514においてエ クセプションが送出されなかった場合、処理は、テストステップ6516からス テップ6504に移行し、このステ・ンプ6504において、実行オブジェクト 6406は再び遂行される。 ステップ6504.6506.6510.6512.6514.6516.65 22の遂行は、実行オブジェクト6406の遂行により値が”false”のブ ー1」アンを生じるか、又はステップ6508若しくはステップ6518にお0 てエクセブションが送出されるまで反復される。実行オブジェクト6406の遂 行により値がfalse”のブーリアンを生じた場合、処理は、テストステップ 6512力・ら終了ステップ6520に移行し、この終了ステップ6520にお 0て、オペレーション°゛マhile”は成功のうちに終了する。したがって、 プロシージャ6406は、実行オブジェクトの遂行によって値が°”true“ ′のブーリアンを生じてI+)る間、反復して遂行される。 このように、オペレーション” 1r” 、 ” either” 、 ” 5 elect”、” while”(よ・ここに開示されたコンピュータインスト ラクション上掛に、実質的な半り断能力を供与する。 エクセプションハンドリングフイーチャアペンディクスAにおいて詳細に説明す るように、オペレーション゛’ do”を遂行する実行オブジェクトは、それに よって遂行される。そして、この実行オブジェクトの遂行がエクセプションを送 出した場合、オペレーション゛’ do”(こよってエクセブションが送出され 、オペレーション” (10”が失敗となる。エクセプションの伝送は、前述し たようにフローチャート5200 (図52A)のステップ5210.5212 に示されている。実行オブジェクトの遂行の失敗(よ、その遂行を、直接的又は 間接的に、呼び出している実行オブジェクトの失敗を一般に生じさせる。あるプ ロセスのオペレーション”1ive”を失敗させるエクセブション(よ、そのプ ロセスの破壊を生ずる。したがって、エクセブションのイ云送を検出して、防止 するためのインストラクションを用意することが好ましい。 第2の実行オブジェクトの遂行を呼び出す第1の実行オブジェクト、例えばプロ シージャは、第2の実行オブジェクトによって送出されるエクセブションを”キ ャンチパすることによって、第2の実行オブジェクトによって送出されたエクセ プションによる第1の実行オブジェクトの失敗を防止することができる。 エクセプションを”キャッチ”することは、エクセブションの送出を検出し、こ のような事態において特定のアクションを取るように指示することである。第2 の実行オブジェクトによって送出され、第1の実行オブジェクトによってキャッ チされるエクセプションは、第1の実行オブジェクトを失敗に終わらせることは ない。 実行オブジェクトの遂行によって送出されるエクセブションは、オペレーション °“dO゛のブレイスにおいて、オペレーション”catch’”の使用により 実行オブジェクトの遂行を開始させることによって、キャッチされる。オペレー ション”Catch”によって遂行が開始される実行オブジェクトは、実行オブ ジェクトの遂行(こよって送出されるエクセプションがオペレーション”cat ch”を失敗1こ終わらせることはないということ以外は、その実行オブジェク トがオペレーション”dO”を遂行しているかのように遂行される。このような 場合には、エクセブション番よ、現在のスタックにブツシュされ、リザルトとし て返される。 オペレーション”Catch”のインターフェースは、図66A、図66Bに示 される。図66Aは、キャッチフレーム6602の状態を示して0る。このキャ ッチフレーム6602は、実行オブジェクト6604によるオペレーション”c atch”の遂行の直前における、ミックスインクラス゛’ EXecuted ”によって定義されたオペレーション”catch”の動的状態を記録している 。キャッチフレーム6602+よ、あるプロセス(図示せず)の実行状態の一部 である。実行オブジェクト6604は、レスポンディング実行オブジェクトであ り、キヤ・ソチフレーム6602のブロバティ”procedure”である。 オペレーション”Catch”が遂行されると、1つのアーギュメントであるス タック6606のトップにあるクラスオブジェクト6608が使用される。スタ ック6606は現在のスタックである。スタック6606は、現在のプロセスの プロパティ”f rames”であるスタック(図示せず)上のキャッチフレー ム6602の下方にあり、最も上のユーザ定義フレーム(図示せず)のプロパテ ィ”5tack”である。クラスオブジェクト6608は、クラス”excep t 1ons”又はそのサブクラスを表している。 オペレーション”catch”のインプリメンテーションは、フローチャート6 700(図67)によって示される。ステップ6702において、クラスオブジ ェクト6608は、スタック6606からポツプされ使用される。処理は、ステ ップ6702からステップ6704に移行し、このステップ6704において、 実行オブジェクト6604が遂行される。処理は、ステップ6704からテスト ステップ6706に移行し、このテストステップ6706において、オペレーシ ョン”catch”の遂行を行うエンジンは、実行オブジェクト6604の遂行 によりエクセプションを送出されたかを判断する。実行オブジェクト6604の 遂行がエクセプションを送出しなかった場合、処理は、テストステップ6706 からステップ6708に移行する。このステップ6708において、スタック6 606にニル(0)がブツシュされる。処理は、ステップ6708から終了ステ ップ6710に移行し、この終了ステップ6710において、オペレーション”  catch”は、成功のうちに終了する。 ステップ6704で実行オブジェクト6604の遂行が失敗してエクセプション が送出された場合、処理は、テストステップ6706からテストステップ671 2に移行する。このテストステップ6712において、エンジンは、ステップ6 704で送出されたエクセプシジンについて、クラスオブジェクト6608によ って表されるクラスにおける帰属関係をチェックする。送出されたエクセブシヨ ンがクラスオブジェクト6608によって表されるクラスのメンバでない場合、 処理は、テストステップ6712から終了ステップ6714に移行する。この終 了ステップ6714において、ステップ6704で送出されたエクセプションが 、オペレーション”catch”によって送出され、オペレーション” cat ch”は失敗となる。 一方、送出されたエクセプションがクラスオブジェクト6608によって表され るクラスのメンバである場合、処理は、テストステップ6712からステップ6 716に移行する。このステップ6716において、ステップ6704で送出さ れたエクセプションがスタック6606に保存され、処理は、ステップ6716 から終了ステップ6710に移行する。前述したように、この終了ステップ67 10において、オペレーション”catch’は成功のうちに終了する。したが って、送出されたエクセブションはキャッチされ、オペレーション″catch ″は成功し、送出されたエクセプションが伝送されることはない。 図66Bは、プロシージャ6604によるオペレーション”catch”の遂行 直後におけるキャッチフレーム6602の状態を示している。スタック6606 のトップには、エクセプション6610がある。このエクセブション6610は 、プロシージャ6604の遂行が失敗したときにプロシージャ6604の遂行に よって送出されたエクセブションである。この場合、エクセブション6610は 、クラスオブジェクト6608 (図66A)によって表されるクラスのメンバ である。 プロシージャ6604の遂行が成功した場合に、スタック6606のエクセプシ ョン6610 (566B)の場所にあるのはニル(0)(図示せず)である・ このように、ここに開示されたコンピュータインストラクションセットは、エク セブションを検出し取り扱うための手段を備えている。 ルーピングフィーチャ ここに開示されたコンピュータインストラクションセットは、実行オブジェクト 、例えばプロシージャを繰り返し遂行して、反復するタスクの遂行を容易にする ための手段を備えている。前述したオペレーション”while″は、ルーピン グフィーチャの一例である。そのほかに、実行オブジェクトは、オペレーション ″t。 Op”、”repeat”を用いて繰り返し遂行される。 オペレーション”100p”は、レスポンディング実行オブジェクトを繰り返し 遂行することによって、実行オブジェクトを繰り返し遂行する。実行オブジェク トによるオペレーション”1oop”の遂行は、アーギュメントを使用せず、い かなるリザルトも生じない。実行オブジェクトによるオペレーション°’ re peat”の遂行は、インチジャアーギュメントを使用し、使用されるアーギュ メントのインチジャの値に等しい回数だけ、レスポンディング実行オブジェクト を遂行し、いかなるリザルトも生じない。オペレーション”1oop”又はオペ レーション″repeat″の間の、レスポンディング実行オブジェクトの遂行 は、実行オブジェクトの”反復的な遂行”と呼ばれる。 フローチャート6800 (568)は、レスポンディング実行オブジェクトに よって遂行されるオペレーション°100p”のインプリメンテーションを示し て11)る。レスポンディング実行オブジェクトは、ステップ6802において 遂行される。処理は、ステップ6802からテストステ・ノブ6804に移行し 、このテストステップ6804において、オペレーション” 1oop”を遂行 しているエンジンは、レスポンディング実行オブジェクトがエクセプションを送 出してl+’る力1を判断する。 エクセブションが送出されなかった場合、すなわちレスポンディング実行オブジ ェクトが成功のうちに遂行された場合、処理は、テストステップ6804カ1ら ステップ6802に移行し、このステップ6802において、レスポンディング 実行オブジェクトが再び遂行される。一方、レスポンディング実行オブジェクト の遂行がエクセブションを送出した場合には、処理は、テストステップ6804 からテストステップ6806に移行する。この継続テストステップ6806にお いて、レスポンディング実行オブジェクトの遂行によってステップ6802で送 出されたエクセプションが、内部的なエクセブション”continue”と比 較される。 内部的なエクセプション” continue” 、”break”は、セレク タ″continue″、break”の実行によって、それぞれ送出される。 なお、これらの内部的なエクセプション゛’ continue” 、”bre ak”については、以下及びアベンデイクスAに一層詳細に説明される。これら のエクセブションは、内部的なエクセプション”con tinue” 、”b reak”が、それに応答してアクションを行うエンジンによって検出されるの で、”内部的゛と呼ばれる。第3の内部的なエクセプション、すなわちセレクタ ”5ucceed”の実行の結果として送出される内部的なエクセプション”5 ueceed”については、後述する。内部的なエクセブションは、後述するよ うな場合を除いて、オペレーション”catch”によってはキャッチされず、 オペレーション”1ive”を失敗に終わらせて、プロセスの破壊を生じさせる 。 ステップ6802で実行オブジェクトの遂行によって送出されたエクセブシ目ン が内部的なエクセブション”continue”である場合は、処理は、テスト ステップ6806からステップ6802に移行し、このステップ6802におい て、レスポンディング実行オブジェクトが再び遂行される。一方、送出されたエ クセプションが内部的なエクセプション” continue’”でない場合は 、処理は、テストステップ6806からテストステップ6808に移行する。こ のテストステップ6808において、レスポンディング実行オブジェクトの遂行 によって送出されたエクセプションは、内部的なエクセプション”break” と比較される。ステップ6802で実行オブジェクトの遂行によって送出された エクセブションが内部的なエクセプション゛’ break”である場合は、処 理は、テストステップ6808力・ら終了ステップ681Oに移行し、この終了 ステ・ノブ6810において、オベレーション“100p”は成功のうちに終了 する。一方、送出されたエクセブシ目ンが内部的なエクセブション”break ”でない場合は、処理は、テストステップ6808から終了ステップ6812に 移行し、この終了ステップ6812において、オペレーション”100p”は失 敗に終わり、レスポンディング実行オブジェクトの遂行によってステップ680 2で送出されたエクセブションは、オペレーション”100p”によって送出さ れる。 図69は、実行オブジェクト6904によるオペレーション”repeat”の 遂行の動的状態を記録するリピートフレーム6902を示している。リピートフ レーム6902は、あるプロセス(図示せず)の実行状態の一部分である。リピ ートフレーム6902は、プロパティ“procedure” 、 ” rep etitions“、” repetitionssoFar” 、 ” po sition”を含む。実行オブジェクト6904は、オペレーション”rep eat”のレスポンダであり、リピートフレーム6902のプロパティ”p「o cedure”である。インチジャ6910.6911は、それぞれリピートフ レーム6902のプロバチ4 ” repetitionsSoFar” 、” repeti tions”である。インチジャ6910は、実行オブジェクト 6906の完了した反復遂行の回数を示し、インチジャ6911は、使用される インチジャのアーギュメントによって特定される反復遂行の全回数である。 フローチャート7000 (図70)は、実行オブジェクト6904によって遂 行されるオペレーション”repeat”のインプリメンテーションを示してい る。ステップ7002において、インチジャ8910は、ゼロに初期化され、イ ンチジャ6911は、アーギュメントとして使用されるインチジャの値に初期化 される。 処理は、ステップ7002からテストステップ7004に移行し、このテストス テップ7004において、インチジャ6910はインチジャ6911と比較され る。インチジャ6910がインチジャ6911に等しいかこれよりも大きい場合 、処理は、テストステップ7004から終了ステップ7018に移行し、この終 了ステップ7018において、オペレーション”repeat”は成功のうちに 終了する。 したがって、アーギュメントとして使用されるインチジャが、正のインチジャで 無い場合は、オペレーション”repeat”の遂行は効果を持たない。一方、 インチジャ6910がインチジャ6911より小さい場合、処理は、テストステ ップ7004からステップ7005に移行し、このステップ7005において、 インチジャ6910の値が増加される。処理は、ステップ7005がらステップ 7006に移行し、このステップ7006において、インチジャ6910に等し い値を持つインチジャオブジェクトが現在のスタックにブツシュされる。処理は 、ステップ7006からステップ7008に移行し、このステップ7008にお いて、応答している実行ブジェクト69o4が遂行される。現在のスタックがら インチジャをポンプすることは、実行オブジェクト69o4の仕事である。換言 すれば、実行オブジェクト6904の遂行が現在のスタックからインチジャをポ ツプしない場合、オペレーション”repeat”の遂行の間、インチジャは現 在のスタックに留まっている。 処理は、ステップ7008からテストステップ7010に移行し、このテストス テップ701Oにおいて、オペレーション”repeat”を遂行しているエン ジンは、レスポンディング実行オブジェクト69o4の遂行がエクセブションを 送出するかを判断する。エクセプションが送出されなかった場合、処理は、テス トステップ7010からテストステップ70o4に移行する。逆に、エクセプシ ョンが送出された場合、処理は、テストステップ7010がら、テストステップ 7゜14に移行し、このテストステップ7014において、そのエクセブション が内部的なエクセブション”continue″と比較される。送出されたエク セプションが内部的なエクセプション”continue”である場合、処理は 、テストステップ7014からテストステップ7004に移行する。このように 、ステップ7008においてエクセプションが送出されなかったり、送出された エクセプションが内部的なエクセブション゛’ continue”である場合 には、処理は、テストステップ7004に移行し、このテストステップ7004 において、インチジャ6910がインチジャ6911と再び比較される。したが って、セレクタ” continue”の実行は、オペレーション゛’ rep eat”の遂行においてその後の反復的な遂行に影響することなく、早い段階で 、レスボンディング実行オブジェクト6904の反復遂行を終了させる。 テストステップ7014において、ステップ7008でレスボンディング実行オ ブジェクト6904の遂行が内部的なエクセプション”continue″以外 のエクセプションを送出したことをエンジンが判断した場合、処理は、テストス テップ7014からテストステップ7016に移行する。このテストステップ7 016において、送出されたエクセブションが内部的なエクセプション”bre ak”と比較される。送出されたエクセプションが内部的なエクセプション”b reak”である場合、処理は、テストステップ7016から終了テストステッ プ7018に移行する。この終了テストステップ7018において、オペレーシ ョン”repeat”は成功のうちに終了する。したがって、セレクダ’ br eak”の実行は、レスポンディング実行オブジェクト6904の反復的な遂行 を終了させて、オペレーション”repeat”の遂行を成功のうちに終了させ 、オペレーション°’ repeat”の遂行においてその後の反復的な遂行を 全てアボートする。 一方、送出されたエクセプションが、内部的なエクセプション”break”で ない場合、処理は、テストステップ7016から終了ステップ7020に移行す る。 この終了ステップ7020において、レスボンディング実行オブジェクト690 4の遂行によって送出されたエクセプションは、オペレーション” repea t”によって送出され、オペレーション°” repeat”は失敗に終わり、 エクセブションが伝送される。前述したように、オペレーション”catch” は、エクセプションの伝送を防止するために使用することができる。 なお、ステップ7005において、インチジャ691Oが0以下の値にまで減少 された場合は、処理は、テストステップ7004から終了ステップ7018に移 行し、この終了ステップ7018において、オペレーション” repeat” は成功のうちに終了する。実行オブジェクトによるオペレーション”repea t”の遂行は、図70のステップ7008によって実行されるオブジェクトの遂 行によるリザルト以外は、リザルトを生成しない。 セレクタ”continue”の実行によって、内部的なエクセプション’ c ontinue”が送出される。この内部的なエクセブションは、オペレーショ ン”while” (例えば図65のテストステップ6522において)、オペ レーション’ 1oop” (例えば図68のテストステップ6806において )及びオペレーション” repeat” (例えば図70のテストステップ7 014において)によって、キャッチされる。 セレクタ”Continue”の実行による内部的なエクセプション”cont inue”の送出は、オペレーション”while”、”100p”、又は”r epeat”を遂行している実行オブジェクトの反復的な遂行を終了させる。先 により詳細に述べたように、オペレーション”while” 、”1oop”又 は”repeat”を遂行している間に、内部的なエクセブション”conti nue”の検出によって、応答するプロシージャのその後の反復的な遂行、例え ば図65、図68及び図70のテストステップ6522.8806.7014の ような反復的な遂行が生ずる。 セレクタ” break”の実行は、内部的なエクセプション″break“を 送出する。 このエクセプション”break”は、オペレーション”while” (例え ば図65のテストステップ6524において)、オペレーション” 1oop”  (例えば図68のテストステップ6808において)及びオペレーション”r epeat” (例えば図70のテストステップ7016において)によって、 キャッチされる。前述した内部的なエクセプション″’ continue”の 送出の場合と同様に、内部的なエクセプション°’ break”が送出される と、オペレーション”while” 、” 1oop”又は” repeat” の遂行によって生じる実行オブジェクトの反復的な遂行が終了される。ただし、 内部的なエクセブション”break”の送出は、レスポンディング実行オブジ ェクトのその後の反復的な遂行を生じさせることなく、オペレーション”whi le”、”1oop“又は”repeat”の遂行を終了させる。 内部的なエクセブション”continue”、 ” break”は、オペレ ーション” while”、”100p”、“repeat”のコンテキスト内 においてのみ、他のエクセブションから識別される。したがって、内部的なエク セプション”continue”、”break”のコンテキストに説明におい て、オペレーション°’while″、” 1oop″、” repeat”は 、集合的番ご関連するオペレーション”と呼ばれる。関連するオペレーションの 各々は、内部的なエクセプション°’ continue”、”break“を 検出し、それに応答してアクションを行うので、内部的なエクセプション”co ntinue” 、”break”は、関連するどのオペレーションによっても 、他のエクセブションのように送出されることはない。図71に具体的な例を示 す。 スタック7104は、プロセス7102のプロパティであり、プロセス7102 の実行スレッドを表している。ユーザ定義フレーム7106は、スタック710 4のボトムにあり、オペレーション“1ive”の遂行の動的状態を記録する。 ボトムからトップにかけてのスタック7104の他の内容は、リピートフレーム 7108、定義済みフレーム71 to (オペレーション” 1oop”の遂 行の動的状態を記録する)及びユーザ定義フレーム7112である。ここで、定 義済みフレーム7110は、オペレーション°’ 1oop”の遂行の動的状態 を記録する。そして、図71において、オペレーション”1ive”は、オペレ ーション” repeat”の遂行を生じさせ、このオペレーション゛’ re peat”は、オペレーション”100p”の遂行を生じさせ、このオペレーシ ョン”1oop”は、さらに別のフィーチャの遂行を生じさせる ユーザ定義フレーム7112によってその動的状態を記録されるフィーチャの遂 行が、セレクタ”continue”又はセレクタ”break”を実行する想 定する。前述したように、セレクタ” continue’又は” break “の実行は、対応する内部的エクセブションを送出する。これらの内部的なエク セプションをキャッチするように設計されていないオペレーション、すなわち関 連するオペレーション以外のオペレーションは、普通のエクセブションが送出さ れたがのように挙動する(エクセブションに関する図52Aのステップ52.1 0及び終了ステップ5212についての前述の説明を参照)。この状態のもとで は、内部的なエクセプションは、ユーザ定義フレーム7112によって表される フィーチャの遂行によって伝送され、前述したように定義済みフレーム7110 によって表されるオペレーション”I。 op”の遂行によってキャッチされる。内部的なエクセブションは、ループフレ ーム7110によって表されるオペレーション1oop”によっては伝送されず 、したがって、リピートフレーム7108によって表されるオペレーション“r epeat”の遂行には影響しない。 関連のあるオペレーションが現在遂行されていない場合、すなわち、スタック7 104に存在してない場合、セレクタ”continue”又はセレクタ” b reak”が実行されると、クラス”Loop Missing”のエクセプシ ョンが生成される。クラス”Loop Missing”のエクセブションは、 内部的なエクセプションではないので、他のエクセプションと同様に、伝送され る。 内部的なエクセブション”5ucceed”が送出された場合、すなわちセレク タ“5ucceed”が実行された場合、現在のメソッドの遂行は成功のうちに 終了する。なお、定義済みフィーチャは、直接にインプリメントされるので、す なわち全体としてエンジンを形成するコンピュータインストラクション内におい てインプリメントされるので、ユーザ定義フィーチャのみがメソッドオブジェク トによってインプリメントされる。したがって、遂行の動的状態が定義済みフレ ーム7110(図71)に記録されるオペレーション”1oop”がセレクタ” 5ucceed”を実行する場合、内部的なエクセブション”5ucceed” が送出され・オペレーション“100p”の実行が終了する。 オペレーション”1oop”は予め定義されているので、オペレーション”10 0p”は内部的なエクセブション”5ucceed”をキャッチせず、したがっ て、内部的なエクセプション”5ucceed“を伝送させ、遂行の動的状態が リピートフレーム7108に記録されているオペレーション“repeat”を 終了させる。同様に、オペレーション”repeat”は予め定義されているの で、オペレーション” repeat” lよ内部的なエクセブション”5uc ceed”をキャッチせず、遂行の動的状態がユーザ定義フレーム7106中に 記録されているオペレーション”1ive”を終了させる。ただし、オペレーシ ョン”1ive“は定義済みインプリメンテーションを持たないので、オペレー ション“1ive“は成功のうちに終了し、エクセブションの送出によって失敗 に終わることはない。同様に、ユーザ定義フレーム7112のサブジェクトをメ ソッドとするフィーチャが内部的なエクセブシヲン”5ucceed”を送出し た場合、すなわち、セレクタ“5ucceed”を実行した場合、そのフィーチ ャは、成功のうちに終了し、内部的なエクセブション”5ucceed”はキャ ッチされる。この場合、内部的なエクセブション”5ucceed”は、定義済 みフレーム7110、リピートフレーム7108及びユーザ定義フレーム710 6には影響しない。 前述したオペレーション、すなわちオペレーション”dO”ごif”ごeith er”ごwhile’°ご5elect” 、 ” catch”ご1oop” ごrepeat”は、現在のメソッドのコンテキストにおいて遂行される。前述 したように、定義済みオペレーションは、メソッドオブジェクトによっては、イ ンプリメントされなlI)。そして、前述のこれらのオペレーションは、すべて 予め定義されており、したがって、メソッドオブジェクトによっては、インプリ メントされなIv)。前述のこれらの各オペレーションに関して、ユーザのメソ ッドのコンテキストにおIl)での遂行l:つIt’で、簡革な例について説明 する。 例えば、メソッドがフレーム7112 (図71)のサブジェクトとなっている フィーチャが、前述の定義済みオペレーションのうちの1つについて遂行を、要 求したものと想定する。ここで、このオペレーションの遂行は、スタック710 4上のユーザ定義フレーム7112の直上の定義済みフレーム(図示せず)に記 録される。定義済みオペレーションの遂行の間、ユーザ定義フレーム7112の プロパティ”5tack”は、現在のスタックのままである。したがって、定義 済みオペレーションの遂行は、ユーザ定義フレーム7112のプロパティ″5t ack”に対して、アーギュメントをポツプしたり、リザルトをブツシュしたり する。したがって、前述の定義済みオペレーションは、現在のメソッドのコンテ キストにおいて遂行される。 前述のオペレーション、すなわちオペレーション”dO”、”ir″、”e i  ther”、” while−、” 5elect” 、” catch−、 ” 1oop” 、” repeat” 、 ” continue” 、h break”は、本発明のオブジェクト指向のインストラクションセットに、実 質的な汎用性及び融通性を供与する。すなわち、エージェントは、1つのブレイ スから別のブレイスに移動する間に複雑なロジックを使用したり、いろいろなブ レイスにおいて生み出されるエージェントとの相互作用によって情報を預けたり 収集したりすることができる。 このように、新規なコンピュータプロセスのセット、すなわち、コンピュータネ ットワークを介してそれ自身の移動を指示でき、ネットワークを通じて複数のア クティブなコピーを送出することができ、遠隔のコンピュータにある他のコンピ ュータプロセスと相互作用し、プロセス間で情報を伝達することができる新規な コンピュータプロセスのセットが、提供される。 このような新規なコンピュータプロセスのセットを形成するここに開示されたコ ンピュータインストラクションセットは、移植性があり汎用的である。このコン ピュータインストラクションセットは、コンピュータネットワークの各ノードに おいて、一様にインプリメントされる。クラスは、開示されたインストラフシコ ンセット内のオブジェクトとされる。本発明において、プロセスのインストラク ションは、コンパイルされるのではなくインターブリートされる。また、制御構 造が、リソースの管理、判断処理、エクセブションの処理及びループ構造のため に提供される。このように、移植性があり汎用的なコンピュータインストラクシ ョンセントが提供され、このインストラクションセットから新規なコンピュータ プロセスのセットが構成される。 なお、以上及びアベンディクスにおいては、特定のコンピュータインストラクシ ョンセットについて説明したが、本発明はここに記載されたインストラクション の機能に限定されるものではなく、本発明の範囲は特許請求範囲の記載によって のみ限定される。 (以下、余白。) アペンディックスA 著作権 ジェネラル・マジック社 +991.1992.1993゜複製を禁ず 。 以下の目次は、読者がアペンディックスAの構成を理解し、その情報を検索する ために役立てるものである。 1.1 テレスクリプトインストラクションセット1.2 テレスクリプトエン ジン 13 テレスクリプトネットワーク 1.4 本アペンディソクス 1、4.1 適用範囲 142 一致 1、4.3 慣用的表現 2、 テレスクリプトのコンセット 21 モデル 2.2 オブジェクトモデル 221 オブジェクト 222 リファレンス 2.23 クラス 224 インへりタンス 22.5 フィーチャ 2、2.6 アトリビュート 2.27 オペレーション 2.28 エクセブション 229 コンストレイント 2、2.12 オブジェクトの初期化 2.2.13 オブジェクトの最終化 2.2.14 クラスの構造 23 実行モデル 234 識別子 235 静的な置換の規則 236 動的な置換の規則 237 セレクタの実行 238 モディファイヤの実行 239 識別子の実行 231Oメソッドの選択 2311 メソッドの遂行 24 プロセスモデル 2、4.1 プロセス 2.48 プランディング 2、4.9 コンタクト 2、4.10 アイソレーション 2.4.ll 終了 2.5 ネットワーク・モデル 2、5.11 テレアドレス 2512 相互変換 2.6 タイムキーピング・モデル 2、6.1 タイム 2.62 カレンダータイム 27 パターンマツチングモデル 2、7.1 パターン 2.72 構造 273 他の非ターミナル 274 メタキャラクタ 3、テレスクリプトクラスの概観 3.1 グループ 32 カーネルグループ 3、2.1 クラス 322 コンストレインド 3263 コンストレイント 3、2.4 エクセブション 32.5 エグゼキューテソド 3.26 実行エクセプション 3.27 識別子 3、2.8 カーネルエクセブション 32.9 マーク 3、2.10 モディファイヤ 3.2.11ニル 3、2.12 オブジェクト 3、2.15 プログラミングエクセプション3、2.16 有資格識別子 3.2.17 リフアレンスト 3、2.18 セレクタ 3.2.19 変更されない 3、2.20 予想されないエクセブション3.2.21検査 3.3 プリミティブグループ 33.4 キャラクタ 337 オクテツト 3、3.20 プリミティブエクセブション3.3.11 テレナンバ 3、3.12 タイム 3.4 コレクショングループ 34.1 アソシエーション 342 ビットストリング 3.43 コレクション 3.44 コレクションエクセプション3、4.5 コンストレインドディクシ ョナリ3、 to、 l カレンダータイム 3.IQ、2 種々のエクセブション 3、10.3 パターン 3、10.4 ランダムストリーム 3.10.5 実数 4、テレスクリプトクラスの詳細 4.1 規約 4.5 オーセンティケイタ 4.6 ビット 4.7 ビットストリング 48 ブーリアン 49 カレンダータイム 4.15 クラス定義 4.16 クラスエクセブション 4.17 コレクション 4、18 コレクションエクセブション419 コンストリインド 4.20 コンストラインドディクショナリ4.21 コンストレイントリスト 4.22 コンストレイントリスト 423 コンストレイント 4.24 コンタクト 425 コンタクティド 4.26 ディクショナリ 427 エクセブション 4.28 エグゼキュート 429 実行エクセブション 4.32 識別子 4.33 インプリメンテーション 434 インチジャ 435 インテーチェンジド 436 インターフェース 4.37 カーネルエクセブション 4.42 ミーティングエクセブション4.43 ミーティングブレイス 4.44 メソソド 53 バイナリテレスクリプト 5.31 ブリウニイスとコメント 532 エグゼキューティドオブジェクト5.33 他の非ターミナル 5.4 数値コード 5.41 プレデファインディドクラス54.2 プレデファインディドフィー チャーズ5、4.3 実行オブジェクトのエンコード6、モジュールのシンタッ クス 61 一般的な構造 62 詳細な構造 62.1 モジュール 62.4 コンストレイント ロ、25 他の非ターミナル 7、プレデファインドモジュール 8、ブレデファインドクラスグラフ (以下、余白。) l 序文 アペンディックスAのセクションでは、テレスクリプト・テクノロジー(Tel escript Technology)の3つの主要な要素を紹介する。3つ の主要な要素とは、アペンディックスの主題であるテレスクリプトの命令(イン ストラクション:1nsutruction)のセットと、それらのインストラ クションセットを実行するテレスクリプトエンジンと、相互接続するエンジンに よって形成されるテレスクリプトネットワークのことである。 1.17−且んUゴエむグ訃二外ロλ立ムL〕旦距ユU皿迫旦助L」鮭し テレスクリプトインストラクションセットは、単にインストラクションセットと も呼ばれるものであり、適用分野が分散型のシステム及びアプリケーションであ るプログラミング言語を、集合的に形成するコンピュータインストラクションの 組である。また、”インストラクションセット(lnstraction 5e t)”は、オブジェクト指向でインタブリートされるものである。マイクロフィ ルムのアペンディックスE%Fにおいて、インストラクションセットはご言語( the Language)”とも呼ばれる。 インストラクションセットの中に組み込まれる主なりラスは、”エージェント( Agent)”及び′°ブレイス(Plase) ”である。エージェントクラ ス(クラス”Agenじ)のメンバであるコンピュータプロセスは、エージェン ト自身を検査変更することができ、エージェント自身をネットワーク中の一方の ブレイスがら他方のブレイスに移動することができ、そして、他方のブレイスに 見い出される他のエージェントと相互作用することのできる活性なオブジェクト である。この機能は、特定の場合において、特定のエージェントに対して、特定 の機能のみを、プログラマ又は管理者が許可できるようにすることで、均衡が保 たれる。一方、ブレイスクラス(クラス”Plase”)のメンバであるコンピ ュータプロセスであるブレイスは、ブレイス自身を検査實更することができ、エ ージェントに対する地域(venue)として、及びエージェントが相互作用す るコンテキストとして、取り扱う活性なオブジェクトである。 エージェントは、特定のブレイスに移動し、そのブレイスやそのブレイスの他の エージェントと相互作用する。エージェントとブレイスは、離れている場合は相 互作用できない。このように、リモートプログラミング(Remote Pro gr1LI1ming=以下、RPと言う。)を実行するインストラクションセ ットは、所謂リモートプロシージャコーリング(Remote Procedu re Cat ling :以下、RPCと言う。)のパラダイムを実行するも のではない。RPは、システムの要素を通信せずに相互作用させることによって RPCを改善し、待ち時間を減少させることによって相互作用の効率を向上する 。すなわち、RPは、システムの要素を、存在しているそれ自身のエージェント によって、すなわちそれ自身によって、それぞれの領域において、他の要素にカ スタマイズすることができる。 以下、インストラクションセットの特徴を述べる。 五金慄 インストラクションセントは、許可を得ることなしに、他のプロセスの実行に干 渉することがないように、又はプロセスが実行中のコンピュータを直接操作する ことがないように、制約の上限を越えるようなプロセスを防止する。これは、ウ ィルスの汚染を防止するのに役立つ。 透ヱ炸 インストラクションセットは、ハードウェアの制約、ソフトウェアの制約、又は 異なるコンピュータシステムの違いを意識する必要はない。これにより、ネット ワーク内においても、又はネットワークのあちこちにおいても、プロセスを実行 することが可能となる。 監浬慄 インストラクションセットは、プログラマにより定義された情報オブジェクトの 型に対して、インストラクションセットに組み込まれるものと同様の拡張性を与 える。これにより、特定の目的のためのインストラクションセットを拡張するこ とが可能となる。 血−よ インストラクションセットは、揮発性のストレージと非揮発性のストレージとの 間に区別を設けない。全ての情報オブジェクトは、もともと不変である。これは 、プロセスの抽象化を拡大し、プロセスのサイズを減少させる。 1.2 テレスクリプトエンジン(Telescri t En in)インス トラクションセットで作成されたプログラムは、テレスクリプトと呼ばれ、テレ スクリプトエンジンによって起動される。テレスクリプトエンジン(以下、単に “エンジン(Engin)”とも言う。)は、プログラム中のインストラクショ ンを解釈・実行(インターブリート: 1nterprete)する。また、エ ンジンは、多くのテレスクリプトを同時にインターブリートすることができる。 エンジンは、エンジンが実行中の時に、コンピュータのハードウェア又はオペレ ーティングシステムに直接依存することなく、インストラクションセットの抽象 化を実現することができる。エンジンは、通信する際にエンジンが必要とする情 報、ストレージ、及び他のサブシステムへの標準的なインターフェースを使用し てインストラクションセットの抽象化を実現する。これらは、テレスクリプト・ コミュニケーション・アプリケーション・プログラミング・インターフェース( Appl 1cation Programming Inter4ace : 以下、APIと言う+1)を形成する・このインターフェースに関しては、本明 細書の一部であるアペンディックスCに記載する。 エンジンは、インストラクションセットの抽象化からの特別に許可されたエスケ ープを実行することができる。このエスケープは、エンジンの外において、オペ レーション、アトミニストレージョン、及びマネージメント(operatio nal、 administrative、 and managerial  :以下、OAMと言う。)のツールの構成を可能とする。このようなツールは、 大規模な通信システムを実現するために不可欠なものである。 1.3 テレスクリプトネットワーク(Telescrit Network) 2つ以上のエンジンは、相互接続することができる。ここで、テレスクリプトネ ットワーク(以下、単に”ネットワーク(Network)”とも言う。)は、 エージェントが移動することができる世界である。このネットワークは、他のネ ットワークのクライアントである複数のコンピュータシステムを含んでいるが、 他のネットワークの一部ではない。 コンピュータシステムは、エンジンを組み込んで、エージェントが移動できるブ レイスを提供する場合にのみ、ネットワークの一部分となる。この要求は、情報 の構造、並びに伝送形式に関して、ネットワークを同種のものとする。 エンジンは、上述したように相互接続されているため、エージェントは、エンジ ン間を移動することができる。エージェントは、アペンディックスBに記載され ているテレスクリプトエンコード則に従って、エンコードされる。したがって、 オクテツトストリングは、プラットフォームインターコネクトプロトコルによっ て規定されるようにエンジン間を移動する。プラットフォームインターコネクト プロトコルに関しては、アペンディックスFに記載されている。 以下、アペンディックスAについて説明する。 上、土エニーA里斬堕 アペンディックスAは、インストラクションセットのバージョン0.8を規定す る。なお、テレスクリプトエンコード則、テレスクリプトプロトコル、及び、テ レスクリプトAPIに関しては、本明細書の一部であるアペンディックスBいC にそれぞれ記載する。 インストラクションセットは、仮想的なマシンのためのインストラクションセッ トと見なすことができる。このことから、インストラクションセットは、より高 いレベルの言語であるテレスクリプトのコンパイラであると言うことができる。 カリフォルニア州マウンテンビューのジェネラル・マジック社は、ハイテレスク リプトと呼ばれる言語を開発している。なお、本明細書のアペンディックスのコ ンテキストにおいて、インストラクションセットは、ローテレスクリプトとも呼 ばれる。 1、4.2一致 エンジンの製造者は、このアベンディクスに適切に一致するように、一定の要求 を満たさなければならない。 1.4.3 慣用的表現 以下、アペンディックスにおける慣用的な表現を記載する。 パアトリビュートα(Theαattribute)”は、“その識別子がαに 等しいアトリビュート”を意味する。 ・”キーである(Is a key) ”は、。キーに一致している(equa ls a key) ”ことを意味し、”キーと同一である(is the s aa+e as a key)”ということではない。 ・”X (An x)”は、通常、”Xのメンバを意味し、°Xのインスタンス ”ではない。 ・′°Xを送出する(Throws X)”は、通常、Xのメンバを送出する” を意味する。 ・” 「ステイトメント」か否か(Whether statement) ” は、” 「ステイトメント」であり、且つこの「ステイトメント」に限られるか (statement iVr true) ”を意味する。 ・”〜の場合にのみ(Iff) ”は、数学の分野における’ iff”と同様 に、”〜の場合、且つその場合に限り(Hand only if)”を意味す る。 ・”MSB”は、最上位ピントを意味する。 ・“LSB”は、最下位ピントを意味する。 注 このアペンディックス全体を通して、”注”に記載した内容は、定義では無 く、注釈である。 1.4.4tl!成 アペンディックスAは、8つのセクションに分けられる。セクション1は、アペ ンディックスAの序である。セクション2は、インストラクションセットの主な 概念を紹介する。セクション3は、インストラクションセットの定義済みクラス について述べる。セクション4は、それらのクラスに関して詳細を述べる。セク ション5は、インストラクションセットの構文の定義について述べる。 セクション6は、定義済みクラスへの形式的なインターフェースの定義に基いた 慣例について述べる。セクション7は、この形式的なインターフェースの定義に ついて述べる。セクション8は、ユーザ定義クラスではなく、定義済みクラスを 含むクラス図表の一部を示す。 1.4.5 ロードマツプ 上述した8つのセクションは、テレスクリプトにおける定義について記載したセ クションと、その定義に関する事柄について記載したセクションとから成る。 すなわち、実際の定義を記載したセクションは、セクション1.2.4.5であ る。また、セクション3.7.8は、セクション4に記載した内容を再構成した 形で説明したセクションである。セクション6は、ハイテレスクリプトの様相を 写したものである。 ユーザーは必要性に応じて、8つのセクションから必要なセクションを選択する 必要がある。例えば、インストラクションセットの適用範囲及び構造についての みの情報が必要である場合は、セクション1.2.3のみをマスターすればよい 。テレスクリプトプログラマは、セクション1.2.3以外に、セクション4も マスターする必要がある。また、ローテレスクリプトプログラマは、キャラクタ −テレスクリプトをカバーするセクション5もマスターする必要がある。ハイテ レスクリプトのコンパイラやエンジンの作成者は、バイナリのテレスクリプトを カバーするセクション5をマスターする必要がある。なお、ハイテレスクリプト プログラマは、セクション5をマスターする必要はない。 一方、テレスクリプトの実務者にとっては、セクション7.8は不可欠なリファ レンスである。 1.4.6 リファレンス アペンディックスAは、下記のドキュメントに依存するものとする。 510646. International Organization f or 5tandardization and Inte窒獅≠狽奄盾獅■ I Electrotechnical Comm1ssion、 1990゜ 聾ヨユ」肋出旦諌U 2、テレスクリプトのコンセプト インストラクションセットは、種々の概念(コンセプト:CO口cept)を定 義する。 インストラクションセットの最も重要な定義が、本セクションで紹介される。こ こで、種々のコンセプトを、モデル(Model)に分ける。したがって、サブ セクションには、各モデルが割当られている。また、各サブセクションにおいて 、さらに小さなサブセクションに、そのモデルのコンセプトが割り当てられてい る。 インストラクションセットは、リモートプログラミング用であるため、言語、オ ペレーティングシステム及びネットワークの範囲に及ぶコンセプトを含んでいる 。通常、独立しているこれらの領域は、このインストラクションセットにより一 つにまとめられる。 2、 1 モデル(Models) インストラクションセットのコンセプトは、複数のモデルに分けられる。この? 1数のモデルは、教育的な目的にのみ用いられるものであり、処理の遂行時には 見られないものである。 以下のモデルが定義される。 オブジェクト(Ob′ect) ”オブジェクト(Object)”モデルは、オブジェクト指向、例えば、オブ ジェクト、リファレンス、クラス、オペレーション、及びエクセプションを提供 する。 来且」シ旦逗肋匝L ”実行(Execution)”モデルは、逐次実・行、例えば、メソッド、プ ロシージャ、及び識別子を提供する。 1巨旦と1違裳至し ”プロセス(Process)”モデルは、マルチタスク処理、例えば、プロセ ス、リソース、バーミッット、コンタクト、及びオーナーシップを提供する。 ネットワーク(Netvoek) ”ネットワーク(Netvoek)“モデルは、ネットワークのアーキテクチャ 、例えば、エージェント、ブレイス、トリップ、ミーティング、及びテレネーム を提供する。 タイムキーピング(Timekeein)”タイムキーピング(Timekee ping)”モデルは、時間を計測する手段、例えば、タイム及びカレンダータ イムを提供する。 パターンマツチング(Pattern Maching)”パターンマツチング (Pattern Maching)”モデルは、パターンマツチングのための 手段、例えば、パターンを提供する。 各モデルは、上述した順序で以下に記載される。また、各モデル内のコンセプト は、合理的な順序で記載される。 2.2 オブジェクトモデル(Ob′eCtMOdeIインストラクションセッ トは、本セクションで定義する”オブジェクトモデル(object mode l) ”を実現する。 2.2.1 オブジェクト(Ob′eCOオブジェクトは、情報と、情報を処理 するプログラムとから成るインストラクションセントの単位である。オブジェク トは、クラスのインスタンスである。 注:オブジェクトは、如何なるものでもよく、例えば、ブーリアンのような単純 なもの、ディクショナリのような複雑なもの、ストリングのような受動的なもの 、又はプロセスのような能動的なものである。 注:メンセージングにおいて、すなわちインストラクションセットが含まれるア プリケーションにおいて、オブジェクトは、メイルボックス及び分配リストのよ うな、メツセージのシステムの構成部分と、メツセージや送信の情報のような、 システムが伝達する情報オブジェクトと、エンベロープフィールドのような、こ れらの情報オブジェクトの要素とを含むことができる。 パーシステンス(Persistence)全てのオブジェクトは、゛°バージ ステント(persistent)”である。すなわち、エンジンが故障し、後 に回復した場合、オブジェクトに対する影響は、一時的に使用できなくなること だけである。 サイズ(Size) 全てのオブジェクトは、オブジェクトが占有する不変な記憶容量である”サイズ (size)”を有しており、オクテツト単位で測定される。 注:オブジェクトのサイズは、ブレイス毎に可変でもよい。 2.2.2 リファレンス(Reference”リファレンス(refere nce) ’“は、オブジェクトが指示又はアクセスされるための手段である。 保z(ProteCted)と 保g (Un rotected)リファレン スには、”保護されている(protected)”ものと、”保護されていな い(unprotected)“ものがある。保護されていないリファレンスは 、オブジェクトを変更することができ、保護されているリファレンスは、オブジ ェクトを変更することができない。また、保護されていないリファレンスは、保 護されるようすることできるが、その逆に、保護されているリファレンスにおい て、その保護を解除することはできない。 1区ユ肛姐■皿し 個々のオブジェクトには、1つ以上のリファレンスが存在する。オブジェクトを 生成するということは、そのオブジェクトへの最初のリファレンスを生成すると いうことである。オブジェクトが不変である場合のみ、リファレンスは保護され る。一方、追加するリファレンスに関しては、保護するか又は保護しないかを必 要に応じて選択して、リファレンスを生成することができる。ソースリファレン スが保護されている場合のみ、その生成されたリファレンスは保護される。 注:多くの定義済みオペレーションは、既存のオブジェクトへの新しいリファレ ンスを生成し、生成したリファレンスをリザルトとしてリターンする。 比較(COIlarison) オブジェクトに対する全ての保護されていないリファレンスは、同等である。 任意のオブジェクトに対する保護されていないリファレンスを用いて行われた変 更は、そのオブジェクトに対して行われた変更である。したがって、実際には、 そのオブジェクトに対する全ての他のリファレンスについて変更が行われる。ま た、オブジェクトに対する全ての保護されたリファレンスも、相互に同等である 。 保護されていないリファレンスと、保護されているリファレンスとは、2つの点 で異なっている。これらの相違点は、リファレンスが指示するオブジェクトのフ ィーチャを要求するために、保護されたリファレンスが用いられる場合に現れる 。第1の相違点として、フィーチャがオブジェクトを変更しようとする場合には 、そのフィーチャはエラーとなり、”リファレンスが保護されている(Rere rence Protected)”ことを示す応答結果が送出される。第2の 相違点として、フィーチャが、オブジェクトのコピーされたものではないプロパ ティの1つへのリファレンスをリターンした場合、そのリファレンスは保護され る。 また、2つのリファレンスが同一のオブジェクトに対するものであるが否がを判 断することができる。 廃棄処理(Discarding) リファレンスが、必要とされなくなった場合には、そのリファレンスを廃棄する 必要がある。オブジェクトへのリファレンスが残存していない場合には、そのオ ブジェクト自身は破壊される。 き力基j」芳W扛止し エンジンは、アペンディックスAに記載された定義によりリファレンスを無効に することができる。無効にされたくボイドされた: voided)リファレン スは、オブジェクトへアクセスしない。エンジンは、スタックに、ボイドされた リファレンスをブツシュするのではなくごReference Void”を送 出する。 2.2.3 クラス(C1asses)”クラス(class)”は、全て同一 のインターフェースと同一のアクションとを有する、クラスのインスタンスであ るオブジェクトのセットを定義する。クラス自身は、潜在的にクラスについてユ ニークである、インターフェースとアクションとを有する。 凰勧μ」肪幽加回し≦≧ゴ主」世旦団血計Lクラスは、”定義済み(プリデファ インド: Predef 1ned)”クラス、又は”ユーザ定義(ユーザデフ ァインド: User−der 1ned) ”クラスの何れがである。定義済 みクラスは、インストラクションセットに組み込まれるものであり、このアペン ディックスにおいて、定義されているものである。また、定義済みクラスは、テ レスクリプトプログラマが利用することができる一種のオブジェクトを示してい る。ユーザ定義クラスは、プログラマによって定義されるもので、インストラク ションセットを特定の目的のために拡張させるものである。 コンクリート(Concrete)とアブストラクト(Abstract)クラ スは、コンクリート(具象的: concrete)なものが、アブストラクト (抽象的: abstract)なものである。”コンクリート”クラスは、イ ンスタンスを持つことができる。またごアブストラクト”クラスは、インスタン スを持つことができないが、アブストラクトクラスのサブクラスは、インスタン スを持つことができるものもある。コンクリートクラス、又はこのクラスと共通 なアクションを有するスーパークラスは、クラスに固有の各フィーチャ、又はク ラスによって継承された各フィーチャを遂行する。 虹迎」企互匡皿と クラス(通常はコンクリートクラス)は、封印(シール:5eal)されること ができる。エンジンは、シールされたクラスがユーザ定義される直接のサブクラ ス(イミディエートサブクラス: immediate 5ubclass)を 持つことを禁止する。ただし、シールされたクラスが定義済みのイミディエート サブクラスを持つことは禁止しない。 クリエーション(Creatio口) コンクリートクラスは、新しいインスタンスを記述する初期パラメータが与えら れると、そのインスタンスを生成することができる。しがし、全てのクラスの全 てのインスタンスが、このようにして生成されるわけではない。残りのインスタ ンスは、最初にこのようにインスタンスを1つ生成し、次に必要に応じてインス タンスのアトリビュートを変更することによって、生成することができる。 コンクリートクラスは、任意のクラスのインスタンスを、そのコンクリートクラ ス自身のインスタンスに変換(コンバート: convert)することができ る・しがし、全てのクラスの全てのインスタンスが、他のクラスのインスタンス に変換可能であるとは限らない。変換のオペレーションであるオペレーション” Convers iOn”の定義と、変換することにより生成されるオブジェク トの性質は、呼び出された2つのクラスに依存する。 互換性(CoIlaLibilit )クラスは、引用されたオブジェクトとし て具体化される。クラスは、他のクラスに対して、以下の種類の変更を行うだけ で前者のインターフェースを後者のインターフェイスから生成することができる 場合にのみ、後方向に互換性を有する。 第1に、フィーチャを付加する。第2に、後者のインターフェースにおいてアト リビュートがリードオンリーである場合、そのアトリビュートのクラスを、サブ クラスにまで狭める。第3に、現存しているオペレーションのアーギュメントの クラスを、スーパークラスまで広げる。第4に、現存するオペレーションのリザ ルトのクラスを、サブクラスまで狭める。 2.2.4 インへりタンス(Inheritance)ネイティブ(Nati ve)とインへリ ンス(lnheri ted)全てのクラス、すなわち定義 済みクラス及びユーザ定義クラスは、”継承(インへりタンス: 1nheri tance)”によって相互に関連付けられている。各クラスは、様々な特性を 有する。一般に、クラスの特性は、そのクラスに対する”固有(ネイティブ:  native)”な特性と、他のクラスから”継承”された特性である。すなわ ち、インへりタンスは、各クラスの特性の遷移の関係である。クラスは、他のク ラスから、後者のクラスに固有な特性だけでなく、後者のクラスに固有な特性も 継承する。上記の説明を少し拡張して説明すると、オブジェクトの固有の特性は 、そのオブジェクトがインスタンスであるクラスに固有の特性である。 インストラクションセットは、クラス間の十分な継承関係を要求する。なお、ク ラスとそれらの関係は簡単な図表によって表される。この図表において、ノード (節)はクラスを表し、ノードの間のアーク(枝)は、それらのノードが表すク ラスの間の継承関係を表している。 サブクラス(Subclass) スーパークラス(SuercIassあるク ラスが他のクラスから直接又は間接的に特性を継承した場合、前者のクラスは、 後者のクラスの”サブクラス(subclass)”であり、後者のクラスは前 者のクラスの”スーパークラス(superc 1ass)“である。また、前 者のクラスが直接的に後者のクラスから特性を継承した場合、前者のクラスは後 者のクラスの”直接のサブクラス(イミディエートサブクラス: 1uedia te 5ubclass)”であり、後者のクラスは前者のクラスの”直接のス ーパークラス(イミディエートスーパークラス:i關ediate 5uper class)”である。また、前者のクラスのインスタンスは、そのクラス及び 複数のスーパークラスの”メンバ(member)”である。 フレーバ(Flavor) いくつかのクラスは、フレーバである。”フレーバ(flavor)”は、以下 に述べるような、ツリー構造を形成する。なお、各フレーバは、コンクリート又 はアブストラクトである。 ツリーのルートは、クラス”object”を表す。基点となる任意のノード( 以下、ソースノードという。)から発してアークをたどって到達した点の各ノー ド(以下、目的点ノードという。)は、そのソースノードが示すフレーバのイミ ディエートサブクラスを表している。したがって、ソースノードは、各々のこの ような目的点ノードが示すフレーバのイミディエートスーパークラスを表す。ま た、1つ以上のアークを次々に移動して到達する各目的点ノードは、そのソース ノードが示すフレーバのサブクラスを表している。上述のように、ソースノード は、各目的点ノードが示すフレーバのスーパークラスを表している。 注:フレーバは、単一の継承を提供する。 ミックスイン(Mix−in) 他の全てのクラスは、ミックスインである。また、クラス” m1x−in″と その0以上のスーパークラス(これらは全てミックスインである。)は、以下に 述べるようにして、第2のツリーを形成する。すなわち、この第2のツリーのル ートは、クラス”m1x−in”である。アークは、ツリーのノードが示すミッ クスイン間の逆継承関係を表す。ミックスインは、アブストラクトである。 注;ミックスインは、多重継承の限定された形式を提供する。 クラスグラフ(C1assGrah) フレーバとミックスインは、指定された図表を形成する。この図表は、次の2つ のステップで形成される。第1ステツプでは、各ミックスインツリーにおけるア ークは、逆継承関係ではなく、継承関係を表すように新しく方向づけられる。 第2ステツプでは、このように変更されれなミックスインツリーは、フレーバツ リー上に重ねられる。 注、?3L数のクラスを包括的に関連づけることによって作られる包括的なりラ ス図表がある。如何なる特定のブレイスにおいても、この図表が表している内容 は、不完全な場合がある。 カノニカルオーダー(Canonical order)1つのクラス、すなわ ち1つのフレーバ又はミックスインと、その1以上のスーパークラス、すなわち その1以上のフレーバやミックスインとは、第3のツリーの道筋の順序である” 正規の順序(canonical order :カノニカルオーダー)″を有 する。 第3のツリーは次のようにして構成される。ルートは、問題のクラスであり、他 のノードは、そのクラスのスーパークラスである。アークは、ミックスインツリ ーと同様に、ツリーのノードが示すクラス間の逆継承関係を表す。 道筋は、そのクラスが定義する縦型の(depth(irst)道筋であり、こ の縦型の道筋において、クラスのイミディエートスーパークラスは、それらの正 規の順序に従って訪問される インターフェース(Interface)とインプリメンテーション(1m I ementation)上述した全てのことは、クラス特性の何れについても、 すなわち、クラスのインターフェースと、それらの実行(インプリメンテーショ ン: 1lp16@2ntation)と、それらの両方との何れについても、 言えることである。このアペンディックスにおいて、このアペンディックスの特 定の部分においてこの2つの特性のどちらが説明されているかは、明確に又は暗 黙の内に説明する。 注:クラスのインターフェースは、頻繁に説明されている。 2.2.5 フィーチャ(Features)”フィーチャ(feature) ”は、オブジェクトの外部から見られる特性である。 フィーチャは、オブジェクトを相互作用させることができる。任意のオブジェク トが他のオブジェクトへのリファレンスを所有していれば、その任意のオブジェ クトは他のオブジェクトのフィーチャを要求することができる。クラスの全ての インスタンスは、そのクラスに固有のインターフェースによって、又はそのクラ スにより継承されたインターフェースによって定義される同一のフィーチャを有 する。 フィーチャは、正しく遂行された場合に”正常終了(succeeds)”とな り、正しく遂行されなかった場合には”異常終了(rails)“どなる。フィ ーチャが異常終了した場合には、例外(エクセプション: exception )が送出される・アトリビュート(Attribute)とオペレーション(O eratiOnフィーチャは、アトリビュート及びオペレーションの2種類に分 類される。 注:どのフィーチャをアトリビュートとし、どのフィーチャをオペレーションと するかは、状況に応じて任意に決定してよい。 紅印」)且■旺L クラスは、固有なフィーチャ又は継承されたフィーチャを封印(シール:5ea l)することができる。これにより、ユーザ定義されたサブクラスによるフィー チャの実行は禁止される。ただし、定義済みサブクラスによるフィーチャの実行 は禁止されない。 行(1m Iementation) クラスは、スーパークラスによってシールされていない固有のフィーチャ又は継 承されたフィーチャを実行(インプリメンテーション: implementa tion)することができる。そのクラスに対するスーパークラスが存在し、そ のクラスが継承されたフィーチャを実行する場合、そのクラスにおける実行は、 スーパークラスにおける実行に代わるものである。 アクセス(Access) エンジンは、フィーチャへのアクセスを制御する。フィーチャのアクセスは、フ ィーチャを使用することができるオブジェクトを定義する。そのフィーチャのア クセスは、以下に述べる何れかに該当する。 バブリノ (ublic) 如何なるオブジェクトもこのフィーチャを遂行することができる。 プライベート (rivate) このフィーチャを有するオブジェクトのみが遂行することができる。 システム(sstem) エンジンのみが、このフィーチャを遂行することができる。なお、このフィーチ ャは、定義済みである 2、2.6 アトリビュート (Attributes)”アトリビュート(A ttribute)″は、オブジェクトである。そして、アトリビュートは、あ るオブジェクト、すなわち”要求側(リクエスタ+ requester)”が 、別のオブジェクト又は同一のオブジェクト、すなわち”応答側(レスポンダr esponder)”に対して、取得するように、そして場合によっては設定す るように、要求することができる特性である。なお、設定されることがでいない アトリビュートは、”リードオンリ(read−only)”である。 ”αGeじと”αSet″ アトリビュートがリードオンリの場合は、アトリビュートは、どちらか一方のオ ペレーションに相当し、アトリビュートがリードオンリでない場合は、アトリビ ュートは、両方のオペレーションに相当する。“αGet”として表される第1 のオペレーションは、アトリビュートを取得する。その第1のオペレーションは 、アーギュメントを持たず、そのリザルトはアトリビュートである。 また、”αSet”として表される第2のオペレーションは、アトリビュートを ある特定のオブジェクトに置き換えて設定する。オペレーション“αSet”の アーギュメントは、このオブジェクトであり、このオペレーションは、リザルト を持たない。 手動(Manual)と自動(AutoIIlatic)クラスは、アトリビュ ートを手動的又は自動的に実行することができる。ただし、クラスがアブストラ クトである場合は、全く実行できない。アトリビュートを゛手動的(Manua l ly)”に実行することは、”αGetHのメソッドと、(そのアトリビュ ートが設定可能であれば)”αSet”のメソッドとを供与することである。 一方、アトリビュートを”自動的(Automatically) ”に実行す ると言うことは、アトリビュートが自動的に実行されるようにエンジンに制御さ せることである。 この場合、アトリビュートはインスタンスアトリビュートであり、クラスはコン クリートであり、そのクラスもそのスーパークラスもそのアトリビュートを実行 しない。エンジンは、同一の識別子のプロパティを伴って、アトリビュートを遂 行する。 インストラクションセットは、アーギュメントがアトリビュートの識別子(α” °)である内部オペレーション、” getAttribuLe’及び°’ 5 etAttribute”の助けを借りて、それぞれアトリビュートの取得及び 設定を定義する。 これらの2つのオペレーションは、アトリビュートが自動的に実行されてllす る場合は、そのアトリビュートに関連したプロパティを取得及び設定し、その他 の場合、すなわちアトリビュートが手動的に実行されている場合は、°°αGe t“及び”αSet”の各オペレーションにについて、ユーザ定義されたメソッ ド実行する。同様にアトリビュートの手動的又は自動的な実行は、オペレーショ ンの実行の位置を決める実行モデルのアルゴリズムを使用して、位置決めされる 。 格納位it (Stora e Location)リードオンリでないアトリ ビュートは、デフォルトでは”ストレージロケーション(Strage Loc ation)”として挙動する。すなわち、オペレーション”αGet°°は、 オペレーション′°αSet”のアーギュメントとして正常1こ供給された最新 のオブジェクトをリターンする。このデフォルトでの挙動に対するエクセプショ ンは、特定のアトリビュートの散文的な記述において、呼び出される。 注 すなわち、デフォルトでの挙動を示すアトリビュートが、クラス”Dict i。 nary”のメンバであるように制約され、クラス′°DictionarV” のサブクラスのインスタンスが、オペレーション′°αSet”に供給される場 合、オペレーション”αGet”は、クラス°’ Dictionary”のイ ンスタンスではなく、そのサブクラスのインスタンスをリターンする。 注:リードオンリである全ての定義済みアトリビュートは、デフォルトでの起動 を示す。 2.2.7 オペレーション(Operations)オペレーションは、ある オブジェクト、すなわちリクエスタ力で、他のオブジェクト又は同一のオブジェ クト、すなわちレスポンダ(こ対して実行するよう(こ要求することのできるタ スクである。 アーギュメント(ArumentS) リクエスタは、オペレーションの”アーギュメント(arguments) ” である0以上のオブジェクトをレスポンダに供給する。オペレーションは、オペ レーションのアーギュメントの数力呵変であるか、又は固定されているかを判断 し、アーギュメントの数が固定されている場合には、どのように各アーギュメン トが制約されるかを定める。 注:アーギュメントの数が可変である場合には、何れもマークとはならなIll 。 注:定義済みのオペレーションでは、オペレーション”1nitialize” ごmakeClasseS”ご5elect” 、 ” new”が、可変数の アーギュメントを必要とし、その他のオペレーションは、可変数のアーギュメン トを必要としな(N、。 リザルト (Resu l t) オペレーションが正常終了した場合、レスポンダは、オプションとして、1ノク エスタに対して単一のオブジェクト、すなわちオペレーションの”結果(1ノザ Jレト: resu l t)”を、供給することができる。オペレーション( よ、1ノザルトの有るか否かを判断し、リザルトがある場合には、それがどのよ うに制約されて0る力1を判断する 2、2.8 エクセプション(exception)”エクセプション(exc eption)”は、フィーチャーのメ・ノットの遂行の異常終了を示すオブジ ェクトである。より具体的には、メソッドのプロシージャiこおIする項目(ア イテム: 1te11)である、実行されたオブジェクトの1つの実行の異常終 了を示すオブジェクトである。 フィーチャは、レスポンダが、フィーチャが正常終了した場合にリターンするリ ザルトの代わって、エクセプションを”送出(throws)”した場合に、異 常終了となる。フィーチャのりクエスタがエクセプションに対して応答すること を望む場合、リクエスタは、そのエクセブションを”受信(キャッチ: cat ches)”する。その他の場合、エンジンは、エクセブションを“伝送(pr opagates) ”させる。すなわち、エンジンは、リクエスタにエクセプ ションを送出させる。 旦二ヱ、9:レノ」」6Cムとぶ!臣匡虹吐L”コンストレイント(const raint)”は、コンストレイントの”対象(サブジェクト: 5ubjec ts) ”である他のオブジェクトにおける制限を定義する。可能な制限は、サ ブジェクトがメンバであるクラスの識別子と、サブジェクトがそのクラスのイン スタンスであるが否がと、そのサブジェクトがニル(0)であることが許容され るか否がと、既に述べたにもがかわらずそのクラスと、サブジェクトのパッセー ジ(Passage)とである。 パッセージ(Passae オブジェクトは、どのようにソース(転送元: 5ource)リファレンスが デスティネーション(目的地: destination)リファレンスを判断 するかを定める幾つかの異なった方法にうちのどれかに基づいて、フィーチャの りクエスタとレスポンダ間で送受信されることができる。ここで、ソースリファ レンスは、オブジェクトのソースがエンジンに伝え、デスティネーションリファ レンスは、エンジンがオブジェクトのデスティネーションに伝える。 オブジェクトのパッセージは、以下の識別子の−っである。 披堡」 デスティネーションリファレンスは、ソースリファレンスである。 デスティネーションリファレンスは、ソースリファレンスである。しかし、ソー スリファレンスが保護されている場合、エンジンはごReference Pr otected”を送出する。 髄な匹匹印皿旺 デスティネーションリファレンスは、ソースリファレンスがアクセスを与えるオ ブジェクトへの保護されたリファレンスである。 ■包歴 デスティネーションリファレンスは、デスティネーションリファレンスがアクセ スを与えるオブジェクトのコピーへの保護されていないリファレンスである。 エンジンは、この目的のためのみにコピーを作成する。コピーは、プロセスの場 合は、オブジェクトのデスティネーションにより所有され、その他の場合は、オ ブジェクトのデスティネーションのオーナーにより所有される。 旦ニュー10 −;ケ狂とF(ふロ把工臘しオブジェクトは、0以上のプロパテ ィを有する。プロパティ自身もオブジェクトである。、1つの”プロパティ ( property)″は、オブジェクトの内部状態の要素の1つであり、オブジ ェクトのプロパティは全体として、全内部状態を構成する。オブジェクトのプロ パティは、オブジェクトに対して内部的である。したがって、プロパティは、そ のオブジェクトだけによって、直接に感知、検査又は変更することができる。 オブジェクトのプロパティは、クラスによって区分される。0以上のプロパティ は、オブジェクトのクラスに対して固有であり、0以上のプロパティは、そのク ラスのインプリメンテーションスーパークラスに対して固有である。 プロパティは、そのプロパティが固有であるクラスのメソッドによって、直接に 感知、検査又は変更することができる。一方、そのプロパティが固有でない他の クラスのメソッドによっては、たとえそのクラスのサブクラスやスーパークラス であっても、直接に感知、検査又は変更することができない。 2.2.11 コピー(co) オブジェクトは、コピーされることができる。あるオブジェクトの”コピー(c opy) ”は、別のオブジェクトである。この別のオブジェクトは、一般的に 、保護されたリファレンスがコピーを作成するために使用されたとしても、オペ レーション°” issame”による場合以外は、或いはそのコピーが変更さ れた場合以外は、コピー元のオブジェクトから区別することはできない。 一般に、少なくとも最初は、コピーは、コピー元そのものであるオリジナルと同 等(イコール)になる。ここでご同等”の意味は、オリジナルがメンバであるク ラスに依存するということである。クラスとコピーが不変である場合、コピーと オリジナルはいつまでも同等のままである。その他の場合は、コピーとオリジナ ルは、互いに独立となるように、互いに異なるものとなることができる。 コピーは、オペレーション”copy”を用いることにより生成される。エンジ ンは、オリジナルの各プロパティのオペレーション”Copy”を要求すること によってコピーを作成する。しかし、エンジンがこの目的のために既にコピーし たことのあるオブジェクトへのリファレンスがプロパティであることを見いだし た場合には、エンジンは、そのオブジェクトの第2のコピーを生成せず、第1の コピーへのリファレンスを使用する。 2.2.12 オブジェクトの初期化 1nitialize)オブジェクトの 生成には、オブジェクトの初期化(イニシャライズ: 1nitialize) が必要である。オペレーション゛’ 1nitialize”についてのメソッ ドは、生成されたオブジェクトがメンバであるクラスに対して固有であることが できる。このメソッドは、そのクラスに対して固有のオブジェクトのプロパティ を初期化する。 エンジンがオペレーション°’ 1nitialize”のメソッドを要求する 前に、エンジンは、そのメソッド自体が固有であるクラスに固有のプロパティを ニル(0)に設定する。 初期化の順序(Initialization 0rder)オペレーション” 1nitialize”についての各メソッドは、そのメソッドが責任を持って いるプロパティをイニシャライズした後に、オペレーションをニスカレートする 。これにより、他のメソッドが同じことを行うようにすることができる。 メソッドが、オペレーションをニスカレートすることなく正常終了した場合、エ ンジンは、そのメソッドについて同じことを行う。ニスカレーション(esca lation)のプロセスは、生成されたオブジェクトのクラスと、そのクラス のインプリメンテーションスーパークラスとを、正規の順序で訪問する。 初期化パラメータ(Initialization Parameters)ク ラスの7初期化パラメータ(initialization paramete rs) ”は、そのクラスに固有のオペレーション”1nitialize”に ついてのメソッドが、そのオペレーションを遂行のために要求するオブジェクト である。クラスがミックスインである場合、そのクラスは、パラメータを選択す ることによって、そのクラス自身のために、処理を行う。また、クラスがフレー バである場合、そのクラス自身及びそのインプリメンテーションスーパークラス のために、同様に、処理を行う。ニスカレーションにおいて、オペレーション° ’ 1nitialize”についてのクラスのメソッドは、正規の順序で続く クラスのパラメータが、スタック上に、トップのマークの上に存在することを、 保証している。全てのクラスについてのメソッドが実行された後、パラメータが スタックに残っている場合、クラス”object”は、エクセプションを送出 する。 L部し41口」且固]鮎唄ビニ紅1匹ムオペレーション゛’ 1nitiali ze”のメソッドは、ニスカレーションの前ではなく、ニスカレーションの後に 、生成されたオブジェクトのフィーチャを使用することができる。このときも、 オブジェクトは、オブジェクトがインスタンスであるクラスではなく、メソッド が固有であるクラスのインスタンスであるかのように応答する。メソッドは、い つでも、他のオブジェクトのフィーチャを使用することができる。 2.2.13 オブジェクトの最終化(Object Finalizatio n)オブジェクトが破壊されると、そのオブジェクトは最終化(ファイナリゼー ション: final 1zation)を迎える。オペレーション°’ fi nalize”のメソッドは、破壊されたオブジェクトがメンバであるどのクラ スにも固有であることができる。 このメソッドは、そのクラスに対して固有のオブジェクトのプロパティを終了さ せる。オペレーション”finalize”は、オプションとして、そのオペレ ーションが終了させるプロパティを破壊することができる。ただし、オペレーシ ョン”「1nalize”がプロパティを破壊しない場合には、エンジンがプロ パティを破壊することとなる。 最終化の順序(Finalization order)オペレーション”fi nalize”のメソッドは、オペレーションをニスカレートしない。エンジン は、破壊されたオブジェクトのクラス及びそのインプリメンテーションスーパー クラスを正規の順序でアクセスして、他のメソッドが正常終了しているか否にか かわらず各メソッドを遂行する。 2.2.14 クラスの構’ (Class construction)イン ストラクションセットは、多くのコンピューター言語とは異なり、オペレーショ ン”makec 1ass”により、実行中にクラスを生成することができる。 また、クラスは、クラスのインターフェースとクラスのインプリメンテーション とを定義するクラス定義に基づいて生成される。 朧廻土9ガイ2!ユ2り!(1)顯珪圧迫り肛己胆組しクラスのインターフェー ス又はインプリメンテーションは、典型的には、そのインターフェース又はイン プリメンテーションが識別子によって指定する他のクラスに依存する。サイテシ ョンは、このインターフェース又はインプリメンテーションのアトリビュート° ’ vocabulary”の助けを借りて、このような識別子に束縛(バイン ド: bind)される。 識別子が、定義済みクラスの識別子に等しい場合には、そのサイテションはその クラスのものである。その他の場合、識別子が、アトリビュート″vocabu  1ary”にあるキーと等しいときは、そのサイテションは、そのキーに関連 づけられた値に等しい。上述した以外の場合には、サイテションのアトリビュー ト”title’がそのクラスの識別子に等しいことを除いて、サイテションは 、構成されたクラスのサイテションに等しい。 注′インストラクションセットは、定義済みクラスの割り当てられたサイテショ ンを定義しない。 サイテションのパインディング(Citation Bindins)クラスは 、現在のプロセス及び現在のブレイスのアトリビュート“privatecIa sses”及び°’ publiccIasses”の助けを借りて、サイテシ ョンに結合(バインド:bind)される。引用された(サイテッド: ci  ted)クラスが、定義済みクラスである場合、引用されたクラスはエンジンに 検出される。また、引用されたクラスがユーザ定義クラスである場合、そのクラ スは、先ず、現在のプロセスのアトリビュート” privatecIasse s”を用いて検索され、見つからなければ、次に、現在のブレイスのアトリビュ ート”publ 1cclasses”を用いて検索される。ただし、この検索 では、検出されない場合もある。ここで、引用されたクラスは、引用されたクラ スに対して後方向に互換性を有するものならば、どのようなりラスでもよい。 クラスは、2回に1回の割合で、サイテションにバインドされる。クラスの識別 子がプロシージャのアイテムである場合は、識別子が実行されている時はいつ2 .3 実行モデル(Execution Model)インストラクションセッ トは、このセクションで定義する″実行モデル(execution mode l) ”を実現する。 2.3.1 メソッド(method)メソッドは、各々の遂行の動的状態を別 々に保持することのできるプロシージャである。この動的状態は、1つのフレー ムの形状をとる。オペレーションと、置換と、選択されたアトリビュートとを遂 行するために、メソッドが使用される。 フレーム(Frame) ゛フレーム(rrame)”は、スタックと、0以上の変数を含む。”変数(v ariable)“は、変数自身がオブジェクトであり、フレームのメソッドの 特定の遂行の動的状態の1つの要素である。また、変数は、フレームのプロパテ ィの全てが、スタックと共に集められ、全動的状態を構成する。フレームのスタ ック、及び変数は、そのフレームに対して内部的である。したがって、フレーム のメソッドのみにより、直接に感知、検査及び変更することができる。フレーム 自身は、全く操作されない。 遂行(Per4ormance) メソッドを”遂行(paform)”するということは、1つのフレームを生成 し、フレームのスタックの初期のアイテムとしてオブジェクトの申し出を受け取 り、フレームの変数をニル(0)に設定し、メソッドのプロシージャを実行し、 フレームを廃棄し、そして、プロシージャが成功した場合のみ、フレームの廃棄 前にスタックからポツプしている、フレームの最終的なアイテムを提供するとい うことである。ここで、プロシージャが正常終了した場合に、メソッドの遂行は 正常終了となり、プロシージャが異常終了した場合に、メソッドの遂行は異常終 了となる。 如何なる場合においてもご現在のメソッド(カレントメソッド: curren t ■ethod)”は、現在遂行中のメソッドでありご現在のフレーム(カレ ントフレーム: current frame)”は、その遂行のために生成さ れたフレームである。また、”現在のスタック(current 5tack)  ” 、すなわち”そのスタック(the 5tack)”は、現在のフレーム のスタックである。 注:メソッドが、オペレーションを遂行する場合、スタックの初期のアイテムと して供給されたオブジェクトがアーギュメントであり、最終的なアイテムとして 供給されたオブジェクトのうち最も上方にあるものが、もしあるならば、リザル トである。これらの2つの事象の間で、スタックは、最初にアーギュメントを保 持し、次にメソッドが要求するオペレーションのリザルトが存在すれば、そのリ ザルトを保持する。オペレーションの終了時に、スタックの最も上方にあるアイ テム以外のアイテムが存在した場合、そのアイテムは、オペレージ目ンの中間ス テップを実行するオペレーションの遂行の間に、使用されるオブジェクトである 。 2.3.2 プロシージャ(rocedures)”プロシージャ(proce dure) ”は、プロシージャのブロノ(ティlこ含まれな0、より基本的な プロシージャの一部分、すなわち、プロシージャの”アイテム”である0以上の 実行オブジェクトを含む。これらのアイテムは、範囲[1,nコlこよって番号 付けされる。ここでごn”は、プロシージャの”レングス(length)”を 示している。プロシージャは、レングスが0の場合は、クリアされる。アイテム の番号は、プロシージャ中のポジションを示している。”サブプロシージャ(s ubprocedure)”は、一つのプロシージャ内の隣接したポジションに ある0以上のアイテムを含む。 遂行(errOrmanCe) プロシージャを1遂行(perform) ”することは、現在のフレーム中に おいて、ポジションが示す順に順次そのアイテムを実行することである。プロシ ージャの遂行は、各アイテムが正常終了のうち、に実行される場合は、′正常終 了(succeed)”となり、その他の場合は、“異常終了(fai Is) ”となる。何れかのアイテムが異常終了した場合には、残りのアイテムは実行さ れない。なお、”正常終了する”は、”成功のうちの終了する”や”成功に終わ る”と表現するときもあり、”異常終了”は、”失敗のうちの終了する゛や′° 失敗に終わる”と表現するときもある。 2.3.3 エグゼキューティドオブジェクト(Executed Ob’ec t)”実行オブジェクト(エグゼキューティドオブジェクト: execute d object)”は、プロシージャの1つのアイテムとして許可される。 遂行(Prformance) プロシージャ以外のエグゼキューティドオブジェクトを”遂行(perfor■ )”することは、そのオブジェクトを実行することである。 来且」!萱!願rn) エグゼキューティドオブジェクトを“実行(execute) ”することは、 エグゼキューティドオブジェクトが、識別子であるか、モディファイヤであるか 、セレクタであるか、又は他の何かであるか、ということに依存して実行するこ とである。 エンジンがエクセプションを送出した場合、その実行は”異常終了(fai I s)”であり、その他の場合、その実行は”正常終了(succeed)”であ る。 識別子、モディファイ旭又はセレクタ以外の如何なるエグゼキ云−テイドオブジ ェクトは、エグゼキューティドオブジェクトへの保護されたリファレンスをスタ ックにブツシュすることによって、実行される。 注:上記の問題のエグゼキューティドオブジェクトは、ビット、ビットストリン グブーリアン、キャラクタ、インチジャ、マーク、オクテツト、オクテツトスト リング、プロシージャ、実数、及び、ストリングである。 2.3.4 l (identifier)特定のクラス、フィーチャ、プロパ ティ、又は変数は、インストラクションセット内のその他の構成やオブジェクト と同様に、識別子によって示される。 識別子(Identifiers) ”識別子(Identifier)”は、レングスが1以上のストリングである 、その識別子の゛°テキスト(textじを用いて、その範囲内において、ある オブジェクトと他のオブジェクトを区別する。 資格識り子(Qualified Identifier)”有資格識別子(q ualified 1dentifier)−は、フィーチャの0以上のインプ リメンテーションを、同一のフィーチャの0以上の他のインプリメンテーション から識別する。有資格識別子は、その有資格識別子のテキストを用いて、フィー チャを示す。さらに、有資格識別子は、有資格識別子の”クエリファイヤ(qu alifier)”である、クラスの識別子のテキストを用いて、クラスに固有 の又は継承されたインプリメンテーションを示す。 弧1ぶ函浬と 同一の範囲(スコープ: 5cope)を持っている2つの識別子は、同一では ない。 212」旦I担L インプリメンテーション又はインターフェースによって引用されたクラスは、そ の範囲がそのインプリメンテーション又はインターフェイスによって引用された 全てのクラスにわたる識別子によって、示される。 フィーチャ(Feature) オブジェクトのフィーチャは、その範囲が全てのフィーチャーにわたる識別子に よって示される。ここで、オブジェクトのフィーチャーは、オブジェクトがイン スタンスであるクラスに対して固有であるフィーチャー、又はオブジェクトがイ ンスタンスあるクラスによって継承されたフィーチャーの何れがである・プロパ ティ(Procrt) オブジェクトのプロパティは、対象となるプロパティ自身が固有であるクラスに 対して固有である全てのプロパティを範囲とする識別子によって示される。 !裟」亘■薊1e) フレームの変数は、その範囲が全ての変数にわたる識別子によって示される。 ここで、変数は、そのフレームがその遂行に属しているメソッドによって定義さ れるものである。 シンタックス(Syntax) テキスト又はクエリファイヤは、表A、1に示すキャラクタを除くものとする。 (以下、余白。) (以下、余白。) テキスト又はクエリファイヤの最初のキャラクタは、表A、1に示したものと同 様に、表A、2に示すキャラクタを除くものとする。 注、1つのプログラムがハイテレスクリプトである場合、テキストの最初の文2 .3.5 静的な置換の規則(Static 5ubstitution Ru 1es)プロシージャは、表A、3に示すような置換が行われたように遂行され る。プロシージャにおいて、第1行のサブプロシージャが現れた場合はいつも、 第2行の同じ列のサブプロシージャは、第1列目で検出されたサブプロシージャ に置き換えられる。 表A、3は、テレスクリプトを定義するために用いられたノンターミナルを用い る各サブプロシージャを定義する。この表A、3の第1セクシヨンにおいて、゛ °識別子(Identifier)”は、それ自身又は”Q識別子(Q Ide nt i f 1er)”を示す。 また、第2セクシヨンにおいて、°゛識別子(ldenti f 1er)”は 、それ自身のみを示す。 (以下、余白。) 1この置換は、識別子が、オペレーション”protect”のものでも、オペ レーション” ver”のものでもない場合のみ、適応される。 2この置換は、同一のものである。 表A、3又は後述する表A、4に示した以外のサブプロシージャにおいて定めら たモディファイアを有するプロシージャの生成がめらな場合には、エンジンはエ クセプションを送出する。 アペンディックスAのセクション3.2.12において説明される内部的なオペ レーションは、表A、3又は表A、4に示した置換のうち1つを結果として要求 された場合にだけ、正常終了となる。その他の場合には、内部オペレーションは 、アクセスすることができない。 2.3.6 的な置 の I (D namic 5ubstitution  Ru1esプロシージヤは、表A、4に示す置換が行われたように遂行される。 表A、4において、”識別子(Identifier) ”は、それ自身又は″ Q識別子(Qldentifier)”を示す。 2この同一の置換は、それが注1のものではない場合のみ、すなわち識別子がア トリビュートを示していない場合に、適応される。 2.3.7 セレクタの実行(selector Execution)”セレ クタ(selector)”は、特定の実行効果を達成する。セレクタは、次の ように実行される。 ブレーク(break) オペレーション“1oop”、”repeat″、”while″を終了させる 。どのオペレーションも遂行されていない場合には、”Loop Missin g”が送出される。 クライアント(client) 現在のクライアントへの保護されて、いないリファレンスを、スタックにブツシ ュする。ここで、リクエスタがエンジン自身でない場合、例えば、フィーチャの アクセスが”システム(system) ”である場合、”現在のクライアント (カレントクライアント:current client)”は、現在のメソッ ドが実行(インプリメント: implement)としているフィーチャを要 求しているオブジェクトである。その他の場合、現在のクライアントは、ニル( 0)である。 継M(continue) オペレーション”1oop”、“repeat’ 、” while” の何れ かのオペレーションが遂行されている場合、その次の遂行を開始させる。何れの オペレーションも遂行されていない場合は、”Loop MiSSiflg”が 送出される。 ニスカレー) (escalate) 現在のメソッドが遂行するオペレーションのための識別子を、これらのエクセプ ションとともに、実行することと同様である。メソッドの選択の前に、エンジン は、リクエスタがレスポンダでない場合には、” Escalation In varid”を送出する。メソッドの選択の間、エンジンは、現在のメソッドが 固有であるクラスを無視する。オペレーションは、ニスカレートされている。 現在のブレイスに対する保護されていないリファレンスを、スタックにブツシュ する。”現在のブレイス(current process)”とは、現在のプ ロセスがエンジンブレイスでない場合には、現在のブレイスが占有されているブ レイスのことであり、その他の場合には、ニル(0)である。 プロセス(rocess) 現在のプロセスに対する保護されていないリファレンスを、スタックにブツシュ する。”現在のプロセス(current process) ”とは、現在の メソッドの遂行が動的にプロセスの一部となっているプロセスのことである。 セルフ(selF) 現在のオブジェクトに対するリファレンスをスタックにブツシュする。”現在の オブジェクト(current object)”とは、現在のメソッドを遂行 してし)るオブジェクトのことである。保護されたリファレンスが現在のメソッ ドの遂行を要求するために用いられた場合にのみ、リファレンスは保護される。 残りのアイテムを実行させること無しに、現在のメソッドを終了させる。アトリ ビュート又はオペレーションのリザルトがある場合には、そのリザルトは、スタ ック上にある。 2.3.8 モディファイヤの実行(Modifier Execution) モディファイアは、プロシージャにおいて、モディファイアに続くアイテムの実 行を変更する。様々なモディファイアの実行が置換規則に定められて(Aる。置 換規則が関与しないモディファイヤは、次のように実行される。 デマルケイト(demarcate) 以下の識別子又は有資格識別子が、変更を伴って実行されるようにする。スタッ クがマークを含まない場合、エンジンは、”Mark Missing”を送出 する。識別子が示すオペレーションによって要求されるアーギュメントの数が固 定されており、その数がマークよりも上方のオブジェクトの数より少ない場合、 エンジンは、”Argument Invalid”を送出する。その他の場合 において、アーギュメントの数が固定されていてマークよりも上方のオブジェク トの数より多いとき、エンジンは、スタック内のそのマークと供給されたオブジ ェクトの間に、足りないアーギュメントの分だけニル(0)を挿入する。エンジ ンは、このとき、スタックからマークを取り除く。また、エンジンは、オペレー ションが正常終了してはいるがリザルトを返さない場合には、リクエスタに対し て、正常終了を示すリザルトの代りにニル(0)をリターンする。 メンジョン(mention) ”メンジョン(mention)”モディファイアに続くオブジェクトの実行を 回避し、代りにスタックにそのオブジェクトに対する保護されたリファレンスを ブツシュする。 ニーススタンク(useStack) 次のオブジェクトを実行する前に、スタック自身に対するリファレンスをスタッ クにブツシュする。 2.3.9 識別子の実行(Identfier Execution)クラス 、アトリビュート、プロパティ、又は変数のための識別子の実行は、表A、3及 び表A、4に示した置換規則によって定められている。 識別子(Iden tf 1er) 置換規則が関与しない識別子、すなわちオペレーションのための識別子は、次の ようにして実行される。 スタックがクリアされている場合には、レスポンダがスタックのトップにあった ため、エンジンは”Re5ponder Missing“を送出する。レスポ ンダが識別子の示すオペレーションを持たない場合、又はリクエスタがオペレー ションへのアクセスを持たない場合には、エンジンは”Feature Una vailable”を送出する。上述゛した以外の場合には、エンジンは、以下 のセクションで述べるように、オペレーションのためのメソッドを選択し遂行す る。 有 格識別子(Qualified Identfier)オペレーションのた めの有資格識別子は、有資格識別子ではない識別子と同じように、これらのエク セプションを伴って実行される。 メソッドの選択前に、リクエスタがレスポンダでない場合、エンジンは”Esc alation Invalid”を送出する。これ以外の場合、エンジンはオ ペレーションngetclass”を要求する。そして、そのオペレーションの リザルトが、現在のメソッドが固有のクラスでも、その直接のインプリメンテー ションスーパークラスでもない場合には、エンジンは、” Escalatio n Invalid”を送出する。ここで、オペレーション’ getclas s”のアーギュメントは、テキストがクエリファイヤである識別子である。 メソッドの選択の間、エンジンは、それ自身を、オペレーション″getcIa ss”のリザルトとそのインプリメンテーションスーパークラスに制限する。こ のとき、そのオペレーションは、ニスカレートされている。 2.3.10 メソッドの択(Method 5election)エンジンは 、下記に示す4つについて、この順に順次検索することにより検出された最初の メソッドを、オペレーションのために選択する。 ・レスポンダがクラスであれば、そのクラスメソッド。 ・レスポンダがクラスであれば、正規の順序で探索されるインプリメンテーショ ンスーパークラスのクラスメソッド。 ・レスポンダのクラスのインスタンスメソッド。 ・正規の順序で探索される、レスポンダのクラスのインプリメンテーションスー パークラスのインスタンスメソッド。 メソッドがオペレーションをニスカレートする場合、エンジンは、既に選択され たメソッドが固有であるクラスの後に検索を再開して、他のメソッドの選択を試 みる。エンジンが、何れのメソッドをも見出さなかった場合、エンジンは、”E scalation Invalid”を送出する。 2.3.11 メソッドの遂行(Method Par4or@ance)エン ジンは、オペレーションのために選択したメソッドを次のように遂行する。 固定数のアーギュメント(Ar uments Fixed in Nua+b erオペレーションが、数が一定のアーギュメント、すなわち固定数のアーギュ メントを必要とする場合において、スタックのレングスがその固定数に1を加え たものよりも少ない場合、エンジンは”Argument Missing”を 送出する。また、アーギュメントがアーギュメントのコンストレイントを侵害し ている場合、エンジンは” Argument Invalid”を送出する。 可変数のアーギュメント(Ar uments Variable in Nu a+ber)オペレーションが、数が変化するアーギュメント、すなわち可変数 のアーギュメントを必要とする場合において、スタックがマークを含まない場合 、エンジンハ” Mark Missing”を送出する。また、アーギュメン トがアーギュメントのコンストレイントを侵害している場合、エンジンは°’  Argua+ent Invalid”を送出する。 湛亘」シ」回l罪≧し エンジンは、スタックからレスポンダをポンプし、メソッドの遂行のためのフレ ームを生成し、そのメソッドを遂行し、そして、フレームを廃棄する。 以下に述べるアクションが、メソッドの遂行に伴って行われる。エンジンは、オ ペレーションのアーギュメントをリクエスタのスタックからレスポンダのスタッ クに移動して、アーギュメントを供給する。アーギュメントの数が可変の場合、 マークもアーギュメントと同様に供給される。エンジンは、オペレーションのリ ザルトが有る場合は、そのオペレーションのリザルトの提供を受けて、それをレ スポンダのスタックからりクエスタのスタックに移動させる。 サクセス(Success) メソッドが正常終了し、且つオペレーションがリザルトを生成しようとした場合 、エンジンは以下のことを行う。オペレーションでリザルトが生成されなかった 場合、エンジンは”’ Re5ult Missing”を送出する。リザルト がそのリザルトのコンストレイントを満たさなかった場合、エンジンは°’ R e5ult Jnvarid”を送出する。これらのエクセプションは、以下に 述べるように取り扱われる。 失敗(Fai 1ure) メソッドが異常終了し、且つオペレーションが送出するべきエクセブションを送 出しようとしなかった場合、エンジンは、そのエクセブションを”UneXI) eCtedException’に置き換える。 2.4 プロセスモデル(Process Model)インストラクションセ ットは、本セクションが定義する゛°プロセスモデル(process mod el) ”を実現する。 2.4.1 プロセス(Processes)゛°プロセス(process) ”は、名前が付けられた自律的な処理である。また、プロセスは、マルチタスク のためのインストラクションセットの規則を構成する。 注:プロセスは、しばしば、実世界の何かに相当する。例えば、ネットワークに おいて、プロセスは、目的を促進しようと努めている人に相当する。 注:プロセスには、エージェントとブレイスの2種類がある。 相互作用(Interaction) あ・るプロセスが他のプロセスに対するリファレンスを持つ場合、それぞれのフ ィーチャを用いて、2つのオブジェクトが相互作用するのと同じように、これら のプロセスは、相互作用することができる。このようなフィーチャの各アーギュ メント又はリザルトは、オブジェクトへのリファレンス、又はオブジェクトのコ ピーへのリファレンスを、一方のプロセスが他方のプロセスに伝達することがで きる。 2.4.2 7エーズ(Phases)プロセスは、複数の段階(フェーズ:  phases)を経る。エンジンの要求により、このとき見込みのあるプロセス は、オペレーション”1nitialize”を正常に遂行する。また、エンジ ンの要求により、そのプロセスは、オペレーション”14ve’を正常に遂行す る。ここで、このオペレーションのアーギュメントとしてニル(0)が供給され る。また、エンジンの要求により、そのプロセスは、オペレーション“fina lize”を遂行する。 エクセプション(EXcetIons)上述した各段階における通常の進行状態 は、中断されることがある。オペレーション”1nitialtze”がエクセ プションを送出した場合、エンジンはそのプロセスを終了させる。オペレーショ ン”1ive”がエクセブションを送出した場合、プロセスが保持するパーミツ トが許可するときは、オペレーション”1ive”を再び要求することによりプ ロセスを再始動し、その他のときには、オペレージロン“finalize”を 要求する。オペレーション”finalize”がエクセブションを送出した場 合、エンジンは、プロセスを終了させる。 プロセスが上述した各段階の何れかで、固有のパーミツト(ネイティブパーミツ ト: native permit)又は局地的なパーミツト(ローカルパーミ ツト: 1ocal pe「園it)を使い尽くした場合には、プロセスが”P ermit Exhausted”を送出したのような状態となる。 2.4.3 スレッド(丁hreads)各プロセスは、独立した実行スレッド を生じさせる。この実行スレッドはいつでも、プロセスの主導のもとで遂行され ているメソッドのフレームを含んでいる。 第1のメソッドは、プロセス自身がオペレーション”1ive”のために供給す るものである。第2のメソッドは、オペレーション”1ive“のメソッドがオ ブジェクトに要求するフィーチャーのためにオブジェクトが供給するものである 。そして、これ以降も同様に行われる。 スケジューリング(SChedulin)エンジンは、ブロック化されていない 全ての実行スレッド、例えば所定の時間まで待機している全ての実行スレッドを スケジュールし、必要があれば優先順位に従って実行スレッドを切り換える。、 ここで、ブロック化されていな11)実行スレッド全てが等しければ、エンジン は、あるオーソリティのプロセスを他のオーソリティのプロセスに対して優先さ せたり、あるブランドのプロセスを他のブランドのプロセスに対して優先させた り、同一のプライオリティのプロセスのどちらかを他のプロセスに優先させたり することはない。 中断(Inte「「utlon) エンジン自身がオブジェクトのフィーチャを要求するとき、すなわちシステムフ ィーチャのとき、そのフィーチャのメソッドは、オブジェクトのオーナーのスレ ッドの一部分として遂行される。オーナーは、結果として、この目的のために中 断される。 2.4.4 リソース(Resouces)”リソース(resouse) ’ は、特定のプロシージャの遂行を通して、プロセスに対して保証を作り出すこと のできるものである。エンジンは、リソースがこのような保証を作り出すことが できるまで、プロセスを遅延させることができる。 注:リソースは、臨界条件付きのリージョンを定義することができる。 注:リソースは、後述するような物理的なリソースの代わりとなることが多い。 注:電子メールシステムにおいて、例えば、メールボックスに値するエージェン トは、そのプロパティの中に、送信されるメツセージのデータベースと、データ ベースを示すリソースとを含めることができる。また、エージェント番よ、新し く送信されるメツセージをデータベースに追加する処理を行うタスク力(起動さ れる前に、リソースの排他的な使用を得る。これにより、現在の伝送番二対する データベースの整合性を確保する。 ニード(Need) プロセスは、他のプロセスに対してオブジェクトへのリファレンスを伝送するこ とができるため、各オブジェクトは、それらのプロセスによって同時に遂行され るように、クラスに固有なメソッド、又はクラスにより継承されたメ゛ノツドカ (用意されなければならない。リソースは、オブジェクトのこのような用意を可 能にする。 リソースは、一連のオペレーションが不可分に行われることを保証するため:こ 用いられる。(以下ご不可分に”実行されることをごアトミックに“実行される と表現する。)ただし、一般に、オペレーションに対して、このような保証は要 求されない。なぜなら、エンジンは、オペレーション’wait”と、オペレー ション”meet”と、レスポンダ(例えばオペレーション″dO”)又はアー ギュメント(例えばオペレーション”restrict”)として供給されたプ ロシージャを遂行するあらゆる定義済みオペレーションとを除く、全ての定義済 みオペレーションを、アトミックに遂行するからである。 注:エンジンは、オペレーション”gO′ご5end”をアトミックに遂行する 。 排他的(Exclusive)と共有(Shared)プロセスは、リソースの 共有的又は排他的な使用を保証されることができる。 どの時点においても、どのプロセスもリソースを使用して(Xな1.X7!1% 、1つのプロセスがリソースを”排他的(exclusive)”に使用してl 、)るか、又番よ1以上のプロセスがリソースを“共有的(shared)“に 使用しているかの11ずれ力1である。 コンディション(Cond i t 1on)リソースが、要求された時に特定 された1以上の条件(コンディション)の中にあることを、プロセスは、保証さ れることができる。どの時点におIIXでも、IJリソース、リソースが生成さ れた時に定義された1以上の条件の中に、′コンディション(conditio n)”を有する。識別子によって示されるリソースのコンディションは、リソー スを共有的又は排他的に使用できるプロセス4こよってのみ検査でき、リソース を排他的に使用することができるプロセス1こよりてのみ変更される。 2.4.5 パーミツト(Permits)“パーミツト(permi t)” は、プロセス、すなわちノく−ミットの”対象(サブジェクト: 5ubjec t) ”に能力を与える。インストラクションセットの大部分(例えばインスト ラクションセットの算術演算)によって表される能力tよ、各プロセスに暗黙の うちに許可されている。他の能力は、特定のプロセスに対して割り当てられたパ ーミツトを用いて、明確に許可されている。 注:バーミツトの主要な目的は、予定外の量のコンピュータ及びコミュニケーシ ョンのリソースを、プロセスが消費するのをできるだ1す阻止することにある。 これは、プロセスを生成し、そのプロセスに対してお金を支払う力1もしれな1 1八ユーザにとっても、プロセスが消費するリソースを供給しな1すれifなら なt1供給者にとっても利益となる。 注:上述したリソースは、クラス”Re5ouce”のメンバと混同されるべき ではなく、これらの間に関連性はない。 能 (Caabi1itie5) バーミツトは、ある定義された次元(ディメンション: dimension) と、その量とで、能力を与える。 パーミントは、プロセスに対して、寿命(エージ:age)、大きさくサイズ: 5ize) 、料金(チャージ: charges) 、優先度(プライオリテ ィ: priority) 、認証(オーセンティシティ: authenti city)を与えることができる。パーミツトがサブジェクトに権利を与えるチ ャージは、サブジェクトの1アローワンス(alt。 マance)”と呼ばれる。これらのディメンションにおいて量は、整数として 示される。また、エージは秒単位で、サイズはオクテツト単位で、チャージは” テレクリック(telecl 1cks)”単位で計測される。プライオリティ は、その整数値が大きくなるにつれて増大する。オーセンティシティは、リージ ョンに特有なものである。 パーミツトは、プロセスに対して、以下に述べる権限を与えることができる。 すなわち、バーミツト自身を転送する権限(パーミツトのアトリビュート” c anGO”)、バーミント自身のクローンを生成し転送する権限(アトリビュー ト”canSend” ) 、他の同レベルのプロセスを生成する権限(アトリ ビュート”canCreate“)、選択されたプロセスのパーミツトの能力を 減少させたり(アトリビュート”canDeny”)又は増大(アトリビュート ”canGran t”)させるように選択されたプロセスのパーミツトを設定 する権限、他のプロセスの実際のチャージを増大させる権限(アトリビュート” canCharge” ) 、又は終了された時に再スタートさせる権限(アト リビュート”canRestart″)である。 これらのディメンションにおいて、量はブーリアン、すなわち論理的なものであ り、このブーリアンの値が”真(true) ”であれば、それについての権限 は許可される。 パーミツトが能力を許容することのできる各ディメンションは、パーミツトのア トリビュートによって示される。通常、アトリビュートは、整数であるが、ニル (0)である場合もあり、この場合、能力は無限の量となる。 注:エンジン又は他のプロセスにより任意のプロセスに与えられるサービスにお いて、テレクリックで示されたチャージは、ブレイス毎、時間毎、又はブレイス と時間毎に、変化させることができる。例えば、スペース等のサービスに対する チャージは、単位時間ごとに評価することができる。 スティタス(Status) プロセスの”スティタス(status)”は、プロセスの実行される能力を特 定する。プロセスのスティタスは、パーミツトのアトリビュー)’age”、” charge”、”extent”及び”pr ior i ty”は、それぞ れプロセスの実際のエージ、チャージ、サイズ及びプライオリティであること以 外は、後述するプロセスの”実効的バーミツト(effective perm it) ”である。 的パーミツト(Effective Pere+it”実効的バーミツト(ef fective permit)“は、プロセスに許容された能力を特定する。 実効的バーミツトは、いつでもどこでも、プロセスに固有のものと、リージョン によるものと、ローカルバーミツトと、一時的に有効なパーミツトとの共通集合 である。しh化ながら、このため、元のパーミツトのアトリビュート”auth enticity”は、プロセスが生成されたリージョンにそのプロセスが存在 しない場合には、ニル(0)とされる。 2つのバーミントの共通集合は、それ自体がパーミツトである。各パーミツトの 固有のアトリビュート(例えばA。)は、問題の2つのパーミツトのアトリビュ ート(例えばA1とA2)の共通集合である。特に、A2がニル(0)である場 合は、AoはA、であり、A、がニル(0)である場合は、八〇はA2であり、 それ以外の場合には、AoはA、とA2とうちの小さい方である。 一旦、設定されたプロセスのパーミツトの何れかが再設定された場合には、後述 するオペレーション°’ restricted”を用いることにより、エンジ ンは、プロセスに対して、設定されたプロセスのパーミツトの何れかが再設定さ れたことを通知する。 プロセスが、プロセスの実効的パーミツトによって許可される量以上の能力で実 行しようとした場合、プロセスは、そのパーミツトをパ侵害(violates )“している。このように、自己のパーミツトを使い尽くすことなしに侵害する と、エクセプションが引き起こされる。 プロセスの一時的なパーミントが全て有効でないならば、プロセスの実際のエー ジ、チャージ、又はサイズが、それぞれプロセスの実効的パーミツトがプロセス に与えていたエージ、チャージ、又はサイズに到達することを認めることにより 、プロセスはそのパーミントを゛使い尺くす(exhaust) ”。自己のパ ーミツトを使い尽くすということは、自己の終了を開始させるということである 。 ネイティブバーミ7 ト(Native Permit)プロセスの”ネイティ ブバーミツト(native permit)”は、プロセスの生成元によりプ ロセスに許容された能力を特定する。親に相当するプロセスは、子に相当する他 のプロセスを生成した時に、ネイティブバーミツトを設定する。対等なプロセス (ビアプロセス)は、そのプロセス自身の実効的バーミツト(アトリビュート” canDeny” )により可能となっているならば、その能力を、増大させる ことはできないが、減少させることはできる。 能力は、プロセス間で転送はされるが生成されることはない。親のプロセス又は ビアプロセスは、その親のプロセス又はビアプロセス自身が持たない能力″X” を、子に相当するプロセスに与えることはできない。ここで、親のプロセス又は ビアプロセスの実効的バーミツトにより、親のプロセス又はビアプロセスに許可 された能力゛′X”の量を”P”で示し、子に相当するプロセスのネイティブバ ーミツトにより、子に相当するプロセスに許容された能力”X”の量をC”で示 すと、“C”は”P”を超過しない関係となる。 チャージ能力(”X”)は維持されている。このとき、親のプロセス又はビアプ ロセスの実際の初めのチャージの量を”A”で示すと、”C”は“P−A”を超 過しない関係となる。そして、親のプロセス又はビアプロセスのその後の実際の チャージの量は”A+C”となる。 リージョナルパーミノト(Re 1onal Permit)プロセスの°゛地 域的なパーミツト(リージョナルパーミット: regional permi t)′°は、プロセスの占有するブレイスを含むリージョンにより、プロセスに 許可された能力を特定する。リージョンのオーソリティのブレイスは、ブレイス 自身の実効的パーミツト(アトリビュート”canDeny”及び”canGr an L”)により能力が賦与されている場合、プロセスがそのブレイスに入っ てきた時、及びその後のどの時点においても、リージョナルパーミットを設定す ることができる。しかし、子に相当するプロセスがオペレーション’ go”又 は5end”を使用せずに、オペレーション”new”を使用してブレイスに入 る場合には、子に相当するプロセスの最初のリージョナルバでミントは、親に相 当するプロセスの現在のリージョナルパーミノトとなる。 ローカルパーミツト(Local Permit)プロセスの”ローカルバーミ ツト(local permit)”は、プロセスが占有するブレイスにより、 プロセスに許可される能力を特定する。プロセスが占有するブレイスは、ブレイ ス自身の実効的パーミツト(アトリビュート” canDeny”及び”can Grant“)により能力が賦与されていれば、プロセスがブレイスに入る時、 及びその後のどの時点においても、ローカルバーミツトを設定することができる 。 チケットを用いてブレイスに入るとき、エージェントは、ブレイスの特定の能力 を要求する。しかし、この時、ブレイスは、そのエージェントが持っている能力 を判断する。また、ブレイスは、エージェントが要求したものより多いか又は少 ない能力を有するローカルバーミツトを伴って、エージェントがブレイスに入る ことを許容することができる。しかしながら、少ない能力を有するローカルバー ミツトの場合、その移動は異常終了となる。すなわち、オペレーション”go” 又は5end”は、エージェントがブレイスに到着したとしても、エクセブショ ンを送出することとなる。 プロセスがそこで生成されることによりブレイスに入るとき、プロセスは、プロ セスの初期のローカルバーミツトとして、初期化パラメータ無しに生成されたロ ーカルバーミツトを受け取る。 −的なパーミツト(TeIIorar Permits)プロセスの0以上の” 一時的なパーミツト(temporary permit)”は、プロセスが一 時的にプロセス自身に許容する能力を特定する。これらは、特定されたプロシー ジャの遂行のためにオペレーション”restrict”又は”5ponsor ”を用いて設定される。これらのプロシージャは、入れ子にさせることができる 。 エンジンがシステムフィーチャを要求するときはいつも、レスポンダのオーナー は、初期化パラメータを用いずに生成された一時的なパーミツトを用いて、オペ レーションのメソッドを暗黙の内に保証する。このようにして、チャージ番よ、 オーナーに帰せられる。 注:プロセスは、一時的なパーミツトを使用して、プロセスの許容されたエージ 、チャージ、又はサイズの一部分を保持することができる。これらの大部分をプ ロセスが使い尽くした場合には、ブ、ロセスは保持されていた部分を使用して緊 急のアクションを取ることができる。 2.4.6 オーナーシップ(OWnerShi)プロセスでない各オブジェク トは、オブジェクトによって”所有(owned)”されている。プロセスとそ れが所有するオブジェクトは、そのプロセスの”アーティファクト(artif acts) ”である。 注:オーナーシップは、オーソリティとは混同されない。 オブジェクトの 成(Ob’ect Creation)各オブジェクトは、メ ソッド間で、フィーチャのアーギュメント又部よフィーチャのリザルトのコピー をパスすることによりて、最終約4こ、生成される。新しく生成されたオブジェ クト、すなわちパスされるコピ一番よ、オブジェクトがプロセスである場合、そ のコピーにメソッドが伝送されるオブジェクトによって所有され、オブジェクト がプロセスでない場合、オブジェクトのオーナによって所有される。 オブジェクトの破壊(Object Destruction)プロセスが破壊 される場合、プロセスの全てのアーティファクト番よ破壊され、残存する全ての アーティファクトへのリファレンスはボイドされる。 オブジェクトの (Ob′eCtSharinブレイスのアーティファクトは、 それ自身のアーティフアクトと第1の領分を構成する、イミディエートスーパー ブレイスのアーティファクト、及び集合曲に第2の領分を構成する、イミディエ ートサブブレイスのアーティファクトを参照することができる。しかし、エンジ ンは、これら2つの領分間をごパスされたI)ファレンスをボイドする。 注:こうして、防護壁をブレイスの間に設立することができる。 2.4.7 クローニング(C10nin)プロセスには、プロセス自身をクロ ーニングする能力力(与えられる場合力(ある。 クローンは、これらのエクセブションとともに、他のプロセス、すなわち”第1 ノジナル(original)”のコピーとして存在するプロセスであるクロー ンの識別情報(アイデンティティ: 1dentity) i!、第1ノジナJ しのアイデンティティとは異なったものである。ただし、クローンのオー1ノ1 ノテイ番よこの限りではない。 ローカルバーミツトでもあるクローンのネイティブノく−ミットは、クローンカ (生成された時に与えられるパーミツトである。オリシナJしにおIllで継続 中の一時的なパーミント、すなわちオペレーション”restrict”の1ノ ザルトとしての一時的なパーミツトは、クローンのネイティブノく−ミットカ; 妃・要とする範囲内で、クローン内において制限的に作られる。 オリジナルが、オリジナル自身、又はオリジナルシカ(所有するオブジェクトを 参照しているときはいつでも、クローンは、それぞれ、クローン自身を参照する 力\、又はクローン自身が所有するオブジェクトのコピーを参照して(為る。ま た、オIJジナルが、第3のプロセスのアーティファクトを参照し0ると1よ1 11つでも、クローンは、ボイドされたリファレンスを有する。 オリジナルがコンタクトされるオブジェクトである場合、すなわちクローンカ( コンタクトされるオブジェクトである場合、クローンのアトIJビx −)”  contacts”はクリアされる。 2.4.8 プランディング brandin)リージョンは、リージョン内部 の各ブロセ刈こブランドを与える。 ”ブランド(brand)“とは、リージョン内の0以上のプロセスによって生 成された識別マークである。エージェントがリージョンに入る時、そのIJ−ジ ョン1よ、入ってきたエージェントに新しいブランドを与える。また、1ノージ ヨン内のプロセスが他のプロセスを生成する場合、生成された他のプロセス番よ 、もとのプロセスのブランドを受け継ぐ。したがって、ブランドは、1ノージヨ ンに入ってきたプロセス、例えばエージェントと、プロセスにより生成された全 てのプロセスとを示すものである。 注ニブランドは、インストラクションセット内部こ
【よ存在しな(X追跡メカニ ズムを可能にする。 2.4.9 コンタクト(Contacts)”コンタクト(contact) ”は、あるプロセス、すなわち”オブザーノ< (orserrver) ”の ために、そのプロセスと、第2のプロセス、すなわち”サブジェクト”との相互 作用を5己録し表すものである。接触されたプロセス(コンタクトされたプロセ ス: contacted proces) lよ、コンタクトのセットを保存 するのに、エンジンの協力を受ける。 2.4.10 アイソレーション(Isolation)プロセスは、以下に述 べるような様々な条件のもとで切り離しくアイソレート: 1solate)さ れる。例えば、プロセスは、オペレーション“partAII“を用いてそのプ ロセスに関連した全てのプロセスがら分離(パート: part)することによ り、トリップを開始することにより、又は終了することにより、アイソレートさ れる。 プロセスを”アイソレート”すると言うことは、他のプロセスのアーティファク トによって保持されているプロセスのアーティファクトへの各リファレンスをボ イドし、そのプロセスのアーティファクトが保持している、他のプロセスのアー ティファクトへの各リファレンスをボイドすることである。ここでは、2つのエ クセプションがある。第1のエクセプションとして、プロセスが占有するブレイ スは、そのプロセスへのリファレンスは保持するが、そのプロセスが所有するオ ブジェクトへのリファレンスは保持しない。第2のエクセプションとして、プロ セスは、プロセスが占有するブレイスを参照し続けることができる。 2.4.+1 終了(Termination)プロセスは、プロセスのフレー ムがプロセスの実行スレッド中に含まれているメソッドを優雅に終了させること によって、終了される。 (i)A、B、Cがプロセスであり、(ii)AのアーティファクトがBのアー ティファクトのフィーチャを要求し、(i i i) Bのアーティファクトが Cのアーティファクトのフィーチャを要求し、(jv)AがAのネイティブバー ミツト、又はローカルバーミツトを生ずるものとする。この場合、エンジンは、 Aを以下に述べるようにして終了させる。 すなわち、A、B及びCが同一でない場合、エンジンは、” Permit E xhausted”を送出し、このエクセプションについてオペレーション”  catch”を用いて、最も新しく生成されたA、B又はCのメソッドに制御を 戻す。制御が戻されたメソッドは、再開される。しかし、再開されたメソッドに 関連するオブジェクト、又はそのオブジェクトのオーナの何れかである、A、B 又はCの何れかのローカルバーミツトを、Aは保持している。その再開されたメ ソッドが正常終了又は異常終了すると、エンジンは、Aの使い尽くされたバーミ ツトを回復し、上述の終了アルゴリズムを再開する。 上述の終了アルゴリズムを再開した後に、エンジンは、(i)Aを停止し、(i i)Aをアイソレートし、(iii)診断的な検査のために有効なOAMポリシ ーが要求する場合は、Aを供給し、(iv)Aを破壊する。 2.5 ネットワーク・モデル(Network 1odel)インストラクシ ョンセットは、本セクションが定義する”ネットワーク・モデル(neLvor k model)”を実現する”。 2.5.1 エージェント(Aents)”エージェント(agent)”は、 ブレイスからブレイスへと移動することができるプロセスである。エージェント は、オペレーション″go″により、特定のデスティネーション(目的地: d estination)にエージェント自身が移動することができ、また、オペ レーション”5end”により、同時に1つ以上のクローンを幾つかのデスティ ネーションに向かって移動することができる。 注:インストラクションセットのオペレーション”go”、5end″は、イン ストラクションセットにおいて最も有効で重要な部分である。多くのネットワー クアーキテクチャにおいて、全てのプロセスは、静止しており、メツセージを交 換することによって通信する。しかし、本発明のネットワーク・アーキテクチャ では、いくつかのプロセスは静止しているが、移動できるプロセスもある。そし て、静止しているプロセスは、移動できるプロセスを用いて通信することができ る。 これは、技術進歩である。 2.5.2 ブレイス(Places)”ブレイス(place) ′°は、0 以上の他のプロセスのための場所である。各プロセスは、ブレイスを参照し、相 互作用することができる。 注:ブレイスは、遠隔におけるインストラクションセントのアクションの例を示 している。ブレイスは、ブレイスの間を移動するエージェントによって相互作用 する。 エンジン・ブレイス EnlnePlaCe)と仮1.的なブレイス(Virt ual Places)ブレイスにはごエンジン・ブレイス(engine p lace)”と”仮想的なブレイス(virtual place) ”の2f i類がある。各エンジンは、1つのエンジンブレイスを有しており、エンジンブ レイスは、エンジン自身を示している。そして、各エンジンは、0以上の′°仮 想的(virtual)“なブレイスも有する。 サブブレイス(SublaCe)とスーパーブレイス(SuerlaCe)エン ジンブレイスを除く全てのブレイスは、他のブレイスを占有すること力(できる 。ブレイスが直接的又は間接的に他のブレイスを占有する場合、占有するブレイ スは、占有されるブレイスの゛サブブレイス(subp 1ace)”であり、 占有されるブレイスは、占有するブレイスの゛°スス−−ブレイス(super p 1ace)“である。ここで、ブレイスが他のブレイスを直接的に占有する 場合には、占有するブレイスは、占有されるブレイスの”直接のサブブレイス( イミディエートサブブレイス: immediate 5ubplace)″で あり、また、占有されるブレイスは、占有するブレイスの”直接のスーパーブレ イス(イミディエイトスーパープレイス:1lIl+ediate 5uper place) ”である。 プレイスヒエールキ−(Place Hierarch )エンジンが有するブ レイスは、ツリー、すなわち”ブレイス階層(プレイスヒラルキー: plac e hierarchy)”のノードとして配される。プレイスヒエラルキーに おいて、ノードは、ブレイスを示し、ノードの間のアークは、ノードが示すブレ イス間の占有の相互関係を示している。 注:ツリーのルートは、エンジンブレイスを示し、他のノードは、仮想的なブレ イスを示す。 2.5.3 トリップ(TriS) ” トリップ(trip)”はご開始点(オリジン: origine)”であ る1つのブレイスから、”目的地(デスティネーション: destinati on)″である他のブレイス内又は同じブレイス内の別の場所へのエージェント の移動である。トリップは、エージェントをそのオリジンや”移動経路上のブレ イス(トランジットブレイス: transit place)”に残したまま 、そのオリジンや目的地を異常終了することはできない。 注ニトリツブは、単に論理的にエージェントを移動させるだけではなく、物理的 なコミュニケーションのメディアを用いてエージェントを移動させる場合がある ため、多くの時間を要する場合がある。 オペレーション″onとオペレーション” 5end″エージエントは、オペレ ーション” go”により、1つの目的地にエージェント自身が移動することが でき、又、オペレーション″5end″により、幾つかの目的地に同時に移動で きるように1以上のクローンを生成することができる。 注=aつかのクローンが、エンジンが有する複数のブレイスに送信されていても 、オペレーション″5end”は、特定のエンジンに対して、エージェントを表 現するものを1つだけ転送する。これにより、そのエンジンのコンピュータのメ モリスペース等をさらに節減することができる。 制限(Restrictions) オペレーション”go”、”5end”は、クラス”Agent”のサブクラス に固有のメソッドのプロシージャ、又はこのようなプロシージャのアイテムであ るプロシージャによってだけ、繰り返し要求される。これ以外の場合、エンジン は“StateImproper”を送出する。 2.5.4 チケット(Tickets)”チケット(ticket)”は、ト リップするエージェントの観点から見た、予定されたトリップに関する情報を設 定する。チケットの主な目的は、トリップの目的地を特定することである。 構成(colosltion) チケットは、目的地のテレアドレス及びテレネームと、目的地がメンバであるク ラスに対するサイテションと、エージェントが目的地において必要とするローカ ルバーミツトと、トリップが理想的に終了する時間(所望時間: desire d time)と、どの様な状況のもとでもトリップが正常終了又は異常終了と なるべき時間(最長時間:maximum time)とを示す情報から構成さ れる。 注:所望時間を定義することは、ネットワークが移動中のエージェントにコミュ ニケーションリソースをどの様に分配するかを定める上で、有効である。 注ニブログラミングの便宜上の問題として許可される最長時間の効果も、オペレ ーション”restrict”によって達成することができる。 (Satisfication) チケットは、最長時間内においてエージェントが到着することに同意した、特定 されたネーム、アドレス及びクラスのブレイスによって、満足される。 どのブレイスもチケットの条件を満たしていない場合、ネットワークはそのチケ ットを拒絶する。 2以上のブレイスのセットがチケットを満たしている場合、1つのブレイスがエ ージェントの移動を受け入れるまで、又はネットワークがアプローチする全ての ブレイスがエージェントの移動を拒絶するまで、ネットワークは、そのセットの メンバに対して順次、トリップを試みる。 ネットワークがそのセットのメンバにアプローチする順序について、そのセット についてネットワークが保証する範囲について、及びチケットの提示後にセット に加わるブレイスにネットワークがアプローチするか否かについては、定義され ていない。 2.5.5 ミーティング(にeetInS)”ミーティング(slsetin s)”は、同一プレイスの2つの占有者が、相互作用するための機会である。こ こで、ミーティングする占有者は、ベテイシジンされるオブジェクト、すなわち エージェントである。要求しているエージェント(リフニスティングエージェン ト: requesting agent)は、”ペテイショナ(petiti oner)”であり、応答するエージェント(レスポンディングエージェント:  responding agent)は、”ベティショニ(petition ee) ”である。 ミーティン (MeetIn) エージェントは、他のエージェントに、オペレーション″meet″により、” 会合(ミート: meet)”することを要求できる。エンジン(このエンジン はベテイショナではない。)は、アーギュメントとしてベテイショナのコンタク トを供給して、ベティショニのオペレーション”meet ing”を要求する 。ミーティングは、オペレーションの結果次第で決まる。 オペレーション”meeting”が正常終了し、ミーティングが完了した場合 にのみ、2つのエージェント相互に対するリファレンスを与える。ここで、ミー ティングしている間、2つのエージェントのことを、相互に対して”知人(ac quaintanceS)”であると言う。 エンジンは、エージェントとのミーティングを系列化しない。すなわち、エージ ェントが既にオペレーション″meeting”を行なっているということは、 エンジンがオペレーション”meeting”の遂行を再び要求することを妨げ るものではないということである。一方、エージェントは、例えばリソースによ って、エージェントが要求するミーティングの系列化を供与しなければならない 。 パーティング(Parting) 2つのエージェントの何れか一方は、オペレーション”part”又は”par tAII”により、1つ又は全ての知人から“分離(バート: part)”す ることができる。 エンジン(エージェントではない。)は、エージェントの1以上の知人に対して 、オペレーション“parting“を要求することができる。エンジンは、オ ペレーション”meeting”のアーギュメントして、又はオペレーション”  meet’のリザルトとして、エンジンが先に提供したコンタクトを、アーギ ュメントとして提供する。 ミーティングとは異なり、パーティングは、直接的に無条件に生じ、オペレーシ ョン”parting”の結果には依存せずに正常終了する。 エンジンは、他のエージェントのアーティファクトに対する各エージェントのリ ファレンスをボイドする。 エンジンは、エージェントからのパーティングを系列化しない。すなわち、エー ジェントが既にオペレーション”parting”を遂行しているということは 、エンジンがオペレーション”parting”の遂行を再び要求することを妨 げないということである。一方、エージェントは、例えばリソースによって、エ ージェントが要求するパーティングの系列化を供与しなければならない。 2つのエージェントが相互に分離することを要求した場合、エンジンがどちらの のエージェントのオペレーション”parting”を要求するか否かについて は、定義されていない。 制限(Restrictions) オペレーション” l1eeじごpart”、” partAII”は、クラス ” Agent”のサブクラスに固有のメソッドのプロシージャ、又はこのよう なプロシージャのアイテムであるプロシージャによってだけ、繰り返し要求され る。これ以外の場合、エンジンは” 5tate Improper”を送出す る。 2.5.6 ペティション(Peti tions)0ペテイシヨン(pet山 on)”は、ベティショナの観点から見て、予定されたミーティングを設定する 。ペティションの主な目的は、ベティショニを特定することである。 構成(COIIO51t10n) ベティションは、ベティショニのテレネーム、ベティショニがメンバであるクラ スに対するサイテション、及びどの様な状態においてもミーティングの試みが正 常終了又は異常終了すべき時間(最長時間: l1axi+num time) を示す情報から成る。 注ニブログラミングの便宜上の問題として許可される最長時間の効果も、オペレ ーション”restricピ゛によって達成することができる。 足(Sartisfaction) ベティションは、最長時間内においてミーティングすることに同意した、特定さ れたネーム及びクラスの、ベティションされたオブジェクトによって、満足され る。ペティショニは、最長時間内のある時点において、ベティショナと同一のブ レイスの占有者でなければならない。ただし、上記のある時点は、必ずしも最長 時間のスタートの時点である必要はない。 ペティションされるオブジェクトがベティションを満足しない場合、エンジンは そのベティションを拒絶する。 2以上のペティションされるオブジェクトのセントがベテイションを満たしてい る場合、1つのベティションされるオブジェクトがミーティングを受け入れるま で、又はエンジンがアプローチする全てのベテイションされるオブジェクトがミ ーティングを拒絶するまで、エンジンは、そのセットのメンバに対して順次、ミ ーティングを試みる。エンジンがそのセットのメンバにアプローチする順序につ いて、そのセットについてエンジンが保証する範囲について、及び、ベティショ ンの提示後にセットに加わるエージェントにエンジンがアプローチするか否かに ついては、定義されていない。 2.5.7 占有(OCCuatlon)ブレイスを占有しているものは、経時 的に変化することができる。 エントリー(Entr) プロセスは、2つの方法のうちの何れかで、ブレイス(ご進入(エントリー:e ntry)”し、そのブレイスを占有することができる。エージェントは、トリ ップの結果としてブレイスに移動することができる。また、既にブレイスに存在 するプロセスは、そのブレイスに他のプロセスを生成することができる。 何れの場合においても、エンジン(ブレイスに移動したエージェントや、生成さ れたプロセスではない、)は、ブレイスのオペレーション″entering″ を要求する。ブレイスに移動したエージェントのためのコンタクト、又は生成さ れたプロセスのためのコンタクトは、オペレーション″entering”のア ーギュメントとして供給される。このエントリーが正常終了するか否かは、オペ レーションの結果に依存する。 エントリーが完了した場合のみ、すなわちオペレーション”entering″ が正常終了した場合のみ、エンジンは、ブレイスと、そのブレイスに進入したプ ロセスとに、相互に対するリファレンスを与える。プロセスは、ブレイスを占有 している間、ブレイスの占有者となる。 エンジンは、ブレイスに対するエントリーを系列化しない。すなわち、ブレイス が既にオペレーション” entering”を遂行しているということは、エ ンジンがオペレーション”en ter r ng”の遂行を再び要求すること を妨げないということである。一方、ブレイスは、ブレイスが要求するエントリ の系列化を供与しなければならない。 が同一であったとしても、オペレーション”entering”は発生する。 エクシント(Exit) プロセスは、以下に述べる2つの方法の何れかで、ブレイスを“退出(エクシッ ト:exit)”し、ブレイスを占有しなくなる。すなわち、エージェントは、 トリップの結果としてブレイスを去ることができる。又は、ブレイスに存在する プロセスは、そのブレイスに存在する他のプロセス又はプロセス自身を破壊する ことができる。これら何れの場合にも、エンジン(立ち去ろうとしているエージ ェントや、破壊されるプロセスではない。)は、ブレイスのオペレーション”e xitlog“を要求する。オペレーション゛’ entering”のアーギ ュメントとして供給されたものと同じコンタクトが、オペレーション”exit ing”のアーギュメントとして供給される。エントリーの場合とは異なり、エ クシソトが正常終了するか否かは、エクシントは既に生じており、オペレーショ ンの結果に依存しない。 エンジンは、エクシノトしようとしているプロセスとブレイヌの、互いのアーテ ィファクトへのリファレンスをボイドする。さらに、エンジンは、プロキスをア イソレートする。 エンジンは、ブレイスからのエクシットを系列化しない。すなわち、ブレイスが 既にオペレーション゛ex i t i ng” を行なっているということは ・オペレーション”ex山口g” を再びエンジンが要求するということを妨げ ないということである。一方、ブレイスは、ブレイスが要求するエクシソトの系 列化を供与しなげればならない。 注:たとえトリップの出発点(オリジン)ど・目的地(デスティネーション)と が同一であっても、オペレーション”exiting”は成立する。 2.5.8:Iン クト(Con tac ts)エンジンは、ブレイス及びエ ージェントに対して、それらの占有者及び知人との連絡(コンタクト:cont act)の保持において、協力を申し出る。 占有者(OccuaOts) ブレイスがコンタクトされるオブジェクトでもある場合、エンジンは、アトリビ ュートがブレイスの現在の占有者を含み且つそのブレイスの以前の占有者を含ま ないようにして、ブレイスのコンタクトのアトリビュートを保持する。 エンジンは、プロセスがブレイスに進入する時点において、プロセスに対するコ ンタクトをブレイスのアトリビュートに含め、プロセスがブレイスからエクシッ トする時点において、プロセスに対するコンタクトをブレイスのアトリビュート から排除する。 知人(Ac uaintances) ペティションされるオブジェクトがコンタクトされるオブジェクトでもある場合 、エンジンは、アトリビュートがオブジェクトの現在の知人を常に含み且つ以前 の知人を含むことのないように、そのコンタクトのアトリビュートを保持する。 エンジンは、オペレーション”see t”が成功したとき、ベテイショニのた めのコンタクトを、ベティショナのアトリビュートに含め、オペレーション”  leeting“が成功したとき、ベティショナのためのコンタクトを、ベティ ショニのアトリビュートに含める。 何れかのプロセスがオペレーション”part”又は” partAII”を要 求した場合、エンジンは、ベティショナ及びベティショニのアトリビュートから コンタクトを除去する。 2.5.9 サイテション(Citattons)ネットワーク内において、特 定のクラスのオブジェクトは、サイテションによって示される。 サイテション(Citations) ”サイテション(citation) ”は、オーケー(author) 、エ ディジョン(editlon)及びタイトル(title)によって、0以上の 引用されたオブジェクト(cited object)を特定する。ここで、オ ーケーとエディジョンは、オプションであり、使用しなくてもよい。また、サイ テションは、オーケーのアイデンティティ(aUthor’s 1dentit y)及びオーケーのオーソリティ(author’s authority)に よって、オーケを特定する。ここで、オーケーのアイデンティティは、オプショ ンであり、使用しなくてもよい。サイテションが、この3つの特徴のうちのどれ かを定義しなかった場合、サイテションは、サイテションが定義した特徴を満た す全ての引用されたオブジェクトを示す。 オーケー(Author) ”オーケー(author)”は、引用されたオブジェクトを生成するプロセス である。したがって、オーケは、テレネームによって特定される。また、タイト ルの全てのエディジョンのオーケは、対等である。 タイトル(Title) ”タイトル(title)”は、相互に対して後方向又は前方向に互換性がある 、引用されたオブジェクトの組である。タイトルは、タイトルのオーケーの共通 のオーソリティに関連してインターブリードされる識別子によって示される。 エディジョン(Edition) ”エディジョン(edition)”は、タイトル内の引用されたオブジェクト の何れかである。エディジョンは、2つのインチジャにより示される。第1のも のは、タイトルに関してインターブリートされ、メジャーエディジョンを示す。 他方は、第1のものに関してインターブリードされ、マイナーエディジョンを示 す。 注:通常、メジャーエディジョンには1が割り当てられ、マイナーエディジョン にはOが割り当てられる。 割り当てられたサイテション(assi ed citation)”割り当て られたサイテション(アサインドサイテション: assiged citat i。 n)”は、オーケー、タイトル、及びエディジョンによって、1つの引用された オブジェクトを示し、オーソリティ及びアイデンティティによりオーケーを特定 する。これにより、割り当てられたサイテションは、引用されたオブジェクトを 、他の全ての引用されたオブジェクトから、すなわち割り当てられたサイテショ ン自身のタイトル中の他の引用されたオブジェクトから、識別する。後述の”テ レネーム”についての説明を参照すること。 互換性(コンパティビリティ: Coll1patibi l1ty)引用され たオブジェクトo2は、他の引用されたオブジェクトOIに対して以下に述べる 場合のみ、。後方向にコンパティプル(backward compatibl e)”である。すなわち、その場合とは、引用されたオブジェクトの両者がメン バであるクラスにより規定された種類の変更のみを0.に対して行なうことによ り、ozを生成するができ、その変更の種類が、プロセスO1について書かれた プログラムが02も同様に処理することが確保されるように選定される場合であ る。また、上述したような場合と同様の条件のもとで、Olは02に対して“前 方向にコンパティプル(forward compatible)”であると言 うこともできる。 2.5.10 テレネーム(Telenames)ネットワーク内において、特 定のクラスのオブジェクトは、テレネームによって示される。 テレネーム(Telename) ”テレネーム(telename)”は、0以上の名前付きオブジェクト(ネー ムドオブジェクト: nan+ed object)を、それらのオーソリティ とアイデンティティによって特定する。ここで、特定されるオブジェクトが0個 になるのは、テレネームが無効の場合である。また、アイデンティティは、オプ ションであり、使用しなくてもよい。 テレネームがアイデンティティを定義していない場合、テレネームは、特定され たオーソリティーのオブジェクト全てを示す。 オーソリティ(Authority) 名前付きオブジェクトの”オーソリティ (authority)”は、そのオ ブジェクトに対して責任のあるエンティティ (entity) 、例えば人や 組織である。オーソリティは、ネットワーク中の他の全てのものがら対象のオー ソリティを識別する、オクテツト文字列によって特定される。 2つのテレネームは、それらが同一のオーソリティを特定する場合のみ、′同等 (ビア: peer)”である。 注ニオーソリティは、プログラム的にではなく、管理的に生成される。一方、ア イデンティは、プログラム的にも管理的にも生成される。 アイデンティティ(!dentit) 名前付きオブジェクトの”アイデンティティ(identity)”は、名前付 きオブジェクト自身を示している。アイデンティティは、オーソリティと同様に 、オクテツト文字列によって、ネットワーク中の他の全てのものからアイデンテ ィティを識別する。 注ニオーソリティ又はアイデンティティを示すオクテツト文字列は、通常は人に は意味が分からないようになっている。インストラクションセットは、どのよう にオクテツト文字列を割り当てるかについては、定義しない。 割り当て れたーレネーム(assi ned Telenames)”割り当 てられたテレネーム(アサインドテレネーム: assigned teken ame)“は、オーソリティ及びアイデンティティにより、1つの名前付きオブ ジェクトを正確に示す。 2.5.11 テレアドレス(Teleaddress)ネットワーク中におい て、ブレイスは、テレアドレスによって位置が定められる。“ネットワーク(n etマark)”は、全てのエンジンブレイスを含み、1以上のリージョンに区 分される。“リージョン(region)“は、特定のオーソリティによって、 操作又は提供される1以上のエンジンブレイスである。 テレアドレス(teleaddress)”テレアドレス(te 1eaddr ess)”は、0以上のブレイヌを、そのリージョンとロケーションによって特 定する。具体的に言うと、テレアドレスは、0以上のブレイスを、0以上のブレ イスのロケーションにより特定する。 テレアドレスがロケーションを定義していない場合、テレアドレスは、特定され たリージョン内の全てのブレイスを示す。 リージョン(Re!on) ブレイスの°゛リージヨンregion) ”は、そのブレイスを含むリージョ ンである。リージョンは、オーソリティと同様に(上述の”テレネーム”につい ての説明を参照)、ネットワーク中の他の全てのものから対象のリージョンを識 別する、オクテツト文字列によって特定される。 ロケーション(Location) ブレイスの′°ロケーション(1ocat 1on)”は、ブレイスのリージョ ンのオーソリティによって選択されたブレイスの情報である。ロケーションは、 リージョン内の他の全てのものから対象のリージョンを識別する、文字列によっ て特定される。 リージョン内の2つのブレイスは、同一のロケーションを持つことができる。 注:ブレイスのロケーションは、例えば、その基となってるコンピュータ・シ注 コロケーションを示す文字列は、必ずしも必要ではないが、人に対して意味があ るようにすることができる。インストラクションセットは、どのようにその文字 列を割り当てるかを定義しておらず、一般に、その割り当ては、リージョン毎に 異なる。 ルーティングアドバイス(Routin Advice)テレアドレスは、必ず しも必要ではないが、テレアドレスが示すブレイスに対するエージェントのルー ティングに関するアドバイスを与えることができる。テレアドレスは、エージェ ントが通るであろう1以上のリージョンを提示することにより、ルーティングに 関するアドバイスを与える。 このような、”ルーティングアドバイス(routing advice) ” が無い場合、例えばブレイスがエージェントのソースから非常に離れている場合 、ネットワークは、エージェントをブレイスに移動させることができない場合が ある。 割り当てられたテレアドレス(Assi ned Te1eaddress)” 割り当てられたテレアドレス(アサイントチレアドレス: assigned  teleadress)”は、リージョン内において、1以上のブレイスをその リージョン及びロケーションにより特定する。ここで、1以上のブレイスとなる のは、いくつかのブレイスは、同じロケーションを持つことができるからである 。 2.5.12 相互変換(Interchange)”相互変換されるオブジェ クト(インターチェンジドオブジェクト: interchenged obj ect)”は、そのオブジェクトのオーナーがオブジェクトを随伴するトリップ を行なう場合にはいつでも、例えば目的地において検出される、同等のオブジェ クトに、ネットワークが置き換えることができる不変のオブジェクトである。こ こで、相互変換されるオブジェクトはダイジェストを持っている。また、この置 き換えは必ずしも必要ではない。なお、ダイジェストに関しては後述する。 注:相互変換されるオブジェクトは、目的地等で検出される同等のオブジェクト に置き換えられるので、エンジンは、相互変換されるオブジェクトを物理的に搬 送することを避けることができる。これにより、オペレーション’go”及び” 5end”の遂行が効率的になる。 注:クラス及びパッケージは、相互変換されるオブジェクトである。 イジエスト(Dies(s) 相互変換されるオブジェクトは、ダイジェストが相互変換されるオブジェクトの ものと同等であるオブジェクトのクラスの他のインスタントと同等であると見な される。“ダイジェスト(digest) ”は、この目的に適した、ニル(0 )以外のオブジェクトである。例えば、ダイジェストは、相互変換されるオブジ ェクトを示す標準的な2進数の数学的ハンシュ(hash)でもよい。 注゛相互変換されるオブジェクトは、オブジェクトがダイジェストよりも大きい 場合のみ、オペレーション°°gO”及び”5end”の遂行が効果的に行われ るようにする。 26 タイムキーピング・モデル(Timekeeping Model)イン ストラクションセントは、本セクションが定義する”タイムキーピングモデル( ti+oekeeping l1iodel) ”を実現する。 タイムキーピング(計時)は、”タイム(time)”と”カレンダータイム( Calendar time)“2つの方法で行うことができる。タイム又はカ レンダータイムは、日付及び時間を同様にして特定するが、他の点では異なって いる。 注:タイムとカレンダータイムは相互に変換することができる。 注:エンジンは、タイムの方が°′カレンダータイムよりもよりコンパクトに内 部的に表現することができる。したがって、一般に、日付及び時間を保存したり 転送したりする場合、タイムのほうが適している。 2.6.] タイム(Time) ”タイム(time)−は、協定世界時間(U T C: Coordinat ed tlniversal Time)を用いて、1秒車位で日付と時間を特 定する。また、タイムは、計測された時間帯(time zone)を特定し、 サマータイム(DST : Daylight Savings Time)等 が使用されている場合には、その影響も考慮する。 注: UTCとは、グリニソヂ標準時間(GMT : Greenvich M ean Time)として知られているものである。 2.6.2 カレンダータイム(Calendar Tinge)”カレンダー タイム(calender time)”は、時間の全ての情報、及びその他の 情報を有する。特1こ、カレンダータイムは、−日の「時」、「分」、「秒」を 検出し変更するようにしている。さらに、カレンダータイムは、グレゴリ−暦の 1月」、「日」を表す。また、カレンダータイムは、「曜日」や「年」も表す。 さらに、tJTCからの時間の一定のずれと、季節による時間のずれとを「分」 で表す。ここで、季節による時間のずれがある場合は、サマータイム等の時であ る。 ノーマリティ(Normality) 通常、カレンダータイムは、定められた範囲内に整数として、アクセス可能な日 付及び時間に関する情報を作成する。「時間」として、「時」が[0,24]の 範囲内、「分」が[0,601の範囲内、「秒」が[0,60]の範囲内で表わ される。「秒」は、閏秒を考慮するために、[0,60]の範囲内、すなわち6 1種類の数値で表わされる。例えば、r1993年」は整数r1993Jで表さ れ、その年の「月」は[1,12]の範囲内で表され、その月の「日」は[1゜ 31]の範囲内で表される。また、その「日」の「曜日」は、「日曜」、「月曜 」、「火曜」、「水曜」、「木曜」、「金曜」及び「土曜」をそれぞれ示す数字 「1」、「2」、「3」、「4」、「5」、[6」及び「7」で表される。さら にまた、1年における「日」は、[1,366]の範囲内で表される。一定のず れ及び季節的なずれは、何れも[−720,720]の範囲内で表される。 注:整数はA、D、(紀元後)を表し、負数はB、C,(紀元前)を表す。 アブノーマリティ(Abnormrit )カレンダータイムでは、通常に表さ れる日付けの範囲外の整数値で表される場合がある。例えば、カレンダータイム では、「9月32日」と日付を表す場合があり、この場合、通常の日付けでは「 10月2日」を示していることとなる。このような異常な数値は、効率的な方法 で、例えば、上述のような場合、その月のその日に「2」を加えてカレンダータ イムを操作することにより生じる。このような場合は、カレンダータイムが正確 であるかを考慮する前に、除去されていなければならない。したがって、上述の ような場合には、カレンダータイムは、以下の正常化処理によって正常に戻され る。 正常化(Normal 1zation)カレンダータイムは、後述のステップ によって、”ノーマライズ(正常化)”される。第1のステップでは、カレンダ ータイムにおける如何なる情報もニル(0)でありうることを考慮している。 デフオールド(Derauts) ’ ・ 「時」、「分」又は「秒」がニル(0)の場合には、「時」、「分」又は「 秒」は「O」とされる。また、「年」、「月」又は「日」がニル(0)の場合に は、「年」、「月」又は「日」も「o」とされる。また、一定のずれ又は季節的 なずれがニル(0)の場合には、一定のずれ又は季節的なずれは、現在の時間を 表す正常化されたカレンダータイムのものとされる。 時間の れ(Offsets) ・ 一定のずれ又は季節的なずれは、オフセットを24X60、すなわち整数1 440で、割算することによって得られた剰余結果を、[−720,720]の 範囲内の数値に置き換えられたものである。 時間(Time) ・ 「秒」は、数値「6o」までを繰り返し加算又は減算し、600単位で「分 」に1を加算又は減算することにより、正常な範囲内に置がれる。「分」は、数 値「60」までを繰り返し加算又は減算し、600単位で「時」に1を加算し又 は減算することにより、正常な範囲内に置がれる。「時」は、数値「24」まで を繰り返し加算又は減算し、24時時間位で「日Jに1を加算又は減算すること により、正常な範囲内に置かれる。 日付(Date) ・ 「月」は、数値「12」までを繰り返し加算又は減算し、122単位で「年 」に1を加算又は減算することにより、正常な範囲内に置かれる。「日」は、K に1を加算又は減算し、K日単位で「月」に1を加算又は減算することにより、 [1、K]の範囲内に置かれる。ここで、Kは、対象となる「年」の「月」の日 数である。1の加算又は減算によって「日」が所定の範囲に置がれない場合には 、この全体のステップを再び行なう。換言すると、「月」は、再び「日」を調整 する前に、上述したようにして調整される。 ローカライス化oca l i ze)とグローバライズ(Global 1z e)カレンダータイムは、特定の絶対的な時間を変えることなく、他の一定のず れ又は季節的なずれ修正することができる。カレンダータイムのずれが現在のブ レイスのものとして作られた場合、カレンダータイムは”地域化(ローカライズ :1ocalized) ”される。また、カレンダータイムのずれがUTCの ずれとして作られた場合、カレンダータイムは”全域化(グローバライズ: g lobal 1ze) ”される。 2.7 パターンマツチングモデル(Pttern Hatchin Mode l)インストラクションセットは、本セクションが定義する°゛パターンマツチ ングモデルpattern matching model)″を実現する。 2.7.1 パターン(Patterns)°°パターン(pattern)” は、文字列を解析する手段である。パターンの゛°テキスト(text)” ( これ自体文字列である。)は、ストリングがパターンにマツチ(match)す るかを判断する基準を規定する。 パターンのテキストは、後述するような構文的な規則やそれに付随する意味上の 規則に従う一連のトークンである。 ここで、規則は、例えば、任意選択字句(オプショナルトークン: optio nal token)を角括弧(”[”及び°°コ”)で囲む、パフカス・ナウ ア形式(BNF:Backus−Naur又はBackus Normal F orm)において与えられる。また、パターンのテキストを記述する上でBNF に従ったものであるのか、又は特別なテキストのメタキャラクタであるのかを識 別するために、引用符(゛) によって、垂直パー(”1”)、左角括弧(”[ ”)、及び、左角括弧(”]”)を囲む。 パターンのテキストの各トークンは、0以上のキャラクタである。テキストは、 トークン、すなわちキャラクタを連結することにより得ることができる。 2、7.2 構゛(Structure)パターン、すなわち、そのテキストは 、次の規則に従うものとする。 pattern ::=Alternative[”l”pattern1文字 列(ストリング:s【自ng)は、その代替物(オールタナテイブ: alte rnatibU)に一致(マツチ:matche) している場合にのみ、パタ ーンと一致する。 オールタナティブ(At ternative)オールタナティブは、次の規則 に従う。 Alternative ::: [−]Cos+ponents[$コCom ponents :Co1Iponent[Components]ストリング は、間にギャップの無い連続するサブストリングがオールタナティブの連続する コンポーネントと一致する場合にのみ、オールタナテイブに一致する。 オールタナティブが、脱字記号(”′”)で始まる場合、又はドルマーク(”$ ”)で終わる場合、一連のサブストリングは、それぞれ、ストリングの最初又は 終わりにおいて開始又は終了しなければならない。 コンポーネント(coIIlonenL)コンポーネントは、次の規則に従う。 Components ::= Item[本 1 + 19コアスタリスク( ”*″)が表れたときは、コンポーネントが、0以上のサブストリング(それぞ れがアイテムに一致している)を含んでいる場合にのみ、プラス符号(”+”) が表れたときは、コンポーネントが、1以上のそのようなサブストリングを含ん でいる場合にのみ、疑問符(”?”)が表れたときは、コンポーネントが、その アイテムに一致しているか、消されている場合にのみ、又は、これら以外のとき はそのアイテムが一致している場合にのみ、ストリングは、コンポーネントに一 致する。 アイテム(Item) アイテムは、次の規則に従う。 Components ::=(Pattern) l”[”Characte rClass”II” ICharacter ストリングは、アイテムが規定してしているパターン、キャラクタクラス、又は キャラクタの何れかに一致する場合にのみ、アイテムに一致する。 キャラクタクラス Charac terC1ass)キャラクタクラスは、次 の規則に従う。 CharacterClasS :::じ]Characterltemsスト リングは、キャレットじ)が存在しておらず、且つキャラクタアイテムのリスト に一致する場合にのみ、キャラクタクラスに一致する。 キャラクタアイテム(Characterltess)キャラクタアイテムのリ ストは、次の規則に従う。 Characterltems ::= Characterltem [Ch aracterltemsコCharacterltem ::= Chara terRange I CharacLerストリングは、ストリングの連続す るサブストリング間にギャップが無く、リスト中の連続するキャラクタアイテム とマツチする場合にのみ、キャラクタアイテムのリストに一致する。一連のサブ ストリングは、ストリングの開始点で開始され、終了点で終了しなければならな い。 キャラクタレンジ(CharacterRan e)キャラクタレンジは、次の 規則に従う。 CharacterRange : := Character −Chara cterストリングが、1番目のキャラクタの後に1つのキャラクタを含み、又 は1番目のキャラクタと等しい1つのキャラクタを含み、且つ、2番目のキャラ クタの前に1つのキャラクタを含み、又は2番目のキャラクタと等しい1つのキ ャラクタを含む場合にのみ、ストリングは、キャラクタレンジに一致する。 キャラクタ(Character) キャラクタは、次の規則に従う。 Character ::=、l\metacharacter l char acterストリングは、ピリオド(””) が存在しているときには、ある1 つのキャラクタのどれかを含んでいる場合にのみ、逆スラッシュ(“\″)が存 在しているときには、メタキャラクタを含んでいる場合にのみ、又はその他のと きに、そのキャラクタを含んでいる場合のみ、キャラクタに一致する。 注 これにより、逆スラッシュ(”\°゛)がメタキャラクタの直前にある場合 には、メタキャラクタの特定な意味合いは避けられる。 2.7.3 他の非ターミナル(Other Non Ter+ainals) キャラクタ(Character) メタキャラクタ以外のクラス”Characto「”のインスタンスである。 メタキャラクタ(Metacharacter)メタキャラクタ(+5etac haracLer)である。 2.7.4 メタキャラクタ(Metacharacters)パターンのテキ ストは、メタキャラクタを含むことができる。メタキャラクタは、テキストを支 配するセマンテイツクなルール、すなわち意味付けされたル−ルに含まれる特別 な意味を有する。メタキャラクタは、表A、5Gこ示すキャラクタ、及びキャラ クタのテレスクリプトのストリングトークンlこ示されたもの、例えばバックス ペースである。 (以下、余白。) 3、 テレスクリプト ラスの概 オブジェクト指向されたインストラクションセットは、アペンディックスAの本 セクションにおいて概観が示される定義済みクラスを含む。これらのクラスは、 後述するように複数のグループに分けられる。サブセクションは、各グループに 委ねられている。各サブセクション内において、サブセクションは、グループ内 の各クラスに委ねられている。 インターブリートされるインストラクションセントは、例えば制御フローのため の、ステートメント形式を規定するのではなく、むしろ、そのクラスのオペレー ションに依存する。したがって、インストラクションセットの意味は、定義済み クラスの意味であることが多々ある。 3.1 グループ(GrouS) インストラクションセットの定義済みクラスは、カーネルと呼ばれる複数のグル ープに分けられる。この分割は、教育的な目的のみに用いられるものであり、カ ーネル以外のグループにおけるクラスがカーネルにより実行されることを示すも のではなく、また、エンジンがカーネルのクラスを実行するが他のグループのも のは必ずしも実行しなくてもよいことを示すものでもない。 以下のグループが規定されている。 カーネル(Kernel) このグループは、基本的な機械言語、例えば、クラス、オブジェクト、リファレ ンス、プロシージャ、実行及びエクセプションを供与する。 プリミティブ(Primitives)このグループは、不可分な情報の基本的 な形式、例えば、ブーリアン、オクテツト、ナンバ、キャラクタ及びタイムを供 与する。 コレクション(Col Iections)このグループは、複合情報の基本的 な形式、例えば、セット、リスト、スタック、ストリング及びディクショナリを 供与する。 クラス定11i (C1ass Definition)このグループは、クラ ス定義の基本的な構成要素、例えば、インタフェース、アトリビュート、オペレ ーション、インプリメンテーション及びメソッドを供与する。 特定化(アイデンティフィケーション: Identification)この グループは、名前付け(ネーミング: naming)及びアドレス設定(アド レッシング: addressing)について、例えば、テレネーム及びテレ アドレスを供与する。 プロセス(Processes) このグループは、マルチタスクについて、例えば、プロセス、ノ(−ミツト、1 ノソース及びコンタクトを供与する。 三−;−>’c<へ註■」二αゴヱ」囮皆とこのグループは、ネットワーク内の プロセスの移動について、例え【f、プロセス、エージェント及びチケットを供 与する。 ミーティング(Meetin) このグループは、ネットワークのノード内のプロセス相互作用(こつIlzで、 例えば、ミーティングブレイス及びベテイションを供与する。 その他(Miscel 1aneous)このグループは、様々なことについて 、例えば、乱数発生器(ランダムナンノくジェネレータ: randoIIln umber generator)及びノくターンマツチャ(pattern  matcher)を供与する。 以下、上記した順序で各グループについて説明する。各グループ内のクラス1よ 、アルファベット順で示される。 3.2 カーネルグループ(KerneIGrOu)並江区(Referenc ed) ・C1ass (Cited & Interchenged)−Co11ec tion ・・Set (Verified) −−−−Con5trained Set (Constrained)0 °  ・・墜オ肥(Cited & Interchenged)−Con5tra int ・込朋辺止卯(llnehanged)8・Pro raillin Exce  tion・ ・ ・ ■正射」五並U皿 1026Execution Exce tion−−−−1Unexecte dExcetion+ Pr1m1tive (Executed & υnc hanged)ExecuLed Referenced 迦堕y匿叫 Verified 3.2.1 クラス(C1ass) オペレーション(OeratIons)isInstance isMember issubclass ”クラス(class)”は、クラスのインスタンスであるオブジェクトのセッ トを定義する不変のオブジェクトである。 クラスの固有のオペレーションは、オペレーション”new”により、新しいイ ンスタンスを生成したり、オペレーション°’ convert”により、他の クラスのインスタンスをそのクラスのインスタンスに変更したり、オペレーショ ン’ 1slnstance”により、オブジェクトがインスタンスであるかを 示したり、オペレーション”is)4ember”により、オブジェクトがメン バであるかを示したり、オペレーション”1ssubclass”により、他の クラスが現在のクラスのサブクラスであるか否かを示したりする。 3.2.2 コンストレインド(Constrained)アトリビュート(a ttributes)Constraint ”コンストレインドオブジェクト(constrained object)” は、そのオブジェクトがメンバである他のクラスによって特定されたプロパティ のそれらに対してコンストレイントを強いる。 コンストレインドオブジェクトの固有のアトリビュートは、コンストレイントで ある(アトリビュート” constraint”)。 注:コンストレインドディクシジナリ、リスト及びセットは、コンストレインド オブジェクトである。 3.2.3 コンストレイント(Constraint)アトリビュー) (A ttributes)classld tstnstance isoptional ofcIass passage ”コンストレイント(constraint)”は、他のオブジェクトの制約を 定義するオブジェクトである。 コンストレイントの固有の7トリビユートは、コンストレイントのサブジェクト がメンバとなるであろうクラスの識別子(アトリビュート”classld”) と、そのクラス自身(アトリビュート”orclass”)と、サブジェクトが クラスのインスタンスとなるか否かくアトリビュート”1slnsLance”  )と、サブジェクトがニル(0)であるか否か(アトリビュート” 1sOp tional”)と、サブジェクトのパッセージ(アトリビュート”passa ge” )とである・3.2.4 エクセブション(EXCetiOn)オペレ ーション(OeratiOnS)゛′エクセプション(exception)  ”は、実行又部よ遂行の異常終了を示すオブジェクトである。 エクセプションの固有のオペレーションは、エクセブションを送出する(オペレ ーション” throw” )。 3.2.5 エグゼキューテノド(Executed)atch O oop °゛実行オブジェクト(excuted object)“は、プロシージャの アイテムとして許可される。 実行オブジェクトの固有のオペレーションは、(i)オペレーション”do’  lこより、1回だけ、(i i)オペレーション”catch”により、一定の エクセプションを1回キャッチすることを、(i i i)オペレーション′i 「”により、予め定められた条件が充たされた場合にのみ、(iv)オペレーシ ョン”repeat”をこより、ある一定の回数だけ、(V)オペレー乃ン”1 00p”により、不定の回数だけ、又は(vi)オペレーション”while” により、他の実行オブジェクトの遂行が指示する回数だけ、実行オブジェクトを 遂行する。さら(こ、他のオペレーションは、2つの実行されるオブジェクトの うち何れかを実行すべき力亀を定める(オペレーション” either″)。 注二クラス”Pr111itive”の定義済みコンク1ノートサブクラスのイ ンスタンスlよ、クラス”Con5trainedList”の定義済みサブク ラスと同様lこ、実行オブジェクトである。 3.2.6’jJ豆邦辻1油Q」鉦部亘り眺躯豆(°゛実行エクセプション(e xecution exception) ”は、エンシンカCプロシージヤの アイテムを実行できないことを示すカーネルエクセブションである。 このクラスの定義済みサブクラスの中には、”内部エクセブション(Inter nalexcept 1on)+がある。この”内部エクセブション(Inte rnal exception) ”のメンバは、エンジンが、インストラクシ ョンセットのある部分の実行に失敗したことを示す。理想的なエンジンでは、こ のようなエクセブションは送出されないが、実際のエンジンでは、このようなエ クセブションが送出される。実際のエンジンでは、例えば、2つの整数の和がエ ンジンにとって内部的に有効に表すには大きすぎるとき等に、エクセブションが 送出される。 3.2.7 識Ij子(Identifier)”識別子(アイデンティファイ ア: 1dentifier)“は、特定のコンテキストにおいて、任意のオブ ジェクトを他のオブジェクトから識別するプリミティブ(基本要素: prim itive)である。 3.2.8 カーネルエクセプション(Kernel Exce tion)” カーネルエクセプション(kernel exception)”は、本セクシ ョンのクラスのメンバによって送出されるプログラミングエクセブション(pr ogramming exception)である。 3.2.9 マーク(Mark) ”マーク(mark)”は、1つの可能な値を伴ったプリミティブである。マー クは、一連のオブジェクトを区分するために使用され、通常はスタックの一番上 のものに使用される。 3.2.10 モディファイヤ(Nod i r 1er)”モディファイヤ( modifier)”は、” demarcate” 、” getclass ” 、” getProperty” 、” getVariable″、”  mention″、” 5etAttribute” S” 5etPrope r狽凵h 。 ”5etVariable”及び”useStack”の可能な値を伴ったプリ ミティブである。モディファイヤは、プロシージャにおいて、モディファイヤの 直後に存在するアイテムの実行を変えるために用いられる。 3.2.11 ニル(Hit) ”ニル(0:n1l)“は、1つの可能な値を伴ったプリミティブである。ニル (0)は、クラスのメンバが、例えばスタック上に、存在しないことを示すため に用いられる。 3.2.12 オブジェクト(Obect)アトリビュート(Attribut es)1ass opy finalize initial 1ze isEqual elect 部オペレーション(Internal Oerations)getAttri bute getclass getproperty getVariable setAttribute setProperty setVariable ”オブジェクト(object)”は、情報(inforIlation)及び 情報処理(informaLion processing)の両方から成る、 インストラクションセットのユニットである。 また、オブジェクトは、クラスのインスタンスである。 オブジェクトの固有のアトリビュートは、それのクラス(”class”)及び それのサイズ(” 5ize“)である。 オブジェクトの固有のオペレーションは、そのオブジェクトを初期化したり(オ ペレーション”1nitialize”)、そのオブジェクトを最終化したり( オペレーション”finalize”)、そのオブジェクトが他のオブジェクト に等しいか否かを判断したり(オペレーション“1sEqual”)、幾つかの オブジェクトのうちのどれが前者のオブジェクトと等しいかを判断して、そのオ ブジェクトと対をなしてその実行オブジェクトを遂行したり(オペレーション” 5elect”)、そのオブジェクト分かれてはいるが同一である、そのオブジ ェクト自身のコピーを生成したりする(オペレーション”copy” )。 オブジェクトは、幾つかの内部的フィーチャを有する。内部的フィーチャは、シ ステムフィーチャであり、このシステムフィーチャは、クラス”object” によってシールされ、さらに、クラス″objecL″のユーザ定義サブクラス に固有のフィーチャが、同一の識別子を有することを妨げるものではない。 したがって、内部的フィーチャは、仮想的なものである。オブジェクトの唯一の 目的は、インストラクションセットの定義、特にその実行モデルについて、簡略 化することである。 オブジェクトの内部的オペレーションは、オブジェクトのクラスのインプリメン テーション及びインタフェースにおいて使用される識別子を、実行時に、オブジ ェクトにバインドする。したがって、オブジェクトは、以下のことができる。 すなわち、(i)ある識別子が示すそれ自身のアトリビュートを、オペレーショ ン゛’ getAttribute”により取得、又はオペレーション” 5e tAttribute”により設定する。(i i)ある識別子が示すそれ自身 のプロパティを、オペレーション“getProperty−により取得、又は オペレーション”5etProperty”により設定する。 (i i i)ある識別子が示す変数を、オペレーション”getVariab le“により取得、又はオペレーション”5etVariable”により設定 する。又は、 (iv)オペレージコン”getcIass”により、識別子が 示すクラスを特定しロケート(locate)する。 3.2.13 パッケージ(Packae)”パッケージ(package)” は、クラスのコンストレインドされたセットである。 さらに、パッケージは、引用されたオブジェクトであり、パッケージが含む各ク ラスの同等なものである。 1つのパッケージは、以下に述べるような変更だけで、そのパッケージが他のパ ッケージから生成できる場合にのみ、他のパッケージに対して後方向に互換性が ある。その変更とは、第1に、新しいクラスが付加すること、第2に、現存のク ラスは、その現存のクラスと後方向に互換性があるクラスに置き換えることであ る。 3.2.14 プロシージャ(Procedure)”プロシージャ(proc edure)”は、実行オブジェクトの順序付けられたセットを含むプリミティ ブである。 止」二上り工1久ぢ2交邦はブzしヨ色鉦キ旦C五喰劇也”プログラミングエク セブション(programming exceptionビは、フィーチャの 遂行において、プログラミングエラーが生じたことを示すエクセプションである 。 3.2.16 有 格識別子(Quarified Identifier)” 有資格識別子(quarified 1dentirier) ”は、フィーチ ャ及びクラスを示す識別子である。ここで、そのフィーチャのインプリメンテー ションは、そのクラスに固有であるが又は継承されている。 3.2.17 リフアレンスト(Referenced)アトリビュート (A ttributes)t 5Protected オペレーション(Operations)discard ssame protect rer ”参照されるオブジェクト(リフアレンストオブジェクト: referenc ed objecし)゛は、そのオブジェクトに対するリファレンスを取得する ことができるオブジェクトである。リフアレンストオブジェクトのフィーチャは 、そのオブジェクト自身ではなく、それらを要求するのに使われるリファレンス を操作する。 リフアレンストオブジェクトの固有のアトリビュートは、リファレンスが保護さ れているか否かを明らかにする(アトリビュート”1sProtected”  )。 リフアレンストオブジェクトの固有のオペレーションは、そのオブジェク トに対する新しいリファレンスを生成したり(オペレーション”rer”)、所 望するならばそれを保護したり(オペレーション”protect”)、現存の リファレンスを廃棄したり(オペレーション”discard“)、2つのリフ ァレンスが同一のオブジェクトに対するものであるか否かを検査したりする(オ ペレーション”1ssaie”)。 注:全てのオブジェクトは、リフアレンストオブジェクトである。このとき、現 在のクラスは、純粋に教育的な理由によって定義される。 3.2.18 セレクタ(Selector)”セレクタ(selector) ”は、” break”、”client” 、” continue”、”  escalate” 、 ” here″、” process″、” 5e1 4″及び5ucceed″の可能な値を伴ったプリミティブである。セレクタは 、特別な実行結果を得るために用いられる。 3.2.19 変更されない(UnChaned)”変更されないオブジェクト (アンチェインシトオブジェクト: unchanged object)”は 、変更させることはない。”変更されない(unchanged)″ということ は、アンチェインシトオブジェクトがメンバである他のクラスに依存している。 また、アンチェインシトオブジェクトは、”不変なオブジェクト(i+uuta ble object)”と呼ばれる場合がある。 注:”クラス” C1ass””exception” 、” packel< e” 、” pri@1tive″及び”time”のメンバは、不変である。 3.2.20 予1、れないエクセブション Unex ected Exce  tianアトリビュート (Attributes)exception ”予想されないエクセプション(unexpected exception) ″は、フィーチャが明らかではないクラスのエクセブションを送出したことを示 す実行エクセブションである。 予想されないエクセブションの固有なアトリビュートは、明らかにされていない エクセブションである(アトリビュート”exception” ) 。 3.2.21 検査(Verified)オペレーション(Operation s)verify ”検査されるオブジェクト(verified object>”は、そのオブ ジェクトがメンバである他のクラスに依存する1以上の方法で内部的に不一致と することができる。 検査されるオブジェクトの固有のオペレーションは、オブジェクトが内部的に一 致するか否かを示す(オペレーション”verify”)。 注:セットは、検査されるオブジェクトである。 3.3 プリミティブグルシーブ(Primitive GrouObject  (Referenced)1Exception (llnchanged) ・伊Programming Exception・ ・ ・ な工1■μu■ 弐坦山狙 6Primitive (Executed & Unchanged)・・シ ュ(Ordered) ・−Bo匣ean (Ordered)−−Character (Cased  & 0rdered)・・Number (Ordered)−Time ( Ordered & Unchanged)92世 ”ビット(bit)”は、2つの可能な値、すなわち”0”及び” 1”とを伴 ったプリミティブである。 3.3.2 ブーリア:/ (boolean)オペレーション(Oerati ons)”ブーリアン(boolean) ”は、2つの可能な値、すなわち“ 偽(false) ”と、”真(true) ”とを伴ったプリミティブである 。 ブーリアンの固有のオペレーションは、論理積(オペレーション”and”)、 論31J (tペレ−ション”or”)及び論理否定(オペレーション”not ”)を可能にする。 3.3.3 ケースド(Cased) アトリビュート(Attributes)isLover isllpper オペレーション(Oerations)°“ケースド(cased)”オブジェ クトは、キャラクタ情報を含む。このようなキャラクタ情報、すなわちケースド オブジェクト自身は、英大文字(アッパーケース: upper−case)  、小文字(ロウアーケース: 1over−case) 、又はそれらを混合し て含むことができる。 ケースドオブジェクトの固有のアトリビュートは、キャラクタ情報が英小文字で あるかくアトリビュート”1sLover”)、又はキャラクタ情報が英大文字 であるか(アトリビュート”1sUpper“)を示す。 ケースドオブジェクトの固有のオペレーションは、そのオブジェクトと同等で全 て英小文字のものを生成したり(オペレーション“a+akeLover”)、 そのオブジェクトと同等で全て英大文字のものを生成したりする(オペレーショ ン”makeUl)per” )。 注=2つのケースドオブジェクトは、オペレーション”1akeLQマe「”又 はオペレーション”鳳akeUpper”と組合せてオペレーション” 1sE qual“を使用することにより、それらの大小文字に関わりなく、比較するこ とができる。 注:キャラクタとストリングは、ケースドオブジェクトである。 3.3.4 キャラクタ(Character)”キャラクタ(charact er)”は、可能な値がユニコード[(Inicodelのキャラクタであるプ リミティブである。 3.3.5 インチジャ(Inteer)オペレーション(OeratiOnS )”インチジャ(integer)”は、ナンバ(number)であり、この ナンバも整数である。 インチジャの固有のオペレーションは、整数の除算を行い、リザルトとして商( オペレーション″quotient”)又は剰余(オペレーション”modul us”)を生成する。 注:本質的に、エンジンは、有限な精度でのみ整数を表すことができる。したが って、全ての整数が、必ずしもこのクラスのインスタンスであるとは限らな11 )。 3、3.6 ナンバ(Number) オペレーション(Operat 1ons)abs add multiply !1egate round Subtract truncate ゛°ナンバ<nuu+ber)”は、基本的な演算操作を可能にするプリミティ ブである。 ナンバの固有のオペレーションは、加算(オペレーション”add” ) 、減 算(オペレーション” 5ubtruct” ) 、掛算(オペレーション”  multiply” ) 、除算(オペレーション“divide”)、符号反 転(オペレーション゛” negate”)、絶対値(オペレーション”abs ”)、丸め(オペレーション“round”)、切捨て(オペレーション” t urncate” ) 、最小値(オペレーション” floor” )及び最 大値(オペレーション”cei I ing”)の機能を遂行する。 3.3.7 オクテツト(Octet)”オクテツト(octet)”は、8ビ ツトから成るプリミティブである。リファレンスの目的ために、そのビットは、 ビット[7]からビット[0]で示される。 3.3.8 オーダー(Ordered)オペレーション(Operat 1o ns)isArter isBefore 注:2つのオーダーオブジェクトが一致しているが否がは、オペレーション”1 sEqual”により示される。 注:多くのクラスのインスタンスは、オーダーオブジェクトである。 3、3.9 プリミティブ(Primitive)注:全てのインストラクショ ンセットプリミティブが、このクラスのメンバであるわけではない。 3.3.10 プリミティブエクセプション(Primitive Exce  Lion)”プリミティブエクセブション(primitive except ion)“は、本セクションのクラスのメンバによって送出されたプログラミン グエクセプションである。 3.3.11 テレナンバ(Telenumber)アトリビュート(Attr ibutes)country extension telephone °′テレナンバ(te 1enua+ber)“は、国際電話ネットワークにお いて、電話機のアドレスを与えるオブジェクトであり、すなわち電話番号である 。 テレナンバの固有のアトリビュートは、電話機が置かれている国のコード(アト リビュート”country” ) 、その国が電話機に与えるナンバ(アトリ ビュート”telephone”)、及び電話機に内線等がある場合には、その 電話機の内線コード(アトリビュート”extension”)である。 3.3.12 タイム(Time) オペレーション(OeratlonS)”タイムQime) ”は、UTCを用 いて、1秒車位で日付及び時間を特定するオブジェクトである。タイムは、計測 された時間帯を記録し、さらに、もしあるならば、その時点におけるDSTにつ いても記録する。 時間の固有のオペレーションは、秒数により時間を調節したり(オペレーション ゛’ adjust”)、ある時間と他の時間との時間間隔を与えたりする(オ ペレーション゛’ 1nterval” )。 3.4 コレクショングループ(Collection Grou )Obje ct (Rererenced)・−・−肛り銭り区(Executed)・・ −・奴組虹針■ユ(Executed)−・・Dictionary o 9 ° −Con5trained Dictionar (Constr ained)・ ・−−・Lexicon −EXception (Unchanged)0 ° Programmin g Exception・ ・ −Co11ection Exce Lion 3.4.1 アソシエーション(Association)アトリビュート(A ttributes)ey value ”アソシエーション(association) ”は、1つのオブジェクトで あり、このオブジェクトは、1つのオブジェクトの°’ key”と”valu e”である2つのオブジェクトを含む。 アソシエーションの固有のアトリビュートは、それのキー(アトリビュート”k ey”)及びそれの値(アトリビュート”value”)である。 注:アソシエーションは、ディクショナリを生成するために用いられる。 3.4.2 ピントストリング(BitStrin)”ビットストリング(bi t string)”は、クラス”bit”のインスタンスをアイテムとするコ ンストレイントリストである。 3.4.3 コレクション(Collectionアトリビュート(Attri butes)length オペレーション(OearatiOnS)clear examins exclude include stream “コレクション(cot Iection)”は、順序付けされていない0以上 のオブジェクトのセットを含んでいる1つのオブジェクトである。ここで、0以 上のオブジェクトは、コレクションのアイテムであり、そのプロパティ内にある 。コレクションの“レングス(length)”は、コレクションのアイテムの 数である。コレクションは、レングスがゼロの時にクリア(”clear”)さ れている。クラス”collection”のサブクラスは、そのメンバのアイ テムを制限することができる。 コレクションの固有のアトリビュートは、コレクションのレングスである(アト リビュート”length” )。 コレクションの固有のオペレーションは、新しいアイテムとしてオブジェクトを 含ませたり(オペレーション“1nclude” ) 、現存しているアイテム を排除したり(オペレーション” exclude″)、現存している全てのア イテムを排除したり(オペレーション″clear″)、アイテムの点検のため の準備をしたり(オペレーション”examins”)、コレクションのアイテ ムをアイテムとするストリーム(stream)を生成したりする(オペレージ 1ン″Stream”)。 注:コレクションのレングスは、無制限である。 3.4.4 コレクションエクセプション(Collection Exce  tion”コレクションエクセプション(collection except ion)”は、本セクションのクラスのメンバにより送出されたプログラミング のエクセブションである。 3.4.5 コンストレインドディクショナリ(Constrained Di ctionar )”コンストレインドディクショナリ (constrain ed dictionary) ”は、コンストレイントを用いてキーが制限さ れたディクショナリである。ここで、単一のコンストレイントは、全ディクショ ナリを管理している。 3.4.6 コンストレイントリスト(Constrained Li5t)” コンストレイントリスト(constrained 1ist)”は、コンスト レイントを用いてアイテムが制限されたリストである。ここで、単一のコンスト レイントは、全リストを管理している。 3.4.7 コンストレインドセット(Constrained 5et)”コ ンストレインドセット(constrained 5et)”は、コンストレイ ントを用いてアイテムが制限されたセットである。ここで、単一のコンストレイ ントは、全セットを管理している。 3.4.8 ディ ショナリ (Dictlonar)オペレーション(Oer at!ons)add rop rind et rekey et transpose ”ディクショナリ (d ict 1onary)”は、アソシエーション(a ssociation)をアイテムとするセットである。クラス”dictio nary”のサブクラスは、そのメンバのキー、値、又はそれら両者を、制限す ることができる。 ディクショナリの固有のオペレーションは、新しいアイテムとして、あるキーと ある値との間のアソシエーションを含ませたり(オペレーション”add”)、 あるキーについてのアソシエーションを排除したり(オペレーション”drop ″)、あるキーに組み合わされた値を検出したり(オペレーション”get”) 、あるキーに組み合わされた値を設定したり(オペレーション”set”)、あ る値に組み合わされたキーを検出したり(オペレーション”rind”)、ある キーを他のキーに置換したり(オペレーション” rekey” ) 、2つの キーを転置したりする(オペレーション゛’ transpose” ) 。 3.4.9 ハラシュド(I(ashed)アトリビュート(Attribut es)hash ”ハラシュド(hashed) ”オブジェクトは、ハツシュファンクションで 定義されている他のクラスのメンバである。そのクラスの各メンバは、メンバ自 身のハツシュ(インチジャ)を計算する。ここで、2つのメンバが同一であれば 、それら2つのメンバのハツシュは同一である。 ハラシュドオブジェクトの固有のアトリビュートは、そのオブジェクトに対する ハツシュファンクション(アトリビュート”hash″)である。 注:ディクショナリのキーがハラシュドオブジェクトである場合、ディクショナ リのオペレーションの幾つかのオペレーションの遂行において、必ずしも必要で はないが、アトリビュート”hash”を使用することができる。 ゛レキシコン(lexicon)”は、キーが識別子であるコンストレインドデ ィクショナリである。 オペレーション(Oerations)drop ”リスト(list) ”は、アイテムが[1,nコで番号付けされるコレクシ ョンである。ここで、”n”はコレクションのレングスである。アイテムの番号 は、リスト中のアイテムの”ポジション(position)”である。 リストの固有のオペレーションは、新しいアイテムとしてオブジェクトを含ませ たり(オペレーション”add” ) 、現存しているアイテムを排除したり( オペレーション”drop” ) 、アイテムの点検のための準備をしたり(オ ペレーション”get”)、現存しているアイテムを置換したり(オペレーショ ン” set” ) 、現存しているアイテムのポジションを判断したり(オペ レーション゛’find”)、現存しているアイテムのポジションを変更したり (オペレーション“reposion” )、2つの現在のアイテムを転置した りする(オペレーション”transpose” )。 3.4.12 オクテツトストリング(Octet String)”オクテツ トストリング(OCtet string) ”は、アイテムがクラス”0ct et”のインスタンスであるコンストレイントリストである。 3.4.13 セット(Set) オペレーション(Oerations)intersection ”セット(set)”は、そのセットのうちの2つのアイテムが、取り入れられ た時点においては、同一ではないコレクションである。 セントの固有のオペレーションは、2つのセットの和集合(オペレーション”u nion”)又は共通集合(オペレーション”1ntersection”)を 計算したり、他のセントのアイテムに等しいアイテムを排除したりする(オペレ ーション”difference” )。 注:アイテムのサイト(4,1te)における変更は、2つのアイテムを同一の ものとして残しておくことがある。 3.4.14 スタック(Stack)オペレーション(Operations )push push I tea+s ゛スタック(stack)”は、通常、アイテムが付加された順序と逆の順序に 、そのアイテムがドロップ(drop)されるリストである。スタックの” ト ップ(top)“は、ポジションlであり、スタックのパボトム(bottoa +)”のポジションは、スタックのレングスである。 スタックの固有のオペレーションは、トップにオブジェクトを付加したり(オペ レーション”push” ) 、 リストのアイテムをトップに付加したり(オ ペレーション°’ pushltems” ) 、トップのアイテムをドロフプ したり(オペレーション゛pOp”)、トップの2つのアイテムを転置したり( オペレーション” swap” ) 、いくつかの最上位のアイテムをあるポジ ション数だけロール(roll) したりする(オペレーション”r011″) 。 3.4.15 ストリーム(Stream)アトリビュート(Attribut es)°°ストリーム(stream) ”は、組み合わされた一連のオブジェ クト中のオブジェクト、すなわちストリームの”アイテム”に対して、順次アク セスするためのオブジェクトである。ストリームは、同一のアイテムを2回生成 することはなく、最後のアイテムを生成させた後はニル(0)を生じる。 ストリームの固有のアトリビュートは、要求に応じて次のアイテムを生成できる ようにしたり(アトリビュート”next“)、生成させた最新のアイテムを再 生できるようにしたり(アトリビュート“currnt”)、最後のアイテムが 生成されたか否か定めたりできるようにする(アトリビュート”1sDone“ )。 注ニストリームの任意のアイテム自身がニル(0)である場合、このことを、ア トリビュート°’ next”又はアトリビュート”current”のインタ ーブリートに当たって考慮する必要がある。 ニー土−上旦−ス上ユ之lユ針n皿と オペレーション(Oerations)substring ”ストリング(string)“は、クラス”character”のインスタ ンスをアイテムとするコンストレイントリストである。 ストリングの固有のオペレーションは、サブストリングのコピーを生成する(( オペレーション“substring” )。サブストリングは、ストリング内 の連続するポジションを占めている0以上のキャラクタの列である。サブストリ ングは、2つのポジションP、及びP2によって定義され、サブストリングのア イテムは、ストリングのポジション[p 8. P 2 >である。 3.5 クラス定義グループ(C1ass Definition Grou  )Object (Rererenced)拳C1assDefinition −Exception (Unchanged)−−Prograa+ming Exceptionφ −・ C1ass Exce tion・ ・ 並五剰 山狙 3.5.1 アトリビュート(Attribute)アトリビュート(Attr ibutes)constraint 5Set ”アトリビュート定II (attribute definition) ”  、すなわちクラス” Attribute”のメンバは、アトリビュートのた めのフィーチャの定義である。 アトリビュート定義の固有のアトリビュートは、アトリビュートがどのようにし て拘束されるかくアトリビュート”constrint”)、及びそれを設定で きるか否か(アトリビュート”1sSet” )を定義する。アトリビュート” constrint”は、オペレーション”αGet”のリザルトに影響する。 さらに、アトリビュートがセット可能である場合には、アトリビュート“con strint”は、オペレーション“αSet”のアーギュメントにも影響する 。 ia+ple+aentation interface iajorEdition minorEdition 1tle オペレーション(OeratlonS)o+akec 1asses ”クラス定義(class definition)”は、クラスを定義するオ ブジェクトである。 クラス定義の固有のアトリビュートは、クラスのインターフェース(アトリビュ ート”1nterface” ) 、インプリメンテーション(アトリビュー) −” implementanion”)、タイトル(アトリビュート”tit le“)、メジャーエディジョン(アトリビュート”majorEdition ” )及びマイナーエディジョン(アトリビュート”m1norEdition ” )を定義する〇クラス定義の固有のオペレーションは、クラス定義のセット が定義する1以上のクラスのセットを生成する(オペレーション”a+akec Iass″)。クラス内において必要とされるリファレンスは、クラスが生成さ れた時に設定される。オペレーションを要求しているプロセスは、そのクラスの オーサーである。 3.5.3 クラスエクセプション(Class Exce Lion)”クラ スエクセブション(class exception) ”は、本セクションの クラスのメンバにより送出されたプログラミングのエクセブションである。 eX(2ptions isPublic ゛°フィーチャ定義(feature definition) ” 、すなわ ちクラス” feature−のメンバは、フィーチャ定義がそのインターフェ ースの一部であるクラスの全メンバの特別なフィーチャを定義するオブジェクト である。 フィーチャ定義の固有のアトリビュートは、フィーチャが、プライベートではな く、パブリックであるか否かぐアトリビュート”1sPubl ic”)と、フ ィーチャのエクセプションがメンバであるクラス(アトリビュート”eXcep tions”)とを定義する。システムフィーチャは、フィーチャ定義の支配を 受けな0゜3.5.5 インプリメンテーション(la+plementati on)アトリビュート(Attributes)c lassMethods fromMethods instanceMethods properties setMethods superclasses toMethods vocabulary ”インプリメンテーション(implementation)”は、選択された フィーチャ及び変換を実行するオブジェクトである。ここで、フィーチャ及び変 換は、そのインプリメンテーションが一部となっているクラスに固有であるもの 、又は継承されているものである。 インプリメンテーションの固有のアトリビュートは、インプリメンテーションの 直接スーパークラスを特定したり(アトリビュート”5uperclasses ” ) 、選択されたクラスフィーチャ(アトリビュート”classMeth ods”)、インスタンスフィーチャ (アトリビュート” instance Methods”及び”アトリビュートsetMethodS”)、他のクラス からの変換(アトリビュート”frolMettlods”)及び他のクラスへ の変換(アトリビュート’ toMethods” )のためのメソッドを提供 したり、クラスに対して固有のプロパティを定義したり(アトリビュート″pr operties”)、インプリメンテーションがユーザ定義クラスを示すため に用いる識別子を定義したりする(アトリビュート“vocabulary”) 。 3.5.6 イン −フェース(Interf ace)アトリビュート(At tributes)classFeatures instanceFeatures isAbstract sealedclassFeaturessealedlnstanceFea turessuperclasses vocabulary °°インターフェース(interface)“は、インターフェースを有する クラスに固有のフィーチャを定義するオブジェクトである。 インターフェースの固有のアトリビュートは、クラスがアブストラクトであるか 否かを定義したり (アトリビュート”1sAbstract”)、クラスのイ ミーディエイトインターフェーススーパークラス(アトリビュート”5uper classes”)を特定したり、クラスの固有のクラスフィーチャ(アトリビ ュート“c!assFeatures” )及びインスタンスフィーチャ(アト リビュート” 1nstanceFeatures″)を定義したり、そのクラ スがシールするインスタンスフィーチャ(アトリビュート”sea 1edln stanceFeatures” )及びそのクラスフィーチャ(アトリビュー ト” 5ealedcIassFeatures”)を特定したり、ユーザ定義 クラスを表す際にインターフェースが使用する識別子を定義したりする(アトリ ビュート”vocabu 1ary“)・3.5.7 メソッド(Method )アトリビュート(Attributes)valiables ”メソッド(method)”は、フィーチャをインプリメントするために使用 されるオブジェクトである。 メソッドの固有のアトリビュートは、そのメソッドのプロシージャ(アトリビュ ート”procedure”)と、そのメソッドの変数の識別子(アトリビュー ト”valables” )とである。 3.5.8 オペレーション(Oeration)アトリビュート(Attri butes)”オペレーション定II (operation definit ion)”、すなわちクラス” 0peraLion”のメンバは、オペレーシ ョンについてのフィーチャ定義である・オペレーション定義の固有のアトリビュ ートは、オペレーションのアーギュメントが可変数であるか固定数であるか定義 し、固定数であった場合には、どのように各アーギュメントが制約されるかを定 義する(アトリビュート″arguments”)。また、アトリビュートは、 オペレーションがリザルトを有するか否かを定義し、リザルトを有する場合には 、どのようにそのリザルトが制約されるかを定義する(アトリビュート”res u l t”)。 3.6 特定化グループ(Identification Grou )Obj ect (Referenced)−C1tation (Orderecl) 3.6.1 サイテション(Citation)アトリビュート(Attrib utes)majorEdition minorEdition ′”サイテション(citation)”は、テレスクリプトネットワー列こお l、Xで、0以上のエディジョン、例えばクラスを、特定するオブジェクトであ る。 サイテションの固有のアトリビュートは、エディジョンがその中に現れるタイト ル(アトリビュート”ti tle”)と、オプションとしてそのタイトルのオ ーナー(アトリビュート”author“)とを定義する。さらに、サイテショ ンの固有のアトリビュートは、オプションとして、エディジョンのメジャーエデ ィジョン(アトリビュート”majorEdition” ) 、エディジョン のマイナーエディジョン(アトリビュート” 1inorEdition”)、 又はその両方を定義する。 3.6.2 引用(Cited) アトリビュート(Attributes)(:1tation ”引用される(cited)”オブジェクトは、割り当てられたサイテションを 有するオブジェクトである。2つの引用されたオブジェクトに割り当てられたサ イテション内において、割り当てられたテレネームが同等である場合にのみ、2 つの引用されたオブジェクトは同等である。 引用されたオブジェクトの固有のアトリビュートは、オブジェクトの割り当てら れたサイテション(アトリビュート“citation”)である。 注°クラス及びパッケージは、引用されたオブジェクトである。 3.6.3 名前付き(Named) アトリビュート(Attributes)Na5e ”名前付きオブジェクト(named object)”は、割り当てられたテ レネームを有するオブジェクトである。2つの名前付きオブジェクトに割り当て られたテレネームが同等である場合にのみ、2つの名前付きオブジェクトは、同 等である。 名前付きオブジェクトの固有のアトリビュートは、オブジェクトに割り当てられ たテレネームである(アトリビュート″name”)。 注;プロセスは、名前付きオブジェクトである。 3.6.4 テレアドレス(Teleaddress)アトリビュート(Att ributes)location prvider routingAdvice ”テレアドレス(teleaddress)”は、テレスクリプトネットワーク において、0以上のブレイスの位置を決めるオブジェクトである。 テレアドレスの固有のアトリビュートは、ブレイスのり−ジョンと(アトリビュ ート”provider“)、オプションとしてブレイスのロケーション(アト リビュート”faction“)と、ルーティングアドバイスと(アトリビュー ト”routingAdvice”)を与える。 3.8.5 テレネーム(Telename)アトリビュート(Attribu tes)authority identity ”テレネーム(te lename)“は、ネットワーク中において0以上の名 前付きオブジェクトを特定するオブジェクトである。 テレネームの固有のアトリビュートは、名前付きオブジェクトのオーソリティを 定義する(アトリビュート”authority″)。さらに、テレネームの固 有の7トリビユートは、オプションとして、単一の名前付きオブジェクトのアイ デンティティを定義する(アトリビュート” 1dentity” )。 3.7 プロセスグループ(Process GrouObject (Rer erenced)・Contact −Exception (Unchanged)+0Programming  Exceptiono−−Process Exce tion・Pera+i t (Ordered)3.7.1 コンタクト(Contact)アトリビュ ート(Attributes)subject subjectclass subjectName subjectNotes “コンタクト(contact)”は、他のプロセスと相互作用するプロセスに ついて表現し記述するオブジェクトである。 コンタクトの固有のアトリビュートは、サブジェクト(アトリビュート”5ub ject” ) 、サブジェクトの割り当てられたテレネーム(アトリビュート ”5ubjectNaa+e”)、サブジェクトのクラスの割り当てられたサイ テション(アトリビュート”5ubjectcIass”)、及びオブザーバが 保持するオブジェクト(アトリビュート”5ubjectNotes”)である 。エンジンは、サブジェクトアトリビュートがニル(0)であっても、他のアト リビュートの真正さを保証する。 注:典型的には、アトリビュート”5ubjectNotes”は、オブザーバ の観点からの2つのプロセス間の相互作用の状態である。 contacts ”コンタクトされた(contacted)“オブジェクトは、必然的にプロセ スであり、コンタクトのオブジェクトのセットを保つ際に、エンジンの協力を受 ける。 コンタクトされたオブジェクトの固有のアトリビュートは、オブジェクトのコン タクトである(アトリビュー)−” contacts” )。 注:定義済みでないクラスのインスタンスは、コンタクトされるオブジェクトで ある。 ”バーミツト(permit)”は、プロセスに能力を与えるオブジェクトであ る。 アトリビュート(Attributes)ge authenticity canCharge canCreate canDeny canG。 canGrant canRestart canSend charges extent パーミツトの固有のアトリビュートは、パーミツトのサブジェクトの最大のエー ジ(アトリビュート”age”)、サイズ(アトリビュート” extent”  ) 、チャージ(アトリビュート”charges”)、プライオリティ ( アトリビュート”priori ty”)及びオーセンティシティ (アトリビ ュート”authenticity”)を定義するインチジャを含んでいる。 また、パーミツトの固有のアトリビュートは、サブジェクトが以下のことを許可 することができるブーリアンを含んでいる。(1)オペレーション“charg e”(アトリビュート”canCharge”)、オペレーション”go” ( アトリビュート”CanGo” ) 、オペレーション゛’5end” (アト リビュート”canSend” ) 、又はクラス”Process”のサブク ラスのオペレーション”new” (アトリビュート”cancreate”) を要求すること。(i i)あるプロセスのあるパーミツトを経た能力を拒絶( アトリビュート”canDeny” ) L、又はその能力を許容(アトリビュ ート”canGrant” )すること。(i i i)再スタート(アトリビ ュート” canstart” )すること。 オペレーション(OeratlonS)i n tersec t i on バーミツトの固有のオペレーションは、2つのパーミツトの共通集合をリターン する(オペレーション″1ntersection″)03.7.4 プロセス エクセブション(Process Exception)”プロセスエクセブシ ョン(process exception)”は、本セクションのクラスのメ ンバによって送出されるプログラミングのエクセブションである。 3.7.5 プロセス(Process)アトリビュート(Attribute s)brand charges IocalPermi t privatecIasses regionalPermit オペレーション(Oeratlons)charge 1ve restricted wait ”プロセス(process)”は、自律的な演算を構成する名前付きオブジェ クトである。 プロセスの固有の7トリビユートは、プロセスのエージ(アトリビュー)”ag e” ) 、ブランド(アトリビュート”brand”)、チャージ(アトリビ ュート′charges” ) 、ローカルバーミツト(アトリビュート” I ocalPermit” ) 、パーミツト (アトリビュート”permit ”)、プライオリティ (アトリビュート”priority“)、プライベー トに所有され使用されるクラス(アトリビュート”privatecIasse s” ) 、及びリージョナルパーミット(アトリビュート” regiona lPermit’ )である。 プロセスの固有のオペレーションは、プロセスの自律的な演算を行ったり(オペ レーション”1ive”)、所定の期間の間、演算処理を遅延させたり(オペレ ーション°’ wait” ) 、プロセス自身に一時的なパーミツトを課した り(オペレーション゛’ restrict” ) 、一時的なパーミツト及び レスポンダのオーナーの実効的パーミントをもとにプロシージャを遂行したり( オペレーション”5ponsor” ) 、現在のプロセスが他のプロセスに与 えるサービスについて他のプロセスにチャージしたりする(オペレーション”c harge” )。 3.7.6 リソース(Resouce)アトリビュート(Attribute s)condition cond i t i ons オペレーション(Oerations)”リソース(resouce)”は、オ ブジェクトであり、特定のプロシージャのプロセスの遂行の間、このオブジェク トについて、プロセスに対しである保証を与えることができる。 リソースの固有のアトリビュートは、リソースの現在の状態(アトリビュート” condition”)と、リソースの可能な状態の識別子(アトリビュート“ C0nditions”)とである。 リソースの固有のオペレーションは、リソースがリソースに対して要求された保 証を作り上げたとき、特定のプロシージャを遂行する(オペレーション”use ”)Object (Referenced)” Authenticator ・Exception (Unchanged)・ ・ k昆」五並■皿 ・ 框y臣 °Process (Named) ・ ・ 酩月匹 −−Place (U++moved)・ シ■ 並仲y1説 3.8.1 エージェント(Aent オペレーション(Oerations)g。 end ”エージェント(agent)”は、1つのブレイスから次のブレイスに移動す ることのできるプロセスである。 エージェントの固有のオペレーションは、エージェントを1つの目的地に(オペ レーション”go″)、又は1以上のクローンを複数の目的地に同時に(オペレ ーション”5end“)転送する。 3.8.2 オーセンティ −タ(Authenticator“オーセンティ ケータ(authent 1cator)”は、オブジェクトであり、このオブ ジェクトを伴って、ネットワークは、例えばエージェントがリージョン間を通過 するとき、トリップを開始したエージェントを認証することのできる。 注二クラス”Authent 1cator”のコンクリートサブクラスは、リ ージョン間有であり、したがって、ユーザ定義クラスである。 3.8.3 相互 (lnterchaned)アトリビュート(Attrib utes)”相互変換された(interchanged)”オブジェクトは、 アンチェインシトオブジェクトであり、オブジェクトのオーナーがトリップする ときはいつでも、ネットワークは、このアンチェインシトオブジェクトの代わり に同等のオブジェクトを用する 相互変換されたオブジェクトの固有のアトリビュートは、オブジェクトのダイジ ェストである(アトリビュート”digest”)。 3.8.4 ミーンズ(Means) ”ミーンズ(means)”は、例えば特定の無線通信メディア等の手段を特定 するオブジェクトであり、これにより、ネットワークは、ソースがらのトリップ 、目的地へのトリップ、又はその両方を開始したエージェントを転送することが できる 注二クラス“Means” のコンクリートサブクラスは、リージョン特有であ り、したがって、ユーザ定義クラスである。 3.8.5 ブレイス(Plece) アトリビューh (Attributes)address publ 1ccIasses 土竺ヒシ」2」謔口■振と entering exiting terminate “ブレイス(place)”は、プロセスであり、このプロセスは、0以上の他 のプロセスのための場所である。 ブレイスの固有のアトリビュートは、ブレイスのアドレス(アトリビュート”a doress”)と、ブレイスの公的に所有され使用されるクラス(アトリビュ ート”publicclasses” )とである。 ブレイスの固有のオペレーションは、そのブレイスへのプロセスの進入の申し出 に対して判断を下したり(オペレーション”entering” ) 、そのプ ロセスからのプロセスのエクシットを記録したり(オペレージ目ン”exiti ng”)、リクエスタが十分に能力を持ち(リクエスタのパーミツトのアトリビ ュート”canTerminate”)、その占有者と同等である場合には、占 有者を強制的に終了させたりする(オペレーション+ter組nate” )。 3.8.6 チケット(Ticket)アトリビュート(Attributes )desiredWai t destinationAddressdestinationcIass ’ destinationName destinationPermi tmaximua+Wait “チケット(t 1cket)”は、トリップを行うエージェントの観点から見 た予定されたトリップを記述するチケットスタッブである。チケットの主な目的 は、トリップの目的地を特定することである。 チケットの固有のアトリビュートは、目的地のテレネーム(アトリビュービde stinationNaa+e” ) 、そのテレアドレス(アトリビュート” destinationadrresS”)、目的地がメンバであるクラスに対 するサイテション(アトリビュート”destinationcIass” )  、エージェントが目的地において必要とするローカルバーミツト(アトリビュ ート”destinationPermit”)、理想的にトリップが行われる べき時間(アトリビュート”desiredWait“)、及び如何なる状態に おいてもトリップが正常終了又は異常終了するべき時間(アトリビュート”ma ximumWait”)である。 3.8.7 チケットスタッブ(TicketSLub)travelNote s ”チケットスタップ(ticketstab)“は、トリップの結果を記述する オブジェクトである。 チケットスタップの固有のアトリビュートは、トリップのオリジンへの戻り道( アトリビュート”way”)と、トリップを開始したエージェントが独占的に使 用する、チケットに元々存在する情報(アトリビュート°’ travelNo tes”)とである。 3.8.8 トリップエクセブション(Tri Exce tion)アトリビ ュート(Attributes)ticketstab ゛°トリップエクセプション(trip exception) ”は、ネット ワークがチケットにより与えられたトリップが異常終了したことを表すエクセプ ションである。 トリップのエクセプションの固有のアトリビュートは、チケットスタップ(アト リビュート” ticketstab” )である。 3.8.9 アンムーブ(Unmoved)“移動しないオブジェクト(アンム ーブオブジェクトuna+oved object) ”は、ブレイヌからブレ イスに移動することができないオブジェクトである。アンムーブオブジェクトは 、移動不可能と記述される場合がある。 アンムーブオブジェクトの移動が試みられた場合には、そのオブジェクトに対す るリファレンスは、ボイドされる。 注:ブレイスは、移動不可能である。 3.8.10 ウェイ(Wa) アトリビュート(Attributed)authenticator ”ウェイ(マay)”は、ネットワークが、トリップを開始したエージェントを 転送することができるルート(道筋)を特定するオブジェクトである。 ウェイの固有のアトリビュートは、トリップが赴くリージョンのネーム(アトリ ビュート”name”)と、そのリージョンに進入するために用いられるオーセ ンティケータ(アトリビュート“authenticator”)とミーンズ( アトリビュート”meins” )である。 3.9 ミーティン ループ(Meetin Grou )Object (R ererenced)・Exception (Unchanged)・・Me eting Exception・Petition ・Process (Naa+ed) ・1Place (Unmoved) −・・Meeting Place Petitioned 3.9.1 ミーティングエ セブション(Meetin Exce Lion )”ミーティングエクセプション(meeting exception)”は 、ベティションが示すミーティングをミーティングブレイヌが取り計らうことが できながったことを表すエクセプションである。 3.9.2 ミーティングブレイス(Meetin Place)オベレーンヨ ン(Oera【1ons)part partAII パミーティングブレイス(meeting place)”は、占有者の中に含 まれる2つのベティションされたオブジェクト間のミーティングを取り計らうブ レイスである。 ミーティングブレイスの固有のオペレーションは、ミーティングを開始させたり  (オペレーション”meeじ)、ミーティングを終了させたり(オペレーショ ン”part”)、リクエスタによって行われた全てのミーティングを終了させ たりする(オペレーション”partAI I”)。 3.9.3 ベティション(Petition)アトリビュート(Attrib utes)agentcIass agentName maxiiuiWait ”ベテイション(petition)”は、ペテイショナの観点から見た場合の 予定されたミーティングを記述するオブジェクトである。ペテイションの主な目 的は、ベティショニを特定することである。 ベティションの固有のアトリビュートは、ペテイショニのテレネーム(アトリビ ュート“agentName“)、ペテイショニが1つのメンバであるクラスに 対するサイテション(アトリビュート”agentclass”)、及びミーテ ィングの試みがどの様な状態のもとにおいても正常終了又は異常終了するべき時 間(アトリビュート+maximumWait−)である。 3.9.4 ペティションド(Petitioned)オペレーション(Oer a[10nS)meeting pa10n5) ”ベティションド(petitioned)″オブジェクトは、必然的にエージ ェントであり、ミーティングの設立において、ペティショナ又はペティショニの 役割を果たすことができる。 ベティションドオブジェクトの固有のオペレーションは、ミーティングの要求に ついて判断を下したり(オペレーション”meeting“)、パーティングに ついて記録したりする(オペレーション”parting″)。 注:定義済みでないクラスのインスタンスは、ペティションドオブジェクトであ る。 3.10 その のグループ(Miscellanneous Grou )O bject (Referenced)・Ca1ender Til1le ・Exception (Unchanged)°・Programming  Exception+++Miscellaneous Exce tion・ Pattern (Ordered)−Primitive (Execute d & Unchanged)−・Number (Ordered)アトリビ ュート(^tLributes)day dayoflleek dayofYear dst hour 1nute onth econd year globalize localize normalize ”カレンダータイム(calender time) ”は、UTCを用いて、 1秒車位で、局地的な日付と時間を特定するオブジェクトである。カレンダータ イムは、局地的な時間帯と、その時その場所でDSTが施行されているならばそ のDSTについても記憶する。 カレンダータイムの固有のアトリビュートは、時間について、「時」 (アトリ ビュート”hour“)、「分」 (アトリビュート“m1nite”)及び「 秒」 (アトリビュート”5econd“)を供与し、日付について、「年」  (アトリビュート”year”)、 「月」 (アトリビュート”−onth” )及び「日」 (アトリビュート”day”)を供与し、「曜日」 (アトリビ ュート“dayOfWeek”)及び1年における「日」 (アトリビュー)− ” dayofYear”)を供与し、そして最後に、時間帯(アトリビュート ”zone”)と、及びそこで施行されているDSTについての情報(アトリビ ュート”dst”)とを供与する。 カレンダータイムの固有のオペレーションは、カレンダータイムをローカライズ したり(オペレーション” 1ocalize”)、カレンダータイムをグロー バライズしたり (オペレーション” globalize”)、カレンダータ イムをノーマライズしたりする(オペレーション”normal ize”)。 3.10.2 種々のエクセプション(Miscellaneous Exce  tion)”種々のエクセブション(ミセレネアスエクスセプション:履1s cellaneous eχception)”は、本セクションのクラスのメ ンバによって送出されたプログラミングのエクセブションである。 3、to、3 パターン(Pattern)オペレーション(OeratiOn S)1nd substitute ”パターン(pattern) ”は、ストリングを辞書的に解析するためのオ ブジェクトである。パターンのテキストは、それ自身ストリングであり、ストリ ング解析の正確な性質を定める。 パターンの固有のオペレーションは、最初のマツチングサブストリングのための ストリングをサーチしくオペレーション”find”)、又は全てのマツチング サブストリングを変更する(オペレーション”5ubsti tute”)。 3.10.4 ラン ムストリーム(Random Stream)”ランダム ストリーム(random stream)”は、ストリームであり、このスト リームのアイテムは、疑似ランダムに選択された[0.MEの範囲の整数である 。 このアイテムは、同じ間隔における整数、すなわちシード(seed)によって 定められる。ランダムストリームは、最後のアイテムを生成しない、この発明の 実施例において、”M”は、ランダムストリームの生成者によって選択され、初 期化のパラメータとして特定される。 注二本質的に、エンジンは、有限な精度でのみ、実数を表し、それらを含む算術 的なオペレーションを遂行する。したがって、全ての実数が、必ずしもこのクラ スのインスタンスであるわけではなく、実数によって行われた算術的なオペレー ションのリザルトは、近似的であることがある。 4 テレスクリプトクラスの詳細 テレスクリプトの定義済みクラスは、アペンディックスAの本セクションにおい てアルファベント類に定義されている。サブセクションは、それぞれのクラスに 当てられている。 4、 1 規約(Conventions)クラスの定義は、そのクラスを取り 巻くクラス図表の部分的な図により開始される。クラス自身は、アンダーライン で示すものとする。 以下のセクションは、各々の定義済みクラスの説明において、必要である場合に 限り記述されている。 クラス(Class) 本セクションは、クラスのフィーチャとは別に、クラスについて記述する。クラ スは、形式的には後述するセクション6の規約に従って規定されている。ただし 、クラスのフィーチャの定義の部分は省略されている(”01.”の部分)。ク ラスのインターフェースのエンコーダがパラメータ化される場合には、それがど のように成されているがが、ブローズ(散文)によって記述される(後述するセ クション6を参照すること。)。 成(Construction) 本セクションは、オペレーション”1旧tialize”について、それがクラ スのメンバに属しているとき、記述する。本セクションが省略されている場合、 後述するセクション6に示すように、特別な記述が含まれている。 サブクラス(Subclasses) 本セクションは、クラスの定義済み直接サブクラスの定義を含む。ここで、クラ スがクラス”Exception”のサブクラスでない場合にのみ、又はクラス がクラス”Exception”のサブクラスであっても定義済みサブクラスを 持たない場合にのみ、本セクションを省略する。 アトリビュート(Attributes)本セクションは、クラスに対する固有 のアトリビュートを定義する。 このセクションは分けられ、これらの分けられたセクションは、パブリック(公 的)、プライベート(私的)、インターナル(内部的)、及びクラスのインスタ ンス及びクラス自身の他のシステムアトリビュートに当てられている。ここで、 各セクションは、存在しない場合にのみ、省略される。 アトリビュートは、形式的にはセクション6の規約に従って定義される。アトリ ビュートのセマンティクス(意味: sea+antics)及びエクセプショ ン(例外:exception)は、非形式的に散文によって定義されている。 オペレーション(Oeratlons)本セクションは、上述した他のセクショ ンでクラスに対する固有なアトリビュートを定義するのと同様に、クラスに対す る固有なオペレーションを定義する。 オペレーションが、そのアーギュメント及びリザルトを保持しているスタックを 変更する場合、そのオペレーションのスタックに対する影響は、そのアーギュメ ントがスタックからポツプされ、且つリザルトがまだスタックにブツシュされて いないものと仮定して、記述される。 アダブチ−ジョン(AdatatlonS)本セクションは、クラスが継承した フィーチャをクラスがどのようにインプリメントするかを記述する。クラスがこ のようなフィーチャをインプリメントしない場合にのみ、本セクションは省略さ れる。 変換(Convers 1ons) 本セクションは、クラスのインスタンスを生成する変換について記述する。この ような変換がない場合のみ、本セクションは省略される。 個々の変換の定義は、変換元のクラス(ソースクラス: 5ource cla ss)を特定し、ソースクラスのメンバがどの様にして変換後のクラス(サブジ ェクトクラス: 5ubject class)に変換されるかを記述する。全 てのメンバを変換することができない場合には、とのメンバが変換され得るかを 示す。また、ある変換のソースクラスが、他の変換のソースクラスのサブクラス である場合には、前者の変換を後者の変換より優先する。ここで、これらの変換 は、連鎖的ではない。 注 変換は、1ステツプで行われる。したがって、例えば、テレナンバのストリ ングへの変換、及びストリングからオクテツトストリングへの変換が定義されて いるとしても、テレナンバのオクテ・ノドストリングへの変換は定義されて(1 ない。 4.2 エージェント(Aent) Object (Rererenced)−Process (Named) ・ ・ 九μ匹 でと二mlゴヱυ2に際に≦ユZ止亘尭j卸匹Q肛ル皿伍go・ unprotected op (ticket: copied ticke t) TicketStubthrows PeriitViolated、S tatelmproper、TripException;チケットの他の条項 に従って、チケットによって特定された目的地にレスポンダを転送する(arg ument″ticket”)。オペレーションは、チケットスタッブをリター ンする。 レスポンダがオペレーション″gO”を禁止した場合(” PermitVio lated”)、レスポンダの状態(state)がオペレーション”go”を 妨げている場合(” StateImproper” ) 、又はトリップが異 常終了した場合(TripException″)には、エクセプションが送出 される。 囮 unprotected op (ticket: copied Li5t  [Ticketコ)TicketStublNil throws PermitViolated、 Statelmproper 、 TripException;チケットの他の条項に従って、それぞれの全 てのリストされたチケット(アーギュメント”tickets” )によって特 定された目的地に、レスポンダのクローンを転送する。レスポンダのアローワン ス(alto!ance)は、チケットがクローンに割り当てる量によって減少 される。オペレーションは、レスポンダにニル(0)をリターンし、各クローン にチケットスタップをリターンする。 クラス” PermitViolated”又はクラス” Statelmpr oper”の何れかのクラスのメンバが、オペレーションを異常終了させた場合 、レスポンダは異常終了したことを認識し、如何なるクローンも生成されない。 そうでない場合には、レスポンダはオペレーションが正常終了したとこを認識す る。そして、個々に独立した各クローンは、クラス” TripExcepti on”のメンバにより、そのオペレーションが正常終了又は異常終了したことを 認識する。 レスポンダがオペレーション”5end“を禁止するパーミツトを保持している か、又はそのアローワンスがリストされたチケットのパーミツトのものの合計よ りも少ない場合、エクセプション(” PermitViolated”)が送 出され、レスポンダの状態(state)がオペレーション”5end“を妨げ る場合、エクセブション(”5tate Improper”)が送出され、ト リップが異常終了した場合、エクセブション(”TripException”  )が送出される。 4.3 アッシーニージョン(Assac iat 1on)Object ( Referenced)−As5ociation (Ordered)クラス (C1ass) Association sealed 1nterfase [keyCIass、 valuecla ss: C1ass](Object、 0rdered) =(、、、);サ ブジェクトクラスの各メンバのキー(アーギュメン)−’ keyl:1ass ”)及び値(アーギュメント”ValueClass”)がそれ自身メンバであ るクラスによって、パラメータ化される。 構成(Construction) initialize+ unprotected op (key: keycIass; value : valuecIass);レスポンダの固有のアトリビュートを、同じ名前 のアーギュメントにする(アーギュメント”key”及びアーギュメント″va lue″)。 勘■: keyclass; レスポンダのキーである。 正お狙゛ valueclass; レスポンダの値である。 ア ブチ−ジョン(AdatatiOnSisAfter 任意のアソシエーションは、それらのキーに従って、他のアソシエーションの後 となる。 1sBefore 任意のアソシエーションは、それらのキーに従って、他のア゛ノシエーションの 前となる。 長以凹畦 2つのアソシエーションは、それらのキーに従って、同等となる。 4.4 アトリビュート (^ttribute)Object (Rerer enced)・Feature sealed 1nterface (Feature) =(、、、);un protected op ( constraint: Con5traintlNilisSet、1sPu blic: BooleanlNil;exceptions: Set [[ dentirierlllNil);レスポンダのアトリビュートを、同じ名前 のアーギュメント(アーギュメント” constraint’ 、” exc eptions” 、’ 1sPublic” 、” 1sset” )とする 。アーギュメントがニル(0)である場合、対応するアトリビュートは、初期化 パラメータとしてニル(0)を伴ったコンストレイントとされる。これは、クリ アされたセットであり、“偽(false)”又は”偽(false)″である 。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)constraint: constraint+ レスポンダが定義するアトリビュートに対するコンストレイントである。 口呈佳: Boolean; レスポンダが定義するアトリビュートがリードオンリでないか否かである。 アダブチ−ジョン(Adaptations)2つのアトリビュートの定義は、 フィーチャの定義及びアトリビュートの定義に対して固有なアトリビュートに従 って、同等となる。 4.5 オーセンティケイタ(Authenticator)Object ( Referenced)クラス(C1ass) Authenticator: abstract 1nterface = 0;4.6 ビット(Bit) Object (Referenced)−Pr1m1tive (Execu ted & Unchenged)・・Bit (Ordered) クラス(Class) 1t sealed 1nterface (Primitive、 0rdered ) :0;アダブチ−ジョン(Adaptations)第2のビットがOであ り、第1のビットが1である場合にのみ、第1のビットは、第2ビツトの後とな る。 1sBefore 第2のビットが0であり、第1のビットが2である場合にのみ、第1ビツトは、 第2のビットの前となる。 卦旦凹辻 2つのビットは、両方がOである場合にのみ、又は両方が1である場合にのみ、 同等となる。 : (Conversions) 肛出j皿 1つのアイテムを有するビットストリングは、そのアイテムに等しいビットを生 成する。 Boolean ブーリアン”偽(false)”及び”真(true)”は、各々、”0“及び “l”を生成する。 Character 数字のゼロ(0)及びl (1)は、各々、ゼロ(zero)及び1 (one )を生成する。 加ぶ丑江 整数のゼロ及びlは、各々、ゼロ及び1を生成する。 加里 ビット[0]を除いて、全てのビットがゼロであるオクテツトは、そのビットを 生成する。 並立ぷ山ユ止 ビットに変換可能なオクテツトに変換可能なオクテツトストリングは、そのビッ トを生成する。 鉦■皿 ピントに変換可能なキャラクタに変換可能なストリングは、そのビットを生成す る。 4.7 ビットストリング(Bit String)Object (Refe renced)−Co11ection ・・Li5t (Ordered) ・10Constrained Li5t (Constrained)−・− ・紅り践吐坦(Executed)クラス(Class) 氾づ力1止: 5ealed 1nter4ace (ConstraineLisL [Bi t]、 Executed) =(、、、);成(Construct 1on ) initialize: unprotected op (segments: 0bject 、、。 /ネ Bitlproected BitString! 本/);レスポンダ を、レスポンダ中のポジションが左から右にかけて増大しているセグメント(ア ーギュメント”segment”)の連結とする。 アダブチ−ジョン(Adaptations)アトリビュートは、シールされて いる。そのアトリビュート”ofclass”、”C1assld” 、 ”  1slnstance+、 ” 1sOptional″及び+passage ”は、各々、クラス”Bit’ 、クラス”Bit”の識別子、”真(true )”、”偽(false) ”及び” byCopy”である。 1sAfter レングスが短いビットストリングをレングスが長いビットストリングと等しいレ ングスにするために、十分な“ゼロ(zero)”のビットがレングスが短いビ ットストリングに最初から予め付加されたかのように、任意のビットストリング が他のビットストリングの後に配される。 1sBerore レングスが短いビットストリングをレングスが長いピントストリングと等しいレ ングスにするために、十分な”ゼロ(zero)”のビットがレングスが短いビ ットストリングに最初から予め付加されたかのように、任意のビットストリング が他のビットストリングの前に配される。 ’ (Conversions) 」1 ビットは、単一のアイテムだけがそのビットに等しいビットストリングを生成す る。 独如至狙 ブーリアンは、最初にブーリアンからビットへの変換のリザルトを生成し、次に そのビットからビットストリングへの変換のリザルトを生成する。 Character キャラクタは、最初にキャラクタからオクテツトストリングへの変換のリザルト を生成し、次にそのオクテツトストリングからビットストリングへの変換のリザ ルトを生成する。 知卦必匹 [−2’ 、 2″)の範囲のインチジャ(インチジャ”n”でありこれよりも 小さくはない。)は、レングスが”n”のビットストリングを生成する。ここで 、2の補数表現が用いられる。ポジション” l”であるビットは、−2″を示 す。(1、n]の範囲内にある各ポジション°′ビのビットは、2′″−1を表 す。 匹遵ル オクテツトは、最初にオクテツトからオクテツトストリングへの変換のリザルト を生成し、次にそのオクテツトストリングからビットストリングへの変換のリザ ルトを生成する。 匹旦ぶ山±ル レングスが”n”であるオクテツトストリングは、レングスが”8n”であるビ ットストリングを生成する。ビットストリング中のポジションが(8i+j)で あるビットは、オクテツトストリング中のポジションが” i“であるオクテツ トのビット(8−j)である。ここで、” i”及び”j”は整数であり、“i ”は[0,n)の範囲にあり、”j”は[1,8]の範囲にある。 社■皿 ストリングは、最初にストリングからオクテツトストリングへの変換のリザルト を生成し、次にそのオクテツトストリングからビットストリングへの変換のリザ ルトを生成する。 4.8 ブーリアン(Boolean)Object (Referenced )−Pr1m1tive (Executed & Unchanged)−− Boolean (Ordered)グjノ」旦(2)咀し Boolean: 5ealed 1nterface (Primitive、 0rdered ) =(、、、);パブリックインスタンスオペレーション(Public I n5tance Oerations) ’引曵: op (boolean: Boolean) Boolean;レスポンダと ブーリアン(アーギュメント”boolean”)の論理的な結合をリターンす る。 not: (+p 03oo1ean: レスポンダの論理的な否定をリターンする。 op (boolean: Boolean) Boolean;レスポンダと ブーリアン(アーギュメン)” 1)Oolean”)の論理的な和をリターン する。 ア ブチ−ジョン(Adatations)isAfter 第2のブーリアンが”偽(false)”であり、第1のブーリアンが”真(t rue)”である場合にのみ、第1のブーリアンは、第2のブーリアンの後とな る。 1sBerore み、両者は等しくなる。 襄−勇」全回!互馴匝り 貼ユ ビノトは、ビットが1であるが否がの指示を生成する。 Character キャラクタは、キャラクタのユニコードがゼロでないが否かの指示を生成する。 Co11ection コレクションは、コレクションのレングスがゼロでないが否がの指示を生成する 。 込憇郵工■ エクセブションはご真(true)”を生成する。 恒ユ ニル(0)はご偽(false)”を生成する。 践畦江 ナンバは、ナンバがゼロでないか苦力)の指示を生成する。 四遵」 オクテツトは、オクテツトのビットの何れ力・が」である力・苦力1の指示を生 成する。 4.9 カレン −タイム(Calenar Time)Qbject (Re ferenced)Interface = (、、、);成(Constru ction) initialize レスポンダの固有のアトリビュートをニル(0)にする。 バブリンクインスタンスアトリビュート(Public In5tance A ttributes)伽r IntegerlNi l; レスポンダが特定する月の「日」、又はニル(0)である。 伽バ甲1玉: readonly IntegerlNil;レスポンダが特定する「曜日」、 又はニル(0)である。 伽f膳皇旺・ readonly IntegerlNilレスポンダが特定する、1年におけ る「日」、又はニル(0)である・st lnLegerlNi l; レスポンダが特定する、時間帯の一定のずれからの「分」で示される季節的なず れ、又はニル(0)である。 hour: IntegerlNil; レスポンダが特定する「時」、又はニル(0)である。 虹凹旦: 111tegerlN目。 レスポンダが特定する「分」、又はニル(0)である。 靭担1: IntegerlNi I; レスポンダが特定する「月」、又はニル(0)である。 5econd : IntegerlNi l; レスポンダが特定する「秒」、又はニル(0)である。 角肛: Integer IN i l : レスポンダが特定するグレゴリ−歴の「年」、又はニル(0)である。 遅用旦: Integer IN i l ; レスポンダが特定する、時間帯のUTCからの「分」で示される一定のずれ、又 はニル(0)である。 パブリックインスタンスオペレーション(Public In5tance O erations)〔可u1刈。 unprotected op O: UTCに対するレスポンダの一定なずれ及び季節的なずれを設定し、特定された 絶対的な時点が変化しないようにする。 1ocalize: unprotected opO; 現在位置に対するレスポンダの一定なずれ及び季節的なずれを設定し、特定され た絶対的な時点が変化しないようにする。 nomalize: unprotected opOBoolian:レスポンダを正常化し、レス ポンダのアトリビュートの何れかがプロセス内において変化された否かをリター ンする。 卦旦凹桂 2つのカレンダータイムは、その固有のアトリビュートに従って、同等となる。 換(Convers 1ons) 匣 タイムは、同一の絶対的な時点と、同一の一定なずれ及び季節的なずれとを特定 する、正常化されたカレンダータイムを生成する。 4.10 ケースド(Cased) Cased 偽yη: abstract 1nterface O:(、、、);パブリックインスタ ンスアトリビュート(Public In5tance Attributes isLover: abstract readonly Boolean;レスポンダの何れかの アイテムが英小文字であるが否が。 」珈閏工: abstract readonly Boolean;レスポンダの何れかの アイテムが英大文字であるが否が。 庄しムlヱZ凝2ス吏シニク且乙旦剰旦」匡用二並目旦卦とmakeLover abstract op Ocopied cased;全ての英大文字のアイ テムが同等な英小文字に置き換えられている、レスポンダのコピーをリターンす る。 makeLlpper abstract op Ocopied cased;全ての英小文字のアイ テムが同等な英大文字に置き換えられている、レスポンダのコピーをリターンす る。 4.11 キャラク (CharacterObject (Referenc ed)・Pr1m1tive (Executed & Unchanged) −−Character (Cased & 0rdered)sealed  1nterface (Primitive、 Ca5ed、 0rdered ) :0;ア ブチ−ジョン(Adatations)isAfter ユニコードのコードに従って、任意のキャラクタは、他のキャラクタの後となる 。 1sBerore ユニコードのコードに従って、任意のキャラクタは、他のキャラクタの前とな」 旦四壮 2つのキャラクタは、ユニコードのコードに従って、同等となる。 又−員」以山!互桓匣と 影1 ビット”ゼロ(zero) ”は、数字の0を生成し、ビット” 1“は、数字 の1を生成する。 劫旦l江 [0,65535]の範囲内のインチジャは、ユニコードのコードによりキャラ クタを生成する。 四」」 オクテツトは、最初にオクテツトがらインチジャへの変換のリザルトを生成し、 次にそのインチジャからキャラクタへの変換のリザルトを生成する。 OctetString オクテツトストリングは、最初にオクテツトストリングからインチジャへの変換 のリザルトを生成し、次にそのインチジャからキャラクタへの変換のリザルトを 生成する。 鉦百皿 1つのアイテムを有するストリングは、そのアイテムに等しいキャラクタを生成 する。 4.12 サイテション(Ci tation)Object (Rerere nced)・C1tation (Ordered)クラス(C1ass) Citation: 1nterface (Object、 0rdered) =(、、、):成 (Construction) initial ize+ Unprotected op ( title: Identifier!; author: Te1enaie lNil;majorEdition、 m1norEdition: Int egerlNil):レスポンダの固有のアトリビュートを、同、じ名前のアー ギュメント(アーギュメント” author” 、 ” majorEdit ion” 、” m1norEdition”及び”title” )にする。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)鉦止江: TelenamelNil: レスポンダによって特定されたオーサーのテレネームである。ただし、レスポン ダが割り当てられていない場合、又はそのようなコンストレイントが課されてい ない場合には、ニル(0)である。 肌赳1虹旦即。 IntegerlNi I; レスポンダによって特定されたメジャーエディジョンのナンバである。ただし、 レスポンダが割り当てられていない場合、又はそのようなコンストレイントが課 せられていない場合には、ニル(0)である。 m1norEdition: IntegerlNi l; レスポンダによって特定されたマイナーエディジョンのナンバである。ただし、 レスポンダが割り当てられていない場合、又はそのようなコンストレイントが課 せられていない場合には、ニル(0)である。 貝1国 IdenLifier!; レスポンダが特定するタイトルの識別子である。 ヱlブj:ン」ン二犠撓匹l胆並し 朋N1江 2つのサイテションの”author”アトリビュートが同等、すなわちそれら のアトリビュート”title”が等しく、第1のサイテションの7トリビユー ト”鵬ajarEd i t i on”が第2のサイテションのアトリビュー ト”majorEdition”の後にあるが、又は両方のサイテションのアト リビュート”majorEdition”が等しく、そして、第1のサイテショ ンのアトリビュート”m1norEdition”が第2のサイテションのアト リビュート”a+1norEdition”の後にある場合にのみ、第1のサイ テションは、第2のサイテションの後になる。 1sBerore 2つのサイテションの”author”アトリビュートが同等、すなわちそれぞ れのアトリビュート”title’“が等しく、第1のサイテションのアトリビ ュート”aajorEdition”が第2のサイテションのアトリビュート” majorEdition”の前にあるか、又は両方のサイテションのアトリビ ュート”majorEdition”が等しく、そして、第1のサイテションの アトリビュート” m1norEclition”が第2のサイテションのアト リビュート”m1norEdition”の前にある場合にのみ、第1サイテシ ヨンは、第2のサイテションの前になる。 述旦凹■ 2つのサイテションのアトリビュー)” author”が同等であり、他の固 有のアトリビュートが等しい場合にのみ、2つのサイテションは等しい。 4.13 サイティド(Cited) Ci ted クラス(Class) abstract 1nterface O=(、、、):成(Constru ction) initialize: unprotected op (title: IdennLぼier! : 1ajorEdition、 1inorEdition: Integer) ;レスポンダの固有のアトリビュートを、サイテションにする。ここで、このサ イテションのアトリビュート”author”は、現在のプロセスの割り当てら れたテレネームであり、それ以外のアトリビュートは、同じ名前のアーギュメン ト(アーギュメント” majorEdition” 、” m1norEdi tion”及び” title” )である。 パブリックインスタンスアトリビュー) (Public In5tance  Attributesreadonly protected C1tatio n; −レスポンダの割り当てられたサイテションである。 4.14 クラス(C1ass) Object (Rererenced)・C1ass (Cited & I nterchanged)sealed 1nterface (Object 、 C1ted、Interchanged) = (、、、);unprot ected op O throws FeatureUnvaliable;エクセブション(” F eatureUnavaliable” )を送出する。 注:クラスは、オペレーション″new”でなく、オペレーション”鳳akec Iasses”を用いて生成される。 パブリツ クラス ンスオペレーション(Public In5tance O erations)convert : 5ealed op (source: protected 0bject)  copied Objectthrows ConversionUnava ilable;オブジェクト(アーギュメン)−5ource”)のそのクラス への変換よって生成されたレスポンダのインスタンスを、そのオブジェクトが既 にそのクラスのインスタンスではない場合には、リターンする。その他の場合に は、そのオブジェクトのコピーをリターンする。 オペレーションは、先ず、ソースのクラスにおいて変換メソッドを探しだし、こ れに失敗したら、次に、目的地のクラスにおいて探しだす。そのオブジェクトが 要求されたように変換されることができない場合には、エクセプション(” C 。 nversionUnavailable” )が送出される。 注二二の2つのステップは、特定の変換のためのメソッドをインプリメントする ために、ソースのクラス又は目的地のクラスを、後から定義されたものならばど ちらでも許容する。 1slnstance: 5ealed op (instance: protected 0bjec t) Boolean;オブジェクト(アーギュメント”1nstance”) がレスポンダのインスタンスであるか否かの表示をリターンする。 オブジェクト(アーギュメント、”a+ember” )が、レスポンダのイン ターフェース(必ずしもインプリメンテーションとは限らない。)のメンバであ るか否かの表示をリターンする。 クラス(アーギュメント”5ubclass″)がレスポンダのサブクラスであ るか否かの表示をリターンする。 阻。 5ealed op (parameters: 0bject 、、、) O bjectthrows C!assAbstract、 Exception 、 0bjectUninitialized;初期化パラメータ(アーギュメ ント’ parameters”)によって定められたレスポンダの新しいイン スタンスをリターンする。上述のシグニチャ(署名: signature)に もかかわらず、オペレーションのシグニチャは、レスポンダによって定義された ように、オペレーション”ini tial ize”のシグニチャである。 レスポンダがアブストラクトである場合に、エクセプション(” C1assA bstracじ)が送出され、クラスに固有の問題が生じた場合に、エクセブシ ョン(”Exception”)が送出され、潜在的なオブジェクトがそれ自身 のフィーチャを使用する場合に、エクセブション(” 0bjectUnini tialized” )が送出される。 4.15 クラス定II (C1ass Definition)Object  (Referenced)sealed 1nter4ace = (、、、 );構成(Construction) initialize unprotected op ( title: Identifier!:majorEdition、 m1n orEdition: Integer+1nterface: Interf ace+implementation: Implea+entationl Nil);レスポンダの固有のアトリビュートを、同じ名前のアーギュメント( アーギュメント” implementation−、” 1nter4ace ”、 −a+ajorEdition”、 ’ 1inorEdit堰B n”及び”title”)にする。 パブリックインスタンスアトリビュート(Publ ic In5tance  Attributes]劇1阻県担士担: 1iplementationlNil;インプリメンテーションがある場合、 レスポンダが定義するクラスのインプリメンテーションであり、その他の場合に は、ニル(0)である。 1nterface: [nterface+ レスポンダが定義するクラスのインターフェースである。 艶政ユ虹■皿: Integer; レスポンダが定義するクラスの割り当てられたサイテションのアトリビュート” m1norEdition″である。 レスポンダが定義するクラスの割り当てられたサイテションのアトリビュート”  m1norEdition”である。 u遍!: 1dentirier1; レスポンダが定義するクラスの割り当てられたサイテションのアトI)ビュート ″title”である。 パブリノ インスタンスオペレーション(Public In5tance O erationsmakeclasses: op (definitions: protected CIassDefi niLion 、、、)Lexion[C1assコ throws C1assException;レスポンダと他のクラス定義( アーギュメント°’ definitions”)カ(集合的(こ定義するクラ スのレキシコンをリターンする。それぞれの値(よ、関連付(すられたキーにタ イトルが等しいクラスである。 サイテションは、次のよう(こ各クラス(ご割り当てられる。mlり当てられた サイテションのアトリビュ)” author”(よ、現在のプロセスの割り当 てられたテレネームである。、割り当てられたサイテションの他のアト1ノビユ ート蚤よ、クラスのクラス定義で定義された通りである。 出される。 アダブチ−ジョン(Adaptations)」旦凹桂; 2つのクラスの定義は、各々の固有のアトリビュートに従って、同等となる。 4.16 クラスエクセ ジョン(Class Exce LionObjec t (Referenced)−Exception (Unchanged) −・Programming Exception−−・C1ass Exce  Lionクラス(C1ass) 匹組」匹即旦匹・ abstract 1nterface (ProgrammingExcep tion) = 0;サブクラス(subclasses) ClassSealed: 1nterface (CIassException) :0;提案(プロボ ーズ: propose)された新しいクラスは、シールされた直接スーパーク ラスを有している。 CIassUndef 1ned: 1nterface(CIassException) = 0;提案された新 しいクラスは、定義されていないクラス識別子を使用している。 提案された新しいクラスと、そのクラスのインターフェーススーパークラスの1 つとは、同一の識別子によって示される固有のフィーチャを有している。 提案された新しいクラスは、そのクラスのインターフェーススーパークラスの1 つによってシールされたフィーチャをインプリメントしている。 提案された新しいクラスは、定義されていないフィーチャ識別子を使用している 。 MixinDisal 1oved: tnterrace (ClassException) =0;提案された新 しいクラスは、フレーバが要求されるところで、ミックスインを使用している。 su erclasseslnval id:1nterface (C1as sException) =O;提案された新しいクラスは、矛盾したイミディ エートスーパークラスを有している。 4.17 コレクション(Collection)Object (Rerer enced)サブジェクトクラスの各メンバの各アイテム自身がメンバであるク ラス(アーギュメント”itemcIass”)によって、パラメータ化される 。 unprotected op (item: ite+5cIass 、、、 ) throws Itemlnvalijl;レスポンダのアイテムをオブジ ェクト(アーギュメント”ite■S”)にする。 提案されたアイテムが不適切である場合に、エクセプション(”Itemlnv al id″)が送出される。 パブリツ インスタンスアトリビs −ト(Public In5tance  Attributes)江止則: read−only Integer;レスポンダのレングスである。 バtし像l之ムムジq5旦コ沁已ヨム吐回旦匹匪り泗追止囮とunprotec ted opO; 全てのアイテムをレスポンダから取り除いて破棄する。 注二二のオペレーションは、レスポンダのレングスをゼロに減少させる。 examine: op (item: protected itemclass) 1tea+ cIasslNil;そのオブジェクト(アーギュメント”item”)に等し いアイテムが少なくとも1つある場合に、このようなアイテムの1つを、レスポ ンダ内に残して、そのアイテムをリターンする。その他の場合には、ニル(0) をリターンする。ただし、このようなアイテムが幾つか存在している場合、選択 されるアイテムについては定義されていない。 そのオブジェクト(アーギュメント”1tea+”)に等しいアイテムが少なく とも1つある場合に、このようなアイテムの1つをレスポンダから除去して、そ のアイテムをリターンする。その他の場合には、ニル(0)をリターンする。た だし、このようなアイテムが幾つか存在している場合、選択されるアイテムにつ いては、定義されていない。 ゴ劇凹誇・ unprotected op (item:itemclass)throw s Itemlnvalid;オブジェクト(アーギュメント”item” ) をレスポンダに新しいアイテムとして含ませる。 提案されたアイテムが、上述のようなアイテムとして不適切であればエクセプシ ョン(” itemlnvalid” )が送出される。 牡匹岬・ Op () copied 5trea@ [itemCIassコ:アイテム がレスポンダのアイテムであるストリームをリターンする。クラス”Co11e ction”のサブクラスは、ストリームがレスポンダのアイテムを生成する順 序を定義することができる。しかし、クラス”Co11ection”は、その 順序を規定されないまま残される。 ストリームが生成された後にレスポンダが変更されたときには、以下に述べる場 合にのみ、ストリームは、新しく含められたアイテムを生成する。すなわち、そ の場合とは、ストリームが以前にそれらを生成しておらず、ストリームが以前生 成したものを以外で、新しく除外されたアイテムを生成していない場合である。 注−ストリームがインスタンスであるクラス”Stream”のサブクラスは定 義されていない。 アダブチ−ジョン(八datat1ons)遷珈凹辻 2つのコレクションの各レングスが等しく、それらの各アイテムが対を成してお り、対を成したそれらの各アイテムが同一になるようにされている場合にのみ、 この2つのコレクションは同等となる。コレクションのサブクラスは、上述のよ うな同一性の定義を狭くすることができるが、広くすることはできない。 4.18 コレクションエクセブション(collection Except ion)Object (Referenced)1Exception (U nchanged)−1Progra+u+ing Exception−参− collectionExceptionクラス(Class) CollectionExce Lion+abstruct 1nterfa ce (Programming Exception) =();サブクラス <5ubclasses) Uμ助圧n9山世= interface (CollectionExcepLion) = 0; セットの提案されたアイテムは、他のアイテムに等しい。 ltemlnval id: 1nterface (CollectionException) =0;コ レクションの提案されたアイテムは、コレクションのコンストレイントを満たし ていない。 KeyDupl 1cated: 1nterface (CollectionException) :0;デ ィクショナリの任意の提案されたキーは、他のキーに等しい。′框り堕μ上迫゛ 1nterface (CollectionExceptian) =0;デ ィクショナリの提案されたキーは、ディクショナリのコンストレイントを満足し ていない。また、ディクショナリ内のキーに等しくなることを目的とするオブジ ェクトは、デクショナリのコンストレイントを満足していない。 Ob’ecjsUn aired: 1nter4ace (CollectionException) =0;デ ィクショナリの対を成していると考えられるキー及び値が、奇数である。 Po5itionlnval id: 1nterface (CollecLionException) :0;プ ロシージャ又はリストにおいであるポジションに等しくなることを意図されてい るインチジャが、そうなっていない。 兆井■囮巾匹匹 1nLerface (CollectionException) = 0ニ スタツクのレングスが、要求されたスタックの操作を妨げている。 4.19 コンストレインド(Constrained)Cans train ed クラス(C1ass) Constrained: abstract 1nterface O=(、、、);構成(Constr uction) initialize+ unprotected op (constraint: copied c onstraintlNil);レスポンダの固有のアトリビュートがニル(0 )でない場合に、そのアトリビュートをフンストレイント(アーギュメント°C O口5traint”)にする。その他の場合には、初期化パラメータをニル( 0)にする。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)constraint: readonky protected Con5traint:レスポンダの ノミネートされたプロパティに対するコンストレイントである。 4.20 コンストラインドディクショナリ(Constrained Dic tionary)Object (Referenced)−Cl1ectio n ・ ・ 5et 00− Dictionary o ° 6Constrained Dictionar (Constrai ned )グラ2」旦l競と Con5trainedDictionar :1nterface [Key CIass、 valuecIass: C1ass](Dictionary  [keyClass、 valuecIass]、 Con5trained )=(、、、); サブジェクトクラスの各メンバの各アイテムの値(アーギュメント”value cIaSS”)及びキー(アーギュメント°’ keyclass”)がそれら 自身メンバであるクラスによって、パラメータ化される。 成(Construction initialize: unprotected op (constraint:copied Co n5traint;keysAndValues: 0bjecシ、。 /零 key+ keyclass; value: valueclass  */)throws KeyDuplicated、 Keylnvalid、  0bjectsUnpaired;レスポンダのアイテムを、キーと値の対( アーギュメント”1(6yA1dValues”)の関連(アソシエイション:  asociations)にし、レスポンダのアトリビュート”constr aint”を、そのコンストレイントにする(アーギュメントconstrai nt”)2つの提案されたキーが等しい場合には、エクセブション(” key Duplicated″)が送出され、提案されたキーが、キーとして不適切で ある場合には、エクセブション(”keylnvalid”)が送出され、・オ ブジェクトの数が奇数である場合には、エクセプション(”0bjectUnp aired”)が送出される。 ア ブチ−ジョン(Adatations)也 そのコンストレイントを満足するキーのみが含められる。 constraint そのコンストレイントは、キーに対応するものである。 1nclude そのコンストレイントを満足するキーのみが含められる。 3竺■ そのコンストレイントを満足するキーのみが含められる。 そのコンストレイントを満足するキーのみが含められる。 4.21 コンストレイントリスト Con5trained Li5t)Ob ject (Referenced)・Cl1ection ・・Li5t (Ordered) °+0Constrained Li5t (Constrained)玄lノ 」旦(2)狙し Con5trainedList: 1nterface [itemClass: C1ass](List [1 tea+CIassl、 Con5trained) =(、、、);サブジェ クトクラスの各メンバの各アイテムがそれ自身メンバであるクラス(アーギュメ ント”iLemclass” )によって、パラメータ化される。 unprotected op (constraint:copied Co n5traint;items:itemclass、、、)throws I temlnvalid;レスポンダのアイテムを、左から右にかけてポジション が増大しているそれらのオブジェクト(アーギュメント”items”)にし、 レスポンダのアトリビュート” constraint″を、コンストレイント (アーギュメント” constraint” )にする。 提案されたアイテムが不適切であれば、エクセブション(”Itemlnval  id“)が送出される。 ア ブチ−ジョン(Adatations)怒4 そのコンストレイントを満足するオブジェクトのみが含められる。 constraint そのコンストレイントは、アイテムに対するものである。 i nc l ude そのコンストレイントを満足するオブジェクトのみが含められる。 4.22 コンストレイントリスト(Constrained 5et)Obj ect (Referenced)−Cllection ・−Set (Verufied) 010Constrained Set (Constrained)クラス( Class) ConstrainedSet: 1nterface [itemCIass: C1assコ(Set [1t eiCIassコ、Con5trained) =(、):アーギュメント”i temcIass”)によって、パラメータ化される。 透−犬」並匣旦匹豆皿し 1nitialize: unprotected op (constraint: copied C on5traint;item:itemcIass 、、、)throws  ItemDuplicated、 ILemlnvalid:2つの提案された アイテムが等しい場合には、エクセプション(” IteaDuplicate d”)が送出され、提案されたアイテムが不適切な場合には、エクセプション( ” ltemlnvalid”)が送出される。 ア ブチ−ジョン(Adatatlons)constraint: そのコンストレイントは、アイテムに対するものである。 」劇凹垣: そのコンストレイントを満足するオブジェクトのみが含められる。 4.23 コンストレイント(Constraint)Object (Rer erenced)・ Con5traint クラス(C1ass) Constraint: 1nterface = (、、、);構成(Construction) initial ize: unprotected op (classld、 passage+ Id entifier!1Nil;1soptiona1. 1slnstance : BooleanlNil)throws Passagelnvalid: レスポンダのアトリビュート”orclass”をニル(0)にし、レスポンダ の他の固有のアトリビュートを、同じ名前のアーギュメント(アーギュメント” classld+、 −1slnstance” 、 ” 1soptiona l°°及び” passage’ )にする。アーギュメントがニル(0)であ る場合、それに対応するアトリビュートは、それぞれクラス” 0bject”  、 ” false”、” false” 、”byRef”の識別子とされ る。 提案されたパッセージ(passage)が不適切な場合には、エクセブション (”Passagelnval id”)が送出される。 パブリックインスタンスアトリビュー ) (Publ ic In5tanc e Attributes)classld Identifier!; レスポンダのサブジェクトがメンバとなるであろうクラスの識別子である。識別 子は、レスポンダのコンテキストを供給するインプリメンテーション又はインタ ーフェースのアトリビュート”vocabu Iary”に従って、インタープ レートされる。 1slnstance: Boo l ean : レスポンダのサブジェクトがアトリビュート”classld”が示すクラスの インスタンス(単なるメンバではない。)となるか否か。 」匣肛姐虹: Boolean; アトリビュート”classld”に関わらず、レスポンダのサブジェクトがニ ル(0)となることが許可されるが否が。 酊」!狙゛ readonly C1asslN目:ニル(0)でない場合には、レスポンダ のサブジェクトがメンバとなるであろうクラスである。 匹Σ刊但・ Identif ier! throws Passagelnvalid;レスポンダのサブジェクトが、 どのようにパス(pass)されるがを示す識別子である。 提案されたプロセスが不適切である場合は、エクセブション(”Passage lnvalid” )が送出される。 アダブチ−ジョン(Adaptations)2つのコンストレイントは、各々 の固有のアトリビュートに従って、同等となる。 4.24:+ンタ ト(Contact)Object (Rererence d)−Contact クラス(C1ass) Contact: 1nterface = (、、、);構成(Construction) initial ize: unprotected op (subject: ProcesslNil ;5ubjectNotes: 0bjectlNil):レスポンダのアトリ ビュー)” 5ubject”及び“5ubjectNotes”を、同じ名前 のアーギュメント(アーギュメント” 5ubject”及び” 5ubjec tNotes” )にする。アトリビュート”5ubject”がプロセスであ る場合には、レスポンダの他の固有のアトリビュートを、オブジェクトを記述す るものとし、その他の場合には、ニル(O)にする。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)ProcesslNil; レスポンダのオブジェクト、又はニル(0)である。 匹u匹匹艮距: readonly proLected C1tationlNil;アトリビ ュート”5ubject”がプロセスである場合は、クラスの割り当てられたサ イテション(これは、クラス”Agent”又はクラス“Place”のサブク ラスであり、レスポンダのオブジェクトは、これのインスタンスである。)であ り、その他の場合には、そのクラスか、又はアトリビュート”5ubject” がニル(0)ならばニル(0)である。 凹旦匹叩鉋虹 readonly protected telenamelNil;アトリビ ュート”5ubject”がプロセスである場合は、レスポンダのオブジェクト の割り当てられたテレネームである。その他の場合には、ニル(0)〔又は、そ のテレネーム〕である。 5ubjectNotes: 0bjectlNil; レスポンダのオブザーバによって保持されたオブジェクトである。 ア ブチ−ジョン(AdatatiOnS)胆蝕胆L 2つのコンタクトは、それらの各アトリビュート”subjectName”に 従って、同等となる。 4.25 コン クーイド(Contacted)Contacted クース(C1ass) Contacted: abstract 1nterface O:(、、、);構成(Constr uction) initialize レスポンダのアトリビュート”contacts″をクリアする。 を区全正血已ムユムユ会二二土ツ土」里生思出戯1contacts: readonly Set [Contact];レスポンダが保持しているコ ンタクトのセットである。 4.26 ディクショナ’ (Dictionar )Object (Ref erenced)・Cl1ection ・ ・ Set ・ ・ ・ 匹区組坦1 クラス(Class) 財倶」y口し 1nterface [keyClass、valueclass: C1as sl(set [As5ociation [keyCIass、 value classll) :(、、、);オブジェクトクラスの各メンバの各アイテム のキー(アーギュメント”keyc+aSS”)及び値(アーギュメント”Va lueCIass”)自身がメンバであるクラスによって、パラメータ化される 。 構成(Construction) unprotected op (keysAndValues: 0bjec t 、、。 7本 key: keyclass; value: valueclass  本/)throws keyDupl ucated、 key Inva l  i d、 0bjec tsUnpa i red ;レスポンダのアイテム を、キーと値の間のアソシエイション(アーギュメント″keyAndValu es″)にする。 2つの提案されたキーが等しい場合には、エクセブション(” keyDupl icated’ )が送出され、提案されたキーがキーとして不適切な場合には 、エクセプション(”keylnvalid”)が送出され、オブジェクトのナ ンバが奇数である場合には、エクセブション(” 0bjectυnpaire d” )が送出される。 パブリックインスタンスオペレーション(Public In5tance O erations)閃〔 unprotected op (key: keyclass; value : valuecIass)throws keylnvalid;レスポンダ に新しいアソシエイションが含まれる。すなわち、第1のオブジェクト(アーギ ュメント“key”)がアソシエイションのキーとして、第2のオブジェクト( アーギュメント°’ value”)がアソシエイションの値として、それぞれ 含められる。 提案されたキーが不適切な場合、又はレスポンダが既に含んでいるアソシエイシ ョン中のキーに等しい場合には、エクセプション(” keylnvalid” )が送出される。 東出し unprotected op (key: protected keycl ass) valeucIassthrows Keylnvalid;キーが そのオブジェクト(アーギュメント”key”)に等しいアソシエイションをレ スポンダから除外し、廃棄して、そのアソシエイションの値をリターンする。 表明されたキーが不適切な場合には、エクセプション(”Keylnvalid ” )が送出される。 値がそのオブジェクト(アーギュメント” value”)に等しいアソシエイ ションをレスポンダに残し、そのアソシエイションのキーをリターンする。レス ポンダが、このようなアソシエイションを幾つか含む場合、選択されるものにつ いては、定義されていない。レスポンダが何も含んでいない場合には、ニル(0 )がリターンされる。 討L op (key: protected keycIass) valuecI assthrows Keylnval id;キーがそのオブジェクト(アー ギュメント”key”)に等しいアソシエイションをレスポンダに残し、そのア ソシエイションの値をリターンする。 表明されたキーが不適切な場合には、エクセブション(Keylnval id ”)が送出される。 匹■L unprotected op (currentKey:protected  keycIass:newKey: keycIass) throws Keylnvalid;キーが第1のオブジェクト(アーギュメ ント”currentKey”)に等しいアソシエイションをレスポンダに残し 、そのアソシェイションのキーを廃棄し、そして、そのキーに代えて、第2のオ ブジェクト(アーギュメント’ newKey”)を代替する。このオペレーシ ョンは、オペレーション” drop″及び” add”を用いたがのように行 われる。 表明された又は提案されたキーが不適切であるか、又は提案されたキーがレスポ ンダに既に含まれているアソシエイション中のキーに等しい場合には、エクセプ ション(” Keylnvalid” )が送出される。 匹 unprotected op (key+ protected keycI ass; value:valuecIass)throws Keylnva lid;キーが第1のオブジェクト(アーギュメント”1(ey”)に等しいア ソシエーションをレスポンダが含む場合には、そのアソシエイションの値に代え て、第2のオブジェクトを代替する(アーギュメント“value”)。 その他の場合には、レスポンダ内に新しいアソシエイションを含める。これは、 第1のオブジェクト(アーギュメント”key”)をアソシエーションのキーと じて含み、第2のオブジェクトをアソシエーションの値として含むものである。 提案されたキーが不適切な場合には、エクセブション(” Keylnvali d”)が送出される。 旦l臣四コし unprotected op (key I、 key 2: protec ted keycIass)throvs Keylnvalid;レスポンダ の値を2つのキー(アーギュメント”key !”及び” key 2” )に 置き換える。 表明されたキーが不適切な場合には、エクセブション(” Keylnvali d”)が送出される。 ア ブチ−ジョン(Adatations)include ただ1つのアソシエーションのみが含められる。アソシエーションは、アソシエ ーションに等しい現存のアイテムを排除及び廃棄した後に、新しいアイテムとし て含められる。 1sEqual 同じキーに対応する値がそれぞれ等しい場合だけ、2つのディクショナリは同等 である。 4.27 エ セプション(EXcetion)Object (Refere nced)+ハ逝射±on (Unchanged)クラス(C1ass) ハ姐匹包L abstract 1nterface (Object、 Unchange d) = (、、、);広皿工ど之シ2シじ竪シ1とΔ阻ヨ凪脛〔■旦迩ルスボ ンダによりメソッドの異常終了を起こさせることによって、現在のメソッドの遂 行を終了する。 ア ブチ−ジョン(Adatations)」旦四壮 2つのエクセブションは、同一のクラスのインスタンスである場合にのみ、同等 となる。 4.28 エグゼキュート(Executed)Executed クラス(C1ass) このクラスは、シールされている。 パブリックインスタンスオペレーション Public In5tance O erations組包L sealed op (exeption: C1ass) Exceptio nlNilthrows Exception; レスポンダを遂行し、レスポンダが正常終了した場合には、ニル(0)をリター ンし、エクセプションが供給されたクラス(アーギュメンh ” except ion”)のメンバであった場合には、レスポンダを異常終了させるエクセプシ ョンをリターンする。レスポンダは、レスポンダのフレーム及びプロパティでは なく、リクエスタのフレーム及びプロパティにアクセスする。 レスポンダが供給されたクラスのメンバではないエクセプションを送出した場合 には、エクセプション(”Exception”)が送出される。 注:そのクラスはごException”又はそのサブクラスであるべきである 。 5ealed op O throws Exception; レスポンダを遂行する。レスポンダは、レスポンダのフレーム及びプロパティで はなく、リクエスタのフレーム及びプロパティにアクセスする。 レスポンダがエクセブションを送出する場合に、エクセプション(”Excep ti。 n”)が送出される。 5ealed op (false: Executed; precondi tion: Boolean)throws Exception; プレコンディション(アーギュメント”precondition” )が”真 (true)”である場合には、レスポンダを遂行し、その他の場合には、遂行 オブジェクト(アーギュメント”false”)を遂行する。選択された実行オ ブジェクトは、レスポンダのフレーム及びプロパティではなく、リクエスタのフ レーム及びプロパティにアクセスする。 選択された実行オブジェクトがエクセプションを送出する場合に、エクセプショ ン(”Exception”)が送出される。 止 5ealed op (precondition: Boolean)thr ows Exception; ブレコンディションが”真(true)”である場合にのみ、レスポンダを遂行 する(アーギュメント”precondition”)。レスポンダは、レスポ ンダ自身のフレーム及びプロパティではなく、リクエスタのフレーム及びプロパ ティにアクセスする。 レスポンダがエクセブションを送出する場合に、エクセプション(” Exce pti。 n”)が送出される。 肋」巨 5ealed op O throws Exception: レスポンダを不特定回数遂行し、レスポンダが異常終了したら、続行せずに、エ クセブションを送出する。レスポンダは、レスポンダのフレーム及びプロパティ ではなく、リクエスタのフレーム及びプロパティにアクセスする。 レスポンダがエクセブションを送出する場合に、エクセブション(”Excep ti。 n”)が送出される。 匹匹虹: 5ealed op (repetitions: Integer)thro ws Exception: 要求された回数(アーギュメントrepetitions″)だけレスポンダを 遂行しルスポンダが異常終了したら、続行せずに、エクセプションを送出する。 インチジャが負数であれば、オペレーションは無効となる。レスポンダは、レス ポンダのフレーム及びプロパティではなく、リクエスタのフレーム及びプロパテ ィにアクセスする。 このオペレーションは、レスポンダの各遂行の前に、前回の遂行の番号に1を加 えたインチジャをスタックにブツシュする。 レスポンダがエクセブションを送出する場合に、エクセブション(”Excep ti。 n“)が送出される。 注:このオペレーションは、スタックにブツシュするインチジャをポツプするこ とはない。 す」至 5ealed op (precondition: Executed)th rows Exception、Re5ultlnvalid、 Result Missing:実行オブジェクト(アーギュメント”precondiLio n” )を繰り返し遂行し、スタックからブーリアンをポンプする。そして、そ のブーリアンが”真(true)”である場合にのみ、レスポンダを遂行する。 そのブーリアンが“偽(false)”である場合には、オペレーションは正常 終了する。実行オブジェクトが異常終了した場合には、このオペレーションは、 続行せずに、エクセプションを送出する。 実行オブジェクトは、レスポンダのフレーム及びプロパティではなく、リクエス タのフレーム及びプロパティにアクセスする。 実行オブジェクトがエクセプションを送出する場合には、エクセプション(“E xception” )が送出され、ポツプされるオブジェクトがブーリアンで ない場合には、エクセブション(”Re5ultlnval id”)が送出さ れ、ポツプされるべきオブジェクトがスタックに存在しない場合には、エクセプ ション(”ResultMissing”)Object (Referenc ed)・Exception (Unchanged)・−Programmi ng Exception−′−Kernel Exception・11+E xecution Exce tionクラス(Class) ExecutionExce tion:abstract 1nterfac e (KernelException) : 0;サブクラス(subcla sses) Ar umentlnvalid: 1nterface (ExecutionException) = 0;ア ーギュメントは、アーギュメントのコンストレイントを満足して0なIIA0紅 翻!叫叫Σ辻1: 1nterface (ExecutionException) :0;アー ギュメントは、スタックに存在していない。 AttributeReadOnl 。 1nterface (ExecutionException) = 0;ア トリビュートは、リードオンリであるため、セットすること(よできなIwl。 C1asslJnavailable interface (ExecetionException) :0;クラ スは、現在のプロセスのアトリビュート” privateclasses”で も、現在のブレイスのアトリビュート°’ publicclasses”でも な(1゜Escalationlnval id:1nterface (Ex ecutionException) = 0;フィーチャは、不適切にニスカ レートされている。 FeatureUnavai fableir+terrace (Execu tionException) = 0;識別子は、レスポンダのアクセス可能 なフィーチャを示して0な%X。 1nterface (ExecutionException) :0;エン ジンは、インストラクションを完全にインプリメントすることに失敗している。 Pro ert Underfined:1nterface (Execut ionException) =0;識別子は、現在のメソッドにアクセス可能 なプロパティを示していない。 RererenceProtected:1nterface (Execut ionException) :0;オブジェクトに対するリファレンスは、そ のオブジェクトの変更を妨げている。 RererenceVoid: 1nterface (ExecutionException) =0;リフ ァレンスは、無効である。 Res onderMissin : 1nterface (ExecutionException) = 0ニス タンクがクリアされているときに、フィーチャは、要求されている。 Re5ultlnvalid: 1nterface (ExecutionException) =O1リザ ルトは、そのリザルトのコンストレイントを満たしていない・む肋」並l江止: 1nterface (Execution Exception) :0;リ ザルトは、スタック上に存在していない。 VariableLlnderrined:1nterface (Execu tion Exception) =0;識別子は、変数を示していない。 4.30 フィーチャ(Feature)Object (Reference d)−Feature 212」旦迫眩し Feature: abstract 1nterface = (、、、);このクラスは、シー ルされる。 1nitialize: ungroLected op (isPublic: BooleanlNi l;exceptions: Set[1dentifierllNil);レ スポンダの固有のアトリビュートを、同じ名前のアーギュメント(アーギュメン ト”exceptions”及び”1sPub目C”)にする。アーギュメント がニル(0)の場合は、対応するアトリビュートはクリアされか、又は”偽(f alse)”とされる。 パブリックインスタンスアトリビュート(Public In5tance A ttributes弘姐匹堕亜: Set[1dentirier!]; レスポンダが定義するフィーチャによって送出されたエクセブションがメンバで あるクラスを示す識別子である。この識別子は、レスポンダを含むインターフェ ースのアトリビュート” vocabulary”に従ってインプリメントされ る。 1sPubl ic: Boolean: レスポンダが定義するフィーチャがパブリックであるか否か、すなわちプライベ ートでないか否か。 4.31 ハラシュド(Hashed)2乏l」立l狙L lashed: abstract 1nterface □ = (、、、);パブリッククラ ス ンスアト’ ニートPubliclnstanceAttributesh ash: abstract read−only Integer;レスポンダのハツシ ュである。 4.32 識1 (Identifier)Object (Referenc ed)0Primitive (Executed & Unchanged) ・・Identifier (Ordered)クラス(C1ass) Identifier: 5ealed 1nter4ace (Primitive、 0rdered ) = 0ニアダブチージヨン(Adatations)isArter 任意の識別子は、そのテキストに従って、他の識別子の後となる。 1sBefore 任意の識別子は、そのテキストに従って、他の識別子の前となる。 隘旦四粁 2つの識別子は、そのテキストに従って、同一となる。 ’ (Conversions) 鉦吐玉 識別子のテキストとして有効なストリングは、その識別子を生成する。 4.33 インプリメンー−ション(Lm lementationObjec t (Referenced)1■ 1e■entation: 5ealed 1nter4ace = (、、、);構成(Construc tion) initialize: unprotected OCI (superclasses:Li5t[1 dentifier!]1Nil;vocabulary: Lexion[C 1taLionllNil;properties: Li5t[Identi rier!コ1Nil;レスポンダの固有のアトリビュートを、同じ名前のアー ギュメント(アーギュメント’ classMethods″、 ” from Methods’ 、 ” instanceMethods” 、 ” pr o垂■窒狽■ es” 、” setMethods” 、 ” 5uperclasses″ 、 ” toMetjods”及び” vocabular凵h ) とする。アーギュメントがニル(0)であるが、対応するアトリビュートはニル (0)であることが許可されない場合には、対応するアトリビュートはクリアさ れる。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)classにe thods : Lexicon[Methodl ; レスポンダを組み込んでいるクラスに固有のメソッド、すなわち、許可されない オペレーション”αSet”以外の、オペレーション“αGet”を含むクラス オペレーションのためのメソッドである。各個は、関連付けられたキーが示すオ ペレーションの遂行のためのメソッドである。 レスポンダを組み込んでいるクラスに固有のメソッド、すなわち、他のクラスか ら蘭換するためのメソッドである。各個は、関連付けられたキーが示すクラスか らの変換のためのメソッドである。 注:クラス”Dictionary”のインプリメンテーションにおいて、特定 されたクラスがクラス”1st”である場合、その変換は、そのレスポンダがク ラス”Dietionary”であり、そのシグニチャが” Li5t: op  (list: protected Li5t) Dicti。 nary”である。 レスポンダを組み込んでいるクラスに固有のメソッド、すなわち、オペレーショ ン”αSet”以外の、オペレーション”αGet”を含むインスタンスオペレ ーションのためのメソッドである(アトリビュー)” setMethods” 参照)。各個は、関連付けられたキーを示すオペレーションを遂行するためのメ ソッドである。 propert ies : レスポンダを組み込んでいるクラスに固有のプロパティの識別子である。ここで 、これらの識別子の順序は、ここに開示されたインストラクションセットのイン プリメントにおいて意味を持たない。しかしながら、そのプロパティの順序は、 アベンディクスBに開示されたエンコード則において意味を持つ。 インスタンスオペレーション”αSet”のための、レスポンダを組み込んでい るクラスに固有のメソッドである。各個は、関連付けられたキーが示すオペレー ションを遂行するためのメソッドである。 レスポンダを組み込んでいるクラスのインプリメンテーションイミディエートス ーパークラスの識別子である。ただ腰それらが、そのクラスのインターフェイス イミディエートスーパークラスと異なっていない場合には、ニル(0)である。 クラスの正規の順序は、その識別子の順序であり、最後のクラスはアレーンくと なるべきである。 Lexicon [:Methodl;他のクラスを変換するための、レスポン ダを組み込んでいるクラスに固有のメソッド。各個は、関連付けられたキーが示 すクラスに変換するためのメソッドである。 注二クラス“Dictionary”のインプリメンテーションにおいて、特定 されるクラスがクラス”Li5t”である場合、その変換は、そのレスポンダが クラス″Dictionary’であり、そのシグニチャが”Li5t: op  OLi5t”である。 二姐匡艮ゴ・ Lexicon [C1tation]lNi1;レスポンダが参照するユーザ 定義クラスである。ただし、それらが、クラスのインターフェースが参照するも のである場合には、ニル(0)である。各個は、関連付けられたキーが示すクラ スに対するサイテションである。アトリビュートは、レスポンダのアトリビュー ト” fromt4ethods” 、” 5uperclass”及び”to にethods” (他のものではない)のインターブリートを誘導する。 アダブチ−ジョン(Adatations)長以四旺 2つのインプリメンテーションは、その固有のアトリビュートに従って、同一と なる。 4.34 イン−ジャ(1nteer)Object (Rererenced )・ Pr1m1tive (Executed & Unchanged)・ ・Number (Ordered)・ ・ ・ ハ遅l工 5ealed 1nterface (Number) =(、、、);パブリ ックインスタンスオペレーション(Publ ic In5tance Oer ations)modulus: op (divisor: Integer) Integerthrows  DivisionByzero;レスポンダの演算の剰余、被除数、及びインチ ジャ(アーギュメント” divis。 r”)、すなわち除数をリターンする。前者の符号はリザルトを示す。 除数がゼロである場合には、エクセブション(”DivisionByZero ”)が送出される。 quotient op (divisor: Integer) Integerthrows  DivisionByzero;レスポンダの演算の商、被除数、及びインチジ ャ(アーギュメント”divisor”)、すなわち除数をリターンする。 除数がゼロである場合には、エクセブション(” divitionByZer o“)が送出される。 アダブチ−ジョン(Adatatlons)当 そのリザルトはインチジャである。 4世 アーギュメントが実数である場合、リザルトは実数である。アーギュメントがイ ンチジャである場合、リザルトはインチジャである。 虹社頂 アーギュメントが実数である場合、リザルトは実数である。アーギュメントがイ ンチジャであり、リザルトが正しいと思われる場合には、リザルトはインチジャ である。その他の場合には、リザルトは実数である。 multiply オペレーション”add”について述べたものと同じある。 匣註組 そのリザルトは、インチジャである。 5ubtract オペレーション”add”について述べたものと同じある。 換(Convers 1ons) 」ユ ビノトパゼロ゛及び° 1”は、各々、ゼロ及び1を生ずる。 胆耳山11 あるインチジャの変換によって生成されることができるビットストリングは、そ のインチジャを生ずる。 初屡至担 ブーリアン”偽(false)”及び°真(true)”は、各々、ゼロ及び1 を生ずる。 Character キャラクタは、そのキャラクタのユニコードのコードである[0.65535コ の範囲のインチジャを生ずる。 匹シ匹 オクテツトは、最初にオクテツトのオクテツトストリングへの変換のリザルトを 生成し、次にそのオクテツトストリングのインチジャへの変換のリザルトを生成 する。 知立ぶIl1 あるインチジャの変換によって生成されることができるオクテツトストリングは 、そのインチジャを生ずる。 展 実数は、オペレーション”truncate”の遂行のリザルトであるインチジ ャを生成する。 針■町 キャラクタテレスクリプトにおける”インチジャ”のトークンのための構文規則 に従うストリングは、対応するインチジャを生ずる。 4.35 インターチェンジド(InterchanedIJnchanged ° 旦居匹田」射 グ二2二鑑l鋒と 」鵠息担四遠L abstract 1nterface (Unchanged) =(、、、 ):パブリンクインス ンスアトリビュート(Public In5tance  Attributes)レスポンダ、すなわちそのクラスの特定のインスタン スが、相互変換可能である場合には、レスポンダのダイジェストであり、そうで ない場合には、ニル(0)である。 4.36 インターフェース(Interface)Object (Rere renced)Interface: 5ealed 1nterface = (、、、);成(Construct ion) initial ize: unprotected op (superclasses: Li5t[I dentifierlllNil;vocabulary: Lexicon  [C1tationllNil:1nstanceFeatures: Lex icon [Feature]1Nil;5ealedlnstanceFea tures: Set[1dentirier!]1Nil;classFea tures: Lexicon [Feature]1Nil;5ealedc IassFeatures: Set[1dentirier!]lNi1;1 sAbstract: Boolean:Hit);レスポンダの固有のアトリ ビュートを、同じ名前のアーギュメント(アーギュメント” classFea tures” 、 ” 1nstanceFeatures” 、” 1sAb stract” 、 ” 5e≠撃■р■ lassFeatures″、 ” 5ealedlnstanceFeatu res” 、” 5uperclass”及び” vocab浮撃■ 「y”)とする。ここで、対応するアーギュメントがニル(0)であった場合に は、アトリビュート” 1sAbstract”は”偽(raise) ”とさ れ、アトリビュート” 5uperclasses”は、クラス”0bject ”のみの識別子のリストとされる。又は、そのアトリビュートが、アトリビュー 1−” 1sAbstract” 、” 5uperclasses”以外であ る場合は、そのアトリビュートはクリアされる。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)c IassFeatures : レスポンダを組み込んでいるクラスに固有のクラスフィーチャである。各個は、 その各個に関連付けられたキーが示すフィーチャのフィーチャ定義である。 レスポンダを組み込んでいるクラスに固有のインスタンスフィーチャである。 各個は、その値に関連付けられたキーが示すフィーチャのフィーチャ定義である 。 Boolean: レスポンダを組み込んでいるクラスが、アブストラクトであるか否が。 5ealedcIassFeatures:Set [1dentirier! ];クラスフィーチャの識別子である。この識別子は、レスポンダを組み込んで いるクラスに固有であるか、又はそのクラスによつて継承されたものであり、そ して、そのクラスによってシールされている。 5ealedlnstanceFeatures:Set [Identiri er!]:インスタンスフィーチャの識別子である。この識別子は、レスポンダ を組み込んでいるクラスに固有であるが、又はそのクラスによって継承されたも のであり、そして、そのクラスによってシールされている。 八と二山臣咀L List [Identifier!];レスポンダを組み込んでいるクラスの インターフェースイミーディエートスーパークラスの識別子である。クラスの正 規の順序は、それらの識別子の順序であり、最後のクラスはフレーバでなければ ならない。 レスポンダが参照するユーザ定義クラスである。各個は、その値に関連付けられ たキーが示すクラスに対するサイテションである。そのアトリビュートは、レス ポンダのアトリビュート“5uperclasses”のインターブリートだけ を誘導する。 アダブチ−ジョン(Adaptations)2つのインターフェースは、固有 のアトリビュートに従って・同等となる・437. カーネルエ セプション( Kernel Exce tion)Object (Referenced) 0Exception (Unchanged)1”Program組ng E xception−・−Kernel Exce tionクラス(Class ) Kernel Exce tion: abstract 1nterface (Progra+lIIingExc eption) ” 0;サブクラス(subclasses) CIassAbstr+act: 1nterface (KernekException) = 0;オブジェ クトの提案されたクラスは、アブストラクトである。 ConversionUnavai table:1nterface (Ke rnelException) =0:オブジェクトの提案された変換は、定義 されていない。 CopyUnavai table: 1nterface (KernelException) =0;オブジェク トのプロパティは、コピーされることができない。 匡亜艶甑■L interface (KernelException) =0;ループは、 中断されているか、又はループがないところに続いている。 進住肛競」ト 1nterface (KernelException) = 0ニスタツク のアイテムは、マークを含んでいない。 Ob’ectUninitial 1zed+1nterface (Kern elException) =0;オペレーション”1nitialize”の ニスカレートの前に、オブジェクトは、そのフィーチャうちの1つを使用するこ とを試みている。 Pa5saqelnval id: 1nterface (kernelException) = 0:オブジェ クトの提案された通路は、不適切である。 5electorDu 1icatedinter4ace (KernelE xception) = 0:2つのセレクタは、同等である。 4.38 レキシコン(Lexicon)Object (Rererence d)・Co11ection ・ ・ Set ・拳・Dictionary ・・・・Con5trained Dictionary (Constrai ned)”001Lexicon クラス(C1ass) Lexicon: 1nterface [ValueCIass: C1ass](constr ainedDictionary [Identirier、 valuecl assl) =(、、、);サブジェクトクラスの各メンバの各アイテムの値そ れ自身がメンバであるクラス(アーギュメント”valuecIass”)によ って、パラメータ化される。 1nitialize・ unprotected op (keysAndValues: 0bjec t 、、。 7本 key+ Identifier!+ value: valuecIa ss ネ/)throws KeyDuplicated、 Keylnval id、 0bjectsUnpaired:レスポンダのアイテムを、キーと値 の間のアソシエーションとする(アーギュメント” keyAndValues ” )。 2つの提案されたキーが等しい場合には、エクセブション(”keyDupl  1cated”)が送出され、提案されたキーが不適切である場合には、エクセ ブション(”keylnval id”)が送出され、オブジェクトのナンバが 奇数である場合には、エクセプション(” 0bjectsUnpaiered ” )が送出される。 ア ブチ−ジョン(AdatatIons)cons tra i n t そのアトリビュートは、シールされている。そのアトリビュート“ofcIas s”、” classld”、 ” 1slnstance” 、”1sopt ional”及び−passage”は、各々、クラス” Identifie r” 、クラス” Identifier”の識別子、”真(true) ”  、”偽(false)”及び”bycopy”を示す。 キーがレキシコンのコンストレイントを満たすディクショナリは、そのレキシコ ンを生成する。 4.39 リスト(List) Object (Referenced)−Co11ection −・Li5t (Ordered) Llと±1朋し l±− 1nterface [itemClass: C1ass](Collect ion [itemClass]、 0rdered) :(、、、);サブジ ェクトクラスの各メンバの各アイテム自身がメンバであるクラス(アーギュメン ト”itemcIass”)によって、パラメータ化される。 成(Construction) レスポンダのアイテムを、ポジションが左から右にかけて増大するオブジェクト (アーギュメント″items” )とする。 パブリックインスタンスオペレーション(F’ublic In5tance  Oerations)観虹 unprotected op (position+ Integer; i tem+ itesclass)throws Itealnvalid、 P o5itionlnvalid;新しいアイテムとして、レスポンダ内にオブジ ェクト(アーギュメンビite膳”)を含ませる。このアイテムは、そのポジシ ョンが、インチジャ(アーギュメント”pos i t i on”)に等しい アイテムである。また、含められたアイテムに等しいポジションの各アイテムの ポジション、又は含められたアイテムに後続するポジションの各アイテムのポジ ションは、1つずつ増大する。 提案されたアイテムが、そのようなアイテムとして不適切である場合には、エク セブシ目ン(” [teilnvalid”)が送出され、又は提案されたポジ ションがそのようなものとして不適切である場合には、エクセブシジン(”Po 5itionlnval id”)が送出される。 東男ニ unprotected op (position: Integer) i temcIassthrows Po5itionlnvalid;ポジション がインチジャ(アーギュメント”position″)に等しいアイテムを。 レスポンダから除外し、リターンする。除外されたアイテムのポジションに続く ポジションの各アイテムのポジションは、1つずつ減少する。 表明されたポジションが不適切な場合には、エクセプション(”Po5itio nrnvaU工L op (initialPosition: Integer; item:  protected itemcIass)IntegerlNi I throws Po5itionlnvalid;オブジェクト(” item “)に等しく、そのポジションがインチジャの前ではないアイテムのポジション を、レスポンダに残して、リターンする(”1nitioalP。 5ition”)。レスポンダが複数のそのようなアイテムを有する場合、それ らのポジションの中で最小なものを選択する。レスポンダが上述のようなアイテ ムを持たない場合には、ニル(0)をリターンする。 表明されたポジションが不適切な場合には、エクセブション(“Po5itio nlnvalid”)が送出される。 組L op (position: Integer) itemclassthro ws Po5itionlnvalid;ポジションがインチジャ(アーギュメ ント”position” )に等しいアイテムを、レスポンダに残し、リター ンする。 表明されたポジションが不適切な場合には、エクセブション(”Po5itio nlnvalid”)が送出される。 reposition+ unprotected op (currentPosition、 nev Positon: Integer)throws Po5i tionlnv al id:ポジションが第1のインチジャ(アーギュメント” curren tPosition”)に等しいレスポンダのアイテムのポジションを、第2の インチジャ(アーギュメント”nevPosition”)に変更する。このオ ペレーションは、オペレーション“drop“が要求される後ではなくその前に 第2のインチジャがインターブリードされること、 を除いて、オペレーション ”drop”及び“add”を用いたかのように、これを達成する。 lid″)が送出される。 距L unprotected op (position: Integer; i tem: itelclass)throws Itemlnvalid、 P o5itionlnvalid;ポジションがインチジャ(アーギュメンh’  position”)に等しい新しいアイテムが存在する場合、すなわち新しい アイテムが付加されていない場合、レスポンダからそのアイテムを除外する。そ して、新しいアイテムとしてそのポジションにオブジェクト(アーギュメント” i tea″)を含める。 表明されたアイテムが不適切な場合には、エクセブション(”Ite腸Inva lid”)が表明され、表明されたポジションが不適切な場合には、エクセプシ ョン(“PO51tionlnvalid” )が送出される。 transpose+ unprotected op (positionl、 position2 : Integer)throws Po5itionlr+yalid+2つ のポジション(アーギュメント“positionl”及び“position 2”)を占めるレスポンダのアイテムを転置する。 表明されたポジションが不適切な場合には、エクセプション(” Po5iti onlnvalid”)が送出される。 ア ブチ−ジョン(Adatatlons)exclude そのオペレーションは、除外されたアイテムのポジションの後にある各オブジェ クトのポジションを1つだけ減少させる。 i nc I ude 新しく含められたアイテムのポジションは、そのリストの新しいレングスである 。 隘旦凹仕 2つのリストは、同じポジションに存在するアイテムが同一である場合に、同一 である。 ストリームは、ポジションの増大する順序に従って、リストのアイテムを生成す る。 換(Convers 1ons) Procedure プロシージャは、同じレングスのリストを生成する。ここで、それの各アイテム は、プロシージャ内において同じポジションにあるアイテムのコピーである。 4.40 マーク(Mark) Object (Rererenced)−Pr1sitive (Execu ted & Unchanged)クラス(Class) 慣n吐 5ealed 1nterface (Prilitive) :0;ア ブチ −ジョン(AdatatiOnSi 5Eaua I 2つのマークは、如何なるものでも同等である。 4.41 ミーンズ(Means) Object (Referenced)−Means クラス(Class) ヒ担と abstract 1nterface = 0:4.42 ミーティングのエ クセブション(Meetin Exce Lion)Object (Refe renced)・Exception (Unchanged)−0Meeti n Exce tionクラス(C1ass) Meetin Exce tion abstract 1nterface (Exception) = 0;サ ブクラス(subclasses) MeetingDenied: 1nterface (HeetingException) = 0;そのペ ティションは、ベテイショナに対してミーティングを拒絶して0る。 Meetin Du 1icated:1nterface (Meeting Exception) = 0;ベティショナとベテイシ3二は、同一であるか 、又は既にミーティングしてII)る。 数匹1山n且虹 1nterface (MeetingException) =0;そのコン タクトは、ミーティングを示していない。 PetitionEx 1red: 1nterface (MeetingException) ;0;ベティシ ョンは、許容された時間内にミートすることができな0゜4.43 ミーティン グブレイス(Meetin Place)Object (Reference d)−Process (Naa+ed) ・・Place (Unmoved) ・・・Meeting Place ヒ惑」11狡し abstract 1nterface (Place) =(、、、);パブ リツ クラス レスオペレーション(Public In5tance Oer ations鱈a二 unprotected op (petition: copiecl Pe tition) Contactthrows MeetingExcepti on、ProcessNotCurrent、Statelmproper;オ ペレーションを要求しているエージェントと、ベテイション(アーギュメント” pet山on” )が特定するエージェントとの間のミーティングを開始させる 。 また、アトリビュート”5ubject”が後者のものであるコンタクトをリタ ーンする。 後者のエージェントも、レスポンダを占有していなければならない。 ミーティングが異常終了した場合には、エクセブション(”MeetingEx ception”)が送出され、レスポンダが現在のブレイスでない場合には、 エクセプション(” ProcessNotCurrent” )が送出され、 リクエスタの状態(state) h” ミート(meet)”を妨げている場 合には、エクセブション(”StatelmProper”)が送出される。 朗」二 unprotected op (contact: Contact)thr ows Meetinglnval’+d、 F’rocessNotCurr ent、 Statelmproper;そのオペレーションを要求しているエ ージェントと、コンタクト(アーギュメント”contact”)のサブジェク トとの間のミーティングを終了させる。また、コンタクトのアトリビュート”5 ubject”が既にニル(0)でない場合には、そのアトリビュートをニル( 0)に設定する。ここで、サブジェクトもレスポンダを占有していなければなら ない。 コンタクトがミーティングのコンタクトでない場合には、エクセブション(”M eetinglnval id”)が送出され、レスポンダが現在のブレイスで ない場合には、エクセプション(” ProcessNotCurrent”) が送出され、リクエスタの状態(state)がオペレーション” part″ を妨げている場合には、エクセプション(” Statelmproper”) が送出される。 匹匹紅L unprotected op O throws ProcessNotCurrent、 5tatela+pr oper;リフニスティングエージェントを含む全てのミーティングを終了し、 エージェントをアイソレートする。 レスポンダが現在のブレイスでない場合には、エクセプション(” Proce ssNotCurrenじ)送出され、リクエスタの状態(5tate)がオペ レーション″part^11”を妨げるる場合には、エクセブション(“5ta telnproper” )が送出される94.44 メソッド(Method Object (Rererenced)Method: 5ealed 1nterface = (、、、);成(Construct ion) initial ize: unprotected op (procedure: Procedure :Nil;variables: Li5t (IdenLiriertl:N i1);レスポンダの固有のアトリビュートを、同じ名前のアーギュメント(ア ーギュメント”procedure”及び“val 1ables”)とする。 ただし、アーギュメントがニル(0)である場合には、対応するアトリビュート はクリアされる。 パブリックインスタンスアトリビュート Public In5tance A ttributes)と1胆他コし Procedure: レスポンダのプロシージャである。 var i ab l es : Li5t [Identirier+コ;レスポンダの変数の識別子である。こ の識別子の順序は、ここで開示されたインストラクションセットのインターブリ ートにおいては、重要な意味は持たない。 ただし、インストラクションセットのアペンディクスBに示されたエンコード則 においては、変数の順序は意味のあるものである。 ア ブチ−ジョン(AdataLiOnS)口旦凹■ 2つのメソッドは、固有のアトリビュートに従って、同一となる。 4・45 その のエクセプション(Miscellaneous Exce  tionObject (Rererenced)−Exception (U nchanged)−・Programming Exception・・・M iscellaneous Exce tion玄二ノ」旦1坦と に1scellaneousExce tion:abstract 1nte rface (Program+aingException) =0;サブク ラス(subclasses) Patternlnval id。 1nterface (MiscellaneousException) 8 0;パターンの提案されたテキストは、構文的に誤っている。 5eedlnval id+ 1nterface (MiscellaneousException) : 0;ランダムストリームの提案されたシード(seed)が、要求された範囲に 存在しない。 4.46 モディファイア(Modif 1er)Object (Rerer enced)−Pr1m1tive (Excuted & Unchange d)−−Modifier クラス(Class) Modifier: 5ealed 1nterface (Primitive) = 0;アダブ チ−ジョン(Adatations)isEqual 2つのモディファイアは、各個が同一である場合にのみ同一となる。 4.47 名前付き(llamed) クラス(Class) Named: abstract 1nterface O= (、、、);成(Constr uction initialize レスポンダのアトリビュート”naIle”を、現在のプロセスに対等な、新し く割り当てられたテレネームとする。 バブリンクインスタンスアトリビュート(Public In5tance A ttributes)促μL sealed readonly protected Te1enase;レ スポンダの割り当てられたテレネームである。 4.48 ニル(Nil) Object (Referenced)拳Pr1m1tiye (Execu ted & llnchanged)れる。 Floor: abstract opOInteger;レスポンダよりも算術的に小さい又 は等しい、最大のインチジャをリターンする。 懸旦山止ム abstract op (nu+gber: Number) Number ;レスポンダとナンバ(” nug+ber”)の算術的な積をリターンする。 凹翻山し abstract op ONumber;レスポンダの算術的な負をリターン する。 匹肌虹 abstract op OInteger;算術的にレスポンダに最も近い1 つのインチジャをリターンするか、又は算術的にレスポンダに最も近い2つのイ ンチジャうちの1つのインチジャをリターンする。 5ubtract: abstract op (subtrahend: Nu@ber) Num ber;レスポンダからナンバ(アーギュメント”5ubtrahend”)を 減算した、算術的な差をリターンする。 truncate: abstract op O1ate(er;レスポンダを算術的に切り捨て、 小数部分を除くことによりて形成されたインチジャをリターンする。 ア ブチ−ジョン(AdatationSisAfter あるナンバは他のナンバに対して、最初のものが第2のものよりも大きい場合に のみ、後になる。 1sBerore あるナンバは他のナンバに対して、最初のものが第2のものよりも小さい場合に のみ、前になる。 2つのインチジャは、数学的に等しい場合にのみ、同一となる。 4.50 オブジェ ト(Ob′eCt)四説虹(Referenced) クラス(Class) 第小匹L− abstract 1nterface (Referenced) = (、 、、):構成(Construction) initialize+ unprotected op O; レスポンダ、すなわち潜在的なオブジェクトをイニシアライズし、レスポンダを オブジェクトとする。 finalize: unprotected op O; レスポンダがオペレーション”discard”によって破壊されたときに、要 求される。このオペレーションのためのメソッドは、そのメソッドのクラス4こ 関して、オブジェクトを最終化(ファイナライズ: final 1ze)する 。 パブリックインスタンスアトリ ニー) 1’ublic In5tance  Attributes匹組辷 5ealed readonly C1ass:レスポンダがクラス”C1as s”でない場合には、レスポンダがインスタンスであるクラスである。また、レ スポンダがクラス″C1ass“である場合には、クラス“C1ass″である 。 1μし 5ealed readonly Integer;オクテツトでのレスポンダ のサイズ、すなわち、レスポンダの破壊により再び請求される記憶容量に近似的 な量である。 パブリックインスタンスオペレーション(Publ ic In5tance  Oerations)堕居二 5ealed op Ocopied Objectthrows CopyL lnavailable;レスポンダに対するリファレンスだけを用いてオペレ ーションが要求された場合には、レスポンダをリターンする。その他の場合には 、レスポンダのコピーをリターンする。 コピーが使用不可能な場合には、エクセプション(”CopyUnavai f able”)が送出される。 オブジェクト(アーギュメント”object”)がレスポンダに等しいか否か の表示をリターンする。 レスポンダ又はオブジェクトが、そのメソッドが固有であるクラスのメンがでな い場合には、メソッドはオペレーションをニスカレートさせなければならない。 クラス”0bject”に対する固有のメソッドは、レスポンダとオブジェクト とが同一である場合にのみ、これら2つを等しいと見なす。 5elect: 5eald op (associations: 0bject 、、。 7本 protected 0bject: Executed ネ/)thr ows Exception、 5elecLorDuplicatedニ一対 のオブジェクト及び実行オブジェクト(アーギュメント”associatio ns”)から、多くとも1つの実行オブジェクトを選択し遂行する。選択された 1つの実行オブジェクトは、レスポンダのフレーム及びプロパティではなく、リ クエスタのフレーム及びプロパティにアクセスする。 オブジェクトがレスポンダに等しい場合、そのオブジェクトと対となっている実 行オブジェクトが選択される。その他の場合において、オブジェクトがニル(0 )であれば、そのオブジェクトと対となっている実行オブジェクト力(選択され る。上述した以外の場合には、如何なる実行オブジェクトも選択されない。 選択された実行オブジェクトがエクセプションを送出する場合には、エクセブシ ョン(”Exception”)が送出され、実行オブジェクトと対をなす2つ のオブジェクトが同等の場合には、エクセプション(”5electorDup ulicated)が送出される。 工乙外ヨ]ゴ上ス叉乙ど仁9:之ユZ工瓜肛阻U至胆晩」匹匡史旦り鈷易旦り襲 出し 5ealed op (identifier: Identifier) O bjectthrows C1assUnabaliable、 Featur eUnabalilable;識別子(アーギュメント”1dentifier ” )によって示されるレスポンダのアトリビュートをリターンする。アトリビ ュートは、アトリビュートについて規定されたパンセージに従う。 識別子のクエリファイヤが示すクラスが存在しない場合には、エクセブション( ”C1assUnavai fable“)が送出され、リクエスタにアクセス 可能なレスポンダのアトリビュートを識別子が示していない場合には、エクセブ ション(”FeatureUnavailble” )が送出される。 駐旦田回し 5ealed private op (identifier: Ident ifierり Classthrows CIassUnabailable: 識別子(”1dentifier″)が示すクラスを現在のメソッドにリターン する。 クラスが存在しない場合には、エクセブション(”CIassUnavai f able”)が送出される。 [建皿匹匹L sealed private op (identifier: Ident ifierり Objectthrows PropertyUndefine d;識別子(アーギュメント”1dentifier”)によって示され、現在 のメソッドが固有であるクラスに対して固有である、レスポンダのプロパティを リターンする。 レスポンダが保護されている場合にのみ、リターンされるリファレンスは、保護 されている。 識別子が不適切な場合には、エクセプション(”PropertyUndef  1ned″)が送出される。 銭W虹」貼虹 5ealedprivateop(identifier:Identifie rりObjectthrows VariableUndefiend;識別子 (アーギュメント”1dentifier”)が示す現在のメソッドの変数をリ ターンする。 識別子が不適切な場合には、エクセプション(”VariableUnder  1end”)が送出される。 5etAttribute sealed unprotected op (identifier: I dentifier;attribute: Object)throws A rgumentlnvalid、 AttributeReadOnly。 CIassUnavailable、FeatureUnavailable; オブジェクト(アーギュメント”attribute”)を、識別子(アーギュ メント”1dentifier”)によって示されるレスポンダのアトリビュー トにする。アトリビる。オブジェクトは、アトリビュートについて規定されたパ ッセージに従う。 オブジェクトが、アトリビュートのコンストレイントを侵害した場合には、エク セプション(”Argumentlnval id”)が送出され、アトリビュ ートがリードオンリである場合には、エクセプション(”AttributeR eadOnly″)が送出され、識別子のクエリファイヤが表すクラスが存在し ない場合には、エクセプション(”C1assUnavailable” )が 送出され、識別子がリクエスタにアクセス可能なレスポンダのアトリビュートを 示していない場合には、エクセプション(”FeatureUnavailab le” )が送出される。 肱せfi江 5ealed private unprotected op (ident ifier: Identifier!;property: Object) throws PropertyUndefined+オブジェクト(アーギュ メント”property”)を、レスポンダのプロパティにする。ここで、こ のレスポンダのプロパティは、識別子(アーギュメント”1dentirier ”)によって示され、現在のメソッドが固有のクラスに対して固有である。 このオペレーションは、プロパティが存在する場合には、最初にプロパティを廃 棄する。 識別子が不適切な場合には、エクセプション(”PropertyUndef  1ned”)が送出される。 5etVariable: 5ealed private unprotected op (ident irier+ IdentHier!;variable: Object) throws VariableUndefined;オブジェクト(アーギュ メント”variable”)を、識別子(アーギュメント“1dentifi er” )が示す現在のメソッドの変数にする。オペレーションは、変数が存在 する場合には、最初に変数を廃棄する。 識別子が不適切である場合には、エクセブション(” VariableUnd efined” )が送出される。 4.51 オ チット(Octet) Object (Referenced)−Pr1m1tive (Excut ed & Unchanged)・ ・ 堕旦(Ordered) クラス」旦l狙り 仮組L sealed 1nterface (Primitive、 0rdered ) = 0ニアダブチージヨン(Aclaptations)isAfter 2つのオクテツトにおいて、同じビット番号の各ビットが等しくなく、且つ、第 1のオクテツトの最も高いビット番号のビットが第2のオクテツトの最も高いビ ット番号のビットの後にある場合のみ、第1のオクテツトは第2のオクテツトの 後となる。 1sBerore 2つのオクテツトにおいて、同じビット番号の各ビットが等しくなく、且つ、第 1のオクテツトの最も高いビット番号のビットが第2のオクテツトの最も高いビ ット番号のビットの前にある場合のみ、第1のオクテツトは、第2のオクテツト の前となる。 卦シ匹■ 2つのオクテツトは、どちらも他のオクテツトの前にない場合にのみ、同一とな る。 変換(Conversions) ビットは、ビット[0]がそのビットに等しく、そのビット[11〜[7コがゼ ロであるオクテツトを生成する。 Character ユニコードのコードが[0,127]の範囲内のインチジャであるキャラクタは 、そのインチジャを変換することによりオクテツトを生成する。 Dμm工 [−128,127]の範囲内にあるインチジャは、そのインチジャの2の補数 表現を形成するオクテツトを生成する。ここで、ビット[7]は−128を表し 、一方、ビット”n”は、[0,6コの範囲内にある各”n″について、211 を表わす。 該旦那力士1 1つのアイテムを有するオクテツトストリングは、その1つのアイテムに等しい オクテツトを生成する。 4.52 オクテツトストリング(OCtetStrin)Object (R eferenced)−Co11ection ・−Li5t (Ordered) ・・壷Con5trained Li5t (Constrained)・ ・  ・ ・ 数組り払己■(Executed)クラス(C1ass) 起胆長江組L seald 1nterface (ConstrainedList [0c tet]、Executed) = (、、、);成(Constructio n) initia! ize: unprotected op (segments: 0bject 、、。 /*0ctetlprotected QctetString! 峠);レス ポンダを、レスポンダ中のポジションが左から右にかけて増大するセグメントの 連鎖(アーギュメント”segments”)にする。 アダブチ−ジョン(Adat&t10nS)constraint そのアトリビュートは、シールされている。そのアトリビュートのアトリビエ− トorclass”ごclassld”ご1slnstane”ご1sopti onal”及び” passage”は、各々、クラス” 0ctet” 、  ” 0cteL”ごtrue”ごfalse”及び” bycopy”の識別子 である。 長■1工 あるオクテツトストリングは、より短いオクテツトストリングのレングスをより 長いオクテツトストリングのものと同じにするために、全てゼロのオクテツトが 予め考慮されたかのように、他のオクテツトストリングの後となる。 1sBefore あるオクテツトストリングは、より短いオクテツトストリングのレングスをより 長いオクテツトストリングのものと同じにするために、全てゼロのオクテツトが 予め考慮されたかのように、他のオクテツトストリングの前となる。 ’ (Conversions) シ1 ビットは、最初にビットをオクテツトに変換し、次にそのオクテツトをオクテツ トストリングに変換することにより、オクテツトストリングを生成する。 し長上1岨 レングスが”n”であるビットストリングは、レングスが” i”であるオクテ ツトストリングを生成する。ここでごn”は、[8i、8 i+71の範囲内に ある。オクテツトストリングのポジション”k”にあるオクテツトのビット”j ”が、(8に−j)≦nである場合には、オクテツトのビット”j”は、ビット ストリングのポジション” (8に−j)”に存在するビットに等しい。そうで ない場合には、オクテツトのビット”j”は、ゼロである。 Character レングスが2であるオクテツトストリングの変換によりて生成されることができ るキャラクタは、そのオクテツトストリングを生成する。 k達I江 [26″−1,28″−1)の範囲内にあるインチジャ(インチジャ”n”であ りこれよりも小さくはない。)は、レングスが”n”であるオクテツトストリン グを生成する。2の補数表現が用いられ、ポジションが1であるオクテツトのビ ット[7]は一26n−1を表し、オクテツトストリングにおいてポジション”  i”にある他の全てのビット”j”は26(++−11匂を表す。 ctet オクテツトは、1つのアイテムだけがそのオクテツトに等しいオクテツトストリ ングを生成する。 鉦a町 ストリングは、バイナリ(2進)テレスクリプトにおいて、ストリングをエンコ ードするための、”キャラクタ(characters)”トークンを生成する 。 4.53 オペレーション(Oeratlon)Object (Rerere nced)−Feature ・ ・ 強!互1担 クラス(C1ass) 虹弘虹粥L sealed 1nter4ace (Feature) =(、、、);構成 (Construction) initial ize: unprotected op (arguments+ Li5t [Con 5traint]1Nil;result: Con5traintlNil; 1sPublic: BooleanlNil;exceptions: Se t [1dentirier!]1Nil);レスポンダのアトリビュートを、 同じ名前のアーギュメント(アーギュメント”arguments” 、 ”  exceptions” 、” 1sPublic”及び” result”  )にする。ただし、アーギュメントexceptions”又は” 1sPub lic”がニル(0)であれば、対応するアトリビュートは、それぞれ、クリア されるか、又は”偽(false)”とされる。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)とl徂りふL List [constraintコ1Nil;レスポンダが定義するオペレー ジジンの0以上のアーギュメントに対するコンストレイントである。 ただし、それらが、数が変化する場合には、ニル(0)である。このとき、それ ぞれのものは、リファレンスによってバスされ、マーク以外の如何なるオブジェ クトでもあり得る。リストの最初のアイテムは、スタックのトップにあるアーギ ュメントをコンストレインする。 result: Con5raintlNil; オペレーションがリザルトを有する場合には、レスポンダが定義するオペレーシ ョンのリザルトに対するコンストレイントである。その他の場合には、ニル(O )である。 ア ブチ−ジョン(Adatations)口旦凹吐 2つのオペレーションの定義は、オペレーション定義とフィーチャに固有のそれ らのアトリビュートに従って、同一となる。 4.54 オーダー(Ordered)Ordered Liと刃1胚と 0rdered + abstract 1nterface O= (、、、):広U因ヱ二副乙η ±に凶已ヱ利立厘迦生騰部±1isAfter: abstract op (object:protected 0rdere d) Boolean;レスポンダがオブジェクト(アーギュメント”obje ct″)の後にあるが否がの表示をリターンする。 そのレスポンダ又はそのオブジェクトが、メソッドが固有であるクラスのメンバ でない場合に、そのメソッドはこのオペレーションをニスカレートする。 tsBerore abstract op (Object:protected 0rdere d)Boolean;レスポンダがオブジェクト(アーギュメント”0bjec t”)の前にあるが否かの表示をリターンする。 そのレスポンダ又はそのオブジェクトが、メソッドが固有であるクラスのメンバ でない場合に、そのメソッドはオペレーションをニスカレートする。 4v二 op (object: 0rdered) 0rdered;レスポンダがオ ブジェクト(アーギュメント”object“)の後にある場合には、レスポン ダをリターンする。その他の場合には、そのオブジェクトをリターンする。 虹L op (object: 0rdered) 0rdered;レスポンダがオ ブジェクト(アーギュメント”object”)の前にある場合には、レスポン ダをリターンする。その他の場合には、そのオブジェクトをリターンする。 4.55 パッケージ(Packae)Object (Referenced )−Co11ection ・・Set (Verified) ”60Constrained Li5t (Constrained)° − −・ 1:、:λ」;三)≦」弓1」≦!≧至、(Cited& 夏Nterc hanged)interrace (ConstrainedSet [C1 ass]、 C1ted、Interchanged) = (、、、);un protected op (title: Idntirier!;majo rEdition、m1norEdition:Integer;items:  C1ass 、、、)throws ItemDuplicated、Pro cessNotPeer;レスポンダのアイテムをクラス(アーギュメント”i  teIls”)にして、レスポンダのアトリビュート” citation” をサイテションにする。このサイテションのアトリビュート”author”は 、現在のプロセスの割り当てられたテレネームであり、サイテションの他のアト リビュートは、同じ名前のアーギュメント(アーギュメント” majorEd ition” 、” m1norEdition”及び” title” )で ある。 2つのクラスが同一である場合には、エクセブション(”ltemDupl 1 cated“)が送出され、現在のプロセスがクラスの仲間でない場合には、エ クセブション(” ProcessNotPeer” )が送出される。 アダブチ−ジョン(AdatatiOnS)constraint そのアトリビュートは、シールされている。そのアトリビュートのアトリビュー ト” 0fC1aSS” 、”clssld” 、 ” 1slnstance ” 、 ” 1sOptiona!−及び”passag■ ”は、クラス“C1ass” 、” true”、−false”及び”byc opy”の識別子である。 4.56 バ −ン(Pattern)Object (Referenced )・Pattern (Ordered)interface (object 、 0rdered) =(、、、):成(Construction) initial ize: unprotected op (text: copied Stringり throws Patternlnvalid:レスポンダのテキストをストリ ング(アーギュメント″text” )にする。提案されたテキストが不適切で ある場合には、エクセブション(”Patternlnval id”)が送出 される。 パブリックインスタンスオペレーション(Publ ic In5tance  Oerations)yL op (string: protected String; positi on: IntegerlNil)Li5t [IntegerllNilth rows Po5itionlnvalid;レスポンダにマツチ(match )する最も長い可能な最初のサブストリングに対して、ストリングをサーチする (アーギュメント”string”)。このサーチは、インチジャが供給された 場合には、所定のポジション(アーギュメンl−” position”)から 開始される。その他の場合には、ポジション1から開始される。 オペレーションがマツチを見いだせない場合には、ニル(0)をリターンする。 その他の場合には、2つのインチジャのリストをリターンする。ここで、2つの インチジャのリストをリターンする場合、第1のインチジャは、マツチしたスト リング中の最初のキャラクタのポジションである。また、第2のインチジャは、 マツチしたストリング中の最後のキャラクタのポジションに1を加えたものであ る。 提案されたポジションが不適切な場合、すなわちゼロ以下であった場合には、エ クセブション(”Po5itionlnvalid”)が送出される。 注:リスト中の2つのインチジャは、オペレーション”substring”の アーギュメントとして適切である。 5ubstitute op (repetitions: Integer;string: unp rotected String!;replacement: protec tedstringすInteger; レスポンダにマツチする最も長い可能なサブストリングに対して、ポジションが 1のところから始まる第1のストリング(アーギュメント”string”)を サーチする。そして、そのストリングを、各マツチを第2のストリング(アーギ ュメント”replacement”)のコピーに置換することによって、修正 する。 このオペレーションは、インチジャ(アーギュメント”repetitions ”)がゼロである場合には、全てのマツチを見いだし、そうでない場合には、そ のインチジャと同数のマツチを見いだす。連続するマツチは、重なり合わない。 あるマツチのレングスがゼロであれば、その次のマツチのサーチは、次のポジシ ョンで始まる。このオペレーションは、実際に見いだされたマツチの数をリター ンする。 代替ストリング(replacement string)は、各々の個々の代 替のために、仕立てられることができる。 直前に逆スラッシュ(”\”)が置かれることなく、代替ストリング中にアンド 記号(”&”)が現れた場合、代替されるサブストリングのコピーは、それ自身 、アンド記号(”&”)に変えられ、修正された代替ストリングは、サブストリ ングに変えられる。 ア ブチ−ジョン(Adatatlons)長旦凹壮 2つのパターンは、それらのテキストに従って、同一となる。 パターンのテキストとして適切なストリングは、そのパターンを生成する。 4.57 パーミツト(Permit)Object (Referenced )・Permit (Ordered) interface (Object、0rdered) = (、、,1構成 (Construction) レスボダのアトリビュートを、同じ名前のアーギュメント(アーギュメント”a ge” 、 ” charges”及び”extent” )にする。アトリビ ュートがブーリアンである場合には、レスポンダの他の全ての固有なアトリビュ ートを”真(true) ”とし、その他の場合には、ニル(0)とする。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)IntegerlNi I; 最大値が課せられている場合には、レスポンダのサブジェクトにおいて、秒で計 測された、許可された最大のエージである。その他の場合には、ニル(0)であ る。 最大値が課せられている場合には、レスポンダのサブジェクトにおいて、許可さ れた最大のオーセンティシティである。その他の場合には、ニル(0)である。 最大値が課せられている場合には、レスポンダのサブジェクトにおいて、テレク リップで測定された、許可された最大のチャージである。その他の場合には、ニ ル(0)である。 最大値が課せられている場合には、レスポンダのサブジェクトにおいて、オフテ ントで測定された、許可された最大のサイズである。その他の場合には、ニル( 0)である。 肛とm匹り。 IntegerlNi I; 最大値が課せられている場合には、レスポンダのサブジェクトにおいて、許可さ れた最大のプライオリティである。その他の場合には、ニル(0)である。 9匹匝」虹 Boo l ean : レスポンダのサブジェクトがオペレーション“charge”を要求することが 許可されるか否か。 レスポンダのサブジェクトがクラス゛’ Process”のサブクラスの”オ ペレーション°” new”を要求することが許可されるか否か。 西吐即と Boo l ean ; レスポンダのサブジェクトが、仲間のプロセス(peer process)の 能力を減少させるように、仲間のプロセスのアトリビュート”nativepe rsit’をセットすることが許可されるか否か。 C卵Se崩: また、他の方法でレスポンダのサブジェクトにそのような権利が与えられている 場合には、レスポンダのサブジェクトが、プロセスのアトリビュート” reg ionalPerlit”又は”IocalPermi t”をセットすること が許可されているか否か。 レスポンダのサブジェクトがオペレーション″gO″を要求することが許可され ているか否か。 レスポンダのサブジェクトが、仲間のプロセスの能力を増大させるように、仲間 のプロセスのアトリビュート”nativePeriit”をセットすることが 許可されているか否か。 また、他の方法でレスポンダのサブジェクトにそのような権利が与えられている 場合には、レスポンダのサブジェクトが、プロセスのアトリビュート”regi onalPermit”又は“localPermit“をセットすることが許 可されているか否か。 レスポンダのサブジェクトが再スタートすることが許可されているか否か。 2つのパーミツトが同一でなく、IIIのパーミツトの固有のアトリビュートが Boolean; 第2のパーミツトの固有のアトリビュートの後にあるのではなく、且つ第1のバ maximumWait: IntegerlNil);レスポンダの固有のア トリビュートを、同じ名前のアーギュメント(アーギュメント” agentc lass” 、 ” agentNa+ie″′及び’ maximumWai t’ )とする。 がブユ1クイ]ノ!詠りαコ」]−ピョニ叩助旦Lし里y関し伏匡胆畦競り吐郭 氏胆距 C1tationlNil; レスポンダが定義するミーティングのベティショニーがメンバであるクラス”a gente”のサブクラスであるクラスに対するサイテションである。ただし、 そのようなコンストレイントが課せられていない場合は、ニル(0)である。 邦皿叩並虹 TelenamelNil: レスポンダが定義するミーティングのベティショニのテレネームである。ただし 、そのようなコンストレイントが課せられていない場合は、ニル(0)である。 wax i mumWa i t : integerlNi l; レスポンダが定義するミーティングが取り計られるべき時間と、ミーティングが 要求された時間との間の、秒で示される、最大の許容される差である。ただし、 そのようなコンストレイントが課せられていない場合は、ニル(0)である。こ こで、インチジャが供給される場合、そのインチジャは、負数ではない。 ア ブチ−ジョン(Adatations)述旦凹状 2つのベティションは、固有のアトリビュートに従って同一となる。 abustract 1nterface :(、、、);システムインスタン スオペレーション(S stem In5tance Oerations)懸 郵」L− unprotected op (contact: Contact;pet ition: protected Petition)は、throws M eetingDenied;コンタクト(アーギュメント”contact”) のサブジェクトがベティション(アーギュメント”petition”)を用い てレスポンダにミートする前に、正常に遂行される。このオペレーションが遂行 されている間、コンタクトのサブジェクトのアトリビュートはニル(0)であり 、オペレーションが正常終了した場合にのみ、その゛°サブジェクト”とされる 。 ミーティングが拒絶された場合には、エクセプション(MeetingDeni ed”)が送出される。クラスに固有のこのオペレーションのメソッドは、エク セブションを送出する。 匹匹凪L unprotected op (conLact: Contact):コン タクト(アーギュメント” contact” )のサブジェクトがレスポンダ にミートした後に要求される。このオペレーションが要求される前に、エンジン は、コンタクトのアトリビュート°’ 5ubject”をニル(0)にする。 クラス”Petitionedo“に固有のメソッドは、無効である。 4.60 ブレイス(Place) Object (Rererenced)−Process (Named) abstract 1nterface (Process、 Unmoved ) =(、、、);構成(Construction) initialize レスポンダのアトリビュート”address”を、現在のプロセスのものの仲 間である、新しく割り当てられたテレネームとし、レスポンダのアトリビュー) ”publicclasses”をクリアする。 パブリックインスタンスアトリビュート Public In5tance A ttributes)address : 5ealed readonly protected Te1eaddres s;レスポンダの割り当てられたテレアドレスである。 四炉士現比Σ旦L sealed readonly Set[C1ted];パンケージ、クラス のセット、又はそれらの両方であり、これによって、レスポンダは、それの占有 者に対してアクセス可能にする。リクエスタがブレイスである場合には、アトリ ビュートは、保護されないリファレンスである。その他の場合には、アトリビュ ートは、保護されたリファレンスである。 バブユヱ玄ヱ2区12ス主さ2二之且乞ユム匹江1匣田匹虹並肛虹匹胚しter minate: 5eald unprotected op(occupant: prote cted Telenag+e) Booleanthrows Proces sNotCurrent、ProcessNotPeer、Statelmpr oper;割り当てられたテレネーム(アーギュメント”occupant”) を有するレスポンダの如何なる占有者をも終了させ、そのようなプロセスが存在 したか否かの表示をリターンする。プロセスは、プロセスのネイティブバーミツ トを強制的に使い果すことによって終了される。 レスポンダが現在のブレイスでない場合には、エクセプシ目ン(”Proces sNotCurrent”)が送出され、現在のプロセスが占有者の仲間でない 場合には、エクセブション(” ProcessNotPeer” )が送出さ れ、リクエスタの状態(state)がオペレーション” terminate ”を妨げる場合には、エクセブシシン(” 5tateliproper”)が 送出される。 システムインスタンスオペレーション(S stem In5tance Oe rations)明(D旦L unprotected op (contact: Contact;per mit+ protected Pera+it;ticket: prote cted TicketlNil)throws 0ccupancyDeni ed:コンタクト(アーギュメント” contact″)のサブジェクトがレ スポンダを占有する前に正常に遂行される。コンタクトのアトリビュート”5u bject’ Lよ、オペレーションが要求される場合には、ニル(0)である 。ただし、オペレーションカ(正常終了した場合にのみ、コンタクトのアトリビ ュート”5ubject″番よ、サブジェクトとされる。 チケットと共に到着するエージェントが供給される場合をこ(よ、サブジェクト は、そのチケット(アーギュメント”ticket”)と共に到着するエージェ ントである。 また、ニル(0)が供給される場合には、サブジェクトは、レスポンダにお(1 て生成されているプロセスである。 バーミツト(アーギュメントpermit”)は、サブジェクトの提案された初 期ローカルバーミツトである。 このオペレーションが正常終了した後、レスボンダ力(コンタクトされるオブジ ェクトである場合にのみ、エンジンは、レスポンダのアト1ノビユート” Co ntacted”内にコンタクトを含ませる。 コンタクトのサブジェクトが占有を拒絶される場合に番よ、エクセブション(0 cupancyDenied” )が送出される。クラスに固有のオペレーショ ンのためのメ゛ノットは、エクセブションを送出する。 注:チケットが供給された場合、そのバーミツト番よ、同一であり、これにより 、そのバーミツトは、チケットのアトリビュート”destinationPe ri+it” を複写する・竺桂組L unprotected op (contact: Contact:9er mit+ protected Permit;ticket: protec ted TicketlNil);コンタクトのサブジェクト(アーギュメント ”contact”)は、1度要求されたら、もはやレスポンダを占有しない。 このオペレーションが要求されたとき、コンタクトのアトリビューt−” 5u bject”は、ニル(0)である。クラスに固有のこのオペレーションのため のメソッドは、無効である。 エージェントが供給された場合、サブジェクトは、チケット(アーギュメント” ticket”)と共にレスポンダを去るエージェントである。また、ニル(0 )力(供給された場合、レスポンダ内において破壊されるプロセスである。)( −ミツト(アーギュメント”permiじ)は、サブジェクトの現在のローカル ノ(−ミツトである。 このオペレーションが遂行された後、レスポンダがコンタクトされるオブジェク トである場合にのみ、エンジンは、レスポンダのアトリビュート” conta cted”からコンタクトを除外する。 4.61 プリミティブ(Primitive)Object (Rerere nced)0Primitive (Executed &υnchar+ge d)abstract 1nterface (Object、 Excute d、 Unchenged) = (、、、):このクラスはシールされる。 構成(Construction) ini tial ize“ unprotected op O throws Feature[Inavailable:エクセブション(” FeatureUnavailable” )を送出する。 4.62 プリミティブエクセプション(Primitive Exce ti onObject (Referenced)・Exception (Unc henged)・−PrOgraa+Wil1g EXCeptiOn−・−P r1m1tive Exce Lionクラス(C1ass) abstract 1nterface (Prograao*ingExce ption) =0;サブクラス(subclasses) 除数は、ゼロである。 4.63 プロシージャ(Procedure)Object (Refere nced)・ Pr1m山ve (Executed & Unchanged )クラス(Class) sealed 1nterface (Primitive) = (、、、) ;LL肴た≦」2」厘吐坦出:L ゼ旦匹壮 2つプロシージャのレングスが等しく、且つ同じポジションにあるアイテムが同 一である場合にのみ、2つプロシージャは、同一である。 アイテムが実行オブジェクトであるリストは、同じレングスのプロシージャを生 成する。ここで、それの各アイテムは、同じポジションにあるアイテムのコピー である。 OctetString バイナリ (2進)テレスクリプトであるオクテツトストリングは、プロシージ ャを生成する。ここで、このプロシージャは、プロシージャのアイテムがバイナ リテレスクリプトによりエンコードされるオブジェクトである。 a■圧 キャラクタテレスクリプトであるストリングは、プロシージャを生成する。ここ で、このプロシージャは、プロシージャのアイテムがキャラクタテレスクリプト によりエンコードされるオブジェクトである4、64 プロセス(Proces s)Object (Referenced)bstract 1nterfa ce (Object、 Named、υncopied) = (、、、); このクラスは、シールされる。 1nitialize: op (nativePermit: copied Permit;レスポン ダのアトリビュー)” 1aa+e”を、新しく割り当てられたテレネームであ る現在のプロセスの仲間にし、レスポンダのアトリビュートを、同じ名前のアー ギュメント(アーギュメント”nativePermit” )にし、レスポン ダの”privateclasses”アトリビュートを、アーギュメントがニ ル(0)でない場合には、同じ名前のアーギュメント(アーギュメント” pr tvatecIasses” )にし、その他の場合には、現在のプロセスと同 じように特定されたアトリビュートにする。上述以外の場合は、レスポンダのコ ンタクトアトリビュートをクリアされたセットにする。 現在のプロセス内の実効的バーミツトがオペレーション”new″を禁止し、そ のバーミツトが、その他の点で不適切である場合、又はオペレーション”ent ering”が異常終了した場合に、エクセブション(” PermitVio lated”)が送出される。 注°クラス”Process”のサブクラスに固有のこのオペレーションのため のメソッドは、生成されたプロセスではなく、生成しているプロセスを、現在の プロセスとして見なす。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)匠訓虹 5ealed readonly protected Objectthro ws ProcessNotPeer;レスポンダのブランドである。 現在のプロセスがレスポンダの仲間でない場合には、エクセブション(”Pro cessNotPeer” )が送出される。 localPermit: 5ealed readonly protected Objectthro ws FeatureUnavailabe、 PermitViolatec lレスポンダのローカルバーミツトである。 リクエスタがレスポンダでな(レスポンダが占有するブレイスでもない場合には 、エクセプション(”FeatureUnavai fable“)が送出され 、プロセスモデルと合致しない方法でアトリビュートを設定する試みがなされた 場合には、エクセプション(”Permi tViolated”)が送出され る。 nat i vePerm i t sealed copied Permitthrows FeatureUn available、 PermitViolated;レスポンダのネイティ ブバーミツトである。 リクエスタがレスポンダでなくレスポンダの仲間でもない場合には、エクセブシ ョン(”FeatureUnavai fable”)が送出され、プロセスモ デルと合致しない方法でアトリビュートを設定する試みがなされた場合には、エ クセプション(“PermitViolated” )が送出される。 と1桂 5ealed readonly copied Permit;レスポンダの 実効的パーミツトである。 匹旺即1ヒ1匹 5ealed copied Per+*itthrows FeatureU navailable、PermitViolated;レスポンダのリージョ ナルパーミットである。 リクエスタがレスポンダでなくエンジンブレイスでもない場合には、エクセプシ ョン(” Featurellnavailable” )が送出され、プロセ スモデルと合致しなt)方法でアトリビュートを設定する試みがなされた場合に は、エクセブション(”PermitViolated” )が送出される。 rivatecIasses: 5ealed readonly Set[C1ted]throws Pro cessNotPeer;レスポンダが保持するクラスのセット、パッケージの セット、又はその両者のセントである。 現在のプロセスがレスポンダの仲間でない場合には、エクセプション(”Pro cessNotPeer″)が送出される。 パブリックインスタンスオペレーション(F’ublic In5tance  0perations)0y工し 5ealed op (charges: Integer)throws P ermitlnadequate、 PeraitViolated;インチジ ャの量(アーギュメント” charges”)に従って、レスポンダの実際の チャージを増大させる。 レスポンダの実効的パーミツトが使い尽くされた場合には、エクセブション(”  Pera+1tlnadequate” )が送出され、現在のパーミツトが オペレーション” charge”を禁止する場合には、エクセプション(“F ermi tViolated”)が送出される。 restrict+ 5ealed op (procedure: Procedure; per mit: protected Permft)throws Excepti on、 PermitViolatd、 ProcessNotCurrent ;プロシージャのチャージが生じた結果の現在のプロセスの実効的バーミツト及 び一時的なパーミツト(アーギュメント”permit”)をもとに、プロシー ジャ(アーギュメントprocedure” )を遂行する。 プロシージャがエクセプションを送出する場合には、エクセブション(”exc eption”)が送出され、プロシージャの遂行が上述した実効的パーミツト を侵害する場合には、エクセブション(”PermitViolatd’ )が 送出され、リクエスタが現在のプロセスでない場合には、エクセプション(“P rocessNotCurrent” )が送出される。 5ponsor: 5ealed op (procedure: Procedure: per mit: protected Permit)throws Excepti on、 PermitViolated、 ProcessNotCurrer l;プロシージャのチャージが生じた結果のレスポンダのオーナーの実効的ノ( −ミツト及び一時的なパーミツト(”permit” )をもとに、プロシージ ャ(アーギュメント’ procedure“)を遂行する。プロシージャ:よ 、レスポンダのフレーム及びプロパティではなく、リクエスタのフレーム及びプ ロノくティにアクセスする。 プロシージャが、エクセブションを送出する場合1二をよ、エクセプション(” Exception” )が送出され、プロシージャの遂行が上述した実効的ノ (−ミツトを侵害している場合には、エクセプション(”Pera+1LVio latd”)力ζ送出され、1ノクエスタが現在のプロセスでない場合には、エ クセブション(’ ProcessNotCurrent” )が送出される。 b並仝土住左弦に土部上凸ヱ上也上臼!狸」止り旺虹 5ealed readonly Integer;秒で示された、レスポンダ の実際のエージである。 テレクリック(te lec l 1ck)で示された、レスポンダの実際のチ ャージである。 肛還り1L sealed IntegerlNil;レスポンダの実際のプライオリティ、 すなわち、レスポンダの選択されたプライオリティである。 プライベートインスタンスオペレーション Pr1vate In5tance  Oerations要求された秒数(アーギュメント“5econds”)が 経過するまでレスポンダをブロックする。その秒数が負数である場合には、その オペレーションは無効となる・システムインスタンスオペレーション(S st em In5tance Oerations)、田!− abstract unprotected op (cause: Exce ptionlNil)throes Exception; レスポンダの生成の後、そのレスポンダを開始させるためにニル(0) (アー ギュメント”cause”)を伴って、要求される。レスポンダ力(保持する) (−ミツトのアトリビュート”canRestart”が”真(true)”で ある場合には、このオペレーションは、レスポンダがエクセプションのため(こ 異常終了したとき警こ、レスポンダを再スタートさせるために上記エクセプショ ン(アーギュメント”cause”)を伴って要求される。 レスポンダが、エクセブションを正常にキャッチすることができなかった場合に は、エクセブション(”Exception”)が送出される。 restricted: op(permit:Identifier;1sRelocated:Boo lean)PermitReducedlNil;レスポンダのアトリビ:L− )” nativePermit” 、”regtonalPer+ait”又 は”10calPermit”が一度設定された後に、レスポンダの能力を減少 させるように再び設定される場合に要求される。その識別子(アーギュメント’  per組t“)は、上述した3つのアトリビュートのうちの何れかが設定され たものである。そのオペレーションのリザルトがニル(0)でない場合、エンジ ンは、レスポンダのスレッドにそのリザルトを送出する。このクラスに固有のメ ソッドは、単にニル(0)をリターンする。 ブーリアン(アーギュメント”1sRelocated”)は、エンジンがその オペレーションを要求するように導いたイベントが、レスポンダが占領している ブレイス以外のブレイス、或いは、オペレーション°” go”又は’ 5en d”の遂行中にそのオペレーションが要求された場合にはレスポンダの目的地以 外のブレイス(例えば、パーガトリ)に、エンジンがレスポンダを転送するよう にも導いているか否かを指示する。 後者の場合、すなわちオペレーション”gO゛′又は“5end”の遂行中にオ ペレーションが要求された場合には、オペレーション”go”又は”5end” は、現在のオペレーションのリザルトを、それがニル(0)でなければ、送出す る。 注:レスポンダの新しく設定されたバーミツトが著しく制限的である場合、この オペレーションを遂行するレスポンダの能力は、プロセス終了のJレールによっ て制限される。 ア ブチ−ジョン(^datatiOnS)競旺 ’ Copy Llnavailable″のメンバが送出される。 4.65 プロセスエクセブション(Process Exce Lion)O bject (Rererenced)−Exception (tlncha nged)・“Programaing Exception・−・Proce ss Exce tionabstract 1nterface (Prog ram@ingExpretion) = 0:1nterface (Pro cessExpretion) = 0;あるプロセスは、他のプロセスに対し て、他のプロセスの実効的パーミツトを使い尽くすように指示することを試みて いる。 プロセスは、リソースを独占的に使用することなくリソースの状態を操作してい る。 リソースの状態を示すことを意図した識別子は、リソースの状態を示して0ない 。 1nter4ace (ProcessExpretion) = 0;プロセ スは、プロセスが保持するバーミツトを使い尽くしている。 PermitViolated: 1nterface (ProcessExpretion) = 0;プロセ スは、プロセスが保持するバーミツトを侵害して0る。 1nterface (ProcessExpretion) = 0;プロセ スは、クラスの現在のメンバ以外のフィーチャを要求してIIXる。 1nterface (ProcessExpretion) = 0;オブジ ェクトは、オブジェクトの仲間ではな%%プロセスを操イ乍して(する。 1nterface (ProcessExpretion) = 0;リソー スの使用は、要求された秒数にお0て1よ、取を得すること力(できな(為。 旦虱劇旦担庶圧: 1nter4ace (ProcessExpretion) :0;プロセス は、要求を妨げる状態にあるとき、フィーチャを要求してt)る。 る。 4.66 プログラミングエクセプション(Progra+nin Excep tion)Object (Referenced)礎Exception ( Unchanged)・・Pro ramiin Exce tionりlメ」 」至搬− Pro rammin Exce tion:abstract 1ntefa ce (Exception) =0;4.67 格識す子(Qualifie d Identifier)Object (Referenced)・Pr1 m1tive (Executed & Unchanged)−−Ident ifier (Ordered)・・・Qualified Identifi erクラス(Class) Qualifiedldentifier:5ealed 1nterface  (Identifier) =(14,68ランダムストリーム(Rando mStream)Object (Rererenced)クラス(Class ) RandomStreav inter4ace (Stream [Integerl) = (、、、) :成(Construction initialize+ unprotected op (seed: Integer)throws  5eedlnval id;レスポンダのシードをインチジャ(アーギュメン ト”5eed” )とし、レスポンダのアトリビュート“current″をニ ル(0)とし、レスポンダのアトリビュート”next”を定義されないままに しておく。 提案されたシードが不適切な場合には、エクセプション(”5eedlnval  id”)が送出される。 ア ブチ−ジョン(AdatatiOnS)current このアトリビュートは、インチジャである。 立 このアトリビュートは、ニル(0)ではなくインチジャである。 4 、69 (Real) Object (Referenced)・Pr1m1tive (Execu ted & Unchanged)・・Number (Ordered)クラ ス(Class) 肋1L sealed 1nteface (Number) =0;7’1jf−乏! 乙」卸畠旦匹匹 担狙 そのリザルトは、5!数である。 と垣 そのリザルトは、実数である。 牡■匹 そのリザルトは、実数である。 し比組江 そのリザルトは、実数である。 肚駐旦 そのリザルトは、実数である。 subけact そのリザルトは、実数である。 ’ (Conversions) シ1 ビットは、最初にそのビットのインチジャへの変換のリザルトを生成し、次にそ のインチジャの実数への変換のリザルトを生成する。 ■耶遠1止 ピントストリングは、最初にそのビットストリングのインチジャへの変換のリザ ルトを生成し、次にそのインチジャの実数への変換のリザルトを生成する。 Boolean ブーリアンは、最初にそのブーリアンのインチジャへの変換のリザルトを生成し 、次にそのインチジャの実数への変換のリザルトを生成する。 Character キャラクタは、最初にそのキャラクタのインチジャへの変換のリザルトを生成し 、次にそのインチジャの実数への変換のリザルトを生成する。 加」I工 インチジャは、そのインチジャに算術的に等しい実数を生成する。 鯉に匹 オクテツトは、最初にそのオクテツトのインチジャへの変換のリザルトを生成し 、次にそのインチジャの実数への変換のリザルトを生成する。 ≧旦ぶ山1皿 オクテツトストリングは、最初にそのオクテツトストリングのインチジャへの変 換のリザルトを生成し、次にそのインチジャの実数への変換のリザルトを生成す る。 針■坦 ストリングは、キャラクタテレスクリプトにおける実数のトークンのための構文 規則に従い、対応する実数を生成する。 4.70 リフアレンスト(Referenced)リフアレンスト(Refe renced)クラス(C1ass) Ref erenced : abstract 1nterface O=(、、、);このクラスは、シー ルされる。 パブリッククラス レスアトリビュート(Public In5tance A ttributes)isProtected: 5ealed readonly Boolean:レスポンダに対するリファ レンスが保護されているか否か。 パブリックインスタンスオペレーション(1’ublic In5tance  Oerations)discard: 5ealed op O; レスポンダに対するリファレンスが全く残っていない場合にのみ、レスポンダを 破壊する。 issame: 5ealed op (reference: Protected Rere renced) Boolean;リファレンスされたオブジェクト(アーギュ メント”reference”)がレスポンダであるか否か。 肛吐竺L sealed op Oprotected Reference;保護された リファレンスをレスポンダにリターンする。 ニ 5ealed unprotected op O;そのオペレーションを要求 するために用いられたリファレンス自体力量保8Iされている場合にのみ、レス ポンダに対する2つの保護されたリファレンスをスタックにブツシュする。 0bject (Rererenced)クラス(C1ass) Resource: 1nterface = (0,、);成(Construction) initialtze: unprotected oil (conditon: Identifie r!Nil;conditions:copied Set[1dentifi er!]Nil)throwsConditionUNll)thro;レスポ ンダの固有のアトリビュートを、同じ名前のアーギュメント(アーギュメント” cond i ton”及び”conditons”)とする。この2つのアー ギュメントのうちの何れかがニル(0)である場合、2つのアーギュメントは、 両方ともニル(0)でなくてはならない。この場合、アトリビュートcond  i t 1ons”は、アトリビュート” condition”に等しい1つ の識別子を含む。ここで、問題の識別子は、定義されていない。 個別の条件(コンデシラン: condition) 、すなわちアトリビュー ト” ConditiOn“が、セット内にない場合、すなわちアトリビュート ”Conditions”内にない場合には、エクセプション(” Condi tionUnderined’ )が送出される。 ブブリックインスタンスアトリビュート(Public In5tance A ttributes)condition・ Identifier! throvsv ConditionUnavailable;レスポンダのコ ンデジョンのための識別子である。 現在のプロセスがアトリビュートを設定しようと試み、レスポンダの排他的な使 用の権利が欠如している場合には、エクセブシコン(”ConditionUn vai fable”)が送出される。 レスポンダの可能なコンデジョンのための識別子である。 パブリンクインスタンスオペレーション(Publ ic In5tance  Oerations)旦L sealed unprotected op (procedure: Pr ocedure;exclusive: BooleanlNil;a+axi mua+Wait: IntegerlNil;conditions: co pied Set [Identifier!]lNlN11)Boole anthro ConditionUnderined、 Exception 、 Re5ource[Inavailable;レスポンダの使用の権利を取 得し、プロシージャ(アーギュメント” procedure”)を遂行し、そ して、そのプロシージャが異常終了したとしても、レスポンダを放棄する。その プロシージャは、レスポンダのフレーム及びプロパティではなく、リクエスタの フレーム及びプロパティにアクセスする。 ブーリアン(アーギュメント“exclusive”)が存在し、そのブーリア ンが”真(true)”である場合にのみ、レスポンダの使用の権利は排他的と なる。ニル(0)でない識別子のセット(アーギュメント“condition s”)が供給される場合にのみ、レスポンダが識別子が示す状態にあるときに、 レスポンダの使用が許可される。 インチジャ(アーギュメント”maximumWait“)が供給された場合、 そのオペレーションは、そのインチジャが示す秒数を超えない時間分だけ、レス ポンダの使用の権利を待つ。また、インチジャの代わりにニル(0)が供給され た場合、オペレーションは、要求される時間だけ、又は永久に待機する。前者の 場合、すなわち、要求される時間だけ待機する場合、そのオペレーションのリザ ルトは、指示された秒数の後に、レスポンダが利用できない状態のままであるか 否かを示す。 コンデジョンのセットが、クリアされているか、又はレスポンダのアトリビュー ト”condi tions”のサブセットに等しくない場合には、エクセブシ ョン(” C。 nditionUndefined“)が送出され、プロシージャがエクセブシ ョンを送出する場合には、エクセブション(”Exception”)が送出さ れ、レスポンダの使用の権利を要求された秒数間に取得できない場合には、エク セプション(”Re5ourceUnavailable”)が送出される。 4.72 セレクタ(Selector)Object (Rererence d)・Pr1m1tive (Executed & Unchanged)L iんぶ烏朋L sealed 1nterface (Pr1m1tive) = 0;ア ブ チ−ジョン(八7 」良凹吐 2つの値が同一である場合にのみ、2つのセレクタ!よ同等となる。 4.73 セット(Set) Object (Referenced)−Co11ection interface [1tea+CIass: C1assl(Collec tion[itemClass、 Verified) = (、、、);サブ ジェクトクラスの各メンバの各アイテム自身メンバであるクラス(アーギュメン ト”i temc 1ass”) によって、パラメータ化される。 構成(Construction) initial ize: unprotected op (items: itemclass 、、、 )throws ItemDuplicated、Itea[nvalid;レ スポンダのアイテムをオブジェクト(アーギュメント”ite■S”)とする。 2つの提案されたアイテムが同等である場合には、エクセプション(’ Ite sDuplicated” )が送出され、提案されたアイテムが不適切である 場合には、には、エクセプション(”Itemlnval id”)が送出され る。 パブリックインスタンスオペレーション(Public In5tance O erations)セットのアイテムに等しい全てのアイテム(アーギュメント set”)をレスポンダから除外して廃棄する。 1ntersection: unprotected op (set: protected Set[1 telC1aSS]);セットのアイテムに等しくない全てのアイテム(アーギ ュメント”set”)をレスポンダから除去し廃棄する。 レスポンダの現存するアイテムに等しくないセット(アーギュメント”set” )の各アイテムに対するリファレンスをレスポンダ内に含める。 ア ブチ−ジョン(Adatatlons)」劇旦垣 オブジェクトに等しい現存するアイテムを排除して廃棄することにより、そのオ ブジェクトを新しいアイテムとしてセットに含める。 正■ひ セットのアイテムうちの2つのアイテムが同等でない場合にのみ、セットは整合 性がある。 4.74 スタック(Stack) Object (Rererenced)・Ca1lecton −・Li5t (Ordered) ・ ・ ・ 5tack サブジエクトクラスの各メンバの各アイテム自身がメンバであるクラス(アーギ ュメント”itemcIass”)によって、パラメータ化される。 パブリックインスタンスオペレーション(Public In5tance O erationsm四二 unprotected op OiteIIlclassthrows 5t ackDepleted;トップアイテムを、レスポンダから除去し、リターン する。 レスポンダがクリアされている場合には、エクセプション(”5tackDep leted”:が送出される。 匹ゴし unprotected op (item: 1tea+cIass):オブ ジェクト(アーギュメン”item” )を新しいアイテムとしてレスポンダの トップに付加する。 匹匝旦朋L unprotected op (items: protectedList  [itemCIassl):リストのアイテム(アーギュメント’ 1teI Ils”)に対するリファレンスを、レスポンダにブンシュする。リストのポジ ションlにおけるアイテムに対するリファレンスを、レスポンダのトップに置く 。 匹■ unprotected op (shirts、 items+ Integ er)throws Argumentlnvalid、5tackDeple ted+レスポンダの最上番目(topmost)のアイテムをシフトする。 そのシフトに関連するアイテムの数(” 工′°)は、負数でないインチジャ( アーギュメント°’ items” )で与えられる。関連する各アイテムがシ フトされるポジションのナンバ(”P゛°)は、正数でも負数でもよい他のイン チジャ(アーギュメント”5hifts” )により、与えられる。ここでIP ’は、その与えられた他のインチジャの絶対値である。この2番目のインチジャ が正数である場合には、シフトされる各アイテムは、レスポンダのトップ方向に シフトされ、そうでなt)場合には、レスポンダのボトム方向にシフトされる。 レスポンダのトップ方向にポジションを1だけ各アイテムをシフトさせることは 、最上番目のアイテムのポジションを” ■”に変化させ、最上番目のアイテム 以外の他のアイテムの各ポジションを1だけ減少させることである。 また、レスポンダのボトム方向にポジションを1だけ各アイテムをシフトさせる ことは、ポジションが”■”であるアイテムを1番上にし、他のアイテムの各ポ ジションを1増大させることである。 この” I”が負数であるインチジャが与えられた場合には、エクセプション( “Argumentlnval id”)が送出され、レスポンダのレングスが ”I”よりも短い場合には、エクセブション(”5tackDepleted” )が送出される。 2出し unprotected op O throws 5tackDepleted;レスポンダのポジション1及び2 にあるアイテムを転置する。レスポンダのレングスが2より短い場合には、エク セブション(”5tackDepleted”)が送出される。 4.75 ストリーム(Steam) Object (Referenced)サブジェクトクラスの各メンバの各ア イテム自身メンバであるクラス(アーギュメント’ itemcIass”)に よって、パラメータ化される。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)current: abstract readonly ite@classlNil;レスポン ダのアトリビュート”next”が問い合わされたが、ニル(0)がリターンさ れず、全てのレスポンダのアイテムが生成された場合には、レスポンダが最後に 生成したアイテムである。その他の場合には、ニル(0)である。 長以悪し abstract Boolean; レスポンダが全てのアイテムを生成したか否か。 凹刈二 abstract readonly itemcIasslNilthrow s ReferenceProtected;レスポンダがアイテムの全てをま だ生成していない場合には、レスポンダの次のアイテムである。その他の場合に は、ニル(0)である。このオペレーションが要求される度に、レスポンダは、 他のアイテムを生成する。 レスポンダが保護されている場合には、エクセプション(”Reference pretected”)が送出される。 4.76 ストリング(strln) Object (Referenced)・Co11ection ・−Li5t (Ordered) −1−Con5trained Li5t (Constrained)・・・ ・払区坦(Cased & Executed)クラス(C1ass) 互に胆L sealed 1nterface (ConstrainedList [Character)、Ca5ed、E xecuted) = (、、、);構成(Construction) initialize: unprotected op (segments: 0bject 、、。 /本Characterlprotcted String! 本/);レスポ ンダを、レスポンダ内においてポジシランが左から右に増大しているセグメント (アーギュメント” segments”)の連鎖にする。 パブリックインスタンスオペレーション(Public In5tance O perations)substring: copied String throws Po5i Lionlnval id;その範囲(”1niti alPos山on” 、”beyondF’+nalPosition”)Iこ 含まれるポジションにおいて、キャラクタを含んでpzるレスポンダのサブスト 1)ングのコピーをリターンする。 表明されたポジションが不適切な場合Iこ(よ、エクセプシヲン(” Po5i tionlnvalid”)が送出される。 アタブテーション(Adatat10n5)constraint アトリビュートは、シールされる。アト1ノビユート” Con5traint ”のアト17ビユーM’ ofclass” 、” classld” 、”  1slnstance−、” 1soptional”及び” passage ”は、それぞれ、クラス” Character” 、クラス゛’ chara cter” 、 ” true−、”「alse”及び°’ bycopy”の 識別子である。 1sArter レングスが短いストリングのレングスをレングス力(長(Xスト1)ングのレン グスに等しくするのに充分なキャラクタ力(、レングスカτ短0スト1ノングl こ付カロされたかのように、あるストリングh(他のスト1ノングの(麦となる 。ここで、打力口された各キャラクタは、それらのユニコードのコードカ;イン チジャ“ゼロ“であるキャラクタである。 1sBefore レングスが短いストリングのレングスをレングスが長いストリングのレングスに 等しくするのに充分なキャラクタが、レングスが短いストリングに付加されたか のように、あるストリングが他のストリングの前となる。ここで、付加された各 キャラクタは、それらのユニコードのコードがインチジャ”ゼロ1であるキャラ クタである。 (Convers 1ons) 影1 ストリングに変換し得るキャラクタに変換し得るビットは、そのストリングを生 成する。 CalendarTime カレンダータイムは、そのカレンダータイムにより示される時間を記述するスト リングを生成する。 Character キャラクタは、1つのアイテムだけがキャラクタに等しいストリングを生成する 。 Identifier 識別子は、その識別子のテキストに等しいストリングを生成する。 知セ■m インチジャは、キャラクタテレスクリプトにおける”インチジャ”トークンのた めの構文規則に従うストリングを生成する。 h月旦1 パターンは、そのパターンのテキストに等しいストリングを生成する。 肚1 実数は、キャラクタテレスクリプトにおける”実数” トークンのための構文規 則に従うストリングを生成する。 Telenumber テレナンバは、プラスサイン(”+”)、テレナンバの国のアトリビュート、ス ペース(”゛)、及びテレナンバのアトリビュート”telephone”の連 鎖を生成する。 タイムは、最初にそのタイムのカレンダータイムへの変換の1ノザルトを生成し 、次にそのカレンダータイムのストリングへの変換の1ノザlレトを生成する。 4.77 テレアドレス(Teleaddress)Object (Refe renced)・ Te1eaddress クラス(Class) Teleaddress: Interface = (、、、);成(Construction) initialize unprotected op (provider: OctetStrin g!1Nil;1ocation: String!Ni1);レスポンダのア トリビュート”rou t ingAdv ice”をり1ノアし、その他の固 有のアトリビュートを同じ名前のアーギュメント(アーギュメント”l0Cat iOn”及び”prov tder”)にする。ただし、アーギュメント”pr ovider”力(二Jしく0)である場合は、アトリビュート”provid er”(よ、現在のブレイスの割り当てられたテレアドレスのアトリビュートと される。 パブリックインスタンスアトリビュート(Public In5tance A ttributes>1ocation: String! INi l; レスポンダによって示されるブレイスのロケーションを示しているストリングで ある。ただし、これは、レスポンダが割り当てられているか、又はそのようなコ ンストレイントが課されている場合であり、その他の場合には、ニル(0)であ る。 どと違反[ 並立ぶI工13 テレネームのアトリビュート” authority”と同様に、レスポンダが 示すブレイスを含んでいるリージョンのブロパイダを示している、オクテツトス トリングである。 匹畦」■虹匹L List [OctetString!コ;アトリビュー1−” provid er”と同様に、また、優先順位の低い順序に並べられた、移動先のリージョン (transit region)のプロバイダを示している、オクテツトスト リングである。 アダブチ−ジョン(Adaptations)諮以凹辻 2つのテレアドレスは、各々の固有のアトリビュートに従って、同一となる。 4.78 テレネーム(Telenase)Object (Rererenc ed)クラス(C1ass) interface = (、、、);構成(Construction) ini tial ize: unprotected op (authority、1dentity:  OctetString!IN口);レスポンダの固有のアトリビュートを、同 じ名前のアーギュメント(アーギュメント”authority”及び”1de ntity”)にする。ただし、前者のアーギュメントがニル(0)である場合 は、アトリビュート”authori ty”が現在のプロセスの割り当てられ たテレネームのアトリビュートにされる。 パブリックインスタンスアトリビュー) (Public In5tance  Attributes)起…氏口」竺 OctetString! レスポンダが示す名前付きオブジェクトのオーソリティを示しているオクテツト ストリングである。 レスポンダによって示された名前付きオブジェクトのアイデンティティを示して いるオクテツトストリングである。ただし、これは、レスポンダが割り当てられ ているか、又はそのようなコンストレンドが課された場合であり、その他の場合 には、ニル(0)である。 ア ブテーシクン(AdatatlOns)卦旦巨壮 2つのテレネームは、各々の固有のアトリビュートに従って、同一となる。 4.79 テレナンバ(Telenumber)−Te1enuIIber interface = (、、、);成(Construction) initial ize: unprotected op (countryAndTelephone:  String!;extension: String!1Nil);レスポ ンダのアトリビュート”extension”を、同じ名前のアーギュメント( アーギュメント”extension”)とし、レスポンダの他の固有のアトリ ビュートを、アーギュメント” countryAndTelephone”に 変換可能なテレナンバのアトリビュートにする。 パブリッククラス レスアトリ ュ−ト(Public In5tance A ttributesレスポンダが示すものについて、国又は他の地理的な領域に 対してCCITTが割り当てるコードが配される。ここで、ストリングの各キャ ラクタ(よ、数字(”0”〜”9”)である。 extension: String! lNi I: レスポンダが示すものを明瞭に特定するテレホンの内線である。ただし、これは 、レスポンダのアトリビュート“country“及び”telephone” が、それら自身ではそのように機能しない場合であり、その他の場合には、ニル (0)である。 ここで、ストリングの各キャラクタは、数字(” 0”〜″9”)、ハイフン( ”−”)又はスペース(”″)である。 止尺辿匣虹 String!; アトリビュート”country”が示す国又は他の地理的な領域によって、レ スポンダが示すものについて、割り当てられた番号である。ここで、ストリング の各キャラクタは、数字(”0゛°〜゛°9”)、ハイフン(n−”)又はスペ ース(゛°)である。 ア ブチ−ジョン(Adata【10nS)鳥以凹状 2つのテレナンバは、全てのハイフン(”−”)及びスペース(”)が最初に2 つのテレナンバから除かれたかのように、2つのテレナンバの固有のアトリビュ ートに従って同等となる。 換(Conversions) 鉦吐1 テレナンバの置換よって生成されることができるストリングは、そのテレナンバ を生成する。ここで、そのテレナンバのアトリビュート”Extension” は、ニル(0)である。 4.80 チケット(Ticket) Object (Rererenced)・Ticket 5tub クラス(C1ass) Ticket: Interface (TicketStub) = (、、、);構成(Co nstruction) initialze+ unprotected op(destinationName: Tele namelNil;destinationAddrss: Te1eaddr esslNil;destinaLionclass: C1tationlN il:maximumWait: IntegerlNil;way: Way lNil; travelNotes: 0bjectlNil);レスポンダの” des iredWait”及びdestinationPermit”アトリビュート をニル(0)にし、レスポンダの他のアトリビュートを同じ名前のアーギュメン ト(アーギュメント” destinationAddress’ 、 ” d estinationclass″、destinati。 nName−、” g+axiiumlfait” 、−travelNote s”及び” way” )にする。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)clesireclWait: Integer IN i I ; レスポンダが規定するトリップが完了されるべき時間と、トリップが要求される 時間との時間差において、所望される負数でない秒数の最大値に対してコンスト レイントが課せられた場合、その最大値である。そうでない場合は、ニル(0) である。 destinationAcldress:Te1eaddresslNil: レスポンダが定義するトリップの目的地のテレアドレスに対してコンストレイン トが課せられた場合、そのテレアドレスである。そうでない場合には、ニル(0 )である。 レスポンダが定義するトリップの目的地がメンバであるクラス゛place”の サブクラスに対するサイテションに対してコンストレイントカ(課せられた場合 、そのサイテションである。そうでない場合には、ニル(0)である。 レスポンダが定義するトリップの目的地のテレネームiこ対してコンストレイン トが課せられた場合、そのテレネームである。そうでな(X場合;ごは、ニル( 0)である。 ローカルパーミツトがエージェントの現在の一時的なノ(−ミツトと相違して0 る場合には、レスポンダを使用しているエージェントカ(、エージェントの目的 地において持つであろうローカルパーミツトであり、エージェントカ9それを持 っていないときは、エージェントのネイティブノ(−ミツトである。その他の場 合番ごは、ニル(0)である。 maximuIIWait: レスポンダが定義するトリップが終了すべき時間と、トリップが要求する時間と の時間差において、秒で表した最大のパーミントされる時間差に対してコンヌト レイントが課せられた場合には、その時間差である。そうでない場合(こは、ニ ル(0)である。インチジャが供給される場合、そのインチジャは、負数ではカ いものとする。 アダブチ−ジョン(AdatatIOnS)隘旦凹畦 2つのチケットは、チケットに対して固有のアトリビュート及びチケツトの;タ ップに従って同等である。 4.81 チケットスタッブ(Ticket 5tub)Object (Re rerenced)クラス(C1ass) TicketStub Interface= (、、、); 構成(Construction) レスポンダの固有のアトリビュートを、同じ名前のアーギュメント(アーギュメ ント”travelNotes”及び’ way”)とする。 パブリックインスタンスアトリ ュート(Public In5tance A ttributes(レスポンダを保持するエージェントの独占的な使用のため のオブジェクトである。 トリップの目的地に向かって取るべき進路(way)である。ただし、そのよう なコンストレイントが課せられていない場合には、ニル(0)である。チケット スタッブ内は、トリップのオリジンに向かう戻る方向の進路である。 アダブチ−ジョン(Adaptations)1sEqua1 2つのチケットスタップは、各々の固有のアトリビュートに従って同等である。 4.82 タイム(Time) Object (Referenced)−Time (Ordered &  Unchanzed)クラス(C1ass) nμし Interface (Object、 0rdered、 Unchange d) = (、、、);成 (Construction) initial ize レスポンダを現在の時間、すなわち、現在のブレイスにおいての現在の時間とす る。 パブリックインスタンスオペレーション(Public In5tance O erations邸違臣[ op <5econds: Integer) Time;時間をリターンする 。ここで、時間は、レスポンダの後に要求された秒数(アーギュメント”5ec onds”)であり、同一の一定なずれ及び季節的なずれを特定する。 注:インチジャが負数であれば、リターンされる時間は、レスポンダに先行する 。 1nterval : op (subtrahend: Time) Integer;被減数である レスポンダと、減数である時間(アーギュメント”5ubtrahend”)と の、秒で表された差をリターンする。 注:そのリザルトは、2つの絶対時間の違いを表す。 アダブチ−ジョン(Adatations)夏5Arter 任意の時間が他の時間の次になるのは、他の時間が特定する絶対時間点に、任意 の時間が特定する絶対時間点が後続する場合にのみ生ずる。 任意の時間が特定する絶対時間点が先行する場合にのみ生ずる。 長以凹■ 2つの時間は、どちらも他の時間の前にない場合にのみ同等である。 カレンダータイムは、同一の時点を表す時間と同一な一定及び季節的なずれとを 生ずる。 483 トリップエクセプション(Tri Exce tion)Object  (Referenced)0Exception (LInchanged) ・―”Trip Exception”クラス(C1ass) 肛佳■岨匹匹叶 abstract 1nterface (Exception) =(、、、 )+1nitialtze: unprotected op(ticketstub: TicketStu b);レスポンダの固有の7トリビユートを同じ名前のアーギュメント(アーギ ュメント” ticketstub”)とする。 サブクラス(subclasses) DestinationUnavailable:Interface(Tri pException) :0:ネットワークが区画されているため、トリップ の目的地には到達不可能である。 したがって、そのトリップの目的地は、将来到達されつるかもしれない目的地で ある。 DestinationUnknovn:Interface(TripExc eption)=0 ;トリップの目的地は特定できないため、到達不可能であ る。 0ccu anc Denied: Interface(TripException)二〇 ニトリツブの目的地 は、エージェントの占有を拒絶する。したがって、到達をも拒絶する。 旦銚鮭堕吐胆虹 1nterface(TripException) =0ニトリツブのための チケットの”maximumWait”アトリビュートが要求した秒数内で、ト リップの目的地には到達することができない。 ハ式躬μ庄1abl虹 Interface (TripException) = 0;トリップの出 発点は、トリップに対して要求された進路が欠けている。 パブリックインスタンスアトリビュート(Public In5tance A ttributes)t 1cketstub sealed TicketStub;正常終了しなかったトリップの結果とし て生じたチケットスタップである。 アダブチ−ジョン(八datat10ns)」奥凹畦 2つのトリップのエクセブションは、各々の固有のアトリビュートに従って同等 である。 4.84 アンチエンシト(Unchaned)助抽μm世 クラス(Class) 血亜競肥虹 abstract 1nterface O:0;1Lびヨ乏且乙Ω卸山旦卦り 2四y アンチエンシトオブジェクトのコピーは、オリジナルである。 ±2互5 7*クノゴ汐?<!」’、:I惑びぢム仁〔乙μ血囚整山独上に阻U 卯し0bject (Referenced)・Exception (Unc hanged)−−Prograuing Exception・・・Kern el Exception・0・−Execution Exceptionl  + ′ 1 6 Unxpected Exception”クラス(Cla ss) UnexpectedException:1nterface(Excecu tionExeption) =(、、、);unprotected op( exception: Exception);レスポンダの固有のアトリビュ ートを同じ名前のアーギュメントとする。(アーギュメント” Excepti on” )パブリックインスタンスアトリビュー ト(Public In5t ance Attributes)ヅε阻■凹L readonlY Exception;フィーチャが宣言しなかったにもかか わらず送出したレスポンダの原因であるエクセプションである。 abstract−interface O:0:abstract’+nte r4ace O= (、、、):パブリックインスタンスオペレーション(Pu blic In5tance Oerations)猛わ工L abstract op OBoolean;レスポンダがコンシステントであ るか否かの指示をリターンする。 4.88 ウェイ(Wa) Object (Referenced)・ シ■ 1nterface = (、、、);構成(Construction) iniHal ize: unprotected op ( name : Te1enaielNil;means: MeanslNil : authenticator: AuthenticaLorlNil);レス ポンダの固有のアトリビュートを同じ名前のアーギュメント(アーギュメント” authenLicator” 、” +*eans”及び−name” )と する。 パブユニクイ22り詠ノaコヨ」5ニョ二叩助月Lj刃l旦し狭止±畦おしau thenticator: AuthenticatorlNi l :ウェイが通過するリージョンに進入 するために用いられるオーセンティヶータータである。ただし、ウェイが通過す るり一ジョンへの進入に対してコンストレイントが課せられていない場合には、 ニル(0)である。 ウェイが通過するリージョンをアクセスするべきミーンズ(手段)である。ただ し、ウェイが通過するり一ジョンへのアクセスに対してコンストレイントが課せ られていない場合には、ニル(0)である。 ウェイが通過するリージョンのテレネームである。ただし、ウェイが通過するリ ージョンのテレネームに対してコンストレイントが課せられていない場合には、 ニル(0)である。 1Lびヨ之l乙Ω加自旦卦虹 隘旦凹■ 2つのウェイは、各々の固有のアトリビュートに従って同等である。 5、 テレスクリプトシンター/ ’) 7. (置ESCRIPT 5YNT AX゛テレスクリプト(telescript)“は、プロジージャのエンコー ドである。 汎用的なテレスクリプトの抽象構文と、特にキャラクタ及びバイナリのテレスク リプトの具象構文とが、このアペンディックスの本セクションにおいて定義され る。 注:キャラクタテレスクリプトは、人によって使用される。バイナリテレスクリ プトは、機械によって使用され、例えば、オブジェクトをオブジェクト間に転テ レスクリプトよりも常に著しく長さが短いオクテツトである。 5.1 テレスクリプト(Te1eSCrlt)テレスクリプトは、第1にブリ フェースを、そして、第2にテレスクリプトがエンコードするプロシージャを含 む一連のトークンである。ブリフェースは、テレスクリプトが適合するインスト ラクションセットのメジャーバージョン及びマイナーバージョンを特定する。 テレスクリプトは、以下に示すシンタックティックルール及びシンタラクチイン クルールに付随したセマンテ4 ’7クルールに従う。BNFで表した規則は、 ブラケットによって任意のトークンを囲む(” [”及び”]”)。 Te1escript ::=Preface ProcedureBody  ::=[EXeCutedObjeCt Body]ExcecutedObj ect ::=Bit l BitString l Boolean 1Ch aracter l Identifier l Integer 1Octe t l OctetString l Mark l Modifier lN i1 I Procedure l Qidentifier IReal l  5elector l StringBit ::=BitZero l B itOneBoolean ::4ooleanFalse l Boolea nTrueModifier ::=ModifierDemarcate 1 ModifierGeLCIass 1ModirierGetPropert y 114odifierGeLVariable 1ModifierMen tion 1 ModifierSetAttribute 1ModirierSetPro perty 1ModirierSetVariable 1Modirier UseStackl Selector ::=SelectorBreak 1SIectorC1 ient 1 SlectorContinue 1 SlectorEscalate 1 SlectorPlace 1 SlectorProcess l 5lectorSelr 1 SIectorSucceed テレスクリプトは、コメントを含むことができる。これは、シンタックティック ルールにおいて考慮された規定である。”コメント(coauaent)”は、 テレスクリプトがエンコードするプロシージャに影響しないストリングである。 1以上のコメントは、スクリプトの最初のトークンの前、スクリプトの最後のト ークンの後、及び任意の2つの隣接したトークンの間に記載することができる。 注二通常、コメントは、人に対してテレスクリプトの様相を記述する。 注:アペンディックスAに規定されたインストラクションセットのメジャーバー ジョン及びマイナーバージョンは、各々、ゼロ” (0)”及び八(”8”)に より特定される。 5.2 キャラクタテレスクリプト(Character Telescrip t)”キャラクタテレスクリプト(character telescript )”は、ストリングとしてエンコードされたプロシージャである。汎用的なテレ スクリプトのための抽象構文規則は、本セクションにおいて、特にキャラクタテ レスクリプトのための具象的なものとされる。 キャラクタテレスクリプト中の各トークンは、1以上のキャラクタである。キャ ラクタテレスクリプトは、トークンを連絹させることによって、又はそのキャラ クタによって、又はトークン間にキャラクタを挿入することによって得られるも のである。 ブレークキャラクタは、スペース(” パ)、水平タブ又は改行(ラインフィー ド: 1ine feed)である。1以上の上述のようなキャラクタは、最初 のトークンの前、最後のトークンの後又は2つの隣接した任意のトークンの間に 現れつる。 2つの隣接した任意のトークンの間に1以上の上述のようなキャラクタが現れた 場合、2つの隣接したトークンがどちらも’ BinDigit”又は” he xDigitPair”である場合を除いて、これら2つのトークンが数字(′ °0”〜゛9”)及び文字を含む場合には少なくとも1つのキャラクタが現れな ければならない。 キーワード゛’ telescript”及び番号記号(”#°゛)で始まるタ ーミナルは、大小文字区別をしない。このアペンディックスでは、アッパーケー ス(大文字)キャラクタが表れるのに対して、プログラミングにおいては、ロー ア−エース(小文字)キャラクタ又はアッパーケース(大文字)キャラクタ、又 はそれら2つのものの混合が使用されつる。 5.2.1 ブリフェースとコメント(Preface and Com+ne nt)ブリフェース(Preface) ブリフェースは、以下の規則に従う。 preface ::= telscript Versionversion  ::= numerals : nuIlerals第1の”numeral s”は、キャラクタテレスクリプトが従うインストラクションセットのメジャー バージョンを特定し、第2の” numerals”は、マイナーバージョンを 特定する。 コメントは、以下の規則に従う。 Co+u+ent ::= /本co+u+ent1本/ l //coau+ +ent2注:コメントのためのシンタンクスルールは、C++プログラミング 言語のものである。 5.2.2 行オブジェクト(Executed Ob’ects)BitZe ro ::= #b ’ O’BttOne ::=#b ’ 1 ’ビットス トリング(BitStrin)ビットストリングは、以下の規則に従う。 BitString :: = #b−BinDigits ”BiLDigi ts :: = [BinDigit BinDigitsli番目の”Bin Digit”は、ビットストリングのポジション” i”においてのビットを表 す。 ブーリアン(Boolean) ブーリアンは、ブーリアンの値を個別にエンコードする以下の規則に従う。 BooleanFalse ::= tlralseBooleanTrue  ::= #trueキャラクタ(Character) キャラクタは、以下の規則に従う。 Character ::=jtc ’″characters ””char acters”は、1つのキャラクタを表すものとする。各キャラクタは、キャ ラクタ自身を表し、クラス”SLring”に対して規定したエクセプションが ある。 識別子(Identir 1er) 識別子は、以下の規則に従う。 Identifier ::= 1dentifier l ]”Identi fier”は、識別子のテキストである。左角括弧(“コ”)(よ、オペレーシ ョン”new”を表す。 インチジャは、以下の規則に従う。 Integer ::: [−コn+nmeralsマークは、以下の規則に従 う。 Mark ::= #mark l [注:左角括弧(” [” )は、規約に より、左角括弧(コ”)と八に使用されるように供与される。(上記のトークノ 冒dentirier”参照のこと。)モディファイヤ(Modifier) モディファイヤは、モデイファイヤの値を個別にエンコードする以下の現員り: こ従う。 ModifierDemarcates ::= @ModifierGetC 1ass二=:ModifierGeLProperty ::= %Modi fierGetl/ariable ::= $ModHierMention  ::=’ModifierSetAttribute::= =Modiri erSetProperty ::= =%HodirierSetVaria ble ::= =$ModifierUseStack ::=−ニルは、以 下の規則に従う。 Nil ::= #nil オクテツトは、以下の規則に従う。 0ctey ::=#o ’ hexDigitPair ’”hexDigi tPair”のMSBは、オクテツトのビ・ノド[7コを表し、LSB+よ、ビ ット[0]を表す。 オクテツトストリング(OctetStrinオクテツトストリングは、以下の 規則に従う。 OctetString :: = #o ” HexDigitPairs  ”)1exDigitPairs:: = [hexDigitPair He xDigitPairsl第1の”hexDigi tPai r”は、オクテ ツトストリングのポジション1においてのオクテツトを表し、第2の“hexD igitPair“は、オクテツトストリングのポジション2においてのオクテ ツトを表し、以下同様である。各々のhexDigitPair”のMSBは、 オクテツトのビット[7コを表し、LSBは、オクテツトのビットCO]を表す 。 プロシージャ(Procedure) プロシージャは、以下の規則に従う。 Procedure :: = (Body)有資格識別子(Qual if  1edldentir 1er)有資格識別子は、以下の規則に従う。 Qldentifier ::= 1dentifier :: 1denti fier第1の” 1dentifier”は、テキストを表し、第2の” 1 dentifier’は、そのクエリファイヤを表わす。 失敗」旺虹と 実数は、以下の規則に従う。 Real ::=Number [Exponent]Number ::=  Integer ・numerals lInteger 01 − numerals Exponent ::= E Integer実数のインチジャ部分が存在し ている場合に番よ、実数のインチジャ部分lよ、”Nua+ber”の”Int eger”である。そうでな11場合:こ番よ、ゼロである。実数の分数部分が 存在している場合には、実数の分数部分はごnumerals”である。そうで ない場合には、ゼロである。”Exponent”中に” Integer”  7!l(存在してlIXる場合に番よ、” Exponent”中の”Inte ger”は、10の累乗である。 5electorBreak ::= ttbreakSelectorCli ent ::= #clientSelectorContinue ::=  #continueSelectorEscalate ::= #escal atel−5electorPlace ::= #hereselector F’rocess II” :tprocessSelectorSelr : := #5e141本5electorSucceed : :: #5ucc eedストリング(String) ストリングは、以下の規則に従う。 String ::= [#C] ’characters″”charact ers”は、ゼロ以上のキャラクタを1表す。各キャラクタは、キャラクタ自身 を表す。ただし、例外として、逆スラッシュ(”\”)と4つの16進デジツト (0”〜”9“、”A”〜”F”)とでキャラクタが示される。ここで、このキ ャラクタのユニコードのコードは、それらのデジットが表す符号無しインチジャ である。指示キャラクタとなるキャラクタの対について表A、6に示す。 (以下、余白。) (以下、余白。) 5.2.3 他の非ターミナル(Other Non−terminals)キ ャラクタ(characters) ゼロ以上のキャラクタであり、それぞれは、文字のキャラクタ又はスペース(” )である。引用符(”)の前には、逆スラッシュ(”\”)が配される。 逆スラッシュは、上述したトークン″String”の所で説明した表中のキャ ラクタ列の一部分であるか、又は4つの16進デジツトに先行するものとする。 コメント1 (commentl) スラッシュに後続されたアステリスク(”*/”)を含まない、ゼロ以上のキャ ラクタである。 注: ” commentl”は、特別な意味無しに°’/*”又は”//”を 包括することができる。したがって、”co+uent2”を包括することがで きる。 注:”’ coaoaent2”は、特別な意味無しIご/*”、”*/”又は ”//”を包括することができる。したがって、”commentl”を包括す ることができる。”COma+ent2°′は、同じ行に他のトークンを後続す ることはできない。これは、” cow諺entz”がこれらを含むものと見な されるからである。 16進デジントの対(hexDlitPair)16進デジツトの対(”0°゛ 〜”9“、”A”〜”F”)である。 識別子(identifier) 識別子のテキストと同様に、コンストレインされたキャラクタである。 5.3 バイナリテレスクリプト(Binar Te1escri t)“バイ ナリテレスクリプト(binary telescript) ”は、オクテツ トストリングとしてエンコードされたプロシージャである。汎用的なテレスクリ プトのための抽象構文規則は、本セクションにおいて、特にバイナリテレスクリ プトのための具象的なものとされる。 バイナリテレスクリプト中の各トークンは、1以上のオクットである。バイナリ テレスクリプトは、トークンを連鎖させることによって、すなわち、オクテツト を連鎖させることによって得られる。 5.3.1 プリフェースとコメント(Preface and Commen t)Preface ::= VersonVersion ::= unsi gnedNumber unsignedNumber第1及び第2の” un s ignedNumber”は、キャラクタテレスクリプトが従うインストラ クションセットのメジャーバージョン及びマイナーバージョンを各々特定する。 コメントは、以下の規則に従う。 Comment : := tag unsignedNusber char acters” unsignedNumber”は、キャラクタとして認識さ れるべきオクテツトのナンバである。 旦−1−1−三外殻しと=乙djコ箋tフ」」為ヨ9遣史助コ虱LBitZer o ::= tag BitOne ::” tag BitString ::= tag unsignedNumber uns ignedNumber Oct、etsOctets ::= [octet  0ctets]第1の”unsignedNumber”は、最後のオクテツ トのビットストリングの各ビットのC1,8]範囲中のナンバである。このオク テツト中の他のビットは、意味を持たないため定義されない。第2の” uns ignedNuiber″は、トークンオクテツト中のトークン“0ctets ”の発生回数”n“である。オクテツトが[1,nl範囲内で番号付けされてい れば、ビットストリング中のそのポジションが″ i″であるビットは、(1+  (i−1)/8)の番号を有するオクテツトのビット[(7−((i−1)m od 8)コである。 ブーリアン(Boolean) BooleanFalse ::= tagBoolean True ::=  tagキャラクタ(Character) キャラクタは、以下の規則に従う。一般的な及び特別なエンコードが規定されて いる。特別なエンコードは、8ビツトのキャラクタについて用いる。 Character ::= GeneralCharacter l 5pe cialCharacterGeneralCharacter ::= ta goctet octetSpecialCharacter ::= tag  octetl又は2のオクテツトは、キャラクタのユニコードのコードである インチジャをサインされないままエンコードする。特別なエンコードにおいては 、インチジャのMSB及びLSBは、各々、オクテツトのMSB及びLSBであ る。一般的なエンコードにおいては、インチジャのMSB及びLSBは、各々、 第1のオクテツトのMSB及び第2のオクテツトのLSBである。 識別子(Identifier) 識別子は、以下の規則に従う。1つの一般的なエンコード及び2つの特別なエン コードが規定されている。2つの特殊なエンコードのうちの1つは、識別子のテ キストが定義済みクラス又はフィーチャの識別子のテキストに等しい場合にのみ 使用する。 Identifier ::= GenerallD IPredefined ClasslD IPredefinedFeaturelDGenerall D ::= tag unsignedNumber charactersP redefinedCIasslD ::= tagunsignedNumb erPredefinedFeaturelD::= tag unsigne dNumber一般的なエンコードにおいて、”unsignedNumber ”及び” characters”は、直接テキストを表す。”unsigne dNumber”はごcharacters”として認識されるべきオクテツト の数である。特別のエンコードにおいて、” unsignedNumber” は・後述するセクション5.4に示す表中から引き出されるコードによって、識 別子のテキストを関節的に表している。 インチジャ(Integer) インチジャは、以下の規則に従う。1つの一般的なエンコード及び幾つかの特い られる。 Integer ::: Generallnteger I Special lntegerGenerallnteger: := tag signed NumberSpeciallnteger::= IntegerMinus One lIntegerZero l IntegerP lusone IntegerMinusOne::= tagIntegerZero :: = tagIntegerl’1usOne ::= tagサインドナンパ( s ignedNumber)は、インチジャである。 マークは、以下の規則に従う。 Mark::= tag モディファイヤ(Modif 1er)モディファイヤは、モデイファイヤの値 を個別番ニエンコードする以下の現員11tこ従う。 ModirierDemarcate ::=tagModirierGetC 1ass ::= tagMoclifierGetF’roperty :: = tagModifierGerVariable ::= tagModi fierMention ::= tagModifierSetAttrib ute ::= tagModifierSetProperty ::= t agModifierGerVariable ::= tagModifie rυ5eStack ::= Lagニルは、以下の規則に従う。 Nil”:= tag オクテツト(Octet) オクテツトは、以下の規則に従う。 0ctet ::= tag octet”オクテツト(acted)”のMS Bは、そのオクテツトのビット[7コを表し1、LSBは、ビット〔0コを表す 。 オクテツトストリン (OCtetStrin)オクテツトストリングは、以下 の規則に従う。 OctetString ::= tag unsignedNumber 0 ctetsOctets ::= [octet Octetsl” unsi gnedNumber”は、”Oc te ts”中の” octet’の発生 回数である。”0ctetS”中の第1の”octet“は、オクテツトストリ ングのポジション1におけるオクテツトを表し、第2の”oc teじは、ポジ ション2におけるオクテツトを表し、以下同様である。各々の”octet”の MSBは、そのオクテツトのビット[7]を表し、各々の”octet“のLS Bは、そのオクテツトのビット[0]を表す。 プロシージャ(Procedure) プロシージャは、以下の規則に従う。 Procedure : := tag unsignedNumber Bo dy”unsigneclNumber”は、” Body”中の−Execu tedObject−の発生回数をエンコードする。ここで、”Body”は、 各々プロシージャのアイテムをエンコードする。 アイテムは、プロシージャにおいて増大するポジションの順序で示されている。 有 格識別子(Qualifiedldentirier)有資格識別子は、以 下の規則に従う。 Qldentifier ::= tag Identifier Ident ifier第1の°’ Identifier”は、テキストを表わし、第2の ” Identifier”は、クエリファイヤを表す。 実数は、以下の規則に従う。 Real ::= tag signedNuiber signedNusb er第1の°’ signedNumber”は、仮数(” m’ )を表し、 第2の”signedNumber”は、指数(”e“)を表す。実数は、mX 1o@である。 5electorBreak ::= tagSelector C11ent  ::= tagSelector Continue ::= tagSel ector Escalate ::= tagSelector Place  ::= tagSelector Process ::= tagSele ctor 5elf ::= tagSelector 5ucceed :: = tagストリングは、以下の規則に従う。 String ::= tag unsignedNumber charac ters”unsignedNua+ber”は、キャラクタとして認識される べきオクテツトの数である・オクテツトのシンタックス及びセマンティックスも よ、ISO/1Ec10646[10646]コンパクシヨン・メソッド51こ 従うが、例外として、これらによって表されたキャラクタは、ユニコードのキャ ラクタに制限される。 注、ストリングが、ASCIIキャラクタだけを含む場合にはごcharact ers”は、そのASCII表現を1オクテ・ソトにつき1キヤラクタで表す。 この時、各々のオクテツトのビット[7コは、ゼロである。 ゼロ以上のオクテツトである。 ナンバ(number) lから5(”N”)は、インチジャ(′° I”)をエンコードするオクテツト である。ナンバの使用が、”I”は負数ではないとして0る場合蚤こ(よ、”■ ”のエンコード(” E” )は、符号無しであり。その他の場合には、2の補 数である。 与えられた” I”IN”は、できるだけ小さくされる。 ”E”は、以下のようにして定められる。 ・ 最初のオクテツトの値が[0、B F s6]の範囲であれ(i′IN”+ よ、lであり、°°E゛のMSB及びLSBは、その単一のすクチ・ントのビッ ト[7コ及び[O]である。 ・ 第1のオクテツトがEo、6、E216、C4,6又はEo、6である場合 (こI!、”N +は、2.3.4又は5である。また、”E”のMSB及びL SB+よ、第1オクテツトが00,6とされた場合に、最初のオクテツトのピン ト[7]及び最t&のオクテツトのビット[0コとなる。 ・ 最初のオクテツトがE116、E316、C5,6又はC7,6であった場 合には、Nは、2.3.4又は5である。また、”E”のMSB及びLSBは、 第1オクテツトがFF、6とされた場合に、最初のオクテツトのビット[7コ及 び最後のオクテツトのビット[0]となる。 注: [C0,6、DF、6コ及び[E816、FF、6コの各範囲内の第1の オクテツトの値は、留保されている。 1つのオクテツトである。 サインナンバ(S1nedNualbe「)”ナンバ(number)”である 。ここで、”■”は正又は負であることができ、したがって、”E”は符号を持 つ(上記参照のこと。)。 注:”N”が1であれば、”1”は[−64,127]の範囲内にある。 ”N”が2であれば、”■”は[−128,127]の範囲内にある。 ”N”が3であれば、”■”は[−32768,32767]の範囲内にある。 ”N”が4であれば、”■”は[−8388608,8388607]の範囲内 にある。 ”N”が5であればご I”は[−2147483648,214748364 7]の範囲内にある。 タグ(tag) ”s i gnedNumber”である。そのタグの意味は、次のセクション で与えられる。 サインドナンパ(unsignedNumber)” (number)”であ る。ここでご I”は負数ではなく、した力くって、”E”は符号を持たない( 上記参照のこと。)。 注:”N”が1であれば、”I”は、[0,1911の範囲内をこある。 ”N”が2であればご I”は、[0,255]の範囲白昼こある。 ”N”が3であればご I”は、[0,65535]の範囲内にある。 ”N”が4であればごI”は、[0,16777215]の範囲内Iこある。 ”N”が5であればごI”は、[o、 4294967295]の範囲内をこあ る。 (以下、余白。) 5.4 数値コード(Numeric Codes)バイナリテレスクリプトは 、以下の数値コードを使用する。 5.4.1 ブレデファインディドクラス(Predefined C1ass es)表A、7は、クラス“Executed”の定義済みサブクラスに対する 識別コードの割当を表したものである。 表A、8は、他の定義済みメジャークラスに対する識別コードの割当を表したも のである。 (以下、余白。) ム土1!?ヱゴdヨユ亡た二ぢ圏咀区き肪止表A、10は、定義済みオペレーシ ョンに対する識別コードの割当を表したものである。 (以下、余白。) 表A、11は、定義済みアトリビュートに対する識別コードの割当を表したもの である。 注:”1slnstance”はオペレーションでもあるため、アトリビュート としてはリストされていない。 (以下、余白。) 表A、12は、経路の形式に対するコードの割当を表したものである。 (以下、余白。) 5.4.3 エグゼキューティドオブジェクトエンコーディング(Execut ed 0bjeCtEnCOdinS) 表A、13は、汎用のエンコードに対するコードの割当を表したものである。 注:これらのタグは、対応する定義済みクラスに対するコードである。 表へ、14は、基本的な性質の特殊な目的のエンコードに対するコードの割当を 表したものである。 表A、15は、モデイファイヤの特別な目的のエンコードに対するコードの割当 を表したものである。 表A、16は、セレクタの特別な目的のエンコードに対するコードの割当を表し たものである。 (以下、余白。) 6、 モジュールのシンタックス(Syntax or Module)”モジ ュール(module)”は、ここで使用される用語としては、1以上のインタ フェースをエンコードするストリングと、これらのインタフェースが一部分であ るクラスの識別子と、そして最後に、モジュール自身の識別子とを示す。 ”識別子(ident i r 1er)という用語は、セクション6全体を通 じて、クラス“Identifier”のインスタンス全体ではなく、そのイン スタンスのテキストを示すものとする。 注;後述するように構成されたモジュールは、ハイテレスクリプトのモジュール でもある。この表現を偽とする下記の規則は、ドキュメンテーションの誤りであ る。 6.1一般的な構’ (General 5tructure)モジュールは、 後述する構文上の規則及びそれに付随する意味上の規則に従う一連のトークンで ある。BNFで表した場合、これらの規則は、オプションのトークンをブラケッ トで囲んでいる(” [”及び”コ”)。また、モジュールは、キャラクタテレ スクリプトにおいて許可されたコメントも含むことができる。このようなコメン トに対する規定は、モジュールを支配する構文規則(シンタクティンクルール) に含まれると考えられる。 各々のトークンは、1以上のキャラクタである。モジュールは、トークンを連鎖 状にすることによって、すなわちキャラクタを連鎖状にすることによって、或い は、キャラクタテレスクリプトにおいて許可されたブレークキャラクタをトーク ン間に挿入することによって得られる。 キーワード、例えば、“module”は、大小文字区別される。英大文字キャ ラクタは、一般に、モジュールを表すために用いられる。英小文字キャラクタは 、本アペンディックス全体及びセクション7を通じて、モジュールを作成するた めに用いられる。 6.2 細な ’ (Detailed 5tructure)モジュールは、 以下の詳細な構造を表す。 6.2.1 モジコール(Module)モジュール(Module) モジュールは、以下の規則に従う。 Module::=identifier:MODULE= (Inter4a ces)Interface+:=identirier:Interface : [Interraces]モジュールは、モジュールを開始させる識別子に よって示され、インタフェースをエンコードする。このインタフェースは、識別 子がその識別子の直前にあるクラスのインタフェースである。 どのインタフェースも、インタフェースの特定のクラスのメンバに属するオペレ ーション”1nitialize”を定義することができる。また、何も明記さ れていなくても、ある定義が含まれている。すなわち、その定義とは、問題のク ラスがミックスイン(mix−in)の場合には、” 1nitialize:  op O;”であり、その他の場合には、クラスのインタフェーススーパーク ラスの中のフレーバ(flavor)の定義である。 6.2.2 インターフェース(Interface)インターフェース(In terface)インターフェースは、以下の規則に従う。 Interface :: =[5EALED I ABSTRACTI IN TERFAcE”[”FormalParueters”]”][5uperc lassesl = ([Definitionsl)FormalParam eters :: = ParameterGroup[:FormalPar amterGroup :: = Identifiers : CLASSS uperclasses :: = ([CIassSpeciriersl  )Definitions :: = DerinitionGroup ;  [DefinitionslDerinitionGroup :: =[Ac cessl [Re5ponderlIdentifiers : Defin itionAccess :: = PUBLICI PRIVATE I S YSTEMResponder :: :lN5TANCE I CLASSI dentifier :: = 1dentifier [、Identifi ers]Definition :: :5EALED l [5EALED  I ABSTRACTIFeature インタフェースのエンコードは、パラメータ化することができる。このエンコー ドにおいて、各々の識別子である1以上の” formal class pa rameters” が、導入される。また、このような識別子は、インタフェ ースがクラス識別子に要求する多くのブレイスにおいて使用することができる。 (尚、これに関しては、後述するトークン”C1assSpeci r ier ”参照のこと。)したがって、インタフェースは、クラス”object”の識 別子の代わりに用いられたかのようになる。同様に定義された仮のクラスパラメ ータは、その導入によってグループ化される。 各々識別子によって示されたゼロ以上のフィーチャは、シール又は定義される。 同じ様にシール又は定義されたフィーチャの識別子はグループ化される。第1の 上述のようなグループに、”Access”又はRe5ponder”が存在し ない場合、“PRIVATE”又は”lN5TANCE”は、各々第1のグルー プに存在しているものと見なされる。”Access”又は”Re5ponde r” が第1のグループより後の何れかのグループに存在しない場合、第1のグ ループより前のグループに存在するキーワードは、第1のグループより後のグル ープに存在すると見なされる。 インタフェースは、以下の通りである。” classFeatures”又は ”1nstanceFeatures”アトリビュートは、各々、” CLAS S’又は” lN5TANCE” (7)グループで定義されたフィーチャを含 む。”1sAbstract“アトリビュートは、”ABSTRACT”が存在 している場合にのみ°゛真(true) ”である。” 5ealedcIas sFeatures”又は”5ealedlnstanceFeatures” アトリビュートは、各々、CLASS″と” lN5TANCE”を有するグル ープの識別子、又は”5EALED”と”lN5TANcE”を有するグループ の識別子を含む。” 5uperclasses”アトリビュートは、トークン ” 51p2r(lasses”が存在する場合には、トークン” 5uper classes”が定める識別子を含み、その他の場合には、クラス”0bje ct”のみの識別子を含む。クラスのアトリビュートのポジションは、記述した 順序が左がら右に移るに従って減少する。“vocabu 1ary”アトリビ ュートは、クリアされる。 インタフェースは、” 5EALED”が存在している場合にのみシールされる 。 フィーチャは、以下の規則に従う。 Feature :: = Attribute l 0perationアト リビユート(Attribute)アトリビュートは、以下の規則に従う。 Attribute :: = [READONLY] Con5traint [THROWS Identifiers]アトリビュート定義は、以下の通り である。”constraint”アトリビュートは〜与えられたコンストレイ ントである。“except 1ons”アトリビュートは・”THROWS” が存在する場合には、存在する識別子を含み、その他の場合には、如何なる識別 子も含まない。”1sPubl ic”アトリビュートは、アトリビュート定義 を含む定義グループのためのキーが“PUBLIC”又は”CLASS” であ る場合にのみ”真(true)”である。” 1sSet”アトリビュートは、 ”READONLY” が存在しない場合にのみ、真である。 アトリビュート定義の上述したモジュールエンコードは、それが定義するアトリ ビュートのシグニチャとも言われる場合がある。 オペレーション(Oeratlon) オペレーションは、以下の規則に従う。 0peration :: :[UNPROTECTED] op (Argu mentsAttribute)[Con5traintコ [THROWS  Identifiers]オペレーション定義はこれである。アトリビュート” arguments”は示された通りである。アトリビュート” except ions”は、” THROWS” が存在している場合には、識別子が存在し 、その他の場合には、識別子を含まない。ただし、”UNPROTECTED” が存在している場合にのみ、そのアトリビュートは、クラス”Referenc eProtected”の識別子を付加的に含む。これは、レスポンダを変更す るオペレーションがレスポンダの保護されたリファレンスを使用して要求された 場合に送出される。アトリビュート”1sPubl ic”は、オペレーション 定義を含む定義グループが”PUBLIC”又は”CLASS”である場合にの み、”真(true)”である。(なお、これに関しては、上述したトークン”  Interface”を参照のこと。)アトリビュート”resu l t“ は、存在している場合には、コンストレイントであり、その他の場合には、ニル (0)である。 オペレーション定義のモジュールのエンコードは、オペレーション定義が定義す るオペレーションのシグニチャと呼ばれる場合もある。 アーギュメントアトリビュート(Ar umentsAttribute)アー ギュメントアトリビュートは、以下の規則に従う。 ArgumentsAttribute :: = [argumentsコ  [・−−JArguments :: = ArgumentGroup [;  Arguments]Argua+entGroup::=Identifi ers:Con5traintゼロ以上のアーギュメントは、これらのアーギュ メントのコンストレイントによって記述される。このような各アーギュメントは 、識別子によって表される。 同じ様にコンストレインされるアーギュメントの識別子は、グループ化される。 1以上のアーギュメントグループと省略符号(・・・)の両方が存在していれば 、最後のグループは、ただ1つのアーギュメントを含むものとされるが、ゼロ以 上のアーギュメントを含むものと見なされる。 ’ arguments”アトリビュートは、省略符号(・・・)が存在してい る場合には、ゼロ以上の記述されたアーギュメントに対するコンストレイントの リストであり、その他の場合には、ニル(0)である。記述されるアーギュメン トに対するコンストレイントのリスト中のポジションは、アーギュメントの識別 子が左から右に移動するにつれて増大する。 6.2.4 コンストレイント(ConstraintConstraint  :: :[C0PIED I PROTECTED ILINPROTECTE D] C1assSpecifier [”l”NIL] コンストレイントは、以下の通りである。”classld”アトリビュートは 、トークン” CIassSpecif ier”が定める識別子である。”1 slnstance”アトリビュートは、感嘆符(” !”)がトークン”C1 assSpeci r ier”と共に存在している場合にのみ、”真(tru e)”である。(尚、これに関しては、下記参照のこと。)”1sOption al”アトリビュートは、”NIL”が存在している場合にのみ、′真(tru e)“である。”ofcIass”アトリビュートは、ニル(0)である。”  passage”アトリビュートは、”C0PIED”、”PROTECTED ”又は”tlNPROTEcTED″が存在していない場合には、” byco py” 、” byProtectedRer”又は” byLlnprote ctedRef”となり、又はこれらの何れのものも存在していない場合には、 ”byRef″となる。 クラススベシファイヤ(ClassS ecirier)クラススペシファイヤ は、以下の規則に従う。 CIassSpecirier :: = 1dentifier [!][”  [” CIassSpecifierS ” コ″]CIassSpecir iers :: = CIassSpecirier [、C1assSpec ifiers]この識別子は、仮のクラスパラメータの識別子、又はクラス(C ”)の識別子である。後者の場合、”c”のインタフェースのエンコード(”E ”)がパラメータ化された場合にのみ、ブラケット(” [′°及び”コ”)の 間において、′C”が有する仮のクラスパラメータと同数の実際のクラスパラメ ータが続けられる。ここで、この実際のクラスパラメータは、各クラススベシフ ァイヤである。 °C”のこの特定の使用は、” E”内の仮のクラスパラメータの各使用が、対 応して位置付けられた実際のクラスパラメータの使用であるかのように行なわれ る。 6.2.5 他の非ターミナル(identifier)identifier クラス” Identifier”のインスタンスのテキストとして拘束された キャラクタである。 7、プレデファインドモジュール(PREDEFINED MODULE)定義 済みクラスのインタフェースは、以下に詳細に示されるモジュール、及び本アペ ンディックスを通じて断片的に示されるモジュールによって定義される。 インストラクションセットの内部フィーチャは、モジュールには現れない。 参照として供与される本セクション、すなわちセクション7は、本アペンディッ クスの他のセクションに見られる記述と重複する部分がある。 注:定義済みのインタフェースの定義は、ハイテレスクリプトモジュールを形成 する。これを可能とするために、いくつかのローテレスクリプト識別子は、′− X”が後置され、ハイテレスクリプトにおいて予約されている識別子と重ならな いようにされている。 Te1escript: module=(Agent: abstract  1nterrace (Process) = (private go: unprotected op (ticket: copiedTi cket) TicketStubthrows PermitViolate d。 Statelmproper、 TripException;5end:un protected op (tickets:copied Li5t [T icket〕)TicketStublNi l throws PremitViolated。 Statelmproper、TripException;)。 As5ociation: 5ealed 1nterface [keyCI ass、 valuecIass:C1assl (Object、 0der ed) = (public key: keyclass; value: valueclass;ystem initialize: unprotected op (key: key class; value: valuecIass);): Attribute: 5ealed 1nterface (Feature ) =(public constraint:Con5traint;1sSet: Boolean ; ystem initialize: unprotected op (constrai nt: Con5traintlNil;1sset、1sPublic: B ooleanlNil;exceptions: Set [1dentifier!]1Nil);): AuthenticaLor: abstract 1nterface =  0;Bit: 5ealed 1nterface(Pri@1tive、 0 rdered) :0: BitString: 5ealed 1nterface(Constrai nedList[Bit]、Executed) =(public constraint: 5ealed;ystem initialize: unprotected op(segments;  0bject 、、。 7本 Bitlprotected BitString! */);); Boolean: 5ealed interface(Primitive、  0rdered) =(public and、or: OCI (boolean: Boolean)Boolea n; not: op OBoolean; ): CalendarTime: 1nterface = (public day、 dst、hour、 1Iinute、 month。 5econd、 year、zone:IntegerlNil; dayOfWeek、dayOrYear、readonlyInteger  IN i I ; globalize、1ocalize: unprotected op O :normalize: unprotected op 0Boolean; Ca5ed: abstract 1nterface O:(public isLover、1s(Ipper: abstractreadonly B oolean; makeLover、 makeUpper: abstract op Oc opiedCased : ); Character: 5ealed 1nterface (Primiti ve、 Ca5ed。 0rdered) =0: C1Lation: 1nterface (Object、 0rdered ) =(public author: Te1enao+elNil;1ajorEdition、m 1norEdition:IntegerlNil title: Identifierl;ystem initialize: unprotected op (title: I dentifierl;author: TelenamelNil;majo rEdition、a+1norEdition:IntegerlNi 1) ; )。 C1ted: abstract 1nter4ace O:(1)ublic citation: readonly protectedCitation ; ystem jnitialize: unprρtected op (title: I dentifierl;majorEdition、m1norEdition :Integer) ; ); C1ass: 5ealed 1nterface (Object。 C1ted、 interchanged) :(public convert: 5ealed op (source:protected  0bject) copied Object throws Conversionllnavailable;1slnst ance: 5ealed op (instance−x:protecte d 0bject) Boolean; −isMember: 5ealed  op (member:protected 0bject) Boolea n;1ssubclass: 5ealed op (subclass:C1 ass) Boolean; new: 5ealed op (parameters: 0bject 、 、、) Objectthrows C1assAbstract、Excep tion。 0bjectionUnitialized;ystem initialize: unprotected op 0throws F eatureUnavailable;); C1assDefinition: 5ealed 1nterface =  (ublic implementation: Impleg+entationlNil:1nterface−x: Int erface;majorEdition、1inorEdition:Int eger: makecIasses: op (derinitions:protect ed C1assDerinition 、、、)Lexicon [C1as s] throws C1assException;title: Identif ier!;sys団量 1nitialize: unprotected op (title:Id entfier!; majorEd i t ion。 m1norEdition:Interger;tnterface−x:In terface:implementation: ImpleientationlNi l);)。 CIassException: abstract interface(P rograa+mingException) = 0;CIassSeale d: 1nterface (ClassException)=0;CIas sUndefined: 1nterface(CIassException )=0+FeatureRederined: 1nterface (ClassException) :0;Featur eSealed: 1nterface(ClassExcepLion) : 0;FeatureUndefined; 1nterface (CIassException) = 0;Mixin Disal 1oved: 1nterface (C1assException) =0;5uperc lasseslnval id:1nterface (CIassExcep tion) =0;Co11ection: 1nterface [1tes Class: C1ass] ” (ublic clear: unprotected op O:examins: op  (item: protecteditemcIass) itemcIass lNil;exclude: unprotected op (item:p rotected itemcIass)itemcIasslNil; 1nclude: unprotected op(item:itemcIa ss) throws Itea+1nvalid:length: readonly  Integer;stream: op Ocopied Stream[1 tea+C1ass]; sys teIm initialize: unprotected op (items+it emcIass 、、、) throws Itemlnvalid;); Co11ection abstract interface(Progra u+ingException) :0:Exception: ItemDu plicatedinterface (CollectionExcepti on) :0;Iten+Invalid: 1nterface (CollectionException) 二〇:K eyDupl 1cated: 1nterface (CollectionException) :0;[ eylnvalid: 1nter4ace (CollectionException) = 0; 0bjectsUnpaired: 1nter4ace (CollectionException) = 0; Po5itionlnvalid: 1nter4ace (CollectionException) = 0; 5tackDepleted: 1nterface (CollectionException) :0;C on5trained: abstract 1nterface O= (u blic constraint: readonly protected Con5traint;ystem initialize: unprotected op (constrai nt: copied Con5traintlNil);); Con5trained 1nterface [keyCIass、 val uclass: C1ass]Dictionary: (Dictionar y [keyCIass、 valuclass]。 Con5trained)= ( ystem initialize: unprotected op (constrai nt: copied Con5traint;keysAndValues:  0bject 、、。 /零 key: keycIass; value: valueclass  ネl)throws keyDuplicated、 KeylnvaIid。 0bjectsUnpaird; ): Con5trainedList: 1nterface [itemCIas s: C1ass] (List[i temcI assコ、Con5tra ined) = (ystem initialize: unprotected op (constrai nt: copied Con5traint;items: itemcla ss 、、、)throws ltemlnvalid:): Con5trainedSet: 1nterface [itemClass : C1assl(Set [itemC1ass]、 Con5traine d) =(ystem initialize: unprotected op (constrai nt: copied Con5traint;iLe+*s: 1teacl ass 、、、)throws ItemDuplicated;lt2m1m valid: ); Con5traint: tnterface = (+1ublic classld: Identifter!;1slnstance、1sop tional: Boolean;ofclass: readonly C1 asslNil;passege: Identifier!throws P assagelnvalid;5yste11 initialize: unprotected op (classld、 passage: Identifier!1Nil; 1soptional、1slnsLance:BooleanlNil) throws Passagelnvalid;); Contact: 1nterrace = (public subject: ProcesslNil;5ubjectcIass: r eadonly protectedCitationlNil; 5ubjectNa@e: readonly protectedTelen amelNil; 5ubjectNotes: 0bjectlNil;3yste■ 1nitialize: unprotected op (subject:  ProcesslNil;5ubjectNotes: 0bjectlNi l);); Contacted: abstract 1nterface O= (pr ivate contacts: readonly Set [Contactコ;); Dictiθnary: 1nterface [keyCIass、 val ueclass: C1ass](Set [As5ociation [ke yClass。 valueclassll) =( public add: unprotected op (key; keyclass;v alue: valueclass)throws Keylnvalid;d rop: unprotected op (key: protectedk eyclass) valueclassthrows Keylnvalid ;find: op (value: protectedvaluecIas s) keycIasslNil;get: op (key: protec ted keycIass)valuecIass throws Keyfnvalid;rekey: unprotected  op (currentkey: protected keycIass; newKey: keyclass) throws Keylnvalid;set: unprotected o p (key: protected keycIass;value: va luecIass)throws Keylnvalid:transpose : unprotected op (keyl。 key2: protected keyclass)throws Keyl nvalid;ystem initialize: unprotected op(keysAndVa Iues: 0bject 、、、)/零 key: keycIass; v alue: vaIuecIass 零/)throws KeyDuplic ajed、Keylnvalid。 0bjeCtSUnpaired; ); Exception: abstract 1nterface (Objec t、 Unchanged) =(public throw−x二 5ealed op O;); Executed: abstract 1nterface O=(publ ic catcJx: 5ealed op (exceptjon:CIus) E xceptionlNilthrows Excegt(an: do−x、 1oop−x: 5ealed op Othrows Exce ption; either+ 5ealed op (false−x:Executed;  precondition: Boolean)throws Except ion; 1f−x: 5ealed op (precondition:Boolea n) throws Exception; repeaLx: 5ealed op (repetitions:Inte ger) throws Exception; white−x: 5ealed op (precondition:Exe cuted) throws Exception、 Re5ultlnvalid。 ResultMissing; ): Execution abstract 1nterface (Kernel Excepeion) =EXception: Argumentlnval id: 1nter4ace(ExecutionException)=0:Argu mentMissing: 1nterface(ExecutionException) :0:Att ributeReadOnly: 1nterface(ExecutionE xception) =0:C1assUnavailable: 1nterface(ExecutionException) =0;Esc alationlnvalid:1nterface(ExecutionEx ception) =0:FeatureUnavai table:1nte rrace(ExecutionException) =0;Interna lException interface(ExecutionException) =0:Pro perty Llndefined:1nter4ace(Execution Exception) :0:ReferenceProtected :1n terface(ExecutionException) :0:Refer enceVoid: 1nter4ace(ExecutionException) :0;Res ponderMissing: 1nterface(ExecutionException) =0;Re5 ultlnvalid: 1nter4ace(ExecutionException) =0;Res ultMissing: 1nter4ace(ExecutionException) =0;Var iableLlndef 1ned:1nterface(Execution Exception) =0;Feature: abstract 1nte rface = (1)ublic exceptions: Set [Identifier!];1sPubl ic: Boolean;ystem initialize: unprotected op (isPublic : BooleanlNil;exception:Set [1denti rier!コlNi1);); )lashed: abstract 1nterfaceO= (1)ubl ic hash: abstract readonly Interger;); Indentifier: 5ealed 1nterrace (Primi tive、 0rdered) =0゜ Implementation: 5ealed 1nterface = ( ublic classMethods、froaMethods。 instanceMethods、 setMethods。 toMethods: Lexicon [Method];properti es: Li5t [Idenntirier!];5upercJasses + Li5t[1dentirier!]1Nil;vocabulary:  Lexicon[C1tation]1Nil; ystem initilize: unprotected op (superclas ses+ Li5t[1denti rier!コ1Nil;vocabula ry+ Lexicon[C1tation]1Nil; properties: Li5t [Identifier!]1Nil;instanceMethods、se tMethods。 classMethods。 formMethods、toMethods: ’Lexicon[Meth ods]lNi l); )。 Integer: 5ealed 1nterface (Number) = (ublic modulus、 quotient: op (divisor:Integ er) Interger throws DivisionByZero;): Interchanged: abstract 1nterface (Un changed) = (ublic digest: abstract readonlyprotected 0 bjectlNil;); Interface: 5ealed 1nterface = (ublic classFeatures、1nstanceFeatures:Lexic on [Featurel:1sAbstract: Boolean;5ea ledclassFeatures。 5ealedlnstanceFeatures:Set [1dentifi er!];5uperclasses+ Li5t [Identirierl ];vocabulary: Lexicon [C1tation]+yst em initialize: unprotected op (supercla sses: Li5t[1dentifier!] 1Nil ;vocabu lary: Lexicon[C1tationコ1Nil: 1nstanceFeatures: Lexicon [Feature]1Nil;5ealedlnstance Features:Set [Identifier!]1Nil;C1aSS FeatureS: Lexicon[Feature]lNi1; 5ealedclassFeatures:Set [[dentirierl llNil;1sAbstract: BooleanlNil);); Kerne I Exception: abstract tnterrace(Progra mmingException) = 0:C1assAbstract: i r+terrace(KernelException) :0;Conver sionUnavai fable:1nterface (KernelEx ception) =0;CopyUnavai fable: 1nterface (KernelException) = 0;Loop Missing:1nterface (にernelException)= 0; MakeMissing:1nterface (KernelExcepti on):0; 0bjectLIninitialized+1nterface (にern elException) = 0;Passagelnval id: 1nterface (KernelException) = 0:5ele ctorDuplicated:1nterface (KernelExce ption) = 0;Lexicon: 1nterface [value CIass: C1ass](ConstrainedDictionary  [Identifier。 valueclassl) = ( ublic constraint: 5ealed;ystem initialize: unprotected op(keysAnd’/ alues: 0bject 、、。 /ネ key: 1ndentirier!; value;valuecIa ss 本/) throws KeyDuplicated、 Keylnvalid。 0bjectsUnpaired; ); Li5t: 1nterface [itemClass: C1assl(C ollection [itemClassl、 0rdered)=( ublic add: unprotected op (position:Interg er; item: itemclass) throwsltellnval id、Po5itionlnvalid;drop: unprotected  op (position:Integer) itemcIassthro ws positionlnvalid;find: op ( initialPosition: Integer;1tet protec ted itemcIass)In terger l N i 1 throws Po5itionlnvalid;get: op (posi tion: Integer)itea+cIass throvs Po5itionlnvalid;reposition: u nprotected op(currentPosition、 nevPo sition:Integer) throws Po5itionlnvalid;set: unprotec ted op (position:Interger: item: ite mclass) throwsIteilnvalid、Po5itionln valid;transpose: unprotected op(posi tionl、 position2: Integer)throws Po5 itionlnvalid;5ysteffl initialize+ unprotected op (items:it emclass 、、、); ): Mark: 5ealed 1nterface (Primitive) : 0;Means: abstract 1nterface = 0;Meet ingException: abstract 1nterface(Exc eption) = 0;)1eetingDenied: 1nter4ace (MeetingException) =0;Meet ingDupl 1cated:tnterrace (MeetingExc eption) ;0;Meetinglnval id: 1nterface (MeetingException) =0;Peti  tionExpired: 1nterface (MeetingException) :0:Meet ingPIace: abstract 1nterface (Place)  = (ublic meet: unprotected op (petition:copie d Petition) Contactthrows MeetingExc eption。 ProcessNotCurrent。 S Late Improper ; part: unprotected op (contact:Contac t) throws MeeLinglnvalid。 ProcessNotCurrent。 S Late l5proper ; partAII: unprotected op Othrows Proc essNotCurrent。 Statelmproper; ): Method: 5ealed 1nterface = (ublic procedure: Procedure;variables: Li5t  [Identirier!コ;5yste■ 1nitialize: unprotected op (procedur e二 ProcedurelNil;variables: Li5t [1dentirier!]lNi1):); Miscellaneous abstract interface(Pro gra+u+ingException) =0;Exception: Pa tternlnvalid: interface(Miscellaneou sException) :0;5eedlnval id+ 1nterface (MiscellaneousException) = 0゜ Modifier: 5ealed it+Lerrace (Primiti ve) 二〇:Naa+ed: abstract 1nterface O= (ublic name: 5ealed readonly protectedTelen ame; )。 Nil: 5ealed 1nterface (Primitive) =0 :Number: abstract 1nterface (Primiti ve、 0rdered=( ublic abs、 negate: abstract opONumber: add、 multiply: abstract op(number: N uIIber) Number;ceiling、floor、round、t runcate:abstract op OInteger;divide:  abstract op (divisor:Number) Number throws DivisionByZero:5ybtract: abst ract op (subtrahend+Number) NuIIber; )。 0bject: abstract 1nterface (Referenc ed) = (ublic class: 5ealed readonly C1ass;copy+ 5 ealed op Ocopied Objectthrows CopyUn available;1sEqual: op (object: prote ctedObjeCυBoo 1ean ; 5elect: 5ealed op (association:0bjec t 、、。 7本 protected 0bject; Executed 零/)thr ows Exception。 5electorDuplicated;5ize: 5ealed read only Integer;ystem finalize、1nitialize: unprotectedOpO: )。 0ctet: 5ealed 1nterface (Primitive、  0rdered) =0: OctetString: 5ealed 1nterface (Const rainedList[0ctet]、 Excuted) =(ublic constraint: 5ealed;ystem initialize: unprotected op(segments:  0bject 、。 7本 0ctetlprotected OctetString!零/): )。 0peration: 5ealed 1nterface (Feature ) = (ublic arguments: Li5t [Con5traint] 1Nil;re sult: Con5traintlNil:5ystea+ 1nitialize: unprotected op(arguments : Li5t [Con5traint]1Nil: result: Con5traintlNil:1sPublic: Boo leanlNil;exceptions: Set [1dentirierコlNi I):); 0rdered: abstract 1nterface O:(ublic isArter、1sBerore: abstract op(object : protected 0rdered)Boolean: wax、win: op (object: 0rdered)Ordered  ; ); Packege: 1nterface (ConstrainedSet [ C1assl。 C1ted、Interchanged) = (ublic costraint: 5ealed;5yste11 initialize: unprotected op (title: I dentifier!;a+ajorEdition、m1norEditto n:Integer; items: C1ass 、、、) throws ItemDuplicated。 ProcessNotPeer; )。 Pattern: 1nterface (Object、 0rdered)  ;(public rind: op (string: protectedString!;  position: IntegerlNil)List[Integer]  lNlN11)thro Po5itionlnvalid;5ubstitu te: op ( repetitions: Integer;string: unprote cted String!;replacement: protected  StringりInteger; ystem initialize: unprotected op (text:cop ied Stringり throws Patternlnvalid;); Permit: 1nterface (Object、 0rdered)  = (public age、 authenticity、 charges。 extent、 priority: IntegerlNil;canCha nge、 canCreate、 canDeny。 canGo、 canGrant、 canRestart。 cansend: Boolean; 1ntersect: op (permit: Per+mit)Permi t; system+ 1nitialize: unprotected op (age。 charges、extent: JntegerlNil);Petitio n: 1nterface = (public agentcIass: C1tationlNil;agentName:  TelnawelNil;iaximumWait: IntegerlNil ;ystem initialize: unprotected op (agentNam e: TelenamelNil;agentclass: C1tation lNil;maximumWait: IntegerLNjl;): Petitioned: abstract 1nterrace O= (y stem meeting: unprotected op (contact: Co ntact; petition:protected Petition)t hrows MeetingDenied;parting: unprote cted op (contact:Contact) ; ); Place: abstract 1nterface (Process、  Unmoved) = (public address: 5ealed readonly protecteclT e l eaddress ; publicclasses: 5ealed readonly Set[C i ted] ; terminate: 5ealed unprotected op (oc cupant: protected Telename)Boo lean throws ProcessNotCurrent。 ProcessNotPeer、Statelmproper:ystem entering: unprotected op (contact: C ontact; permit: protected Permit;ticket: pro tected TicketlNil)throws 0ccupancyDe nied;exiHng: unpratectea op (contact : Contact; pero+it: protected Permit;ticket: pr otected TicketlNil);): Pr1m1tive: abstract 1nterface (Objec t、Excuted。 Unchanged) =( ystem initialize: unprotected op Othrows F eatureUnavailable;); Pr1m1tive abstract interface(Prograu ingException) :0:Exception: DivisionByZero: interface(PrimitiveE xception) =0;Procedure: 5ealed 1nter face (Primitive) =0:Process: abstrac t 1nterface (Object、 Named。 Uncopied)=( public brand: 5ealed readonly protectedbjec t throws ProcessNotPeer;1ocalPermit: 5 ealed copied permitthrows FeatureUna vailable。 PermitVoi fated; nativePermit: 5ealed copied Permitth rows Feature(Inavailable。 PermitVoi fated; permit: 5ealed readonly copiedPerrAi t; throws ProcessNotPeer;regionalPermit : 5ealed copiedermit throws FeatureuUnavailable。 PermitVoi fated: private age: 5ealed readonly Integer;charges : 5ealed readonly Integer;contacts:  5ealed readonlySet[Processl ; priority: 5ealed IntegerlNil;private classes= 5ealed readonlySet[C1tedl; ublic charge: 5ealed op (chargesInteger) throws Permitlnadequate。 PermitViolated; reStriCt−X: 5ealed op (procedure: Pr ocedure;perIIlit: protected Permit)t hrows Exception、 PermitViolated。 ProcessNotCurrent;5ponsor−x: 5ealed  op(proceclure: Procedure;permit: pro tected I’er+iit)throws Exception、 I’ ermitViolated。 ProcessNoLCurrent;wait: unprotected  op (seconds:Integer) : ystem initialize: op ( nativePermit: copied Permit;privatec lasses: Set[C1ted]INlN1 1)thro Pera+1tViolated;1ive: abstrac t unprotected op(cause: ExceptionlNi l)throws Exception; restricted: op (permit+Identifier; 1 sRelocated:Boolean) PermitReducedlNi l;): Process−abstract interface(Progra+u+ ingException) :0;Exception: Permitlnadequate: 1nterface(ProcessE xception) :0:ConditionUnavailable:1n terface (ProcessException) =0;Condit ionUnderined:1nterface (ProcessExcep tion) ;0:PermitExhausted: 1nterface (ProcessException) =0;Perm itViolated: 1nterface (ProcessException) =0;Proc essNotCurrent:1nterface (ProcessExce ption) =0;ProcessNotPeer: 1nterface (ProcessException) :0;Re5o urceUnavailable:1nterface (ProcessEx ception) :0;s tate Improper : 1nterface (ProcessException) = 0:Pro grammeing abstract 1nterface (Except ion) = ();Exception Qualified 5ealed 1nterface (Identifi er) = ();Identifier RandomStreav 1nterface (Stream [Inte gerコ)=(ystem initialize: unprotected op (seed:Int eger) throws 5eedlnvalid+): Real: 5ealed 1nterface (Number) = 0; Referenced: abstract 1nterface O= (u blic discard: 5ealed op O;1sProtected: 5e aled readonlyBoolean; 1ssaae+ 5ealed op <reference:protect ed Referenced) Boolean;protect: 5eal ed OpOprOteCtedReferenced; repx: 5ealed unprotected op O;)。 Re5ource: 1nterface = (ublic contition: 1ndentfier!throws Conditi onLlnavailable:conditions: readonly  protected Set[1dentirier!]: use: 5ealed unprotected op(procedure : Procedure;exclusive: BooleanlNil;m aximumWait: IntegerlNil;conditions:  copied Set[1dentifier!]1Nil) Boolean throws ConditionUndefined。 Exception、Re5ourceUnavalable;ystem initialize: unprotected op(condition : Identirier41Nil;conditions: copied  Set[1dentifier!]1Nil) throwsConditi onlJndefined;); 5elector: 5ealed 1nterface (Primitiv e) : 0:Set: 1nterface [itemCIass: C1 ass](Collection [1teiC1ass]、 Verifie d) =publ 1c difference、1ntersection、union:unprot ected op (set: protected Set[1tea+CI ass]) : ystem initialize: unprotected op(items:i t emcIass 、 、 、 )throws ItemDuplicated 、Itemlnvalid;)。 5tack: 1nterface [itemClass: C1ass]  (List[itemCIass]) =( ublic pop: unprotected op □ itemclassthrow s 5tackDepleted;push: unprotected op  (itea+:i temclass) ; pushltems: unprotected op (item’s: p rotected Li5troll: unprotected op (s hifts。 items: Integer) throws Argumentlnvalid。 5tackDepleted; swap: unprotected op Othrows 5tackDe pleted;)。 Stream: abstract 1nterface [itemClas s: C1assl =ublic current: abstract readonlyite@cla5sl Ni l; 1sDone: abstract Boolean;next: abstr act readonlyitemclasslNil throws ReferenceProtecLed;); String: 5ealed 1nterface(Constrained List [Character]、 Ca5ed。 Executed) =( ublic constraint: 5ealed;substring: op (in itialPosition。 beyondFinalPosition: Integer)throws  Po5itionlnvalid;ystem initialize: unprotected op(segments:  0bject 、、。 7本 Characterlprotected String!零/): ); Te1eaddress: 1nterface = (ublic 1ocation+ StringllNil;provider: Octe tString!;routingAdvice: Li5t[octetst ring!] ; ystem initialize: unprotected op (provider : OctetString!1Nil;1ocation:String盲l Ni1);)。 Te1ena@e: 1nterface = (ublic authority: OctetString!:1dentity: Oc tetString!1Nil;ystem initialize: unprotected op (authorit y、identity=OctetString!1Nil);): Te1enua+ber: 1nterface = (ublic coutry、telephone: Stringi;extension+  StringllNil:ystem initialize: unprotected op (countryA ndTelephone: Stringi;extension: Stri ngllNil);): Ticket: 1nterface (TicketStub) : (ub lic desiredWait、 maximumWait:IntegerlNi  l; destinationAddress+Te1eaddresslNil; destinationcIass: C1tationlNil;desti nationName: TelenamelNil;destination Periit: Pero+1tlNil:ystem initialize: unprotected op (destinat ionName: TelenamelNil;destinationAdd ress+Te1eaddresslNil; destinationclass: C1tationlNil;maxim umWait: IntegerlNil;way: WaylNil; travelNotes: 0bjectlNil):): TicketStub: 1nterface = (publ 1c travelNotes: 0bjectlNil);way: WaylNi l; yStem initialize: unprotected op (way: Way lNil; travelNotes: 0bjectlNil);)。 Time: 1nterface (Object、 0rdered、Unc hanged) =ublic adjust: op (seconds: Integer) Time:1 nterval: op (subtrahend: Time) Integ er:); TripException: abstract 1nter4ace (E xception) = (ublic ticketstub: 5ealed TicketStub;ystem initialize: unprotected op(ticketStu b: TicketStub);): DestinationUnavai fable:1nterface (T ripException) = 0;DestinationUnknovn :1nterface (TripException) = 0:0ccup ancyDenied: 1nterface (TripException) = 0;Ticket Expired: 1nter4ace (TicketException) :0: WayUnvailable: 1nter4ace(TripExcepti on) :0;、 IJnchanged: abstract 1nter4 ace O:0;Unexpected: 1nterface (Execu tionException) = (Exception: public exception: readonly Exception;ystem initialize: unprotected op (exceptio n: Exception);)。 Unmoved: abstract 1nterface O=0;VerH ied: abstract 1nterface O=(ublic verify: abstract op OBoolean;); Way: 1nterface =( ublic authenticator: AuthenticatorlNil;mea ns: MeanslNil; name: TelenamelNil;ystem initialize: unprotected op (name: Te lenamelNil;means: MeanslNil; authenticator: AuthenticatorlNil);)。 ) /1Telescript 本/ 以下の図表は、定義済みクラスを含むクラス図表の一部分を示してI、)る。ク ラスのイミデイエーイトサブクラスは、その直ぐ下(こ字下(ずして舅己載され てν)る。 アンダーラインカ弓1かれたクラスは、アブストラクトクラスである。括弧(”  (”及び”)”)は、ミックスインを囲んでいる。 0bject (Rererenced)−As5ociation (Ord ered)−Authenticator ・Ca1ender Time ・C1tation (Ordered)・ C1ass (起孤&凰組匹脱坦 封)・C1ass Definition ・Co11ection −・Li5t (Ordered) −−0Constrained Li5t (Constrained)−・・ ・Bit String (Executed)・・・・0cted Stri ng (Executed)―−φ幸String (Cased & Exe cuted)0”φCon5trained Set (Constraine d)・ ・ ・ φ Packege (C■叫&江に匹肚岨鋭)、 ・ ・  Dictionary o 0 ° −Con5trained Dictionary (Const rained)・・−・・Lexicon −Con5traint −Contact ・ ム二旧匡卯(血糖y1世) ・−−Cal 1ection Exception・ 0 6 にernel  Exception−−−・Execution Exception・・・ ・−UnexpectedException−0−Miscellaneou s Exce tion−・・Pr1m1tive Exce tion−0− f’rocess Exce tion・ ・ k」L陰憇坦山■ −1−eature ・ ・ Attribute ・ ・ 0peration ・l+aplementation ・Interface ・ Means ・Method ・Petition ・Pr1m1tive (Executed & 国迦那烈)・・・Quali fied Identifier・ ・ Mark −・Modifier ・ ・ ・ Integer −−Procedure 1+5elector ・ ・ ・ ヒ射亘lL園阻 −Re5ource 曇5treaa+ ・−Random Stream ・Te1eaddress −Telename −Telenumber −Ticket 5tub ・−Ticket ・ Time (堕圧射&趣迦町虱) Naa+ed 艶曲主1世 (以下、余白。 アペンディソクスB 著作権 ジェネラル・マジック社 1991.1992.1993゜複製を禁ず 。 以下の目次は、読者がアペンディ。7クスBの構成を理解し、その情報を検索す るために役立てるものである。 亘−久 1、序文 1.1 構成 12 参考文献 2、エンコードのコンセプト 2.1 テレパーセル(Teleparcel)22 オブジェクトのエンフー ド(Object Encoding)2.21 形式(For+m5) 222 規則(Rules) 2.23 パレット(Palettes)22.4 エンコードされたクラス( Encoding C1asses)2.25 エンコードされたアトリビュー ト(Encoding Attributes>23 アトリビュートのエンコ ード(Attribute Enco氾ng)231 形式(Forms) 232 規則(Rules) 24 リファレンスのエンコード(Reference Encoding)2 41 形式(Forms) 24.2 規則(Rules) 3− エフ:’−ドさhたスベノフィヶーン3ノ31 フンパー7Wノ(Con ve出。n5)32 テレパーセル(Teleparcel)33 オブジェク トのエンコード(Object Encoding)3、3.1 実行オブジェ クト(Executed 0bject)332 プレデファインドオブジェク ト(Predefined 0bjeet)333 ユーザデファインドオブジ ェクト(Llser−defined 0bject)334 プロチクティド オブジェクト(ProLected 0bject)3、3. S 、<レット (Palette)34 アトリビユートのエンフード (Attribute  Encoding)341 ブーリアン(Boolean)342 ダイアル ストリング(Dial String)343 インデノ+ (Integer )34.4 アイテム(Item) 345 リスト(List) 346 オクテツトストリング(Octet String)3.47 スタッ ク(Stack) 348 ストリング(String) 35 リファレンスのエンコード(Reference Encoding)3 51 ゼネラルリファレノス(General Reference)3.52  ボイディドリフ7L/レス(Voided Referenceee)353  インターチzツノリファレンス(Interchange Referenc e)354 クラスリファレンス(C1ass Reference)355  プロ/−ノヤリファレノス(Procedure Reference)4 エ ンコードされたクラスとアトリビュート4I コン6ンシコンズ(Conven tions)42 エンコードされたグループ(Encoding Group )4、2.1 キャッチフレーム(Catch frame)4.2.2 :+ レク/ll72ドリーム(CollecLionStreas)42.3 ダイ ヤルストリング(Dial string)424 フレーム(Frame) 42.5 ゴーフレーム(Go frasa)42.6 プレデファインドフレ ーム(Predefined Frame)427 ブロン−ジャフレーム(P rocedure Frame)4・28 リピートフレーム(RepeatF rame)429 レストリフトフレーム(Restrict Fratse) 4、2.10 センドフレーム(Send Frame)4211 ユースフレ ーム(Use Frame)4、2.12 ユーザデフアイノドフレーム(Us er−deNned Frame)4、2.13 ホヮイルフレーム(Whil e Frame)4、3 エフ ) F :5hり7 ト’J ヒx −ト(E ncoding Attributes)43.1 エージェント(Agent )432 キャッチフレーム(Catch Frame)433 コレクンジン (Collection)434 コレク7:Iンストリーム(Collect ion Stream)4、3.5 ティク/l f !/ (Drction ary>4、3.6 リスト(List) 437 パターン(Pattern) 43.8 プロノーツヤフレーム(Procedure Frame)439  ランダムストリーム(Random Stream)4310 リピートフレー ム (Repeat Frame)4、3.11 レストリフトフレーム(Re sLricL Frame)4、3.12 センドフレーム(Sencf fr ame)4313 スタック(Stack) 4、3.14 タイム(Time) 4315 ユースフレーム(Llse Frame)4316 ユーザデフアイ ノドフレーム(User−defined Frame)4317 ホワイルフ レーム(While Frame)5 エンコードされたバレ、ト 51 コノベン/ヨ/ス゛(Conventions)52 ラ/ゲーノクラス (Language C1asses)521 エージエフ ト(Agent) 522 7ソ/ニー73ノ(Association)523 アトリビュート  (Attribute>524 カレノダタイム(Calendar Tim e)525 サイテ/ヨノ(Citation)526 クラス(C1ass) 527 クラステ′フィニ/ヨン(C1ass definition)528  コレクン9ノ(Collection)529 コンストレイントディクノy ナリ(Constrained Dictionary)5210 コンストレ イントリスト (Constrained Li5t)5、2.11 フンスト レイノドセット(Constrained 5et)5212 コ7ストレイン ト(Cons traint)5213 フンタクト(Contact)521 4 ディクショナリ(Dictionary)5215 インブリメ−7a ノ (1mple++antatio)5216 インターフェース(Interf ace)52】7 し牛/コン(Lexicon)5、2.18 リスト(Li st) 5、2.19 メソッド(Method)S、 2.20 ミックスイア (M f−in)52・21 オゝレーン1ン(Operat ton)5、2.22  バ’7ケージ(Package)5、2.23 バター7(Pattern) 5、2.24 パーミy ト(Pera+i。 5225 ペティン3ン(Petition)5226 ランダムストリーム( Random Stream)5、2.27 リソース(Resorce)52 28 セ ノ ト (SeL) 5、2.29 スタック(Stack)5230 テレアドレス(Telead dress)5231 テレネーム(Te Ienameン5232 テレナン バ(Telenumber)5.2.33 チケ ノ ト (Ticket)5 .244 +ヶノトスタ、ブ(Ticket 5tub)5235 タイム(T ime) 5.236 トリノプエクセブ’/ :l 7 (Trip Exceptio n)5、2.37 アンエクスベクティドエクセプ/ヨン(Unexpecte d Exception)5238 ウェイ(way) 5.3 エンコードされたクラス (Encoding C1asses)53 1 キャッチフレーム(Catch Frame)532 コレクシwンストリ ーム(Collection Streag+)533 プレデファインドフレ ーム(Predefined Frame)53.4 リピートフレーム(Re peat Fra+5e)535 レストリフトフレーム(Restrict  Frame)5、3.6. センドフレーム(Send Frame)53.7  ユースフレーム(Use rrame)538 ユースデファインドフレーム (Llser−defined Frame)539 ホワイルフレーム(Wh ile Frame)(以下、余白。) ニーエース この開示のアベンデ、クスAのセクション1は、本発明の主な要素を紹介し、そ の説明は、引用によってここで具体化される。アペンディックスAのセクシ1ン の1.4.3に示されたコンベンンヨンは、アペンディックスBでも同じように 用いられている。 上−ニー盪−底 アペンディノクスBは、3つのセクションに分けられる。セクション1は、アベ ンディノクスBの序文である。セクシ讐ン2では、エンコード則(エンコードル ール)の主なコンセプトを紹介する。セタン1ン3は、命令(インストラクショ ン: 1nstruction)セットで用いられているものの池に、エンコー ドで用いられている定義済み(プリデファインド: predefined)ク ラス及びアトリビ1−トを定義する。 1.2=楚1ス獣 アペンディノクスBは、以下の文書に依存している10646、 Intern ational Organization for 5tandardiza tion and Inter獅≠狽奄盾獅≠■ Eleetroteehnical Co+n1ssion、 1990(Te lescript] この開示の7ペンデイノクスA0 [Unicodel The Unicode 5tandard: Worldwide Char acter Eneodin 、 Volume 1. V■窒唐奄盾氏@1゜ 0、The Unieode Consortium、 Addtson4es ley、1991゜2、エンコードのフンセブト テレパーセルは、アペンディ/クスBの本セクン讐ンにおいて説明される。サブ セク/Ilンは、テレパーセル、オブジェクト、アトリビユート及びリファレン スのエンコードに対して各々当てられる。 2.1 テレパーセル Te1earcel”テレパーセル(teleparc el) ”は、テレパーセルの” 5ubject″であるオブジェクト、その オブジェクトのコンポーネント及びこれらのものの全てのコンポーネントを回帰 的にエンコードする。オブジェクト又はコンポ不一ントのクラスは、定義済みで あっても、ユーザ定41(ユーザデファインド: user−defined) であってもよい。 /4::テレバーセルは、標準形式においてのテレスクリプトオブジェクトであ る。 注:テレパーセルは、オブジェクトを2つのエンジン間で転送する手段である。 ノースエンジンは、オブジェクトをテレパーセルに変換し、そのテレパーセルを 目的地(デスティネーン−N /: destination)のエンジンに転 送する。目的地のエンジンは、テレパーセルをオブジェクトに変換することによ り、ソースで使い尽くされたオブジェクトと同じオブジェクトを目的地において 生成する。 庄:テレパーセルのオブジェクトは、たとえ排他的ではなくても、典型的にはエ ージェントである。このような場合、テレパーセルは、エージェントと、エージ ェントが所有する全てのオブジェクトと、エージエツトの現在の実行状態を形成 するものを含めて包括する。 2.2 オブジェクトのエンコード(Ob′ectEncod1n”オブジェク トのエンコード(object encoding) ” は1オブジエクトと 〜そのオブジェクトに対するリファレンスとをエンコードする。 2.2.1 ’ Forms オブジェクトのエンコードは、以下の形式の内のどれか1つを取る。 ′−エクスキ1−ティド: Exeeuted” executed obje ct encodiB”は、実行オブジェクトをエンコードする。 プリディファインド Predef 1ned″predefined obj ect encoding”は、クラスが定義済みであり、実行されていないオ ブジェクトをエンコードする。 ユーザディファインド(User−def 1ned)” user−defi ned object encoding”は、クラスがユーザ定義オブジェク トをエンフードする。 プロチクティ・ノド Protected” protected objec t encoding”は、任意のオブジェクトをエンコードする。 オブジェクトのエンコードは、そのオブジェクトに対するリファレンスもまたエ ンコードする。オブジェクトが変更され、又はオブジェクトのエンコード形式が 保護されている(puroteeted)場合にのみ、リファレンスは保護され る。 2.2.2 EI Ru1es) オブジェクト及びリファレンスに対するオブジェクトのエンコードの形式は、以 下の規則に従って選択されるものとする。これらの規則は、以下に示した順序で 適用される。 1 リファレンスが保護され、オブジェクトが変更されない場合に、プロチクテ ィノドオブジェクトエンコード(protected object enco ding)が選択される。 2、オブジェクトが実行される場合に、実行されるオブジェクトのエンコード( executed object encoding)が選択される03、オブ ジェクトのクラスが定義済みの場合に、定la済みオブジェクトのエンコード( predefined object encoding)が選択される04、 (その他の場合には、)ユーザ定義オブジェクトのエンフード(u36r−de f 1ned object encoding)が選択される02.2.3  バレットPa1ettesオブジエクトのエンコードは、encoding p alette″に依存することができる。 この” encoding palette”とは、オブジェクトのエンコード に含めることを要求する定@済みアトリビュート及び規則のセットである。 定a済みオブジェクト又はユーザ定義オブジェクトのエンコードは、” pri +gary”バレットに依存する。この°’ primary”バレットとは、 例えば、”O”が見本(example)であるエンコードされたオブジェクト の定義済みクラスにより定められたものである。オブジェクトが定義済みクラス のインプリメンテーンヨンメンバであるが、定義済みサブクラスのインプリメン テーンヨンメンノ1′ではない場合のみ、そのオブジェクトは、定義済みクラス の°’ exalllple”である。 ユーザ定義オブジェクトのエンフードは、O”が見本(example)である る定義済みクラスのインスタンスが引用、制約又は名前付けもされていない場合 で、”O′°が引用、制約又は名前付けされている場合にのみ、’ 5econ dary”バレット(このアペノディノクスのセクション5.2.20に定める )に依存する。 バレットにおいて、各々の定義済みアトリビュートは、命令的(mandato ry)又は選択的(optional)と示されるo ” +*andator y″アトリビュートは、バレットに依存するエンコードにおいて表される。”  optional”アトリビュートは、バレットに依存するエンコードにおいて 表されてもよいが、必ずしもその必要はない。 エンフードの目的のために、ナンバは、各々の選択的なアトリビュートに割り当 てられる。 注:如何なるオブジェクトもミ/クスインではない。 2.2.4 エンコードされたクラス(Eneodin C1assses)エ ンコードされたバレットは、アベンディノクスBのセクション4.2で後述する ように、エンコードされたクラスを容認する。’ encoding clas s”は、この開示のアベンディノクスAに記述されたクラスである”langu age classes″を越えるものであり、定義済みクラスである。また、 ” encoding class”は、エンコードの目的のためにインストラ クションセットを指示するが、インストラクションセットの一部ではない。 注:エンコードされたクラスの唯一の目的は、エンコードの特性を定義すること である。このようなりラスは、イニツヤライゼーションノくラメータ、オペレー アgン、アダブチ−/11ノ又は変更を有さない。 2.2.5 エンフードされたアトリビュート Eneodin Attrib utesエンコードされたバレットは、アペンディノクスBのセクション4.3 で後述するエンコードされたアトリビ、−1・を容認する。”encoding  attribute″は、この開示のアペンディノクスAに記述された’ l anguage attributes”を超えるものであり、定義済みアトリ ビュートである。また、” encoding attribute”は、エン コードの目的のためのインストラクションセットを指示するが、インストラクシ ョンセットの一部分てはない。各々のエンコードされたアトリビュートは、/ス テムインスタンスアトリビュートである。 l主゛エノフード了トリビニートは、ユーザ定義クラスのインターフェースカ同 一の識別子をアトリビュートに与えることを妨げない。 2.3 アトリビュートのエンコード Attributes Encodin ” attribute encoding”は、定a済みアトリビュートと、 このアトリビュートのりファレ/スをエンコードする。 アトリビュートのエンコードは、次の形式のいずれかを取る。 プーリアノ(Boo i ean ) boolean attribute encoding”は、クラス゛’ B oolean”のインスタンスをエンコードするう タイアルストリノグ Dial 5trin”dial string att ribute encoding”は、クラス゛’ Dial String″ のインスタンスをエンコードする。 インチジャ(Inteer integer attribute encoding″は、クラス”Int eger”のインスタンスをエンコードする。 アイテム:Hem ”Ite+a attribute encoding″は、オブジェクト又は オブジェクトに対するリファレンスをエンコードスル。 リスト(List) ” 1ist attribute encoding”は、クラス″Li5t Hのインスタンスをエンコードする。 オクテノトストリングクCc(e(StrIrI)” octet strin g attribute encoding”は、クラス°’ 0ctet S tring”のインスタンスをエンコードする。 工2ユ1玉と ” 5tack 5ttribute encoding”は、クラス″5ta ck”のインスタンスをエンコードする。 ストリング(S(rln) ” string aurtbute encoding”は、クラス°’ S tring”のインスタンスをエンコードする。 2、 3. 2 ill Ru1es)アトリビュートに対するアトリビュート のエンフードの形式は、以下の規則に従って選択され、これらの規則は、以下の 順序で適用される。 1、アイテムアトリビュートのエンコード(Item attribute e ncoding)以外のアトリビュートのエンコードは、アトリビュートが必要 なりラスのインスタンスである場合に選択される。 2、(池の場合には、)アイテムアトリビュートのエンフード(Item at tributeencoding)が選択される。 2.4 リファレンスのエンコード(Reference Encodin”リ ファレンスのエンコード(reference encoding) ”は、オ ブジェクトツエンコードによってエンコードされるオブジェクトに対するリファ レンスをエンコードする。 2.4.1 ′Forms リファレンスのエンコードは、以下の形式のうちの1つを取る。 二股化■全四m旺と general reference encoding″は、リファレンスの エンコードの開始からオブジェクトのエンコードの開始まで、オクテツトで表し た”offset’によってオブジェクトを表すリファレンスをエンフードする 。このリファレンスは、保護される又は保護されない(unproteeted ) リファレンスである。オフセットは、オブジェクトのエンコードがリファレ ンスのエンコードの後になるか先になるかに従って、各々、正又は負となる。こ こで、オフセットは負とし、正のオフセットは保存される。 ボイデノド(voided) ”voided reference encoding”は、ボイドされるリ ファレンスをエンコードする。 インターチェンジ 1nterchane”interchange refe rence encoding”は、オブジェクトのダイジェストとへオブジェ クトがインスタンスであるクラスに対するサイテシ璽ンによって、インターチェ ンジド(intarchanged)オブジェクトを表すリファレンスをエンコ ードする。 又之ヱ二回主踵と class reference encoding”は、クラスが定義済みの 場合には、クラスの数値コードによってクラスを表すリファレンスをエンコード する。また、クラスがユーザ定義の場合には、クラスに対するサイテン3ンによ ってクラスを表すリファレンスをエンコードする。 プロ/−ジャPr0cedure procedure reference encoding”は、プロン−ジ ャに対するリファレンスをエンコードする。このプロン−ツヤは、ユーザ定義ク ラスのインプリメンテーンヨノにあるプロシージャである。プロ/−ジャリファ レンスのエンコードは、定義済みフレームFの”procedure” アトリ ビュートのみをエンコードするために用いられるべきである。プロン−ジャリフ ァレンスのエンフードは、1F″がアイテムである”frames″アトリビュ ートの′F”の直下において、プロシージャフレーム”B”の”procedu re″アトリビュート中のプロ7−ジヤの位置(ポジショ/: positio n)をインチジャによって表現する。このインチジャが1に等しいかlより大き い場合に、このインチツヤは、ボンシラノ自身である。これ以外の場合には、こ のインチジャは、非減数であるポジシコンと、減数であるFのp。 5ition”アトリビュートとの差値に1を加えた値に等しい。 2、4. 2 (lf Ru1es オブジエクトに対するリファレンスのリファレンスエンコードの形式は、以下の ルールに従って選択されるものとし、これらの規則は、以下に示した順序で適用 されるものとする。 1、ボイドされたリファレンスのエンコード(voided re4erenc e encoding)は、リファレンスがボイドにされた場合に、選択されな くてはならない。 2、オブジェクトが定義済みクラスである場合、クラスリファレンスのエンコー ド(class reference encoding)を選択しなければな らない。 3、オブジェクトがテレパーセルの目的地に存在していると推定されるのでなく 、テレパーセルの一部分としてエンコードされている場合、一般的なリファレン スのエンコード(general reference encoding)を 選択する。 4、オブジェクトが、ユーザ定義クラス又はクラスイングリメンテーンヲンのプ ロ/−シャである場合、各々、クラスリファレンスのエンフード(class  reference encoding)又はプロン−ジャリファレンスのエン コード(procedure reference encoding)を選択 する。 5、(その他の場合は、)イ/ターチェンジリファレノスのエンコード(int erehange reference encoding)を選択する0注: オブジェクトがテレパーセルの目的地に存在していると推定されるのではすく、 テレパーセルの一部分としてエンフードされている場合にのみ、上述した規則の 3.が適用される。 3、 エンコードされたスペ/フィケーシテンテレパーセルは、アベンディ、ク スBの本セクシ菅ンにおいて定義される。サブセク/−Iンは、テレパーセル、 オブジェクト、アトリビユート及びリファレンスのエンコードに当てられる。 3.1 コンベン/コン Conventionsテレパーセルは、各々がゼロ 以上のオクテツトである一連のトークンである。 テレパーセルは、トークンを連鎖化することによって得られたオクテツトストリ ングである。 テレパーセルは、下記の7ノタクテイノクルール及び付随するセマンティノクル ールに従う。B N F (Backus−Naur、又は、Backus n ormal form)に与えられた規則は、任意のトークンを括弧(” [” 及び” ] ” )によって囲む0表8.1は、オブジェクト及びリファレンス のエンコードの形式へのコードの割当を表したものである。これらのコードは、 下記のセタン5ンにおいてタグとして用いられる。 (以下、余白。) 庄:下記のセクションは、この開示のアペノディノクスAのセクション5.1. 5.3のコンペアノー1ノに従う。 (以下、余白。) 3.2 テレパーセル Te1earcelテレバーセルは、次の規則に従う。 Te1eparcel ::z unsignedNumber unsign edNumber 0bject第1及び策2の’ unsignedNumb er”は、テレパーセルが適合するエンコード規則のメイジャーバージョン及び マイナーバージタンのナンバを各々エンコードする。”0bject″は、テレ パーセルのオブジェクトと、オブジェクトのコンポーネントとをエンフードする 。 注:アペンディノクスBが定義するエンフード規則のノージャーバージョン及び マイナーバージタンのナンバは、各々、0及び5である。 1−ユーヱグ2王l止Ωlヱニ:」コ互助虱し隙四虹坦とオブジェクトのエンコ ードは、定義された形式が反映する以下の規則に従う。 0bject::=ExecuLedObjectlPredefinedOb ject1υ5erDefinedObjecL I ProtecLedOb ject3.3.1 行オブジェクト(エクスキューティドオブジェクト: E xecuted O的二上り 実行オブジェクト(エクスキューティドオブジェクト: ExecuLed 0 bject)のエンコードは、この開示のアペノディノクスAのセクション5. 1.5.3に述べた規則に従う。 ExecutedObject”の第1トークンであるタグは、実行オブジェク トを特定し、クラスのフードを2回エンコードすることによって、オブジェクト のクラスを明確にする。 注、実行オブジェクトは、バイナリテレスクリプトと同様にエンコードされる。 1−ニーλ−1四ゴ2シ!し6巴t2と五ム上」跋搬可M回口央註蛙と定義済み オブジェクト(ブレデファインドオブジェクト: Predef 1ned 0 bject)のエンコードは、以下の規則に従つ。 PredefinedObject :tag Pa1etteタグかオブジェ クトを定義済みのものとして特定し、クラスのコードを2回エンコードすること によって、オブジェクトのクラスを明確にする。” Pa1ette”は、オフ ”、’ エクトが見本(example)であるクラスについて、1次的にエン コードされたバレットに依存する。 333 ユーザデファイントオブジェクト(User−defined Ob’ ect)ユーザ定義オブジェクト(ユーザデファインドオブジェクト: Use r−defined 0bject)のエンコードは、以下の規則に従う。 UserDefinedObjcL =[Pa1ette Mixins] L ag Item ItemPalette MiXinS ::= 18g第1 の”tag”は、クラスのコードの2倍に1を加えたコードをエンコードするこ とにより、オブジェクトか見本(example)であるクラスを明確にする。 第1のIte+a″は、オブジェクトのクラスをエンフードし、第2のItem ”は、そのクラスのユーザ定義インプリメンテ−7IIンスーパークラスに対し て標準的な順序でアイテムが対応しているリストをエンコードする。各々のアイ テム自身は、リスト、すなわち、クラスインブリメンテーンヨンの” prop erties”アトリビュートの識別子の順序によって、アイテムが対応するク ラスに固有のインスタンスのプロパティのリストである。最後の1以上のプロパ ティは、省略することができ、その場合には、ニル(0)が含まれる。 第1の” Pa1ette”は、2次的にエンコードされたバレットに依存し、 ” Mixins”が存在する場合のみ存在する。第2の” Pa1eLLe’ “は、オブジェクトが見本(example)であるクラスについて、1次パレ ットに依存する。 1−1=土−ズ三二久二エエ±工2五久エエな虹匹印虹四江虹と保護されたオブ ジェクト(プロチクティドオブジェクト: Protected 0bject )のエンコードは、以下の規則に従つ。 ProtecLedObject ::= tag ProLecLedObj eetltselfProtectedObjecLILself ::+ E xecutedObject 1PredefinedObject 111s erDefinedobject” tag″は、保護されるリファレンスを特 定する。” ExecutedObjeet”、” Predef 1nedo bject”又は°” 1IserDefinedobjeet”は、このオブ ジェクトをエンコードする。 3、 3. 5 バレ ノ ト Palette)エンコードされたパレットは 、以下の規則に従う。 Pa1ette ::” Attributes [Mask Attribu tes]Mask ::lIunsignedNumberAttribute s ::t [AtLr1bute Attributes]第1の” Att ributes”は、パレットを定義する表にリストされている順序で、ハレノ トカ不可欠と宣言するゼロ以上の7トリビユートをエンコードスル。ソノ表は、 ”^ttr+butes″の発生回数を固定させる。 パレットが、アトリビュートのどれかを任意であると宣言した場合のみ、”Ma sk”及び第2のAttributes”が存在する。第2の” Attrib utes″は、ゼロ以上の任意のアトリビュートをエンコードする。’ Mas k”は、ALtributes”の発生回数を固定する。 ” Mask”は、どの任意のアトリビュートが第2の”Attributes ”をエンコードするかを示すインチツヤをエンコードする。パレットの表は、[ 1,n]の範囲中の任意のアトリビュートのナンバを定める。箪2の” Att ributes″は、インチジャの表現2′−1を加重したビットが1になる場 合のみ、ナンバ″ 1”にアトリビュートのエンコードを含む。実際にエンコー ドされたアトリビュートは、1”の増大する順序で、第2の“Attribut es”中に表れる。n″により論理的に必要とされるが、” Mask”から物 理的に不在であるビットは、ゼロと見なされる。 物理的に存在しているが、論理的に必要とされないビットは、無視される。 3.4 アトリビュートのエンフード(Attribute Encodin  )アトリビュートのエンコードは、定義された形式を反映する以下の規則に従う 。 −Attribute ::= Boolean l DialSLring  l IntegerlItem l Li5t l OctetString  l String3.4.1 ブーリア7B001eanブーリアンアトリビユ ートのエンコードは、以下の規則に従う。 Boolean :: ! e+eptyブーリアンがtrue″の場合のみ、 ブーリアンアトリビュートのエンコードが存在する。 注:エンフードの存在は、そのエンフードを網羅するマスクによって示される。 注:したがって、パレットのブーリアンアトリビュートは、必然的に任意である 。 34.2 ダイアルストリング Dial 5trinダイアルストリングのエ ンフードは、以下の規則に従う。 DialString ::* OctetSLring″OctetStri ng″は、ダイヤルストリング″D″によって順次定められた一部分にプル:  n1bbles)のりスト″L″によって定められたオクテ・IトストリングO ”をエンコードする。 L”のニブルは、同じポジンコンにあるD″のキャラクタによって定められた[ 0.14]の範囲中のインチジャをコードなしでエンコードする。ナンバ(”O ”−9″)は、O−9を、ダッンx (’−″)は、13を定め、スヘース(N  ″)は、14を定める。ポジ7ツン21−1又は21にある”L”のニブルは 、ポジ/コン′1.I+の0″のオクテツトにおいて、各々、ビット[7]−[ 3]又はビット〔3コー[0]を占める。ここで、′i”は、少なくと61であ る。ビット[7]又は[3コは、各々MSBであり、ビット[4〕又は[0]は 、各々LSBである。” D”のレングス従ってL”が奇数である場合のみ、” 0″の最後のオクテツトのビット[3] −[0]は、同じ方法で15をエンコ ードする。 注:したがって、ダイヤルストリングは、バイナリ十進数(BCD)の形でエン コードされる。 3.4.3 インチツヤIntee「 インチジャアトリビュートのエンコードは、以下の規則に従う。 Integer ::+ signedNumber”signedNumbe r”は、インチジャをエンコードする。 注:これは、インチツヤのバイナリテレスクリプトのエンコードであるが、例外 として、エンコードをインチツヤの一般的なエンコードとして特定する最初のト ークンは存在しない。 3.4.4 アイテム Item アイテムアトリビュートのエンコードは、以下の規則に従う。 Item ::z 0bjet l Reference”0bject″又は ” Reference”は、各々、オブジェクト又はオブジェクトに対するリ ファレンスをエンコードする。 3.4.5 リスト Li5t リストアトリビニ−トのンコーディングは、以下の規則に従う。 Li5t ::= unsignedNumber ItemsItems : :II[ILem Items]” unsignedNumber″及び”I tems”は、同時にリストをエンコードする。 ” LlnSignedNu mber”は、”Item″ の発生回数をエンコードし、”Item’は、増 大するボッ/gノの順序に従ってリスト中のアイテムをエンコードする。 3.4.6 オクテツトストリング(OeteL 5trinオクテツトストリ ングアトリビユートのエンコードは、以下の規則に従う。 OctetString ::= unsignedNumber 0ctet s″unsignedNumber″及び” 0ctets”は、この開示のア ペンディノクスAのセフ/i75.3.2に定義されたオクテツトストソングを エンフードする。 C生:これは、オクテツトストリングのバイナリテレスクリプトのエンコードで あるが、例外として、オクテツトストリングのエンフードとしてエンコードを特 定する最初のトークンは存在しない。 3.4.7 スタック 5tack スタツクアトリビユートのエンコードは、リストアトリビコートのエンコードと 同一の規則に従うが、例外として、スタックのアイテムは、ボノンヲンの減少す る順序でエンコードされる。 34.8 ストリング 5trin ストリングアトリビニートのエンコードは、以下の規則に従つ。 String ::” unsignedNumber CharaeLerS ” unsignedNumber”及び”characters”は、この開 示のアベンデイノクスAのセクシヨン5.3.2に定義されたストリングを同時 にエンコードする。 庄:これは、ストリングのバイナリテレスクリプトのエンコードであるが、例外 として、エンコードをストリングのエンコードとして特定する最初のトークンは 存在しない。 3.5 リファレンスのエンフード Reference Encodinリフ ァレンスのエンコードは、定義された形式を反映する以下の規則に従う。 Reference ::= GeneralReference 1Void edReference l InterchangeReferenee 1C1assRefarence  1 ProcedureReference3.51 ゼネラルリファレンス(Ge neral Rererence)一般的ナリファレレス(ゼネラルリファレン ス: General Reference)のエンコードは、以下の規則に従 う。保護されないリファレンスに対しては、任意のエンコードが定義され、保護 されるリファレンスに対しては、他のエンコードが定義される。 GeneralReference ::= UnproteetedRefe rence 1ProtectedReferenceLlnproLecte dReference ::= Lag signdedNumberProt ectedReference ;:” Lag signedNumber″ tag”は、一般的なリファレンスをそのようなものとして特定し、また、保護 されない又は保護されるリファレンスとして特定する。” signedNum ber″は、リファレンスのエンコードからリファレンスされるオブジェクトの エンコードまで、オフセットをエンコードする。 3.5.2 ボイディドリファレンス Voided Referenceボイ ドされたリファレンス(ボイディドリファレンス: Voided Refer ence)のエンコードは、以下の規則に従つ。 VoidedReference ::= cag” tag”は、ボイドされ たリファレンスをそのようなものとして特定する。 3.5.3 イノターチェ7ノリフアレンス Interchan e Ref erenceインターチェンジリファレンスのエンコードは、以下の規則書こ従 つ。 Intarehan(eReference :富tag Ite@Itea” tag”は、インターチェツノリファレンスをそのようなものとして特定する。 第1の’ ltem“°は、インターチェンジドオブジェクトのクラスC二対す るサイテショノをエンコードする。第2の”Item″は、インターチェンジト ′オブジェクトのダイジェストをエンコードする。 3.5.4 クラスリファレンス(C1ass Reference)クラスリ ファレンスのエンコードは、以下の規則に従う。定義済みクラスに対しては、任 意のエンコードが定義され、ユーザ定義クラス(こ対して(ま、1也のエンコー ドが定義される。 C1assReference ::= PredefinedClassRe ference 1userDef 1nedclassReferenceP redefinedC1assReference ::= tag unsi gnedNua+ber11serDefinedC1assReferenc e ::= tag ILem”tag”は、クラスリファレンスをそのような ものとして特定し、また、クラスを定義済み又はユーザ定義として特定する。ク ラスが定4に済みの場合(こ、”uns ignedNumber”は、この開 示のアペンデノクスAのセクシヨン5.4.1又は下記の表8.2の中のクラス に割り当てられるコードにエンコードされる。クラスがユーザ定義の場合は、” Item″は、クラスのサイテシ式ンをエンコードする。 3.5.5 プロ/−ジャリファレンス(Procedure Referen ce)プロ/−ジャリファレンスのエンコードは、以下の規則に従う。 ProcedureReference ::m Lag signedNum ber”tag”は、プロ/−ツヤリファレンスをそのようなものとして特定す る。TI。 ignedNumber”は、上述したようにプロン−ジャのアジン3ンを特定 する。 4、エンコードされたクラスとアトリビ二−トテレスクリプトのエンフードクラ ス及びアトリビュートは、アベンデイノクスBの本セク7−Jンで定義されてい る。サブセクシヨンは、まず、クラスのエンンコードに、つぎに、アトリビュー トのエンコードに、各々、当てられる。 4.1 フ7ベンンヨノズ C0nVent 1onsエンコードされたクラス (Encodin C1asses)エンコードされたクラスは、グループを形 成する。このグループを定義する以下のセクシヨンは、この開示のアベンデイノ クスAのセクシヨン3.2のフンベノ/ヨンに従う。 表8.2は、エンコードされたクラスへの識別子のコードの割当を表したもので ある。 注:クラス”Frame”及びProcedure Frame”は、抽象的( アブストラクト:abstrucL)であるため、コードを必要としない。クラ ス″Dial String”は、そのインスタンスがイノスタンス自身のエン フードを有するため、コードを必要としない。 庄:エンコードされたクラスの唯1つの目的が、エンコードされたアトリビュー トを定義することにあるため、本アペンディノクスは、アベンデイノクスAがそ のようなセクションであるもの、例えば、セクション4.2を各々の言語クラス に当てているにもかかわらず、各々のエンコードされたクラスに主なセクション を当てていない。 エンコードされたアトリビュート(Encodin Attributes)エ ンフードされたアトリビュートは、ある言語及びエンフードされたクラスに固有 である。エンコードされたアトリビュートを定義する以下のセクシ腫ンは、その ようなアトリビュートに対して固有である各々の定義済みクラスにサブセク/: Iンを当てている。これらのクラスは、アルファべ7ト順序で考えられる。エン コードされたアトリビユートの定義は、この開示のアベンディノクスAのセフ7 I+74.1に定めたコンベア/ヨシに従つ。 注:識別子のフードは、エンコードされたアトリビュートに割り当てられる必要 はない。 土−LユL乙=−シソ!シ鵠:21(イ)耶囮」」v肚と0bject (Re ferenced)−Co11ection ・・Li5t (Ordered) −” Con5trained Li5t (Constrained)・・・ ・String (Cased & Executed)・ ・ ・ ・ ・  匹旦j遅±1 − Frame −−Proeedure Frame ・・・Predefined Frame・・・−CatchFra+ce ・ ・ ・ ・ 蝕凹旺」U駐 −−・・WhileFrame l ・ ・ User−defined Frame4.2.1 キャッチフレ ーム Catch Frameアトリビコート(Attributes)ヅ三見 顕辺 ” catch frame’“は、そのサブジェクトメソノドがca Lch ″のためのメ゛パッドてあり、また、その“procedure”のアトリビュ ートがオペレーン3ンの応答側(レスポンダ: responder)でもある 定義済みフレームである。 キャッチフレームの固有のアトリビュートは、オペレーンランのアーギュメント であるクラスである(アトリビュート”exeeptio口”)04.2.2  フレク/gンストリレス Co11ection 5trea++アトリビコー ト Attributes″collection stream”は、ストリ ームのアイテムがコレクン曽ンのアイテムであるストリームである。 コレクレヨンストリームの固有の7トリビユーしは、ストリームのソース(アト リビユート” 5ource” )及びストリームの現在のポジシラン(アトリ ビュート″position” )である。” 5ource″は、そのアイテ ムがコレクレヨンストリームによって生ずるというコレクションである。”cu rrent position”は、コレクレヨンストリームのソースをエンコ ードするアトリビュート” items”中のポジシランである。 コレクンタンストリームは、ストリームの現在のボジン鵞ンの前方のポジシラン において、何等かのアイテムを即に生成しており、ストリームの現在のポジシラ ンにおいて、そのアイテムを最後に生成する。そして、現在のポジシランの後方 のポジ/−Iンにおいては、さらに、別のアイテムをこれから生成する。 注:コレク/−Iレストリームは、” 5trea+i”オペレーン譜ンがコレ クションによって遂行された時の、” stream”オペレーン3ンのリザル トである。 4.2.3 ダイヤルストリング(DialStrIn)”ダイヤルストリング (dial siring) ”は、各々のアイテムが数字(0″−″9″)、 ハイフン(−″)又はスペース(n ″)の何れかであるストリングである。 注:ダイヤルストリングは、テレナンバにおいて用いられる。 4.2.4 フレーム Frame) ”フレーム(frame) ”は、定義済み又はユーザ定義jソノド、フレーム の″′Subject method’の遂行の現在の状態を記録するオブジェ クトである。 4.2.5 ゴーフレーム(Go Frame)”ゴーフレーム(go fra me) ”は、トリップを行なうことを課するフレームである。そのメソッドは 、オペレーンヨン″gO″又は”5end”のための定義済みメツノドであり、 オペレーンドア”g□″は、このクラスのインスタンスの場合であり・オペレー ン1ン°’ 5end”は、このクラスのサブクラスのインスタンスの場合であ る。 4.2.6 プレデフアイノドフレーム Predefined Frame” プレデフアイノドフレーム(predefined frame) ’は、その オブジェクトメソッドが定義済みであり、したがって、そのプロ/−ツヤがその メ゛ノットではないプロン−ツヤフレームである。このクラスのインスタンスの オブジェクトメソ7ドは、オペレーン1ン°’ do” 、” either”  、”汀” 、” 1oop”又は5elect”のためのメソッドである。 庄:上述のオペレー/−Jンの内のどれが適用されるかは、その実行によってオ ペレーン1ンが要求された識別子を検査することによって定められる。 42.7 プロ/−ツヤフレーム(Procedure Frame)アトリビ x−トAttributes 四臣已y匹 巨コq℃刀工 ”プロシージャフレーム(procedure frame) ”は、プロジー ツヤの遂行を課するフレームである。 プロン−ジャフレームの固有のアトリビュートは、遂行されているプロシージャ (アトリビュート″procedure”)と、プロン−ジャの現在のボリン1 ン(アトリビュート”position″)である。プロシージャの” cur rent posittlon”は、エンノノカ、現在遂行中であるアイテムの 現在のポジ/Mンである。 注:プロ/−ジャは、オブジェクトのアトリビュート”procedure’で あるか、メソッドがインプリメントするフィーチャのレスポンダであるか、又は フィーチャのアーギュメントである。 4.2.8 リピートフレーム ReeatFrameアトリビュート(Att ributes)■と」工に匣 re etitionssoFar ”リピートフレーム(repeate fra+ae)″は、そのオブジェクト メソッドがオペレー/gン” repeate″のためのメン、ドであり、その アトリビュート″procedure″が、そのオペレー/gンのレスポンダで ある定義済みフレームである。 リピートフレームの固有のアトリビュートは、開始された現在の遂行(アトリビ ユート” repetitionsSoFar” ) 、及びアウトセlトで要 求されたナンバ(アトリビュート″repetitiOnS″)を含むフレーム のアトリビューピproeedure”の遂行のナンバである。 −4,2,9レスドラフトフレーム(Restrict Frame”レストリ フトフレーム(restrict frre)″は、そのオブジェクトメソノド がオゝレーア:lIン°’ restrtct”のためのメソッドであり、その アト1ノヒ゛ニート”procedure”が、そのオベレー/gンのアーギュ メントである定義済みフレームである。 レストリフトフレームの固有のアトリビュートは、オブジェクトメソノドのエン ジンによる遂行の開始時に、オブジェクトが持ったノく一ミツト(アトリビュー ト”permit” )である。 4.2.10 センドフレーム(Send Frame)アトリビュート ヘL tributes■」二組 °゛セツトフレームSend Frame) ”は、そのサブジェクトメ′ノッ ト′力;、オペレーン1ン”5end”のための定@’tAみメソッドであるゴ ーフレームである。 セットフレームの固有のアトリビュートは、最初にオペレーン1ンのアーギュメ ントにあった1以上のチケット(アトリビュート” tickets” ) ’ e含tj。 4.2.1l−L−スフレーム Use Fra++eアトリビコート(Att ributes)resource ”ユースフレーム(use fraIle)″は、そのオブジェクトメソッドが 、オペレーン1ン” use”のメソッドであり、そのアトリビュート″pro cedure’がオペレーン1ンのアーギュメントの1つである定義済みフレー ムである。 ユースフレームの固有のアトリビュートは、オペレーンヨンのレスポンダ(アト リビュー) ” resource″)である。 4.2.12 ユーザーデファインドフレーム(User−defined f rame)アトリビュート(Attributes)■■四疫肛 ”ユーザーデファインドフレーム(user−defined frame)″ は1そのプロジーツヤが、フレームのオブジェクトメソッドのプロ/−ツヤであ るプロ7−ツヤフレームである。オブジェクトメソッドは、ユーザ定義であり、 必然的に、インプリメンテー7−IンのアトリビュービinstanceMet hods″又は”setMethods”の値である。 ユーザ定義フレームの固有のアトリビユートは、そのメソッドのレスポンダ(ア トリビュート” responder” ) 、スタック(アトリビュート5t ack”)、及び変数(アトリビュービvariables”)であり、アトリ ビュート″variables−は、メソッドのアトリビュート″variab les”においての識別子の順序に従う。 レスポンダは、ユーザ定義フレームがアイテムである、そのアトリビュート”f rames+のエージェントである。 注:フレームのアトリビュート″Procedure”中のアイテムが存在する ならば、そのアイテムを″ I”と仮定する。エージエツトのアトリビュートf rames”中のユーザ定義フレームの下のアイテムが存在するならば、そのア イテムを°B″と仮定する。特に、”1″を、アトリビュート” Proced ure“中のボノンコンが” Boのアトリビュート”pos It ion” であるアイテムと仮定する。′I″は(a)存在せず、サブジェクトメソノドは 、オペレーンヨン″1ive’のためのものであり、(b)モディファイヤ“5 etAt trtbute”によって先行される識別子であり、サブジェクトメ ソノドは、インプリメンテーンッンのアトリビュート″seLMethods” 中の値であり、(C)このように先行されない識別子であり、そのサブジェクト メソノドは、インプリメンテ−7Mノのアトリビ二−ト″instanceMe Lhods″中の値であり、又は(d)セレクタ” escalate”であり 、サブジェクトメソノドは、上記(b)又は(c)に示した通りとする。 4.2.13 士ワイルフレーム(While Fra++e)アトリビュート  AttributesisPrecondition と:交配U」狙 ”ホワイルフレーム(while frame)”は、そのサブジェクトメソッ ドがオベレ−/gン″while″のためのメソッドであり、そのアトリビュー ト″procedure″が、そのオペレーションのレスポンダである定義済み フレームである。 ホワイルフレームの固有のアトリビュートは、オベレーシヲンのアーギュメント (アトリビュート”precondr t ton″)である実行オブジェクト と、レスポンダと言うよりはむしろアーギュメントが遂行されているが否が(ア トリビュート1sPrecondition”)を明確にする。ホヮイルフレー ムのアトリビ二一1positiOn°゛は、2つのブロン−ジャの内のどちら が遂行されている方に所属する。 土−且一三ヱ3:ユ1!収コ!二昌タビ:L套胚工用工五四■匹組とエンコード されたアトリビュートは、以下のように定義される。 4.3.1 エージェント(4011 次に示すエンコードされたアトリビュートは、このクラスに固有である。 レスポンダの継続中のフレーム。ボトムのフレームのサブジェクトメソ・ノドは 、オペシー/コン″1ive”のためのユーザ定義メソッドである。トップフレ ームのサブジェクトメソノドは、オペレーアg)′go”又は5end”のため の予め備えられた(b旧H−in)メソッドである。ゼロ以上のフレームが他に ある。 ネイティブパーミツトが、レスポンダが保持するパーミツトと異なっている場合 には、レスポンダの固有のパーミツト(ネイティブパーミツト: native  permi
【)であり、その他の場合には、ニル(0)である。 4.3.2 キャッチフレーム Catch frame次に示すエンコードさ れたアトリビュートは、このクラスに固有である。 ngy上こ 5ealed C1ass: レスポンダのサブジェクトメソ、ドを遂行しているクラス(クラス” Exce pti。 n″)又はそのサブクラスである。 4.3.3 コレク/ヨン(Co11ection次に示すエンコードされたア トリビュートは、このクラスに固有である。 レス:t4:zりJアイテムである。特定されるアイテムのボジンヨンは、どれ モ定義されていない。 4.3.4 コレク/ヲンストリーム Co11ection Stream) 次に示すエンコードされたアトリビュートは、このクラスに固有である。 四三刀旦L sealed IntegerlNil;レスポンダが何も生成してない場合に は、又はそのアイテムの全てを生成してない場合には、レスポンダ中の現在のポ ジ/ジンであり、そうでない場合は、ニル(0)である。 ヱ凹工二と− 5ealed Co11ection[0bject]1Nil:レスポンダが 、そのアイテムの全てを生成していない場合には、レスポンダのソースであり、 そうでない場合には、ニル(0)である。 4.3.5 ディクンgナリ Dieitionar次に示すエンコードされた アトリビュートは、このクラスに固有である。 レスホンタノアイテムを形成するキー及び値である。リストのポジション2I− i及び2目こあるアイテムは、各々、キーとその組み合わされた値である。特定 されたキーの対のボノンヨンは、定義されていない。 4.3.6 リスト Li5t 次に示すエンコードされたアトリビュートは、このクラスに固有である。 島星野− 5ealed Li5t[0bjeet]!;レスポンダのアイテムである。 4.3.7 パターン(aLter口)次に示すエンコードされたアトリビュー トは、このクラスに固有である。 展工し 5ealed copied String:レスポンダのテキストである。 4.3.8 ブロアージャフレーム(Procedure Frame)次に示 すエンフードされたアトリビュートは、このクラスに固有である。 四臣島ユ凹− 5ealed Integer+ レスポンダのアトリビュート’ procedure”中の現在のポジ7=Iン である。 どyμ担脛− 5ealed Procedure; レスポンダがその実行を課するブロン−ジャである。 4.3.9 ランダムストリーム(Rando++ 5ttea11)次に示す エンコードされたアトリビュートは、このクラスに固有である。 鱈■L sealed 1Meger: レスポンダが如何なるアイテムも生成していない場合には、レスポンダのシード であり、そうでない場合には、レスポンダが最後に生成したアイテムである。 4.3.10 リピートフレーム ReeatFrame)次に示すエンコード されたアトリビュートは、このクラスに固有である。 胆匹■二匹と 5ealed Integer; オペレーンマン” repeatHのアーギュメントを介したレスポンダのサブ ジェクトメソノドについて要求されたレスポンダのアトリビュート”proce dure″が遂行された回数である。 re eLiLionssoFar sealed Integer; これまでに開始された現在の遂行を含めてレスポンダのアトリビュ−ト″pro eedure”が遂行された回数である。 ム」−±L止ジニビ土工七止1匣川用旦肱虹次に示すエンコードされたアトリビ ュートは、このクラス(こ固有である。 と猛1已− 5ealed copied Permit+レスヂンダのレスジェクトメノ、 ドの遂行の開始時(こお℃λて、サフ゛ジエクトカf(呆持したバーミツトであ る。 4.3.12 センドフレーム(Send Frame)次に示すエンコードさ れたアトリビュートは、このクラスに固有である。 tickets sealed Li5t[Ticket]!;レスボンタのサブジェクトメノ、 ドのアーギュメントとして供給された1ノスト中の1以上のチケットである。特 定されtこチケットのどのボッ/gノも定義されていない。 4.3.13 スクノク(Stack)次に示すエンフードされたアトリビュー トは、このクラスに固有である。 旦二鉦 5ealed 5tack[0bjectコ1:レスポンダのアイテムである。 4.3.14 タイム Time 次に示すエンコードされたアトリビュートは、このクラスに固有である。 組L sealed Integer+ クラス”time”の’ new”を要求し、そして、そのリザルトをカレンダ タイムに変換することによってレスポンダが生成された時又は場所で、生成され ていたであろうカレンダタイムのアトリビュート’ dst−である◇駐2四L sealed Integer: レスポンダがするのと同様に、タイムの同じ絶対点”T”を表す正常化されてい ないカレンダタイムのセカンドアトリビュート” 5econd−Attrib ute”である。但し、そのセカンドアトリビュートだけがゼロにセットされて いた場合には、タイム“Tonを表わす。 注二Toは、測定される全ての時間に関連するタイムである。Toは、グレゴリ −暦記の「分」の開始に一致する。したがって、このアトリビ1−トは、TをT oから隔てる秒数である。このアトリビュートは、厳密には、タイムがTOの後 にある場合には正、前にある場合には負になる。 クラス”time″のnet”を要求し、そのリザルトをカレンダタイムに変換 することによってリスボンダが生成された時又は場所で、生成されていたであろ うカレンダタイムのアトリビュート” zone”“である。 4.3.15 ユースフレーム(Use Frame)次に示すエンコードされ たアトリビュートは、このクラスに固有である。 5ealed Re5ource: レスポンダのサブジェクトメソノドを遂行するリソースでアル。 4.3.16 ユーザデファインドフレーム(User−defined Fr ame)次のエンコードされたアトリビュートは、このクラスに固有である。 匹朋想ゆ江 5ealed 0bject: レスポンダのサブジェクトメソ、ドのレスポンダである。 5ealed 5Laek[0bject]!;レスポンダのサブジェクトメソ ノドのスタックである口5ealed Li5t[0bjecL]!;レスポン ダのサブジェクトメソ・ノドの変数である。 4.317 ホワイルフレーム While Frame次に示すエンフードさ れたアトリビュートは、このクラスに固有である。 レスポンダの7トリビユーピprocedure”でなく、レスポンダのアトリ ビ1−ト”preeond i t ion”が遂行されているか否かである。 旺匹坦虹且坦・ 5ealed Executedニ オゝレー/gン゛’ repeat”のアーギコメノトである。 5、エンコードされタハレノト テレスクリプトのエンコードされたパレットは、アペンディノクスの本セク/ヨ ノにおいて定義されている。あるセクションは言語のクラスに、また、別のセク /−Iンはエンコードされたクラスに各々分がれている。ネットワークの全ての エンジンは、以下のことについて一致しなければならない。 (1)割り当てられたテレアドレスのアトリビュート”provider”が選 択されるメツノド。 (11)割り当てられたテレネームのアトリビx h” authority”  が選択されるメツ、ド。 これらのメツノドのうちの1つの実施例は、この開示のマイクロフィルムアベ7 ディノクスGに含まれたコノピユータソフトウェアにインプリメントされている 。 5・ 1 コノ6ノ/ヨ/ズ(Conven L 1ons空でない(non− empty)の1次パレットを用いて、その見本(exa+aples)がエン コードされた各定義済みフレーバーに対して、サブセクションが以下のように当 てられる。第1に、言語フレーバーと次にエンコードされたフレーバーがアルフ ァベット順序て検討される。ミックスインと題された余分のサブセクションは、 その1つの二次パレットに当てられる。 各パレットの大部分は、コラムが以下のようにラベルされ、そして、その行が定 義済みアトリビュートを定義する表を用いて定義される。 ・ 主、 アトリビュートが命令的であればM″であり、アトリビュートが任意 的であれば、アトリビュートに割り当てられた数字である。 ・ Attribute アトリビュートの識別子である。 ・ 5ender アペンディ・7クスAのセクションA、2.4のノーチー7 *7を用いて定義されたアトリビュートの形式である。その形式がBoolea n”であり、その2つのインスタンスの内の1つのみがバーミツトされる場合に は、”Boolean”の代わりに”真(true)″又は偽(false)″ が表われる。 °Receiver 送出しているエンジンがエンコードから7トリビユートを 除かない場合は、ダノ/ユ(”−°′)であり、送出しているエンジンが、アト リビュートを除く場合は、受信するエンジンが供給するべき形式のインスタンス である。 5.2 ランゲージクラス(Lan ua e C1asses)言語クラスの ためのエンコードされたパレットは、以下のように定義される。 注:特定の言語クラスが、本セクションに不在であるということは、次のように 説明される。オブジェクトのアトリビュートclass及び1sProtect edは、エンコードとして表わされるが、アトリビュートとしては表わされない 。オブジェクトは、アトリビューhsizeを計算する。プレースは移動できず 、したがって、エンコードされない。プロセスのクラスは、そのプロセスがエー ジェント又はクラスでない限り、ユーザ定義とされない。ストリームノブは、ア トリビューピcurrent″、”1sDone”及び” neXt″を計算す る。 (以下、余白。) 5.2.1 エージェント Aent このクラスの見本(example)は、表8.3の1次バレットを用いてエン コードされる。 1このアトリビュートは、エージェントが領域内において転送される場合には、 送信側のエンジンによって供給され、そうでない場合には、受信側のエンジンに よって供給される。 2エージエツトのアトリビュート” permi+”のアトリビュート”pri ort ty”である。 (以下、余白。) 5.22 アソンエーンヨン As5ociationこのクラスの見本(ex ample)は、表8.4に示した1次バレットを用いてエンコードされる。 5.2.3 7トリビユート(Attribute)このクラスの見本(exa mple)は、表8.5に示した1次バレットを用いてエンコードされる。 1クラスにおいて、これは“Set [C1assl”である。各クラスは、ク ラス”工Exception”又はそのサブクラスである。 5.2.4 カレンダタイム Ca1endar Timeこのクラスの見本( example)は、表8.6に示した1次バレットを用いてエンコードされる 。 (以下、余白。) 5.2.5 サイテシヲン C1tationこのクラスの見本(exampl e)は、表8.7に示した1次パレ・ノドを用いてエンコードされる。 このクラスの見本(example)は、表8.8に示した1次バレットを用い てエンコードされる。 (以下、余白。) 5.2.7 クラスデフイニンコン C1ass Definitionこのク ラスの見本(example)は、表8.9に示した1次ノくし・ノドを用−1 てエンコードされる。 (以下、余白。) 5.2.8 コレク/ヨン Cal 1ectionこのクラスの見本(exa mple)は、表B、toに示した1次、<レットを用いてエンコードされる。 5.2.9 コンストレイ/トディクショナリ Con5Lrained Di etionarこのクラスの見本(exa+aple)は、表8.11に示した 1次1くし7トを用いてエンコードされる。 (以下、余白。) 5.2.10 コンストレイ/トリスト Con5trained Li5tこ のクラスの見本(example)は、表8.12に示した1次ノ<レットを用 (Aてエンコードされる。 5.2.1+ コンストレイノドセット Con5trained 5et)こ のクラスの見本(example)は、表8.13に示した1次1<レットを用 (Xでエンコードされる。 (以下、余白。) 5.2.12 コンストレイント Cn5traintこのクラスの見本(ex ample)は、表8.14に示した1次パレットを用いてエンコードされる。 1アトリビニードclassld”及び”ofclass”は、内在的及び外在 的に各々存在し、前者は、後者のアトリビュート” ciLaLion″のアト リビュート″title”である。クラス定義及び池の場所において、アトリビ ュート“elassld″及びofcIass”は、外在的及び内在的に各々存 在し、アトリビュート“’ ofclass“はゼロである。クラス又はクラス 定義において、コンストレイントは、アトリビュート定義のアトリビュート″c onstraint’“、定義オペレーアgンのアトリビュート″resu1t ″、又は定義オペレー/ヲノのアトリビュート”arguments″の1つの アイテムである。これらのどの場合においても、そのフィーチャ定義は、インタ ーフェースのアトリビュートclassFeatures’又は1nstanc eFeatures”中の値である0最後に、そのイノターフエースは、クラス 又はクラス定義のアトリビュート”1nterface”である。 (以下、余白。) 5.2.13 コノタクト Contactこのクラスの見本(example )は、表8.15に示した1次パレットを用いてエンコードされる。 5.2.14 ディク/ヨナリ (Dlctlonar)このクラスの見本(e xample)は、表B、16に示した1次パレットを用いてエンフードされる 。 5.2.15 インプリメンテインコノ IIllementatlOnこのク ラスの見本(example)は、表8.17に示した1次パレットを用いてエ ンコードされる。 1クラスにおいて、これは°’ Dictionary [Class%Met hodコ”である。 2クラスにおいて、これは°’ Li5t [C1ass]“である。 (以下、余白。) 5.2.16 インターフェース Interfaceこのクラスの見本(ex ample)は、表B、18に示した1次パレットを用いてエンフードされる。 1し/−バは、識別子のリスト、クラス” 0bject”のリストを供給する 。クラスにおいて、これは、” Li5t [C1assコ’“であり、し/− バは、クラス、すなわち、クラス″0bject”のリストを供給する。 5217 レキ/フッ(Lexicon)このクラスの見本(exaliple )は、クラス゛’ Dictionary”の見本(example)がエンコ ードされる1次パレットを用いてエンフードされる。 注−レキ7コノのアトリビュート” constraint” tよ、イノスト ラク/gンセ。 トによって固定されている。 5.2.18 リスト(List) このクラスの見本(example)は、表8.19に示した1次ノでレットを 用いてエンコードされる。 5.2.19 メソッド(Method)このクラスの見本(example) は、表8.20に示した1次/ザレノトを用いてエンフードされる。 (以下、余白。) 5.2.20 ミックスイン Mix−in2次パレットは、表8.21のもの である。 注:ハフ/ニドオブジェクトのアトリビニー) ” hash”及びインターチ ェンジドオブジェトのアトリビュービdigest”は、オブジェクトによって 計算される。 (以下、余白。) 5.2.21 オペレー/ヨン 0eratIOnこのクラスの見本(exa+ 5ple)は、表8.22に示した1次パレットを用いてエンコードされる。 1あるクラスにおいて、これは、” Set [C1ass]”である。各クラ スは、エクセプ7gノ又はそのサブクラスである。 5.2.22 パッケージ(Packaeこのクラスの見本(example) は、表8.23に示した1次パレットを用いてエンコードされる。 注、パッケージのアトリビニート” eonsLrainL”は、インストラク ンツンセノトによって固定されている。 5.2.23 パターン Patternこのクラスの見本(exaIIlpl e)は、表8.24に示した1次パレットを用いてエンフードされる。 (以下、余白。) 5、 2. 24 バー ミ ノ ト Permitこのクラスの見本(exa mple)は、表8.25に示した1次パレ1トを用いて工(以下、余白。) 5.2.25 ペティンコノ Petitionこのクラスの見本(examp le)は、表8.26中の1次パレットを用いてエンフードされる。 5226 ランダムストリーム(Random Streamこのクラスの見本 (example)は、表8.27に示した1次パレットを用いてエンコードさ れる。 5.2.27 リソース Re5ourceこのクラスの見本(example )は、表8.28に示した1次パレットを用いてエンフードされる。 1アトリビユート” conditions”は、アトリビニート”eond  i t ion”に等しい1つの識別子を含む。この識別子は、定義されていな い(アンプファインド: Undefined)。 注=サブジェクトが、そのトリップを開始した時に、リソースの使用を侍ってい たサブジェクト以外のどのプロセスも後に残されてしまうため、もはや、リソー スを待っていることはない。 5.2.28 セット 5et −次ハレットを使用して、このクラスの見本(example)がエンコードさ れる。 また、この−次パレットと共に、クラス゛’ Co11ection″の見本( exa++ple)が、エンコードされる。 5.2.29 スタック 5tack このクラスの見本(example) lよ、表8.29に示した1次パレット を用いてエンコードされる。 5.2.30 テレアドレス Te1eaddressこのクラスの見本(ex ample)は、表8.30に示した1次パレットを用いてエンンコードされる 。 (以下、余白。) 5.2.31 テレネーム Telename)このクラスの見本(examp le)は、表8.31に示した1次パレットを用いてエンコードされる。 5.2.32 テレナンバ(Telenumber)このクラスの見本(exa mple)は、表8.32に示した1次パレットを用いてエンコードされる。 (以下、余白。) 5、 2. 33 チケ ノ ト Ticketこのクラスの見本(examp le)は、表8.33に示した1次パレットを用いてエンフードされる。 5.2.34 チヶノトスクノブ(Ticket 5tub)このクラスの見本 (example)は、表8.34に示した1次パレットを用いてエンコードさ れる。 5.2.37 アンエクスペクティドエクセプ/gン υnex ected  Exce Lion5.2.35 タイム Time このクラスの見本(example)は、表8.35に示した1次パレットを用 いてエンコードされる。 5.2.36 1−リノブエグセブンヨン TrxExcetlonこのクラス の見本(example)は、表8.36に示した1次パレットを用いてエンコ ードされる。 5.3.1 キャッチフレーム Catch Frameこのクラスの見本(e xample)は、表8.37に示した1次パレットを用いてエンコードされる 。 しリンフスリ兄仝(eXample)1;、衣じ、Jソも1小し1こl久IゞV yT’で用い(エンコードされる。 5.3.3 ブレデファインドフレーム Predefined Frameこ のクラスの見本(example)は、表8.41に示した1次バレットを用い てエンコードされる。 53.4 リピートフレーム(Reea(Frame)このクラスの見本(ex ample)は、表8.42に示した1次ノくレットを用(1てエンコードされ る。 5.3.5 レストリフトフレーム Re5trict Frameこのクラス の見本(example)は、表8.43に示した1次バレットを用いてエンコ ードされる。 5.3.6 センドフレーム(Send Frameこのクラスの見本(exa mple)は、表B、44に示した1次バレットを用いてエンコードされる。 5.3.7 ユースフレーム Llse Frameこのクラスの見本(exa @ple)は、表B、45に示した1次ノイレノトを用いてエンフードされる。 (以下、余白。) 5.3.8 ユースデファインドフレーム Use−Defined FraI Ieこのクラスの見本(example)は、表B、46に示した1次パレ・ノ ドを用いてエンコードされる。 1このフレームが、エージェントのアトリビュートフレームのアイテムであるエ ージェントである。 (以下、余白。) 5.3.9 ホワイルフレーム While Frameこのクラスの見本(e xa謁pie)は、表8.47に示した1次パレットを用いてエリコードされる 。 (以下、余白。) アペンディックスC 著作権 ジェネラル・マジ・Iり社 1992.1993゜?jlL製をMf。 以下の目次は、読者がアペンディノクスCの構成を理解し、その情報を検索する ために役立てるものである。 概観 構成 引用 2 インターフェースの概念 2.1 テレネーム(Telename)2.2 ネットワーク(Networ k)23 エンジン(Engine) 2.4 プラネット7 *−ム(Platform)2.5 リージョン(Re gion) 2.6 アウトポスト(Outpost)27 ドメイン(Domain) 2.8トランスフy (Transfer)2.9トランス77 :L ニット (Transfer 1lnit)210 テステイネー/Wン(Destin ation)211 トランスファグループ(Transfer Group) 2.12 ウェイ (Way) 2.13 ミーンズ(Means) 2゜14 リザベインgン(Reservation)215 ランク(Ran k) 3、 通信クラス 31 リザベインヨン(lteservation)3.2 リザーバプルミー /ズ(Reservable Means)3J PSTNミーンズ(PSTN  Means)34 エグノステイングコ不り/1ンミーンズ(Existin g Connection Means)4 テレスクリプトにおけるインター フェース4.1 工’tノン(Engine) 42 プラIトフォーム(PlatイorIm)43 デステイ不−/gン(D estination)44 フエイラ−(Failure) 5 ルーティング(ROUTING) ルーティングアルゴリズム 6 C++におけるインターフェース インターフェースの記述 タスク CI C1ass テレスクリプトのインターフェースオブジェクト71 インターフェースの規約 1.2TsCharacter ?、 3 TsDestination74 丁5DestinatlonLi st7、5 TsExistinl(ConnectionMeans7、6  Tslnteger ?、 7 TslntegerList7、8 TsMeans T、9TsObjSpeeifier 7.10 7sOcteL 7.11 TsOeteLs 7.12 丁sPSTNMeans 7.13 TsReservableMeans7、14 TsReserva Lion7゜Is TsString 716 丁5Teleaddress 7.17 TsTelenaie 7 1g TsTelenu+aber7、19 7sWay (以下、余白。) 上−m 艮−級 このアペンディノクスは、テレスクリプトエンジンが実行されるプラットホーム から、テレスクリプトエンジンが得ることができる”通信サービス”を定義する 。2つのエンジンは、テレスクリプトのオペレージw7″′go”及び”5en d”によって要求されたとき、1つのエンジンの1つのブレイスから別のエンジ ンの別のブレイスへagent’の表現を転送させるために、これらのサービス を使用する。 このアペノディノクスは、主に2つの部分から成る。第1に、エンジンとプラッ トフォームの間のインターフェースの記述にテレスクリプトを用いる際に、テレ スクリプトエンジンが理論的に必要とする通信サービスについて記述する。第2 に、これらのサービスを提供するc++”アブリケーノコノ・プログラミング・ インターフェース” (API)について記述する。 通−盛 この了ベノディノクスは7つのセク/−lンに分けられる。セクション1は、こ こに記載されている序である。セクション2では、インターフェースの基本的な フンセブトについて記述する。セクション3では、いくつかの追加されるテレス クリプトクラスについて記述する。セクション4では、テレスクリプトのインタ ーフェースについて記述する。セフ/タン5では、転送について一層詳細に説明 する。セフ/タン6では、インターフェースを実行するc++APIについて記 述する。セフ/タン7では、そのAPIにおいて使用されるテレスクリプトクラ スのc++での表現について記述する。 弘−里 このアベンディノクスは、本明細書で開示されるアペンディックスAに依存して いる。 2、インターフェースの 念 このアベンディノクスのこのセクションでは、テレスクリプトコミニュケーンj ン及びコミニュケー7gンインターフェースの基本的なコンセプトについて記述 する。ここに記述されるオブジェクトの多(は、テレスクリプトの命令(インス トラクンヨン薯n5truction)セットにおいて、又はエンジンのコミニ ュケーンヲノインターフェースにおいて、直接に表現される。 21 テレネーム(Telename)テレスクリプトは、ブレイス間の、特に エンジノ間のオブジェクトの移動をサポートする。テレスクリプトの世界におい て、各ブレイスには、別々の”テレネー4 (Telename)”が割り当て られている。テレネームは、2つのアトリビュート、すなわちauthori  ty”と1°1dentity″を持つ。 テレスクリプトは、テレネームをサポートする。このテレネームには、割り当て られたテレネーム、すなわち”アサインドテレネーム(assiglIed t elename)″と、割り当てられていないテレネーム、すなわちn7ンアサ インドテレネーム”とがある。 テレスクリプトエンジンによってオブジェクトに組み合わされたアサインドテレ ネームは、常にオーソリティと識別情報(アイデンティティ: 1dentit y)の両方を富んでいる。7ノアサインドテレ不−ムは、テレスクリプトの1以 上のオブジェクトを特定することを意図している。すなわち、ノンアサインドテ レネームは、そのテレネームに固有のアトリビュートを省略することができ、こ のとき、そのテレネームはいくつかのオブジェクトを特定する。 2.2 ネットワーク (Network)テレスクリプトの”不、トワーク( Network)”は、1以上のり−ジヲン(領域)を含む。ネットワークは、 そのリージョンの全てを完全1こ相互接続できると(±限らず、これらのリージ ョンの任意の2つの間(こお(・・て、情報の°°2地声、間転送(paint −to−point transfer) ”は、可能ではな(Xこと力;あり うる。し/l)L、ネットワークが任意の2つのリージョン間において、情報の ”蓄積交換転送(store−and−forvard transfer)  ”ができる程度には、各リージョン1ま相互を妾統される。 2.3−五22Zユ旺肚坦と °“エンジン(Engine) ”は、テレスクリプトのクラストラクン9ンセ ノトの抽象化を実現するコンピュータプロセスである。エンジンiff也のエン ジンとm(Kすることによって、部分的に、これを行なう。エンジン+よ、アサ インドテレネームによって表される。 2.4 プラットフォーム Platform゛°プラットフォーム(Plat form) ”は、1以上のエンジンをサポートするノ\−ドウエア及びソフト ウェアの集まりである。プラットフォーム(ヨ、エンシンカ(、同一のプラット フォーム上にあるエンジンや、そのプラットフォームと↑妾続された他のプラッ トフォーム上にあるエンジンと通信することを可能にする。 2.5 リージョン Re1On) ゛リージー、 7 (Region) ”は、個人又は団体(こよってti作さ れるプラットフォームとエンジンを含む。 1つのリージョンは、そのリージヨンが含んで0る)゛ラットフオームを完全( こ相互接続する。したがって、リージ叢ンは、このようなプラットフォームの任 意の2つの間において、情報の2地点間転送を可能にする。各リージョンは、リ ージョンへのアクセス及びリージョンからの離去が可能な1以上のプラットフォ ームを含む。このようなプラットフォームによって、各ラージ1ンが相互接続さ れて1つのネットワークを形成する。リージョンは、固有のアトリビュートが省 略されたブレネームによって表される。 2.6 アウトポスト(OutO3t リージョンは、他のリージョン内にアウトポストを有しうる。”アウトポスト( Outpost)”は、リージョン内のブレイスであり、あるリージョンから、 そのアウトポストがあるリージョンへの転送の経路となる。 2.7 トメイノDomain ” ドメイン(Domain)″は、リージョンである。ただし、池のり−ジョ ン内にあるそのリージョンの全てのアウトポストも含む。 2.8 トランスフy (Transfer)” トランスファ(Transf er)″は、あるエンジン、すなわち”転送元エンジン(source eng ine)”から、他の二ノノノ、すなわち”転送先エンジン(destinat ion engine) ’“への、トラ/スフアユニットの伝送である。 トランスファユニットは、トランスファをルーティングするために用いることが できる”テステイ不−ノコン(destination)”を特定する。さらに 、トランスファのために使用される、′トランスポート(transport) ″及びルートに影響を与えるウェイを設けることができる。 2.9 トランスファユニット Transfer tlnit” トラ′スフ 1 :L ニー yト(Transfer UniL) ” It、トランスフ ァの際1ご、エンジン間で(云送される。トランスファユニット1よ、オフ1ト スト1ノングとデステイネー/Nンから成る。これらは、エンジン間にお(Xて f云送される唯一のデータ項目(データアイテム:data item)である 。起点となるプラットフォームへのトランスファを特定する際に、及び目的地( デステイネーンヲン: DestinaLion) lこお0てトランスファを 受ける際に、更(こ他のデータカ(呼び出される。 2、IOデステイネ−7* 7 (Destination”デステイ不一シヲ ベDestination) ” l!、トランスファユニットの最終的な目的 地を表す。 2.11 トランスファグル−プ(Transfer Grouアベンデイノク スAに記載されるテレスフ1ノブトのオペレー/ヨン″5end″1よ、リザル トとして、同一のオクテ、トスト17ングを(飄りつ力)の目的地(こ(云送す る。 °゛トランスフアグループTransfer Group) ” Iま、トラン スフ1ユニツトとそれに関連しtこデステイ不−ノIIンの集合と、(云送され て一\るオクテ、トストIJングの1つのコピーとである。 トランスファグループは、論理的(こζよ、その要素であるトランスファユニッ トを表している。ブラットフオーム(よ、単一のトランスフ1グループを、摸数 のより小さなトランスファグル−プ及び/又(よ単一のトランスファユニット( こ分解スることができる。 2.12 ウェイ Wa ”ウェイ(Way) ’“は、1つのIJ−シコン又(よエンジンと、その1ノ ージヲン又Cよエンジンと通信する手段と、その通信のための″認証情報(au thentieating information) ’とを特定する。 エンジンから出るトランスファは、トランスファの要求を定義するウェイ、すな わち”ウェイアウト(way out)”を特定する。到来するトランスファは 、最初の転送元に向かう次のトランスファにおいてウェイアウトとして使用する ことができるウェイ、すなわち”ウェイバック(way back) ”を、エ ンジンに供与する。 2.13 ミーンズ(績eans) ” ミーンズ(Means) ”は、例えば有線や無線ネットワークのような、 トランスファに使用される伝送形式を特定する。ミーンズは、1サ一ビス品質( qualityof 5ervice) ”のパラメータや、”公衆電話網(P STN)″の接続のための電話番号のような、伝送のための特定のデータを育す る。 ゛°リザーパブルミーンズ(reservable sθans)”は、リザベ イシ璽ンが適用される伝送形式を特定する。 2.14 リザベイ/gン(Re5ervation″ リザペインゴン(Re servation)″は、トランスファのリザルトとしてプラットフォームに よって確立されたコネクションが、ある一定の時間保持されることをめる要求で ある。リプベイ/ジンは、1つのコネクションが多重のトランスファに使用され ることを許容する際のきっかけとなる。 リザベイン薔ンは、トランスファがリザーバブルミーンズを有するウェイを特定 するときにだけ、意味を持つ。 2.15 ランク Rank トランスファは、′権限(privi leged)″を考慮することができる 。1ランク(Rank)”は権限の表示である。ランクは、整数であり、値が0 の場合は権限力(ないことを意味する。0以外の値の意味は、各リージツンに固 有のものである。 ソージョン間のトランスファにおいて、ランクは、変更又は無視することができ るものと見なすことができる。 1−一止1久二五 このセクシヨンでは、アペンデイ、クスへに記載されていないテレスクリプトク ラスを定義する。 3.1 リザベイン言ン Re5ervationbject InterfaCeO;(・・・)。 パブリノククラスクレスアトリビュート Public In5tance A ttributesプラットフォームによって生成されたりザベインヨン(二つ 0ての識号1子である。 3.2 リザー/ゞブルミーンズ Re5ervable Meansbjec t −−Re5ervable Meansクラス(C1ass) abstract 1nterface (Means) *←°“);二なユ ム仁l又ゲニ上シ姐二り山虱園加坦猿J旦l坦1Resarvationニ ブラットフオームによって生成されたリザベイ/aンにつtlての!5311子 である。 3.3 PSTNミーンズ PSTN Meinsbject −−Re5ervation Means・・・PSTNMeans 2二lバ旦且阻と PSTNMeans: 1nLerface (ReservableMeans) ;(−1+パブリ ツクインスタンスアトリビユート Public In5tance Attr ibutestele honeNumber Telenu+5ber; このトリップのために使用されるテレホンナンバである。 3.4 エグジスティノグコ不りンヨンミーレス゛(Existin Conn ection Means)bject −−Re5ervable Meanso ° 1 Existin Conn ection Meansクラス(C1ass) Existin ConneetionMeansinterface (Re servableMeans) =1′);° 脆−匡 コネルgノを特定するためにプラットフォームが使用することができる識別子で ある。 ムー二已しソ工」二臼ヱと二、2 このセクションにおいて、エンジンとプラットフォームの間のインターフェース は、あたかも両方ともテレスクリプトオブジェクトであるかのように特定される 。(ただし、実際にはそうでない。)この定義は、汎用性を考慮したものである 。すなわち、ここでの定義は、エンジン及びプラットフォームをインプリメント するために使用される特別のプログラミング言1み七は無関係となるように意図 されている。 以下のテレスクリプトのクラス定義は、このイノターフエースにおいて用いられ る。これらの定義については、アペンディノクスA及びこのアペンディノクスの セクション3を参照すること。 匹旦旦カゴ更 短 Re5ervation 4.1 エンジン En+ne bject m−−・・・イーm v7吋6■蚤−几へ℃迎れている秒数である。応答側(レ スボンダエクセブンgン(LransferFailedFailed”)が送 出される。 transferoutFailed+op ( reason: Failure; grouplD: InLeger; failures: Li5t [Intcger] l NiN11)thr o UnknownTransrerGroup、 LlnknownTran sfertlniL;トランスファグループのうちの1以上のトランスファユニ ット(アーギュメント″grouplD″)が失敗している。失敗の原因は、ア ーギュメント″’ reason”に与えられる。失敗したトランスファユニッ トは、オベレー/lIン゛’ LransferOuL″の遂行において与えら れた目的地の元々のリストに対する整数値のインデックスリスト(アーギコメン ビfailure” )によって、特定される。このリストはlで始まり、これ はトランスファユニ、トの最初のユニットを特定する。 リストが与えられない場合、すなわちアーギュメント” failure”の値 がニル(0)の場合、グループ中の全てのトランスファは失敗している。これは 、グループの全てのユニットを列挙するリストに相当する。 レスポンダが、アーギコメンビgrouplD”によって表されるオペレーンラ ン”LransferOuL”を以前に、遂行していなかった場合は、エクセブ /9ン(” tlnkn。 vnTransfcrGroup” )が送出される。又、アーギュメント”f ailure″の項目(アイテム口tea)が、このトランスファグループにつ いての目的地のリストへの適切なインデックスでない場合は、エクセブシ:17  (” UnknovnTransferUnit” )が送出される。 transferouLcom fete:op (grouplD: Int eger: serialNumber: Integer>throws U nknownTransferGruop;特定のトランスファグループ(アー ギュメント”grouplD” )についてのオペレーション’ transf erout″が完了したことを示す。特にこのグループについて、更なるオペレ ーション″transferOutFailed’はありえない。このグループ に関して、トランスファユニットに関連する全てのリソースは、解放される。 レスポンダが、アーギュメント″grouplD”によって表されるオペレージ 璽ン”transferout”以前に、を遂行していなかった場合は、エクセ ブシ請ン(”υnkn。 vnTransferGroup” )が送出される。 4.2 プラットフォーム PlatformObje員 1nterface O;(−)+ constructton initialize: op (engine: Telename);名前が付けられたエンジン(ア ーギュメント” engine″)によって使用されるレスポンダをイニ/ヤラ イズ、すなわち初期化する。 パブリノククラスタレスオベレー7−Iン Public In5tance  Oerations)transferout op (octets: OcteLString:destinations : Li5t [Destination];rank: Integer: way: Way l Ni1 desiredDuraLion: Integer:maximumDura tion: Integer:grouplD: Integer) throws InvalidDestinaLion、1nvalidWaF :アーギニメ/”octets”、” destinations″、”ran k″(こよって定義されたトランスファグループを、1以上の目的地のエンジン に配送することを要求する。 グループはグループID(アーギュメント” grouplD’“)によって特 定される。こ0)オペL/ −7Hノの結果、続いて行われるオペレーンラン″ transferln” 、” transferoutFailed” 、”  transferFailed”のうちの1つにおいて、このグループを構成 する各トランスファユニットが参照される。 う/り(アーギュメント”rank” )は、このトランスファが特権を持つが 否がを特定する。 アーギュメント°By”は、ニル(0)である場合には、トランスファをルーテ ィングするために使用される。 トランスファの望ましい持続時間は、秒数(アーギュメント”desiredD urati。 n”)で特定される。これはトランスファの望ましい最長持続時間である。望ま しい持続時間の値が0′であることは、このトランスファには望ましい持続時間 が設定されていないことを意味する。 トランスファに許容される最長持続時間は、秒数(アーギュメント″wax i mumDuration’”)で特定される。これはトランスファに許可される 最長持続時間である。 オペレーア−Iン″LransferOut’の後、この秒数の間にオペレーシ ョン″transreroutcO+mplete″が起きなかった場合は、こ のグループについてオペレージ1ン”fai 1Transfer”が遂行され た場合と同じ結果となる。最長持続時間の値が”O”であることは、このトラン スファには最長持続時間が設定されていないことを意味する。 目的地のリストが不適切である場合は、エクセプン(ン(”1nvalidDe stinatiOn′)が送出され、又、アーギュメント”may”が供給され ているが、ニル(0)でないアトリビュートを持っていない場合は、エクセブン ヨン(”invalidway” )が送出される。 failTransfer op (grouplD: Integer)throes Ijnknown TransferGroupニゲループID(アーギュメント” groupl D” )によって特定されたトランスファグループについて、継続中の全てのト ランスファユニットが失敗するように要求する。 たたし、トランスファグループの全てのトランスファユニットが失敗するとは限 らない。このオペレーンタンの結果として失敗に終わったトランスファユニ/ト は、1以上のオペレーンタン”transferoutFailed”とそれに 続く”transferComplete”とを生ずる。 前回の” transferOut”においてグループIDが使用されなかった 場合は、エクセプ/:Iン(LlnknovnTransferGroup″) が送出される0IakeReserVatiOn+ op (duration: Integer) Reservationth rows CannotReserve;持続時間(アーギュメント” dur ation” )の新たなりザベイ/gンをリターンする。リザベイ/!Iンは 、次のオペレーンタン°’ LransferOut”のためにリザーバブルミ ーノズにおいてリザベイ/:lンが使用される場合、活性化(active)す る。 リザベイ/−Iンの時間が過ぎた時、リザベイ/gノがもはや有効でなくなり、 そのリザーベインヨンを使用しようとするトランスファは失敗する。 リザベイ/ヨンは、もはや必要とされなくなった時に、オペレーンタン″res etReservat ion’“によって取り消すべきである。プラットフォ ームは、未使用のりザベイノヨンに対して最長存続期間を課することができる。 レスポンダがリザーベイ/コノを供与できない場合は、エクセブンgン″Can noLReserve”が送出される。 resetReservat 1on op (reservation: Re5ervation、 durati on: Integer)throws LlnknovnReservati on、1nvalidReservaLion;現存のりザベイノヨン(アーギ ュメントreservation″)の持続時間の秒数が変更される。このオペ レーンタンが呼び出された時にリザベインヨンが活性である場合は、新しい持続 時間のりザーベイノヨンを伴ってオペレージ冒ン″Lransferout”が 行なわれたときと同じ結果となる。 持続時間を0゛°にセットすると、リザベイ/gンが取り消される。取り消され たりザーベインコノはもはや有効ではなくなる。リザベイ/ヨンが以前に行われ たオペレーンタン″makeReservation’によって得られたもので ない場合は、エクセブンヨン(”unknownReservat ion″) が送出され、又、リザベイシテンがもはや有効でない場合は、エクセブンヨン( ” 1nvalidReservation” )が送出される。 4.3 デステイネー7gン(Destination)bject 又二lΔ旦工はと 1nterface Ol+(・): Con5truction initialize: op ( name: Te1enaie lNi1;address: Te1eadd ress l Nil:data: OctetString l Ni1); レスポンダの固有のアトリビュートを、同じ名前のアーギユメント(アーギュメ ントname″、” address” 、” data” )に設定する。 デスティ不−/ヨンの全てのアトリビュートがニル(0)の場合、そのデスティ 不−7gンは不適切である。 プライベートイノスタンスアトリビx−ト(Private In5tance  Attributes丁eleaddresslNil; テ゛ステイネ−7g)のアドレスである。 虹昆 octeLstring l Nil;トランスファ・ユニットに組み合わされ た、エンジンの特定データである。 テ゛スティネーンフンのネームでアル。 4.4 フェイラー Fai 1urebject interface O=(−); ブライ6−トイ/スタンスアトリビュート Pr1vate In5tance  Attributes(以下、余白。) トランスファの失敗の理由である。この理由は、表C,1に示す整数の列としプ ラットフォームは、これ以外の種類の7エイラー(失敗の理由)も提供する。 (以下、余白。) 5、 ルーティング ROUTING トランスファユニットのオペレーンテン″transferout”は、典型的 には、他のエンジンにおいて、このユニットについてのオペレーンテン”tra nsferln″を生じる。トランスファが転送元のプラットフォームにおいて 失敗した場合、そのトランスファは、転送元のエンジンにおけるオペレーンテン ″transferoutFalled″を伴って失敗する。トランスファユニ 、トは、転送元のプラットフォームからのトランスファが成功したが、目的地の エンジンにおいてオペレーンテン” transferln”に正常に加われな かった場合、そのトランスファは、オペレーンテン″trar1sferFai led”を伴って失敗する。 トランスファグループのオペレーンテン″transrerout″は、その構 成要素であるトランスファユニットのN個のオペレーンテン” transfe rout”と論理的に同等である。ランクの値、望ましい持続時間、許容される 最長持続時間、及びウェイは、これら全てのトランスファについて同一である。 目的地のリストに従って、1以上の目的地のエンジンにおいてオペレーンテン”  transferln”が生じる。 典型的には、プラットフォームは、グループにおいて目的地のリストを検査し、 目的地のエンジンにおけるオペレーンテン“Lransferln”の数が最小 となるようにユニットを配送しようと試みる。これは、同一のエンジンへ向かう 予定のトランスファユニットが、1つのグループとして転送され配送されること を意味する。 ルーティングアルゴリズム(Routin Al oriLh+g)オペレー/ ′1ノ′”transferOut’“の遂行においてウェイが供与された場合 、プラットフォームは、そのウェイをトランスファのルーティングのために使用 する。 ウェイが供与されなかった場合、プラットフォームは目的地のエンジンを定めな ければならない。トランスファユニ、トに組み合わされたネーム及びアドレスに 従って、目的地のエンジンを定めるためのステップは次の通りである。 く開始〉 江 ネームが存在するがアドレスが存在しない場合は、くネームを使用する〉。 ■ アドレスが存在するがネームが存在しない場合は、亘 プロバイダが現在の リージョンである場合は、対応するネームを見いだすか、又はく失敗する〉。 そして、デスティネーシジのネームアトリビュートをネームにセットする。 そして、く開始〉する。 61se そうでない場合には、 くアドレスを使用する〉。 ■ ネームとアドレスが共に存在している場合は、■ ブロバイクが現在のり一 ジョンである場合は、くネームを使用する〉。 else そうでない場合には、 くアドレスを使用する〉。 くネームを使用する〉: ■ オーノリティが現在のり−ジヲンである場合は、■ アイデンティティが存 在している場合は、アイデンティティから目的地のエンジンを判断するか、又は 、く失敗する〉。 else そうでない場合には、 ロケー/ヨンから目的地のエンジノを判断するか、又は、く失敗する〉。 else そうでない場合には、 オーソリティのアウトポストを含むエンジンにルーティングするか、又は、く失 敗する〉。 くアドレスを使用する〉: ■ プロバイダが知られている場合は、プロバイダのアウトポストを含むエンジ ンにルーティングする。 鎗 そうでない場合には、 for ルーティングの情報に含まれる各プロバイダについて、■ それが現在 のり−ジョンである場合は、それをルーティングの情報から除去する。 else そうでない場合には、 ■ プロバイダが知られている場合は、プロバイダのアウトポストを含むエンジ ンにく失敗する〉: ■ プロバイダが現在のリージョンである場合は、トランスファは失敗する。 else そうでない場合には、 旦 元々の二/ジ/がある場合は、 それにルーティングする。 l並 そうでない場合には、 トランスファは失敗する。 6.C++におけるインターフェース このセフ/テンでは、エンジンとプラットフォームのインターフェースについて のC++インプリメンテ−/IIンを記述する。このインターフェースは、セク /=Iン4のテレスクリプト仕様に由来する。 ここに提示されるイノターフエースは、必然的に、現在のテレスクリプトエンジ ンのインプリメンテ−/ヨンのいろいろな様相を反映している。特に、C++A PIは、一般的なインターフェースには現れないような、エンジン上のオペレー ションを含んでいる。 インターフェースの記\ エンジンオブジェクトは、C++のクラス”CI”によって表される。エンジン オブジェクト上のオペレーションは、CIのメンバの機能として供与される。 プラットフォームオブジェクトは、CIのサブクラスによって表される。プラッ トフォームのプロバイダは、CIのサブクラスであり、プラットフォームのオペ レーションを表すCIの仮想的な機能をインプリメントする。 エンジン及びプラットフォーム上のオペレーションに対するパラメータとして表 れるテレスクリプトオブジェクトは、テレスクリプトオブジェクトの表現を実現 するいくつかのC++のクラスによって、表現される。例えば、” TslnL eger”がAPIに表れる時にはいつでも、テレスクリプト’ Intege r”を表すクラス”Tslnjeger“°が存在する。このような、テレスク リプトのインターフェースに関するオブジェクトの説明は、このアベンディノク スの次のセクションにおいてなされる。 このイノターフエースのテレスクリプト表現において特定されるエクセプンジン は、エンジン及びプラットフォーム上での全てのオペレーションからリターンさ れる列挙型として、AP目こおいて処理される。 エンジンとプラットフォームの間に交わされたデータの要素についての記録は、 オペレーンヨンの呼び出し側によって、所有される。この記録は、オペレーショ ンが完了したときに再び請求されることがある。これに対する唯一のエクセブシ ョンは、オペレーション゛’ transferouL”である。エンジンは、 対応するオペレーション”けansferOutCo+1plete”の遂行が 成されるまで、トランスファアウトの要素を再び請求することはない。 2五2」1臣神と エンジンは、横取り不可スケジューラを伴って分離したスレ・ノドとして実行す る多重の協調型タスクとして、インプリメントされる。クラス”CI″のインス タンスは、エンジンにおいて、1つのスレ、ドとして走る。クラス゛’CI”の サブクラスは、関数”5aint”を供与する。この関数は、一度呼び出された ら、プラットフォーム上でオペレーションがサポートされなくなった場合にだけ リターンする。 継続中のオペレーンヨン″transferln”がない場合に、関数”mai nO″は、エンジンスケジューラに処理を譲ることが期待される。関数” ma in(どは、関数”waitO″を呼び出すことによってこれを行なう。関数“ 豐aiLO”は、CIが譲ろうとしているミリ秒単位の時間をアーギュメントと して受け取る。典型的には、エンジンは、少なくともこの時間が経過するまでは 、CIのタスクを再スケジュールすることはない。関数” vaiLO”へのア ーギユメント°゛0″は、CIが、処理を譲ってはいるが、エンジンスケジュー ラによってできるだけ早く再スケジュールされることを望んでいることを意味し ている。 開数″wafto”へのアーギュメント″−1”は、CIが、無期限に処理を中 断することを望んでいるということを意味している。このとき、CIが再スケジ ュールされることを望むならば、CIはエンジン上に関数″5atisfyO” を呼び出さなければならない。関数” 5atisryO”は、エンジンがスレ ッドをスケジュールすると直ちに、中断していたスレッドの実行を再開させる。 この後者の例は、新たな通信の要求がなかったときに、非同期的なイベントとし て供与された(lインプリメツチー7:1〕において適切であろう。 また、オペレーティングシステムによっては、CIインプリメンテーンヨンは、 エンジンスケジューラに処理を譲り、ファイルディスクリブタが4備状態になっ た時に再スケジュールされることを望むかもしれない。オペレーション” wa iLfd”は、待機するファイルディスクリブタを特定する。また、オペレーン ッン″wa已fd”は、タイムアウトとともに多重ファイルディスクリブタにつ いてセレクトするために、関数” waitO”と共に使用されることができる 。 オペレーション”transrerout”の遂行は、呼び出したテレスクリプ トプロセスのスレッドにおいて実行されるものであり、CIタスクのスレッドに おいて行なわれるのではない。 エンジン及びプラットフォーム上のオベレーノーlンは、必要ならばその後にス ケジュールされる作業の待ち行列を作り、比較的速やかに実行されねばならない 。 エンジン及びプラットフォームは、長時間にわたって中断するべきではない。 極端な場合には、オベレーノーJン”transferout”のポリニー“が ・CIにょ1て供与されたバ/ファリングを上回ることがある。このようなとき 、そのCIは、関数“5topO”を呼び出すことができる。この関数” 5t op□”は、オペレージ式7″transferout”への全ての更なる呼び 出しを妨げる効果を持つ。そして、次に、関数”5tartO”を呼び出すこと により、可能ならば、中断の結果として停止させられていたエンジンのタスクを 再スケジュールして、出力を再開する。 CIクラス CI C1ass 新しいCIオブジェクトを構成する。” na+me”は、このCIを使用する エンジンのテレネームである。 virtual −C1O このCIをツヤノトグウンし破壊する。 CIのメインループである。これは、構成後、しばらくしてから呼び出される。 この関数が実行されている間、CIは、例えば” waitO″を伴って、エン ジンに処理を譲るべきである。 エンノノオ6レー/ヨン(En ine Oerations)TsStaLu s transferln (TsOeLets◆bagofBi Ls。 TsDestinationList IdesLLisL。 unsigned int rank。 TsWay *wayBack。 int ti+aeAdjust): 1以上のトランスファユニットをエンジンに転送する。 transferFailed: TsStatus transferFailed (TsFailue fa ilure。 TsOcLets *bagOfBiLs。 TsDestinaLionList IdesLLisL。 unsigned ink rank。 TsWay *wayBack、 inL timeAdjust):1以上の 失敗したトランスファユニットをエンジンにトランスファする。 transferoutFailed TsSLaLus LransferOutFailed (TsFailur e failure。 unsigned inL groupld。 TslnLegerList *1ist);このエンツノからのトランスファ であるオペレーア−Iン゛’ transferouL″の遂行に失敗した1以 上のトランスファユニットを特定する。 transferoutco++ fete:TsStatus transf erOutComplete (unsigned int groupld。 unsigned int LransferSN);トランスファグループ( アーギュメント″groupld″)のトランスファが完了したことを表す。こ のグループ内の全てのトランスファユニットに関連する記録は、再び請求される ことができる。 プラノトフォームオベレー7gン PIaLform Oerationstr ansferout+ virtual TsStatus transferout (TsOete ts *bagOfBits。 TsDestinationList IdesLLisL。 Unsignad int rank。 TsWayネvayout。 unsigned int desiredDuraLion。 unsigned int +*aximumDuration。 unsigned int groupld) x O:このトランスファグル ープ内のトランスファユニットをそれぞれの目的地(アーギュメント” des tList”)に転送する。 virtual TsStatus failTransfer (unsig ned int gruopld) IIO:このトランスファグループ(アー ギュメント’ grouplD” )に関する全てのトランスファユニットを失 敗させる。 makeReservation virtual TsStatus 1IakeResevaLion (un signed int duraLion。 TsReservation *reservation) ! 0;指定され た持続時間(アーギュメント″durat ion″)を伴って、新しいリザベ イ/Mン(アーギュメント’ reservation” )を要求する。 resetReservaL 1on virLual TsStatus resetReservation (T sReservation reservation。 unsigned int duration> llO;17ザベイ/i+7 の持続時間を新しい持続時間(アーギュメント“duraLion”)にリセッ トする。持続時間”o”は、リザベインコノを取り消す効果を持つ。 Ta5k Oerations ′″ll5ec’“ ミリ妙の間、現在のエンジンのスレッドを明は渡す。この 関数は、このスレッドが再スケジュールされた時にリターンされる。アーギュメ ント″m5ec”が”0″の場合は、エンジンのスケツユ−リングの方針が許容 する限り、できるだけ早くスレ、ドを再スケジュールする。アーギュメント”  rasec’“が”−1”の場合は、下記の5atisfyO”が呼び出される か、又は” waitfd(どに指定されたファイルディスクリブタがlit! 状態となるまで、” wattO”はリターンされない。 U旦J〉・ void 5atisfyO; CIスレッドが” vaitO″によって中断されている場合、CIスレッドを 再スケジュールする。 続いて行われるコール”waitO″が、” ll1ask”によって指定され るように読み込み又は書き込みについてファイルディスクリブタ゛’ fd”が 準備状態になった場合に、リターンされるように指定する。” mask’は、 値”POLLIN”又は値”POLLOUT”によって構成されたビットマスク である。ここで、値”POLLIN”及び値″POLLOUT”は、それぞれ、 読み込み可能及び書き込み可能を示すファイルディスクリブタを選択する。”  mask’”が″0パであることは、このファイルディスクリブタがオペレーン ヨン” waitO”にもはや影響すべきでないことを意味する。 前回のコール″waitO″が実行されている間、ファイルディスクリブタ″f d″が!1!1段階になっているかの判断に使用されるビットマスクをリターン する。ビット”POLLIN”及びPOLLOUT”が”waitfdO”にお いて指定されており、それぞれ、ファイルディスクリブタが読み込み及び書き込 みについてrs備状態となっていれば、このリザルトは、ビット″POLLIN ″及び”POLLOUT″のセットを持っビットマスクである。 射コし voidstopO; エンジンに、このCIについての全てのオペレーシッン″LransferOu t″を抑制させる。テレスクリプトのエージエツトがオペレーン!7″gonや ”5end”の実行を開始するような新たなトランスファは、このCIに対して 要求されなくなる。 CIは、池のトランスファを待ち行列とすることによってデータを失った場合に だけ、このオペシー/コンを呼び出すべきである。 void 5tartO: モハヤオペレーションを抑制するべきではないことをエンジンに通報する。 7、 テレスクリプトのインターフェースオブジェクト池のテレスクリプトエン ジノや、テレスクリプトに基ついていない他の通信システムのような外部/ステ ムとの通信を可能にするため、テレスクリプトエンノンは、テレスクリプトエン ジン自身に基づいたオペレーティングンステム又はプラットフォームによって供 給される通信サービスに基づいていなければならない。 これらのサービスにアクセスするために、テレスクリプトエンジンは、テレスク リプトの抽象化に情報が入ったり出たりすることを可能とするためのメカニズム をサポートしていなければならない。特に、このメカニズムは、テレスクリプト オブジェクトと、これらのオブジェクトに対応し基盤となるコミユニケージ1ン サーヒスにとって好適な表現との間の変換を可能とするものでな(ではならない 。 テレスクリプトエンジンインターフェースクラスは、この要求を充たすような、 C++クラスのセントについての抽象的(アブストラクト: absLruct )な定義を提供する。C++クラスは、全てを定義しているのではな(、テレス クリプトエンジノの機能上での最小限の要求という観点に基づいているので、こ こで提供される定義はアブストラクトである。基盤となる通信サービスとの関係 や内部的なメカニズムについては、完全な自由がクラスの作成者に委ねられてい る。 7.1 イノターフエースの 、・ テレスクリプトエンジンインターフェースクラスのインプリメンテーン目ンは、 クラスインターフェースを介するデータアイテムの使用に関する規約に従わねば ならない。これらの規約は、オーナー/ノブのルールの観点で表現される。ここ でオーナーシップは、与えられたデータを変更する権利及びそれを破壊する責任 として定義される。 池に指定がなければ、テレスクリプトエンジンインターフェースクラスのインプ リメンテーンヨンは、次のインターフェースの規約に従わねばならない。 ・ リファレンス又はポインタアーギュメントを受け取る全ての関数について、 リファレンス又はポインタが示すデータのオーナー/ツブは、呼び出した側から 呼び出されたオブジェクトに移動する。そのため、そのオブジェクトは、適切な 時にデータを破壊する責任及びそのデータを変更する権利を持つ。 ・ リファレンス又はポインタの値を返す全ての関数について、リファレンス又 はポインタが示すデータのオーナー/ツブは、呼び出されたオブジェクトによっ て保持される。しがし、オブジェクトは、オブジェクトを変更することができる 関数への次の呼び出しがなされるまでは、リファレンス又はポインタが示すデー タが変更されないことを保証する。 ・ オブジェクトは、破壊された時、オーナー/ノブを有する全てのデータを破 壊する。 7、2 TsCharaeter ” TsCharacLer”型の定義は、この開示のアペンディノクスAにお いて定義されるような、テレスクリプトのキャラクタクラスについて、c++で の表現を供与する。 ” TsCharacIer”型のインブソメノテーンヨンは、全てのASCI Iキャラクタを含むことができることが要求される。ただし、これは最小限の要 求であり、”TsCharacter“型のインプリメンテ−73)は、全ての ユニコードキャラクタを含むことができることが好ましい。 7.3 TsDestinaLion クラス″TsDestinクラion”は、このアペンディノクスのセクシヨン 4に定義されるような、テレスクリプトのデスティ不−7iIンクラスのC++ での表現を供与する0クラス” TsDestination’“のインプリメ ンテ−7gンは、少なくとも次の機能を供与する。 class TsDestinationpubl ie : TsDestination (TsTeleaddress * Lelea ddress。 TsTelenaae*telena+*e。 const TsTeleaddress * getTeleaddress  Oconst;const TsTelename * getTelena me Oconst:consL TsOetets * getData O const;)。 構成(Construction) TsDestination: TsDestination (TsTeleaddress * telea ddress。 TsTelename*telename。 TsOcLets * data) 新しいオブジェクト” TsDestination”を構成する。 teleaddress 新しいオブジェクト”TsDestination”のテレアドレスの値を形成 するためのオブジェクトTsTeleaddress”へのポインタ。又は、デ スティネー/コノオブジェクトがテレアドレスの値を持たない場合は、NULL ポインタ。 telenavAe 新しいオブジェクト“TsTelena@e″のテレネームの値を形成するため のオブジェクト″TsDestination”へのポインタ。又は、デスティ ネーションオブジェクトがテレネームの値を持たない場合は、NULLポインタ 。 組鳳 新しいオブジェクト”TsDestination”のデスティネー7リンオブ ジェクトの値を形成するためのオブジェクト” TsOctets”へのポイン タ。又は、デステイネー7−1ノオブジェクトがデスティ不一ンッンデータの値 を持たない場合は、NULLポインタ。 −TsDestination□ オブジェクト’ TsDestination”を破壊する。オブジェクト’  TsDesLination”と、そのオブジェクトがオーナー7、ブの責任を 持つ全てのデータとが破壊される。 データアクセス(Data Access)etTeleaddress const TsTeleaddress * getTeleaddress  Oeonstオブジェクト″TsDestination″のテレアドレスの 値へのポインタをリターンする口又は、デスティ不一ンヨンオブジェクトがテレ アドレスの値を持たない場合は、NLILLポインタをリターンする。 討月1■但μL const TsTelename 傘getTelename Oeonst オブジェクト” TsDesLination”のテレネームの値へのポインタ をリターンする。 又は、デスティネーションオブジェクトがテレネームの値を持たない場合は、N ULLボイノタをリターンする。 七月迫り− const TsOctets * getDaLa □ constオブジェ クト”TsDestination”のデスティネーションデータの値へのポイ ンタをリターンする。又は、デスティネーションオブジェクトがデスティネーシ ョンデータの値を持たない場合は、NULLボインクをリターンする。 7.4 TsDestinaLionList ’クラス″TsDestina LionList”は、クラス″destination”のオブジェクトを収 容するように定められた、この開示のアペンディノクスAにおいて定義されたテ レスクリプトクラス″L i s t ”のC++での表現を供与する。クラス ″TsDestinationList″のインプリメンテ−/gンは、少なく とも次の機能を供与しなければならない。 class TsDestinationLisipubl ic : TsDestinationList OニーTsDestinationLi sL O:const TsDestination◆nextDestina tion O;void reset O; 5ize−t destinationcount Oconst;void  appendDestination (TsDestination 傘de stination);1゜ 構成(Construction) TsDestinationList TsDesL 1nat io口Li5tO空のオブジェクト’ TsDest inationList”を奢薄成する。 M 棄(Destruction −TsDestination−List−TsDestinationLis L (3オブジェクト’ TsDestinationList″を破壊する・ オブジェクト”TsDest 1nat 1onList’と、そのオブジェク トがオーナーンノブの責任を持つ全てのデータが破壊される。 データアクセス(Data Access)a endDestination : void appendDestination (TsDestinatio n 傘destination)オブジェクト’ TsDestination ″の形の1つのデスティ不−7冒ンを、オブジェクト″TsDestinati onList”内に含まれるデスティ不一シコンのリストに付加する。 destination オブジェクト″TsDestination”内のデスティ不一シコンのリスト に付加されるデスティ不一シコンを伝えるオブジェクト”TsDestinat ion”へのポインタ。 nextDestination: const TsDestinationネnextDestination  Oオブジェクト” TsDestination”の形のデスティ不一/1ンへ のポインタをリターンするか、又はNULLポインタをリターンする◎関数”n extestinationO”は、多重の呼び出しを通じて、オブジェクト”  TsDestinationList″に含まれる1組のデスティネーション を、それらが収容されている順序でリターンする。最後のデスティネーションが リターンされた後、関数”reset”が呼び出されるまでは、関数″next estinationO″はNULLポインタをリターンする。 関数″nexDestinattonO”が次に呼び出されたら、オブジェクト ″TsDestinationList”内に含まれる最初のデスティ不一ンヨ ンをリターンするようにさせる。 destinalioncOunL: 5ize−t destinationcount Oconstオフシェクト ″TsDestinationList”内に現在含まれているデスティネーシ ョンの数をリターンする。 7 、5 TsExistin ConnectionMeansクラス” T sExistingConnectionMeans”は、このアベンディノク スのセクション3において定義されるような、テレスクリプトクラス”TsEx istingConnectionMeins”のC++での表現を供与する。 クラス”TsExistingConnectionMeans″のイノプリメ ンテ−/ランは、少なくても次の機能を供与しなければならない。 class TsExistingConnectionMeans : pu blic TsReservableMeanspubl ic TsExistingConneetionMeans(const TsRe servation & reservation。 TsOetets幸conneetionld)ニーTsExistingCo nnecLionMeansO:C0n5t TsOctets * getc onnectionld Oconst:)。 形成(Construction) TsExistin −ConnectionMeansTsExisting ConnectionMeans(const TsReservation  & reservation。 TsOctets*connectionld)新しいオブジェクトl′TsE xistingConnectionMeansl+を構成する0reserv ation 新しいオブジェクト”TsExistingConnectionMeans” のスーツく一りラス″TsReservat+leMea口S”の構成要素のリ ザベイ73ノの値を形成するためのオブジェクト″TsReservation ″′へのリファレンスである。 新しいオブジェクビTsExistingConnectionMeans”の コネクンヨンの識別子の値を形成するためのオブジェクビTsOctets”へ のポインタである。 破 Destruction ”−TsExistin −ConnectionMeans−TsExisL ingConneeLionMeans Oオブジェクト”TsExist i ngconnectionMeans”を破壊するロオブジェクト” TsEX iSLingCOnneeLiOnMeanS”と、そのオブジェクトがオーナ ーシップの責任を持つ全てのデータが破壊される。 データアクセス Data Accessetconnectionld COnSL TsOcteLs * getconnectionld Oco nstオブジェクト+TsExistingConnec!ionMeans− 1こ含まれるコ不りンヨンの織方1[子の値へのポインタがリター7される。 7 、6 Tslnte er ″TslnL+4erM型の定義は、テレスクリプトのクラス゛’ Integ er″について、C++での表現を与える。 ”Tslnteger”型の処理では、−2147483648〜+21474 83647の範囲にある値を保持することができなけれ(fならなLlつ7、  7 TslnteerList クラス″TsintegクラList”は、この開示のアペンデイノクスAに定 義された、クラス”integer”のオブジェクトを収容するように定められ たテレスクリプトのクラス″Li5t”について、C++での表現を供与する。 クラス’ Tslnteger”のインプリメンテーシヨンは、少なくとも次の 機能を供与しなければならない。 class TslntegerListpublic: TslntegerList O: ”−TslntegerList O:constTslnteger*nex tlntegerO;void resetO: size−tintegercounL Oconst;void appen dlnteger(Tslnteger Integer);)。 構成(Construction) TSlnteerLISt TslntegerList O 新しいオブジェクビTsl口tegerLisL″を構成する。 この構成の後、関数” appendlntegerO”が呼び出されるまで、 新しく生成されたインチジャリストは空となる。 破 Destruction オブジェクト” TslntegerList’を破壊する。 オブジェクト” TslntegerList”と、そのオブジェクトがオーナ ー71ブの責任を持つ全てのデータとが破壊される。 aendlntee「。 void appendlnteger (Tslnteger intege r>オブジェクト°’ TslntegerList″の形の1つのインチジャ を、オブジェクト”丁s l nteHerList”に含まれたイ/テツヤの リストに付加する。 胆W匹 オブジェクト’ TslntegerLisピ゛に含まれるインチジャリストに 付加されるインチジャの値である。 匣μ山匹邦ニー eonst Tslnteger * nextlnteger0オブノエクト ” Tslnteger”の形式において、インチジャへのポインタをリターン するか、又は、NtlLLポインタをリターンする。関数″nextlnteg erO”は、繰り返し呼び出されて、オブジェクトTslntegerList ”に含まれるインチジャのセットを、それらが収容されている順にリターンする 。最後のインチジャがリターンされた後、関数” reset”が呼び出される までは、関数″nextlntegerO”はNULLポインタをリターンする 。 ■亙部工 void resetO 関数” nextlntegerO”が次に呼び出されたら、オブジェクト″T slnLegerList°゛に含まれる最初のインチジャをリターンするよう にする。 用旦塁バ(9)机■ 5izeJ integercount OconstオブジェクピTslnt egerいst″に現在歯まれているインチジャの数をリターンする。 7、8 7sMeans クラス″TsMeans″は、この開示のアペンディlクスAに定義されたテレ スクリプトクラス″Means”について、C++での表現を供与する。クラス ’ TsMeans″のインプリメンテ−シランは、少なくとも次の機能を供与 しなければならない。 class TsMeans ρublie: typedef enum TsMeansType−PSTN ” o。 TsMeansType−ExistingConnection z 11  7ype; virtual −TsMeans Os (1;Type cype Oco nst: protected+ TsMeans (Typetype):1゜ 橋 Fy、(Construction)TsMeans TsMeans (Type meansType)新しいオブジェクト”Ts Means”を構成する。 虹担狂匹 新しいオブジェクト°’ TsMeans”のミー7ズタイプの(直を指定する 771jである。 FRDestruction オブジェクト”TsDestination”を破壊する。オブジェクト″Ts Destination″と・そのオブジェクトがオーナー71ブの責任を持つ 全てのデータとが破壊される。 データアクセス Data Access)加工 Type type Oconst オブジェクト”TsMeans″のミー7ズタイプの値をリターンする。 7 、9 丁sOb S ecifier” TsObjSpeeifier″ は、各々が1つのプロトコルを表しており、このプロトコルを他のプロトコルか ら区別するオブジェクトのクラスについて、C++での表現を与える。例えば、 ’ TsObjSpecifier″によって表されるクラスの1つのメンバは 、セキュリティを与えるための特定の1つの方法を表すように使用することがで きる。クラス″TsObjSpecjfier″のインプリメンテーンシンは、 少なくとも、次の機能を供与しなければならない。 class TsObjSpecifier+)Llblle: TsObjSpecifier (Tslnleger objld。 TsOetets * namingAuthority)+−TsObjSp ecifierO; Tslnteger getobjld Oconst;const TsOc  Lets * getNamingAuthority Oconst;身 え」【基皿肚工と二と TSObSeClfler TsObjSpecifier (Tslnteger objld、 TsO ctets * na+aingAuthority)新しいオブジェクト°’  TsObjSpecifier”を構成する0仙上I 新しいオブジェクビTsObjSpecifier”のオフ゛ジエクト識S11 子の値を汁ニ成するための整数値。 na+min AuLhorit 新しいオブジェクビTsObjSpecifier”の不−ミンク゛オー゛ノ1 ノテイを形成する′“TsOctets”オブジェクトへのポインタ。又(ま、 新し−)オブジェクト″TsObjSpeCirier”が不−ミングオー゛ノ 1ノテイの値を含まな(為場合(±、NULLポインタ。 破 棄(Destruction) オブジェクト” TsObjSpecifier”を破壊する。オブジェクト”  TsObjSpecifier”と、そのオブジェクトがオーナーンノブの責 任を持つ全てのデータとが破壊される。 データアクセス(Data Access)討旦」山L Tslnteger getobjld Oeonstオブジェクト” TsO bjSpeeifier”に含まれるオブジェクト識別子の値をリターンする。 etNamin −AuLhorit :const TsOctets *  getNa++ingAuthority □ constオブジェクト“Ts ObjSpecif ier”に含まれる不−ミングオーソリティの値を伝エル オフシェクh” TsOctets”へのポインタをリターンする。又は、オブ ジェクビTsObjSpecif ier”がネーミングオーソリティの値を含 まない場合は、NULLポインタをリターンする。 7 、 10 TsOetet ″TsOctet” 型は、この開示のアペンデイノクスAに定義されたテレス クリプトクラス”Oier”について、C++での表現を供与する。 TsOctets″型は、C++の” unsigned char (符号無 しキャラクタ)l゛として定義される。 7、 11 TsOctets クラス″TsOクラets’は、この開示のアペンディノクスAに定義されたテ レスクリプトクラス” octets”について、C++での表現を与えるa  ” TsOctets″のイノブリメツチー7:Iンは、少なくとも、次の機能 を与えなければならない。 class TsOctets publ iC enum CopyOwnership (makeCopy、owncopy 、borrowcopyl ;TsOcteLs (size−t 5ize) ;TsOcrets (size、、35ize、 const TsOcte t * data。 CopyOwnership ownership = makecopy)  ;”−TsOctets O:const TsOctet * nextSe g (int & segSize):void reset O: 5iZe−L 5ize □ const;void appendSeg ( size−t 5ize、const TsOctet * data);)。 C0n5tru員ion オブジェクト” TsOctet”の1つの配列から、オブジェクビTsOet ets”を構成する。 新しいオブジェクト”TsOcteLs”に含まれるオクテツトの数。 組昆 新しいオブジェクト”TsOctets”に含まれるべきオクテ・Iトであるオ ブジェクト″TsOcteL’“の配列へのポインタ。この配列中の要素の数は 、” 5ize″の値に等しいか又はこれよりも大きくなければならない。 庄:”5ize”が0である場合、呼び出し側によって長さが0の配列が供与さ れねばならない。 竺脛二山厘 オクテツトの配列を新しいオブジェクト″TsOetets”に組み込む方法を 特定する列挙。可能な値は次の通りである。 ”IIakecopy” : オクテツト配列中のデータは、独立した物理的な コピーの構成によって、新しいオブジェクト”TsOeLets”に組み込まれ なければならない。この構成に続いて、呼び出し側は、元々のオクテ・/ト配列 の完全なオーナー/ノブを保持している。 特定されたオーナー/ノブのアーギュメントがmakecopy”である場合、 呼び出し側によって供与されたオクテツト配列は、静的に、動的に又は自動的に 割り当てられることができる。 ovncopy″ : オクテツト配列中のデータは、インプリメンテ−7ジン に基づいて、供与されたオクテツト配列自身の組み込みを介して、新しいオブジ ェクト”TsOctets”に直接に組み込むことができる。このような組み込 みに続いて、呼び出し側は、供与されたオクテツト配列のオーナー/ノブを、新 しいオブジェクト” TsOcteLs”に引き渡す。 特定されたオーナー/ノブのアーギユメントが”owncopy”である場合、 呼び出し側によって供与されたオクテツト配列は、動的に割り当てられなければ ならない。 ” borrovcopy” : オクテツト配列中のデータは、インプリメン テーションに基づいて、供与されたオクテツト配列自身の組み込みを介して、新 しいオブジェクト″TsOctets”に直接に組み込むことができる。”オブ ジェクト”TsOctets”が構成された後、破壊されるまでの間、呼び出し 側は、供与されたオクテツト配列に対するオーナー/ノブを、新しいオブジェク ト” TsOctets’”に貸し与える。この期間の間、呼び出し側もオブジ ェクト”TsOctets” も、オクテツトの配列を変更したり破壊したりし ない。オブジェクト″TsOctets”が開始されたら、オクテツト配列の全 オーナーシップは再び呼び出し側に戻される。 特定されたオーナー/ノブのアーギュメントが”borrovcopy″である 場合・コーラによって供与されたオクテツト配列は、静的に、動的にまたは自動 的に割り当てることができる。 後述する関数″appendsegO”を用いてデータを付加するための準備と して、空のオブジェクト″TsOctets”を構成する。 破 棄(Destruction) オブジェクト″TsOctets’を破壊する。” TsOctets”オブジ ェクトとNそのオブジェクトがオーナーン・ノブの責任を持つ全てのデータとが 破壊される。 データアクセス(Data Access吐匹吋銃L void appendSeg (size−L 5ize。 TsOctetネdata。 CopyOvnership ownership)オクテツトの配列、すなわ ちオブジェクト″TsOcteL”の配列を、オブジェクト″TsQctets ”内にすでに存在しているオクテ、ノドのセットに付加する。 n : ” TsOcteLs”以外のコンストラクタを用いて、すなわち上述 のコンストラクタ関12(サイズ゛’ eventualsize”コンストラ クタ)のアーギユメント” eventualsize”を用いて生成されたオ ブジェクト“丁SO員ets”上に、この関数を呼び出したときの影響は、イン プリメンテーションによって定義される。さらに、コン・ストラクタのパラメー タ” evenLualsize”に宣言された以上のデータを付加したときの 影響も、インプリメンテ−711ンによって定義されるオブジェクト″TsOe Lets”に付加されるオクテツトの数。 迫組 オブジェクト“’ TsOcteLS”に付加されるオクテツト、すなわちオブ ジェクト”7sOctet”の配列へのポインタ。配列中の要素の数は、” 5 ize”の値に等しく1かこれより大きくなければならない。 注° ”s ize”がOである場合は、長さが0の配列が呼び出し側から供与 されねばならない。 匣yコ五組 オクテツト配列をオブジェクトTSOetetS”に組み込むメン・ノドを特定 する列挙。可能な値及びその対応する意味は、関数” TsOetets(si ze−t 5ize、 TsOetet傘data、 CopyOvnersh ip ovnersip)″について説明したものと同一である。 坦■錬L const TsOctet * nextseL (size−t & se gSize)オクテツト配列及びサイズの値、又はNULLポインタをリターン する。関数” nextseg”は、繰り返し呼び出されて、オブジェクトTs Octets”に含まれるオクテツト配列を、出てきた順に、まとめて伝送する オクテツト配列セグメントの集合をリターンする。最後のセグメントのリターン の後は、関数″reset’が呼び出されるまで、関数”nextseg″は、 NULLポインタをリターンし、” segSize四パラメータの値は変更せ ずに保持する。 注:リター7されるセグメントの全数、及び各々の個別のセグメントのサイズは インプリメンテーラ3ンに依存する。 と11担 返されたセグメントの大きさに伴って更新される符号無し整数の値へのリファレ ンス。 島1軒工 vold resetO 関数″new tseg”の次の呼び出しでは、オブジェクト″TsOetet s″に含まれるオクテツトの最初のセグメントをリターンするようにさせる。 先U囚よ 5ize−t 5ize □ constオフジェク)” TsOctets” に現在歯まれるオクテ・ノドの全数をリターンする。 7 、l 2 Tsl’STNMeansクラス″TsPSTNMクラns”は 、このアベンディノクスのセク7=Iン3に定義されたテレスクリプトクラス”  PSTNMeans”について、C++での表現を供与する。クラス” Ts PSTNMeans″のイアプリメンテ−/1ンは、少な(とも次の機能を育し ていなければならない。 class TsPSTNMeans : public TsReserva bleMeansfpubl ic TsPSTNMeans(const TsReservation & re servation。 TsTelenumber * telenumber);”’TsPSTNM eans O: TsTelenu++ber * getTelenumber □ cons t;): そのオブジェクトがオーナーンノプの責任を持つ全てのデータと力f破壊される 。 Construction TsPSTNMeans: TsPSTNMeans (const TsReservaton & re servation。 TsTelenu+aber * telenu++ber)新しいオブジェク ト″TsPSTNMeans”を構成する。 reservation 新しいオブジェクト” TsPSTNMeans″のスーパークラス’ TsR eservableMeans″のコンポーネントのリザベインヨン値を形成す るためのオブジェクトTsReservation”へのリファレンス。 lelcnumber 新しいオブジェクト″TsPSTNMeans”のテレナンバの値を形成するた めのオブジェクト″TsTelenumber”へのポインタ0破棄(Dest ruction) 構成(Construction) eMeans″と、そのオブジェクトがオーナーシップの責任を持つ全てのデー タとを破壊する。 データアクセス Data AccessetReservaLion: const TsReservation & getReservation  Oconstオフノエクド’ TsReservableMeans”内に含 まれるリザーベイシ冒ンの値へのりファレレスをリターンする。 7 、 14 TsReservationクラス”TsReservaLio n”は、このアベンデイノクスのセフシラン3に定義されるテレスクリプトクラ ス″Re5ervation″について、C++での表現を与える。クラス”  TsReservaLion”のイノプリメンテーノヨンは、少なくとも次の機 能を与えなければならない。 class TsReservationpubl ie 丁5Reservation (Tslnteger id = 01ニーTs ReservaLion O: 丁slntegeridOconst;)。 Con5truc(ion TsReservation: TsReservaLion (Tslnteger id = 0)新しいオ ブジェクト″TsReservation″を構成する0包 新しいオブジェクト” TsReservation”のりザーベイン璽ン識別 子の値を形成するための” Tslnteger’ 。 破 Des t rue t ion オブジェクト″TsReservat ion”を破壊するOオブジェクト”T sReservat ion”と、このオブジェクトがオーナーシップの責任を 持つ全てのデータとが破壊される。 データアクセス Data Access厨− Tslnteger id Oeonstオブジェクト”TsReservat ion“′のリザーバイン1ノの識別子の値をリターンする。 7 、 15 TsStrin クラス”丁sSけing”は、この開示のアベンディノクスAに定義されるテレ スクリプトクラス″String”について、C++での表現を与える。クラス ”TsString”のインプリメンテーンンンは、少なくとも次の機能を与え なければならない。 注:これは、ASCIIキャラクタセット以外もサポートするように拡張される 必要がある。 class TsString public: TsString (const TsCharacter傘string ) ニーTsString O; const TsCharacter * getstring Oconst ;5ize−t 5ize □ const;)。 + (Construction nとjユし TsString (const TsCharacter 傘string) 新しいオブジェクトTsString”を構成する。 ■工朋且 新しいオブジェクト”TsString″+こ含まれるキャラクタのスト「ノン グを伝え、NULLキャラクタによって終了される、配Jll″TsChara cter″へのポインタ。 破棄Destruction) オブジェクト″TSString”を破壊する。オブジェクト″TsStrin g″と、そのオブジェクトがオー址シ・ノブの責任を持つ全てのデータと力f破 壊される。 データアクセス(Data Access)賎μ匹已」L const TsCharacLer * BetString 0const オフ゛ジ工クピTsString”に含まれるキャラクタストIJングへのポイ ンタをIJターフする。 5izeJ 5ize □ constオブジェクビTsString’に現在 歯まれているキャラクタの数をリターンする。 7 、l 6 TsTeleaddressクラス”TsTeleaddres s″は、この開示のアペンデイノクスAに定義されるテレスクリプトクラス”T sTeleaddress”について、C++での表現を供与する。クラス″T sTeleaddress″のインプリメンテ−/−Iンは、少なくとも次の機 能を供与しclass TsTeleaddresspublic: TsTeleaddress (TsOcters * provider、T sString * 1ocation)ニーTsTeleaddressO: const TsOctets * getProvider Oeonst: const TsSLring * getLoeation Oconst: const TsOctets * nextRoutingAdvice O :void resetO: int routingAdviceCount Oconst;void a ppendRoutingAdvice (TsOctets * advic e):)。 Con5truction 75T61eaddress: 新しいオブジェクト″TsTeleaddress”を構成する。 この構成の後、新しく生成されたテレアドレスオブジェクトに含まれるルーティ ングアドバイスの要素のリストは空となる。 旺匹色肛 新しいオブジェクト″TsTeleaddress”のプロバイダの値を形成す るためのオブジェクト” TsOcLets″へのポインタ。又は、新しいテレ アドレスオブジェクトがプロバイダの値を含まない場合は、NtlLLポインタ 。 1ocation 新しいオブジェクト”TsTeleaddress″のロケーシヨンの値を形成 するためのオブジェクト” TsSLring″へのポインタ。又は、新しいテ レアドレスオブジェクトがロケーシヨンの値を含まない場合は、NULLポイン タ。 破棄(Destruction) −TsTeleaddress ニ ーTsTel eaddress □ オブジェクビTsTeleaddress”を破壊する。オブジェクト” Ts Teleaddress”と、そのオブジェクトがオーナーンノブの責任を持つ 全てのデータとが破壊される。 データアクセス Data Accessa endRoutin−Advic evoidappendRoutingAdvice(TsOctets*ad vice)オブジェクト″TsOcLeLs”に含まれるルーティングアドバイ スのリストに、ルーティングアドバイスの1つの要素を、オブジェクト” Ts Octets”の形で付加する。 鋭■匹 オブジェクト″TsTeleaddress″のルーティングアドバイスのリス トに付加されるルーティングアドバイスの要素を伝えるオブジェクト” TsT eleaddress”へのポインタ。 銭F旦ヱ匡虹 const TsOctets番getProvider Oconstオブジ ェクト°’ TsTeleaddress”のプロバイダ値へのポインタをリタ ーンする。又は、オブジェクト”TsTel eaddress”がプロ1<イ ダの値を持たない場合は、NULLポインタをリターンする。 七月遼劇封ΔL const TsSLring * geLLocation Oconstオ ブジェクト” TsTeleaddress”のロケーシヨンの値へのポインタ をリターンする。又は、オブジェクビTsTeleaddress”がロケ−7 1ンの値を持たない場合は、NULLポインタをリターンする。 nextRoutin Advice:const TsOctets 参ne xtRouLingAdviee Oルーティングアドバイスの要素へのポイン タを、オブジェクト” TsOcLets”の形でリターンするか、又はNUL Lポインタをリターンする。関数″nextRoutingAdovieeO” は、繰り返し呼び出されて、オブジェクト”TsTeleaddress″に含 まれるルーティングアドバイスの要素のセットを、それらの要素が収容されてい た順にリターンする。 最後のルーティングアドバイスの要素をリターンした後、関数″reset”が 呼び出されるまで、関数’ nextRoutingAdoviceO”は、N ULLポインタをリターンする。 関数” nextRoutingAdoviceO”の次の呼び出しでは、オブ ジェクビ’ TsTeleaddress″に含まれるルーティングアドバイス の最初の要素をリターンするようにさせる。 routin Advice−Count:5izej routingAdv icecount Oeonstオフシェクト″TsTeleaddress” に現在含まれているルーティングアドバイスの要素の数をリターンする。 7 、 17 TsTelena++eクラス″T sTe クラena■e″ は、この開示のアベンディソクスAに定義されたテレスクリプトクラス”TsT elename”について、C++での表現を供与する。クラス”TsTele name”のインプリメ/テーンヨンは、少なくとも次の機能を供与しなければ ならない。 class TsTelena++e public: TsTelename <TSOCteLS 會authority、 TsO ctets 孝1dentity)ニーTsTelenameO; const TsOctets * getAuthority Oconst ;const TsOctets * getldent4Ly Oeonst :)。 (Construction) TsTelena+ge (TsOctets * Authority、 T sOetets◆1dentity)新しいオブジェクビTsTel ena+ *e’を構成する。 態動y1v 新しいオブジェクト’ TsTelena■e″の値を形成するためのオクテツ トストリングへのポインタ。 炙跳■江 新しいオブジェクトTsTelename″のアイデンティティの値を形成する ためのオクテ・ノドストリングへのポインタ。又は、オブジェクビTsTele na+*e”がアイデンティティの値を含まない場合は、NULLポインタ。 Destruction −TsTelenaIIe: ”’TsTelena+aeO オブジェクビTsTelename″を破壊する。オブジェクビTsTelen a@e”と、そのオブジェクトがオーナーンノブの責任を持つ全てのデータとが 破壊される。 データアクセス Data Access駐ふ包Ω旦巳9二 const TsOetets 孝getAuthority Oconstオ ブジェクト″TsTelename”に含まれているオーソリティの値へのポイ ンタをリターンする。 七月±担旦り二 constTsOctets傘geLldentltyOconstオブジェク ト” TsTelename”に含まれるアイデンティティの値へのポインタを リターンする。又は、オブジェクビTsTelena+me”がアイデンティテ ィの値を持たない場合は、NULLをリターンする。 7、 18 TsTelenumberクラス” TsTelenumber” は、この開示のアペンディノクスAに定義されたテレスクリプトクラス”Tel enumber”について、C++での表現を与える。” TsTelenum ber”クラスのインプリメンテ−7gIンは、少なくとも、次の機能を与えな げればならない。 class TsTelenumberpubl 1c TsTelenuIIber (TsString * Country。 TsString * telephone。 TsSLring * extension)ニーTsTelenulIlbe rO: const TsString * getcountry Oeonst;c onst TsSLring I geLTelephone □ const :eonst TsString◆getExtension Oconst: )。 Con5truction TSTelenullber: TsTelenu++ber (TsString I country。 TsString傘telephone。 TsString * extension>新しいオブジェクト” TsTe lenumber”を構成する0央迎μl 新しいオブジェクト°“TsTelenumber”の国フードの値を形成する ためのオブジェクト’ TsString″へのポインタ。又はオブジェクト”  TsTe!enu+*ber″が国コードの値を含まない場合は、NULLポ インタ。 庄:供与されたオブジェクト″7sString″に含まれる値は、CCITT か国又は池の地理上の領域に割り当てた数値コードのセットに限られる。 止旦以巨匣 新しいオブジェクト″TsTel enuIIber”のテレポンナンバの値を 形成するためのオブジェクト″TsString”へのポインタ。又は、オブジ ェクト’ TsTelenumber”はテレホンナンバの値を含まない場合は 、NULLポインタ。 注:供与されたオブジェクト”TsString″に含まれる値を形成する牛ヤ ラククは、数字(”0″〜″9″′)、ハイフン(”−n)及びスペースキャラ クタ(″”)に限られる。 extension 新しいオブジェクト”TsTelenumber”の拡張ナンバの値を形成する ためのオブジェクト”TsString”へのポインタ。又は、” TsTel enumber″オブンエクトが拡張す/バの値を含まない場合は、NULLボ イノタ。 注、供与されたオブジェクト” TsString”に念まれる値を形成するキ ャラクタは、数字(”0”〜”9”)、ハイフン(′−”)及びスペースキャラ クタ(′ ″)に限られる。 破 棄 (Destruction) オブジェクト°’ TsTelenumber”を破壊する。オブジェクト”T sTelenumber″と、このオブジェクトがオーナー/、プの責任を持つ 全てのデータとが破壊される。 データアクセス(Data Access)駐匹匹旦匡L const TsString * getCountry Oconst新し いオブジェクト″TsTeleaddress″の国コードの値へのポインタを リターンする。又は、オブジェクト” TsTeleaddress”が国コー ドの値を含まない場合は、NULLポインタをリターンする。 旺■担旦基匹虹 const TsOctets*getTelephone Oconstオブ ジェクト°’ TsTeleaddress”のテレホンナンバの値へのポイン タをリターンする。又は、オブジェクト“TsTeleaddress”がテレ ホンナンバの値を含まない場合は、NULLポインタをリターンする。 七月江江y吐虹l Con5t TsString * getExtension Oconst オブジェクト″TsTeleaddress”の拡張ナンバの値へのポインタを リターンする。 又は、“TsTeleaddress”オブジェクトが拡張ナンバの値を含まな い場合は、NULLポインタをリターンする。 7、 19 TsWa クラス”TsWay”は、この開示のアベンディノクスAに定義されたテレスク リプトクラス″Way”について、C++での表現を供与する。クラス″7sW ay”のインブリメンテーノ1.7は、少なくとも次の機能を与えなければなら ない。 class TsWay publ ic TSWay(TsTelename*name。 TsMeans * means。 TsObJSpecifier * secRegimeld)ニーTsWay  O: const TsTelename * geLName Oconst:co nstTsMeans*getMeansOconst:const TsOb jSpecifier * getsecRegimeld □ const。 Con5truction 旧IL TsWay fTsTelename 本name。 TsMeans * means。 TsObjSpecifier*secRegimeld)新しいオブジェクト ″TsWay’“を構成する。 シV且 新しいオブジェクト” TsWay”のエンジン/リージョンのテレネームの値 を形成するためのオブジェクト°’ TsTelename”へのポインタ。又 は、新しいオブジェク)” TsWay”がエンジン/リージョンのテレネーム を含まない場合は、NULLボイノタ。 凹l壜 新しいオブジェクト” TsWay”のミーンズの値を形成するためのオブジェ クト”TsMeans’“へのポインタ。又は、新しいオブジェクト’ TsW ay”がミーンズの値を持たない場合は、NULLボイノタ。 と堕」よ■胆 新しいオブジェクト°TsWay”のセキュリティ動作有効期間の識別子の値を 形成するためのオブジェクト’ TsObjSpecifier’“へのポイン タ。又は、新しいオブジェクト”TsWay”が七キ1リティ動作有効期間の識 別子の値を含まない場合は、NULLポインタ。 破 棄(Des t rue L ion )−TsWay 0 オブジェクト” TsWay″を破壊する。オブジェクト” TsWaY”と、 そのオブジェクトがオーナー7ノブの責任を持つ全てのデータとが破壊される。 データアクセス(Data Access)討譚吻す− const TsTelenaIle傘getNa+ae Oconstオフ゛ ノエクト°“TsWaY”に含まれるニンジン/リーノコノのテレネームの値へ のポインタをリターンする。又は、オブジェクトTsWay”がエンジン/リー チコンのテレネームの値を含まない場合は、NtJLLポインタをリターンする 。 貼り謙曵と const TsMeans傘getMeans Oconstオブジェクト”  TsWay”に含まれているミーンズの値へのポインタをリターンする。又は 、オブジェクト” TsWay”がミーンズを含まない場合は、NULLポイン タをリターンする。 eLSeCRelmeld const TsObjSpecifier * getseeRegi++e ld Oconstオブジェクト” TsWay”に含まれるセキュリティ動作 有効期間の識別子の値へのポインタをリターンする。又は、オブジェクト’ T sWay″がセキュリティ動作有効期間の識別子の値を含まない場合は、NUL LポインタをリターンするO(以下、余白。) アベンディノクスD 著作権 ジェネラル・マジック社 1993゜復製を禁ず。 以下の目次は、読者がアベンデイ、クスDの構成を理解し、その情報を検索する ために役立てるものである。 1】 バーミツトの変更 12 その他の変更 2 テレスクリプト概念 21 ブレイス間の転送モデル 211 ドラベルドフッイス(Traveled Places)2.12 ン ノビングボノクス(Shipping Boxes)213 オープンドオブジ ェクト(Opened 0bjects)214 オープンド/ノビングボノク ス(Opened Shipping Boxes)215 パーツボックス( Parts Boxes)2.16 チケットの使用 217 エノノノの役割 、18 ルーティングにおけるエンノ/の役割2.1.9 ”Go″の実行 2、1XO5end”の実行 テレスクリプトクラスの外観 31 ブレイス間の転送グループ(Place−to−Place Trans fer Group)311 オープンド(Opened) 312 オーブンドンノビングボノクス(Opened Shipping B OX)3.13 パーツボックス(Parts Box)3.1.4 7ノピン グボノクス(Shipping BOX)3.1.S ドラベルド(Trave led)4 テレスクリプトクラスの詳細 41 オープンド(Opened) 4.2 オープンドンノビングボノクス(Opend Shipping BO X)4.3 バー7ボノクス(Parts Box)4゜4 シノビングボノク ス(Shipping Box)4.5ドラベルト(Traveled)(以下 、余白。) 上−一冬一スー このアペンディノクスでは、オブジェクトのインターチェノジ(ir+Lerc hange)及びパーガトリを含むように広く解釈される、ブレイスからブレイ スへのトランスファ(転送)のメカニズムについて記述する。 このアペンディノクスは、アベンディノクスAと同様に構成されている。 ブレイスからブレイスへの転送のメカニズムは、アペンディックスAの命令(イ ノストラフ/ツノ・1nstruetion)セットに対していくつかの変更及 び付加を必要としており、これらは以下のサブセクションに記述される。 1.1 パーミ ノ トの ・ オペレーアgノ″go″又は’ 5end”が成功しても失敗しても、オペレー アジン″entering”が、エージエツトが要求したものよりもより許容的 な初期ローカルバーミツトをエージエツトに与えることは、許容される。 オペレーアgノ°′gO″又はオペレーアジン″5end”が失敗した場合は、 エージェントにエージェントが要求したよりもより許容的でない初期の局地的な バーミツト(ロー力ルバーミ/ ト: 1ocal permit)が与えられ ている間は、オペレーアジン″enLering’“が、エージェントを入れる ことは、許容される。 現在のリージヨンがプロセスに供与するバーミツトである、リードオンリのパブ リックインスタンスアトリビュート”regionalPermiL″を、クラ ス” Process”に付加する。 ブレイスのオペレーアジン゛’ terminate”を、プロセスのローカル パーミツトを置き換える新しいオペレーアジン″changePeriit”に 、置き換える。このオペレーア−1ノは、ブレイス自身の要求、又は問題のプロ セスと同等のプロセスの要求によって行なわれる。 クラス” Process”に、レステムクラスタノスオベレ−/y 7” P ermitehanged”を付加する。このオペレーションは、ブレイスが占 有者のローカルバーミツトを変更する時、例えばオペレーアジン” enter ing″について上述したような時、にはいつでも、或いは、猶予期間をもって 又は猶予期間なしに占有者を排除するために、エンジンによって要求される。 例えば、応答側(レスポンダ: responder)が入ろうとしているブレ イス又は既に占有しているブレイスによって、レスポンダのローカルパーミツト が変更されり場合にはいつでも、能力を付加するため又は能力を除くために、要 求される。 このオペレーアジンのリザルトが、ニル(0)ではなく、エクセブシ1ンであれ ば、エンジンはレスポンダの実行スレッドにエクセブ/ヨンを送出する。 クラス°” Process″に固有のこのオペレーアジンについてのメソッド は、単にニル(0)をリターンする。 クラス”ExeeutionException”に、サブクラス” Per+ +itchanged”を付加する0このサブクラスの送出は、現在のプロセス のローカルパーミツトが変更されたことを意味する。 注:プロセスの新たなローカルパーミツトが厳格に制限的である場合に、このエ クセブンヨンをキャッチしてそれから回復するプロセスの能力は、プロセスの終 了の規則によって制限される。 1.2(ビ」匹亥叉 オペレーアジン” go”又はオペレーアジン″s end″が失敗した場合、 ブレイスからブレイスへの転送モデルに記述されているように、エージェントは 、失われている1以上のインターチェンジドオブジェクト(interchan ged object)を見いだすことができる。 例えば目的地(デスティネー/Mン: det 1nat ton)がエージェ ントにエージェントが要求したバーミツトを与えないために、オペレーアジンが 失敗したとしても、オペレーション″go”又は’ 5end”によってエージ ェントをその目的地に到達させることができる。さらに、オペレーアジン” e ntering”は、この場合にも呼び出される。 単なる/ステムフィーチャではなく、定4%ti!tみ(ブリデフアイノド:  predefined)フィーチャ又はユーザ定義(ユーザデファインド: u ser−defined)フィーチャを、エンジンが要求することは許容される 。 エンジンによって要求されたフィーチャのためのユーザ定義メ゛へ、ドは、あた かもフィーチャがレステムフィーチャであるがのよう1こ、クライアント及びプ ロセスがOであることを見い出だす。 現在のリージョンがプロセスの意図された権限において持っている信用の程度を 証明する、リードオンリのパブリックインスタンスアトリビュート” auth enLicity”を、クラス″Process”に付加する。このアトリビュ ートはアペンディノクスAのセク/gノ4.57に定義されている。 プロセスか生成された時を示す、リードオンリのパブリックインスタンスアトリ ビュート”ereat 1onTiIIle”を、クラス” Process” に付加する。 プロセスのアトリビュート“brand″を廃棄する。 注:その代わり、リージョンは、クラス”Permit″のサブクラスを定義し 、その1つのインスタンスをプロセスのアトリビュート″reg 1ona l Perm it”として供給することができる。 2 テレスクリプトの概念 2.1 ブレイス の−モデル インストラク7!Iノセノトは、このセク/ヨンで定義される”ブレイスからブ レイスへの転送モデル(place−to−place transfer m odel)″を実現する。 2.1.l ドラベルドブレイス(Traveled Places)” ドラ ベルドブレイス(traveled place) ”は、7ノピングボノクス がそれを介して転送されるブレイスである。 トランスファTvansrev) ネットワークがある7ノピングボノクスに委託したドラベルドブレイスは、ンノ ヒンクホノクスの“元(origin)″である1つのブレイスから、”7ピン グボノクスの”目的地(destination)”である1以上のブレイスへ 、ボックスの内容物を”トランスファ(transfer) ”するように、協 力する。ドラベルドブレイスは、異なった方向に7ノピングボノクスの内容物を 搬送しなければならない時には、新しいン、ピングボ、クスを生成する。 /ノピングボノクスの内容物を、転送元から目的地のどれか1つにトランスファ するのは、4つのステップで行なわれる。ここで、最後の2つのステップ、すな わちトランスファイン及びトランスファアウトは、単一のトランスファ内におい て反(夏することができる。 サブミノ/−Jン(Submission)トランスファは、ン、ピングボ、ク スの”サブミノンッン(submission) ”によって開始される。7ノ ビングボノクスが結果として最初にトランスファインされるドラベルドブレイス は、その” 5ource”である。 デリバリイ Deliver トランスファは、7ノピノグボ、クスの”デリパリイ(del 1very)″ で終了する。サブミ’7ンヨンされたン、ビングボ、クスが配送されるブレイス が、その”目的地(destination) ”である。 7ノビ/グボノクスの配送は、゛ノーマル(normal)″又は°°アブ/− マル(abnorIlal) ”である。前者の場合には、7ノピノグボノクス の目的地は、サラミノン9ンにおいて特定された通りであり、7ノピングボノク スの内容物の全クリティカルパー7が存在している。後者の場合には、ネットワ ークは、ンノビングヂノクスのための別に予め定義された目的地を持っており、 ンッピングボ、クスの内容物のあるクリティカルパーツが存在していないことが ある。エクセプンコノはこのアブノーマルな状況について説明する。 トランスファイン Transfer In/ノピングボノクスは、ドラベルド ブレイスに″トランスファイン(transferred in) ’“される 。トランスファインは、あるブレイス(ドラベルドブレイスでも他のフッイスで もよい。)からの77ピングボノクスのサブミッションの結果として生じるか、 又は、ドラベルドブレイス(7ノビングボノクスがトランスファインされるドラ ベルドブレイスと同一でも異なっていてもよい。)がらの7・ノピノグボノクス のトランスファアウトの結果として生じる。7ノピングボ、クスがそれから来た ブレイスは、シノビングボノクスのprevious hop”である。 トランスファアウト(Transfer 0ut)7ノビングボノクスは、ドラ ベルドブレイスから”トランスファアウト(transferred out)  ”される。トランスファアウトは、ドラベルドブレイス(シッピングボノクス がそれからトランスファアウトされたドラベルドブレイスと同一でも異なってい てもよい。)への77ピングボ、クスのトランスファインの結果として生じるか 、又は、ブレイス(ドラベルドブレイスでもその他のブレイスでもよい。)への 7ノビングボノクスの配送の結果として生じる。シソピングボソクスがそれに向 かう1以上のブレイスは、7ノピングボノクスのneo hop”である。 l−土一ヱー上し」詠ゴ銀[野−仁邊加1甲区j旦竺と” Shipping  Boxe”は、オブジェクトであり、このオブジェクトは、池のもの、すなわち その”内容物(conter+ts) ”を保持し、そのオブジェクトをブレイ スからブレイスへと転送させるために使用することができる。 ■一覧エヒ吐と ドラベルドブレイスは、ンノビングボノクスの内容物であるオブジェクトを”閲 覧(peek)”することができる。すなわち、ドラベルドブレイスは、下記の 制限に従って、オブジェクトのアトリビュートを取得することができる。 7ノピングボノクスは、/ノピノグボノクスの内容物への保護された(prot eeted) リファレンスを用いて、7ノビングボツクスの内容物のアトリビ ュートを取得する。 ユーザ定義メソッドが呼ばれると、そのメン、ドは、あたかもアトリビュートが レステムのアトリビュートであるかのように、”client”、” here ″及ヒ”Process″がニル(0)であることを見い出だす。さらに、アト リビュートを閲覧(peek)すると、予め定められた通路を無視して、どんな 場合でも、アトリビュートのオリジナルでなく、アトリビュートのコピーをリタ ーンする。 設定(Poke) ドラベルドブレイスは、/lピノグボノクスの内容物であるオブジェクトを”設 定(poke)”することができる。すなわち、ドラベルドブレイスは、下記の 制限に従って、オブジェクトのアトリビュートをセットすることができる。しか し、ドラベルドブレイスは、適当な特権を持っている場合にのみこれを行なうこ とができる。 7ノビノグボノクスは、7ノピングボノクスの内容物への保護されてない(un protected) リファレンスを用いて、その7ノピングボノクスの内容 物の7トリビユートをセットする。ユーザ定義メソッドが呼ばれていれば、その メソッドは、あたかもアトリビュートかシステムのアトリビュートであるかのよ うに、メソッドは+ ” client” 、” here”及び°’ Pro cess”がOであることを見いだす。さらに、アトリビユートを設定(pok e)すると、予め定められた通路が無視され、どんな場合ても、オリジナルのア トリビュートではなく、提案されたアトリビュートのコピーを用いる。 前記特権は次のようにして割り当てられる。エンジンブレイスは、アトリビュー ト1°authent;catlonstate”又は” regionalP ermit”を、インストラクンヨンセ/トかこれらのアトリビュートをリード オンリとして定義していたとしても、セットすることができる。アトリビュート ” regionalPermit”のプリミティブなセノテイ/グは、/ノピ ノグボノクスのアブノーマルな配送を命令することができ注:トラベルドブレイ スは、7ノビングボツクスの内容物のオペレーシッンを要求することはできない 。 リボノクス Rebox ドラベルドブレイスは、ンノピングボ・ノクスを”リボノクス(rebox)  ”することができる。ドラベルドブレイスは、ン、ピングボックスが異なる方向 に転送されねばならない場合にそれを行なう。エンジンは、シノピングボyクス から特定の目的地のチケットを除去し、それらのチケットをニル(0)とする。 そして、エンノ/は、現存のものと内容が同一の新しい7ノビングボノクスに、 それらのチケットを新たに付は加える。 リダイレクト(Redirec+) ドラベルドブレイスは、7ノビングボ、クスを”リダイレクト(redirec t) ”することができる。ドラベルドブレイスは、トランスファの間にエクセ ブノヨンが生じた場合にこれを行なう。エンジンは、シノビングポノクスにエク セブシ3ノを付は加え、ンノピングボ、クスの目的地チケットの中からニル(0 )を除去する。そして、エンジンは、残りの各目的地チケットに代えて特定の単 一のチケットを使用することができる。 2.1.3 オープンドオブジェクト(Oened Ob’eets)”オープ ンドオブジェクト(opened object) ”は、オブジェクトであり 、その0以上のパートが操作可能である。 二二ノ]凡堕組と オブジェクトの各々の゛′パーツ(part)″は、開放されていてもいなくて も、そのダイジェストがニル(0)ではないインターチェンジドオブジェクトで ある。 開放されたオブジェクトのパーツは、そのパーツのクラス及びダイジェストの別 のオブジェクトに、開放されたオブジェクトに大きく影響することなく、置き換 えることができる。 「 在(ブレゼ/ス: pr6sence開放されていてもいなくても、オブジ ェクトの各パーツは、′°プレゼント(present)”、すなわち存在して いるか、又は”アブセント(absent)”、すなわち存在していないかであ る。一般に、一部のパーツがアブセントであることは、オブジェクトの使用を制 限するが、オブジェクトのブレイスからブレイスへの転送を一層効率的にする。 オブジェクトが、その時点においてアブセントである、そのオブジェクト自身の パーツへのリファレンスを使用しようと試みた場合、エンジンは、” Refe rence Void”を送出する。 注:典型的な実施例においては、7ノビングボノクスの内容物のパーツは、7ノ ピングボノクスをサブミ、/ヨンした時点において、及び7ノピングボノクスの デリバリイの時点においては存在しているが、効率を最適にするために、シッピ ングボックスのトランスファの他のステップの全部又は一部においては存在して ない。 クリティカル Cr1tIca11t)開放されていてもいなくても、オブジェ クトの各パーツは、′クリティカル(critical) ”であるか、又は゛ ツノクリティカル(non−critical) ”である@オブジェクトは、 オブジェクトのツノクリティカルなパーツが1以上存在していなくても、使用で きるように設計されるが、オブジェクトのクリティカルなパーツが全く存在して いない場合には使用することはできない。 注:オブジェクトのクリティカルなパーツのアブセントは、そのオブジェクトを 収容した7ノピングボ、クスの正常な配送を妨げとなるが、ノンクリティカルな パーツのアブセントは、そのオブジェクトを収容したンッピングボソクスの正常 な配送の妨げとはならない。 注:典型的な実施例において、オブジェクトの全てのパー7はあらゆる場所でク リティカルである。ただし、時には、オブジェクトのあるパーツは、そのオブジ ェクトが特定のブレイスにいる間のみ、クリティカルとなる。 2.1.4 オープンド/ノピングfノクス Oened Shi in Bo xes”オープンド/ノピングボノクス(opaned shipping b ox) ”は、そのパーツが操作されることができる/ノビングボ、クスである 。オープンド/ノピングボ・ノクスのパーツは、7ノビングボノクスの内容物の パーツである。 2.1.5 バー7ボノクス(Parts Boxes)けパーツボックス(p arts box)″は、そのパーツが明白に又は任意に特定することができる オープンドオブジェクトである。パーンボックスは、次の4つの目的のために用 いられる。 パーツの Mani ulatin Partsオープンドオブジェクトのパー ンは、パーツボックスによって操作される。これによって、操作を行なっている オブジェクトにパーツが直接アクセスしないことが保証される。例えば、バーツ ボ、クス内のパーツは、オープンドオブジェクトに含められることができ、オー プンドオブジェクトの指定されたパーツは、コピーされたり、パーツボックスに 移されたりすることができる。ただし、パーツ自身は、パーツボックス内にある 間であっても、検査されることはできない。 注:これによってインターチェンジドオブジェクトによって表される知的所有権 が保護される。 パー7の 5tor1nParts オープンド/ノビノグボ、クスを任されたドラベルドブレイスは、このような7 ノビノグボノクスに含まれるパーツのためのりポジトリ(保管庫)として、パー ツボックスを使用することができる。パーツホックスは、小さなデータボックス であり、フッイスからブレイスへのトランスファにおいてリノースとして役立パ ーツの2、TakinParis) /ノビングボノクスの内容物がバーノボ、クスを含む場合、バーンボックスのク リティカルなパーツが、7ノビノグボノクスのパーツから削除される。そのため 7ノビングホノクスのトランスファにおいて呼び出されたドラベルドブレイスは 、これらのパーツを調へることも削除することもできない。したがって、このよ うな削除による最適化は試みられない。 注:これは、/ステム全体か/ステムの最適化(この場合は誤った方向の最適化 である。)の努力によりエージェントの移動を避けるために全てを試みるような /ステムを用いることなく、ブレイスからブレイスへのトランスファをサポート しているエージェントが、インターチェンジドオブジェクトを、ドラベルドブレ イス間で移動させることを可能にする。 パーツの Leav1nParts 7ノビングボノクスの内容物がパーツボックスを含む場合、パーツボックスのノ ンクリティカルなパーツは、/、ピングボックスに含められる。このようにして 、エージェントは、インターチェンジドオブジェクトがノンクリティカルである ことを宣言することができ、その後、このエージェントに不随するこのパーツを 伴うことなく、トリ/プを行なうことができる。後でパーツボックスからパー7 を取り除くことによって、エージェントは、そのパーツがクリティカルであるこ とを宣言する。このとき、パーツがアプセットの場合、エンジンは、そのパーツ をローカルに見い出すか、又はそのパーツがエージェントによって使用されてい るときは、” Rererence Void”を送出する0庄:これは、エー ジエツトが、それらのインターチェンジドオブジェクトのいくつかが使用されな いブレイスを、それらのオブジェクトがそこに存在することを要求することなく 、訪問することを可能にする。 21.6 チケットの チケットは、後述するように、/、ピングボックスがそれを介して転送される複 数のブレイスを定義する。 ”プレイスアトリビ、!−ト(place attributes) ”は、こ のセク/lIン全体を通じて1アトリビユート” destinaLionNa me” 、” destinaLionAddress” 、”destina t 1onclass″である。以下に特に説明しない他のチケットアトリビュ ートは、無視される。 ソース(Source) チケットは、ノノビングボ、クスのソースを定義するために用いられる。ソース を特定する、チケットのブレイスアトリビュートは、割り当てられたテレネーム (アサインドテレネーム)と、割り当てられたテレアドレス(アサイントチレア ドレス)と、割り当てられたサイテンラン(アサインドサイテン9ン)とである 。チケットのアトリビュートway”は、ニル(0)でない場合には、必要に応 じて、そのソースに到達するウェイを記述する。 デステイネーノgン Destinationチケットは、/ノピングボ、クス の各デスティ不一/コンを定義するために用いられる。チケットのブレイスアト リビュートは、問題のデスティ不一ンヨンを特定する。チケットのアトリビュー トmay”は、ニル(0)でない場合には、そのデスティネー7=1ノに到達す るウェイを記述する。アトリビュービdesiredWa已”、” maxtm u+nWait″は、7ノピノグボノクスがそのデスティネーションに向かって 転送されているときにン、ピングボックスに供与されるサービス品質を提供する 。 ブリピアスホップ Previous N。 チケットは、7ノピングボノクスのブリピアスホップ、すなわち転送前の場所を 定義するために用いられる。ブリピアスホップを特定する、チケットのアトリビ ュート” destinationName” 、” destination Address” 、” destinationcla唐刀h は、それぞれ、割り当てられたテレネーム(アサインドテレネーム)、割り当て られたテレアドレス(アサイントチレアドレス)、割り当てられたサイテンラン (アサインドサイテン9ン)である。チケットの7トリビユード’ way”は 、ニル(0)でない場合には、ンノビングボックスがブリピアスホップからトラ ンスファされたときのウェイを定義する。 ネクストホップ Next H。 チケットは、ンノビングボノクスのネタストホップ、すなわち転送後の場所を定 義するために用いられる。チケットのブレイスアトリビュートは、ネクストホッ プを特定する。チケットのアトリビュート“’ way″は、ニル(0)でなけ れば、そのネクストホップに到達するウェイを記述する。 2.1.7 エンジンの′ 1 ドラベルドブレイスは、ン、ピ/グボ、クスの転送とその目的地への配送とを、 制御するのでなく、容易にするものとして見ることが適切である。エンジン自身 が、次のようにこのプロセスにおいて手助けをする。 トランスファイン(丁ransfer In)ドラベルドブレイスが、ンノビン グボノクスをトランスファインするときはいつでも、エンジンは、そのン/ピン グボックスが開放されたものかそれともそうでないかをすでに判断している。典 型的な実施例においては、エンジンはボックス毎にではなく、統一的にこの判断 を行なう。したがって、一般に、ドラベルドブレイスは、池のブレイスと異なっ て、ンノビングボノクスの内容物のノで−ツのイノターチェンジを任される。 トランスファアウト(Transfer 0ut)ドラベルドブレイスが/ノビ ングボノクス”A″をトランスファアウトするときはいっでも、エンジンは次の ことを行なう。第1に、エンジンは、A′をリボノクスし、新しいンノビングボ ノクス” B”に、そのエンジンがシ・/ピングボックスを配送することができ る目的地へのチケットを移動させる。ただし、エンジンは、トランスファアウト が配送を許容する場合にのみチケットを”B”に移動させる。第2に、エンツノ は、“A″を再びリボ・ノクスし、残りの全てのチケットを池の新しいン、ビン グボ、クス゛°c“に移動させる。第3に、エンジンは、非同期的に”C″をト ランスファし、”B’を配送することを試みる。 限切れ(Exlratlon) ドラベルドフッイスが7ノピングボノクス°゛A″のどれか′のデスティネー7 wノチケノトを期限切れとすることを許可するときはいつも、エンジノは次のこ とを行なう。このようなチケットは、その最長存続期間が到達した時に”期限切 れ(expires) ’“となる。第1に、エンノ/は、A′をリボノクスし 、期限切れとなったチケットを新しい/、ピッグボックス′°8′に移動させる 。第2に、エンジノは、異常の原因として°゛Ticket Explred” を記録して、”B”をエンジンによって選択されたブレイスに再び向かわせる。 第3に、エンジノは、ドラベルドブレイスが行なったかのように、B”を、エン ジンによって選択されたブレイスにトランスファアウトする。 瓜−ガユDisca邑と 7ノビングホノクス”Aパに付は加えられたデスティキーノー1ンチケツトが残 っていても、ドラベルドブレイスが7ノビ/グボ、クス”A”を処分する時はい っても、7ノピングボノクス゛A”の終了を呼び起こすように、エンジンは次の ことを行なう。第1に、エンジノは、”A”をリボノクスし、全てのデスティネ ー/−Iノチケ、トを新しいン、ピノグボ、クス″B゛に移動させる。第2に、 エンジノ+1、”A’“をV5壊する。第3に、エンジノは、ドラベルドブレイ スが行なったかのように、+B″を、エンジン自身が選択したブレイスに、非同 期的にトランスファアウトする。 2.1.8 ルーティングにおけるエンジンの′ 1エノジンは、ンノピングボ ノクスの第2のホップを選択することと、ソツピングホ、プの第2のホップから 最後のホップまでを制約することと、/ノピングボ、クスの最初のホップをリー ジョン内のホップの任意の順序において制限することとによって、ンッビングボ ノクスが転送されるルートを制限する。 11のリージョンでのホップ F+rsL Re 1onal ll。 あるリージョンの各エンジンは、そのリージョンに入るシソピングボックスがエ ンジンブレイスに、そのリージョンの別のドラベルドブレイスにトランスファイ ンされたり、そのリージョン内において転送されたりする前に、トランスファイ ンされることを保証するように互いに協力する。 2のホップ 5econd H。 エンジノは、7ノピングボノクスのソースから、7ノピングボツクスの第2のホ ップ・すなわち/ソピングボノクスが最初にトランスファインされるドラベルド ブレイスを次のようにして選択する。 第2のホップは、それかドラベルドブレイスであれば、ン/ピングボ、クスのサ フミノンヨンブレイスであり、そうでなければ、サブミノンゴンプレイスのスー パーブレイスである。い(つかのスーパーブレイスがドラベルドブレイスである 場合は、他のものを全く含まないものが選択される。 注ニジ1:力(つて・°゛サフ゛ミフフgンsubmission) ” lよ 、シノヒ0ングボ、クスがドラベルドブレイスに到達するまで、/ノピングボノ クスを、その元の及びそれに続くスーパーブレイスを介して下っていくようにさ せるものとして、理解することができる。 lL以t、yムE環[1とL二((ト)竺狸ヒ!七犯」卯とエンジンは次のよう にして、7ノビングボノクスの第2のホップから最後のホップ、すなわち7ノビ ングボノクスが最後にトランスファアウトされたドラベルドブレイスを、7ノピ ノグボ、クスの全ての目的地に対してコンストレイントする。 第2のホップから最後の士、ブは、デスティネー7−1ン自身であるか、そのス ーパーブレイスの1つである。7ノビングボノクスの各目的地について個別にこ のようになる。 注:したがって、゛°デリバリイ(delivery) ”は、/ノピノグボソ クスがその各目的地として資格を持つものに到達するまで、ノノビングボノクス を、連続するサブブレイスを介して上っていくようにさせるものとして、理解す ることができる。 第2の士ノブから最後の士、ブにおいて、いくつかのブレイスが7ノビングボノ クスの目的地として資格を持つ場合、アベンディノクスAのセタン9ン2.5. 4に示した順序でそれらに向かうようにして、エンジンは7ノビングボノクスを それらの内の1つに配送しようと試みる。 第2のホップから最後のホップにおいて、どのブレイスも/ノピングボ、クスの 目的地として資格が無い場合、又はどのブレイスも7ノビングボノクスの配送を 受け付けない場合、エツジ/はノアピングボックスを二ノノン自身が選んだ1つ のブレイスにトランスファアウトする。 【ξ夕更び皿」引μUと エンジンは、シノビングボノクスが最終的に配送不可能であることをレステムエ ラーとして処理する。エンジンは、この/ステムエラーをエンジンは現行のOA Mの方針に従って取り扱う。 注:エンジンは、他に配送することができない7ノビングボノクスのために、最 後のブレイスとして”purgatory“を供給することができる。このブレ イスは、占有者のローカルパーミツトを著しく制限することができる。 2.1.9 °’ Go”の′− クラス″agent”に固有のgo” のメツ、ドは、エージェント及びエージ ェントが所有するオブジェクトを内容物とするンノピングボ、クスを用いて、次 のようにオペレーアシンをインプリメントする。 サブミノンヨン(Submission)エンジンは、オペレーアシンについて のエージェントの要求を確認した後、エージエツトを含む/、ビングボ、クスを 生成しサブミノンヨンする。したがって、7ノビングボノクスの最初のホップ、 すなわちその転送元(origin)は、エージェントがオペレーアシンを要求 した時にエージェントが占有していたブレイスである。 デリバリイ Deliver エンジンは、オペレーアシンを完了することによって、ンッピングボノクスを配 送する。したがって、ン、ピングホッブの最後のホップ、すなわちその単一の目 的地は、エージエツトがそのオペレーアシンを完了した時にエージェントが占有 しているブレイスである。 ンノビノグボノクスがエクセプ/I!ノを3己録せず、かつ/ノピングボノクス の内容物の/ノクリティカルなパーツのみがアブセントの場合には、このオペレ ーアシンは成功し、その他の場合には失敗する。オペレーアシンが失敗したとき 、オペレーア−1ンは、7ノビングボノクスがエフセブンジノを記録している場 合は、7ノビングボノクスが記録しているエフセブンジノを送出し、その他の場 合は、エノノン自身が選んだエクセブ/gンを送出する。 2、1 、10 ” 5end”の斎−クラス゛’ agent”に固有のオペ レーアシン” 5end”のメツノドは、オペレーンツノ″gO″のインプリメ ントと間挿に、オペレーアシン°5end”をインプリメントする。ただし、以 下の2つ声が異なる。第1に、7ノピ/グボノク又は、転送するべきクローンと 同じ数のデスティ不−/−Jノを持つ。第2に、7ノビングボノクスの内容物は 、オペレーアシンを要求しているエージェントの代理となるクローンである。ク ローンのアサイツトテレネームのアトリビュート” 1dentity”ζよ、 サブミノ/コンの時にはニル(0)であるが、各クローンが配送される(こつれ て個別にセットされる。 3 テレスクリプトクラスのり 31 フッイス。の転 グループ Place−to−Place Trans fer GrouObject (Referenced)φParts BO X (Opend)−止」■」J垣L(Ur+oloved)−・Oened  Shi in BOX (Opend)釘曵但世 オベレー/TJン(Oerations)七M止りμ狙 七月狂駐王阻 getNumber includeParjs ″オープツトオブジェクト(opened object)″は、そのパーツが 操作可能なオブジェクトである。オープンドオブジェクトの固有のオベレーノー Iンは、指定された基準を充たすパーツのナンバ(オペレーアシン“getNu mber”)、クラス(オペレーアシン” getclasses” ) 、及 びダイジェスト(オペレーアシン″getDigests″)を明らかにし、新 しいパーツを含め(オペレーアシン″1ncludeParts°“)、現存す るパーツを排除しくオペレーアシン“’ excludeParts” )〜特 定の基準を充たす全ての現存のパーツを排除しくオペレーアシン”clearP arts”)、特定のパーツの検査のr$備をする(オベレー/−Iン” ex amineParts” ) 。 3.1.2 オープンド/ノビングボノクス Oened Shi in Bo x”オーブンドンノピングポノクス(opened shipping box )″は、そのパーツが操作可能な/ノピノグボクラスである。 3.1.3 バーツボ1クス Parts BOX)オペレーンラン 0era t1onS)includeParts ” parts bOX″は、そのパーンが特定可能及び操作可能なオブジェク トである。 パーツボックスの固有のオベレー/嘗ンは、新しい、(−ツを含む(オペレーシ ョン” 1neludeParts” ) 。 3.1.4 /、ピングボックス 5hiInBOx部工ぢ±バ■ オペレーンラン 0erat1onS 匹醜 匹社 匹あ■ shipping box″は、ブレイス間をトランスファすることができるオ ブジェクトである。 ンノピングボ・クラスの固有のアトリビュートは、7ノピングボ、クスがサブミ ノン1ンされたタイム(アトリピニー)”time″)と、シツピングボックス のソースへのチケット(アトリビュート″5ource”)と、シツピングボッ クスの目的地へのチケット(アトリビュートdestinations” )と 、シツピングボックスの転送の間に遭遇したエクセブション(アトリビュートe !eeption″)とである。 //ピングボックスの固有のオペレーションは、ン・1ビングボ、クスの内容物 の特定されたアトリビュートを取得(オペレーン1ン”peek″)又は設定( オペレーション″poke″)シ、エフセブンジンの場合にシツピングボックス をリダイレクトしくオペレーション“’ redirect” ) 、いくつか のネクストホップを許容するように/ノピングボクラスをリボクラスする(オペ レーンラン″rebox″)03.1.51−ラベルド(Traveledオペ レーン1ン 0eratlOns ” ドラベルドオブジェクト(traveled object)”は、/ツピ ングボックスを転送させることができるブレイスである。 ドラベルドブレイスの固有のオペレーシヨンは、7ノビングボツクスをトランス ファアウトしくオペレーション” transferout” ) シツピング ボックスのトランスファインに作用する(オペレーション″transferr ed In”)04 テレスクリプトクラスの0細 4.1 オープンド 0ened 並虹組 主二区二旦1旺り 匣姐叫 5ealed abstract 1nterface O!←■):1乙しム 社録/7.97Zヱ二と1乙〔−堕蝮山」囮]匹1し旧月部LclearPar ts unprotectedop (iscritical: BooleanlN il);ブーリアン(アーギュメント°’ 1scritical” )が定義 する基準を充たすレスポンダの現在の全てのパー7を、レスポンダから除去して 廃棄する。下記オベレー/:Iン″getclasses+参照すること。 examineParts op (ofclass: C1ass:digests+ protecte d Set [0bject])PartsBozINil ; クラス(アーギュメント″ofclass″)及びダイジェスト(アーギュメン ト”digests” ) が指定された現存しているパーツを、レスポンダに 残し、リターンする。このオペレージ1ンは、パーツを含むパーツボックスが存 在しているならば、このパーツボックスをリターンし、存在していないならば、 ニル(0)をリターンする。 excludeParLs: unprotected op (ofcIass: C1ass;diges ts: protected Set [0bject])PartsBox  lNi l : そのクラス(アーギュメント“ofcIass″)及びダイジェスト(アーギュ メント″digests” ) が指定されている現存しているパーツを、レス ポンダがら除去し、リターンする。このオペレーションは、パーツを含むパーツ ボックスが存在しているならば、このパーツボックスをリターンし、存在してい なければ、ニル(0)をリターンする。 話厖ユリμ狙: op (isPresent、1scritieal: BooleanlNi l)protected Set [CIass]:ブーリアン(アーギュメン ト”1sPresent”及び” 1scritical” ) が定義する以 下の基準を充たすレスポンダのパーツのクラスをリターンする。 第1の基準は、第1のブーリアンによって定義され、ブーリアンが真であればパ ーツは存在しており、ブーリアンが偽であればパーツは存在しておらず、アーギ ュメントがニル(0)であればそのどちらがであるということである。第2の基 準は、策2のブーリアンによって定義され、ブーリアンが真であればパーツはク リティカルであり、ブーリアンが偽であればパーツはノンクリティカルであり、 アーギュメントがニル(0)であればそのどちらがであるということである、と いうことである。 組成」競旦・ op (ofcIass: C1ass: 1sPresent、 1scri tieal: BooleanlNil)prOLectedSet [0bj ect]指定されたクラス(アーギュメント” ofclass” )であり、 ブーリアン(アーギュメント″1sPrescnt−及び” 1scritic al” )が定義する基準(前記オペレーンラン″getclasses’“聾 照)を充たすレスボンタ゛のパーツのダイジェストをリターンする。 註1」匝虹・ op (isPresent、 1scriLical: BooleanlN il) Integer:ブーリアン(アーギュメント” 1sPresenL ”及び°’ 1scritical”)が定義する基準(前記オペレーンラン° ”getclasses″参照)を充たすレスポンダのパーツの番号をリターン する。 1neludeParts: unprotected op (parts+ protcted Part sBox);クラス及びダイジェストにおいて、そのレスポンダのパーツに適合 するパーツボックスのパーツ(アーギュメント″parts”)をレスポンダに 含める。このオペレーンランは、最初に、既に存在しているこの適合するパーツ を、レスポンダから排除して、破棄する。 4.2 オープンド/ノビフグボックス Oened Shi in BOXO bject (Refereneed)−Shipping BOX (lIn ++oved)・ ・ Oened Shi in BOX (Opend)ク ラス(C1ass) OenedShi in BOX: 5ealed 1nterface (ShippingBox、 0pene d) !0;4.3 パーノボ、クス Parts BOXObject (R ererenced)°Parts Box (Opend)sealed 1 nterface (ObjecL、 0pened) =(、、、):unp rotected op ( criticalParLs、noneriticalParts: Set[ 1nLerchanged]1Nil):イノターチェノジドオブジェクトの2 つの七ノドを、全て最初から存在している、レスポンダのクリティカルな(アー ギュメント”eriticalParts” ) /(−ソ及びノンクリティカ ルな(アーギュメント°non−critical” ) パーツとする。しか し、セットの代わりにニル(0)が存在している場合は、セットはクリアされた ものと推定される。 バブリノククラスタレスオベレー/ヨン Public In5tance O erations″1ncludeParLs− unprotected Op (parts:protected Part sBox):パーツボックスのパーツ(アーギュメント”paris″)をレス ポンダに含める。 各パーツは、レスポンダに存在していると見なされる。各パーツは、レスポンダ 内においてクリティカルであると、それがパーツボックスにおいてそのように見 なされている場合にのみ(iff) 、見なされる。オペレーンランは、最初に 、既に存在しており適合するパーツをレスポンダから排除し廃棄する。 4.4 ンノビングボクラス 5hi1nBoxObject (Refere nced)・蹟葎匹■」■(Un+*oved) クラス(C1ass) 鋒」ル四〇ル・ 5ealed 1nterface (Object、 Llnmoved)  s←−)。 +Con5truction initialiZe unprotected Op O throws FeatureLlnavailable+エクセブシッン(− FeatureUnavailable−)を送出する。 注:ンノピングボクラスは、オペレーンラン″new″を使用することなく、オ ペレーアWン”go″又は” 5end”によって生成される。 パブリノククラスクレスアトリピ! −ト(Public In5tance  Attributes)destination readonly protected Li5t [TicketlNill ];レスポンダのデスティ不一ンヨンと、オペレーア−Iン″rebox″を用 いて池のシノビングボ・クラスに移動したチケットに代わる0以上のニル(0) とを定義するチケットである。 弘藏坦士匹: readonly TripExcepLionlNil:実際にトリップのエ フセブンシンが生じた場合は、レスポンダを転送する間に生じたトリップのエフ セブンシンであり、生じなかった場合は、ニル(0)である。 readonly protected Ticket:レスポンダのソースを 定義するチケットである。 readonly Time: レスポンダがサブミ、/−Jンされたタイムである。 パブリノクイノスタレスオベレーンgン Public In5tance O eratlonsとqニ op (identifier+ Identifierり copied O bjectthrows CopyUnavailable、FeatureU navailable:識別子(アーギュメント″1dentifier” ) が示すレスポンダの内容物のアトリビュートをリターンする。 要求側(リクエスタ: requester)にとってアクセス可能なレスポン ダの内容物のアトリビュートを識別子が示していない場合は、エフセブンシン( ” Featureunavailable″)が送出され、アトリビュートの コピーが利用できない場合は、エフセブンシン(”CopyUnavailab le” )が送出される。 L unprotected Op (identifier: Identifi er!;attribute: copied Object)throws  Argu+*entlnvalid、 AttributeReadOnly、  FeatureUnavailable;オブジェクト(アーギュメント”  attribute” )を、識別子(アーギュメント”1denLifier ’“)が示すレスポンダの内容物のアトリビュートにする。このオペレーアgン は、そのアトリビュートが存在するならば、最初にこれを廃棄する。 オブジェクトがアトリピ1−トのフンストレイントに違反している場合は、エフ セブンシン(”Argumentlnvalid’ )が送出され、アトリビュ ートがリードオンリである場合は、エクセブン菖ン(”AttributeRe adOnly”)が送出され、識別子がリクエスタにとってアクセス可能なレス ポンダの内容物の7トリビ二−トを示していない場合は、エフセブンラン(”F eatureUnavai table”)が送出される。 ■あ込・ unprotected op (tickets: proteeted S et [lnteger])ShippingBox throws Po5itionlnvalid;内容物がレスポンダのものと 同一である新しいン・ノピングボ/クスを生成してリターンし、レスポンダのア トリビュート”destinations”において指定された位置(ボジシヲ ン: position)にあるチケット(t+ckets”)を、この新しい 7、ピノグボクラスに移動し、それらをニル(0)に置き換える。 指定されたボジシテンが不適切な場合は、エクセブ/曹ン(Po5itionl nvalid″)が送出される。 re+H1eet unprotected op (exception: TripExcep tion:newDestinaLion: copied TicketlN il):レスボンダのアトリビュート” destinations”からニル (0)の項目(アイテム:item)を除去し、残っているアイテムがある場合 にのみ(iff)、この残っている各アイテムをチケット(アーギュメント°’  nevDescination″)で置き換える。そして、エクセブ/=1ノ (アーギュメント”exceptton″)をレスポンダのアトリビュート”  exception”にする。 アダブチ−7−Jン(AdatallonS)並置 使用できないコピーを送出する。 finalize モデル(Model)によって定義されたようにレスポンダをリボノクスする。 4.5 ドラベルド(Traveled)クラス(Class) Travel ed abstract 1nterface O!(・)ニブライベートインスタン スオペレーン=ン Pr1vate In5tance Oerationst ransferOut unprotected op (shippingBox: unprote cted ShippingBox;suggestedNextHop: p rotectedTickeL INi l : canDel+ver: Boolean);チケット(アーギュメント”su ggestedNextHop” )がニル(0)ではない場合には、このチケ ットによって定義されるプロセスに、シツピングボックス(アーギュメント”s hippingBox”)をトランスファアウトし、そのチケットがニル(0) ノtj1合には、エノジンによって選択されるブレイスに、シツピングボックス (アーギュメント” shippingBox″)をトランスファアウトする。 たとえチケ/トが存在していても、チケットは、次のホッブがチケットによって 定義されるブレイスであることを、要求するのではなく、示唆する。ブーリアン (アーギュメント”canDeliver” )は、エンジンがシツピングボッ クスを自由に配送することができるならば、エンジンが7.ピノグボ、クスを自 由に配送するか否かを指示する。 /ステムインスタンスオペレーアMノ S 5teIIInstance Oe ratlontransferredln abstracLunprotectedOp(shippingBox:un protectedShippingBox;previousllop+ p rotected Ticket):/ノビングボクラス(アーギュメント”  ShippingBox” ) がチケット(アーギュメンh ” previ ousHop’“)によって定義されたブレイスからトランスファインされると きに、要求される。 (以下、余白。) リモートプログラム F i g、4 B F i g、5 B Fig、6A Fig、6C Fig、7A Fig、7B Fig、8A Fig、8B Fig、8C Fig、8F ののQ:lQ:l 鷲ψ♀賛 Fig、12 へ 4oO Fig、14A 141゜ Fig、14B Fig、14C Fig、14D Fig、14E Fig、14F Fig、14G Fig、19 テ゛イクショナリ Fig、20A 特表千7−509799 (244) Fig、24A Fig、24B Fig、24C 特表千7−509799 (24g) Fig、30A Fig、30B 、 Fig、32 Fig、33 Fig、35 Fig、36 Fig、38 Fig、41A Fig、41B Fig、45 Fig、46 Fig、48 4902E Fig、49 Fig、50 Fig、51 Fig、52A ブリテ゛イファインド Fig、52B Fig、53 Tニ ア Fig、54 Fig、55C Fig、56A Fig、56C 57■ Fig、57 Fig、58A Fig、58B 1:ig、59 6αη Fig、60 Fig、61 Fig、62A Fig、62B 63ω Fig、63 1”ig、64 Fig、65 Fig、66A Fig、66B Fig、67 Fig、68 Fig、69 Fig、70 ユーサ゛−テ゛イファインド Fig、71 フロントページの続き (81)指定国 GA(BF、BJ、CF、CG。 CI、CM、GA、GN、ML、MR,NE、SN、TD、 TG)、 AT、  AU、 BB、 BG、 BR,BY、 CA、 CH,CN、 CZ、 D E、 DK、 ES、 FI、 GB、 GE、 HU、JP、 KG、 KP 、 KR,KZ、 LK。 LU、LV、MD、MG、MN、MW、NL、No、NZ、 PL、 PT、  R○、RU、SD、SE、SI、SK、TJ、TT、UA、UZ、VN (72)発明者 ステートマン、ダグラス エイ。 アメリカ合衆国 カリフォルニア州 94040 、マウンテン ビュー #3.ラッサム ストリート 2250

Claims (1)

  1. 【特許請求の範囲】 請求の範囲は以下の通りである。 1.コンピュータネットワークにおけるリモートプログラミングの実行方法は、 以下の工程を有する: エージェントクラス及びプレイスクラスを含む複数のオブジェクト指向クラスを 定義し、 コンピュータプロセスのために、前記オブジェクト指向クラス、前記オブジェク ト指向クラスのサブクラス及びgoオペレーションを含むインストラクションを 形成し、 前記コンピュータネットワーク内のプロセッサにおいて前記インストラクション をインクープリートし、前記goオペレーションに応答して、エージェントプロ セスが、プレイスプロセスに転送される。 ここで、前記エージェントプロセスは、前記エージェントクラスのメンバであり 、前記プレイスプロセスは、前記プレイスクラスのメンバである。 2.請求の範囲第1項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記goオペレーションを前記エージェントプロセス内において形成する。 3.請求の範囲第1項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記プレイスのサブプレイスを形成する。 ここで、前記サブプレイスは、前記プレイスクラスのメンバであり、前記プレイ スは、前記サブプレイスのスーパープレイスである。 4.請求の範囲第1項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記エージェントプロセスをオブジェクトのオーナーとして指定する。 5.請求の範囲第4項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記オブジェクト内にダイジェストを形成する。 6.請求の範囲外5項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記プレイスプロセスにおいて、第2のオブジェクトを前記第1のオブジェクト と相互変換し、前記第1のオブジェクトは、前記プレイスプロセスに転送されな い。 ここで、前記第2のオブジェクトは、前記第1のダイジェストと同等の第2のダ イジェストを有する。 7.請求の範囲第1項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記プレイスプロセスをチケット手段によって特定する。 8.請求の範囲第7項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記チケット手段を前記エージェントプロセス内に形成する。 9.請求の範囲第7項に記載のコンピュータネットワークにおけるリモートプロ グラミングの実行方法は、さらに、 前記プレイスプロセスのアドレスを前記チケット手段内に形成する。 10.請求の範囲第9項に記載のコンピュータネットワークにおけるリモートプ ログラミングの実行方法において、 前記アドレスは、テレアドレスである。 11.請求の範囲第7項に記載のコンピュータネットワークにおけるリモートプ ログラミングの実行方法は、さらに、前記プレイスプロセスのネームを前記チケ ット手段内に形成する。 12.請求の範囲第11項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法において、前記ネームは、テレネームである。 13.請求の範囲第1項に記載のコンピュータネットワークにおけるリモートプ ログラミングの実行方法は、さらに、クラスオブジェクトのクラスを定義し、ク ラスオブジェクトを形成し、 ここで、前記クラスオブジェクトは、(i)クラスオブジェクトの前記クラスの メンバであり、(ii)前記オブジェクト指向クラスの選択された1つのサブク ラスである第1のクラスを定義する。 前記第1のクラスのメンバであるオブジェクトを形成する。 ここで、前記エージェントプロセスは、前記オブジェクトを所有し、前記エージ ェントプロセスの前記プレイスプロセスヘの転送は、前記オブジェクト及び前記 クラスオブジェクトの前記プレイスプロセスヘの転送である。 14.コンピュータネットワークにおけるリモートプログラミングの実行方法は 、以下の工程を有する: エージェントクラス及びプレイスクラスを含む複数のオブジェクト指向クラスを 定義し、 コンピュータプロセスのために、前記オブジェクト指向クラス、前記オブジェク ト指向クラスのサブクラス及びscndオペレーションを含むインストラクショ ンを形成し、 前記コンピュータのネットワーク内のプロセッサにおいて前記インストラクショ ンをインクープリートし、前記sendオペレーションに応答して、エージェン トプロセスの1つのクローンが、プレイスプロセスに転送される。 ここで、前記クローン及び前記エージェントプロセスは、それぞれ前記エージェ ントクラスのメンバであり、前記プレイスプロセスは、前記プレイスクラスのメ ンバである。 15.請求の範囲第14項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記sendオペレーションを前記エー ジェントプロセス内において形成する。 16.請求の範囲第14項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記プレイスのサブプレイスを形成する 。 ここで、前記サブプレイスは、前記プレイスクラスのメンバであり、前記プレイ スは、前記サブプレイスのスーパープレイスである。 17.請求の範囲第14項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記エージェントプロセスをオブジェク トのオーナーとして指定する。 18.請求の範囲第17項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法において、前記クローンの転送は、前記プロセスのコ ピーの前記プレイスプロセスへの転送である。 19.請求の範囲第18項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記オブジェクト内にダイジェストを形 成する。 20.請求の範囲第19項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記プレイスプロセスにおいて、前記オ ブジエクトと異なる第2のオブジェクトを前記コピーと相互変換し、前記コピー は、前記プレイスプロセスに転送されない。 ここで、前記第2のオブジェクトは、前記第1のダイジェストと同等の第2のダ イジェストを有する。 21.請求の範囲第14項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記プレイスプロセスをチケット手段に よって特定する。 22.請求の範囲第21項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記チケット手段を前記エージェントプ ロセス内に形成する。 23.請求の範囲第21項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記プレイスプロセスのアドレスを前記 チケット手段内に形成する。 24.請求の範囲第23項に記載のコンピュータネットワークにおけるリモート プログラミングの実施方法において、前記アドレスは、テレアドレスである。 25.請求の範囲第21項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記プレイスプロセスのネームを前記チ ケット手段内に形成する。 26.請求の範囲第25項に記載のコンピュータネットワークにおけるリモート プログラミングの実施方法において、前記ネームは、テレネームてある。 27.請求の範囲第14項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法において、さらに、前記sendオペレーションに応 答して、前記エージェントプロセスの第2のクローンは第2のプレイスプロセス に転送される。 ここで、前記第2のクローンは、前記クローンとは異なり、前記エージェントク ラスのメンバであり、前記第2のプレイスプロセスは、前記プレイスプロセスの メンバである。 28.請求の範囲第27項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記第1のクローンを前記第1のプレイ スプロセスに、前記第2のクローンを前記第2のプレイスプロセスに転送するた めに、前記コンピュータネットワークの複数のコンピュータのうちの1つのコン ピュータに前記第1及び第2のクローンを転送することを決定し、 前記第1のクローンを前記1つのコンピュータに転送し、前記1つのコンピュー タにおいて前記第1のクローンから前記第2のクローンを形成する。 29.請求の範囲第28項に記載のコンピュータネットワークにおけるリモート プログラミングの実行方法は、さらに、前記1つのコンピュータから前記第1の プレイスプロセスに前記第2のクローンを転送し、 前記1つのコンピュータから前記第2のプレイスプロセスに前記第2のクローン を転送する。 30.コンピュータにおけるプロセス間通信方法は、以下の工程を有する:エー ジェントクラスを含む複数のオブジェクト指向クラスを定義し、コンピュータプ ロセスのために、前記オブジェクト指向クラス、前記オブジェクト指向クラスの サブクラス及びmeetオペレーションを含むインストラクションを形成し、 前記コンピュータのネットワーク内のプロセッサにおいて前記インストラクショ ンをインタープリートし、前記meetオペレーションに応答して、ミーティン グプレイスプロセスが、第2のエージェントプロセスへの第1のエージェントプ ロセスのアクセスを供与し、前記第1のエージェントプロセスへの前記第2のエ ージェントプロセスのアクセスを供与する。 ここで、前記第1及び第2のエージェントプロセスは、前記エージェントクラス のメンバである。 31.請求の範囲第30項に記載のコンピュータにおけるプロセス間通信方法に おいて、 前記ミーティングプレイスプロセスは、前記複数のオブジェクト指向クラス中の プレイスクラスのメンバであり、前記第1及び第2のエージェントプロセスは、 前記ミーティングプレイスプロセスを占有する。 32.請求の範囲第31項に記載のコンピュータにおけるプロセス間通信方法は 、さらに、 第2のプレイスプロセスを形成する。 ここで、第2のプレイスプロセスは、前記プレイスクラスのメンバであり、前記 第2のプレイスプロセスは、前記ミーティングプレイスプロセスのサブプレイス であり、前記ミーティングプレイスは、前記第2のプレイスのスーパープレイス である。 33.コンピュータネットワークにおけるプロセスの移動の制御方法は、以下の 工程を有する: エージェントクラス、プレイスクラス及びチケットクラスを含む複数のオブジェ クト指向クラスを定義し、 前記プレイスクラスのメンバである複数のプレイスプロセスを前記コンピユータ ネツトワーク内に形成し、 前記エージェントクラスのメンバであって、前記複数のプレイスプロセス中の第 1のプレイスプロセスを占有するエージェントプロセスを形成し、前記チケット クラスのメンバであって、前記複数のプレイスプロセス中の前記第1のプレイス プロセスから第2のプレイスプロセスへの前記エージェントプロセスの移動を含 むトリップを定義するチケットを形成する。 34.コンピュータネットワークにおけるプロセスの能力の制限方法は、プレイ スプロセス及びパーミットクラスを含む複数のオブジェクト指向クラスを定義し 、 前記プレイスクラスのメンバであるプロセスを形成し、前記パーミットクラスの メンバであって、前記プロセスの1以上の能力を特定するパーミットを形成する 。 35.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスクラス内にgoオペレーションを定義し、前記プロセスが前記goオペ レーションを遂行しうるか否かを、前記パーミットにおいて特定する。 36.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスクラス内にsendオペレーションを定義し、前記プロセスが前記se ndオペレーションを遂行しうるか否かを、前記パーミットにおいて特定する。 37.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスクラス内にchargeオペレーションを定義し、前記プロセスが前記 chargeオペレーションを遂行しうるか否かを、前記パーミットにおいて特 定する。 38.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスクラス内にterminateオペレーションを定義し、前記プロセス が前記terminateオペレーションを遂行しうるか否かを、前記パーミッ トにおいて特定する。 39.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスが前記プロセスと異なった第2のプロセスを作り出すことができるか否 かを、前記パーミット中において特定する。 ここで、前記第2のプロセスは、前記プロセスクラスのメンバである。 40.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、オブ ジェクト指向プレイスクラスを定義し、前記プロセスが前記プレイスプロセスの 複数のメンバを作り出すことができるか否かを、前記パーミットにおいて特定す る41.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前 記プロセスが失敗したときに前記プロセスが再スタートきれるか否かを、前記パ ーミットにおいて特定する。 42.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスに割り当てられた処理量を、前記パーミットにおいて特定する。 43.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスが終了する時間を前パーミットにおいて特定する。 44.請求の範囲第34項に記載のプロセスの能力の制限方法は、さらに、前記 プロセスクラス内にrestrictオペレーションを定義し、コンピュータプ ロセスのために、前記クラス、前記クラスのサブクラス及び前記restric tオペレーションを含むインストラクションを形成し、前記コンピュータネット ワーク内のプロセッサにおいて前記インストラクションをインタープリートし、 前記restrictオペレーションに応答して、前記パーミットと異なる第2 のパーミットが形成され、ここで、前記第2のパーミットは、前記パーミットク ラスのメンバであり、前記プロセスの前記1以上の能力の1つのグループを特定 する。 前記第2のパーミットによって特定された1以上の能力の前記グループに前記プ ロセスを制限する。 45.コンピュータにおけるインストラクションセットの種々のバージョンのプ ロセスをインタープリートする方法は、複数のクラスからなるクラス及びサイテ ションのクラスを含む複数のオブジェクト指向クラスを定義し、 前記複数のクラスからなるクラスのメンバである1以上のクラスオブジェクトを 形成し、 前記1以上のクラスオブジェクトのうちの第1のクラスオブジェクトを特定する とともに、前記クラスオブジェクトのうちのいずれかが前記第1のオブジェクト に対して後方向に互換であるかを特定するサイテションを、前記第1のクラスオ ブジェクトにおいて形成する。 46.複数のコンピュータを有するコンピュータネットワークにおける通信プロ セスは、 0以上のエージェントプロセスのために、1つの前記コンピュータ内の場所であ る複数のプレイスプロセスを、前記コンピュータネットワーク内に設け、前記複 数のプレイスプロセスのうちの目的地プレイスプロセスヘのエージェントプロセ スのトリップをチケット手段によって特定し、前記エージェントプロセス内のs endオペレーションに応答して、前記エージェントプロセスのクローンを前記 目的地プレイスプロセスに転送する。 47.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、第2のチケット手段により、前記 複数のプレイスプロセスのうちの第2の目的地プレイスプロセスへの前記エージ ェントプロセスの前記トリップと異なる第2のトリップを特定する。 48.請求の範囲第47項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記第1のトリップを行なう前記 第1のクローンと前記第2のトリップを行なう第2のクローンのどちらも前記複 数のコンピュータのうちの1つのコンピュータに転送されることを定め、 前記第1のクローンを前記1つのコンピュータに移動し、前記1つのコンピュー タにおいて、前記第1のクローンから前記第2のクローンを形成する。 49.請求の範囲第48項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記第1のクローンを前記第1の 目的地プレイスプロセスに転送する。 50.請求の範囲第48項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記第2のクローンを前記第2の 目的地プレイスプロセスに転送する。 51.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記エージェントプロセス内のg oオペレーションに応答して、前記エージェントプロセスを、前記チケット手段 によって特定された前記目的地プレイスプロセスに転送する。 52.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記目的地プレイスプロセスを前 記チケット手段のネームによって特定する。 53.請求の範囲第52項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記ネームは、テレネームである 。 54.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記目的地プレイスプロセスを前 記チケット手段のアドレスによって特定する。 55.請求の範囲第54項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスおいて、前記アドレスは、テレアドレスである 。 56.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段中において、前 記目的地プレイスプロセスがメンバであるクラスのサイテションによって前記目 的地プレイスプロセスを特定する。 57.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段中において、前 記目的地プレイスプロセスのアドレスと、前記目的地プレイスプロセスのネーム と、前記目的地プレイスプロセスがその1つのメンバであるクラスのサイテショ ンとの任意の組み合わせによって前記目的地プレイスプロセスを特定する。 58.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段中において、前 記トリップの最長期間を特定する。 59.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段中において、前 記トリップの望ましい期間を特定する。 60.請求の範囲第46項項に記載の通信プロセス複数のコンピュータを有する コンピュータネットワークにおける通信プロセスは、さらに、前記チケット手段 中において、転送手段を特定する。 ここで、前記転送手段は、前記クローンを転送するためのコンピュータ間通信方 法の形式を特定する。 61.請求の範囲第46項に記載の榎数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段中に含まれる目 的地パーミットにより、前記目的地プレイスプロセスにおける前記エージェント プロセスのデッドラインを制御する。 62.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段に含まれる目的 地パーミットにより、前記目的地プレイスプロセスにおける前記エージェントプ ロセスが遂行することを許可されるオペレーションを制御する。 63.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段に含まれる目的 地パーミットにより、前記目的地プレイスプロセスにおける前記エージェントプ ロセスが使用することを許可されるリソースを制御する。 64.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記チケット手段に含まれる目的 地パーミットにより、前記目的地プレイスプロセスの他のプロセスに対する前記 目的地プレイスプロセスにおける前記エージェントプロセスの相対的な優先度を 特定する。 65.町求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、プロセスが許容される能力をパー ミット手段によって制御する。 66.請求の範囲第65項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記パーミット手段は、固有のパー ミットである。 67.請求の範囲第66項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記パーミット手段は、ローカルパ ーミットである。 68.請求の範囲第65項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記パーミット手段は、一時的なパ ーミットである。 69.請求の範囲第65項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記能力は、前記プロセスが使用で きるリソースを有する。 70.請求の範囲第65項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記能力は、その後ではプロセスが 続行することができないデッドラインを有する。 71.請求の範囲第65項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記能力は、他のプロセスに対する 前記プロセスの相対的な優先度を有する。 72.請求の範囲第65項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記能力は、前記プロセスが選択さ れたオペレーションを遂行する許可を有する。 73.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記エージェントプロセスは、オブ ジェクトを所有する。 74.請求の範囲第73項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記オブジェクトは、ダイジェスト を有する。 75.請求の範囲第74項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記エージェントプロセスのクロー ンを転送する前記工程は、前記オブジェクトのコピーの転送を有する。 76.請求の範囲第75項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記目的地プレイスプロセスにお いて、第2のオブジェクトを前記コピーと相互変換し、前記コピーは前記目的地 プレイスプロセスには転送されない。 ここで、前記第2のオブジェクトは、前記ダイジェストと同等のグイジェストを 有する。 77.請求の範囲第73項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスは、さらに、前記目的地プレイスプロセスにお いて、前記オブジェクトの代わりに相互変換されたオブジェクトを使用して、前 記オブジェクトを前記目的地プレイスプロセスに転送することを不要とする。 78.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記転送工程は、前記目的地プレイ スプロセスに進入する工程を有する。 79.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記転送工程は、前記転送元のプレ イスプロセスを退出する工程を有する。 80.請求の範囲第46項に記載の複数のコンピュータを有するコンピュータネ ットワークにおける通信プロセスにおいて、前記目的地プレイスプロセスは、ミ ーティングプレイスプロセスであり、前記ミーティングプレイスは、リクエスタ エージニントプロセスとペティションドエージエントプロセス間のミーティング を取り計らう。 81.コンピュータにおける通信プロセスは、第1のエージェントプロセス及び 第2のエージエントプロセスを設け、ペティション手段により、前記第1のエー ジェントプロセスと第2のエージェントプロセス間のミーティングを特定し、前 記ペティション手段によって定義された前記第1のエージェントプロセスと第2 のエージェントプロセス間の前記ミーティングを取り計らう。 82.請求の範囲第81項に記載のコンピュータにおける通信プロセスは、さら に、 前記第1のエージェントプロセス内に前記ペティション手段を形成する。 83.請求の範囲第81項に記載のコンピュータにおける通信プロセスにおいて 、 ミーティングを特定する前記工程は、前記ペティション手段内に前記第2のエー ジェントプロセスを特定する。 84.請求の範囲第83項に記載のコンピュータにおける通信プロセスにおいて 、 前記第2のエージェントプロセスを特定する前記工程は、前記ペティション手段 中において、前記第2のエージェントをネームによって特定する。 85.請求の範囲第84項に記載のコンピュータにおける通信プロセスにおいて 、 前記ネームは、テレネームである。 86.請求の範囲第83項に記載のコンピュータにおける通信プロセスにおいて 、 前記第2のエージェントプロセスを特定する前記工程は、前記ペティション手段 中において、前記第2のエージェントプロセスがメンバであるクラスを特定する 。 87.請求の範囲第83項に記載のコンピュータにおける通信プロセスにおいて 、 前記第2のエージェントプロセスを特定する前記工程は、前記ペティション手段 中において、前記第2のエージェントプロセスがメンバであるクラスのサイテシ ョンを特定する。 88.請求の範囲第81項に記載のコンピュータにおける通信プロセスにおいて 、 ミーティングを特定する前記工程は、前記ペティション手段中において、前記ミ ーティングを取り計らうための最長期間を特定する。 89.請求の範囲第81項に記載のコンピュータにおける通信プロセスにおいて 、 前記ミーティングを取り計らう前記工程は、前記第2のエージェントプロセスヘ のリファレンスを前記第1のエージェントプロセスに供与する。 90.請求の範囲第89項に記載のコンピュータにおける通信プロセスにおいて 、 前記ミーティングを取り計らう前記工程は、前記第1のエージェントプロセスヘ のリファレンスを前記第2のエージェントプロセスに供与する。 91.請求の範囲第81項に記載のコンピュータにおける通信プロセスは、さら に、 前記第1のエージェントプロセス中におけるインストラクションに応答して、前 記第2のエージェントプロセス中のオペレーションの遂行を生じさせる。 92.請求の範囲第91項に記載のコンピュータにおける通信プロセスにおいて 、 前記第1のエージェントプロセスは、オブジェクトを所有する。 93.請求の範囲第92項に記載のコンピュータにおける通信プロセスは、さら に、 前記オブジェクトヘのリファレンスを前記第2のエージエントプロセスに供与す る。 94.請求の範囲第93項に記載のコンピユータにおける通信プロセスにおいて 、 前記リファレンスは、保護されたリファレンスである。 95.請求の範囲第92項に記載のコンピュータにおける通信プロセスは、さら に、 前記オブジェクトのコピーへのリファレンスを前記第2のエージェントプロセス に供与する。 96.請求の範囲第91項に記載のコンピュータにおける通信プロセスにおいて 、 前記第2のエージェントプロセスは、オブジェクトを所有する。 97.請求の範囲第96項に記載のコンピュータにおける通信プロセスは、さら に、 前記オブジェクトヘのリファレンスを前記第1のエージェントプロセスに供与す る。 98.請求の範囲第97項に記載のコンピュータにおける通信プロセスにおいて 、 前記リファレンスは、保護されたリファレンスである。 99.請求の範囲第96項に記載のコンピュータにおける通信プロセスは、さら に、 前記オブジェクトのコピーへのリファレンスを前記第1のエージエントプロセス に対して供与する。 l00.複数のコンピュータを有するコンピュータネットワークにおける通信シ ステムは、 チケット手段及びsendオペレーションを有するエージェント手段と、前記複 数のコンピュータの1つにおいてそれぞれが動作する複数のプレイス手段とを有 する。 ここで、前記エージェント手段は、前記複数のプレイス手段のうちの第1のプレ イス手段であり、 前記チケット手段は、前記複数のプレイス手段のうちの目的地プレイス手段への 前記エージェント手段のトリップを特定し、前記sendオペレーションは、前 記エージェント手段のクローンを前記目的地プレイス手段に転送する。 101.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記エージェント手段は、前記 第1のチケット手段と異なり、第2の目的地プレイス手段への前記エージェント 手段の第2のトリップを特定する第2のチケット手段を有する。 102.請求の範囲第101項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記sendオペレーションの 遂行によって前記エージェント手段の第2のクローンが前記第2の目的地プレイ ス手段に転送される。 103.請求の範囲第102項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記第1のトリップ及び前記第 2のトリップは、前記複数のコンピュータうちの1つのコンピュータへの転送を 含み、前記第1のクローンを前記第1の目的地プレイス手段に転送し、前記第2 のクローンを前記第2の目的地手段に転送する際に、前記sendオペレーショ ンの遂行により、 (a)前記第1のクローンを前記1つのコンピュータに転送し、(b)前記1つ のコンピュータにおいて、前記第1のクローンから前記第2のクローンを形成す る。 104.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記エージェント手段は、go オペレーションを有する。 ここで、前記goオペレーションは、第3のチケット手段によって特定された第 3の目的地プレイス手段に前記エージェント手段を転送する。 105.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段を特定するネームを有する。 106.請求の範囲第105項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記ネームは、テレネームであ る。 107.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段のアドレスを有する。 108.請求の範囲第107項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記アドレスは、テレアドレス である。 109.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段をメンバとするクラスを特定するサイテション手段を有する。 110.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段のアドレスと、前記目的地プレイス手段のネームと、前記目的地 プレイス手段をメンバとするクラスを特定するサイテション手段とからなる群か ら選択された任意の組合せを有する。 111.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記トリ ップの最長期間を特定する手段を有する。 112.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記トリ ップの望ましい期間を特定する手段を有する。 113.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記トリ ップ手段を完成させるコンピュータ間通信手段の形式を特定するウェイ手段を有 する。 114.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段における前記エージェント手段のデッドラインを制御するパーミ ット手段を有する。 115.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段における前記エージェント手段が遂行することを許可されるオペ レーションを制御するパーミット手段を有する。 116.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段における前記エージェント手段が使用することを許可されるリソ ースを制御するパーミット手段を有する。 117.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記チケット手段は、前記目的 地プレイス手段の他のエージェント手段に対する前記目的地プレイス手段におけ る前記エージェント手段の相対的な優先度を特定するパーミット手段を有する。 118.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムは、さらに、エージェント手段が許容され る能力を制御するパーミット手段を有する。 119.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおいて、 前記パーミット手段は、固有のパーミットである。 120.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記パーミット手段は、ローカ ルパーミットである。 121.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記パーミット手段は、一時的 なパーミットである。 122.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記能力は、前記エージェント 手段が使用できるリソースを有する。 123.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記能力は、その後では前記エ ージェント手段が続行することのできないデッドラインを有する。 124.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムは、さらに、他のエージェント手段を有す る。 ここで、前記能力は、前記他のエージェント手段に対する前記エージェント手段 の相対的な優先度を有する。 125.請求の範囲第118項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記能力は、前記エージェント 手段が選択されたオペレーションを遂行する許可を有する。 126.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記エージエント手段は、オブ ジェクトを所有する。 127.請求の範囲第126項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記オブジェクトは、ダイジェ ストを有する。 128.請求の範囲第127項に記載の複数のコンピュータを有するコシピュー タネットワークにおける通信システムにおいて、前記sendオペレーションの 遂行により、前記オブジェクトのコピーが前記クローンとともに転送される。 129.請求の範囲第128項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記目的地プレイス手段におい て、第2のオブジェクトは前記コピーと相互変換され、 前記第2のオブジェクトは、前記第1のダイジェストと同等のダイジェストを有 することにより、前記コピーを前記目的地プレイス手段に転送することを不要と する。 130.請求の範囲第128項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記目的地プレイス手段におい て、前記sendオペレーションが前記コピーの代わりに相互変換されたオブジ ェクトを使用することにより、前記オブジェクトの前記コピーを前記目的地プレ イス手段に転送することを不要にする。 131.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記プレイス手段は、前記プレ イス手段に進入するための手段を有する。 132.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記プレイス手段は、前記プレ イス手段を退出する手段を有する。 133.請求の範囲第100項に記載の複数のコンピュータを有するコンピュー タネットワークにおける通信システムにおいて、前記プレイス手段は、リクエス タエージェント手段とレスポンダエージェント手段間のミーティングを取り計ら うミーティングプレイス手段を有する。 134.コンピュータにおける通信システムは、エージェント手段のための場所 であり、meetオペレーションを有する複数のミーティングプレイス手段と、 ペティション手段と、 前記複数のエージェント手段のうちの第1のエージェント手段と、前記複数のエ ージェント手段のうちの第2のエージェント手段とを有する。 ここで、前記第1及び第2のエージェント手段は、前記複数のエージェント手段 のうちのいずれともミートでき、前記ペティション手段は、前記第1のエージェ ント手段と第2のエージェント手段間のミーテングを特定し、 前記ミーティング手段は、前記meetオペレーションに応答して、前記ミーテ ィングを取り計らう。 135.請求の範囲第134項に記載のコンピュータにおける通信システムにお いて、 前記第1のエージェント手段は、前記ペティション手段を含む。 136.請求の範囲第135項に記載のコンピュータにおける通信システムにお いて、 前記ペティション手段は、前記第2のエージェント手段を特定することにより、 前記ミーティングを特定する。 137.請求の範囲第136項に記載のコンピュータにおける通信システムにお いて、 前記ペティション手段は、前記第2のエージェント手段を特定するネームを有す る。 138.請求の範囲第137項に記載のコンピュータにおける通信システムにお いて、 前記ネームは、テレネームである。 139.請求の範囲第136項に記載のコンピュータにおける通信システムにお いて、 前記ペティション手段は、前記第2のエージェント手段がメンバであるクラスを 特定することにより、前記第2のエージェントを特定する。 140.請求の範囲第136項に記載のコンピユータにおける通信システムにお いて、 前記ペティション手段は、前記第2のエージェント手段がメンバであるクラスを 特定するサイテションを有する。 141.請求の範囲第134項に記載のコンピュータにおける通信システムにお いて、 前記ペティション手段は、前記ミーティングを取り計らうための最長期間を規定 する。 142.請求の範囲第134項に記載のコンピュータにおける通信システムにお いて、さらに、 前記mectオペレーションは、前記第2のエージェント手段へのリファレンス を前記第1のエージェント手段に供与する。 143.請求の範囲第142項に記載のコンピュータにおける通信システムにお いて、さらに、 前記meetオペレーションは、前記第1のエージエント手段へのリファレンス を前記第2のエージェント手段に供与する。 144.請求の範囲第134項に記載のコンピュータにおける通信システムにお いて、さらに、 前記第1のエージェント手段は、前記第2のエージェント手段中のオペレーショ ンの遂行を生じさせる。 145.請求の範囲第144項に記載のコンピュータにおける通信システムにお いて、 前記第1のエージェント手段は、オブジェクトを所有する。 146.請求の範囲第145項に記載のコンピュータにおける通信システムにお いて、さらに、 前記第1のエージェント手段は、前記オブジェクトのリファレンスを前記第2の エージェント手段に供与する。 147.請求の範囲第146項に記載のコンピュータにおける通信システムにお いて、 前記リファレンスは、保該されたリファレンスである。 148.請求の範囲第145項に記載のコンピュータにおける通信システムにお いて、さらに、 前記第1のエージェント手段は、前記オブジエクトのコピーへのリファレンスを 前記第2のエージェント手段に供与することができる。 149.請求の範囲第144項に記載のコンピュータにおける通信システムにお いて、 前記第2のエージェント手段は、オブジェクトを所有する。 150.請求の範囲第149項に記載のコンピュータにおける通信システムにお いて、さらに、 前記第2のエージェント手段は、前記オブジェクトヘのリファレンスを前記第1 のエージェント手段に供与することができる。 151.請求の範囲第150項に記載のコンピュータにおける通信システムにお いて、 前記リファレンスは、保護されたリファレンスである。 152.請求の範囲第149項に記載のコンピュータにおける通信システムにお いて、 前記第2のエージェント手段は、前記オブジェクトのコピーへのリファレンスを 前記第1のエージエント手段に供与する。 153.1以上のコンピュータを有するコンピュータネットワークの通信システ ムにおいて、第1のエンジンプロセスから第2のエンジンプロセスにデータを転 送するデータ転送方法は、以下の工程を有する:(a)1以上のエージェントプ ロセスを実行する実行手段を設け、ここで、前記実行手段は、第1のエンジンプ ロセス及び第2のエンジンプロセスを有し、各前記エージェントプロセスは、コ ンピュータインストラクションセットの複数のインストラクションを有し、実行 状態を有する。 (b)前記コンピュータインストラクションセットにgoインストラクションを 設け、 ここで、前記goインストラクションは、前記第1のエンジンプロセスにおいて 実行される第1のエージェントプロセスに含まれ、前記goインストラクション の遂行により、 (i)前記第1のエンジンプロセスによる前記第1のエージェントプロセスの実 行の中断と、 (ii)前記第1のエージェントプロセスの前記実行状態が保存される前記第1 のエージェントプロセスの表現と、(iii)前記第1のエンジンプロセスから 第2のエンジンプロセスへの前記第1のエージェントプロセスの前記表現の転送 と、(iv)前記第2のエンジンプロセスによる前記第1のエージェントプロセ スの実行の再開とを生じさせる。 (c)前記第1のエージェントプロセスによる前記エージェントプロセスの実行 を生じさせることにより、前記goインストラクションの遂行を生じさせる。 154.請求の範囲第153項に記載のデータ転送方法において、前1己コンピ ュータインストラクションセットは、オブジェクト指向である。 155.請求の範囲第154項に記載のデータ転送方法において、前記複数のエ ージェントプロセスは、前記オブジェクト指向コンピュータインストラクション セットのオブジェクトである。 156.請求の範囲第153項に記載のデータ転送方法は、さらに、前記goイ ンストラクションの遂行を生じさせる前に前記第1のエージェントプロセスにデ ータを付加する工程を有する。 ここで、前記第1のエージェントプロセスの前記表現は、前記データを含み、 前記第2のエンジンプロセスへの前記第1のエージェントプロセスの前記表現の 転送は、前記データの転送を含む。 157.請求の範囲第153項に記載のデータ転送方法において、前記第1のエ ージェントプロセスは、前記第1のエンジンプロセスから前記第2のエンジンプ ロセスに転送されるメッセージを表すデータを有する。 ここで、前記goインストラクションの実行によって生ずる前記第1のエージェ ントプロセスの転送は、前記第1のエンジンプロセスから前記第2のエンジンプ ロセスへの前記データの転送を生じさせる。 158.請求の範囲第153項に記載のデータ転送方法において、前記第1のエ ンジンプロセスは、第1のコンピュータにおいて実行され、前記第2のエンジン プロセスは、第2のコンピュータによって実行される。 ここで、前記第1及び第2のコンピュータは、前記コンピュータネットワークの 一部分である。 159.第1のエンジンプロセスから1以上のエンジンプロセスにデータを転送 するデータ転送方法は、以下の工程を有する:(a)コンピュータインストラク ションセットのインストラクションを有する複数のエージェントプロセスを実行 する手段を設け、ここで、前記エージェントプロセス実行手段は、前記第1のエ ンジンプロセス及び1以上のエンジンプロセスを有し、各前記エージェントプロ セスは、実行状態を有する。 (b)前記コンピュータインストラクションセットにsendインストラクショ ンを設け、 ここで、前記sendインストラクションは、前記複数のエージェントプロセス 中の第1のエージェントプロセスに含まれ、前記sendインストラクションの 実行は、以下の工程を含む。 (i)前記第1のエージェントプロセスの1以上のコピーを形成し、これらのコ ピーは、前記第1のエージェントプロセスの前記実行状態を保存するとともに含 み、 (ii)前記第1のエージェントプロセスの各コピーを、前記第1のエンジンプ ロセスから前記1以上のエンジンプロセスにそれぞれ転送し、(iii)前記第 1のエージェントプロセスの前記各コピーを、前記1以上のエンジンプロセスに よってそれぞれ実行して、前記第1のエージェントプロセスの再開された実行を シュミレートする。 160.請求の範囲第159項に記載のデータ転送方法において、前記第1のエ ージェントプロセスの2以上の前記コピーが前記第1のエンジンプロセスから1 つの第2のエンジンプロセスに転送される条件のもとに、前記第1のエージェン トプロセスの前記2以上のコピーの転送は、以下の工程を有する: 前記第1のエージェントプロセスの1つのコピーを前記第2のエンジンプロセス に転送し、 前記第2のエンジンプロセスにおいて、前記1つのコピーから前記第1のエージ ェントプロセスの前記2以上のコピーを形成する。 161.あるコンピュータシステムにおいて実行されている第1のエージェント プロセスから、前記コンピュータシステムによって実行されている第2のエージ ェントプロセスにデータを転送するデータ転送方法であって、前記第1及び第2 のエージェントプロセスがプレイスプロセスの占有者であるデータ転送方法は、 以下の工程を有する: 前記第1のエージェントプロセスが送出するmeetインストラクションに応答 して、前記第2のエージェントプロセスによるプロシージャの実行を生じさせ、 ここで、前記プロシージャは、前記第2のエージェントプロセスの一部であり、 前記第2のエージェントコンピュータプロセスに含まれるコンピュータインスト ラクションのコレクションを有する。 前記第2のエージェントプロセスによって送出され、前記プロシージャの一部で ある第2のインストラクションに応答して、前記第2のエージェントプロセスへ のアクセス手段を前記第1のエージェントプロセスに供与する。 162.請求の範囲第161項に記載のデータ転送方法において、前記第2のエ ージェントプロセスによるプロシージャの実行を生じさせる前記工程は、以下の 工程を有する: 前記第1のエージェントプロセスによって送出される前記meetインストラク ションに応答して、前記プレイスプロセスによる第2のプロシージャの実行を生 じさせる。 ここで、前記プレイスプロセスによる前記第2のプロシージャの実行は、前記第 1のプロシージャを前記第2のエージエントプロセスによって実行させるインス トラクションを送出する。 163.請求の範囲第161項に記載のデータ転送方注において、前記第2のエ ージエントプロセスへのアクセス手段は、前記プレイスプロセスによって前記第 1のエージェントプロセスに供与される。 164.請求の範囲第163項に記載のデータ転送方法において、前記プレイス プロセスが、前記第2のエージェントプロセスへの前記アクセス手段を前記第1 のエージェントプロセスに供与すると略同時に、前記プレイスプロセスが、前記 第1のエージェントプロセスへのアクセス手段を前記第2のエージェントプロセ スに供与する。 165.第1のCPU及び第1のメモリを有する第1のコンピュータシステムか ら、第2のCPU及び第2のメモリを有する第2のコンピュータシステムへ第1 のコンピュータプロセスを転送する方法は、以下の工程を有する:前記第1のC PUにおいて、実行状態を有する前記第1のコンピュータプロセスの実行を開始 し、 前記第1のCPU内において、前記第1のコンピュータプロセスの実行を中断し 、 前記第1のコンピュータプロセスをデータとして前記第1のメモリに表現し、こ こで、前記データは、前記第1のコンピュータプロセスの実行が中断された時点 における前記第1のコンピュータプロセスの前妃実行状態を含む。 前記データを前記第1のメモリから前記第2のメモリに転送し、前記データで表 現された前記実行状態を有する第2のコンピュータプロセスを、前記データから 前記第2のコンピュータシステム上に形成し、前記第2のコンピュータプロセス を実行することにより、前記第2のCPUにおいて前記第1のコンピュータシス テムの実行の再開を実効的にシミュレートする。
JP50407395A 1993-07-08 1994-07-08 ネットワークにおけるプロセスの移動,実行及び相互作用に基づいた分散処理のためのシステム及び方法 Expired - Lifetime JP3723572B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US090,521 1993-07-08
US08/090,521 US5603031A (en) 1993-07-08 1993-07-08 System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
PCT/US1994/007397 WO1995002219A1 (en) 1993-07-08 1994-07-08 System and method for distributed computation based upon movement, execution and interaction of processes in a network

Publications (2)

Publication Number Publication Date
JPH07509799A true JPH07509799A (ja) 1995-10-26
JP3723572B2 JP3723572B2 (ja) 2005-12-07

Family

ID=22223151

Family Applications (2)

Application Number Title Priority Date Filing Date
JP50407395A Expired - Lifetime JP3723572B2 (ja) 1993-07-08 1994-07-08 ネットワークにおけるプロセスの移動,実行及び相互作用に基づいた分散処理のためのシステム及び方法
JP6179767A Pending JPH07182174A (ja) 1993-07-08 1994-07-08 リモートプログラミングの実施方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP6179767A Pending JPH07182174A (ja) 1993-07-08 1994-07-08 リモートプログラミングの実施方法

Country Status (6)

Country Link
US (2) US5603031A (ja)
EP (1) EP0634719A3 (ja)
JP (2) JP3723572B2 (ja)
AU (1) AU7216494A (ja)
CA (1) CA2143672C (ja)
WO (1) WO1995002219A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10191546A (ja) * 1997-11-28 1998-07-21 Toshiba Corp 電力系統保護制御システム
JPH10228380A (ja) * 1996-06-05 1998-08-25 Sun Microsyst Inc 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム
US6694370B1 (en) 1998-08-01 2004-02-17 International Business Machines Corporation Computerized method and system for implementing distributed applications
JP2005020713A (ja) * 2003-06-02 2005-01-20 Ricoh Co Ltd 画像形成システム、画像形成方法、画像形成プログラム、及び記録媒体

Families Citing this family (281)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
CN1912885B (zh) * 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US20060206397A1 (en) * 1995-02-13 2006-09-14 Intertrust Technologies Corp. Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
JPH08249290A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd 分散システム
JP3927600B2 (ja) * 1995-05-30 2007-06-13 コーポレーション フォー ナショナル リサーチ イニシアチブス 分散タスク実行のためのシステム
US6108704A (en) * 1995-09-25 2000-08-22 Netspeak Corporation Point-to-point internet protocol
JP3935986B2 (ja) * 1995-12-26 2007-06-27 富士通株式会社 ネットワークにおける情報資源の変化を通知するネットワーク情報資源監視システム
JP4094687B2 (ja) * 1995-12-26 2008-06-04 富士通株式会社 電子仲介システムおよび方法
US20050027617A1 (en) * 1996-01-17 2005-02-03 Privacy Infrastructure, Inc. Third party privacy system
US6119101A (en) * 1996-01-17 2000-09-12 Personal Agents, Inc. Intelligent agents for electronic commerce
US6286002B1 (en) * 1996-01-17 2001-09-04 @Yourcommand System and method for storing and searching buy and sell information of a marketplace
US5826010A (en) * 1996-02-12 1998-10-20 Banyan Systems, Inc. Predefined access rights for undefined attributes in a naming service
FI102869B (fi) 1996-02-26 1999-02-26 Nokia Mobile Phones Ltd Laite, menetelmä ja järjestelmä eri sovelluksiin liittyvien tietojen l ähettämiseksi ja vastaanottamiseksi
JPH09231156A (ja) * 1996-02-28 1997-09-05 Nec Corp プログラム受信機能付遠隔実行装置
WO1997035262A1 (fr) * 1996-03-15 1997-09-25 Hitachi, Ltd. Procede de generation automatique de programme et procede de commande d'execution
US6145013A (en) * 1996-04-09 2000-11-07 Communities.Com Distributed instantiation system and method
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
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
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
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
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information 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
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
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service 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
US6134603A (en) * 1998-03-20 2000-10-17 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
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
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6480881B1 (en) * 1996-05-29 2002-11-12 Fujitsu Limited Information access apparatus and method for cooperatively sharing knowledge about information source
JPH09325928A (ja) * 1996-06-06 1997-12-16 Fuji Xerox Co Ltd メッセージ通信方法及び装置
US6049838A (en) * 1996-07-01 2000-04-11 Sun Microsystems, Inc. Persistent distributed capabilities
JPH1021083A (ja) * 1996-07-02 1998-01-23 Hitachi Ltd ネットワーク接続された計算機システムにおけるデータ処理方法
JPH1055269A (ja) * 1996-08-08 1998-02-24 Fuji Xerox Co Ltd 情報処理装置
US6728784B1 (en) * 1996-08-21 2004-04-27 Netspeak Corporation Collaborative multimedia architecture for packet-switched data networks
JP3952544B2 (ja) * 1996-09-17 2007-08-01 株式会社東芝 分散システム
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6421731B1 (en) * 1996-10-29 2002-07-16 Telxon Corporation Dynamic next hop routing protocol
US6405360B1 (en) * 1996-11-08 2002-06-11 International Business Machines Corporation Property container type objects
JP2001502093A (ja) * 1996-11-14 2001-02-13 ミツビシ・エレクトリック・インフォメイション・テクノロジー・センター・アメリカ・インコーポレイテッド 実行可能コードの移動を含む経路情報方式のエージェントの移動
US6065039A (en) * 1996-11-14 2000-05-16 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Dynamic synchronous collaboration framework for mobile agents
US6233601B1 (en) * 1996-11-14 2001-05-15 Mitsubishi Electric Research Laboratories, Inc. Itinerary based agent mobility including mobility of executable code
JPH10207798A (ja) * 1997-01-27 1998-08-07 Mitsubishi Electric Corp 転送機構付情報収集システム
US20050021477A1 (en) * 1997-01-29 2005-01-27 Ganapathy Krishnan Method and system for securely incorporating electronic information into an online purchasing application
US6178453B1 (en) * 1997-02-18 2001-01-23 Netspeak Corporation Virtual circuit switching architecture
US6775264B1 (en) 1997-03-03 2004-08-10 Webley Systems, Inc. Computer, internet and telecommunications based network
US5900871A (en) * 1997-03-10 1999-05-04 International Business Machines Corporation System and method for managing multiple cultural profiles in an information handling system
US5907326A (en) * 1997-03-10 1999-05-25 International Business Machines Corporation System and method for updating cultural profiles with dragging and dropping locale objects
US6192354B1 (en) 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
TW504632B (en) 1997-03-21 2002-10-01 Ibm Apparatus and method for optimizing the performance of computer tasks using intelligent agent with multiple program modules having varied degrees of domain knowledge
US6085178A (en) * 1997-03-21 2000-07-04 International Business Machines Corporation Apparatus and method for communicating between an intelligent agent and client computer process using disguised messages
US6401080B1 (en) 1997-03-21 2002-06-04 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6335972B1 (en) 1997-05-23 2002-01-01 International Business Machines Corporation Framework-based cryptographic key recovery system
JP3996236B2 (ja) * 1997-05-27 2007-10-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理方法、サーバ、システム及び情報処理プログラムを格納した記録媒体
US6473893B1 (en) 1997-05-30 2002-10-29 International Business Machines Corporation Information objects system, method, and computer program organization
JPH1115666A (ja) * 1997-06-10 1999-01-22 Internatl Business Mach Corp <Ibm> コンピュータ・システム、メッセージ・モニター方法、及び関連メッセージ送信方法
JP3883647B2 (ja) * 1997-06-10 2007-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
JP3490256B2 (ja) 1997-06-12 2004-01-26 三菱電機株式会社 エージェント方式
JP3954689B2 (ja) 1997-06-12 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
US6065040A (en) * 1997-07-07 2000-05-16 International Business Machines Corporation Computer system having agent retracting method and agent returning method
US6006249A (en) * 1997-08-19 1999-12-21 The Chase Manhattan Bank Method and apparatus for concurrent data processing
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
JP3544457B2 (ja) 1997-08-22 2004-07-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 電子メール又はエージェントを利用してクライアント上でguiを作成する方法及び装置、そのためのプログラムを記録した記録媒体
US6112304A (en) * 1997-08-27 2000-08-29 Zipsoft, Inc. Distributed computing architecture
JPH1185524A (ja) * 1997-09-05 1999-03-30 Toshiba Corp 情報処理装置及び方法並びに情報処理プログラムを記録した記録媒体
US5960411A (en) * 1997-09-12 1999-09-28 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US7222087B1 (en) * 1997-09-12 2007-05-22 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US6035283A (en) * 1997-10-10 2000-03-07 International Business Machines Corporation Virtual sales person for electronic catalog
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6256771B1 (en) * 1997-10-16 2001-07-03 At&T Corp. Method and apparatus for providing a dynamic service composition software architecture
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
JPH11184699A (ja) * 1997-11-26 1999-07-09 Internatl Business Mach Corp <Ibm> 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体
US6415315B1 (en) 1997-12-01 2002-07-02 Recursion Software, Inc. Method of moving objects in a computer network
US6834389B1 (en) 1997-12-01 2004-12-21 Recursion Software, Inc. Method of forwarding messages to mobile objects in a computer network
US6321261B1 (en) 1997-12-01 2001-11-20 Objectspace, Inc. Method of constructing an object remotely across a computer network
US6535928B1 (en) 1997-12-01 2003-03-18 Recursion Software, Inc. Method of determining the timing for reclaiming a remote object
US6519653B1 (en) 1997-12-01 2003-02-11 Recursion Software, Inc. Method of communicating between agent objects in a computer network
US6442586B1 (en) 1997-12-01 2002-08-27 Recursion Software, Inc. Method of moving objects across multiple locations in a computer network
US6389452B1 (en) 1997-12-01 2002-05-14 Recursion Software, Inc. Method of communicating between objects and agents across a computer network
GB2332288A (en) * 1997-12-10 1999-06-16 Northern Telecom Ltd agent enabling technology
US6105037A (en) * 1997-12-12 2000-08-15 International Business Machines Corporation Apparatus for performing automated reconcile control in a virtual tape system
US6018805A (en) * 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
US6490574B1 (en) 1997-12-17 2002-12-03 International Business Machines Corporation Method and system for managing rules and events in a multi-user intelligent agent environment
JP4187814B2 (ja) * 1997-12-19 2008-11-26 株式会社東芝 移動型エージェントのデータ管理方法ならびにデータ管理システム、及び同方法がプログラムされ記録される記録媒体
US6192405B1 (en) 1998-01-23 2001-02-20 Novell, Inc. Method and apparatus for acquiring authorized access to resources in a distributed system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US6119087A (en) * 1998-03-13 2000-09-12 Nuance Communications System architecture for and method of voice processing
JP3234808B2 (ja) * 1998-03-13 2001-12-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 移動エージェント、移動エージェントが保有するオブジェクト、ネットワーク上のプレースに存在する移動エージェントを基に子エージェントを生成する方法、移動エージェントが同一プレースに存在する他の移動エージェントの種類を識別する方法
US6493870B1 (en) 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
US6199196B1 (en) 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
JPH11282683A (ja) * 1998-03-26 1999-10-15 Omron Corp エージェントシステム
JPH11282684A (ja) 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
US6272488B1 (en) 1998-04-01 2001-08-07 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated collection object
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6233586B1 (en) 1998-04-01 2001-05-15 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated query object
US6477563B1 (en) 1998-04-13 2002-11-05 Kabushiki Kaisha Toshiba Agent system and information processing method for same
JP3606355B2 (ja) * 1998-04-13 2005-01-05 オムロン株式会社 エージェントシステム及び通信方法
US6219643B1 (en) 1998-06-26 2001-04-17 Nuance Communications, Inc. Method of analyzing dialogs in a natural language speech recognition system
US6496871B1 (en) 1998-06-30 2002-12-17 Nec Research Institute, Inc. Distributed agent software system and method having enhanced process mobility and communication in a computer network
JP3689564B2 (ja) 1998-07-31 2005-08-31 キヤノン株式会社 Oa装置、oaシステム、制御方法及び記憶媒体
US6304973B1 (en) 1998-08-06 2001-10-16 Cryptek Secure Communications, Llc Multi-level security network system
US6356964B1 (en) * 1998-08-31 2002-03-12 International Business Machines Corporation Method and apparatus for enabling location-independent and location-transparent interaction between a program and a user
US7246150B1 (en) 1998-09-01 2007-07-17 Bigfix, Inc. Advice provided for offering highly targeted advice without compromising individual privacy
US6263362B1 (en) 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging
US8914507B2 (en) * 1998-09-01 2014-12-16 International Business Machines Corporation Advice provided for offering highly targeted advice without compromising individual privacy
US7197534B2 (en) * 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
US6256664B1 (en) 1998-09-01 2001-07-03 Bigfix, Inc. Method and apparatus for computed relevance messaging
US20030009464A1 (en) * 1998-10-02 2003-01-09 Campbell Rene L. System and method for managing computer and phone network resources
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
US6163794A (en) 1998-10-23 2000-12-19 General Magic Network system extensible by users
JP3731645B2 (ja) 1998-11-06 2006-01-05 三菱電機株式会社 エージェント方法及びコンピュータシステム
US7263489B2 (en) 1998-12-01 2007-08-28 Nuance Communications, Inc. Detection of characteristics of human-machine interactions for dialog customization and analysis
US6286028B1 (en) * 1998-12-01 2001-09-04 International Business Machines Corporation Method and apparatus for conducting electronic commerce
US7082397B2 (en) 1998-12-01 2006-07-25 Nuance Communications, Inc. System for and method of creating and browsing a voice web
WO2000036506A1 (en) * 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment
US6233556B1 (en) 1998-12-16 2001-05-15 Nuance Communications Voice processing and verification system
JP3250729B2 (ja) 1999-01-22 2002-01-28 日本電気株式会社 プログラム実行装置及びそのプロセス移動方法並びにプロセス移動制御プログラムを格納した記憶媒体
US6526571B1 (en) * 1999-03-16 2003-02-25 International Business Machines Corporation Method for identifying calls in java packages whose targets are guaranteed to belong to the same package
US7277919B1 (en) 1999-03-19 2007-10-02 Bigfix, Inc. Relevance clause for computed relevance messaging
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
DE69940107D1 (de) 1999-07-05 2009-01-29 Sony Deutschland Gmbh Verwaltung eines Kommunikationsnetzwerks und Migration von mobilen Agenten
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
WO2001013224A2 (de) 1999-08-18 2001-02-22 Siemens Aktiengesellschaft Agentensystem, computernetzwerk und verfahren zum laden eines agentensystems von einem host-computer auf einen client-computer eines computernetzwerkes
US20020002563A1 (en) * 1999-08-23 2002-01-03 Mary M. Bendik Document management systems and methods
US7143042B1 (en) 1999-10-04 2006-11-28 Nuance Communications Tool for graphically defining dialog flows and for establishing operational links between speech applications and hypermedia content in an interactive voice response environment
JP3738624B2 (ja) * 1999-10-26 2006-01-25 日本電気株式会社 分散アプリケーション制御システム及び制御方法並びにプログラムを記録した記録媒体
US6609158B1 (en) 1999-10-26 2003-08-19 Novell, Inc. Component architecture in a computer system
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
JP3339482B2 (ja) 1999-12-15 2002-10-28 日本電気株式会社 分散デバッグ装置及びデバッグ方法並びに制御プログラムを記録した記録媒体
US7286990B1 (en) 2000-01-21 2007-10-23 Openwave Systems Inc. Universal interface for voice activated access to multiple information providers
US7516190B2 (en) 2000-02-04 2009-04-07 Parus Holdings, Inc. Personal voice-based information retrieval system
US6721705B2 (en) 2000-02-04 2004-04-13 Webley Systems, Inc. Robust voice browser system and voice activated device controller
US7089242B1 (en) * 2000-02-29 2006-08-08 International Business Machines Corporation Method, system, program, and data structure for controlling access to sensitive functions
AU4474901A (en) * 2000-03-15 2001-10-03 Hyung-No Youn Information providing method having authentification agent on internet and embodying system therefor
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates 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
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
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
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
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates 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
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors 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
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport 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
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. 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
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US6868447B1 (en) 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services 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
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing 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
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
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
TW525329B (en) * 2000-05-29 2003-03-21 Omron Tateisi Electronics Co Power supply module and power supply unit using the same
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
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
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
JP2002007169A (ja) * 2000-06-23 2002-01-11 Nec Corp 文法網羅率計測方式
US8463682B1 (en) * 2000-10-02 2013-06-11 Versata Development Group, Inc. Finance and configuration method and apparatus
US20100223295A1 (en) * 2000-12-06 2010-09-02 Io Informatics, Inc. Applied Semantic Knowledgebases and Applications Thereof
US20020156756A1 (en) * 2000-12-06 2002-10-24 Biosentients, Inc. Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
US20020078251A1 (en) * 2000-12-18 2002-06-20 Philips Electronics North America Corp. Self-determining command path architecture
US7296275B2 (en) 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US6836766B1 (en) * 2001-01-31 2004-12-28 Trilogy Development Group, Inc. Rule based configuration engine for a database
US6820126B2 (en) * 2001-04-02 2004-11-16 Motorola, Inc. System for dynamic process assignment in a local area network and method therefor
US7082604B2 (en) * 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US7143164B2 (en) * 2001-05-21 2006-11-28 Exigen Group Dynamic object library software architecture
CA2448770C (en) * 2001-05-31 2010-05-11 Mapinfo Corporation System and method for geocoding diverse address formats
US7222359B2 (en) * 2001-07-27 2007-05-22 Check Point Software Technologies, Inc. System methodology for automatic local network discovery and firewall reconfiguration for mobile computing devices
KR20010088574A (ko) * 2001-08-08 2001-09-28 김진국 오존/초음파를 이용한 폐고무 표면 개질 방법 및 장치
US7203700B1 (en) * 2001-08-31 2007-04-10 Oracle International Corporation Online instance addition and deletion in a multi-instance computer system
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
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US20040088448A1 (en) * 2001-10-16 2004-05-06 Userspace Corporation Embedded system and method for controlling, monitoring of instruments or devices and processing their data via control and data protocols that can be combined or interchanged
US7350206B2 (en) * 2001-11-05 2008-03-25 Hewlett-Packard Development Company, L.P. Method to reduce provisioning time in shared storage systems by preemptive copying of images
US20040148235A1 (en) * 2002-01-11 2004-07-29 Craig Mark S. Real time financial instrument image exchange system and method
JP2002324055A (ja) * 2002-02-20 2002-11-08 Internatl Business Mach Corp <Ibm> メッセージ処理方法
CA2479838C (en) * 2002-03-19 2011-02-08 Mapinfo Corporation Location based service provider
US7447991B2 (en) * 2002-04-01 2008-11-04 Hewlett-Packard Development Company, L.P. Document agents
US7676541B2 (en) * 2002-05-30 2010-03-09 Microsoft Corporation Peer communication channel partitioning
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
US7043522B2 (en) * 2002-05-30 2006-05-09 Microsoft Corporation Unbounded computing space
US7634806B2 (en) * 2002-05-30 2009-12-15 Microsoft Corporation Peer assembly inspection
US8667105B1 (en) * 2002-06-26 2014-03-04 Apple Inc. Systems and methods facilitating relocatability of devices between networks
US7614059B2 (en) * 2002-07-11 2009-11-03 Topia Technology System and method for the discovery and usage of local resources by a mobile agent object
US8108455B2 (en) * 2002-10-31 2012-01-31 Oracle America, Inc. Mobile agents in peer-to-peer networks
US7136891B2 (en) * 2002-12-12 2006-11-14 International Business Machines Corporation Arithmetic and relational operations
US8683016B1 (en) 2002-12-20 2014-03-25 Versata Development Group, Inc. Data recording components and processes for acquiring selected web site data
JP2004362330A (ja) * 2003-06-05 2004-12-24 Seiko Epson Corp 出力制御装置
US20050039184A1 (en) * 2003-08-13 2005-02-17 Intel Corporation Assigning a process to a processor for execution
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7318068B2 (en) * 2004-07-22 2008-01-08 International Business Machines Corporation Synchronization of application documentation across database instances
US7318067B2 (en) * 2004-07-22 2008-01-08 International Business Machines Corporation Synchronization of application rules across database instances
JP2006154926A (ja) * 2004-11-25 2006-06-15 Denso Corp キャラクタ表示を利用した電子機器操作システム及び電子機器
JP4815938B2 (ja) * 2005-08-16 2011-11-16 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP4732874B2 (ja) * 2005-11-28 2011-07-27 株式会社エヌ・ティ・ティ・ドコモ ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法
US7899820B2 (en) * 2005-12-14 2011-03-01 Business Objects Software Ltd. Apparatus and method for transporting business intelligence objects between business intelligence systems
US20070157168A1 (en) * 2005-12-29 2007-07-05 Tobias Traxel Unified date and time model
US7529777B1 (en) * 2006-02-28 2009-05-05 Emc Corporation Cross-object attribute restoration
WO2007124506A2 (en) * 2006-04-21 2007-11-01 Topia Technology Electronic network services architecture
US20070256082A1 (en) * 2006-05-01 2007-11-01 International Business Machines Corporation Monitoring and controlling applications executing in a computing node
US20070282880A1 (en) * 2006-05-31 2007-12-06 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Partial role or task allocation responsive to data-transformative attributes
US8984579B2 (en) * 2006-09-19 2015-03-17 The Innovation Science Fund I, LLC Evaluation systems and methods for coordinating software agents
US8627402B2 (en) 2006-09-19 2014-01-07 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US20080072032A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Configuring software agent security remotely
US8224930B2 (en) * 2006-09-19 2012-07-17 The Invention Science Fund I, Llc Signaling partial service configuration changes in appnets
US8601530B2 (en) * 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8055797B2 (en) * 2006-09-19 2011-11-08 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US8607336B2 (en) * 2006-09-19 2013-12-10 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US7752255B2 (en) * 2006-09-19 2010-07-06 The Invention Science Fund I, Inc Configuring software agent security remotely
US8601104B2 (en) 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Using network access port linkages for data structure update decisions
US8281036B2 (en) 2006-09-19 2012-10-02 The Invention Science Fund I, Llc Using network access port linkages for data structure update decisions
US9306975B2 (en) 2006-09-19 2016-04-05 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US7856450B2 (en) * 2006-12-18 2010-12-21 Business Objects Software Ltd. Apparatus and method for distributing information between business intelligence systems
US7818333B2 (en) 2006-12-28 2010-10-19 Pitney Bowes Software Inc. Universal address parsing system and method
US8214441B2 (en) * 2008-01-25 2012-07-03 At&T Intellectual Property I, L.P. System and method for optimizing response handling time and customer satisfaction scores
US8250090B2 (en) * 2010-02-22 2012-08-21 Brignoli Winthrop A Method for performing message-based distributed computing, involves executing expression of matched message response on members identified by set instance definition using dimension values derived from message
JP4905571B2 (ja) 2010-03-10 2012-03-28 トヨタ自動車株式会社 車両の駐車支援装置およびそれを備える車両
US8533214B2 (en) * 2010-06-15 2013-09-10 Verizon Patent And Licensing Inc. System and method for assessing quality of address information for physical locations
RU2554509C2 (ru) 2010-10-06 2015-06-27 Александр Яковлевич Богданов Система и способ распределенных вычислений
US8996687B2 (en) 2011-05-31 2015-03-31 At&T Intellectual Property I, L.P. Context-based computing framework
US9244745B2 (en) * 2011-06-16 2016-01-26 Kodak Alaris Inc. Allocating tasks by sending task-available messages requesting assistance with an image processing task from a server with a heavy task load to all other servers connected to the computer network
US9075659B2 (en) 2011-06-16 2015-07-07 Kodak Alaris Inc. Task allocation in a computer network
US9424096B2 (en) 2011-06-16 2016-08-23 Kodak Alaris Inc. Task allocation in a computer network
US20130030927A1 (en) 2011-07-28 2013-01-31 American Express Travel Related Services Company, Inc. Systems and methods for generating and using a digital pass
US20130250937A1 (en) * 2012-03-20 2013-09-26 Leonid V. Nikeyenkov Method for Converging Telephone Number and IP Address
US10650103B2 (en) 2013-02-08 2020-05-12 Mz Ip Holdings, Llc Systems and methods for incentivizing user feedback for translation processing
US8996352B2 (en) 2013-02-08 2015-03-31 Machine Zone, Inc. Systems and methods for correcting translations in multi-user multi-lingual communications
US9298703B2 (en) 2013-02-08 2016-03-29 Machine Zone, Inc. Systems and methods for incentivizing user feedback for translation processing
US9231898B2 (en) 2013-02-08 2016-01-05 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9600473B2 (en) 2013-02-08 2017-03-21 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9031829B2 (en) 2013-02-08 2015-05-12 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
JP6160409B2 (ja) * 2013-09-30 2017-07-12 ブラザー工業株式会社 ファクシミリ装置
US10162811B2 (en) 2014-10-17 2018-12-25 Mz Ip Holdings, Llc Systems and methods for language detection
US9600682B2 (en) * 2015-06-08 2017-03-21 Accenture Global Services Limited Mapping process changes
US10765956B2 (en) * 2016-01-07 2020-09-08 Machine Zone Inc. Named entity recognition on chat data
US10769387B2 (en) 2017-09-21 2020-09-08 Mz Ip Holdings, Llc System and method for translating chat messages
TWI642566B (zh) * 2017-11-13 2018-12-01 中華汽車工業股份有限公司 Car motor with built-in charge control function
US11036571B2 (en) * 2017-11-29 2021-06-15 Cisco Technology, Inc. Repair walker agents in a network
CN110728363B (zh) * 2018-06-29 2022-11-18 华为技术有限公司 任务处理方法和装置
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4575797A (en) * 1981-05-22 1986-03-11 Data General Corporation Digital data processing system incorporating object-based addressing and capable of executing instructions belonging to several instruction sets
US5261080A (en) * 1987-08-21 1993-11-09 Wang Laboratories, Inc. Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
US5129083A (en) * 1989-06-29 1992-07-07 Digital Equipment Corporation Conditional object creating system having different object pointers for accessing a set of data structure objects
US5297283A (en) * 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5129084A (en) * 1989-06-29 1992-07-07 Digital Equipment Corporation Object container transfer system and method in an object based computer operating system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
EP0463172A1 (en) * 1989-12-26 1992-01-02 Fujitsu Limited Object oriented distributed processing system
CA2044022A1 (en) * 1990-06-28 1991-12-29 Miriam A. Nihart Common agent computer management system and method
US5327559A (en) * 1990-10-23 1994-07-05 International Business Machines Corporation Remote and batch processing in an object oriented programming system
US5157196A (en) * 1990-12-24 1992-10-20 Chemical Research & Licensing Company Paraffin alkylation process
EP0495310A3 (en) * 1991-01-17 1993-03-24 International Business Machines Corporation A process control method and apparatus
US5379426A (en) * 1991-01-25 1995-01-03 Sun Microsystems, Inc. Method and apparatus for object oriented interprocess message switching
US5303375A (en) * 1991-04-26 1994-04-12 Hewlett-Packard Company System and method for facilitating selection of running functional process in object-oriented environments
US5361350A (en) * 1991-12-12 1994-11-01 International Business Machines Corporation Object oriented method management system and software for managing class method names in a computer system
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
US5414852A (en) * 1992-10-30 1995-05-09 International Business Machines Corporation Method for protecting data in a computer system
US5446842A (en) * 1993-02-26 1995-08-29 Taligent, Inc. Object-oriented collaboration system
US5377350A (en) * 1993-04-30 1994-12-27 International Business Machines Corporation System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5421013A (en) * 1993-07-08 1995-05-30 Park City Group, Inc. Agent-based multithreading application programming interface
US5446845A (en) * 1993-09-20 1995-08-29 International Business Machines Corporation Steering logic to directly connect devices having different data word widths

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228380A (ja) * 1996-06-05 1998-08-25 Sun Microsyst Inc 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム
JPH10191546A (ja) * 1997-11-28 1998-07-21 Toshiba Corp 電力系統保護制御システム
US6694370B1 (en) 1998-08-01 2004-02-17 International Business Machines Corporation Computerized method and system for implementing distributed applications
JP2005020713A (ja) * 2003-06-02 2005-01-20 Ricoh Co Ltd 画像形成システム、画像形成方法、画像形成プログラム、及び記録媒体

Also Published As

Publication number Publication date
JPH07182174A (ja) 1995-07-21
US6016393A (en) 2000-01-18
WO1995002219A1 (en) 1995-01-19
EP0634719A2 (en) 1995-01-18
CA2143672A1 (en) 1995-01-19
CA2143672C (en) 2005-02-01
US5603031A (en) 1997-02-11
AU7216494A (en) 1995-02-06
EP0634719A3 (en) 1996-01-03
JP3723572B2 (ja) 2005-12-07

Similar Documents

Publication Publication Date Title
JPH07509799A (ja) ネットワークにおけるプロセスの移動,エクセプション及び相互作用に基づいた分散処理のためのシステム及び方法
Wirfs-Brock et al. JavaScript: the first 20 years
DiBona et al. Open sources: Voices from the open source revolution
Bassett Introduction to JavaScript object notation: a to-the-point guide to JSON
Brazell Wordpress bible
US20100257507A1 (en) Any-To-Any System For Doing Computing
Friedhoff Untangling twine: A platform study
KR19980079992A (ko) 다수 사용자 게임 로비 및 게임 세션을 위한 객체 아키텍쳐 시스템 및 그 방법
Parthasarathy Globalization and agglomeration in newly industrializing countries: the State and the information technology industry in Bangalore, India
Krafft The Debian system: concepts and techniques
Hausenblas et al. Programming Kubernetes: Developing cloud-native applications
Douglass et al. Building online communities with Drupal, phpBB, and WordPress
Shipley et al. OpenShift for Developers: A Guide for Impatient Beginners
Fuchs Domain Specific Languages for ad hoc Distributed Applications.
US7222113B2 (en) Method and system for a software agent control architecture
Barnson The Bugzilla Guide
Görling A critical approach to open source software
JP2005332380A (ja) 意味論的プログラミング言語および言語オブジェクトモデル
Arking et al. Professional Enterprise. NET
Balachandran et al. Syntax & Semantics at Santa Cruz, Volume V
Tiemann et al. OPENSOURCES
Peters et al. Fusebox: developing ColdFusion applications
Doctorow et al. Complex DNS
Chandra et al. Emerson: Scripting for federated virtual worlds
Feng ConfSys: enhancements & integration

Legal Events

Date Code Title Description
A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20050308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050916

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term