JP3612652B2 - ローカル・コンピュータ上で実行されるローカル・タスクによってリモート・コンピュータ上のリモート・タスクを実行する方法 - Google Patents
ローカル・コンピュータ上で実行されるローカル・タスクによってリモート・コンピュータ上のリモート・タスクを実行する方法 Download PDFInfo
- Publication number
- JP3612652B2 JP3612652B2 JP50104794A JP50104794A JP3612652B2 JP 3612652 B2 JP3612652 B2 JP 3612652B2 JP 50104794 A JP50104794 A JP 50104794A JP 50104794 A JP50104794 A JP 50104794A JP 3612652 B2 JP3612652 B2 JP 3612652B2
- Authority
- JP
- Japan
- Prior art keywords
- remote
- local
- computer
- task
- conversation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 claims description 94
- 238000012545 processing Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 100
- 239000003795 chemical substances by application Substances 0.000 description 62
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000004020 conductor Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- SBUYBNIDQXQZSZ-UHFFFAOYSA-N p-aminophenylphosphocholine Chemical compound C[N+](C)(C)CCOP([O-])(=O)OC1=CC=C(N)C=C1 SBUYBNIDQXQZSZ-UHFFFAOYSA-N 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/544—Buffers; Shared memory; Pipes
-
- 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
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)
- Multi Processors (AREA)
Description
[技術分野]
本発明は、ローカル・コンピュータ上で実行されるローカル・タスクによって要求されたリモート・コンピュータ上のリモート・タスクを実行するシステムに関する。このシステムでは、リモート・コンピュータが、ネットワーク中でローカル・コンピュータと接続されており、該ローカル・コンピュータがローカル・データ伝送エージェントを含み、前記ローカル・データ伝送エージェントが、リモート・コンピュータにリモート・タスクの動作の開始を求める要求を送り、リモート・タスクの動作中にデータの送受信を行い、かつリモート・コンピュータがリモート・データ伝送エージェントを含み、前記リモート・データ伝送エージェントが、ローカル・コンピュータからリモート・タスクの動作の開始を求める要求を受け取り、リモート・タスクの動作中にデータの送受信を行う。
[背景技術]
従来の技術では、様々なコンピュータ・ネットワークが開示されている。IBM System Journal、Vol.22、No.4(1983年)には、IBMシステム・ネットワーク体系(SNA)の概観を中心とする一連の論文が含まれている。この刊行物の345ページで、ネットワークは、「端末、制御装置、プロセッサと、それらを接続するリンクから構成されたもの」と定義されている。そのような構成がデータ処理および情報交換に関するユーザ適用業務をサポートし、IBMシステム・ネットワーク体系の仕様を満たしているとき、SNAネットワークと呼ばれる。SNAは本質的に、ネットワーク中の物理エンティティに関係する論理エンティティを定義し、これらの論理エンティティ間の対話の規則を指定している。
SNAネットワークの論理エンティティは、ネットワーク・アドレス可能ユニットと、それらを接続する経路制御ネットワークを含む。ネットワーク・アドレス可能ユニットは、「セッション」と呼ばれる論理接続を使用して相互に通信する。ネットワーク・アドレス可能ユニット(NAU)には、論理装置(LU)、物理装置(PU)、およびシステム・サービス制御点(SSCP)の3種があり、次のように定義される。
論理装置(LU)。LUは、エンド・ユーザがSNAネットワークにアクセスするためのポートである。エンド・ユーザは、LUを使用して他のエンド・ユーザと通信し、システム・サービス制御点(SSCP)のサービスを要求する。
物理装置(PU)。PUは、SSCPと協力してノードの資源を管理する構成要素である。
システム・サービス制御点(SSCP)。これは、エンド・ユーザのための構成管理、問題判別、およびディレクトリ・サービスのフォーカル・ポイントである。SSCPは、LUおよびPUとのセッションをもつことができる。そのようなセッションが発生するとき、LUまたはPUはSSCPの定義域に入っている。SSCPは、LUおよびPUとのセッションだけでなく、相互に通信して、論理装置相互間のセッションおよび複数の定義域内のセッションの開始および終了を調整する。
ハードウェアの観点から見ると、単純なネットワークは、処理装置をもつホスト・システムと、個々のユーザに割り当てられた複数のローカル端末を備えている。ローカル端末は、1つまたは複数の通信リンクを介してホスト・システムと選択的に接続することができる。これらのリンクは、同軸ケーブル、専用電話回線を備えることができ、場合によっては衛星通信リンクを備えることもできる。
ホスト処理装置は主として、それぞれ要求に応じてエンド・ユーザに割り当てられる、多数の仮想マシンの作成をサポートするオペレーティング・システムである。仮想マシンは、ホスト・システムのホスト・プロセッサ・ハードウェアを時分割することによって、割り当てられたエンド・ユーザのタスクを処理する。一部のホスト・システムは、複数のハードウェア・プロセッサを含むことができ、複数のプロセッサが並列に走行するので、ホストにおいて真の同時処理が行われる。しかし、このようなシステムよりも、時分割技術によって仮想マシン用のデータ処理タスクを「並行して」実行する1個のハードウェア・プロセッサを備えているシステムの方が多い。このシステムは、端末のエンド・ユーザに対して透過的である。
データ処理ネットワークでは、2つの一般的な種類の端末が使用される。第1の種類は、キーボードと表示装置だけを備え、ホスト・システムと接続を行うのに必要な能力以外の処理能力をほとんどまたはまったく備えていないので、「ダム端末」と呼ばれる。第2の種類の端末は、インテリジェント・ワークステーション(IWS)と呼ばれ、それ自体の処理装置および補助周辺装置を備えている。IWSおよびパーソナル・コンピュータ(PC)という用語は、しばしば同じ意味に使用される。非常に魅力的な価格性能特性をもつPCが容易に入手できるようになったので、大部分の新しいネットワークはIWSタイプの端末で実施されており、多数の旧式ネットワークは、ダム端末をIWSタイプの端末で置き換えることによって修正されつつある。
ネットワーク上の各エンド・ユーザにユーザ自身の処理機能を提供すると、ホストCPUは、以前ホストで行われていた多数のデータ処理タスクを実行しなくて済むようになる。したがって、ホストCPUによって処理されるタスクの性質が変わり、現在では、ネットワーク上でホスト・システムの制御下で電子メールや電子カレンダなどのより高度な適用業務が実施されている。これらの適用業務は共に、いわゆる分散適用業務プログラムに関係している。分散適用業務プログラムでは、適用業務プログラムの一部分がホスト・システム上に常駐しており、別の部分がIWS端末上に常駐している。
分散適用業務プログラムの実行に利用可能な製品の調査が、Datamation、Vol.30、No.11(1984年7月15日)、pp.82−90に発表された、V.ラウジーノ(Rawzino)の論文“Typing micro−mainframe knot"に記載されている。
多数の現在のデータ処理ネットワークは、1974年に初めて記載されたIBM SNA体系に従って設計されている。それ以降、様々な新しい機能およびサービスが追加された。先に示唆したように、SNAネットワークは、データ・リンクによって相互接続された複数のノードとみなすことができる。これらのそれぞれのノードでは、経路制御要素が、論理装置(LU)と呼ばれる資源管理プログラム間で、経路情報単位(PIU)と呼ばれる情報パケットを送信する。これらの経路の論理接続をセッションと呼ぶ。したがって、データの移送ネットワークは、経路制御要素およびデータ・リンク制御要素によって定義される。
ノードは、複数のリンクによって接続し、複数のLUを備えることができる。SNA体系の枠組み内で様々な種類のLUセッションおよびプロトコルが確立されている。3つの一般的なクラスのセッションがある。第1のクラスは、SNAで指定されない。第2のクラスは端末に関係し、第3のクラスはプログラム間通信に関係する。たとえば、LU6は、LU2やLU7などの端末LUタイプの制限を回避する、SNAで定義されたプログラム間通信プロトコルを提供する。LU6.2は、拡張プログラム間通信(APPC)プロトコルと呼ばれる。
論理装置は、メッセージ・ポートよりも数が多い。LUは、1つまたは複数のローカル・プログラムに関係するプログラム間通信などのオペレーティング・システム・サービスを提供する。各適用業務プログラムは、LUを論理オペレーティング・システムとみなし、セッションによって接続された疎結合LUのネットワークを分散オペレーティング・システムとみなす。
LUはそのプログラムに、特定のハードウェアとその構成に応じて複数の資源を割り振る。利用可能となる資源にはリモートのものと、ローカル、すなわち提供業務プログラムと同じLUに関連するものがある。セッションは、各LUにおける論理資源とみなされるが、特定のLU間で共用される。
LUの制御機能は資源割振りである。プログラムは、資源へのアクセスを要求する。LU間、またはLU上で走行するプログラム間でメッセージを運ぶセッションは共用資源とみなされる。セッションは、複数の逐次的に実行される会話に分割される。
セッションによって接続された2つのLUは、セッションを、「会話」として使用するために適用業務プログラムに割り振る上で責任を共有する。したがって、適用業務プログラムは「トランザクション・プログラム」と呼ばれることがある。
LU間の接続が成功するのは、共通な1組のプロトコルがまず2つのLU間のセッションを活動化し、次にメッセージ・データの交換を推進するように機能する結果である。
IBM発行の、「SNAフォーマットおよびプロトコル解説書」整理番号SC30−3112)では、たとえばプログラミング言語の宣言を使用して、ネットワーク・エンティティと、メッセージを生成、処理、変換、送信、および返送するプログラムとの間を流れるメッセージのフォーマットを定義することによってSNAを記述している。
IBM発行の、「LU62用SNAトランザクション・プログラム解説書」(整理番号GC30−3084)では、実施製品によって提供される機能を記述する動詞を定義している。
SNA自体および、SNAとインテリジェント・ワークステーション間の通信との関係について概括した2つの論文が知られている。それは、S.サイモン(Simon)の“Peer−to−peer network management in an IBM SNA network"(IEEE Network、Vol.5、No.5、1991年3月、pp.30−34)と、L.D.パスモア(Passmore)の“Comming:a new SNA"(Datamation、Vol.31、No.22、1985年11月15日、pp.102−112)である。
コンピュータ間での適用業務プログラムの共用の様々な態様について記載した2つの欧州特許出願が知られている。それは、欧州特許出願第0371229号(Hewlett−Packard)と欧州特許出願第0424715号(IBM)である。
コンピュータ間での適用業務プログラムの共用について記載した1つの米国特許が知られている。それは、米国特許出願第4274139号である。
特願昭63209248号(富士通)は(英語版の要約が、Patent Abstracts of Japan、Vol.12、NO.498、pp.110に発表されている)、ワークステーションにデータを転送するホスト内の通信制御セクションを記載している。
[発明の開示]
本発明の目的は、あるコンピュータ上で、別のコンピュータ上のタスクから要求されたタスクを実行するための改良されたシステムを提供することである。
本発明によれば、この目的は、リモート・タスクが実行されるトランザクション処理環境と、ローカル・コンピュータに記憶され、ローカル・タスクがリモート・タスクにアクセスするために使用するハンドルとを関連付け、ローカル・タスクとローカル・データ伝送エージェントからアクセス可能なローカル共用バッファをローカル・コンピュータ内に設け、リモート・タスクとリモート・データ伝送エージェントからアクセス可能なリモート共用バッファをリモート・コンピュータ内に設けることによって解決される。
本発明の一実施例では、ローカル共用バッファはローカル・タスクによって提供され、リモート共用バッファはリモート・データ伝送エージェントによって提供される。ローカル・タスクは、機能プログラム、適用業務ナビゲータ、環境ルーチンのどれでもよい。
本発明の方法は、リモート・コンピュータとローカル・コンピュータの間で会話をオープンし、リモート・タスクが実行されるトランザクション処理環境を表すハンドルを割り当てるステップと、トランザクション処理環境で実行されるリモート・タスクを識別する機能名と、リモート・タスクが入力として必要とするデータを含む第1のデータ・ブロックとをローカル・コンピュータからリモート・コンピュータに送信するステップと、リモート・コンピュータで実行されるリモート・タスクからの出力を含む第2のデータ・ブロックをローカル・コンピュータで受信するステップと、リモート・コンピュータとローカル・コンピュータの間の会話をクローズするステップとを含む。
本発明の方法の一実施例では、ローカル・コンピュータとリモート・コンピュータの間の会話が第1のローカル・タスクによってオープンされ、第2のローカル・タスクが、第1のタスクが返すハンドルを使用して、トランザクション処理環境にリモート・タスク名を送信し、ローカル・コンピュータからリモート・コンピュータに第1のデータ・ブロックを送信する。
本発明の方法の他の実施例では、ローカル・コンピュータとリモート・コンピュータの間の会話は、第1のローカル・タスクがオープンし、第3のローカル・タスクが、第1のタスクから返されるハンドルを使用してクローズする。
【図面の簡単な説明】
第1図は、情報ハンドリング・システムの概要を示す図である。
第2図は、インテリジェント・ワークステーションを示す図である。
第3図は、SNAネットワークの概要を示す図である。
第4図は、本発明の概要を示す図である。
第5図は、伝送データ・エージェントの構造を示す図である。
第6図は、BusOpenUICXmitルーチン用のデータ・バッファの構造を示す図である。
第7図は、BusCloseUICXmitルーチン用のデータ・バッファの構造を示す図である。
第8図は、BusUICXmitルーチン用のデータ・バッファの構造を示す図である。
第9図は、本発明の1使用例を示す図である。
第10図は、本発明の他の使用例を示す図である。
[発明の詳細な説明]
第1図には、ホスト・コンピュータ20と、第2図に詳細に示す種類の対話型端末またはインテリジェント・ワークステーション(IWS)10aないしfとから成る、SNAネットワークなどのネットワーク30を備える情報処理システムの1例を示す。このシステムは、機能的には、各ワークステーションがネットワーク30を介してホスト・コンピュータ20および他のワークステーション10と通信できるように動作する。通信リンクは、様々なプロトコルのどれでも使用できるが、本発明の好ましい実施例ではSNA通信プロトコルを使用する。
ホスト・コンピュータ20は、たとえば、IBM/370、IBM/390システム、IBM PS/2、IBM AS/400、IBM RS/6000などのホスト処理装置を含む。ホスト処理装置は、IBM VM、IBM MVS、IBM OS/2、IBM VSEなどのオペレーティング・システムを実行する。
第2図に、第1図に示したワークステーション10のうち1つの機能構成要素を示す。ワークステーション10は、たとえばインテル(Intel)80386マイクロプロセッサなどのマイクロプロセッサ130と、半導体メモリ120と、マイクロプロセッサ130と半導体メモリ120の間の対話の他に入出力動作も制御するように機能する制御ブロック140とを含む、処理装置110を備えている。
ワークステーションはさらに、表示装置150、マウス165、キーボード160、プリンタ170、記憶装置190、およびモデム180を含む1群の通常の周辺装置を含む。前述の機能ブロックの詳細は従来の技術で述べられているので、各ブロックについての簡単な機能的説明と、ブロック間の対話の説明だけを行うが、これで、当業者に本発明を理解するための基礎を提供するのに十分である。
たとえば、処理装置110は、IBM PS/2モデル80システムなどのIBMパーソナル・コンピュータのシステム装置に対応する。処理装置110は、オペレーティング・システム・プログラムを備えており、このプログラムは、通常はPS/2モデル80を実行するのに使用されるIBMマルチタスキングOS/2オペレーティング・システムでよい。オペレーティング・システム・プログラムは、ユーザが実行することを選択した適用業務プログラムと共に半導体メモリ120に記憶されている。システムが分散適用業務プログラムをサポートするときは、分散適用業務プログラムの一部だけ、たとえば部分Aをワークステーション10に記憶し、他方の部分、部分Bはホスト・コンピュータ20または他のワークステーション10に記憶する。これらのプログラムの各部分は、半導体メモリ120の容量と適用業務プログラムのサイズに応じて、必要なときに、たとえば40メガバイト・ハード・ディスク・ドライブおよびディスケット・ドライブを含む記憶装置190から半導体メモリ120に転送される。記憶装置190の基本機能は、ワークステーション10によって使用され、必要に応じて半導体メモリ120に容易に転送できるように、プログラムおよびデータを記憶することである。ディスケット・ドライブの機能は、プログラムおよびデータをワークステーション10に入力する削除可能記憶機能と、データを、他のワークステーション10またはホスト・コンピュータ20上で使用するために容易に転送できる形式で記憶する手段とを提供することである。
表示装置150、マウス165、およびキーボード160があいまって、端末の対話性を提供する。というのは、通常の動作では、オペレータによる特定のマウス・コマンド・キーストロークに対するシステムの解釈が、ほぼあらゆる状況において、その時点でオペレータに対して表示されているものに依存するからである。
ある状況では、オペレータがマウス165をクリックするか、あるいはシステムにコマンドを入力することによって、システムに一定の機能を実行させる。他の状況では、システムが、一般にプロンプト型のメニュー/メッセージ画面を表示することによって、あるデータの入力を要求する。オペレータとシステムの間の対話の深さは、オペレーティング・システムと適用業務プログラムの種類によって変わる。
第2図に示すワークステーション10は、プリンタ170を含むこともできる。プリンタ170は、データのハード・コピー出力を提供するように機能する。最後に、モデム180は、第2図のワークステーション10からのデータをホスト・コンピュータ20または他のワークステーション10に転送するように機能する。
第3図に、SNA型ネットワークで使用される様々な層のプログラミングを示す。本発明によるSNAプログラミング環境は、図のように7つの層から構成されているとみなすことができる。上部層210はエンド・ユーザ層であり、エンド・ユーザ・プログラムから構成され、本発明のリモート・データ伝送サービス220を含む。
第2の層230は、NAUサービス層と呼ばれる。このサービスには、たとえばプレゼンテーション・サービス、端末サービス、および特定の適用業務用のデータのフォーマッティングが含まれる。層240は、データ・フロー制御層と呼ばれる。この層の機能は、送信/受信モードを維持し、高レベルのエラー訂正を実行することである。層250は、データ伝送制御層である。この層の機能には、暗号化および非暗号化や、セッション・レベルの歩調合せなどがある。層260は経路制御層であり、経路指定、データ単位のセグメント化、および仮想経路歩調合せを行う。データ・リング層は層270である。この層の機能は、リンク・レベル・アドレス指定、順序付け、およびエラー制御を提供することである。最後の層280は物理層であり、たとえば様々な信号用のコネクタ上でのピンの割り当てを定義する。
APPCは、NAUサービス、データ・フロー制御、および伝送制御を定義する。前述のIBM System Journalのp.306ページに記載されているように、LU6.2会話機能を定義する方法では、動詞と呼ばれるプログラミング言語様ステートメントが使用される。セッション・フローを生成する手順論理によって完全に定義された動詞によるドキュメンテーションは、英語の散文よりも精度が大幅に高い。1組の動詞が、適用業務プログラム・インターフェースではなくプロトコル境界として参照される。
プレゼンテーション・サービス構成要素は、動詞を解釈し、各動詞用のサブルーチンを含むものとみなすことができる。LU資源管理プログラムは、会話資源を割り振り、セッションに会話を割り当て、空きセッションの待ち行列と保留中の割振り要求を維持する。製品中のそれに等価な構成要素も、製品固有の方法でローカル資源を割り振る。下記のLU6.2動詞の機能は、前述のIBM System Journalのp.307に記載されている。論じられているLU6.2動詞は、SEND_DATA(データ送信)、RECEIVE_AND_WAIT(受信後待機)、PREPARE_TO_RECEIVE(受信準備)、FLUSH(フラッシュ)、REQUEST_TO_SEND(送信要求)、SEND_ERROR(送信エラー)、CONFIRM(確認)、ALLOCATE(割振り)、DEALLOCATE(割振り削除)である。
ALLOCATE動詞は、指定されたパートナー・プログラムへの会話を構築することによって他のLUで新しい活動を開始する。指定されたパートナーは、実行状態になり、該パートナーを開始した会話へのアドレス可能性を与えられる。
ALLOCATE動詞は、以下のものを含む複数のパラメータを含む。
1.LU_NAME.これは、パートナー・プログラムが位置するLUの名前である。
2.TPN.TPUは、会話を希望するパートナー・プログラムのトランザクション・プログラム名である。
3.MODE_NAME.MODE_NAMEは、会話が提供する移送サービスの種類を指定する。たとえば、SECURE会話、BULK会話、またはLOW_DELAY会話を要求することができる。LUは、適切なMODE_NAMEとのセッションを使用して会話を搬送する。
会話のターゲットは新たに作成されたプロセスまたはタスクである。すなわち、任意の瞬間におけるネットワーク中の分散処理は、多数の独立分散トランザクションから構成され、各トランザクションは、会話によって接続された2つ以上のトランザクション・プログラムから構成される。DEALLOCATE動詞は、会話を終了させる。各パートナーがDEALLOCATEを発行できるかぎり、会話は、1つの短いメッセージのものから、長いまたは短いメッセージの多数の交換まで様々である。会話は無限に継続することができ、論理装置の故障か、または会話を搬送するセッションによってのみ終了する。トランザクション・プログラムは、DEALLOCATEでは終了せず、プログラム自体の実行を終了するまで継続し、異常終了するかあるいは制御オペレータの処置によって終了する。
ネットワーク適用業務プログラムとサービス・トランザクション・プログラムは共に、論理装置によって提供される実行サービスを使用する。サービス・トランザクション・プログラムは、他のトランザクション・プログラムと同様に論理装置上で走行する。サービス・トランザクションは、人間のオペレータと会話し、あるいは純粋なプログラム式オペレータとして走行する。多数のサービス・トランザクション・プログラムは、ローカル論理装置だけに影響を及ぼす。その1例は、1組の現活動トランザクション・プログラムを表示するコマンドである。
他の制御トランザクション、特にセッションに関する制御トランザクションは、他の論理装置と、他の論理装置にある適用業務に影響を及ぼすことができる。たとえば、会話を使用しているトランザクションを途中で終了するローカル・コマンドは、会話を異常終了させる。これは、会話を共用しているトランザクション・プログラムに提示するためにパートナー論理装置に送らなければならない状態変更である。また、2つのLUによって共用される1つまたは複数のセッションを活動化するとの決定は、一方のLUオペレータが行うことができるが、他方の論理装置に通信しなければならない。SNA用の拡張プログラム間通信は、特にセッションの活動化および非活動化のための、LU間制御および調整を行う、いくつかの制御オペレータ動作を含む。分散サービス・トランザクション・プログラムがあるLUで開始すると、パートナーLUのパートナー・トランザクション・プログラムへの会話を生成する。その後、2つのトランザクション・プログラムが協力して、所望の制御活動を実行する。
第4図に、本発明のリモート・データ伝送サービスがどのように動作するかを示す。各ワークステーション10aないしfとホスト・コンピュータ20は、データ伝送エージェントと呼ばれる特殊構成要素を備えている。第4図に示した例では、2種類のデータ伝送エージェントが示されている。ローカル・データ伝送エージェント410は、ローカル・コンピュータ(または論理装置)400、通常はタスクを実行するワークステーション10内に提供される。リモート・データ伝送エージェント420は、リモート・コンピュータ405(または他の論理装置)、すなわち他のワークステーション10またはホスト・コンピュータ20内に提供される。リモート・コンピュータ405は、ローカル・コンピュータ400上で走行するタスクによって開始されるタスクを実行する。ローカル・データ伝送エージェント410とリモート・データ伝送エージェント420は、ネットワーク30を介して接続される。
図4の例では、データ伝送サービス要求元415と総称される3種のタスクが、ローカル・コンピュータ400上に提供される。ローカル・コンピュータ400は、リモート・コンピュータ405上のタスクを呼び出すことができる。3種のタスクとは、機能プログラム440、適用業務ナビゲータ450、および環境ルーチン460である。機能プログラム440とは、走行中の適用業務に関するデータを修正できるプログラムである。適用業務ナビゲータ450は、ユーザがワークステーション10およびホスト・コンピュータ20上で利用可能な適用業務中をナビゲートできるようにする。環境ルーチン460は、ユーザが作業中の環境を修正できるようにする。これらのタスクはそれぞれ、リモート・コンピュータ405上で走行するタスクの呼出しを発行し、リモート・コンピュータ405上のこれらのタスクにデータ・ブロックを渡し、該タスクからデータブロックを受け取ることができる。
リモート・コンピュータ405は、本発明の上記の実施例では1種のタスクだけを有する。リモート機能430は、呼出し可能モジュールであり、ローカル・コンピュータ400上で走行するタスクによって呼び出すことができ、ローカル・コンピュータ400上のタスクからデータ・ブロックを受け取り、該タスクにデータ・ブロックを返すことができる。
ローカル・データ伝送エージェント410は、データ伝送サービス要求元415に接続されている。ローカル・データ伝送エージェント410の機能は、リモート・コンピュータ405に会話を割り振り、リモート・コンピュータ405のリモート・データ伝送エージェント420にデータ・ブロックおよび機能名を送り、リモート・データ伝送エージェント420またはリモート・システム405からデータ・ブロックを受け取り、最後にリモート・コンピュータ405への会話の割当てを解除することである。
リモート・データ伝送エージェント420は、ローカル・データ伝送エージェント410からデータ・ブロックおよびリモート機能の名前を受け取り、指定されたリモート機能430を開始し、受け取ったデータ・ブロックをリモート機能430に転送し、指定されたリモート機能430から返されたデータ・ブロックを、リモート機能430の名前を送信したローカル・データ伝送エージェント410に送り返す機能を有する。
データ伝送エージェント410および420の機能は、第5図を検討すればさらによく理解することができる。第5図は、一連のサービス・ユニット500に接続された伝送データ・サービス要求元415を示す。一連のサービス・ユニット500は、制御装置505に接続されている。制御装置505は、一連のターゲット処理環境510aないしdに接続されている。ターゲット処理環境510aないしdはそれぞれ、クライアント520aないしdと、サーバ530aないしdを含んでいる。制御装置505、一連のサービス・ユニット500、およびクライアント520aないしdは、第4図のローカル・データ伝送エージェント410に含まれている。サーバ530aないしdは、第4図に示す1台または複数のリモート・コンピュータ405内にある。クライアント520aないしdとサーバ530aないしdは、ネットワーク30およびモデム180を介して相互に接続される。
ローカル・コンピュータ400上で走行する適用業務は、リモート・コンピュータ405に1つまたは複数のサービスを要求することができる。サービスは、伝送データ。サービス要求元415を呼び出すことによって要求され、伝送データ・サービス要求元415は要求された各サービス用のサービス・ユニット500を作成する。制御装置505は、適用業務から発行されたそれぞれのサービス要求を、要求されたターゲット処理環境510に経路指定する。制御装置505は、ローカル・コンピュータ中で走行する適用業務から供給されたトークンを使用して、必要なターゲット処理環境510を指定する。ターゲット処理環境510内で要求されたサービスが終了した後、制御装置505およびサービス・ユニット500を介して適用業務に結果が返される。
ターゲット処理環境510は、複数のサービス・ユニット500によってアドレスすることができる。たとえば、ローカル・コンピュータ400上で実行され、共にリモート・コンピュータ405内の同じサービスを使用したいと希望する、2つの適用業務、またはローカル・コンピュータ400内で走行し、同じサービスを使用したいと希望する、同じ適用業務の2つの異なる部分がその例である。この場合、ローカル・コンピュータ400内で2つの異なるサービス・ユニット500が作成できる。サービス要求は、ターゲット処理環境510で待ち行列に入れられ、連続的に実行される。2つの異なるサービス・ユニット500を作成すると、1つの適用業務プログラムが、2つの異なるターゲット処理環境510と非同期的に対話することができる。
クライアント520およびサーバ530は互いにユーザの3つの機能プリミティブ、すなわちSRV_OPEN、SRV_CLOSE、およびSRV_RPCを通信しあう。ターゲット処理環境510を呼び出す前には、SRV_OPEN機能プリミティブを使用する必要がある。こうすると、制御装置505は、クライアント520を作成し、周知のSNA動詞(ALLOCATE、上記参照)と前述のトークンを使用して、リモート機能430を実行するサーバ530を含む、所望のリモート・コンピュータ405との会話を確立する。その会話を特徴付けるハンドルが制御装置505に返される。SRV_CLOSE機能プリミティブを呼び出すと、クライアント520とサーバ530との間の会話が遮断され、ハンドルは削除される。SRV_CLOSE機能プリミティブはDEALLOCATE SNA動詞を使用する。SRV_CLOSEプリミティブおよびSRV_OPENプリミティブは、どのデータ伝送サービス要求元415からも呼び出せる。これらのプリミティブは、異なるデータ伝送サーバ要求元415から発行することができる。すなわち、あるデータ伝送サービス要求元415が接続を確立し、別のデータ伝送サービス要求元415が切断することができる。クライアント520とサーバ530との間の接続は、クローズされるまで常にオープンのままであり、後述のように、会話を確立したデータ伝送サービス要求元415がその会話を使用しなくなった場合でもそうである。
SRV_RPC機能プリミティブは、データ伝送サービス要求元415がハンドルを使用して呼び出す。このプリミティブにより、任意の長さのデータをクライアント520からサーバ530に、またサーバ530からクライアント520に転送することができる。適用業務プログラムがSVC_RPC機能プリミティブを使用すると、サービス・ユニット500がデータ伝送サービス要求元415によって作成される。異なる適用業務によって異なるサービス・ユニット500が作成できる。2つの異なるサービス・ユニット500がターゲット処理環境510にデータを同時に転送したいと希望する場合、要求はサービスユニット500の待ち行列に入れられる。
ローカル・コンピュータ400上で走行する適用業務プログラムがリモート・コンピュータ405上で走行するタスク(たとえばリモート機能430)を呼び出したいものと仮定する。この場合、ローカル・コンピュータ400とリモート・コンピュータ405の間に会話を確立しなければならない。これを行うために、タスクを実行するデータ伝送サービス要求元415は、ローカル・データ伝送エージェント410によって提供されるBusOpenUICXmit(OpenDataStruct,rc)を呼び出す。このルーチンは、前述のSRV_OPEN機能プリミティブと等価であり、2つのパラメータ、OpenDataStructとrcをもつ。第1のパラメータOpenDataStructは、リモート・コンピュータ410内のリモート・データ伝送エージェント420との会話をオープンするのに必要なすべての入出力データを含むデータ・バッファを指す。第2のパラメータrcは、このルーチンの呼出しからの戻りコードである。このパラメータは、会話が確立されたか、あるいは問題が発生したことを示し、可能なら、問題の種類を示す指示を与える。
データ・バッファの構造を第6図に示す。SymDestは、リモート機能430がそこで走行するサーバ530を含むリモート・コンピュータ405を識別する記号宛先名を表す。記号宛先名は、IBM SNAネットワーキング・サービスが設置およびカストマイズ時に利用することができる。記号宛先名は、ALLOCATE動詞のLU_NAME、TPN、およびMODE_NAMEパラメータに対応する。UserIdはリモート・コンピュータ用のログオン・ユーザIDであり、PassWdはログオン・パスワードである。この2つの値は、カストマイズ・プロセス中に定義された指定パスワードを使用する場合に空白になることがある。TimeoutValueは、不良戻りコードrcが返される前にローカル・システム400とリモート・システム405の間に会話が確立されるのにどれだけ待つ必要があるかを指定する値である。XmitHandleは、この会話を表すために返されるハンドルである。XmitHandleは、リモート機能430への後続のあらゆるデータ転送に使用され、会話をクローズするのにも使用される。最後に、RemoteSysはオペレーティング・システムの種類に関する指示を含む。この情報によって、呼出し側はリモート・システムが、ASCII、EBCDIC、その他の文字セットのうちどれを使うのかを判定することができる。
ローカル・コンピュータ400とリモート・コンピュータ405の間の会話をクローズするには、伝送データ・サービス要求元415がルーチンBusCloseUICXmit(CcloseDataStruct,rc)を呼び出す。このルーチンは、前述のSRV_CLOSEルーチンと等価である。第1のパラメータCloseDataStructは、リモート・コンピュータ410内のリモート・データ伝送エージェント420との間の会話をクローズするのに必要なすべての入出力データを含むデータ・バッファを示す。第2のパラメータrcは、このルーチンの呼出しの戻りコードである。このパラメータは、会話が確立された、あるいは問題が発生したことを示し、可能なら、問題の種類を示す指示を与える。
データ・バッファの構造を第7図に示す。XmitHandleは、会話を表すのに使用されるハンドルである。Close Parmは、2つの値のうち1つを含むことができる割振り解除フラグである。1つの値は、他の伝送データ・サービス要求元415からの要求が保留中であり、サービス・ユニット500の待ち行列に入っている場合でも、会話をただちにクローズすべきことを示す。この値を使用すると、不良戻りコードrcが返される。第2の値は、サービス・ユニット500内の保留中のサービス要求がなくなったときだけ会話がクローズされることを示す。必要なら、closeコマンド自体を待ち行列に入れ、サービス・ユニット500内のすべてのサービス要求が処理された後に処理する。後でリモート機能430に要求が発行されても拒否され、不良戻りコードが返される。
伝送データ・サービス要求元415は、ローカル・コンピュータ400とリモート・コンピュータ405の間で会話をオープンした後、リモート機能430を利用することができる。これは、ルーチンBusUICXmit(XmitDataStruct,rc)を呼び出すことによって行われる。このルーチンは、前述のSRV_RPCルーチンと等価である。第1のパラメータXmitDataStructは、データをデータ・サービス要求元415からリモート機能430に転送するのに必要なすべての入出力データを含むデータ・バッファを指す。第2のパラメータrcは、このルーチンの呼出しの戻りコードである。このパラメータは、会話が確立された、あるいは問題が発生したことを示し、可能なら、問題の種類を示す指示を与える。
データ・バッファの構造を第8図に示す。XmitHandleは、使用する会話を表すハンドルである。XmitLibは、サーバ510内のリモート機能430があるライブラリの名前である。一部のオペレーティング・システム、たとえばCMSやMVSでは、この値は必要でない。OS/2では、この値は動的リンク・ライブラリを表す。XmitServは、リモート・コンピュータ405上で呼び出されるリモート機能430の名前である。InputBufは、伝送データ・サービス要求元415によって提供されるリモート機能430に伝送すべきデータを含む共用メモリ・ブロックのアドレスである。InputBufは、伝送データ・サービス要求元415とクライアント520の両方からアクセス可能でなければならない。InputBufLenは、InputBufによって指定されたデータ・ブロックの長さである。OutputBufは、リモート機能430から返される、データ伝送サービス要求元415が使用するデータを含む共用メモリ・ブロックのアドレスである。OutputBufも、伝送データ・サービス要求元415とクライアント520の両方からアクセス可能でなければならない。OutputBufLenは、OutputBufによって指定されるデータ・ブロックの長さである。XmitServLinkageは、XmitServの連係情報を含む。TimeoutValueは、データ伝送サービス要求元415に戻りコードrcが返されるまでに非待機要求がリモート・コンピュータ405からの応答を待つ時間の長さを指定する。不良戻りコードrcが返された後、この特定の会話のためにサービス・ユニット500の待ち行列に入っている以後のすべてのBusUICXmitサービス呼出しが終了して不良戻りコードrcを返し、会話がクローズされる。最後に、XmitServRCは、リモート・システム405上で走行するリモート機能430が完了することによってリモート伝送エージェント420に返される、リモート機能430の戻りコードである。
伝送データ・サービス要求元415がルーチンBusUICXmit(XmitDataStuct,rc)を呼び出すと、その呼出しはローカル・データ伝送エージェント410に渡される。データ伝送エージェント410は共用入力バッファにアクセスし、そのバッファに含まれるデータをリモート・データ伝送エージェント420に渡す。この転送は、周知のSNAまたはその他のデータ伝送方法を使用して行われる。リモート・データ伝送エージェント420では、着信データが他の共用メモリに渡され、別のルーチンXmitServ(InputBufAdr,InputBufLen,OutputBufAdr,OutputBufLen,rc)が呼び出される。InputBufAdrは、リモート・データ伝送エージェント420によって提供される共用データ・ブロックのアドレスである。このデータ・ブロックには、リモート機能430が必要とする入力データが供給される。このデータブロックは、BusUICXmit呼出しによってローカル・データ伝送エージェント410から渡された情報だけを含む。本発明の一実施態様では、このデータ・ブロックは、バイトの2進ストリームと解釈され、ASCII/EBCDIC変換は実行されない。別の実施態様では、この変換が実行される。InputBufLenは、InputBufAdrによって指定されるデータ・ブロックの長さである。OutputBufAdrは、リモート・データ伝送エージェント420によって提供されるデータ・ブロックを含む共用出力バッファのアドレスである。そこでリモート機能430は、そのデータを返さなければならない。このデータ・ブロックは、BusUICXmit呼出しが完了した後にローカル・データ伝送エージェント410に渡される情報だけを含む。入力時には、OutputBufLenは、呼出し側によってローカル・コンピュータ400上に供給され、OutputBufAdrによって指定される、出力データ・ブロックの長さを記憶する。出力時には、共用出力バッファがデータを保持するのに十分な大きさである場合、リモート・データ伝送エージェント420によって呼び出されたリモート機能430は、OutputBufAdrを介して実際に返されるデータ・ブロックの長さをパラメータOutputBufLenに記憶しなければならない。共用出力バッファが、リモート機能430によって実際に生成されたデータ・ブロックを格納するのに十分な大きさでない場合、このオーバーフローをデータ伝送サービス要求元415にしなければならない。これはたとえば、適切な戻りコードrcを生成し、完全なデータを保持するのに必要な長さをOutputBufLenに記憶することによって行うことができる。この値は、BusUICXmit呼出しのOutputBufLenとしてデータ伝送サービス要求元415に返される。データ伝送サービス要求元415はまた、できるだけ多くの出力データ・ブロック、すなわちOutputBufLenの入力値によって指定された数のバイトを受信する。データ伝送サービス要求元415は次に、矯正処置を実施する。XmitServルーチンの戻りコードrcは、BusUICXmitルーチンのXmitServRCパラメータとしてデータ伝送サービス要求元415に渡される。
リモート・データ伝送エージェント420が、BusUICXmit呼出しのパラメータXmitServによって指定されたリモート機能430を動的にロード、連係、および実行できるようにするために、リモート機能を、リモート・コンピュータ405上で実行内容に応じて編成しなければならない。オペレーティング・システム独立条件では、リモート機能430は、「動的リンク可能」ライブラリの要素でなければならない。BusUICXmit呼出しのパラメータXmitLibは、リモート機能430が動的に連係されるライブラリを指定する。
MVSでは、パラメータXmitLibは意味をもたない。なぜなら、リモート機能430は、周知のMVS方式(LinkLib、LPA、STEPLIBなど)で連結されたLOADライブラリのメンバであると想定されるからである。リモート・データ伝送エージェント420は、パラメータXmitServを使用して、XmitServによって、その入口点を取り出すために指定されるリモート機能430をロードし、あるいはXmitServで指定されたリモート機能430を呼び出す。
VMでは、パラメータXmitLibは意味をもたない。なぜなら、リモート機能430は、周知のVM方式で連結されたLOADライブラリのメンバであると想定されるからである。すなわち、XmitServは、GLOBAL LOADLIB loadlib_1 loadlib_2でアクセス可能になるLOADLIBの1つに含まれなければならない。ライブラリは、指定されたシーケンスで検索される。このステートメントは、カストマイズ中に適宜設定しなければならなかったユーザIDのPROFILE EXECから発行される。リモート・データ伝送エージェント420は、パラメータXmitServを使用して、XmitServによってその入口点を取り出すために指定されたリモート機能430をロードし、あるいはXmitServで指定されたリモート機能430を呼び出す。
OS/2では、パラメータXmitLibは動的リンク・ライブラリDLLを表す。リモート・データ伝送エージェント420は、パラメータXmitLibおよびXmitServを次のように使用する。まず、リモート・データ伝送エージェント420は、周知のDosLoadModuleCallを使用して、パラメータXmitLibで指定されるDLLをロードする。リモート・データ伝送エージェント420は次に、リモート機能430の入口点を得るためにパラメータXmitServに対するDosFetProcAddr呼出しを発行する。最後に、リモート・データ伝送エージェント420はリモート機能430を呼び出す。
リモート・データ伝送サービスがどう動作するのかを示すのに役立つ2つの例を挙げる。まず、ローカル・コンピュータ400のユーザが適用業務ナビゲータ450を使用したいと希望しているものと仮定する。この適用業務ナビゲータ450は、汎用オブジェクトおよびビュー・ハンドラでも、適用業務固有の適用業務ナビゲータでもよい。前述のように、適用業務ナビゲータ450は、伝送データ・サービス要求元415の1例である。第9図は、この例を例示するのに役立つ。
ローカル・コンピュータ400のユーザに、表示装置150上に表示される、一連のプレゼンテーション・フロント・エンド910aないしcの1つが提示される。プレゼンテーション・フロント・エンド910上に、一連のアイコンが表示される。ユーザはマウス165を使用して、1つのアイコンをクリックし、それによって適用業務ナビゲータ450を呼び出す。適用業務ナビゲータ450はユーザ・インタフェース・コンダクタ920を使用して、ローカル機能プログラム930aを呼び出す(ステップ<1>)。ユーザ・インタフェース・コンダクタ920は、選択された処置を表すローカル機能プログラム930aを呼び出す。
ローカル機能プログラム930aが1つのリモート機能430を使用する必要があるものと仮定する。そのためには、ローカル・データ伝送エージェント410のルーチンBusOpenUICXmitを呼び出して、必要なリモート・コンピュータ405との会話を確立させる(ステップ<2>)。必要なリモート・コンピュータ405は、BusOpenUICXmit呼出しのパラメータSymDestによって指定される。ローカル・データ伝送エージェント410は、リモート・コンピュータ405内のリモート・データ伝送エージェント420を呼び出すことによって、LU6.2とリモート・コンピュータ405の会話を確立する。BusOpenUICXmit呼出しから戻るとき、会話が確立されており(ステップ<3>)、他のローカル機能プログラム930aおよび930cが共用できるハンドルXmitHandleも適用業務ナビゲータ450によって活動化される。この共用プロセスは、第9図には反映されていない。
次に、ローカル機能930aは、ローカル・データ伝送エージェント410ルーチンBusUICXmitを呼び出して、リモート機能430aにデータを渡し、このリモート機能430aを呼び出す(ステップ<4>)。リモート機能430aの名前およびデータは、前述のようにBusUICXmit呼出しのパラメータとして指定される。ローカル・データ伝送エージェント410は、このデータをリモート・コンピュータ405上のリモート・データ伝送エージェント420に渡す。
リモート・データ伝送エージェント420は、リモート機能430aを呼び出し(ステップ<5>)、リモート機能430aから戻るとき(ステップ<6>)、リモート・コンピュータ405からのデータをローカル・コンピュータ400に渡す。次にデータは、ローカル・データ伝送エージェント410によって呼出し側ローカル機能930aに返される(ステップ<7>)。ローカル機能プログラム930aは、リモート・コンピュータ430からの2進データをどのように処理するか、および他のローカル機能プログラム930b、930cのどちらがデータにアクセスするかを決定する。この例では、データが、共用メモリ領域940を介して適用業務ナビゲータ450に利用可能になっている(ステップ<8>)。
適用業務ナビゲータ450は、ユーザの対話によってトリガされると、他のローカル機能プログラム930aないしcを呼び出すことができる。これらのローカル機能プログラム930aないしcは、他のリモート機能430bを呼び出すことができる。ローカル機能プログラム930aないしcは、リモート・コンピュータ405との会話がすでに存在していることを知っているので、ステップ<4>ないし<7>を繰り返すことができる。そのようなシナリオをステップ<9>ないし<13>に示す。これは、ローカル機能プログラム930bによる他のリモート機能430bの実行を示している。
最後に、ユーザはタスクの終了を決定する。適用業務ナビゲータ450はローカル機能プログラム930cを呼び出し、ローカル機能プログラム930cはすべてのクリーンアップ活動を呼び出すと共に、ローカル・データ伝送エージェント410内のBusCloseUICXmitルーチンを呼び出す。これによって、会話がクローズされ(ステップ<14>ないし<16>に示す)、すべてのローカル適用業務データがクリアされる。
リモート・データ伝送サービスの使用についての第2の例を第10図に示す。この例では、ユーザ・インタフェース・コンダクタ920は使用しない。なぜなら、適用業務ナビゲータ450がリモート・コンピュータ405に記憶されたデータの修正を実行しないからである。そのような使用の1例は、リモート・コンピュータ405に記憶されたリモート・データ・バンクの問合せである。
あるユーザ対話のために、適用業務ナビゲータ450が、リモート・コンピュータ405に記憶されたあるデータを必要とするものと仮定する。したがって、ステップ<21>で、適用業務ナビゲータ450は、ローカル・データ伝送エージェント410のルーチンBusOpenUICXmitを呼び出し、リモート・データ伝送エージェント420を呼び出すことによって、必要なLU6.2とリモート・コンピュータ405の会話を確立する。必要なリモート・コンピュータは、BusOpenUICXmit呼出しのSymDestパラメータによって指定される。ローカル・データ伝送エージェント410から戻るときに、会話が確立される(ステップ<22>)。
適用業務ナビゲータ450は次に、ステップ<23>に示すように、ローカル・データ伝送エージェント410のルーチンBusUICXmitを呼び出して、リモート機能430にデータを渡す。リモート機能430の名前とデータは、BusUICXmit呼出しのパラメータとして指定され、ローカル・データ伝送エージェント410によって、リモート・コンピュータ405上のリモート・データ伝送エージェント420に渡される。
リモート・データ伝送エージェント420は次に、ステップ<24>に示すようにリモート機能を呼び出す。リモート・データ伝送エージェント420は、リモート機能430から戻るとき(ステップ<25>)、リモート・コンピュータ405からのデータをローカル・コンピュータ400に渡す。このデータは、ローカル・データ伝送エージェント410によって呼出し側適用業務ナビゲータ450に渡される(ステップ<26>を参照)。呼出し側適用業務ナビゲータは、このデータをメモリ域1000に記憶し、ナビゲーションにそれを使用することができる。
最後に、ユーザはタスクの終了を決定する。適用業務ナビゲータ450は、他のクリーンアップ活動と並んで、ローカル・データ伝送エージェント410のルーチンBusCloseUICXmitを呼び出して、会話の割振りを解除し(ステップ<27>および<28>)すべてのデータをクリアする。
本発明は、ローカル・コンピュータ上で実行されるローカル・タスクによって要求されたリモート・コンピュータ上のリモート・タスクを実行するシステムに関する。このシステムでは、リモート・コンピュータが、ネットワーク中でローカル・コンピュータと接続されており、該ローカル・コンピュータがローカル・データ伝送エージェントを含み、前記ローカル・データ伝送エージェントが、リモート・コンピュータにリモート・タスクの動作の開始を求める要求を送り、リモート・タスクの動作中にデータの送受信を行い、かつリモート・コンピュータがリモート・データ伝送エージェントを含み、前記リモート・データ伝送エージェントが、ローカル・コンピュータからリモート・タスクの動作の開始を求める要求を受け取り、リモート・タスクの動作中にデータの送受信を行う。
[背景技術]
従来の技術では、様々なコンピュータ・ネットワークが開示されている。IBM System Journal、Vol.22、No.4(1983年)には、IBMシステム・ネットワーク体系(SNA)の概観を中心とする一連の論文が含まれている。この刊行物の345ページで、ネットワークは、「端末、制御装置、プロセッサと、それらを接続するリンクから構成されたもの」と定義されている。そのような構成がデータ処理および情報交換に関するユーザ適用業務をサポートし、IBMシステム・ネットワーク体系の仕様を満たしているとき、SNAネットワークと呼ばれる。SNAは本質的に、ネットワーク中の物理エンティティに関係する論理エンティティを定義し、これらの論理エンティティ間の対話の規則を指定している。
SNAネットワークの論理エンティティは、ネットワーク・アドレス可能ユニットと、それらを接続する経路制御ネットワークを含む。ネットワーク・アドレス可能ユニットは、「セッション」と呼ばれる論理接続を使用して相互に通信する。ネットワーク・アドレス可能ユニット(NAU)には、論理装置(LU)、物理装置(PU)、およびシステム・サービス制御点(SSCP)の3種があり、次のように定義される。
論理装置(LU)。LUは、エンド・ユーザがSNAネットワークにアクセスするためのポートである。エンド・ユーザは、LUを使用して他のエンド・ユーザと通信し、システム・サービス制御点(SSCP)のサービスを要求する。
物理装置(PU)。PUは、SSCPと協力してノードの資源を管理する構成要素である。
システム・サービス制御点(SSCP)。これは、エンド・ユーザのための構成管理、問題判別、およびディレクトリ・サービスのフォーカル・ポイントである。SSCPは、LUおよびPUとのセッションをもつことができる。そのようなセッションが発生するとき、LUまたはPUはSSCPの定義域に入っている。SSCPは、LUおよびPUとのセッションだけでなく、相互に通信して、論理装置相互間のセッションおよび複数の定義域内のセッションの開始および終了を調整する。
ハードウェアの観点から見ると、単純なネットワークは、処理装置をもつホスト・システムと、個々のユーザに割り当てられた複数のローカル端末を備えている。ローカル端末は、1つまたは複数の通信リンクを介してホスト・システムと選択的に接続することができる。これらのリンクは、同軸ケーブル、専用電話回線を備えることができ、場合によっては衛星通信リンクを備えることもできる。
ホスト処理装置は主として、それぞれ要求に応じてエンド・ユーザに割り当てられる、多数の仮想マシンの作成をサポートするオペレーティング・システムである。仮想マシンは、ホスト・システムのホスト・プロセッサ・ハードウェアを時分割することによって、割り当てられたエンド・ユーザのタスクを処理する。一部のホスト・システムは、複数のハードウェア・プロセッサを含むことができ、複数のプロセッサが並列に走行するので、ホストにおいて真の同時処理が行われる。しかし、このようなシステムよりも、時分割技術によって仮想マシン用のデータ処理タスクを「並行して」実行する1個のハードウェア・プロセッサを備えているシステムの方が多い。このシステムは、端末のエンド・ユーザに対して透過的である。
データ処理ネットワークでは、2つの一般的な種類の端末が使用される。第1の種類は、キーボードと表示装置だけを備え、ホスト・システムと接続を行うのに必要な能力以外の処理能力をほとんどまたはまったく備えていないので、「ダム端末」と呼ばれる。第2の種類の端末は、インテリジェント・ワークステーション(IWS)と呼ばれ、それ自体の処理装置および補助周辺装置を備えている。IWSおよびパーソナル・コンピュータ(PC)という用語は、しばしば同じ意味に使用される。非常に魅力的な価格性能特性をもつPCが容易に入手できるようになったので、大部分の新しいネットワークはIWSタイプの端末で実施されており、多数の旧式ネットワークは、ダム端末をIWSタイプの端末で置き換えることによって修正されつつある。
ネットワーク上の各エンド・ユーザにユーザ自身の処理機能を提供すると、ホストCPUは、以前ホストで行われていた多数のデータ処理タスクを実行しなくて済むようになる。したがって、ホストCPUによって処理されるタスクの性質が変わり、現在では、ネットワーク上でホスト・システムの制御下で電子メールや電子カレンダなどのより高度な適用業務が実施されている。これらの適用業務は共に、いわゆる分散適用業務プログラムに関係している。分散適用業務プログラムでは、適用業務プログラムの一部分がホスト・システム上に常駐しており、別の部分がIWS端末上に常駐している。
分散適用業務プログラムの実行に利用可能な製品の調査が、Datamation、Vol.30、No.11(1984年7月15日)、pp.82−90に発表された、V.ラウジーノ(Rawzino)の論文“Typing micro−mainframe knot"に記載されている。
多数の現在のデータ処理ネットワークは、1974年に初めて記載されたIBM SNA体系に従って設計されている。それ以降、様々な新しい機能およびサービスが追加された。先に示唆したように、SNAネットワークは、データ・リンクによって相互接続された複数のノードとみなすことができる。これらのそれぞれのノードでは、経路制御要素が、論理装置(LU)と呼ばれる資源管理プログラム間で、経路情報単位(PIU)と呼ばれる情報パケットを送信する。これらの経路の論理接続をセッションと呼ぶ。したがって、データの移送ネットワークは、経路制御要素およびデータ・リンク制御要素によって定義される。
ノードは、複数のリンクによって接続し、複数のLUを備えることができる。SNA体系の枠組み内で様々な種類のLUセッションおよびプロトコルが確立されている。3つの一般的なクラスのセッションがある。第1のクラスは、SNAで指定されない。第2のクラスは端末に関係し、第3のクラスはプログラム間通信に関係する。たとえば、LU6は、LU2やLU7などの端末LUタイプの制限を回避する、SNAで定義されたプログラム間通信プロトコルを提供する。LU6.2は、拡張プログラム間通信(APPC)プロトコルと呼ばれる。
論理装置は、メッセージ・ポートよりも数が多い。LUは、1つまたは複数のローカル・プログラムに関係するプログラム間通信などのオペレーティング・システム・サービスを提供する。各適用業務プログラムは、LUを論理オペレーティング・システムとみなし、セッションによって接続された疎結合LUのネットワークを分散オペレーティング・システムとみなす。
LUはそのプログラムに、特定のハードウェアとその構成に応じて複数の資源を割り振る。利用可能となる資源にはリモートのものと、ローカル、すなわち提供業務プログラムと同じLUに関連するものがある。セッションは、各LUにおける論理資源とみなされるが、特定のLU間で共用される。
LUの制御機能は資源割振りである。プログラムは、資源へのアクセスを要求する。LU間、またはLU上で走行するプログラム間でメッセージを運ぶセッションは共用資源とみなされる。セッションは、複数の逐次的に実行される会話に分割される。
セッションによって接続された2つのLUは、セッションを、「会話」として使用するために適用業務プログラムに割り振る上で責任を共有する。したがって、適用業務プログラムは「トランザクション・プログラム」と呼ばれることがある。
LU間の接続が成功するのは、共通な1組のプロトコルがまず2つのLU間のセッションを活動化し、次にメッセージ・データの交換を推進するように機能する結果である。
IBM発行の、「SNAフォーマットおよびプロトコル解説書」整理番号SC30−3112)では、たとえばプログラミング言語の宣言を使用して、ネットワーク・エンティティと、メッセージを生成、処理、変換、送信、および返送するプログラムとの間を流れるメッセージのフォーマットを定義することによってSNAを記述している。
IBM発行の、「LU62用SNAトランザクション・プログラム解説書」(整理番号GC30−3084)では、実施製品によって提供される機能を記述する動詞を定義している。
SNA自体および、SNAとインテリジェント・ワークステーション間の通信との関係について概括した2つの論文が知られている。それは、S.サイモン(Simon)の“Peer−to−peer network management in an IBM SNA network"(IEEE Network、Vol.5、No.5、1991年3月、pp.30−34)と、L.D.パスモア(Passmore)の“Comming:a new SNA"(Datamation、Vol.31、No.22、1985年11月15日、pp.102−112)である。
コンピュータ間での適用業務プログラムの共用の様々な態様について記載した2つの欧州特許出願が知られている。それは、欧州特許出願第0371229号(Hewlett−Packard)と欧州特許出願第0424715号(IBM)である。
コンピュータ間での適用業務プログラムの共用について記載した1つの米国特許が知られている。それは、米国特許出願第4274139号である。
特願昭63209248号(富士通)は(英語版の要約が、Patent Abstracts of Japan、Vol.12、NO.498、pp.110に発表されている)、ワークステーションにデータを転送するホスト内の通信制御セクションを記載している。
[発明の開示]
本発明の目的は、あるコンピュータ上で、別のコンピュータ上のタスクから要求されたタスクを実行するための改良されたシステムを提供することである。
本発明によれば、この目的は、リモート・タスクが実行されるトランザクション処理環境と、ローカル・コンピュータに記憶され、ローカル・タスクがリモート・タスクにアクセスするために使用するハンドルとを関連付け、ローカル・タスクとローカル・データ伝送エージェントからアクセス可能なローカル共用バッファをローカル・コンピュータ内に設け、リモート・タスクとリモート・データ伝送エージェントからアクセス可能なリモート共用バッファをリモート・コンピュータ内に設けることによって解決される。
本発明の一実施例では、ローカル共用バッファはローカル・タスクによって提供され、リモート共用バッファはリモート・データ伝送エージェントによって提供される。ローカル・タスクは、機能プログラム、適用業務ナビゲータ、環境ルーチンのどれでもよい。
本発明の方法は、リモート・コンピュータとローカル・コンピュータの間で会話をオープンし、リモート・タスクが実行されるトランザクション処理環境を表すハンドルを割り当てるステップと、トランザクション処理環境で実行されるリモート・タスクを識別する機能名と、リモート・タスクが入力として必要とするデータを含む第1のデータ・ブロックとをローカル・コンピュータからリモート・コンピュータに送信するステップと、リモート・コンピュータで実行されるリモート・タスクからの出力を含む第2のデータ・ブロックをローカル・コンピュータで受信するステップと、リモート・コンピュータとローカル・コンピュータの間の会話をクローズするステップとを含む。
本発明の方法の一実施例では、ローカル・コンピュータとリモート・コンピュータの間の会話が第1のローカル・タスクによってオープンされ、第2のローカル・タスクが、第1のタスクが返すハンドルを使用して、トランザクション処理環境にリモート・タスク名を送信し、ローカル・コンピュータからリモート・コンピュータに第1のデータ・ブロックを送信する。
本発明の方法の他の実施例では、ローカル・コンピュータとリモート・コンピュータの間の会話は、第1のローカル・タスクがオープンし、第3のローカル・タスクが、第1のタスクから返されるハンドルを使用してクローズする。
【図面の簡単な説明】
第1図は、情報ハンドリング・システムの概要を示す図である。
第2図は、インテリジェント・ワークステーションを示す図である。
第3図は、SNAネットワークの概要を示す図である。
第4図は、本発明の概要を示す図である。
第5図は、伝送データ・エージェントの構造を示す図である。
第6図は、BusOpenUICXmitルーチン用のデータ・バッファの構造を示す図である。
第7図は、BusCloseUICXmitルーチン用のデータ・バッファの構造を示す図である。
第8図は、BusUICXmitルーチン用のデータ・バッファの構造を示す図である。
第9図は、本発明の1使用例を示す図である。
第10図は、本発明の他の使用例を示す図である。
[発明の詳細な説明]
第1図には、ホスト・コンピュータ20と、第2図に詳細に示す種類の対話型端末またはインテリジェント・ワークステーション(IWS)10aないしfとから成る、SNAネットワークなどのネットワーク30を備える情報処理システムの1例を示す。このシステムは、機能的には、各ワークステーションがネットワーク30を介してホスト・コンピュータ20および他のワークステーション10と通信できるように動作する。通信リンクは、様々なプロトコルのどれでも使用できるが、本発明の好ましい実施例ではSNA通信プロトコルを使用する。
ホスト・コンピュータ20は、たとえば、IBM/370、IBM/390システム、IBM PS/2、IBM AS/400、IBM RS/6000などのホスト処理装置を含む。ホスト処理装置は、IBM VM、IBM MVS、IBM OS/2、IBM VSEなどのオペレーティング・システムを実行する。
第2図に、第1図に示したワークステーション10のうち1つの機能構成要素を示す。ワークステーション10は、たとえばインテル(Intel)80386マイクロプロセッサなどのマイクロプロセッサ130と、半導体メモリ120と、マイクロプロセッサ130と半導体メモリ120の間の対話の他に入出力動作も制御するように機能する制御ブロック140とを含む、処理装置110を備えている。
ワークステーションはさらに、表示装置150、マウス165、キーボード160、プリンタ170、記憶装置190、およびモデム180を含む1群の通常の周辺装置を含む。前述の機能ブロックの詳細は従来の技術で述べられているので、各ブロックについての簡単な機能的説明と、ブロック間の対話の説明だけを行うが、これで、当業者に本発明を理解するための基礎を提供するのに十分である。
たとえば、処理装置110は、IBM PS/2モデル80システムなどのIBMパーソナル・コンピュータのシステム装置に対応する。処理装置110は、オペレーティング・システム・プログラムを備えており、このプログラムは、通常はPS/2モデル80を実行するのに使用されるIBMマルチタスキングOS/2オペレーティング・システムでよい。オペレーティング・システム・プログラムは、ユーザが実行することを選択した適用業務プログラムと共に半導体メモリ120に記憶されている。システムが分散適用業務プログラムをサポートするときは、分散適用業務プログラムの一部だけ、たとえば部分Aをワークステーション10に記憶し、他方の部分、部分Bはホスト・コンピュータ20または他のワークステーション10に記憶する。これらのプログラムの各部分は、半導体メモリ120の容量と適用業務プログラムのサイズに応じて、必要なときに、たとえば40メガバイト・ハード・ディスク・ドライブおよびディスケット・ドライブを含む記憶装置190から半導体メモリ120に転送される。記憶装置190の基本機能は、ワークステーション10によって使用され、必要に応じて半導体メモリ120に容易に転送できるように、プログラムおよびデータを記憶することである。ディスケット・ドライブの機能は、プログラムおよびデータをワークステーション10に入力する削除可能記憶機能と、データを、他のワークステーション10またはホスト・コンピュータ20上で使用するために容易に転送できる形式で記憶する手段とを提供することである。
表示装置150、マウス165、およびキーボード160があいまって、端末の対話性を提供する。というのは、通常の動作では、オペレータによる特定のマウス・コマンド・キーストロークに対するシステムの解釈が、ほぼあらゆる状況において、その時点でオペレータに対して表示されているものに依存するからである。
ある状況では、オペレータがマウス165をクリックするか、あるいはシステムにコマンドを入力することによって、システムに一定の機能を実行させる。他の状況では、システムが、一般にプロンプト型のメニュー/メッセージ画面を表示することによって、あるデータの入力を要求する。オペレータとシステムの間の対話の深さは、オペレーティング・システムと適用業務プログラムの種類によって変わる。
第2図に示すワークステーション10は、プリンタ170を含むこともできる。プリンタ170は、データのハード・コピー出力を提供するように機能する。最後に、モデム180は、第2図のワークステーション10からのデータをホスト・コンピュータ20または他のワークステーション10に転送するように機能する。
第3図に、SNA型ネットワークで使用される様々な層のプログラミングを示す。本発明によるSNAプログラミング環境は、図のように7つの層から構成されているとみなすことができる。上部層210はエンド・ユーザ層であり、エンド・ユーザ・プログラムから構成され、本発明のリモート・データ伝送サービス220を含む。
第2の層230は、NAUサービス層と呼ばれる。このサービスには、たとえばプレゼンテーション・サービス、端末サービス、および特定の適用業務用のデータのフォーマッティングが含まれる。層240は、データ・フロー制御層と呼ばれる。この層の機能は、送信/受信モードを維持し、高レベルのエラー訂正を実行することである。層250は、データ伝送制御層である。この層の機能には、暗号化および非暗号化や、セッション・レベルの歩調合せなどがある。層260は経路制御層であり、経路指定、データ単位のセグメント化、および仮想経路歩調合せを行う。データ・リング層は層270である。この層の機能は、リンク・レベル・アドレス指定、順序付け、およびエラー制御を提供することである。最後の層280は物理層であり、たとえば様々な信号用のコネクタ上でのピンの割り当てを定義する。
APPCは、NAUサービス、データ・フロー制御、および伝送制御を定義する。前述のIBM System Journalのp.306ページに記載されているように、LU6.2会話機能を定義する方法では、動詞と呼ばれるプログラミング言語様ステートメントが使用される。セッション・フローを生成する手順論理によって完全に定義された動詞によるドキュメンテーションは、英語の散文よりも精度が大幅に高い。1組の動詞が、適用業務プログラム・インターフェースではなくプロトコル境界として参照される。
プレゼンテーション・サービス構成要素は、動詞を解釈し、各動詞用のサブルーチンを含むものとみなすことができる。LU資源管理プログラムは、会話資源を割り振り、セッションに会話を割り当て、空きセッションの待ち行列と保留中の割振り要求を維持する。製品中のそれに等価な構成要素も、製品固有の方法でローカル資源を割り振る。下記のLU6.2動詞の機能は、前述のIBM System Journalのp.307に記載されている。論じられているLU6.2動詞は、SEND_DATA(データ送信)、RECEIVE_AND_WAIT(受信後待機)、PREPARE_TO_RECEIVE(受信準備)、FLUSH(フラッシュ)、REQUEST_TO_SEND(送信要求)、SEND_ERROR(送信エラー)、CONFIRM(確認)、ALLOCATE(割振り)、DEALLOCATE(割振り削除)である。
ALLOCATE動詞は、指定されたパートナー・プログラムへの会話を構築することによって他のLUで新しい活動を開始する。指定されたパートナーは、実行状態になり、該パートナーを開始した会話へのアドレス可能性を与えられる。
ALLOCATE動詞は、以下のものを含む複数のパラメータを含む。
1.LU_NAME.これは、パートナー・プログラムが位置するLUの名前である。
2.TPN.TPUは、会話を希望するパートナー・プログラムのトランザクション・プログラム名である。
3.MODE_NAME.MODE_NAMEは、会話が提供する移送サービスの種類を指定する。たとえば、SECURE会話、BULK会話、またはLOW_DELAY会話を要求することができる。LUは、適切なMODE_NAMEとのセッションを使用して会話を搬送する。
会話のターゲットは新たに作成されたプロセスまたはタスクである。すなわち、任意の瞬間におけるネットワーク中の分散処理は、多数の独立分散トランザクションから構成され、各トランザクションは、会話によって接続された2つ以上のトランザクション・プログラムから構成される。DEALLOCATE動詞は、会話を終了させる。各パートナーがDEALLOCATEを発行できるかぎり、会話は、1つの短いメッセージのものから、長いまたは短いメッセージの多数の交換まで様々である。会話は無限に継続することができ、論理装置の故障か、または会話を搬送するセッションによってのみ終了する。トランザクション・プログラムは、DEALLOCATEでは終了せず、プログラム自体の実行を終了するまで継続し、異常終了するかあるいは制御オペレータの処置によって終了する。
ネットワーク適用業務プログラムとサービス・トランザクション・プログラムは共に、論理装置によって提供される実行サービスを使用する。サービス・トランザクション・プログラムは、他のトランザクション・プログラムと同様に論理装置上で走行する。サービス・トランザクションは、人間のオペレータと会話し、あるいは純粋なプログラム式オペレータとして走行する。多数のサービス・トランザクション・プログラムは、ローカル論理装置だけに影響を及ぼす。その1例は、1組の現活動トランザクション・プログラムを表示するコマンドである。
他の制御トランザクション、特にセッションに関する制御トランザクションは、他の論理装置と、他の論理装置にある適用業務に影響を及ぼすことができる。たとえば、会話を使用しているトランザクションを途中で終了するローカル・コマンドは、会話を異常終了させる。これは、会話を共用しているトランザクション・プログラムに提示するためにパートナー論理装置に送らなければならない状態変更である。また、2つのLUによって共用される1つまたは複数のセッションを活動化するとの決定は、一方のLUオペレータが行うことができるが、他方の論理装置に通信しなければならない。SNA用の拡張プログラム間通信は、特にセッションの活動化および非活動化のための、LU間制御および調整を行う、いくつかの制御オペレータ動作を含む。分散サービス・トランザクション・プログラムがあるLUで開始すると、パートナーLUのパートナー・トランザクション・プログラムへの会話を生成する。その後、2つのトランザクション・プログラムが協力して、所望の制御活動を実行する。
第4図に、本発明のリモート・データ伝送サービスがどのように動作するかを示す。各ワークステーション10aないしfとホスト・コンピュータ20は、データ伝送エージェントと呼ばれる特殊構成要素を備えている。第4図に示した例では、2種類のデータ伝送エージェントが示されている。ローカル・データ伝送エージェント410は、ローカル・コンピュータ(または論理装置)400、通常はタスクを実行するワークステーション10内に提供される。リモート・データ伝送エージェント420は、リモート・コンピュータ405(または他の論理装置)、すなわち他のワークステーション10またはホスト・コンピュータ20内に提供される。リモート・コンピュータ405は、ローカル・コンピュータ400上で走行するタスクによって開始されるタスクを実行する。ローカル・データ伝送エージェント410とリモート・データ伝送エージェント420は、ネットワーク30を介して接続される。
図4の例では、データ伝送サービス要求元415と総称される3種のタスクが、ローカル・コンピュータ400上に提供される。ローカル・コンピュータ400は、リモート・コンピュータ405上のタスクを呼び出すことができる。3種のタスクとは、機能プログラム440、適用業務ナビゲータ450、および環境ルーチン460である。機能プログラム440とは、走行中の適用業務に関するデータを修正できるプログラムである。適用業務ナビゲータ450は、ユーザがワークステーション10およびホスト・コンピュータ20上で利用可能な適用業務中をナビゲートできるようにする。環境ルーチン460は、ユーザが作業中の環境を修正できるようにする。これらのタスクはそれぞれ、リモート・コンピュータ405上で走行するタスクの呼出しを発行し、リモート・コンピュータ405上のこれらのタスクにデータ・ブロックを渡し、該タスクからデータブロックを受け取ることができる。
リモート・コンピュータ405は、本発明の上記の実施例では1種のタスクだけを有する。リモート機能430は、呼出し可能モジュールであり、ローカル・コンピュータ400上で走行するタスクによって呼び出すことができ、ローカル・コンピュータ400上のタスクからデータ・ブロックを受け取り、該タスクにデータ・ブロックを返すことができる。
ローカル・データ伝送エージェント410は、データ伝送サービス要求元415に接続されている。ローカル・データ伝送エージェント410の機能は、リモート・コンピュータ405に会話を割り振り、リモート・コンピュータ405のリモート・データ伝送エージェント420にデータ・ブロックおよび機能名を送り、リモート・データ伝送エージェント420またはリモート・システム405からデータ・ブロックを受け取り、最後にリモート・コンピュータ405への会話の割当てを解除することである。
リモート・データ伝送エージェント420は、ローカル・データ伝送エージェント410からデータ・ブロックおよびリモート機能の名前を受け取り、指定されたリモート機能430を開始し、受け取ったデータ・ブロックをリモート機能430に転送し、指定されたリモート機能430から返されたデータ・ブロックを、リモート機能430の名前を送信したローカル・データ伝送エージェント410に送り返す機能を有する。
データ伝送エージェント410および420の機能は、第5図を検討すればさらによく理解することができる。第5図は、一連のサービス・ユニット500に接続された伝送データ・サービス要求元415を示す。一連のサービス・ユニット500は、制御装置505に接続されている。制御装置505は、一連のターゲット処理環境510aないしdに接続されている。ターゲット処理環境510aないしdはそれぞれ、クライアント520aないしdと、サーバ530aないしdを含んでいる。制御装置505、一連のサービス・ユニット500、およびクライアント520aないしdは、第4図のローカル・データ伝送エージェント410に含まれている。サーバ530aないしdは、第4図に示す1台または複数のリモート・コンピュータ405内にある。クライアント520aないしdとサーバ530aないしdは、ネットワーク30およびモデム180を介して相互に接続される。
ローカル・コンピュータ400上で走行する適用業務は、リモート・コンピュータ405に1つまたは複数のサービスを要求することができる。サービスは、伝送データ。サービス要求元415を呼び出すことによって要求され、伝送データ・サービス要求元415は要求された各サービス用のサービス・ユニット500を作成する。制御装置505は、適用業務から発行されたそれぞれのサービス要求を、要求されたターゲット処理環境510に経路指定する。制御装置505は、ローカル・コンピュータ中で走行する適用業務から供給されたトークンを使用して、必要なターゲット処理環境510を指定する。ターゲット処理環境510内で要求されたサービスが終了した後、制御装置505およびサービス・ユニット500を介して適用業務に結果が返される。
ターゲット処理環境510は、複数のサービス・ユニット500によってアドレスすることができる。たとえば、ローカル・コンピュータ400上で実行され、共にリモート・コンピュータ405内の同じサービスを使用したいと希望する、2つの適用業務、またはローカル・コンピュータ400内で走行し、同じサービスを使用したいと希望する、同じ適用業務の2つの異なる部分がその例である。この場合、ローカル・コンピュータ400内で2つの異なるサービス・ユニット500が作成できる。サービス要求は、ターゲット処理環境510で待ち行列に入れられ、連続的に実行される。2つの異なるサービス・ユニット500を作成すると、1つの適用業務プログラムが、2つの異なるターゲット処理環境510と非同期的に対話することができる。
クライアント520およびサーバ530は互いにユーザの3つの機能プリミティブ、すなわちSRV_OPEN、SRV_CLOSE、およびSRV_RPCを通信しあう。ターゲット処理環境510を呼び出す前には、SRV_OPEN機能プリミティブを使用する必要がある。こうすると、制御装置505は、クライアント520を作成し、周知のSNA動詞(ALLOCATE、上記参照)と前述のトークンを使用して、リモート機能430を実行するサーバ530を含む、所望のリモート・コンピュータ405との会話を確立する。その会話を特徴付けるハンドルが制御装置505に返される。SRV_CLOSE機能プリミティブを呼び出すと、クライアント520とサーバ530との間の会話が遮断され、ハンドルは削除される。SRV_CLOSE機能プリミティブはDEALLOCATE SNA動詞を使用する。SRV_CLOSEプリミティブおよびSRV_OPENプリミティブは、どのデータ伝送サービス要求元415からも呼び出せる。これらのプリミティブは、異なるデータ伝送サーバ要求元415から発行することができる。すなわち、あるデータ伝送サービス要求元415が接続を確立し、別のデータ伝送サービス要求元415が切断することができる。クライアント520とサーバ530との間の接続は、クローズされるまで常にオープンのままであり、後述のように、会話を確立したデータ伝送サービス要求元415がその会話を使用しなくなった場合でもそうである。
SRV_RPC機能プリミティブは、データ伝送サービス要求元415がハンドルを使用して呼び出す。このプリミティブにより、任意の長さのデータをクライアント520からサーバ530に、またサーバ530からクライアント520に転送することができる。適用業務プログラムがSVC_RPC機能プリミティブを使用すると、サービス・ユニット500がデータ伝送サービス要求元415によって作成される。異なる適用業務によって異なるサービス・ユニット500が作成できる。2つの異なるサービス・ユニット500がターゲット処理環境510にデータを同時に転送したいと希望する場合、要求はサービスユニット500の待ち行列に入れられる。
ローカル・コンピュータ400上で走行する適用業務プログラムがリモート・コンピュータ405上で走行するタスク(たとえばリモート機能430)を呼び出したいものと仮定する。この場合、ローカル・コンピュータ400とリモート・コンピュータ405の間に会話を確立しなければならない。これを行うために、タスクを実行するデータ伝送サービス要求元415は、ローカル・データ伝送エージェント410によって提供されるBusOpenUICXmit(OpenDataStruct,rc)を呼び出す。このルーチンは、前述のSRV_OPEN機能プリミティブと等価であり、2つのパラメータ、OpenDataStructとrcをもつ。第1のパラメータOpenDataStructは、リモート・コンピュータ410内のリモート・データ伝送エージェント420との会話をオープンするのに必要なすべての入出力データを含むデータ・バッファを指す。第2のパラメータrcは、このルーチンの呼出しからの戻りコードである。このパラメータは、会話が確立されたか、あるいは問題が発生したことを示し、可能なら、問題の種類を示す指示を与える。
データ・バッファの構造を第6図に示す。SymDestは、リモート機能430がそこで走行するサーバ530を含むリモート・コンピュータ405を識別する記号宛先名を表す。記号宛先名は、IBM SNAネットワーキング・サービスが設置およびカストマイズ時に利用することができる。記号宛先名は、ALLOCATE動詞のLU_NAME、TPN、およびMODE_NAMEパラメータに対応する。UserIdはリモート・コンピュータ用のログオン・ユーザIDであり、PassWdはログオン・パスワードである。この2つの値は、カストマイズ・プロセス中に定義された指定パスワードを使用する場合に空白になることがある。TimeoutValueは、不良戻りコードrcが返される前にローカル・システム400とリモート・システム405の間に会話が確立されるのにどれだけ待つ必要があるかを指定する値である。XmitHandleは、この会話を表すために返されるハンドルである。XmitHandleは、リモート機能430への後続のあらゆるデータ転送に使用され、会話をクローズするのにも使用される。最後に、RemoteSysはオペレーティング・システムの種類に関する指示を含む。この情報によって、呼出し側はリモート・システムが、ASCII、EBCDIC、その他の文字セットのうちどれを使うのかを判定することができる。
ローカル・コンピュータ400とリモート・コンピュータ405の間の会話をクローズするには、伝送データ・サービス要求元415がルーチンBusCloseUICXmit(CcloseDataStruct,rc)を呼び出す。このルーチンは、前述のSRV_CLOSEルーチンと等価である。第1のパラメータCloseDataStructは、リモート・コンピュータ410内のリモート・データ伝送エージェント420との間の会話をクローズするのに必要なすべての入出力データを含むデータ・バッファを示す。第2のパラメータrcは、このルーチンの呼出しの戻りコードである。このパラメータは、会話が確立された、あるいは問題が発生したことを示し、可能なら、問題の種類を示す指示を与える。
データ・バッファの構造を第7図に示す。XmitHandleは、会話を表すのに使用されるハンドルである。Close Parmは、2つの値のうち1つを含むことができる割振り解除フラグである。1つの値は、他の伝送データ・サービス要求元415からの要求が保留中であり、サービス・ユニット500の待ち行列に入っている場合でも、会話をただちにクローズすべきことを示す。この値を使用すると、不良戻りコードrcが返される。第2の値は、サービス・ユニット500内の保留中のサービス要求がなくなったときだけ会話がクローズされることを示す。必要なら、closeコマンド自体を待ち行列に入れ、サービス・ユニット500内のすべてのサービス要求が処理された後に処理する。後でリモート機能430に要求が発行されても拒否され、不良戻りコードが返される。
伝送データ・サービス要求元415は、ローカル・コンピュータ400とリモート・コンピュータ405の間で会話をオープンした後、リモート機能430を利用することができる。これは、ルーチンBusUICXmit(XmitDataStruct,rc)を呼び出すことによって行われる。このルーチンは、前述のSRV_RPCルーチンと等価である。第1のパラメータXmitDataStructは、データをデータ・サービス要求元415からリモート機能430に転送するのに必要なすべての入出力データを含むデータ・バッファを指す。第2のパラメータrcは、このルーチンの呼出しの戻りコードである。このパラメータは、会話が確立された、あるいは問題が発生したことを示し、可能なら、問題の種類を示す指示を与える。
データ・バッファの構造を第8図に示す。XmitHandleは、使用する会話を表すハンドルである。XmitLibは、サーバ510内のリモート機能430があるライブラリの名前である。一部のオペレーティング・システム、たとえばCMSやMVSでは、この値は必要でない。OS/2では、この値は動的リンク・ライブラリを表す。XmitServは、リモート・コンピュータ405上で呼び出されるリモート機能430の名前である。InputBufは、伝送データ・サービス要求元415によって提供されるリモート機能430に伝送すべきデータを含む共用メモリ・ブロックのアドレスである。InputBufは、伝送データ・サービス要求元415とクライアント520の両方からアクセス可能でなければならない。InputBufLenは、InputBufによって指定されたデータ・ブロックの長さである。OutputBufは、リモート機能430から返される、データ伝送サービス要求元415が使用するデータを含む共用メモリ・ブロックのアドレスである。OutputBufも、伝送データ・サービス要求元415とクライアント520の両方からアクセス可能でなければならない。OutputBufLenは、OutputBufによって指定されるデータ・ブロックの長さである。XmitServLinkageは、XmitServの連係情報を含む。TimeoutValueは、データ伝送サービス要求元415に戻りコードrcが返されるまでに非待機要求がリモート・コンピュータ405からの応答を待つ時間の長さを指定する。不良戻りコードrcが返された後、この特定の会話のためにサービス・ユニット500の待ち行列に入っている以後のすべてのBusUICXmitサービス呼出しが終了して不良戻りコードrcを返し、会話がクローズされる。最後に、XmitServRCは、リモート・システム405上で走行するリモート機能430が完了することによってリモート伝送エージェント420に返される、リモート機能430の戻りコードである。
伝送データ・サービス要求元415がルーチンBusUICXmit(XmitDataStuct,rc)を呼び出すと、その呼出しはローカル・データ伝送エージェント410に渡される。データ伝送エージェント410は共用入力バッファにアクセスし、そのバッファに含まれるデータをリモート・データ伝送エージェント420に渡す。この転送は、周知のSNAまたはその他のデータ伝送方法を使用して行われる。リモート・データ伝送エージェント420では、着信データが他の共用メモリに渡され、別のルーチンXmitServ(InputBufAdr,InputBufLen,OutputBufAdr,OutputBufLen,rc)が呼び出される。InputBufAdrは、リモート・データ伝送エージェント420によって提供される共用データ・ブロックのアドレスである。このデータ・ブロックには、リモート機能430が必要とする入力データが供給される。このデータブロックは、BusUICXmit呼出しによってローカル・データ伝送エージェント410から渡された情報だけを含む。本発明の一実施態様では、このデータ・ブロックは、バイトの2進ストリームと解釈され、ASCII/EBCDIC変換は実行されない。別の実施態様では、この変換が実行される。InputBufLenは、InputBufAdrによって指定されるデータ・ブロックの長さである。OutputBufAdrは、リモート・データ伝送エージェント420によって提供されるデータ・ブロックを含む共用出力バッファのアドレスである。そこでリモート機能430は、そのデータを返さなければならない。このデータ・ブロックは、BusUICXmit呼出しが完了した後にローカル・データ伝送エージェント410に渡される情報だけを含む。入力時には、OutputBufLenは、呼出し側によってローカル・コンピュータ400上に供給され、OutputBufAdrによって指定される、出力データ・ブロックの長さを記憶する。出力時には、共用出力バッファがデータを保持するのに十分な大きさである場合、リモート・データ伝送エージェント420によって呼び出されたリモート機能430は、OutputBufAdrを介して実際に返されるデータ・ブロックの長さをパラメータOutputBufLenに記憶しなければならない。共用出力バッファが、リモート機能430によって実際に生成されたデータ・ブロックを格納するのに十分な大きさでない場合、このオーバーフローをデータ伝送サービス要求元415にしなければならない。これはたとえば、適切な戻りコードrcを生成し、完全なデータを保持するのに必要な長さをOutputBufLenに記憶することによって行うことができる。この値は、BusUICXmit呼出しのOutputBufLenとしてデータ伝送サービス要求元415に返される。データ伝送サービス要求元415はまた、できるだけ多くの出力データ・ブロック、すなわちOutputBufLenの入力値によって指定された数のバイトを受信する。データ伝送サービス要求元415は次に、矯正処置を実施する。XmitServルーチンの戻りコードrcは、BusUICXmitルーチンのXmitServRCパラメータとしてデータ伝送サービス要求元415に渡される。
リモート・データ伝送エージェント420が、BusUICXmit呼出しのパラメータXmitServによって指定されたリモート機能430を動的にロード、連係、および実行できるようにするために、リモート機能を、リモート・コンピュータ405上で実行内容に応じて編成しなければならない。オペレーティング・システム独立条件では、リモート機能430は、「動的リンク可能」ライブラリの要素でなければならない。BusUICXmit呼出しのパラメータXmitLibは、リモート機能430が動的に連係されるライブラリを指定する。
MVSでは、パラメータXmitLibは意味をもたない。なぜなら、リモート機能430は、周知のMVS方式(LinkLib、LPA、STEPLIBなど)で連結されたLOADライブラリのメンバであると想定されるからである。リモート・データ伝送エージェント420は、パラメータXmitServを使用して、XmitServによって、その入口点を取り出すために指定されるリモート機能430をロードし、あるいはXmitServで指定されたリモート機能430を呼び出す。
VMでは、パラメータXmitLibは意味をもたない。なぜなら、リモート機能430は、周知のVM方式で連結されたLOADライブラリのメンバであると想定されるからである。すなわち、XmitServは、GLOBAL LOADLIB loadlib_1 loadlib_2でアクセス可能になるLOADLIBの1つに含まれなければならない。ライブラリは、指定されたシーケンスで検索される。このステートメントは、カストマイズ中に適宜設定しなければならなかったユーザIDのPROFILE EXECから発行される。リモート・データ伝送エージェント420は、パラメータXmitServを使用して、XmitServによってその入口点を取り出すために指定されたリモート機能430をロードし、あるいはXmitServで指定されたリモート機能430を呼び出す。
OS/2では、パラメータXmitLibは動的リンク・ライブラリDLLを表す。リモート・データ伝送エージェント420は、パラメータXmitLibおよびXmitServを次のように使用する。まず、リモート・データ伝送エージェント420は、周知のDosLoadModuleCallを使用して、パラメータXmitLibで指定されるDLLをロードする。リモート・データ伝送エージェント420は次に、リモート機能430の入口点を得るためにパラメータXmitServに対するDosFetProcAddr呼出しを発行する。最後に、リモート・データ伝送エージェント420はリモート機能430を呼び出す。
リモート・データ伝送サービスがどう動作するのかを示すのに役立つ2つの例を挙げる。まず、ローカル・コンピュータ400のユーザが適用業務ナビゲータ450を使用したいと希望しているものと仮定する。この適用業務ナビゲータ450は、汎用オブジェクトおよびビュー・ハンドラでも、適用業務固有の適用業務ナビゲータでもよい。前述のように、適用業務ナビゲータ450は、伝送データ・サービス要求元415の1例である。第9図は、この例を例示するのに役立つ。
ローカル・コンピュータ400のユーザに、表示装置150上に表示される、一連のプレゼンテーション・フロント・エンド910aないしcの1つが提示される。プレゼンテーション・フロント・エンド910上に、一連のアイコンが表示される。ユーザはマウス165を使用して、1つのアイコンをクリックし、それによって適用業務ナビゲータ450を呼び出す。適用業務ナビゲータ450はユーザ・インタフェース・コンダクタ920を使用して、ローカル機能プログラム930aを呼び出す(ステップ<1>)。ユーザ・インタフェース・コンダクタ920は、選択された処置を表すローカル機能プログラム930aを呼び出す。
ローカル機能プログラム930aが1つのリモート機能430を使用する必要があるものと仮定する。そのためには、ローカル・データ伝送エージェント410のルーチンBusOpenUICXmitを呼び出して、必要なリモート・コンピュータ405との会話を確立させる(ステップ<2>)。必要なリモート・コンピュータ405は、BusOpenUICXmit呼出しのパラメータSymDestによって指定される。ローカル・データ伝送エージェント410は、リモート・コンピュータ405内のリモート・データ伝送エージェント420を呼び出すことによって、LU6.2とリモート・コンピュータ405の会話を確立する。BusOpenUICXmit呼出しから戻るとき、会話が確立されており(ステップ<3>)、他のローカル機能プログラム930aおよび930cが共用できるハンドルXmitHandleも適用業務ナビゲータ450によって活動化される。この共用プロセスは、第9図には反映されていない。
次に、ローカル機能930aは、ローカル・データ伝送エージェント410ルーチンBusUICXmitを呼び出して、リモート機能430aにデータを渡し、このリモート機能430aを呼び出す(ステップ<4>)。リモート機能430aの名前およびデータは、前述のようにBusUICXmit呼出しのパラメータとして指定される。ローカル・データ伝送エージェント410は、このデータをリモート・コンピュータ405上のリモート・データ伝送エージェント420に渡す。
リモート・データ伝送エージェント420は、リモート機能430aを呼び出し(ステップ<5>)、リモート機能430aから戻るとき(ステップ<6>)、リモート・コンピュータ405からのデータをローカル・コンピュータ400に渡す。次にデータは、ローカル・データ伝送エージェント410によって呼出し側ローカル機能930aに返される(ステップ<7>)。ローカル機能プログラム930aは、リモート・コンピュータ430からの2進データをどのように処理するか、および他のローカル機能プログラム930b、930cのどちらがデータにアクセスするかを決定する。この例では、データが、共用メモリ領域940を介して適用業務ナビゲータ450に利用可能になっている(ステップ<8>)。
適用業務ナビゲータ450は、ユーザの対話によってトリガされると、他のローカル機能プログラム930aないしcを呼び出すことができる。これらのローカル機能プログラム930aないしcは、他のリモート機能430bを呼び出すことができる。ローカル機能プログラム930aないしcは、リモート・コンピュータ405との会話がすでに存在していることを知っているので、ステップ<4>ないし<7>を繰り返すことができる。そのようなシナリオをステップ<9>ないし<13>に示す。これは、ローカル機能プログラム930bによる他のリモート機能430bの実行を示している。
最後に、ユーザはタスクの終了を決定する。適用業務ナビゲータ450はローカル機能プログラム930cを呼び出し、ローカル機能プログラム930cはすべてのクリーンアップ活動を呼び出すと共に、ローカル・データ伝送エージェント410内のBusCloseUICXmitルーチンを呼び出す。これによって、会話がクローズされ(ステップ<14>ないし<16>に示す)、すべてのローカル適用業務データがクリアされる。
リモート・データ伝送サービスの使用についての第2の例を第10図に示す。この例では、ユーザ・インタフェース・コンダクタ920は使用しない。なぜなら、適用業務ナビゲータ450がリモート・コンピュータ405に記憶されたデータの修正を実行しないからである。そのような使用の1例は、リモート・コンピュータ405に記憶されたリモート・データ・バンクの問合せである。
あるユーザ対話のために、適用業務ナビゲータ450が、リモート・コンピュータ405に記憶されたあるデータを必要とするものと仮定する。したがって、ステップ<21>で、適用業務ナビゲータ450は、ローカル・データ伝送エージェント410のルーチンBusOpenUICXmitを呼び出し、リモート・データ伝送エージェント420を呼び出すことによって、必要なLU6.2とリモート・コンピュータ405の会話を確立する。必要なリモート・コンピュータは、BusOpenUICXmit呼出しのSymDestパラメータによって指定される。ローカル・データ伝送エージェント410から戻るときに、会話が確立される(ステップ<22>)。
適用業務ナビゲータ450は次に、ステップ<23>に示すように、ローカル・データ伝送エージェント410のルーチンBusUICXmitを呼び出して、リモート機能430にデータを渡す。リモート機能430の名前とデータは、BusUICXmit呼出しのパラメータとして指定され、ローカル・データ伝送エージェント410によって、リモート・コンピュータ405上のリモート・データ伝送エージェント420に渡される。
リモート・データ伝送エージェント420は次に、ステップ<24>に示すようにリモート機能を呼び出す。リモート・データ伝送エージェント420は、リモート機能430から戻るとき(ステップ<25>)、リモート・コンピュータ405からのデータをローカル・コンピュータ400に渡す。このデータは、ローカル・データ伝送エージェント410によって呼出し側適用業務ナビゲータ450に渡される(ステップ<26>を参照)。呼出し側適用業務ナビゲータは、このデータをメモリ域1000に記憶し、ナビゲーションにそれを使用することができる。
最後に、ユーザはタスクの終了を決定する。適用業務ナビゲータ450は、他のクリーンアップ活動と並んで、ローカル・データ伝送エージェント410のルーチンBusCloseUICXmitを呼び出して、会話の割振りを解除し(ステップ<27>および<28>)すべてのデータをクリアする。
Claims (4)
- ネットワークを介して接続されるローカル・コンピュータとリモート・コンピュータとにおいて、ローカル・コンピュータ(10、400)上で走行するローカル・タスク(415)によって呼び出されるリモート・コンピュータ(20、405)上のリモート・タスク(430)を実行する方法であって、
リモート・コンピュータ(20、405)とローカル・コンピュータ(10、400)との間の会話をオープンするため、ローカル・コンピュータ(10、400)において、制御装置(505)によりクライアント(520)を作成し、ローカル・タスク(415)によりリモート・コンピュータ(20、405)内のサーバ(530)と前記クライアント(520)との会話を確立する機能(SRV_OPEN;BusOpenUICXmit)を呼び出し、前記サーバ(530)と前記クライアント(520)とを含み、前記制御装置(505)に接続されたターゲット処理環境(510)を形成させ、前記会話を表すハンドル(XmitHandle)を前記制御装置(505)に送るステップと、
ローカル・コンピュータ(10、400)において、前記ハ ンドルを使用して、ローカル・タスク(415)によりクライアント(520)およびサーバ(530)相互間のデータ 転送機能(SRV_RPC;BusUICXmit)を呼び出し、前記ターゲット処理環境(510)で実行されるリモート・タスク(430)を呼び出すための機能名(XmitServ、XmitLib)と第1のデータ・ブロックとを、ローカル・コンピュータ(10、400)からリモート・コンピュータ(20、405)に送信し、ローカル・コンピュータ(10、400)において、リモート・コンピュータ(20、405)で実行される リモート・タスク(430)から、前記リモート・タスク (430)の応答として返される第2のデータ・ブロック を受信するステップと、
ローカル・コンピュータ(10、400)において、前記ハ ンドルを使用して、ローカル・タスク(415)によりローカル・コンピュータ(10、400)とリモート・コンピュータ(20、405)との間の会話を遮断し、ハンドルを取り消す機能(SRV_CLOSE;BusCloseUIDXmit)を呼び出し、リモート・コンピュータ(20、405)とローカル・コンピュータ(10、400)との間の会話をクローズするステップと
を含み、ターゲット処理環境(510)とローカル・タス ク(415)との間で確立されたあらゆる会話について、 ローカル・コンピュータ(10、400)内に、前記ターゲ ット処理環境(510)にアドレスするための1以上のサ ービス・ユニット(500)を確立することを特徴とする方法。 - ローカル・コンピュータ(10、400)が、ターゲット処理環境(510)で実行されるリモート・タスク(430)を呼び出すための機能名(XmitServ、XmitLib)を前記ターゲット処理環境(510)に送ると共に、リモート・コンピュータ(20、405)に第1のデータ・ブロックを送信するステップと、ローカル・コンピュータ(10、400)が、リモート・コンピュータ(20、405)で実行されるリモート・タスク(430)の応答として返 される第2のデータ・ブロックを受信するステップとにおいて、前記ハンドルと、第1のデータ・ブロックのメモリ・アドレス(InputBuf)と、第2のデータ・ブロックのメモリ・アドレス(OutputBuf)と、リモート・タスク(430)の名前(XmitServ、XmitLib)とを含むデータ・バッファ(第8図)を示すパラメータを呼び出すステップを含むことを特徴とする、請求項1に記載の方法。
- 第1のローカル・タスク(415)により前記会話を確立する機能(SRV_OPEN;BusOpenUICXmit)を呼び出し、ローカル・コンピュータ(10、400)とリモート・コンピュータ(20、405)との間の会話をオープンし、
第2のローカル・タスク(415)により前記データを転送する機能(SRV_RPC;BusUICXmit)を呼び出し、第1のローカル・タスク(415)によって返されるハンドルを使用して、リモート・タスク名(XmitServ、XmitLib)と第1のデータ・ブロックとを、ローカル・コンピュータ(10、400)からリモート・コンピュータ(20、405)に送ることを特徴とする、請求項1または2のいずれかに記載の方法。 - 第1のローカル・タスク(415)により前記会話を確立する機能(SRV_OPEN;BusOpenUICXmit)を呼び出し、ローカル・コンピュータ(10、400)とリモート・コンピュータ(20、405)との間の会話をオープンし、
第3のローカル・タスク(415)により前記会話を遮断し、ハンドルを取り消す機能(SRV_CLOSE;BusCloseUIDXmit)を呼び出し、ローカル・コンピュータ(10、400)とリモート・コンピュータ(20、405)との間の会話が、第1のローカル・タスク(415)によって返された ハンドルを使用してクローズされることを特徴とする、請求項1ないし3のいずれかに記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP1992/001382 WO1993025962A1 (en) | 1992-06-18 | 1992-06-18 | Distributed applications processing network |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08502841A JPH08502841A (ja) | 1996-03-26 |
JP3612652B2 true JP3612652B2 (ja) | 2005-01-19 |
Family
ID=8165664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50104794A Expired - Fee Related JP3612652B2 (ja) | 1992-06-18 | 1992-06-18 | ローカル・コンピュータ上で実行されるローカル・タスクによってリモート・コンピュータ上のリモート・タスクを実行する方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5606493A (ja) |
EP (1) | EP0646260B1 (ja) |
JP (1) | JP3612652B2 (ja) |
CA (1) | CA2098418C (ja) |
DE (1) | DE69220093T2 (ja) |
IL (1) | IL105568A (ja) |
WO (1) | WO1993025962A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10203983B2 (en) | 2015-11-30 | 2019-02-12 | Kyocera Document Solutions Inc. | Execution control device that causes other electronic device to execute task, non-transitory computer-readable recording medium that includes execution control program, and task execution system |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769009B1 (en) | 1994-05-31 | 2004-07-27 | Richard R. Reisman | Method and system for selecting a personalized set of information channels |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US6327607B1 (en) | 1994-08-26 | 2001-12-04 | Theseus Research, Inc. | Invocation architecture for generally concurrent process resolution |
US6330583B1 (en) * | 1994-09-09 | 2001-12-11 | Martin Reiffin | Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks |
US5838906A (en) | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5850518A (en) | 1994-12-12 | 1998-12-15 | Northrup; Charles J. | Access-method-independent exchange |
US5802291A (en) * | 1995-03-30 | 1998-09-01 | Sun Microsystems, Inc. | System and method to control and administer distributed object servers using first class distributed objects |
US5742845A (en) | 1995-06-22 | 1998-04-21 | Datascape, Inc. | System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network |
US5802367A (en) * | 1995-07-07 | 1998-09-01 | Microsoft Corporation | Method and system for transparently executing code using a surrogate process |
US5768511A (en) * | 1995-09-18 | 1998-06-16 | International Business Machines Corporation | Method and system for managing objects in networked computer system with action performed in the server and object updated in the client |
US7555529B2 (en) * | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6950991B2 (en) * | 1995-11-13 | 2005-09-27 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
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 |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US6370552B1 (en) | 1997-05-14 | 2002-04-09 | Citrix Systems, Inc. | Apparatus and method for displaying application output in an HTML document |
US6374287B1 (en) * | 1996-01-24 | 2002-04-16 | Sun Microsystems, Inc. | Method and system for allowing client processes to run on distributed window server extensions |
CA2199108C (en) * | 1996-03-05 | 2002-04-23 | Hirotoshi Maegawa | Parallel distributed processing system and method of same |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service 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 |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
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 |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5832529A (en) * | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US5918054A (en) * | 1996-11-06 | 1999-06-29 | Ncr Corporation | Distributed electronic performance support systems |
US5941949A (en) | 1997-05-14 | 1999-08-24 | Citrix Systems, Inc. | System and method for transmitting data from a server application to more than one client node |
US6157944A (en) * | 1997-05-14 | 2000-12-05 | Citrix Systems, Inc. | System and method for replicating a client/server data exchange to additional client notes connecting to the server |
US6105064A (en) * | 1997-05-30 | 2000-08-15 | Novell, Inc. | System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval |
JP3883647B2 (ja) | 1997-06-10 | 2007-02-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体 |
US6006278A (en) * | 1997-07-18 | 1999-12-21 | Electronic Data Systems Corporation | Method and system for importing remote functions to a network computer |
US6141759A (en) * | 1997-12-10 | 2000-10-31 | Bmc Software, Inc. | System and architecture for distributing, monitoring, and managing information requests on a computer network |
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 |
US6687735B1 (en) | 2000-05-30 | 2004-02-03 | Tranceive Technologies, Inc. | Method and apparatus for balancing distributed applications |
US6859792B1 (en) * | 2000-04-20 | 2005-02-22 | Altair Engineering, Inc. | Product suite licensing method |
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 |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
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 |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
EP1305710A4 (en) * | 2000-06-23 | 2006-11-15 | Aladdin Knowledge Systems Ltd | TYPE CONVERSION TECHNIQUE FACILITATING SERVICE TELEAPPEL |
GB2373349B (en) * | 2001-03-15 | 2005-02-23 | Proksim Software Inc | Data definition language |
US8073780B2 (en) * | 2001-05-15 | 2011-12-06 | Altair Engineering, Inc. | Token based club digital content licensing method |
US9633182B2 (en) | 2001-05-15 | 2017-04-25 | Altair Engineering, Inc. | Token based digital content licensing method |
WO2003003140A2 (en) | 2001-06-27 | 2003-01-09 | Compumedics Limited | Distributed event notification system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
DE10156036A1 (de) * | 2001-11-15 | 2003-06-05 | Evotec Ag | Verfahren und Vorrichtung zur Datenverarbeitung |
US8135843B2 (en) * | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
US7539198B1 (en) * | 2002-06-26 | 2009-05-26 | Cisco Technology, Inc. | System and method to provide node-to-node connectivity in a communications network |
US7386590B2 (en) | 2003-01-03 | 2008-06-10 | Microsoft Corporation | System and method for improved synchronization between a server and a client |
US7366760B2 (en) | 2003-01-03 | 2008-04-29 | Microsoft Corporation | System and method for improved client server communications of email messages |
US7620688B2 (en) * | 2003-01-03 | 2009-11-17 | Microsoft Corporation | Progress mode for electronic mail component |
US7260599B2 (en) * | 2003-03-07 | 2007-08-21 | Hyperspace Communications, Inc. | Supporting the exchange of data by distributed applications |
US9262743B2 (en) | 2003-12-10 | 2016-02-16 | Zerotouchdigital, Inc. | Method and apparatus for sociable computing in ad-hoc and configured peer-to-peer networks |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US8423950B2 (en) * | 2004-06-25 | 2013-04-16 | International Business Machines Corporation | Method and apparatus for optimizing performance and network traffic in distributed workflow processing |
US7797724B2 (en) | 2004-08-31 | 2010-09-14 | Citrix Systems, Inc. | Methods and apparatus for secure online access on a client device |
US7904908B2 (en) | 2005-03-01 | 2011-03-08 | Csc Holdings, Inc. | Methods and systems for distributed processing on consumer devices |
JP4667108B2 (ja) | 2005-04-11 | 2011-04-06 | パナソニック株式会社 | データ処理装置 |
US8019827B2 (en) * | 2005-08-15 | 2011-09-13 | Microsoft Corporation | Quick deploy of content |
US7917904B2 (en) | 2006-01-06 | 2011-03-29 | Microsoft Corporation | Automated analysis tasks of complex computer system |
US8738703B2 (en) | 2006-10-17 | 2014-05-27 | Citrix Systems, Inc. | Systems and methods for providing online collaborative support |
US8135018B1 (en) | 2007-03-29 | 2012-03-13 | Qurio Holdings, Inc. | Message propagation in a distributed virtual world |
US8000328B1 (en) | 2007-05-22 | 2011-08-16 | Qurio Holdings, Inc. | Filtering messages in a distributed virtual world based on virtual space properties |
US9058090B1 (en) | 2008-06-02 | 2015-06-16 | Qurio Holdings, Inc. | Collaborative information sharing in a virtual world |
WO2010005869A2 (en) * | 2008-07-10 | 2010-01-14 | Heins, Douglas, B. | Method and apparatus for utility computing in ad-hoc and configured peer-to peer networks |
WO2010108006A2 (en) * | 2009-03-18 | 2010-09-23 | Altair Engineering, Inc. | Digital content licensing method |
WO2010115107A2 (en) * | 2009-04-02 | 2010-10-07 | Altair Engineering, Inc. | Hardware unit-based license management method |
US20120311015A1 (en) * | 2011-05-31 | 2012-12-06 | Ganot Asaf | System and method for executing complex operations in dynamic session context |
US9288102B2 (en) * | 2013-02-18 | 2016-03-15 | Microsoft Technology Licensing, Llc | Controlling devices using cloud services and device-agnostic pipe mechanisms |
US10679151B2 (en) | 2014-04-28 | 2020-06-09 | Altair Engineering, Inc. | Unit-based licensing for third party access of digital content |
US10685055B2 (en) | 2015-09-23 | 2020-06-16 | Altair Engineering, Inc. | Hashtag-playlist content sequence management |
CN107133086B (zh) | 2016-02-29 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于分布式系统的任务处理方法、装置和系统 |
US11799864B2 (en) | 2019-02-07 | 2023-10-24 | Altair Engineering, Inc. | Computer systems for regulating access to electronic content using usage telemetry data |
US20230044823A1 (en) * | 2021-08-09 | 2023-02-09 | Xcelastream, Inc. | Multi-presence application architecture |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2023314B (en) * | 1978-06-15 | 1982-10-06 | Ibm | Digital data processing systems |
US4285064A (en) * | 1979-09-28 | 1981-08-18 | Ibm Corporation | TDMA Satellite communication system |
US4692893A (en) * | 1984-12-24 | 1987-09-08 | International Business Machines Corp. | Buffer system using parity checking of address counter bit for detection of read/write failures |
JPS63209248A (ja) * | 1987-02-25 | 1988-08-30 | Fujitsu Ltd | システム間デ−タ着信制御方式 |
US5257374A (en) * | 1987-11-18 | 1993-10-26 | International Business Machines Corporation | Bus flow control mechanism |
US5124909A (en) * | 1988-10-31 | 1992-06-23 | Hewlett-Packard Company | Software program for providing cooperative processing between personal computers and a host computer |
US5276883A (en) * | 1989-08-03 | 1994-01-04 | International Business Machines Corporation | System and method for uniform control of local and remote applications in a data processing network |
EP0424715A3 (en) * | 1989-10-23 | 1993-08-18 | International Business Machines Corporation | Computer system |
US5230052A (en) * | 1990-10-01 | 1993-07-20 | International Business Machines Corp. | Apparatus and method for loading bios into a computer system from a remote storage location |
US5293491A (en) * | 1990-12-28 | 1994-03-08 | International Business Machines Corp. | Data processing system and memory controller for lock semaphore operations |
WO1993020511A1 (en) * | 1992-03-31 | 1993-10-14 | Aggregate Computing, Inc. | An integrated remote execution system for a heterogenous computer network environment |
-
1992
- 1992-06-18 US US08/356,394 patent/US5606493A/en not_active Expired - Lifetime
- 1992-06-18 DE DE69220093T patent/DE69220093T2/de not_active Expired - Lifetime
- 1992-06-18 WO PCT/EP1992/001382 patent/WO1993025962A1/en active IP Right Grant
- 1992-06-18 JP JP50104794A patent/JP3612652B2/ja not_active Expired - Fee Related
- 1992-06-18 EP EP92913203A patent/EP0646260B1/en not_active Expired - Lifetime
-
1993
- 1993-04-30 IL IL10556893A patent/IL105568A/en not_active IP Right Cessation
- 1993-06-15 CA CA002098418A patent/CA2098418C/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10203983B2 (en) | 2015-11-30 | 2019-02-12 | Kyocera Document Solutions Inc. | Execution control device that causes other electronic device to execute task, non-transitory computer-readable recording medium that includes execution control program, and task execution system |
Also Published As
Publication number | Publication date |
---|---|
US5606493A (en) | 1997-02-25 |
WO1993025962A1 (en) | 1993-12-23 |
DE69220093D1 (de) | 1997-07-03 |
DE69220093T2 (de) | 1997-12-04 |
CA2098418C (en) | 1998-09-01 |
JPH08502841A (ja) | 1996-03-26 |
EP0646260B1 (en) | 1997-05-28 |
IL105568A (en) | 1996-01-19 |
EP0646260A1 (en) | 1995-04-05 |
IL105568A0 (en) | 1993-08-18 |
CA2098418A1 (en) | 1993-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3612652B2 (ja) | ローカル・コンピュータ上で実行されるローカル・タスクによってリモート・コンピュータ上のリモート・タスクを実行する方法 | |
US4949254A (en) | Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network | |
EP0362105B1 (en) | Method for processing program threads of a distributed application program by a host computer and an intelligent work station in an SNA LU 6.2 network environment | |
JP3853592B2 (ja) | 分散ウェブアプリケーションサーバ | |
US5291597A (en) | Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an SNA network | |
US6405367B1 (en) | Apparatus and method for increasing the performance of Java programs running on a server | |
EP1027794B1 (en) | Method and system for facilitating distributed software development in a distribution unaware manner | |
KR100328516B1 (ko) | 응용프로그램사이에통신프로토콜을설정하기위한시스템및방법 | |
US5790809A (en) | Registry communications middleware | |
US6374299B1 (en) | Enhanced scalable distributed network controller | |
US5758084A (en) | Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections | |
US5687373A (en) | Communications system for exchanging data between computers in a network and a method of operating such a system in which communications services are defined within a common object class | |
JPH02148224A (ja) | 時間開始タスクのスケジユーリング方法 | |
JPH02116955A (ja) | ネツトワークにおける端末アドレス通知方法 | |
JP2008306714A (ja) | ネットワークアプリケーションにおける通信方法、通信装置及びそのためのプログラム | |
EP0644483B1 (en) | Computer system and method for performing multiple tasks | |
US6938257B1 (en) | Apparatus and method to provide persistence for application interfaces | |
Retz | Operating system design considerations for the packet-switching environment | |
EP0114357A2 (en) | Controlling multiple distributed computations in a multi cpu environnment from a single port | |
Fritz et al. | The UNIX system: A network of computers running the UNIX system | |
Mukhopadhyay | An approach to realizing interoperability using APPC | |
Liu et al. | OSI remote procedure call: Standardization issues, design and implementation | |
MXPA98003869A (es) | Soporte logico personalizado de comunicaciones deregistro | |
CA2237646A1 (en) | Registry communications middleware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041014 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |