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
Application number
JP2000563035A
Other languages
English (en)
Inventor
ナリースィ,アンソニー
ケイン,マイケル・ティ
サラモン,ギャリー
ジェニオン,スーザン
コイン,ロイス・ビィ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Unisys Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unisys Corp filed Critical Unisys Corp
Publication of JP2002521963A publication Critical patent/JP2002521963A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer 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

(57)【要約】 直接相互接続されたそれぞれのコンピュータシステム上で実行するネットワークアプリケーションが、両システムがイーサネット等の従来のネットワーク通信経路を介してではなく、それら本来の機構を使用してそれらの機構を変更することなく互いに通信することができるように、アプリケーション間で相互接続を介して高速かつ待ち時間の短い通信を行なうことを可能にする、方法および装置。共存する、密結合された処理環境におけるアプリケーション間の通信は、従来のTCPトランスポート層および従来のIPネットワーク層を、相互接続の通信プロトコルとは独立したインターフェイスを提供する、密結合されたシステム間でデータを転送するための信頼性の高いメッセージ通信サブシステム(「MSS])と、ネットワークアプリケーションに対してTCP/IP等の既知のトランスポート層プロトコルをシミュレートする仮想トランスポート層(「VTL」)とに置換することによって提供される。MSSは、そのユーザに対して、種々の異種環境間でコントロール情報およびデータ情報を転送するための、多種多様の配信および通知機構を提示する、システムの、相互接続とは独立したメッセージ通信トランスポートである。VTLは、MSS接続を使用して、セッション層への一貫性のある、相互接続とは独立したインターフェイスを提供する。VTL/MSSプロトコルは、信頼性の高いデータ配信を行なうかまたは接続が利用できないことを表示する、同種のコネクション指向のインターフェイスを提供する。MSSがホストインターフェイスファンクションと直接インターフェイスするので、相互接続が変更されたときに必要となるのはMSSインターフェイスの変更のみである。

Description

