JPH0827769B2 - 通信インターフェースの生成システム及びその方法 - Google Patents

通信インターフェースの生成システム及びその方法

Info

Publication number
JPH0827769B2
JPH0827769B2 JP5229598A JP22959893A JPH0827769B2 JP H0827769 B2 JPH0827769 B2 JP H0827769B2 JP 5229598 A JP5229598 A JP 5229598A JP 22959893 A JP22959893 A JP 22959893A JP H0827769 B2 JPH0827769 B2 JP H0827769B2
Authority
JP
Japan
Prior art keywords
interface
file
rpc
mission
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5229598A
Other languages
English (en)
Other versions
JPH06208519A (ja
Inventor
ハラナサ マドリ ハリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06208519A publication Critical patent/JPH06208519A/ja
Publication of JPH0827769B2 publication Critical patent/JPH0827769B2/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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【産業上の利用分野】本発明は、ローカル・エリア・ネ
ットワーク内の通信に関連する。特に、複製の対称セッ
トを、顧客サーバ指向ツールを使用して複数のノードの
中で生成することに関連する。
【従来の技術】ローカル・エリア・ネットワーク、広域
ネットワークまたは他の同様の手段を通して、分散環境
の中で複数のデータ処理システムをつなぐことはますま
す一般的になっている。ネットワークは、ネットワーク
の複数の販売業者からの、データ処理システムに結合し
たいくつかの異なるLAN通信規約によって、より複雑
になっている。ローカル・エリア・ネットワークの一般
的なモデルは、顧客サーバまたはマスタ・スレーブ・モ
デルである。この型モデルでは、顧客またはマスタデー
タ・プロセッサ上のプロセスが、サーバまたはスレーブ
・データ処理装置上のプロセスからのサービスを要請す
る。匹敵するモデルは、各サーバ、あるいは少くともそ
のサブセットが本質的にネットワークの中の他ものの複
製である、同輩(peer-to-peer)関係である。顧客およ
びサーバが非対称なので、同輩関係を持つプログラムを
構成するには、顧客サーバ・システム環境の中で開発さ
れたツールは使いにくい。そのようなツールによって作
られたプログラム構成要素は普通、エラーを起こしがち
で維持しにくい中間コードセグメントを持つ。問題を説
明するために、以下のことを考慮する:分散名前サービ
スが、ネットワークの複数のデータ処理装置上に作られ
ると仮定する。各機械上に、ひとつの名前サーバが存在
する。ネットワークの中のどの機械からの顧客も、ロー
カルサーバに問い合わせをすることができる。各サーバ
は、分散名前サービス全体のすべての名前のサブセット
を持っているだけである。サーバは、情報を持たない名
前についての問合せを受け取ると、解決のために同輩名
前サーバーを呼ぶ。模写されたサーバにおいて、実行中
のすべてのプログラムセットと同様に、呼び出しが顧客
または遠隔の同輩からにかかわらず、名前調査のインタ
ーフェースは同じでなければならない。この一様性の利
点は、サーバのどれも特別のケースを扱わないでよいと
いうことである。すなわち呼び出しが同輩サーバからか
または外部の顧客からかどうかチェックする必要がない
ということである。一組の複製が伝統的顧客サーバ・ツ
ールによって開発されるなら、サーバから他のサーバへ
の呼び出しはそのサーバ自身が応答する呼び出しと同じ
である。これは、すべての遠隔コールを短絡にする効果
を持って、遠隔プロシージャ呼出しをその同輩への呼び
出しではなく再帰呼出しのように見せる。そのような短
絡を防ぐために、分散計算機システム環境(DCE)にお
いて、2個の名前が各サーバ機能のために使用されるよ
う提案された。ひとつの名前はサーバの顧客に使用さ
れ、もうひとつの名前はサーバ機能の実際の実現のため
に使用される。機能を実行するモジュールは、マネージ
ャと呼ばれる。マネージャ入口点ベクトルは、顧客およ
び実際の実現名前によって使用された名前を関連づける
ために使用される。この方法が実行される一方、マネー
ジャ機能が加えられるか削除されるときはいつでも、プ
ログラマはマネージャ入口点ベクトルを変更しなければ
ならない。さらにこの方式は、サーバ・インターフェー
ス機能の通し番号とマネージャ入口点ベクトルのマネー
ジャ機能の通し番号を突き合わせることによって、実行
される。コンパイル時にはチェックされないので、例え
ば数パラメータ・マッチにはエラーがあるかもしれな
い。これは、予想外の実行時エラーとなりえる。従来技
術が問題を解決するために求めた第2の方法は、顧客側
の顧客スイッチ・ファイルを排除し、サーバが普通の機
能名ではなく顧客入口点ベクトルを使用して同輩を呼び
出すよう要求することである。これは、分散サーバ・プ
ログラムの開発者に遠隔プロシージャ呼出し(RPC)が
どのように機能するかを明らかにし、開発者側のRPCの
理解を必要とする。これは、望ましくない。本発明は、
より少ないエラーと容易に持続可能なコードをもつ、顧
客サーバ・ツールをもつ同輩間通信を実現する方法を示
唆する。
【発明が解決しようとする課題】本発明の目的は、非対
称ツールを使用しているネットワークのために対称通信
インターフェースを生成することである。本発明のもう
ひとつの目的は、対称通信インターフェースの中でオペ
レータに由来するエラーを減少させることである。本発
明のもうひとつの目的は、対称通信インターフェースを
生成するプロセスを自動化することである。
【課題を解決するための手段】本発明の目的は、ネット
ワーク中のレプリカ間のインターフェースのために、特
定の分散適用業務のための2個のインターフェース定義
ファイルを定義することによって達成される。第1のイ
ンターフェース定義ファイルは、第2任務のレプリカが
第1任務の第2のレプリカを呼び出すために使用され、
第2のインターフェース定義ファイルは、そのサービス
を定義するために第1任務を果たしているレプリカのた
めに使用される。第1の、そして第2任務は、たとえ
ば、サーバおよび顧客任務である。両方のインターフェ
ースは同じインターフェース識別番号を使用し、典型的
に識別番号はファイルの第1のラインにある。好ましい
実施例において、各インターフェース定義ファイルは、
ファイル中のすべての機能名に対する接頭辞または接尾
辞を除いて、対応するサーバ・コードラインと同一であ
る。本発明のプロセスの中で、後続のステップが実行さ
れる。2個のインターフェース定義ファイルは、固定I
Dで定義される。両方のインターフェース・ファイル
は、分散適用業務のためのインターフェース・ファイル
を生成するためにインターフェース定義コンパイラを通
して実行される。本発明が適応する分散計算機システム
環境の中で、インターフェース・ファイルは顧客および
サーバ・スタブ・ファイルと呼ばれる。第1のインター
フェース定義ファイルからのサーバ・スタブが無効にさ
れ、第2のインターフェース定義ファイルからの顧客ス
タブが無効にされる。またはその逆が起こる。その結果
生ずる一組の顧客およびサーバ・スタブは、ネットワー
クの中で適用業務を実行している一組の同輩システムの
ために模写される。インターフェース定義ファイルの中
で定義されている機能を実行するために同輩適用業務を
リンクするとき、先に生じた顧客およびサーバ・スタブ
が使用される。通常の顧客プログラムをリンクすると
き、顧客スタブが使用される。
【実施例】本発明は、数多くの異なるオペレーティング
・システム下の様々なコンピュータあるいはコンピュー
タ群上で実行することができる。コンピュータは例え
ば、パーソナルコンピュータ、ミニ・コンピュータまた
はメインフレーム・コンピュータが使用可能である。し
かし、ローカル・エリア・ネットワーク、広域ネットワ
ークまたは大規模テレプロセッシング・システムのよう
なネットワークの一部である複数のコンピュータが使用
されるのが好ましい。コンピュータの特定の選択がディ
スクおよびディスク記憶装置要求事項によって制限され
るが、IBM PS/2ロット・シリーズのコンピュータを本
発明に従って構築することができる。IBMのPS/2シリー
ズの情報は以下の文献を参照されたい。テクニカル・レ
ファレンス・マニュアル、パーソナル・システムズ/2
モデル50、60、パートNo.68X2224 注文No. S68X-
2224、およびテクニカル・レファレンス・マニュアル、
パーソナル・システムズ/2(モデル80)、パートN
o. 68X2256 注文No. S68X-2254。IBM PS/2パーソナルコ
ンピュータが実行するオペレーティングシステムのひと
つは、IBM OS/2 2.0である。IBM OS/2 2.0の詳細は以
下の文献に参照される。OS/2 テクニカル・ライブラ
リ、プログラミング・ガイドVo.1、2、3 バージョン2.0
0. 注文No.10G6261、10G6495、10G6494。また、計算機
システムはAIX(TM)オペレーティングシステム上で稼
動するIBMRISC System/6000(TM)系のコンピュータでも
ありえる。RISC System/6000の多様な型モデルは、例え
ば、RISC System/6000、7-073 および-7016 パワーステ
イション・アンド・パワーサーバ・ハードウェア・テク
ニカル・レファレンス 注文No. SA23-2644-00 のよう
なIBM社の多くの刊行物の中で記述されている。AIXオペ
レーティング・システムは、ジェネラル・コンセプト・
アンド・プロシージャ - AIX バージョン 3 フォー RIS
C System/6000 注文No. SC23-2202-00のようなIBM社の
多くの刊行物の中で記述されている。図1で、コンピュ
ータ10はシステム装置11、キーボード12、マウス
13およびディスプレイ14を備えている。ディスプレ
イ装置14のスクリーン16が、データ対象物の視覚的
変更を示すために使用される。オペレーティング・シス
テムに支持された絵画的ユーザ・インターフェースは、
利用者が、データ対象物をスクリーン16上の特定の位
置に表わしているアイコンへポインタ15を動かし「ポ
イント・アンド・シュート」方法を使用して入力し、マ
ウスのボタンの一つを押して利用者命令を選択すること
を可能にする。選択されたデータ対象物が、選択された
ビューを提示するウィンドウに現れる。図2は、図1の
中で示されたマルチメディア・パーソナルコンピュータ
の構成要素のブロック図を示す。システム装置11は、
多様な構成要素が接続され、構成要素間の通信が達成さ
れる、単数または複数のシステムバス21を含む。マイ
クロプロセッサ22は、システムバス21に連結し、同
様にシステムバス21に連結した固定記憶装置(ROM)
23および直接記憶装置(RAM)24によって支持され
る。TBM マルチメディア PS/2コンピュータシリーズの
マイクロプロセッサは、マイクロプロセッサ386また
は486を含むインテル製品マイクロプロセッサの1つ
である。しかし、68000、68020または680
30マイクロプロセッサのようなモトローラ製品マイク
ロプロセッサに限らず他のマイクロプロセッサも含まれ
る。また、IBM社、ヒューレット・パッカード社、サン
社、インテル社、モトローラ社および他社により製作さ
れた、様々な縮小命令セットコンピュータ(RISC)マイク
ロプロセッサを、本仕様コンピュータの中で使用するこ
とができる。ROM 23は、対話機能、ディスク・ドライ
ブおよびキーボードのような基本ハードウェア・オペレ
ーションを制御する基本入出力システム(BIOS)や他の
コードを含む。RAM 24は、オペレーティング・システ
ムおよびマルチメディア適用業務プログラムがロードさ
れるメイン・メモリである。メモリ管理チップ25は、
システムバス21に接続し,RAM 24,ハードディスクド
ライブ26およびフロッピーディスクドライブ27間の
データのやりとりを含む直接メモリ・アクセス・オペレ
ーションを制御する。同様にシステムバス21に接続す
るCD ROM 32が、マルチメディア・プログラムまたは
プレゼンテーションの多量のデータを保存するために使
用される。様々なI/Oコントローラー、キーボード・
コントローラー28、マウス・コントローラー29、ビ
デオ・コントローラー30およびオーディオ・コントロ
ーラー31があり、キーボード・コントローラ28はキ
ーボード12のために、マウス・コントローラ29はマ
ウス13のためにハードウェア・インターフェースを提
供する。ビデオ・コントローラ30はディスプレイ14
のための、オーディオ・コントローラ31はスピーカ1
5Aおよび15Bのためのハードウェア・インターフェ
ースである。またシステムバス21に、スピーカ・シス
テムによって作られた音を訂正し、オーディオコントロ
ーラ31に結合したデジタル信号プロセッサ33が接続
している。スピーカ15Aおよび15Bは、オーディオ
対象物を利用者に提示するために使用される。最後に、
Token RingアダプタのようなI/Oコントローラ40が
システムバスに接続し、システムをローカル・エリア・
ネットワーク50に接続させる。分散計算機システム環
境(DCE)は、分散環境の一連の問題を解決するためのI
BM社、DEC社およびヒューレット・パッカード社を含む
一群の会社による努力の成果である。問題の中には、DC
E遠隔プロシージャ呼出し(RPC)の実行がある。RPC
は、適用業務の顧客およびサーバ間通信の1モデルであ
る。分散環境における複数の同輩適用業務間の通信が、
本発明によって適応される。伝統的ローカルプロシージ
ャ呼出しにおけるように、遠隔プロシージャ呼出しにお
いても、制御は1つのコード・モジュールから他のモジ
ュールに渡りそして本来のコード・モジュールに戻る。
しかし、ローカルプロシージャ呼出しは、典型的に同じ
機械上の同じアドレス空間にあるコード・モジュールを
使用する。RPCは、ネットワークに接続した異なるシス
テム上の異なるアドレス空間で実行する遠隔プロシージ
ャを呼ぶ。遠隔プロシージャ呼出しにおいて、引き数お
よび返却値はネットワーク上の転送のためにメッセージ
にパックされなければならない。RPC機構は、このプロ
シージャがローカルプロシージャ呼出しに似るように、
適用業務プログラマが理解できるようにするために使用
される。RPC機構は、同輩適用業務間のネットワーク転
送の詳細をプログラマが知る必要をなくす。遠隔プロシ
ージャ呼出しを使用すると、異なる構造、オペレーティ
ング・システム、通信規約のようなネットワーク詳細
は、各可能な状況のために適用業務が再書込みをする必
要がない。DCEの中で、RPCはほとんどローカル呼び出し
のように見える。インターフェース定義ファイルおよび
そのコンパイラ、普遍的一意識別子ゼネレータおよびRP
C 実行時間を含むネットワークをマスクするために使用
されるいくつかの構成要素がある。2つのRPC通信規約
が支持される。接続指向トランスミッション・コントロ
ール・プロトコル/インターネット・プロトコル(TCP/
IP)、そして無接続ユーザ・データグラム・プロトコル
/インターネット・プロトコル。インターフェース定義
ファイルは、DCEインターフェース定義言語(IDL)で記
述される。インターフェース定義ファイルは、IDLコン
パイラを使用してCのような計算機言語にコンパイルさ
れ、次に、適用業務のサーバおよび適用業務の顧客に対
する2つのインターフェース・ファイルのオブジェクト
・コードにコンパイルされる。これらのインターフェー
ス・ファイルは、サーバ・スタブおよび顧客スタブと呼
ばれる。DCE概念の従来の実施は、顧客スイッチ・スタ
ブと呼ばれる第2の顧客インターフェース・ファイルを
含んでいる。インターフェース定義ファイルは、各RPC
インターフェースを定義するために使用される。インタ
ーフェースは、特定のサーバ適用業務が実行することが
できる一群の機能である。たとえば、金融適用業務は、
借方、貸方、あるいは収支を読むオペレーションを実行
する。これらの機能の各々は、金融適用業務のインター
フェース定義ファイルに定義されなければならない。DC
Eにおいては、プロシージャの実行ではなく呼出しイン
ターフェースのみ定義される。コンパイルの後、顧客ス
タブは、伝統的に顧客である、適用業務の他の部分から
のサービスのためにネットワークを横切って呼び出しを
行う適用業務の呼び出し部分にリンクされる。サーバ・
スタブは、通常サーバであるインターフェース定義ファ
イルに定義された機能を実行する適用業務の一部にリン
クされる。RPC実行時間ライブラリは、ネットワーク上
の分散適用業務の同輩間通信を実行する一組のルーチン
を含む。実行されるタスクには、分散したシステム中の
サーバをみつけること、顧客とサーバ間の通信、要求と
通信エラー処理間の状態管理がある。普遍的一意識別子
ゼネレータは、各RPCインターフェースに特有の識別子
を支給する。DCE RPCモジュールは、また、安全な通信
に対する保証サービス、ネットワーク中にサーバを置く
のを手伝うための名前サービスAPI、ネットワーク中の
転送終点を管理するためのRPCデーモンおよびRPCデーモ
ンを管理する制御プログラムを含む。ネットワーク・計
算機システム・システム(NES)1.0はAIXの一部であ
り、AIXへの分散計算機システム環境拡張1.0は、IDL
コンピュータを含むRPC製品の一例である。インターフ
ェース・ファイルが生成されたあと、分散適用業務の呼
出し部分が、要求された機能を実行する適用業務の部分
を見つけなければならない。このプロセスは、結合と呼
ばれる。呼び出し適用業務は、実行されたサービスの
型、管理された対象物の型および支持されたインターフ
ェースを含む情報を調べるために、特定のインターフェ
ースを実行している適用業務のロケーションに対するデ
ィレクトリ・サービスにアクセスすることができる。イ
ンターフェースを実行しているサーバ適用業務または他
の適用業務が、ディレクトリ・サービスの中でそのサー
ビスを「広告する」ために述べられる。RPCデーモン
は、サーバが始まる度に変化する、ディレクトリ・サー
ビスにおけるサーバ適用業務の正確なネットワーク終点
を更新するために使用される。図3は、サーバおよび顧
客インターフェース・ファイルまたはスタブが生成され
たあとネットワーク99に接続された2つのデータ処理
システム100、110の中のコード・モジュールを図
示する。本発明の分散適用業務およびスタブは多数のシ
ステムにコピーされるが、明確にするために2つのシス
テムのみ図示する。各システム100、110の直接記
憶装置には、ネットワーク適用業務のコピー103、1
03′があり、それはネットワーク99の他のシステム
からサービスを要求する。この適用業務103のために
2個のインターフェース定義ファイル104、105
が、同じインターフェース定義IDで第1のシステム1
00の中で生成される。各インターフェース定義ファイ
ル104、105から、インターフェース定義コンパイ
ラ106は2つまたは3つのスタブ・ファイルを生成す
る。ひとつのスタブ・ファイルは、サーバ・スタブ10
7、117と呼ばれ、分散適用業務のサーバまたはサー
バ部分に接続される。他の2つは、顧客スタブ108、
118、および顧客スイッチ・スタブ109、119と
呼ばれる。これらは選択可能で、ローカルシステムで適
用業務の顧客コピーと関連する。第1のインターフェー
ス定義ファイル104から、顧客スタブである、顧客ス
タブ108および顧客スイッチ・スタブ109は無効に
され、サーバ・スタブ107は保存される。第2のイン
ターフェース定義ファイル105から、サーバ・スタブ
117は無効にされ、顧客スタブ部分、顧客スタブ11
8および顧客スイッチ・スタブ119は保存される。イ
ンターフェース定義エディタ112、113は、第1の
インターフェース定義ファイル104から第2のインタ
ーフェース定義ファイル105を生成するために使用さ
れる。特定目的エディタが使用される一方、AIXシステ
ム環境の中のSEDのようなふつうのストリームエディタ
ーを使用することができる。システム100、110そ
れぞれのRPC実行時間モジュール114、115は、適
用業務レプリカ間の通信サービスを提供する。図4は、
第1のシステム100から余分なサーバおよび顧客スタ
ブ・ファイルが削除され、残りのサーバおよび顧客スタ
ブ・ファイルが第2のシステム110に模写された後
の、2つワークステーション100、110中のコード
・モジュールを図示する。第1のインターフェース定義
ファイル104からのサーバ・スタブ107および第2
のインターフェース定義ファイル105からの顧客スタ
ブ118、119は、ネットワークにわたって模写さ
れ、顧客および適用業務プログラム103のレプリカの
サーバ部分にリンクされる。分散適用業務が遠隔マシー
ン上のレプリカに通信するとき、第2のインターフェー
ス定義ファイルによって生成された顧客スタブを使用す
るので、短絡問題は解決される。適用業務がサーバのよ
うに機能したいとき、それは第1のインターフェース定
義ファイルによって生成されたサーバ・スタブを使用す
る。2つのインターフェースは、異なる名前またはプロ
シージャを持つ一方、インターフェース定義のための同
じID番号を共有する。DCEシステムにおいて、インター
フェースID番号はインターフェースを識別するために使
用される。サーバからの特定のプロシージャに対するネ
ットワーク・コールは、インターフェースの範囲内でイ
ンターフェースID番号および機能通し番号を含むが、適
用業務によって使用される実際の機能名は含まない。分
散計算機システム環境のこの特徴により、本発明が機能
することができる。本質的に、インターフェースは2つ
の名前によって呼ばれる。インターフェースがサーバと
して機能するとき、サーバ・スタブ中のひとつの名前セ
ットが使用される。インターフェースが顧客として機能
するとき、顧客スタブ中の他の名前セットが使用され
る。サービスが顧客セット名を使用して呼ばれるとき、
サービスは最終的には実際にサービスを提供しているサ
ーバセット名にたどり着く。図4の中で、本発明に従っ
て遠隔プロシージャ呼出しが図示される。第1のシステ
ム100、第2のシステム110において、適用業務同
輩103、103′は起動され、ネットワークの中のロ
ケーションをディレクトリ・サービスに「広告する」。
この例では、適用業務同輩103、103′が分散金融
適用業務の一部であると仮定する。こうして適用業務が
金融サービスを必要とする、または金融適用業務同輩1
03がその同輩103′と連絡をとる必要があるとき、
適用業務はどこにRPCを送りだせばよいかわかる。最終
的には、第1のシステム100上の同輩103は自分自
身についての要求に答えることができないので、第2の
システム110上の同輩103′を呼ぶ。同輩103
は、同輩のネットワークアドレスのためにディレクトリ
・サービスを呼び、顧客スタブ118に遠隔プロシージ
ャ呼出し131を送る。顧客スタブ118は、ネットワ
ークメッセージ133の呼び出し引き数を変換し、第2
のシステム110上の実行時間115にメッセージ13
5を送る実行時間ライブラリを呼ぶ。RPCは、サーバ・
スタブ107′にネットワーク・メッセージ137を送
り出す第2のシステム110上の実行時間ライブラリ1
15によって受け取られる。サーバ・スタブ107′
は、引き数をアンパックし、要求された機能を実行する
ために同輩103′の該当する部分に渡す。顧客スタブ
118に適用業務103によって生成されたRPC131
が、適用業務の顧客側および顧客スタブ118によって
共有された機能名を使用する。たとえば、RPC131が
文字「pqr」で始まる3番目の機能のためだと仮定す
る。顧客スタブは、インターフェースID、機能通し番
号、およびネットワーク規約情報を含むネットワーク規
約コールにこれをコンパイルする。適用業務103に対
するインターフェースIDが「A1O3B」であ ると仮定する
と、ネットワーク・メッセージ133は「A103B|3|...
|...」と表される。「A103B」がID番号で、「3」は3番
目の機能である「pqr...」のインターフェース中の通し
番号である。メッセージ137はサーバ・スタブに達す
ると、サーバ部分が理解できるプロシージャ呼出しにア
ンパックされる。サーバ・スタブは同じインターフェー
スIDを持つが、通し番号「3」に対応する機能を検索す
るとき、「RC_pqr...」が検索されサーバ部分に渡され
る。サーバ部分が応答するプロセスは、まったくこの逆
である。サーバはサーバ・スタブにRPCの結果を送り出
し、サーバ・スタブはネットワーク・メッセージにそれ
らをパックする。サーバ・スタブは、ローカル実行時間
ライブラリに、ネットワーク・メッセージを送り出し、
ローカル実行時間ライブラリは顧客システム上の実行時
間ライブラリにそれを送り出す。実行時間ライブラリ
は,呼び出し元の同輩へメッセージをアンパックする顧
客スタブにメッセージを送る。分散適用業務を設計した
同じプログラマがインターフェース定義ファイルを設計
するので、プログラマは最終的サーバおよび顧客スタブ
で使用される規則を知っていて、サーバまたは顧客任務
を果たすとき、適用業務が適当なRPCを行うようつくる
ことができる。ストリームエディターのようなエディタ
を使用することによって、第2のインターフェース定義
ファイルが生成されるプロセスが、簡単に自動化され
る。たとえば「sample.idl」が第1のインターフェース
定義ファイルであるAIXにおいて、下記のコマンドを実
行することによって第2のインターフェース定義ファイ
ル(sampleTwo.idl)がつくられる:「 sed 's/RC-// s
ample.idl > sampleTwo.idl」。Sedは、すべてのUNIXプ
ログラムの規格プログラムであるストリームエディター
である。これに対して、第2のインターフェース定義フ
ァイルを生成するためのツールを設計することもでき
る。AIXおよびUNIXの他の版で有効なユーティリティ「m
ake」を使って、最終的製品、たとえばプログラム、ド
キュメントあるいはオブジェクト・コード・ライブラリ
を作る際に、一連のステップを自動化することができ
る。「make」は、一連の規則および従属命令を含む、典
型的に「makefile」と名づけられたファイルを読む。従
属命令は、前提条件の目標名およびリストを持つ。前提
条件は、目標が作られる前に有効であるか、作られてい
なければならないファイルまたは他の対象物である。規
則は、目標を作るためにどのプログラムを実行しなけれ
ばならないか、前提条件ファイルから特定する。たとえ
ば、Cソースファイル「myprog.c」ファイルから「mypro
g」と呼ばれる目標プログラムを作るには、次に述べる
通り従属を指定する:「myprog:myprog.c」。要求された
目標を生成する規則を示すために以下のことを指定す
る:「cc -o myprog myprog.c」。こうして、「cc」と呼
ばれるCコンパイラが、「myprog.c」上に実行される。
そして最終結果は「myprog」と呼ばれるファイルに書か
れる。「myprog.c」自身が他のプログラムを実行した結
果であるなら、「make」は該当する規則を検索し、「my
prog.c」を生成するプログラムを実行する。一般に「ma
ke」は、前提条件を持たないものから始め、要求された
目標が作られるまで、一歩一歩他のものを生成してい
く。また、最新の目標を作るために正確にどのプログラ
ムを再実行しなければならないか知るために、ファイル
上の日付けおよびタイムスタンプを使用する。上述の例
で、「myprog.c」が変わったときはいつでも、単にプロ
グラム「make」をタイプすることによって一貫した「my
prog」が再成される。したがって「make」ユーティリテ
ィは、分散適用業務、インターフェース定義ファイル、
インターフェース・ファイル、サーバおよび顧客スタブ
の更新処理を自動化する容易な方法である。第1のイン
ターフェース定義ファイルの変更を例にとると、例えば
サーバ任務が提供する新しい機能を付け加えるとする。
「makefile」は、第2のインターフェース定義ファイル
を再成し、IDLコンパイラによって第1および第2のイ
ンターフェース定義ファイルをコンパイルしてサーバお
よび顧客スタブの第1および第2のセットを生成し、余
分なスタブを除き、残りのスタブを分散適用業務の同輩
にリンクするために使用される。こうして他の同輩が新
しい機能について知ることができる。インターフェース
定義ファイルの例を以下に示す。各機能が機能名に「RC
_」を含むことに注意されたい。(以下の部分はプログ
ラムなので翻訳しない。) /* * @(#)master.idl 1.6 12/21/90 10:11:18 (c) IBM Corp. 1990 */ %c [ uuid(4cbf3dbO1d34.02.81.23.1c.d8.00.00.00), port(ip:[6666]), version(1) ] interface PODmaster { #include||<data.const.h> #include <data.types.h> ||void RC_registerShadow( handle_t [in] h, ObjRef [in] newPod, Mode [in] m); ||void RC_unregisterShadow( handle_t [in] h, Objref [in] oldPod); ||int||RC_requestToken(handle_t [in] h, || ||ObjRef [in] shadow, int [in, out] *shadoVersion, || ||string0 [MTHD_NAME_MAX] [in] *methodname, || ||LogRecord [out] *logBuf ); ||void RC_releaseToken(handle_t [in] h,ObjRef [in] shadow, stringO [MTHD_NAME_MAX] [in] *methodname); || || /* how do you indicates params to method ??*/ ||MasterBidRetCode RC_WantToBeMaster(handle_t [in] h,ObjRef [in] shadow); ||void RC_applyUpdates(handle_t [in] h, VerNumber [in] ver,LogRecord [in] &lRec); ||void RC_sendRefresh (handle_t [in] h,ObjRef [in] shadow, VerNumber [in] version. LogRecord [in, out] *lRec); 第2のインターフェース定義ファイルの例を以下に示
す。機能名が「RC_」を省略することによって短縮され
ていることに注意されたい。(以下の部分はプログラム
なので翻訳しない。) /* * @(#)master.idl 1.6 12/21/90 10:11:18 (c) IBM Corp. 1990 */ %c [ uuid(4cbf3dbOld34.02.81.23.1c.d8.00.00.00), port(ip:[6666]), version(l) ] interface PODmaster { #include||<data.const.h> #include <data.types.h> ||void registerShadow( handle_t [in] h, ObjRef [in] newPod, Mode [in] m); ||void unregisterShadow( handle_t [in] h, ObiRef [in] oldPod); ||int||requestToken(handle_t [in] h, || ||0bjRef [in] shadow, int [in, out] *shadoVersion, || ||string0 [MTHD_NAME_MAX] [in] *methodname, || ||LogRecord [out] *logBuf ); ||void releaseToken(handle_t [in] h,ObjRef [in] shadow, stringO [MTHD_NAME_MAX] [in] *methodname); || || /* how do you indicates params to method ??*/ ||MasterBidRetCode WantToBeMaster(handle__t [in] h,ObjRef [in] shadow); ||void applyUpdates(handle_t [in] h, VerNumber [in] ver,LogRecord [in] &lRec); ||void sendRefresh (handle_t [in] h,ObjRef [in] shadow, VerNumber [in] version, LogRecord (in, out] *lRec); ||void savePOD (handle_t [in] h, ObjRef [in] shadow); } このファイルはAIX上の以下の命令を使用して「Sample.
idl」ファイルから生成される。 Sed 's/RC-11' sample.idl> sample2.idl Sed はすべてのUNIXシステムに標準のストリーム・エデ
ィタである。IDLコンパイラで第1のインターフェース
定義ファイルをコンパイルして生成したサーバ・スタブ
・ファイルのC言語における簡略例を以下に示す。イン
ターフェス定義ファイルからの最初の2つの機能が含ま
れている。(以下の部分はプログラムなので翻訳しな
い。) #define NIDL_GENERATED #define NIDL_SSTUB #include "master.h" static RC_registerShadow_ssr #ifdef __STDC__ ( handle_t h, rpc_$ppkt__t *ins, ndr__$ulong_int ilen, rpc_$ppkt_t *outs, ndr_$ulong_int omax, rpc_$real_drep_t drep, rpc_$ppkt_t **routs, ndr_$ulong_int *olen, ndr_$boolean *free_outs, status_$t *st ) #else ( h, ins, ilen, outs,omax, drep, routs,olen, free-outs, st) handle_t h; rpc_$ppkt_t *ins; ndr_$ulong_int ilen; rpc_$ppkt_t *outs; ndr-$ulong_int omax; rpc_$real. drep_t drep; rpc_$ppkt_t **routs; ndr_$ulong_int *olen; ndr_$boolean *free_outs; status_$t *st; #endif { /* marshalling variables */ ndr_$ushort_int data_offset; ndr_$ulong_int bound; rpc_$mp_t mp, dbp; ndr_$ushort_int count; /* local variables */ Mode m_; ndr_$char newPod_; /* unmarshalling init */ data_offset=h->data_offset; rpc_$init_mp(mp, dbp, ins, data_offset); if (rpc_$equal_drep (drep, rpc_$local_drep)) { /* unmarshalling */ rpc_$unmarshall_char(mp, newPod_); rpc_$advance_mp(mp, 1); rpc_$align_ptr_relative (mp, dbp, 4); rpc_$unmarshall_ulong_int(mp, m_); } else { rpc_$convert_char(drep, rpc_$local_drep, mp, newPod_); rpc_$advance_mp(mp, 1); rpc_$align__ptr_relative (mp, dbp, 4); rpc_$convert_ulong_int(drep, rpc_$local drep. mp, m_); } /* server call */ RC_registerShadow(h, &newPod_, m_); /* buffer non-allocation */ *free_outs=false; *routs=outs: *olen=O; 2. st->all=status_$ok; } static RC-unregisterShadow_ssr #ifdef __STDC__ ( handle_t h, rpc_$ppkt_t *ins. ndr_$ulong_int ilen, rpc_$ppkt_t *outs, ndr_$ulong_int omax, rpc_$real_drep_t drep, rpc_$ppkt_t **routs. ndr_$ulong_int *olen, ndr_$boolean *free_outs, status_$t *st ) #else ( h, ins,ilen, outs,omax, drep, routs,olen, free_outs,st) handle_t h; rpc_$ppkt_t *ins; ndr_$ulong_int ilen; rpc_$ppkt_t *outs; ndr_$ulong_int omax; rpc_$real_drep_t drep; rpc_$ppkt_t **routs; ndr_$ulong_int *olen; ndr_$boolean *free_outs; status_$t *st; #endif { /* marshalling variables */ ndr_$ushort_int data_offset; ndr_$ulong_int bound: rpc_$mp_t mp, dbp; ndr_$ushort_int count; /* local variables */ ndr_$char oldPod_; /* unmarshalling init */ data_offset=h->data_offset; rpc_$init_mp(mp. dbp, ins, data_offset).; if (rpc_$equal_drep (drep, rpc_$local_drep)) { /* unmarshalling */ rpc_$unmarshall_char(mp, oldPod_); } else { rpc_$convert_char(drep, rpc_$local_drep, mp, oldPod_); } /* server call */ RC_unregisterShadow(h, &oldPod_); /* buffer non-allocation */ *free_outs=false; *routs=outs; *olen=O; st->all=status_$ok; globaldef PODmaster$epv_t PODmaster$manager_epv = { RC_registerShadow, RC_unregisterShadow, RC_requestToken, RC_releaseToken, RC_WantToBeMaster, RC_applyUpdates, RC_sendrefresh. RC_savePOD }; static rpc_$server_stub_t PODmaster$server_epva[]={ (rpc_$server_stub_t)RC_registerShadow_ssr, (rpc_$server_stub_t)RC_unregisterShadow_ssr, (rpc_$server_stub_t)RC_requestToken_ssr, (rpc_$server_stub_t)RC_releaseToken_ssr, (rpc_$server_stub_t)RC_WantToBeMaster_ssr, (rpc_$server_stub_t)RC_applyUpdates_ssr, (rpc_$server_stub_t)RC_sendRefresh_ssr, (rpc_$server_stub_t)RC_savePOD_ssr }; g l o b a l d e f r p c _ $ e p v _ t PODmaster$server_epv=(rpc_$epv_t)PODmaster$server_epva; IDLコンパイラで第2のインターフェース定義ファイル
をコンパイルして生成した顧客スタブ・ファイルのC言
語における簡略例を以下に示す。インターフェス定義フ
ァイルからの最初の2つの機能が含まれている。(以下
の部分はプログラムなので翻訳しない。) 1. #define NIDL_GENERATED #define NIDL_CSTUB #include "master.h" #include "pfm.h" static void registershadow_csr #ifdef__STDC__ ( handle__t h_, ObjRef newPod_, Mode m_) #else (h_, newPod_, m_) #endif #ifndef __STDC__ /* parameter declarations */ handle_t h_; ObjRef newPod_, Mode m_; #endif { /* rpc_$sar arguments */ rpc_$ppkt_t *ip; ndr_$ulong_int ilen; rpc_$ppkt_t *op.: rpc_$ppkt_t *routs; ndr_$ulong_int olen; rpc_$real__drep_t drep; ndr_$boolean free_outs; status_$t st; /* other client side local variables */ rpc_$ppkt_t ins; rpc_$ppkt_t outs; ndr_$ushort_int data offset; ndr_$ulong__int bound; rpc_$mp_t mp, dbp; ndr_$ushort_int count; ndr_$boolean free_ins; /* marshalling init */ data_offset=h_->data_offset; bound=O; /* bound calculations */ bound += 8; /* buffer allocation */ if(free_ins=(bound+data_offset>sizeof(rpc_$ppkt_t))) ip=rpc_$alloc_pkt(bound); else ip=&ins; rpc_$init_mp(mp, dbp, ip, data_offset); /* marshalling */ rpc_$marshall_char(mp, (*newPod_)); rpc_$advance_mp(mp, 1), rpc_$align_ptr_relative (mp, dbp, 4); rpc_$marshall_ulong_int(mp. m_); rpc_$advance_mp(mp, 4); /* runtime call */ ilen=mp-dbp; op= &outs; rpc_$sar(h_, (long)O, &PODmaster$if_spec. OL, ip, ilen, op, (long)sizeof(rpc_$ppkt_t), &routs, &olen, (rpc_$drep_t *)&drep, &free_outs, &st); if(free_ins) rpc_$free_pkt(ip); } 2. static void unregisterShadow_csr #ifdef __STDC__ ( handle_t h ObjRef oldPod_) #else (h_, oldPod_) #endif #ifndef __STDC__ /* parameter declarations */ handle_t h_; ObjRef oldPod_. #endif { /* rpc_$sar arguments */ rpc_$ppkt_t *ip; ndr_$ulong_int ilen; rpc_$ppkt_t *op; rpc_$ppkt_t *routs; ndr_$ulong_int olen; rpc_$real_drep_t drep; ndr_$boolean free_outs; status_$t st; /* other client side local variables */ rpc_$ppkt_t ins; rpc_$ppkt_t outs; ndr_$ushort_int data_offset; ndr_$ulong_int bound; rpc_$mp_t mp, dbp; ndr_$ushort_int count; ndr_$boolean free_ins; /* marshalling init */ data_offset=h_->data-offset; bound=O; /* bound calculations */ bound += 1; /* buffer allocation */ if(free_ins=(bound+data_offset>sizeof(rpc_$ppkt_t))) ip=rpc_$alloc_pkt(bound); else ip= &ins; rpc_$init_mp(mp, dbp, ip, data_offset); /* marshalling */ rpc_$marshall_char(mp, (*oldPod_)); rpc_$advance_mp(mp, 1); /* runtime call */ ilen=mp-dbp; op= &outs; rpc_$sar(h_, (long)O, &PODmaster$if_spec, 1L, ip, ilen. op. (long)sizeof(rpc_$ppkt_t), &routs. &olen, (rpc_$drep_t *)&drep, &free_outs, &st); if(free__ins) rpc_$free_pkt(ip); } globaldef PODmaster$epv_t PODmaster$client_epv = { registerShadow_csr. unregisterShadow_csr, requestToken_csr, releaseToken_csr, WantToBeMaster_csr, applyUpdates_csr, sendRefresh_csr, savePOD_csr }; IDLコンパイラで第2のインターフェース定義ファイル
をコンパイルして生成した顧客スイッチ・ファイルのC
言語における簡略例を以下に示す。(以下の部分はプロ
グラムなので翻訳しない。) #define NIDL_GENERATED #define NIDL_CSWTCH #include "master.h" void registerShadow (h, newPod, m) handle_t h: ObjRef newPod; Mode m; { (*PODmaster$client_epv.registerShadow)(h, newPod, m); } void unregisterShadow (h, oldPod) handle_t h; ObjRef oldPod; { (*PODmaster$client_epv.unregisterShadow)(h, oldPod); } 本発明がDCE用語を使用して顧客およびサーバ任務の観
点から記述されたが、複数の対称レプリカが非対称の計
算模範から作られるいかなる状況においてもこれを適用
することができる。たとえば、マスタスレイブまたは生
産者-消費者模範は、データ処理システムでプログラム
動作をモデル化するために使用される。マスタ・スレイ
ブ関係においてマスタはスレイブがアクセスを要求する
システム資源を制御する。生産者-消費者関係の中で、
生産者は必需品、例えば消費者が要求するメッセージ、
のソースである。対称的分散適用業務がこれらの模範の
ひとつから作られるとき、各同輩は、ひとつの任務を取
り、その任務から他の任務に切り換えることができる。
したがって、生産者消費者模範で、同輩が消費者任務の
中で働いているときインターフェースのひとつの版が、
同輩が生産者任務で動いているときインターフェースの
もうひとつの版が存在する。遠隔同輩から特定のプロセ
スを獲得するために、インターフェース定義ファイル、
インターフェース・ファイルおよび上記遠隔手続き呼び
出しが使用される。しかし、プロセスのリストを含むの
ではなく、インターフェースはローカル同輩が呼ぶ対象
物のリスト含むことができる。オブジェクト指向プログ
ラミングは、ますます一般的になっている。オブジェク
ト指向インターフェースを使用することは、本発明の論
理的拡張である。本発明が以上に特定の実施例に関して
記述されたが、本発明の精神および範囲からはずれない
で修正をすることができることはこの分野の技術者に明
らかである。上記実施例は一組のレプリカを含んでいる
分散適用業務を使用するが、分散適用業務によって提供
されたサービスを必要とする普通の顧客適用業務をネッ
トワークに組み込むこともできる。顧客適用業務は、分
散したレプリカにリンクされた顧客およびサーバ・スタ
ブ双方ではなく、顧客任務を満たすだけでなので、顧客
スタブとのみリンクされる。これらの実施例は例および
イラストの目的のためであって、発明の範囲を請求の範
囲よりせまく制限するものではない。
【発明の効果】本発明は以上説明したように構成されて
いるので、非対称ツールを使用しているネットワークの
ために対称通信インターフェースを生成することができ
るという効果を奏する。
【図面の簡単な説明】
【図1】本発明に従ってネットワーク・システム環境に
接続する典型的コンピュータを示す図である。
【図2】図1の中で示されたコンピュータの構成要素の
ブロック図である。
【図3】対称通信インターフェースが生成され模写され
る、ネットワークに連結した2個のワークステーション
の中のコード・モジュールを示す図である。
【図4】対称通信インターフェースが生成され模写され
る、ネットワークに連結した2個のワークステーション
の中のコード・モジュールを示す図である。
【符号の説明】
10 コンピュータ 11 システム装置 12 キーボード 13 マウス 14 ディスプレイ 15 ポインタ 15A,B スピーカ 16 スクリーン 21 システムバス 22 マイクロプロセッサ 23 ROM 24 RAM 25 メモリ管理チップ 26 ハードディスクドライブ 27 フロッピーディスクドライブ 28 キーボード・コントローラ 29 マウス・コントローラ 30 ビデオ・コントローラ 31 オーディオ・コントローラ 33 デジタル信号プロセッサ 40 I/Oコントローラ 50 ローカル・エリア・ネットワーク 99 ネットワーク 100、110 システム 103 適用業務 104、105 インターフェース定義ファイル 106 インターフェース定義コンパイラ 107 サーバ・スタブ 108、118 顧客スタブ 109、119 顧客スイッチ・スタブ 112、113 インターフェース定義エディタ 114、115 RPC実行時間モジュール 131 RPC 133、137 ネットワークメッセージ 135 メッセージ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 同一の識別番号を持つ第1および第2の
    インターフェース定義ファイルを提供するステップと、 上記第1および第2のインターフェース定義ファイルを
    コンパイルして、識別番号を持つ第1および第2任務の
    インターフェース・ファイルの第1および第2のセット
    を生成するステップと、 上記第1のインターフェース定義ファイルから生成され
    た上記第1任務のインターフェース・ファイルと、上記
    第2のインターフェース定義ファイルから生成された上
    記第2任務のインターフェース・ファイルを無効にする
    ステップと、 を含む非対称ツールを使用した対称通信インターフェー
    ス生成方法。
  2. 【請求項2】 上記第2のインターフェースから生成さ
    れた上記第1任務のインターフェース・ファイルと、上
    記第1のインターフェース定義ファイルから生成された
    上記第2任務のインターフェース・ファイルをネットワ
    ーク上の複数のシステムに複製することを含む請求項1
    に記載の方法。
  3. 【請求項3】 上記第1のインターフェース定義ファイ
    ルを備えるステップと、 上記第1のインターフェース定義ファイル上の複数の機
    能名の文字ストリングを修正することにより上記第2の
    インターフェース定義ファイルを生成するステップと、 を含む請求項1に記載の方法。
  4. 【請求項4】 上記生成ステップが一般的ファイル定義
    エディタによって行われる請求項3に記載の方法。
  5. 【請求項5】 上記第1任務を掲載している第1の同輩
    からの第1のサービス呼び出しを上記第2任務を掲載し
    ている第2の同輩によって起動するステップと、 上記第1のサービス呼び出しを、インターフェース・フ
    ァイル識別番号および上記第2任務のインターフェース
    ・ファイルのサービスの通し番号を含むメッセージに変
    換するステップと、 上記第1の同輩に上記メッセージを転送するステップ
    と、 上記メッセージを第2のサービス呼び出しに変換するス
    テップと、 上記第2のサービス呼び出しは上記第1のサービス呼び
    出しのサービス名と異なるサービス名を持つことと、 を含む請求項1に記載の方法。
  6. 【請求項6】 メモリに常駐する同一の識別番号を持つ
    第1および第2のインターフェース定義ファイルと、 上記第1および第2のインターフェース定義ファイルを
    コンパイルして、識別番号を持つ第1および第2任務の
    インターフェース・ファイルの第1および第2のセット
    を生成する手段と、 上記第1のインターフェース定義ファイルから生成され
    た上記第1任務のインターフェース・ファイルと、上記
    第2のインターフェース定義ファイルから生成された上
    記第2任務のインターフェース・ファイルを無効にする
    手段と、 を備え、システム・バスにより接続されたプロセッサと
    メモリを備えた非対称ツールを使用して対称通信インタ
    ーフェースを生成するシステム。
  7. 【請求項7】 上記第2のインターフェースから生成さ
    れた上記第1任務のインターフェース・ファイルと、上
    記第1のインターフェース定義ファイルから生成された
    上記第2任務のインターフェース・ファイルをネットワ
    ーク上の複数のシステムに複製する手段を備えた請求項
    6に記載のシステム。
  8. 【請求項8】 上記第1のインターフェース定義ファイ
    ル上の各機能名に文字ストリングを追加することにより
    上記第2のインターフェース定義ファイルを生成する
    を備えた請求項6に記載のシステム。
  9. 【請求項9】 上記第1任務を掲載している第1の同輩
    からの第1のサービス呼び出しを上記第2任務を掲載し
    ている第2の同輩により起動する手段と、 上記第1のサービス呼び出しを、インターフェース・フ
    ァイル識別番号および上記第2任務のインターフェース
    ・ファイルのサービスの通し番号を含むメッセージに変
    換する手段と、 上記第1の同輩に上記メッセージを転送する手段と、 上記メッセージを第2のサービス呼び出しに変換する手
    段と、 上記第2のサービス呼び出しは上記第1のサービス呼び
    出しのサービス名と異なるサービス名を持つことと、 を備えた請求項6に記載のシステム。
JP5229598A 1992-10-30 1993-08-24 通信インターフェースの生成システム及びその方法 Expired - Lifetime JPH0827769B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US96967192A 1992-10-30 1992-10-30
US07/969,671 1992-10-30

Publications (2)

Publication Number Publication Date
JPH06208519A JPH06208519A (ja) 1994-07-26
JPH0827769B2 true JPH0827769B2 (ja) 1996-03-21

Family

ID=25515836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5229598A Expired - Lifetime JPH0827769B2 (ja) 1992-10-30 1993-08-24 通信インターフェースの生成システム及びその方法

Country Status (3)

Country Link
US (1) US5764982A (ja)
EP (1) EP0595661A1 (ja)
JP (1) JPH0827769B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649104A (en) * 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US5522042A (en) * 1994-01-28 1996-05-28 Cabletron Systems, Inc. Distributed chassis agent for distributed network management
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
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
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
GB9620196D0 (en) * 1996-09-27 1996-11-13 British Telecomm Distributed processing
US6173376B1 (en) * 1996-10-03 2001-01-09 International Business Machines Corp. Data backup and restore method and system in a multisystem environment
US6662210B1 (en) 1997-03-31 2003-12-09 Ncr Corporation Method of remote collaboration system
WO1999044127A1 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
US6470357B1 (en) * 1998-07-28 2002-10-22 International Bussiness Machines Corp. System and method of enhanced directory services for telecommunications management network applications
US6571274B1 (en) 1998-11-05 2003-05-27 Beas Systems, Inc. Clustered enterprise Java™ in a secure distributed processing system
US6236999B1 (en) * 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6581088B1 (en) 1998-11-05 2003-06-17 Beas Systems, Inc. Smart stub or enterprise javaTM bean in a distributed processing system
US6385643B1 (en) 1998-11-05 2002-05-07 Bea Systems, Inc. Clustered enterprise Java™ having a message passing kernel in a distributed processing system
US6742023B1 (en) 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6366907B1 (en) 1999-12-15 2002-04-02 Napster, Inc. Real-time search engine
US7310629B1 (en) 1999-12-15 2007-12-18 Napster, Inc. Method and apparatus for controlling file sharing of multimedia files over a fluid, de-centralized network
US6728788B1 (en) * 1999-12-16 2004-04-27 International Business Machines Corporation Method and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling client
US20010047387A1 (en) * 2000-03-27 2001-11-29 Exoplex, Inc. Systems and methods for providing distributed cross-enterprise portals
US6842892B1 (en) 2000-05-15 2005-01-11 Sun Microsystems, Inc. Automatic generation of an optimized API
US6754819B1 (en) * 2000-07-06 2004-06-22 General Dynamics Decision Systems, Inc. Method and system for providing cryptographic services in a distributed application
US7089301B1 (en) 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US6631449B1 (en) 2000-10-05 2003-10-07 Veritas Operating Corporation Dynamic distributed data system and method
US7203741B2 (en) 2000-10-12 2007-04-10 Peerapp Ltd. Method and system for accelerating receipt of data in a client-to-client network
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7165107B2 (en) 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
US20030061292A1 (en) * 2001-03-23 2003-03-27 Mark Underseth System and method for providing an interface for com-compliant applications to communicate with embedded systems
US7530076B2 (en) * 2001-03-23 2009-05-05 S2 Technologies, Inc. Dynamic interception of calls by a target device
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030078947A1 (en) * 2001-10-12 2003-04-24 Intel Corporation Methods for assigning unique identifiers in a distributed fault tolerant application
US7970826B2 (en) * 2001-12-06 2011-06-28 Hewlett-Packard Development Company, L.P. Transformational conversation definition language
US20030135552A1 (en) * 2002-01-14 2003-07-17 Blackstock Michael A. Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users
US7984476B2 (en) * 2002-03-08 2011-07-19 The Directv Group, Inc. Reusable application software for generating interactive television applications
US20030182428A1 (en) * 2002-03-19 2003-09-25 Jiang Li Peer-to-peer (P2P) communication system
US7818753B2 (en) 2002-03-28 2010-10-19 International Business Machines Corporation Method and system for distributed virtual enterprise dependency objects
US20030188024A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and system for a cloaking service for use with a distributed virtual enterprise
US20030187670A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and system for distributed virtual enterprise project model processing
US7469216B2 (en) * 2002-03-28 2008-12-23 International Business Machines Corporation Method and system for manipulation of cost information in a distributed virtual enterprise
US20030187671A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and system for manipulation of scheduling information in a distributed virtual enterprise
US7613772B2 (en) * 2002-07-25 2009-11-03 Colligo Networks, Inc. Method for context based discovery and filtering of portable collaborative networks
US7761505B2 (en) 2002-11-18 2010-07-20 Openpeak Inc. System, method and computer program product for concurrent performance of video teleconference and delivery of multimedia presentation and archiving of same
US7467194B1 (en) 2002-12-20 2008-12-16 Symantec Operating Corporation Re-mapping a location-independent address in a computer network
US8370523B1 (en) 2002-12-20 2013-02-05 Symantec Operating Corporation Managing routing information for a computer network
US7327741B1 (en) 2002-12-20 2008-02-05 Symantec Operating Corporation Detecting and breaking cycles in a computer network
US7406535B2 (en) * 2002-12-20 2008-07-29 Symantec Operating Corporation Role-based message addressing for a computer network
US7404006B1 (en) 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
US7653059B1 (en) 2002-12-20 2010-01-26 Symantec Operating Corporation Communication sessions for a computer network
US7292585B1 (en) 2002-12-20 2007-11-06 Symantec Operating Corporation System and method for storing and utilizing routing information in a computer network
US8275864B1 (en) 2002-12-20 2012-09-25 Symantec Operating Corporation Peer-to-peer network with recovery capability
US8886705B1 (en) 2003-06-30 2014-11-11 Symantec Operating Corporation Goal-oriented storage management for a distributed data storage network
US7555527B1 (en) 2003-11-07 2009-06-30 Symantec Operating Corporation Efficiently linking storage object replicas in a computer network
US7680950B1 (en) 2003-11-07 2010-03-16 Symantec Operating Corporation Efficient search for storage objects in a network
US8060619B1 (en) 2003-11-07 2011-11-15 Symantec Operating Corporation Direct connections to a plurality of storage object replicas in a computer network
US20090222537A1 (en) * 2003-12-04 2009-09-03 Colligo Newworks, Inc., A Canadian Corporation System And Method For Interactive Instant Networking
US7570600B1 (en) 2003-12-17 2009-08-04 Symantec Operating Corporation Overlay network with efficient routing and recovery
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7099753B2 (en) * 2004-04-27 2006-08-29 The Boeing Company Automatic generation of telemetry flight software, accompanying specifications, and decode files
US7552175B2 (en) * 2004-04-30 2009-06-23 Microsoft Corporation Mechanism for controlling communication paths between conference members
US20060020455A1 (en) * 2004-07-20 2006-01-26 Motorola, Inc. Adaptive plug-in architecture for mix-mode personal communication
US8484627B2 (en) * 2008-01-31 2013-07-09 Ncr Corporation Interoperability method and software
CN103548307B (zh) 2010-12-30 2018-05-29 皮尔爱普有限公司 通过计算机网络传输数据的方法和***
CN107094176B (zh) 2010-12-30 2021-07-30 皮尔爱普有限公司 用于对计算机网络上的数据通信进行缓存的方法和***
US10394533B2 (en) 2013-09-30 2019-08-27 The Mathworks, Inc. Reusable component in a modeling environment
US9952837B1 (en) * 2015-04-01 2018-04-24 The Mathworks, Inc. Reusable component in a modeling environment

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
CA2025131A1 (en) * 1989-09-28 1991-03-29 John W. White Portable and dynamic distributed applications architecture

Also Published As

Publication number Publication date
US5764982A (en) 1998-06-09
JPH06208519A (ja) 1994-07-26
EP0595661A1 (en) 1994-05-04

Similar Documents

Publication Publication Date Title
JPH0827769B2 (ja) 通信インターフェースの生成システム及びその方法
RU2405202C2 (ru) Использование абстрактных описаний для генерации, обмена и конфигурирования рабочих циклов сервиса и клиента
US7904803B2 (en) Method and system for converting user interface source code of a legacy application to web pages
EP0733972B1 (en) Method and apparatus for managing relationships among objects in a distributed object environment
US5327559A (en) Remote and batch processing in an object oriented programming system
US7174361B1 (en) Scripting task-level user-interfaces
JP3595340B2 (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
JP3365576B2 (ja) オブジェクトの実行方法および装置
US20020004853A1 (en) Interface device and method
WO1997014091A1 (en) Object-oriented method maintenance mechanism that does not require cessation of the computer system
KR20010034514A (ko) 원격 메소드를 식별하는 해시 판정 방법 및 시스템
US6219835B1 (en) Multi-language DCE remote procedure call
KR20020021237A (ko) 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
CN110633162B (zh) 远程调用实现方法、装置、计算机设备及存储介质
US5970250A (en) System, method, and computer program product for scoping operating system semanticis in a computing environment supporting multi-enclave processes
US7673285B1 (en) System and methods for generating a software component interface
US20220094760A1 (en) Apparatus and method for generating proxy for dockerized artificial intelligence library and ros distributed system based on dockerized artificial intelligence library
Rock-Evans DCOM explained
Vogel C++ Programming with CORBA
US6769119B1 (en) System, method, and computer program product for scoping operating system semantics in a computing environment supporting multi-enclave processes
JP7073813B2 (ja) 制御プログラム、制御方法および情報処理装置
Gervais et al. Towards an ADL for designing agent-based systems
US7779430B2 (en) Method, system, and article of manufacture for providing service components
Condie Distributed Computing, Tomorrow's Panacea—an Introduction to Current Technology