JPH0390953A - 手順呼出しシステム及び方法 - Google Patents
手順呼出しシステム及び方法Info
- Publication number
- JPH0390953A JPH0390953A JP2220136A JP22013690A JPH0390953A JP H0390953 A JPH0390953 A JP H0390953A JP 2220136 A JP2220136 A JP 2220136A JP 22013690 A JP22013690 A JP 22013690A JP H0390953 A JPH0390953 A JP H0390953A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- remote
- service
- node
- remote node
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 268
- 238000004891 communication Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 10
- 238000013519 translation Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 150000003839 salts Chemical class 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000012528 membrane Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 235000012976 tarts Nutrition 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 231100000989 no adverse effect Toxicity 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、一般にコンピュータ・システムに関し、より
詳しくは手順呼出しを作る技術に関する。
詳しくは手順呼出しを作る技術に関する。
B、従来の技術及びその課題
プログラミング言語は、再利用できるコードが画定され
た位置に置かれ、必要な時に実行される、手順呼出しを
行なうための機能を提供する。パラメータは呼び出され
た手順にバスされ、結果が戻される。ここで使用される
ように、用語”手順(procedure)”は、総称
的な意味で使い、特に手順、機能、及びサブルーチンと
呼ぶプログラム・セグメントを、ここではすべて手順と
呼ぶ。
た位置に置かれ、必要な時に実行される、手順呼出しを
行なうための機能を提供する。パラメータは呼び出され
た手順にバスされ、結果が戻される。ここで使用される
ように、用語”手順(procedure)”は、総称
的な意味で使い、特に手順、機能、及びサブルーチンと
呼ぶプログラム・セグメントを、ここではすべて手順と
呼ぶ。
手順呼出し規定の詳細は、プログラミング言語によって
異なる。いくつかのパラメータは9手順スタック上のレ
ジスタ内、またはレジスタ、またはスタックの位置に保
待されたポインタによって指定されたメモリ・ブロック
内に渡すことができる。手1頓呼出しを、異なる言語に
よって使用された異なる呼出し規定のために、同じ言語
、または同じ呼出し規定を用いた他の言語内に初めから
書き込まれた手順のために作らなければならない。
異なる。いくつかのパラメータは9手順スタック上のレ
ジスタ内、またはレジスタ、またはスタックの位置に保
待されたポインタによって指定されたメモリ・ブロック
内に渡すことができる。手1頓呼出しを、異なる言語に
よって使用された異なる呼出し規定のために、同じ言語
、または同じ呼出し規定を用いた他の言語内に初めから
書き込まれた手順のために作らなければならない。
異なる言語に初めから書き込まれた手順に対する呼出し
を望み、元の言語と同一であることが分かる場合、特定
のステップがそのような手順で正確に機能するために1
時には呼出しを再構成するために取ることができる。こ
の再構成は、アセンブリ言語レベルでの呼出し修正を必
要とする。
を望み、元の言語と同一であることが分かる場合、特定
のステップがそのような手順で正確に機能するために1
時には呼出しを再構成するために取ることができる。こ
の再構成は、アセンブリ言語レベルでの呼出し修正を必
要とする。
事実上すべての大型、及び中型システムを含む多くのコ
ンピュータ・システムで、手順の共通ライブラリが、標
準的でよく使用されている機能のために保待される。シ
ステム・サービスと呼ばれることもあるこれらの手順は
、アプリケーション・プログラムから呼び出され、アプ
リケーション・プログラマを、共通の機能を実行するた
めにコードの書込みとデパックを行なうことから解放す
る。
ンピュータ・システムで、手順の共通ライブラリが、標
準的でよく使用されている機能のために保待される。シ
ステム・サービスと呼ばれることもあるこれらの手順は
、アプリケーション・プログラムから呼び出され、アプ
リケーション・プログラマを、共通の機能を実行するた
めにコードの書込みとデパックを行なうことから解放す
る。
ライブラリ機能を、リンク時にアプリケーション・プロ
グラムにリンクすることができるか、または、これが動
作システムによって支援される場合には、実行時間に動
的にリンクする。
グラムにリンクすることができるか、または、これが動
作システムによって支援される場合には、実行時間に動
的にリンクする。
上記の言語呼出し規定問題は、手順ライブラリの使用で
存在する。多重手順が同じライブラリ機能を実行するた
めに存在するように、−股肉には、ライブラリ手順はシ
ステムによって支援された各言語で書かれなければなら
ない。1つの代替方法は、特定の言語で書かれた1つま
たは限られた数の手順を有し、たとえどんなステップが
異なる言語で書かれた手順を呼び出すために必要であっ
ても、実行するためにアプリケーション・プログラマを
必要とすることである。
存在する。多重手順が同じライブラリ機能を実行するた
めに存在するように、−股肉には、ライブラリ手順はシ
ステムによって支援された各言語で書かれなければなら
ない。1つの代替方法は、特定の言語で書かれた1つま
たは限られた数の手順を有し、たとえどんなステップが
異なる言語で書かれた手順を呼び出すために必要であっ
ても、実行するためにアプリケーション・プログラマを
必要とすることである。
いくつかのコンピュータ・システムが構内ネットワーク
を介して共に接続されると、できる限り多くの資源を共
用することが望ましい。これは、従来の技術システムは
異なる機械に置かれた手順を透過的(トランスペアレン
ト)に呼び出す準備をしていないので、−股肉にライブ
ラリ手順にとって実現可能なことではない。これは、手
順呼出し規定が異なるシステム構成の間で異なる非同期
ネットワークに対しては、特に真実である。
を介して共に接続されると、できる限り多くの資源を共
用することが望ましい。これは、従来の技術システムは
異なる機械に置かれた手順を透過的(トランスペアレン
ト)に呼び出す準備をしていないので、−股肉にライブ
ラリ手順にとって実現可能なことではない。これは、手
順呼出し規定が異なるシステム構成の間で異なる非同期
ネットワークに対しては、特に真実である。
ネットワークに取り付けた遠隔ノードに置かれたライブ
ラリ手順を呼び出すために、アプリケーション・プログ
ラムに対して能力を与えることは、システムにとって望
ましい。さらに、そのようなシステムにとって、アプリ
ケーション・プログラムが、それらが構内ネットワーク
・ノード、または、遠隔ノード上に置かれるのか否かを
知ることなく、ライブラリ手順を呼び出せることが望ま
しい。また、そのような呼出しが、アプリケージタン・
プログラムによって作られた言語特定翻訳の必要なしに
、異なる手順呼出し規定を用いた言語で書き込まれた手
順に対し行なわれるのが望ましい。
ラリ手順を呼び出すために、アプリケーション・プログ
ラムに対して能力を与えることは、システムにとって望
ましい。さらに、そのようなシステムにとって、アプリ
ケーション・プログラムが、それらが構内ネットワーク
・ノード、または、遠隔ノード上に置かれるのか否かを
知ることなく、ライブラリ手順を呼び出せることが望ま
しい。また、そのような呼出しが、アプリケージタン・
プログラムによって作られた言語特定翻訳の必要なしに
、異なる手順呼出し規定を用いた言語で書き込まれた手
順に対し行なわれるのが望ましい。
したがって本発明の1つの目的は、アプリケーション・
プログラムがネットワークによって構内機械に接続され
た遠隔機械上に置くことのできるライブラリ手順に対し
て、呼出しができるようにするシステム及び方法を提供
することである。
プログラムがネットワークによって構内機械に接続され
た遠隔機械上に置くことのできるライブラリ手順に対し
て、呼出しができるようにするシステム及び方法を提供
することである。
また、本発明の1つの目的は、アプリケーション・プロ
グラムが、そのような手順が構内機械、または遠隔機械
上に置かれているか否かを知ることなく、ライブラリ手
順に呼出しを行なうことができるようにするシステム、
及び方法を提供することである。
グラムが、そのような手順が構内機械、または遠隔機械
上に置かれているか否かを知ることなく、ライブラリ手
順に呼出しを行なうことができるようにするシステム、
及び方法を提供することである。
本発明のさらにもう1つの目的は、ライブラリ手順に対
する呼出しが、ライブラリ手順によって用いられた規定
とは異なる手順呼出し規定を用いたアプリケーション・
プログラムから作ることができるシステムを提供するこ
とである。
する呼出しが、ライブラリ手順によって用いられた規定
とは異なる手順呼出し規定を用いたアプリケーション・
プログラムから作ることができるシステムを提供するこ
とである。
C0課題を解決するための手段
したがって、本発明によれば、ライブラリ手順に対して
呼出しをするためのシステムは、アプリケーション・プ
ログラムのために標準インタフェイスを提供する。ライ
ブラリ手順に対する要求は、所望の手順が、構内で、ま
たは遠隔機械で利用できるか否かを知るためにチエツク
される。構内で利用できる手順は構内で実行される。遠
隔機械で利用できる手順は、手順識別子、及び遠隔機械
に対する任意の必要なパラメータを通信することによっ
て呼び出される。結果は、アプリケーション・プログラ
ムによって使用するために、構内機械に戻される。
呼出しをするためのシステムは、アプリケーション・プ
ログラムのために標準インタフェイスを提供する。ライ
ブラリ手順に対する要求は、所望の手順が、構内で、ま
たは遠隔機械で利用できるか否かを知るためにチエツク
される。構内で利用できる手順は構内で実行される。遠
隔機械で利用できる手順は、手順識別子、及び遠隔機械
に対する任意の必要なパラメータを通信することによっ
て呼び出される。結果は、アプリケーション・プログラ
ムによって使用するために、構内機械に戻される。
D、実施例
手順呼出しを行なうためのシステムが、コンピュータの
ネットワークと共に使用できる。構内(local)
ノードのアプリケーション呼出しは、所望のライブラ
リ手順を呼び出す。ライブラリ手順は、構内ノードまた
は遠隔ノードに利用でき、また位置はアプリケージタン
によって知られる必要はない。ライブラリ手順が遠隔ノ
ードに利用できる場合、遠隔ルータ手順は遠隔ノードに
対して手順識別子を通信する。手順が実行され、ど1ん
な結果も構内ノードに戻され、アプリケーション・プロ
グラムに戻される。
ネットワークと共に使用できる。構内(local)
ノードのアプリケーション呼出しは、所望のライブラ
リ手順を呼び出す。ライブラリ手順は、構内ノードまた
は遠隔ノードに利用でき、また位置はアプリケージタン
によって知られる必要はない。ライブラリ手順が遠隔ノ
ードに利用できる場合、遠隔ルータ手順は遠隔ノードに
対して手順識別子を通信する。手順が実行され、ど1ん
な結果も構内ノードに戻され、アプリケーション・プロ
グラムに戻される。
本明細書に説明するソフトウェア・システムは、はとん
どどの−膜内な目的のディジタル・コンピュータと共に
使用するのに適している。メインフレーム、ミニコンピ
ユータ、エンジニアリング・ワークスチーシロン、及び
多くのデスクトップ・パーソナル・コンピュータは、後
述のシステムを支援することができる。当業者の能力の
範囲内では、単に小修正だけが、後述のような様々な既
存の言語コンパイラに対して必要とされる。
どどの−膜内な目的のディジタル・コンピュータと共に
使用するのに適している。メインフレーム、ミニコンピ
ユータ、エンジニアリング・ワークスチーシロン、及び
多くのデスクトップ・パーソナル・コンピュータは、後
述のシステムを支援することができる。当業者の能力の
範囲内では、単に小修正だけが、後述のような様々な既
存の言語コンパイラに対して必要とされる。
項目ライブラリ手順、サービス、及びサービス手順は、
同じ意味に使用される。構内ノード、及び構内機械は、
アプリケーション・プログラムが実行しているコンピュ
ータを意味する。遠隔ノード、及び遠隔機械は、構内領
域ネットワークなどの通信リンクによって構内ノードに
接続されたコンピュータを意味する。
同じ意味に使用される。構内ノード、及び構内機械は、
アプリケーション・プログラムが実行しているコンピュ
ータを意味する。遠隔ノード、及び遠隔機械は、構内領
域ネットワークなどの通信リンクによって構内ノードに
接続されたコンピュータを意味する。
第1図で、構内ノードで利用できるライブラリ手順呼出
しを取り扱うためのシステム10は、サービス・ディレ
クタ12を含む。サービス・ディレクタ12は、切取り
(stub)手順14によって呼び出されるソフトウェ
ア手順である。切取り手順工4は、アプリケーション・
プログラム16の一部分である。
しを取り扱うためのシステム10は、サービス・ディレ
クタ12を含む。サービス・ディレクタ12は、切取り
(stub)手順14によって呼び出されるソフトウェ
ア手順である。切取り手順工4は、アプリケーション・
プログラム16の一部分である。
サービス・ディレクタ12は、内部サービス18を定義
するいくつかの手順を含む。サービス・ディレクタ12
は、また、サービス・テーブル20を定義するデータ構
造にアクセスする。実行中に、サービス・ディレクタ1
2は、ライブラリ手順22.24.26、及び28に対
し手順呼出しをすることができる。
するいくつかの手順を含む。サービス・ディレクタ12
は、また、サービス・テーブル20を定義するデータ構
造にアクセスする。実行中に、サービス・ディレクタ1
2は、ライブラリ手順22.24.26、及び28に対
し手順呼出しをすることができる。
アプリケーション・プログラム16は、任意のエンドユ
ース、すなわちシステム機能を実行することができ、−
膜内にはCまたはC0BOLなどの高レベル言語で書か
れる。アプリケーション16をアセンブリ言語で書くこ
とは次第に減っている。切取り手順14は、リンク時に
アプリケーション16にリンクされる小さな手順である
。
ース、すなわちシステム機能を実行することができ、−
膜内にはCまたはC0BOLなどの高レベル言語で書か
れる。アプリケーション16をアセンブリ言語で書くこ
とは次第に減っている。切取り手順14は、リンク時に
アプリケーション16にリンクされる小さな手順である
。
切取り手順14は、アプリケ−シロン16によって、任
意の他の手順によって呼び出される。切取り手順14に
渡されるパラメータは、実行が望まれるシステム・ライ
ブラリ手順、あるいはサービスを定める。切取り手順1
4は、これらのパラメータを使用して、サービス・ディ
レクタ12に対シて手順呼出しを行なう。
意の他の手順によって呼び出される。切取り手順14に
渡されるパラメータは、実行が望まれるシステム・ライ
ブラリ手順、あるいはサービスを定める。切取り手順1
4は、これらのパラメータを使用して、サービス・ディ
レクタ12に対シて手順呼出しを行なう。
いろいろなプログラミング言語は、いろいろな手順呼出
し規定を使用するので、異なる切取り手順14は、支援
された各プログラミング言語のためのシステムによって
準備されなければならない。
し規定を使用するので、異なる切取り手順14は、支援
された各プログラミング言語のためのシステムによって
準備されなければならない。
しかし、単一の切取りプログラム14が、すべての所望
ライブラリ・サービスのためのサービス・ディレクタt
2に対して、すべての呼出しを行なう。
ライブラリ・サービスのためのサービス・ディレクタt
2に対して、すべての呼出しを行なう。
サービス・ディレクタ12は、ライブラリ手順が呼び出
された時、アプリケーション・プログラム16により使
用されるインタフェイスである。
された時、アプリケーション・プログラム16により使
用されるインタフェイスである。
サービス・ディレクタ12は、呼び出された時、それに
渡されたパラメータを調べ、どの手順が呼び込まれるべ
きかを判定する。ある手順は、サービス・ディレクタ1
2のコードに直接食まれるのが好ましい。これらの手順
は、内部サービス18または環境サービスと呼ぶことが
できる。これらの手順18は、−膜内にはしばしば実行
されるもので、あまり複雑なものではない。これらの手
順18に対する効果的な呼出しは、システムの性能低下
を防ぐために好ましい。サービス・ディレクタ12に対
する内部サービス18として含まれる一般的なシステム
・サービスは、プログラム、及び記憶マネージメント、
時刻及び同様のシステム・サービス、及び、初期設定及
びサービス・ディレクタ12自体の動作に向けられた制
御ルーチンを含む。
渡されたパラメータを調べ、どの手順が呼び込まれるべ
きかを判定する。ある手順は、サービス・ディレクタ1
2のコードに直接食まれるのが好ましい。これらの手順
は、内部サービス18または環境サービスと呼ぶことが
できる。これらの手順18は、−膜内にはしばしば実行
されるもので、あまり複雑なものではない。これらの手
順18に対する効果的な呼出しは、システムの性能低下
を防ぐために好ましい。サービス・ディレクタ12に対
する内部サービス18として含まれる一般的なシステム
・サービスは、プログラム、及び記憶マネージメント、
時刻及び同様のシステム・サービス、及び、初期設定及
びサービス・ディレクタ12自体の動作に向けられた制
御ルーチンを含む。
切取部分14を介して、アプリケーション16がサービ
ス・ディレクタ12を呼び出す時、実行される手順は、
そこに渡されるパラメータによって識別される。いった
ん所望の手順が識別されると、サービス・ディレクタは
、その手順がシステム内のどこに記憶され、それがどの
パラメータを必要としているのか、さらに手順がはじめ
に書かれた言語は何かを判定しなければならない。この
最後の項目は、所望のライブラリ手順が呼び込まれた時
に使用しなければならない手順呼出し規定を示す。サー
ビス・ディレクタ12は、この情報をサービス・テーブ
ル20から見つける。サービス・テーブル20は、シス
テム・ライブラリ手順の名前から、今述べた情報に対す
るマツピングを準備し、いくつかの周知のデータ構造の
どれで゛も実行できるデータ構造である。
ス・ディレクタ12を呼び出す時、実行される手順は、
そこに渡されるパラメータによって識別される。いった
ん所望の手順が識別されると、サービス・ディレクタは
、その手順がシステム内のどこに記憶され、それがどの
パラメータを必要としているのか、さらに手順がはじめ
に書かれた言語は何かを判定しなければならない。この
最後の項目は、所望のライブラリ手順が呼び込まれた時
に使用しなければならない手順呼出し規定を示す。サー
ビス・ディレクタ12は、この情報をサービス・テーブ
ル20から見つける。サービス・テーブル20は、シス
テム・ライブラリ手順の名前から、今述べた情報に対す
るマツピングを準備し、いくつかの周知のデータ構造の
どれで゛も実行できるデータ構造である。
いったんサービス・ディレクタ12が呼び込まれようと
するライブラリ手順を識別すると、それは、手順によっ
て期待される呼出し規定に対し適切にそこにパスされる
任意のパラメータも配置し、その後それを呼び出す。手
順によって戻されたいかなる結果も、サービス・ディレ
クタ12にパスされる。必要ならば、サービス・ディレ
クタ12は、その結果を再びフォーマットし、それらを
切取り手順14に戻す。
するライブラリ手順を識別すると、それは、手順によっ
て期待される呼出し規定に対し適切にそこにパスされる
任意のパラメータも配置し、その後それを呼び出す。手
順によって戻されたいかなる結果も、サービス・ディレ
クタ12にパスされる。必要ならば、サービス・ディレ
クタ12は、その結果を再びフォーマットし、それらを
切取り手順14に戻す。
多くの場合、アプリケーション・プログラム16及び呼
び出されたライブラリ手順は、同じ言語で書き込まれ、
その結果、必要な手順呼出しをする際には、はとんど困
難性はない。また他の場合、ある1つの言語の実施態様
は、パラメータをパスし、レジスタ内の結果を戻すこと
ができ、一方で、他の言語のインプリメンテーシコンは
、スタックを使用することができる。サービス・ディレ
クタ12は、1つの呼出し規定、及び他の呼出し規定の
間で翻訳ないしは変換する必要のあるものを「知り」、
かなり直接的方法でこれらを変える。
び出されたライブラリ手順は、同じ言語で書き込まれ、
その結果、必要な手順呼出しをする際には、はとんど困
難性はない。また他の場合、ある1つの言語の実施態様
は、パラメータをパスし、レジスタ内の結果を戻すこと
ができ、一方で、他の言語のインプリメンテーシコンは
、スタックを使用することができる。サービス・ディレ
クタ12は、1つの呼出し規定、及び他の呼出し規定の
間で翻訳ないしは変換する必要のあるものを「知り」、
かなり直接的方法でこれらを変える。
たとえば、データ及びポインタは、レジスタからスタッ
クへ移動することができ、逆もまた可能である。
クへ移動することができ、逆もまた可能である。
好ましい実施例において、アプリケーションは、任なの
システム・ライブラリ手順を呼び出す前に、サービス・
ディレクタ12に初期設定呼出しをしなければならない
。この呼出しはアプリケーションを識別し、さらにサー
ビス・ディレクタ12が適切なサービス・テーブル20
をみつけるようにすることができるパラメータを渡す。
システム・ライブラリ手順を呼び出す前に、サービス・
ディレクタ12に初期設定呼出しをしなければならない
。この呼出しはアプリケーションを識別し、さらにサー
ビス・ディレクタ12が適切なサービス・テーブル20
をみつけるようにすることができるパラメータを渡す。
いろいろなアプリケージ3ンが、いろいろなサービス・
テーブルの組を使用することができる。この呼出しはま
た、第2図で説明される機能をもつ共通の制御ブロック
に対してポインタを準備することができる。
テーブルの組を使用することができる。この呼出しはま
た、第2図で説明される機能をもつ共通の制御ブロック
に対してポインタを準備することができる。
ライブラリ手順に対するすべての呼出しが完了した後で
、サービス・ディレクタ12に対して終了呼出しをする
ことも、アプリケ−シコン16にはまた好ましい。これ
によって、サービス・ディレクタt2はメモリの割り当
てられた領域を自由にさせ、一般に、アプリケーション
16の後に、終結処置させる。
、サービス・ディレクタ12に対して終了呼出しをする
ことも、アプリケ−シコン16にはまた好ましい。これ
によって、サービス・ディレクタt2はメモリの割り当
てられた領域を自由にさせ、一般に、アプリケーション
16の後に、終結処置させる。
第2図は、ライブラリ手順を呼び出すために、アプリケ
ーション16内で使用するための一般的な命令を示す。
ーション16内で使用するための一般的な命令を示す。
命令前40は、切取り手順塩″FXXZ ”42を有
する切取り手順14に対する呼出し” CALL″であ
る。FORTRANなどのいくつかの言語では、ワード
CALLは、実際には、切取り手順14を呼び出すステ
ートメントの一部分として現われる。また別の多くの言
語では、ワードCALLは使用されず、切取り手順14
は、単にその名前42を使用することにより呼び出され
る。
する切取り手順14に対する呼出し” CALL″であ
る。FORTRANなどのいくつかの言語では、ワード
CALLは、実際には、切取り手順14を呼び出すステ
ートメントの一部分として現われる。また別の多くの言
語では、ワードCALLは使用されず、切取り手順14
は、単にその名前42を使用することにより呼び出され
る。
切取り手順塩42は、記述的な手順塩の使用と矛盾しな
い傾向を有するように、比較的任意であることが好まし
い。システム・リンカは、アプリケーション・プログラ
ム16の言語に適切な切取部分14内に連結することが
できるように、切取り手順塩42はどの言語が使われて
いるのかを表使用される言語を表す1つまたは複数の文
字によって置き換えられるのが好ましい。たとえば、こ
れらの文字は、”C’ (COBOLに対して)“C
BL″ または(アセンブリ言語に対して)“ASM”
が可能である。代わりに、同じ切取り名がすべての言語
に対して使用され、各コンパイラは、それがアプリケー
ション・プログラム16をコンパイルする時、それが作
成するオブジェクト・ファイル内に必要な外部連係情報
を置くことにより、適切な切取り手順14を識別する。
い傾向を有するように、比較的任意であることが好まし
い。システム・リンカは、アプリケーション・プログラ
ム16の言語に適切な切取部分14内に連結することが
できるように、切取り手順塩42はどの言語が使われて
いるのかを表使用される言語を表す1つまたは複数の文
字によって置き換えられるのが好ましい。たとえば、こ
れらの文字は、”C’ (COBOLに対して)“C
BL″ または(アセンブリ言語に対して)“ASM”
が可能である。代わりに、同じ切取り名がすべての言語
に対して使用され、各コンパイラは、それがアプリケー
ション・プログラム16をコンパイルする時、それが作
成するオブジェクト・ファイル内に必要な外部連係情報
を置くことにより、適切な切取り手順14を識別する。
切取り手順14に渡される第1のパラメータは、サービ
ス・パラメータ″5ERVICE″44であり、サービ
ス・パラメータ44は、サービス名ブロック46と呼ば
れるデータ構造に対するポインタである。渡そうとする
第2のパラメータは共通ブロック識別子”C0MM0N
″48であり、共通ブロック識別子48は共通ブロック
50に対するポインタを含む。第3のパラメータ″PR
OCEDURE”52は、手順ブロック54に対するポ
インタを含み、さらに、追加パラメータ″PARAM1
″56は、パラメータ・ブロック58を分離するための
各ポインタである。
ス・パラメータ″5ERVICE″44であり、サービ
ス・パラメータ44は、サービス名ブロック46と呼ば
れるデータ構造に対するポインタである。渡そうとする
第2のパラメータは共通ブロック識別子”C0MM0N
″48であり、共通ブロック識別子48は共通ブロック
50に対するポインタを含む。第3のパラメータ″PR
OCEDURE”52は、手順ブロック54に対するポ
インタを含み、さらに、追加パラメータ″PARAM1
″56は、パラメータ・ブロック58を分離するための
各ポインタである。
かぎかっこで示したパラメータ52.56は、いくつか
の場合には自由選択である。すなわち、時刻のようない
くつかの内部サービス呼出しが、インプリメンテーショ
ンに応じてパラメータ44及び48だけで足りる場合も
ある。
の場合には自由選択である。すなわち、時刻のようない
くつかの内部サービス呼出しが、インプリメンテーショ
ンに応じてパラメータ44及び48だけで足りる場合も
ある。
サービス・パラメータ44は、サービス名ブロック46
を指摘し、サービス名ブロック46は、情報のいくつか
の異なる項目を含むメモリの割り振られたブロックであ
る。ブロック46に示された数は、そのフィールドが占
める多くのバイトを表す。好ましい実施例では、サービ
ス名ブロック46内の第1のフィールドは、長さ”LE
NGTH’フィールドであり、LENGTHフィールド
は、サービス名ブロック46内のバイトのすべての数を
表す。次のフィールドは名前″NAME″フィールドで
あり、NAMEフィールドはサービスの名前である。パ
ラメータカウント”PARM”フィールドは呼び出され
たサービスに渡そうとするパラメータの数を表す。この
カウントは、手順パラメータ52がパスされているか否
か、さらに、どれだけのパラメータ項目56がバスされ
ているかを判定するために使用される。
を指摘し、サービス名ブロック46は、情報のいくつか
の異なる項目を含むメモリの割り振られたブロックであ
る。ブロック46に示された数は、そのフィールドが占
める多くのバイトを表す。好ましい実施例では、サービ
ス名ブロック46内の第1のフィールドは、長さ”LE
NGTH’フィールドであり、LENGTHフィールド
は、サービス名ブロック46内のバイトのすべての数を
表す。次のフィールドは名前″NAME″フィールドで
あり、NAMEフィールドはサービスの名前である。パ
ラメータカウント”PARM”フィールドは呼び出され
たサービスに渡そうとするパラメータの数を表す。この
カウントは、手順パラメータ52がパスされているか否
か、さらに、どれだけのパラメータ項目56がバスされ
ているかを判定するために使用される。
フラグ′vFLAGS”フィールドは、切取り手順14
からサービス・ディレクタ12に、情報を渡すために使
用される。−股肉に渡される情報の1型式は、呼出し言
語の識別子である。異なる言語に対するすべての切取り
手順14は、同じエントリ・ポイントで、サービス・デ
ィレクタ12を呼び出し、サービス名ブロック内のF
LAG Sフィールドは、どの呼出し規定が使用されて
いるかを、サービス・ディレクタ12に示す。
からサービス・ディレクタ12に、情報を渡すために使
用される。−股肉に渡される情報の1型式は、呼出し言
語の識別子である。異なる言語に対するすべての切取り
手順14は、同じエントリ・ポイントで、サービス・デ
ィレクタ12を呼び出し、サービス名ブロック内のF
LAG Sフィールドは、どの呼出し規定が使用されて
いるかを、サービス・ディレクタ12に示す。
指標”INDEX’フィールドは、特定のサービスにつ
いての情報の位置をより速く識別するために使用される
。サービスが呼び出された初回は、サービス・ディレク
タ12は、NAMEフィールドをテーブル20内で有効
な様々な名前と突き合わせるために、サービス・テーブ
ル20を介して探索しなければならない。いったんこの
突合わせが行なわれると、サービス・ディレクタ12は
、テーブル20内のそのエントリに対する識別子をIN
DEXフィールド内に置く。識別子は、たとえば、その
エントリに対するアドレス、または、インデックスをテ
ーブルの中に置くことができる。
いての情報の位置をより速く識別するために使用される
。サービスが呼び出された初回は、サービス・ディレク
タ12は、NAMEフィールドをテーブル20内で有効
な様々な名前と突き合わせるために、サービス・テーブ
ル20を介して探索しなければならない。いったんこの
突合わせが行なわれると、サービス・ディレクタ12は
、テーブル20内のそのエントリに対する識別子をIN
DEXフィールド内に置く。識別子は、たとえば、その
エントリに対するアドレス、または、インデックスをテ
ーブルの中に置くことができる。
このサービスの様々な機能が後で呼び出される時はいつ
でも、この識別子が使用されて、サービス・テーブル2
0内の適切なエントリに直接アクセスする。
でも、この識別子が使用されて、サービス・テーブル2
0内の適切なエントリに直接アクセスする。
共通ブロック50はサービス・ディレクタ12によって
使用され、状況及び他の情報をアプリケーション・プロ
グラム16に戻す。長さ“’LENGTH”フィールド
は、共通ブロック50のサイズを表す。リターン・コー
ド”RETURN C0DE″フイールドが使用され
て、状況コードをアプリケーション・プログラム16に
戻す。好ましい実施例の規定によって、戻りコードのた
めの正の値は、単に、呼び出されたライブラリ手順によ
って生成された任意の戻りコードを通過する。また規定
によって、戻りコードのための負の値はサービス・ディ
レクタ12によって使用され、責任領域内の障害を示す
。そのような障害には、たとえば、所望のライブラリ手
順をみつける能力がない、ということも含まれる。拡張
コード″EXTENDED C0DE″フイールドは
、エラー・コードを戻すための追加能力を準備する。
使用され、状況及び他の情報をアプリケーション・プロ
グラム16に戻す。長さ“’LENGTH”フィールド
は、共通ブロック50のサイズを表す。リターン・コー
ド”RETURN C0DE″フイールドが使用され
て、状況コードをアプリケーション・プログラム16に
戻す。好ましい実施例の規定によって、戻りコードのた
めの正の値は、単に、呼び出されたライブラリ手順によ
って生成された任意の戻りコードを通過する。また規定
によって、戻りコードのための負の値はサービス・ディ
レクタ12によって使用され、責任領域内の障害を示す
。そのような障害には、たとえば、所望のライブラリ手
順をみつける能力がない、ということも含まれる。拡張
コード″EXTENDED C0DE″フイールドは
、エラー・コードを戻すための追加能力を準備する。
追加要素″ADDITIONAL ELEMENTS
″フィールドは、任意選択であり、データまたはデータ
・バックのためのポインタを、アプリケーション・プロ
グラム16に転送するために使用してもよい。
″フィールドは、任意選択であり、データまたはデータ
・バックのためのポインタを、アプリケーション・プロ
グラム16に転送するために使用してもよい。
長さLENGTH”フィールドの他に、手順ブロック5
4は機能コード″FUNCTIONCODE″フィール
ドを含む。このフィールドは、どのサービスの機能が望
まれるかを示す数である。
4は機能コード″FUNCTIONCODE″フィール
ドを含む。このフィールドは、どのサービスの機能が望
まれるかを示す数である。
好ましい実施例では、関連した機能は共にグループ化さ
れ、このグループ化をサービスと呼ぶことにする。これ
らの手段の1つにアクセスするために、全体としてサー
ビスに適用される名前が必要であり、それはサービス名
ブロック46内にあり、さらにサービスの範囲内の手順
が必要とされる指示は、手順ブロック54内にある。た
とえば、マトリックス操作を実行するためのルーチンの
lグループは、行列式の計算、マ) IJフックス作、
反転、または他のマトリックス操作が必要とされるか否
かを指示する手順ブロックで、単一のサービスにより識
別することができる。
れ、このグループ化をサービスと呼ぶことにする。これ
らの手段の1つにアクセスするために、全体としてサー
ビスに適用される名前が必要であり、それはサービス名
ブロック46内にあり、さらにサービスの範囲内の手順
が必要とされる指示は、手順ブロック54内にある。た
とえば、マトリックス操作を実行するためのルーチンの
lグループは、行列式の計算、マ) IJフックス作、
反転、または他のマトリックス操作が必要とされるか否
かを指示する手順ブロックで、単一のサービスにより識
別することができる。
各パラメータ・ブロック58は、1つのパラメータを要
求されたライブラリ手順に伝送するために使われる。パ
ラメータ・ブロック58内のサービス・データ″5ER
VICE DATA″フィールドは、データを直接合
むことができるか、またはデータに対するポインタを含
む。各パラメータ・ブロック58内に含まれたデータ・
タイプは、各個別のライブラリ手順が何を期待するかに
依存し、その特定ライブラリ手順のための文書資料に指
定されることになる。
求されたライブラリ手順に伝送するために使われる。パ
ラメータ・ブロック58内のサービス・データ″5ER
VICE DATA″フィールドは、データを直接合
むことができるか、またはデータに対するポインタを含
む。各パラメータ・ブロック58内に含まれたデータ・
タイプは、各個別のライブラリ手順が何を期待するかに
依存し、その特定ライブラリ手順のための文書資料に指
定されることになる。
第3図は、アプリケーション・プログラム16によって
、構内ノードで利用できるライブラリ手順の呼出し中に
発生するステップを示す。第3図のフローチャートは、
サービス・ディレクタ12に対し行なわれる必要のある
任意の初期化呼出しがすでに行なわれている、と仮定す
る。第3図は、ライブラリ手順に対する単一呼出し中に
発生する事象の順序のみを示す。
、構内ノードで利用できるライブラリ手順の呼出し中に
発生するステップを示す。第3図のフローチャートは、
サービス・ディレクタ12に対し行なわれる必要のある
任意の初期化呼出しがすでに行なわれている、と仮定す
る。第3図は、ライブラリ手順に対する単一呼出し中に
発生する事象の順序のみを示す。
まず、アプリケーション・プログラム16は切取り手順
を呼び出し、パラメータをそれに渡す(70)。第2図
に関して述べられたようなこれらのパラメータは、少な
くともサービス、及び、共通ブロックを識別することが
好ましく、さらに必要ならば手順識別子及びパラメータ
を任意選択的に識別する。次に切取り手順は呼出し言語
フラグをセットする(72)。このフラグは、サービス
・ディレクタ12に対し、アプリケーション・プログラ
ム16のプログラミング言語を表示し、それによって、
どの呼出し規定がアプリケーション16及び切取り手順
14により使用されるかをt旨示する。
を呼び出し、パラメータをそれに渡す(70)。第2図
に関して述べられたようなこれらのパラメータは、少な
くともサービス、及び、共通ブロックを識別することが
好ましく、さらに必要ならば手順識別子及びパラメータ
を任意選択的に識別する。次に切取り手順は呼出し言語
フラグをセットする(72)。このフラグは、サービス
・ディレクタ12に対し、アプリケーション・プログラ
ム16のプログラミング言語を表示し、それによって、
どの呼出し規定がアプリケーション16及び切取り手順
14により使用されるかをt旨示する。
それから、切取り手順はサービス・ディレクタを呼出し
く74)、サービス・ディレクタは、要求が内部サービ
スに対するものであるか否かを決定する(76)。要求
された手順がサービス・ディレクタに対し内部的でない
場合は、サービス・ディレクタ12は、所望の手順をサ
ービス・テーブルから探す(78)。上記のように、サ
ービス・テーブル・エントリは、要求されたライブラリ
手順を適切に呼び出すために、サービス・ディレクタ1
2に必要なその情報を示す。第3図の方法では、サービ
ス・テーブル・エントリは、所望の手順が横内ノードで
使用可能であることを示す。
く74)、サービス・ディレクタは、要求が内部サービ
スに対するものであるか否かを決定する(76)。要求
された手順がサービス・ディレクタに対し内部的でない
場合は、サービス・ディレクタ12は、所望の手順をサ
ービス・テーブルから探す(78)。上記のように、サ
ービス・テーブル・エントリは、要求されたライブラリ
手順を適切に呼び出すために、サービス・ディレクタ1
2に必要なその情報を示す。第3図の方法では、サービ
ス・テーブル・エントリは、所望の手順が横内ノードで
使用可能であることを示す。
次に、サービス・ディレクタ12は、ライブラリ手順を
呼び出すためにパラメータをセットしく80)、それを
呼び出す(82)。サービス手順は、通常の方式で実行
しく84)、どんな生成された結果をもサービス・ディ
レクタに戻す(86)。
呼び出すためにパラメータをセットしく80)、それを
呼び出す(82)。サービス手順は、通常の方式で実行
しく84)、どんな生成された結果をもサービス・ディ
レクタに戻す(86)。
サービス・ディレクタ12は、ステップ72内のフラグ
・セットにより示されるアプリケーション・プログラム
16の呼出し規定を突き合わせるために、その戻りパラ
メータをセットする(88)。次にその結果は切取り手
順に戻され(90)、切取り手順はそれらをアプリケー
ション・プログラムへ戻す(92)。
・セットにより示されるアプリケーション・プログラム
16の呼出し規定を突き合わせるために、その戻りパラ
メータをセットする(88)。次にその結果は切取り手
順に戻され(90)、切取り手順はそれらをアプリケー
ション・プログラムへ戻す(92)。
ステップ76で、サービス・ディレクタ12が、内部サ
ービスが要求されていることを検出した場合、それは、
そのような内部手順を実行しく94)、それからステッ
プへ行< (90)。サービス・ディレクタ12は、ス
テップ72内の呼出し言語フラグ・セットのために、ア
プリケーション・プログラム16によって使われたパラ
メータ受渡しメカニズムを理解し、必要とされるいかな
る翻訳も直接取り扱うことができる。
ービスが要求されていることを検出した場合、それは、
そのような内部手順を実行しく94)、それからステッ
プへ行< (90)。サービス・ディレクタ12は、ス
テップ72内の呼出し言語フラグ・セットのために、ア
プリケーション・プログラム16によって使われたパラ
メータ受渡しメカニズムを理解し、必要とされるいかな
る翻訳も直接取り扱うことができる。
第4図は、ネットワークの1つのノード上で実行中のア
プリケージタンが、ネットワークの他のノード」二のサ
ービス手順を呼び出すことができる、システムの1実施
例のブロック図である。第4図に示すシステムは、いく
つかの異なる遠隔モードでの動作のために使用すること
ができ、いくつかの異なる遠隔モードは、第5図〜第8
図のフローチャート内に個別に述べる。理解しやすくす
るために、好ましい実施例は同じ技術を用いているが、
第1図で述べた詳細のすべてを第4図内に含めてはいな
い。
プリケージタンが、ネットワークの他のノード」二のサ
ービス手順を呼び出すことができる、システムの1実施
例のブロック図である。第4図に示すシステムは、いく
つかの異なる遠隔モードでの動作のために使用すること
ができ、いくつかの異なる遠隔モードは、第5図〜第8
図のフローチャート内に個別に述べる。理解しやすくす
るために、好ましい実施例は同じ技術を用いているが、
第1図で述べた詳細のすべてを第4図内に含めてはいな
い。
第4図では、アプリケージタン・プログラム100は、
手順呼出し104を介してサービス・ディレクタ102
を呼び出す。サービス・ディレクタ102は、手順ディ
レクタ108で遠隔経路指定サービス106を呼び出す
。遠隔経路指定サービス106は、ネットワークを通し
て構内ノードに接続された遠隔ノードと遠隔通信を始め
るライブラリ手順である。
手順呼出し104を介してサービス・ディレクタ102
を呼び出す。サービス・ディレクタ102は、手順ディ
レクタ108で遠隔経路指定サービス106を呼び出す
。遠隔経路指定サービス106は、ネットワークを通し
て構内ノードに接続された遠隔ノードと遠隔通信を始め
るライブラリ手順である。
遠隔経路指定プログラムlO6は、データと結果をネッ
トワークを通して転送のために、ネットワーク・インタ
フェイス110と通信する。ネットワーク・インタフェ
イス110は、ネットワーク内の2つのノードに接続す
るのに必要なすべてのハードウェア及びソフトウェア・
インタフェイス、及び接続を示す。ネットワーク構造は
互いに非常に異なっており、ネットワーク連係の詳細は
本発明の一部分を形成するものではない、したがって、
ネットワーク・インタフェイス110の詳細は省略する
。また遠隔経路指定サービス108は、データ・マツパ
112と通信し、データ・マツパ112は、ネットワー
クを通して転送されるメツセージのフォーマット化を制
御する。遠隔経路指定応答手順114は、選択された状
況でネットワーク・インタフェイス110と通信する。
トワークを通して転送のために、ネットワーク・インタ
フェイス110と通信する。ネットワーク・インタフェ
イス110は、ネットワーク内の2つのノードに接続す
るのに必要なすべてのハードウェア及びソフトウェア・
インタフェイス、及び接続を示す。ネットワーク構造は
互いに非常に異なっており、ネットワーク連係の詳細は
本発明の一部分を形成するものではない、したがって、
ネットワーク・インタフェイス110の詳細は省略する
。また遠隔経路指定サービス108は、データ・マツパ
112と通信し、データ・マツパ112は、ネットワー
クを通して転送されるメツセージのフォーマット化を制
御する。遠隔経路指定応答手順114は、選択された状
況でネットワーク・インタフェイス110と通信する。
これらの状況では、応答手順114は遠隔ノードからネ
ットワークを通して戻される結果を受信し、アプリケー
ション100による後の検索のために、それらを待ち行
列116の中に置く。応答手順114は、戻された結果
のフォーマットを解釈し、さらに、アプリケーション1
00によって期待された形にそれらをリフオーマットす
るために、データ・マツパ112と通信する。
ットワークを通して戻される結果を受信し、アプリケー
ション100による後の検索のために、それらを待ち行
列116の中に置く。応答手順114は、戻された結果
のフォーマットを解釈し、さらに、アプリケーション1
00によって期待された形にそれらをリフオーマットす
るために、データ・マツパ112と通信する。
遠隔ノードで、遠隔経路指定アプリケーション118は
、ネットワーク・インタフェイス110からデータを受
は取る。このデータは、遠隔ノードにおいて呼び出そう
とするサービス手順を説明する。遠隔経路指定アプリケ
ーション手順118は、通信の流れから必要な情報を抽
出するために、遠隔ノードでデータ・マツパ120と通
信し、手順呼出し124でサービス・ディレクタ122
を呼び出す。遠隔ノードにおいて、遠隔経路指定アプリ
ケーション手順118は、アプリケーション・プログラ
ムとしてサービス・ディレクタ122を呼び出し、第1
図で説明したサービス手順を呼び出すために、サービス
・ディレクタ122を要求する。サービス・ディレクタ
122は、必要などの呼出し規定翻訳をも行ない、要求
されるサービス手順124を呼び出す。
、ネットワーク・インタフェイス110からデータを受
は取る。このデータは、遠隔ノードにおいて呼び出そう
とするサービス手順を説明する。遠隔経路指定アプリケ
ーション手順118は、通信の流れから必要な情報を抽
出するために、遠隔ノードでデータ・マツパ120と通
信し、手順呼出し124でサービス・ディレクタ122
を呼び出す。遠隔ノードにおいて、遠隔経路指定アプリ
ケーション手順118は、アプリケーション・プログラ
ムとしてサービス・ディレクタ122を呼び出し、第1
図で説明したサービス手順を呼び出すために、サービス
・ディレクタ122を要求する。サービス・ディレクタ
122は、必要などの呼出し規定翻訳をも行ない、要求
されるサービス手順124を呼び出す。
要求された手順124が終わると、何かあれば、結果を
サービス・ディレクタ122に戻し、サービス・ディレ
クタはその結果を手順戻し128によってアプリケ−シ
ロン手順118に戻す。アプリケーション手順118は
データ・マツパ120と通信し、ネットワークを通して
通信するために結果をフォーマットし、それらをネット
ワーク・インタフェイス110を通って元のノードに戻
す。
サービス・ディレクタ122に戻し、サービス・ディレ
クタはその結果を手順戻し128によってアプリケ−シ
ロン手順118に戻す。アプリケーション手順118は
データ・マツパ120と通信し、ネットワークを通して
通信するために結果をフォーマットし、それらをネット
ワーク・インタフェイス110を通って元のノードに戻
す。
使用されている呼出し方法に応じて、アプリケーシaン
手順118によって戻された結果は、待ち行列116内
に置くために、応答手順114に戻すことができる。後
者の場合、サービス手順1゜6は、手順130で結果を
サービス・ディレクタに戻し、次に、その結果をアプリ
ケーション1゜Oに戻すために手順復帰132を使用す
る。
手順118によって戻された結果は、待ち行列116内
に置くために、応答手順114に戻すことができる。後
者の場合、サービス手順1゜6は、手順130で結果を
サービス・ディレクタに戻し、次に、その結果をアプリ
ケーション1゜Oに戻すために手順復帰132を使用す
る。
第4図に関して説明されたシステムは、構内ノード及び
遠隔ノードの様々な遠隔経路指定手順の間の通信を行な
うために、いくつかの異なる技術を使用することができ
る。遠隔サービス126は、「同期」技術で呼び出すこ
とができ、呼出しアプリケーションは、結果が処理する
前に戻されるまで、待つことを意味する。遠隔サービス
はまた、「非同期」方式で呼び出すこともでき、これは
、アプリケーションがさらに処理を実行し続け、方では
遠隔ノードがサービス手順を呼び出すことを意味し、ま
た遠隔サービスは、結果が応答手順114によって待ち
行列に置かれた後で、待ち行列116から結果を取り出
す。
遠隔ノードの様々な遠隔経路指定手順の間の通信を行な
うために、いくつかの異なる技術を使用することができ
る。遠隔サービス126は、「同期」技術で呼び出すこ
とができ、呼出しアプリケーションは、結果が処理する
前に戻されるまで、待つことを意味する。遠隔サービス
はまた、「非同期」方式で呼び出すこともでき、これは
、アプリケーションがさらに処理を実行し続け、方では
遠隔ノードがサービス手順を呼び出すことを意味し、ま
た遠隔サービスは、結果が応答手順114によって待ち
行列に置かれた後で、待ち行列116から結果を取り出
す。
遠隔呼出しされるか、または、単一の接続がいくつかの
異なる遠隔呼出しをするために開始できる時間毎に、ア
プリケ−シロン手順110に新しいネットワーク接続を
開始させることも可能である。各遠隔呼出し用の新しい
接続を作ることは、一般に、接続をセットするためによ
り多くの諸経費を必要とするが、遊休時間部分であるネ
ットワーク上の専用通信リンクを有することは避けられ
る。
異なる遠隔呼出しをするために開始できる時間毎に、ア
プリケ−シロン手順110に新しいネットワーク接続を
開始させることも可能である。各遠隔呼出し用の新しい
接続を作ることは、一般に、接続をセットするためによ
り多くの諸経費を必要とするが、遊休時間部分であるネ
ットワーク上の専用通信リンクを有することは避けられ
る。
いくつかの遠隔手順呼出し用の単一通信リンクを開設す
る技術は、5TART/5TOPによる遠隔要求と呼ぶ
ことができる。
る技術は、5TART/5TOPによる遠隔要求と呼ぶ
ことができる。
上記のように、アプリケーション100は、サービス・
ディレクタ102を初期化しなければならない。サービ
ス・テーブル(第4図に別々に図示せず)は、遠隔ノー
ド上で呼び出されたものを含むアプリケ−シリン100
によって呼び出されることのできるすべてのサービス手
順の位置を識別する。遠隔サービスについては、遠隔ノ
ード及びそれに対するどの通信リンクも、遠隔サービス
126を呼び出すために、遠隔サービス・ディレクタ1
22に必要な情報も、識別されなければならない。遠隔
ノードと通信するために使われる通信プロトコル、並び
に遠隔手順にパスされるパラメータは、データ・マツパ
112に記憶され、これによって、遠隔ノードと通信す
るためにいかにデータをフォーマットし抽出するかを知
ることにある。
ディレクタ102を初期化しなければならない。サービ
ス・テーブル(第4図に別々に図示せず)は、遠隔ノー
ド上で呼び出されたものを含むアプリケ−シリン100
によって呼び出されることのできるすべてのサービス手
順の位置を識別する。遠隔サービスについては、遠隔ノ
ード及びそれに対するどの通信リンクも、遠隔サービス
126を呼び出すために、遠隔サービス・ディレクタ1
22に必要な情報も、識別されなければならない。遠隔
ノードと通信するために使われる通信プロトコル、並び
に遠隔手順にパスされるパラメータは、データ・マツパ
112に記憶され、これによって、遠隔ノードと通信す
るためにいかにデータをフォーマットし抽出するかを知
ることにある。
遠隔データ・マツパ120は、遠隔経路指定アプリケー
ション手順118が他のノードからサービス手順126
にアクセスできるように、初期化される。
ション手順118が他のノードからサービス手順126
にアクセスできるように、初期化される。
第5図は、5TART/5TOPなしの同期遠隔要求を
示す。第5図では、アプリケ−シロン手順100は、構
内サービス・ディレクタを呼び出しく150)、第2図
で説明したように、そこにパラメータを渡す。サービス
・ディレクタ102はそのサービス・テーブルを探し、
要求されたサービスのためにエントリを置く。遠隔サー
ビスとして定義されるサービスのために、この事実はサ
ービス・テーブル内で識別される(152)。それから
、サービス・ディレクタ102は遠隔経路指定サービス
を呼び出す(154)。
示す。第5図では、アプリケ−シロン手順100は、構
内サービス・ディレクタを呼び出しく150)、第2図
で説明したように、そこにパラメータを渡す。サービス
・ディレクタ102はそのサービス・テーブルを探し、
要求されたサービスのためにエントリを置く。遠隔サー
ビスとして定義されるサービスのために、この事実はサ
ービス・テーブル内で識別される(152)。それから
、サービス・ディレクタ102は遠隔経路指定サービス
を呼び出す(154)。
上記のように、データ・マツパ・ルーチン112は、遠
隔サービスが定義された時間に、サービス・テーブル内
の各遠隔サービスに関連していた。
隔サービスが定義された時間に、サービス・テーブル内
の各遠隔サービスに関連していた。
データ・マツパ112は、ネットワークによって使用さ
れたプロトコルに専用の通信ブロックを作成することに
よって、ネットワークを通して送信するために、サービ
ス識別子及びパラメータを準備する(156)。遠隔ノ
ードにおいて実際に使用されるその情報のみが転送され
るので、サービス名ブロック46及び共通ブロック5o
内のいくつかのエントリを転送する必要はない。データ
・マツパ112はまた、どの遠隔データ・マツパ120
が転送されたパラメータを正確に抽出するために使用さ
れるべきかを識別する。
れたプロトコルに専用の通信ブロックを作成することに
よって、ネットワークを通して送信するために、サービ
ス識別子及びパラメータを準備する(156)。遠隔ノ
ードにおいて実際に使用されるその情報のみが転送され
るので、サービス名ブロック46及び共通ブロック5o
内のいくつかのエントリを転送する必要はない。データ
・マツパ112はまた、どの遠隔データ・マツパ120
が転送されたパラメータを正確に抽出するために使用さ
れるべきかを識別する。
遠隔経路指定アプリケーション手順に対して、ネットワ
ーク通信リンクを開設するための接続が行なわれる(1
58)。呼び出そうとするサービス手順、及びすべての
必要なパラメータを含むデータは、ネットワークを通し
て送られ(160)、遠隔経路指定アプリケーン8フ手
順により受信される(162)。これは同期呼出しであ
るため、構内ノードでの遠隔経路指定サービス106は
、それが回答を受信するまで待つ(164)。
ーク通信リンクを開設するための接続が行なわれる(1
58)。呼び出そうとするサービス手順、及びすべての
必要なパラメータを含むデータは、ネットワークを通し
て送られ(160)、遠隔経路指定アプリケーン8フ手
順により受信される(162)。これは同期呼出しであ
るため、構内ノードでの遠隔経路指定サービス106は
、それが回答を受信するまで待つ(164)。
遠隔ノードでは、遠隔経路指定アプリケーションは、デ
ータを抽出するデータ・マツパ120と通信する(16
6)。サービス呼出し識別子及びデータ・マツパ120
により抽出されたパラメータを用いて、遠隔経路指定ア
プリケーション118は、他の任意のアプリケーション
を呼び出すように、サービス・ディレクタ122を呼び
出す(168)。サービス・ディレクタ122は適切な
サービス手順を呼び出しく170)、適切なサービス手
順は通常の方式で実行される(172)。
ータを抽出するデータ・マツパ120と通信する(16
6)。サービス呼出し識別子及びデータ・マツパ120
により抽出されたパラメータを用いて、遠隔経路指定ア
プリケーション118は、他の任意のアプリケーション
を呼び出すように、サービス・ディレクタ122を呼び
出す(168)。サービス・ディレクタ122は適切な
サービス手順を呼び出しく170)、適切なサービス手
順は通常の方式で実行される(172)。
完了時、選択されたサービス手順126は、その結果を
サービス・ディレクタに戻しく174)、サービス・デ
ィレクタ174は、その結果を遠隔経路指定アプリケー
ションに戻す(178)。
サービス・ディレクタに戻しく174)、サービス・デ
ィレクタ174は、その結果を遠隔経路指定アプリケー
ションに戻す(178)。
それから、データ・マツパ120はネットワークを通し
て通信するために結果を準備しく178)、遠隔経路指
定アプリケージジン118はその結果を遠隔経路指定サ
ービスに戻す(180)。
て通信するために結果を準備しく178)、遠隔経路指
定アプリケージジン118はその結果を遠隔経路指定サ
ービスに戻す(180)。
いったん遠隔経路指定サービス10f3が結果を受信す
ると(182)、遠隔経路指定アプリケ−シロン118
は、終了する(184)。データ・マツパ112は、そ
の結果を、サービス・ディレクタ102によって理解さ
れたフォーマットの中に抽出しく186)、それらをサ
ービス・ディレクタに戻す(188)。それからサービ
ス・ディレクタ102は、これらの結果をアプリケージ
ジンに戻しく190)、アプリケーションは処理を続け
る。
ると(182)、遠隔経路指定アプリケ−シロン118
は、終了する(184)。データ・マツパ112は、そ
の結果を、サービス・ディレクタ102によって理解さ
れたフォーマットの中に抽出しく186)、それらをサ
ービス・ディレクタに戻す(188)。それからサービ
ス・ディレクタ102は、これらの結果をアプリケージ
ジンに戻しく190)、アプリケーションは処理を続け
る。
第6図(第6A図及び第6B図)に、5TART/5T
OPなしで非同期遠隔要求を行なうための好ましい方法
を示す。アプリケージジン・プログラムはサービス・デ
ィレクタを呼び出しく200)、サービス・ディレクタ
は、サービス・テーブル内の遠隔サービスとして要求さ
れたサービス手順を識別する(202)。それから、サ
ービス・ディレクタは遠隔経路指定サービスを呼び出し
く204)、遠隔経路指定サービスは、送信に対するサ
ービス手順識別子及びパラメータを準備するために、デ
ータ・マツパと通信する(206)。
OPなしで非同期遠隔要求を行なうための好ましい方法
を示す。アプリケージジン・プログラムはサービス・デ
ィレクタを呼び出しく200)、サービス・ディレクタ
は、サービス・テーブル内の遠隔サービスとして要求さ
れたサービス手順を識別する(202)。それから、サ
ービス・ディレクタは遠隔経路指定サービスを呼び出し
く204)、遠隔経路指定サービスは、送信に対するサ
ービス手順識別子及びパラメータを準備するために、デ
ータ・マツパと通信する(206)。
次に通信リンクを設定するために、遠隔ノードに対して
接続開始され(208)、それから遠隔サービス手順及
びそのパラメータを説明するデータは遠隔ノードに送ら
れる(210)。遠隔ノードでの遠隔経路指定アプリケ
−シロンがデータを受信すると(212) 、構内遠隔
経路指定サービスはサービス・ディレクタに戻る手順を
実行しく214)、サービス・ディレクタは呼出しアプ
リケーションへの復帰を実行する(216)。それから
、アプリケ−シランは処理を続け(218) 、後で待
ち行列116の戻された結果をチエツクすることができ
る。
接続開始され(208)、それから遠隔サービス手順及
びそのパラメータを説明するデータは遠隔ノードに送ら
れる(210)。遠隔ノードでの遠隔経路指定アプリケ
−シロンがデータを受信すると(212) 、構内遠隔
経路指定サービスはサービス・ディレクタに戻る手順を
実行しく214)、サービス・ディレクタは呼出しアプ
リケーションへの復帰を実行する(216)。それから
、アプリケ−シランは処理を続け(218) 、後で待
ち行列116の戻された結果をチエツクすることができ
る。
遠隔経路指定アプリケ−シロン118がサービス手順及
びパラメータ・データを受信すると(212)、構内ノ
ードでデータ・マツパ112によって識別された遠隔デ
ータ・マツパは、手順識別子及びパラメータを抽出する
(220)。次に、他のアプリケーン3ン・プログラム
として作用する遠隔経路指定アプリケーションは、サー
ビス・ディレクタを呼び出しく222)、サービス・デ
ィレクタは適切なサービス手順を呼び出す(224)。
びパラメータ・データを受信すると(212)、構内ノ
ードでデータ・マツパ112によって識別された遠隔デ
ータ・マツパは、手順識別子及びパラメータを抽出する
(220)。次に、他のアプリケーン3ン・プログラム
として作用する遠隔経路指定アプリケーションは、サー
ビス・ディレクタを呼び出しく222)、サービス・デ
ィレクタは適切なサービス手順を呼び出す(224)。
サービス手順が実行され(226)、さらにどんな結果
もサービス・ディレクタに戻される(228)。サービ
ス・ディレクタは、その結果を遠隔経路指定アプリケー
ションに戻しく230)、遠隔経路指定アプリケージジ
ンは、マツパとの通信によってネットワークを通して送
信するために、結果をフォーマットする(232)。
もサービス・ディレクタに戻される(228)。サービ
ス・ディレクタは、その結果を遠隔経路指定アプリケー
ションに戻しく230)、遠隔経路指定アプリケージジ
ンは、マツパとの通信によってネットワークを通して送
信するために、結果をフォーマットする(232)。
これは非同期要求であったため、結果は、サービス手順
の実行を初めに要求した構内ノードでは、遠隔経路指定
サービス106に戻されない。その代わり、データが遠
隔ノードに送られるとぐステップ210)、)ランザク
ジョンは、非同期として識別され、結果が戻されなけれ
ばならない遠隔経路指定応答手順114が識別される。
の実行を初めに要求した構内ノードでは、遠隔経路指定
サービス106に戻されない。その代わり、データが遠
隔ノードに送られるとぐステップ210)、)ランザク
ジョンは、非同期として識別され、結果が戻されなけれ
ばならない遠隔経路指定応答手順114が識別される。
したがって、遠隔経路指定アプリケーション118は、
識別された遠隔経路指定応答手順234への接続を開始
する。−度接続が設定されると、その結果は応答手順2
3Gに送られる。いったん応答手順114がその結果を
受信すると(238)、遠隔経路指定アプリケージ3ン
118は終了する(240)。それから、構内ノードに
おけるデータ・マツパはその結果を抽出しく242)、
それから、応答手順はそれらを待ち行列に置く、(24
4)。いくらか時間が経ってから、アプリケーション・
プログラムは待ち行列から結果を検索しく246)、処
理を続ける。アプリケージ縫ン・プログラム100が待
ち行列の検索を試みる時(246) 、その結果が待ち
行列116にまだ置かれていない場合、アプリケージタ
ン・プログラムは、結果が有効になるまで待つか、ある
いはさらに処理を続けて、後で再試行することができる
。
識別された遠隔経路指定応答手順234への接続を開始
する。−度接続が設定されると、その結果は応答手順2
3Gに送られる。いったん応答手順114がその結果を
受信すると(238)、遠隔経路指定アプリケージ3ン
118は終了する(240)。それから、構内ノードに
おけるデータ・マツパはその結果を抽出しく242)、
それから、応答手順はそれらを待ち行列に置く、(24
4)。いくらか時間が経ってから、アプリケーション・
プログラムは待ち行列から結果を検索しく246)、処
理を続ける。アプリケージ縫ン・プログラム100が待
ち行列の検索を試みる時(246) 、その結果が待ち
行列116にまだ置かれていない場合、アプリケージタ
ン・プログラムは、結果が有効になるまで待つか、ある
いはさらに処理を続けて、後で再試行することができる
。
上記のように、5TART/5TOP)ランザクシロン
を使用して、構内ノード及び遠隔ノードの間に通信リン
クを設定するために必要な諸経費を最小にすることがで
きる。第5図と第6図に関して述べた方法では、遠隔サ
ービス手順126が呼び出される度に、新しいネットワ
ーク通信リンクを設定しなければならない。アプリケー
ジタン・プログラム100が、1つまたは関連したサー
ビス手順126の多重連続呼出しがなされることを知っ
た場合、ノードの間の1つの通信リンクを設定し、さら
に、いくつかのトランザクションのためにそのリンクを
利用することは、より有効である。
を使用して、構内ノード及び遠隔ノードの間に通信リン
クを設定するために必要な諸経費を最小にすることがで
きる。第5図と第6図に関して述べた方法では、遠隔サ
ービス手順126が呼び出される度に、新しいネットワ
ーク通信リンクを設定しなければならない。アプリケー
ジタン・プログラム100が、1つまたは関連したサー
ビス手順126の多重連続呼出しがなされることを知っ
た場合、ノードの間の1つの通信リンクを設定し、さら
に、いくつかのトランザクションのためにそのリンクを
利用することは、より有効である。
第7図と第8図は、一連の5TART/5TOPトラン
ザクシdンを開始し、終了するための好ましい方法を示
す。アプリケージタン・プログラム100は、一連の5
TART/5TOPトランザクシヨンを開始し、上記の
方法と非常に似た方法で、トランザクションを実行し、
最後にそのシリーズを終了する。
ザクシdンを開始し、終了するための好ましい方法を示
す。アプリケージタン・プログラム100は、一連の5
TART/5TOPトランザクシヨンを開始し、上記の
方法と非常に似た方法で、トランザクションを実行し、
最後にそのシリーズを終了する。
本明細書で述べるシステムは、アプリケーション・プロ
グラム100に対して透明であるため、特定の要求され
たサービス手順が構内で実行されたのか、または遠隔ノ
ードで実行されたのかが分からないことが多い。したが
って、アプリケージタン・プログラム100は、あたか
もそれらが遠隔サービス手順であるように、一連のトラ
ンザクションを開始、終了することができる。サービス
・テーブルを探すことによって、サービス・ディレクタ
が、要求されたサービスが実際に構内で利用可能である
と判定する場合、一連のトランザクションのための開始
命令及び終了命令は単に無視される。
グラム100に対して透明であるため、特定の要求され
たサービス手順が構内で実行されたのか、または遠隔ノ
ードで実行されたのかが分からないことが多い。したが
って、アプリケージタン・プログラム100は、あたか
もそれらが遠隔サービス手順であるように、一連のトラ
ンザクションを開始、終了することができる。サービス
・テーブルを探すことによって、サービス・ディレクタ
が、要求されたサービスが実際に構内で利用可能である
と判定する場合、一連のトランザクションのための開始
命令及び終了命令は単に無視される。
したがって、アプリケーション・プログラム100は、
すべての例で、一連の関連した要求を単に開始、終了し
、特定の要求が構内かまたは遠隔かということは、反対
の影響を持たない。実際、特定の要求は、ある時には、
構内で利用可能であり、別の時には、遠隔で利用可能で
あり、アプリケージタン・プログラムに対しては何の違
いも現われない。非同期要求が行なわれる場合、サービ
ス・ディレクタは、アプリケージタン・プログラム10
0の代わりに、待ち行列116に直接結果を単に戻すこ
とができる。
すべての例で、一連の関連した要求を単に開始、終了し
、特定の要求が構内かまたは遠隔かということは、反対
の影響を持たない。実際、特定の要求は、ある時には、
構内で利用可能であり、別の時には、遠隔で利用可能で
あり、アプリケージタン・プログラムに対しては何の違
いも現われない。非同期要求が行なわれる場合、サービ
ス・ディレクタは、アプリケージタン・プログラム10
0の代わりに、待ち行列116に直接結果を単に戻すこ
とができる。
第7図に、一連の関連したトランザクションを開始する
ための好ましい方法を示す。アプリケーション・プログ
ラム100はサービス・ディレクタ102を呼び出して
5TART/5TOPシリーズが開始されることを要求
する(280)。このシリーズの間に呼び出されるサー
ビス手順126は、この時識別される。サービス・ディ
レクタ102は、要求されたサービス手順を遠隔サービ
スとして識別しく262)、さらに、手順呼び出しで遠
隔経路指定サービス106を呼び出す(264)。上記
のように、要求されたサービス手順が構内ノードで利用
可能な場合、第7図のステップの残りは単に無視される
。
ための好ましい方法を示す。アプリケーション・プログ
ラム100はサービス・ディレクタ102を呼び出して
5TART/5TOPシリーズが開始されることを要求
する(280)。このシリーズの間に呼び出されるサー
ビス手順126は、この時識別される。サービス・ディ
レクタ102は、要求されたサービス手順を遠隔サービ
スとして識別しく262)、さらに、手順呼び出しで遠
隔経路指定サービス106を呼び出す(264)。上記
のように、要求されたサービス手順が構内ノードで利用
可能な場合、第7図のステップの残りは単に無視される
。
遠隔経路指定サービス106は、遠隔経路指定アプリケ
ーション手順への接続を開始する(266)。それから
、遠隔経路指定アプリケーション手順118はデータを
受信するために待ち(268)、また、構内ノードの遠
隔経路指定サービス106はサービス・ディレクタに戻
る(270)。
ーション手順への接続を開始する(266)。それから
、遠隔経路指定アプリケーション手順118はデータを
受信するために待ち(268)、また、構内ノードの遠
隔経路指定サービス106はサービス・ディレクタに戻
る(270)。
次に、サービス・ディレクタ102はアプリケージタン
・プログラムに戻り(272)、プロセスは完了する。
・プログラムに戻り(272)、プロセスは完了する。
この時、通信リンクはネソトヮークを通して設定され、
そして、遠隔ノードに要求を送るために再設定される必
要はない。
そして、遠隔ノードに要求を送るために再設定される必
要はない。
第8図では、5TART/5TOPシリーズが完了する
と、アプリケーション・プログラム100は、サービス
・ディレクタ102を呼び出して、通信リンクを終了す
る(280)。サービス・ディレクタ102は、サービ
ス手順を遠隔サービスとして識別しく282)、遠隔経
路指定サービスを呼び出す(284)。5TART/5
TOPリンクを開始する場合のように、識別されたサー
ビス手順が構内で利用可能である場合、リンクを終了す
る命令は単に無視される。
と、アプリケーション・プログラム100は、サービス
・ディレクタ102を呼び出して、通信リンクを終了す
る(280)。サービス・ディレクタ102は、サービ
ス手順を遠隔サービスとして識別しく282)、遠隔経
路指定サービスを呼び出す(284)。5TART/5
TOPリンクを開始する場合のように、識別されたサー
ビス手順が構内で利用可能である場合、リンクを終了す
る命令は単に無視される。
それから、遠隔経路指定サービスエ06は、5TART
/5TOPリンクが終了しつつあることを、遠隔経路指
定アプリケーシ一ン118に報知し、そして遠隔ノード
へのネットワーク接続を終了する(286)。次いで、
遠隔経路指定サービス108はサービス・ディレクタに
戻り(288)、サービス・ディレクタはアプリケーシ
ョンに戻る(290)。
/5TOPリンクが終了しつつあることを、遠隔経路指
定アプリケーシ一ン118に報知し、そして遠隔ノード
へのネットワーク接続を終了する(286)。次いで、
遠隔経路指定サービス108はサービス・ディレクタに
戻り(288)、サービス・ディレクタはアプリケーシ
ョンに戻る(290)。
5TART/5TOPシリーズが要求された後、遠隔サ
ービス手順106を呼び出すために使われた方法は、5
TART/5TOPなしで使われた方法と事実上同一で
ある。接続を開始したり終了したりする代わりに、利用
可能な接続を使用する。
ービス手順106を呼び出すために使われた方法は、5
TART/5TOPなしで使われた方法と事実上同一で
ある。接続を開始したり終了したりする代わりに、利用
可能な接続を使用する。
、同期要求について、第5図に示すステップは、ステッ
プ158が除去されていることを除いては同じであり、
ステップ184は、遠隔経路指定アプリケーシ一ン11
8を終了しないが、その代わりに、それが次の要求を待
たせる原因となる。残りのステップは同じである。
プ158が除去されていることを除いては同じであり、
ステップ184は、遠隔経路指定アプリケーシ一ン11
8を終了しないが、その代わりに、それが次の要求を待
たせる原因となる。残りのステップは同じである。
5TART/5TOPによる同期要求のために、第8図
のフローチャートは、僅かな例外のある専用ステップを
示す。接続ステップ208及び234は除去され、その
代わり、終了ステップ240は、遠隔経路指定アプリケ
ージジン118のための次の要求ステップ待ちとなる。
のフローチャートは、僅かな例外のある専用ステップを
示す。接続ステップ208及び234は除去され、その
代わり、終了ステップ240は、遠隔経路指定アプリケ
ージジン118のための次の要求ステップ待ちとなる。
したがって、フラグがどんな種類のトランザクシロンが
要求されているかを示すために必要であるという差はあ
るが、5TART/5TOPで、または5TART/5
TOPなしで要求するために、同じシステムを使うこと
ができる。5TART/5TOPが要求される時、特別
の開始及び終了手順も使用しなければならない。
要求されているかを示すために必要であるという差はあ
るが、5TART/5TOPで、または5TART/5
TOPなしで要求するために、同じシステムを使うこと
ができる。5TART/5TOPが要求される時、特別
の開始及び終了手順も使用しなければならない。
上記のシステム及び方法によって、ライブラリ手順がネ
ットワークを通して遠隔ノードで呼び出されることがで
きる。ライブラリ手順の位置は、アプリケーション・プ
ログラムに対して知られる必要はなく、実際には時々変
えることができる。
ットワークを通して遠隔ノードで呼び出されることがで
きる。ライブラリ手順の位置は、アプリケーション・プ
ログラムに対して知られる必要はなく、実際には時々変
えることができる。
ライブラリ手1頑を書き込むために使われる言語は、そ
れがアプリケーション・プログラムの言語と合致する必
要はないので、変えることもできる。
れがアプリケーション・プログラムの言語と合致する必
要はないので、変えることもできる。
したがって、ライブラリ・ルーチンの単一セットは、ネ
ットワークに接続されたすべての機械を支援するために
供給することができる。アプリケーション・プログラム
は、言語とは独立したインタフェイスを通って、ライブ
ラリ手順にアクセスするために書くことができ、それら
が必要とするライブラリ手順が構内ノードあるいはほか
の場所に置かれても、それは問題にはならない。これに
ょって、特殊化されたハードウェアを用いるベクトル動
作などのある機械では、より効率的に動作するライブラ
リ手順がより効率的な機械で実行できるようになる。
ットワークに接続されたすべての機械を支援するために
供給することができる。アプリケーション・プログラム
は、言語とは独立したインタフェイスを通って、ライブ
ラリ手順にアクセスするために書くことができ、それら
が必要とするライブラリ手順が構内ノードあるいはほか
の場所に置かれても、それは問題にはならない。これに
ょって、特殊化されたハードウェアを用いるベクトル動
作などのある機械では、より効率的に動作するライブラ
リ手順がより効率的な機械で実行できるようになる。
E1発明の詳細
な説明したように本発明によれば、アプリケーション・
プログラムがネットワークによって構内機械に接続され
た遠隔機械上に置くことのできるライブラリ手順に対し
て、呼出しができるシステム及び方法が提供される。
プログラムがネットワークによって構内機械に接続され
た遠隔機械上に置くことのできるライブラリ手順に対し
て、呼出しができるシステム及び方法が提供される。
本発明を、特に好ましい実施例を用いて詳しく述べたが
、一方、形状及び詳細の様々な変更を、本発明の意図及
び範囲から逸脱することなく行なうことができることを
、当業者は理解されたい。
、一方、形状及び詳細の様々な変更を、本発明の意図及
び範囲から逸脱することなく行なうことができることを
、当業者は理解されたい。
第1図は、構内機械でライブラリ手順を呼び出すための
システムのブロック図である。 第2図は、ライブラリ・ルーチンを呼び出すためのフォ
ーマットを示す図である。 第3図は、構内機械でライブラリ手順を呼び出すために
取られるステップを示す流れ図である。 第4図は、遠隔機械でのライブラリ手順呼出し用システ
ムのブロック図である。 第5図は、遠隔機械でライブラリ手順に同期呼出しをす
るために取られるステップを示す流れ図である。 第6A部及び第6B図は、遠隔機械でライブラリ手順に
同期呼出しをするために取られるステップを示す点れ図
である。 第7図は、遠隔機械でライブラリ手順に対する一連の呼
出し用通信リンクを開始するために取られるステップを
示す流れ図である。 第8図は、遠隔機械でライブラリ手順に対する一連の呼
出し用通信リンクを終了するために取られるステップを
示す流れ図である。 サービス手順 Wl、6A図
システムのブロック図である。 第2図は、ライブラリ・ルーチンを呼び出すためのフォ
ーマットを示す図である。 第3図は、構内機械でライブラリ手順を呼び出すために
取られるステップを示す流れ図である。 第4図は、遠隔機械でのライブラリ手順呼出し用システ
ムのブロック図である。 第5図は、遠隔機械でライブラリ手順に同期呼出しをす
るために取られるステップを示す流れ図である。 第6A部及び第6B図は、遠隔機械でライブラリ手順に
同期呼出しをするために取られるステップを示す点れ図
である。 第7図は、遠隔機械でライブラリ手順に対する一連の呼
出し用通信リンクを開始するために取られるステップを
示す流れ図である。 第8図は、遠隔機械でライブラリ手順に対する一連の呼
出し用通信リンクを終了するために取られるステップを
示す流れ図である。 サービス手順 Wl、6A図
Claims (12)
- (1)所望の手順が遠隔ノード上にあるか否かを判定し
、所望の手順識別子を遠隔ノードに報告し、さらにそこ
から結果を受信するために、アプリケーション・プログ
ラム手順呼出しに応答して呼び出すことのできる、構内
ノードでの経路指定手順と、所望の手順識別子を遠隔ノ
ードから受信し、さらに結果をそこに送るために、前記
構内ノード経路指定手順と通信するための、遠隔ノード
での経路指定手順と、 前記所望の手順に対応する手順が前記遠隔ノード経路指
定手順により呼び出され、結果をそこに戻す、前記遠隔
ノード経路指定手順によって手順呼出しに応答して呼び
出すことができる、遠隔ノードでの複数の手順 を含む、構内ノードから遠隔ネットワーク・ノード上の
手順を呼び出すための手順呼出しシステム。 - (2)所望の手順が遠隔ノード上にある場合、第1イン
タフェイスが前記構内ノード経路指定手順を呼び出すと
いう、標準フォーマットでアプリケーシヨン・プログラ
ムによって呼び出すことができる、前記第1インタフェ
イスと、 第2インタフェイスが、前記遠隔ノード経路指定手順か
ら受信された所望の手順識別子に対応する前記複数の手
順の1つを呼び出すという、基準フォーマット内の前記
遠隔ノード経路指定手順によって呼び出すことができる
、第2インタフェイス をさらに含む、請求項1のシステム。 - (3)所望の手順が構内ノード、または遠隔ノード上で
利用できるか否かを示すために、前記第1インタフェイ
スに接続された第1テーブルと、所望の手順を前記第2
インタフェイスから呼び出すために、位置及び手順呼出
し要求を示すための前記第2インタフェイスに接続され
た第2テーブル をさらに含む、請求項2のシステム。 - (4)戻された結果が前記待ち行列の中に置かれている
という、アプリケーション・プログラムに対する後での
利用可能性のために、前記遠隔ノード経路指定手順から
戻された結果を保待するための待ち行列をさらに含む、
請求項1のシステム。 - (5)前記遠隔ノード経路指定手順により戻された結果
が、前記構内ノード経路指定手順によって、アプリケー
ション・プログラムに戻される、請求項1のシステム。 - (6)所望の手順識別子で、アプリケーション・プログ
ラムから構内ノード上の経路指定手順を呼び出すステッ
プと、 所望の手順識別子で、構内ノード経路指定手順から遠隔
ノード上の経路指定手順を呼び出すステップと、 所望の手順識別子に対応する遠隔ノード上の手順を呼び
出すステップ を含む、アプリケーション・プログラムから手順を呼び
出すための手順呼出し方法。 - (7)結果を所望の手順から戻すステップと、結果を構
内ノード経路指定手順に戻すステップと、 結果をアプリケーション・プログラムに戻すステップ をさらに含む、請求項6の方法。 - (8)結果をアプリケーション・プログラムに戻す前記
ステップが、 結果をアプリケーション・プログラムによってアクセス
できる待ち行列内に置くステップと、待ち行列からアプ
リケーション・プログラム内への結果を読み取るステッ
プ を含む、請求項7の方法。 - (9)所望の手順が遠隔ノードで呼び出される度に、新
しいネットワーク通信リンクが設定される、請求項6の
方法。 - (10)手順に対する一連の所望の呼出しを遠隔ノード
上に作る前に、構内ノードと遠隔ノードの間にネットワ
ーク通信リンクを設定するステップと、一連の呼出し中
に、そのような通信リンクを維持するステップ をさらに含む、請求項6の方法。 - (11)前記第1呼出しステップが、 所望の手順識別子で、アプリケーション・プログラムか
ら構内ノード上の第1インタフェイスを呼び出すステッ
プと、 所望の手順が構内ノードまたは遠隔ノードで利用可能で
あるか否かを判定するステップと、所望の手順が遠隔ノ
ードで利用可能である場合、所望の手順識別子で構内ノ
ード経路指定手順を呼び出すステップ を含む、請求項6の方法。 - (12)遠隔ノード上の経路指定手順を呼び出す前記手
段が、 所望の手順識別子で遠隔ノード経路指定手順から、遠隔
ノード上の第2のインタフェイスを呼び出すステップと
、 所望の手順に対応する手順を決定するステップを含む、
請求項11の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39812689A | 1989-08-24 | 1989-08-24 | |
US398126 | 1989-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0390953A true JPH0390953A (ja) | 1991-04-16 |
JP2677343B2 JP2677343B2 (ja) | 1997-11-17 |
Family
ID=23574087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2220136A Expired - Lifetime JP2677343B2 (ja) | 1989-08-24 | 1990-08-23 | 手順呼出しシステム及び方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0414624B1 (ja) |
JP (1) | JP2677343B2 (ja) |
DE (1) | DE69029441T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06259380A (ja) * | 1993-03-08 | 1994-09-16 | Nec Corp | 遠隔手続き呼出し装置 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0587880A1 (en) * | 1992-04-07 | 1994-03-23 | Digital Equipment Corporation | Entity management system with remote call feature |
JP3370704B2 (ja) * | 1992-10-12 | 2003-01-27 | 株式会社日立製作所 | 通信制御方法 |
US5452456A (en) * | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
US6813769B1 (en) | 1997-10-28 | 2004-11-02 | Microsoft Corporation | Server application components with control over state duration |
CA2115464C (en) * | 1994-02-11 | 1998-12-15 | William G. O'farrell | Concurrent processing in object oriented parallel and near parallel systems |
GB9407971D0 (en) * | 1994-04-21 | 1994-06-15 | British Telecomm | Messaging system |
GB2304944A (en) * | 1995-09-12 | 1997-03-26 | Ibm | Support for application programs in a distributed environment |
US5758186A (en) * | 1995-10-06 | 1998-05-26 | Sun Microsystems, Inc. | Method and apparatus for generically handling diverse protocol method calls in a client/server computer system |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US6437803B1 (en) | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
AU747018B2 (en) * | 1996-01-16 | 2002-05-09 | British Telecommunications Public Limited Company | Distributed processing |
GB9600823D0 (en) * | 1996-01-16 | 1996-03-20 | British Telecomm | Distributed processing |
AU8631298A (en) * | 1997-07-11 | 1999-02-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Remote procedure call translation |
EP0892345A3 (en) * | 1997-07-15 | 1999-05-06 | International Business Machines Corporation | Method of propagating a command status code from a remote unit to a host unit |
EP0902366A3 (en) * | 1997-07-15 | 1999-05-06 | International Business Machines Corporation | System of propagating a command status code from a remote unit to a host unit |
US6631425B1 (en) | 1997-10-28 | 2003-10-07 | Microsoft Corporation | Just-in-time activation and as-soon-as-possible deactivation or server application components |
US6134594A (en) | 1997-10-28 | 2000-10-17 | Microsoft Corporation | Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects |
US5958004A (en) | 1997-10-28 | 1999-09-28 | Microsoft Corporation | Disabling and enabling transaction committal in transactional application components |
US6526416B1 (en) | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
JP2002523817A (ja) * | 1998-08-14 | 2002-07-30 | サイトリックス システムズ,インコーポレイテッド | メッセージストリームからアルゴリズム情報を抽出する装置および方法 |
US6442620B1 (en) | 1998-08-17 | 2002-08-27 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators |
US6425017B1 (en) | 1998-08-17 | 2002-07-23 | Microsoft Corporation | Queued method invocations on distributed component applications |
US6928469B1 (en) | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US6748455B1 (en) | 1999-02-23 | 2004-06-08 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events with filtering |
US6829770B1 (en) | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
US6920636B1 (en) | 1999-12-15 | 2005-07-19 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations |
US6785713B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6785726B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for delivering local and remote server events in a similar fashion |
US6789112B1 (en) | 2000-05-08 | 2004-09-07 | Citrix Systems, Inc. | Method and apparatus for administering a server having a subsystem in communication with an event channel |
US8135843B2 (en) | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4862351A (en) * | 1983-09-01 | 1989-08-29 | Unisys Corporation | Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same |
FR2570525B1 (fr) * | 1984-09-20 | 1986-12-12 | Inst Nal Rech Informatiq | Procede et dispositif electronique pour l'execution repartie d'une activite entre plusieurs sites differents |
-
1990
- 1990-07-05 EP EP90480100A patent/EP0414624B1/en not_active Expired - Lifetime
- 1990-07-05 DE DE69029441T patent/DE69029441T2/de not_active Expired - Lifetime
- 1990-08-23 JP JP2220136A patent/JP2677343B2/ja not_active Expired - Lifetime
Non-Patent Citations (2)
Title |
---|
ACM TRANSACTIONS ON COMPUTER SYSTEMS=1984 * |
COMMUNICATIONS OF THE ACM=1987 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06259380A (ja) * | 1993-03-08 | 1994-09-16 | Nec Corp | 遠隔手続き呼出し装置 |
Also Published As
Publication number | Publication date |
---|---|
DE69029441D1 (de) | 1997-01-30 |
DE69029441T2 (de) | 1997-06-12 |
EP0414624B1 (en) | 1996-12-18 |
EP0414624A3 (en) | 1992-05-13 |
JP2677343B2 (ja) | 1997-11-17 |
EP0414624A2 (en) | 1991-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0390953A (ja) | 手順呼出しシステム及び方法 | |
US5218699A (en) | Remote procedure calls in heterogeneous systems | |
US4274139A (en) | Digital telecommunication network having improved data processing systems | |
US4891785A (en) | Method for transferring data files between computers in a network response to generalized application program instructions | |
US6654741B1 (en) | URL mapping methods and systems | |
EP0613274B1 (en) | Socket structure for concurrent multiple protocol access | |
US5060140A (en) | Universal programmable data communication connection system | |
US6253257B1 (en) | Software Interface for dynamic API mapping | |
JP3853592B2 (ja) | 分散ウェブアプリケーションサーバ | |
US5133053A (en) | Interprocess communication queue location transparency | |
US5377350A (en) | System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages | |
US5659701A (en) | Apparatus and method for distributed program stack | |
CA2049121C (en) | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment | |
US6081826A (en) | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application | |
US6845505B1 (en) | Web request broker controlling multiple processes | |
EP1300757A1 (en) | Shareable installation hierarchies | |
JPS63174135A (ja) | 分散型メツセージ・ベース・オペレーテイング・システムにおけるノードの自己構成法 | |
JPH09218860A (ja) | クライアント/サーバシステムにおける多様なプロトコルに従った遠隔手続き呼出しをハンドリングする方法 | |
US20030055862A1 (en) | Methods, systems, and articles of manufacture for managing systems using operation objects | |
JPH07281974A (ja) | ネットワーク内のコンピュータ間でデータを交換するための通信システム | |
US6151709A (en) | Processes and apparatuses for uploading instructions to a computer | |
JPH10133895A (ja) | 多重osネットワーク動作方法 | |
US5657447A (en) | Platform-transparent registration and build of stored procedures and user-defined functions | |
EP1246059B1 (en) | Dynamic interface aggregation on demand | |
JPH07191888A (ja) | データベース・マネージャにアクセスするデータベース・アクセス要求の処理方法及びシステム |