【発明の詳細な説明】
【0001】
【著作権に関する注意】
この特許書類の開示の一部は、著作権の保護対象となる事項を含む。著作権者
は、米国特許商標庁のファイルまたは記録にある特許書類または特許開示につい
ては、何人による複写に対しても異議を唱えないが、それ以外の著作権について
は全て留保する。
【0002】
【発明の分野】
本発明はコンピュータネットワーキングの分野に関し、より特定的には、2つ
の密結合された異種コンピュータシステムが、シミュレートされたまたは「仮想
」のトランスポート層インターフェイスを含む相互接続上でメッセージ通信シス
テムを介して互いに通信することを可能にする、装置および方法に関する。
【0003】
【先行技術の説明】
異種のコンピュータシステムが、標準ISOおよび/または各企業独自のネッ
トワーキングプロトコルを使用してネットワークを介して互いに通信することの
できる機能は、よく知られている。ほとんどのコンピュータシステムは何らかの
形のネットワーキングアーキテクチャを有し、それらのプロトコルに従ってネッ
トワーキングを行なうことができる。たとえば、標準7層ISO参照モデル(Re
ference Model)を含む汎用ネットワーキングプラットフォームは、ユーザの制
御下にあるアプリケーション、プレゼンテーションおよびセッションレベルと、
カーネル(オペレーティングシステム)の制御下にあるトランスポート、ネット
ワーク、データリンクおよび物理レベルとからなる、ネットワークスタックを含
む。典型的なネットワーキングアーキテクチャは、システムソフトウェアおよび
ハードウェアのどちらも含む。
【0004】 図1は、ユニシスAシリーズ(Unisys A Series)エンタープライズ・サーバ
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バスデータ転送プロトコルの物理層およびデータ
層を管理する。
【0005】 チャネルアダプタカードは、各々、IOM14内の1または複数のチャネルア
ダプタカードスロットを占有し得るが、それらカードは、Aシリーズエンタープ
ライズ・サーバ10のためにさまざまなコネクティビティの解決手段を提供する
。たとえば、ユニシスは、スモールコンピュータシステムインターフェイス(Sm
all Computer System Interface、SCSI)の周辺機器をエンタープライズ・
サーバ10に接続するためにSCSIプロトコルを実装する、チャネルアダプタ
カードを提供する。
【0006】 ネットワークのコネクティビティのために、ユニシスは、さまざまな物理ネッ
トワーキングプロトコルをサポートする、いくつかのチャネルアダプタを提供す
る。これらのチャネルアダプタは通常、ネットワークプロセッサ(NP)と呼ば
れる。たとえば、ユニシスICP22およびICP26ネットワークプロセッサ
は、イーサネット(登録商標)(Ethernet)(登録商標)ネットワークプロトコ ルを実装するチャネルアダプタカードであって、これらは、Aシリーズエンター プライズ・サーバ10をイーサネットネットワークに接続するのに使用すること ができる。ユニシスはまた、FDDIおよびATMネットワークへのコネクティ ビティのためのネットワークプロセッサを提供する。図1に示すように、種々の ネットワークコネクティビティ解決手段を提供するために、多種多様のネットワ ークプロセッサ(たとえば、NP20a、20bおよび20c)を、IOM14 のそれぞれのチャネルアダプタスロット(たとえば、スロット16b、16cお よび16d)に組込むことができる。
【0007】 (チャネルアダプタスロット16dに組込まれた)ネットワークプロセッサ2
0cのより詳細な図に示されるように、ネットワークプロセッサは、たとえば、
Line0、Line1、…LineN等の、複数の異なるラインを含み得る。ここで、ライン
は、ネットワーク内の物理的なエンドポイントを表わす。たとえば、ユニシスI
CP22ネットワークプロセッサは2つのラインを有し、その各々が、別個のイ
ーサネット接続を含む。すなわち、一方のラインが1つのイーサネットネットワ
ークに接続され、他方のラインが異なるイーサネットネットワークに接続され得
る。
【0008】 ネットワークプロセッサの各ラインは、そのライン上に規定された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の種々のライン上でステ
ーションおよびステーショングループを作成および維持してそれらにわたってデ
ータを送受信するための、呼出し可能な手続きを提供する。
【0009】 ネットワークプロセッサ20c上で実行する他のソフトウェアコンポーネント
は、キューサービスプロバイダ(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の対応するモジュールとインターフェイスをとる。
【0010】 通常、ネットワークプロセッサ(たとえば、NP20a、20bまたは20c
)は、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が示されている。
【0011】 コアネットワークサービス(CNS)ソフトウェア34は、ネットワークプロ
トコルプロバイダ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へのソフトウェアのローディングお
よびそれらの状態のダンピングを制御する。
【0012】 各ネットワークプロセッサは、システム10内のそのネットワークプロセッサ
を一意に識別する、関連する識別子を有する。ネットワークプロセッサが初期化
されてオンラインとされるとき、ネットワークプロセッサ内のNSM−STUB
30は、NSM36にその識別子を渡すために、コントロールダイアログを介し
てCNS34のNSM36とインターフェイスをとる。NSM36は、すべての
アクティブなネットワークプロセッサの識別子を管理する。
【0013】 任意のネットワークプロセッサのために規定された各ステーショングループお
よびステーションはまた、それに関連する一意の識別子を有する。ネットワーク
プロセッサ上のLLM−STUB32とCNS34のLLM38との間に構築さ
れたコントロールダイアログを介して、ステーションおよびステーショングルー
プの識別子は、初期化中にLLM38に渡される。LLM38内では、1つのス
テーションが1つの接続に対応し、1つのステーショングループが1つの接続グ
ループに対応する。
【0014】 上述のように、ネットワークプロセッサの単一の物理ライン上の複数のステー
ション(すなわち、ステーショングループ)を定義する機能は、多重化によって
達成される。具体的には、ネットワークプロセッサ内の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に報告される。
【0015】 クライアントアプリケーションは、ネットワーク15を介してネットワーク1
5上の別のホストまたはノード、たとえば別のBNAv2ホスト22、24また
は別のTCP/IPホスト25へとデータを送信するように要求されると、適切
なネットワークプロトコルプロバイダ、たとえば42、44のサービスを呼出す
。ネットワークプロトコルプロバイダ42、44は、データを出力すべき適切な
ネットワークプロセッサおよびステーションを判定し、ネットワーク層の各々の
ためにプロトコルヘッダを追加して、ネットワークプロセッサの識別子およびス
テーションのRQRを含む、MCP12への対応する要求を作成する。そのデー
タおよび関連のRQRは、MCP12からネットワークプロセッサ(たとえば、
ネットワークプロセッサ20c)上のQSP28へと渡され、そのネットワーク
プロセッサが、LANSGモジュール26と連動して、そのデータを適切なライ
ン(たとえば、Line0、Line1、…またはLineN)を介してネットワーク15へと
、指定されたステーションによって表わされる論理ダイアログの一部として、送
り出す。
【0016】 データが任意のライン上でネットワーク15から受取られると、LANSGモ
ジュール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号に記載されている方法に従っ
て行なわれる。
【0017】 上述のネットワーキングアーキテクチャは、Aシリーズコンピュータにおいて
使用されるのに加えて、ユニシスクリアパス(Unisys ClearPath)HMP NX
エンタープライズ・サーバにおいても用いられる。クリアパスHMP NXサー
バは、マイクロソフトウィンドウズNT(Microsoft Windows NT)を実行するサ
ーバと密結合された、Aシリーズエンタープライズ・サーバを含む。ここで、「
マイクロソフト("Microsoft")」、「ウィンドウズ("Windows")」および「ウ
ィンドウズNT("Windows NT")」は、マイクロソフト・コーポレイション(Mi
crosoft Corporation)の登録商標である。上述のネットワーキングアーキテク
チャに関するさらなる情報は、以下の文献に見出される。これらの文献はすべて
、本発明の譲受人であるユニシス・コーポレイション(Unisys Corporation)か
ら入手可能であり、その全文がここに引用により援用される。
【0018】 「ウィンドウズNTネットワークサービスを用いるクリアパスHMP NXシ
リーズの実装ガイド("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)。
【0019】 イーサネットベースのチャネルアダプタであるユニシスICP22ネットワー
クプロセッサを使用して、ユニシスAシリーズエンタープライズ・サーバがネッ
トワークを介してワークステーションまたはパーソナルコンピュータ(PC)と
通信することは、過去においても可能であった。この機能の一例を図2に示す。
この例において、Aシリーズエンタープライズ・サーバ10は、マイクロソフト
ウィンドウズNTオペレーティングシステム(以後、「NTサーバ」)を実行す
る、インテル(Intel)ベースのワークステーション48と通信する。このAシ
リーズエンタープライズ・サーバ10は、たとえばユニシスICP22イーサネ
ットベースネットワークプロセッサであり得るネットワークプロセッサ20aを
介して、ネットワークに接続される。
【0020】 NTサーバ48のI/Oサブシステムは、NTオペレーティングシステムカー
ネル、EISAまたはPCIバス52、および、適切なデバイスドライバソフト
ウェアを含む。ネットワークのコネクティビティを提供するために、ネットワー
クインターフェイスカード(NIC)50がNTサーバ48上の利用可能なバス
スロットに組込まれる。NTサーバは、PCIバス標準およびEISAバス標準
の一方または両方をサポートし得る。NICは、どちらのバス標準に対しても利
用可能である。
【0021】 NICカード50とともに通常販売されるNICデバイスドライバ54は、N
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モデルの物
理層で通信する。
【0022】 Aシリーズエンタープライズ・サーバのようなユニシス独自のシステムのため
にNICカードを開発するのにかかるコストを避けるために、やはり本願の譲受
人に譲渡されその全文がここに引用により援用される、同時係属中の米国特許出
願連続番号第09/088,421号において、Aシリーズエンタープライズ・
サーバ10とNTサーバ48との間に直接の相互接続を設けて、両システムがN
Tサーバ上に組込まれた共用ネットワークインターフェイスカードを介してネッ
トワークに接続することができるようにすることが提案されている。この発明は
、ユニシスのクリアパスHMP NXコンピュータシステム(「クリアパスシス
テム」)に配置される、協調型ネットワーキングプラットフォーム(Cooperativ
e Networking Platform、CNP)の一部として実装される。今から説明するよ
うに、クリアパスシステムは、ユニシスAシリーズエンタープライズ・サーバ1
00および、ウィンドウズNT102を実行するインテルベースのサーバ102
(「NTサーバ」)を含む。
【0023】 図3、4および5に示すように、CNPは種々の形をとり得る。これらの図に
示すように、相互接続は、Aシリーズサーバ100のI/OサブシステムをNT
サーバ102のI/Oサブシステムと結合して、システム間に比較的高速のデー
タ経路を提供する。この相互接続は、好ましくは、Aシリーズエンタープライズ
・サーバ100のI/OサブシステムとNTサーバ102のI/Oサブシステム
との間の物理的な接続、および、NTサーバ102上の他のソフトウェアモジュ
ールによるその物理的な接続へのアクセスを制御する相互接続デバイスドライバ
を含む。
【0024】 図3に示す実施例においては、この物理的な接続は、Aシリーズサーバ100
のチャネルアダプタスロットに組込まれたフィードスルーカード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が設け
られる。
【0025】 図3において、PCCAドライバ72およびOPENCAドライバを含む相互
接続デバイスドライバ70と、フィードスルーカード62、ケーブル64および
EPCCAカード66によって形成される物理的接続とが合せて、ホストインタ
ーフェイスファンクション(Host Interface Function、HIF)を規定する。
QSP76と、NIFの相互接続デバイスドライバ70との手続き的インターフ
ェイスは、QSP76をHIFから分離するように設計される。このような設計
によって、以下の詳細な説明から明らかとなるように、本発明をHIFの種々の
実装例とともに用いることが可能となる。具体的には、QSP76と相互接続デ
バイスドライバ70との間の手続き的インターフェイスは、各モジュールがその
機能を実現する手続きへのエントリポイント(すなわち、ポインタ)を、必要と
される変数値とともに発行するプロセスを通して構築される。別のデバイスドラ
イバエンティティがこれらのエントリポイントの記録を維持する一方で、HIF
の相互接続デバイスドライバ70がエントリポイントおよびそれらの属性を登録
し、QSP76がエントリポイントを登録する。
【0026】 エントリポイント関数のうち1つの関数を呼出すには、その関数に対して登録
されたエントリポイントがコールされる。このような間接的な方法の結果として
、HIFの異なる実装例につき異なる相互接続デバイスドライバが、QSP76
に対して完全にトランスペアレントな態様で組込まれる。
【0027】 図4および図5は、HIFの2つの代替的な実施例を示す。これらは、手続き
的インターフェイスの設計によってもたらされるモジュール性を示している。図
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)を含む他のモジュールに対しても、トランスペアレ
ントである。
【0028】 図5は、Aシリーズサーバ100がNTサーバ102内のソフトウェアによっ
てエミュレートされる実施例を示す。ユニシスは、このようなエミュレートされ
たシステムを、クリアパス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)を含む本発明の他のモジュールに対しても、トランスペアレント
である。
【0029】 また、やはり本願の譲受人に譲渡されその全文がここに引用により援用される
、同時係属中の米国特許出願連続番号第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ネットワーク参照モデルのデータリンクレベ
ルで通信することができるようにする。
【0030】 データをシステム間でデータリンクレベルではなくトランスポートレベルでポ
イントツーポイントで転送することができるように、相互接続を介したAシリー
ズエンタープライズ・サーバ100とNTサーバ102とのTCPトランスポー
トプロトコルおよびIPネットワーキングプロトコルをシミュレートすることに
よって、クリアパスシステムの通信効率をさらに改善することが望まれる。トラ
ンスポート層プロトコルおよびネットワーク層プロトコルをシミュレートするこ
とで、データをネットワークプロトコル情報を前に付加した小さなデータチャン
クへと分解することなくより大きなブロックで伝送することのできる、より信頼
性の高いネットワーク接続を使用することによって、TCP/IPプロトコル固
有の限界を取除くこともまた望まれる。もちろん、これは、ユーザに対してトラ
ンスペアレントな態様で(すなわち、セッションレベルに影響を及ぼさないよう
に)行なわれることが望まれるが、本発明はこのような機能を提供する。
【0031】
【発明の概要】
本発明は、第1のコンピュータシステム上で実行する第1のネットワークアプ
リケーションと、第1のコンピュータシステムに直接相互接続されかつ密結合さ
れた第2のコンピュータシステム上で実行する第2のネットワークアプリケーシ
ョンとが、両システムがTCP/IPおよびイーサネット等の従来のネットワー
ク通信経路を介してではなくそれら本来の機構を使用してネットワークアプリケ
ーションに影響を及ぼすことなく互いに通信することができるように、それらア
プリケーション間の相互接続を介して高速かつ短い待ち時間で通信することを可
能にする、方法および装置に向けられる。本発明の好ましい実施例に従えば、本
発明は、第1のコンピュータシステムの入出力(I/O)サブシステムと第2の
コンピュータシステムのI/Oサブシステムとを結合しかつデータをそれにわた
ってネットワークインターフェイスカードとは独立してシステム間で伝送するこ
とのできる相互接続と、汎用トランスポートインターフェイスを提供しかつ第1
および第2のネットワークアプリケーションに対して既知のトランスポート層プ
ロトコルをシミュレートする、第1および第2のコンピュータシステム上で実行
する相互接続メッセージ通信システムとを含む。本発明は、第1および第2のネ
ットワークアプリケーションが、第1および第2のネットワークアプリケーショ
ンにトランスペアレントな態様で通信することができるようにする(たとえば、
データは、第1および第2のコンピュータシステム上のアプリケーション間で、
セッション層および該第1および第2のネットワークアプリケーションを含むよ
り上位層の通信プロトコルに影響を及ぼすことなく転送され得る)。
【0032】 第1のコンピュータシステムのI/Oサブシステムと第2のコンピュータシス
テムのI/Oサブシステムとの間の相互接続は、好ましくは、データをその上で
伝送することのできる、I/Oサブシステム間の物理的接続を含む。本発明は、
第1および第2のコンピュータシステム間のこの相互接続についてどのような限
定も課しておらず、むしろ、改良された相互接続機構が利用可能となった時点で
その機構も利用することができるようにすることを意図している。相互接続メッ
セージ通信システムは、メッセージ通信サブシステム(「MSS」)を含む。M
SSは、該相互接続の通信プロトコルとは独立した汎用トランスポートインター
フェイスを提供し、さらに、その相互接続の両側に該相互接続の通信プロトコル
に依存するさらなるインターフェイスを提供する。これにより、相互接続に変更
が加えられた場合にも、そのさらなるインターフェイスのみを変更すればよくな
る。
【0033】 好ましくは、MSSは、第1および第2の各コンピュータシステム上にMSS
コンポーネントを含み、各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ユーザとの間でデー
タを転送するための手段を含む。
【0034】 本発明のMSSの主たる利点は、相互接続に依存する機構を単一のコンポーネ
ントから分離する機能である。これにより、相互接続とは独立したMSSインタ
ーフェイスを介して(すなわち「MSSユーザ」として)システム間の通信を要
求するコンポーネントを実装することによって付加的な機能が加えられると、既
存の相互接続に対する変更および付加的な相互接続の組込みが、MSSユーザに
影響を与えることなく、もっぱらMSSコンポーネントのみを介して、行なうこ
とができるようになる。
【0035】 現時点において好ましい実施例においては、ローカルMSSユーザの1つおよ
びリモートMSSユーザの1つは、第1および第2のネットワークアプリケーシ
ョンが相互接続を介して第1および第2のネットワークアプリケーションに対し
てトランスペアレントな態様で互いに通信することができるように、既知のトラ
ンスポート層プロトコルをシミュレートする、相補的な仮想トランスポート層(
「VTL」)コンポーネントである。これら相補的なVTLコンポーネントが合
せて、MSSを用いて、トランスポートダイアログの構築、データ転送およびト
ランスポートダイアログの終了という従来のトランスポート機能を行なう。好ま
しくは、該VTLコンポーネントは、第1および第2のネットワークアプリケー
ションとインターフェイスをとり、また、好ましくは、第1および第2のコンピ
ュータシステム上に、MSSの相互接続とは独立したインターフェイスを通じて
MSSに接続される相補的なMSSユーザとして実装される。MSSのメッセー
ジ制御機能は、VTLコンポーネントがデータダイアログの作成およびオープン
を調整するためにメッセージのシーケンスをそれを通じて交換することのできる
、信頼性の高いコントロールダイアログを作成する。
【0036】 データが第1のネットワークアプリケーションから第2のネットワークアプリ
ケーションへと相互接続を介して転送される場合、第1のネットワークアプリケ
ーションとインターフェイスするVTLコンポーネントが、その第2のネットワ
ークアプリケーションに転送されるべきデータにVTLデータ転送ヘッダをアペ
ンドして、開いたダイアログを介してデータ転送を開始する。
【0037】 本発明の範囲はまた、第1のコンピュータシステム上で実行する第1のネット
ワークアプリケーションと、第1のコンピュータシステムの入出力(I/O)サ
ブシステムと第2のコンピュータシステムのI/Oサブシステムとの間の相互接
続を介して第1のコンピュータシステムに直接相互接続されかつ密結合された第
2のコンピュータシステム上で実行する第2のネットワークアプリケーションと
が、ネットワークインターフェイスカートとは独立しかつ第1および第2のネッ
トワークアプリケーションの本来のプロトコルで、それらの間でデータを伝送す
ることができるようにする方法を含む。本発明に従えば、この方法は、 第1および第2の各コンピュータシステム上の第1および第2のネットワーク
アプリケーションに対して既知のトランスポート層プロトコルをシミュレートす
るステップと、 該相互接続を介して、第1および第2のネットワークアプリケーションがそれ
ら自身にトランスペアレントな態様で通信することのできるダイアログを作成す
るステップと、 第1および第2のネットワークアプリケーションの間でデータを転送するため
にそのダイアログを開くステップと、 転送されるべきデータにデータ転送ヘッダを付与するステップと、 開いたダイアログを介して相互接続にわたってデータおよびデータ転送ヘッダ
を転送するステップとを含む。
【0038】 好ましい実施例においては、第1および第2のアプリケーションの複数対のた
めに相互接続にわたって複数のダイアログが作成されて、各対をなすアプリケー
ションが、その対における第1および第2のアプリケーションの本来のプロトコ
ルに対してトランスペアレントな態様で通信することができるようにされ、さら
に、その対におけるアプリケーション間のデータ転送のために使用されるべきダ
イアログが特定される。
【0039】 本発明の仮想トランスポート層の主要な利点は、スループットが向上すること
と、プロセッサの消費が減じられることである。これらの改善は、(1)基礎と
なるすべての相互接続が概して、ネットワーキングのために典型的に使用される
よりもはるかに大きなメッセージ転送サイズをサポートすることが可能であるた
めに、伝統的なトランスポートプロトコルに関連するフラグメント化/リアセン
ブリにかかるオーバヘッドが最小に抑えられ、(2)基礎となる相互接続の信頼
性が概して高いために、本発明のメッセージ通信システムが伝統的なTCP/I
Pプロトコルの受信通知および再送信のアルゴリズムを実装する必要がない、と
いう、2つの重要な要因による。また、基礎となる相互接続の信頼性が低い場合
には、該メッセージ通信システムがそのコネクション指向のメッセージ通信プロ
トコルによって、高い信頼性を提供することが可能である。
【0040】 本発明のさらなる特徴および利点は、以下の説明から明らかとなるであろう。 本発明の以上の概要および以下の好ましい実施例の詳細な説明は、添付の図面
と関連して読むことにより、よりよく理解されるであろう。本発明を図示する目
的で、図面にはいくつかの実施例を示す。これらは現時点において好ましい実施
例ではあるが、本発明は、開示された特定的な方法および手段に限定されるもの
ではないことを理解されたい。
【0041】
【好ましい実施例の詳細な説明】
図6から図37に関連して以下に説明するように、本発明は、第1のコンピュ
ータシステム上で実行する第1のネットワークアプリケーションと、該第1のコ
ンピュータシステムに直接相互接続されかつ密結合された第2のコンピュータシ
ステム上で実行する第2のネットワークアプリケーションとが、双方のシステム
が、TCP/IPおよびイーサネット等の従来のネットワーク通信経路を介して
ではなく、それら本来の機構を使用してネットワークアプリケーションに影響を
与えることなく互いに通信することができるように、それらアプリケーション間
の相互接続を介して高速かつ待ち時間の短い通信を行なうことを可能にする、方
法および装置に向けられる。本発明の好ましい実施例に従えば、本発明は、第1
のコンピュータシステムの入出力(I/O)システムを第2のコンピュータシス
テムのI/Oサブシステムと結合しかつそれにわたってデータをネットワークイ
ンターフェイスカードとは独立してシステム間で伝送することができる、相互接
続と、汎用トランスポートインターフェイスを提供する、第1および第2のコン
ピュータシステム上で実行する相互接続メッセージ通信システムと、第1および
第2のネットワークアプリケーションに対して既知のトランスポート層プロトコ
ルをシミュレートする、第1および第2のコンピュータシステム上で実行する仮
想トランスポート層とを含む。
【0042】 以下により詳細に説明する一実施例において、本発明の方法および装置は、ユ
ニシスのクリアパスHMP NXエンタープライズ・サーバの一特徴として提供
される、協調型ネットワーキングプラットフォーム(CNP)(これはときに、
「NX/ネットワークサービス(NX/Network Services)」または「NNS」と
も呼ばれる。)の一部として実装され得る。ここで、上述のように、ユニシスA
シリーズエンタープライズ・サーバは、マイクロソフトウィンドウズNTを実行
するインテルベースのサーバと密結合されている。この実施例では、Aシリーズ
エンタープライズ・サーバが第1のコンピュータシステムを構成し、NTサーバ
が第2のコンピュータシステムを構成する。このような環境で実装された場合、
本発明は、Aシリーズサーバ上のネットワークアプリケーションが、NTサーバ
上の同位のネットワークアプリケーションと、本来の機構を使用して、高速かつ
待ち時間の短い通信を行なうことができるようにする。
【0043】 本発明の方法および装置、または、それらのある局面もしくは部分は、フロッ
ピー(登録商標)ディスケット、CD−ROM、ハードドライブまたは他の機械 可読記憶媒体のような具体的な媒体内に実現される、プログラムコード(すなわ ち、命令)の形をとり得る。この場合、そのプログラムコードがコンピュータ等 の機械にロードされかつそれによって実行されるとき、その機械が、本発明を実 施する装置となる。また、本発明の方法および装置は、何らかの伝送媒体、たと えば電気配線もしくはケーブルを介して、光ファイバを通じて、または他の伝送 形状を介して伝送される、プログラムコードの形でも実現され得る。この場合、 そのプログラムコードがコンピュータ等の機械にロードされかつそれによって実 行されるとき、その機械が本発明を実施する装置となる。このプログラムコード が汎用プロセッサ上で実現される場合には、プログラムコードはプロセッサと共 同して、特定的な論理回路群と同様に動作する、独特の装置を提供する。
【0044】 本発明の装置は、Aシリーズサーバ100のI/OサブシステムとNTサーバ
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通信システムについて、以下により詳細に説明する。当業者には、以下の詳細
な説明が例示のためのみのものであって、本発明の範囲を限定することを意図し
ないことが理解されるであろう。本発明の範囲は、前掲の請求の範囲から判断す
ることができる。
【0045】 図中、同一の参照符号は同一の構成要素を表わす。図6から図8は、図3から
図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アドレスを有する。
【0046】 第2のネットワークプロトコルプロバイダ58、この場合、(マイクロソフト
・コーポレーションから入手可能な)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」)を有する。
【0047】 AシリーズサーバおよびNTサーバ上には、他のネットワークプロトコルプロ
バイダを設けることも可能である。たとえば、Aシリーズサーバ上には、BNA
v2 HRNP42を設けることができ、また、TCP/IPに加えて低信頼デ
ータグラムプロトコル(「UDP」)を設けてもよい。しかし、BNAv2プロ
トコルはユニシス独自のプロトコルであって、ネットワークのエンドポイントの
ために別のアドレス指定方式を用いるので、このBNAv2 HRNP42がそ
れに関連するIPアドレスを有することはない。
【0048】 図9Aから図9Fは、図6から図8に示した実施例において、HIFの相互接
続デバイスドライバおよびQSPモジュール76を介してAシリーズサーバ10
0とNTサーバ102との間でどのようにデータが転送されるかをより詳細に示
す。図9Aから図9Eに示した詳細は、図6、図7および図8に示したホストイ
ンターフェイスファンクション(「HIF」)のQSPベースのどの実施例に対
しても適用可能である。したがって、以下の説明に用いられる、相互接続デバイ
スドライバ(ICD)という語は、これらの図に関連して説明される相互接続デ
バイスドライバの3つの実装例のいずれにもあてはまる。
【0049】 QSP76は、ICDによってサポートされる通信経路を抽象化したものであ
る1または複数の転送ユニットを介した、複数のクライアントダイアログ(たと
えば、NSM−STUBモジュール84およびLLM−STUBモジュール86
とのダイアログ、ならびに、LANSG78によって規定される異なるステーシ
ョンとのダイアログ)を多重化する。ユニットは、論理ダイアログまたは物理的
デバイスであり得る。このユニットの資源をより十分に利用するために、QSP
76は、同じユニットを介して転送されるのを待っているメッセージを、単一の
動作で転送することのできる1ブロックにまとめてもよい。QSP76は、メッ
セージヘッダにメッセージ・カウント(Message-Count)フィールドを設けるこ
とによって、このようなブロック化をサポートする。ブロック内の最初のメッセ
ージヘッダのメッセージ・カウントフィールドには、そのブロックに含まれるメ
ッセージの数を入れ、同じブロック内の後続のメッセージヘッダのフィールドに
は、ゼロ値を入れる。
【0050】 ICDは各ブロックを取って、そのブロックをAシリーズサーバ100に転送
するように物理的接続(すなわち、実装例に応じて、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インターフェイスの動作は、下に詳細に説明する。
【0051】 図9Aから図9Dは、NTサーバ102上のクライアント(たとえば、NSM
−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)に渡さ
れる。
【0052】 ステップ118においてブロック化がそのユニットついてサポートされないと
判断された場合、ステップ120において現時点において転送を待っているブロ
ックがないと判断された場合、および、ステップ121においてメッセージが最
終の処理待ちブロックに当てはまらないと判断された場合の、3つの場合すべて
において、制御はステップ124に渡される。ステップ124において、QSP
76は、ステップ116において構築された記述子リストのみを含むブロックを
構築する。次に、ステップ126において、この新たに作成されたブロックが、
処理待ちブロックのリストに追加される。制御はその後、ステップ127(図9
B)に渡される。
【0053】 図9Bにおいて、QSP76は、ステップ127において、処理待ちのブロッ
クがあるかどうかを判断する。もしなければ、QSP76は単にクライアントに
リターンする。しかし、もし転送されるべき処理待ちブロックがあれば、制御は
ステップ128に渡される。
【0054】 ステップ128において、QSP76は、処理待ちブロックのリストにおける
最初のブロックを、ICDのHifSendBlockToHost()手続きを呼出すことによって
、IDCに送ろうと試みる。この手続きは、データのブロックをMCP12へと
配信するように、QSP76によってコールされる。図9Bに「A」を付した矢
印で示すように、ICDはこの時点で、リクエストの処理を開始する。ICDに
よって行なわれるステップは図9Cに示す。図9Bを参照して、QSPの処理は
ステップ130に続き、ここでQSP76は、ICDが転送のためにそのブロッ
クを受入れたかどうかを判断する。受入れた場合には、そのブロックはステップ
132において処理待ちのリストから取除かれ、制御はステップ127に戻る。
ステップ127においてQSP76は再び、転送されるべき処理待ちブロックが
残っているかどうかを判断し、そのようなブロックについて処理を続ける。しか
し、もしステップ130において、ICDが転送のために任意のブロックを受け
いれなかったと判断した場合には、QSP76はクライアントにリターンし、送
信されるべきメッセージを含むそのブロックは処理待ちリストに残される。
【0055】 図9Cに示すように、ICDは、QSPからのHifSendBlockToHost()リクエス
トの処理をステップ134で開始する。ステップ134において、ICDは、物
理的接続がフロー制御モードにあるかどうかを判断する。フロー制御モードは、
Aシリーズサーバ100のMCPオペレーティングシステム12が、たとえば、
利用可能なバッファがないために、特定のユニット上でデータを受信する準備が
できていないことを示すモードである。物理的接続がフロー制御モードにある場
合には、ICDはQSP76に対して「FALSE」の値を返し、この時点で転
送処理を停止する。物理的接続がフロー制御モードにない場合には、制御はステ
ップ136に渡され、そこで、ICDは、その物理的接続がギャザー(Gather)
ファンクションをサポートするかどうかを判断する。ギャザーは、データを1つ
の動作で、連続しないメモリ領域から転送することのできる機能である。その物
理的接続がギャザー機能をサポートしない場合には、制御はステップ138に渡
され、そこでICDは、(QSP76によって渡された)記述子リストによって
ポイントされるそのデータを、連続したバッファにコピーする。次に、ステップ
140においてICDは、その単一の、連続したバッファをポイントする、擬似
記述子リストを構築する。制御はその後、ステップ142に渡される。
【0056】 (ギャザーがサポートされて)ステップ136から直接ステップ142に入っ
た場合にも、(ギャザーがサポートされずに)ステップ140からステップ14
2に入った場合にも、ICDはステップ142において、物理的接続(すなわち
、特定的な実施例に応じて、EPCCAボード66、PCIブリッジカード67
またはエミュレートされたメモリ同士の接続63)をプログラムして、(ギャザ
ーの場合には)QSP76から受信した記述子リストによって、(ギャザーでな
い場合には)ステップ140で作成された擬似記述子リストによって、そのいず
れかによってポイントされるデータを転送する。ICDはその後、QSP76に
対して「TRUE」の値を返す。
【0057】 図9Dは、転送が完了したときにICDおよびQSP76によって行なわれる
ステップを示す。図示するように、転送が完了すると、ICDが起こされる。ス
テップ144において、ICDは、その転送がうまく完了したかどうかの表示を
受取る。もしうまく完了しなかった場合には、制御はステップ146に渡され、
そこでICDは、たとえば、問題のブロックを再転送したり、物理的接続をリセ
ットしたりすることによって、その誤りを回復しようと試みる。転送がうまく完
了した場合には、制御はステップ148に渡される。ステップ148において、
ICDは、物理的接続のフロー制御状態を調節する。これは、上述の物理的接続
の実施例においては相互接続がポーリングされるために行なわれる。転送が完了
すると、相互接続は、それが再びポーリングされるまで別の転送を開始すること
ができない場合がある。そのため、ポーリングを反映するよう、フロー制御状態
を調節するのである。次に、ステップ150において、ICDは、QspAckBlockT
oHost()の手続きを呼出し、QSPに対して、MCP12への転送が完了したこ
と、および、どの記述子リストが転送されたかを知らせる。ステップ152にお
いて、ICDは、クリーンアップ手続きを行ない、その後リターンする。
【0058】 図9Dにポイント「B」で示すように、QSP76がICDから、MCP12
への転送がうまく完了したことを知らせるQspAckBlockToHost()の表示を受取る
と、QSP76はステップ154に入る。ステップ154において、転送された
ブロック内のすべてのメッセージがリリースされて、メッセージを送信してきた
クライアントに、それらがうまく転送されたことが知らされる。ステップ156
において、メッセージヘッダおよび記述子リストを含むブロック構造が再利用さ
れて、後続の転送のために利用可能とされる。その後、制御は図9Bのステップ
127に戻って、後続のブロックの処理が行なわれる。
【0059】 図9Eおよび図9Fは、Aシリーズサーバ100からNTサーバ102にメッ
セージを伝送するのにICDおよびQSP76によって行なわれるステップを示
す。図示するように、ICDは、物理的接続を介してAシリーズサーバ100か
らメッセージを受取るのに先立って、その接続のために利用可能な空き受信バッ
ファを作る。メッセージがAシリーズサーバ100からNTサーバ102へと物
理的接続を介して(たとえば、図6の実施例においてはフィードスルーカード6
2、ケーブル64およびEPCCAカード66を介して)転送されると、ICD
は、メッセージがICDが指定した空き受信バッファのうちの1つに受信された
ことを示す表示によって起こされる。ステップ158において、ICDは、その
メッセージをAシリーズサーバ100からQSP76へと、QspLRPut()関数を使
用して渡し、その後リターンする。
【0060】 ステップ160において、QSP76は、そのメッセージがコントロールメッ
セージであるかどうかを判断する。もしそうであれば、ステップ164において
QSP76は、局所的にそのコントロールメッセージを処理し、その後、そのメ
ッセージをステップ166においてリリースしてからリターンする。そのメッセ
ージがコントロールメッセージでない場合には、制御はステップ162に渡され
る。ステップ162においてQSP76は、メッセージヘッダ内のRQRから、
どのステーションがそのメッセージを受取るべきかを判断する。次にステップ1
68において、そのメッセージがその適切なステーションに渡される。
【0061】 図9Fに示すように、QSP76またはそのクライアントのうちの1つがメッ
セージバッファを解放すると、ICDのフリーメッセージコールバック関数が呼
出される。ステップ170においてICDは、その解放されたバッファを利用可
能なバッファのリストに加える。物理的接続はその後そのバッファを使用して、
上述のような方法で後続のメッセージを受取ることができる。
【0062】 上述したように、VLAN79は、Aシリーズサーバ100とNTサーバ10
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とがそれら本来の機構を使用して互いに通信することができるように、両
サーバの間に高速かつ待ち時間の短い経路を実装する。
【0063】 VLAN79は、NTサーバ102上のTCPIP.SYS58に対してネッ
トワークドライバインターフェイス仕様(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ラッパーによ
って強制される規則を、修正したものの組に基づく。
【0064】 上述の、共通に所有される出願に示されるように、VLAN79は、実際には
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バイト)。さらに、各セグメントのオーバヘッドがより大きなセグメントに
わたって分散されるので、全体としてのデータのスループットが対応して向上す
る。
【0065】 本発明は、従来のTCPトランスポート層およびより下位の層を、密結合され
た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インター
フェイスのみを変更すればよく、他のすべてのソフトウェアの修正は不要である
【0066】 図10は、1つのMCP環境および1つのNT環境を有するクリアパスHMP
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バイト)での、信
頼性の高いデータ配信を可能にする。
【0067】 本発明に従って従来のTCP/IPプロトコルの代わりに上述のHIFを介し
て通信するのに使用される、本発明のVTL/MSSプロトコルについて、以下
のセクションで説明する。メッセージ通信サブシステム(「MSS」)の説明か
ら始めて、最後に「仮想」トランスポート層(VTL)について説明する。
【0068】 I. メッセージ通信サブシステム(「MSS」) メッセージ通信サブシステム(「MSS」)は、VTLまたは他のトランスポ
ート層プロトコル(「MSSユーザ」)によって従来のTCP/IPプロトコル
の代わりに使用され、異なるメッセージ通信モデル(プルモデルおよびプッシュ
モデル)ならびにさまざまなサービスをそのユーザに提供する、システムの、相
互接続とは独立したメッセージ通信システムである。図10に示すように、MS
Sは、どのようなネットワークで使用するのにも好適な、汎用メッセージ通信ア
ーキテクチャである。概して、MSSは、現時点におけるネットワークプロバイ
ダ(たとえば、TCP/IPおよびBNAネットワークプロバイダ)の、MCP
12のネットワークプロセッサへのI/Oインターフェイスと同様であるが、こ
のMSSは、複数のシステムプラットフォームおよびシステム相互接続パラダイ
ムにわたって同じインターフェイスを使用することができるようにする、実際の
I/Oインターフェイスからのある抽象化レベルを提供する。以下の説明から当
業者には理解されるように、MSSは、TCP/IPプロトコルとは異なって、
そのユーザに、信頼性の高いデータ配信を保証する。このユーザの一例が、次の
セクションで詳細に説明する、仮想トランスポート層(「VTL」)である。
【0069】 概して、MSSは、好ましい実施例においては、システムプラットフォームア
ーキテクチャによって提供されるシステムの相互接続にわたる、NT VTLコ
ンポーネント94とMCP VTLコンポーネント90との間の、ダイアログの
開始、データ転送およびダイアログの終了を担当する。MSSは、クライアント
・サーバ間で複数のデータダイアログを提供し、プラットフォームまたはシステ
ムの相互接続とは独立した特徴および特異性を、MSS「ユーザ」から隠す。M
SSは、これらのサービスを行なうためにそのユーザに対して手続き的インター
フェイス(コールバックを含む)を提示する。
【0070】 すべてのシステム相互接続がMSS「ユーザ」に対して同じインターフェイス
を提示するので、MSSが原因でまたは相互接続における変化が原因で、MCP
VTLコンポーネント90またはNT VTLコンポーネント94を変更する
必要はない。しかし、MSSインターフェイスが「プルモデル」および「プッシ
ュモデル」の両方を提供するので、異なる環境におけるコンポーネントは、環境
に固有の理由のために、配信のために異なる意味規則を使用したいと願う場合も
あり得る。
【0071】 TCPの代わりにVTL(「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によって、通知される。
【0072】 ユーザによる初期化に続いて、MSSは、遠隔の相補的な環境において実行す
る、その相手方すべてとの通信を初期化する。これは、MCP MSS92がア
クティブであるすべてのNT MSS96との通信を初期化せねばならないこと
を意味する。MSSはまた、遠隔環境から入ってくるメッセージ、および(出て
いくデータ要求とともに伝送される)出ていくコントロール情報に対して、ある
量のメモリを割当てかつリザーブする。この領域は、環境(MCP対NT)によ
って、また、各システムの相互接続パラダイム(たとえば図6、7、8またはC
IA)によって、異なるであろう。
【0073】 次に、MSSの動作を、以下の4つの主要領域において説明する。(1)リモ
ート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ユーザが、データ転送を最適化するために、デ
ータをコントロールメッセージ転送とは別に転送することができるようにする。
【0074】 A.リモートMSSユーザ管理 MSSは、そのローカルユーザに対して、リモートユーザのステータス変化を
知らせる役割を果たす。リモートユーザのステータスは、「利用可能」または「
利用不可能」のいずれかとしてのみ区別される。MSSは、そのローカルユーザ
のうちの1つにとって関心のあるリモートユーザにおいてステータス変化を検出
するたびに、そのユーザ全員にUser-Change-Notificationを提供する。この通知
は、そのリモートユーザの現時点におけるステータスを示す。「利用可能」が表
示されるときは、MSSは、そのリモートユーザが位置する環境と、MSSユー
ザ同士を接続するMSSコントロールダイアログと、そのリモートユーザのタイ
プ(たとえば、NT VTLコンポーネント94、MCP VTLコンポーネン
ト90)とを特定する。これに応答して、MSSユーザは、その表示されたMS
Sダイアログに対して、自身の局所参照値を提供する。MSSは、この局所参照
値を、同じコントロールダイアログ上の他のどのオペレーションにおいても含め
る。
【0075】 MSSは、リモートユーザのステータスの「利用不可能」への変化や、ダイア
ログ上に発生したエラーを検出した場合にも、User-Change-Notificationを提供
する。リモートユーザが利用不可能であることが知らされると、対応するMSS
ダイアログはもはや使用することができなくなる。ダイアログが「利用不可能」
となれば、そのダイアログ上で実行されていた機能は機能しなくなり、誤った結
果をコールした側に返す。このダイアログは、「利用可能」を示すUser-Change-
NotificationがMSSユーザに対して提示されると、再び使用することができる
ようになる。
【0076】 B.エンドポイントダイアログ管理 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によって得られた情報を必要とする。この情報
は、コントロールダイアログ(または他の適用可能な機構)を介して、同位のユ
ーザに通信される。
【0077】 Create-Endpoint-Dialogを行なうために、MSSユーザは、ダイアログが構築
されるべき相手方であるリモート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を待たねばならない。
【0078】 通常、MSS_Endpoint_Dialogは、PENDING_OPEN、OPEN、NOT_READY、REMOTE
_CLOSEDおよびCLOSEDの、5つの状態を有する。PENDING_OPENは、ローカル環
境がMSS_Endpoint_Dialogの作成をうまく完了したが、遠隔環境が対応するオ
ープンを開始していないかまたはそのオープンが完全に終了していないことを示
す。このダイアログ上でデータを送受信することはできない。OPENは、MSS_End
point_Dialogがアクティブであって使用準備ができていることを示す。このダ
イアログ上ではデータを送受信することが可能である。NOT_READYは、このダイ
アログがフロー制御状態にあることを示す。このダイアログ上ではデータの送信
はできないが、受信することは可能である。REMOTE_CLOSEDダイアログは、閉じ
るまたは無効化するプロセス中にある。遠隔環境はこのダイアログを閉じ終え、
ユーザはそのクローズについて通知されている。このダイアログについては、M
SS内ではデータは未だ利用可能であるが、このダイアログを使用して新しいデ
ータを送信することはできない。最後に、CLOSEDは、このダイアログが閉じて、
このダイアログを介してデータを送受信することができないことを示す。
【0079】 MSS_Endpoint_Dialogは、Close_Endpoint_DialogまたはDestroy_Endpoin
t_Dialogオペレーションを行なうことによって終了される。Close_Endpoint_
Dialogオペレーションが行なわれる場合、同位のMSSユーザ同士がこのオペレ
ーションを個別に行ない、それらは互いに、遠隔クローズ表示によって遠隔側の
クローズを通知される。ローカルMSSユーザがクローズした後は、リモートユ
ーザはそのダイアログ上でデータを送信することはできないが、リモートユーザ
は、そのダイアログの遠隔側を自身が閉じるまでは、そのダイアログ上の待ち行
列に入れられた入力データを検索することができる。Destroy_Endpoint_Dialo
gオペレーションが行なわれる場合には、リモートユーザは直ちに、そのダイア
ログが「CLOSED」となったことを知らされ、待っているデータはすべて廃棄され
る。
【0080】 C.コントロールメッセージ転送 コントロールメッセージ転送機能は、MSSユーザが互いにコントロールメッ
セージを転送することができるようにする。コントロールメッセージの内容は、
MSSに対して完全にトランスペアレントである。MSSユーザは、Send-Contr
ol-Messageオペレーションを開始することによって、コントロールメッセージ転
送を開始する。コールする側は、メッセージを送信するのに使用するMSSダイ
アログと、そのメッセージの長さと、そのメッセージの始めをポイントするポイ
ンタとを特定する。対象となるMSSダイアログはコントロールダイアログでな
くてもよい。なぜなら、コントロールメッセージはMSS_Endpoint_Dialogを介
して送信することができるためである。MSS_Endpoint_Dialogを介して送信す
る場合、コントロールメッセージは、同じダイアログ上で送信される他のデータ
メッセージとともに、順に配信される。同位のMSSコンポーネントは、Receiv
e-Control-MessageによってMSSユーザに対してコントロールメッセージを配
信し、到着したMSSダイアログデータのためのMSSユーザの参照値と、その
データの長さと、そのデータに対するポインタとを提供する。コントロールメッ
セージは、連続したメモリ領域で、(MSS内におよびそれから)送信および配
信されねばならない。
【0081】 D.データ転送 データ転送機能は、MSSユーザが、効率的にデータを転送することができる
ようにする。MSSは、バイトストリーム指向のデータ転送およびメッセージ指
向のデータ転送の両方をサポートする。MSSユーザは、MSS_Endpoint_Dialo
gのメッセージ指向のオプションを設定する(または設定しない)ことによって
、オペレーションのモードを選択する。MSSは、MSS_Endpoint_Dialogの両
側が、メッセージ指向の同じオプション値を使用することを要求する。MSSユ
ーザはまた、データがローカル環境に到達したときにMSSが使用すべき、デー
タ配信のモードを選択せねばならない。
【0082】 MSSデータ転送には、以下に示すオペレーションが、MSSによって使用さ
れる。
【0083】 Deliver-Dataオペレーションは、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表示を提供
する。
【0084】 Deliver-Data-Completeオペレーションは、MSSユーザに対して、先に開始
されたDeliver-Dataオペレーションが完了したことを表示する。この表示は、受
信側の環境における処理とは独立して発生し得る。これは、同位のMSSユーザ
がそのデータを受信したことを示すものではなく、単に、ローカルMSSコンポ
ーネントがその処理を完了したことを示し、配信を保証する(ダイアログの失敗
を防ぐ)ものである。MSSユーザには、MSSがその対応するDeliver-Dataオ
ペレーションにおいて提供した、(MSSに対して)トランスペアレントな参照
値が提供される。
【0085】 Accept-Dataオペレーションは、受信側のMSSユーザがAuto-Data-Delivery
ダイアログオプションを選択した場合に同位のMSSユーザによって開始される
Deliver-Dataリクエストを完了する結果として行なわれる動作である。このリク
エストは常に、MSSからMSSユーザに対するバッファの所有権の受渡しを含
むので、このオペレーションには私用バッファの変形例は存在しない。MSSユ
ーザは、その処理を完了した後に、MSSに対して、対応するAccept-Data-Comp
lete通知を提供する。
【0086】 Accept-Data-Completeオペレーションは、MSSに対して、先に開始されたAc
cept-Dataオペレーションが完了したことを示す表示を提供する。MSSには、
その対応するAccept-DataオペレーションにおいてMSSによって提供された(
MSSユーザに対して)トランスペアレントな参照値が提供される。
【0087】 Data-Notificationオペレーションは、MSSユーザに対してデータが利用可
能であることを示す、MSSによって提供される表示である。これは、MSSユ
ーザがAuto-Data-Deliveryダイアログオプションを選択しなかった場合に、同位
のMSSユーザによるDeliver-DataリクエストをMSSが完了する結果として生
じる。MSSは、どれだけのデータが利用可能であるかを表示するが、この動作
においてはデータの転送やバッファの所有権の転送は行なわれない。
【0088】 Retrieve-Dataオペレーションは、(先に、Data-Notificationによって表示さ
れた)MSSからのデータを取出すよう、MSSユーザによって発せられるリク
エストである。MSSユーザは、MSSがその中にデータをコピーすべきバッフ
ァを、最大データ長表示とともに、提供する。Retrieve-Dataオペレーションの
結果、Retrieve-Dataリクエストにおいて要求されるデータ量および、先に表示
されたデータのステータスに応じて、MSS I/Oバッファの部分的な内容、
1または複数のMSS I/Oバッファの内容全体、または、それらの組合せか
らなるデータが転送され得る。メッセージ指向のダイアログについて、MSSが
単一のRetrieve-Dataオペレーションで転送するのは、最大でも1つの完全なメ
ッセージのみである。特定された最大データ長が、次に利用可能なメッセージの
長さよりも短い場合には、そのメッセージは打切られて、そのメッセージの残り
の部分は廃棄される。このステータスは、MSSユーザに戻される。
【0089】 E.異なる相互接続上のMSS 上述のように、MSSは、種々の相互接続アーキテクチャに応じて異なる。上
述の相互接続パラダイムの各々に対するMSSを、以下に説明する。
【0090】 1.QSP相互接続 通常、図11に示すように、MSSは、相互接続アーキテクチャ(HSDC)
インターフェイス上のプロトコルとして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
ユーザを判断する。
【0091】 QSPベースの相互接続については、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はその後、その単一領域に対する書込みを開始する。大きなデータを転
送する場合には、複数のバッファ間で分割して行なわれ得る。
【0092】 これに対し、図12の下半分に示すように、共用バッファのDeliver-Dataリク
エストを処理する場合には、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をその受信バッファプールに戻す。
【0093】 この環境におけるMCP入力を、図13に示す。図示されるように、正常な条
件下では、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がその制御下に
戻されるのを待ち(バッファは転送がうまく行った場合に解放される)、その後
、その事象を完了通知として使用する。
【0094】 2.エミュレーション相互接続 図8に示すエミュレーション相互接続の実施例は、MCP MSS92コンポ
ーネントが、ネイティブのNTコード内に直接(すなわち、NT MSSコンポ
ーネント96内に直接)、手続き呼出しを行なうことができる機能に基づいてい
る。NT MSSコンポーネント96は、これらの手続き呼出しにおいて提供さ
れるMCPメモリスペースバッファに、直接アクセスすることができる。これら
のバッファは、MSSコンポーネント92および96の間で受渡されるユーザデ
ータおよびコントロールメッセージの双方のために使用される。
【0095】 MSSダイアログは、簡単なデータ構造(コントロールダイアログ情報ブロッ
ク(Control Dialog Info Blocks)およびエンドポイントダイアログ情報ブロッ
ク(Endpoint Dialog Info Blocks))によって、MCP MSS92コンポー
ネントおよびMSS−NT96コンポーネント内に維持される。MCP MSS
のダイアログ情報ブロックとMSS−NTのダイアログ情報ブロックとの間には
、1対1の対応がある。さらに、以下のMSS−NTルーチンが、MCP MS
S92によってユーザ呼出し可能である。
【0096】 1.MSS_NT_Rcv_Msgは、MCP環境からNT環境にメッセージを配信する
のに使用される。MCP MSS92は、該当するフィールドを「コントロール
情報バッファ」203内に集め、これがMSS NT手続きにおいて渡される。
MCP MSS92は、MSS−NT96に直接アクセスすることができる。
【0097】 2.MSS_NT_Notify_Inputは、NT環境からメッセージを取出すのに、MC
P環境によって使用される。MSS_NT_Notify_Inputは、実際には出力を返すこ
とはなく、単に、入力が利用可能であることと、それがどのMSSダイアログ上
で利用可能なのかを示す。MSS_NT_Notify_Inputは、メッセージが利用可能に
なるか、何らかのエラー条件が検出されるまで、返信されることはない。
【0098】 3.MSS_NT_Retrieve_Inputは、先にMSS_NT_Notify_Inputによって表示
されたメッセージをNT環境から取出すのに、MCP環境によって使用される。
MCP MSS92は、MSS MCP入力バッファ206またはMSSユーザ
バッファ208を提供し、その中に、MSS−NT96が配信されるべきメッセ
ージを入れる。
【0099】 この環境におけるMCP出力を、図14にまとめて示す。Deliver-Dataリクエ
ストのいずれかの変形例(私用バッファ、共用バッファ)の処理時に、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リクエストが発せられる。
【0100】 この環境におけるMCP環境の入力を、図15にまとめて示す。正常な条件下
では、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オペレーションを開始するときに処理が始まる。
【0101】 3.CIA相互接続 上述のように、相互接続はまた、上述の関連出願に説明された種類のCIAで
もあり得る。CIAベースの実現例のMSSは、ノードの各対間の通信のために
1または複数のCIAダイアログを使用し、MSSの観点からは、実際のシステ
ム環境とはかかわりなく、共用されないメモリモデルである。したがって、MS
S入出力バッファは、MCP環境とNT環境のいずれにも存在し、MSSはCI
Aを使用して、それらバッファ間でメモリの内容を移動および変換する。CIA
環境においては、MSSは、CIAノード間でバッファプール、プールマネージ
ャおよびダイアログを作成する、CIAクライアント(ユーザ)である。これは
、MSSユーザによって使用される、「プルモデル」および「プッシュモデル」
の双方を提示する。この環境におけるMCP出力を、図16にまとめて示す。
【0102】 図16に示すように、正常な条件下では、両方のMSSコンポーネント(MC
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をその
受信バッファプールに戻す。
【0103】 この環境におけるMCP入力を、図17にまとめて示す。図示するように、正
常な条件下では、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リクエストを発行する。
【0104】 F.MSSの初期化、終了、および回復 1.初期化 図18に示すように、MSSの初期化は2つのステップで行なわれる。第1の
ステップは、ネットワーキング環境がMSS_initialize()のコールによって開始
されるときに行なわれる。これは、MCP環境においては、初期化時にTCPI
PSUPPORTライブラリから行なわれ、NT環境においては、VTLソフト
ウェアがロードされて(NTブート時に)初期化されたときに行なわれる。第2
のステップは、すべての相補的MSSに対してMSS_HELLOパケットを送信するス
テップである。これは、MCP環境においては、インターフェイスが利用可能と
なってMCP環境によって開始されるときに行なわれるが、NT環境においては
、MSSは、MSS_HELLOが受信されるまで待って、その後、対応のMSS_HELLOパ
ケットで応答する。ユーザが新しいユーザが利用可能であると通知されたときに
最初に行なわねばならないのは、その新しいリモートユーザと挨拶することであ
る。
【0105】 2.回復 MSSによって付与されるこのあるレベルの抽象化の利点の1つは、MSSユ
ーザが遠隔環境における回復の管理について心配する必要がないことである。M
SSが回復を扱い、そのユーザに対してリモート「ユーザ」環境における変化を
すべて通知する。MSSは、システム相互接続によって異なる論理を有するが、
これは、各システム相互接続が、その領域において、異なる通知および手続きを
提供するためである。
【0106】 3.終了 MSSは、最後のユーザが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は、他方の
環境が終了または故障したと判断する別の方法を有し得る。
【0107】 G.MSS上のデータ伝送 MSSは、ユーザが遠隔の環境およびユーザに対して情報を送信するのに、バ
イトストリームおよび、信頼性の高いメッセージ指向のインターフェイスの、両
方を提供する。MSSはまた、受信側の環境において2つの異なる通知機構を備
える。すなわち、MSSがユーザに対して、データが読出に利用可能であること
を通知するか(「プル」モデル)、または、MSSが、新しいデータを受入れる
ためにユーザ規定の手続きを自動的に呼出すか(「プッシュ」モデル)、のいず
れかである。このように抽象化層が付加されることによって、ネットワークプロ
バイダは、TCP/IPプロトコルに存在するような、基礎となるI/Oの制約
および特異性について心配する必要がなくなる。この情報は、正しい順序で遠隔
環境へと配信されるが、性能上の理由またはシステム相互接続の限度によっては
、システム相互接続にわたって分割されることもあり得る。
【0108】 図20は、遠隔環境へのデータ配信の両方のモデルを示す。図20の上半分は
「プル」モデルを示す。このモデルでは、リモートMSSユーザが、MSS_Endpo
int_Dialog上でデータが利用可能であることを示す通知を受信し、MSSユー
ザがそのデータを、MSSから取出さねばならない。図20の下半分は「プッシ
ュ」モデルを示す。このモデルでは、遠隔MSSが、データをMSSユーザに配
信するために予め規定されたユーザルーチンを呼出す。リモートMSSユーザは
、データバッファの処理を終了したときに、それをMSSに通知せねばならない
【0109】 メッセージベースではないダイアログ上では、MSS_Deliver_Dataに渡される
各バッファは、システム相互接続を介して転送するために、複数のMSS_DATAパ
ケットに分割され得る。この分割は、システムの相互接続モジュール(HIF)
に依存する。遠隔MSSはデータをまとめ直すことはしない。それらのデータを
1つのメッセージにまとめるのは、MSSユーザである。これに対し、メッセー
ジベースのダイアログ上では、MSSはデータを分割することはできず、システ
ム相互接続がそのデータメッセージのサイズを処理することができない場合には
、エラーを戻す。
【0110】 1.MSSエンドポイントダイアログ MSS_Endpoint_Dialogは、(一方がMCP環境内で実行し、他方がNT環境
内で実行する)相補的なユーザ間の協調型手続きによって作成される。図21は
、MSSの観点からの開始プロセスを示す。図21に示すように、ユーザのMSS
_Endpoint_Dialogは、以下の手続きに従って構築される。
【0111】 1.MSSのあるユーザが、そのローカルMSSに対して、MSS_Create_End
point_Dialogのコールを開始する。ローカルMSSはそのパラメータを検証し
、もし有効であれば、ローカルダイアログテーブル内にエントリを作成して、そ
のコールにおいて特定されたリモートMSSに対して、MSS_CREATE_DIALOGパ
ケットを送信する。新しく作成されたローカルダイアログ識別子は、ユーザに戻
される。
【0112】 2.リモートMSSは、MSS_CREATE_DIALOGにおいて渡されたパラメータを
検証し、有効であれば、そのローカルダイアログテーブル内にエントリを作成す
る。新しいダイアログのIDは、MSS_CREATE_RESPONSEパケットを介して、開
始側のMSSに戻される。パラメータまたはローカルエントリの作成のいずれか
に問題がある場合には、MSS_ERRORパケットが開始側のMSSに戻される。この
情報は、ローカルユーザがダイアログを開こうと試みたときに、ローカルユーザ
に戻される。
【0113】 3.新しく作成されたローカルダイアログのIDは、開始側のユーザ(図の左
側のライン)から遠隔ユーザ(右側のライン)へと、何らかの外部機構を介して
渡される。このようなメカニズムの1つに、コントロールダイアログ上のMSS_S
end_Control_Msgインターフェイスがある。
【0114】 4.遠隔環境内のユーザは、MSS_Open_Endpoint_DialogによってMSSを
呼出し、それが開始側のユーザから受取ったダイアログのIDを渡す。ローカル
MSSはこのダイアログが有効であることを検証し、エラーが生じなかった場合
には、オリジナルの開始側MSS(MSS_Create_Endpoint_Dialogを行なった
側)にMSS_OPEN_DIALOGパケットを送信する。そのダイアログ上で先にエラー
が生じていた場合(またはそのダイアログが作成されなかった場合)には、この
エラーはここで、コールした側のユーザに戻される。
【0115】 5.開始側のMSSは、MSS_OPEN_DIALOGを受取ると、ダイアログを開いてM
SS_OPEN_RESPONSEを返し、そのローカルユーザに対して、そのダイアログがデ
ータに対して今や利用可能であることを、Dialog_Change_Notification(AVAI
LABLE)によって通知する。
【0116】 6.遠隔MSSは、MSS_OPEN_RESPONSEを受信すると、そのローカルユーザ
に対してDialog_Change_Indication(AVAILABLE)を通知することによって、
オープンダイアログシナリオを完了する。
【0117】 7.これにより、そのダイアログをデータ転送に使用することができるように
なる。
【0118】 MSSデータダイアログは、相補的なユーザ間で協調型の手続きを介して終了
される。それらはまた、環境障害の結果としても終了され得る。図22は、MS
Sの観点からの終了プロセスを図示する。図22に示すように、MSS_Endpoint
_Dialogの正常なクローズは以下のように行なわれる。
【0119】 1.MSSユーザが、あるMSS_Endpoint_Dialogに対するMSS_Close_Endpo
int_Dialogをコールする。ローカルMSSが、MSS_CLOSE_DIALOGパケットを
作成して、リモートMSSに送る。ローカルMSSはまた、ローカルユーザに対
して、そのダイアログがもはや使用できないことを(Dialog_Change_Notifica
tionを通じて)通知する。
【0120】 2.リモートMSSが、MSS_CLOSE_DIALOGを受取り、リモートユーザがその
ダイアログを閉じたことを、Dialog_Change_Notification(REMOTE_CLOSED)
のコールによって、そのローカルユーザに通知する。そのダイアログ上で読出さ
れるのを待っているデータはすべて、ローカルユーザが検索するのに未だ利用可
能である。しかし、ローカルユーザは、このダイアログ上でデータをそれ以上送
信することはできない。ローカルMSSは、MSS_CLOSE_RESPONSEパケットを送
信して、それがクローズパケットを処理し終わったことを知らせる。
【0121】 3.そのしばらく後に、ローカルユーザがMSS_Close_Endpoint_Dialogをコ
ールする(まだ読出されていない未処理のデータは廃棄される)。ローカルMS
SはMSS_CLOSE_DIALOGを生成し、それを(応答する)リモートMSSに送信す
る。ローカルMSSはまた、ローカルMSSに対してDialog_Change_Notifica
tion(UNAVAILABLE)を生成する。
【0122】 MSS_Endpoint_Dialogは、ユーザのうち1人によって破壊することも可能で
ある。図23はそのような異常終了処理を示し、これは以下のステップを含む。
【0123】 1.MSSユーザが、MSS_Destroy_Endpoint_Dialogをコールする。ローカ
ルMSSは、そのダイアログ上で待っているすべてのデータを廃棄し、MSS_DES
TROY_DIALOGパケットをリモートMSSに送信する。これはまた、ローカルユー
ザに対して、そのダイアログがもはや利用できないことを(Dialog_Change_No
tification(UNAVAILABLE)によって)通知する。
【0124】 2.遠隔MSSが、MSS_DESTROY_DIALOGパケットを受取って、そのローカル
ユーザに対して、そのダイアログがもはや利用できないことを(Dialog_Change
_Notification(UNAVAILABLE)によって)通知し、まだ読出されていないすべ
てのデータを廃棄する。これは、この側においては暗黙のクローズである。
【0125】 2.MSSコントロールダイアログ MSSはまた、相補的なユーザ間でコントロールメッセージを配信するための
、遠隔環境への経路を提供する。MSSユーザは、このコントロール経路(コン
トロールダイアログ)を介して、または他のMSSダイアログを介して、コント
ロールメッセージを送信したいと望むかもしれない。この経路は、上述のデータ
経路と同様のものであるが、あるダイアログオプションが予め設定されている(
データは自動的にユーザに配信され、ダイアログはメッセージ指向であって、宛
先MSSはこのメッセージをユーザに提示するために別のバッファにコピーせね
ばならない)。
【0126】 H.MSSデータ構造 MSSにおいて宣言されるすべての変数はすべてのシステム相互接続に対して
グローバルなものであるため、MSSには内部データはない。MSSは、リモー
ト環境で実行されるMSSの他のインスタンスとMSSパケットの交換によって
通信する。これらのパケットはMSS環境間での制御およびユーザデータの両方
の転送と、MSS制御情報の転送とに使用される。それらはMSSコマンドヘッ
ダと、その直後にあるヘッダおよび実データとからなる。2つのMSS間の転送
を行うたびに、少なくともコマンド部分が使用される。
【0127】
【数1】
【0128】 フィールドとは下記のものである。 p_version:MSSインターフェイスのバージョン。
【0129】 p_command:MSSコマンド p_seq_num:このパケットのシーケンス番号。これは各対のMSS間に独特な
ものであり、MSS_HELLOパケットにおいて特定された番号から開始し、パケット
が送信されるたびに1だけインクリメントされる。
【0130】 p_src_dialogid:このパケットに関するソースMSSダイアログid。 p_dst_dialogid:このパケットに関する宛先MSSダイアログid。宛先シス
テム相互接続アドレスは、宛先環境で受信されたときにパケットに存在するシス
テム相互接続ヘッダにある。
【0131】 p_cmd_ptr:このパケットに存在するすべてのコマンドパラメータに対するポ
インタ。
【0132】 p_cmd_len:このMSSパケットに存在するMSSコマンドパラメータ情報の
長さ。
【0133】 p_hdr_len:このMSSパケットに存在するユーザヘッダ情報の長さ。 p_data_len:このMSSパケットに存在するユーザデータ情報の長さ。
【0134】 p_flags:このパケットに関するビット情報 p_local_endpoint:システム相互接続アドレスにおけるローカルエンドポイ
ントでありデータの配信に有用である。このフィールドは、MSS_DATAおよびMSS
_CONTROL_DATAメッセージに対してのみ有効である。
【0135】 p_msg_ptr:実データに対するポインタ。 これらのパケットのデータ部分はメッセージとして維持される。MSS_MESSAGE
およびデータブロック構造は下記のフォーマットを有する。
【0136】
【数2】
【0137】 環境の中には、各メッセージが1つのデータブロックしか持たないことという
制約を強制し得るものもある(これは特に外に出ていくデータについて当てはま
る)。しかしながら、入来データについては、MSSはシステムの相互接続上の
制約のために1つまたは2つ以上のデータブロックにメッセージを分割する必要
があるだろう。
【0138】 I.MSコマンドセット 以下に、(種々の環境で動作する)他のMSSに対してデータを通信および転
送するためにMSSが使用するコマンドおよびパケット構造について説明する。
各コマンドは、それがセットするMSSパケットのフィールドを表わすだけであ
ろう。他のフィールドはすべて0に初期化される。パケットのシーケンス番号は
、MSS_HELLOコマンドは例外であるが、次の有効なシーケンス番号である。すべ
ての場合において、MSSの送信側エンドポイントにはp_src_dialogidがセッ
トされ、p_dst_dialogidは宛先ダイアログidである。
【0139】 コマンド(たとえばMSS_CREATE_DIALOG)では、ローカルパラメータ(local
_が前に付加される)はローカル環境(コマンドが発行された環境)を意味する
。リモートパラメータ(remote_が前に付加される)はリモート環境(ダイアロ
グ生成のための対応する環境)を意味する。応答については逆のことが言える。
ローカルパラメータはリモート環境(命令が発行された環境)を意味し、リモー
トパラメータはローカル環境(応答を生成する環境)を意味する。たとえば、す
べての応答が生成される場合には、MSSはローカルではなくリモート属性を書
入れる。
【0140】 MSS_HELLOは、ローカルMSSが初期化を終了したときにすべてのリモートM
SSと挨拶をするためにローカルMSSが使用する。これは、この環境のMSS
に関するローカル情報をリモート環境に送る。リモートMSSはそれらの情報を
持つMSS_HELLOパケットによって応答する。
【0141】 p_version=このMSSがサポートする最高レベル。 p_command=MSS_HELLO; p_seq_num=通常は1である開始シーケンス番号 p_cmd_len=sizeof (mss_hello_params)
【0142】
【数3】
【0143】 このコマンドで送られたエンドポイントは、MSSのこのインスタンスとの通
信に使用するリモートMSSに関するシステム相互接続アドレスを特定する。た
とえば、図6の相互接続実装例では、これらはQSPヘッダに使用されるRQR
(リモートキューリファレンス)に相当する。これらは通常、その対応のホスト
プロセスによるスタブの初期化で交換される。
【0144】 各リモート環境のMSS_HELLO応答が受信されると、このリモート環境が使用で
きる状態にあることを示すUSER_DIALOG_NOTIFICATIONがMSSの各ユーザに送
信される。
【0145】 MSS_GOODBYEは、それが終了することをすべてのリモートMSSに知らせるの
にローカルMSSによって使用される。リモート環境はこのコマンドに応答しな
い。リモート環境がMSS_GOODBYEコマンドを受信すると、このリモート環境を持
つすべてのMSS_Endpoint_Dialogsが無効化され(ユーザにはDIALOG_CHANGE_
NOTIFICAIONによって通知される)、その後制御ダイアログが無効化される。こ
れにより、この環境がもはやアクティブではないことを示すUSER_CHANGE_NOTI
FICATIONがMSSの各ユーザに送信される。
【0146】 MSS_CREATE_DIALOGは、(MSS_Create_Endpoint_Dialogからの)ローカル
生成パラメータをリモートMSSに通信するために使用される。パラメータは構
造体MSS_create_paramsを使用することにより転送される。
【0147】
【数4】
【0148】 リモート環境がこのコマンドを受信すると、それは送信元の制御ダイアログ(c
tl_dialog_id)に関連した環境に送られたパラメータに基づいてダイアログエ
ンドポイントを生成する。local_addressはこのダイアログのために使用される
こととなる、システムの相互接続に依存するアドレスである。うまくいった場合
、それはMSS_CREATE_RESPONSEにおいて新規に作成されたエンドポイントに関
する情報を返す。うまくいかない場合にはMSS_ERRORを返す。
【0149】 MSS_CREATE_RESPONSEはMSS_CREATE_DIALOGプリミティブに応答するために
使用される。それは、エンドポイントがうまく生成されたことを示す。この情報
はローカルダイアログテーブルにストアされる。
【0150】
【数5】
【0151】 応答においては、remote_dialog_idはリモート環境における新規に作成され
たエンドポイントである。Remote_addressはリモート環境と通信するために使
用される、システムの相互接続に依存するアドレスである。
【0152】 MSS_OPEN_DIALOGは先に生成されたエンドポイントをオープンするために使
用される(エンドポイントはリモート環境で生成され、ダイアログidは制御ダイ
アログなどの何らかの他の手段によってこの環境に送られている)。
【0153】
【数6】
【0154】 リモート環境がこのコマンドを受信すると、それはダイアログをオープンする
。うまくいった場合、それはMSS_OPEN_RESPONSEを返し、エラーがあった場合
にはMSS_ERRORを返す。
【0155】 MSS_OPEN_RESPONSEはMSS_OPEN_DIALOGコマンドに応答するために使用され
る。それはオープンの状態を返す。
【0156】
【数7】
【0157】 MSS_CLOSE_DIALOGは(ユーザがMSS_Close_Endpoint_Dialogを呼出した結
果として)ダイアログをクローズするために使用される。うまくいった場合には
MSS_CLOSE_RESPONSEを返し、エラーがあった場合にはMSS_ERRORを返す。
【0158】
【数8】
【0159】 MSS_CLOSE_RESPONSEはMSS_CLOSE_DIALOGコマンドに応答するために使用さ
れる。それはクローズの状態を返す。
【0160】
【数9】
【0161】 MSS_DESTROY_DIALOGは(ユーザがMSS_Destroy_Endpoint_Dialogを呼出し
た結果として)ダイアログをクローズし、データを無効化するために使用される
。うまくいった場合にはMSS_DESTROY_RESPONSEを返し、エラーがあった場合に
はMSS_ERRORを返す。
【0162】
【数10】
【0163】 MSS_DESTROY_RESPONSEはMSS_DESTROY_DISLOGコマンドに応答するために使
用される。それは無効化の状態を返す。
【0164】
【数11】
【0165】 MSS_ERRORは1つのMSS環境から発信元のMSS環境にエラー応答が戻され
ることを示すために使用される。応答には、不当なコマンドとともにmss_resul
tエラーコードが含まれる。
【0166】
【数12】
【0167】 MSSは、現在のコマンドのうちどれが失敗したかを決定し、かつerror_cod
eを呼出し側ユーザに返すためにこれを使用し得る。
【0168】 MSS_DATAは1つのMSS環境から別のものにバイトストリームデータを転送
するために使用される。メッセージのデータ部分はコマンドヘッダにおいて特定
されたダイアログidに対する待ち行列に入れられることとなるユーザデータであ
る。
【0169】
【数13】
【0170】 データはMSS_DATAパケットヘッダに後続する。受信時に、MSSは、パケッ
トにおいて特定されたダイアログに対する待ち行列にデータを入れることとなる
【0171】 MSS_CONTROL_DATAは1つのMSS環境から別のものに制御情報を転送するた
めに使用される。それは、ユーザデータの代わりに制御情報を含むことを除いて
は、MSS_DATAパケットと同一である。ユーザはユーザヘッダとして制御情報を
送信する。
【0172】
【数14】
【0173】 MSS_HEARTBEATは任意のリモート環境/MSSの状態をチェックするために使
用される。ハートビートは、予め定められた期間(たとえば10秒)内にリモー
トMSSから新規メッセージが送信されていない場合に送信される。長期間(た
とえば5分)にわたってハートビートが受信されない場合、制御ダイアログには
UNAVAILABLEがマークされ、その制御ダイアログを介するすべてのダ
イアログが終了する。AVAILABLE制御ダイアログにMSS_HEARTBEATが受
信される場合、リモート環境/MSSは依然として通信状態にあり、すべての非
アクティブ時間がリセットされる。一方、MSS_HEARTBEATがUNAVAILAB
LE制御ダイアログに受信される場合、それは無視される。
【0174】 J.MSSユーザ手順 本章では、リモートMSSによって通信ダイアログなどを確立するためにMS
Sのユーザが呼出し得る手順について説明する。次章で説明するが、VTLとは
発明の好ましい実施例におけるMSSユーザである。
【0175】 MSS_Initializeは、MSSとそのユーザとの間のインターフェイスを初期化
するルーチンである。それはプラットフォームに特有の初期化ルーチンから呼び
出され、すべての構造(テーブル空間、ヘッダ)を初期化する責任を負う。
【0176】
【数15】
【0177】 MSS_Terminateは、ユーザとMSSとの間のインターフェイスを終了する手順
である。この手順によりすべてのダイアログ(異常終了)が無効化され、リモー
ト環境にそれが通知されることとなる。MSS_Endpoint_Dialogsに対する処理が
まず行なわれ、その後制御ダイアログに対するものが続く。これがMSSの最後
のユーザである場合、MSSはすべての構造を終了させ解放する。
【0178】
【数16】
【0179】 MSS_RESET_REMOTE_USERは、ユーザとリモートユーザのMSSとの間のイン
ターフェイスを終了させる手順である。まだクローズされていないダイアログが
ある場合、この手順によりそのようなダイアログがすべて無効化され(異常終了
)、そのことがリモート環境に通知される。MSS_Endpoint_Dialogsに対する処
理がまず行われ、その後制御ダイアログに対する処理が行なわれる。次いで、制
御ダイアログが(自動再初期化またはこの手順)によって再確立される。これは
1人のユーザに関するMSS_terminate()およびMSS_initialize()に等しい。
【0180】
【数17】
【0181】 MSS_Create_Endpoint_Dialogは、ローカル環境におけるMSS_Endpoint_Di
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変更通知による通知が
行なわれる。
【0182】
【数18】
【0183】 MSS_Open_Endpoint_Dialogは、先に生成されている(リモート環境からの
)MSS_Endpoint_Dialogをオープンする手順である。Local_user_reference
、options、message_offsetはMSS_Create_Endpoint_Dialog()と同じ意味を
持つ。うまく完了すると、ダイアログはまだPENDING_OPENである。他の側がオ
ープンを確認すると、MSS_Endpoint_Dialog変更通知がユーザに送信されるこ
ととなる。
【0184】
【数19】
【0185】 MSS_Close_Endpoint_Dialogは、MSS_Endpoint_Dialogのクローズを開始
する手順である。ダイアログに対する待ち行列に依然として入れられているリモ
ート環境からの入来データはすべて消去される。リモート環境において待ち行列
に入れられた外に出ていくデータはすべて依然としてリモート環境で(NO_DATA
_AVAILABLEがMSSによって返されるまで)取出され得る。ローカルダイアロ
グが直ちにクローズされ、DIALOG_NOT_OPENによって後の動作すべてがリター
ンする。一旦クローズされるとリモートダイアログはこれ以上データを送信する
ことができず、REMOTE_CLOSEDの状態を持つDIALOG_CHANGE_INDICATIONを受信
する。リモートダイアログが一旦クローズされると、データが除去される。
【0186】
【数20】
【0187】 MSS_Destroy_Endpoint_DialogはMSS_Endpoint_Dialogをクローズしかつ
無効化する手順である。両環境において待ち行列に入れられたすべてのデータが
自動的に消去される(MSSによる後のデータ取出ではNO_DATA_AVAILABLEが
返される)。ローカルダイアログが直ちにクローズされ、DIALOG_NOT_OPENに
よって後の動作がすべてリターンする。リモートダイアログはCLOSEDの状態を持
つDAILOG_CHANGE_INDICAITONを受信する。リモートダイアログは一旦クローズ
されるとそれ以上データを送信することができない。
【0188】
【数21】
【0189】 MSS_Send_Control_Msgは、あるMSSユーザから別のMSSユーザにダイ
アログを介して制御メッセージを送信する手順である。制御メッセージは制御ダ
イアログまたはMSS_Endpoint_Dialogのいずれかによって送信され得る。OUT_
OF_RESOURCESが返された場合には、プラットフォームが非常に深刻な状態にあ
りフロー制御されていること(制御メッセージの方がデータメッセージよりも優
位であること)を意味する。MSS_UNAVAILABLEが返された場合には、リモート環
境がシステム相互接続ともはや通信していないことを示す。SUCCESSが返
された場合には、ダイアログがアクティブであり、この制御ダイアログによって
データが送受信され得ることを示す。それはまた、リモートユーザがアクティブ
でありMSS_Endpoint_Dialogがリモート環境によって生成され得ることも示す
【0190】
【数22】
【0191】 MSS_Deliver_Dataは、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()を呼出すことによりこのことを示すこととなる。
【0192】
【数23】
【0193】
【数24】
【0194】 MSS_Retrieve_Data_Msgは、MSSからのメッセージを取出すためにユーザ
によって呼出される手順である。このコマンドにはプライベート版しかない(デ
ータはユーザのバッファにコピーされる)。返信時に、MSSはユーザのポイン
タにコピーされたデータの長さを返す。ポインタはデータの始めにセットされる
(変化なし)。MESSAGE_ORIENTEDがセットされ待ち行列の先頭におけるメッセ
ージのデータすべてがユーザのバッファに転送できなかった場合、データは切り
捨てられMESSAGE_TRUNCATEDが返される。MSS_Header_Length=0である場合に
は、この手順はデータをコピーするだけでありヘッダは破棄されることとなる。
Max_Data_Length=0である場合には、この手順はヘッダをコピーするだけであ
り、データは後の呼出しに備えて保持されることとなる。Message_Offset(こ
のダイアログの生成/オープンからのもの)は、データのコピーを希望するバッ
ファの場所へのポインタをユーザが渡すため、これは当てはまらない。ユーザは
message_offsetに関するこのポインタを既に調節しているものとする。
【0195】
【数25】
【0196】
【数26】
【0197】
【数27】
【0198】 MSS_Receive_Messageは、MSSパケットがシステムの相互接続からうまく
送られたときにシステムの相互接続に依存するモジュールによって呼出されるル
ーチンである。MSSパケットはMSSユーザに配送されることとなる。システ
ムの相互接続は既にI/Oバッファを上述のMSS_MESSAGE構造に変換している。
MSSパケットはMSSによって所有されるようになる。このルーチンによって
もまた、内容に応じてメッセージの構造が変化し得る[データからのヘッダを取
出す]。
【0199】
【数28】
【0200】
【数29】
【0201】 MSS_Accept_Data_Completeは、データをうまく処理し終えたことを確認す
るためにMSSユーザが呼出す手順である。バッファの所有がMSSに返される
。バッファは例外なく返される。
【0202】
【数30】
【0203】 MSS_Event_Handlerは、システムの相互接続に依存するモジュールが、ある
イベントがシステムの環境に起こったことをMSSに知らせるために呼出すルー
チンである。
【0204】
【数31】
【0205】 MSS_Control_Msg_Handlerは、MSS_Receive_Message()が、ダイアログ管
理およびフロー制御プリミティブなどのMSS間制御情報を扱うために呼出すル
ーチンである。
【0206】
【数32】
【0207】
【数33】
【0208】
【数34】
【0209】
【数35】
【0210】 K.MSSダイアログ確立 上述のとおり、MSSは、上記関連出願に記載されている、QSPベースのC
NPプラットフォームを介するインターフェイス、エミュレートされたインター
フェイス、またはCIAインターフェイスを使用する。NT MSSインターフ
ェイスは、NT環境においてMSSを実装するのに必要なすべてのNT特有機能
に対する責任を負うNTサーバ102上にロードされたドライバである。これは
図6から図8に示される。一般的には、MSS-NTインターフェイスはCNP QS
P76およびLDM82と通信するのに必要な構造すべてを規定する必要がある
。それは上述のMCP MSSに対して相補的なアクションをとる。
【0211】 図24(a)から図24(f)は、発明に従う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に送信される。
【0212】 図24(b)に示されるように、ステップ310においてダイアログメッセー
ジがリモート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において応答メッセージが相互接続を
介してイニシエート側のシステムに返される。
【0213】 図24(c)に示されるように、ステップ326で応答メッセージが到着し、
その有効性がステップ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状態のまま維持される
【0214】 図24(d)に示されるように、MSSユーザがステップ340においてダイ
アログのオープンを要求すると、ステップ342においてメッセージのダイアロ
グが既に生成されているかどうかが判断される。そうでなければエラーコードが
返される。さもなければステップ344において、ダイアログが既にオープンさ
れているかどうかが判断される。そうであれば、要求されたダイアログが既にオ
ープンな状態であることを示すエラーコードがMSSユーザに返される。さもな
ければ、ダイアログテーブルにおけるローカルおよびリモートIDがストアされ
、ステップ346でMSS_OPEN_DIALOGメッセージがフォーマット化され、ステ
ップ348で相互接続を介して送信される。
【0215】 図24(e)に示されるように、ステップ350でMSS_OPEN_DIALOGメッセ
ージが受信されると、その有効性がステップ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で相互接続を介して、近くに結
合された他のシステムに伝送される。
【0216】 図24(f)に示されるように、MSS_OPEN_RESPONSEメッセージがステップ
368で受信されると、その有効性がステップ370でチェックされ、無効であ
る場合にはMSS_ERRORパケットがステップ372で送信者に返される。要求され
たダイアログがステップ374でダイアログテーブルに見られない場合には、ス
テップ376でMSS_ERRORパケットが送信側に返される。さもなければダイアロ
グにはステップ378で「OPEN」とマークが付けられ、MSSユーザには、
要求されたダイアログがオープンであることがステップ380で通知される。M
SSはこのときデータ転送ができる状態である。
【0217】 図25(a)および図25(b)は、発明のMSSダイアログを用いて相互接
続を介してMSSユーザからデータを出力するための手順を示す。図25(a)
に示されるように、MSSユーザはまず、ステップ400でデータの伝送を要求
する。その後ステップ402で、要求されたダイアログが有効でありかつオープ
ンであるかどうかが判断される。そうでない場合にはエラーコードが返される。
さもなければ、ステップ404において、オープンされたダイアログが私用のも
のであるかまたは共有のデータバッファであるかどうかが判断される。データバ
ッファが私有のものである場合、ステップ406において、その制御ヘッダとと
もに伝送されることとなるデータのサイズを持つバッファが得られるかどうかが
判断される。そのようなバッファが利用可能でない場合、MSSユーザにリソー
スエラーが返される。さもなければ、ステップ408において、ユーザおよびM
SSヘッダが、ユーザデータとともにプライベートデータバッファにフォーマッ
ト化される。その後、ステップ412で相互接続を介して1つのバッファを送信
する前に、ステップ410において適当なメッセージがダイアログの「進行中」
リストに付加される。一方、データバッファが共有のものである場合、ステップ
414において、制御ヘッダのサイズであるバッファが得られ得るかどうかが判
断される。そのようなバッファが利用可能でない場合、リソースエラーがMSS
ユーザに返される。さもなければ、ステップ416において制御ヘッダが共有デ
ータバッファにフォーマット化される。その後、ステップ420において相互接
続を介して制御データおよびユーザデータバッファを送信する前に、ステップ4
18においてダイアログの「進行中」リストに適当なメッセージが付加される。
【0218】 データバッファが公共または私有のものであるかにかかわらず、ステップ42
2(図25(b))においてMSSには、送信/出力要求が完了したことが相互
接続を介して通知され、ユーザデータが送信されると、ステップ424において
ダイアログの進行中リストからデータバッファが除去される。その後、ステップ
426においてMSSユーザには、そのバッファの送信がこれで完了したことが
通知される。
【0219】 図26(a)および図26(b)は、発明のMSSを用いて相互接続からMS
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ユーザがデータバッファに対する処理を終え、
データバッファが解放され得る状態であることが示されるのを待機する。
【0220】 図26(b)は、入力データをユーザに与えるためにMSSが行なう処理を示
す。ステップ522に示されるように、ユーザは、MSSが所定量のデータを、
ユーザの宛先アプリケーションがアクセス可能なデータバッファにコピーするこ
とを要求する。ステップ524においてMSS_Endpoint_Dialogが有効化され、
データが転送用待ち行列に入れられていることを確認する(図26(a))。有
効化が失敗するとエラーコードが返され、さもなければステップ526において
、ユーザが要求したものと同量の最初に待ち行列に入れられたメッセージがユー
ザのデータバッファにコピーされる。ステップ528においてMSS_Endpoint_D
ialogメッセージが完全に検索されたと判断されると、ステップ530でメッセ
ージが待ち行列から外されて解放され、処理がステップ532で終わる。一方、
検索される入力データがまだある場合、ステップ534において、現在のメッセ
ージにおけるすべてのデータがコピーされているかどうかが判断される。そうで
あれば、ステップ536においてメッセージが待ち行列から外されて解放され、
処理がステップ538で終わる。しかしながら、コピーされることとなる入力メ
ッセージにまだデータがある場合、待ち行列から外されたデータはステップ54
0で更新され、そのデータが検索されていないことを表わす。その後処理がステ
ップ542で終わる。
【0221】 図27(a)から図27(c)は、発明に従って生成されたMSS_Endpoint_D
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
で相互接続を介して送信される。
【0222】 さらに、図27(c)に示されるように、MSS_CLOSE_RESPONSEメッセージが
ステップ628で受信されると、その有効性がステップ630でチェックされ、
無効である場合にはMSS_ERRORパケットがステップ632で送信者に返される。
要求されたダイアログがステップ634でダイアログテーブルに見付からない場
合には、MSS_ERRORパケットがステップ636で送信者に返される。さもなけれ
ばダイアログテーブルのエントリがステップ638でクリーンアップされる。
【0223】 当業者には、発明のMSSダイアログがトランスポートレイヤにおける多数の
MSSユーザによって利用され得ることが認められるであろう。しかしながら、
発明の好ましい実施例において、図に例示するように、MSSは、次章で説明す
るタイプのバーチャルトランスポートレイヤ(「VTL」)プロトコルによって
呼出される。
【0224】 II.バーチャルトランスポートレイヤ(「VTL」) 本章では、VTLの機能および動作を説明し、さらには、前章Iで詳述したユ
ーザおよびMSSに対するその相互作用について説明する。VTLの説明は主に
3つの領域に分けて進めていく。すなわち、(1)ダイアログの確立、(2)デ
ータ転送、および(3)ダイアログの終了である。MSSとそのユーザとの間の
相互作用はすべて手順呼出しによって行なわれ、すなわち、MSSが上記MSS
ユーザ手順を呼出し、この逆についても同じである。
【0225】 以下の説明から明らかとなるように、VTLは宛先に到達しリアセンブルされ
るためにはデータに付加される必要があるヘッダの量を最小限にする、信頼性の
高いコネクション指向トランスポートレイヤプロトコルを実装する。特に、ここ
で説明したメッセージ技術を採用して生成されるデータダイアログにより、各デ
ータブロックに対してアドレスデータを付与する必要性がなくなり、また、デー
タブロックをはるかに大きくできる。発明の技術の他の利点は以下の説明から明
らかとなるであろう。
【0226】 A.VTLの初期化、リカバリおよび停止 VTL-NTおよびVTL-MCP環境は、他のいずれの環境からも独立して初期化、(正
規の態様での)停止または障害を発生する。しかしながら、プラットフォームに
よっては、すべてのアクションが独立することは不可能である。たとえば、エミ
ュレートされたプラットフォームでは、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
の再起動なくして再初期化することはできない。
【0227】 1.初期化 ネットワークのアプリケーションに対してトランスペアレントであるためには
、VTLは何らかの適当なネットワーク化API要求をインターセプトできるよ
うに配置される必要がある。明らかに、この機構はVTLが存在する特定のシス
テム環境に依存する。好ましい実施例では、VTL NT94はTCPIP.S
YSドライバ58の上にフィルタドライバとしてそれ自体を挿入することにより
これを達成し、VTL MCP90は、MCP TCP/IPトランスポートプ
ロバイダ実装と密に結合されることによりこれを達成する。
【0228】 上述のとおり、リモート環境におけるそれに相当するものとの通信を確立し、
かつリモートMSSユーザおよび環境の利用可能性についてそのローカルユーザ
に情報を与えることはMSSの責任である。NT VTLコンポーネント94の
利用可能性が知らされると、MCP VTLコンポーネント90はNT VTL
コンポーネント94とのハンドシェイクを開始して、さらなる処理が起こるよう
にする責任を負う。それぞれのVTLコンポーネント間のハンドシェイクにより
、2つのコンポーネント間の互換性が確認され、不可欠な初期化データの交換が
行なわれる。
【0229】 2.リカバリ 「リカバリ」とは、リモート環境との通信が不意に失われた時に行なわれる処
理である。MSSはリモートMSSユーザが利用できないことを検知し、このよ
うな事象を(User-Change-Notification手続きによって)ローカルMSSユーザ
に知らせる責任を負う。この通知を受信すると、MCP VTLコンポーネント
90およびNT VTLコンポーネント94はリモート環境が失われたことに対
して適当な処理を行なう。特に、残ったVTLコンポーネントは、利用できない
同位コンポーネント上のそれ自身との間のすべてのVTLダイアログをクリーン
アップすることにより同位VTLコンポーネントが失われたことに対処する。こ
れには、十分に確立されたダイアログ、確立プロセスにあるダイアログ、および
終了プロセスにあるダイアログが含まれる。
【0230】 3.停止(正規の) NT環境の停止時にはMCP VTLコンポーネント90またはNT VTL
コンポーネント94のいずれかによって行なわれる特別な処理はない。NT V
TLコンポーネント94はたとえば、それが停止することをMCP VTLコン
ポーネント90に知らせない。その代わりに、所望の結果を達成するために他の
リカバリ処理に依存する。あるVTLコンポーネントが停止すると、その同位の
コンポーネントには、適用可能な各MSSダイアログが利用できなくなくなった
ことが通知され、上記リカバリ処理が行なわれる。
【0231】 B.TCPダイアログ確立 本章では、いずれのタイプのオープン動作(受動的オープン対能動的オープン
)に基づくVTLを使用するTCPダイアログ確立が、発明の技術に従ってVT
LによってMCP環境で開始されるかについて説明する。
【0232】 1.バーチャルトランスポート確立 図28(a)は、発明に従うバーチャルトランスポートレイヤTCP確立を示
す。図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で知らされる。結
合システムはこの場合、相互接続を介してオープン接続によって通信し得る。
【0233】 図28(b)はオープン要求を受信する結合システム側で行なわれるオープン
要求処理を示す。図示されるように、オープン要求はステップ724で結合シス
テムから受信され、ステップ726では、オープン要求が受信システムの受動的
リストエントリと一致するかどうかが判断される。そうでなければ、失敗を示す
応答がステップ728で返される。しかしながら、オープン要求が受動的リスト
エントリと一致する場合、ステップ730で受動的オープンが通常のネットワー
クトランスポートから取消され、MSSエンドポイントダイアログがステップ7
32でオープンされる。オープン要求がうまく処理されたことを示す応答がステ
ップ734で戻され、ステップ736で要求側アプリケーションに「成功」表示
が返される。
【0234】 図29は、発明に従うMCP環境受動的オープンの処理を示す。示されるよう
に、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に
発行し、オープン処理を完了する。
【0235】 図30は、発明に従うMCT環境能動的オープンの処理を示す。示されるよう
に、APIに依存する機構を除いては、このシナリオにおける処理はたった今述
べたMCP環境受動的オープンの場合と対称的である。
【0236】 2.VTLデータ転送 背景知識として、LIO/ポートインターフェイスといったユニシス独自のA
PIモデルを使用するMCP環境アプリケーションへの入力については、アプリ
ケーション供給バッファにすべてのアプリケーションデータを入れておく必要が
あることに留意されたい。出力は、制御をアプリケーションに戻した後に参照で
きないアプリケーションにより供給されたバッファにおけるネットワーク化ソフ
トウェアに与えられる。好ましいMCP環境TCP/IP実装例では、これには
、アプリケーションバッファとネットワーク化ソフトウェア制御バッファとの間
のすべての入出力アプリケーションメッセージをコピーする必要がある。さらに
、ユニシス独自のAPIモデル協調型(Coop)サービスインターフェイスによっ
て与えられる重要な局面のうちの1つは、アプリケーションとネットワークトラ
ンスポートとの間のバッファの共有であることに留意すべきである。この機能に
より、上記タイプのLIO/ポートインターフェイスを用いる際に必要なデータ
コピーがいらなくなる。
【0237】 これもまた背景知識としてではあるが、TDI出力はCoopインターフェイスと
同様に機能し、TDIクライアントによって供給されたバッファ領域は、TDI
クライアント98に出力(送信)動作が完了したことが通知されるまでトランス
ポートによって所有される。この完了の通知は、NTトランスポートがI/O動
作を終えたときにNT I/Oサブシステムからクライアント供給手順に、直接
呼出しにより行なわれる。TDIでは、TCP入力が(TDIクライアント98
の制御下で)下記の方法のいずれかによって行なわれ得る。
【0238】 1.TDIクライアント98には、入力が利用可能であることが通知され得る
。この通知はTDIプロバイダからTDIクライアント98への手順呼出しによ
って行なわれる。通知を受信すると、TDIクライアント98は下記の動作のう
ち1つを行ない得る。すなわちa)必要に応じて、コピーを含む、入力を受け入
れること、b)その中にTDIプロバイダが適量のデータをコピーするTDIク
ライアントバッファをTDIプロバイダに与えること、またはc)上記以外の動
作、である。TDIクライアントのアクションはリターンパラメータ値によって
示される。TCPデータについては、クライアントがアクションc)を示す場合
、ある時点で他の機構のうちの1つを呼出す必要がある。
【0239】 2.TDIクライアント98は非同期受信動作を呼出し、中にトランスポート
が入力データをコピーするバッファを提供し得る。TDIクライアント98には
受信動作が完了したことが通知される。「非ブロック」受信動作はTDIに規定
されるが、TCP/IPの実装は「非ブロック」セマンティクスをサポートする
ものとは思われない(すなわち、受信が呼出されたときにデータが存在しない場
合、適当な結果により受信を直ちに完了すること)。
【0240】 図31は発明に従うVTLデータ転送を示す。図31の左側には出力が示され
、図31の右側には入力が示される。簡単にするために、図31ではLIO/ポ
ートAPIの使用しか示していない。Coop APIを検討するにあたっては、MSS
出力バッファ808として使用され得るアプリケーション出力バッファ800の
共有と、Coopアプリケーションに直接送信され得るMSS入力バッファ806の
共有とを考慮する必要がある。
【0241】 図31に示されるように、アプリケーション出力バッファ800はCoopインタ
ーフェイスに対する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は、フロー制御機能の責任を負い、他のコンポーネント
に対するデータ移動を管理する。
【0242】 図32は、発明に従うVTLデータ転送処理を示す。図32に示されるように
、アプリケーションはステップ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において呼出し側アプリケーションに返される。
【0243】 図33は、MCP環境からの出力データに関する通常のVTLデータ転送処理
を示す。上部分にはLIO/ポートAPIを用いるMCP環境出力が示され、下
部分にはCoopインターフェイスを使用する出力が示される。NT環境処理は使用
中のMCP環境APIからは独立している。
【0244】 LIO/ポートアプリケーション802については、MCP VTLコンポー
ネント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アプリケーションに返す。
【0245】 MCP環境からのDeliver-Data要求を処理した結果、NT MSS96は1つ
または2つ以上のAccept-Data要求をNT VTLコンポーネント94に発行す
る。Accept-Data要求の数は元のデータの受信に要するバッファMSS96の数
に依存する。各Accept-Data要求には、後に説明するが、NT VTLコンポー
ネント94からの対応のAccept-Data-Complete通知が必要である。
【0246】 Accept-Data要求の処理を行なうNT VTLコンポーネント94は、同位T
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はバッファのリサイクルを含む、実装に依存し
たアクションを行なう。
【0247】 図34ではVTLデータ入力をフロー図で要約する。上部分にはLIO/ポー
トAPI802を用いるMCP環境入力が示され、下部分にはCoopインターフェ
イスを用いる入力が示される。NT環境処理は使用中のMCP環境APIからは
独立する。
【0248】 図34に示されるように、MCP環境入力は同位TDIクライアントによって
開始される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送信動作の完了を通知する。
【0249】 NT環境からのDeliver-Data要求を処理した結果、MCP MSS92は、元
のデータを受信するのに要求されるバッファMSS96の数に依存する1つまた
はそれ以上のAccept-DataまたはData-NotificationsをMCP VTLコンポー
ネント90に発行する。
【0250】 MSS96からのData-Notificationsを処理した結果、LIO/ポートにInpu
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/ポートにリターンする。
【0251】 Accept-Data要求を受信すると、MCP VTLコンポーネント90はData-In
dicationを介して入力データをCoopアプリケーションに転送する。Coopアプリケ
ーションは後のある時点でMCP VTLコンポーネント90を呼出しバッファ
の所有権を返す。MCP VTLコンポーネント90はAccept-Data動作が完了
したことをMCP MSS92に通知する。
【0252】 3.正規のTCPダイアログ終了 図35(a)は、発明に従うバーチャルトランスポートレイヤ接続の終了を示
す。示されるように、アプリケーションは、ステップ900において切断を要求
し、ステップ902でMSSエンドポイントダイアログの結合システムにクロー
ズ要求を発行する。ステップ904において、要求側アプリケーションはクロー
ズ応答および結合システムからのクローズ要求の受信を待機する。クローズ応答
およびクローズ要求の受信時に、ステップ906でMSSエンドポイントダイア
ログはクローズされ、クローズの完了がステップ908で要求側アプリケーショ
ンに示される。
【0253】 図35(b)はクローズ要求を受信するシステムによって行なわれるクローズ
要求処理を示す。示されるように、クローズ要求がステップ910で受信され、
対応のアプリケーションには相互接続用の適当なAPIによってステップ912
で通知される。クローズ要求の受信がステップ914で記録され、クローズ応答
がステップ916で要求側アプリケーションに発行される。VTL接続がその後
クローズされる。
【0254】 MCP環境が開始する、正規のダイアログ終了の通常処理が図36に示される
。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はダイアログ終了の要求に先立っ
てさらなる出力動作を行ない得る。
【0255】 NT VTLコンポーネント94は、規則正しい終了要求の処理時に、クロー
ズ(規則正しい)要求を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の側をク
ローズする。
【0256】 MCP VTLコンポーネント90からのClose-Responseの処理時に、NT
VTLコンポーネント94はTDIクライアント98に、その終了要求がうまく
完了したこと(TDI-Disconnect-Complete)を通知し、MSSを呼出して対応のEn
dpoint-Dialogをクローズする。各VTLコンポーネントには、MSS_Endpoint_D
ialogがクローズされたときに個別に通知が行なわれる。この通知により、リソ
ースの解放を含む最終的な処理がトリガされる。実際のタイミングに応じて、ロ
ーカル側がクローズを要求する前にリモート側によってMSS_Endpoint_Dialog
がクローズされたことをMSSはVTLコンポーネントに知らせる。
【0257】 上で説明を簡単にするために考慮にいれなかったことは、正規のダイアログ終
了時に生じるデータの流れである。フロー制御により、アプリケーションが正規
の終了を要求する際に出力データが処理中である場合がある。終了要求のセマン
ティクスによると、このデータは、終了プロセスの完了前に適切に配送されねば
ならない。同様に、入力データもClose-Requestの受信時に処理中である場合が
ある。通常のネットワーク化APIにより、正規のダイアログ終了が進行中であ
るときにアプリケーションがこのデータを取出すことができるようになる。何ら
かのVTL実装により、これらのシナリオを適切に取扱う必要がある。
【0258】 4.異常TCPダイアログ終了 NT環境によって開始するダイアログ異常終了の通常の処理が図37に示され
る。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コンポーネントに知らせる。
【0259】 上では説明を簡単にするために下記のいくつかの重要な事項が記載されておら
ず、すべてのVTL実装例はこれらのシナリオを適切に取扱うべきである。
【0260】 (1) 処理中のデータフロー:正規の終了に関して述べたとおり、ダイアロ
グ異常終了が開始するときにデータが処理中であるかもしれない。しかしながら
、正規の終了とは異なり、処理中のデータはダイアログ異常終了の一部として破
棄されてもよい。
【0261】 (2) 部分的に確立されたダイアログ:異常終了はダイアログ確立時の任意
の時点で開始してもよい。さらに (3) 正規の終了のオーバーライド:異常終了は規則正しいダイアログ終了
のいかなる時点で開始してもよい。
【0262】 C.VTLプロトコル ユニシスのClearPath HMP NXエンタープライズサーバについて上で説明した発
明の好ましい実施例では、VTLプロトコルがMCPコンポーネントの性能を最
適化するよう設計される(NTコンポーネントの性能は劣化するかもしれない)
。このために、フィールドコンテナのサイズとアライメントとは、MCP環境の
操作上好ましいものとなるよう選択される。
【0263】 1.共通VTLデータ構造 本章ではVTLプロトコルに使用されるデータ構造を説明する。
【0264】 String−Structure 文字列は下記のフォーマットで送信される。
【0265】 フィールド:String-Length データ型:符号なし整数 長さ:2バイト 説明:後続するString−Valueフィールドのバイト数を特定する フィールド:String-Value データ型:文字の配列 長さ:String-Lengthフィールドによって特定される 説明:文字列の値IP-Address-Structure IPアドレスがフォーマット化されるIPバージョンは下記のとおりである。
【0266】 フィールド:IP-Version データ型:符号なし整数 長さ:1バイト 説明:このIPアドレスがフォーマット化されたIP-Versionを特定する フィールド:Pad データ型:使用せず 長さ:1バイト 説明:このフィールドは、このデータ構造のMCP環境の解釈に好適なフィー
ルドのバイト配列を維持するために使用される。
【0267】 フィールド:IP-Address データ型:1バイト、符号なし整数の配列 長さ:IP-Versionが4である場合、長さは4バイト 説明:IPアドレス 2.VTLコントロールメッセージインターフェイス すべての制御メッセージは、その始まりの部分に下記のヘッダを含む。
【0268】 VTL制御メッセージヘッダ フィールド:Interface-Level データ型:符号なし整数 長さ:2バイト 説明:このメッセージが含むインターフェイスレベルを特定する。
【0269】 フィールド:Message-Class データ型:符号なし整数 長さ:2バイト 値:REQUEST=1; RESPONSE=2; NOTIFICATION=3 説明:このメッセージに関するクラスを特定する。REQUESTにはアクシ
ョンに関するリクエストが含まれる。RESPONSEはREQUESTの処理
の完了結果である。NOTIFICATIONにより、求めていない情報が与え
られる。
【0270】 フィールド:Message-Type データ型:符号なし整数 長さ:2バイト 値:要求/応答について:HANDSHAKE; OPEN-CONNECTION;CLOSE-CONNECTION; O
PEN-CONNEVTION-ABORT 通知について: 説明:クラスによりメッセージの型を特定し、一意の識別をすべてのメッセー
ジに付与する。REQUESTに対するRESPONSEには対応の要求と同じ
Message-Typeが含まれる。
【0271】 フィールド:Message-Length データ型:符号なし整数 長さ:6バイト 説明:このメッセージ(ヘッダを含む)のバイトで表わした長さ フィールド:Request-Reference データ型:符号なし整数 長さ:6バイト 説明:要求では、対応の応答で返信されることとなる、要求者が特定した値。
その値は、要求者を除くすべてのモジュールに対して完全にトランスペアレント
である。通知では、その値は無関係であるが、すべて0に設定される必要がある
【0272】 フィールド:Requester-Connection-Reference データ型:符号なし整数 長さ:6バイト 説明:個々の接続に使用可能なメッセージでは、このフィールドには、その接
続に関する要求者が割当てた基準値が含まれる。要求側VTLコンポーネントは
、応答側VTLコンポーネントに、そのOPEN-CONNECTION要求におけるこの値を
与える。メッセージが特定の接続に使用されない場合にはその値はすべて0でな
ければならない。
【0273】 フィールド:Responder-Connection-Reference データ型:符号なし整数 長さ:6バイト 説明:個々の接続に使用可能なメッセージでは、このフィールドには、その接
続に関する応答者が割当てた基準値が含まれる。応答側VTLコンポーネントは
、そのOPEN-CONNECTION応答におけるこの値を、要求側VTLコンポーネントに
与える。メッセージが特定の接続に使用されない場合、その値はすべて0でなけ
ればならない。また、OPEN-CONNECTIONおよびOPEN-CONNECTION-ABORT要求の両方
において、その値は0でなければならない。なぜなら、要求側VTLコンポーネ
ントはこの時点では応答者が割当てた値を認識していないからである。
【0274】 フィールド:Status データ型:符号なし整数 長さ:4バイト 説明:応答メッセージでは、要求された動作に関する応答/エラーコードを与
える。他のすべてのメッセージクラスに関しては、この値はすべて0でなければ
ならない。
【0275】 フィールド:Pad データ型:使用せず 長さ:2バイト 説明:このフィールドは、このヘッダに後続するフィールドのMCP環境解釈
に好適なフィールドのバイト配列を維持するために使用される。
【0276】 Close-Connection要求/応答 この要求はVTL接続をクローズ(無効化)するために発行される。クローズ
要求およびそれらの結果として生じた応答は例外なくMSS_Endpoint_Dialogsに
対して発行される。制御メッセージヘッダの他に、この要求は下記のフィールド
を含む。
【0277】 フィールド:Close-Type データ型:符号なし整数 長さ:1バイト 値:ORDERLY;ABORTIVE 説明:正規のまたは異常クローズを行なうべきか否かを決める。
【0278】 下記の状態コードのうちいずれかが返されることとなる:STATUS-SUCCESSは要
求がうまく完了したことを示す;STATUS-ALREADY-CLOSEDは対象の接続が既にク
ローズされていることを示す;STATUS-ALREADY-CLOSINGはこのタイプ(正規の/
異常)のクローズ動作が既に開始しているか、または異常クローズが既に進行中
であるときに正規のクローズが要求されたことを示す。これらの応答のうちのい
ずれにも制御メッセージヘッダ以外のフィールドはない。
【0279】 ハンドシェイク要求/応答 この要求はNT VTLコンポーネント94との通信を初期化するためにMC
P VTLコンポーネント90によって発行される。制御メッセージヘッダの他
に、この要求は下記のフィールドを含む。
【0280】 フィールド:MCP-VLAN-IP-Address データ型:IP-Address-Structure 説明:このフィールドは、対象のNT環境に対応するMCP環境のVLAN
IPアドレスをNT VTLコンポーネント94に与えるためにMCP VTL
コンポーネント90によって使用される。
【0281】 フィールド:MCP VTL Version データ型:String-Structure 説明:VTLコンポーネントのバージョン(たとえばソフトウェアレベル)を
特定する列。この値は診断目的としてのみ使用される。下記の状態コードのうち
のいずれかが返され得る:STATUS-SUCCESSはハンドシェイク要求がうまくいった
ことを示し、STATUS-INCOMPATIBLE-INTERFACE-LEVELはNT VTLコンポーネ
ント94が、所定のインターフェイスレベルを理解しないことを示す。STATUS-S
UCCESSが返される場合、下記のフィールドが制御メッセージヘッダの後に存在す
る。
【0282】 フィールド:NT-VLAN-IP-Address データ型:IP-Address-Structure 説明:このフィールドは、MCP VTLコンポーネント90にNT環境のV
LAN IPアドレスを与えるためにNT VTLコンポーネント94によって
使用される。
【0283】 フィールド:NT VTL Version データ型:String Structure 説明:NT VTLコンポーネント94のバージョン(たとえばソフトウェア
レベル)を特定する列。この値は診断目的のためにのみ使用される。
【0284】 STATUS-INCOMPATIBLE-INTERFACE-LEVELが返される場合、制御メッセージのヘ
ッダの後には下記のフィールドが存在する。
【0285】 フィールド:Supported-Interface-Level データ型:符号なし整数 長さ:2バイト 値:応答者によってサポートされる要求者の所定のインターフェイスレベルよ
りも低い最高インターフェイスレベルを示す。MCP VTLコンポーネント9
0はそのインターフェイスレベル以下で別のハンドシェイクを試みることができ
る。
【0286】 Open-Connection要求/応答 この要求は、VTL接続を生成しオープンするために発行される。制御メッセ
ージヘッダに加えて、この要求は下記のフィールドを含む。
【0287】 フィールド:Pad データ型:使用せず 長さ:1バイト 説明:このフィールドは、このデータ構造のフィールドのMCP環境解釈に好
適なフィールドのバイト配列を維持するために使用される。1つまたは2つ以上
のパッドフィールドが含まれ得る。
【0288】 フィールド:Local-Port-Number データ型:符号なし整数 長さ:2バイト 説明:この接続のために使用されることとなるローカルポート番号を特定する
。すべての場合において、0の値が許可され、オープン動作の完了により、ロー
カルポート番号が選択される。
【0289】 フィールド:Remote-Port-Number データ型:符号なし整数 長さ:2バイト 説明:この接続のために使用され得るリモートポート番号を特定する。
【0290】 フィールド:Receive-Credit-Limit データ型:符号なし整数 長さ:4バイト 説明:応答者が最初に利用できる受信クレジット数。
【0291】 フィールド:My-MSS-Dialog-Id データ型:MSS-Dialog-Id 説明:接続とともに使用され得るEndpoint-Dialogに関する要求者のMSSダ
イアログidを特定する。
【0292】 フィールド:Local-IP-Address データ型:IP-Address-Structure 説明:この接続のために使用され得るローカルIPアドレスを特定する。0の
値が許可され、オープン動作の完了により、ローカルIPアドレスが選択される
【0293】 フィールド:Remote-IP-Address データ型:IP-Address-Structure 説明:接続されるリモートシステムを特定する(これは常に応答者のVLAN
IPアドレスとなる)。
【0294】 下記の状態コードのうちのいずれかが返され得る:STATUS-SUCCESSは要求がう
まく完了したことを示す;STATUS-INSUFFICIENT-VTL-RESOURCESは、この要求を
完了するのに要するリソースをVTLが、確保できなかったことを示す;STATUS
-INSUFFICIENT-RESOURCESは、何らかの下位のシステムコンポーネントがこの要
求を完了するのに要するリソースを確保できなかったことを示す;STATUS-CONNE
CTION-REFUSEDはトランスポート接続の試みがリモートシステムによって拒否さ
れたことを示す;STATUS-NETWORK-UNREACHABLEはリモートネットワークがトラン
スポートによって到達できないことを示す;STATUS-HOST-UNREACHABLEはリモー
トシステムがトランスポートによって到達できないことを示す。
【0295】 STATUS-SUCCESSが返される場合、制御メッセージヘッダ(他の応答のうちデー
タフィールドを含むものはない。)の後には下記のフィールドある。
【0296】 フィールド:Local-Port-Number データ型:符号なし整数 長さ:2バイト 説明:この接続に関するローカルポート番号を示す。
【0297】 フィールド:Remote-Port-Number データ型:符号なし整数 長さ:2バイト 説明:この接続に関するリモートポート番号を示す。
【0298】 フィールド:Pad データ型:使用せず 長さ:2バイト 説明:このフィールドはこのデータ構造におけるフィールドのMCP環境解釈
に好適なフィールドのバイトアライメントを維持するために使用される。1つま
たは2つ以上のパッドフィールドが存在し得る。
【0299】 フィールド:Send-Credit-Limit データ型:符号なし整数 長さ:4バイト 説明:要求者が最初に利用できる送信クレジット数。
【0300】 フィールド:Local-IP-Address データ型:IP-Address-Structure 説明:この接続に関するローカルIPアドレスを示す。
【0301】 フィールド:Remote-IP-Address データ型:IP-Address-Structure 説明:この接続に関するリモートIPアドレスを示す。
【0302】 Open-Connection-Abort要求/応答 この要求は、進行中のOpen-Connection動作をアボートするために使用される
。Open-Connection動作は応答環境においては完了済みであるかもしれないが、
要求環境においてはまだ反映されないことに留意されたい。
【0303】 要求では、データフィールドはない(制御メッセージヘッダ以外)。要求がう
まく完了したことを示すSTATUS-SUCCESSだけが返されるだろう。STATUS-SUCCESS
が返される場合、制御メッセージヘッダの後には下記のフィールドがある。
【0304】 フィールド:Open-Completed データ型:BOOLEAN 長さ:1バイト 値:0(=>FALSE) 1(=>TRUE) 説明:応答者の環境において元のOpen-Connectionが完了したかどうかを示す
【0305】 3.データ転送インターフェイス VTLコンポーネント間のデータ転送にはすべてデータ転送ヘッダが含まれる
。MSSが複数断片でのデータ転送を完了する場合、データ転送ヘッダは最初の
断片にしか含まれない。データ転送に関するデータ転送ヘッダには下記のフィー
ルドが含まれる。
【0306】 フィールド:Interface-Level データ型:符号なし整数 長さ:2バイト 説明:このメッセージが含むインターフェイスレベルを特定する。
【0307】 フィールド:Credited-Adjustment データ型:符号付き整数 長さ:4バイト 説明:ピギーバッククレジットの付与または低減を示す。符号(1が負)には
最上位ビットが使用され、残りのビットは付与/低減されたクレジットを示す。
この値は0であろう。
【0308】 フィールド:Sequence-Number データ型:符号なし整数 長さ:4バイト 説明:このデータ転送動作のシーケンス番号−各データ転送動作には、1から
始まり必要に応じてラップアラウンドされる番号が順次付与される。
【0309】 フィールド:Data-Flags データ型:ビットマスク 長さ:2バイト 説明:以下に規定する個々のフラグを含む。
【0310】 ENTIRE-MESSAGE−PUSHフラグの使用へのマッピング。 URGENT-DATA−このデータ転送に緊急のデータが含まれることを示す。
【0311】 当業者には、本発明が各システムの1つのネットワークプロトコルプロバイダ
だけで使用されることに限定されないことが認められるであろう。本発明は各シ
ステム上の多数のネットワークプロトコルプロバイダに対するデータ転送に使用
され得る。さらに当業者には、本発明が2つまたはそれ以上のエンドポイントを
有する相互接続を介する通信を提供することに意図されることが認められるであ
ろう。たとえば、相互接続はLAN、または従来からのネットワークプロトコル
からは独立したいくつかの密に結合されたコンピュータシステムを接続する複数
の相互接続といったネットワークであってもよい。
【0312】 また、発明の広い概念から逸脱することなく上記実施例に変更が施され得るこ
とを理解されたい。たとえば、本発明はAシリーズサーバおよびNTサーバを含
むシステムの場合として説明したが、本発明の方法および装置は同一または異な
ったタイプの密に結合されたいかなるコンピュータシステムに採用されてもよい
ことを理解されたい。さらに、本発明の相互接続は開示した特定の実施例に限定
されない。「相互接続」という用語は第1および第2のコンピュータシステムの
I/Oサブシステム間でデータ転送を行なうための他の方法および装置も包含す
ることが意図される。たとえば、他の実施例ではQSPおよびLANSGコンポ
ーネントの機能が要求されないかもしれない。相互接続装置ドライバ(ICD)
、MSSおよびVTL間にはより直接的なインターフェイスが採用されてもよい
。したがって、本発明は開示した特定的な実施例に限定されるのではなく、前掲
の特許請求の範囲によって規定される発明の精神および範囲内に入るすべての変
形をカバーすることが意図される。
【図面の簡単な説明】
【図1】 ユニシスAシリーズエンタープライズ・サーバによって、ネット
ワーク上の他のホストまたはノードと通信するために用いられる、先行技術のネ
ットワーキングアーキテクチャのコンポーネントを示すブロック図である。
【図2】 ユニシスAシリーズエンタープライズ・サーバがマイクロソフト
ウィンドウズNTを実行するサーバとネットワークを介して通信することができ
るようにする、先行技術の方法を示すブロック図である。
【図3】 2つの密結合されたコンピュータシステムが仮想LANを介して
通信することができるようにする、先行技術の装置を示すブロック図である。
【図4】 図3の先行技術の装置を、相互接続の代替例とともに示すブロッ
ク図である。
【図5】 図3の先行技術の装置を、相互接続の別の代替例とともに示すブ
ロック図である。
【図6】 2つのコンピュータシステムが本発明に従ってVTL/MSSプ
ロトコルを使用して図3の相互接続を介して通信することができるようにする、
本発明の実施例を示すブロック図である。
【図7】 2つのコンピュータシステムが本発明に従ってVTL/MSSプ
ロトコルを使用して図4の相互接続を介して通信することができるようにする、
本発明の実施例を示すブロック図である。
【図8】 2つのコンピュータシステムが本発明に従ってVTL/MSSプ
ロトコルを使用して図5の相互接続を介して通信することができるようにする、
本発明の実施例を示すブロック図である。
【図9A】 図3から図8に示した相互接続の一般的な動作を示すフロー図
の一部である。
【図9B】 図3から図8に示した相互接続の一般的な動作を示すフロー図
の一部である。
【図9C】 図3から図8に示した相互接続の一般的な動作を示すフロー図
の一部である。
【図9D】 図3から図8に示した相互接続の一般的な動作を示すフロー図
の一部である。
【図9E】 図3から図8に示した相互接続の一般的な動作を示すフロー図
の一部である。
【図9F】 図3から図8に示した相互接続の一般的な動作を示すフロー図
の一部である。
【図10】 本発明のVTL/MSS相互接続通信インターフェイスを示す
図である。
【図11】 MSSがQSPv2ダイアログを使用して、MCP/NPSU
PPORTインターフェイスを介して各MSS−NT環境と通信する方法を示す
図である。
【図12】 VTL/MSSを使用したMCP出力のための、QSPベース
の出力データ転送フローを示す図である。
【図13】 VTL/MSSを使用したMCP入力のための、QSPベース
の入力データ転送フローを示す図である。
【図14】 エミュレートされた相互接続の実施例における、VTL/MS
Sを使用したMCP出力データ転送フローを示す図である。
【図15】 エミュレートされた相互接続の実施例における、VTL/MS
Sを使用したMCP入力データ転送フローを示す図である。
【図16】 CIA相互接続の実施例における、VTL/MSSを使用した
MCP出力データ転送フローを示す図である。
【図17】 CIA相互接続の実施例における、VTL/MSSを使用した
MCP入力データ転送フローを示す図である。
【図18】 本発明に従ったMSSの初期化を示す図である。
【図19】 本発明に従ったMSSの終了を示す図である。
【図20】 本発明に従ったMSSデータ転送を示す図である。
【図21】 MSSの観点からの、MSS_Endpoint_Dialog作成プロセスを
示す図である。
【図22】 MSSの観点からの、正常なクローズのためのMSS_Endpoint
_Dialog終了プロセスを示す図である。
【図23】 MSSの観点からの、破壊的なクローズのためのMSS_Endpoin
t_Dialog終了プロセスを示す図である。
【図24A】 本発明に従ったMSS_Endpoint_Dialogの構築を示す図であ
る。
【図24B】 本発明に従ったMSS_Endpoint_Dialogの構築を示す図であ
る。
【図24C】 本発明に従ったMSS_Endpoint_Dialogの構築を示す図であ
る。
【図24D】 本発明に従ったMSS_Endpoint_Dialogの構築を示す図であ
る。
【図24E】 本発明に従ったMSS_Endpoint_Dialogの構築を示す図であ
る。
【図24F】 本発明に従ったMSS_Endpoint_Dialogの構築を示す図であ
る。
【図25A】 本発明のMSSを使用して、相互接続を介してMSSユーザ
からデータを出力するための手続きを示す図である。
【図25B】 本発明のMSSを使用して、相互接続を介してMSSユーザ
からデータを出力するための手続きを示す図である。
【図26A】 本発明のMSSを使用して、相互接続からMSSユーザへと
データを入力するための手続きを示す図である。
【図26B】 本発明のMSSを使用して、相互接続からMSSユーザへと
データを入力するための手続きを示す図である。
【図27A】 本発明に従って作成されたMSS_Endpoint_Dialogのダイア
ログ終了を示す図である。
【図27B】 本発明に従って作成されたMSS_Endpoint_Dialogのダイア
ログ終了を示す図である。
【図27C】 本発明に従って作成されたMSS_Endpoint_Dialogのダイア
ログ終了を示す図である。
【図28A】 本発明に従った、仮想トランスポート層の構築を示す図であ
る。
【図28B】 VTLダイアログオープンリクエスト(Dialog Open Reques
t)を受信する、結合されたシステムによって行なわれる、VTLダイアログオ
ープンリクエストの処理を示す図である。
【図29】 本発明に従った、VTL受動オープン(Passive Opens)のた
めのTCPダイアログ構築フローを示す図である。
【図30】 NT TCP/IPがMCP環境のIPアドレスを知らないた
めに、それらのIPアドレスをNT環境におけるローカルIPアドレスとして使
用することができない場合における、MCP環境からのVTL指令(能動)オー
プン(Directed (Active) Opens)のためのTCPダイアログ構築フローを示す
図である。
【図31】 本発明に従ったVTLデータ転送を示す図である。
【図32】 本発明に従ったVTLデータ転送処理を示す図である。
【図33】 MCP環境からの正常なVTL出力データ転送フローを示す図
である。
【図34】 MCP環境への正常なVTL入力データ転送フローを示す図で
ある。
【図35A】 本発明に従った仮想トランスポート層接続の終了を示す図で
ある。
【図35B】 VTLクローズ(Close)リクエストを受信する、密結合さ
れたシステムによって行なわれる、VTLクローズリクエスト処理を示す図であ
る。
【図36】 本発明に従った、MCP環境によって開始される、正常なVT
Lダイアログ終了のための通常の処理を示す図である。
【図37】 本発明に従った、MCP環境によって開始される、VTLのダ
イアログの異常終了のための通常の処理を示す図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年8月14日(2000.8.14)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケイン,マイケル・ティ アメリカ合衆国、19425−8762 ペンシル バニア州、チェスター・スプリングス、シ ャノン・コート、5210 (72)発明者 サラモン,ギャリー アメリカ合衆国、19380 ペンシルバニア 州、ウェスト・チェスター、ゴーシェン・ ロード、812、ディ・23 (72)発明者 ジェニオン,スーザン アメリカ合衆国、19425 ペンシルバニア 州、チェスター・スプリングス、パイン・ ドライブ、15 (72)発明者 コイン,ロイス・ビィ アメリカ合衆国、19446 ペンシルバニア 州、ランズデイル、ウォーナー・ロード、 2263 Fターム(参考) 5B089 GA02 HB19 KA05 KB01 5K032 AA09 BA04 CA06 CC06 DA06 DB26 5K034 AA02 CC01 DD03 EE11 FF11 HH04 HH13 HH61 KK21 LL01 MM39 NN04 【要約の続き】 構を提示する、システムの、相互接続とは独立したメッ セージ通信トランスポートである。VTLは、MSS接 続を使用して、セッション層への一貫性のある、相互接 続とは独立したインターフェイスを提供する。VTL/ MSSプロトコルは、信頼性の高いデータ配信を行なう かまたは接続が利用できないことを表示する、同種のコ ネクション指向のインターフェイスを提供する。MSS がホストインターフェイスファンクションと直接インタ ーフェイスするので、相互接続が変更されたときに必要 となるのはMSSインターフェイスの変更のみである。

