JPH06208519A - Communication interface generating system and method therof - Google Patents

Communication interface generating system and method therof

Info

Publication number
JPH06208519A
JPH06208519A JP5229598A JP22959893A JPH06208519A JP H06208519 A JPH06208519 A JP H06208519A JP 5229598 A JP5229598 A JP 5229598A JP 22959893 A JP22959893 A JP 22959893A JP H06208519 A JPH06208519 A JP H06208519A
Authority
JP
Japan
Prior art keywords
interface
file
mission
rpc
interface definition
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
JP5229598A
Other languages
Japanese (ja)
Other versions
JPH0827769B2 (en
Inventor
Hari Haranath Madduri
ハラナサ マドリ ハリ
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/en
Publication of JPH0827769B2 publication Critical patent/JPH0827769B2/en
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)

Abstract

PURPOSE: To produce a symmetrical communication interface by using an asymmetrical tool. CONSTITUTION: Interface files having first and second functions are produced by translating two interface definition files. The first interface file from the first interface definition file and the second interface file from the second interface definition file are invalidated and the remaining files are copied to a plurality of systems on a network. A preferable means which produces the second interface definition file from the first interface definition file is an automatic interface definition file editor which corrects the character string of each function name in the first interface definition file.

Description

【発明の詳細な説明】Detailed Description of the Invention

【産業上の利用分野】本発明は、ローカル・エリア・ネ
ットワーク内の通信に関連する。特に、複製の対称セッ
トを、顧客サーバ指向ツールを使用して複数のノードの
中で生成することに関連する。
FIELD OF THE INVENTION This invention relates to communications within local area networks. In particular, it relates to generating a symmetrical set of replicas in multiple nodes using customer server-oriented tools.

【従来の技術】ローカル・エリア・ネットワーク、広域
ネットワークまたは他の同様の手段を通して、分散環境
の中で複数のデータ処理システムをつなぐことはますま
す一般的になっている。ネットワークは、ネットワーク
の複数の販売業者からの、データ処理システムに結合し
たいくつかの異なるLAN通信規約によって、より複雑
になっている。ローカル・エリア・ネットワークの一般
的なモデルは、顧客サーバまたはマスタ・スレーブ・モ
デルである。この型モデルでは、顧客またはマスタデー
タ・プロセッサ上のプロセスが、サーバまたはスレーブ
・データ処理装置上のプロセスからのサービスを要請す
る。匹敵するモデルは、各サーバ、あるいは少くともそ
のサブセットが本質的にネットワークの中の他ものの複
製である、同輩(peer-toーpeer)関係である。顧客およ
びサーバが非対称なので、同輩関係を持つプログラムを
構成するには、顧客サーバ・システム環境の中で開発さ
れたツールは使いにくい。そのようなツールによって作
られたプログラム構成要素は普通、エラーを起こしがち
で維持しにくい中間コードセグメントを持つ。問題を説
明するために、以下のことを考慮する:分散名前サービ
スが、ネットワークの複数のデータ処理装置上に作られ
ると仮定する。各機械上に、ひとつの名前サーバが存在
する。ネットワークの中のどの機械からの顧客も、ロー
カルサーバに問い合わせをすることができる。各サーバ
は、分散名前サービス全体のすべての名前のサブセット
を持っているだけである。サーバは、情報を持たない名
前についての問合せを受け取ると、解決のために同輩名
前サーバーを呼ぶ。模写されたサーバにおいて、実行中
のすべてのプログラムセットと同様に、呼び出しが顧客
または遠隔の同輩からにかかわらず、名前調査のインタ
ーフェースは同じでなければならない。この一様性の利
点は、サーバのどれも特別のケースを扱わないでよいと
いうことである。すなわち呼び出しが同輩サーバからか
または外部の顧客からかどうかチェックする必要がない
ということである。一組の複製が伝統的顧客サーバ・ツ
ールによって開発されるなら、サーバから他のサーバへ
の呼び出しはそのサーバ自身が応答する呼び出しと同じ
である。これは、すべての遠隔コールを短絡にする効果
を持って、遠隔プロシージャ呼出しをその同輩への呼び
出しではなく再帰呼出しのように見せる。そのような短
絡を防ぐために、分散計算機システム環境(DCE)にお
いて、2個の名前が各サーバ機能のために使用されるよ
う提案された。ひとつの名前はサーバの顧客に使用さ
れ、もうひとつの名前はサーバ機能の実際の実現のため
に使用される。機能を実行するモジュールは、マネージ
ャと呼ばれる。マネージャ入口点ベクトルは、顧客およ
び実際の実現名前によって使用された名前を関連づける
ために使用される。この方法が実行される一方、マネー
ジャ機能が加えられるか削除されるときはいつでも、プ
ログラマはマネージャ入口点ベクトルを変更しなければ
ならない。さらにこの方式は、サーバ・インターフェー
ス機能の通し番号とマネージャ入口点ベクトルのマネー
ジャ機能の通し番号を突き合わせることによって、実行
される。コンパイル時にはチェックされないので、例え
ば数パラメータ・マッチにはエラーがあるかもしれな
い。これは、予想外の実行時エラーとなりえる。従来技
術が問題を解決するために求めた第2の方法は、顧客側
の顧客スイッチ・ファイルを排除し、サーバが普通の機
能名ではなく顧客入口点ベクトルを使用して同輩を呼び
出すよう要求することである。これは、分散サーバ・プ
ログラムの開発者に遠隔プロシージャ呼出し(RPC)が
どのように機能するかを明らかにし、開発者側のRPCの
理解を必要とする。これは、望ましくない。本発明は、
より少ないエラーと容易に持続可能なコードをもつ、顧
客サーバ・ツールをもつ同輩間通信を実現する方法を示
唆する。
BACKGROUND OF THE INVENTION It is becoming more and more common to connect multiple data processing systems in a distributed environment through local area networks, wide area networks or other similar means. Networks are made more complex by several different LAN communication protocols coupled to data processing systems from multiple vendors of networks. A common model for local area networks is the customer server or master-slave model. In this type model, a process on a customer or master data processor requests service from a process on a server or slave data processing device. A comparable model is a peer-to-peer relationship, where each server, or at least a subset thereof, is essentially a duplicate of the others in the network. Since the customer and server are asymmetric, the tools developed in the customer server system environment are difficult to use to construct programs with peer relationships. The program components created by such tools typically have intermediate code segments that are error prone and hard to maintain. To illustrate the problem, consider the following: Suppose a distributed name service is created on multiple data processing devices of the network. There is one name server on each machine. Customers from any machine in the network can query the local server. Each server only has a subset of all names in the entire distributed name service. When the server receives a query for a name with no information, it calls the peer name server for resolution. At the replicated server, as with all running program sets, the name lookup interface must be the same whether the call is from a customer or a remote peer. The advantage of this uniformity is that none of the servers have to deal with special cases. That is, there is no need to check whether the call is from a peer server or an external customer. If a set of replicas is developed by traditional customer server tools, the calls from one server to another are the same calls that the server itself answers. This has the effect of shorting out all remote calls, making remote procedure calls look like recursive calls rather than calls to their peers. To prevent such short circuits, it has been proposed in the Distributed Computing System Environment (DCE) that two names be used for each server function. One name is used by the server customer and the other name is used for the actual implementation of the server function. The module that performs the function is called the manager. The manager entry point vector is used to associate the name used by the customer and the actual realized name. While this method is performed, the programmer must change the manager entry point vector whenever manager functionality is added or removed. Further, the scheme is implemented by matching the serial number of the server interface function with the serial number of the manager function of the manager entry point vector. It may not be checked at compile time, so there may be an error in a number parameter match, for example. This can lead to unexpected run-time errors. The second method the prior art has sought to solve the problem is to eliminate the customer switch file on the customer side and require the server to call the peer using the customer entry point vector instead of the normal function name. That is. This reveals to developers of distributed server programs how remote procedure calls (RPCs) work, and requires their understanding of RPCs. This is not desirable. The present invention is
It suggests a way to achieve peer-to-peer communication with customer server tools with less errors and easily sustainable code.

