JP2000503430A - 分散処理 - Google Patents

分散処理

Info

Publication number
JP2000503430A
JP2000503430A JP9525767A JP52576797A JP2000503430A JP 2000503430 A JP2000503430 A JP 2000503430A JP 9525767 A JP9525767 A JP 9525767A JP 52576797 A JP52576797 A JP 52576797A JP 2000503430 A JP2000503430 A JP 2000503430A
Authority
JP
Japan
Prior art keywords
statement
compiler
code
data
language
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
JP9525767A
Other languages
English (en)
Other versions
JP3878217B2 (ja
Inventor
マーティン、ポール・アンソニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of JP2000503430A publication Critical patent/JP2000503430A/ja
Application granted granted Critical
Publication of JP3878217B2 publication Critical patent/JP3878217B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 分散オブジェクトシステム用のコンパイラであり、システムの動作基準に関する機能要件をオブジェクト指向言語(例えば、C++)でコメントフィールドとして入力でき、この機能要件は通常のコンパイラによって無視される(デバッグするとき単一のプロセッサ用プログラムでコンパイルできる)が、プレコンパイラ(316)によって翻訳され、分散システムのホストコンピュータ(10)用のコードをコンパイルするときに、口座システムデータ(318)になる。このシステムは遠隔通信システムであることが好ましい。

Description

【発明の詳細な説明】 分散処理 本発明は分散処理、とくに、しかしこれのみに限定されないが、遠隔通信ネッ トワークの制御のための分散処理に関する。より詳しくは本発明は分散型プロセ ッサ、すなわち好ましくは(必ずではないが)オブジェクト指向形式で構成され たプロセッサ上に構成された制御システムを発展させ、かつ更新することに関す る。 遠隔通信ネットワークは、広帯域幅で遅延の少ない情報流を支援する必要が増 加している。必要とされる帯域幅は、毎秒キロビットから毎秒メガビット、さら に応用によっては毎秒ギガビット(とくに例えばビデオ・オン・デマンド;アニ メーションで表した共用シミュレーション、および分散コンピューティング)で 高速に処理を行う帯域幅である。 “インテリジェントネットワーク”の機能、例えば特定の番号への呼の再方向 付けを行うために、コンピュータプログラムは、スイッチングセンタに接続され た多数(例えば、100まで)のホストコンピュータで実行される。特定のクラ イアントにサービスを提供するやり方では、特定のクライアントに関してホスト コンピュータに記憶したデータ(例えば、クライアントへの呼をルート設定する 特定の番号)に依存する。したがって、数十または数百のホストコンピュータ上 に何百万もの加入者の記録があってもよい。 文献("Twenty-twenty vision -software architectures for intelligence i n the 21st century",P.A.Martin,BT Technology Journal Vol.13 No.2,199 5年 4月)において、本発明の発明者は、必要な分散処理を実行するオブジェク ト指向方法の使用を提案した。 オブジェクト指向の方法は、例えばE.L.CusacKおよびE.S.Cordingleyによって 編集された文献("Object oriented technology",BT Technology Journal Vol.1 1 No.3,1993年 7月)に記載されている。オブジェクト指向という用語は常に正 確に使用されてはいないが、本明細書ではオブジェクト指向の計算とは、データ を“抽象した(encapsulated)”形で記憶する計算技術であり、なおこのデータと は、発呼プログラムまたはルーチンによって直接にアクセスするのではなく、デ ータの読取り、書込み、およびコンパイルできるプログラムの限られた部分によ ってのみアクセスできるデータである。データおよびそれに関係するコンピュー タコードの記録を“オブジェクト(object)”と呼ぶ。オブジェクトとの間の通信 は概して“メッセージ伝達(message passing)”であり;オブジエクトへの呼を データ値へ送り、オブジェクト内に含まれるプログラムの1つのオペレーション (動作)を呼出し、次にデータ値を戻すことである。 プログラマは、オブジェクト指向方法を使用したいとき、種々の言語を利用で きる。これらの中で、現在最も一般的な言語はC++である。 分散処理は、幾つかの点で単一のプロセッサのオペレーションと異なる。第1 に、他のプログラムまたはデータが発呼プログラムとして同じホストコンピュー タ上にまたは異なるコンピュータ上に位置するか否かに依存して、異なるアクセ ス方法を要求することができる。プログラムまたはデータのロケーションはさら に、それが別のプログラムから到達できる速度にも影響を与える。加えて、1ま たは複数のホストコンピュータは、他のコンピュータが起動した状態であるのに 故障する可能性がある。 分散コンピューティングは通常、“クライアント−サーバ”構成を使用して行 われる。“クライアント−サーバ”構成では1コンピュータ上の“クライアント ”のプログラムが他のコンピュータ上の“サーバ”プログラムに照会して、機能 を実行するか、またはクライアントプログラムによって必要なデータを戻す。 オブジェクト指向方法は、分散処理には広く応用されてこなかった。この状況 は、文献("Object oriented programming systems";Blair G.,Pitman Publishi ng,London,1991年,(ISBN 0-273-03132-5)およびとくにChapter9,223-243頁; "Distriuted systems and objects";David Hutchison and Jonathan Walpole) に要約が記載されている。先の試みでは、既存のコンピュータ言語に新しいシン タックスを全体的に付加するか、または新しいコンピュータ言語を生成して、分 散処理を扱う従来のオブジェクト指向のプログラム作成を拡げた。 第1の態様で本発明は、遠隔通信システムを制御する複数のホストコンピュー タの分散型処理で使用するコードを生成するコンパイラ(プレコンパラ)であり 、他のコンパイラによってコンパイルできる第1のステートメントを含む計算言 語 で書込まれたソースプログラムを受取るようにされているコンパイラと、前記シ ステムの動作基準を含み、かつ前記他のコンパイラによって無視される、第2の ステートメントで動作するように構成されており、マルチプロセッサ用のプログ ラムに適合させるコンパイラまたはプレコンパイラとを含む。好ましくは、第2 のステートメントはコメントフィールドにある。 都合よく、本発明のこの態様は、より一般的なコンパイラで使用できるプレコ ンパイラを含むが、書直されたコンパイラに本発明の機能を直接的に組込めるこ とが認識される。 こうして本発明の態様にしたがって、マルチプロセッサシステム上で本発明の コンパイラによってコンパイルされる前に、プログラムの作成者が単一のプロセ ッサ上で通常のコンパイラによってソースコードをコンパイルし、テストして、 マルチプロセッサ環境に専用の第2のステートメントが単一のホストコンパイラ によって無視されるようにすることができる。これによって、プログラマはそれ を実時間でテストする必要なくプログラムの基本的な動作を確認できる。 別の態様では、本発明は分散型オブジェクトシステム用のコンパイラを準備し 、システムの動作基準の機能要件を入力して、コンパイル中に翻訳して、機能ま たは要件が満たされていることを保証する。 例えば、システムの動作基準として応答時間、オブジェクト数、またはデータ の結合度がある。 好ましくはこの態様では、各オブジェクトまたはオブジェクトクラス、あるい はその両方を記憶することができる。 都合よく、機能要件は、上述の第1の態様に記載された第2のステートメント を使用して特定される。 以下で本発明の他の態様および実施形態を開示する。 ここで本発明の実施形態を添付の図面を引用して例示的に記載する。 図1は、本発明の実施形態の遠隔通信システムの要素を示すブロック図である 。 図2は、図1のシステムの別の実施形態を示すブロック図である。 図3は、図1および2のシステムの一部を形成しているホストコンピュータの 要素を示すブロック図である。 図4は、図1および2のシステムの一部を形成しているコンパイラの要素を示 すブロック図である。 図5は、図4のコンパイラ装置の動作を示すフローチャートである。 図6は、図5で実行される処理段の結果を示す図である。 図7aは、図1の一部を形成しているインテリジェンスドメイン内に保持され るデータ構造を表す図である。 図7bは、図1の一部を形成しているトランスポートドメイン内に保持される データ構造を表す図である。 図8は、図7aの1つの構成要素のメモリ内のデータ構造を表す。 図9は、図4のコンパイラ装置に応用できるソースコードを示す。 図10は、図10乃至14を含むプレコンパイラプロセスの一部を示すフロー チャートである。 図11は、プロセスの別の部分である。 図12は、プロセスの別の部分である。 図13は、プロセスの別の部分である。 図14は、プロセスの別の部分である。 図1を参照すると、本発明にしたがって生成された遠隔通信システムは、複数 のスイッチングセンタまたは交換局(Xに似た記号)2a、2bを含み、2a、2bは遠 隔通信チャンネル4(例えば、マイクロウエーブリンク、光ファイバケーブル、 同軸銅線ケーブルまたは前記の何れかに搭載されているバーチャル回路)によっ て相互接続されて、トランスポートドメイン6を構成している。トランスポート ドメイン6にはインテリジェンスドメイン8が接続されており、該インテリジェ ンスドメイン8は複数のホストコンピュータ10a、10bを含み、10a、10bはシグナ リングリンク12a、12b、12cを介して相互接続され、さらにスイッチングセンタ2 a、2bともシグナリング通信する。例えばシグナリングシステム7(SS7)のような プロトコルを使用して2つのドメインを相互接続することができる。 ホストコンピュータ10a、10bは、一緒に結合された疎結合された分散型制御シ ステムを構成し、メッセージング方法を使用してのみ通信できるが、共用メモリ 方法を使用しては通信できない。 例えば電話装置14a、14bであるエンドユーザ端末装置または機器、および例え ばビデオプレーヤ16である広帯域通信装置でエンドユーザドメン18を構成し、エ ンドユーザドメイン18はローカルループ接続20a、20b、20c(例えば光ファイバ 、セルラ無線、または撚線対銅線ケーブルリンク)を介してトランスポートドメ イン6に接続されている。 さらにサービスプロバイダドメイン22も準備されており、これはサービス(例 えばビデオサービス)を提供する装置、例えばビデオプレーヤ24およびコンピュ ータ端末26を含み、ローカルループ接続28a、28b、)28c、例えばISDNチャン ネルまたは他の広帯域リンクを介してトランスポートドメイン6に接続されてい る。 周知のやり方では、エンドユーザ端末装置14または16を使用して、トランスポ ートドメイン6を介してサービスプロバイダドメイン22へ要求を送る。その結果 、トランスポートドメイン6を通ってチャンネルが設定され、サービスプロバイ ダドメイン22は(例えば実時間のビデオフィルム、または電子フォーマットのデ ータファイルを送ることによって)チャンネルを介してエンドユーザドメイン18 へサービスを送る。 通常の簡単な従来の電話サービス(POTS)では、トランスポートドメイン 6はエンドユーザドメイン6で生成されたダイヤルされた番号によってのみ制御 され、トランスポート経路を設定する。しかしながら現在、トランスポートドメ インについての“インテリジェントネットワーク”の制御はインテリジェンスド メイン8によって行われている。インテリジェンスドメイン8はトランスポート ドメインからダイヤルされた番号またはダイヤルした番号、あるいはその両方を 受取り、ダイヤルされ話番号またはダイヤルした番号、あるいはその両方にした がってある呼処理を実行する。インテリジェンスドメインは通常番号変換サービ スを行い、ダイヤルされた電話番号を変換して、別の番号へ呼前送りサービスを 提供する。この場合、ダイヤルされた番号はホストコンピュータ10の1つの上で 記憶された記録に対応し、この番号へはリンク12の1つで信号に応答してアクセ スし、対応する再方向付け番号を発生する。 一般的に、トランスポートドメイン6におけるイベントの発生(例えばエンド ユーザドメイン18からの呼の開始)に応答して、インテリジェンスドメインは制 御情報を供給して、トランスポートドメイン6を制御する。 トランスポートドメイン6内には他のデータも記憶されている。この実施形態 では各呼に対する課金用データをインテリジェンスドメインに記憶して、各クラ イアントに定期的に課金することができる。 図2を参照すると、インテリジェンスドメイン8はさらにコンパイラ装置30を 含み、コンパイラ装置30はネットワークサーバ11a乃至11cを介してホストコンピ ュータ10に接続されており、コンパイラ装置30、ホストコンピュータ10、および サーバ11間では広域網(WAN)が延びている。 サーバはさらに、インターネット32に含まれる1または複数のWorld Wide Web (WWW)サーバコンピュータ、したがって(例えば、ローカルパケットスイッ チングノードを介して)インターネットに接続された編集端末15a乃至15dにも接 続されている。 図3を参照すると、各ホストコンピュータ10は、通信ハードウエア100 を含む メインフレームまたはサーバ11を含み、通信ハードウエア100 はWANを介して サーバ11;プロセッサ102 ;メモリ104 と接続しており、メモリ104 はランダム アクセスメモリの形態の高速アクセスメモリおよび磁気または光ディスクドライ ブの形態のオフラインメモリの両方を含む。 メモリ装置104 内には、オペレーティングシステム106(例えば、UNIX( TM));オブジェクトマネージャプログラム108;およびクラスコード110とオ ブジェクトデータとを含むオブジェクトモデルが格納されており、これらの全て は後でより詳細に記載する。 各編集端末15はパーソナルコンピュータから成り、共通の電話のソケットモデ ムを介してユーザ構内で対応する電話装置14へによって接続できる。 したがって各編集端末15はプロセッサ、スクリーン出力装置、入力装置(例え ば、キーボード(またはカーソール制御装置、例えばマウス))、およびグラフ ィカルユーザ環境(例えば、ウィンドウズ(TM))と通信プログラムとオブジ ェクトブラウザプログラムとを含むメモリ装置(ROM、RAM、およびハード ディスク)を含む。 図4を参照すると、コンパイラ装置は、WANサーバ11に接続された通信イン ターフェイス回路基板300 ;プロセッサ302 ;高速アクセスメモリ(RAM)お よび大容量メモリ(例えば、ハードディスクドライブ)を含み、オペレーティン グシステム(例えば、UNIX(TM))を記憶するメモリ装置304(別個に示 していない);ネイティブC++コンパイラプログラム312(例えば、サンマイ クロシステムから販売されているSunPRO);プレコンパイラ316(後述で より詳細に記載する);および標準機能と定義(サブプログラムまたはサブルー チンを特定するもの)を記憶して新しいプログラムに組込むライブラリ314 を含 む。 C++コンパイラは従来のように、再配置可能な二進コードをコンパイルする コンパイラ、および二進コードをライブラリ314 に記憶した二進コードルーチン と連結させ、実行のために連結されたコードをメモリアドレススペースに配置す るリンカプログラム312bを含む。このようなコンパイラは概してさらにプレプロ セッサを含むのが普通で、プレプロセッサはコンパイラの指令を、例えば“in clude(インクルード)”ステートメントに変換して、追加のコードで読取 るか、またはコンパイルの際に別の動作を行う。 さらに準備されているものは:C++プログラムを定める入力ソースコード( 例えば、入力装置320 を介して入力されるか、または通信回路300 を介してダウ ンロードされるか、またはメモリ装置204 内に含まれるディスクドライブを介し てロードされる)を記憶するメモリ領域308;C++コンピュータ312 によって (すなわち、コンパイラプログラムの制御のもとで起動するプロセッサ302 によ って)生成される実行可能なコードを記憶するメモリ領域310 である。さらに領 域318 も含まれ、分散したプロセッサ10の数;各プロセッサ10の有効記憶メモリ の容量;プロセッサ10などの動作速度に関するシステムデータを記憶する。 プロセッサ302 は、ソースメモリ308 内のソースコードのC++コンパイラ31 2、またはソースメモリ308 内のソースコードのC++コンパイラ312 の前のプ レコンパイラ316 の何れかによって選択的に起動して、実行可能なコードメモリ 310 内で実行可能なコードを生成するようにされている。 C++コンパイラ312 の場合、生成されるコードは適切な単一のプロセッサで 実行されることになる。実施形態では、プロセッサ302 はそれ自身、このやり方 でC++コンパイラによって直接に生成されるコードを実行できるようにされて おり、ユーザはプログラムがほぼ期待通りに起動するか否かを即座にテストでき る。 対照的に、プレコンパイラ316 は最初に(コードを実行するホスト10を含む分 散型システムに関するシステムデータを考慮に入れて)ソースメモリ308 でソー スコードを処理し、ソースメモリ308 内で修正したソースコードを生成し、次に コンパイラ312 が実行可能なコードメモリ310 内で生成された実行可能なコード にコンパイルする。しかしながらこの実行可能なコードは、多数の分散型ホスト コンピュータ10で実行するためのものであるので、コンパイラ装置30で実行可能 である必要はない。 図5を参照すると、監督プログラム307 の制御のもとでのコンパイラ30の概略 的な動作は次のようになる。 段階202 で、ソースコードは(例えば、入力装置302 を介して)ソースコード メモリ308 へ入力される。段階204 で、人間のオペレータがソースメモリ308 内 でソースコードを編集するかを決めることができ、編集されたテキストは(例え ば、通常のテキストプロセッサを使用して)ソースメモリ308 へ入力される。 この編集が完了すると、段階206 でユーザはソースコードをローカルでテスト するか否かを選択できる。ユーザがテストすることを選択したときは、段階208 でプロセッサはソースコードメモリ308 内でソースコードのC++コンパイラ31 2を実行して、実行可能なコードメモリ310 内で実行可能なコードを生成し、段 階210 でプロセッサ302 は実行可能なコードを実行する。シミュレーションプロ グラムを準備して、意味のない動作を捕え妨げて、例えば出力スクリーン322 上 に表示するというような動作に代え、何が発生しているかをユーザが確認できる ようにすることができる。 実行中にエラーが発生した場合は、段階212 でユーザは段階204 に戻るこを決 めて、ソースコードメモリ308 でソースコードを編集することができる。ソース コードが変更不要であると考えられるときは、段階214 でソースコードメモリ30 8内のソースコードにプレコンパイラ316 を適用して、修正されたコードを生成 し、次に段階216 で修正されたコードはC++コンパイラによってコンパイルさ れて、実行可能なコードメモリ310 で実行可能なコードを生成する。次に段階21 8でこれはWANサーバ11を介して分散型ホストコンピュータ10へ送られる。こ れは図6に線図で示されている。 ここでインテリジェンスドメイン内で使用されるデータモデルを簡単に記載す る。以下で各“オブジェクト”は多数のデータフィールドを含むデータ記録であ り、そのオブジェクトに対応するコードによってのみアクセスできる(すなわち 、1対多数の関係では、ある1クラスのオブジェクトに関係する同じコードがそ のクラスの全てのオブジェクトに実際にアクセスできるという意味である)。 通常のように、オブジェクトはクラスにまとめられていて、同じクラスのオブ ジェクトは異なるデータを含むが、同じフォーマットである。各オブジェクトは 1または複数のサブルーチン(一般的に“方法”または“機能”とよばれている )とも関係付けられ、このサブルーチンはデータに作用して、それを行う唯一の 手段を一般的には構成する。 同じクラスの異なるオブジェクトと関係付けられたサブルーチンが対応するデ ータを受取り、戻すときのフォーマットは同じである(すなわち、同じクラスの 全てのオブジェクトは共通のインターフェイスをもつ)。事実、C++ではサブ ルーチンは、同じクラスの全てのオブジェクトに対して1度だけ示されるので( すなわち、サブルーチンに対してコードは1度だけ記憶される)、コードおよび オブジェクトは1対多数の関係である。したがってコードは、各オブジェクトで はなく、オブジェクトのクラスと関係付けられる。 オブジェクトの各クラスは、オブジェクト指向のプログラム作成ではより大き なクラスを細分したもの(サブディビジョン)であってもよい。この場合、より 包括的なクラス(“スーパークラス”)と関係付ける代りに、コードを記憶する こともできる。オブジェクトマネージャ108 は、各オブジェクトを構成するデー タのロケーションリストを含み、オブジェクトを呼出す(インボケーション)( すなわち、呼ぶ(コール))度に、オブジェクトマネージャはクラスコードメモ リ領域110 内の相関サブルーチンコードにアクセスし、オブジェクトメモリ領域 112 内の相関するオブジェクトのデータアドレスをこのコードに与える。 図7aを参照すると、この実施形態ではインテリジェンスドメインのホストコ ンピュータ10内に準備されたオブジェクトは、新しいクライアントがアクセス( 申込みを)するときに生成され;クライアントが自発的にネットワークから離れ るかまたは接続を外すときに壊され、クライアントの要求が変わるときに編集さ れる複数のクライアントオブジェクト500(1つのクライアントオブジェクトは 数千万人の各クライアントに関するデータを保持している。INC TODR DATA はそ の中には一日の時間のルート決定データを含む意):それぞれ各呼の開始時に生 成され、呼が終了した後に壊される複数の呼オブジェクト600a乃至600c:それぞ れクライアント端末装置の項目に関係し、最初にクライアント端末装置をネット ワークへ接続するときに生成される複数の通信装置オブジェクト700a乃至700cを 含む。 図7bを参照すると、この実施形態ではトランスポートドメイン6のスイッチ ングセンタ(Xに似た記号)2a、2b…はさらにオブジェクト800a乃至800bおよび 900a乃至900fを記憶したホストコンピュータを含み、オブジェクト800a乃至800b および900a乃至900fはそれぞれスイッチングセンタ内のスイッチおよびスイッチ のポートを表している。したがって、各スイッチオブジェクト800 はあらゆる瞬 間の対応するスイッチの状態の記録を含み;これらのオブジェクトはメモリ内に 恒久的に存在し、スイッチングセンタ2に存在する物理的な装置に対して1対1 のマッピングを行って、ポートまたはスイッチングオブジェクトへの書込みは各 ポートまたはスイッチの状態を変え、ポートまたはスイッチオブジェクトへの読 取りは対応する物理的装置の実際の状態を正確に反映する。 図9は、図8のデータに対応するクラスタイプ(クライアント)を表示するC ++ソースコード100 を示す。C++ソースコード100 はC++コンパイラ312 によって起動されるステートメントを含む部分1000a、およびC++コンパイラ3 12 によって無視されるコメントステートメントを含む部分1000bから成る。 しかしながら本発明の実施形態にしたがうと、コメントステートメント部分10 00bはプレコンパイラ316 によって起動される。各コメントステートメント1002 b乃至1012bは'//'記号の後に示され、コンパイラ312 にその次にくるテキスト を無視するように命令している。 コメントフィールドの内容は完全にプログラマ用の文書となることが意図され ており、したがってC++コンパイラ312 によって完全に無視される。本発明の 実施形態では、プレコンパイラ316 はコメントステートメントを翻訳するように されている。 本発明の実施形態では、コメントフィールドのテキストは、分散型システムを 構成するオブジェクトに関係する機能(または動作)仕様データを含む。とくに 、仕様データは次の項目、すなわち: (a)所定のクラス内の予想されるオブジェクト数(対応するメモリスペー ス容量の合計)、 (b)有効度(アベイラビリティ)−すなわちオブジェクトがアクセスに利 用できるアクセス瞬間の割合、 (c)アクセシビリティ−すなわちオブジェクト(またはその中の特定のデ ータ)を呼ぶことができる異なるアクセスポイントの数(例えば、オブジェクト にアクセスするのに必要な端末またはメインフレームの数)、 (d)セキュリティ−種々のユーザが種々のデータに対してもつアクセス権 (すなわち、種々のユーザがすべてのデータにアクセスできるか否か、アクセス できるときは、種々のユーザが読取るか、書込むか、または両方を行うことがで きるか否か)、 (e)同時処理(concurrency)−すなわち所定のオブジェクトまたはプロセ スを同時に呼出すことができる他のプロセスの数、および、 (f)タイムリネス(時宜の程度)−すなわちプロセスを完了する最大時間 、平均時間、および/または最小時間を特定するデータを含む。 種々の応用に対するこれらの機能基準の一般的な値を次に示す。 図9を再び参照すると、ステートメント1002aは“クライアント”と呼ばれる オブジェクトクラスを定め、ステートメント1002bはこのクラスのオブジェクト が99.99%の時間で有効(利用可能)でなければならないことを明記してい る。 ステートメント1004aは“名前(name)”と呼ばれる32バイトのアレイを定め 、ステートメント1004bはクライアント支援サービス(CSS)プロセスが内容 に対する読取りおよび書込みアクセスを行わなければならず、他のプロセスが読 取りアクセスのみを行なわなければならず(したがってクライアント支援サービ ススタッフのみが、単一のクライアントに関係しているクラスクライアントのオ ブジェクトに記憶された加入者名を変更できる)。 ステートメント1008aは機能“クライアント”を定め、ステートメント1008b はクライアント支援サービスがアクセスを行うことを特定する。ステートメント 1006bは機能“クライアント”に対する最小、平均、および最大ランタイム(ミ リ秒)を特定する。 ステートメント1010aはprintBill 呼ばれる取消し機能(void function)(す なわち、無結果に帰する機能)を表して、クライアントオブジェクトに対する請 求書をプリントし、ステートメント1010bは対応する最小、平均、および最大応 答時間を特定する。 最後にステートメント1012aは、呼を処理しなければならないときに呼出され るcallDeliverdと呼ばれるボイド機能を表し、ステートメント1012bはこの機能 の最小、平均、および最大応答時間を特定する。 したがってそれが表すように、図9のコードは実行可能なC++ステートメン ト1000aおよびコメント1000bを含み、C++プログラムとしてコンパイルされ て、普通に実行されることになり、コンパイラ312 はコメントステートメント10 00bによって定められる機能の仕様に注意を払わない。 他方で、プレコンパイラ316 によって処理されるときは、機能規準1000bは、 新しいコンパイルできるC++コードを生成する際、およびコンパイラに対する 指令を生成する際に影響を与える。これは以下で詳細に記載する。オブジェクトの大きさ/数(Size/Number of objects) オブジェクトの各クラスを大きさのステートメントと関係付けて、期待される クラスのオブジェクト数または、必要なメモリスペースの対応する容量の何れか を示すことができる。全体的に、本発明の好ましい実施形態では、ステートメン トを予測されるオブジェクト数に翻訳し(その理由は翻訳するとプログラマにと って一層自然になるからである)、そのクラスの表された種々の大きさのデータ タイプの和で表されたオブジェクト数を乗算することによって、これを必要なメ モリの大きさに変換するようにされている。 図10を参照すると、プレコンパイラは、段階2002でクラスと関係付けられた 何等かの大きさのステートメントを読取り、各ステートメントをメモリスペース の大きさ(メガバイト)に変換して、全てのこのようなメモリ大きさの和を構成 するようにされている。 こうして計算されたオブジェクトモデルの合計大きさは、単一メガバイトUN IXプロセスに適合するのに十分に小さいとき、プレコンパイラはコンパイラに 対する指令を書込んで、単一プロセスに対してコードをコンパイルする(段階20 06)。これにより全てのオブジェクトが同じアドレス空間内にあるので、コンパ イラは基準によってオブジェクトをデータに送ることができるとき、これは使用 できるアドレスの仕方を簡単にする。 さもなければ、段階2008でプレコンパイラ316 は指令をコンパイラに書込んで 、 コードを多数のUNIXプロセスにコンパイルする。段階2010では、プレコンパ イラ316 は、コードをコンパイルすることになる目標のホストプロセッサの最小 数を選択できる。 選択段階2004および2010は、どのくらい多くのメモリを各ホスト10で使用でき るかを示すシステムデータメモリ318 に記憶したデータにしたがって実行するこ とができる。 他の実施形態では、こうして計算したオブジェクトメモリの大きさを使用して 、他の方法でアドレッシング方法を制御できる;例えばオブジェクトモデルの大 きさを使用して、コンパイラに命令して、メモリアドレッシング(同じメモリス ペース内に全てのメモリを配置できるとき)か;ファイルのアドレス動作(オブ ジェクト数がより多いとき)またはオブジェクトUIDを使用するか;あるいは バーチャルメモリポインタを使用するかを選択できる。有効度(Availability) 特定のオブジェクトの高い有効度を保証する1つの特定の方法は、オブジェク トの多数のコピーを作成する(さらに、もちろん全てのコピー内のデータが同じ である限り更新する)ことである。所定のオブジェクトの有効度は、そのオブジ ェクトが応答するのにかかる時間にほぼ逆比例する。したがって望ましいオブジ ェクトのコピー数は、オブジェクトの有効度および平均応答時間の比にほぼ比例 することが好ましい。 したがって、図11を参照すると、段階3002でプレコンパイラ316 はオブジェ クトクラスの必要な有効度を読取り、段階2004でオブジェクトのクラスに対して 示された平均動作時間を読取るようにされている。 次に、段階3006でプレコンパイラは必要な有効度を与えるのと並行に存在する オブジェクトのコピー数を選択し、段階3008でプレコンパイラはそのクラス(そ のクラスの新しいオブジェクトを例示する)に対する構成コードを拡張して、必 要なコピー数をランタイム中に(異なるホスト10において)同時に生成する。 段階3006で選択する数は概して1であり(この場合段階3008でプレコンパイラ 316は付加的なコードを書込まず)、したがってクラスの応答時間および必要な 有効度に基づいて、データの結合性を維持し、高い有効度が要求されるところで は、上記のように2以上のコピーを選択する。 別の実施形態では、目標のアクセス時間を参照し、それにしたがって所望の数 のレプリカオブジェクトを生成するのではなく、所定数のレプリカオブジェクト (例えば、2)を選択して、オブジェクトへのアクセス時間(以下でより詳しく 記載した規定の最小および最大時間内で)を変更して、これに順応することがで きる。アクセシビリティ(Accessibility) 異なるホストコンピュータ10がWAN11、12において異なるポイントに接続さ れるとき、幾つかの特定のホストコンピュータ10から特定の端末15またはホスト 10への通信経路は他への通信経路よりも短くなる。このデータはシステムデータ メモリ318 に記憶される。したがってホスト10のオブジェクトを記憶するのに有 効であり、ホスト10はオブジェクトにアクセスする端末に接続されている。 図12を参照すると、段階4002でプレコンパイラ316 は、各データ表示に対し て、識別子(例えば、ユーザ、クライアント支援、サービスプロバイダ、請求書 発行、または規則性)およびそのクラスのオブジェクトにアクセスする端末15の 数を読取り、段階4004で、システムデータメモリ318 に記憶したデータを使用し て、そのクラスの新しいオブジェクトを記憶して、これらの端末へ最良のアクセ スを行なう。 段階4006でプレコンパイラ316 が新しいソースコードを付加することによって 、コンパイラは異なるホストコンピュータ10に対してコンパイルされるオブジェ クトマネージャ108 を変更して、段階4004で選択した特定のホスト10に接続され たクラスの新しいオブジェクトを生成する全ての要求をオブジェクト108 に送る ことができる。セキュリティ(Security) 段階4008では、プレコンパイラ316 は新しいソースコードを付加して、特定の データ項目を変更する機能を呼出すオブジェクトまたはプロセスの識別子をテス トし、ユーザの期待されるカテゴリにしたがって識別子があるところにのみアク セスできるようにする。したがって例えば人事データは人事の端末のみによって 読取りまたは書込むことができる。同時処理(Concurrency) オブジェクトのデータに対する多数の同時処理アクセスが可能であるとき、第 1のオブジェクトは別のオブジェクトにアクセスし、このアクセスも同時に行う ことができるが、一致しない状態で行われることもある。したがって好ましい実 施形態では、不一致を回避する幾つかの手段を準備する。図13を参照すると、 段階5002では、プレコンパイラ316 は各クラスごとに、そのクラスにアクセスで きる同時処理プロセス数を読取り;同時処理情報を含まないとき、または同時処 理プロセス数が明らかに1つであると記載されているときは、段階5004でさらに 動作は行われない。段階5004で所定のオブジェクトクラスに対して同時処理プロ セス数が所定数を越えているとき(2、またはそれ以上のとき)、段階5006では このクラスに対して同時処理制御方法、すなわちこの実施形態では簡単なロッキ ングプロセスを選択し、1つのオブジェクトにアクセスした後、第1のオブジェ クトが終了するまで、別のオブジェクトにアクセスできないようにする。 段階5008では、付加的なソースコードを元のソースコードに付加し、コンパイ ラは関係するクラスのコードに対してロッキング段階に付加する。タイムリネス(Timeliness) 各ホスト10は、マルチタスク処理オペレーティングシステム106 を使用して、 異なるオブジェクトの多数の処理を並列して実行する。 図14を参照すると、段階6002でプレコンパイラは各クラスと関係付けられた ランタイムを読取る。全平均ランタイムの総計に依存して、段階6004で各ホスト コンピュータ10のシステムデータメモリ318 に記録されたメモリ量にしたがって 、プレコンパイラは各ホストコンピュータ10のキャッシュの大きさを確立するコ ンパイラの指令を含み、有効メモリ内の総計必要アクセス時間に逆比例するキャ ッシュの大きさを準備する。 段階6006で、各クラスの定義ごとに、短い平均または最大ランタイムを特定す るか否かをテストし、テストするときは、段階6008でクラスごとに平均ランタイ ムに逆比例する優先加重を選択し、段階6010で関係するクラスに対して定められ たコードにソースコードを付加して、クラス(クラス内の特定の機能または動作 )を呼出してから所定の時間が経過したか否かをテストするタイマを構成し、所 定 の時間を経過した場合は、動作を中止する。 選択した加重値を加重値リストに書込む。加重値リストは各ホスト10ごとにオ ブジェクトマネージャ108 が使用するコンパイラによってコンパイルされており 、加重値リストにしたがって各オブジェクトを実行する優先度を設定すると、相 対的に長い平均応答時間をもつオブジェクトは比較的に短い優先待機時間のオブ ジェクトと一致し、オペレーティングシステム106 によって“バックグランド” タスクとして処理される。要約 したがって、プレコンパイラ316 の動作後に、ソースコードメモリ308 に記憶 した拡張ソースコードは付加的なソースコードおよびコンパイラの指令を含み、 次の規準、すなわち、 (a)付加的なコードまたはデータをクラスコード110へ付加すること; (b)全てのホストコンピュータ10に対してオブジェクトマネージャコード108 を変更すること; (c)コンパイラに命令して、異なるホストコンピュータ10に対してオブジェク トマネージャの別々のバージョンを生成することの何れかによって機能または動 作を実行する。 この拡張したソースコードにしたがって、コンパイラは入力ソースコード内の 各表示されたクラスのクラスコード110 を含む実行可能なコードファイルを生成 し、さらに各ホストコンピュータ10に対してオブジェクトマネージャ108 を含む ことができる。 各ホストコンピュータ10に対してオブジェクトマネージャ108 のコードをコン パイルするのではなく、その代わりに各ホストコンピュータ10ごとにオブジェク トマネージャ108 が使用するデータファイルを供給して、その動作を変更するこ とが好ましい。 したがって遠隔通信システムを変更するとき、例えば新しいホストコンピュー タを付加して、またはホストコンピュータで使用可能なメモリを拡張して得られ るシステム情報を変更するか、または1または複数のオブジェクトクラスの機能 を変更するので、上述のローカルテストの後で、上述のように、プレコンパイル またはコンパイル処理を繰り返して、新しい実行可能なファイルを広域網を介し て各ホスト10へ送る。 新しいホストコンピュータを、他のホストコンピュータを変更せずにシステム に付加するとき、予めコンパイルした実行可能なファイルのコピーを広域網を介 して新しいホストコンピュータへ供給するだけで、既存のホストコンピュータの やり方で新しいホストコンピュータを起動することができる。 したがって、第1の形式のコンパイラによって無視されるステートメント(例 えば、コメントステートメント)にシステムに特定の要件を与えることによって 、それを解放する前にシステムの基本的な機能動作の簡単なローカルテストを行 って、システムを使用時に変更するときにホストコンピュータ10の可能なダウン 時間が最小になるまで低減することが分かる。他の実施形態および変更 上述から明らかなように、多くの変更および代替が可能である。例えば、上述 の理由から、本発明で通常のC++コンパイラと共働するプレコンパイラを準備 するのが好都合であるが、本発明をさらに従来なかったコンパイラと結合するこ とも等しく可能である(事実、プレコンパイラとコンパイラの結合はまさにこれ を表していると考えられる)。 本質的に、本発明は分散型環境で準備するものとして、C++のみではなく、 他のオブジェクト指向の言語、例えばスモールトーク(Smalltalk)(TM)も使 用可能である。より一般的には、オブジェクト指向でない言語で、分散型でない システムに同様の方法を使用することも可能である。 本発明では遠隔通信システム内にコンパイラ装置を含むと記載したが、実際に はコンパイラシステムは異なる管轄区域にあって、国際的な遠隔通信ネットワー クを介してホストコンピュータをリンクできることが認識される;したがって、 コンパイラ装置を使用する遠隔通信システムと結合したコンパイラ装置と別々の コンパイラ装置を本発明の技術的範囲に含める。 当然、遠隔通信以外の応用、例えば共用分散コンピューティングも含むことが できる。 多くの他の代替および変更も当業者には明白である。したがって本発明は、添 付の請求の範囲によって含まれているか否かに関わらず、本明細書に記載した幾 つかのまたは全ての課題を包含することを意図している。 本出願と同じ日付で、同じタイトルで出願した我々の他の英国特許出願第 960 0823.0号は、本発明で使用可能であり、引用によって全体的に組込まれる。 とくに、タイプモデルを生成するために本明細書に記載した機構は、各オブジ ェクトの付加的なデータフィールドを含むように拡張されることが好ましく、こ の付加的なデータフィールドは、本発明にしたがって認識された機能的動作デー タを引用し、次に各オブジェクトマネージャ108 によって使用されるコンパイル された実行可能なコードの一部分として供給される。この方法では、同じ実行可 能なプログラムを各ホストコンピュータ10に供給して、メモリ318 に記憶したシ ステム情報を使用する必要を無くすことができる。