Claims (15)

    【特許請求の範囲】
  1. 【請求項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. 【請求項2】 該第1のコンピュータシステムのI/Oサブシステムと該第
    2のコンピュータシステムのI/Oサブシステムとの間の該相互接続が、データ
    をその上で伝送することのできる、該I/Oサブシステム間の物理的接続を含む
    、請求項1に記載の装置。
  3. 【請求項3】 該相互接続メッセージ通信システムは、該相互接続の通信プ
    ロトコルとは独立した前記汎用トランスポートインターフェイスを提供しかつ該
    相互接続の両側に該相互接続の通信プロトコルに依存するさらなるインターフェ
    イスを提供するメッセージ通信サブシステム(「MSS」)を含み、よって、該
    相互接続が変更されたときには該さらなるインターフェイスの変更のみが必要と
    される、請求項1に記載の装置。
  4. 【請求項4】 該MSSは、前記第1および第2のコンピュータシステムの
    各々上にMSSコンポーネントを含み、各MSSコンポーネントには前記独立し
    たトランスポートインターネットを通じて少なくとも1つのローカルMSSユー
    ザが接続され、該第1のコンピュータシステム上のMSSコンポーネントは該第
    2のコンピュータシステムの各相補的リモートMSSユーザとのダイアログを作
    成する、請求項3に記載の装置。
  5. 【請求項5】 各MSSコンポーネントは、該相互接続を介してアクセス可
    能なすべての相補的リモートMSSユーザについての情報を該ローカルMSSユ
    ーザに知らせる、ローカルMSSユーザのためのダイアログテーブルを構築し、
    かつ、相補的リモートMSSユーザが追加または除去されると前記ダイアログテ
    ーブルを更新するための手段を含む、請求項4に記載の装置。
  6. 【請求項6】 各MSSコンポーネントは、該ローカルMSSユーザが該相
    互接続を介して該相補的リモートMSSユーザとのダイアログを構築し、それに
    ついてのステータスを受信しかつそのダイアログを無効にすることができるよう
    にする、ダイアログ管理機能を行なうための手段を含む、請求項4に記載の装置
  7. 【請求項7】 各MSSコンポーネントは、該ローカルMSSユーザと該相
    補的リモートMSSユーザとが該相互接続の通信プロトコルとは独立した態様で
    コントロールメッセージを互いに受渡しすることができるようにする、コントロ
    ールメッセージ機能を行なうための手段を含む、請求項4に記載の装置。
  8. 【請求項8】 各MSSコンポーネントは、前記ローカルおよびリモートM
    SSユーザ間に構築されたデータダイアログを介して、該ローカルおよび相補的
    リモートMSSユーザ間でデータを転送するための手段を含む、請求項4に記載
    の装置。
  9. 【請求項9】 前記ローカルMSSユーザの1つおよび前記相補的リモート
    MSSユーザの1つは、該第1および第2のネットワークアプリケーションが該
    第1および第2のアプリケーションにトランスペアレントな態様で該相互接続を
    介して互いに通信することができるように前記既知のトランスポート層プロトコ
    ルをシミュレートする、相補的な仮想トランスポート層(「VTL」)コンポー
    ネントである、請求項4に記載の装置。
  10. 【請求項10】 前記相補的なVTLコンポーネントは、該MSSを使用し
    て、前記第1および第2のコンピュータシステム間のトランスポートダイアログ
    の構築、データ転送およびトランスポートダイアログの終了を提供する、請求項
    9に記載の装置。
  11. 【請求項11】 前記VTLコンポーネントはそれぞれ、前記第1および第
    2のネットワークアプリケーションとインターフェイスをとり、前記VTLコン
    ポーネントは、該第1および第2のコンピュータシステム上に、該MSSの独立
    したトランスポートインターフェイスを通じて該MSSに接続される相補的MS
    Sユーザとして実装される、請求項9に記載の装置。
  12. 【請求項12】 各MSSコンポーネントは、該ローカルVTLコンポーネ
    ントおよび該相補的リモートVTLコンポーネントとが、それら相補的なVTL
    コンポーネント同士でダイアログの作成およびオープンを調整するようメッセー
    ジのシーケンスを交換することのできる信頼性の高いコントロールダイアログを
    作成することができるようにする、メッセージ制御機能を行なうための手段を含
    む、請求項11に記載の装置。
  13. 【請求項13】 データが前記第1のネットワークアプリケーションから前
    記第2のネットワークアプリケーションへと前記相互接続を介して転送されると
    き、前記第1のネットワークアプリケーションとインターフェイスする前記VT
    Lコンポーネントが、前記第2のネットワークアプリケーションに転送されるべ
    きデータにVTLデータ転送ヘッダをアペンドしかつ前記オープンされたダイア
    ログ上でデータ転送を開始する、請求項12に記載の装置。
  14. 【請求項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. 【請求項15】 前記第1および第2のアプリケーションの複数対のために
    該相互接続上に複数のダイアログを作成して、アプリケーションの各対が該対を
    なす第1および第2のアプリケーションの該本来のプロトコルに対してトランス
    ペアレントな態様で通信することができるようにするステップと、該対をなすア
    プリケーション間のデータ転送のために使用されるべきダイアログを特定するス
    テップとをさらに含む、請求項14に記載の方法。
JP2000563035A 1998-07-31 1999-07-28 異種コンピュータシステム間の高速通信のための、仮想トランスポート層インターフェイスおよびメッセージ通信サブシステム Pending JP2002521963A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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