(57)【特許請求の範囲】
【請求項１】
リモートとホストとに接続されていて前記リモートから第１のプロトコルで第１のデータを受信するように動作可能で、前記リモート及びホストとは別の装置であるプロトコル・コンバータを備え、
該プロトコル・コンバータは、当該プロトコル・コンバータ上でソフトウエア・プロセスとして各々動作する、前記リモートが設けられているリンク層の第１のプロトコルのサポート機能を提供する第１のファシリティと、複数のユーティリティと、前記ホストが設けられているリンク層の第２のプロトコルのサポート機能を提供する第２のファシリティとを有し、
前記第１のファシリティは第１のデータを前記複数のユーティリティの中の少なくとも一つのユーティリティに伝達するように動作可能であり、前記複数のユーティリティは第１のデータを第２のデータに翻訳するように動作可能であり、また前記第２のファシリティは前記複数のユーティリティの中の少なくとも一つのユーティリティから第２のデータを受信し、第２のデータを前記ホストに第２のプロトコルで伝達するように動作可能であり、
前記複数のユーティリティの中の各ユーティリティは、入力データを出力データに翻訳するように動作可能なソフトウエア・プロセスであり、前記複数のユーティリティは、第１のデータを受信する最初の一つのユーティリティと、該最初の一つのユーティリティから出力されたデータを受信する少なくとも一つのユーティリティと、第２のデータを出力する最後の一つのユーティリティとを含み、第１のデータを、前記複数のユーティリティを介した複数の一連の翻訳によって、第２のデータに翻訳する
ことを特徴とする通信システム。
【請求項２】
請求項１記載の通信システムにおいて、前記複数のユーティリティは、
前記第１のファシリティから第１のデータを受信して第１のデータを第３のデータに翻訳するように動作可能な第１のユーティリティと、
前記第１のユーティリティから第３のデータを受信して第３のデータを第２のデータに翻訳するように動作可能な第２のユーティリティと
を含み、
前記プロトコル・コンバータは、第３のデータを受信して第３のデータを第４のデータに翻訳するように動作可能な少なくとも一つの他のユーティリティを更に含む
ことを特徴とする前記通信システム。
【請求項３】
請求項１記載の通信システムにおいて、前記プロトコル・コンバータは、前記リモートとホストとの間の通信セッションを設定するため、前記リモートに関連するログオン情報を検索するように動作可能なログオン・サブシステムを備えることを特徴とする前記通信システム。
【請求項４】
請求項１記載の通信システムにおいて、前記プロトコル・コンバータは、前記リモートからの通信に応答してログオン・データベースから前記リモートに関連するログオン情報を検索するように動作可能なログオン・サブシステムと、前記複数のユーティリティに関連するハイヤーレベル・プロトコル（a higher level protocol）とを備えており、前記ログオン情報は前記プロトコル・コンバータ上で動作するソフトウエア・プロセスを生成するように前記複数のユーティリティを直接指定することを特徴とする前記通信システム。
【請求項５】
請求項１記載の通信システムにおいて、前記プロトコル・コンバータは、前記プロトコル・コンバータ上で動作するソフトウエア・プロセス間の通信を管理するように動作可能な通信サブシステムを備えることを特徴とする前記通信システム。
【請求項６】
請求項１記載の通信システムにおいて、前記プロトコル・コンバータは、
前記プロトコル・コンバータ上で動作するソフトウエア・プロセス間の通信を管理するように動作可能な通信サブシステムと、
前記通信サブシステムに接続されたプロセス・テーブルであって、前記プロトコル・コンバータ上で動作する各ソフトウエア・プロセスのエントリを有するプロセス・テーブルと
を備えることを特徴とする前記通信システム。
【請求項７】
請求項１記載の通信システムにおいて、前記プロトコル・コンバータは、前記プロトコル・コンバータ上で動作するソフトウエア・プロセスのアレンジメントを生成するように動作可能なセッション・マネージャを備えることを特徴とする前記通信システム。
【請求項８】
請求項１記載の通信システムにおいて、各ユーティリティは、指定されたプロトコル翻訳を実行するように動作することを特徴とする前記通信システム。
【請求項９】
リモートとホスト間でデータ通信を行うためのプロトコル・コンバータであって、前記プロトコル・コンバータは、
前記リモートから第１のプロトコルのデータを受信するように動作可能な第１のファシリティと、
少なくとも一つが前記第１のファシリティに接続され、前記第１のファシリティから第１のデータを受信するように動作可能であって、第１のデータを第２のプロトコルの第２のデータに翻訳するように動作可能な複数のユーティリティと、
前記複数のユーティリティの中の少なくとも一つのユーティリティに接続され、第２のプロトコルで当該ユーティリティから第２のデータを受信して第２のデータを前記ホストに伝達するように動作可能な第２のファシリティと
を備え、
前記複数のユーティリティの中の各ユーティリティは、入力データを出力データに翻訳するように動作可能なソフトウエア・プロセスであり、前記複数のユーティリティは、第１のデータを受信する最初の一つのユーティリティと、該最初の一つのユーティリティから出力されるデータを受信する少なくとも一つのユーティリティと、第２のデータを出力する最後の一つのユーティリティとを含み、第１のデータを、当該複数のユーティリティを介した複数の一連の翻訳によって、第２のデータに翻訳し、
前記第１のファシリティと前記複数のユーティリティと前記第２のファシリティとは、前記リモート及びホストとは別の装置である当該プロトコル・コンバータ上でソフトウエア・プロセスとして動作する
ことを特徴とする前記プロトコル・コンバータ。
【請求項１０】
請求項９記載のプロトコル・コンバータにおいて、前記複数のユーティリティは、
前記第１のファシリティから第１のデータを受信して、第１のデータを第３のデータに翻訳するように動作可能な第１のユーティリティと、
前記第１のユーティリティから第３のデータを受信して、第３のデータを第２のデータに翻訳するように動作可能な第２のユーティリティと
を含み、
当該プロトコル・コンバータは、第３のデータを受信して、第３のデータを第４のデータに翻訳するように動作可能な少なくとも一つの他のユーティリティを更に含む
ことを特徴とする前記プロトコル・コンバータ。
【請求項１１】
請求項９記載のプロトコル・コンバータにおいて、前記リモートとホストとの間の通信セッションを設定するため、前記リモートに関連するログオン情報を検索するように動作可能なログオン・サブシステムを更に備えることを特徴とする前記プロトコル・コンバータ。
【請求項１２】
請求項９記載のプロトコル・コンバータにおいて、更に前記リモートからの通信に応答して当該リモートに関連するログオン情報をログオン・データベースから検索するように動作可能なログオン・サブシステムと、前記複数のユーティリティに関連するハイヤーレベル・プロトコル（a higher level protocol）とを備えており、前記ログオン情報は前記プロトコル・コンバータ上で動作するソフトウエア・プロセスを生成するように前記複数のユーティリティを直接指定する
ことを特徴とする前記プロトコル・コンバータ。
【請求項１３】
請求項９記載のプロトコル・コンバータにおいて、更に、前記プロトコル・コンバータ上で動作しているソフトウエア・プロセス間の通信を管理するように動作可能な通信サブシステム
を備えることを特徴とする前記プロトコル・コンバータ。
【請求項１４】
請求項９記載のプロトコル・コンバータにおいて、更に、前記プロトコル・コンバータ上で動作するソフトウエア・プロセス間の通信を管理するように動作可能な通信サブシステムと、
該通信サブシステムと接続され、前記プロトコル・コンバータ上で動作する各々のソフトウエア・プロセスのエントリを有するプロセス・テーブルと
を備えることを特徴とする前記プロトコル・コンバータ。
【請求項１５】
請求項９記載のプロトコル・コンバータにおいて、各ユーティリティは指定されたプロトコル翻訳を実行するように動作する
ことを特徴とする前記プロトコル・コンバータ。
【請求項１６】
請求項９記載のプロトコル・コンバータにおいて、更に、前記プロトコル・コンバータ上で動作する複数のソフトウエア・プロセスを生成するように動作可能なセッション・マネージャを備える
ことを特徴とする前記プロトコル・コンバータ。
【請求項１７】
リモートとホスト間で通信を行うための方法において、前記方法は、
前記リモートが設けられているリンク層の第１のプロトコルのサポート機能を提供する第１のファシリティにおいて、前記リモートから第１のプロトコルの第１のデータを受信するステップ、
複数のユーティリティにおいて、第１のデータを第２のプロトコルの第２のデータに翻訳するステップ、
前記ホストが設けられているリンク層の第２のプロトコルのサポート機能を提供する第２のファシリティにおいて、第２のデータを前記ホストに伝達するステップ
を有し、
前記複数のユーティリティの中の各ユーティリティは、入力データを出力データに翻訳するように動作可能なソフトウエア・プロセスであり、前記複数のユーティリティは、第１のデータを受信する最初の一つの第１のユーティリティと、第１のユーティリティから出力されるデータを受信する少なくとも一つの連続したユーティリティと、第２のデータを出力する最後の一つのユーティリティとを含み、前記翻訳ステップは、第１のデータを、当該複数のユーティリティを介した複数の一連の翻訳によって、第２のデータに翻訳し、
前記第１のファシリティと前記複数のユーティリティと前記第２のファシリティとは、前記リモート及びホストとは別の装置であるプロトコル・コンバータ上でソフトウエア・プロセスとして動作する
ことを特徴とする前記方法。
【請求項１８】
請求項１７記載の方法において、前記方法は更に、
前記第１のデータに応じて第１のメッセージをセッション・マネージャに送信するステップ、
前記第１のメッセージに応じて前記複数のユーティリティを生成するステップ
を有することを特徴とする前記方法。
【請求項１９】
請求項１７記載の方法において、前記方法は更に、
前記第１のデータに応じて前記第１のファシリティからの第１のメッセージをセッション・マネージャに送信するステップ、
前記第１のメッセージに応じて前記複数のユーティリティを生成するステップ、
前記セッション・マネージャからの第２のメッセージを前記複数のユーティリティの中の一つに送信するステップ、
前記複数のユーティリティの中の一つからの前記第２のメッセージに対する肯定応答を前記第１のファシリティに送信するステップ
を有することを特徴とする前記方法。
【請求項２０】
請求項１７記載の方法において、前記方法は更に、
前記第１のデータに応じて前記第１のファシリティからの第１のメッセージをセッション・マネージャに送信するステップ、
前記第１のメッセージに応じて前記第１のユーティリティを生成するステップ、
前記セッション・マネージャからの第２のメッセージを前記第１のユーティリティに送信するステップ、
前記第１のユーティリティからの前記第２のメッセージに対する肯定応答を前記第１のファシリティに送信するステップ、
前記第１のメッセージに応じて前記第２のユーティリティを生成するステップ、
前記セッション・マネージャからの第３のメッセージを前記第２のユーティリティに送信するステップ、
前記第２のユーティリティからの前記第３のメッセージに対する肯定応答を前記第１のユーティリティに送信するステップ
を有することを特徴とする前記方法。
【請求項２１】
請求項１７記載の方法において、前記方法は更に、前記リモートからの通信に応じて前記プロトコル・コンバータ上で動作するソフトウエア・プロセスを生成するように前記複数のユーティリティを直接指定するログオン情報を受信するステップと、前記複数のユーティリティに関連するハイヤーレベル・プロトコル（a higher level protocol）を含むことを特徴とする前記方法。
【請求項２２】
請求項１７記載の方法において、前記方法は更に、前記第１のファシリティと前記複数のユーティリティと前記第２のファシリティのエントリを有するプロセス・テーブルとを生成するステップを有することを特徴とする前記方法。
【請求項２３】
リモートとホスト間でデータ通信を行うためのプロトコル・コンバータであって、前記プロトコル・コンバータは、
前記リモートから第１のデータを受信するように動作可能な第１のファシリティと、
第１のデータを第２のプロトコルの第２のデータに翻訳するように動作可能な複数のユーティリティと、
前記複数のユーティリティの中の少なくとも一つのユーティリティから第２のデータを受信し、第２のデータを前記ホストに伝達するように動作可能な第２のファシリティと、
前記第１のファシリティごと、前記複数のユーティリティごと、及び前記第２のファシリティのそれぞれエントリを有するプロセス・テーブルと
を備え、
前記複数のユーティリティの中の各ユーティリティは、入力データを出力データに翻訳するように動作可能なソフトウエア・プロセスであり、前記複数のユーティリティは、第１のデータを受信する最初の一つのユーティリティと、該最初の一つのユーティリティから出力されるデータを受信する少なくとも一つのユーティリティと、第２のデータを出力する最後の一つのユーティリティとを含み、第１のデータを、当該複数のユーティリティを介した複数の一連の翻訳によって、第２のデータに翻訳し、
前記各エントリは、データ・フィールド及び信号を含み、第１のデータは、前記最初の一つのユーティリティに関係するエントリの前記データ・フィールドに当該第１のデータを置き、信号を設定することによって、当該最初の一つのユーティリティに伝えられ、第２のデータは、前記第２のファシリティに関係するエントリの前記データ・フィールドに当該第２のデータを置き、信号を設定することによって、前記第２のファシリティに伝えられ、
前記第１のファシリティと前記複数のユーティリティと前記第２のファシリティとは、前記リモート及びホストとは別の装置であるプロトコル・コンバータ上でソフトウエア・プロセスとして動作する
ことを特徴とする前記プロトコル・コンバータ。
【請求項２４】
リモートとホスト間で通信を行うための方法において、前記方法は
第１のファシリティにおいて、前記リモートから第１のプロトコルの第１のデータを受信するステップ、
プロセス・テーブルにおける前記複数のユーティリティの中の少なくとも一つのユーティリティに関連する第１のエントリのデータ・フィールドに第１のデータを置くステップ、
前記第１のエントリに第１のデータが置かれたことを指示するために当該第１のエントリの信号を設定するステップ、
前記少なくとも一つのユーティリティにおいて、前記第１のエントリのデータ・フィールドから第１のデータを受信するステップ、
前記複数のユーティリティにおいて、第１のデータを第２のプロトコルの第２のデータに翻訳するステップ、
プロセス・テーブルにおける前記第２のファシリティに関連した第２のエントリのデータ・フィールドデータに第２のデータを置くステップ、
前記第２のエントリに第２のデータが置かれたことを指示するために当該第２のエントリの信号を設定するステップ、
前記第２のファシリティにおいて、前記第２のエントリのデータ・フィールドから第２のデータを受信するステップ、
前記第２のファシリティにおいて、第２のデータを前記ホストに送信するステップ
を有し、
前記第１のファシリティと前記複数のユーティリティと前記第２のファシリティとは、前記リモート及びホストとは別の装置であるプロトコル・コンバータ上でソフトウエア・プロセスとして動作し、前記複数のユーティリティは、当該各ユーティリティのソフトウエア・プロセスを一連に処理接続したものである
ことを特徴とする前記方法。
【発明の詳細な説明】
発明の技術分野
本発明は、一般的には通信に関し、特にはプロトコル・コンバータ装置及び方法に関する。
発明の背景
通信システムは、相互接続される装置の集まりを含んでいる。これらの装置は、異なるプロトコルを使ってデータ通信を行うことが多い。例えば第１のプロトコルでデータを伝達するリモートは、第２のプロトコルでデータを伝達するホストにアクセスを望むこともある。これらのリモートとホストとの間の通信を可能にするためにプロトコル・コンバータを使うことができる。
種々の装置の要求を満たすため、通信システムがますます大きく複雑になるにつれて、プロトコル・コンバータは、増え続ける多くの通信プロトコルをサポートすることに適応していくべきである。ハードウエア・ベースのプロトコル・コンバータでは、新しいプロトコルのサポートに適応することが困難である。現在のソフトウエア・ベースのプロトコル・コンバータでは、しばしばモジュール的な設計性に欠け、ハードウエア／ソフトウエア・インタフェースが柔軟性と信頼性に欠け、新しい変化していく通信プロトコルに素早く効率的に適応することができない。
発明の要約
本発明によって、通信システムにおけるプロトコル・コンバータに関連する種々の不都合と問題は実質的に削減又は除去された。
本発明の一実施例によれば、通信システムは第１のプロトコルで第１のデータを送信するリモートと第２のプロトコルで第２のデータを受信するホストとを含む。リモートとホストとに接続されたプロトコル・コンバータは、リモートから第１のデータを受信する。このプロトコル・コンバータは、このプロトコル・コンバータ上でプロセスとして動作する、第１のファシリティと、ユーティリティと、第２のファシリティとを含む。第１のファシリティは第１のデータをユーティリティに伝達し、ユーティリティは第１のデータを第２のデータに翻訳し、そして第２のファシリティは第２のデータをホストに伝達する。
本発明の重要な技術的利点は、新しい、また変化していく通信プロトコルに素早く効率的に適応するためにモジュール的設計を持ったプロトコル・コンバータを含んでいる。このモジュール的設計は、ファシリティ及びユーティリティと呼ばれるソフトウエア・プロセスによってもたらされる。ファシリティは、所定のリンク層の通信プロトコルのサポート機能を提供し、これに対してユーティリティは、更に高いレベルのプロトコル間の翻訳機能を提供する。ある特定の実施例ではユーティリティは、多層プロトコル・サポートを提供するためにカスケード接続されることもある。
他の重要な技術的利点は、ファシリティとユーティリティ間の通信を管理することである。一実施例で通信サブシステムは、プロトコル・コンバータ上で動作する各プロセスごとにエントリを有するプロセス・テーブルを保持している。このようにしてユーティリティとファシリティとの間の機能は分離されていて、プロセス・インタフェースは明確にまたしっかりと定義されており、プロトコル・コンバータのハードウエア／ソフトウエア・インタフェースは精密に定義され、信頼度よく維持されている。本発明の他の重要な技術的利点には、ファシリティとユーティリティとを生成するセッション・マネージャと、ログオン・サブシステムと、トランスレータ・サブシステムとがある。その他の技術的利点は、下記の図面と説明と請求の範囲とから、当業者には直ちに明らかになる。
【図面の簡単な説明】
本発明の更に完全な理解のため、また更なる特徴と利点に関しては、付属の図面と共に下記の説明が参照される。
図１は、プロトコル・コンバータを有する通信システムを示す。
図２は、このプロトコル・コンバータの動作の単純化されたブロック図を示す。
図３Ａ、３Ｂは、本プロトコル・コンバータを使って通信セッションを確立する方法のフロー図である。
図４は、本プロトコル・コンバータ上で動作する各プロセス間で通信を管理する方法のフロー図である。
発明の詳細な説明
図１は、ホスト１２とプロトコル・コンバータ１４と複数のリモート１６、１８、２０とを含む通信システム１０を示す。ホスト１２とリモート１６、１８、２０は、異なる通信プロトコルを使って動作することがある。プロトコルは、その実現がソフトウエアによるか、ハードウエアによるか、あるいはそれら両者によるかにかかわらず、一般にデータ通信のための、何らかのフォーマット、定義、あるいは仕様である。プロトコルは、伝送速度、フレーム・フォーマット、ブロック・フォーマット、テキスト・フォーマット、停止／開始インジケータ、フレーミング及びヘッディング・インジケータ、フィールド定義、チェックサム値、改行・復帰（ＣＲ／ＬＦ）インジケータ、その他伝送データの内容や性質を指定する適当な情報等を、無制限に含むことができる。一般にプロトコル・コンバータ１４は、ホスト１２とリモート１６、１８、２０とのデータ交換を可能にする通信セッションを確立する。
ホスト１２は、一緒に動作するメモリ２２とプロセッサ２４とを備え、データの記憶、処理、あるいは操作を行う。メモリ２２とプロセッサ２４は、バス２８を用いてインタフェース２６に接続されている。ホスト１２のインタフェース２６は、リンク２８を用いてプロトコル・コンバータ１４のインタフェース３０に接続されている。一般にホスト１２は、他の処理装置とデータ通信を行うために適当な有線又は無線のリンク２８に接続された任意の処理装置であってよい。ある特定の実施例では、ホスト１２はメインフレーム・コンピュータからなり、リンク２８はＩＢＭ３７７０通信プロトコルを用いてデータを伝達する。
リモート１６、１８、２０の各々は、一緒に動作するメモリ３２とプロセッサ３４とを備え、データの記憶、処理、あるいは操作を行う。リモート１６、１８、２０のメモリ３２とプロセッサ３４は、バス３８を用いてインタフェース３６に接続されている。リモート１６、１８、２０のインタフェース３６はそれぞれ、リンク４２、４４、４６を用いてプロトコル・コンバータ１４のインタフェース４０に接続されている。一般にリモート１６、１８、２０は、他の処理装置とデータ通信を行うために任意の適当な有線又は無線のリンク４２、４４、４６にそれぞれ接続された任意の処理装置であってよい。例えばリモート１６、１８、２０は、メインフレーム、ミニコン、又はパーソナルコンピュータであることもあり、またリンク４２、４４、４６はそれぞれ、ＡＳＹＮＣ、ＢＩＳＹＮＣ、ＳＤＬＣ／ＳＮＡ、Ｘ．２５、ＴＣＰ／ＩＰ、Ｘ．４００、その他任意の適当な通信プロトコルを使ってデータ通信を行う。例えばプロトコルのＡＳＹＮＣ系には、ＸＭＯＤＥＭ、ＹＭＯＤＥＭ、ＺＭＯＤＥＭ、ＫＥＲＭＩＴ、その他の非同期データ通信の規格といった所定の実現手段が含まれてもよい。
前述のようにプロトコル・コンバータ１４は、インタフェース３０を用いてホスト１２に接続され、インタフェース４０を用いてリモート１６、１８、２０に接続される。ある特定の実施例では、インタフェース３０は、ＩＢＭ通信マネージャを実現するＩＢＭホストＬＵＡハードウエアからなっている。インタフェース３０は、プロトコル・コンバータ１４とホスト１２との間のトークンリング、専用回線、あるいは交換回線の通信をサポートする他の任意の適当なハードウエアであってもよい。特定の実施例ではインタフェース４０は、リモート１６、１８、２０とプロトコル・コンバータ１４との間の任意の適当な同期式、非同期式あるいはその他の通信プロトコルを実現する１個以上のリアルタイム・インタフェース・コプロセッサ（ＲＴＩＣ）カードからなっている。
インタフェース３０、４０は、プロトコル・コンバータ１４のプロセス５０とサブシステム６０とに接続されていて、それらと相互動作する。プロセス５０は、セッション・マネージャ５２と一組のファシリティ５４と一組のユーティリティ５６とを含む。サブシステム６０は、ログオン・サブシステム６２と通信サブシステム６４とトランスレータ・サブシステム６６とを含む。ログオン・サブシステム６２はプロトコル・コンバータ１４のユーザに関する構成データとログオン定義とを格納するログオン・データベース６８に接続される。通信サブシステム６４は、プロトコル・コンバータ１４上で動作するプロセス５０のリストを保持するプロセス・テーブル７０に接続される。特定の実施例においてサブシステム６０は、アプリケーション・プログラム・インタフェース（ＡＰＩ）を用いてアクセスされる、動的リンク・ライブラリ（ＤＬＬ）である。
プロトコル・コンバータ１４の重要な技術的利点は、プロトコル・コンバータ１４上でソフトウエア・プロセスとして動作するファシリティ５４とユーティリティ５６とを使うことである。プロトコル・コンバータ１４は、ＡＳＹＮＣ、ＢＩＳＹＮＣ、Ｘ．２５等といった所定のリンク層又は回線層の通信プロトコルをサポートするように各々が設計された一組のファシリティ５４を保持する。特定の実施例においてファシリティ５４は、最小の変更でデータをユーティリティ５６に渡すＡＳＹＮＣパススルー（素通し）プロトコルをサポートしている。それからユーティリティ５６は、未加工のＡＳＹＮＣパススルー・データのプロトコル変換の多くをソフトウエアで提供しており、これは新しいプロトコルをサポートするためのさらに大きな柔軟性を提供している。リンク層プロトコルが変更されるか、新しいリンク層プロトコルが追加される場合は、プロトコル・コンバータ１４に追加機能を追加するために、追加のファシリティ５４を作成するか、あるいは既存のファシリティ５４を変更してもよい。
プロトコル・コンバータ１４はまた、ＴＣＰ／ＩＰ、ＸＭＯＤＥＭ、ＹＭＯＤＥＭ、ＺＭＯＤＥＭ、ＫＥＲＭＩＴ、ならびに通信セッションにおける二つのファシリティ５４間の変換、翻訳、フォーマッティング、又はその他の機能といった更にハイレベルのプロトコルを提供する一組のユーティリティ５６を保持する。更にユーティリティ５６は、通信システム１０内の個別ユーザ、ユーザ・グループ、又は所定の装置に関連してカスタマイズされた通信セッションを提供するように作成してもよい。プロトコル・コンバータ１４に機能を追加するために、追加のユーティリティ５６を書いてもよく、既存のユーティリティ５６を修正してもよい。
ユーティリティ５６はまた、多層プロトコル・サポートを提供するためにカスケード接続されることもある。例えばリモート１６とプロトコル・コンバータ１４との間の代表的なＴＣＰ／ＩＰ通信プロトコル・セッションは、単独のＡＳＹＮＣファシリティと数個のカスケード接続された、あるいは多層化されたユーティリティとによってサポートされる。このようなセッションでは最も低いレベルのＡＳＹＮＣファシリティがリモート１６からデータを受信してそのデータをインターネット・プロトコル（ＩＰ）ユーティリティに伝達する。それからこのＩＰユーティリティは、このデータをトランスポート通信プロトコル（ＴＣＰ）ユーティリティに伝達し、次にこのユーティリティはこのデータを最も高いレベルのファイル転送プロトコル（ＦＴＰ）ユーティリティに伝達する。同様にプロトコル・コンバータ１４からリモート１６に伝達されるデータは、ＦＴＰユーティリティとＴＣＰユーティリティとＩＰユーティリティとＡＳＹＮＣファシリティとを通り抜ける。こうして各ユーティリティ５６は、柔軟で強力なプロトコル変換機能を提供するために層状に配置されることもある。ユーティリティ５６が単一のユーティリティを指すこともあり、カスケード接続された、あるいは多層化されたユーティリティの集まりを指すこともあるということは、理解されるべきである。
ファシリティ５４とユーティリティ５６の両者は共に、プロトコル・コンバータ１４の修正とデバッグを促進するモジュール的ソフトウエア設計を提供するとされる機能とデータ・インタフェースとを有するソフトウエア・プロセスとして動作する。ファシリティ５４とユーティリティ５６とを生成し、接続し、多層化することによって、セッション・マネージャ５２はプロトコル・コンバータ１４の中に種々の通信セッションを信頼度よく構築することができる。
プロトコル・コンバータ１４は、一般にコンピュータ７２として示される一つ以上のコンピュータ上で動作させることもできる。コンピュータ７２は、プロセス５０とサブシステム６０とを実現する命令を保持し、実行する。コンピュータ７２は、キーパッド、タッチ・スクリーン、あるいは情報を受け入れることのできるその他の装置といった入力装置７４を含むこともできる。出力装置７６は、ディジタル又はアナログ・データ、ビジュアル情報、オーディオ情報を含む、プロトコル・コンバータ１４の動作に関連する情報を伝達する。入力装置７４と出力装置７６の両者とも、コンピュータの磁気ディスク、ＣＤ−ＲＯＭ、又は、プロトコル・コンバータ１４から出力を受け取り、それに入力を与えるその他の適当な媒体、といった固定型又は着脱可能型記録媒体を含むこともできる。プロセッサ７８とその関連の揮発性又は不揮発性メモリとは、プロトコル・コンバータ１４の動作にしたがって命令を実行し、情報を操作する。
動作に際してプロトコル・コンバータ１４は、異なる通信プロトコルを使う二つ以上の装置間で通信セッションを確立する。一例としてリモート１６がホスト１２と通信したいこともある。リモート１６はリンク４２を使ってプロトコル・コンバータ１４のインタフェース４０に、第１のプロトコルでデータを伝達する。それからインタフェース４０は、このデータの第２のプロトコルへの変換を遂行するために、選択されたファシリティ５４とユーティリティ５６とにこのデータを渡す。第２のプロトコル用になったデータはそれからインタフェース３０に渡され、このインタフェースは次にこの第２のプロトコルのデータを、リンク２８を使ってホスト１２に渡す。
リモート１６とホスト１２との通信の間、セッション・マネージャ５２は選択されたファシリティ５４とユーティリティ５６とを含めて、プロセス５０を生成する。通信サブシステム６４は、プロセス５０の間の通信を管理するためのプロセス・テーブル７０内に、生成されたプロセス５０のリストを保持する。ログオン・サブシステム６２は、リモート１６からログオン情報を受信して、ログオン・データベース６８からの構成データとログオン定義とにアクセスする。この情報は、リモート１６とホスト１２との間で通信セッションを確立するプロセス５０を選択、及び／又は構成するために使うことができる。トランスレータ・サブシステム６６は、データ変換を実行するためにプロセス５０によって利用することができる。
図２は、リモート１６とホスト１２との間に通信セッションを確立するプロトコル・コンバータ１４の動作を単純化したブロック図を示す。この通信セッションは、プロセス５０とサブシステム６０とを利用する。図２は、リモート１６から発信されてホスト１２に着信する通信セッションを述べているが、本発明は通信システム１０における任意の処理装置から発信されて他の任意の処理装置に着信する単方向通信あるいは双方向通信を考えていることを理解すべきである。
リモート１６からの第１のプロトコルのデータは、プロトコル・コンバータ１４のインタフェース４０で受信される。インタフェース４０は、リモート１６によって利用されるリンク層の通信プロトコルをサポートするファシリティ１００にこのデータを渡す。ファシリティ１００は、ユーティリティ１０４を生成するセッション・マネージャ１０２にこの受信したデータの内容又は存在を伝達する。それからファシリティ１００は、データをユーティリティ１０４に伝達する。ある特定の実施例においてセッション・マネージャ１０２は、ユーティリティ１０４に結び付く追加のユーティリティ１０６を生成することもある。ユーティリティ１０６は、ホスト１２によって利用される第２のリンク層プロトコルのデータの通信をサポートするファシリティ１０８にデータを伝達する。それからファシリティ１０８は、この第２のプロトコルのデータをホスト１２に渡すためのインタフェース３０に伝達する。ユーティリティ１０４又はユーティリティ１０６又はこれら両者は、数個のカスケード接続された、又は多層化されたユーティリティから構成されることもある。
一実施例においてユーティリティ１０４、１０６は、破線１０９で示すようにセッション・マネージャ１０２によって生成された単独のユーティリティであってもよい。もしユーティリティ１０４、１０６がセッション・マネージャ１０２によって生成された別々のユーティリティであるならば、ユーティリティ１０４はファシリティ１００から受信した第１のプロトコルのデータをユーティリティ１０６に送出するための未加工データに翻訳する。未加工データは、ユーティリティ間で通信されるデータの任意の適当な一般表現でよい。この未加工データは、翻訳と他の装置への送出のために他のユーティリティ１１０に接続されることもある。更にユーティリティ１０６の出力は、インタフェース３０又はインタフェース４０又はプロトコル・コンバータ１４の他のインタフェース回路に送出するために他のファシリティ１１２に接続されることもある。例えばその他のファシリティ１１２の一つは、リモート１６からの第１のプロトコルのデータをリモート１８又はリモート２０又はこの両者への第２のプロトコルのデータに変換・送出するために、インタフェース４０の一部に接続してもよい。
リモート１６とホスト１２との間に通信セッションを確立する時に、通信サブシステム６４は、プロトコル・コンバータ１４上で動作するプロセス５０のエントリを含むプロセス・テーブル７０を生成する。プロセス５０は、この通信セッションが確立されるときにプロセス・テーブル７０に入れられてもよく、またプロトコル・コンバータ１４の起動時又は初期設定時に事前に入れられていてもよい。このプロセス・テーブル７０の各エントリには、プロセス名１２０と、プロセス識別情報（ＩＤ）１２２と、データ１２４と、信号１２６とが含まれる。
図２の特定の実施例に関していえば、プロセス・テーブル７０には、リモート１６とホスト１２との間の通信セッションをサポートする下記のエントリ、すなわちファシリティ１００とセッション・マネージャ１０２とユーティリティ１０４とユーティリティ１０６とファシリティ１０８とが含まれる。各エントリには、プロセス５０間のメッセージ通信で使われる別々の識別子１２２が与えられる。例えばファシリティ１００からユーティリティ１０４に送られるメッセージは、その発信元プロセスＩＤ１２２を「１」と指定し、その宛て先プロセスＩＤ１２２を「３」と指定することもできる。通信サブシステム６４は、図４を参照して以下に更に詳細に説明するように、プロセス５０間でのメッセージ通信を制御するように動作する。
ログオン・データベース６８に接続されたログオン・サブシステム６２は、プロトコル・コンバータ１４のユーザに関する構成データとログオン定義とを検索するためにすべてのプロセス５０によってアクセス可能である。例えばログオン・データベース６８は、リモート１６からデータを受信する際にセッション・マネージャ１０２によって生成されるユーティリティ１０４を指定するログオン定義を含むこともある。ログオン・データベース６８はまた、通信セッションを完了させるための、セッション・マネージャ１０２によって生成されるユーティリティ１０６又はその他のユーティリティ１１０を指定するリモート１６用の第２のログオン定義あるいは発信ログオン定義を含むこともある。このようにしてログオン・サブシステム６２は、リモート１６とプロトコル・コンバータ１４間の第１の通信リンクと、プロトコル・コンバータ１４とホスト１２間の第２の通信リンクとに関連する別々の着信及び発信ログオン定義を保持することができる。これらのログオン定義は、通信システム１０における装置間の種々の通信セッションを確立するために組み合わせることもできる。更にログオン・サブシステム６２は、リモート１６によって与えられたユーザ名とパスワードとを検証するために、あるいはリモート１６のこの他の課金情報をアクセス又は処理するために、ログオン・データベース６８から情報を検索することができる。
トランスレータ・サブシステム６６は、データ翻訳を行うためにユーティリティ１０４、１０６、１１０によってアクセスされることもある。例えばユーティリティ１０４は、データがＡＳＣＩＩフォーマットから、ＥＢＣＤＩＣのようなＩＢＭ互換のフォーマットに翻訳されることを望むこともある。更にトランスレータ・サブシステム６６は、改行・復帰情報といったレコード分離を操作するために、また他のデータ・フォーマッティングを行うためにユーティリティ１０４、１０６、１１０によって利用されることもある。したがってトランスレータ・サブシステム６６は、データについて所定の操作を行う一組の共通にアクセス可能なルーチンからなる。
図３Ａ、３Ｂは、リモート１６とホスト１２との間に通信セッションを確立する方法のフロー図である。本方法は、第１のインタフェース４０がリモート１６からデータを受信するステップ２００から始まる。このデータは、ステップ２０２で第１のファシリティ１００に転送される。そして第１のファシリティ１００は、ステップ２０４でセッション・マネージャ１０２に、第１のファシリティ１００がリモート１６からデータを受信したか、そうでなければリモート１６との通信を確立したかを示すメッセージを送る。この時点でセッション・マネージャ１０２は、ステップ２０５又は２２１によってまとめて示すような二つの異なる実施例を使いながら、進むことができる。
ステップ２０５を使う一実施例では、セッション・マネージャ１０２は第１のファシリティ１００から受信したメッセージに応答してステップ２０６で第１のユーティリティ１０４を生成する。ステップ２０８でセッション・マネージャ１０２は、第１のファシリティ１００と称するメッセージ発信元であるメッセージを第１のユーティリティ１０４に送る。これに応じて第１のユーティリティ１０４は、ステップ２１０で第１のファシリティ１００に肯定応答を送る。このようにしてセッション・マネージャ１０２は、第１のファシリティ１００と第１のユーティリティ１０４との間に通信を確立するために、第１のユーティリティ１０４に送られたこのメッセージの送信元アドレスを利用する。そして第１のファシリティ１００に連結された第１のユーティリティ１０４は、ステップ２１２でリモート１６からログオン情報を受信する。ステップ２１４で第１のユーティリティ１０４は、リモート１６から受信したログオン情報を検証するためにログオン・サブシステム６２にアクセスする。もしこのログオン情報がステップ２１４で検証されなければ、この通信セッションはステップ２１６で終了とされる。
ステップ２２１を使う他の実施例では、セッション・マネージャ１０２は、ステップ２２０で第１のファシリティ１００からログオン情報を受信する。ステップ２２２でセッション・マネージャ１０２は、リモート１６から受信したログオン情報を検証するためにログオン・サブシステム６２とログオン・データベース６８とにアクセスする。もしこのログオン情報がステップ２２２で検証されなければ、この通信セッションはステップ２２４で終了とされる。もしこのログオン情報がステップ２２２で検証されれば、セッション・マネージャ１０２は、ログオン情報に応じてステップ２２６で第１のユーティリティ１０４を生成する。例えばリモート１６又はログオン・データベース６８からセッション・マネージャ１０２が受信したログオン情報は、リモート１６とホスト１２との間の通信セッションで利用するために特定のユーティリティ１０４を指定することもできる。ステップ２２８でセッション・マネージャ１０２は、第１のファシリティ１００と称するメッセージ発信元であるメッセージを第１のユーティリティ１０４に送る。第１のユーティリティ１０４は、ステップ２３０で第１のファシリティ１００に肯定応答を送る。セッション・マネージャ１０２から受信したメッセージのこの肯定応答は、第１のファシリティ１００と第１のユーティリティ１０４との間に通信を確立する。
ステップ２０５又はステップ２２１を使って第１のユーティリティ１０４を生成したのちにセッション・マネージャ１０２は、第２のユーティリティ１０６を生成してもよい。もしリモート１６とホスト１２との間の通信セッションが第２のユーティリティ１０６を利用しなければ、まとめてステップ２４０と称するステップはオプションとなる。もし第２のユーティリティ１０６がこの通信セッションで利用されるのであれば、セッション・マネージャ１０２は、ステップ２４２でログオン情報に応じて第２のユーティリティを生成する。例えばリモート１６から受信したログオン情報あるいはログオン・サブシステム６２とログオン・データベース６８とを使って検索したログオン情報は、この通信セッションで利用される第２のユーティリティ１０６を指定することもできる。ステップ２４４でセッション・マネージャ１０２は、第１のユーティリティ１０４と称するメッセージ発信元であるメッセージを第２のユーティリティ１０６に送る。第２のユーティリティ１０６は、ステップ２４６で第１のユーティリティ１０４に肯定応答を送る。セッション・マネージャ１０２から受信したメッセージのこの肯定応答は、第１のユーティリティ１０４と第２のユーティリティ１０６との間に通信を確立する。
第２のファシリティ１０８は、リモート１６とホスト１２との間の通信セッションが第２のユーティリティ１０６を利用するかどうかによって、ステップ２４８で第１のユーティリティ１０４又は第２のユーティリティ１０６からデータを受信する。第２のファシリティ１０８は、ステップ２５０で、このデータを第２のインタフェース３０に転送する。第２のインタフェース３０がステップ２５２でホスト１２との通信を確立し、そしてリモート１６とホスト１２との間の通信セッションの確立が完了する。
図４は、プロトコル・コンバータ１４上で動作するプロセス５０間のメッセージ通信を管理する方法のフロー図である。図２の実施例において、この方法は下記のプロセス５０間の、すなわちファシリティ１００とセッション・マネージャ１０２とユーティリティ１０４とユーティリティ１０６とファシリティ１０８との間の通信を管理する。本方法は、ステップ３００から始まり、ここで第１のプロセスはそれが第２のプロセスのためのデータを持っていることを通信サブシステム６４に通知する。このデータは、メッセージ、命令、応答、肯定応答、あるいは第１のプロセスから第２のプロセスに伝達すべきその他任意の情報であってよい。
通信サブシステム６４は、ステップ３０２で第２のプロセスに関連するプロセス・テーブル７０のデータ・フィールド１２４にデータを記入する。通信サブシステム６４は、ステップ３０４で第２のプロセスに関連するプロセス・テーブル７０の信号１２６を設定する。それからステップ３０６で第２のプロセスは、その関連の信号１２６の設定値を検出して、その関連データ・フィールド１２４に格納されたデータを受け取る。
一実施例において第２のプロセスは、ステップ３０８でそのデータを処理して、第３のプロセスのための他のデータを生成する。第２のプロセスは、ステップ３１０でそれが第３のプロセス用のデータを持っていることを通信サブシステム６４に通知する。通信サブシステム６４は、ステップ３１２で第３のプロセスに関連するプロセス・テーブル７０のデータ・フィールド１２４にデータを記入する。通信サブシステム６４は、ステップ３１４で第３のプロセスに関連するプロセス・テーブル７０の信号１２６を設定する。それからステップ３１６で第３のプロセスは、その関連の信号１２６の設定値を検出して、その関連データ・フィールド１２４からデータを受け取る。このようにしてプロセス・テーブル７０を利用する通信サブシステム６４は、プロトコル・コンバータ１４上で動作する別々のプロセス５０の間で通信を厳密に、首尾一貫して管理することができる。
本発明は種々の実施例によって説明されたが、当業者は数多くの変更、変化、改変、変形、修正の示唆を得ることが可能であり、また本発明は付属の特許請求範囲の精神と範囲内に入るような、こういった変更、変化、改変、変形、修正を包含することが意図されている。
【図１】
0004164126.tif 000002
【図２】
0004164126.tif 000003
【図３Ａ】
0004164126.tif 000004
【図３Ｂ】
0004164126.tif 000005
【図４】
0004164126.tif 000006