JP2002521963A - 異種コンピュータシステム間の高速通信のための、仮想トランスポート層インターフェイスおよびメッセージ通信サブシステム - Google Patents
異種コンピュータシステム間の高速通信のための、仮想トランスポート層インターフェイスおよびメッセージ通信サブシステムInfo
- Publication number
- JP2002521963A JP2002521963A JP2000563035A JP2000563035A JP2002521963A JP 2002521963 A JP2002521963 A JP 2002521963A JP 2000563035 A JP2000563035 A JP 2000563035A JP 2000563035 A JP2000563035 A JP 2000563035A JP 2002521963 A JP2002521963 A JP 2002521963A
- Authority
- JP
- Japan
- Prior art keywords
- mss
- dialog
- data
- vtl
- interconnect
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
は、米国特許商標庁のファイルまたは記録にある特許書類または特許開示につい
ては、何人による複写に対しても異議を唱えないが、それ以外の著作権について
は全て留保する。
の密結合された異種コンピュータシステムが、シミュレートされたまたは「仮想
」のトランスポート層インターフェイスを含む相互接続上でメッセージ通信シス
テムを介して互いに通信することを可能にする、装置および方法に関する。
トワーキングプロトコルを使用してネットワークを介して互いに通信することの
できる機能は、よく知られている。ほとんどのコンピュータシステムは何らかの
形のネットワーキングアーキテクチャを有し、それらのプロトコルに従ってネッ
トワーキングを行なうことができる。たとえば、標準7層ISO参照モデル(Re
ference Model)を含む汎用ネットワーキングプラットフォームは、ユーザの制
御下にあるアプリケーション、プレゼンテーションおよびセッションレベルと、
カーネル(オペレーティングシステム)の制御下にあるトランスポート、ネット
ワーク、データリンクおよび物理レベルとからなる、ネットワークスタックを含
む。典型的なネットワーキングアーキテクチャは、システムソフトウェアおよび
ハードウェアのどちらも含む。
10がネットワーク15上の他のホストまたはノードと通信するために使用する
、ネットワーキングアーキテクチャのコンポーネントを示すブロック図である。
このAシリーズエンタープライズ・サーバ10は、ユニシスMCPオペレーティ
ングシステム12を実行し、Aシリーズのシャーシ内に格納された1または複数
のI/Oモジュール(I/O Modules、IOM)14を含むI/Oサブシステムを
有する。IOM14は、CS−BUS IIまたはCS−BUS III(以後
、「CSバス」と称する)と呼ばれる、ユニシス独自のI/Oバスアーキテクチ
ャを実装する。スロット16a〜d等の複数のカードスロットが、「チャネルア
ダプタ」と称されるインターフェイスカードをCSバスに接続するために設けら
れる。異なるグループまたはラックのチャネルアダプタスロットは、各々、チャ
ネルマネージャユニット(Channel Manager Unit、CMU)(たとえば、CMU
18a、18b)によって制御される。IOMは、複数のCMUを含み得るが、
その各々が、CSバスを介して、異なるラックのチャネルアダプタカードスロッ
トを制御する。CMUは、CSバスデータ転送プロトコルの物理層およびデータ
層を管理する。
ダプタカードスロットを占有し得るが、それらカードは、Aシリーズエンタープ
ライズ・サーバ10のためにさまざまなコネクティビティの解決手段を提供する
。たとえば、ユニシスは、スモールコンピュータシステムインターフェイス(Sm
all Computer System Interface、SCSI)の周辺機器をエンタープライズ・
サーバ10に接続するためにSCSIプロトコルを実装する、チャネルアダプタ
カードを提供する。
トワーキングプロトコルをサポートする、いくつかのチャネルアダプタを提供す
る。これらのチャネルアダプタは通常、ネットワークプロセッサ(NP)と呼ば
れる。たとえば、ユニシスICP22およびICP26ネットワークプロセッサ
は、イーサネット(登録商標)(Ethernet)(登録商標)ネットワークプロトコ ルを実装するチャネルアダプタカードであって、これらは、Aシリーズエンター プライズ・サーバ10をイーサネットネットワークに接続するのに使用すること ができる。ユニシスはまた、FDDIおよびATMネットワークへのコネクティ ビティのためのネットワークプロセッサを提供する。図1に示すように、種々の ネットワークコネクティビティ解決手段を提供するために、多種多様のネットワ ークプロセッサ(たとえば、NP20a、20bおよび20c)を、IOM14 のそれぞれのチャネルアダプタスロット(たとえば、スロット16b、16cお よび16d)に組込むことができる。
0cのより詳細な図に示されるように、ネットワークプロセッサは、たとえば、
Line0、Line1、…LineN等の、複数の異なるラインを含み得る。ここで、ライン
は、ネットワーク内の物理的なエンドポイントを表わす。たとえば、ユニシスI
CP22ネットワークプロセッサは2つのラインを有し、その各々が、別個のイ
ーサネット接続を含む。すなわち、一方のラインが1つのイーサネットネットワ
ークに接続され、他方のラインが異なるイーサネットネットワークに接続され得
る。
ーショングループを有し得る。ステーショングループは、1または複数のステー
ションからなる。ステーションは、そのライン上の論理ダイアログを表わす、論
理的エンドポイントである。したがって、ネットワークプロセッサの任意のライ
ン上には2つ以上の論理ダイアログが存在し得るが、これは、多重化によって達
成される。たとえば、バロースネットワークアーキテクチャ・バージョン2プロ
トコル(Burroughs Network Architecture-Version 2 protocol、BNAv2)
等の、コネクション指向のネットワーキングプロトコルにおいては、1つのステ
ーションがネットワーク上の別のBNAv2ホストとの論理ダイアログを表わし
、別のステーションが、異なるBNAv2ホストとの論理ダイアログを表わし得
る。たとえば、図1に示すように、LineNのStation0は、BNAv2ホスト22
との論理ダイアログを表わし、LineNのStation1はBNAv2ホスト24との論
理ダイアログを表わし得る。インターネットプロトコル(IP)のようなコネク
ション指向ではないネットワーキングプロトコルについては、そのプロトコルス
タックのためのすべての通信を扱うのに、1つのステーションしか定義する必要
はない。たとえば、図1において、LineNのStationNを、LineN上のすべてのIP
トラフィックのための論理的エンドポイントとして定義することができる。ネッ
トワークプロセッサ20c上で実行するソフトウェアを含むローカルエリアネッ
トワークステーショングループ(Local Area Network Station Group、LANS
G)モジュール26は、ネットワークプロセッサ20dの種々のライン上でステ
ーションおよびステーショングループを作成および維持してそれらにわたってデ
ータを送受信するための、呼出し可能な手続きを提供する。
は、キューサービスプロバイダ(Queue Service Provider、QSP)モジュール
28を含み、これは、NPサポート40とチャネルアダプタとの間のメッセージ
の受け渡しを行なう。QSPモジュール26はまた、任意のNP上で規定された
すべてのステーションのために、データを多重化および逆多重化する。効率を高
めるためにいくつかのデータはブロック化され、他のデータはそのままである。
他のコンポーネントとしては、ネットワークサービスマネージャスタブ(Networ
k Services Manager Stub、NSM−STUB)30と、リンク層マネージャス
タブ(Link Layer Manager Stub、LLM−STUB)32との、2つのスタブ
モジュールを含む。これらは、MCP環境内のモジュールに対して、コアネット
ワークサービス(Core Network Services、CNS)ソフトウェアコンポーネン
ト34の対応するモジュールとインターフェイスをとる。
)は、7層ISO参照モデルのデータリンク層および物理層を実装する。クライ
アントアプリケーション46が、BNAv2およびTCP/IPネットワーキン
グプロトコル等の、ネットワーク15の異なるホスト上で実行するアプリケーシ
ョンと通信するために用いたいと望むであろう、より上位のネットワーキングプ
ロトコルは、Aシリーズシステム10上に、ネットワークプロトコルプロバイダ
として実装される。ネットワークプロトコルプロバイダは、これらのより上位の
ネットワーキングプロトコルを実装するソフトウェアモジュールである。たとえ
ば、ユニシスは、BNAv2のホスト常駐ネットワークプロバイダ(Host Resid
ent Network Provider、HRNP)モジュールおよびTCP/IPのHRNPモ
ジュールのどちらも提供する。図1の例においては、BNAv2 HRNP42
およびTCP/IP HRNP44が示されている。
トコルプロバイダ42、44をサポートし、ネットワークプロセッサおよびその
上に定義されたステーショングループの初期化および保守を行なう。具体的には
、CNS34は、システムに組込まれたネットワークプロセッサ(たとえば、2
0a、20b、20c)を初期化しかつ管理する、ネットワークサービスマネー
ジャ(Network Services Manager、NSM)36と、任意のネットワークプロセ
ッサ上に規定された各ステーショングループのアイデンティティおよび属性を初
期化しかつ維持する、リンク層マネージャ(Link Layer Manager、LLM)38
とを含む。CNS34の別のコンポーネント(図示せず)は、ネットワークプロ
セッサ上に作成されたステーショングループおよびステーションに関連する属性
の妥当性を検証する。これらの属性は、それらのステーションが規定されるとき
に、コントロールダイアログを介して、ネットワークプロセッサとCNS34と
の間で受け渡しされる。NSMモジュール36およびLLMモジュール38のた
めのスタブ手続きと同様に、ネットワークプロセッサは、CNS34の属性ハン
ドラに対応するスタブ手続き(LLAH、図示せず)もまた有する。NPSUP
PORTソフトウェアライブラリ40および、MCPオペレーティングシステム
12の各部分は、ネットワークプロセッサとCNS34とネットワークプロトコ
ルプロバイダ42、44との間のインターフェイスとしての役割を果たすルーチ
ンおよび手続きコールを提供し、また、NPへのソフトウェアのローディングお
よびそれらの状態のダンピングを制御する。
を一意に識別する、関連する識別子を有する。ネットワークプロセッサが初期化
されてオンラインとされるとき、ネットワークプロセッサ内のNSM−STUB
30は、NSM36にその識別子を渡すために、コントロールダイアログを介し
てCNS34のNSM36とインターフェイスをとる。NSM36は、すべての
アクティブなネットワークプロセッサの識別子を管理する。
よびステーションはまた、それに関連する一意の識別子を有する。ネットワーク
プロセッサ上のLLM−STUB32とCNS34のLLM38との間に構築さ
れたコントロールダイアログを介して、ステーションおよびステーショングルー
プの識別子は、初期化中にLLM38に渡される。LLM38内では、1つのス
テーションが1つの接続に対応し、1つのステーショングループが1つの接続グ
ループに対応する。
ション(すなわち、ステーショングループ)を定義する機能は、多重化によって
達成される。具体的には、ネットワークプロセッサ内のQSP28は、任意のラ
イン上の複数のステーションに対する、入ってくるデータおよび出て行くデータ
を多重化する。さらに、QSP28は、NSM36とNSM−STUB30との
間、および、LLM38とLLM−STUB32との間で、要求および応答デー
タの分配を担当する。この目的のために、各ステーションを含むMCP12、N
SM−STUB30およびLLM−STUB32から出て行くデータを受取る、
ネットワークプロセッサ上の各エンティティには、QSP28によって一意のリ
モートキューリファレンス(Remote Queue Reference、RQR)が割当てられる
。NSM−STUBのRQRは、NPがロードされるときに、NPSUPPOR
T40を介してCNS34内のNSM36に報告される。LLM−STUBのR
QRは、ネットワークプロセッサが初期化するときに、NSM−STUB30に
よってNSM36を介してLLM38に報告される。ステーションのRQRはす
べて、ステーションが開くときに、HRNP42、44に報告される。
5上の別のホストまたはノード、たとえば別のBNAv2ホスト22、24また
は別のTCP/IPホスト25へとデータを送信するように要求されると、適切
なネットワークプロトコルプロバイダ、たとえば42、44のサービスを呼出す
。ネットワークプロトコルプロバイダ42、44は、データを出力すべき適切な
ネットワークプロセッサおよびステーションを判定し、ネットワーク層の各々の
ためにプロトコルヘッダを追加して、ネットワークプロセッサの識別子およびス
テーションのRQRを含む、MCP12への対応する要求を作成する。そのデー
タおよび関連のRQRは、MCP12からネットワークプロセッサ(たとえば、
ネットワークプロセッサ20c)上のQSP28へと渡され、そのネットワーク
プロセッサが、LANSGモジュール26と連動して、そのデータを適切なライ
ン(たとえば、Line0、Line1、…またはLineN)を介してネットワーク15へと
、指定されたステーションによって表わされる論理ダイアログの一部として、送
り出す。
ジュール26はそのデータに関連するヘッダの情報から、そのデータが向けられ
るべきステーション(すなわち、論理ダイアログ)を判断する。LANSGモジ
ュール26およびQSPモジュール28は、MCP12およびNPSUPPOR
Tライブラリ40の各部分と連動して、受信したデータをそのステーションに関
連する適切なネットワークプロトコルプロバイダ42、44へと、どのステーシ
ョンがそのデータを受取ったかを示す表示とともに渡す。たとえば、図1に示す
ネットワークプロセッサ20cのLineN上のステーションのうちの1つ(たとえ
ば、Station0)が、BNAv2 HRNP42のための論理的エンドポイントと
して定義され、異なるステーション(たとえば、Station1)が、TCP/IP
HRNP44のための、LineN上のすべてのIPトラフィックがその上で受取ら
れる、論理的エンドポイントとして定義され得る。データの1フレームがLineN
上でネットワークから受信されると、LANSGモジュール26は、ヘッダの情
報から、どのネットワークプロトコルプロバイダ(すなわち、ステーション)が
そのデータを受信すべきかを判断する。この判断は、(ジョンソン(Johnson)
他の)「ワークステーションを複数のコンピュータプラットフォームにインター
フェイスするための方法および装置("Method and Apparatus for Interfacing
a Workstation to a Plurality of Computer Platforms")」と題された、共通
に譲渡された米国特許番号第5,379,296号に記載されている方法に従っ
て行なわれる。
使用されるのに加えて、ユニシスクリアパス(Unisys ClearPath)HMP NX
エンタープライズ・サーバにおいても用いられる。クリアパスHMP NXサー
バは、マイクロソフトウィンドウズNT(Microsoft Windows NT)を実行するサ
ーバと密結合された、Aシリーズエンタープライズ・サーバを含む。ここで、「
マイクロソフト("Microsoft")」、「ウィンドウズ("Windows")」および「ウ
ィンドウズNT("Windows NT")」は、マイクロソフト・コーポレイション(Mi
crosoft Corporation)の登録商標である。上述のネットワーキングアーキテク
チャに関するさらなる情報は、以下の文献に見出される。これらの文献はすべて
、本発明の譲受人であるユニシス・コーポレイション(Unisys Corporation)か
ら入手可能であり、その全文がここに引用により援用される。
リーズの実装ガイド("ClearPath HMP NX Series with Windows NT Network Ser
vices Implementation Guide")」(Part No. 4198 6670); 「BNA/CNSネットワーク実装ガイド、第2巻:構成("BNA/CNS Network
Implementation Guide, Volume 2: Configuration")」(Part No. 3789 7014)
; 「ウィンドウズNTを用いるクリアパスHMP NXシリーズの実装およびオ
ペレーションガイド("ClearPath HMP NX Series with Windows NT Implementat
ions and Operation Guide")」(Part No. 8807 6542); 「ウィンドウズNTを用いるクリアパスHMP NXシリーズのマイグレーシ
ョンガイド("ClearPath HMP NX Series with Windows NT Migration Guide")
」(Part No. 8807 7730); 「ネットワーキング機能概要("Networking Capabilities Overview")」(Par
t No. 3789 7139); 「ネットワーキングオペレーション参照マニュアル、第1巻および第2巻:コ
マンドおよび問合せ("Networking Operations Reference Manual, Volumes 1 a
nd 2: Commands and Inquiries")」(Part No. 3787 7917);および、 「ネットワーキングプロダクツ導入ガイド("Networking Products Installat
ion Guide")」(Part No. 4198 4840)。
クプロセッサを使用して、ユニシスAシリーズエンタープライズ・サーバがネッ
トワークを介してワークステーションまたはパーソナルコンピュータ(PC)と
通信することは、過去においても可能であった。この機能の一例を図2に示す。
この例において、Aシリーズエンタープライズ・サーバ10は、マイクロソフト
ウィンドウズNTオペレーティングシステム(以後、「NTサーバ」)を実行す
る、インテル(Intel)ベースのワークステーション48と通信する。このAシ
リーズエンタープライズ・サーバ10は、たとえばユニシスICP22イーサネ
ットベースネットワークプロセッサであり得るネットワークプロセッサ20aを
介して、ネットワークに接続される。
ネル、EISAまたはPCIバス52、および、適切なデバイスドライバソフト
ウェアを含む。ネットワークのコネクティビティを提供するために、ネットワー
クインターフェイスカード(NIC)50がNTサーバ48上の利用可能なバス
スロットに組込まれる。NTサーバは、PCIバス標準およびEISAバス標準
の一方または両方をサポートし得る。NICは、どちらのバス標準に対しても利
用可能である。
Tオペレーティングシステムのカーネル空間に組込まれる。NICデバイスドラ
イバ54は、トランスポート(TCP)プロトコルならびにネットワークおよび
データリンク(IP)プロトコルの処理系等の、より上位のネットワークプロト
コルプロバイダとインターフェイスをとる。マイクロソフト・コーポレイション
は、TCPIP.SYS58という名の、トランスポートプロトコルドライバと
も称される、カーネルレベルのデバイスドライバの形をとるTCP/IPプロト
コルの処理系を提供する。TCPIP.SYS58は、NDIS56、すなわち
、マイクロソフト社と3Com.によって共同開発された業界標準のネットワー
クドライバインターフェイス仕様(Network Driver Interface Specification)
を介して、NICデバイスドライバ54とインターフェイスをとる。NDIS5
6は、ISOモデルのデータリンク、ネットワークおよびトランスポート層を実
装する、ハードウェアとは独立したプロトコルドライバ、たとえばTCPIP.
SYS58と、NICハードウェアに対するインターフェイスを提供しかつIS
Oモデルの物理層に対応する、ハードウェアに依存したNICドライバ54との
、通信のためのインターフェイスを規定する。NTサーバ上のクライアントプロ
グラム60は、NTオペレーティングシステムを介してTCPIP.SYSプロ
トコルドライバ58に対して好適なコールを発行することによって、TCP/I
Pプロトコルに従ってネットワーク15上で通信することが可能であり、Aシリ
ーズサーバ10とNTサーバ48は、ネットワーク15上で、ISOモデルの物
理層で通信する。
にNICカードを開発するのにかかるコストを避けるために、やはり本願の譲受
人に譲渡されその全文がここに引用により援用される、同時係属中の米国特許出
願連続番号第09/088,421号において、Aシリーズエンタープライズ・
サーバ10とNTサーバ48との間に直接の相互接続を設けて、両システムがN
Tサーバ上に組込まれた共用ネットワークインターフェイスカードを介してネッ
トワークに接続することができるようにすることが提案されている。この発明は
、ユニシスのクリアパスHMP NXコンピュータシステム(「クリアパスシス
テム」)に配置される、協調型ネットワーキングプラットフォーム(Cooperativ
e Networking Platform、CNP)の一部として実装される。今から説明するよ
うに、クリアパスシステムは、ユニシスAシリーズエンタープライズ・サーバ1
00および、ウィンドウズNT102を実行するインテルベースのサーバ102
(「NTサーバ」)を含む。
示すように、相互接続は、Aシリーズサーバ100のI/OサブシステムをNT
サーバ102のI/Oサブシステムと結合して、システム間に比較的高速のデー
タ経路を提供する。この相互接続は、好ましくは、Aシリーズエンタープライズ
・サーバ100のI/OサブシステムとNTサーバ102のI/Oサブシステム
との間の物理的な接続、および、NTサーバ102上の他のソフトウェアモジュ
ールによるその物理的な接続へのアクセスを制御する相互接続デバイスドライバ
を含む。
のチャネルアダプタスロットに組込まれたフィードスルーカード62と、NTサ
ーバ102のI/OバスのEISAスロットに組込まれたEISAパーソナルコ
ンピュータチャネルアダプタ(EISA Personal Computer Channel Adapter、EP
CCA)カード66と、Aシリーズサーバ100のCS−BUS IIをフィー
ドスルーカード62を介してEPCCAカード66に接続するCS−BUS I
Iケーブル64とを含む。相互接続デバイスドライバ(ICD)70は、NTオ
ペレーティングシステムのカーネル空間に組込まれて、NTサーバ102上の他
のモジュールによる物理的接続(具体的にはEPCCAカード66)へのアクセ
スを制御する。図3に示した先行技術による実施例はまた、図1のQSP28と
同様に機能するキューサービスプロバイダ(Queue Service Provider)モジュー
ル76と、図1のLANSGモジュール26と同様に機能するLANSGモジュ
ール78と、図1の対応するコンポーネント30、32と同様に機能する、CN
P.EXE80のNSM−STUBモジュール84およびLLM−STUBモジ
ュール86とを含む。さらに、伝統的なユニシスのネットワーキングアーキテク
チャにおける同様のコンポーネント(図1には図示せず)と同様に機能する、C
NP.EXE80のLDMモジュール82およびLLAHモジュール88が設け
られる。
接続デバイスドライバ70と、フィードスルーカード62、ケーブル64および
EPCCAカード66によって形成される物理的接続とが合せて、ホストインタ
ーフェイスファンクション(Host Interface Function、HIF)を規定する。
QSP76と、NIFの相互接続デバイスドライバ70との手続き的インターフ
ェイスは、QSP76をHIFから分離するように設計される。このような設計
によって、以下の詳細な説明から明らかとなるように、本発明をHIFの種々の
実装例とともに用いることが可能となる。具体的には、QSP76と相互接続デ
バイスドライバ70との間の手続き的インターフェイスは、各モジュールがその
機能を実現する手続きへのエントリポイント(すなわち、ポインタ)を、必要と
される変数値とともに発行するプロセスを通して構築される。別のデバイスドラ
イバエンティティがこれらのエントリポイントの記録を維持する一方で、HIF
の相互接続デバイスドライバ70がエントリポイントおよびそれらの属性を登録
し、QSP76がエントリポイントを登録する。
されたエントリポイントがコールされる。このような間接的な方法の結果として
、HIFの異なる実装例につき異なる相互接続デバイスドライバが、QSP76
に対して完全にトランスペアレントな態様で組込まれる。
的インターフェイスの設計によってもたらされるモジュール性を示している。図
4において、物理的接続(すなわち、フィードスルーカード62、ケーブル64
およびEPCCAカード66)は、PCIブリッジ(Bridge)カード67に置換
されており、このカード67がケーブル65を介して、Aシリーズサーバ100
のIOM14のCMU18bのうちの1つ上のポートへと直接接続する。このよ
うにCMU18bに直接接続することによって、CS−BUS IIプロトコル
に固有の待ち時間がいくぶん回避され、2つのサーバ100、102のI/Oサ
ブシステム間に、より直接的な、より高速の接続が提供される。物理的接続が変
化するので、修正された相互接続デバイスドライバ70′が提供される。この修
正された相互接続デバイスドライバ70′は、QSP76とPCIブリッジカー
ド67上のハードウェアとのインターフェイスを提供する、単一のデバイスドラ
イバモジュール、PXN73を含むが、その手続き的インターフェイスおよび、
QSP76と相互接続デバイスドライバ70′とがそのインターフェイスのそれ
ぞれの手続きに対するエントリポイントを登録する機構は、変化しない。したが
って、HIFに対する変更は、QSP76に対しても、協調型ネットワーキング
プラットフォーム(CNP)を含む他のモジュールに対しても、トランスペアレ
ントである。
てエミュレートされる実施例を示す。ユニシスは、このようなエミュレートされ
たシステムを、クリアパスHMP NK4200シリーズのエンタープライズ・
サーバ内に提供する。この実施例において、物理的な接続は、エミュレートされ
たI/Oサブシステム14′のメモリ空間と、NTシステム102のメモリ空間
との、メモリ同士の接続63となるようにエミュレートされる。このエミュレー
トされた接続63は、図3のハードウェアの実装例におけるフィードスルーカー
ド62、ケーブル64、EPCCAカード66およびPCCA72のコンポーネ
ントと同様に機能する。この実施例における相互接続デバイスドライバ70″は
、図3の実装例におけるOPENCAモジュール74の修正された形74′を含
むが、修正されたOPENCAモジュール74′とQSP76との手続き的イン
ターフェイスはやはり変化しない。したがって、エミュレートされたAシリーズ
サーバ100および、そのサーバ100とNTサーバ102とのエミュレートさ
れた接続63は、QSP76に対しても、協調型ネットワーキングプラットフォ
ーム(CNP)を含む本発明の他のモジュールに対しても、トランスペアレント
である。
、同時係属中の米国特許出願連続番号第09/088,552号に記載されてい
るように、「仮想」LANデバイスドライバ79およびNDISミニポートイン
ターフェイスライブラリ(NDIS Miniport Interface Library)81は、図3か
ら図5に示したシステム内のLANSGおよび残りの相互接続コンポーネントと
ともに、Aシリーズサーバ100とNTサーバ102との間に高速かつ待ち時間
の短い通信経路を提供する。そこに記載されているように、これらのモジュール
は、物理的な接続(たとえば、フィードスルーカード62、ケーブル64、EP
CCAカード66および相互接続デバイスドライバ70)と共同して、図1に示
しかつ上述したような、伝統的なチャネルアダプタベースのネットワークプロセ
ッサをシミュレートする。VLAN79は、Aシリーズエンタープライズ・サー
バ100とNTサーバ102とが、相当低速であり得るイーサネット等の従来の
ネットワーク通信経路ではなく、それら本来の機構を使用して、互いに通信する
ことができるようにする。特定的には、VLAN79は、HIFとの物理的レベ
ルをシミュレートすることによって、Aシリーズエンタープライズ・サーバ10
0とNTサーバ102とが、ISOネットワーク参照モデルのデータリンクレベ
ルで通信することができるようにする。
イントツーポイントで転送することができるように、相互接続を介したAシリー
ズエンタープライズ・サーバ100とNTサーバ102とのTCPトランスポー
トプロトコルおよびIPネットワーキングプロトコルをシミュレートすることに
よって、クリアパスシステムの通信効率をさらに改善することが望まれる。トラ
ンスポート層プロトコルおよびネットワーク層プロトコルをシミュレートするこ
とで、データをネットワークプロトコル情報を前に付加した小さなデータチャン
クへと分解することなくより大きなブロックで伝送することのできる、より信頼
性の高いネットワーク接続を使用することによって、TCP/IPプロトコル固
有の限界を取除くこともまた望まれる。もちろん、これは、ユーザに対してトラ
ンスペアレントな態様で(すなわち、セッションレベルに影響を及ぼさないよう
に)行なわれることが望まれるが、本発明はこのような機能を提供する。
リケーションと、第1のコンピュータシステムに直接相互接続されかつ密結合さ
れた第2のコンピュータシステム上で実行する第2のネットワークアプリケーシ
ョンとが、両システムがTCP/IPおよびイーサネット等の従来のネットワー
ク通信経路を介してではなくそれら本来の機構を使用してネットワークアプリケ
ーションに影響を及ぼすことなく互いに通信することができるように、それらア
プリケーション間の相互接続を介して高速かつ短い待ち時間で通信することを可
能にする、方法および装置に向けられる。本発明の好ましい実施例に従えば、本
発明は、第1のコンピュータシステムの入出力(I/O)サブシステムと第2の
コンピュータシステムのI/Oサブシステムとを結合しかつデータをそれにわた
ってネットワークインターフェイスカードとは独立してシステム間で伝送するこ
とのできる相互接続と、汎用トランスポートインターフェイスを提供しかつ第1
および第2のネットワークアプリケーションに対して既知のトランスポート層プ
ロトコルをシミュレートする、第1および第2のコンピュータシステム上で実行
する相互接続メッセージ通信システムとを含む。本発明は、第1および第2のネ
ットワークアプリケーションが、第1および第2のネットワークアプリケーショ
ンにトランスペアレントな態様で通信することができるようにする(たとえば、
データは、第1および第2のコンピュータシステム上のアプリケーション間で、
セッション層および該第1および第2のネットワークアプリケーションを含むよ
り上位層の通信プロトコルに影響を及ぼすことなく転送され得る)。
テムのI/Oサブシステムとの間の相互接続は、好ましくは、データをその上で
伝送することのできる、I/Oサブシステム間の物理的接続を含む。本発明は、
第1および第2のコンピュータシステム間のこの相互接続についてどのような限
定も課しておらず、むしろ、改良された相互接続機構が利用可能となった時点で
その機構も利用することができるようにすることを意図している。相互接続メッ
セージ通信システムは、メッセージ通信サブシステム(「MSS」)を含む。M
SSは、該相互接続の通信プロトコルとは独立した汎用トランスポートインター
フェイスを提供し、さらに、その相互接続の両側に該相互接続の通信プロトコル
に依存するさらなるインターフェイスを提供する。これにより、相互接続に変更
が加えられた場合にも、そのさらなるインターフェイスのみを変更すればよくな
る。
コンポーネントを含み、各MSSコンポーネントには、相互接続とは独立したイ
ンターフェイスを介して、少なくとも1つのローカルMSSユーザが接続されて
いる。第1のコンピュータシステム上のMSSコンポーネントは、第2のコンピ
ュータシステム上の相補的な各リモートMSSユーザとのダイアログを作成する
。各MSSコンポーネントは、相互接続を介してアクセス可能な相補的リモート
MSSユーザに関する情報をローカルMSSユーザに対して提供するローカルM
SSユーザのためのダイアログテーブルを構築しかつ相補的リモートMSSユー
ザが追加されたり取除かれたりした場合にそのダイアログテーブルを更新するた
めの手段を含む。各MSSコンポーネントはまた、ローカルMSSユーザが相互
接続を介して相補的リモートMSSユーザとのダイアログを構築し、それに関す
る状態を受信しかつそのダイアログを無効にすることができるようにする、ダイ
アログ管理機能を行なうための手段を含む。各MSSコンポーネントはさらに、
ローカルMSSユーザと相補的リモートMSSユーザとが、用いられる相互接続
にかかわりなくコントロールメッセージを互いに受渡すことができるようにする
、メッセージ制御機能を行なうための手段を含む。各MSSコンポーネントはさ
らに、第1および第2のコンピュータシステム間のデータ転送を最適化するため
に、ローカルMSSユーザとリモートMSSユーザとの間で構築されたデータダ
イアログを介して、ローカルMSSユーザとリモートMSSユーザとの間でデー
タを転送するための手段を含む。
ントから分離する機能である。これにより、相互接続とは独立したMSSインタ
ーフェイスを介して(すなわち「MSSユーザ」として)システム間の通信を要
求するコンポーネントを実装することによって付加的な機能が加えられると、既
存の相互接続に対する変更および付加的な相互接続の組込みが、MSSユーザに
影響を与えることなく、もっぱらMSSコンポーネントのみを介して、行なうこ
とができるようになる。
びリモートMSSユーザの1つは、第1および第2のネットワークアプリケーシ
ョンが相互接続を介して第1および第2のネットワークアプリケーションに対し
てトランスペアレントな態様で互いに通信することができるように、既知のトラ
ンスポート層プロトコルをシミュレートする、相補的な仮想トランスポート層(
「VTL」)コンポーネントである。これら相補的なVTLコンポーネントが合
せて、MSSを用いて、トランスポートダイアログの構築、データ転送およびト
ランスポートダイアログの終了という従来のトランスポート機能を行なう。好ま
しくは、該VTLコンポーネントは、第1および第2のネットワークアプリケー
ションとインターフェイスをとり、また、好ましくは、第1および第2のコンピ
ュータシステム上に、MSSの相互接続とは独立したインターフェイスを通じて
MSSに接続される相補的なMSSユーザとして実装される。MSSのメッセー
ジ制御機能は、VTLコンポーネントがデータダイアログの作成およびオープン
を調整するためにメッセージのシーケンスをそれを通じて交換することのできる
、信頼性の高いコントロールダイアログを作成する。
ケーションへと相互接続を介して転送される場合、第1のネットワークアプリケ
ーションとインターフェイスするVTLコンポーネントが、その第2のネットワ
ークアプリケーションに転送されるべきデータにVTLデータ転送ヘッダをアペ
ンドして、開いたダイアログを介してデータ転送を開始する。
ワークアプリケーションと、第1のコンピュータシステムの入出力(I/O)サ
ブシステムと第2のコンピュータシステムのI/Oサブシステムとの間の相互接
続を介して第1のコンピュータシステムに直接相互接続されかつ密結合された第
2のコンピュータシステム上で実行する第2のネットワークアプリケーションと
が、ネットワークインターフェイスカートとは独立しかつ第1および第2のネッ
トワークアプリケーションの本来のプロトコルで、それらの間でデータを伝送す
ることができるようにする方法を含む。本発明に従えば、この方法は、 第1および第2の各コンピュータシステム上の第1および第2のネットワーク
アプリケーションに対して既知のトランスポート層プロトコルをシミュレートす
るステップと、 該相互接続を介して、第1および第2のネットワークアプリケーションがそれ
ら自身にトランスペアレントな態様で通信することのできるダイアログを作成す
るステップと、 第1および第2のネットワークアプリケーションの間でデータを転送するため
にそのダイアログを開くステップと、 転送されるべきデータにデータ転送ヘッダを付与するステップと、 開いたダイアログを介して相互接続にわたってデータおよびデータ転送ヘッダ
を転送するステップとを含む。
めに相互接続にわたって複数のダイアログが作成されて、各対をなすアプリケー
ションが、その対における第1および第2のアプリケーションの本来のプロトコ
ルに対してトランスペアレントな態様で通信することができるようにされ、さら
に、その対におけるアプリケーション間のデータ転送のために使用されるべきダ
イアログが特定される。
と、プロセッサの消費が減じられることである。これらの改善は、(1)基礎と
なるすべての相互接続が概して、ネットワーキングのために典型的に使用される
よりもはるかに大きなメッセージ転送サイズをサポートすることが可能であるた
めに、伝統的なトランスポートプロトコルに関連するフラグメント化/リアセン
ブリにかかるオーバヘッドが最小に抑えられ、(2)基礎となる相互接続の信頼
性が概して高いために、本発明のメッセージ通信システムが伝統的なTCP/I
Pプロトコルの受信通知および再送信のアルゴリズムを実装する必要がない、と
いう、2つの重要な要因による。また、基礎となる相互接続の信頼性が低い場合
には、該メッセージ通信システムがそのコネクション指向のメッセージ通信プロ
トコルによって、高い信頼性を提供することが可能である。
と関連して読むことにより、よりよく理解されるであろう。本発明を図示する目
的で、図面にはいくつかの実施例を示す。これらは現時点において好ましい実施
例ではあるが、本発明は、開示された特定的な方法および手段に限定されるもの
ではないことを理解されたい。
ータシステム上で実行する第1のネットワークアプリケーションと、該第1のコ
ンピュータシステムに直接相互接続されかつ密結合された第2のコンピュータシ
ステム上で実行する第2のネットワークアプリケーションとが、双方のシステム
が、TCP/IPおよびイーサネット等の従来のネットワーク通信経路を介して
ではなく、それら本来の機構を使用してネットワークアプリケーションに影響を
与えることなく互いに通信することができるように、それらアプリケーション間
の相互接続を介して高速かつ待ち時間の短い通信を行なうことを可能にする、方
法および装置に向けられる。本発明の好ましい実施例に従えば、本発明は、第1
のコンピュータシステムの入出力(I/O)システムを第2のコンピュータシス
テムのI/Oサブシステムと結合しかつそれにわたってデータをネットワークイ
ンターフェイスカードとは独立してシステム間で伝送することができる、相互接
続と、汎用トランスポートインターフェイスを提供する、第1および第2のコン
ピュータシステム上で実行する相互接続メッセージ通信システムと、第1および
第2のネットワークアプリケーションに対して既知のトランスポート層プロトコ
ルをシミュレートする、第1および第2のコンピュータシステム上で実行する仮
想トランスポート層とを含む。
ニシスのクリアパスHMP NXエンタープライズ・サーバの一特徴として提供
される、協調型ネットワーキングプラットフォーム(CNP)(これはときに、
「NX/ネットワークサービス(NX/Network Services)」または「NNS」と
も呼ばれる。)の一部として実装され得る。ここで、上述のように、ユニシスA
シリーズエンタープライズ・サーバは、マイクロソフトウィンドウズNTを実行
するインテルベースのサーバと密結合されている。この実施例では、Aシリーズ
エンタープライズ・サーバが第1のコンピュータシステムを構成し、NTサーバ
が第2のコンピュータシステムを構成する。このような環境で実装された場合、
本発明は、Aシリーズサーバ上のネットワークアプリケーションが、NTサーバ
上の同位のネットワークアプリケーションと、本来の機構を使用して、高速かつ
待ち時間の短い通信を行なうことができるようにする。
ピー(登録商標)ディスケット、CD−ROM、ハードドライブまたは他の機械 可読記憶媒体のような具体的な媒体内に実現される、プログラムコード(すなわ ち、命令)の形をとり得る。この場合、そのプログラムコードがコンピュータ等 の機械にロードされかつそれによって実行されるとき、その機械が、本発明を実 施する装置となる。また、本発明の方法および装置は、何らかの伝送媒体、たと えば電気配線もしくはケーブルを介して、光ファイバを通じて、または他の伝送 形状を介して伝送される、プログラムコードの形でも実現され得る。この場合、 そのプログラムコードがコンピュータ等の機械にロードされかつそれによって実 行されるとき、その機械が本発明を実施する装置となる。このプログラムコード が汎用プロセッサ上で実現される場合には、プログラムコードはプロセッサと共 同して、特定的な論理回路群と同様に動作する、独特の装置を提供する。
102のI/Oサブシステムとを結合してそれら2つのサーバ間のデータ伝送を
可能にする相互接続と、Aシリーズサーバ100とNTサーバ102との間に通
信経路を提供する「仮想」トランスポート層(「VTL」)およびメッセージ通
信サブシステム(「MSS」)とを含む。相互接続および、2つのサーバ間にデ
ータリンク層ネットワーク通信を提供する仮想LAN(「VLAN」)通信経路
のさらなる詳細は、その内容がすでにここに引用により援用されている、199
8年6月1日に出願された上述の関連米国特許出願連続番号第09/088,5
52号に記載されている。本発明で実現される、Aシリーズサーバ100とNT
サーバ102とのトランスポート層ネットワーク通信を可能にするVTL/MS
S通信システムについて、以下により詳細に説明する。当業者には、以下の詳細
な説明が例示のためのみのものであって、本発明の範囲を限定することを意図し
ないことが理解されるであろう。本発明の範囲は、前掲の請求の範囲から判断す
ることができる。
図5を参照して上に説明した相互接続のそれぞれのための、本発明の実施例を示
すブロック図である。それらの実施例においては、本発明の方法および装置は、
ユニシスクリアパスHMP NXコンピュータシステム(「クリアパスシステム
」)に配置された協調型ネットワーキングプラットフォーム(CNP)の一部と
して実装されている。各実施例において、第1のネットワークプロトコルプロバ
イダ44、この場合TCP/IP HRNPが、Aシリーズシステム100上に
設けられている。TCP/IP HRNP44は、それに関連する複数のネット
ワークアドレス(すなわち、IPアドレス)を有し、その各々がAシリーズシス
テム100の外部への各接続(たとえば、チャネルアダプタ)に対応する。下に
詳細に説明するように、Aシリーズシステム100はさらに、仮想トランスポー
ト層(「VTL」)90およびメッセージ通信サブシステム(「MSS」)92
を含み、これらによってAシリーズシステム100は、従来のISOネットワー
クプロトコルスタックをバイパスして、相互接続を介してNTサーバ102と通
信することができる。本発明の実施例において、VTLは(VLANと同様に)
、Aシリーズシステム100がそのVTLが外部ではなく内部にあることがわか
るように、一意のIPアドレスを有する。
・コーポレーションから入手可能な)TCPIP.SYSが、NTサーバ102
上に設けられている。TCPIP.SYS58は、各ネットワークインターフェ
イスカード(「NIC」)に関連する自身のネットワークアドレス(すなわち、
IPアドレス)を有し、これが、この実施例における第2のネットワークアドレ
スを規定する。やはり下に詳細に説明するように、NTサーバ102もまた、仮
想トランスポート層(「VTL」)94およびメッセージ通信サブシステム(「
MSS」)96を含み、これらによってNTサーバ102は従来のISOネット
ワークプロトコルスタックをバイパスして、相互接続を介してAシリーズサーバ
100と通信することができる。ここで、VTLは、NTサーバ102がそのV
TLが外部ではなく内部にあるとわかるように、一意のIPアドレスを有する。
NTサーバ102のI/Oバスのスロット内には、ウィンドウズNTと互換性が
あればどのようなLANタイプのNIC50を用いることもできるが、好ましく
は、そのNICは、ファストイーサネット(Fast-Ethernet)ネットワーキング
プロトコル(たとえば、100Base−T)をサポートする。この種のNIC
は、多くのベンダーおよび相手先商標による製造会社(OEM)から入手可能で
ある。Ethernet/802.3、FDDI、またはギガビットイーサネット(Gigabit Et
hernet)等の、他の物理的媒体の種類をサポートするNICもまた、代替的に用
いることができる。通常、NICのベンダーは、NICとともにデバイスドライ
バを供給するが、そのデバイスドライバは、システム上の他のエンティティがそ
のNICのネットワーキング機能にアクセスすることができるように、オペレー
ティングシステムのカーネル空間にインストールされる。図6から図8に例示し
たシステムのNIC50は、図示されるように、ウィンドウズNTのカーネル空
間にインストールされたデバイスドライバ54(「<nicdrv>.sys」)を有する。
バイダを設けることも可能である。たとえば、Aシリーズサーバ上には、BNA
v2 HRNP42を設けることができ、また、TCP/IPに加えて低信頼デ
ータグラムプロトコル(「UDP」)を設けてもよい。しかし、BNAv2プロ
トコルはユニシス独自のプロトコルであって、ネットワークのエンドポイントの
ために別のアドレス指定方式を用いるので、このBNAv2 HRNP42がそ
れに関連するIPアドレスを有することはない。
続デバイスドライバおよびQSPモジュール76を介してAシリーズサーバ10
0とNTサーバ102との間でどのようにデータが転送されるかをより詳細に示
す。図9Aから図9Eに示した詳細は、図6、図7および図8に示したホストイ
ンターフェイスファンクション(「HIF」)のQSPベースのどの実施例に対
しても適用可能である。したがって、以下の説明に用いられる、相互接続デバイ
スドライバ(ICD)という語は、これらの図に関連して説明される相互接続デ
バイスドライバの3つの実装例のいずれにもあてはまる。
る1または複数の転送ユニットを介した、複数のクライアントダイアログ(たと
えば、NSM−STUBモジュール84およびLLM−STUBモジュール86
とのダイアログ、ならびに、LANSG78によって規定される異なるステーシ
ョンとのダイアログ)を多重化する。ユニットは、論理ダイアログまたは物理的
デバイスであり得る。このユニットの資源をより十分に利用するために、QSP
76は、同じユニットを介して転送されるのを待っているメッセージを、単一の
動作で転送することのできる1ブロックにまとめてもよい。QSP76は、メッ
セージヘッダにメッセージ・カウント(Message-Count)フィールドを設けるこ
とによって、このようなブロック化をサポートする。ブロック内の最初のメッセ
ージヘッダのメッセージ・カウントフィールドには、そのブロックに含まれるメ
ッセージの数を入れ、同じブロック内の後続のメッセージヘッダのフィールドに
は、ゼロ値を入れる。
するように物理的接続(すなわち、実装例に応じて、EPCCAボード66、P
CIブリッジカード67または、エミュレートされたメモリ同士の接続63)を
プログラムする。逆方向の場合、ICDは、メッセージが物理的接続を介してN
Tサーバ102のメモリ内に転送されたときに、(図6および図7のハードウェ
ア接続の場合には)割込みによって、または(図8のエミュレートされた接続6
3の場合には)関数呼出しによって、起こされる。ICDは、受信したメッセー
ジをQSP76に配信する。QSP76はそのメッセージを、メッセージに関連
付けれらた宛先キューアドレス(リモートキューリファレンス(Remote Queue R
eference)または「RQR」)に基づいて、適切なクライアントダイアログ(た
とえば、NSM−STUB84、LLM−STUB86、またはLANSG78
によって規定される任意のステーション)に分配する。本発明に従えば、NTサ
ーバ102は、仮想トランスポート層(「VTL」)94およびメッセージ通信
サブシステム(「MSS」)96をさらに含み、これらが、NTサーバ102が
従来のISOネットワークプロトコルスタックをバイパスして、相互接続を介し
てAシリーズサーバ100と通信することを可能にする。VTLインターフェイ
スおよびMSSインターフェイスの動作は、下に詳細に説明する。
−STUB84、LLM−STUB86またはLANSG78によって規定され
るステーション)からAシリーズサーバ100へと物理的接続を介してメッセー
ジを転送するのに、QSP76およびICDによって行なわれる、ステップに関
するさらなる情報を提供する。この転送プロセスは、クライアント、たとえば、
TCPIP.SYS58から受信したデータをAシリーズサーバ100に渡さね
ばならないLANSGモジュール78が、QSP76を呼出して、メッセージ(
たとえば、ネットワークから受信したデータ)をAシリーズサーバ100へと転
送するように要求したときに、開始される。この場合、そのメッセージを構成す
る、連続していないメッセージセグメントをポイントするパラメータが、そのリ
クエストとともに渡される。ステップ112において、QSP76は、どのユニ
ット上でそのメッセージを転送すべきかを判断する。次に、ステップ114にお
いてQSP76は、メッセージ内の連続していない各セグメントを調べることに
よって、そのメッセージの合計サイズを計算する。ステップ116において、そ
のメッセージのはじめにヘッダが追加され、そのヘッダおよびメッセージ内の各
セグメントをポイントする記述子のリストが構築される。次に、ステップ118
において、QSP76は、そのユニットに対してブロック化(上述のとおり)が
サポートされるかどうかを判断する。もしサポートされる場合には、ステップ1
20において、QSP76は、現時点において転送を待っているブロックがある
かどうかを判断する。もしあれば、ステップ121においてQSP76は、その
メッセージが処理待ちの最終ブロックに当てはまるかどうかを判断する。もし当
てはまれば、ステップ122においてQSP76は、記述子リストをその最終の
処理待ちブロックに追加する。その後、制御はステップ127(図9B)に渡さ
れる。
判断された場合、ステップ120において現時点において転送を待っているブロ
ックがないと判断された場合、および、ステップ121においてメッセージが最
終の処理待ちブロックに当てはまらないと判断された場合の、3つの場合すべて
において、制御はステップ124に渡される。ステップ124において、QSP
76は、ステップ116において構築された記述子リストのみを含むブロックを
構築する。次に、ステップ126において、この新たに作成されたブロックが、
処理待ちブロックのリストに追加される。制御はその後、ステップ127(図9
B)に渡される。
クがあるかどうかを判断する。もしなければ、QSP76は単にクライアントに
リターンする。しかし、もし転送されるべき処理待ちブロックがあれば、制御は
ステップ128に渡される。
最初のブロックを、ICDのHifSendBlockToHost()手続きを呼出すことによって
、IDCに送ろうと試みる。この手続きは、データのブロックをMCP12へと
配信するように、QSP76によってコールされる。図9Bに「A」を付した矢
印で示すように、ICDはこの時点で、リクエストの処理を開始する。ICDに
よって行なわれるステップは図9Cに示す。図9Bを参照して、QSPの処理は
ステップ130に続き、ここでQSP76は、ICDが転送のためにそのブロッ
クを受入れたかどうかを判断する。受入れた場合には、そのブロックはステップ
132において処理待ちのリストから取除かれ、制御はステップ127に戻る。
ステップ127においてQSP76は再び、転送されるべき処理待ちブロックが
残っているかどうかを判断し、そのようなブロックについて処理を続ける。しか
し、もしステップ130において、ICDが転送のために任意のブロックを受け
いれなかったと判断した場合には、QSP76はクライアントにリターンし、送
信されるべきメッセージを含むそのブロックは処理待ちリストに残される。
トの処理をステップ134で開始する。ステップ134において、ICDは、物
理的接続がフロー制御モードにあるかどうかを判断する。フロー制御モードは、
Aシリーズサーバ100のMCPオペレーティングシステム12が、たとえば、
利用可能なバッファがないために、特定のユニット上でデータを受信する準備が
できていないことを示すモードである。物理的接続がフロー制御モードにある場
合には、ICDはQSP76に対して「FALSE」の値を返し、この時点で転
送処理を停止する。物理的接続がフロー制御モードにない場合には、制御はステ
ップ136に渡され、そこで、ICDは、その物理的接続がギャザー(Gather)
ファンクションをサポートするかどうかを判断する。ギャザーは、データを1つ
の動作で、連続しないメモリ領域から転送することのできる機能である。その物
理的接続がギャザー機能をサポートしない場合には、制御はステップ138に渡
され、そこでICDは、(QSP76によって渡された)記述子リストによって
ポイントされるそのデータを、連続したバッファにコピーする。次に、ステップ
140においてICDは、その単一の、連続したバッファをポイントする、擬似
記述子リストを構築する。制御はその後、ステップ142に渡される。
た場合にも、(ギャザーがサポートされずに)ステップ140からステップ14
2に入った場合にも、ICDはステップ142において、物理的接続(すなわち
、特定的な実施例に応じて、EPCCAボード66、PCIブリッジカード67
またはエミュレートされたメモリ同士の接続63)をプログラムして、(ギャザ
ーの場合には)QSP76から受信した記述子リストによって、(ギャザーでな
い場合には)ステップ140で作成された擬似記述子リストによって、そのいず
れかによってポイントされるデータを転送する。ICDはその後、QSP76に
対して「TRUE」の値を返す。
ステップを示す。図示するように、転送が完了すると、ICDが起こされる。ス
テップ144において、ICDは、その転送がうまく完了したかどうかの表示を
受取る。もしうまく完了しなかった場合には、制御はステップ146に渡され、
そこでICDは、たとえば、問題のブロックを再転送したり、物理的接続をリセ
ットしたりすることによって、その誤りを回復しようと試みる。転送がうまく完
了した場合には、制御はステップ148に渡される。ステップ148において、
ICDは、物理的接続のフロー制御状態を調節する。これは、上述の物理的接続
の実施例においては相互接続がポーリングされるために行なわれる。転送が完了
すると、相互接続は、それが再びポーリングされるまで別の転送を開始すること
ができない場合がある。そのため、ポーリングを反映するよう、フロー制御状態
を調節するのである。次に、ステップ150において、ICDは、QspAckBlockT
oHost()の手続きを呼出し、QSPに対して、MCP12への転送が完了したこ
と、および、どの記述子リストが転送されたかを知らせる。ステップ152にお
いて、ICDは、クリーンアップ手続きを行ない、その後リターンする。
への転送がうまく完了したことを知らせるQspAckBlockToHost()の表示を受取る
と、QSP76はステップ154に入る。ステップ154において、転送された
ブロック内のすべてのメッセージがリリースされて、メッセージを送信してきた
クライアントに、それらがうまく転送されたことが知らされる。ステップ156
において、メッセージヘッダおよび記述子リストを含むブロック構造が再利用さ
れて、後続の転送のために利用可能とされる。その後、制御は図9Bのステップ
127に戻って、後続のブロックの処理が行なわれる。
セージを伝送するのにICDおよびQSP76によって行なわれるステップを示
す。図示するように、ICDは、物理的接続を介してAシリーズサーバ100か
らメッセージを受取るのに先立って、その接続のために利用可能な空き受信バッ
ファを作る。メッセージがAシリーズサーバ100からNTサーバ102へと物
理的接続を介して(たとえば、図6の実施例においてはフィードスルーカード6
2、ケーブル64およびEPCCAカード66を介して)転送されると、ICD
は、メッセージがICDが指定した空き受信バッファのうちの1つに受信された
ことを示す表示によって起こされる。ステップ158において、ICDは、その
メッセージをAシリーズサーバ100からQSP76へと、QspLRPut()関数を使
用して渡し、その後リターンする。
セージであるかどうかを判断する。もしそうであれば、ステップ164において
QSP76は、局所的にそのコントロールメッセージを処理し、その後、そのメ
ッセージをステップ166においてリリースしてからリターンする。そのメッセ
ージがコントロールメッセージでない場合には、制御はステップ162に渡され
る。ステップ162においてQSP76は、メッセージヘッダ内のRQRから、
どのステーションがそのメッセージを受取るべきかを判断する。次にステップ1
68において、そのメッセージがその適切なステーションに渡される。
セージバッファを解放すると、ICDのフリーメッセージコールバック関数が呼
出される。ステップ170においてICDは、その解放されたバッファを利用可
能なバッファのリストに加える。物理的接続はその後そのバッファを使用して、
上述のような方法で後続のメッセージを受取ることができる。
2との間に高速の通信インターフェイスを提供する。図6から図8の各実施例に
示すように、仮想LANミニポートドライバ(VLAN)79が、Aシリーズサ
ーバ100とNTサーバ102との間の通信経路内に設けられる。一般に、VL
AN79は、AシリーズのTCP/IPネットワークプロバイダ(TCP/IP
HRNP44)とウィンドウズNTベースのTCP/IPスタック(TCPI
P.SYS58)との両方に対して「仮想LAN」として現われる、NDISデ
バイスドライバである。VLAN79は、Aシリーズサーバ100とNTサーバ
102とがそれら本来の機構を使用して互いに通信することができるように、両
サーバの間に高速かつ待ち時間の短い経路を実装する。
トワークドライバインターフェイス仕様(Network Driver Interface Specifica
tion、NDIS)ファイバ分散型データインターフェイス(Fiber Distributed
Data Interface、FDDI)ネットワークインターフェイスカード(NIC)ミ
ニポートドライバをシミュレートし、かつ、Aシリーズサーバ100にデータを
配信しかつそれからデータを受取るために、LANSG78とライン0との間で
データを交換する、ウィンドウズNTのNDISドライバである。換言すれば、
VLAN79は、TCPIP.SYS58およびLANSG78に対して、FD
DI NICとして現われる。しかし、実際には、VLAN79は単に、ウィン
ドウズNT NDISラッパー(Wrapper)に対してFDDIインターフェイス
カードをシミュレートする、NDISデバイスドライバにすぎない。VLAN7
9は、他のどのNDISドライバとも同じ、外部インターフェイスを提供する。
VLAN79は、より上位のプロトコルに対してトランスペアレントであり続け
るために、NDISミニポートドライバのためにマイクロソフトによって設定さ
れた標準に従う。VLAN79は、厳格に強制されるインターフェイスの規定に
よっては縛られない、LANSGモジュール78との手続き的インターフェイス
を有する。一般に、LANSGとのインターフェイスは、NDISラッパーによ
って強制される規則を、修正したものの組に基づく。
NTサーバ102のメモリ内ではポイントツーポイントであるが、FDDIのよ
うなLANをエミュレートする。FDDIのような標準LANがエミュレートさ
れるので、たとえば両サーバ上のTCP/IP等の通信プロトコルが、修正なし
に動作することが可能である。同様に、MCP12上のTCPポートファイルお
よび、NTサーバ102上のウィンソック(WinSock)TCPソケットを使用す
るすべてのプログラムが、変更なしに相互通信することが可能である。また、L
AN接続が実際にはNTサーバ102のメモリであるために、NTサーバ102
からMCP12にまたはその逆に移動するメッセージの待ち時間は短くて済み、
VLAN79は、他のチャネルアダプタよりも速いトランザクション速度を維持
することができる。さらに、FDDI LANをエミュレートすることによって
、イーサネット上でサポートすることのできるサイズよりも大きいセグメントサ
イズを使用することが可能となる(イーサネットの1500バイトに対して45
00バイト)。さらに、各セグメントのオーバヘッドがより大きなセグメントに
わたって分散されるので、全体としてのデータのスループットが対応して向上す
る。
たMCPシステムとNTシステムとの間でデータを転送する仮想トランスポート
層(「VTL」)およびメッセージ通信サブシステム(「MSS」)と置換する
ことによって、共存する、密結合されたMCPおよびNTの処理環境におけるア
プリケーション間に、性能が最適化された通信を提供する。本発明によれば、V
TL/MSSは、密結合されたシステムの他方側に対して信頼性の高いデータ配
信を行なうかまたは、接続が使用不可能であることを表示する、同種のコネクシ
ョン指向のインターフェイスを提供する。MSSは、システムの、相互接続とは
独立したメッセージ通信トランスポートであって、そのユーザに対して、種々の
異種環境間でコントロール情報およびデータ情報の信頼性の高い転送を行なうた
めの、多種多様な配信および通知機構を提供する。一方、VTLは、そのMSS
接続を使用して、セッション層への一貫性のある、相互接続とは独立したインタ
ーフェイスを提供する。好ましい実施例においては、基礎となる相互接続は、上
述のようなQSP相互接続か、エミュレートされた相互接続か、または、199
7年7月2日にすべて出願され本願の譲受人であるユニシス・コーポレーション
にすべて譲渡されている、米国特許出願連続番号第08/887,228号、0
8/887,295号または08/887,296号に記載されているような、
CIA相互接続であり得る。なお、これらの出願の内容は、その全文が、ここに
引用により援用される。各相互接続について、MSSは、伝送されたデータが伝
送した側のシステムのメモリから取去られる前に、すべての受信通知が受取られ
るようにする。大きなサイズのメッセージもLANのセグメントサイズに分割す
ることなくそのまま送信することができるので、通信効率がさらに改善される。
MSSはホストインターフェイスファンクション(「HIF」)と直接インター
フェイスするので、相互接続が変更された場合にも、HIFへのMSSインター
フェイスのみを変更すればよく、他のすべてのソフトウェアの修正は不要である
。
NXエンタープライズ・サーバ上の、本発明によるVTL/MSS相互接続通
信インターフェイスを示す。図示されるように、この通信インターフェイスは、
メッセージ通信サブシステム(MCP MSS)92およびそのMSS「ユーザ
」(MCP VTL90)を含む。MCP MSS92は複数のモジュール17
2を含み、それらは、それぞれのホストインターフェイスファンクション(「H
IF」)へのインターフェイス、または、本発明の種々の実施例に従ってAシリ
ーズサーバ100とNTサーバ102との間に提供される、それぞれのユーザ環
境内の相互接続へのインターフェイスを含む。HIFは、たとえば、図6に示す
PCCA HIF、図7に示すPCIブリッジHIF、図8の相互接続エミュレ
ーション、上述の関連特許出願に記載された通信接続間アーキテクチャ(「CI
A」)、または、今後開発されるであろう別の種類の相互接続を含む。MSS−
NT96は同様に、それぞれのHIFとインターフェイスをとる、対応する複数
のモジュール174を含む。好ましくは、VTL/MSS経路は、相互接続のア
ーキテクチャが変更された場合に、HIFに対するMSSインターフェイスモジ
ュール172、174のみが影響を受けるように設計される。最後に、MSS−
NT96は、そのMSS「ユーザ」(NT VTL94)とインターフェイスを
とり、MSSユーザが今度は、トランスポートドライバインターフェイスのクラ
イアント(「TDC−CLIENT」)98とインターフェイスをとる。以下の
説明から明らかとなるように、図10に示した通信インターフェイスは、(ここ
では「MSS_Endpoint_Dialog」と呼ばれる)データダイアログを作成し、これ
が、従来のTCP/IPプロトコルで可能であったよりも大きなブロック(たと
えば、HIFの最大転送サイズによって規定した場合、64Kバイト)での、信
頼性の高いデータ配信を可能にする。
て通信するのに使用される、本発明のVTL/MSSプロトコルについて、以下
のセクションで説明する。メッセージ通信サブシステム(「MSS」)の説明か
ら始めて、最後に「仮想」トランスポート層(VTL)について説明する。
ート層プロトコル(「MSSユーザ」)によって従来のTCP/IPプロトコル
の代わりに使用され、異なるメッセージ通信モデル(プルモデルおよびプッシュ
モデル)ならびにさまざまなサービスをそのユーザに提供する、システムの、相
互接続とは独立したメッセージ通信システムである。図10に示すように、MS
Sは、どのようなネットワークで使用するのにも好適な、汎用メッセージ通信ア
ーキテクチャである。概して、MSSは、現時点におけるネットワークプロバイ
ダ(たとえば、TCP/IPおよびBNAネットワークプロバイダ)の、MCP
12のネットワークプロセッサへのI/Oインターフェイスと同様であるが、こ
のMSSは、複数のシステムプラットフォームおよびシステム相互接続パラダイ
ムにわたって同じインターフェイスを使用することができるようにする、実際の
I/Oインターフェイスからのある抽象化レベルを提供する。以下の説明から当
業者には理解されるように、MSSは、TCP/IPプロトコルとは異なって、
そのユーザに、信頼性の高いデータ配信を保証する。このユーザの一例が、次の
セクションで詳細に説明する、仮想トランスポート層(「VTL」)である。
ーキテクチャによって提供されるシステムの相互接続にわたる、NT VTLコ
ンポーネント94とMCP VTLコンポーネント90との間の、ダイアログの
開始、データ転送およびダイアログの終了を担当する。MSSは、クライアント
・サーバ間で複数のデータダイアログを提供し、プラットフォームまたはシステ
ムの相互接続とは独立した特徴および特異性を、MSS「ユーザ」から隠す。M
SSは、これらのサービスを行なうためにそのユーザに対して手続き的インター
フェイス(コールバックを含む)を提示する。
を提示するので、MSSが原因でまたは相互接続における変化が原因で、MCP
VTLコンポーネント90またはNT VTLコンポーネント94を変更する
必要はない。しかし、MSSインターフェイスが「プルモデル」および「プッシ
ュモデル」の両方を提供するので、異なる環境におけるコンポーネントは、環境
に固有の理由のために、配信のために異なる意味規則を使用したいと願う場合も
あり得る。
おいて好ましい実施例においては、MSSはスタートアップ時に、MSS_Initial
ize()のコールによって、NT VTLコンポーネント94およびMCP VT
Lコンポーネント90によって初期化される。これにより、MSSによって必要
とされる構造がすべて作成される。MSSは、初期化時に、すでに初期化されて
いる他のMSSユーザのための相互接続をサーチする。MSSは、ローカルMS
Sユーザに対して、相補的なすべてのMSSユーザについて、USER-CHANGE-NOTI
FICATIONによって知らせる(たとえば、MSSは、ローカルVTLコンポーネン
トに対して、相互接続内に発見された他のすべてのVTLコンポーネントについ
て知らせる)。発見された各リモートMSSユーザに対して1つのUSER-CHANGE-
NOTIFICATIONが用いられ、ローカルMSSユーザはこれを使用して、各リモート
MSSユーザとの通信を初期化する(たとえば、IPアドレスまたは他の構成情
報を交換する)ことができる。ローカルMSSは、NT VTLコンポーネント
94またはMCP VTLコンポーネント90からの、MSS_Terminate()のコー
ルによって終了される。これにより、この環境からのすべてのMSSダイアログ
が終了する。このローカル環境へのダイアログを有するすべての遠隔環境は、(
エンドポイント(またはデータ)ダイアログについては)DIALOG-CHANGE-INDICA
TIONによって、および、(コントロールダイアログについては)USER-CHANGE-IN
DICATIONによって、通知される。
る、その相手方すべてとの通信を初期化する。これは、MCP MSS92がア
クティブであるすべてのNT MSS96との通信を初期化せねばならないこと
を意味する。MSSはまた、遠隔環境から入ってくるメッセージ、および(出て
いくデータ要求とともに伝送される)出ていくコントロール情報に対して、ある
量のメモリを割当てかつリザーブする。この領域は、環境(MCP対NT)によ
って、また、各システムの相互接続パラダイム(たとえば図6、7、8またはC
IA)によって、異なるであろう。
ートMSSユーザ管理(Remote MSS User Management)機能。これは、MSSが
そのユーザに対して、(共存する種々の環境における)リモートMSSユーザの
ステータス変化を知らせることができるようにする。(2)エンドポイントダイ
アログ管理(Endpoint Dialog Management)機能。これは、MSSユーザが、リ
モートMSSユーザとのMSSエンドポイントダイアログ(Endpoint Dialog)
を構築し、それについてのステータスを受信しかつそれを無効にすることができ
るようにする。(3)コントロールメッセージ転送機能(Control Message Tran
sfer Functions)。これは、MSSユーザが、コントロールメッセージの内容が
MSSに対して完全にトランスペアレントとなるように、互いにコントロールメ
ッセージを転送することができるようにする。最後に(4)データ転送(Data T
ransfer)機能。これは、MSSユーザが、データ転送を最適化するために、デ
ータをコントロールメッセージ転送とは別に転送することができるようにする。
知らせる役割を果たす。リモートユーザのステータスは、「利用可能」または「
利用不可能」のいずれかとしてのみ区別される。MSSは、そのローカルユーザ
のうちの1つにとって関心のあるリモートユーザにおいてステータス変化を検出
するたびに、そのユーザ全員にUser-Change-Notificationを提供する。この通知
は、そのリモートユーザの現時点におけるステータスを示す。「利用可能」が表
示されるときは、MSSは、そのリモートユーザが位置する環境と、MSSユー
ザ同士を接続するMSSコントロールダイアログと、そのリモートユーザのタイ
プ(たとえば、NT VTLコンポーネント94、MCP VTLコンポーネン
ト90)とを特定する。これに応答して、MSSユーザは、その表示されたMS
Sダイアログに対して、自身の局所参照値を提供する。MSSは、この局所参照
値を、同じコントロールダイアログ上の他のどのオペレーションにおいても含め
る。
ログ上に発生したエラーを検出した場合にも、User-Change-Notificationを提供
する。リモートユーザが利用不可能であることが知らされると、対応するMSS
ダイアログはもはや使用することができなくなる。ダイアログが「利用不可能」
となれば、そのダイアログ上で実行されていた機能は機能しなくなり、誤った結
果をコールした側に返す。このダイアログは、「利用可能」を示すUser-Change-
NotificationがMSSユーザに対して提示されると、再び使用することができる
ようになる。
て、MSSユーザもまた、自己の判断で、付加的なMSS_Endpoint_Dialogを構
築することができる。MSSは、この目的のために、Create-Endpoint-Dialogお
よびOpen-Endpoint-Dialogの、2つのオペレーションを提供する。MSS_Endpoin
t_Dialogの構築を完了するために、Create-Endpoint-Dialogオペレーションが
MSSユーザのうち1つによって行なわれ、Open-Endpoint-Dialogオペレーショ
ンが同位のMSSユーザによって行なわれる。Open-Endpoint-Dialogオペレーシ
ョンは、Create-Endpoint-Dialogによって得られた情報を必要とする。この情報
は、コントロールダイアログ(または他の適用可能な機構)を介して、同位のユ
ーザに通信される。
されるべき相手方であるリモートMSSユーザを一意に識別するのに十分な情報
を提供する。この情報は、そのリモートユーザが位置する環境、そのリモートユ
ーザのタイプ、および、そのリモートユーザの特定のインスタンスの識別子を含
む。MSSユーザは、さらに、MSSに対してそのリモートユーザへのデータ配
信をどのように行なってほしいかを示す、そのダイアログのためのオプションを
、MSSがそのダイアログについてMSSユーザに対して通知を返すときに使用
すべき局所参照値とともに、表示する。Create-Endpoint-Dialogの完了時、MS
Sは、このMSSダイアログのための、システム独自の識別子を提供する。この
プロセスを完了するには、同位のMSSユーザに対して、Create-Endpoint-Dial
ogによって得られたダイアログの識別子の値が与えられねばならず、また、その
後、同位のMSSユーザがOpen-Endpoint-Dialogを呼出して、その値を入力とし
て、(そのローカルMSSのための、自身の局所参照値とともに)提供せねばな
らない。しかし、MSSユーザは、Create-Endpoint-DialogまたはOpen-Endpoin
t-Dialogをうまく完了した後でも、ダイアログを利用してはならない。これは、
そのダイアログが完全に構築されていないためである。MSSユーザがこのダイ
アログ上でのデータ送信を開始するには、「利用可能」を示すDialog-Change-No
tificationを待たねばならない。
_CLOSEDおよびCLOSEDの、5つの状態を有する。PENDING_OPENは、ローカル環
境がMSS_Endpoint_Dialogの作成をうまく完了したが、遠隔環境が対応するオ
ープンを開始していないかまたはそのオープンが完全に終了していないことを示
す。このダイアログ上でデータを送受信することはできない。OPENは、MSS_End
point_Dialogがアクティブであって使用準備ができていることを示す。このダ
イアログ上ではデータを送受信することが可能である。NOT_READYは、このダイ
アログがフロー制御状態にあることを示す。このダイアログ上ではデータの送信
はできないが、受信することは可能である。REMOTE_CLOSEDダイアログは、閉じ
るまたは無効化するプロセス中にある。遠隔環境はこのダイアログを閉じ終え、
ユーザはそのクローズについて通知されている。このダイアログについては、M
SS内ではデータは未だ利用可能であるが、このダイアログを使用して新しいデ
ータを送信することはできない。最後に、CLOSEDは、このダイアログが閉じて、
このダイアログを介してデータを送受信することができないことを示す。
t_Dialogオペレーションを行なうことによって終了される。Close_Endpoint_
Dialogオペレーションが行なわれる場合、同位のMSSユーザ同士がこのオペレ
ーションを個別に行ない、それらは互いに、遠隔クローズ表示によって遠隔側の
クローズを通知される。ローカルMSSユーザがクローズした後は、リモートユ
ーザはそのダイアログ上でデータを送信することはできないが、リモートユーザ
は、そのダイアログの遠隔側を自身が閉じるまでは、そのダイアログ上の待ち行
列に入れられた入力データを検索することができる。Destroy_Endpoint_Dialo
gオペレーションが行なわれる場合には、リモートユーザは直ちに、そのダイア
ログが「CLOSED」となったことを知らされ、待っているデータはすべて廃棄され
る。
セージを転送することができるようにする。コントロールメッセージの内容は、
MSSに対して完全にトランスペアレントである。MSSユーザは、Send-Contr
ol-Messageオペレーションを開始することによって、コントロールメッセージ転
送を開始する。コールする側は、メッセージを送信するのに使用するMSSダイ
アログと、そのメッセージの長さと、そのメッセージの始めをポイントするポイ
ンタとを特定する。対象となるMSSダイアログはコントロールダイアログでな
くてもよい。なぜなら、コントロールメッセージはMSS_Endpoint_Dialogを介
して送信することができるためである。MSS_Endpoint_Dialogを介して送信す
る場合、コントロールメッセージは、同じダイアログ上で送信される他のデータ
メッセージとともに、順に配信される。同位のMSSコンポーネントは、Receiv
e-Control-MessageによってMSSユーザに対してコントロールメッセージを配
信し、到着したMSSダイアログデータのためのMSSユーザの参照値と、その
データの長さと、そのデータに対するポインタとを提供する。コントロールメッ
セージは、連続したメモリ領域で、(MSS内におよびそれから)送信および配
信されねばならない。
ようにする。MSSは、バイトストリーム指向のデータ転送およびメッセージ指
向のデータ転送の両方をサポートする。MSSユーザは、MSS_Endpoint_Dialo
gのメッセージ指向のオプションを設定する(または設定しない)ことによって
、オペレーションのモードを選択する。MSSは、MSS_Endpoint_Dialogの両
側が、メッセージ指向の同じオプション値を使用することを要求する。MSSユ
ーザはまた、データがローカル環境に到達したときにMSSが使用すべき、デー
タ配信のモードを選択せねばならない。
れる。
配信することを要求する。データは、Data-NotificationまたはAccept-Dataオペ
レーションのいずれかによって、同位のMSSユーザに配信される。このオペレ
ーションは、コントロールダイアログ上で実行されてはならない。しかし、この
リクエストは、アプリケーションデータのためにのみ使用される必要はない。な
ぜなら、MSSユーザは、この機構を使用してコントロール情報を送信するよう
選択することもできるためである。MSSに提示されるすべてのデータは、MS
Sヘッダを除けば、通常は連続したメモリ領域内に存在する。MSSは、信頼性
の高いかつ順序正しいデータ配信を担当する。バイトストリーム指向のダイアロ
グについてもメッセージ指向のダイアログについても、MSSは、同位のMSS
ユーザに対して、データを2つ以上の部分として配信するよう選択することがで
きる。データを複数の部分で配信する場合、その部分的な転送および最後の転送
は、その旨が、そのデータのその部分の長さおよび、元々のDeliver-Dataリクエ
ストの長さの表示を含めて、受信側に知らされる。メッセージ指向のダイアログ
については、MSSおよびMSSユーザが協働してメッセージの意味規則を扱う
。Deliver-Dataには次の2つの変形例が存在し、それらはストリーム指向のダイ
アログにもメッセージ指向のダイアログにも適用可能である。(a)「共用バッ
ファ」の変形例。これは、データバッファの所有権がMSSに渡されることを認
めるものである。(b)「私用バッファ」の変形例。この場合、MSSは、それ
が獲得するバッファ内にデータをコピーせねばならない。MSSは、このリクエ
ストのいずれかの変形例を「資源なし」表示で拒絶することが許されている。こ
のリクエストの共用バッファの変形例については、MSSは、そのオペレーショ
ンが完了したときに、コールした側に対してDeliver-Data-Completed表示を提供
する。
されたDeliver-Dataオペレーションが完了したことを表示する。この表示は、受
信側の環境における処理とは独立して発生し得る。これは、同位のMSSユーザ
がそのデータを受信したことを示すものではなく、単に、ローカルMSSコンポ
ーネントがその処理を完了したことを示し、配信を保証する(ダイアログの失敗
を防ぐ)ものである。MSSユーザには、MSSがその対応するDeliver-Dataオ
ペレーションにおいて提供した、(MSSに対して)トランスペアレントな参照
値が提供される。
ダイアログオプションを選択した場合に同位のMSSユーザによって開始される
Deliver-Dataリクエストを完了する結果として行なわれる動作である。このリク
エストは常に、MSSからMSSユーザに対するバッファの所有権の受渡しを含
むので、このオペレーションには私用バッファの変形例は存在しない。MSSユ
ーザは、その処理を完了した後に、MSSに対して、対応するAccept-Data-Comp
lete通知を提供する。
cept-Dataオペレーションが完了したことを示す表示を提供する。MSSには、
その対応するAccept-DataオペレーションにおいてMSSによって提供された(
MSSユーザに対して)トランスペアレントな参照値が提供される。
能であることを示す、MSSによって提供される表示である。これは、MSSユ
ーザがAuto-Data-Deliveryダイアログオプションを選択しなかった場合に、同位
のMSSユーザによるDeliver-DataリクエストをMSSが完了する結果として生
じる。MSSは、どれだけのデータが利用可能であるかを表示するが、この動作
においてはデータの転送やバッファの所有権の転送は行なわれない。
れた)MSSからのデータを取出すよう、MSSユーザによって発せられるリク
エストである。MSSユーザは、MSSがその中にデータをコピーすべきバッフ
ァを、最大データ長表示とともに、提供する。Retrieve-Dataオペレーションの
結果、Retrieve-Dataリクエストにおいて要求されるデータ量および、先に表示
されたデータのステータスに応じて、MSS I/Oバッファの部分的な内容、
1または複数のMSS I/Oバッファの内容全体、または、それらの組合せか
らなるデータが転送され得る。メッセージ指向のダイアログについて、MSSが
単一のRetrieve-Dataオペレーションで転送するのは、最大でも1つの完全なメ
ッセージのみである。特定された最大データ長が、次に利用可能なメッセージの
長さよりも短い場合には、そのメッセージは打切られて、そのメッセージの残り
の部分は廃棄される。このステータスは、MSSユーザに戻される。
述の相互接続パラダイムの各々に対するMSSを、以下に説明する。
インターフェイス上のプロトコルとしてQSPv2メッセージフォーマットを使
用して、各リモートMSSと会話する。MCP環境においては、各NT環境に対
して出ていくデータはすべて、そのデバイスのためのNP/CONTROLLE
Rスタック40を介して送られる。NT環境から入ってくるコントロールデータ
は、NP/CONTROLLERスタック40を通じて受信される。コントロー
ルダイアログのために入ってくるデータは、そのデバイスのためのMSS/CO
NTROLスタックを通じて受信され、MSS_Endpoint_Dialogのために入って
くるデータは、そのデバイスのためのMSS/DATAスタックを通じて受取ら
れる。1つのNT環境につき1つのスタックの組が存在する。MSSダイアログ
IDは、QSPv2アドレスの範囲にわたって多重化される。出ていくMSS_End
point_Dialogアドレスは、ID♯2を使用して、NT MSSユーザを判断す
る。入ってくるMSS_Endpoint_Dialogは、ID♯1を使用してMCP MSS
ユーザを判断する。
したがって、MSS入出力バッファがMCP環境およびNT環境の双方に存在し
、MSSは、QSP76を利用して、メモリの内容をそれらのバッファ間で動か
す。この環境におけるMCP出力を、図12にまとめて示す。図12の上半分に
示すように、私用バッファのDeliver-Dataリクエストを処理する場合、MCP
MSS92は、適切なサイズの利用可能なMSS MCP出力バッファ200を
得る。このバッファ内に、MCP MSS92は、まず、そのオペレーションを
完了するのにNT MSS96によって必要とされるコントロール情報を配置し
、その後、データ転送ヘッダ(Data Transfer Header)およびアプリケーション
データを、このMSS MCP出力バッファ200内にコピーする。MCP M
SS92はその後、その単一領域に対する書込みを開始する。大きなデータを転
送する場合には、複数のバッファ間で分割して行なわれ得る。
エストを処理する場合には、MCP MSS92はそのオペレーションを完了す
るのにMSS−NT96によって必要とされる情報およびデータ転送ヘッダを含
む、小さな「コントロール情報バッファ(Control Info Buffer)」203を構
築する。MCP MSS92はその後、それら2つのバッファ領域(コントロー
ル情報バッファ203およびCoopのアプリケーションのユーザ出力バッファ
208)に対する書込みを開始する。QSP76が対応するリクエストを完了し
、MSS−NT96が、NT VTLコンポーネント94に対して、Accept-Dat
aリクエストを提供する。NT環境のQSPが、複数のバッファを必要とするリ
クエストを受取る場合には、MSS−NT96が、最初のバッファに含まれるコ
ントロール情報を使用して、各バッファに対してAccept-Dataリクエストを発行
する。最後に、Accept-Dataが完了したことをNT VTLコンポーネント94
から通知されると、MSS−NT96は、対応するMSS−NT出力バッファ2
02をその受信バッファプールに戻す。
件下では、MCP MSS92コンポーネントでは、バッファプールからのバッ
ファを使用する、未完了の読出しオペレーションが進行中である。図13に示す
ように、私用バッファのDeliver-Dataリクエストを処理する場合には、MSS−
NT96は、適切なサイズのMSS NT入力バッファ204を得る(大量の送
信には複数のバッファが必要とされ得る)。この入力バッファ204に、MSS
−NT96は、まず、そのオペレーションを完了するのにMCP MSS92に
よって必要とされる情報を位置づけ、その後、データ転送ヘッダおよびアプリケ
ーションデータをそのバッファ(1または複数)内にコピーする。共用バッファ
のDeliver-Dataリクエストに対するMSS-NT96の処理は、完了通知が戻さ
れることを除けば、上述の私用バッファの場合と全く同様である。QSP76が
対応のMSSリクエストを完了し、MCP MSS92はMCP VTLコンポ
ーネント90に対して、Data-NotificationまたはAccept-Dataリクエストを提供
する。QSPが複数のバッファを必要とするリクエストを受取った場合には、M
CP MSS92が、最初のバッファ内に含まれるコントロール情報を使用して
、各バッファに対してData-NotificationまたはAccept-Dataリクエストを発行す
る。QSP_Send_Msg()からの暗黙の受信通知は存在しない(QSP76下のすべ
ての入力は非同期であって、データは、読出リクエストがホストから発行される
のを待つリスト上の待ち行列に入れられ、かつデータは、適切なサイズの読出に
関連づけられる)ので、MCP MSS92は、バッファ206がその制御下に
戻されるのを待ち(バッファは転送がうまく行った場合に解放される)、その後
、その事象を完了通知として使用する。
ーネントが、ネイティブのNTコード内に直接(すなわち、NT MSSコンポ
ーネント96内に直接)、手続き呼出しを行なうことができる機能に基づいてい
る。NT MSSコンポーネント96は、これらの手続き呼出しにおいて提供さ
れるMCPメモリスペースバッファに、直接アクセスすることができる。これら
のバッファは、MSSコンポーネント92および96の間で受渡されるユーザデ
ータおよびコントロールメッセージの双方のために使用される。
ク(Control Dialog Info Blocks)およびエンドポイントダイアログ情報ブロッ
ク(Endpoint Dialog Info Blocks))によって、MCP MSS92コンポー
ネントおよびMSS−NT96コンポーネント内に維持される。MCP MSS
のダイアログ情報ブロックとMSS−NTのダイアログ情報ブロックとの間には
、1対1の対応がある。さらに、以下のMSS−NTルーチンが、MCP MS
S92によってユーザ呼出し可能である。
のに使用される。MCP MSS92は、該当するフィールドを「コントロール
情報バッファ」203内に集め、これがMSS NT手続きにおいて渡される。
MCP MSS92は、MSS−NT96に直接アクセスすることができる。
P環境によって使用される。MSS_NT_Notify_Inputは、実際には出力を返すこ
とはなく、単に、入力が利用可能であることと、それがどのMSSダイアログ上
で利用可能なのかを示す。MSS_NT_Notify_Inputは、メッセージが利用可能に
なるか、何らかのエラー条件が検出されるまで、返信されることはない。
されたメッセージをNT環境から取出すのに、MCP環境によって使用される。
MCP MSS92は、MSS MCP入力バッファ206またはMSSユーザ
バッファ208を提供し、その中に、MSS−NT96が配信されるべきメッセ
ージを入れる。
ストのいずれかの変形例(私用バッファ、共用バッファ)の処理時に、MCP
MSS92は、そのオペレーションを完了するのにMSSによって必要とされる
情報およびデータ転送ヘッダを含む、小さな「コントロール情報バッファ」20
3を構築し、MSS_NT_Rcv_Msgを呼出す。提供される情報の中に、MSSユー
ザの出力バッファ208が含まれる。MSS_NT_Rcv_Msgは、Deliver-Dataメッ
セージをMSSユーザの出力バッファ202から利用可能なMSS NT出力バ
ッファ202(1または複数)へとコピーすることによって、そのメッセージを
処理する(もし利用可能な出力バッファ202がなければ、そのルーチンの返信
結果において、否定応答がMSS−NT96に返される)。データは、データの
コピーと同じオペレーションにおいて、エミュレートされたMCPレイアウトか
らNTレイアウトに変換される。MSS−NT96は、NT VTLコンポーネ
ント94に対して、Accept-Dataリクエストを提供する。MSS−NT96が複
数のバッファに対してMCP環境データをコピー/変換するよう要求する場合に
は、各バッファに対してAccept-Dataリクエストが発せられる。
では、MSS_NT_Notify_Inputのコールが未完了である。Deliver-Dataリクエス
トのいずれかの変形例(私用バッファまたは共用バッファ)の処理時、MSS−
NT96は、適切なサイズの利用可能なMSS NT入力バッファ204を獲得
し、そのバッファ内に、そのオペレーションを完了するのにMSSによって必要
とされる情報を構築し、かつ、データ転送ヘッダおよびユーザデータをコピーす
る(そのデータは、データコピーと同じオペレーションにおいて、NTレイアウ
トからMCPレイアウトに変換される)。その後、MSS NT96は、MSS_N
T_Notify_InputがMCP MSSコンポーネント92に戻るようにする。MSS
_NT_Notify_Inputからの返信時の、MCP MSSコンポーネント92の処
理は、MSS_Endpoint_DialogのAuto-Data-Deliveryの、次のようなオプション
に依存する。すなわち、Auto-Data-Deliveryが設定されている場合には、MSS_N
T_Retrieve_Dataが即座に呼出され、MSS MCP入力バッファ206に入
ってくるデータが取出され、それが、Accept-Dataオペレーションによって、M
SSユーザに配信される。さもなければ(すなわち、Auto-Data-Deliveryが設定
されていない場合には)、データ通知(Data Notification)が発行されて、M
SSユーザがRetrieve-Dataオペレーションを開始するときに処理が始まる。
もあり得る。CIAベースの実現例のMSSは、ノードの各対間の通信のために
1または複数のCIAダイアログを使用し、MSSの観点からは、実際のシステ
ム環境とはかかわりなく、共用されないメモリモデルである。したがって、MS
S入出力バッファは、MCP環境とNT環境のいずれにも存在し、MSSはCI
Aを使用して、それらバッファ間でメモリの内容を移動および変換する。CIA
環境においては、MSSは、CIAノード間でバッファプール、プールマネージ
ャおよびダイアログを作成する、CIAクライアント(ユーザ)である。これは
、MSSユーザによって使用される、「プルモデル」および「プッシュモデル」
の双方を提示する。この環境におけるMCP出力を、図16にまとめて示す。
P MSS92およびMSS−NT96)が、バッファプールを使用する未完了
のCIA受信オペレーションを有する。私用バッファのDeliver-Dataリクエスト
の処理時、MCP MSS92はデータを利用可能なMSS−MCP出力バッフ
ァ200内にコピーし、そのオペレーションを完了するのにMSSによって必要
とされる情報およびデータ転送ヘッダを含む、小さな「コントロール情報バッフ
ァ」203を構築し、その後、それら2つのバッファ領域からのCIA送信を開
始する。共用バッファのDeliver-DataリクエストのためのMCP MSS92の
処理は同様であるが、CIA送信リクエスト内にCoopのアプリケーションの
出力バッファ208が使用される点のみが異なる。CIAが対応の送受信リクエ
ストを完了し、一方、MSS−NT96がNT VTLコンポーネント94に対
して、Accept-Dataリクエストを提供する。NT環境のCIAが複数のバッファ
を必要とするリクエストを受取った場合には、MSS−NT96が、最初のバッ
ファに含まれるコントロール情報を使用して、各バッファに対してAccept-Data
リクエストを発行する。NT VTLコンポーネント94からAccept-Dataが完
了したことが通知されると、MSS−NT96は対応するバッファ202をその
受信バッファプールに戻す。
常な条件下では、MCP MSS92コンポーネントは、バッファプールを使用
する未完了のCIA受信オペレーションを有する。私用バッファのDeliver-Data
リクエストの処理時には、MSS−NT96はデータを利用可能なMSS NT
入力バッファ204内にコピーし、そのオペレーションを完了するのにMSSに
よって必要とされる情報およびデータ転送ヘッダを含む、小さな「コントロール
情報バッファ」203を構築し、その後、それら2つのバッファ領域からのCI
A送信を開始する。共用バッファのDeliver-DataリクエストのためのMSS−N
T96の処理も同様であるが、CIA送信リクエストにおいてTDI−CLIE
NTの出力バッファ210が使用される点のみが異なる。CIAが対応の送受信
リクエストを完了し、一方、MCP MSS92がMCP VTLコンポーネン
ト90に対して、Data-NotificationまたはAccept-Dataリクエストを提供する。
CIAが複数のバッファを必要とするリクエストを受取った場合には、MCP
MSS92が、最初のバッファに含まれるコントロール情報を使用して、各バッ
ファに対してData-NotificationまたはAccept-Dataリクエストを発行する。
ステップは、ネットワーキング環境がMSS_initialize()のコールによって開始
されるときに行なわれる。これは、MCP環境においては、初期化時にTCPI
PSUPPORTライブラリから行なわれ、NT環境においては、VTLソフト
ウェアがロードされて(NTブート時に)初期化されたときに行なわれる。第2
のステップは、すべての相補的MSSに対してMSS_HELLOパケットを送信するス
テップである。これは、MCP環境においては、インターフェイスが利用可能と
なってMCP環境によって開始されるときに行なわれるが、NT環境においては
、MSSは、MSS_HELLOが受信されるまで待って、その後、対応のMSS_HELLOパ
ケットで応答する。ユーザが新しいユーザが利用可能であると通知されたときに
最初に行なわねばならないのは、その新しいリモートユーザと挨拶することであ
る。
ーザが遠隔環境における回復の管理について心配する必要がないことである。M
SSが回復を扱い、そのユーザに対してリモート「ユーザ」環境における変化を
すべて通知する。MSSは、システム相互接続によって異なる論理を有するが、
これは、各システム相互接続が、その領域において、異なる通知および手続きを
提供するためである。
らない。このプロセスは、MSS_initialize()の逆を行なう。図19に示すよう
に、アクティブなMSSは、MSSの終了の結果として終了された各MSS_Endpo
int_Dialogについてダイアログ変更通知を受信すると、アクティビティを終了
する。MCP環境においては、MSSの終了は、MSS_GOODBYEメッセージの到着
か、遠隔環境とのすべてのダイアログを終了させるMSS_Terminate()のコールか
、または、MSS_Reset_Remote_User()のコールによって、開始される。これに
対し、NT環境においては、MSSの終了は、ウィンドウズNT環境の停止(MS
S_Terminate()のコール、または、NX/Network Servicesの停止)の結果として
起こる、ネットワーキングサービスの停止によって開始される。これは、遠隔環
境の異常終了を扱うものではない。そのような場合、ローカルMSSは、他方の
環境が終了または故障したと判断する別の方法を有し得る。
イトストリームおよび、信頼性の高いメッセージ指向のインターフェイスの、両
方を提供する。MSSはまた、受信側の環境において2つの異なる通知機構を備
える。すなわち、MSSがユーザに対して、データが読出に利用可能であること
を通知するか(「プル」モデル)、または、MSSが、新しいデータを受入れる
ためにユーザ規定の手続きを自動的に呼出すか(「プッシュ」モデル)、のいず
れかである。このように抽象化層が付加されることによって、ネットワークプロ
バイダは、TCP/IPプロトコルに存在するような、基礎となるI/Oの制約
および特異性について心配する必要がなくなる。この情報は、正しい順序で遠隔
環境へと配信されるが、性能上の理由またはシステム相互接続の限度によっては
、システム相互接続にわたって分割されることもあり得る。
「プル」モデルを示す。このモデルでは、リモートMSSユーザが、MSS_Endpo
int_Dialog上でデータが利用可能であることを示す通知を受信し、MSSユー
ザがそのデータを、MSSから取出さねばならない。図20の下半分は「プッシ
ュ」モデルを示す。このモデルでは、遠隔MSSが、データをMSSユーザに配
信するために予め規定されたユーザルーチンを呼出す。リモートMSSユーザは
、データバッファの処理を終了したときに、それをMSSに通知せねばならない
。
各バッファは、システム相互接続を介して転送するために、複数のMSS_DATAパ
ケットに分割され得る。この分割は、システムの相互接続モジュール(HIF)
に依存する。遠隔MSSはデータをまとめ直すことはしない。それらのデータを
1つのメッセージにまとめるのは、MSSユーザである。これに対し、メッセー
ジベースのダイアログ上では、MSSはデータを分割することはできず、システ
ム相互接続がそのデータメッセージのサイズを処理することができない場合には
、エラーを戻す。
内で実行する)相補的なユーザ間の協調型手続きによって作成される。図21は
、MSSの観点からの開始プロセスを示す。図21に示すように、ユーザのMSS
_Endpoint_Dialogは、以下の手続きに従って構築される。
point_Dialogのコールを開始する。ローカルMSSはそのパラメータを検証し
、もし有効であれば、ローカルダイアログテーブル内にエントリを作成して、そ
のコールにおいて特定されたリモートMSSに対して、MSS_CREATE_DIALOGパ
ケットを送信する。新しく作成されたローカルダイアログ識別子は、ユーザに戻
される。
検証し、有効であれば、そのローカルダイアログテーブル内にエントリを作成す
る。新しいダイアログのIDは、MSS_CREATE_RESPONSEパケットを介して、開
始側のMSSに戻される。パラメータまたはローカルエントリの作成のいずれか
に問題がある場合には、MSS_ERRORパケットが開始側のMSSに戻される。この
情報は、ローカルユーザがダイアログを開こうと試みたときに、ローカルユーザ
に戻される。
側のライン)から遠隔ユーザ(右側のライン)へと、何らかの外部機構を介して
渡される。このようなメカニズムの1つに、コントロールダイアログ上のMSS_S
end_Control_Msgインターフェイスがある。
呼出し、それが開始側のユーザから受取ったダイアログのIDを渡す。ローカル
MSSはこのダイアログが有効であることを検証し、エラーが生じなかった場合
には、オリジナルの開始側MSS(MSS_Create_Endpoint_Dialogを行なった
側)にMSS_OPEN_DIALOGパケットを送信する。そのダイアログ上で先にエラー
が生じていた場合(またはそのダイアログが作成されなかった場合)には、この
エラーはここで、コールした側のユーザに戻される。
SS_OPEN_RESPONSEを返し、そのローカルユーザに対して、そのダイアログがデ
ータに対して今や利用可能であることを、Dialog_Change_Notification(AVAI
LABLE)によって通知する。
に対してDialog_Change_Indication(AVAILABLE)を通知することによって、
オープンダイアログシナリオを完了する。
なる。
される。それらはまた、環境障害の結果としても終了され得る。図22は、MS
Sの観点からの終了プロセスを図示する。図22に示すように、MSS_Endpoint
_Dialogの正常なクローズは以下のように行なわれる。
int_Dialogをコールする。ローカルMSSが、MSS_CLOSE_DIALOGパケットを
作成して、リモートMSSに送る。ローカルMSSはまた、ローカルユーザに対
して、そのダイアログがもはや使用できないことを(Dialog_Change_Notifica
tionを通じて)通知する。
ダイアログを閉じたことを、Dialog_Change_Notification(REMOTE_CLOSED)
のコールによって、そのローカルユーザに通知する。そのダイアログ上で読出さ
れるのを待っているデータはすべて、ローカルユーザが検索するのに未だ利用可
能である。しかし、ローカルユーザは、このダイアログ上でデータをそれ以上送
信することはできない。ローカルMSSは、MSS_CLOSE_RESPONSEパケットを送
信して、それがクローズパケットを処理し終わったことを知らせる。
ールする(まだ読出されていない未処理のデータは廃棄される)。ローカルMS
SはMSS_CLOSE_DIALOGを生成し、それを(応答する)リモートMSSに送信す
る。ローカルMSSはまた、ローカルMSSに対してDialog_Change_Notifica
tion(UNAVAILABLE)を生成する。
ある。図23はそのような異常終了処理を示し、これは以下のステップを含む。
ルMSSは、そのダイアログ上で待っているすべてのデータを廃棄し、MSS_DES
TROY_DIALOGパケットをリモートMSSに送信する。これはまた、ローカルユー
ザに対して、そのダイアログがもはや利用できないことを(Dialog_Change_No
tification(UNAVAILABLE)によって)通知する。
ユーザに対して、そのダイアログがもはや利用できないことを(Dialog_Change
_Notification(UNAVAILABLE)によって)通知し、まだ読出されていないすべ
てのデータを廃棄する。これは、この側においては暗黙のクローズである。
、遠隔環境への経路を提供する。MSSユーザは、このコントロール経路(コン
トロールダイアログ)を介して、または他のMSSダイアログを介して、コント
ロールメッセージを送信したいと望むかもしれない。この経路は、上述のデータ
経路と同様のものであるが、あるダイアログオプションが予め設定されている(
データは自動的にユーザに配信され、ダイアログはメッセージ指向であって、宛
先MSSはこのメッセージをユーザに提示するために別のバッファにコピーせね
ばならない)。
グローバルなものであるため、MSSには内部データはない。MSSは、リモー
ト環境で実行されるMSSの他のインスタンスとMSSパケットの交換によって
通信する。これらのパケットはMSS環境間での制御およびユーザデータの両方
の転送と、MSS制御情報の転送とに使用される。それらはMSSコマンドヘッ
ダと、その直後にあるヘッダおよび実データとからなる。2つのMSS間の転送
を行うたびに、少なくともコマンド部分が使用される。
ものであり、MSS_HELLOパケットにおいて特定された番号から開始し、パケット
が送信されるたびに1だけインクリメントされる。
テム相互接続アドレスは、宛先環境で受信されたときにパケットに存在するシス
テム相互接続ヘッダにある。
インタ。
長さ。
ントでありデータの配信に有用である。このフィールドは、MSS_DATAおよびMSS
_CONTROL_DATAメッセージに対してのみ有効である。
およびデータブロック構造は下記のフォーマットを有する。
制約を強制し得るものもある(これは特に外に出ていくデータについて当てはま
る)。しかしながら、入来データについては、MSSはシステムの相互接続上の
制約のために1つまたは2つ以上のデータブロックにメッセージを分割する必要
があるだろう。
送するためにMSSが使用するコマンドおよびパケット構造について説明する。
各コマンドは、それがセットするMSSパケットのフィールドを表わすだけであ
ろう。他のフィールドはすべて0に初期化される。パケットのシーケンス番号は
、MSS_HELLOコマンドは例外であるが、次の有効なシーケンス番号である。すべ
ての場合において、MSSの送信側エンドポイントにはp_src_dialogidがセッ
トされ、p_dst_dialogidは宛先ダイアログidである。
_が前に付加される)はローカル環境(コマンドが発行された環境)を意味する
。リモートパラメータ(remote_が前に付加される)はリモート環境(ダイアロ
グ生成のための対応する環境)を意味する。応答については逆のことが言える。
ローカルパラメータはリモート環境(命令が発行された環境)を意味し、リモー
トパラメータはローカル環境(応答を生成する環境)を意味する。たとえば、す
べての応答が生成される場合には、MSSはローカルではなくリモート属性を書
入れる。
SSと挨拶をするためにローカルMSSが使用する。これは、この環境のMSS
に関するローカル情報をリモート環境に送る。リモートMSSはそれらの情報を
持つMSS_HELLOパケットによって応答する。
信に使用するリモートMSSに関するシステム相互接続アドレスを特定する。た
とえば、図6の相互接続実装例では、これらはQSPヘッダに使用されるRQR
(リモートキューリファレンス)に相当する。これらは通常、その対応のホスト
プロセスによるスタブの初期化で交換される。
きる状態にあることを示すUSER_DIALOG_NOTIFICATIONがMSSの各ユーザに送
信される。
にローカルMSSによって使用される。リモート環境はこのコマンドに応答しな
い。リモート環境がMSS_GOODBYEコマンドを受信すると、このリモート環境を持
つすべてのMSS_Endpoint_Dialogsが無効化され(ユーザにはDIALOG_CHANGE_
NOTIFICAIONによって通知される)、その後制御ダイアログが無効化される。こ
れにより、この環境がもはやアクティブではないことを示すUSER_CHANGE_NOTI
FICATIONがMSSの各ユーザに送信される。
生成パラメータをリモートMSSに通信するために使用される。パラメータは構
造体MSS_create_paramsを使用することにより転送される。
tl_dialog_id)に関連した環境に送られたパラメータに基づいてダイアログエ
ンドポイントを生成する。local_addressはこのダイアログのために使用される
こととなる、システムの相互接続に依存するアドレスである。うまくいった場合
、それはMSS_CREATE_RESPONSEにおいて新規に作成されたエンドポイントに関
する情報を返す。うまくいかない場合にはMSS_ERRORを返す。
使用される。それは、エンドポイントがうまく生成されたことを示す。この情報
はローカルダイアログテーブルにストアされる。
たエンドポイントである。Remote_addressはリモート環境と通信するために使
用される、システムの相互接続に依存するアドレスである。
用される(エンドポイントはリモート環境で生成され、ダイアログidは制御ダイ
アログなどの何らかの他の手段によってこの環境に送られている)。
。うまくいった場合、それはMSS_OPEN_RESPONSEを返し、エラーがあった場合
にはMSS_ERRORを返す。
る。それはオープンの状態を返す。
果として)ダイアログをクローズするために使用される。うまくいった場合には
MSS_CLOSE_RESPONSEを返し、エラーがあった場合にはMSS_ERRORを返す。
れる。それはクローズの状態を返す。
た結果として)ダイアログをクローズし、データを無効化するために使用される
。うまくいった場合にはMSS_DESTROY_RESPONSEを返し、エラーがあった場合に
はMSS_ERRORを返す。
用される。それは無効化の状態を返す。
ることを示すために使用される。応答には、不当なコマンドとともにmss_resul
tエラーコードが含まれる。
eを呼出し側ユーザに返すためにこれを使用し得る。
するために使用される。メッセージのデータ部分はコマンドヘッダにおいて特定
されたダイアログidに対する待ち行列に入れられることとなるユーザデータであ
る。
トにおいて特定されたダイアログに対する待ち行列にデータを入れることとなる
。
めに使用される。それは、ユーザデータの代わりに制御情報を含むことを除いて
は、MSS_DATAパケットと同一である。ユーザはユーザヘッダとして制御情報を
送信する。
用される。ハートビートは、予め定められた期間(たとえば10秒)内にリモー
トMSSから新規メッセージが送信されていない場合に送信される。長期間(た
とえば5分)にわたってハートビートが受信されない場合、制御ダイアログには
UNAVAILABLEがマークされ、その制御ダイアログを介するすべてのダ
イアログが終了する。AVAILABLE制御ダイアログにMSS_HEARTBEATが受
信される場合、リモート環境/MSSは依然として通信状態にあり、すべての非
アクティブ時間がリセットされる。一方、MSS_HEARTBEATがUNAVAILAB
LE制御ダイアログに受信される場合、それは無視される。
Sのユーザが呼出し得る手順について説明する。次章で説明するが、VTLとは
発明の好ましい実施例におけるMSSユーザである。
するルーチンである。それはプラットフォームに特有の初期化ルーチンから呼び
出され、すべての構造(テーブル空間、ヘッダ)を初期化する責任を負う。
である。この手順によりすべてのダイアログ(異常終了)が無効化され、リモー
ト環境にそれが通知されることとなる。MSS_Endpoint_Dialogsに対する処理が
まず行なわれ、その後制御ダイアログに対するものが続く。これがMSSの最後
のユーザである場合、MSSはすべての構造を終了させ解放する。
ターフェイスを終了させる手順である。まだクローズされていないダイアログが
ある場合、この手順によりそのようなダイアログがすべて無効化され(異常終了
)、そのことがリモート環境に通知される。MSS_Endpoint_Dialogsに対する処
理がまず行われ、その後制御ダイアログに対する処理が行なわれる。次いで、制
御ダイアログが(自動再初期化またはこの手順)によって再確立される。これは
1人のユーザに関するMSS_terminate()およびMSS_initialize()に等しい。
alogエンドポイントを生成し、かつこのダイアログをオープンするために使用さ
れ得るリモート環境からのダイアログIDを返す手順である。MSSは、何らか
の動作によってこのダイアログを介してパラメータlocal_user_referenceを返
すこととなる。パラメータmessage_offsetは各バッファの初めにどれだけのス
ペースがあるかを特定する。うまくいった場合、この手順はMSS_Endpoint_Dia
logをオープンするプロセスを開始する。生成されたばかりのMSS_Endpoint_Di
alogはPENDING_OPEN状態であり、オープンは、返されたDialog_IDによってリ
モート環境がMSS_Open_Endpoint_Dialogを行なうときに完了し得る。これが
行なわれると、このユーザには、MSS_Endpoint_Dialog変更通知による通知が
行なわれる。
)MSS_Endpoint_Dialogをオープンする手順である。Local_user_reference
、options、message_offsetはMSS_Create_Endpoint_Dialog()と同じ意味を
持つ。うまく完了すると、ダイアログはまだPENDING_OPENである。他の側がオ
ープンを確認すると、MSS_Endpoint_Dialog変更通知がユーザに送信されるこ
ととなる。
する手順である。ダイアログに対する待ち行列に依然として入れられているリモ
ート環境からの入来データはすべて消去される。リモート環境において待ち行列
に入れられた外に出ていくデータはすべて依然としてリモート環境で(NO_DATA
_AVAILABLEがMSSによって返されるまで)取出され得る。ローカルダイアロ
グが直ちにクローズされ、DIALOG_NOT_OPENによって後の動作すべてがリター
ンする。一旦クローズされるとリモートダイアログはこれ以上データを送信する
ことができず、REMOTE_CLOSEDの状態を持つDIALOG_CHANGE_INDICATIONを受信
する。リモートダイアログが一旦クローズされると、データが除去される。
無効化する手順である。両環境において待ち行列に入れられたすべてのデータが
自動的に消去される(MSSによる後のデータ取出ではNO_DATA_AVAILABLEが
返される)。ローカルダイアログが直ちにクローズされ、DIALOG_NOT_OPENに
よって後の動作がすべてリターンする。リモートダイアログはCLOSEDの状態を持
つDAILOG_CHANGE_INDICAITONを受信する。リモートダイアログは一旦クローズ
されるとそれ以上データを送信することができない。
アログを介して制御メッセージを送信する手順である。制御メッセージは制御ダ
イアログまたはMSS_Endpoint_Dialogのいずれかによって送信され得る。OUT_
OF_RESOURCESが返された場合には、プラットフォームが非常に深刻な状態にあ
りフロー制御されていること(制御メッセージの方がデータメッセージよりも優
位であること)を意味する。MSS_UNAVAILABLEが返された場合には、リモート環
境がシステム相互接続ともはや通信していないことを示す。SUCCESSが返
された場合には、ダイアログがアクティブであり、この制御ダイアログによって
データが送受信され得ることを示す。それはまた、リモートユーザがアクティブ
でありMSS_Endpoint_Dialogがリモート環境によって生成され得ることも示す
。
送信する手順である。オプションSHARED_BUFFERがセットされた場合、このバッ
ファは配送が完了するまでMSSの所有物となる。さもなければ(プライベート
なものであれば)、MSSはバッファをMSS割当バッファにコピーして転送す
る必要がある。このオプションはデータのデータ部分だけに関するものであり、
ヘッダは常にMSS制御バッファにコピーされ、リモート環境に転送される。MS
S_Deliver_Dataに送られたオプションはダイアログ生成時に特定されたオプシ
ョンより優先順位が上である。OUT_OF_RESOURCESが呼出し側に返された場合に
は、これはこのダイアログに対する暗黙のNOT_READYである。ダイアログが後に
利用可能になったときに、DIALOG_CHANGE_INDICATIONがこのダイアログに送信
されることとなる。この場合、このメッセージはリモートユーザには送信されて
いない。完了時に、MSSはALREADY_COMPLETEDを返すか、または後のある時点
でDeliver_Data_Complete()を呼出すことによりこのことを示すこととなる。
によって呼出される手順である。このコマンドにはプライベート版しかない(デ
ータはユーザのバッファにコピーされる)。返信時に、MSSはユーザのポイン
タにコピーされたデータの長さを返す。ポインタはデータの始めにセットされる
(変化なし)。MESSAGE_ORIENTEDがセットされ待ち行列の先頭におけるメッセ
ージのデータすべてがユーザのバッファに転送できなかった場合、データは切り
捨てられMESSAGE_TRUNCATEDが返される。MSS_Header_Length=0である場合に
は、この手順はデータをコピーするだけでありヘッダは破棄されることとなる。
Max_Data_Length=0である場合には、この手順はヘッダをコピーするだけであ
り、データは後の呼出しに備えて保持されることとなる。Message_Offset(こ
のダイアログの生成/オープンからのもの)は、データのコピーを希望するバッ
ファの場所へのポインタをユーザが渡すため、これは当てはまらない。ユーザは
message_offsetに関するこのポインタを既に調節しているものとする。
送られたときにシステムの相互接続に依存するモジュールによって呼出されるル
ーチンである。MSSパケットはMSSユーザに配送されることとなる。システ
ムの相互接続は既にI/Oバッファを上述のMSS_MESSAGE構造に変換している。
MSSパケットはMSSによって所有されるようになる。このルーチンによって
もまた、内容に応じてメッセージの構造が変化し得る[データからのヘッダを取
出す]。
るためにMSSユーザが呼出す手順である。バッファの所有がMSSに返される
。バッファは例外なく返される。
イベントがシステムの環境に起こったことをMSSに知らせるために呼出すルー
チンである。
理およびフロー制御プリミティブなどのMSS間制御情報を扱うために呼出すル
ーチンである。
NPプラットフォームを介するインターフェイス、エミュレートされたインター
フェイス、またはCIAインターフェイスを使用する。NT MSSインターフ
ェイスは、NT環境においてMSSを実装するのに必要なすべてのNT特有機能
に対する責任を負うNTサーバ102上にロードされたドライバである。これは
図6から図8に示される。一般的には、MSS-NTインターフェイスはCNP QS
P76およびLDM82と通信するのに必要な構造すべてを規定する必要がある
。それは上述のMCP MSSに対して相補的なアクションをとる。
図24(a)に示されるように、ユーザのアプリケーションにより、ダイアログ
の生成が要求される。ステップ300において、MSSユーザはこの要求をMS
Sに送りダイアログを生成する。ステップ302において、ダイアログが生成さ
れ得るかどうかが決定され、これにはダイアログテーブルのエントリとMSS制
御ダイアログの利用可能性とが必要である。ステップ302においてダイアログ
の生成が不可能であると判断された場合、MSS_ERRORメッセージが返される。し
かしながら、ステップ302でダイアログが生成できる場合には、ステップ30
4においてダイアログテーブルのエントリを確保し、ローカルIDを割り当て、
ダイアログ状態をPENDING_OPENに設定する。次に、ステップ306においてMSS
_CREATE_DIALOGメッセージがローカルIDでフォーマット化され、結果として
得られたメッセージがステップ308においてシステムの相互接続を介してリモ
ートMSSに送信される。
ジがリモートMSSに到達すると、ステップ312においてその有効性がチェッ
クされる。ダイアログメッセージがステップ312で信頼性に関するチェックに
合格しない場合、MSS_ERRORパケットがステップ314において送信者に返信さ
れる。しかしながら、ダイアログメッセージに信頼性がある場合、ステップ31
6において、ダイアログメッセージにMSS_CREATE_DIALOG要求が含まれるかど
うかが判断される。含まれない場合にはダイアログメッセージが他の場所で処理
される。しかしながらダイアログメッセージがMSS_CREATE_DIALOG要求である
場合にはローカルダイアログテーブルがステップ318でチェックされて、MC
P MSS92とMSS-NT96との間でダイアログが生成され得るかどうかが判断
される。できない場合にはMSS_ERRORパケットがステップ320において送信者
に返される。さもなければ、MSSはダイアログテーブルエントリを確保し、イ
ニシエータの(ダイアログメッセージからの)ローカルIDをストアし、ステッ
プ322において受信側のシステムのローカルIDによって応答メッセージをフ
ォーマット化する。その後ステップ324において応答メッセージが相互接続を
介してイニシエート側のシステムに返される。
その有効性がステップ328で評価される。応答メッセージが無効である場合に
はMSS_ERRORパケットがステップ330で送信者に返信される。応答メッセージ
が有効である場合には、ステップ332において、応答メッセージがMSS_CREAT
E_RESPONSEメッセージであるかどうかが判断される。そうでなければメッセー
ジは他の場所で処理され、そうであればダイアログがリターンIDに基づいてス
テップ334で調べられ、要求されたダイアログが利用可能でありかつPENDING
_OPEN状態であるかどうかが判断される。ダイアログが利用不可能であるか、ま
たは良好な状態でない場合、MSS_ERRORパケットがステップ336で送信者に返
される。さもなければ、ローカルIDおよび情報がダイアログに与えられ、MS
Sは、MSSユーザがステップ340(図24(d))でダイアログのオープン
を要求するまで、ステップ338においてPENDING_OPEN状態のまま維持される
。
アログのオープンを要求すると、ステップ342においてメッセージのダイアロ
グが既に生成されているかどうかが判断される。そうでなければエラーコードが
返される。さもなければステップ344において、ダイアログが既にオープンさ
れているかどうかが判断される。そうであれば、要求されたダイアログが既にオ
ープンな状態であることを示すエラーコードがMSSユーザに返される。さもな
ければ、ダイアログテーブルにおけるローカルおよびリモートIDがストアされ
、ステップ346でMSS_OPEN_DIALOGメッセージがフォーマット化され、ステ
ップ348で相互接続を介して送信される。
ージが受信されると、その有効性がステップ352でチェックされ、無効である
場合にはMSS_ERRORパケットがステップ354で送信者に返信される。MSS_OPE
N_DIALOGメッセージが有効である場合には、ステップ356において、MSS_OP
EN_DIALOGメッセージのIDがローカルダイアログテーブルのエントリと一致す
るかどうかが判断される。そうでなければステップ358でMSS_ERRORパケット
が送信者に返される。さもなければMSSの状態がステップ360で「OPEN
」にセットされ、MSSのユーザには、要求されたダイアログがオープンである
ことがステップ362で通知される。ステップ364でMSS_OPEN_RESPONSEメ
ッセージがフォーマット化され、ステップ366で相互接続を介して、近くに結
合された他のシステムに伝送される。
368で受信されると、その有効性がステップ370でチェックされ、無効であ
る場合にはMSS_ERRORパケットがステップ372で送信者に返される。要求され
たダイアログがステップ374でダイアログテーブルに見られない場合には、ス
テップ376でMSS_ERRORパケットが送信側に返される。さもなければダイアロ
グにはステップ378で「OPEN」とマークが付けられ、MSSユーザには、
要求されたダイアログがオープンであることがステップ380で通知される。M
SSはこのときデータ転送ができる状態である。
続を介してMSSユーザからデータを出力するための手順を示す。図25(a)
に示されるように、MSSユーザはまず、ステップ400でデータの伝送を要求
する。その後ステップ402で、要求されたダイアログが有効でありかつオープ
ンであるかどうかが判断される。そうでない場合にはエラーコードが返される。
さもなければ、ステップ404において、オープンされたダイアログが私用のも
のであるかまたは共有のデータバッファであるかどうかが判断される。データバ
ッファが私有のものである場合、ステップ406において、その制御ヘッダとと
もに伝送されることとなるデータのサイズを持つバッファが得られるかどうかが
判断される。そのようなバッファが利用可能でない場合、MSSユーザにリソー
スエラーが返される。さもなければ、ステップ408において、ユーザおよびM
SSヘッダが、ユーザデータとともにプライベートデータバッファにフォーマッ
ト化される。その後、ステップ412で相互接続を介して1つのバッファを送信
する前に、ステップ410において適当なメッセージがダイアログの「進行中」
リストに付加される。一方、データバッファが共有のものである場合、ステップ
414において、制御ヘッダのサイズであるバッファが得られ得るかどうかが判
断される。そのようなバッファが利用可能でない場合、リソースエラーがMSS
ユーザに返される。さもなければ、ステップ416において制御ヘッダが共有デ
ータバッファにフォーマット化される。その後、ステップ420において相互接
続を介して制御データおよびユーザデータバッファを送信する前に、ステップ4
18においてダイアログの「進行中」リストに適当なメッセージが付加される。
2(図25(b))においてMSSには、送信/出力要求が完了したことが相互
接続を介して通知され、ユーザデータが送信されると、ステップ424において
ダイアログの進行中リストからデータバッファが除去される。その後、ステップ
426においてMSSユーザには、そのバッファの送信がこれで完了したことが
通知される。
Sユーザにデータを入力するための手順を示す。図26(a)に示されるように
、ステップ500でメッセージが相互接続からMCPに到達すると、そのメッセ
ージにはステップ502で有効性のチェックが施される。メッセージが有効性の
チェックに合格しない場合、ステップ504でMSS_ERRORパケットが送信者に戻
され、さもなければ、ステップ506において、入力データがダイアログに関す
るものであるか否かを判断する。そうでない場合にはデータは他の場所で処理さ
れる。データがMSS_Endpoint_Dialogに関するものである場合には、ステップ
508において、選択されたダイアログが自動配送をサポートするか否かが判断
される。そうでない場合、受信されたメッセージがステップ510でMSS_Endpo
int_Dialogダイアログの入来待ち行列に入れられ、ステップ512においてM
SSユーザには、そのデータメッセージが待ち行列に入れられていることが通知
される。しかしながら、ダイアログが自動配送をサポートする場合、MSSユー
ザにはステップ514において、ダイアログに関する入力データがあることが通
知され、MSSユーザはデータメッセージを含む実データバッファを送っている
。ステップ516でMSSユーザがデータバッファに対する処理を終えたと判断
されると、データバッファはステップ518で解放され、さもなければ、システ
ムは、ステップ520で、MSSユーザがデータバッファに対する処理を終え、
データバッファが解放され得る状態であることが示されるのを待機する。
す。ステップ522に示されるように、ユーザは、MSSが所定量のデータを、
ユーザの宛先アプリケーションがアクセス可能なデータバッファにコピーするこ
とを要求する。ステップ524においてMSS_Endpoint_Dialogが有効化され、
データが転送用待ち行列に入れられていることを確認する(図26(a))。有
効化が失敗するとエラーコードが返され、さもなければステップ526において
、ユーザが要求したものと同量の最初に待ち行列に入れられたメッセージがユー
ザのデータバッファにコピーされる。ステップ528においてMSS_Endpoint_D
ialogメッセージが完全に検索されたと判断されると、ステップ530でメッセ
ージが待ち行列から外されて解放され、処理がステップ532で終わる。一方、
検索される入力データがまだある場合、ステップ534において、現在のメッセ
ージにおけるすべてのデータがコピーされているかどうかが判断される。そうで
あれば、ステップ536においてメッセージが待ち行列から外されて解放され、
処理がステップ538で終わる。しかしながら、コピーされることとなる入力メ
ッセージにまだデータがある場合、待ち行列から外されたデータはステップ54
0で更新され、そのデータが検索されていないことを表わす。その後処理がステ
ップ542で終わる。
ialogのダイアログ終了処理を示す。図27(a)に示されるように、終了処理
は、MSSユーザがMSSがダイアログをクローズすることを要求したときにス
テップ600で開始する。ステップ602において、クローズされるべきダイア
ログが存在しないかまたはオープンでないと判断された場合、エラーコードが返
され、さもなければ、クローズされるべきダイアログに関する待ち行列に入れら
れたデータがすべてステップ604で消去され、MSSの状態がステップ606
で「クローズ済み」に設定される。その後MSS_CLOSE_DIALOGメッセージがステ
ップ608でフォーマット化され、ステップ610で相互接続を介して送信され
る。MSS_CLOSE_DIALOGメッセージがステップ612(図27(b))で受信さ
れその有効性がステップ614でチェックされる。メッセージが無効である場合
、MSS_ERRORパケットがステップ616で送信者に返され、さもなければステッ
プ618において、MSS_CLOSE_DIALOGメッセージにおいて特定されたダイアロ
グが存在しかつオープンな状態であるか否かが判断される。ダイアログが存在し
ないかまたはクローズされている場合には、MSS_ERRORパケットがステップ62
0で返される。ダイアログが存在しかつオープンである場合、ステップ622に
おいてMSSの状態に「REMOTE_CLOSED」というマークが付けられ、MSS_CLOSE
_RESPONSEメッセージがステップ624でフォーマット化され、ステップ626
で相互接続を介して送信される。
ステップ628で受信されると、その有効性がステップ630でチェックされ、
無効である場合にはMSS_ERRORパケットがステップ632で送信者に返される。
要求されたダイアログがステップ634でダイアログテーブルに見付からない場
合には、MSS_ERRORパケットがステップ636で送信者に返される。さもなけれ
ばダイアログテーブルのエントリがステップ638でクリーンアップされる。
MSSユーザによって利用され得ることが認められるであろう。しかしながら、
発明の好ましい実施例において、図に例示するように、MSSは、次章で説明す
るタイプのバーチャルトランスポートレイヤ(「VTL」)プロトコルによって
呼出される。
ーザおよびMSSに対するその相互作用について説明する。VTLの説明は主に
3つの領域に分けて進めていく。すなわち、(1)ダイアログの確立、(2)デ
ータ転送、および(3)ダイアログの終了である。MSSとそのユーザとの間の
相互作用はすべて手順呼出しによって行なわれ、すなわち、MSSが上記MSS
ユーザ手順を呼出し、この逆についても同じである。
るためにはデータに付加される必要があるヘッダの量を最小限にする、信頼性の
高いコネクション指向トランスポートレイヤプロトコルを実装する。特に、ここ
で説明したメッセージ技術を採用して生成されるデータダイアログにより、各デ
ータブロックに対してアドレスデータを付与する必要性がなくなり、また、デー
タブロックをはるかに大きくできる。発明の技術の他の利点は以下の説明から明
らかとなるであろう。
規の態様での)停止または障害を発生する。しかしながら、プラットフォームに
よっては、すべてのアクションが独立することは不可能である。たとえば、エミ
ュレートされたプラットフォームでは、NT VTLコンポーネント94に障害
が発生すると、必ずMCP VTLコンポーネント90にも障害が発生する。な
ぜなら、NT VTLコンポーネント94の障害はNT環境全体の障害の原因と
なるからである。しかしながら、NT VTLコンポーネント94はNT初期化
/停止によって初期化および停止するだけであり、NT VTLコンポーネント
94がNT環境全体から独立して動作することはあり得ない。特に、NT VT
Lコンポーネント94が終了し再初期化されると、必ずNTシステム102も再
初期化される。なぜなら、すべてのTCP/IPダイアログはNT VTLコン
ポーネント94によって初期化されると仮定されており、したがってそれはTC
P/IPを用いるすべてのファイルを認識しているからである。これが当てはま
らずNT VTLコンポーネント94が未知のファイルに関する要求を受信する
場合、それは処理されない。NT TCP/IP58がNTの停止からは独立し
て終了する場合、NT VTLコンポーネント94も終了することとなり、NT
の再起動なくして再初期化することはできない。
、VTLは何らかの適当なネットワーク化API要求をインターセプトできるよ
うに配置される必要がある。明らかに、この機構はVTLが存在する特定のシス
テム環境に依存する。好ましい実施例では、VTL NT94はTCPIP.S
YSドライバ58の上にフィルタドライバとしてそれ自体を挿入することにより
これを達成し、VTL MCP90は、MCP TCP/IPトランスポートプ
ロバイダ実装と密に結合されることによりこれを達成する。
かつリモートMSSユーザおよび環境の利用可能性についてそのローカルユーザ
に情報を与えることはMSSの責任である。NT VTLコンポーネント94の
利用可能性が知らされると、MCP VTLコンポーネント90はNT VTL
コンポーネント94とのハンドシェイクを開始して、さらなる処理が起こるよう
にする責任を負う。それぞれのVTLコンポーネント間のハンドシェイクにより
、2つのコンポーネント間の互換性が確認され、不可欠な初期化データの交換が
行なわれる。
理である。MSSはリモートMSSユーザが利用できないことを検知し、このよ
うな事象を(User-Change-Notification手続きによって)ローカルMSSユーザ
に知らせる責任を負う。この通知を受信すると、MCP VTLコンポーネント
90およびNT VTLコンポーネント94はリモート環境が失われたことに対
して適当な処理を行なう。特に、残ったVTLコンポーネントは、利用できない
同位コンポーネント上のそれ自身との間のすべてのVTLダイアログをクリーン
アップすることにより同位VTLコンポーネントが失われたことに対処する。こ
れには、十分に確立されたダイアログ、確立プロセスにあるダイアログ、および
終了プロセスにあるダイアログが含まれる。
コンポーネント94のいずれかによって行なわれる特別な処理はない。NT V
TLコンポーネント94はたとえば、それが停止することをMCP VTLコン
ポーネント90に知らせない。その代わりに、所望の結果を達成するために他の
リカバリ処理に依存する。あるVTLコンポーネントが停止すると、その同位の
コンポーネントには、適用可能な各MSSダイアログが利用できなくなくなった
ことが通知され、上記リカバリ処理が行なわれる。
)に基づくVTLを使用するTCPダイアログ確立が、発明の技術に従ってVT
LによってMCP環境で開始されるかについて説明する。
す。図28(a)に示されるように、ステップ700でMCPまたはNTアプリ
ケーションがトランスポート接続を要求し、ステップ702において、要求が能
動的TCPオープンまたは受動的TCPオープントランスポート接続に関するも
のかが判断される。要求が受動的TCPオープンに関するものである場合、要求
はステップ704で受動的リストに記録され、ステップ706においてTCP/
IPネットワークトランスポートプロバイダに転送される。一方、要求が能動的
TCPオープンに関するものである場合、ステップ708において要求が相互接
続を介して結合システム(すなわち図6から図8のNTサーバ102またはAシ
リーズサーバ100)に向けられるかどうかが判断される。そうでなければ、要
求はステップ710においてTCP/IPネットワークトランスポートプロバイ
ダに転送される。しかしながら、要求が相互接続を介して結合システムに向けら
れる場合、MSSエンドポイントダイアログがステップ712で生成され、ステ
ップ714でオープン要求が相互接続を介して結合システムに発行される。その
後発行システムはステップ716においてオープン応答を待つ。ステップ718
において受信された応答がオープンがうまくいかなかったことを示す場合、ステ
ップ720で要求側アプリケーションに失敗が示され、さもなければオープンが
うまくいったことが要求側アプリケーションにステップ722で知らされる。結
合システムはこの場合、相互接続を介してオープン接続によって通信し得る。
要求処理を示す。図示されるように、オープン要求はステップ724で結合シス
テムから受信され、ステップ726では、オープン要求が受信システムの受動的
リストエントリと一致するかどうかが判断される。そうでなければ、失敗を示す
応答がステップ728で返される。しかしながら、オープン要求が受動的リスト
エントリと一致する場合、ステップ730で受動的オープンが通常のネットワー
クトランスポートから取消され、MSSエンドポイントダイアログがステップ7
32でオープンされる。オープン要求がうまく処理されたことを示す応答がステ
ップ734で戻され、ステップ736で要求側アプリケーションに「成功」表示
が返される。
に、MCP環境アプリケーションは既存のAPIのうちの1つを介して受動的オ
ープンを要求することにより処理を開始する。図28(a)のステップ704に
関して先に述べたとおり、この受動的オープン要求は後に使用できるようMCP
VTL90によって記録される。このシナリオでは、NT環境TDIクライア
ント98は後に、MCPアプリケーションの受動的オープンと一致するDirected
Open(TDI-Connect)を要求する。その時点で、図29に示されるように、NT
VTLコンポーネント94はMSS_Create_Endpoint_Dialogを呼出す。NT
VTLコンポーネント94はその後オープン要求を(制御ダイアログを用いて
)MCP VTLコンポーネント90に送信する。MCP VTL90は次いで
、MSSのOpen-Endpoint-DialogによってMSS_Endpoint_Dialogの側をオープ
ンする。その後MSSはMCP VTLコンポーネント90およびNT VTL
コンポーネント94にDialog-Change(Available)コマンドを発行する。MCP
VTLコンポーネント90はOpen-Response(Success)によってNT VTL
コンポーネント94に応答し、OpenComplete(Success)をMCP環境アプリケ
ーションに発行する。Open-Response(Success)コマンドを受信すると、NT
VTLコンポーネント94はTDI-Connect CompleteをTDIクライアント98に
発行し、オープン処理を完了する。
に、APIに依存する機構を除いては、このシナリオにおける処理はたった今述
べたMCP環境受動的オープンの場合と対称的である。
PIモデルを使用するMCP環境アプリケーションへの入力については、アプリ
ケーション供給バッファにすべてのアプリケーションデータを入れておく必要が
あることに留意されたい。出力は、制御をアプリケーションに戻した後に参照で
きないアプリケーションにより供給されたバッファにおけるネットワーク化ソフ
トウェアに与えられる。好ましいMCP環境TCP/IP実装例では、これには
、アプリケーションバッファとネットワーク化ソフトウェア制御バッファとの間
のすべての入出力アプリケーションメッセージをコピーする必要がある。さらに
、ユニシス独自のAPIモデル協調型(Coop)サービスインターフェイスによっ
て与えられる重要な局面のうちの1つは、アプリケーションとネットワークトラ
ンスポートとの間のバッファの共有であることに留意すべきである。この機能に
より、上記タイプのLIO/ポートインターフェイスを用いる際に必要なデータ
コピーがいらなくなる。
同様に機能し、TDIクライアントによって供給されたバッファ領域は、TDI
クライアント98に出力(送信)動作が完了したことが通知されるまでトランス
ポートによって所有される。この完了の通知は、NTトランスポートがI/O動
作を終えたときにNT I/Oサブシステムからクライアント供給手順に、直接
呼出しにより行なわれる。TDIでは、TCP入力が(TDIクライアント98
の制御下で)下記の方法のいずれかによって行なわれ得る。
。この通知はTDIプロバイダからTDIクライアント98への手順呼出しによ
って行なわれる。通知を受信すると、TDIクライアント98は下記の動作のう
ち1つを行ない得る。すなわちa)必要に応じて、コピーを含む、入力を受け入
れること、b)その中にTDIプロバイダが適量のデータをコピーするTDIク
ライアントバッファをTDIプロバイダに与えること、またはc)上記以外の動
作、である。TDIクライアントのアクションはリターンパラメータ値によって
示される。TCPデータについては、クライアントがアクションc)を示す場合
、ある時点で他の機構のうちの1つを呼出す必要がある。
が入力データをコピーするバッファを提供し得る。TDIクライアント98には
受信動作が完了したことが通知される。「非ブロック」受信動作はTDIに規定
されるが、TCP/IPの実装は「非ブロック」セマンティクスをサポートする
ものとは思われない(すなわち、受信が呼出されたときにデータが存在しない場
合、適当な結果により受信を直ちに完了すること)。
、図31の右側には入力が示される。簡単にするために、図31ではLIO/ポ
ートAPIの使用しか示していない。Coop APIを検討するにあたっては、MSS
出力バッファ808として使用され得るアプリケーション出力バッファ800の
共有と、Coopアプリケーションに直接送信され得るMSS入力バッファ806の
共有とを考慮する必要がある。
ーフェイスに対するMCP VTLコンポーネント90に送られるバッファ、ま
たはLIO/バッファインターフェイス802からのバッファであり得るが、ア
プリケーション入力バッファ804は、アプリケーションの読出のためにMCP
VTLコンポーネント90に与えられるバッファであり、かつLIO/ポート
インターフェイス802に対してのみ適用可能である。MSS入力バッファ80
6およびMSS出力バッファ808はMSSによって所有および維持され、Coop
アプリケーションならびにTDIクライアント98のTDIクライアント受信バ
ッファ812およびTDIクライアント送信バッファ810を含む他のコンポー
ネントと機能を共有する。そのNTとMCP環境との間でメモリ空間を共有する
ことができるMSSでは、MSS内でのデータ移動は必要なく、入力/出力バッ
ファがNTおよびMCP環境間で共有され得る。これは共有が単方向である場合
にも可能である(たとえばMSS出力バッファ808は共有されるがMSS入力
バッファ806は共有されない)。バッファの共有が不可能であるかまたは非実
用的である場合、独特なMSS入力バッファ806およびMSS出力バッファ8
08はMCPおよびNT環境の両方にあり、MSSが(その下位の相互接続を介
して)環境間のデータ移動を容易にする。MSSはデータの記憶に使用されるバ
ッファの管理責任を負うが、MCP VTLコンポーネント90およびNT V
TLコンポーネント94は、フロー制御機能の責任を負い、他のコンポーネント
に対するデータ移動を管理する。
、アプリケーションはステップ900でVTLデータ転送要求を開始し、ステッ
プ902でフロー制御が有効であるかどうか判断される。そうである場合システ
ムはステップ904でフロー制御からの解放を待つ。ステップ906においてV
TLプロトコルヘッダが構築され、ステップ908でMSS配送データ要求が開
始する。ステップ910でAuto-Data-Deliveryがセットされたと判断されると、
受信システムはステップ912でAccept-Dataを呼出し、ステップ914でデー
タを適当なAPIによって受信アプリケーションに配送して処理する。さもなけ
れば、Data_Notificationがステップ916で呼出され、アプリケーションには
、適切なAPIによってデータが配信されるべきことがステップ918において
通知される。その後ステップ920においてアプリケーション入力要求が受信さ
れ、ステップ922でMSS_Retrieve_Dataがイニシエートされる。その後デー
タがステップ924において呼出し側アプリケーションに返される。
を示す。上部分にはLIO/ポートAPIを用いるMCP環境出力が示され、下
部分にはCoopインターフェイスを使用する出力が示される。NT環境処理は使用
中のMCP環境APIからは独立している。
ネント90が長さ表示およびアプリケーション出力バッファ800とともに呼出
され、Coopアプリケーションもまた長さ表示およびアプリケーション出力バッフ
ァ800とともにMCP VTLコンポーネント90を呼出し、バッファからM
CP VTLコンポーネント90に所有権を移す。いずれの場合でも、MCP
VTLコンポーネント90はまずフロー制御条件をチェックする。フロー制御条
件のために出力が許可されない場合、要求はさらに処理されることなく拒絶され
る。フロー制御条件により出力が許可される場合、使用中のAPIに依存する適
当な可変要素を用いて、Deliver-Data要求がMCP MSS92に発行される。
MCP VTLコンポーネント90はDeliver-Data要求におけるData-Transfer-
Headerを含む。Data-Transfer-Headerはデータを適切に処理するためにNT V
TLコンポーネント94が必要とする情報を含む。MCP MSS92がこの要
求を「リソースなし」条件で拒絶すると、アプリケーション要求はさらに処理さ
れることなく拒絶される。さもなければ(MCP MSS92がリクエストを拒
絶しない場合)、Deliver-Data要求はMSS実装に依存した態様で完了する。sh
ared-buffer可変要素が要求された場合、MCP MSS92は適当な時間にDel
iver-Data-Complete通知をMCP VTLコンポーネント90に与える。Delive
r-Data-Completeを受信すると、MCP VTLコンポーネント90は出力バッ
ファ800の所有権をCoopアプリケーションに返す。
または2つ以上のAccept-Data要求をNT VTLコンポーネント94に発行す
る。Accept-Data要求の数は元のデータの受信に要するバッファMSS96の数
に依存する。各Accept-Data要求には、後に説明するが、NT VTLコンポー
ネント94からの対応のAccept-Data-Complete通知が必要である。
DIクライアントの要求動作および過去のData-Transfer要求の状態に依存する
。この説明では、TDIクライアント98にはこれまでに拒絶されたデータはな
く、TDI受信イベント通知を要求しており、これらのイベント通知に応答して
TDI受信要求を返すものとする。このシナリオにおいて、NT VTLコンポ
ーネント94は、Accept_Data動作の全内容を示すネイティブTDIクライアン
トの受信イベントハンドラーを呼出す。TDIクライアント98は(定義上)示
されるすべてのデータの受信に適するTDI受信要求を返す。TDI受信の処理
時に、NT VTLコンポーネント94はデータの内容をTDIクライアント9
8によって供給されたバッファにコピーし、ローカルTDIクライアントの完了
ルーチンを(対応のI/Oサブシステム要求を完了させることにより)呼出し、
MSSのAccept_Data_Completeルーチンを呼出す。Accept-Data-Complete通知
を受信すると、NT MSS96はバッファのリサイクルを含む、実装に依存し
たアクションを行なう。
トAPI802を用いるMCP環境入力が示され、下部分にはCoopインターフェ
イスを用いる入力が示される。NT環境処理は使用中のMCP環境APIからは
独立する。
開始されるTDI送信動作から始まる。TDI送信セマンティクスは、TDIプ
ロバイダ(NT VTLコンポーネント94)が、TDI送信が完了したことを
TDIクライアント98に示すまで、アプリケーション出力バッファ810を所
有するようなものである。NT VTLコンポーネント94はアプリケーション
出力バッファ810の所有者であるため、shared-buffer Deliver-Data要求がNT
-MSS96に発行される。この場合、NT-MSS96は後のある時点でDeliver-Data-C
omplete通知を配送し、この時点でNT VTLコンポーネント94はTDIク
ライアント98に、TDI送信動作の完了を通知する。
のデータを受信するのに要求されるバッファMSS96の数に依存する1つまた
はそれ以上のAccept-DataまたはData-NotificationsをMCP VTLコンポー
ネント90に発行する。
t-Notificationが発行されることとなる。LIO/ポートの処理については、ア
プリケーションが対応の読出を行なう(またはLIO/ポートが待機読出を行な
う)ときに入力が続く。データが存在するときにアプリケーション読出が行われ
ると、LIO/ポートによってMCP VTL90にRetrieve-Data要求が発行
される。このRetrieve-Data要求はユーザバッファおよび長さの表示を含み、結
果として、対応のprivate-buffer Retrieve-Data要求がMCP MSS92に発
行される。MCP MSS92は待ち行列に入れられた適量の入力データをアプ
リケーションの入力バッファ804にコピーし、MCP VTLコンポーネント
90にリターンする。MCP VTLコンポーネント90はそれ自体の完了処理
を行ないLIO/ポートにリターンする。
dicationを介して入力データをCoopアプリケーションに転送する。Coopアプリケ
ーションは後のある時点でMCP VTLコンポーネント90を呼出しバッファ
の所有権を返す。MCP VTLコンポーネント90はAccept-Data動作が完了
したことをMCP MSS92に通知する。
す。示されるように、アプリケーションは、ステップ900において切断を要求
し、ステップ902でMSSエンドポイントダイアログの結合システムにクロー
ズ要求を発行する。ステップ904において、要求側アプリケーションはクロー
ズ応答および結合システムからのクローズ要求の受信を待機する。クローズ応答
およびクローズ要求の受信時に、ステップ906でMSSエンドポイントダイア
ログはクローズされ、クローズの完了がステップ908で要求側アプリケーショ
ンに示される。
要求処理を示す。示されるように、クローズ要求がステップ910で受信され、
対応のアプリケーションには相互接続用の適当なAPIによってステップ912
で通知される。クローズ要求の受信がステップ914で記録され、クローズ応答
がステップ916で要求側アプリケーションに発行される。VTL接続がその後
クローズされる。
。APIに依存する機構は例外として、終了処理がNT環境によって開始される
場合の処理は対称的である。図36に示されるように、MCP環境アプリケーシ
ョンは既存のAPIのうちの1つによって正規のクローズ動作を行なうことによ
り処理を開始する。MCP VTLコンポーネント90はトランスポート接続の
状態をClose_Requestedに移行させ、クローズ(正規)要求をNT VTLコン
ポーネント94に発行する。クローズ要求はこのトランスポート接続に対応する
MSS_Endpoint_Dialogに発行され、現在のすべての出力が、クローズ要求の受
信に先立ってNT VTLコンポーネント94によって確実に受信されるように
しなければならない。ネットワーク化APIの通常のセマンティクスによると、
MCP環境アプリケーションは出力動作を行なうことはできず、受信された入力
はすべて、入力動作を引続き行なうことができるアプリケーションに配送されね
ばならない。クローズ要求の処理時に、NT VTLコンポーネント94はTD
Iクライアント98にTDI-Disconnect-Eventを与え、これは通常のネットワーク
化API定義にしたがって、リモートアプリケーションが規則正しいダイアログ
終了を要求したことをTDIクライアント98に通知する。NT VTLコンポ
ーネント94はその後Close-ResponseをMCP VTLコンポーネント90に発
行する。Close-Responseは、NT環境から発せられるデータと同じシーケンスで
ある必要はないため、MSS Control-Dialogに発行される。Close-Responseの
処理時に、MCP VTLコンポーネント90は、Close-Responseが後に使用で
きるよう受信されたことを記録するだけである。通常のネットワークアプリケー
ション動作にしたがい、TDIクライアント98は正規のダイアログ終了(TDI-D
isconnect)に関する対応の要求を発する。通常のネットワーク化APIセマンテ
ィクスににしたがい、TDIクライアント98はダイアログ終了の要求に先立っ
てさらなる出力動作を行ない得る。
ズ(規則正しい)要求をMCP VTLコンポーネント90に発行する。MCP
VTLコンポーネントのClose-Requestの場合と同様に、このClose-Requestも
また、トランスポート接続に対応するMSS Endpoint-Dialogに対して発行され
る必要がある。Close-Requestの処理時に、MCP VTLコンポーネント90
はトランスポート接続の状態をCLOSEDに移行させ(したがってMCPアプ
リケーションの終了要求を完了させ)、Close-ResponseをNT VTLコンポー
ネント94に発行する。MCP VYTLコンポーネント90はその後、MSS
を呼出し、このトランスポート接続に対応するMSS_Endpoint_Dialogの側をク
ローズする。
VTLコンポーネント94はTDIクライアント98に、その終了要求がうまく
完了したこと(TDI-Disconnect-Complete)を通知し、MSSを呼出して対応のEn
dpoint-Dialogをクローズする。各VTLコンポーネントには、MSS_Endpoint_D
ialogがクローズされたときに個別に通知が行なわれる。この通知により、リソ
ースの解放を含む最終的な処理がトリガされる。実際のタイミングに応じて、ロ
ーカル側がクローズを要求する前にリモート側によってMSS_Endpoint_Dialog
がクローズされたことをMSSはVTLコンポーネントに知らせる。
了時に生じるデータの流れである。フロー制御により、アプリケーションが正規
の終了を要求する際に出力データが処理中である場合がある。終了要求のセマン
ティクスによると、このデータは、終了プロセスの完了前に適切に配送されねば
ならない。同様に、入力データもClose-Requestの受信時に処理中である場合が
ある。通常のネットワーク化APIにより、正規のダイアログ終了が進行中であ
るときにアプリケーションがこのデータを取出すことができるようになる。何ら
かのVTL実装により、これらのシナリオを適切に取扱う必要がある。
る。APIに依存する機構は例外として、終了がMCP環境によって開始する処
理は対称的である。図37に示されるように、NT環境アプリケーションは、ダ
イアログ異常終了(Abortiveオプションを特定するTDI-Disconnect)を要求する
ことにより処理を開始する。この要求を処理する際、NT VTLコンポーネン
ト94はClose-Request(Abortive)をMCP VTLコンポーネント90に発行
する。このクローズ要求はMSS制御ダイアログに対して発行される。なぜなら
、(上述の正規の終了とは異なり)ダイアログ異常終了に関する通常のネットワ
ーク化APIセマンティクスは、先のデータ転送要求を確実に完了しないからで
ある。NT VTLコンポーネント94はまた、アプリケーションの要求(TDI-D
isconnect-Complete)を直ちに完了する。Close-Requestの処理時に、MCP V
TLコンポーネント90はトランスポート接続の状態をDeactivation-Pendingに
移行させ、これは通常のネットワーク化API定義によると、トランスポートダ
イアログが利用できないことをMCPアプリケーションに知らせる。MCP V
TLコンポーネント90はClose-ResponseをNT VTLコンポーネント94に
発行し、MSSを呼出してこのトランスポート接続に対応するMSS_Endpoint_D
ialogの側をクローズする。Close-Responseの処理時に、NT VTLコンポー
ネント94はMSSを呼出して、このトランスポート接続に対応するMSS_Endpo
int_Dialogの側をクローズする。各VTLコンポーネントには、MSS_Endpoint
_Dialogがクローズされたことが個別に通知される。この通知により、リソース
の解放を含む最終的な処理がトリガされる。実際のタイミングに応じて、MSS
は、MSS_Endpoint_Dialogがローカル側がクローズを要求するのに先立ってリ
モート側によってクローズされたことをVTLコンポーネントに知らせる。
ず、すべてのVTL実装例はこれらのシナリオを適切に取扱うべきである。
グ異常終了が開始するときにデータが処理中であるかもしれない。しかしながら
、正規の終了とは異なり、処理中のデータはダイアログ異常終了の一部として破
棄されてもよい。
の時点で開始してもよい。さらに (3) 正規の終了のオーバーライド:異常終了は規則正しいダイアログ終了
のいかなる時点で開始してもよい。
明の好ましい実施例では、VTLプロトコルがMCPコンポーネントの性能を最
適化するよう設計される(NTコンポーネントの性能は劣化するかもしれない)
。このために、フィールドコンテナのサイズとアライメントとは、MCP環境の
操作上好ましいものとなるよう選択される。
ルドのバイト配列を維持するために使用される。
ョンに関するリクエストが含まれる。RESPONSEはREQUESTの処理
の完了結果である。NOTIFICATIONにより、求めていない情報が与え
られる。
PEN-CONNEVTION-ABORT 通知について: 説明:クラスによりメッセージの型を特定し、一意の識別をすべてのメッセー
ジに付与する。REQUESTに対するRESPONSEには対応の要求と同じ
Message-Typeが含まれる。
その値は、要求者を除くすべてのモジュールに対して完全にトランスペアレント
である。通知では、その値は無関係であるが、すべて0に設定される必要がある
。
続に関する要求者が割当てた基準値が含まれる。要求側VTLコンポーネントは
、応答側VTLコンポーネントに、そのOPEN-CONNECTION要求におけるこの値を
与える。メッセージが特定の接続に使用されない場合にはその値はすべて0でな
ければならない。
続に関する応答者が割当てた基準値が含まれる。応答側VTLコンポーネントは
、そのOPEN-CONNECTION応答におけるこの値を、要求側VTLコンポーネントに
与える。メッセージが特定の接続に使用されない場合、その値はすべて0でなけ
ればならない。また、OPEN-CONNECTIONおよびOPEN-CONNECTION-ABORT要求の両方
において、その値は0でなければならない。なぜなら、要求側VTLコンポーネ
ントはこの時点では応答者が割当てた値を認識していないからである。
える。他のすべてのメッセージクラスに関しては、この値はすべて0でなければ
ならない。
に好適なフィールドのバイト配列を維持するために使用される。
要求およびそれらの結果として生じた応答は例外なくMSS_Endpoint_Dialogsに
対して発行される。制御メッセージヘッダの他に、この要求は下記のフィールド
を含む。
求がうまく完了したことを示す;STATUS-ALREADY-CLOSEDは対象の接続が既にク
ローズされていることを示す;STATUS-ALREADY-CLOSINGはこのタイプ(正規の/
異常)のクローズ動作が既に開始しているか、または異常クローズが既に進行中
であるときに正規のクローズが要求されたことを示す。これらの応答のうちのい
ずれにも制御メッセージヘッダ以外のフィールドはない。
P VTLコンポーネント90によって発行される。制御メッセージヘッダの他
に、この要求は下記のフィールドを含む。
IPアドレスをNT VTLコンポーネント94に与えるためにMCP VTL
コンポーネント90によって使用される。
特定する列。この値は診断目的としてのみ使用される。下記の状態コードのうち
のいずれかが返され得る:STATUS-SUCCESSはハンドシェイク要求がうまくいった
ことを示し、STATUS-INCOMPATIBLE-INTERFACE-LEVELはNT VTLコンポーネ
ント94が、所定のインターフェイスレベルを理解しないことを示す。STATUS-S
UCCESSが返される場合、下記のフィールドが制御メッセージヘッダの後に存在す
る。
LAN IPアドレスを与えるためにNT VTLコンポーネント94によって
使用される。
レベル)を特定する列。この値は診断目的のためにのみ使用される。
ッダの後には下記のフィールドが存在する。
りも低い最高インターフェイスレベルを示す。MCP VTLコンポーネント9
0はそのインターフェイスレベル以下で別のハンドシェイクを試みることができ
る。
ージヘッダに加えて、この要求は下記のフィールドを含む。
適なフィールドのバイト配列を維持するために使用される。1つまたは2つ以上
のパッドフィールドが含まれ得る。
。すべての場合において、0の値が許可され、オープン動作の完了により、ロー
カルポート番号が選択される。
イアログidを特定する。
値が許可され、オープン動作の完了により、ローカルIPアドレスが選択される
。
IPアドレスとなる)。
まく完了したことを示す;STATUS-INSUFFICIENT-VTL-RESOURCESは、この要求を
完了するのに要するリソースをVTLが、確保できなかったことを示す;STATUS
-INSUFFICIENT-RESOURCESは、何らかの下位のシステムコンポーネントがこの要
求を完了するのに要するリソースを確保できなかったことを示す;STATUS-CONNE
CTION-REFUSEDはトランスポート接続の試みがリモートシステムによって拒否さ
れたことを示す;STATUS-NETWORK-UNREACHABLEはリモートネットワークがトラン
スポートによって到達できないことを示す;STATUS-HOST-UNREACHABLEはリモー
トシステムがトランスポートによって到達できないことを示す。
タフィールドを含むものはない。)の後には下記のフィールドある。
に好適なフィールドのバイトアライメントを維持するために使用される。1つま
たは2つ以上のパッドフィールドが存在し得る。
。Open-Connection動作は応答環境においては完了済みであるかもしれないが、
要求環境においてはまだ反映されないことに留意されたい。
まく完了したことを示すSTATUS-SUCCESSだけが返されるだろう。STATUS-SUCCESS
が返される場合、制御メッセージヘッダの後には下記のフィールドがある。
。
。MSSが複数断片でのデータ転送を完了する場合、データ転送ヘッダは最初の
断片にしか含まれない。データ転送に関するデータ転送ヘッダには下記のフィー
ルドが含まれる。
最上位ビットが使用され、残りのビットは付与/低減されたクレジットを示す。
この値は0であろう。
始まり必要に応じてラップアラウンドされる番号が順次付与される。
だけで使用されることに限定されないことが認められるであろう。本発明は各シ
ステム上の多数のネットワークプロトコルプロバイダに対するデータ転送に使用
され得る。さらに当業者には、本発明が2つまたはそれ以上のエンドポイントを
有する相互接続を介する通信を提供することに意図されることが認められるであ
ろう。たとえば、相互接続はLAN、または従来からのネットワークプロトコル
からは独立したいくつかの密に結合されたコンピュータシステムを接続する複数
の相互接続といったネットワークであってもよい。
とを理解されたい。たとえば、本発明はAシリーズサーバおよびNTサーバを含
むシステムの場合として説明したが、本発明の方法および装置は同一または異な
ったタイプの密に結合されたいかなるコンピュータシステムに採用されてもよい
ことを理解されたい。さらに、本発明の相互接続は開示した特定の実施例に限定
されない。「相互接続」という用語は第1および第2のコンピュータシステムの
I/Oサブシステム間でデータ転送を行なうための他の方法および装置も包含す
ることが意図される。たとえば、他の実施例ではQSPおよびLANSGコンポ
ーネントの機能が要求されないかもしれない。相互接続装置ドライバ(ICD)
、MSSおよびVTL間にはより直接的なインターフェイスが採用されてもよい
。したがって、本発明は開示した特定的な実施例に限定されるのではなく、前掲
の特許請求の範囲によって規定される発明の精神および範囲内に入るすべての変
形をカバーすることが意図される。
ワーク上の他のホストまたはノードと通信するために用いられる、先行技術のネ
ットワーキングアーキテクチャのコンポーネントを示すブロック図である。
ウィンドウズNTを実行するサーバとネットワークを介して通信することができ
るようにする、先行技術の方法を示すブロック図である。
通信することができるようにする、先行技術の装置を示すブロック図である。
ク図である。
ロック図である。
ロトコルを使用して図3の相互接続を介して通信することができるようにする、
本発明の実施例を示すブロック図である。
ロトコルを使用して図4の相互接続を介して通信することができるようにする、
本発明の実施例を示すブロック図である。
ロトコルを使用して図5の相互接続を介して通信することができるようにする、
本発明の実施例を示すブロック図である。
の一部である。
の一部である。
の一部である。
の一部である。
の一部である。
の一部である。
図である。
PPORTインターフェイスを介して各MSS−NT環境と通信する方法を示す
図である。
の出力データ転送フローを示す図である。
の入力データ転送フローを示す図である。
Sを使用したMCP出力データ転送フローを示す図である。
Sを使用したMCP入力データ転送フローを示す図である。
MCP出力データ転送フローを示す図である。
MCP入力データ転送フローを示す図である。
示す図である。
_Dialog終了プロセスを示す図である。
t_Dialog終了プロセスを示す図である。
る。
る。
る。
る。
る。
る。
からデータを出力するための手続きを示す図である。
からデータを出力するための手続きを示す図である。
データを入力するための手続きを示す図である。
データを入力するための手続きを示す図である。
ログ終了を示す図である。
ログ終了を示す図である。
ログ終了を示す図である。
る。
t)を受信する、結合されたシステムによって行なわれる、VTLダイアログオ
ープンリクエストの処理を示す図である。
めのTCPダイアログ構築フローを示す図である。
めに、それらのIPアドレスをNT環境におけるローカルIPアドレスとして使
用することができない場合における、MCP環境からのVTL指令(能動)オー
プン(Directed (Active) Opens)のためのTCPダイアログ構築フローを示す
図である。
である。
ある。
ある。
れたシステムによって行なわれる、VTLクローズリクエスト処理を示す図であ
る。
Lダイアログ終了のための通常の処理を示す図である。
イアログの異常終了のための通常の処理を示す図である。
Claims (15)
- 【請求項1】 第1のコンピュータシステム上で実行する第1のネットワー
クアプリケーションと、該第1のコンピュータシステムに直接相互接続されかつ
密結合された第2のコンピュータシステム上で実行する第2のネットワークアプ
リケーションとが、該第1および第2のネットワークアプリケーションに影響を
及ぼすことなく互いに通信することができるようにする装置であって、 該第1のコンピュータシステムの入出力(I/O)サブシステムと該第2のコ
ンピュータシステムのI/Oサブシステムとを結合しかつそれにわたって該第1
および第2のコンピュータシステム間でネットワークインターフェイスカードと
は独立してデータを伝送することのできる相互接続と、 汎用トランスポートインターフェイスを提供しかつ該第1および第2のネット
ワークアプリケーションに対して既知のトランスポート層プロトコルをシミュレ
ートして、前記第1および第2のネットワークアプリケーションが該第1および
第2のネットワークアプリケーションにトランスペアレントな態様で通信するこ
とができるようにする、該第1および第2のコンピュータシステム上で実行する
相互接続メッセージ通信システムとを含む、装置。 - 【請求項2】 該第1のコンピュータシステムのI/Oサブシステムと該第
2のコンピュータシステムのI/Oサブシステムとの間の該相互接続が、データ
をその上で伝送することのできる、該I/Oサブシステム間の物理的接続を含む
、請求項1に記載の装置。 - 【請求項3】 該相互接続メッセージ通信システムは、該相互接続の通信プ
ロトコルとは独立した前記汎用トランスポートインターフェイスを提供しかつ該
相互接続の両側に該相互接続の通信プロトコルに依存するさらなるインターフェ
イスを提供するメッセージ通信サブシステム(「MSS」)を含み、よって、該
相互接続が変更されたときには該さらなるインターフェイスの変更のみが必要と
される、請求項1に記載の装置。 - 【請求項4】 該MSSは、前記第1および第2のコンピュータシステムの
各々上にMSSコンポーネントを含み、各MSSコンポーネントには前記独立し
たトランスポートインターネットを通じて少なくとも1つのローカルMSSユー
ザが接続され、該第1のコンピュータシステム上のMSSコンポーネントは該第
2のコンピュータシステムの各相補的リモートMSSユーザとのダイアログを作
成する、請求項3に記載の装置。 - 【請求項5】 各MSSコンポーネントは、該相互接続を介してアクセス可
能なすべての相補的リモートMSSユーザについての情報を該ローカルMSSユ
ーザに知らせる、ローカルMSSユーザのためのダイアログテーブルを構築し、
かつ、相補的リモートMSSユーザが追加または除去されると前記ダイアログテ
ーブルを更新するための手段を含む、請求項4に記載の装置。 - 【請求項6】 各MSSコンポーネントは、該ローカルMSSユーザが該相
互接続を介して該相補的リモートMSSユーザとのダイアログを構築し、それに
ついてのステータスを受信しかつそのダイアログを無効にすることができるよう
にする、ダイアログ管理機能を行なうための手段を含む、請求項4に記載の装置
。 - 【請求項7】 各MSSコンポーネントは、該ローカルMSSユーザと該相
補的リモートMSSユーザとが該相互接続の通信プロトコルとは独立した態様で
コントロールメッセージを互いに受渡しすることができるようにする、コントロ
ールメッセージ機能を行なうための手段を含む、請求項4に記載の装置。 - 【請求項8】 各MSSコンポーネントは、前記ローカルおよびリモートM
SSユーザ間に構築されたデータダイアログを介して、該ローカルおよび相補的
リモートMSSユーザ間でデータを転送するための手段を含む、請求項4に記載
の装置。 - 【請求項9】 前記ローカルMSSユーザの1つおよび前記相補的リモート
MSSユーザの1つは、該第1および第2のネットワークアプリケーションが該
第1および第2のアプリケーションにトランスペアレントな態様で該相互接続を
介して互いに通信することができるように前記既知のトランスポート層プロトコ
ルをシミュレートする、相補的な仮想トランスポート層(「VTL」)コンポー
ネントである、請求項4に記載の装置。 - 【請求項10】 前記相補的なVTLコンポーネントは、該MSSを使用し
て、前記第1および第2のコンピュータシステム間のトランスポートダイアログ
の構築、データ転送およびトランスポートダイアログの終了を提供する、請求項
9に記載の装置。 - 【請求項11】 前記VTLコンポーネントはそれぞれ、前記第1および第
2のネットワークアプリケーションとインターフェイスをとり、前記VTLコン
ポーネントは、該第1および第2のコンピュータシステム上に、該MSSの独立
したトランスポートインターフェイスを通じて該MSSに接続される相補的MS
Sユーザとして実装される、請求項9に記載の装置。 - 【請求項12】 各MSSコンポーネントは、該ローカルVTLコンポーネ
ントおよび該相補的リモートVTLコンポーネントとが、それら相補的なVTL
コンポーネント同士でダイアログの作成およびオープンを調整するようメッセー
ジのシーケンスを交換することのできる信頼性の高いコントロールダイアログを
作成することができるようにする、メッセージ制御機能を行なうための手段を含
む、請求項11に記載の装置。 - 【請求項13】 データが前記第1のネットワークアプリケーションから前
記第2のネットワークアプリケーションへと前記相互接続を介して転送されると
き、前記第1のネットワークアプリケーションとインターフェイスする前記VT
Lコンポーネントが、前記第2のネットワークアプリケーションに転送されるべ
きデータにVTLデータ転送ヘッダをアペンドしかつ前記オープンされたダイア
ログ上でデータ転送を開始する、請求項12に記載の装置。 - 【請求項14】 第1のコンピュータシステム上で実行する第1のネットワ
ークアプリケーションと、該第1のコンピュータシステムの入出力(I/O)サ
ブシステムと第2のコンピュータシステムのI/Oサブシステムとの間の相互接
続を介して該第1のコンピュータシステムに直接相互接続されかつ密結合された
該第2のコンピュータシステム上で実行する第2のネットワークアプリケーショ
ンとが、ネットワークインターフェイスカードとは独立して該第1および第2の
ネットワークアプリケーションの本来のプロトコルでデータを互いに伝送するこ
とができるようにする方法であって、 該第1および第2のそれぞれのコンピュータシステム上の該第1および第2の
ネットワークアプリケーションに対して既知のトランスポート層プロトコルをシ
ミュレートするステップと、 該相互接続にわたって、該第1および第2のネットワークアプリケーションが
該第1および第2のネットワークアプリケーションに対してトランスペアレント
な態様で互いに通信することのできるダイアログを作成するステップと、 該第1および第2のネットワークアプリケーション間でデータを転送するため
に該ダイアログを開くステップと、 転送されるべき該データにデータ転送ヘッダを付与するステップと、 該データおよび該データ転送ヘッダを該相互接続にわたって該開いたダイアロ
グを介して転送するステップとを含む、方法。 - 【請求項15】 前記第1および第2のアプリケーションの複数対のために
該相互接続上に複数のダイアログを作成して、アプリケーションの各対が該対を
なす第1および第2のアプリケーションの該本来のプロトコルに対してトランス
ペアレントな態様で通信することができるようにするステップと、該対をなすア
プリケーション間のデータ転送のために使用されるべきダイアログを特定するス
テップとをさらに含む、請求項14に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/126,920 | 1998-07-31 | ||
US09/126,920 US6233619B1 (en) | 1998-07-31 | 1998-07-31 | Virtual transport layer interface and messaging subsystem for high-speed communications between heterogeneous computer systems |
PCT/US1999/017034 WO2000007331A2 (en) | 1998-07-31 | 1999-07-28 | Virtual transport layer for message communications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002521963A true JP2002521963A (ja) | 2002-07-16 |
Family
ID=22427383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000563035A Pending JP2002521963A (ja) | 1998-07-31 | 1999-07-28 | 異種コンピュータシステム間の高速通信のための、仮想トランスポート層インターフェイスおよびメッセージ通信サブシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US6233619B1 (ja) |
EP (1) | EP1101322B1 (ja) |
JP (1) | JP2002521963A (ja) |
AU (1) | AU5133699A (ja) |
DE (1) | DE69928408T2 (ja) |
WO (1) | WO2000007331A2 (ja) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040264402A9 (en) * | 1995-06-01 | 2004-12-30 | Padcom. Inc. | Port routing functionality |
US6418324B1 (en) * | 1995-06-01 | 2002-07-09 | Padcom, Incorporated | Apparatus and method for transparent wireless communication between a remote device and host system |
US7136645B2 (en) * | 1998-10-09 | 2006-11-14 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7293107B1 (en) * | 1998-10-09 | 2007-11-06 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8060656B2 (en) | 1998-10-09 | 2011-11-15 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8078727B2 (en) | 1998-10-09 | 2011-12-13 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7778260B2 (en) * | 1998-10-09 | 2010-08-17 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6546425B1 (en) * | 1998-10-09 | 2003-04-08 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6470397B1 (en) * | 1998-11-16 | 2002-10-22 | Qlogic Corporation | Systems and methods for network and I/O device drivers |
US6334155B1 (en) * | 1998-11-17 | 2001-12-25 | International Business Machines Corporation | Method and apparatus for connecting similar stacks without using physical devices |
US6757744B1 (en) * | 1999-05-12 | 2004-06-29 | Unisys Corporation | Distributed transport communications manager with messaging subsystem for high-speed communications between heterogeneous computer systems |
US7882247B2 (en) | 1999-06-11 | 2011-02-01 | Netmotion Wireless, Inc. | Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments |
US6745242B1 (en) * | 1999-11-30 | 2004-06-01 | Verizon Corporate Services Group Inc. | Connectivity service-level guarantee monitoring and claim validation systems and methods |
US6640206B1 (en) * | 1999-12-17 | 2003-10-28 | Omnicluster Technologies Inc. | Peer networking in concentrated computer clusters |
US7191240B1 (en) * | 2000-02-14 | 2007-03-13 | International Business Machines Corporation | Generic network protocol layer with supporting data structure |
US6832184B1 (en) * | 2000-03-02 | 2004-12-14 | International Business Machines Corporation | Intelligent work station simulation—generalized LAN frame generation simulation structure |
US7006963B1 (en) * | 2000-03-02 | 2006-02-28 | International Business Machines Corporation | Intelligent workstation simulation-simulation at protocol stack level 2 |
US6996823B1 (en) * | 2000-04-06 | 2006-02-07 | International Business Machines Corporation | Inter process communications in a distributed CP and NP environment |
US6859439B1 (en) | 2000-05-12 | 2005-02-22 | International Business Machines Corporation | Partition-to-partition communication employing a single channel path with integrated channel-to-channel function |
US6728772B1 (en) * | 2000-05-12 | 2004-04-27 | International Business Machines Corporation | Automatic configuration of a channel-to-channel connection employing channel-to-channel functioning integrated within one or more channels of a computing environment |
US8099501B1 (en) * | 2000-06-15 | 2012-01-17 | Unisys Corporation | Adapter architecture |
AU2001283464A1 (en) * | 2000-08-31 | 2002-03-13 | Padcom, Inc. | Method and apparatus for routing data over multiple wireless networks |
US20020107971A1 (en) * | 2000-11-07 | 2002-08-08 | Bailey Brian W. | Network transport accelerator |
AU2002234258A1 (en) * | 2001-01-22 | 2002-07-30 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
AT410491B (de) * | 2001-03-19 | 2003-05-26 | Fts Computertechnik Gmbh | Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem |
US7562146B2 (en) * | 2003-10-10 | 2009-07-14 | Citrix Systems, Inc. | Encapsulating protocol for session persistence and reliability |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US20020194327A1 (en) * | 2001-06-14 | 2002-12-19 | International Business Machines Corporation | Method for sensing the status of a client from a server |
US6834056B2 (en) * | 2001-06-26 | 2004-12-21 | Occam Networks | Virtual local area network protection switching |
US7117267B2 (en) * | 2001-06-28 | 2006-10-03 | Sun Microsystems, Inc. | System and method for providing tunnel connections between entities in a messaging system |
US20030140170A1 (en) * | 2001-06-29 | 2003-07-24 | Bull Hn Information Systems Inc. | Method and data processing system providing data conversion across multiple heterogeneous computer systems |
US7024467B2 (en) * | 2001-06-29 | 2006-04-04 | Bull Hn Information Systems Inc. | Method and data processing system providing file I/O across multiple heterogeneous computer systems |
US7213044B2 (en) * | 2001-08-31 | 2007-05-01 | Microsoft Corporation | Point-to-point data communication implemented with multipoint network data communication components |
US7644171B2 (en) * | 2001-09-12 | 2010-01-05 | Netmotion Wireless, Inc. | Mobile networking system and method using IPv4 and IPv6 |
KR100686388B1 (ko) * | 2001-10-08 | 2007-02-23 | 노키아 코포레이션 | 단일 넘버링 방식을 이용한 네트워크에서의 서비스 및성능 협상 |
US8015204B2 (en) | 2001-10-16 | 2011-09-06 | Microsoft Corporation | Scoped access control metadata element |
US7194553B2 (en) | 2001-10-16 | 2007-03-20 | Microsoft Corporation | Resolving virtual network names |
US7676540B2 (en) * | 2001-10-16 | 2010-03-09 | Microsoft Corporation | Scoped referral statements |
US7257817B2 (en) * | 2001-10-16 | 2007-08-14 | Microsoft Corporation | Virtual network with adaptive dispatcher |
US20030074579A1 (en) * | 2001-10-16 | 2003-04-17 | Microsoft Corporation | Virtual distributed security system |
US7536712B2 (en) * | 2001-10-16 | 2009-05-19 | Microsoft Corporation | Flexible electronic message security mechanism |
EP1303097A3 (en) * | 2001-10-16 | 2005-11-30 | Microsoft Corporation | Virtual distributed security system |
US6766482B1 (en) * | 2001-10-31 | 2004-07-20 | Extreme Networks | Ethernet automatic protection switching |
WO2003045035A2 (en) * | 2001-11-15 | 2003-05-30 | Unisys Corporation | Dialog recovery and acknowledgement accumulation in a multi-computer system |
US8312117B1 (en) | 2001-11-15 | 2012-11-13 | Unisys Corporation | Dialog recovery in a distributed computer system |
US7899047B2 (en) * | 2001-11-27 | 2011-03-01 | Microsoft Corporation | Virtual network with adaptive dispatcher |
US7984157B2 (en) * | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7661129B2 (en) * | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
US7662094B2 (en) * | 2002-05-14 | 2010-02-16 | Given Imaging Ltd. | Optical head assembly with dome, and device for use thereof |
US7111303B2 (en) * | 2002-07-16 | 2006-09-19 | International Business Machines Corporation | Virtual machine operating system LAN |
US20040170181A1 (en) * | 2003-02-27 | 2004-09-02 | Padcom, Inc. | Prioritized alternate port routing |
CA2433254A1 (en) | 2003-06-25 | 2004-12-25 | Ibm Canada Limited - Ibm Canada Limitee | System and method for warm shutdown and restart of a buffer pool |
CA2438366A1 (en) * | 2003-08-26 | 2005-02-26 | Ibm Canada Limited - Ibm Canada Limitee | System and method for starting a buffer pool |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US7676814B2 (en) * | 2004-03-25 | 2010-03-09 | Globalfoundries Inc. | Four layer architecture for network device drivers |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
EP1771998B1 (en) | 2004-07-23 | 2015-04-15 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
EP1771979B1 (en) | 2004-07-23 | 2011-11-23 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US20060075392A1 (en) * | 2004-10-05 | 2006-04-06 | International Business Machines Corporation | System and method for reverse engineering of pattern string validation scripts |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US20060253605A1 (en) * | 2004-12-30 | 2006-11-09 | Prabakar Sundarrajan | Systems and methods for providing integrated client-side acceleration techniques to access remote applications |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
US8442042B2 (en) * | 2005-06-09 | 2013-05-14 | Whirlpool Corporation | Appliance and a consumable holder with an embedded virtual router |
EP2228969B1 (en) * | 2005-06-09 | 2017-04-19 | Whirlpool Corporation | Software architecture system and method for communication with, and management of, at least one component within a household appliance |
US7774750B2 (en) * | 2005-07-19 | 2010-08-10 | Microsoft Corporation | Common concurrency runtime |
US20070084638A1 (en) * | 2005-10-19 | 2007-04-19 | Clyde Bohnsack | Drilling fluid flow facilitation |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US8819242B2 (en) * | 2006-08-31 | 2014-08-26 | Cisco Technology, Inc. | Method and system to transfer data utilizing cut-through sockets |
US8908700B2 (en) * | 2007-09-07 | 2014-12-09 | Citrix Systems, Inc. | Systems and methods for bridging a WAN accelerator with a security gateway |
US8447865B2 (en) | 2008-06-20 | 2013-05-21 | Microsoft Corporation | Optimal source interface selection |
US9772876B2 (en) * | 2014-01-06 | 2017-09-26 | International Business Machines Corporation | Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes |
US20150326513A1 (en) * | 2014-05-07 | 2015-11-12 | Mitake Information Corporation | Message transmission system and method suitable for individual and organization |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3400372A (en) | 1965-02-16 | 1968-09-03 | Ibm | Terminal for a multi-data processing system |
US4155117A (en) | 1977-07-28 | 1979-05-15 | International Business Machines Corporation | Synchronizing channel-to-channel adapter |
JPS5833972B2 (ja) | 1979-11-12 | 1983-07-23 | 富士通株式会社 | 計算機システム間通信方式 |
JPH02109153A (ja) | 1988-10-18 | 1990-04-20 | Fujitsu Ltd | プロセッサ間データ伝送方式 |
US5117486A (en) | 1989-04-21 | 1992-05-26 | International Business Machines Corp. | Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor |
US5247616A (en) | 1989-10-23 | 1993-09-21 | International Business Machines Corporation | Computer system having different communications facilities and data transfer processes between different computers |
US5459836A (en) | 1990-02-09 | 1995-10-17 | Unisys Corporation | Inter-processor communication net |
JP3179513B2 (ja) | 1990-05-10 | 2001-06-25 | ヒューレット・パッカード・カンパニー | 異種ネットワーク環境における適用業務プログラムの統合システム |
US5669002A (en) | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
WO1992001990A1 (en) | 1990-07-20 | 1992-02-06 | Temple University - Of The Commonwealth System Of Higher Education | System for high-level virtual computer with heterogeneous operating systems |
US5367643A (en) | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US5612953A (en) | 1991-02-22 | 1997-03-18 | International Business Machines Corporation | Multi-media serial line switching adapter for parallel networks and heterogeneous and homologous computer systems |
US5265239A (en) * | 1991-04-08 | 1993-11-23 | Ardolino Anthony A | Method for remotely accessing service programs of a local processing system supporting multiple protocol stacks and multiple device drivers |
JP2744865B2 (ja) | 1991-04-30 | 1998-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレイション | シリアルチャネルアダプタ |
US5590281A (en) * | 1991-10-28 | 1996-12-31 | The United States Of Americas As Represented By The Secretary Of The Navy | Asynchronous bidirectional application program processes interface for a distributed heterogeneous multiprocessor system |
US5321817A (en) | 1992-01-22 | 1994-06-14 | Innoventions Inc. | Computer data interface through a removable magnetic storage unit |
US5392390A (en) | 1992-04-10 | 1995-02-21 | Intellilink Corp. | Method for mapping, translating, and dynamically reconciling data between disparate computer platforms |
JP2541767B2 (ja) | 1992-11-12 | 1996-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スマ―ト・バス制御ユニット |
US5379296A (en) | 1992-12-31 | 1995-01-03 | Unisys Corporation | Method and apparatus for interfacing a workstation to a plurality of computer platforms |
US5537417A (en) * | 1993-01-29 | 1996-07-16 | International Business Machines Corporation | Kernel socket structure for concurrent multiple protocol access |
US5491693A (en) * | 1993-12-30 | 1996-02-13 | International Business Machines Corporation | General transport layer gateway for heterogeneous networks |
US5655140A (en) | 1994-07-22 | 1997-08-05 | Network Peripherals | Apparatus for translating frames of data transferred between heterogeneous local area networks |
JPH08249254A (ja) | 1995-03-15 | 1996-09-27 | Mitsubishi Electric Corp | マルチコンピュータシステム |
US5734865A (en) * | 1995-06-07 | 1998-03-31 | Bull Hn Information Systems Inc. | Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment |
US5648965A (en) | 1995-07-07 | 1997-07-15 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed packet tracing and analysis |
US5802053A (en) * | 1995-10-13 | 1998-09-01 | International Business Machines Corporation | Transport gateway between a native network and a mixed network |
IL116804A (en) | 1996-01-17 | 1998-12-06 | R N S Remote Networking Soluti | Application user interface redirector |
WO1998056150A1 (en) | 1997-06-02 | 1998-12-10 | Unisys Corporation | Shared use of a network interface card between heterogeneous computer systems |
-
1998
- 1998-07-31 US US09/126,920 patent/US6233619B1/en not_active Expired - Lifetime
-
1999
- 1999-07-28 JP JP2000563035A patent/JP2002521963A/ja active Pending
- 1999-07-28 AU AU51336/99A patent/AU5133699A/en not_active Abandoned
- 1999-07-28 WO PCT/US1999/017034 patent/WO2000007331A2/en active IP Right Grant
- 1999-07-28 EP EP99935973A patent/EP1101322B1/en not_active Expired - Lifetime
- 1999-07-28 DE DE69928408T patent/DE69928408T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1101322B1 (en) | 2005-11-16 |
WO2000007331A2 (en) | 2000-02-10 |
DE69928408D1 (de) | 2005-12-22 |
WO2000007331A3 (en) | 2000-05-04 |
EP1101322A2 (en) | 2001-05-23 |
DE69928408T2 (de) | 2006-08-10 |
AU5133699A (en) | 2000-02-21 |
US6233619B1 (en) | 2001-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002521963A (ja) | 異種コンピュータシステム間の高速通信のための、仮想トランスポート層インターフェイスおよびメッセージ通信サブシステム | |
US6810431B1 (en) | Distributed transport communications manager with messaging subsystem for high-speed communications between heterogeneous computer systems | |
US6473803B1 (en) | Virtual LAN interface for high-speed communications between heterogeneous computer systems | |
US6289388B1 (en) | System for communicating heterogeneous computers that are coupled through an I/O interconnection subsystem and have distinct network addresses, via a single network interface card | |
EP1142215B1 (en) | A credit based flow control method | |
US7406481B2 (en) | Using direct memory access for performing database operations between two or more machines | |
US10055264B2 (en) | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities | |
US5706437A (en) | System and method for accessing a service on a services network | |
JP5282115B2 (ja) | ユーザーレベルスタック | |
US8954613B2 (en) | Network interface and protocol | |
US6345296B1 (en) | Method system and computer program product for providing pull model data communication | |
US20040240435A1 (en) | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory | |
US20040177158A1 (en) | Network address translation techniques for selective network traffic diversion | |
JPH08507909A (ja) | ワークステーションを複数個のコンピュータプラットホームにインタフェースする方法および装置 | |
US7596634B2 (en) | Networked application request servicing offloaded from host | |
US6064805A (en) | Method, system, and computer program product for intraconnect data communication using buffer pools and buffer pool management | |
EP1038220A2 (en) | A high performance interoperable network communications architecture (inca) | |
US6009463A (en) | Cooperative service interface with buffer and lock pool sharing, for enhancing message-dialog transfer between network provider and distributed system services | |
US8737431B2 (en) | Checking data integrity | |
US6021430A (en) | Output interface method and system for enhanced data transfers via cooperative service interface | |
US7330904B1 (en) | Communication of control information and data in client/server systems | |
WO1998056150A1 (en) | Shared use of a network interface card between heterogeneous computer systems | |
JP3694532B2 (ja) | 異種コンピュータシステム間でのネットワークインタフェースカードの共用 | |
EP0958688B1 (en) | Method and system for data communication using an intraconnect architecture | |
Pietikainen | Hardware-Assisted Networking Using Scheduled Transfer Protocol On Linux |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060727 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081125 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090225 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20090707 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090721 |