【発明が解決しようとする課題】本発明の目的は、非対
称ツールを使用しているネットワークのために対称通信
インターフェースを生成することである。本発明のもう
ひとつの目的は、対称通信インターフェースの中でオペ
レータに由来するエラーを減少させることである。本発
明のもうひとつの目的は、対称通信インターフェースを
生成するプロセスを自動化することである。
It is an object of the present invention to create a symmetric communication interface for networks using asymmetric tools. Another object of the invention is to reduce operator-induced errors in a symmetric communication interface. Another object of the invention is to automate the process of creating a symmetric communication interface.

【課題を解決するための手段】本発明の目的は、ネット
ワーク中のレプリカ間のインターフェースのために、特
定の分散適用業務のための2個のインターフェース定義
ファイルを定義することによって達成される。第1のイ
ンターフェース定義ファイルは、第2任務のレプリカが
第1任務の第2のレプリカを呼び出すために使用され、
第2のインターフェース定義ファイルは、そのサービス
を定義するために第1任務を果たしているレプリカのた
めに使用される。第1の、そして第2任務は、たとえ
ば、サーバおよび顧客任務である。両方のインターフェ
ースは同じインターフェース識別番号を使用し、典型的
に識別番号はファイルの第1のラインにある。好ましい
実施例において、各インターフェース定義ファイルは、
ファイル中のすべての機能名に対する接頭辞または接尾
辞を除いて、対応するサーバ・コードラインと同一であ
る。本発明のプロセスの中で、後続のステップが実行さ
れる。2個のインターフェース定義ファイルは、固定I
Dで定義される。両方のインターフェース・ファイル
は、分散適用業務のためのインターフェース・ファイル
を生成するためにインターフェース定義コンパイラを通
して実行される。本発明が適応する分散計算機システム
環境の中で、インターフェース・ファイルは顧客および
サーバ・スタブ・ファイルと呼ばれる。第1のインター
フェース定義ファイルからのサーバ・スタブが無効にさ
れ、第2のインターフェース定義ファイルからの顧客ス
タブが無効にされる。またはその逆が起こる。その結果
生ずる一組の顧客およびサーバ・スタブは、ネットワー
クの中で適用業務を実行している一組の同輩システムの
ために模写される。インターフェース定義ファイルの中
で定義されている機能を実行するために同輩適用業務を
リンクするとき、先に生じた顧客およびサーバ・スタブ
が使用される。通常の顧客プログラムをリンクすると
き、顧客スタブが使用される。
The object of the invention is achieved by defining two interface definition files for a particular distributed application for the interfaces between replicas in a network. The first interface definition file is used by the replica of the second mission to call the second replica of the first mission,
The second interface definition file is used for the replica performing the first task to define its service. The first and second missions are, for example, server and customer missions. Both interfaces use the same interface identification number, typically the identification number is in the first line of the file. In the preferred embodiment, each interface definition file is
Identical to the corresponding server codeline, except for the prefix or suffix for all feature names in the file. Subsequent steps are performed in the process of the invention. Two interface definition files are fixed I
Defined by D. Both interface files are run through the interface definition compiler to produce interface files for distributed applications. In the distributed computer system environment to which the present invention applies, the interface files are called customer and server stub files. The server stubs from the first interface definition file are invalidated and the customer stubs from the second interface definition file are invalidated. Or vice versa. The resulting set of customers and server stubs is replicated for a set of peer systems executing applications within the network. When linking a peer application to perform the function defined in the interface definition file, the customer and server stub that occurred earlier is used. Customer stubs are used when linking regular customer programs.