Claims (1)

  1. 【特許請求の範囲】 1.複数の相互接続されたコンピュータ(10)、およびコンピュータ(10)用の制御 プログラムをコンパイルする装置(30)から成る分散制御システムを含む遠隔通信 システムであり、装置(30)はコンピュータ言語でソースプログラムをコンパイル するようにされているコンパイラ(312)を含み、該コンピュータ言語は前記言語 に分かっていて、他のコンパイラによってコンパイルされることになる第1のス テートメントを含み、 コンパイラ(312,316)がさらに第2のステートメントで動作するように構成 されれており、該第2のステートメントは前記システムの動作基準を含み、前記 他のコンパイラによって無視されることになることを特徴とする遠隔通信システ ム。 2.前記第2のステートメントが前記言語のコメントフィールドに準備されてい る請求項1記載のシステム。 3.前記コンピュータ(10)が関係付けられたデータの読取りまたは書込み、ある いはその両方の制御プログラムと一緒にオブジェクト記録に制御データを記憶す るように構成されている請求項1または2記載のシステム。 4.前記第2のステートメントが、前記プログラムによって達成される動作時間 に関係する請求項3記載のシステム。 5.前記動作時間が1または複数の最小動作時間、平均動作時間、および最大動 作時間を含む請求項4記載のシステム。 6.前記第2のステートメントが前記システムに期待される前記記録と等しい数 に関係する請求項3記載のシステム。 7.前記第2のステートメントが、前記データ記録にアクセスする可能性の高い システム内のアクセスポイント数に関係する請求項3記載のシステム。 8.前記第2のステートメントが、前記データ記録またはその一部にアクセスで きるユーザカテゴリに関係する請求項3記載のシステム。 9.前記第2のステートメントが、前記データを直ぐに使用可能にしなければな らない範囲に関係している請求項3記載のシステム。 10.分散コンピューティングシステムの動作に対する機能要件を受入れ、前記 システムのコンピュータに関係する記憶したデータにしたがって前記機能要件を 翻訳して、機能要件を達成するようにされている分散コンピューティングシステ ム用コンパイラ装置。 11.コンピュータ言語のソースコードプログラムを受入れる手段(308)、前記 言語に分かる第1のステートメント(1000a)を読取って、コンパイルするように されている手段(312)を含む装置であり、手段(312,316)が、分散コンピューティ ングシステムの動作の前記機能要件を構成する第2のステートメント(1000b)を 読取って、コンパイルし、第2のステートメント(1000b)が前記他のコンパイラ によって無視されることになることを特徴とする請求項10記載の装置。 12.前記第2のステートメントが前記言語のコメントフィールドを含む請求項 11記載の装置。 13.前記言語がオブジェクト指向言語である請求項12記載の装置。 14.前記言語が、C++またはそれを変更したものを含む請求項13記載の装 置。 15.前記言語用の通常のコンパイラ(312)、および前記第2のステートメント を読取るようにされているプレコンパイラ(316)を含み、一般的な対応するソー スコード、コンパイラの指令、および/または他のステートメントは前記コンパ イラ(312)によって翻訳される請求項11乃至14の何れか1項記載の装置。 16.前記コンパイラ(312)が、前記第2のステートメントにしたがって分散コ ンピューティングシステムの異なるコンピュータ(10)上で実行する多数の実行可 能なコード出力ファイルを生成するように制御される請求項11乃至15の何れ か1項記載の装置。 17.前記コンパイラ(312)をさらに制御して、前記第2のステートメントの内 容を無視する単一のプロセッサ上で実行するための単一の実行可能なコードファ イルを生成する請求項16記載の装置。 18.前記コードの構造を定める第1のステートメントと、システムの動作基準 、またはシステムに専用の実行データ、あるいはその両方を特定する第2のステ ートメントを含むソースコードを生成し; 前記第2のステートメントを無視する一方で、前記第1のステートメントを コンパイルし; 前記コンパイルされた第1のステートメントの実行をテストし; それを満足のいくように実行したときに、前記分散コンピューティングシ ステムで実行するために前記第2のステートメント内に含まれる情報にしたがっ て前記第1のステートメントを再びコンパイルし; コンパイルされたコードを前記分散システムのコンピュータに分配するこ とを含む分散コンピューティングシステム上で実行するコードを生成する装置。 19.前記分散システムが遠隔通信システムである請求項18記載の方法。
