(57)【要約】【課題】コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持する方法を提供すること。【解決手段】この方法は、ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求に基づいてｔｅｌｎｅｔエージェンシ・サーバによってｔｅｌｎｅｔクライアントおよびｔｅｌｎｅｔサーバとのセッションをそれぞれ作成し、そのセッション間でデータを伝送することによってｔｅｌｎｅｔクライアントとｔｅｌｎｅｔサーバとの間のｔｅｌｎｅｔセッションを維持することを含む。ｔｅｌｎｅｔクライアントがｔｅｌｎｅｔセッション中にオフラインとなった場合、ｔｅｌｎｅｔエージェンシ・サーバは、ｔｅｌｎｅｔセッションをサスペンドし、その中のすべてのアクティビティを保ち、後でｔｅｌｎｅｔクライアントからの要求に従ってｔｅｌｎｅｔセッションを再開する。【選択図】図１
2007157148.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持する方法において、前記コンピュータ・ネットワーク・システムが、少なくとも１つのｔｅｌｎｅｔクライアント、少なくとも１つのｔｅｌｎｅｔサーバ、およびｔｅｌｎｅｔエージェンシ・サーバを備える方法であって、
前記ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求に基づいて、前記ｔｅｌｎｅｔエージェンシ・サーバによって前記ｔｅｌｎｅｔクライアントおよび前記ｔｅｌｎｅｔサーバとのセッションをそれぞれ作成し、前記セッション間でデータを伝送することによって前記ｔｅｌｎｅｔクライアントと前記ｔｅｌｎｅｔサーバとの間のｔｅｌｎｅｔセッションを維持するステップと、
前記ｔｅｌｎｅｔクライアントが前記ｔｅｌｎｅｔセッション中にオフラインとなった場合、ｔｅｌｎｅｔエージェンシ・サーバにより、前記ｔｅｌｎｅｔセッションをサスペンドし、その中のすべてのアクティビティを保ち、後で前記ｔｅｌｎｅｔクライアントからの要求に従ってｔｅｌｎｅｔセッションを再開するステップと
を含む方法。
【請求項２】
ｔｅｌｎｅｔクライアントが新しいセッションを作成することを要求しているかどうか、またはサスペンドされたセッションを再開することを要求しているかどうかを前記ｔｅｌｎｅｔエージェンシ・サーバが判定するステップと、
前記ｔｅｌｎｅｔクライアントが新しいセッションを作成することを要求していると判定された場合、前記ｔｅｌｎｅｔエージェンシ・サーバにより、前記ｔｅｌｎｅｔクライアントとの第１セッション、および前記ｔｅｌｎｅｔサーバとの第２セッションをそれぞれ作成し、前記第１セッションと前記第２セッションとの間でのデータの伝送を開始するステップと、
サスペンドされたセッションを再開することをｔｅｌｎｅｔクライアントが要求していると判定された場合、前記ｔｅｌｎｅｔエージェンシ・サーバにより、対応するサスペンドされたセッションおよびそのすべての保たれたアクティビティを見つけ、前記ｔｅｌｎｅｔクライアントとの第３セッションを作成し、前記サスペンドされたセッションを再開し、前記第３セッションと再開したセッションとの間のデータの伝送を開始するステップと
をさらに含む請求項１に記載の方法。
【請求項３】
前記ｔｅｌｎｅｔエージェンシ・サーバが、前記ｔｅｌｎｅｔクライアントからの前記ｔｅｌｎｅｔ要求内の再開識別に従って、前記ｔｅｌｎｅｔクライアントが新しいセッションを作成することを要求しているかどうか、またはサスペンドされたセッションを再開することを要求しているかどうかを判定する請求項２に記載の方法。
【請求項４】
前記ｔｅｌｎｅｔエージェンシ・サーバが、前記ｔｅｌｎｅｔクライアントによって入力された前記ｔｅｌｎｅｔサーバのＩＰアドレスおよびポート番号に従って、前記ｔｅｌｎｅｔサーバとのセッションを作成する請求項１ないし３のいずれか一項に記載の方法。
【請求項５】
前記ｔｅｌｎｅｔエージェンシ・サーバが、ローカルＩＰアドレスおよびポートを前記ｔｅｌｎｅｔサーバのＩＰアドレスおよびポートに自動的にマッピングし、それによって前記ｔｅｌｎｅｔサーバとのセッションを作成する請求項１ないし３のいずれか一項に記載の方法。
【請求項６】
前記ｔｅｌｎｅｔセッションをサスペンドする前記ｔｅｌｎｅｔエージェンシ・サーバが、ＮＯＰ（ノーオペレーション）メッセージを前記ｔｅｌｎｅｔサーバに周期的に送信することを含む請求項１ないし３のいずれか一項に記載の方法。
【請求項７】
前記ｔｅｌｎｅｔセッション内のすべてのアクティビティを保つ前記ｔｅｌｎｅｔエージェンシ・サーバが、前記ｔｅｌｎｅｔセッションに関係する折衝オプションおよびセッション・データをキャッシュすることを含む請求項１ないし３のいずれか一項に記載の方法。
【請求項８】
前記ｔｅｌｎｅｔエージェンシ・サーバおよび前記ｔｅｌｎｅｔサーバが、それぞれ前記コンピュータ・ネットワーク・システムの異なるノードに配置される請求項１ないし３のいずれか一項に記載の方法。
【請求項９】
コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持するｔｅｌｎｅｔエージェンシ・サーバであって、
ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求を聴取し、ｔｅｌｎｅｔクライアントがオフラインであるかどうかを検出するように構成された聴取モジュールと、
宛先のｔｅｌｎｅｔサーバとの接続を作成し、前記ｔｅｌｎｅｔサーバとデータを送受信するように構成された接続モジュールと、
ｔｅｌｎｅｔセッションをサスペンドし、前記ｔｅｌｎｅｔセッションを再開するように構成された制御モジュールと
を備えるｔｅｌｎｅｔエージェンシ・サーバ。
【請求項１０】
前記聴取モジュールがさらに、再開識別を検証するのに使用される請求項９に記載のｔｅｌｎｅｔエージェンシ・サーバ。
【請求項１１】
前記制御モジュールが、
ローカルＩＰアドレスおよびポートを宛先のｔｅｌｎｅｔサーバのＩＰアドレスおよびポートにマッピングするように構成されたマップ・モジュールと、
ｔｅｌｎｅｔセッション内のすべてのアクティビティをキャッシュするように構成されたキャッシュ・モジュールと、
ｔｅｌｎｅｔクライアントとｔｅｌｎｅｔサーバとの間でデータを伝送するように構成された中継モジュールと
を備える請求項９に記載のｔｅｌｎｅｔエージェンシ・サーバ。
【請求項１２】
前記キャッシュ・モジュールが、ｔｅｌｎｅｔセッションに関して折衝されたオプションおよびデータをキャッシュし、前記ｔｅｌｎｅｔサーバおよび前記ｔｅｌｎｅｔクライアントとｔｅｌｎｅｔオプションを再折衝し、前記ｔｅｌｎｅｔクライアントがサスペンドされたｔｅｌｎｅｔセッションを再開中に、最後にキャッシュしたｔｅｌｎｅｔ画面を前記ｔｅｌｎｅｔクライアントに送信するのに使用される請求項１１に記載のｔｅｌｎｅｔエージェンシ・サーバ。
【請求項１３】
少なくとも１つのｔｅｌｎｅｔクライアントと、少なくとも１つのｔｅｌｎｅｔサーバと、請求項９ないし１２のいずれか一項に記載のｔｅｌｎｅｔエージェンシ・サーバとを備えるコンピュータ・ネットワーク・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に情報システム技術に関する。詳細には、本発明は、コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持する技術に関する。より詳細には、本発明は、ｔｅｌｎｅｔセッションをサスペンドし、その中のすべてのアクティビティを保ち、それを後で再開する方法およびシステムに関する。
【背景技術】
【０００２】
ｔｅｌｎｅｔは、リモート・サーバと文字情報を送受信し、それによってリモート・サーバの資源を使用するためのプロトコルとして知られている。ｔｅｌｎｅｔは、クライアント側のコンピュータがＴＣＰ／ＩＰを介して接続されたサーバにリモートにログインし、クライアント側のコンピュータをリモート・サーバの仮想端末として使用できるようにする。したがって、ＴＣＰ／ＩＰベースのネットワーク環境では、サーバがｔｅｌｎｅｔポートを開く限り、任意の許可クライアントがｔｅｌｎｅｔポートを介してサーバを使用することができる。
【０００３】
しかし、ＵＮＩＸ（Ｒ）コンピュータ・システムでのｔｅｌｎｅｔセッションでは、ユーザのローカル・システムがクラッシュした場合、またはインターネット接続が切断された場合、ユーザのｔｅｌｎｅｔセッションが直ちに終了し、もはや再開することができず、ｔｅｌｎｅｔセッション中のすべてのアクティビティが失われる。従来のＵＮＩＸ（Ｒ）コンピュータ・システムでは、セッションに障害が発生したとき、ｔｅｌｎｅｔセッションが直ちに終了することが望まれ、ｔｅｌｎｅｔクライアントがｔｅｌｎｅｔセッションを再開することがサポートされないからである。
【０００４】
最近の発展に伴い、ｔｅｌｎｅｔセッションを再開するために２種類の方法がある。
【０００５】
第１の方法は、Tandem により"Network System with ResilientVirtual Fault Tolerant Sessions"の名称で出願されたU.S.Patent No.5881239に開示されているものである。さらに、現在では、上記の特許に記載の特徴と同じものを有する「GeorgiaSoftWorks Telnet Server」(http://www.georgiasoftworks.com/docs/UTS/UTS_userguide.doc)と呼ばれるｔｅｌｎｅｔサーバが存在する。ｔｅｌｎｅｔサーバは、障害が発生したｔｅｌｎｅｔセッションを完全に停止する前に、設定した期間、ｔｅｌｎｅｔセッションを維持することができる。ｔｅｌｎｅｔセッションを再開することのできるこの方法では、拡張した新しいｔｅｌｎｅｔサーバを使用して、従来のＵＮＩＸ（Ｒ）ｔｅｌｎｅｔサーバを置き換えなければならない。実際、セキュリティおよび互換性の理由で、この方法を適用することは実際上不可能である。
【０００６】
第２の方法は、ｔｅｌｎｅｔセッションが終了するときに終了されない「ＧＮＵ  Ｓｃｒｅｅｎ」(http://www.gnu.org/software/screen/)をユーザの仮想端末として作成することである。ｔｅｌｎｅｔクライアントはｔｅｌｎｅｔサーバに接続し、シェル（例えばＢｏｕｒｎｅ  Ａｇａｉｎ  Ｓｈｅｌｌ）を実行し、「ＧＮＵ  Ｓｃｒｅｅｎ」アプリケーションを実行する。後に、各実行アプリケーションは「ＧＮＵ  Ｓｃｒｅｅｎ」の「内部で」実行される。ｔｅｌｎｅｔセッションが終了するとき、「ＧＮＵ  Ｓｃｒｅｅｎ」は存続し、「ＧＮＵ  Ｓｃｒｅｅｎ」の「内部の」各アプリケーションも存続する。「ＧＮＵ  Ｓｃｒｅｅｎ」は、内部で実行中の各アプリケーションをサスペンドし、ｔｅｌｎｅｔクライアントは、後でアプリケーションを再開することができる。この方法は、ｔｅｌｎｅｔサーバが実行中の同一のマシンに「ＧＮＵ  Ｓｃｒｅｅｎ」デーモンをインストールしなければならず、実際、セキュリティおよび互換性の理由で、この方法を適用することも実際上不可能である。
【特許文献１】U.S.Patent No.5881239 "Network System with Resilient Virtual Fault TolerantSessions"
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、上記の問題を解決するために、本発明は、コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持するｔｅｌｎｅｔセッション再開機能を用いる方法およびシステムを提供する。ユーザがローカル・システム・クラッシュまたはインターネット接続の切断に遭ったとき、本発明によるｔｅｌｎｅｔセッションを維持する方法およびシステムは、ｔｅｌｎｅｔセッションをサスペンドし、その中のすべてのアクティビティを保ち、ｔｅｌｎｅｔクライアントがそれを後で再開することを可能にする。既存のコンピュータ・システムにおけるｔｅｌｎｅｔセッションを維持する方法と比較して、本発明は、従来のＵＮＩＸ（Ｒ）ｔｅｌｎｅｔクライアントおよびサーバに対して透過的であり、従来のＵＮＩＸ（Ｒ）ｔｅｌｎｅｔクライアントおよびサーバを変更する必要がなく、ｔｅｌｎｅｔサーバが実行中の同一のマシン上に配置されることに限定されず、すなわち、本発明は、ｔｅｌｎｅｔサーバが実行中のコンピュータ・ネットワーク・システム内の同一のノードに配置されることに限定されない。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、少なくとも１つのｔｅｌｎｅｔクライアント、少なくとも１つのｔｅｌｎｅｔサーバ、およびｔｅｌｎｅｔエージェンシ・サーバを備えるコンピュータ・ネットワーク・システムにおいてｔｅｌｎｅｔセッションを維持する方法であって、
ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求に基づいてｔｅｌｎｅｔエージェンシ・サーバによってｔｅｌｎｅｔクライアントおよびｔｅｌｎｅｔサーバとのセッションをそれぞれ作成し、セッション間でデータを伝送することによってｔｅｌｎｅｔクライアントとｔｅｌｎｅｔサーバとの間のｔｅｌｎｅｔセッションを維持すること、および
ｔｅｌｎｅｔクライアントがｔｅｌｎｅｔセッション中にオフラインとなった場合、ｔｅｌｎｅｔエージェンシ・サーバにより、ｔｅｌｎｅｔセッションをサスペンドし、その中のすべてのアクティビティを保ち、後でｔｅｌｎｅｔクライアントからの要求に従ってｔｅｌｎｅｔセッションを再開すること
を含む方法が提供される。
【０００９】
好ましくは、本発明による方法は、さらに、
ｔｅｌｎｅｔクライアントが新しいセッションを作成することを要求しているかどうか、またはサスペンドされたセッションを再開することを要求しているかどうかをｔｅｌｎｅｔエージェンシ・サーバで判定するステップと、
ｔｅｌｎｅｔクライアントが新しいセッションを作成することを要求していると判定された場合、ｔｅｌｎｅｔエージェンシ・サーバにより、ｔｅｌｎｅｔクライアントとの第１セッション、およびｔｅｌｎｅｔサーバとの第２セッションをそれぞれ作成し、第１セッションと第２セッションとの間でのデータの伝送を開始するステップと、
サスペンドされたセッションを再開することをｔｅｌｎｅｔクライアントが要求していると判定された場合、ｔｅｌｎｅｔエージェンシ・サーバにより、対応するサスペンドされたセッションおよびそのすべての保たれたアクティビティを見つけ、ｔｅｌｎｅｔクライアントとの第３セッションを作成し、サスペンドされたセッションを再開し、第３セッションと再開したセッションとの間のデータの伝送を開始するステップとを含む。
【００１０】
好ましくは、ｔｅｌｎｅｔエージェンシ・サーバは、ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求内の再開識別に従って、ｔｅｌｎｅｔクライアントが新しいセッションを作成することを要求しているかどうか、またはサスペンドされたセッションを再開することを要求しているかどうかを判定する。
【００１１】
好ましくは、ｔｅｌｎｅｔエージェンシ・サーバは、ｔｅｌｎｅｔクライアントによって入力されたｔｅｌｎｅｔサーバのＩＰアドレスおよびポート番号に従って、ｔｅｌｎｅｔサーバとのセッションを作成する。
【００１２】
好ましくは、ｔｅｌｎｅｔエージェンシ・サーバは、ローカルＩＰアドレスおよびポートをｔｅｌｎｅｔサーバのＩＰアドレスおよびポートに自動的にマッピングし、それによってｔｅｌｎｅｔサーバとのセッションを作成する。
【００１３】
好ましくは、ｔｅｌｎｅｔセッションをサスペンドするｔｅｌｎｅｔエージェンシ・サーバは、ＮＯＰ（ノーオペレーション）メッセージをｔｅｌｎｅｔサーバに周期的に送信することを含む。
【００１４】
好ましくは、ｔｅｌｎｅｔセッション内のすべてのアクティビティを保つｔｅｌｎｅｔエージェンシ・サーバは、ｔｅｌｎｅｔセッションに関係する折衝オプション（ｎｅｇｏｔｉａｔｅｄ  ｏｐｔｉｏｎ）およびセッション・データをキャッシュすることを含む。
【００１５】
好ましくは、ｔｅｌｎｅｔエージェンシ・サーバおよびｔｅｌｎｅｔサーバは、それぞれコンピュータ・ネットワーク・システムの異なるノードに配置される。
【００１６】
本発明の別の態様によれば、コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持するｔｅｌｎｅｔエージェンシ・サーバであって、
ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求を聴取し、ｔｅｌｎｅｔクライアントがオフラインであるかどうかを検出するように構成された聴取モジュールと、
宛先のｔｅｌｎｅｔサーバとの接続を作成し、そのｔｅｌｎｅｔサーバとデータを送受信するように構成された接続モジュールと、
ｔｅｌｎｅｔセッションをサスペンドし、ｔｅｌｎｅｔセッションを再開するように構成された制御モジュールと
を備えるｔｅｌｎｅｔエージェンシ・サーバが提供される。
【００１７】
好ましくは、聴取モジュールがさらに、再開識別を検証するのに使用される。
【００１８】
好ましくは、制御モジュールは、
ローカルＩＰアドレスおよびポートを宛先のｔｅｌｎｅｔサーバのＩＰアドレスおよびポートにマッピングするように構成されたマップ・モジュールと、
ｔｅｌｎｅｔセッション内のすべてのアクティビティをキャッシュするように構成されたキャッシュ・モジュールと、
ｔｅｌｎｅｔクライアントとｔｅｌｎｅｔサーバとの間でデータを伝送するように構成された中継モジュールとを備える。
【００１９】
好ましくは、キャッシュ・モジュールは、ｔｅｌｎｅｔセッションに関して折衝されたオプションおよびデータをキャッシュし、ｔｅｌｎｅｔサーバおよびｔｅｌｎｅｔクライアントとｔｅｌｎｅｔオプションを再折衝し、ｔｅｌｎｅｔクライアントがサスペンドされたｔｅｌｎｅｔセッションを再開中に、最後にキャッシュしたｔｅｌｎｅｔ画面をｔｅｌｎｅｔクライアントに送信するのに使用される。
【００２０】
本発明の別の態様によれば、少なくとも１つのｔｅｌｎｅｔクライアント、少なくとも１つのｔｅｌｎｅｔサーバ、および前述のｔｅｌｎｅｔエージェンシ・サーバを備えるコンピュータ・ネットワーク・システムが提供される。
【００２１】
本発明は、従来のＵＮＩＸ（Ｒ）ｔｅｌｎｅｔクライアントおよびサーバに対して透過的であり、ｔｅｌｎｅｔサーバが実行中の同一のマシンではない別のマシン上に配置することができ、それによってセキュリティおよび互換性の問題が回避される。
【００２２】
新規であると考えられる本発明の特徴が、添付の特許請求の範囲に記載される。しかし、本発明自体、ならびに本発明の好ましい使用の形態、別の目的、および利点は、添付の図面と共に以下の例示的実施形態の詳細な説明を参照することで最も良く理解されよう。
【発明を実施するための最良の形態】
【００２３】
ここで図を参照すると、図１は、本発明を実施することのできる分散データ処理システムの絵画表現である。分散データ処理システム１００は、ネットワーク１０７と、分散データ処理システム１００内でネットワーク１０７を介して互いに接続された様々なコンピューティング装置またはコンピュータとを備え、ネットワーク１０７は、前記様々な装置およびコンピュータ間の通信リンクを提供するのに使用される媒体である。ネットワーク１０７は、同軸ケーブルや光ファイバなどの永続的接続、または電話接続を介する一時的接続を含むことができる。
【００２４】
記載の例では、サーバ１０４および１０６がネットワーク１０７に接続される。さらに、クライアント１０１、１０２、および１０３もネットワーク１０７に接続される。これらのクライアント１０１、１０２、および１０３は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータでよい。本願では、ネットワーク・コンピュータは、ネットワークに接続された別のコンピュータからプログラムまたは他のアプリケーションを受信することができるネットワークに接続された任意のコンピュータでよい。記載の例では、ｔｅｌｎｅｔサービス・プログラムがサーバ１０４上に常駐し、サーバ１０６にｔｅｌｎｅｔサービスを提供する。したがって、記載の例では、サーバ１０４はｔｅｌｎｅｔサーバと呼ばれる。クライアント１０１、１０２、および１０３は、ｔｅｌｎｅｔサーバ１０４のｔｅｌｎｅｔクライアントとして使用される。サーバ１０６は、クライアント１０１、１０２、および１０３のｔｅｌｎｅｔエージェンシとして使用され、クライアント１０１、１０２、および１０３からの要求に基づいて、クライアント１０１、１０２、および１０３と、ｔｅｌｎｅｔサーバ１０４との間でｔｅｌｎｅｔセッションを作成し、サスペンドされたｔｅｌｎｅｔセッションのすべてのアクティビティを保ち、それによって、サスペンドされたセッションをｔｅｌｎｅｔクライアントが後で再開することが可能となる。したがって、記載の例では、サーバ１０６はｔｅｌｎｅｔエージェンシと呼ばれる。分散データ処理システム１００は、図示していない他のサーバ、クライアント、および他の装置をさらに備えることができ、サーバ１０４および１０６を、ｔｅｌｎｅｔサービスとｔｅｌｎｅｔエージェンシ・サービスをどちらも提供するものとして組み合わせることができる。
【００２５】
記載の例では、分散データ処理システム１００は、インターネットを介して接続されたコンピュータ・システムでよく、ネットワーク１０７は、ＴＣＰ／ＩＰプロトコル群を使用して互いに通信するネットワークおよびゲートウェイの世界的な集合を表す。インターネットの中心部は、データおよびメッセージを経路指定する、数千の商用コンピュータ・システム、政府コンピュータ・システム、教育コンピュータ・システム、およびその他のコンピュータ・システムから構成される大ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンである。もちろん、分散データ処理システム１００は、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）などのいくつかの異なるタイプのネットワークとして実装することもできる。図１は一例であり、本発明のアーキテクチャ上の制限ではない。
【００２６】
図２は、本発明の好ましい実施形態によるｔｅｌｎｅｔセッション再開機能を有するコンピュータ・ネットワーク・システムの絵画表現である。まず、ｔｅｌｎｅｔクライアント１が、ｔｅｌｎｅｔエージェンシ２に接続してセッション４ａを作成する。ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔサーバ３に接続してセッション４ｂを作成し、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１がｔｅｌｎｅｔサーバ３に直接接続されているかのように、４ａと４ｂとの間でデータを伝送する。クライアント障害またはリンク障害がある場合、４ａは終了し、４ｂはｔｅｌｎｅｔエージェンシ２によってサスペンドされる。ｔｅｌｎｅｔクライアント１は、ｔｅｌｎｅｔエージェンシ２に再接続してセッション４ｃを作成することができ、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１が４ａおよび４ｂを再開したかのように、４ｃと４ｂとの間でデータを伝送する。
【００２７】
図３に、本発明の好ましい実施形態による、図２に示すコンピュータ・ネットワーク・システム内のｔｅｌｎｅｔエージェンシのブロック図を示す。ｔｅｌｎｅｔエージェンシ３００は、聴取モジュール３１０、制御モジュール３２０、および接続モジュール３３０という３つの部分を有する。
【００２８】
（１）聴取モジュール３１０は、ｔｅｌｎｅｔクライアントからのｔｅｌｎｅｔ要求を聴取し、ｔｅｌｎｅｔクライアントがオフラインであるかどうかを検出し、再開識別を検証するのに使用される。
（２）接続モジュール３３０は、宛先のｔｅｌｎｅｔサーバとの接続を構築し、宛先のｔｅｌｎｅｔサーバとデータを送受信するのに使用される。
（３）制御モジュール３２０は、ＩＰアドレスおよびポートをマッピングし、ｔｅｌｎｅｔセッションをサスペンドし、ｔｅｌｎｅｔセッションを再開するのに使用される。制御モジュール３２０は、ｔｅｌｎｅｔエージェンシの主要なモジュールであり、マップ・モジュール３２２、キャッシュ・モジュール３２４、および中継モジュール３２６の３つのセクションを備える。
ｉ．マップ・モジュール３２２は、ローカルＩＰアドレスおよびポートを、宛先のｔｅｌｎｅｔサーバのＩＰアドレスおよびポートにマッピングするのに使用される。
ｉｉ．キャッシュ・モジュール３２４は、ｔｅｌｎｅｔセッションに関して折衝されたオプションおよびデータをキャッシュし、ｔｅｌｎｅｔサーバおよびｔｅｌｎｅｔクライアントとｔｅｌｎｅｔオプションを再折衝し、ｔｅｌｎｅｔクライアントがサスペンドされたｔｅｌｎｅｔセッションを再開中に、最後にキャッシュしたｔｅｌｎｅｔ画面をｔｅｌｎｅｔクライアントに送信するのに使用される。
ｉｉｉ．中継モジュール３２６は、ｔｅｌｎｅｔクライアントとｔｅｌｎｅｔサーバとの間でデータを伝送するのに使用される。
【００２９】
上記の説明より、本発明では、サスペンドされたｔｅｌｎｅｔセッションに関する折衝オプション・データをキャッシュするようにｔｅｌｎｅｔエージェンシを適用することにより、サスペンドされたｔｅｌｎｅｔセッションを後で再開することが可能となることがわかる。さらに、本発明は、従来のＵＮＩＸ（Ｒ）ｔｅｌｎｅｔクライアントおよびサーバに対して透過的であり、ｔｅｌｎｅｔサーバが実行中の同一のマシンではない別のマシン上に配置することができ、それによってセキュリティおよび互換性の問題が回避される。
【００３０】
次に、図４に関連して、本発明の好ましい実施形態によるｔｅｌｎｅｔセッション再開機能を有するネットワーク・システム内のｔｅｌｎｅｔエージェンシを介してｔｅｌｎｅｔセッションを維持する方法を詳細に説明する。
【００３１】
図４は、本発明の好ましい実施形態によるｔｅｌｎｅｔセッションを維持するプロセスの流れ図であり、ユーザがローカル・システム・クラッシュまたはインターネット接続の切断に遭ったとき、ｔｅｌｎｅｔエージェンシが、ｔｅｌｎｅｔセッションをサスペンドし、その中のすべてのアクティビティを保ち、ｔｅｌｎｅｔクライアントがそれを後で再開することを可能にすることを含む。まず、ｔｅｌｎｅｔクライアント１は、ｔｅｌｎｅｔエージェンシ２に接続してセッション４ａを作成する（４０５）。ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１に再開識別を入力するように要求する（４１０）。２つの分岐がある。
（１）ｔｅｌｎｅｔクライアント１によって入力された再開識別がゼロである（４１５の「Ｙｅｓ」の分岐）。これは、ｔｅｌｎｅｔクライアント１が新しいセッションを作成することを選択したことを意味する。次いで、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔサーバ３に接続してセッション４ｂを作成する。ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１がｔｅｌｎｅｔサーバ３に直接接続されているかのように、４ａと４ｂとの間でデータを伝送する。何らかのクライアント障害またはリンク障害がある場合、４ａは終了し、４ｂはｔｅｌｎｅｔエージェンシ２によってサスペンドされる。４ｂが終了した場合、ｔｅｌｎｅｔエージェンシ２は４ａを終了させる。
（２）ｔｅｌｎｅｔクライアント１によって入力された再開識別がゼロではない（４１５の「Ｎｏ」の分岐）。ｔｅｌｎｅｔクライアント１によって入力された再開識別に対応するサスペンドされたｔｅｌｎｅｔセッションをｔｅｌｎｅｔエージェンシ２が見つけることができない場合、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１に再度再開識別を入力するように要求する。ｔｅｌｎｅｔクライアント１によって入力された再開識別に対応するサスペンドされたセッション４ｂをｔｅｌｎｅｔエージェンシ２が見つけた場合、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１がサスペンドされたセッション４ｂを終了させたいかどうかをｔｅｌｎｅｔクライアント１に尋ねることになる。ｔｅｌｎｅｔクライアント１が４ｂを終了させることを選択した場合、ｔｅｌｎｅｔエージェンシ２は４ｂを終了させ、そうでない場合、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１とオプションを折衝し（ｔｅｌｎｅｔエージェンシ２は、サスペンドされたセッション４ｂの最新の折衝オプションを保存している）、前記折衝オプションをｔｅｌｎｅｔサーバ３に送信する。ｔｅｌｎｅｔエージェンシ２は４ｂを再開し、ｔｅｌｎｅｔクライアント１が４ｂを再開したかのように、４ｃと４ｂとの間でデータを伝送する。何らかのクライアント障害またはリンク障害がある場合、４ｃは終了し、４ｂがｔｅｌｎｅｔエージェンシ２によってサスペンドされる。４ｂが終了した場合、ｔｅｌｎｅｔエージェンシ２は４ｃを終了させる。
【００３２】
図５は、本発明の好ましい実施形態による、ｔｅｌｎｅｔクライアントが再開識別としてゼロを入力したときのｔｅｌｎｅｔログイン・プロセスである。ｔｅｌｎｅｔエージェンシ２は、ＩＰアドレス「１１．２２．３３．４４」をバインドし、ポート「２３２３」を聴取する。以下で詳細に説明する。
（１）ｔｅｌｎｅｔクライアント１は、コマンド「ｔｅｌｎｅｔ  １１．２２．３３．４４  ２３２３」によってｔｅｌｎｅｔエージェンシ２に接続し、それらはｔｅｌｎｅｔセッション４ａを作成する。ｔｅｌｎｅｔエージェンシ２は、４ａを介してデータをｔｅｌｎｅｔクライアント１に送信し、ｔｅｌｎｅｔクライアント１に再開識別を入力することを要求し、「あなたの再開識別を入力して下さい（再開しない場合は０）：」とｔｅｌｎｅｔクライアント１にプロンプトを出す。
（２）ｔｅｌｎｅｔクライアント１は「０」を入力し、４ａを介してｔｅｌｎｅｔエージェンシ２にデータを送り戻す。ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔエージェンシ２が新しいセッションとそのセッションの再開識別を作成中であることを、４ａを介してｔｅｌｎｅｔクライアント１に通知する。さらに、ｔｅｌｎｅｔエージェンシ２は、ｔｅｌｎｅｔクライアント１が宛先ｔｅｌｎｅｔサーバのＩＰアドレスおよびポートを入力するように要求する。ｔｅｌｎｅｔエージェンシ２は、「新しいｔｅｌｎｅｔセッションを作成しています。再開識別は１２３４５６です」および「あなたの宛先を入力して下さい：」とｔｅｌｎｅｔクライアント１にプロンプトを出す。
（３）ｔｅｌｎｅｔクライアント１が「１１．２２．３３．４５：２３」（１１．２２．３３．４５はｔｅｌｎｅｔサーバ３のＩＰアドレスであり、２３はｔｅｌｎｅｔサーバ３のポート番号である）を入力し、４ａを介してデータをｔｅｌｎｅｔエージェンシ２に送り戻す。ｔｅｌｎｅｔエージェンシ２はｔｅｌｎｅｔサーバ３に接続し、ｔｅｌｎｅｔセッション４ｂを作成する。
（４）それから、ｔｅｌｎｅｔエージェンシ２は４ａと４ｂとの間でデータを伝送する。
（５）ｔｅｌｎｅｔサーバ３は、４ｂを介してデータをｔｅｌｎｅｔエージェンシ２に送信し、ｔｅｌｎｅｔクライアント１にユーザ名を入力するように要求し、ｔｅｌｎｅｔエージェンシ２は、４ｂから４ａにデータを送信し、ｔｅｌｎｅｔクライアント１に「ユーザ名：」とプロンプトを出す。
（６）ｔｅｌｎｅｔクライアント１は、「ｕｓｅｒ１」を入力し、４ａを介してデータをｔｅｌｎｅｔエージェンシ２に送り戻し、ｔｅｌｎｅｔエージェンシ２は、４ａから４ｂにデータを送信し、その結果、ｔｅｌｎｅｔサーバ３はユーザ名を受信することができる。
（７）ｔｅｌｎｅｔサーバ３は、４ｂを介してデータをｔｅｌｎｅｔエージェンシ２に送信し、ｔｅｌｎｅｔクライアント１にパスワードを入力するように要求し、ｔｅｌｎｅｔエージェンシ２は、セッション４ｂから４ａにデータを送信し、ｔｅｌｎｅｔクライアント１に「パスワード：」とプロンプトを出す。
（８）ｔｅｌｎｅｔクライアント１は、パスワードを入力して、４ａを介してｔｅｌｎｅｔエージェンシ２にデータを送り戻し、ｔｅｌｎｅｔエージェンシ２は、セッション４ａから４ｂにデータを送信し、その結果ｔｅｌｎｅｔサーバ３はパスワードを受信することができる。
（９）ユーザ名およびパスワードが正しい場合、ｔｅｌｎｅｔサーバ３は、４ｂを介してデータをｔｅｌｎｅｔエージェンシ２に送信し、ＵＮＩＸ（Ｒ）シェルの使用準備ができたことをｔｅｌｎｅｔクライアント１に伝える。ｔｅｌｎｅｔエージェンシ２は、４ｂから４ａにデータを送信し、ｔｅｌｎｅｔクライアント１に「ｕｓｅｒ１：／ｕ／ｕｓｅｒ１＞」とプロンプトを出す。
【００３３】
図６は、本発明の好ましい実施形態による、ｔｅｌｎｅｔクライアントが有効な再開識別を入力したときのｔｅｌｎｅｔログイン・プロセスである。ｔｅｌｎｅｔエージェンシは、ＩＰアドレス「１１．２２．３３．４４」をバインドし、ポート「２３２３」を聴取する。以下で詳細に説明する。
（１）ｔｅｌｎｅｔクライアント１は、コマンド「ｔｅｌｎｅｔ  １１．２２．３３．４４  ２３２３」によってｔｅｌｎｅｔエージェンシ２に接続し、それらはｔｅｌｎｅｔセッション４ｃを作成する。ｔｅｌｎｅｔエージェンシ２は、４ｃを介してデータをｔｅｌｎｅｔクライアント１に送信し、ｔｅｌｎｅｔクライアント１に再開識別を入力することを要求し、「あなたの再開識別を入力して下さい（再開しない場合は０）：」とｔｅｌｎｅｔクライアント１にプロンプトを出す。
（２）ｔｅｌｎｅｔクライアント１は「１２３４５６」を入力し、４ｃを介してｔｅｌｎｅｔエージェンシ２にデータを送り戻し、ｔｅｌｎｅｔエージェンシ２は、再開識別「１２３４５６」に関する、サスペンドされたｔｅｌｎｅｔセッション４ｂを見つける。
（３）ｔｅｌｎｅｔエージェンシ２は、４ｃを介してデータをｔｅｌｎｅｔクライアント１に送信し、サスペンドされたセッション４ｂを終了するか、または再開することを選択するようにｔｅｌｎｅｔクライアント１に要求し、「サスペンドされたセッションを終了しますか？（Ｙ／Ｎ）：」とｔｅｌｎｅｔクライアント１にプロンプトを出す。ｔｅｌｎｅｔクライアント１は「Ｎ」を入力し、４ｃを介してデータをｔｅｌｎｅｔエージェンシ２に送り戻す。
（４）ｔｅｌｎｅｔエージェンシ２は、４ｃを介してｔｅｌｎｅｔクライアント１とオプションを折衝し、４ｂを介して折衝したオプションをｔｅｌｎｅｔサーバ３に中継する。
（５）ｔｅｌｎｅｔエージェンシ２は、最後にキャッシュされた４ｂのデータを、４ｃを介してｔｅｌｎｅｔクライアント１に送信し、ｔｅｌｎｅｔクライアント１に「ｕｓｅｒ１：／ｕ／ｕｓｅｒ１＞」とプロンプトを出す。
（６）それから、ｔｅｌｎｅｔエージェンシ２は４ｃと４ｂとの間でデータを伝送する。
【００３４】
上記のプロセスでは、ｔｅｌｎｅｔクライアントによって入力されたｔｅｌｎｅｔサーバのＩＰアドレスおよびポートに基づいて、ｔｅｌｎｅｔエージェンシがｔｅｌｎｅｔサーバとのセッションを作成することに留意されたい。さらに、本発明を従来のＵＮＩＸ（Ｒ）ｔｅｌｎｅｔクライアントおよびサーバに対して透過的なものとするために、ｔｅｌｎｅｔエージェンシがマップ・モジュールを含む場合、マップ・モジュールを使用して、ｔｅｌｎｅｔクライアントによって入力されたローカルＩＰアドレスおよびポート番号を、ｔｅｌｎｅｔサーバのＩＰアドレスおよびポート番号にマッピングすることが可能であり、それによってｔｅｌｎｅｔサーバとのセッションが作成される。
【００３５】
図７は、本発明の好ましい実施形態による、ｔｅｌｎｅｔエージェンシ（具体的にはマップ・モジュール）がポート・マッピングを実施し、ｔｅｌｎｅｔクライアントが再開識別としてゼロを入力したときのｔｅｌｎｅｔログイン・プロセスである。例えば、ｔｅｌｎｅｔエージェンシは、そのローカルＩＰアドレスおよびポート１１．２２．３３．４４：２３２３を宛先のｔｅｌｎｅｔサーバのＩＰアドレスおよびポート１１．２２．３３．４５：２３にマッピングする。次いで、図５に示すような「あなたの宛先を入力して下さい：」というプロンプトは行われない。ｔｅｌｎｅｔエージェンシがそのローカルＩＰアドレスおよびポート１１．２２．３３．４４：２３２３を宛先のｔｅｌｎｅｔサーバのＩＰアドレスおよびポート１１．２２．３３．４５：２３にマッピングしているので、ユーザが宛先のｔｅｌｎｅｔサーバのＩＰアドレスおよびポートを入力する必要がないことを除いて、すべてのステップは図５に示すのと同じである。
【００３６】
次に、図８および９に関連して、ｔｅｌｎｅｔエージェンシでのｔｅｌｎｅｔセッションのサスペンド・プロセスおよび再開プロセスをさらに説明する。
【００３７】
図８は、本発明の好ましい実施形態によるｔｅｌｎｅｔセッションをサスペンドするプロセスの流れ図である。ｔｅｌｎｅｔクライアントがオフラインであることを聴取モジュールが検出した場合（ステップ８１０）、聴取モジュールは、ｔｅｌｎｅｔクライアントがオフラインであることを制御モジュールに通知する（ステップ８２０）。制御モジュールのキャッシュ・モジュールは、折衝オプションおよびその他のｔｅｌｎｅｔデータを含むｔｅｌｎｅｔサーバのすべての出力データをキャッシュする（ステップ８３０）。同時に、制御モジュールの中継モジュールは、ｔｅｌｎｅｔクライアントがまだオンラインであるかのように、ｔｅｌｎｅｔサーバにＮＯＰ（ノーオペレーション）メッセージを周期的に送信することを開始する（ステップ８４０）。
【００３８】
図９は、本発明の好ましい実施形態による、サスペンドされたｔｅｌｎｅｔセッションを再開するプロセスの流れ図である。ｔｅｌｎｅｔクライアントがサスペンドされたｔｅｌｎｅｔセッションを再開することを試みていることを聴取モジュールが検出した場合（ステップ９１０）、聴取モジュールは、ｔｅｌｎｅｔクライアントの再開識別を検証する。再開識別が正しい場合、聴取モジュールは、ｔｅｌｎｅｔクライアントがサスペンドされたｔｅｌｎｅｔセッションを再開しようとしていることを制御モジュールに通知する（ステップ９２０）。制御モジュールのキャッシュ・モジュールは、再接続されたｔｅｌｎｅｔクライアントおよびｔｅｌｎｅｔサーバが互いを認識することができ、データを正しく交換することができることを確実にするために、ｔｅｌｎｅｔクライアントおよびｔｅｌｎｅｔサーバとｔｅｌｎｅｔオプションを再折衝する（ステップ９３０）。制御モジュールのキャッシュ・モジュールは、再接続されたｔｅｌｎｅｔクライアントに、最後にキャッシュしたｔｅｌｎｅｔ画面を送信する（ステップ９４０）。次いで、中継モジュールは、ｔｅｌｎｅｔサーバとｔｅｌｎｅｔクライアントとの間でデータを伝送し（ステップ９５０）、ｔｅｌｎｅｔクライアントは、サスペンドされたセッションを首尾よく再開する。
【００３９】
例示および説明のために本発明の説明を提示したが、それは本発明を論じ尽くすものではなく、開示の形態に本発明を限定するものでもない。多くの修正形態および変形形態が当業者には明らかとなるであろう。本発明の原理および実際的な応用例を最も良く説明するために、かつ企図される特定の用途に適するような様々な修正を伴う様々な実施形態に関する本発明を他の当業者が理解することが可能となるように、実施形態を選び、説明した。
【図面の簡単な説明】
【００４０】
【図１】本発明を実施することのできる分散データ処理システムの絵画表現である。
【図２】本発明の好ましい実施形態によるｔｅｌｎｅｔセッション再開機能を有するコンピュータ・ネットワーク・システムの絵画表現である。
【図３】本発明の好ましい実施形態による、図２に示すコンピュータ・ネットワーク・システム内のｔｅｌｎｅｔエージェンシのブロック図である。
【図４】本発明の好ましい実施形態による、コンピュータ・ネットワーク・システムでｔｅｌｎｅｔセッションを維持する方法の流れ図である。
【図５】本発明の好ましい実施形態による、ｔｅｌｎｅｔクライアントが再開識別としてゼロを入力したときのｔｅｌｎｅｔプロセスを示す図である。
【図６】本発明の好ましい実施形態による、ｔｅｌｎｅｔクライアントが有効な再開識別を入力したときのｔｅｌｎｅｔプロセスを示す図である。
【図７】本発明の好ましい実施形態による、ｔｅｌｎｅｔエージェンシが自動的にポート・マッピングを実施し、ｔｅｌｎｅｔクライアントが再開識別としてゼロを入力したときのｔｅｌｎｅｔプロセスを示す図である。
【図８】本発明の好ましい実施形態によるｔｅｌｎｅｔセッションをサスペンドするプロセスの流れ図である。
【図９】本発明の好ましい実施形態による、サスペンドされたｔｅｌｎｅｔセッションを再開するプロセスの流れ図である。
【符号の説明】
【００４１】
１  ｔｅｌｎｅｔクライアント
２  ｔｅｌｎｅｔエージェンシ
３  ｔｅｌｎｅｔサーバ
４ａ  セッション
４ｂ  セッション
４ｃ  セッション
１００  分散データ処理システム
１０１  クライアント
１０２  クライアント
１０３  クライアント
１０４  サーバ
１０６  サーバ
１０７  ネットワーク
３００  ｔｅｌｎｅｔエージェンシ
３１０  聴取モジュール
３２０  制御モジュール
３２２  マップ・モジュール
３２４  キャッシュ・モジュール
３２６  中継モジュール
３３０  接続モジュール
【図１】
2007157148.tif 000003
【図２】
2007157148.tif 000004
【図３】
2007157148.tif 000005
【図４】
2007157148.tif 000006
【図５】
2007157148.tif 000007
【図６】
2007157148.tif 000008
【図７】
2007157148.tif 000009
【図８】
2007157148.tif 000010
【図９】
2007157148.tif 000011