【実施例】本発明は、数多くの異なるオペレーティング
・システム下の様々なコンピュータあるいはコンピュー
タ群上で実行することができる。コンピュータは例え
ば、パーソナルコンピュータ、ミニ・コンピュータまた
はメインフレーム・コンピュータが使用可能である。し
かし、ローカル・エリア・ネットワーク、広域ネットワ
ークまたは大規模テレプロセッシング・システムのよう
なネットワークの一部である複数のコンピュータが使用
されるのが好ましい。コンピュータの特定の選択がディ
スクおよびディスク記憶装置要求事項によって制限され
るが、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用語を使用して顧客およびサーバ任務の観
点から記述されたが、複数の対称レプリカが非対称の計
算模範から作られるいかなる状況においてもこれを適用
することができる。たとえば、マスタスレイブまたは生
産者-消費者模範は、データ処理システムでプログラム
動作をモデル化するために使用される。マスタ・スレイ
ブ関係においてマスタはスレイブがアクセスを要求する
システム資源を制御する。生産者-消費者関係の中で、
生産者は必需品、例えば消費者が要求するメッセージ、
のソースである。対称的分散適用業務がこれらの模範の
ひとつから作られるとき、各同輩は、ひとつの任務を取
り、その任務から他の任務に切り換えることができる。
したがって、生産者消費者模範で、同輩が消費者任務の
中で働いているときインターフェースのひとつの版が、
同輩が生産者任務で動いているときインターフェースの
もうひとつの版が存在する。遠隔同輩から特定のプロセ
スを獲得するために、インターフェース定義ファイル、
インターフェース・ファイルおよび上記遠隔手続き呼び
出しが使用される。しかし、プロセスのリストを含むの
ではなく、インターフェースはローカル同輩が呼ぶ対象
物のリスト含むことができる。オブジェクト指向プログ
ラミングは、ますます一般的になっている。オブジェク
ト指向インターフェースを使用することは、本発明の論
理的拡張である。本発明が以上に特定の実施例に関して
記述されたが、本発明の精神および範囲からはずれない
で修正をすることができることはこの分野の技術者に明
らかである。上記実施例は一組のレプリカを含んでいる
分散適用業務を使用するが、分散適用業務によって提供
されたサービスを必要とする普通の顧客適用業務をネッ
トワークに組み込むこともできる。顧客適用業務は、分
散したレプリカにリンクされた顧客およびサーバ・スタ
ブ双方ではなく、顧客任務を満たすだけでなので、顧客
スタブとのみリンクされる。これらの実施例は例および
イラストの目的のためであって、発明の範囲を請求の範
囲よりせまく制限するものではない。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT The present invention is applicable to many different operating systems.
・ Various computers or computers under the system
Can be run on a group of data. Computer
For example, personal computer, mini computer or
Is available for mainframe computers. Shi
Scarecrow, local area network, wide area network
Or a large teleprocessing system
Used by multiple computers that are part of a large network
Preferably. The specific choice of computer
Limited by disk and disk storage requirements
However, the IBM PS / 2 Lot Series computer book
It can be constructed according to the invention. IBM PS / 2 series
For more information, please see the following references: Technical record
Reference Manual, Personal Systems / 2
Models 50 and 60, Part No.68X2224 Order No. S68X-
2224, and Technical Reference Manual,
Personal Systems / 2 (Model 80), Part N
o. 68X2256 Order No. S68X-2254. IBM PS / 2 Personal Co
The operating system that the computer runs
One is IBM OS / 2 2.0. Details of IBM OS / 2 2.0
See the references below. OS / 2 Technical Library
Re, programming guide Vo.1, 2, 3 version 2.0
0. Order No. 10G6261, 10G6495, 10G6494. Also a calculator
The system runs on the AIX (TM) operating system.
A running IBM RISC System / 6000 (TM) computer
It is possible. The various model models of RISC System / 6000 are
RISC System / 6000, 7-073 and -7016 Power Ste
Option and Power Server Hardware Tech
Like Nical Reference Order No. SA23-2644-00
It is described in many IBM publications. AIX operation
Rating system is a general concept
And Procedure-AIX Version 3 for RIS
IBM Systems such as C System / 6000 Order No. SC23-2202-00
It is described in many publications. In Figure 1, Compu
The system 10 includes a system unit 11, a keyboard 12, and a mouse.
13 and a display 14. Display
The screen 16 of the device 14 provides a visual representation of the data object.
Used to indicate a change. Operating system
The pictorial user interface supported by Tem is
The user selects the data object at a specific position on the screen 16.
Move the pointer 15 to the icon shown in
Using the "Insert and Shoot" method.
Selecting one of the user commands by pressing one of the buttons on the mouse
To enable. Selected data object selected
Appears in the window that presents the view. FIG. 2 corresponds to FIG.
Multimedia personal computer shown in
3 shows a block diagram of the components of FIG. The system unit 11 is
Various components are connected and communication between components is achieved.
1 or more system buses 21 are included. My
The black processor 22 is connected to the system bus 21 and
Storage device (ROM) connected to the system bus 21
23 and a direct storage device (RAM) 24
It TBM multimedia PS / 2 computer series
The microprocessor is a microprocessor 386 or
Is one of the Intel product microprocessors including 486
Is. However, 68000, 68020 or 680
Motorola product microphones such as 30 microprocessors
Not only microprocessors but also other microprocessors
It In addition, IBM, Hewlett-Packard, Sun
Manufactured by Intel, Motorola, and others.
Various reduced instruction set computer (RISC) microphones
The processor can be used in this specification computer.
You can ROM 23 is an interactive function, disk drive
Basic hardware operators such as keyboard and keyboard
Basic input / output system (BIOS) or other
Including code. RAM 24 is the operating system
System and multimedia application programs loaded
It is the main memory that is used. The memory management chip 25
Connected to system bus 21, RAM 24, hard disk drive
Between live 26 and floppy disk drive 27
Direct memory access operation including data exchange
Control the solution. Similarly, connect to the system bus 21.
CD ROM 32 is a multimedia program or
Used to store large amounts of presentation data
Used. Various I / O controllers, keyboards,
Controller 28, mouse controller 29, bi
Deo controller 30 and audio controller
Keyboard 31 and keyboard controller 28
For the board 12, the mouse controller 29 is
Providing a hardware interface for us 13
To serve. The video controller 30 has a display 14
Audio controller 31 for speaker 1
Hardware interface for 5A and 15B
It is the source. In addition, a speaker system is connected to the system bus 21.
Corrects the sound produced by the
The digital signal processor 33 connected to the controller 31 is connected
is doing. Speakers 15A and 15B are audio
It is used to present the object to the user. Finally,
I / O controller 40 such as Token Ring adapter
Connect to the system bus and connect the system to a local area
Connect to the network 50. Distributed computer system environment
Boundary (DCE) is a solution for a set of problems in a distributed environment.
Includes BM, DEC and Hewlett-Packard
It is the result of efforts by a group of companies. Some of the problems are DC
E There is a remote procedure call (RPC) execution. RPC
Is a model of communication between application customers and servers
It Communication between multiple peer applications in a distributed environment
Adapted by the present invention. Traditional local procedure
Remote procedure calls, as in
Control from one code module to another
And then go back to the original code module.
However, local procedure calls are typically the same
Code modules in the same address space on the machine
use. RPC is a different system connected to the network.
Remote procedure that executes in different address spaces on the system
Call you. When calling a remote procedure,
And return value is a message for transfer on the network
Must be packed in. The RPC mechanism is
As Silla looks like a local procedure call,
Used to make application programmers understandable
To be done. The RPC mechanism is a network transfer between peer applications.
Eliminates the need for the programmer to know the delivery details. Remote procedure
Caller call allows different structures,
Network details such as
Must be rewritten by the application for each possible situation.
No need. RPC is almost a local call in DCE
looks like. Interface definition file and
Its compiler, universally unique identifier generator and RP
Used to mask networks with C execution time
There are several components that are: Two RPC communication rules
Is supported. Connection-oriented transmission control
Internet Protocol / Internet Protocol (TCP /
IP), and connectionless user datagram protocol
/ Internet Protocol. Interface definition
The file is written in DCE Interface Definition Language (IDL).
Stated. The interface definition file is an IDL
Compiled into a computer language like C using Pyler
Then, the application server and application customer
Two interface file objects
-Compiled into code. These interfaces
Stub files are called server stubs and customer stubs.
Be exposed. The traditional implementation of the DCE concept is the customer switch
A second customer interface file called
Contains. The interface definition file is for each RPC
Used to define the interface. Interface
Interface can be executed by a particular server application.
It is a group of functions that can be done. For example, financial applications
Perform a debit, credit, or balance read / write operation
To do. Each of these functions is a financial application interface.
Must be defined in the face definition file. DC
In E, call in rather than execute procedure
Only the interface is defined. After compiling
Tabs are from other parts of the application, traditionally customers
Calls across the network for your services
Linked to the calling part of the application to be done. server·
A stub is an interface definition file that is usually a server.
As part of the application that performs the function defined in the
To be killed. RPC runtime library on the network
Set of routines to perform peer-to-peer communication for distributed applications
including. The tasks to be performed include
Finding the server, communication between the customer and the server, the request
There is state management during communication error handling. Universally unique identifier
The generator is a unique identifier for each RPC interface
To pay. DCE RPC module also provides secure communication
Warranty service for, put the server in the network
Name service API to help
RPC daemon and RPC daemon for managing transfer endpoints
It includes a control program to manage the software. Network / total
Computer System System (NES) 1.0 is part of AIX
The distributed computer system environment extension 1.0 to AIX is IDL
It is an example of an RPC product including a computer. Interf
After the base file is generated, call the distributed application.
The issuing part is the part of the application that performs the requested function.
Have to find. This process is called binding.
Be exposed. The call application is for the service that was executed.
Mold, controlled object mold and supported interface
Specific interface to find out information including
Database for the location of the application running the
You can access the directory service. I
Server application running the interface or other
Application of the server in the directory service
Described to "advertise" the screw. RPC daemon
Is a directory server that changes each time the server starts
Accurate network end point of server application in bis
Used to update. Figure 3 shows the server and
Customer interface file or stub is generated
After the two data processing connected to the network 99
Diagram of code modules in systems 100, 110
To show. The distributed application and stubs of the present invention are numerous systems.
Copied to the stem, but two cis
Only the system is shown. Direct writing of each system 100, 110
The storage device has a copy 103 of the network application,
03 ', which is another system of network 99
Request service from. For this application 103
Two interface definition files 104 and 105
But the first system 1 with the same interface definition ID
It is generated in 00. Each interface definition file
Interface definition compiling from
La 106 generates two or three stub files
It One stub file is the server stub 10
7, 117, called a distributed application server or server
It is connected to the bus part. The other two are customer stubs 108,
118 and customer switch stubs 109, 119
be called. These are selectable and suitable for your local system.
Related to customer copy of work. First interface
Customer definition file 104 from the customer definition file 104
Tab 108 and customer switch stub 109 disabled
Then, the server stub 107 is saved. Second Inn
Server stub from the interface definition file 105
117 is invalidated, the customer stub portion, the customer stub 11
8 and customer switch stub 119 are saved. I
Interface definition editors 112, 113
From the interface definition file 104 to the second interface
Used to generate the interface definition file 105.
Be done. The AIX system is used while the special purpose editor is used.
An ordinary SED-like stream editor in a mobile environment
Can be used. System 100, 110
Each of the RPC execution time modules 114 and 115 is suitable.
Providing communication services between business replicas. Figure 4
Extra server and customer star from the first system 100
File is deleted and the remaining server and customer
After the copy file is replicated on the second system 110
The code in the two workstations 100, 110
-Illustrate the module. First interface definition
Server stub 107 and second from file 104
From the client interface definition file 105
Servers 118 and 119 are replicated across the network.
Of customer and application program 103 replicas
Linked to the server part. Distributed application is remote machine
Second interface when communicating to a replica on
Use the customer stubs generated by the
Therefore, the short circuit problem is solved. Application is a server
When it wants to work like
Use the server stub generated by the definition file
It The two interfaces may have different names or
While having a sequencer, the same for interface definition
Share the same ID number. In the DCE system,
The face ID number is used to identify the interface.
Used. Nets for specific procedures from the server
Network calls are within the scope of the interface.
Interface number and function serial number
It does not include the actual function name used by the business. Minute
This feature of the computer system environment allows the present invention to function.
can do. Essentially two interfaces
Called by the name of. Interface with server
Function in the server stub.
Is used. Interface acts as a customer
Other name sets in the customer stub are used when
It When the service is called using the customer set name,
The service is ultimately the service that is actually providing the service.
Arrive at the basset name. In FIG. 4, according to the invention
Remote procedure calls are illustrated. First system
Application in the system 100 and the second system 110
The peers 103 and 103 'are activated and roam in the network.
"Advertise" applications to directory services.
In this example, the application peers 103, 103 'are decentralized finance
Assume it is part of an application. Thus the application
Financial service required or financial application peer 1
When 03 needs to contact his peer 103 ',
The application knows where to send the RPC. Last
The peer 103 on the first system 100 is
Because I can't answer the request about myself,
Call peer 103 'on system 110. Peer 103
Is a directory for peer network addresses
・ Call the service and remote procedure to the customer stub 118.
Caller 131 is sent. The customer stub 118 is a network
The call argument of the call message 133
Message 13 at runtime 115 on the system 110
Call the runtime library that sends 5. RPC is a server
Send network message 137 to stub 107 '
Execution time library 1 on the second system 110
Received by 15. Server stub 107 '
Unpacks the argument and performs the requested function
In order to hand over to the corresponding part of peer 103 '. Customer stub
RPC 131 generated by application 103 in 118
By the customer side of the application and the customer stub 118
Use a shared feature name. For example, RPC131
Assume it is for the third function starting with the letters "pqr"
It Customer stub is interface ID, function serial number
No. and network regulations including network agreement information
Compile this into about a call. For application 103
Assume that the interface ID to be used is "A1O3B"
And the network message 133 is "A103B | 3 | ...
| ... ”. "A103B" is the ID number and "3" is the third
In the interface of "pqr ..."
It is a number. Message 137 reaches server stub
The procedure call that the server part can understand.
Will be packed. Server stub has the same interface
Search function that has serial number "3"
"RC_pqr ..." is searched and passed to the server part when
It The process in which the server part responds is exactly the opposite.
Is. Server sends RPC result to server stub
And the server stub will send it to the network message.
Pack them. Server stub is local execution time
Send network messages to the library,
Local runtime library is runtime on customer system
Send it to the library for a while. Runtime library
Is responsible for unpacking the message to the calling peer.
Send a message to the customer stub. Designed a distributed application
The same programmer designed the interface definition file
So that the programmer can
Know the rules used in the server or customer mission
Make the application perform the appropriate RPC when fulfilling the
be able to. An editor like a stream editor
The second interface definition by using
The process of generating files is easily automated
It For example, "sample.idl" is the first interface
In the definition file AIX, execute the following command.
By executing the second interface definition file
(SampleTwo.idl) is created: "sed's / RC-// s
ample.idl> sampleTwo.idl ”. Sed runs all UNIX platforms.
Stream Editor, a standard program for programs
Is. On the other hand, the second interface definition
You can also design a tool to generate
It Utility “m” valid on other versions of AIX and UNIX
ake ”to create the final product, such as a program,
Document or object code library
When making, you can automate a series of steps
It "Make" is a reference that contains a set of rules and
Read a file that is typically called a "makefile". Servant
A generic instruction has a prerequisite target name and list. Premise
The condition is valid or made before the goal is made
A file or other object that must be present. Regulation
The rule is which program must be run to make a goal
Must be specified or identified from prerequisite file. for example
For example, from the C source file "myprog.c" file to "myprog.
To create a goal program called "g"
Specify street dependency: "myprog: myprog.c". I was demanded to
Specify the following to show the rules for generating goals
R: "cc -o myprog myprog.c". Thus, call it "cc"
The C compiler to be executed is executed on "myprog.c".
And the final result is written in a file called "myprog"
Be done. "Myprog.c" itself is the result of executing another program
If it is the result, then "make" searches for the appropriate rule and returns "my".
Run the program that produces "prog.c". Generally, "ma
ke was requested, starting with those that have no prerequisites
Until the goal is created, one step at a time
Ku. Also, which program you are using to create the latest goals.
File to see if you need to rerun
Use the date and time stamp above. Above example
So whenever "myprog.c" changes
Consistent "my by typing gram" make "
"prog" is rebuilt. So the "make" utility
I is distributed application, interface definition file,
Interface files, server and customer stubs
It is an easy method to automate the update process. First inn
Taking the modification of the interface definition file as an example, for example,
Suppose you want to add new functionality provided by the server mission.
"Makefile" is the second interface definition file
By the IDL compiler.
Interface definition file to compile the server
And generate a first and a second set of customer stubs,
Except for minute stubs, remaining stubs are distributed application peers
Used to link to. In this way other peers are new
You can learn about new features. interface
An example of the definition file is shown below. Each function has a function name with "RC
Note that it contains an _. (The following part is a program
I don't translate because it's lamb. ) / * * @ (#) 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); An example of the second interface definition file is shown below.
You The function name is shortened by omitting "RC_"
Please note that (The following part is the program
So I don't translate. ) / * * @ (#) 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);} This file is AIX Use the following instructions above to select `` Sample.
It is generated from the "idl" file. Sed 's / RC-11'sample.idl> sample2.idl Sed is a standard stream editor for all UNIX systems.
It is. First interface with IDL compiler
Server stub generated by compiling the definition file
-A simplified example of the file in C language is shown below. Inn
Includes the first two functions from the Tarfs definition file
Has been. (Because the following part is a program, do not translate
Yes. ) #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_ $ d rpc_int, outdr_ $ d, rdr $$ rong_int 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_ $ enong_int ; 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_s_r ____________ r__r__________________ 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}; globaldefrpc _ $ epv _t PODmaster $ server_epv = (rpc_ $ epv_t) PODmaster $ server_epva; Second interface definition file with IDL compiler
C of the customer stub file generated by compiling
The following is a simplified example of words. Interface definition
The first two functions from the file are included. (Less than
The part of is a program and is not translated. ) 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 allocat ion * / 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}; Second interface definition file with IDL compiler
C in the customer switch file generated by compiling
Below is a simplified example of the language. (The following part is a professional
I don't translate because it's gram. ) #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);} The present invention uses DCE terminology to view customer and server missions.
Although described in terms of points, multiple symmetric replicas are asymmetrical.
Apply this in any situation made from a mathematical model
can do. For example, Master Slave or Raw
Producer-Consumer Model Programed With Data Processing Systems
Used to model behavior. Master Sley
Slave requests access by slave
Control system resources. In the producer-consumer relationship,
Producers need essentials, such as messages that consumers demand,
Is the source of. Symmetric decentralized application of these models
When made from one, each peer takes one mission
Can switch from that mission to another.
Therefore, in the producer-consumer model, the peer is the consumer
One version of the interface when working in
Of the interface when the peer is running a producer mission
There is another edition. A specific process from a remote peer
Interface definition file,
Interface file and above remote procedure call
Stock is used. But including a list of processes
Interface is not what the local peer calls
Can include a list of things. Object oriented program
Ramming is becoming more and more common. Object
Using a text-oriented interface is a discussion of the present invention.
It is a logical extension. The present invention has been described above with respect to specific embodiments
Although described, it does not depart from the spirit and scope of the invention.
It's clear to technicians in this area that
It's mild. The above embodiment includes a set of replicas
Use distributed applications, but provided by distributed applications
Standard customer applications that require customized service.
It can also be built into the network. Customer application minutes
Customer and server star linked to scattered replicas
Customers only
Only linked with stubs. These examples are examples and
For the purpose of illustration, the scope of the invention should be claimed.
It is not more restrictive than the fence.

【発明の効果】本発明は以上説明したように構成されて
いるので、非対称ツールを使用しているネットワークの
ために対称通信インターフェースを生成することができ
るという効果を奏する。
Since the present invention is configured as described above, it is possible to generate a symmetric communication interface for a network using an asymmetric tool.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明に従ってネットワーク・システム環境に
接続する典型的コンピュータを示す図である。
FIG. 1 illustrates an exemplary computer connecting to a network system environment in accordance with the present invention.

【図2】図1の中で示されたコンピュータの構成要素の
ブロック図である。
2 is a block diagram of the components of the computer shown in FIG.

【図3】対称通信インターフェースが生成され模写され
る、ネットワークに連結した2個のワークステーション
の中のコード・モジュールを示す図である。
FIG. 3 shows a code module in two networked workstations in which a symmetric communication interface is created and replicated.

【図4】対称通信インターフェースが生成され模写され
る、ネットワークに連結した2個のワークステーション
の中のコード・モジュールを示す図である。
FIG. 4 shows a code module in two networked workstations in which a symmetric communication interface is created and replicated.

【符号の説明】[Explanation of symbols]

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 メッセージ 10 computer 11 system unit 12 keyboard 13 mouse 14 display 15 pointer 15A, B speaker 16 screen 21 system bus 22 microprocessor 23 ROM 24 RAM 25 memory management chip 26 hard disk drive 27 floppy disk drive 28 keyboard controller 29 mouse controller 30 video -Controller 31 Audio controller 33 Digital signal processor 40 I / O controller 50 Local area network 99 Network 100, 110 system 103 Application 104, 105 Interface definition file 106 Interface definition compiler 107 Server stub 108, 118 Customer stub 109 119 Customer Switch stubs 112 and 113 interface definition editor 114 and 115 RPC runtime module 131 RPC 133 and 137 network message 135 message

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 同一の識別番号を持つ第1および第2の
インターフェース定義ファイルを提供するステップと、 上記第1および第2のインターフェース定義ファイルを
コンパイルして、識別番号を持つ第1および第2任務の
インターフェース・ファイルの第1および第2のセット
を生成するステップと、 上記第1のインターフェース定義ファイルから生成され
た上記第1任務のインターフェース・ファイルと、上記
第2のインターフェース定義ファイルから生成された上
記第2任務のインターフェース・ファイルを無効にする
ステップと、 を含む非対称ツールを使用した対称通信インターフェー
ス生成方法。
1. A step of providing first and second interface definition files having the same identification number, and compiling the first and second interface definition files to provide first and second interface numbers having the identification numbers. Generating first and second sets of mission interface files, generating the first mission interface file generated from the first interface definition file and generating the second interface definition file And a step of invalidating the interface file of the above second task, and a method of generating a symmetric communication interface using an asymmetric tool including
【請求項2】 上記第2のインターフェースから生成さ
れた上記第1任務のインターフェース・ファイルと、上
記第1のインターフェース定義ファイルから生成された
上記第2任務のインターフェース・ファイルをネットワ
ーク上の複数のシステムに複製することを含む請求項1
に記載の方法。
2. A plurality of systems on a network that includes the interface file of the first mission generated from the second interface and the interface file of the second mission generated from the first interface definition file. Claim 1 including replicating to
The method described in.
【請求項3】 上記第1のインターフェース定義ファイ
ルを備えるステップと、 上記第1のインターフェース定義ファイル上の複数の機
能名の文字ストリングを修正することにより上記第2の
インターフェース定義ファイルを生成するステップと、 を含む請求項1に記載の方法。
3. A step of providing the first interface definition file, and a step of generating the second interface definition file by modifying a character string of a plurality of function names on the first interface definition file. The method of claim 1, comprising:
【請求項4】 上記生成ステップが一般的ファイル定義
エディタによって行われる請求項3に記載の方法。
4. The method of claim 3, wherein the generating step is performed by a generic file definition editor.
【請求項5】 上記第1任務を掲載している第1の同輩
からの第1のサービス呼び出しを上記第2任務を掲載し
ている第2の同輩によって起動するステップと、 上記第1のサービス呼び出しを、インターフェース・フ
ァイル識別番号および上記第2任務のインターフェース
・ファイルのサービスの通し番号を含むメッセージに変
換するステップと、 上記第1の同輩に上記メッセージを転送するステップ
と、 上記メッセージを第2のサービス呼び出しに変換するス
テップと、 上記第2のサービス呼び出しは上記第1のサービス呼び
出しのサービス名と異なるサービス名を持つことと、 を含む請求項1に記載の方法。
5. Invoking a first service call from a first peer posting the first mission by a second peer posting the second mission, and the first service. Converting the call to a message containing an interface file identification number and a serial number of the service of the interface file of the second mission; forwarding the message to the first peer; The method of claim 1, comprising: converting to a service call, wherein the second service call has a service name different than the service name of the first service call.
【請求項6】 メモリに常駐する同一の識別番号を持つ
第1および第2のインターフェース定義ファイルと、 上記第1および第2のインターフェース定義ファイルを
コンパイルして、識別番号を持つ第1および第2任務の
インターフェース・ファイルの第1および第2のセット
を生成する、メモリ常駐コンパイラと、 上記第1のインターフェース定義ファイルから生成され
た上記第1任務のインターフェース・ファイルと、上記
第2のインターフェース定義ファイルから生成された上
記第2任務のインターフェース・ファイルを無効にする
手段と、 を備え、システム・バスにより接続されたプロセッサと
メモリを備えた非対称ツールを使用して対称通信インタ
ーフェースを生成するシステム。
6. The first and second interface definition files having the same identification number resident in the memory and the first and second interface definition files are compiled, and the first and second interface numbers having the identification numbers are compiled. A memory resident compiler for generating first and second sets of mission interface files; the first mission interface file generated from the first interface definition file; and the second interface definition file A system for generating a symmetric communication interface using an asymmetric tool having a processor and memory connected by a system bus, the means for invalidating the second mission interface file generated from.
【請求項7】 上記第2のインターフェースから生成さ
れた上記第1任務のインターフェース・ファイルと、上
記第1のインターフェース定義ファイルから生成された
上記第2任務のインターフェース・ファイルをネットワ
ーク上の複数のシステムに複製する手段を備えた請求項
6に記載のシステム。
7. A plurality of systems on a network that includes the interface file of the first mission generated from the second interface and the interface file of the second mission generated from the first interface definition file. 7. The system of claim 6 including means for replicating to.
【請求項8】 上記第1のインターフェース定義ファイ
ル上の各機能名に文字ストリングを追加することにより
上記第2のインターフェース定義ファイルを生成するた
めの、メモリ常駐自動インターフェース定義ファイル・
エディタを備えた請求項6に記載のシステム。
8. A memory-resident automatic interface definition file for generating the second interface definition file by adding a character string to each function name on the first interface definition file.
7. The system of claim 6, comprising an editor.
【請求項9】 上記第1任務を掲載している第1の同輩
からの第1のサービス呼び出しを上記第2任務を掲載し
ている第2の同輩により起動する手段と、 上記第1のサービス呼び出しを、インターフェース・フ
ァイル識別番号および上記第2任務のインターフェース
・ファイルのサービスの通し番号を含むメッセージに変
換する手段と、 上記第1の同輩に上記メッセージを転送する手段と、 上記メッセージを第2のサービス呼び出しに変換する手
段と、 上記第2のサービス呼び出しは上記第1のサービス呼び
出しのサービス名と異なるサービス名を持つことと、 を備えた請求項6に記載のシステム。
9. Means for invoking a first service call from a first peer posting the first mission by a second peer posting the second mission, and the first service. Means for converting the call into a message containing an interface file identification number and the serial number of the service of the interface file of the second mission; means for forwarding the message to the first peer; 7. The system of claim 6, further comprising: means for converting to a service call, wherein the second service call has a service name different from the service name of the first service call.
JP5229598A 1992-10-30 1993-08-24 Communication interface generation system and method Expired - Lifetime JPH0827769B2 (en)

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 true JPH06208519A (en) 1994-07-26
JPH0827769B2 JPH0827769B2 (en) 1996-03-21

Family

ID=25515836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5229598A Expired - Lifetime JPH0827769B2 (en) 1992-10-30 1993-08-24 Communication interface generation system and method

Country Status (3)

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

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
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service 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
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
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
AU3297199A (en) * 1998-02-26 1999-09-15 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
US6236999B1 (en) * 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service 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
US6581088B1 (en) 1998-11-05 2003-06-17 Beas Systems, Inc. Smart stub or enterprise javaTM bean in a distributed processing system
US6571274B1 (en) * 1998-11-05 2003-05-27 Beas Systems, Inc. Clustered enterprise Java™ in a secure distributed processing system
US6742023B1 (en) 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
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
US6366907B1 (en) 1999-12-15 2002-04-02 Napster, Inc. Real-time search engine
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
US7165107B2 (en) 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7530076B2 (en) * 2001-03-23 2009-05-05 S2 Technologies, Inc. Dynamic interception of calls by a target device
US7020867B2 (en) * 2001-03-23 2006-03-28 S2 Technologies, Inc. System and method for automatically generating code templates for communication via a predefined communication interface
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
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
US20030187670A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and system for distributed virtual enterprise project model processing
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
US7327741B1 (en) 2002-12-20 2008-02-05 Symantec Operating Corporation Detecting and breaking cycles in a computer network
US7404006B1 (en) 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
US8275864B1 (en) 2002-12-20 2012-09-25 Symantec Operating Corporation Peer-to-peer network with recovery capability
US7653059B1 (en) 2002-12-20 2010-01-26 Symantec Operating Corporation Communication sessions for a computer network
US8370523B1 (en) 2002-12-20 2013-02-05 Symantec Operating Corporation Managing routing information for a computer network
US7467194B1 (en) 2002-12-20 2008-12-16 Symantec Operating Corporation Re-mapping a location-independent address in a computer network
US7406535B2 (en) * 2002-12-20 2008-07-29 Symantec Operating Corporation Role-based message addressing 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
US8886705B1 (en) 2003-06-30 2014-11-11 Symantec Operating Corporation Goal-oriented storage management for a distributed data storage 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
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
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
US20120102148A1 (en) 2010-12-30 2012-04-26 Peerapp Ltd. Methods and systems for transmission of data over computer networks
CN107094176B (en) 2010-12-30 2021-07-30 皮尔爱普有限公司 Method and system for caching data traffic on a computer network
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
CA2025160A1 (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
EP0595661A1 (en) 1994-05-04
JPH0827769B2 (en) 1996-03-21

Similar Documents

Publication Publication Date Title
JPH06208519A (en) Communication interface generating system and method therof
US5758351A (en) System and method for the creation and use of surrogate information system objects
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
US8473896B2 (en) Computer software development incorporating core and compound services
US5327559A (en) Remote and batch processing in an object oriented programming system
RU2405202C2 (en) Using abstract descriptions to generate, exchange and configure service and client runtimes
US7174361B1 (en) Scripting task-level user-interfaces
JP3365576B2 (en) Object execution method and apparatus
US6064382A (en) Object oriented apparatus and method for providing a graphical user interface for host-based software applications
US6622176B2 (en) Interface device and method
US6112253A (en) Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
JPH0713776A (en) Method fna apparatus for communication using representation object as well as data-processing system
CN116755754A (en) Service interface generation method and device and electronic equipment
US6219835B1 (en) Multi-language DCE remote procedure call
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
US5970250A (en) System, method, and computer program product for scoping operating system semanticis in a computing environment supporting multi-enclave processes
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
US6769119B1 (en) System, method, and computer program product for scoping operating system semantics in a computing environment supporting multi-enclave processes
JP7073813B2 (en) Control programs, control methods and information processing equipment
US20060150204A1 (en) Method, system, and article of manufacture for providing service components
JP2000207186A (en) Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein
CN117055967A (en) Data processing method, data system, electronic device and storage medium
Poon Inside a trader in global trading