JP52576797A 1996-01-16 1997-01-07 分散処理 Expired - Fee Related JP3878217B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9600854.5 1996-01-16
GBGB9600854.5A GB9600854D0 (en) 1996-01-16 1996-01-16 Distributed processing
PCT/GB1997/000035 WO1997026595A1 (en) 1996-01-16 1997-01-07 Distributed processing

Publications (2)

Publication Number Publication Date
JP2000503430A true JP2000503430A (ja) 2000-03-21
JP3878217B2 JP3878217B2 (ja) 2007-02-07

Family

ID=10787110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52576797A Expired - Fee Related JP3878217B2 (ja) 1996-01-16 1997-01-07 分散処理

Country Status (13)

Country Link
US (2) US6438746B1 (ja)
EP (1) EP0875028B1 (ja)
JP (1) JP3878217B2 (ja)
KR (1) KR19990077378A (ja)
CN (2) CN100557569C (ja)
AU (1) AU707109B2 (ja)
CA (1) CA2240508C (ja)
DE (1) DE69734348T2 (ja)
GB (1) GB9600854D0 (ja)
MX (1) MX9805682A (ja)
NO (1) NO983263D0 (ja)
NZ (1) NZ325380A (ja)
WO (1) WO1997026595A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250378A (ja) * 2009-04-10 2010-11-04 Nec Corp ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152200B2 (en) * 1997-12-31 2006-12-19 Qwest Communications International Inc. Internet-based database report writer and customer data management system
DE19919874A1 (de) * 1999-04-30 2000-11-02 Univ Dresden Tech Verfahren zur Informationsübergabe bei der Steuerung von Abläufen
US6772140B1 (en) * 1999-11-01 2004-08-03 Harris-Exigent, Inc. Hierarchical syntax for satellite command and control directives
WO2002029559A1 (en) * 2000-09-27 2002-04-11 Conducive Technology Corp Scripting business logic in a distributed object oriented environment
JP2002116917A (ja) * 2000-10-05 2002-04-19 Fujitsu Ltd オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ
US7346849B1 (en) * 2001-04-03 2008-03-18 Cypress Semiconductor Corp. Executable code derived from user-selectable links embedded within the comments portion of a program
US7707544B2 (en) * 2002-12-05 2010-04-27 Bea Systems, Inc. System and method for generating and reusing software application code with source definition files
GB0303270D0 (en) 2003-02-13 2003-03-19 Renishaw Plc A machine tool control process and apparatus therefor
US7185215B2 (en) * 2003-02-24 2007-02-27 International Business Machines Corporation Machine code builder derived power consumption reduction
US20040187099A1 (en) * 2003-03-20 2004-09-23 Convergys Information Management Group, Inc. System and method for processing price plans on a device based rating engine
CN110825378B (zh) * 2019-09-17 2023-07-18 秦皇岛米格教育科技有限公司 基于程序积木的编程系统和控制系统
CN115658078B (zh) * 2022-12-27 2023-03-17 金篆信科有限责任公司 数据库的预编译处理方法、装置、设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463172A1 (en) * 1989-12-26 1992-01-02 Fujitsu Limited Object oriented distributed processing system
US5307499A (en) * 1990-11-30 1994-04-26 Singapore Computer Systems Limited Interpretive object-oriented facility which can access pre-compiled classes
JP3050645B2 (ja) * 1991-06-04 2000-06-12 川崎製鉄株式会社 亜鉛めっき付着ムラ原因を突き止める方法
US5327561A (en) * 1991-09-20 1994-07-05 International Business Machines Corporation System and method for solving monotone information propagation problems
DE4131380A1 (de) * 1991-09-20 1993-03-25 Siemens Ag Verfahren zur adaption einer objektorientierten applikation
US5717929A (en) * 1993-03-30 1998-02-10 Sanyo Electric Co., Ltd. Apparatus and method for program execution, and image reproduction apparatus with special effects utilizing such apparatus and method
US5539907A (en) * 1994-03-01 1996-07-23 Digital Equipment Corporation System for monitoring computer system performance
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US5892950A (en) * 1996-08-09 1999-04-06 Sun Microsystems, Inc. Interface for telecommunications network management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250378A (ja) * 2009-04-10 2010-11-04 Nec Corp ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム

Also Published As

Publication number Publication date
NO983263L (no) 1998-07-15
KR19990077378A (ko) 1999-10-25
CN101154165A (zh) 2008-04-02
DE69734348T2 (de) 2006-07-06
EP0875028B1 (en) 2005-10-12
CA2240508C (en) 2005-10-18
CN1208481A (zh) 1999-02-17
MX9805682A (es) 1998-11-29
US6343374B1 (en) 2002-01-29
EP0875028A1 (en) 1998-11-04
DE69734348D1 (de) 2005-11-17
NO983263D0 (no) 1998-07-15
GB9600854D0 (en) 1996-03-20
US6438746B1 (en) 2002-08-20
NZ325380A (en) 1999-07-29
AU707109B2 (en) 1999-07-01
CA2240508A1 (en) 1997-07-24
CN100557569C (zh) 2009-11-04
AU1387997A (en) 1997-08-11
JP3878217B2 (ja) 2007-02-07
WO1997026595A1 (en) 1997-07-24

Similar Documents

Publication Publication Date Title
CA2242516C (en) Distributed processing
Tanenbaum et al. Experiences with the Amoeba distributed operating system
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
US5884097A (en) Data structure and methods for defining and using attribute data blocks to instantiate objects and describe changes to objects
US5442771A (en) Method for storing data in an interactive computer network
US20030105833A1 (en) Transparent optimization of network traffic in distributed systems
US6609159B1 (en) Methods, systems, and machine readable programming for interposing front end servers between servers and clients
WO1998053398A1 (en) Java virtual machine extension for instantiating objects
JPH04233654A (ja) コンピュータシステム
JP3878217B2 (ja) 分散処理
US6256779B1 (en) Distributed processing
Andersson et al. Kaffemik-A distributed JVM on a single address space architecture
Pizka et al. Evolving Software Tools for New Distributed Computing Environments.
Forin et al. Parallel processing with Agora
AU747018B2 (en) Distributed processing
CA2342423C (en) Distributed processing
Williams et al. An Introduction to Asynchronous Programming with Twisted
Huber Jr et al. Users' Guide for PPFS: A High-Performance Portable Parallel File System
CA2437742C (en) Distributed processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060410

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060821

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: 20061003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees