JP2002508133A - 拡張ネットワーク通信 - Google Patents

拡張ネットワーク通信

Info

Publication number
JP2002508133A
JP2002508133A JP50716099A JP50716099A JP2002508133A JP 2002508133 A JP2002508133 A JP 2002508133A JP 50716099 A JP50716099 A JP 50716099A JP 50716099 A JP50716099 A JP 50716099A JP 2002508133 A JP2002508133 A JP 2002508133A
Authority
JP
Japan
Prior art keywords
server
communication system
communication
client
transport layer
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
JP50716099A
Other languages
English (en)
Inventor
アール. スリダール、マニカム
ボルコビッチ、ボリス
シーゲル、スティーブン
ルシェ、シルヴァン
ズィ. カーン、マリック
Original Assignee
サイタラ ネットワークス インコーポレイテッド
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
Priority claimed from US08/886,869 external-priority patent/US6266701B1/en
Application filed by サイタラ ネットワークス インコーポレイテッド filed Critical サイタラ ネットワークス インコーポレイテッド
Publication of JP2002508133A publication Critical patent/JP2002508133A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 クライアント通信システム及びサーバー通信システムがデータネットワーク上で接続される通信システム。本発明において、クライアント通信システム及びサーバー通信システム間の通信は高い処理能力及び短い遅延時間等、望ましい特性を備えている。サーバー通信システムのそれぞれは、一連のトランスポート層プロトコルのうちの少なくとも1つを用いてクライアント通信システムと通信するように構成されている。クライアント通信システムは、同一連のトランスポート層プロトコルを実行するトランスポート層モジュールを備えている。クライアント通信システムはまた、トランスポート層モジュールに接続された階層化通信モジュールを備えている。階層化通信モジュールは、サーバー通信システムのうちの要求されたものと通信するための要求を受け取り、同通信要求を用いて、要求されたサーバーシステムとの通信のために一連のトランスポート層プロトコルから1つを選択するためのプロトコルセレクタを備えている。サーバー通信システムは、複数のクライアント通信システムのそれぞれとトランスポート層通信ストリームを維持し、通信システムにて要求を受け入れ、1つ以上のサーバーアプリケーションと通信するためのクライアント通信システムからの通信ストリームにおける要求を受け入れ、及び通信ストリームにてクライアント通信システム及びサーバーアプリケーション間で情報を受け渡すために、トランスポート層モジュールに接続された通信アプリケーションを備えている。

Description

【発明の詳細な説明】 拡張ネットワーク通信 発明の背景 本発明は、インターネットを介して接続されるクライアントコンピュータとサ ーバコンピュータ間の拡張通信などの、データネットワーク上で接続されるコン ピュータ間における拡張通信に関連する情報の分散型ディレクトリに関するもの である。 インターネットは、今や普遍的なツールとなり、これによって情報へのアクセ スや検索が行われるようになり、また、広くビジネスにも用いられるようになっ てきた。ワールドワイドウェッブ(ウェッブ)のブラウジングページとして知ら れているインターネット上の分散リンク型マルチメディアドキュメントのアクセ スおよび表示は、今や、ビジネスや娯楽両方において、情報検索の不可欠な要素 になってきた。以前はインターネットでの情報検索は、困難であったが、商業サ ーバ等の装置により、今では、ビジネス取引がインターネットを介して行えるよ うになっている。一つの理由として、情報の入手や商取引を行う上で便利である という理由から、一般の人々が、急激な勢いでインターネットコミュニティに加 わるようになってきている。このユーザ数の爆発的な増加と入手可能なサービス に対する人気の爆発的な高まりによって、ネットワークには、負荷がかかり、過 密状態になってきている。この過密状態のために、ユーザは必要以上の時間を費 やして、ネットワークを介した情報の検索や通信を行わなければならない。また 、この過密状態により、インターネットが、一貫性のない振る舞いをするように なっている。1日の内で、ある時間帯では、ほぼ瞬時に応答を得られるが、同じ 日の別の時間帯では、同じサーバへのアクセスが不可能に思える場合がある。長 い待ち時間や一貫性のなさが生じることによって、ユーザのインターネットへの 接 触の機会を減少させ、またビジネスの機会損失につながる場合も生じる。 図1において、クライアントコンピュータC1−C9、及びサーバコンピュー タS1−S4(つまり、クライアントアプリケーション及びサーバアプリケーシ ョンを実行するコンピュータ)は、インターネット100に接続されている。イ ンターネット自体には、パケットを出力先に転送する切り替え器あるいはルータ によって接続された、一般的に45Mb/s(例えば、T3容量電話用幹線)以 上の範囲内のデータ転送速度で運用される高速(バックボーン)データ回線が含 まれる。コンピュータC1−C9、S1−S4は、ネットワークアクセスポイント (POP)110a−110dを介して、インターネットに接続されいる。一般的 に、POPには、ルータ112a−112dが含まれており、このルータは、各 々一般的に1.5Mb/s(例えば、T1容量電話回線)から45Mb/s(T 3容量)の範囲内の容量を有するデータ回線114a−114dを介して、イン ターネットに接続されている。クライアントコンピュータC1−C3は、様々な 方法でPOPに接続することが可能であり、以下に説明するものが含まれている 。 クライアントコンピュータC1−C3は、28kb/sから56kb/sの範 囲内のデータ転送速度で通信を行う低速の電話モデム回線121−123を介し てPOP110aに直接接続されている。 クライアントコンピュータC4−C6は、ローカルエリアネットワーク(LA N)を用いた単一区域内で互いに接続されており、1つの単一のコンピュータあ るいはルータが、ゲートウェイ装置132の役目を果たしている。このゲートウ ェイ装置は、パケットルーティング、パケットフィルタリング(セキュリティ用 ファイヤウォール)、および様々な種類のプロクシサービスを含む様々な機能を 果たすことができる。前記データ転送速度は、一般的に高速であり、例えば、1 28kb/s(例えば、ISDN電話回線)の範囲内にあって、多数のクライア ントの要求に応えるようにしているが、ゲートウェイ装置132とPOP110 a間の回線124は、個々のクライアントの回線と同種のものである。 クライアントコンピュータC7−C9は、POP110bに直接接続されるが 、 このPOPにあるゲートウェイ装置140にアクセスする。このゲートウェイ装 置140は、前記クライアントコンピュータをルータ112bに接続し、次にイ ンターネットに接続するプロクシサーバとしての役割を果たす。前記クライアン トコンピュータとPOP間の回線127−129は、一般的に低速電話モデム回 線である。クライアントコンピュータとプロクシサーバ間の回線では、標準プロ トコルあるいはインターネットのその他の場所では一般に使用されない固有のプ ロトコルが使用される。 サーバサイトとPOP間の通信容量は、一般的に1.5Mb/s以上であるが 、サーバS1−S4は、POP110c−110dに接続されている。前記サー バサイトにおいて、10Mb/s以上の容量を有するローカルエリアネットワー ク150及び152は、複数のサーバと、POPとの通信に用いられるルータ1 54、156とに接続される。 インターネット通信は、図2に示すように、国際標準化機構(ISO)によっ て公表されたプロトコルに準拠した通信プロトコルの階層化モデルに基づいてい る。ISOプロトコル階層の組、すなわちプロトコルスタックには、最下層の1 からアプリケーション層の7までの番号が与えられている。 インターネットを介した通信は、パケット交換技術に基づいて行われる。イン ターネット内でのアドレス指定及び各パケットの転送は、ISOプロトコルスタ ックの内、階層3、つまりネットワーク層に相当するインターネットプロトコル (IP)によって処理される。この層により一定のアドレス指定方式に基づき、 あるホストから他のホストへデータパケットを送信する手段が提供される。ここ では、個々のコンピュータは、固有のホスト番号を有し、また各コンピュータは 、個別にアドレス指定できる一組の論理ポート番号を有している。IP層を利用 することにより、送信コンピュータは、出力先ホストへのルートを選定するタス クから解放される。しかしながら、パケットは、紛失されたりあるいは欠落した りする可能性があり、また送信された順番で着信する保証がない。従って、前記 送信ホストは、送信されたデータが正常に受信され、また一連の個別のパケット が 適切に組み立てられたかどうか確認する必要がある。 インターネットには、「全てをIP上で」という共通の理念がある。階層3の 上層には、例えば、様々なアプリケーションやトランスポートプロトコル等の、 種類の異なるプロトコルが存在し、また階層3の下層には、例えば、ネットワー クインフラを構成する様々な通信経路等の、種類の異なるプロトコルが存在する が、階層3は一定である。このことにより、IPはインターネット上で唯一の経 路選択の枠組みを提供することが可能であり、これによって、世界中で回線接続 が可能となり、またこのことが、インターネットに成功をもたらした主要な要因 である。 トランスポート層プロトコルにより、異なるコンピュータ上で実行されるアプ リケーション間のエンドツーエンドの通信が実現され、これらアプリケーション 間の情報のフローが制御される。この情報のフローを制御する例として、転送速 度制御及びフロー制御の二つがある。また、トランスポート層プロトコルにより 、例えば、順番通りの情報の配信や、紛失あるいは欠落した情報の再送信等を含 み、情報転送の信頼性を高めることが可能である。今日では、転送制御プロトコ ル(TCP)は、インターネット上のコンピュータ間において、エンドツーエンド のデータストリームの信頼度を高めるために(つまり、エラーフリーにするため に)ほとんど例外無く用いられている。TCPは、IPプロトコルの上に層を成 し、ISO階層4、つまりトランスポート層に対応する。 TCPプロトコルに対応したソフトウェアは、マイクロソフトウィンドウズ9 5及びウィンドウズNT等の最も広く普及したオペレーティングシステムや種々 の形態のUNIXに備えられている。TCPを用いるアプリケーションは、唯単 に、それ自身と指定されたリモートシステム間において、TCPに基づくストリ ームを確立するよう要求することによって、リモートアプリケーションへのスト リームの作成時、信頼度を高めたりあるいはその維持を行うなどの細かいタスク から解放される。 TCPがトランスポートプロトコルとして、世界中で受け入れられ、不可欠な ものとなった結果、様々なクライアントサーバアプリケーションが出現してきて いる。これらクライアントサーバアプリケーションは、エンドツーエンドTCP 通信チャンネルの上層にアプリケーション専用プロトコルを付加し、またこれら は、IPネットワーク層の上層に置かれる。ファイル転送用のアプリケーション 層プロトコルであるFTP(ファイル転送プロトコル)やウェッブページアクセ ス用アプリケーション層プロトコルであるHTTP(ハイパーテキスト転送プロ トコル)は、TCPの上層に階層化された、広く一般に用いられるアプリケーシ ョンプロトコルの2つの例である。 ワールドワイドウェッブによって、例えば、ネットスケープナビゲータあるい はマイクロソフトインターネットエクスプローラといったブラウザ等のクライア ントアプリケーションが、アプリケーション層のハイパーテキスト転送プロトコ ルであるHTTPを用い、サーバアプリケーションを介して、ウェッブページと 呼ばれるリンク用ドキュメントにアクセスしたり、また表示したりできるシステ ムが実現される。URL(ユニフォームリソースロケータ)と呼ばれる、ウェッ ブページあるいは関連するデータのアドレスには、一般的に、サーバホスト名や そのデータ参照用符号が含まれる。前記ブラウザによって、一般的に、サーバホ スト上において所定のポートへのTCPに基づくリンクが確立される。このポー トは、前記サーバプロセスによってモニタされる。前記クライアントと前記サー バは、1つ以上のTCP回線上でHTTPプロトコルを用いて通信を行う。最近 は、バージョン1.0のHTTPが良く用いられている。 ウェッブページには、通常、最初に要求されたページのレンダリングを完成す るために検索する必要がある他のファイルへの参照項目(URL)が含まれる。 ブラウザによって、サーバからの入力データが解釈され、また必要な他のファイ ルのURLが決定され、さらに、TCPリンクが並行して確立され、これらのフ ァイルの下位ファイルが検索される。前記下位ファイルは、必ずしも同一のサー バから送信されるとは限らない。例えば、広告バナー等、ウェッブページ上に含 まれるスキャン画像は、異なるサーバ上にある別個のファイルへの参照用として 、 そのページに含まれる。このようなスキャン画像ファイルは、そのファイル自身 のTCPリンクを介して検索される。 このTCPベースの通信には、エンドツーエンドのスライディングウィンドウ プロトコルを用いることができ、これによって、受信側が最初のパケットデータ の応答確認をするように要求する前に大量のパケットデータを送信することがで きる。あるパケットが紛失されたり、あるいは欠落した場合、タイムアウト期間 経過後、送信側はパケットの再転送が必要であると判断し、また「ゴーバックN 」の考え方で、応答確認されていないパケットから全手順を再開する必要がある と判断する。前記タイムアウト期間は、一つのホストから他のホストに行き、そ の後元に戻るまでの通常の往復時間よりもかなり長めに設定し、時期尚早なタイ ムアウトを回避する必要がある。紛失または欠落したパケットの後に送信された パケットは、全て再送信される。紛失または欠落したパケットの後に送信された パケットの内、ほとんどのパケットは、正常に受信されることが多いため、この エラー修復手続きにより通信容量を無駄に用いる結果になる。受信側にとっては 、TCPを用いて、この正常に入手できなかったパケットのみに対して要求する 手段は存在しない。パケットの紛失または誤りの割合が大きいチャンネルでは、 通常非常に小さいウィンドウが使用される。ウィンドウが小さいために、処理能 力は小さくなる。 図3は、図1に示すようにPOP110a、110cおよびインターネット1 00を介したトランスポート用通信経路上のエンドツーエンドのTCPチャンネ ルを用いて行われるデータ転送シーケンスであって、代表的なクライアントコン ピュータC1と代表的なサーバコンピュータS1間でのデータ転送シーケンスの 例を示す図である。図3において、クライアントコンピュータC1は縦線302 で示され、またサーバコンピュータS1は縦線304で示される。時間は上から 下へと経過し、また各矢印は、前記通信チャンネルを行き来するデータパケット を示す。説明のために、TCPは、四つのパケットのスライディングウィンドウ サイズで動作していると仮定する。前記クライアントコンピュータは、要求R1 を前記サーバコンピュータに送信し、サーバコンピュータは応答確認AR1を返 信する。次に、サーバコンピュータは、一連のデータパケットD1−D4を送信 し、その後、処理の前にD1への応答確認を待たなければならない。この例にお いては、サーバコンピュータは、前記要求を受け取るとすぐにデータの送信を始 めることが可能である。応答確認AD1およびAD2は、サーバコンピュータに よって受信され、引き続きデータパケットD5およびD6が、このサーバコンピ ュータによって送信される。説明のために、第6のパケットD6を通信経路の途 中付近で欠落させてある。データパケットD7−D9は、応答確認AD3−AD 5が受信された後送信される。次に、サーバコンピュータは、欠落した第6のパ ケットD6の応答確認を受け取るために待機する。タイムアウト期間310が経 過した後、サーバコンピュータは第6のパケットD6’を再送信し、その後D7 ’−D9’の再送信を順番に継続する。 図4において、HTTPを用いて、他のデータの照会先を組み込んだウェッブ ページのデータを検索するには、TCPによる数回のやり取りが必要である。図 4は、データ転送のシーケンス(前記応答確認はここには示さない)を示す。こ こで、縦線402で示すクライアントコンピュータC1は、縦線404で示すサ ーバコンピュータS1からのウェッブページの要求および受信を行う。この場合 、送信エラーの無い場合を示す。応答確認は、図示されていない。クライアント コンピュータC1は、要求G1をサーバコンピュータS1に送信する。サーバコ ンピュータS1は、ウェッブページP1で応答を返す。クライアントコンピュー タは、ページP1を解釈し、そのページに二つのドキュメントを追加する必要が あると判断し、要求G2およびG3を発行する。サーバコンピュータS1は、前 記要求を受信し、並行して前記クライアントコンピュータに対して、データP2 およびP3を送信する。 図5は、プロクシアプリケーションによって処理され、またゲートウェイコン ピュータ132上で動作する代表的なクライアントコンピュータC4と代表的な サーバコンピュータS1(図1)の間の、データ転送シーケンスの例を示す図で ある。クライアントコンピュータC4は縦線502で示され、またゲートウェイ コンピュータ132は縦線504で示され、さらにサーバコンピュータS1は縦 線506で示されている。クライアントコンピュータC4とゲートウェイコンピ ュータ132間、及び前記ゲートウェイコンピュータとサーバコンピュータS1 との間でTCPチャンネルが別々に確立される。前記クライアントコンピュータ と前記ゲートウェイコンピュータ間の通信にはTCPを使用するが、この通信で は、アプリケーション専用の要求および応答はプロクシプロトコルによってパケ ット化される。前記プロクシアプリケーションは、アウトバウンドパケットから 前記プロクシプロトコルを取り除き、それらパケットを目的とする受け取り先に 転送する。従って、前記プロクシアプリケーションは、クライアントアプリケー ション側から見れば、サーバとして機能し、またサーバアプリケーション側から 見れば、クライアントとして機能する。インバウンドパケットは、前記プロクシ アプリケーションによって受信され、また前記プロクシプロトコルによってパケ ット化され、クライアントアプリケーションへ転送される。クライアントコンピ ュータC4によって、要求G11がゲートウェイコンピュータ132に送信され る。ゲートウェイコンピュータ132は、前記要求をG12としてサーバコンピ ュータS1へ送信する。サーバコンピュータS1は、ゲートウェイコンピュータ 132によってクライアントコンピュータC4にP12として送信されるウェッ ブページP11を返信する。クライアントコンピュータは、ページP12を解釈 し、2つのドキュメントの追加が必要であると判断し、さらに、ゲートウェイコ ンピュータ132によってサーバコンピュータS1へG22およびG32として 転送される要求G21及びG31を送信する。サーバコンピュータS1は、前記 要求を受信し、また前記ゲートウェイコンピュータと並行して、前記要求された データをP21およびP31として送信する。ゲートウェイコンピュータは、前 記データをP22およびP32として、クライアントコンピュータへ送信する。 図1において、上記ゲートウェイコンピュータ132上で動作するものと同じ 機能を果たすプロクシアプリケーションは、プロクシサーバ140上で動作する 。 この場合、POPサイト110bのプロクシサーバによって処理される代表的な クライアントコンピュータC7と代表的なサーバコンピュータS1(図1)の間 での一連のデータ転送は、図5に示すように、同じパターンに従う。転送のシー ケンスは同じであるが、前述の例の場合、前記クライアントアプリケーションと 前記プロクシアプリケーション間のデータ転送速度は高速であり、また前記プロ クシアプリケーションとインターネット間の回線速度は低速である。一方、本例 の場合、前記クライアントアプリケーションと前記プロクシアプリケーション間 の回線速度は低速であり、さらに前記プロクシアプリケーションとインターネッ ト間の回線速度は高速である。 概要 全体的な側面において、本発明は、データネットワークを介して接続されるコ ンピュータ上で実行されるアプリケーション間での通信特性を望ましいものにす るためのものである。例えば、本発明によって、スループットを高めることがで き、インターネットを介して接続されるクライアントブラウザアプリケーション とウェッブサーバアプリケーション間の待ち時間を低減することが可能である。 概略的に一つの側面において、本発明は通信システムであり、この通信システ ムにおいては、一つのクライアント通信システムが、複数のサーバ通信システム と通信を行うためのデータネットワークに接続されている。各サーバ通信システ ムは、少なくとも一組のトランスポート層プロトコルの一つを用いて、そのクラ イアント通信システムと通信を行うように構成されている。このクライアント通 信システムには、トランスポート層モジュールが含まれており、このトランスポ ート層モジュールによって、前記一組のトランスポート層プロトコルが実行され る。このクライアント通信システムにはまた、前記トランスポート層モジュール に接続された、階層化された通信モジュールが含まれている。この階層化された 通信モジュールには、プロトコルセレクタが含まれており、このプロトコルセレ クタによって、前記複数のサーバ通信システムの内、要求されたサーバとの通信 要求が受信され、この通信要求を用いて、前記要求されたサーバシステムとの通 信を行うために前記一組のトランスポート層プロトコルの内一つが選択される。 さらに、このクライアント通信システムには、前記階層化された通信モジュール に接続されるアプリケーションを含むことが可能である。すなわち、前記クライ アント通信システムには、前記階層化された通信モジュールを含む一つのアプリ ケーションを含むことが可能である。また、このクライアント通信システムには 、前記トランスポート層モジュールと、前記階層化された通信モジュールと前記 アプリケーションとを実行するようにプログラムされたクライアントコンピュー タが含まれている。 このクライアント通信システムには、以下の特長を一つ以上含むことが可能で ある。 このクライアント通信システムには、ユーザインターフェースモジュールが含 まれており、これによってユーザからサーバ通信システムとの通信要求を受信す ることが可能であり、さらに、前記サーバ通信システムから送信される情報をユ ーザに対して提示することが可能である。例えば、前記ユーザインターフェース モジュールは、ウェッブブラウザアプリケーションの一部であっても良い。 また、前記アプリケーションには、ローカルデータネットワークを介して複数 のクライアントアプリケーションに接続されるサーバモジュールを含むことが可 能であり、これによって、クライアントアプリケーションからの前記サーバ通信 システムとの通信要求を受信することが可能であり、さらに、前記サーバ通信シ ステムと前記クライアントモジュール間の情報の受け渡しが可能である。例えば 、このアプリケーションは、プロクシサーバアプリケーションであっても良い。 このクライアント通信システムには、少なくとも前記クライアントアプリケー ションの内の一つを実行するようにプログラムされたクライアントコンピュータ を含むことが可能であり、また前記トランスポート層モジュール、前記階層化さ れた通信モジュールおよび前記アプリケーションを実行するようにプログラムさ れたプロクシコンピュータを含むことが可能である。この構成においては、この クライアントコンピュータとプロクシコンピュータは、ローカルデータネットワ ークによって接続される。また、このクライアント通信システムには、このロー カルデータネットワークを介してプロクシコンピュータに接続され、さらに、も う一つのクライアントアプリケーションを実行するようにプログラムされた第2 のクライアントコンピュータを含むことが可能である。 このクライアント通信システムには、前記階層化された通信モジュールのプロ トコルセレクタに接続されるサーバテーブルを含むことが可能である。このサー バテーブルには、トランスポート層プロトコルに関連する情報が保持されており 、このトランスポート層プロトコルによって、サーバ通信システムが通信を行う ように構成される。このサーバテーブルには、例えば、名前あるいはネットワー クアドレス等のサーバ通信システムの識別に関連する情報と、前記各識別された サーバ通信システムと通信を行うために前記クライアント通信システムが用いる ことができる一つ以上のトランスポート層プロトコルに関連する情報とを保持す るための第1のテーブルを含むことが可能である。サーバ通信システム用トラン スポート層プロトコルに関連する前記情報には、前記識別されたサーバ通信シス テムと通信を行うためのデータネットワークに接続されるサーバ通信システムの 通信サーバコンピュータのアドレスを含むことが可能である。さらに、このサー バテーブルには、サーバ通信システムの識別に関連する情報を保持するための、 また、前記識別されたサーバ通信システムがそれによって通信を行うように構成 された、一つ以上のトランスポート層プロトコルを識別するための第2のテーブ ルを含むことが可能である。このクライアント通信システムには、テーブルイン ターフェースモジュールが含まれ、これにより、ユーザインターフェースが備え られ、閲覧が可能となり、またサーバテーブルの情報を修正することが可能とな る。トランスポート層プロトコルに関連するサーバテーブルの情報には、有効期 限に関する情報を含むことが可能であり、この期限を過ぎると、前記トランスポ ート層プロトコルに関連する情報の中には、無効となるものが発生する。 このクライアント通信システムのトランスポート層モジュールには、サーバ通 信システムとのデータ伝送における最大転送速度を取り決めるための転送速度コ ントロールモジュールを含むことが可能である。 前記階層化された通信モジュールには、少なくとも前記トランスポート層プロ トコルの一つを用いて伝送されたデータを圧縮および解凍するためのデータ圧縮 および解凍モジュールを含むことが可能である。さらに、前記階層化された通信 モジュールには、セキュリティモジュールを含み、これによって、少なくとも前 記トランスポート層プロトコルの一つを用いて伝送されたデータの暗号化および 復号化が可能である。 少なくとも前記一組のトランスポート層プロトコルの内、一つのプロトコルは 、選択再送信に対応し、また少なくとも前記一組のトランスポート層プロトコル の内、他の一つのプロトコルは、選択再送信に対応しない。 前記階層化された通信モジュールには、マルチプレクサおよびデマルチプレク サを含み、これによって、前記サーバ通信システムとの通信を行うための個別の 要求に対応した多数のデータストリームを組合せて、前記サーバ通信システムと 通信を行うための、より少数のトランスポート層データストリームを生成するこ とが可能である。 このクライアント通信システムには、前記階層化された通信モジュールのプロ トコルセレクタに接続されるディレクトリサービスモジュールを含み、これによ り、前記データネットワークを介して、それによってサーバ通信システムが通信 を行えるように構成されたトランスポート層プロトコルに関連する情報にアクセ スすることが可能である。 もう一つの側面について概要を述べると、本発明は、サーバ通信システムを含 む通信システムであって、このサーバ通信システムは、データ通信ネットワーク を介して、複数のクライアント通信システムに接続される。このサーバ通信シス テムは、トランスポート層モジュールを含んでおり、前記クライアント通信シス テムおよび一つ以上のサーバアプリケーションと通信を行うことが可能である。 さらに、このサーバ通信システムは、前記トランスポート層モジュールと接続さ れる通信アプリケーションを含み、これによって、多数の各クライアント通信シ ステムとの間でトランスポート層通信ストリームを維持することが可能であり、 また一つ以上の通信システムと通信を行うために、前記通信ストリームを介して クライアント通信システムから要求を受信することが可能であり、さらに、前記 通信ストリームを介して前記クライアント通信システムと前記サーバアプリケー ションの間において情報を受け渡しすることが可能である。 このサーバ通信システムには、以下の特徴の内、一つ以上の特徴を含むことが 可能である。 前記サーバ通信システムには、前記データ通信ネットワークに接続され、また 前記トランスポート層モジュールおよび前記通信アプリケーションを実行するよ うにプログラムされた通信サーバコンピュータを含むことが可能である。この通 信サーバコンピュータは、前記サーバアプリケーションの内、少なくとも一つの アプリケーションを実行するようにプログラムすることが可能である。さらに、 このサーバ通信システムには、少なくとも前記サーバアプリケーションの内、一 つのアプリケーションを実行するようにプログラムされたアプリケーションサー バコンピュータと、前記通信サーバコンピュータおよび前記アプリケーションサ ーバコンピュータを接続するローカルデータネットワークを含むことが可能であ る。 前記サーバ通信システムのトランスポート層モジュールによって、二つ以上の トランスポート層プロトコルを一組にしたトランスポート層プロトコルを実行す ることが可能である。この通信アプリケーションは、トランスポート層プロトコ ルの前記組の内、第1のプロトコルを用いて前記サーバアプリケーションと通信 を行うように構成され、また、トランスポート層プロトコルの前記組の内、第2 のプロトコルを用いてクライアント通信システムと通信を行うように構成されて いる。例えば、この第2のトランスポート層プロトコルは、選択的再送信に対応 し、また前記第1のトランスポート層プロトコルは、選択的再送信には対応しな い。 この通信アプリケーションは、サーバアプリケーションと通信を行うために、 受信した要求の配信用通信速度の総合的な転送速度に基づいて、クライアント通 信システムから受信した要求を制限するように構成されている。 このサーバ通信システムには、クライアント通信システムに情報を受け渡すよ うに構成されたサーバアプリケーションを識別するサーバテーブルを含むことが 可能である。さらに、このサーバ通信システムは、一つのモジュールを含み、こ れによって、前記サーバテーブルを更新するための情報を受信することが可能で ある。 この通信アプリケーションは、単一のトランスポート層通信ストリームを介し て、一つ以上のサーバアプリケーションとクライアント通信システムとの間で情 報の受け渡しを行うように構成することが可能である。 このサーバ通信システムは、アドレス変換テーブルを含み、これによって、幾 つかのアプリケーションの識別子としてクライアント通信システムによって与え られたネットワークアドレスを、前記通信アプリケーションと前記サーバアプリ ケーションの間の通信に用いるローカルネットワークアドレスに対応させること が可能である。 このアドレス変換テーブルは、一つ以上のローカルネットワークアドレスをク ライアント通信システムによって与えられる各ネットワークアドレス用に対応さ せるように構成することが可能であり、また、前記サーバ通信システムは、サー バ選択モジュールを含み、これによって、クライアント通信システムからの通信 要求に応じてローカルアドレスの一つを選択することが可能である。さらに、こ のサーバ選択モジュールには、クライアント通信システムと選択されたローカル ネットワークアドレス間の対応関係の情報が記憶されたテーブルを含むことが可 能である。 このトランスポート層モジュールには、各クライアント通信システムへの総合 通信速度を制御するように構成した転送速度制御モジュールを含むことが可能で ある。さらに、この通信アプリケーションは、圧縮モジュールを含み、これによ り、サーバアプリケーションからクライアント通信システムに受け渡される情報 を圧縮することが可能である。この通信アプリケーションには、暗号化モジュー ルが含まれ、これによって、サーバアプリケーションからクライアント通信シス テムに受け渡される情報を暗号化することが可能である。 もう一つの側面について概略を説明すると、本発明は、データネットワークを 介して、複数のクライアント通信システムに接続されるサーバ通信システムを含 む通信システムである。このサーバ通信システムには、複数のトランスポート層 プロトコルを用いて前記クライアント通信システムと通信を行うためのトランス ポート層モジュールが含まれており、またサーバアプリケーションが含まれてお り、さらに、前記トランスポート層モジュールと前記サーバアプリケーションの 間に接続される階層化された通信モジュールが含まれている。この階層化された 通信モジュールは、前記クライアント通信システムからの送信を受け取るために 前記サーバアプリケーションからの要求を受信するためのものであり、また多数 の前記各クライアント通信システムとのトランスポート層通信ストリームを維持 するためのものであり、また、前記通信ストリームを介して、クライアント通信 システムから前記サーバアプリケーションへの要求を受信するためのものであり 、さらに、前記通信ストリームを介して、前記クライアント通信システムと前記 サーバアプリケーションとの間で情報を受け渡しするためのものである。 このサーバ通信システムには、前記データネットワークに接続された、また前 記トランスポート層モジュール、前記サーバアプリケーションおよび前記階層化 された通信モジュールを実行するようにプログラムされたサーバコンピュータを 含むことが可能である。 もう一つの側面について概略を述べると、本発明は、データ通信ネットワーク を介して、クライアント通信システムと複数のサーバ通信システムとの間の通信 を行うための方法である。この方法には、前記サーバ通信システムの内、一つの システムの識別子を受け取ることを含む通信要求の受信が含まれる。さらにこの 方法には、前記サーバ通信システムの識別子を用いて、複数のトランスポート層 プロトコルの内一つを選択し、前記サーバ通信システムと通信を行うことが含ま れており、またその後、前記選択したトランスポート層プロトコルを用いて、前 記データ通信ネットワークを介して、前記サーバ通信システムと通信を行うこと が含まれる。 前記トランスポート層プロトコルを選択することには、一つ以上のトランスポ ート層プロトコルから成る一組のプロトコルを決定することが含まれており、前 記サーバ通信システムはこのプロトコルに対して通信を行うように構成されてい る。前記一組のプロトコルを決定することには、サーバテーブルにアクセスする ことが含まれ、また前記サーバ通信システムに関する情報を検索することが含ま れる。さらに、前記一組のプロトコルを決定することにはまた、前記サーバ通信 システムから受信したデータに基づいて、前記サーバテーブルを更新することが 含まれる。前記一組のプロトコルを決定することには、前記データ通信ネットワ ークを介して、ディレクトリコンピュータから前記サーバ通信システムに関連す る情報を検索することが含まれる。前記ディレクトリコンピュータのアドレスは 、前記サーバ通信システムの識別子に対応付けることが可能である。例えば、前 記ディレクトリコンピュータのアドレスは、通信要求において識別されたサーバ コンピュータのアドレスと同じである。 前記通信要求を受信することには、要求されたトランスポート層プロトコルを 用いて、前記サーバ通信システムとの通信要求を受信することが含まれるが、こ のプロトコルに対して通信を行うように、前記サーバ通信システムは構成されて いる。前記選択されたトランスポート層プロトコルは、前記要求されたトランス ポート層プロトコルとは異なるようにすることが可能である。 前記サーバ通信システムとの前記通信要求を受信することには、前記データ通 信ネットワークを介して、第1のネットワークアドレスのサーバコンピュータと の通信要求を受信することが含まれる。本方法には、第2のネットワークアドレ スを選択することが含まれ、これによって、前記サーバ通信システムと通信を行 うことが可能である。従って、前記サーバ通信システムとの通信には、前記第2 のネットワークアドレスのコンピュータと通信を行うことが含まれる。この第2 のネットワークアドレスは、前記第1のネットワークアドレスとは異なるように することが可能である。 さらに、本方法には、ユーザインターフェースを介した情報に対する要求を受 信することが含まれ、また、この情報に対する要求に基づいてサーバ通信システ ムとの通信要求を与えることが含まれ、さらにユーザインターフェースを介して 、前記要求された情報を提供することが含まれる。さらにまた、前記通信要求を 受信することには、ローカルデータネットワークを介して、クライアントアプリ ケーションからの通信要求を受信することが含まれる。 もう一つの側面について概要を述べると、本発明は、データ通信ネットワーク を介して、サーバ通信システムと複数のクライアント通信システム間において通 信を行うための方法である。本方法には、第1のトランスポート層プロトコルを 用いて、前記サーバ通信システムと前記クライアント通信システムの内、一つの システムとの間で、第1のトランスポート層通信経路を確立することが含まれて おり、また、前記トランスポート層通信経路を介して、前記クライアント通信シ ステムから、第1のサーバアプリケーションとの通信要求を受信することが含ま れており、さらに、第2のトランスポート層プロトコルを用いて、前記第1のサ ーバアプリケーションへの第2の通信経路を確立することが含まれ、さらにまた 、前記第1のトランスポート層通信経路および前記第2のトランスポート層通信 経路を介して、前記クライアント通信システムと前記第1のサーバアプリケーシ ョンとの間の通信を行うことが含まれる。 前記第2の通信経路を確立するのに先立ち、本方法には、前記通信要求を受け 取るか否かを判断することが含まれる。その後、前記要求が受け取られた場合の み、前記第2の通信経路が確立される。 通信の実行には、前記クライアント通信システムによって正常に受信されなか ったデータを選択的に再送信することが含まれる。またさらに、通信の実行には 、 前記クライアント通信システムとの通信の総合転送速度を制限することも含まれ る。 さらに、本方法には、前記第1のトランスポート層通信経路を介して、第2の サーバアプリケーションとの通信要求を受信することが含まれており、また、前 記第2のトランスポート層プロトコルを用いて、前記第2のサーバアプリケーシ ョンへの第3のトランスポート層通信経路を確立することが含まれており、さら に、前記第1のトランスポート層通信経路および前記第3のトランスポート層通 信経路を介して、前記クライアント通信システムと前記第2のサーバアプリケー ションとの間の通信を実行することが含まれる。前記第1のサーバアプリケーシ ョンおよび前記第2のサーバアプリケーションは、同一のものであっても良いが 、前記第2のトランスポート層通信経路は、前記第3のトランスポート層通信経 路とは別のものでなければならない。 前記通信要求を受け取るか否かの判断には、通信を実行するサーバアプリケー ションを識別するサーバテーブルにアクセスすることが含まれる。また、前記要 求を受け取るか否かの判断には、前記要求を受け取ることによって、総合的な通 信容量が限度を越えるか否かの判断も含まれる。 さらに、本方法には、アドレス変換テーブルへアクセスすることが含まれ、ま た前記第1のサーバアプリケーションのローカルネットワークアドレスを判断す ることも含まれる。 本発明の側面には、以下の一つ以上の特長が含まれる。一つの特長は、データ ネットワークを介して接続されるコンピュータ間の通信に対するスループットを 改善できることである。例えば、二つのコンピュータ間における通信経路の一部 あるいは全ての経路において、代替トランスポート層プロトコルを用い、誤りを 訂正する選択的再送信方式を用いることにより、スループットを改善することが 可能である。 もう一つの特長は、ウェッブページに対する要求等、データに対する要求の実 行時の待ち時間を、前記データの送信用リンクを確立するために必要とされる受 け渡しの回数を減らすことによって短くすることができるということである。 本発明の特長を得るために、必ずしもクライアントアプリケーションやサーバ アプリケーションを改造して用いる必要はない。例えば、前記クライアントアプ リケーションやサーバアプリケーションは、TCPやHTTP等の特別なトラン スポートプロトコルやアプリケーションプロトコルと通信できるように構成する ことが可能である。実際に、他のトランスポート層プロトコルやアプリケーショ ン層プロトコルは、前記アプリケーションと合流する前記データ経路の一部また は全経路において使用されている。 本発明の側面は、ゲートウェイやプロクシコンピュータに適用することが可能 であり、また同様に、互いに直接通信を行うクライアントコンピュータとサーバ コンピュータにも適用することが可能である。 本発明の他の特徴および利点を、以下の説明および請求の範囲から明らかにす る。 図面の説明 図1は、クライアントコンピュータとサーバコンピュータのインターネットへ の一般的な接続を示す図である。 図2は、ISO通信プロトコルの七つの階層を示す図である。 図3は、TCPを用いたクライアントコンピュータとサーバコンピュータ間の データ伝送シーケンスの例を示す図である。 図4は、HTTPを用いたクライアントコンピュータとサーバコンピュータ間 のデータ伝送シーケンスの例を示す図である。 図5は、TCPを用いゲートウェイコンピュータを介して通信を行うクライア ントコンピュータとサーバコンピュータ間のデータ伝送シーケンスの例を示す図 である。 図6は、インターネットに接続されたクライアントコンピュータとサーバコン ピュータを示し、また前記クライアントコンピュータと複数のサーバコンピュー タ間の通信に用いられるゲートウェイコンピュータと遠隔通信用サーバを示す図 である。 図7は、ゲートウェイコンピュータと遠隔通信用サーバを介した、クライアン トコンピュータとサーバコンピュータ間のデータ伝送シーケンスの例を示す図で ある。 図8は、拡張HTTPプロトコルを用いたクライアントコンピュータとサーバ コンピュータ間のデータ伝送シーケンスの例を示す図である。 図9は、ゲートウェイコンピュータ上で動作するソフトウェアモジュールの構 成を示す図である。 図9aは、クライアントコンピュータ上で動作するソフトウェアモジュールの 構成を示す図である。 図10は、アプリケーションからの要求に応じて行われるリダイレクタの動作 のフローチャートを示す図である。 図11は、リダイレクタからの諸要求に応じて行われるHTTPエンジンの動 作のフローチャートを示す図である。 図12は、遠隔通信用サーバ上で実行されるソフトウェアモジュールの構成を 示す図である。 図13は、TCPおよびXTPプロトコルの両者を用いた通信に対応するサー バコンピュータ上で実行されるソフトウェアモジュールの構成を示す図である。 図14は、インターネットを介してドメインネームサーバ、リストサーバおよ びサーバLANに接続されるクライアントコンピュータを示す図である。 図15は、クライアントコンピュータ上において、ディレクトリモジュールを 含むソフトウェアモジュールの構成を示す図である。 図16は、ディレクトリモジュールの一部であるモジュールの詳細図を含む、 クライアントコンピュータ上のソフトウェアモジュールを示す図である。 図17aは、サーバコンピュータ用データベースレコードのフォーマットを示 す図である。 図17bは、サイトファイルにおけるレコードのフォーマットを示す図である 。 図18は、ホストの名前解決のフローチャートを示す図である。 図19は、一つの要求をサーバコンピュータへ接続処理する階層化サービスモ ジュールのフローチャートを示す図である。 図20は、遠隔通信用サーバアドレスに対する要求を処理するディレクトリマ ネージャのフローチャートを示す図である。 図21は、遠隔通信用サーバ情報およびローディング可能なモジュールを検索 するディレクトリマネージャのフローチャートを示す図である。 図22は、階層化されたサービスモジュールにおいて、ローディング可能なモ ジュールを含むソフトウェアモジュールを示す図である。 図23は、サーバコンピュータと遠隔通信用サーバをインターネットに接続す るネットワークアドレストランスレータを示す図である。 説明 本発明の実施例は、インターネットのようなデータネットワーク上のクライア ントアプリケーションとサーバアプリケーションとの間の通信を含む。かかる通 信の一例は、ウェブブラウザであるクライアントアプリケーションと、ウェブサ ーバであるサーバアプリケーションとの間のものであるが、他の種類のクライア ントおよびサーバアプリケーションも同様に含まれる。さらに、一方のアプリケ ーションが「クライアント」と称され、もう一方が「サーバ」と称されるが、一 方のアプリケーションがデータネットワーク上で他方と通信し、いずれもクライ アント専用あるいはサーバ専用ではない場合、本発明の実施例は多数の状況に適 用可能である。 以下の説明において、クライアントアプシケーションは、データネットワーク に接続されたクライアントコンピュータ上で実行する。サーバアプリケーション は、データネットワークにやはり接続されたサーバコンピュータに上で実行する 。サーバサイトには、サーバアプリケーションを実行できる一台以上のコンピュ ータが含まれ、本発明のいくつかの実施例では、サーバサイトは、クライアント アプリケーションと、サーバサイトで実行するサーバアプリケーションとの間の 通信に使用される追加のコンピュータも含む。クライアントアプリケーションの 観点からは、一つのサーバサイトでの複数のコンピュータの組み合わせは、クラ イアントアプリケーションにサービスを提供する「サーバ通信システム」と見な すことができる。同様に、サーバアプリケーションの観点からは、インターネッ トに接続された一台のクライアントコンピュータ、または多数のクライアントコ ンピュータとゲートウェイまたは代理コンピュータを、サーバアプリケーション からのサービスを要求する「クライアント通信システム」として見なすことがで きる。 本発明の複数の実施例は、種々のコンピュータ上で実行するソフトウェアモジ ュールにおいて実行される共通の機能性を実質的に共有しており、クライアント およびサーバコンピュータ、クライアントとサーバコンピュータ間の通信に用い るゲートウェイコンピュータなどの他のコンピュータも含む。本発明の第一の実 施例において、クライアント通信システムとサーバ通信システムは、両方とも、 多数のコンピュータを含む。共通の機能性を実行するソフトウェアモジュールは 、クライアントおよびサーバアプリケーションをホストするクライアントまたは サーバコンピュータ以外のコンピュータ上でホストされる。第二実施例では、共 通の機能性を実行するソフトウェアモジュールは、クライアントおよびサーバコ ンピュータ自体上でホストされる。他の実施例は、ソフトウェアモジュールのホ ストに種々のコンピュータの組み合わせを使用する。 図6では、本発明の図示された第一実施例は、クライアントコンピュータ610 上で実行するクライアントアプリケーション例611と、サーバサイト616、630で サーバコンピュータ618、620、632上で実行するサーバアプリケーション例619、 621、634との間の通信を支援する。すべてのコンピュータはインターネッ ト100に接続され、インターネット100は、ネットワークレイヤー(ISOレイヤー3) 通信にインターネットプロトコル(IP)を使用する。クライアントアプリケーショ ン611とサーバアプリケーション619、621、634は、TCPを使用するように構成さ れている。 クライアントコンピュータ610上で実行するクライアントアプリケーション611 は、ゲートウェイコンピュータ612を介して、サーバコンピュータ618、620、632 と、インターネット上で通信し、ゲートウェイコンピュータは612、次にPOP614 を介してインターネット100と通信する。代理アプリケーション613は、ゲートウ ェイコンピュータ612上で実行する。クライアントアプリケーション611は、サー バコンピュータに通信チャネルを確立する必要がクライアントアプリケーション 611に生じた場合に、その通信経路を確立せよという要求を、代理アプリケーシ ョン613に伝達するように構成されている。通信チャネルが一旦確立されると、 クライアントアプリケーション611とサーバコンピュータとの間のさらなる通信 がゲートウェイコンピュータ612を介して通過し、代理アプリケーション613によ って処理される。サーバコンピュータの観点から見ると、クライアントコンピュ ータ610およびゲートウェイコンピュータ612は単一のクライアント通信システム 606として機能する。サーバコンピュータには、クライアントコンピュータ610上 のアプリケーションではなく、ゲートウェイコンピュータ612上のアプリケーシ ョンがサービスを要求しているように見える。たとえば、クライアントコンピュ ータのアドレスは、一般的に、サーバコンピュータには知られない。一般的に、 代理アプリケーション613は、一個あるいはそれ以上のクライアントアプリケー ションと、一個あるいはそれ以上の遠隔サーバとの間に、多数の通信チャネルを 処理できる。 二個のサーバ通信システム616、630は、サーバ通信システム616にサーバコン ピュータ618、620を、LAN 617と638にそれぞれ接続されたサーバシステム630に サーバ632を含む。ルータ622はLAN 617に、ルータ636はLAN 638に接続され、POP 624を介してインターネット100へのアクセスを提供する。サ ーバアプリケーション619、621、634は、それぞれサーバコンピュータ618、620 、632にホストされる。サーバ通信システム616は、LAN 617にも接続される遠隔 通信サーバ626(一台のコンピュータ)も含むように特に構成されている。遠隔通 信サーバは、ルータ622とサーバコンピュータ618、620との間の特定の通信を伝 送するために使用される。サーバ通信システム630は遠隔通信サーバコンピュー タは含まない。 本第一実施例において、クライアントコンピュータ610上でホストされるクラ イアントアプリケーション611と、サーバ通信システム616でサーバコンピュータ 618によりホストされるサーバアプリケーション619との間の通信は、二種類の転 送レイヤー通信経路を使用できる。第一の種類の転送レイヤー通信経路は、直列 した二個のTCPベースのセグメントから構成され、その内の一方は、クライアン トコンピュータ610と、代理アプリケーション613を実行するゲートウェイコンピ ュータ612との間で、もう一方はゲートウェイコンピュータ612とサーバコンピュ ータ618との間である。二番目のセグメントによってたどられる経路は、ゲート ウェイコンピュータ612から、POP614でルータ615まで、インターネット100の種 々の通信リンクおよびルータを介して通過し、POP624でルータ625へ、サーバサ イト616のLAN617のルータ622へ、そして最後にサーバコンピュータ618に続く。 クライアントコンピュータ610とゲートウェイコンピュータ612との間の第一セ グメントでの通信は、転送プロトコルとしてTCPを使用する。第一セグメントに おいて、アプリケーションレイヤーでは、クライアントアプリケーションとサー バアプリケーションとの間の終端間アプリケーションレイヤー通信のために使用 されるアプリケーションプロトコルを組み込んだ代理プロトコルを使用し、クラ イアントアプリケーション611が代理アプリケーション613と通信する。第二セグ メントにおいて、サーバアプリケーションが構成される適切なアプリケーション レイヤープロトコルを使用して、代理アプリケーション613がサーバアプリケー ション619と通信する。クライアントアプリケーション611とサーバアプ リケーションとの間の通信に使用される二個の所定アプリケーションプロトコル は、ウェブページやウェブページに埋め込まれたデータにアクセスするためのHT TPと、遠隔格納されたファイルにアクセスするためのFTPである。 クライアントコンピュータ610上のクライアントアプリケーション611と、サー バ通信システム616でサーバコンピュータ618でホストされるサーバアプリケーシ ョン619との間の二番目の種類の転送レイヤー通信経路は、遠隔通信サーバ626を 使用し、ゲートウェイコンピュータ612とサーバコンピュータ618との間の通信を 送る。ゲートウェイコンピュータ612は、サーバコンピュータ618と直接通信する のではなく、遠隔通信サーバ626と通信し、次に遠隔通信サーバ626がサーバコン ピュータ618と通信し、それにより、クライアントコンピュータ610とサーバコン ピュータ618とをつなぐ経路上に三つの個別セグメントを作成する。第一セグメ ントは、クライアントコンピュータ610とゲートウェイコンピュータ612との間の 直接経路である。第二セグメントは、インターネット100内の種々の通信リンク とルータとを介し、ゲートウェイコンピュータ612からPOP614のルータ615へ、次 にPOP624のルータ625へ、サーバサイト616でLAN617のルータ622へ、最後に遠隔 通信サーバ626への経路をたどる。第三セグメントは、遠隔通信サーバ626とサー バコンピュータ618との間のLAN 617上の直接経路である。 クライアントコンピュータ610からゲートウェイコンピュータ612への第一セグ メント上での通信は、前述の第一転送レイヤー通信経路の同じセグメント上と同 じプロトコルを使用する。ゲートウェイコンピュータ612と遠隔通信サーバ626と をつなぐ第二セグメント上での通信は、TCPを使用するのではなく、第二セグメ ント上の代替転送レイヤープロトコルであるXTPを使用する。さらに、クライア ントアプリケーション611とサーバアプリケーション619とが両方ともHTTPを使用 している場合、そのHTTP通信に対応するデータストリームは、修正HTTPプロトコ ルを使用する。遠隔通信サーバ626からサーバコンピュータ618への第一セグメン ト上での通信は、TCPと、HTTPを含む標準アプリケーシ ョンレイヤープロトコルを使用する。 クライアントコンピュータ610からサーバコンピュータ618への、この二番目の 種類の転送レイヤー通信経路において、転送レイヤー(ISOレイヤー4)には三個の セグメントがある。アプリケーションレイヤー(ISOレイヤー7)では、通信経路は 、一個の論理セグメントか、三個の論理セグメントから構成される。HTTPを使用 しない場合、クライアントおよびサーバアプリケーションをつなぐ論理セグメン トは一個である。すなわち、クライアントアプリケーションから送られた一連の データバイトが、修正されないで、サーバアプリケーションに転送される。HTTP を使用すると、アプリケーションレイヤーには三つの論理セグメントがある。第 一セグメントと第三セグメントがHTTPプロトコルを使用する。さらに、クライア ントアプリケーション611からHTTPプロトコルにしたがって送られた一連のデー タバイトは、必ずしもサーバアプリケーション619に送られるわけではない。ゲ ートウェイコンピュータ612でと遠隔通信サーバ626でのHTTPデータストリームは 解釈され、必ずしも修正されることなく伝送されるわけではない。ゲートウェイ コンピュータ612と遠隔通信サーバ626は協動し、必要な変換を適切なプロトコル に提供し、クライアントおよびサーバコンピュータと通信する。 サーバ通信システム630には遠隔通信サーバがないため、クライアントコンピ ュータ610のクライアントアプリケーション611と、サーバコンピュータ632のサ ーバアプリケーション634との間の通信は、二個のセグメントから成るTCPベース の通信経路を使用する。第一セグメントは、クライアントコンピュータ610と、 代理アプリケーション613を実行するゲートウェイコンピュータ612との間で、第 二セグメントは、ゲートウェイコンピュータ612とサーバコンピュータ632との間 である。第二セグメントは、インターネット100の種々の通信リンクとルータを 介し、ゲートウェイコンピュータ612からPOP614でルータ615に、次にPOP624でル ータ625に、サーバ通信システム630でLAN638のルータ636に、最後にサーバコン ピュータ632に伝送される。ゲートウェイコンピュータ612 は、遠隔通信サーバとともに、サーバコンピュータと直接通信を同時に支援でき る。 クライアントアプリケーション611が、サーバアプリケーション619やサーバア プリケーション634のようなサーバアプリケーションと通信を開始すると、遠隔 通信サーバを介したデータ経路が確立できるかどうか、あるいは、サーバコンピ ュータへの直接経路を使用しなければならないかを、ゲートウェイコンピュータ 612が決定する。遠隔通信サーバを介した経路は、前述の代替転送およびアプリ ケーションレイヤープロトコルを使用でき、それにより、ゲートウェイコンピュ ータ612とサーバコンピュータとの間の通信のために直接経路と標準転送および アプリケーションレイヤープロトコルを使用するよりも、データ処理量が高く、 待ち時間が短いため、遠隔通信サーバを介した経路の方が望ましい。 さらに図6で、ゲートウェイコンピュータ612は、CPU 661と、磁気ディスクド ライブのような記憶装置662とを備えている。記憶装置662に格納されたソフトウ ェアは、CPU 661上で実行されると、代理アプリケーション613と、通信モジュー ル663とを備えている。通信モジュール663は、クライアントアプリケーション61 1と、インターネット100に接続されたサーバサイトでサーバアプリケーションと 通信を行う代理アプリケーション613用のインターフェースを提供する。 遠隔通信サーバ626はCPU671と記憶装置672とを備えている。記憶装置672に格 納されたソフトウェアは、CPU671上で実行されると、コールハンドラアプリケー ション674と、通信モジュール673とを含む。通信モジュール673は、サーバアプ リケーション619および621と、代理アプリケーション613と通信を行うコールハ ンドラアプリケーション674用のインターフェースを提供する。 「モジュール」という用語は、一般的にOSまたはアプリケーションのコンポーネ ントを意味し、「アプリケーション」または「アプリケーションプログラム」は、OS によって管理される別個のプロセスを指すことに留意する。別の実施例では、ソ フトウェアコンポーネントの整合に別の方法を用いることができるため、コン ポーネントが「モジュール」であっても「アプリケーション」であってもその区別は 、一般的に意味のあるものではない。 図6に図示した本第一実施例では、中央データベース645が、やはりインター ネット100に接続されたディレクトリサーバ640上でホストされる。データベース 645は、特定のサーバコンピュータと通信するよう構成された遠隔通信サーバを 識別するために使用できる情報を含んでいる。このデータベースをゲートウェイ コンピュータ612で使用し、サーバコンピュータとの通信の要求が、遠隔通信サ ーバを介した通信経路を確立することによって満たされるかどうかを決定するこ とができる。データベースへの各エントリは、サーバアプリケーションのネット ワークアドレスを、遠隔通信サーバを介したサーバそのサーバアプリケーション への間接的な経路をせットアップするために必要な特定情報に連結させる。サー バアプリケーションのネットワークアドレスは、ホストアドレスと、当該サーバ アプリケーションによって聞かれるポートのポートインデックスを含む。間接経 路をセットアップするために必要な情報は、適切な遠隔通信サーバに接続するた めに使用されるネットワークアドレスを含む。さらに、データベースは、特定ア プリケーションレイヤープロトコルが、特定サーバアプリケーションアドレスに てサーバアプリケーションによって使用されることを示すために任意に使用でき る。 本第一実施例において、以上に紹介されたように、ゲートウェイコンピュータ 612と遠隔通信サーバ626との間に使用される転送(ISOレイヤー4)プロトコルは、 高速転送プロトコル(XTP)に基づいている。XTPはゲートウェイコンピュータ612 と遠隔通信サーバ626との間のXTP通信を構成するパケットの経路を決定するため に使用されるIPネットワークプロトコル(ISOレイヤー3)上で階層となっている。 XTPはまた、単一のXTP接続上で二方向のデータ通信も支援する。 XTPは、TCPとは異なり、それによりTCPより優れたいくつかの特徴を備えてい る。XTPの特徴の一つは、失われたあるいは損傷したパケットの選択的な再送信 と組み合わせたスライドウィンドウの使用を支援する。この組合わせにより、 ゲートウェイコンピュータ612と遠隔通信サーバ626とをつなぐXTPベースのセグ メント上での効率的なデータのやり取りが行える。 図7は、要求を送信し、通信経路にそってマルチパケット応答を受信する際の データ転送のシーケンス例を示しており、データはクライアントコンピュータ61 0から、ゲートウェイコンピュータ612と遠隔通信サーバ626とを介し、最終的に サーバコンピュータ618に伝送される。例証のため、第7図の垂直線710、712、7 26、718は、それぞれクライアントコンピュータ610、ゲートウェイコンピュータ 612、遠隔通信サーバ626、サーバコンピュータ618を表しており、斜線は、通信 経路にそってコンピュータ間を通過するデータおよび肯定応答パケットを表して いる。前述のように、TCPは、クライアントコンピュータ610とゲートウェイコン ピュータ612間の第一セグメントと、遠隔通信サーバ626とサーバコンピュータ61 8間の第三セグメントにおいて使用される。XTPは、ゲートウェイコンピュータ61 2から遠隔通信サーバ626への第二セグメントで使用される。本図示おいて、第一 および第三の両XCPセグメントと第二XTPセグメントとは、4パケットのスライド ウィンドウサイズで機能し、各パケットは明確に認められる。 クライアントコンピュータ610からの要求R11は、R12としてゲートウェイコン ピュータにより転送され、R13として遠隔通信サーバにより転送される。対応す る要求パケットが受信されると、肯定応答AR11、AR12、AR13が、それぞれゲート ウェイコンピュータ612、遠隔通信サーバ626、サーバコンピュータ618により送 信される。要求R13の受信を認めると、サーバコンピュータ618は直ちにデータD1 1〜D19の送信を開始する。遠隔通信サーバ626は、データパケット用に大容量の バッファを備え、サーバ618からのすべてのデータパケットを高速で受理、認証 する。遠隔通信サーバ626が第一データパケットD11を受信すると、遠隔通信サー バ626はデータD2のをゲートウェイコンピュータ612への送信を開始する。データ パケットD22からD92までこれを続ける。本例においては、サーバコンピュータと クライアントコンピュータの間のある点でデータパケット D62が失われ、認証されなかったと想定している。パケットが失われたと遠隔通 信サーバが一旦判断すると、タイムアウトまたは明示否定応答(NACK)のいずれか により、遠隔通信サーバはD62'としてパケットを再送する。遠隔通信サーバはデ ータをバッファに格納するため、サーバ618からの第6パケットの再送を要求す る必要がないことに留意すること。ゲートウェイコンピュータが、データパケッ トD12〜D52を、パケットD13〜D53としてクライアントコンピュータ610に転送す るが、クライアントコンピュータへパケットD63〜D93を正しい順序で伝送できる まで、第6データパケットD62'の受信が成功するまで待機する。図7は、同様の 要求と、単一のTCP接続上での応答を図示した図3と対比させなければならない 。図3では、第6パケットの再送に加え、第7〜第9パケットも再送しなければ ならない。また、一個のTCPセグメントしかないため、パケット再送は、単に経 路の一部だけではなく、サーバコンピュータからクライアントコンピュータまで の全経路をたどらなくてはならない。 ゲートウェイコンピュータ612と遠隔通信サーバ626とをつなぐXTPセグメント の他の転送レイヤープロトコルの特徴としては、通信経路にそった混雑を防止す る明示レートプロトコルと、より効率的なデータ転送を提供する、コンピュータ 間の多論理データストリームの多重化がある。TCPにはレート制御に同様の明示 機構がなく、各論理データストリームに対して個別のTCPプロトコルを使用する ことに留意する。以下に詳述するとおり、これらの特徴のそれぞれにより、TCP を使用するよりも性能的に優れている。 明示レート制御により、送信側コンピュータは、データを転送するデータ経路 の能力に関する知識に基づいて、通信経路にそってデータを送信するレートを制 限できる。図6で、遠隔通信サーバ626からゲートウェイコンピュータ612へのデ ータ経路を考えてみる。この経路にそって、幅広いデータレートのデータリンク が伝送される。128kb/sのリンクがゲートウェイコンピュータ612とPOP614とを結 合し、10Mb/sのリンクが遠隔通信サーバ626をルータ622に接続する。遠隔通信サ ーバ626が、POP614からゲートウェイコンピュータ612へ128kb/s リンクを越えて伝送できるよりも大幅に高速でデータを送信した場合、そのデー タは経路のいずれかの場所でバッファに格納されなければならない。これにより 、種々の非効率が生じ、たとえば、POP614のバッファなどの過度に満杯になった バッファにより、パケットの脱落などが生じる。かかるパケット脱落は、転送レ イヤーデータストリームの他端、すなわちこの場合ではゲートウェイコンピュー タ612でのみ発見される。脱落したデータは、全経路上を再送されなければなら ない。レート制御は、遠隔通信サーバ626がデータを送信する速度を制限するた めに使用し、この問題を防止する。この場合、遠隔通信サーバ626からの許容伝 送レートは、POP614からゲートウェイコンピュータ612へのリンク上で持続でき る128kb/sを大きく上回ることはない。 多重化は、XTPを使用して、一台のコンピュータが、一対のコンピュータのた めに通信を実行する単一のXTPプロトコルを使用し、二台のコンピュータ間の多 論理データストリームを処理することができる。この多重化能力は、個別のTCP プロトコルが各論理データストリームについて独立して実行するTCPとは対照的 である。二台のコンピュータ間を多数のデータストリームが同時に通過する場合 の例としては、特定のウェブページを示すデータをウェブブラウザが要求するよ うな場合がある。ウェブページに他のデータへの参照が埋め込まれている場合、 個別のTCPプロトコルをそれぞれ備えた個別のTCPデータストリームを使用し、参 照データを検索する。XTPを使用すると、データを同一のコンピュータから検索 した場合、多数のデータストリームが多重化され、単一のプロトコルのみを使用 する。 XTPを使用した二方向データ通信により、順方向データチャネルが開いている 時に、逆方向データチャネルを暗黙のうちに開くことができる。これは、順方向 データチャネルをセットアップするために必要なものと同じ交換シーケンスを使 用して、逆方向のデータチャネルをセットアップしなければならないTCPとは対 照的である。 クライアントアプリケーションとサーバアプリケーションが、遠隔通信サーバ を介した間接通信経路上でHTTPプロトコルを使用して通信する場合に、前述の修 正HTTPプロトコルを使用する。修正HTTPプロトコルは、HTTP上で伝送される規定 データのフォーマット(たとえばhtml形式のウェブページ)を維持する。修正HT TPプロトコルの第一の側面において、クライアントとサーバとの間の多数のHTTP データストリームが、遠隔通信サーバとゲートウェイコンピュータをつなぐセグ メントで、単一の論理XTPデータストリーム上で多重化される。一個の論理XTPデ ータストリーム上への多数のHTTPデータストリームの多重化は、XTP自体とは異 なり、XTP自体に加え、一対のコンピュータ間の多数の論理データストリームを 多重化し、単一のXTPプロトコルを使用して伝送を行うことに留意する。さらに 、以下にさらに述べるように、すべてのコマンドやデータが、クライアントアプ リケーション611からサーバアプリケーション619までの全経路を伝送されるわけ ではない。たとえば、クライアントアプリケーションから代理アプリケーション へ送信されるクライアントアプリケーションコマンドは、ゲートウェイコンピュ ータ上で処理でき、遠隔通信サーバやサーバコンピュータのサービスを必要とし ない。 修正HTTPプロトコルの第二の側面では、データが遠隔通信サーバ626によりサ ーバコンピュータ618、621から先取りされ、クライアントアプリケーションから 要求されるまでは、クライアントアプリケーション611がデータの明示要求を行 うだろうという予想のもとで、ゲートウェイコンピュータ612に送られる。遠隔 通信サーバ626は、サーバコンピュータ618または621から、遠隔通信サーバを介 し、クライアントアプリケーションへ伝送されるhtml形式のウェブページに埋め 込まれた参照先に基づいて、先取りするデータを決定する。 図8は、修正HTTPプロトコルの動作を図示しており、遠隔通信サーバとゲート ウェイコンピュータでの整合動作も含む。これは、図4に図示される終端間HTTP ベースの接続を使用した同様の交換と対照させなければならない。クライアント コンピュータ610と、ゲートウェイコンピュータ612と、遠隔通信サーバ626と、 サーバコンピュータ618(図6)は、図8ではそれぞれ垂直線810、812、 826、818で表してある。ウェブページおよびその他のオブジェクト要求および応 答の伝送は矢印で示しており、図の上から下に向かって時間が進む。肯定応答は 図示されていない。クライアントコンピュータ610は、ウェブページに最初の「GE T」要求G11を送信する。ゲートウェイコンピュータ612はこの要求を、クライアン トコンピュータから遠隔通信サーバ626の要求G12として転送する。遠隔通信サー バ626はG12を受信し、標準HTTP要求G13を使用して、ウェブサーバ618からウェブ ページを要求する。ウェブサーバ618は、要求されたページP11を遠隔通信サーバ に送信する。遠隔通信サーバ626は、ページP12としてゲートウェイコンピュータ 612に送信し、ゲートウェイコンピュータ612は次にページP13をクライアントコ ンピュータ610に送信する。 遠隔通信サーバ626は、サーバコンピュータ618から受信したページP11を、P12 としてゲートウェイコンピュータ612に転送する以外に、ページP11がhtml形式の 場合は、ページP11を解釈する。ページP11がhtmlパーザで解析され、そのページ で見付けられる画像または他のオブジェクトへの二個の埋め込まれた参照先が抽 出される。例証のために、受信されたページP11の二個の参照先により、遠隔通 信サーバ626は要求G23とG33をサーバコンピュータ618に送信する。サーバコンピ ュータはデータP21とP31で応答し、データP21とP31は次に遠隔通信サーバによっ て、P22およびP32としてゲートウェイコンピュータ612に転送される。このデー タがゲートウェイコンピュータにより受信された時点で、クライアントコンピュ ータはまだデータの要求を行っていないため、データはバッファに格納される。 データは、クライアントコンピュータ610上のクライアントアプリケーション611 がそのデータを要求するであろうという予測の元、効果的に「先取り」される。ゲ ートウェイコンピュータが遠隔通信サーバ626からページP12を受信すると、その ページをP13としてクライアントコンピュータに転送し、そこで、元の要求G11を 作成したクライアントアプリケーションによって解釈される。クライアントアプ リケーションは、要求G23およびG33で遠隔通信サーバによってすでに要求された と同じデータに要求G21およびG22を 行なう。これらの要求を満たすデータP22およびP32はすでにゲートウェイコンピ ュータにより受信され、バッファに格納されているため、ゲートウェイコンピュ ータ612は、要求G21とG31は転送しない。ゲートウェイコンピュータは、バッフ ァに格納されたデータをクライアントコンピュータに伝送する。クライアントコ ンピュータの観点から、データが先取りされたという事実は、要求G21およびG31 がサービスされる前にサーバコンピュータ618に全経路を転送された場合に予想 されるよりも少ない遅延で要求が満たされるということ以外では明白にはならな い。 遠隔サーバ626がクライアントコンピュータ610からの要求を予想し、その要求 を満たすデータを検索、送信するが、クライアントコンピュータ610が予想され たように要求を行なわないという状況が少なくとも二つある。第一の状況は、ク ライアントアプリケーション611との対話で、エンドユーザがウェブページの検 索を放棄した場合である。この場合、クライアントアプリケーション611は、受 信したページに埋め込まれた参照先のデータを要求することはない。HTTPプロト コルによると、クライアントコンピュータ610からゲートウェイコンピュータ612 に放棄メッセージが送信され、この放棄メッセージが遠隔通信サーバ626に転送 される。遠隔通信サーバが放棄メッセージを受け取ると、そのページの参照先デ ータはそれ以上送信されない。ゲートウェイコンピュータにすでに送信されたデ ータはゲートウェイコンピュータでバッファに格納されるが、クライアントコン ピュータには転送されない。ゲートウェイコンピュータ612のバッファが大きく なりすぎないようにするため、一番古い未検索データはゲートウェイコンピュー タによって放棄される。 埋め込まれたデータに対して、要求が予想通り行われなかった第二番目の状況 とは、ユーザが「リンクに従った」場合であり、すなわち、現在のページが与えら れ、すべての埋め込まれたデータが受信される前に、ユーザが別のページを要求 したような場合である。この場合、放棄メッセージは一切送信されず、すべての データが先取りされる。ユーザが元のページに戻った場合、埋め込まれたデータ がゲートウェイコンピュータのバッファ上にまだある可能性があり、サーバコン ピュータ618に新たな要求を行なうことなく、そのデータに対する要求が満たさ れる。 図9では、ゲートウェイコンピュータ612で実行する代理アプリケーション613 と通信モジュール663が、前述したようなゲートウェイコンピュータの機能性を 実行する。本第一実施例は、ゲートウェイコンピュータでマイクロソフトのOS、 Windows 95またはWindows NTを使用する。遠隔通信サーバ626の機能性を実行す るソフトウェアモジュールの説明は、ゲートウェイコンピュータ612の説明の後 に行う。 代理アプリケーション613は、クライアントコンピュータ610、サーバコンピュ ータ618、およびその他のサーバコンピュータならびに遠隔通信サーバと通信を 行うために、複数のソフトウェアモジュールと協動する。代理アプリケーション 613は、種々の方法で実行でき、たとえば、多数の市販の代理アプリケーション プログラムで使用できる。典型例では、代理アプリケーションは、他のコンピュ ータで実行するクライアントアプリケーションからの要求を受理するサーバモジ ュール902と、サーバシステムと通信するサーバモジュールに接続されるクライ アントモジュール904とを備えている。 クライアントまたはサーバコンピュータへの通信経路を確立するため、代理ア プリケーション613は、種々の通信プロトコルを実行する一個あるいはそれ以上 の通信ソフトウェアモジュールからのサービスを要求する。典型的なWindows 95 またはWindows NTのインストールにおいて通常構成されるように、TCP代理アプ リケーション613からのTCP関連要求は、TCPモジュール916を含む伝送レイヤーモ ジュール940に直接送られる。本実施例において、階層化された通信モジュール9 30は、代理アプリケーション613と伝送レイヤーモジュール940との間に接続され ている。階層化された通信モジュール930は、ソフトウェアインターフェースモ ジュールと、いかなるアプリケーションから、特に代理アプリケーション613か らのすべてのTCP関連要求がリディレクタ914に送られるよ うにする「フック」を含む。フックはWinsock2内で階層化サービスモジュールとし て実行できる。リディレクタは、これらのTCPサービス要求をTCPモジュール916 、XTPモジュール956またはXTPモジュール956からのサービスを要求できるHTTPエ ンジン920に伝達する。TCPモジュール916およびXTPモジュール956は、Raw IPモ ジュール950からのサービスを要求し、Raw IPモジュール950は、データ・リンク レイヤーモジュール952と通信する。データ・リンクレイヤーモジュール952は、 クライアントコンピュータ610、サーバコンピュータ618および遠隔通信サーバ62 6を含む遠隔コンピュータとの通信リンクの維持という機能を果たす。 階層化通信モジュール930は、伝送レイヤーモジュール940を通過するデータス トリームの圧縮および解凍を任意で行うための圧縮モジュール918と、データス トリームの暗号化と復号化を任意で行うためのセキュリティモジュール917とを 含む。 図9には図示されないが、経路上に追加のソフトウェアインターフェースモジ ュールがあり、代理アプリケーション613からリディレクタ914へ、リディレクタ 914からTCPモジュール916とXTPモジュール956の各々へ、HTTPエンジン920からXT Pモジュール956へ通信要求を伝達するために使用される。以上のソフトウェアイ ンターフェースモジュールは、マイクロソフフトにより指定されるWindows Sock et(Winsock)APIにしたがって要求を受理し、要求を各モジュールに転送する。代 理アプリケーション613とリディレクタ914とをつなぐ経路上のソフトウェアイン ターフェースモジュールは、前記で紹介した「フック」ソフトウェアインターフェ ースモジュールにより実行され、代理アプリケーションからリディレクタ914へ 、TCP関連の要求のみを伝送するよう構成されている。代理アプリケーション613 によるTCP以外のプロトコルを含むサービスの要求は、図示されない他のソフト ウェアモジュールに伝送される。リディレクタ914をTCPモジュール916と、XTPモ ジュール956へつなぐ経路上と、HTTPエンジン920をXTPモジュール956につなぐ経 路上のソフトウェアインターフェー スモジュールは、マイクロソフトによって供給される動的にリンクされたライブ ラリーであるWinsock2モジュールを使用する。Winsockは、Winsock APIにしたが って要求を受理し、Winsock Service Provider Interface(SPI)にしたがって要 求を作成する。 代理アプリケーション613は、Winsock APIを使用する他のモジュールとともに 、マルチステップシーケンスで通信サービスを要求する。これらのステップは、 以下の種類の要求を含むことができる: A.TCPやXTPなどの特定の通信プロトコルを使用した「ソケット」の作成を要求 する。いかなる時点においても、このソケットは、単一データストリームに使用 できる。要求が成功裏に完了すると、ソケットへの「ハンドル」、すなわち無署名 のスケーラインデックスが返送される。さらに、このソケットに関連する要求は 、ソケットを識別するのにソケットハンドルを使用する。 B.遠隔コンピュータに外方向通信チャネルを確立せよ(接続せよ)と要求する。 TCP/IP用には、遠隔ホストアドレスとポートインデックスが、通信チャネルの終 端として指定される。 C.特定ポート上の遠隔コンピュータから内方向通信チャネルを確立せよ(傾聴 、受理せよ)と要求する。ポートは、前記ステップBで確立された外方向チャネル 用にすでに使用されているポートであっても、明確に指定してもよい。 D.外方向通信チャネル上にデータを送信する。 E.内方向通信チャネルからデータを受信する。 代理アプリケーションは、使用する通信プロトコルとしてTCPを指定する一連 のこれらの通信要求を行う。これらの要求はリディレクタ914に伝達される。特 に、クライアントコンピュータ610から接続を受理し、次にクライアントコンピ ュータの代表として、サーバコンピュータ618に接続を開放するため、クライア ントアプリケーション613は、以下を含む一連の通信要求を実行する。 1.TCPを使用して、クライアントコンピュータ610と通信するためのソケット(A )を作成する。 2.クライアントコンピュータに既知の特定ポート上の内方向通信チャネル(C) を傾聴し、受理する。 3.外方向通信チャネルをクライアントコンピュータに開く(B)よう要求する。 クライアントコンピュータのポートインデックスは、内方向通信チャネルのソー スポートである。 4.クライアントコンピュータからデータ(E)を受信する。このデータは、クラ イアントコンピュータが通信を要求するサーバコンピュータ618のアドレスを含 む。 5.TCPを使用して通信するための第二ソケット(A)を作成する。 6.第二ソケットを使用してサーバコンピュータ618(B)に接続する。 7.クライアントコンピュータ610からサーバコンピュータ618に受信されるデー タ(D)(要求)を送信する。 8.サーバコンピュータとの外方向通信用に使用するポート上でサーバコンピュ ータ618からの内方向チャネル(C)を傾聴する。 9.第二ソケットを使用して、サーバコンピュータからデータ(E)を受信する。 10.第一ソケットを使用して、受信したデータ(D)をクライアントコンピュータ6 10へ送信する。 代理アプリケーション613は、サーバコンピュータが、特別に構成されたサー バサイトか、通常に構成されたサーバサイトのいずれにあるかに係わらず、Wins ock API要求と同じものを作成する。代理アプリケーションは、要求作成時点に おいては、遠隔通信サーバを介した通信経路が確立されたかどうかは検出してお らず、また通信が確立された後、直接TCP接続がサーバコンピュータに行われた かどうか、あるいはXTP接続が遠隔通信サーバに行われたかどうかは検出しない 。 アプリケーションレイヤーにおいて、クライアントアプリケーション611が、H TTPを使用してサーバアプリケーション619と通信する場合、クライアントアプリ ケーション611は、外方向データストリームを作成し、HTTPプロトコルにしたが って内方向データストリームを受信する。クライアントアプリケーション 611がHTTPデータを代理アプリケーション613に送信すると、代理アプリケーショ ンは、データを開放ソケットに書き込むよう要求するが、それ以外は解釈しない 。代理アプリケーション613は、特別に構成されたサーバサイトあるいは通常に 構成されたサーバサイトのいずれと通信しているかに係わらず、HTTPデータを書 き込むという同じ要求を行う。代理アプリケーションは、TCP接続上でサーバコ ンピュータ618にHTTPデータが送信されるか、修正HTTPプロトコルとXTPプロトコ ルとを使用して遠隔通信サーバ626にまず送られるか、あるいはその他のコンピ ュータとの通信を必要とすることなくゲートウェイコンピュータ上で処理される かは、検出しない。 以上に列挙された代理アプリケーション613によって実行される要求のシーケ ンスにおいて、リディレクタ914は、クライアントコンピュータ610と通信するた めに使用される、第一ソケットに関連するすべての要求をTCPモジュール916に伝 送する。ゲートウェイコンピュータ612とサーバコンピュータ618との間の直接経 路上での、代理アプリケーション613と、サーバコンピュータ618上でホストされ るサーバアプリケーション619との間の通信は、リディレクタ914と、TCPモジュ ール916と、最終的には、Raw IPモジュール950と、データ・リンクレイヤーモジ ュール952を通る。代理アプリケーション613と遠隔通信サーバとの間の通信は、 リディレクタ914を通り、HTTPエンジン920を通る場合もあり、XTPモジュール956 と、Raw IPモジュール950と、最終的にはデータ・リンクレイヤーモジュール952 を通る。XTPモジュール956は、TCPの代わりに伝送レイヤープロトコルとしてXTP を使用し、TCPモジュール916と同様のレベルの機能性を実行する。HTTPエンジン 920は、それを通過するデータストリームを解釈し、ゲートウェイコンピュータ6 12と遠隔通信サーバ626との間の通信セグメント上で使用される修正HTTPプロト コルのクライアント端を実行する。 サーバコンピュータへの間接通信経路が遠隔通信サーバを介して確立できるか どうかを決定するため、リディレクタ914内のプロトコルセレクタ923は、ディ レクトリサーバ640上の中央データベース645から得た情報を使用する。この情報 は、適切な遠隔通信サーバが利用できるかどうか、利用できる場合は、その遠隔 通信サーバのアドレスを決定するために使用する。ディレクトリサーバ640のホ スト名またはネットワークアドレスは、代理アプリケーション613内であらかじ め構成される。 サーバアプリケーションに通信経路を確立する必要が生じるたびに中央データ ベース645にアクセスするのではなく、リディレクタ914は、中央データベース64 5の情報のいくつかを反映するサーバ表924を維持する。第一の表「内表」926は、 中央データベース645の項目のサブセットを含む。この表で項目が見つかれば、 中央データベース645の情報は局所的に利用できるため、中央データベースに問 い合わせる必要がない。第二の表「外表」928は、中央データベース645に項目がな いことが分かっているサーバアプリケーションのアドレスを含む。サーバアプリ ケーションに項目がなければ、そのサーバアプリケーションは、ゲートウェイコ ンピュータとサーバコンピュータとの間の直接通信経路を使用してアクセスされ る。サーバアドレスが外表に発見されれば、典型的な使用において項目が発見さ れないゲートウェイコンピュータ612で局所的に分かっているため、ディレクト リサーバ640に問い合わせる理由はない。前記二つの表は、中央データベース645 の情報に基づいて更新される。ユーザインターフェースアプリケーション912は 、サーバ表924にも接続され、ユーザが表の情報を見たり、修正したりできる。 TCPモジュール916は、TCPプロトコルを使用して開き、通信を行うというリデ ィレクタ914からのコールを受信する。TCPモジュール916は、Winsock SPIを使用 して、リディレクタ914からの要求を受信する。TCPモジュール916がリディレク タ914から要求を受信すると、リディレクタは本質的にトランスペアレントな状 態になる。TCPモジュールへのコールは、TCP要求がすべてリディレクタ914では なくTCPモジュールに直接送られる典型的なWindows 95またはWindows NTで生じ るコールと本質的に同一である。 TCPモジュール916は、代理アプリケーション613のようなアプリケーションに 代わって作成するソケットに関する情報を格納するために使用されるソケットデ ータ931を維持する。たとえば、ソケットデータは、ローカルポートインデック スとの開放データ接続と、遠隔アドレスとポートインデックスとでソケットハン ドルをマッピングする。加えて、TCPモジュール916は、接続された内方向および 外方向チャネル用データバッファ933と、内方向または外方向のそれぞれの接続 からは独立してTCPプロトコルを実行するために使用される受信機および送信機 モジュール936、948とを含む。TCPモジュール916は、IPプロトコルレイヤーを実 行する、Raw IPモジュール950と通信し、次にRaw IPモジュール950がリンク・物 理的レイヤーモジュールと通信する。リンク・物理的レイヤーモジュールは、ク ライアントコンピュータ610へ、およびPOP614のルータ615への物理的接続を含む 物理的接続上での通信という機能を果たす。 TCPモジュール916への要求の転送に加え、リディレクタ914は、代理アプリケ ーション613から受信した要求を、XTPモジュール956と、HTTPエンジン920にも転 送できる。リディレクタ914は、特別に構成されたサーバサイトに通信チャネル を開き、当該チャネル上のデータストリームが必ずしもHTTPアプリケーションレ イヤープロトコルを使用していない場合に、特別に構成されたサーバサイトと通 信するという要求をXTPモジュール956に送る。リディレクタ914は、特別に構成 されたサーバサイトへのHTTPベースの接続にHTTPエンジン920を使用する。TCP要 求とともに、リディレクトリ914は、HTTPエンジン920に、クライアントアプリケ ーションによって使用されるTCPソケットハンドルと、XTP通信を受信する遠隔通 信サーバのアドレスとを提供する。 XTPモジュール956はXTPプロトコルを実行する。XTPソケットの論理データスト リームは、XTP文脈を伴う。XTPモジュールの論理構造は、TCPモジュール916の論 理構造と非常に類似するが、特定のホストとの全論理データストリームが、XTP プロトコルを使用して通信される単一のデータストリームに多重化され、一方、 TCPモジュールでは、各論理ストリームは個別のTCPプロトコル 例を使用する。XTPモジュール956は、接続された内方向および外方向チャネル用 のデータバッファ965と、遠隔コンピュータへの各多重化データストリームにつ いてXTPプロトコルを実行するために使用される送信機モジュール966、976とを 含む。XTPモジュール956は、IPネットワークプロトコルレイヤーを実行するRaw IPモジュール950と通信し、次にRaw IPモジュール950は、リンク・物理的レイヤ ーモジュール952と通信する。リンク・物理的レイヤーモジュールは、クライアン トコンピュータ610へ、およびPOP614のルータ615への物理的接続を含む物理的接 続上での通信を実行という機能を果たす。ゲートウェイコンピュータ612と遠隔 コンピュータとの間の多数のソケット用の通信は、XTPモジュール956内の受信機 および送信機モジュール966、976により多重化および非多重化され、単一の内方 向および単一の外方向のデータストリームを生じ、かかるストリームのそれぞれ に、XTPプロトコルの単一例を使用する。ソケットデータ957は、ソケットハンド ルをローカルおよび遠隔ポートインデックスに連結し、ソケットを伴うデータス トリームを伴うキーに連結する。XTPモジュール956は、データレートを処理し、 サーバシステムへのデータレートを制限するためのレート制御モジュール977を 含む。 ゲートウェイコンピュータ612と遠隔通信サーバとの間のXTPベースの通信経路 は、すべての文脈が閉じられた後、一定期間維持される。この期間中に、クライ アントアプリケーションが遠隔通信サーバに新たな接続を開こうとすると、ほと んどオーバーヘッドなく、接続が開かれる。接続が持続する期間、すなわち「生 き時間」は、固定された間隔であっても、過去の通信特徴に基づいて順応して決 定されてもよい。 リディレクタ914はまた、代理アプリケーション613から受信したTCP要求が、 特別に構成されたサーバサイトへのHTTPベースの通信に対応すると判断する場合 に、HTTPエンジン920に要求を送信できる。HTTPエンジン920は、データ接続で使 用されたアプリケーションレイヤーHTTPプロトコルを解釈する。HTTPエンジンは 、TCP要求をXTP要求に直接変換する以外に、二つの機能を 実行する。まず第一に、ゲートウェイコンピュータと特定の遠隔通信サーバとの 間を通過する多数のHTTPデータストリームの情報が、単一のXTP文脈を使用して 通信されるように、HTTPマルチプレクサ982内で多重化される。第二に、HTTPエ ンジンは、いくつかのHTTPデータ要求を実行するために使用される先取りバッフ ァ984を維持する。HTTPマルチプレクサは、それまで要求されなかったデータで 先取りバッファを埋め、ある要求がそのデータで満たされる場合、バッファに格 納しておいたデータを供給する。 リディレクタ914は、代理アプリケーション613からの要求を適切な通信モジュ ールに導く際に使用される二個の追加データ構造を維持する。代理アプリケーシ ョン613がTCPベースのソケットを作成するよう要求した場合、その代理アプリケ ーション用にTCPソケットが実際に作成され、そのハンドルが代理アプリケーシ ョンに返送される。その後、代理アプリケーション613が特定サーバコンピュー タへの接続を要求した時、遠隔通信サーバを介したサーバコンピュータとの間接 的な通信が確立される場合は、リディレクタ914の要求で第二のXTPベースのソケ ットが作成できる。リディレクタ914は、代理アプリケーションに既知のTCPソケ ットハンドルと、遠隔通信サーバと通信するために使用されるXTPソケットハン ドルとを連結させるソケット連結表915を維持する。ソケット連結表915は、どの 通信モジュールがそのソケットへのよう給を処理するかを決定するために必要な 情報も含む。 リディレクタ914は、TCPモジュール916上に送られる、代理アプリケーション6 13からの特定の要求を記録(追跡)するために使用される追跡バッファ927も含む 。特に、代理アプリケーションがTCPソケットの作成を要求した後、内方向接続 を傾聴するあるいは特定の遠隔コンピュータに接続するという要求を受信する前 に、そのソケットに関連する他の要求が代理アプリケーションにより作成できる 。接続を確立せよという要求がリディレクタ914に受信されてから、TCPではなく XTPを通信で使用するべきであるという決定を下すことができる。したがって、 これらの初期TCP要求が、追跡バッファ927内に記録される。XTP ソケットを作成し、以前に作成されたTCPソケットに連結させなければならない と、リディレクタ914が判断した場合、そのTCPソケットに関連して記録された要 求がXTPソケットに「再生」される。このようにして、TCPソケットに向かうさらな る要求が、新たなXTPソケットに方向づけされていることには、代理アプリケー ションは認識できないように、XTPソケットが初期化される。あるいは、XTPまた はTCPが使用されるかどうかを決定する前に、決定が下されるまで、両プロトコ ルを使用して要求を平行して処理できる。リディレクタ914がTCPとXTPソケット の両方を開き、両方のソケットに通信要求を送信する。プロトコルが選択された 後、使用されないソケットは破壊される。 図10および図11はリディレクタ914とHTTPエンジン920の詳細な動作を表し ている。本第一実施例の遠隔通信サーバ626の詳細な説明は、ゲートウェイコン ピュータ612のモジュール操作の説明の後に行う。 図10で、リディレクタ914は、代理アプリケーション613の種々の要求に応答 する。TCPソケット作成の要求(1002)はTCPモジュール916に送られる。ソケット データハンドルがTCPモジュールにより作成され、代理アプリケーションに送ら れる(ステップ1004)。 要求がTCPソケットの遠隔コンピュータへの接続(すなわち書込みのために開く )(1010)である場合、リディレクタはまず、ソケット連結表915のTCPソケットハ ンドルをチェックする(ステップ1011)。XTPソケットハンドルがTCPソケットハン ドルと連結されている場合、要求は、そのTCPソケットの通信を処理するソフト ウェアモジュールに送られる(ステップ1013)。TCPソケットハンドルがソケット 連結表に記載されていない場合、リディレクタは、内表926のホストアドレスを チェックする(ステップ1012)。内表は、遠隔通信サーバにより処理されると知ら れているサーバのアドレスを含む。アドレスが発見されなかった場合(1014)、要 求はTCPモジュールに転送される(1016)。これとは別に、TCPモジュールへのコー ル中、あるいはその後しばらくしてから、リディレクタは外表928のアドレスを チェックする(ステップ1018)。アドレスが発見されれば(ステップ 1020)、アドレスのホストが、遠隔通信サーバにより処理されないことが分かり 、これ以上処理は実行されない。アドレスが内表にも外表にも発見されなかった 場合、リディレクタはディレクトリサーバ640にアクセスし、内表と外表とを更 新する(ステップ1022)。内表にアドレスが発見された場合(ステップ1014)、遠隔 通信サーバが、アドレスのホストへの要求を処理する。次のステップとして、ア ドレスのホストのアドレスポートがHTTPサーバを伴うかどうかを決定する(ステ ップ1024)。この情報は、遠隔通信サーバアドレスと共に内表にも格納される。 接続要求がHTTPサーバに対するものである場合、ソケット作成要求がHTTPエンジ ン920に送られる。HTTPエンジンは、XTPモジュール956からXTPソケットハンドル を受理し、ソケットハンドルをリディレクタ914に返送する。リディレクタは、 代理アプリケーションによる要求のためにTCPソケットを使用した状態で、ソケ ットハンドルを、HTTPエンジンがそのTCPソケットへの要求を現在処理中である という表示とともに、ソケット連結表915に記録する。アドレスのホストがHTTP サーバではない場合、リディレクタ914は、XTPソケットを作成するようXTPモジ ュール956に要求し(ステップ1027)、TCPソケットハンドルと新しいXTPソケット ハンドルとが、ソケット連結表915に記録される。XTPソケットがXTPモジュール9 56あるいは間接的にHTTPエンジン920によって作成される場合、追跡バッファ927 内に記録された要求が、ソケットへの通信を現在処理中のソフトウェアモジュー ル(XTPモジュール956またはHTTPエンジン920)に再生される(ステップ1029)。 リディレクタが、ソケット作成あるいはソケット接続以外の要求を受信した場 合(1030)、リディレクタはまず、ソケット連結表915のTCPソケットハンドルをチ ェックする(ステップ1031)。XTPソケットハンドルがTCPソケットハンドルを伴う 場合、要求は、そのTCPソケットとの通信を処理するソフトウェアモジュールに 送られ(ステップ1032)、そうでない場合は、要求はTCPモジュールに送られる(ス テップ1034)。代理アプリケーション613とクライアントアプリケーション611と の間の通信は、代理アプリケーションがあらかじめ定義されたポ ートに連結した(結び付けられた)TCPソケットを使用して傾聴要求を発する代理 アプリケーションによって確立されることに留意する。この傾聴要求は、ステッ プ1036によりTCPモジュール916に送られる。 図11では、サーバコンピュータとの通信を行うというTCPソケットに対する 要求を処理するために、遠隔通信サーバにXTPソケットを作成せよという要求をH TTPエンジン920が受信した場合(ステップ1210)、HTTPエンジンは、すでに開かれ たXTP接続を使用し、開いた接続上でTCPソケット用に通信を多重化できる。遠隔 通信サーバと使用中のXTP接続がない場合(ステップ1212)、HTTPエンジン920は、 XTPソケットの作成を要求し、遠隔通信サーバと接続する(ステップ1214)。HTTP エンジンが書込み要求を受信すると(ステップ1240)、HTTPエンジンは要求のHTTP 内容を分析する(ステップ1242)。要求が、サーバからの遠隔オブジェクトの検索 である場合(ステップ1244)、HTTPエンジンはまず、オブジェクトがすでに先取り バッファ984内にあるかどうかをチェックする(ステップ1246)。先取りバッファ9 84内にあれば、HTTPエンジンが、TCPソケットハンドルと、要求されたオブジェ クトとの間の関連を記録し(ステップ1248)、その後の傾聴および読み出し要求が 、バッファに格納された適切なデータを検索できるようにする。オブジェクトが バッファに格納されていない場合、多重化データストリームを介して遠隔通信サ ーバに要求が転送される(ステップ1250)。オブジェクトに対する要求が書込みで はなかった場合(ステップ1244)、データは遠隔通信サーバに送られる(ステップ1 252)。HTTPエンジンが、要求を送信あるいは記録するために以前に使用された接 続で傾聴せよという要求を受信した場合(ステップ1220)、それ以上の処理は必要 ない。HTTPエンジンが読み出し要求を受信した場合(ステップ1230)、以前に要求 されたオブジェクトが、HTTP文脈986から決定される。オブジェクトの全部ある いは一部が先取りバッファ984にある場合、そのデータは読み出し要求に応じて 提供される(ステップ1232)。先取りバッファにそれ以上データがない場合(ステ ップ1232)、たとえば、クライアントからの要求の前にオブジェクトの転送が開 始したが、まだ転送処理中であ る場合、HTTPエンジンは、適切なXTPソケットハンドルを用いて、XTPモジュール からのデータを要求する(ステップ1236)。受信したデータが別のオブジェクトの ものであった場合(ステップ1238)、そのデータは先取りバッファに格納され(ス テップ1240)、次のXTP読み出しが要求される(ステップ1236)。受信したデータが 、要求されたオブジェクトのものであれば、読み出し要求に応じてデータが提供 される(ステップ1242)。 関連実施例において、リディレクタ914は、他の基準に基づいて伝送レイヤー プロトコルを選択することもできる。たとえば、連続音声サーバを伴うポートへ のTCP接続を開けという要求が、伝送中のデータに非常に適した、TCPともXTPと も異なるプロトコルを使用して処理できる。たとえば、追加転送エラー修正付き プロトコルを連続音声サーバに使用でき、再送に依存するエラー制御付きプロト コルを非連続データソースに使用できる。選択基準も、データの内容の種類に関 する知識に基づくことができる。場合によっては、データ伝送の最初の部分を監 視することで、内容の種類が判断できる。 以上の説明は、クライアント通信システムの一部であるゲートウェイコンピュ ータ612の機能性に集中している。サーバサイトでは、遠隔通信サーバ626がゲー トウェイコンピュータとのXTPベースの通信の終端となっている。再び第6図に おいて、遠隔通信サーバ626は、ゲートウェイコンピュータ612とサーバ618、620 との間の出入り口として機能する。遠隔通信サーバ626とサーバコンピュータ618 、620とで、単一のサーバ通信システムを形成する。 図12では、コールハンドラアプリケーション674と通信モジュール673とが、 代表的な遠隔通信サーバ626上で実行する。第一実施例において、遠隔通信サー バ626は、Windows NTまたはUNIXベースのOSを駆動するコンピュータである。TCP モジュール1314、IPモジュール1316およびリンク・データレイヤーモジュール131 8を含む標準TCPプロトコルスタックを使用して、サーバコンピュータ618、620と 通信する。XTPモジュール1320は、IPモジュールと直接通信する。コールハンド ラアプリケーション674は、モジュール673と通信し、ゲー トウェイコンピュータとサーバコンピュータとの間の通信を処理する。加えて、 HTTPオブジェクトの先取り機能は、コールハンドラアプリケーション674内で実 行される。 コールハンドラアプリケーション674は、ゲートウェイコンピュータとサーバ コンピュータとの間の通信を導く文脈ハンドラモジュール1328と、サーバコンピ ュータからゲートウェイコンピュータへ送られるhtml形式のデータを解釈するht mlパーザ1326と、遠隔通信サーバにより処理されるサーバコンピュータに関する 情報を含む局所表1322と、サーバコンピュータとゲートウェイコンピュータとの 間で送られるデータを保持するために使用されるTCPバッファとを含む。 文脈ハンドラ1328は、まずXTP文脈を作成し、ゲートウェイコンピュータから の接続を受理するために、XTPモジュールの傾聴要求を行なう。ゲートウェイコ ンピュータがXTP文脈に接続し、宛先ネットワークアドレスとのTCP通信を確立す るよう要求すると、文脈ハンドラ1328が局所表1322内のサーバコンピュータのた めに宛先ネットワークをチェックし、宛先ネットワークアドレスを発見したら、 ゲートウェイコンピュータとサーバコンピュータとの通信を処理するための実行 スレッドを開始する。典型的な場合、各XTP文脈に一つずつ実行スレッドがある 。文脈スレッドは、一個あるいはそれ以上のサーバコンピュータに多数の同時TC Pチャネルを開き、その対応するゲートウェイコンピュータからの多重化要求を 処理できる。ポートでの傾聴がクライアントによって要求されていることを文脈 ハンドラに通知した場合、TCP傾聴が、TCPモジュール1314を介して要求され、TC Pバッファ1324に格納しているデータの読み出しを開始する。 文脈ハンドラ1328は、クライアントおよびサーバコンピュータ間の接続を最適 に制限できる。たとえば、文脈ハンドラ1328は、クライアントシステムからの接 続要求の受理が、通信サーバコンピュータの全通信容量を越えるかどうかを判断 できる。通信容量は、クライアントシステムの数、サーバコンピュータへのTCP ストリームの数、あるいは全XTP接続の処理済み最大データレートを合計 することで算出される、あるいは過去の実際のデータレートの平均値を出すこと で算出される最大全データ通信レートなどを含む種々の要因に基づくことができ る。接続の受理が通信容量より上回った場合、接続が拒否され、クライアントシ ステムはTCPでサーバコンピュータに直接接続しなければならない。 あるいは、文脈ハンドラ1328は、クライアントコンピュータからの通信要求に おいて識別されるサーバコンピュータに基づき、クライアントとサーバコンピュ ータ間の接続を制限できる。たとえば、局所表1322に記載されたサーバコンピュ ータだけがクライアントコンピュータからアクセスできるなどである。このよう にして、遠隔通信は防火壁として機能する。 文脈ハンドラ1328はまた、修正HTTPプロトコルのサーバ端を担当する。ウェブ (html形式)ページが、文脈ハンドラによってウェブサーバからTCP/IPスタックを 介して検索される場合、ページはhtmlパーザ1326によって分析される。オブジェ クトへの参照が抽出される。次に文脈ハンドラは、遠隔通信サーバによっても処 理されるサーバ上のオブジェクトの要求を行い、ゲートウェイコンピュータに結 果を転送し、ゲートウェイコンピュータは、クライアントアプリケーションから の結果に対する要求を予想して、結果を先取りバッファに格納する。文脈ハンド ラ1328はまた、圧縮モジュール1329とセキュリティモジュール1327とを含み、そ れぞれ遠隔通信サーバとゲートウェイコンピュータとの間を通過するデータスト リームの圧縮および暗号化サービスを提供する。 処理されるホストアドレスを含む局所表1322は、ディレクトリサーバ640と定 期的に通信を行ない、ゲートウェイコンピュータが、TCPアドレスに適した遠隔 通信サーバを発見できるようにしてある。表更新モジュール1325は、サーバコン ピュータからの情報を受信し、局所表1322を更新する。たとえば、サーバコンピ ュータは、表更新モジュール1325によって受信された通信メッセージを定期的に 送信するか、あるいはサーバコンピュータが初期構成された際に、サーバコンピ ュータは表更新モジュールにメッセージを送信できる。あるいは、サーバコンピ ュータのアドレスを、ユーザーインターフェースから手動で入力できる。 局所表1322はまた、入出力装置1324に接続された図形ユーザインターフェース(G UI)1323を介して手動で更新できる。 XTPモジュール1320は、レート制御モジュール1321を含む。レート制御モジュ ール1321は、各XTP接続のデータレートを制限するのではなく、各クライアント システムの全データレートを制限する。特定のクライアントシステムのレート制 限は、そのクライアントシステムへの各XTP接続の処理済み最大データレートを 最大とする。このようにして、クライアントシステムが多数のXTPストリームを 開いた場合においても、レート制御モジュール1321によって、多数のストリーム によって共有できるデータリンクの容量の超過が防止される。 第一実施例の変形において、通信サーバコンピュータ上でホストされるソフト ウェアモジュールと、サーバコンピュータ上でホストされるソフトウェアモジュ ールとは、一台のコンピュータ上で共にホストされる。この変形例で、コールハ ンドラアプリケーションとサーバアプリケーションとを通過する通信は、ローカ ルネットワーク内には流れない。その代わり、データが、前記一台のコンピュー タ上でホストされた通信サービスに送られ、これらの通信サーバによって宛先ア プリケーションに直接送られる。 本発明の第二実施例は、第一実施例におけるクライアントアプリケーションの 観点から、サーバシステムで同じ機能性を、サーバアプリケーションの観点から 、クライアントシステムで同じ機能性を実行する。ただし、第二実施例において 、ソフトウェアモジュールは、クライアントコンピュータまたはサーバコンピュ ータ上で直接ホストされる。加えて、ゲートウェイコンピュータを使用しないた め、代理アプリケーションは必要ない。クライアントコンピュータ上のソフトウ ェアモジュールの配置は、図9aに示す。本配置は、図9に図示される代理コンピ ュータに示されるものと実質的に同じであるが、代理アプリケーション613の代 わりにクライアントアプリケーション613aを用いている。クライアントアプリケ ーション613aは、入出力装置906に接続され、ユーザからの情報の要求を受理し 、要求に対してサーバコンピュータから送られる情報を表示するためのユーザ インターフェースモジュール905を含むブラウザアプリケーションでもよい。 第二実施例のサーバシステムでは、サーバコンピュータの機能性と遠隔通信サ ーバとは、マイクロソフトのWindows 95、Windows NTまたはUNIXといったOSを使 用する一台のコンピュータ上で組み合わされている。TCPおよびHTTPを使用する よう構成されたサーバアプリケーション1412は、サーバコンピュータ上で実行す る。 図13を参照すると、ソフトウェアモジュールの配置は図9に示すものに類似し ている。サーバアプリケーション1412は階層化通信サービス1402からのTCPサー ビスを要求する。リディレクタ1414はその要求を処理し、TCPモジュール1416お よびXTPモジュール1456からなる輸送サービス1404との通信、またはサーバアプ リケーション1412によって要求されたサービスを処理するためにHTTPエンジン14 60との通信を行う。リディレクタは、サーバアプリケーションのために作られた TCPソケットハンドルとリディレクタによって作られたXTPソケットとを連携させ るソケット連携テーブル1415を保持する。 リディレクタ1414は、当初クライアントシステムからのTCP接続に対する定義 済みポート上で聴取するために、サーバアプリケーション1412からの要求を受領 する。リディレクタ1414は、ローカルテーブル1424を使って、そのポートが、XT Pベースの接続をも受入れ可能なサーバアプリケーションに対応するかどうかを 判断し、そしてそうであればそれはそのポートがHTTPベースの通信に対するサー バポートかどうかも判断する。この決定に基づき、リディレクタ1414は、TCPモ ジュール1416のみを聴取するために要求を送るか、またはさらにXTPモジュール1 456またはHTTPエンジン1460のいずれかに対してXTPソケット上のXTPベースの接 続のために聴取するよう要求する。ある接続がXTPベースのソケットで受取られ ると、サーバアプリケーションに対して既知のTCPソケットハンドルおよびリデ ィレクタに対して既知のXTPソケットハンドルがソケット連携テーブル1415に記 録される。 リディレクタ1414がTCPソケットハンドルを使って他の何らかの要求を受取 ると、そのハンドルはソケット連携テーブル1415において探索され、見付かった 場合その要求はそのソケット(XTPモジュール1456またはHTTPエンジン1460)を 処理しているモジュールに転送され、そうでなければそれはTCPモジュール1416 に送られる。 HTTPエンジン1460が、情報をクライアントコンピュータに送るようにとの要求 を受取ると、HTTPエンジンはHTTPマルチプレクサ1482を使って外向きのデータを 多重化する。データストリームがhtml様式のウェブページに対応する場合、その ページの情報はhtml構文解析系1483内で解釈され、埋め込みデータへの基準はHT TPコンテクストハンドラ1481によって記録される。参照したデータがサーバアプ リケーション1412から入手できれば、HTTPコンテクストはこのデータをサーバア プリケーション1412から先取りすべき旨注意を促す。 HTTPエンジン1460が接続に対して聴取するようにとの要求を受けた場合、その 要求を満たすには3種類の方法が可能である。一番目として、HTTPコンテクスト ハンドラ1481が、サーバアプリケーション1412からデータを先取りすべきである とまえもって注意されている場合、HTTPの要求のシミュレーションがHTTPコンテ クストハンドラ1481によって行われ、聴取はこの要求のシミュレーションによっ て満足される。二番目として、XTPモジュール1456は新しいクライアントコンピ ュータから新しいXTPソケットを受取る可能性がある。三番目にHTTPマルチプレ クサ1482は、現在のクライアントコンピュータとともにXTP通信チャンネル上の 多重化通信を使って要求を満足させる可能性がある。HTTPエンジン1460は、サー バアプリケーションに対して既知のTCPソケットハンドルと聴取要求を満足させ たデータのソースとの連携を記録する。 HTTPエンジン1460がデータ読込みの要求を受けると、その読込みは、HTTPの要 求のシミュレーションを行うHTTPコンテクストハンドラ1481によって満足される か、対応する聴取要求がどのように処理されるかによってHTTPマルチプレクサ14 82によって処理されるかのどちらかになる。複数のデータの流れは単一のXTPコ ンテクスト上で多重化される可能性があるので、HTTPマルチプ レクサ1482で処理される読込み要求は、HTTPバッファ1484におけるまえもって読 込まれたデータ、または内向きのXTPソケットから読込まれたデータのいずれか によって満足される。読込みされたものの読込み要求を満足させるために使用さ れることのないデータは、読込み要求を満足させるデータが内向きストリーム上 で発見されるまで、HTTPバッファ1484に臨時保管される。 その他の実施例においては種々の形式のクライアント・サーバ間通信システム が使用可能である。ゲートウェイコンピュータを通じて通信するクライアントコ ンピュータが含まれることのあるクライアント通信システムがいくつかあり、一 方他のクライアントコンピュータはXTPを使ってサーバ通信システムと直接交信 する。ひとつ以上の遠隔通信サーバが含まれることのあるサーバ通信システムが いくつかあり、一方他のシステムは、遠隔通信サーバの機能性を有するサーバコ ンピュータの使用が可能である。さらに最初の実施例におけるゲートウェイコン ピュータ上でホスト扱いされる機能性は、図1に示すPOP 110bにおける代理サー バ140のようなあるPOPにおける代理サーバ上においてもホスト扱いされ、この場 合クライアント通信システムはクライアントサイトとPOPとの両方においてコン ピュータ上でホスト扱いされる。さらにクライアントコンピュータと代理サーバ との間の通信では、あるクライアントとある代理サーバとの間の通信に特有の所 有権を主張できるプロトコールを含む、種々のプロトコールの使用が可能である 。 本発明の他の実施例では、クライアントコンピュータとサーバコンピュータと の間の通信で代わりの輸送階層プロトコールを使用可能かどうかを決定し、かつ クライアントコンピュータが代わりの輸送階層プロトコールを使ってそのような 通信のアドレス指定をすべき、代わりのネットワークアドレスを決定するために 代わりの方法が使われる。代わりのネットワークアドレスに対するひとつのアプ ローチ方法として、たとえば、同じアドレスを指定されたホスト上の異なったポ ートインデックスのように、サーバアプリケーション自身のネットワークアドレ スの既知の変形がある。このアプローチにおいては、ゲートウェイコンピュータ あるいは特別に稼動されたクライアントコンピュータが遠隔通信サーバ(これは 存在しないこともある)への接続を行おうとし、応答がない場合、サーバコンピ ュータには遠隔通信サーバが使われていないと判断し、そのかわりにTCP接続の 実施作業に移る。 図14によれば三番目の実施例の説明で、部分的にサーバコンピュータ自身に分 配されたディレクトリ情報を使用している。サーバコンピュータが代わりのアド レスにおける代わりの通信プロトコールを使って通信を受入れることが可能かど うかを決定するために、あるクライアントコンピュータがこの分配された情報を 使用する。図14においてサーバコンピュータ1410は、代わりの通信プロトコール を使って代わりのアドレスにおいてサーバコンピュータ1410に対する通信を受信 する遠隔通信サーバ1420と連携している。関連の実施例においては遠隔通信サー バ1420とサーバコンピュータ1410との機能性は単一のコンピュータで与えられた 可能性があり、そのような実施例においては代わりのアドレスがもともと要求さ れたTCPアドレスと同じホスト上にあることに注意しなければならない。 遠隔通信サーバ1420は、LAN1430上のひとつ以上のサーバコンピュータ1410に 接続されていて、LAN1430はさらにインターネット1440上でクライアントコンピ ュータ1451に接続されている。クライアントコンピュータ1451はプロセッサ1453 、磁気ディスクのような非揮発性データ記憶装置1457および固定式または取外し 式ディスクのようなプログラム記憶装置1454を有している。通信インターフェー ス1459はプロセッサ1453をインターネット1440に接続する。サーバコンピュータ 1410も同様にプロセッサ1413、非揮発性データ記憶装置1416、プログラム記憶装 置1414および通信インターフェースを有する。また、リストサーバ1462もインタ ーネット1440に接続されており、同様の機能を一番目と二番目の実施例に述べら れたディレクトリサーバに提供する。リストサーバ1462は磁気ディスクのような 非揮発性データ記憶装置を有する。 また、インターネット1440には、インターネット上でドメーン名サービス (DNS)1470に接続されている他のコンピュータに対する名前解決を提供するDNS も接続されている。DNS1470はホスト名を受入れでき、そのホスト名と連携したI Pアドレスを提供する。リストサーバ1462もインターネット1440に接続されてお り、サーバコンピュータとこれらサーバコンピュータと連携した遠隔通信サーバ のIPアドレスとの連携を含むデータベースを維持する。このデータベースは非揮 発性データ記憶装置1461に保存されている。 図15について、クライアントコンピュータ1451(図14)で実行中のウェブブラ ウザのようなクライアントアプリケーション1510が、サーバコンピュータ1410( 図14)上のあるIPアドレスをもったTCP/IPを使って通信を試みる場合、通信はク ライアントコンピュータ1451上で実行中のひと組のソフトウェアモジュールを通 じて行われる。Microsoftウィンドウズ95またはウィンドウズNTを使ったクライ アントコンピュータに対するソフトウェアモジュールの配置は図15に示すとおり である。 クライアントアプリケーション1510は、遠隔コンピュータとの通信に必要なTC P/IPサービスを含む通信サービスへのインターフェースを提供するウィンソック 2モジュール1520との通信を行う。ウィンソック2 1520にはネームサービスプ ロバイダおよび輸送サービスプロバイダ向けインターフェースが含まれる。ネー ムサービスプロバイダは、文字列の形式のホスト名を、TCPサービスプロバイダ のような輸送サービスプロバイダによって使われているもっと下位のレベルのア ドレスに翻訳するソフトウェアモジュールである。ネームサービスプロバイダは インターネットDNSのような他のコンピュータに依存することがある。輸送サー ビスプロバイダは、クライアントアプリケーションが遠隔アプリケーションとの 通信を行えるように輸送階層通信サービスを行うソフトウェアモジュールである 。図15において階層化サービスモジュール(LSM)1540は、Microsoftウィンソック 2サービスプロバイダインターフェース(SPI)に従って、ウィンソック2 1520 に対してTCPベース輸送サービスのような標準輸送プロトコールサービスを提供 し、したがって輸送サービスプロバイダであるかのような挙動を示 す。ディレクトリモジュール1550はウィンソック2 1520に対してIPベースネー ムサービスを提供する。ディレクトリモジュール1550と階層化サービスモジュー ル1540とはともにリディレクタ1530の一部であり、このリディレクタは、クライ アントアプリケーション1510からサーバコンピュータへの特定のTCP/IP接続要求 に対して、代替通信プロトコールが使用可能かどうかを決定し、そのサーバコン ピュータとのデータの交信をするために使用される輸送サービス1590へのインタ ーフェースを提供する。一方、未加工IPモジュール1595は、輸送サービス1590内 のモジュールへの下位レベルのサービスを提供する。また輸送サービス1590もデ ィレクトリモジュール1550への通信サービスを提供する。ユーザインターフェー ス(UI)アプリケーション1535もまたディレクトリモジュール1550に接続されて いる。UIアプリケーション1535は、ディレクトリモジュール1550内に維持されて いる情報にアクセスするために、かつその情報を更新するために、クライアント コンピュータのユーザに対してインターフェースを提供する。 図16において、輸送サービス1590はTCPモジュール1660およびXTPモジュール16 62を有し、それらはLSM1540に対して直接に輸送サービスを提供する。先に実施 例で述べたように、XTPモジュール1662は、クライアントアプリケーション1510 と遠隔サーバアプリケーションとの間の強化された通信に対する輸送階層通信サ ービスを提供するために使用される。 引き続き図16において、ディレクトリモジュール1550はいくつかの副モジュー ルを有する。名前解決サービス1650はウィンソック2 1520からの名前解決要求 を受け、これら要求の解決を試みるためにデータベース1620を使用する。ディレ クトリマネージャ1610は、LSM1540から、遠隔通信サーバがサーバコンピュータ のアドレスと連携しているかどうかを判断するよう要求を受ける。ディレクトリ マネージャ1610は、データベース1620およびおそらくこれら要求に答えてネット ワーク検索モジュール1640を使用する。 データベース1620は、サーバホスト名、サーバIPアドレス、およびこれらサ ーバホストと連携した遠隔通信サーバのIPアドレスがあるとしてそのアドレス、 を含むアドレスデータベース1624を有する。またアドレスデータベース1624は、 特定のサーバサイトに対する特有の追加情報をも有する。アドレスデータベース 1624は、複数のファイルを使って非揮発性データ記憶装置1457(図14)内に保持 される。さらにデータベース1620は、揮発性作業領域1458(図14)内に保持され 、高速アクセス用データベースの部分的コピーを保存するために使われる記憶キ ャッシュ1622を有する。またデータベース1620は経年情報1629を有する。この情 報は、データアクセスに関連した情報の記録に使用され、またたとえば作業領域 1458または非揮発性記憶装置1457上に空き領域を設けるために、最近ほとんどア クセスされていない、あるいはアクセス回数のもっとも少ないデータの削除に使 用される。 アドレスデータベース1624は、各サーバコンピュータに対する個別二進ファイ ルを使って非揮発性記憶装置1457に保存される。図17aに示す特定のサーバにお いて、欄区切り1795によって区切られた二進欄がファイルに納められている。ひ とつの記録の欄には遠隔通信サーバ(SS_IP)1770のIPアドレスおよびサーバコ ンピュータ(WS_NAME)1780に対する名前項目が入っている。この記録には特定 サイト情報(SITE_INFO)1790も含まれる。アドレスデータベース1624の個々の ファイルは、単一のディレクトリに保存されており、サーバコンピュータ(WS_I P)のIPアドレスから引出されたファイル名を有する。特にWS_IP欄は符号なし32 ビット数として解釈され、記号0〜9およびA〜Zを使って基底36で表現される。共 通の前置子、たとえば"SN"、および共通の拡張子、たとえば".SSF"がすべてのフ ァイルに対して使用される。たとえば、IPアドレス"199.103.141.58"はファイル 名"SNG8V2RR.SSF"と連携している。 再び図16において、ディレクトリマネージャ1610は、このディレクトリマネー ジャが、遠隔通信サーバがサーバコンピュータのアドレスと連携しているかどう かを判断するために使っている、分散ディレクトリ情報にアクセスするために、 ネットワーク検索モジュール1640を使用している。LSM 1540からの要求に対 する回答として、ディレクトリマネージャ1610が、データベース1620のみを使っ て遠隔通信サーバ情報に対する要求を満足させられない場合、ディレクトリマネ ージャはネットワーク探索1640に対して要求を出す。ネットワーク検索1640は経 路分解器1642およびウェブサーバアクセス1646モジュールを使用し、一方、この モジュールは、サーバコンピュータ自身からの必要な情報の検索を試みるために 、輸送サービス1590を使用する。それが成功した場合、ネットワーク探索1640は 、検索された遠隔通信サーバ情報をディレクトリマネージャ1610に提供し、次に このディレクトリマネージャがデータベース1620を更新し、かつLSM 1540への回 答を提供する。 UIアプリケーション1535もまたディレクトリマネージャ1610に接続されている 。UIアプリケーション1535は、データベース1620内の情報にアクセスし、その情 報を更新するために、クライアントコンピュータのユーザに対するインターフェ ースを提供する。ユーザが、その情報をUIアプリケーション1535に明示的に提供 することによってデータベース1620内の情報を更新することもできる。たとえば ユーザは、特定のサーバコンピュータと連携した遠隔通信サーバのアドレスを知 ることができる。またユーザは、自分がデータベース1620へ保存するためにUIア プリケーションに提供する、パスワードなどの遠隔通信サーバへの接続を確立す るために必要な情報を知ることもできる。 データベース1620に対する情報を明示的に提供するよりもむしろ、ユーザは、 その情報がサーバコンピュータ1410あるいはリストサーバコンピュータ1462から 得られるよう要求することもできる(図14)。UIアプリケーション1535は、データ ベース1620に保存される予定の情報を得るために、特定のサーバコンピュータま たはリストサーバ、あるいはディレクトリマネージャ1610に対して既知のデフォ ルトリストサーバにアクセスするよう、ディレクトリマネージャ1610を通じて要 求する。リストサーバ上の明示的位置はUIアプリケーション1535によって与える ことができ、またディレクトリマネージャ1610に対して既知のデフォルト位置を 使うこともできる。ディレクトリマネージャ1610はその要求 を経路分解器1642に転送し、この経路分解器はリストサーバから情報を検索する ためにリストサーバアクセスモジュール1644を使用するか、あるいはサーバコン ピュータからの情報を検索するためにウェブサーバアクセス1646モジュールを使 用する。この情報は、ディレクトリマネージャ1610に返信され、ディレクトリマ ネージャはディレクトリ1620に居住するためにこの情報を使用する。 またユーザは、データベース1620内の情報にアクセスするためにUIアプリケー ション1535を使ってもよい。たとえば、サーバコンピュータのサイトの説明、特 定の分類におけるサーバコンピュータのリスト、あるいはサーバについての他の 情報を表示することができる。この情報はユーザが特定のサーバコンピュータを 選択するときに使うこともある。 ネットワーク探索1640は、そのコンピュータからデータファイルを検索するこ とによって、サーバコンピュータ上またはリストサーバ上のデータにアクセスす る。ウェブサーバアクセス1646は、サーバコンピュータ上のデータファイルに対 してあらかじめ決められた経路名を使用する。データファイルは「サイトファイ ル」として知られている。このファイルは秘密のディレクトリに保管されていて 、遠隔ユーザは通常アクセスできない。本実施例では、経路名は<WEBROOT>/<DIR NAME>/<FILENAME>.datの形式になる。ここで<WEBROOT>はウェブサーバがアクセ スしたルートディレクトリの経路名である。デフォルトによるリストサーバアク セス1644は情報検索のときに同じファイルを使うが、明示的経路名はUIアプリケ ーション1535を通じてユーザから提供されることもある。 サイトファイルには、データベース1620に居住するために使われる情報が含ま れている。本実施例ではサイトファイルはテキストファイルになっている。サイ トファイルは図17bに示すようにひとつ以上の回線をもっている。各回線は特定 のサーバコンピュータと連携しており、サーバコンピュータ(WS_IP)1730のIP アドレス、サーバコンピュータと連携している遠隔通信サーバがない場合空き項 目であるところの遠隔通信サーバ(SS_IP)1740のIPアドレス、および サーバコンピュータ(WS_NAME)1750用の名前項目、を区切るタブ区切り1710を有 している。その記録にはサイト特有の情報(SITE_INFO)1760が含まれており、 新しい回線1720が終端になっている。サーバコンピュータとリストサーバとの両 方の上にあるサイトファイルは、サーバコンピュータの遠隔通信サーバとの複数 の連携に対応する複数の回線をもつことがある。 各種ソフトウェアの操作は図18〜22のフローチャートに示すとおりである。以 下のフローチャートの説明においてかっこ内に示すもの以外、各ステップに含ま れる要素は図16に出ているものと同じである。クライアントアプリケーション15 10からウィンソック21520への、TCPソケット(通信チャンネル)をサーバコン ピュータへ接続するようにとの要求はいくつかのステップを経て処理される。 図18では、クライアントアプリケーション1510がサーバコンピュータの名前を 文字ストリングの形式で提供した後、ウィンソック2 1520がこのホスト名と連 携したIPアドレスを決定する。ウィンソック2 1520はそのあとそのIPアドレス を、実際に通信チャンネルを接続する輸送サービスに転送する。IPアドレスを決 定するときに、ウィンソック2 1520はまず名前解決モジュール1650からのサー バホスト名の解決を要求する(ステップ1810)。名前解決モジュール1650がホスト に対するIPアドレスを見付けられない場合(ステップ1812)、ウィンソック2 152 0は、サーバホスト名を解決するためにDNS 1470にアクセスする(図14)デフォ ルト名サービスプロバイダからのホスト名の解決を要求する(ステップ1920)。名 前解決モジュール1650がIPアドレスを提供できず(ステップ1812)、DNS 1470がサ ーバホスト用IPアドレスを提供できない場合(ステップ1822)、ウィンソック2 1 520は名前検索失敗をクライアントアプリケーション1510に報告する(ステップ18 24)。 ウィンソック2 1520が名前解決サービス1650またはDNS 1470のいずれかを使 ってサーバホスト名の解決に成功したと仮定すると、つぎにそれはLSM 1540がソ ケットをサーバコンピュータ(WS_IP)のIPアドレスに接続すること を要求する。 図19においてLSM 1540はサーバのアドレスWS-IPに接続するよう要求を受ける 。LSM 1540はディレクトリマネージャ1610を通じて、サーバコンピュータのIPア ドレスと連携している遠隔通信サーバのアドレスを要求する(ステップ1920)。デ ィレクトリマネージャ1610は、まず記憶キャッシュ1622を検索し、そして記録が 見付からなければアドレスデータベース1624を検索することによってデータベー ス1620にアクセスする。ディレクトリマネージャがサーバコンピュータに対する 記録を見付けた場合、SS_IP欄の値を返す。その値はサーバコンピュータに対す る遠隔通信サーバのアドレスである。アドレスデータベース1624内に記録が見付 かれば、ディレクトリマネージャ1610は記録のコピーを記憶キャッシュ1622に保 存する。データベース1620にサーバコンピュータに対する記録がなければ、ディ レクトリマネージャ1610は空アドレスを返す。ディレクトリマネージャ1610が空 の遠隔通信サーバアドレスを返すと(ステップ1922)、LSM 1540は直接TCPを使っ てサーバコンピュータへの接続を試みる(ステップ1910)。ディレクトリマネージ ャ1610が通信サーバのアドレスを返すと、LSM 1540は適切な強化通信プロトコー ルを使って遠隔通信サーバへの接続を行う(ステップ1926)。特に強化プロトコー ルには、第一と第二の実施例の説明において上に述べた方法でXTPモジュール166 2を使う通信が含まれる。LSM 1540がTCPを使ってサーバコンピュータに接続する 場合(ステップ1910)、それはディレクトリマネージャ1610に対してそのサーバコ ンピュータに対するその項目を更新するよう引き続き要求を出す(ステップ1915) 。 図20のフローチャートにおいて、LSM 1540がディレクトリマネージャ1610を通 じて、サーバコンピュータに対する項目を更新するよう要求すると、ディレクト リマネージャ1610はまずサーバコンピュータに対する記録がデータベース1620に 保存されているかどうか判断する(ステップ2010)。記録があれば、ディレクトリ マネージャ1610はさらに更新を行う必要がない。ディレクトリマネージャ1610が 、サーバIPアドレスと連携したアドレスデータベース1620の中に 記録がないと判断すれば(ステップ2010)、それはサーバコンピュータからサイト ファイルを得ることを試みる(ステップ2020)。ディレクトリマネージャ1610は、 ネットワーク探索1640を通じてサイトファイル情報を要求する(図16)。 このネットワーク探索は、本実施例ではHTTPプロトコールを使ってアドレスWS_I Pのサーバコンピュータを通じてサイトファイルにアクセスする。ネットワーク 探索1640がサイトファイル内の情報を返すのに成功すれば(ステップ2022)、ディ レクトリマネージャ1610は、データベース1610の記憶キャッシュ1622とアドレス データベース1624両方を更新する(ステップ2024)。たとえばサーバコンピュータ が遠隔通信サーバと連携していないという理由で、サイトファイルの検索に失敗 した場合(ステップ2022)、クライアントコンピュータがサイトファイルを要求す ると、サーバコンピュータは「ファイルが見付からない」というメッセージを返 し、ディレクトリマネージャ1610は、サーバコンピュータ用の記録を作成し、サ ーバアドレスと連携した遠隔通信サーバアドレスに対する欄を空にすることによ って、データベース1620の記憶キャッシュ1622(ただしアドレスデータベース16 24ではない)を更新する(ステップ2026)。クライアントアプリケーション1510を 終了すると記憶キャッシュ1622は削除され、したがって、サーバコンピュータが 遠隔通信サーバと連携していないことを示す記録は、サーバコンピュータにアク セスしたアプリケーションが稼動中である場合に限ってのみ存続する。 第四の実施例は、上記第三の実施例の機能性を拡大して特定の遠隔通信サーバ との通信において使用するための装填可能なソフトウェアモジュールを含むよう にしたものである。図17に戻って、データベース1620の記録のSITE_INFO欄には 、アドレスSS_IPにおいて遠隔通信サーバとの通信に対して要求される装填可能 なソフトウェアモジュールへの基準を含めることができる。ひとつの基準にはソ フトウェアモジュールのURLが含まれる。ディレクトリマネージャ1610は最新の ソフトウェアモジュールの検索と保管に対し責任がある。LSM 1540は、遠隔通信 サーバとの通信を行いながら、モジュールを動的に装填することおよび 適切なタイミングでモジュール内に利用可能な入り口点への分岐を行うことに責 任がある。特に、以前検索された装填可能なモジュール各々に対して、ディレク トリマネージャ1610は、モジュールが検索された最終の日付、あるいはもっと新 しい版ができているのかどうかを判断するためにチェックを行った最終の日付の 記録を保持する。また装填可能なモジュール各々は、もっと新しい版があること をチェックする義務がディレクトリマネージャ1610に生じる前にそのモジュール を使いうる、最大間隔とも連携している。あるモジュールが装填されるかチェッ クが行われて以来、そのモジュールに対する最大間隔以上の時間が経過した場合 、ディレクトリマネージャ1610はもっと新しい版があるかどうかをチェックし、 もしあればその新しい版がディレクトリマネージャ1610によって検索され、ユー ザの介入の必要性なしにLSM 1540によって装填される。 図21において、ディレクトリマネージャ1610が、データベース1610から、ある いは新しく検索されたサイトファイルから記録を検索した(ステップ2110)のち 、ディレクトリマネージャ1610は、SITE_INFO欄を通じて、装填可能なモジュー ルが、指示された遠隔通信サーバとの通信に対して要求されているかどうかを判 断する(ステップ2112)。装填可能なモジュールが必要ない場合、遠隔通信サーバ IPアドレスは第三の実施例のときと同じようにLSM 1540に返される。装填可能な モジュールが必要な場合(ステップ2112)、ディレクトリマネージャ1610は、要求 されたモジュールのローカルコピーが現在保存されているかどうかを判断する( ステップ2114)。保存されていなければ、ディレクトリマネージャはそのモジュ ールを検索し(ステップ2120)、それをローカルファイルに保存する。遠隔通信サ ーバのIPアドレスおよび検索されたモジュールのローカルコピーの経路名はLSM 1540に返される。前回そのモジュールが検索されていた場合(ステップ2114)、そ れはすでに期限切れになっている可能性がある。期限切れについてチェックが行 われ(ステップ2116)、そのモジュールが期限切れになっていなければ、遠隔通信 サーバのIPアドレスおよび装填可能なモジュールの局所経路名がLSM 1540に転送 される。一方、そのモジュールが期限切れに なっておれば(ステップ2116)、ディレクトリマネージャ1610は、インターネット 上の基準位置におけるその版の日付にアクセスすることによってもっと新しい版 があるかどうかチェックする(ステップ2118)。新しい版があれば、その版が検索 され、ローカルファイルに保存される(ステップ2120)。つぎに遠隔通信サーバの IPアドレスおよび装填可能なソフトウェアモジュールの局所経路名がLSM 1540に 転送される。 図22において、LSM 1540には基本階層化サービス2220およびおそらくひとつ以 上の装填済みのモジュール2320が含まれる。本実施例ではウィンドウズ95あるい はウィンドウズNTのOSを使用しており、装填可能なソフトウェアモジュールは動 的連結ライブラリ(DDL)になっている。LSM 1540が装填可能なモジュールの局 所経路名、すなわちDLLの経路名を受取ると、LSM 1540がDLLを装填する。このDL Lは合意されたAPIを使用しており、DLLがどのルーチンを提供するかを基本階層 化サービス2220に決定させるモジュール記述子を有している。またこのモジュー ル記述子は、ひとつ以上のルーチンを連続して使う必要がある場合、モジュール の適切な連鎖化を可能にするために使用される。たとえば、復元ルーチンと復号 ルーチンとは両方とも内向きデータストリーム上で使う必要性が生じることがあ り、これらルーチンの適用順序はそれらの適切な操作のために重要な意味をもつ 。LSM 1540はこれらモジュール記述子を使って、装填可能なモジュール内のルー チンがどのような状況下で呼び出されるべきか判断する。 そのような装填可能なモジュールの使用は、モジュールが、通信サーバからク ライアントコンピュータへと流れているデータの復元に対して使われている例に よって理解しうる。この場合、通信サーバと連携している装填可能なモジュール 2230には、入ってくるデータストリームにフィルタをかけるために使われる入り 口点が含まれる。基本階層化サービス2220によって輸送サービス1590から読込ま れた各入力バッファは、装填可能なモジュール2230内の内向きフィルタリングル ーチンへ転送される。このルーチンの適用結果はウィンソック2 1520へ、 さらにクライアントアプリケーション1510へと転送される。入り口点はまた種々 の状況、たとえばソケットへの接続、書き込み、ソケットの閉鎖、ソケットから の読取り、においてLSM 1540と連携し、LSM 1540に呼び出される。 引き続き図22において、装填可能なモジュールは基本階層化サービス2220と通 信を行う。今回すでに紹介した例では装填可能なモジュールがデータの復元に対 して使われているが、その中でクライアントコンピュータが受信した圧縮データ は基本階層化サービス2220から装填可能なモジュール2230へと転送され、そのデ ータはそこで復元され、復元されたデータは装填可能なモジュール2230から基本 階層化サービス2220へと返送される。復元されたデータはつぎにクライアントア プリケーション1510に送られる。復号ルーチンを提供する装填可能なモジュール に対して同様のデータ流れが使われる。 装填可能なモジュールはまた輸送サービス1590と直接通信することも可能であ る。たとえば、装填可能なモジュールは単一のTCP接続上の複数のソケット接続 を多重化することがある。この場合、基本階層化サービス2220は外向きデータを 装填可能なモジュール2230に提供し、装填可能なモジュール2230は、それを他の 接続からのデータとともに多重化した後、そのデータをTCPモジュール1660に提 供することがある。 また装填可能なモジュールは、たとえば所有権を主張できる輸送階層プロトコ ールが特定のサーバコンピュータとともに使われた場合、輸送サービスを必然的 に実行する。そのようなプロトコールは、たとえばストリーム式オーディオデー タを効率的な方法で提供するために使われることがある。この場合、装填可能な モジュール2230は未加工IP 1595と直接交信する。 装填可能なモジュールは、接続を開始したクライアントアプリケーション1510 から分離したアプリケーションであるアプリケーションインターフェース2210と も交信する。このようにして、カスタマイズしたクライアントサーバアプリケー ションを開始することができる。たとえば、あるサーバコンピュータに特有のカ スタマイズしたユーザインターフェースを装填可能なモジュールによって開始 することができる。装填可能なモジュールはつぎにアプリケーションインターフ ェース2210用インターフェースとアプリケーションインターフェースに必要な通 信サービスとを提供する。 第三および第四の実施例の説明では、サーバコンピュータと連携中のデータベ ース1620における単一データベース項目を引用した。事実いくつかの遠隔通信サ ーバコンピュータを特定のサーバコンピュータと連携させることもできる。この 場合、そのサーバコンピュータと連携したアドレスデータベース1622内のファイ ルは図17bに示すフォーマットの複数の記録をもつことになる。第三の実施例に おいて、ディレクトリマネージャ1610は、どちらの通信サーバアドレスをLSM 15 40に与えるかの選択を行う。たとえば、ディレクトリマネージャ1610は、総当り 方式を実行することがある。この方式では、LSM 1540によるサーバコンピュータ へ接続するようにとの各要求が、前回の接続時とは異なった遠隔通信サーバが使 われるという結果になる。またディレクトリマネージャ1610は、たとえばデータ ベースのサイト情報欄に記録された他の情報に基づいて他の選択方法を実行する こともある。たとえば、サイト情報欄は、ある遠隔通信サーバがその遠隔通信サ ーバに対して高速のデータ接続をもったクライアントに適切であり、一方もうひ とつの通信サーバは低速または長時間待機接続をともなうクライアントに適切で あることを示すことがある。 また第三および第四の実施例において、あるサーバコンピュータへの強化通信 経路を確立するローカルコンピュータの観点から、システムの説明を行った。は じめのふたつの実施例では、ある強化された通信経路が強化輸送階層プロトコー ル、すなわちXTPプロトコール、あるいは単一のTCPまたはXTPを使うことによる クライアントアプリケーションからのソケット接続の多重化、を使用した。第三 および第四の実施例では、ローカルコンピュータと遠隔サーバとの間の通信は、 必ずしも輸送階層通信プロトコールを含んではいないが、多種多様の方法で強化 可能である。たとえば、クライアントコンピュータと遠隔コンピュータとの間の 通信に対するアプリケーション階層強化の使用が可能である。たとえば、サ ーバコンピュータがカタログショッピングサービスをサポートしている場合、ロ ーカルコンピュータとサーバコンピュータとの間の通信には、たとえば商品の説 明や価格のような相対的に低いレベルのデータ要求が含まれることがある。しか し、ユーザには標準のウェブブラウザの範囲内で完全仕様のインターフェースが 提供されることがある。階層化サービスモジュール内、あるいは装填可能モジュ ール内のソフトウェアは、そのウェブブラウザとクライアントコンピュータ・サ ーバコンピュータ間で交わされた低レベル通信との間のインターフェースとを提 供する。他の強化通信へのアプローチが行われ、データリンク階層からアプリケ ーション階層へと種々の階層で実行されたが、それら通信を説明済みあるいは関 連の実施例で使うことができる。 また第四の実施例では、サーバコンピュータに対して複数の遠隔通信サーバが 利用できる場合、全リストがLSM 1540に与えられる。つぎに装填可能モジュール は、各接続に対し適切な通信サーバを選択するのに使われる。 第四の実施例ではまた、他の形態の装填可能モジュールを使うことができる。 たとえば、DLLよりむしろジャバアプレットが使われる。 第三および第四の実施例において、データベース1620は、データベースの記録 と装填可能ソフトウェアモジュールとを保存するために、クライアントコンピュ ータのファイルシステム上に保存されたテキストファイルを使って実施される。 ある対象データベースが代わりに使われることもある。たとえば、各記録は、各 欄のタグと長さとを含む二進ファイルとして保存でき、複数の記録を単一ファイ ルに保存するか、あるいは関係表を使うことが可能である。さらに装填可能ソフ トウェアモジュールが使われる場合、データベース1620が、ローカルコンピュー タのファイルシステムを使うよりもむしろそのモジュール自身の保存に使われる ことがある。 また第三および第四の実施例において、協調型名前解決サービス1650および階 層化サービスモジュール1540の使用によって、クライアントアプリケーションが 、インターネットDNSではおそらく解決できないホスト名を使えるように なる。たとえば、図15において、「フレンドリな」名前がクライアントアプリケ ーション1510からウィンソック2 1520に転送可能である。このフレンドリな名 前はディレクトリモジュール1550に転送され、このモジュールは、適切な輸送サ ービスが必要とする形式のアドレスを有するデータ構造を返す。 遠隔通信サーバを通じてあるサーバコンピュータにアクセスしうるかどうかを 判断するための代わりのアプローチには、当初TCPを使ってサーバコンピュータ から情報を検索するクライアントコンピュータ(あるいは代理コンピュータ)が 含まれる。つぎにTCP接続上に移されたアプリケーション階層データに基づいて 、クライアントコンピュータが遠隔通信サーバのアドレスを決定する。httpベー スのデータ接続の場合、遠隔通信サーバのアドレスはHTTP要求への応答の一部と して提供される。サーバアドレスはサーバコンピュータ上の保存されたファイル 内に埋込み可能であり、そこで標準ウェブサーバアプリケーションによって通常 のデータ検索の一部としてクライアントコンピュータに提供される。その代わり に、遠隔通信サーバアドレスを、クライアントに回答を送る前にウェブサーバア プリケーションによって追加することも可能である。クライアントがそのデータ 内に遠隔通信サーバアドレスを受取ると、クライアントはローカルテーブルを更 新し、引き続きサーバコンピュータとおこなう通信に対して遠隔通信サーバを使 用する。 図23に示すように、別の配置では、複数の遠隔通信サーバー2340は、ネ ットワークアドレストランスレータ(NAT)2310に関連して、一連のサー バーコンピュータのロードを均衡させるために用いられ得る。NAT2310は インターネット及びLAN2350の間に接続される。LAN2350上のコン ピュータのネットワークアドレスは、クライアントコンピュータ等のインターネ ット上のコンピュータには必ずしも知られていない。LAN2350上のコンピ ュータと通信するために、インターネット上のコンピュータは、NAT2310 により応答されると共に、NAT2310がインターネット上のコンピュータ及 びLAN2350上のコンピュータ間の通信を転送する先であるネットワークア ドレスに対して通信を行う。内部的には、NAT2310は、LAN2350上 で有効であるローカルネットワークアドレスに対して、インターネットアドレス をマップするアドレスアソシエーションテーブル2312を維持する。最も単純 な場合では、同テーブルは、インターネットアドレス及びローカルネットワーク アドレス間において一対一の対応を備えている。アドレスアソシエーションテー ブル2312はまた、単一のインターネットネットワークアドレスに対して複数 のローカルネットワークアドレスを有し得る。この場合、NAT2310は遠隔 コンピュータから通信を受け取ったとき、インターネットネットワークアドレス に適合させるべく、それら複数のローカルネットワークアドレスから1つを選択 する。例えば、NAT2310は、一定のローカルネットワークアドレスを選択 するために、ラウンドロビン選択法を用い得る。従って、NAT2310は、異 なる要求をLAN2350上の異なるコンピュータに受け渡すことによって、単 一のインターネットネットワークアドレスと通信するための要求のロードを均衡 化させることができる。NAT2350がインターネット上の遠隔コンピュータ をLAN2350上の一定のローカルコンピュータに接続した後は、遠隔コンピ ュータがローカルコンピュータへの全通信路を閉じてから最短時間が経過するま での間、NAT2310は遠隔コンピュータからの次の要求をLAN2350上 の同じローカルコンピュータに接続する。 同様に図23に示すように、LAN2350は、2つ以上の遠隔通信サーバー 2340と2つ以上のサーバーコンピュータ2330をNAT2310に接続す る。サーバーコンピュータ2330は共通のネットワークアドレスを備え、遠隔 通信サーバー2340は別のネットワークアドレスを共同で備えている。1つの サーバーコンピュータ2330と直接通信するためのクライアントシステムから の要求は、前述したような方法でNAT2310によって処理される。1つの遠 隔通信サーバーと通信するためのクライアントシステムからの要求もまた、NA T2340によって処理される。NAT234Oは、複数の遠隔通信サーバー2 340の1つを選択して、クライアントシステムと同遠隔通信サーバーとの間で 通信を受け渡すことにより、これらの要求を処理する。この通信には、クライア ントシステムがサーバーコンピュータと通信するための要求を送る際に経由する XTP通信も含まれる。 遠隔通信サーバー2340がサーバーコンピュータと通信するための要求を受 け取った場合、その要求は、インターネットからの有効なネットワークアドレス を用いる、即ち、クライアントシステムがサーバーコンピュータに直接接続しよ うとする場合にNAT2340によって翻訳されるアドレスを用いてサーバーコ ンピュータを識別する。従って、遠隔通信サーバーは、サーバーコンピュータの ローカルネットワークアドレスに関連付けられたサーバーコンピュータのインタ ーネットネットワークアドレスを有するサーバーアソシエーションテーブル23 42を備えている。遠隔通信サーバー2340が一定のインターネットネットワ ークアドレスを有するサーバーと通信するための要求を受け取った場合、遠隔通 信サーバーは、そのサーバーコンピュータのための通信サービスを提供するか否 かを判定し、提供する場合には、そのサーバーに対応するローカルネットワーク アドレスを決定するために、サーバーアソシエーションテーブルにアクセスする 。サーバーアソシエーションテーブル2342はまた、一連の通信要求に対して 同一のサーバーコンピュータが用いられ得るように、一定のクライアントシステ ムからの要求に適合された一定のサーバーコンピュータの記録を備えている。 図23に示す配置では、アドレス翻訳は2つの段階で行われる。まず、NAT 2310は、遠隔通信サーバーのためのインターネットネットワークアドレスを 遠隔通信サーバーのローカルネットワークアドレスの1つに翻訳する。次に、ク ライアントがサーバーコンピュータと通信することを要求した際、遠隔通信サー バーは、要求されたサーバーコンピュータのインターネットネットワークアドレ スをLAN上のサーバーコンピュータのローカルアドレスの1つに翻訳する。 上記実施形態にて説明した構成要素におけるその他の組み合わせを用いること もまた可能である。例えば、第1の実施形態では、ゲートウェイコンピュータを 通してインターネットにアクセスするクライアントコンピュータが用いられてい る。その他の上記実施形態では、クライアントコンピュータ及びゲートウェイコ ンピュータの機能が単一のコンピュータにて組み合わされている。機能が組み合 わされる実施形態において、別個のコンピュータを同等に用いることができる。 同様に、遠隔通信サーバー及びサーバーコンピュータの機能は別個のコンピュー タにてホストされ得ると共に、単一のコンピュータにてホストされ得る。それら の機能が単一のコンピュータでホストされる場合、遠隔通信サーバー及びサーバ ーコンピュータ間で受け渡される通信は、データネットワークを通過する必要は ない。 上記実施形態では、サーバーコンピュータに関連する情報、特にサーバーコン ピュータを遠隔通信サーバーに関連付ける情報は、ディレクトリサーバー、リス トサーバーにおける何らかの組み合わせか、又はサーバーコンピュータ自体に記 憶される。同情報用にその他の記憶位置を同等に用いることもできる。例えば、 ロード可能モジュールに関連する情報は集中型ディレクトリサーバーに記憶され 得る。また、ホストネームの関連IPアドレスへの翻訳を提供することに加えて 、遠隔通信サーバーのアドレスを含む付加的な情報が提供され得るように、DN Sの機能を拡張してもよい。付加的な情報がDNSコンピュータに記憶され、サ ーバーコンピュータのIPアドレスにより検索される場合、その情報のための明 示的な要求は存在しない。付加的な情報はサーバーコンピュータのIPアドレス の要求に応答して提供される。サーバーコンピュータに関連する遠隔通信サーバ ーのアドレスもまた、その他の状況に置いて明示的な要求なしで提供され得る。 例えば、その情報は、サーバーコンピュータから検索された情報のヘッダにて提 供され得る。サーバーコンピュータがウェブサーバーである場合は、それに関連 する遠隔通信サーバーのアドレスはサーバーから検索されたHTMLドキュメン トのヘッダにて提供され得る。クライアントコンピュータは、それらのHTML ドキュメントがアプリケーションに受け渡される際に、同ドキュメントからの情 報を検出して抽出する役割を担う。 遠隔通信サーバー及びサーバーコンピュータの機能が単一のコンピュータにて 組み合わされる場合は、サーバーコンピュータ及び遠隔通信サーバーのアドレス におけるホスト部分は一般に同じである。通信は、サーバーコンピュータの機能 及び遠隔通信サーバーの機能のための異なるポートインデックスを用いることに よって、単一のコンピュータ上のシステムに配信され得る。また、あるいは異な るポートインデックスを用いることに加えて、クライアントコンピュータからサ ーバーコンピュータへの通信は、クライアントコンピュータから遠隔通信サーバ ーへの通信とは異なるプロトコルインデックスを用い得る。通信はプロトコルイ ンデックスに基づき、単一のコンピュータ上の適切なシステムにルーティングさ れ得る。 上記の実施形態では、ディレクトリサーバー、リストサーバー、又はサイトフ ァイルにアドレスを公表しない遠隔通信サーバーが存在し得る。例えば、他の遠 隔通信サーバーへのアクセスでは標準TCPインターフェイスが用いられる一方 で、一定の遠隔通信サーバーへのアクセスは或るサービスへの特定の加入者に限 定され得る。このような場合、遠隔通信サーバー情報の手動入力が可能である。 また、ディレクトリサーバーが用いられる場合、ゲートウェイコンピュータから の要求がバッチされ、ゲートウェイコンピュータ及びディレクトリサーバーの間 の通信が行われる頻度は減少し、それによってディレクトリサーバーのロードを 軽減させる。 その他の関連する実施形態において、複数の代替プロトコルが支持され得る。 全ての非TCP通信にXTPモジュールを通過させる代わりに、複数のプロトコ ルモジュールに給電するマトリックススイッチが用いられ得る。このときリディ レクタは、用いるべきプロトコルモジュールを決定する。「フック」を含むソフ トウェアモジュール、リディレクタ、又はHTTPエンジンは、ウィンドウズ9 5又はウィンドウズNTオペレーティングシステムの環境下で階層化ウィンソッ クプロトコルに組み込まれ得る。 更なるアプリケーションプロトコルのスプーフィング(spoofing)が実施され 得る。例えば、HTTPアプリケーションプロトコルをスプーフ(spoof)する た めにHTTPエンジンが用いられる場合と同様に、FTP通信をスプーフするた めにリディレクタ及びXTPモジュールの間にFTPモジュールを挿入すること ができる。代替プロトコルを用いてソケットを初期化するために、種々の技術が 用いられ得る。追跡バッファに要求を記録するのではなく、ソケットは所望の状 態に直接初期化され得る。 IPを用いる代替トランスポートプロトコルを加えることに加えて、IP層を 置換することも一定の状況では実行可能である。例えば、IPがATMネットワ ーク上に階層化される場合は、上記の実施形態にてTCPをバイパスするために 用いられる配置に類似する配置において、TCP及びIPの両方をバイパスする ことができる。 本発明の実施形態では、XTP又はその他いくつかの代替トランスポートプロ トコルが用いられのではなく、複数のTCPセグメントが用いられ得る。このよ うな実施形態では、アプリケーションプロトコルのスプーフィング、多重化、及 びサーバーサイト集約(単一の遠隔通信サーバーを用いる複数のサーバーコンピ ュータにおけるサービス)が、TCPチャネルにて用いられ得る。更に、異なる セグメントにおけるTCP接続のパラメータは異なっていてもよく、このことに よりエンドツーエンド特性が改善される。 他の実施形態は処理能力及び呼び出し時間以外のチャネル特性に向けられたも のであるか、または、異なる型の通信技術を用いての処理能力及び呼び出し時間 に向けられたものである。例えば、大容量であるが遅延時間が長いチャネルにお いて呼び出し時間を短くすることは、エラー検出及び再送ではなく前方誤り訂正 を用いる代替トランスポートプロトコルを用いることによって最もよく達成され 得る。更に、代替プロトコルは、アプリケーションが変更なしでTCPを用いる ことを許容しつつ、一定のデータストリームにてサービスの質を制御するために 用いられ得る。 本発明における種々の構成要素を実行するために用いられるソフトウェアは、 固定又は取り外し可能な磁気ディスク又は光ディスクを含め、コンピュータで読 み取り可能な種々の媒体に記憶され得る。また、ソフトウェアは、モジュールが 実行されるコンピュータから遠隔して記憶され、データネットワークによりアク セスされることも可能である。 以上、詳細な説明をもって本発明を説明してきたが、上記の記載は、特許請求 の範囲によって定義される本発明の範囲を例証することを意図しており、これを 限定するものではないことを理解されたい。その他の観点、有利な点、及び変更 は以下の特許請求の範囲に含まれている。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,US,U Z,VN,YU,ZW (72)発明者 ボルコビッチ、ボリス アメリカ合衆国 01730 マサチューセッ ツ州 ベッドフォード ページ ロード 75 アパートメント 13 (72)発明者 シーゲル、スティーブン アメリカ合衆国 01845 マサチューセッ ツ州 ノース アンドーバー チェストナ ット ストリート 352 (72)発明者 ルシェ、シルヴァン アメリカ合衆国 02093 マサチューセッ ツ州 レンサム リージェント ロード 25 (72)発明者 カーン、マリック ズィ. アメリカ合衆国 01770 マサチューセッ ツ州 シャーボーン ウエスタン アベニ ュー 240 【要約の続き】 し、通信システムにて要求を受け入れ、1つ以上のサー バーアプリケーションと通信するためのクライアント通 信システムからの通信ストリームにおける要求を受け入 れ、及び通信ストリームにてクライアント通信システム 及びサーバーアプリケーション間で情報を受け渡すため に、トランスポート層モジュールに接続された通信アプ リケーションを備えている。

Claims (1)

  1. 【特許請求の範囲】 1.複数のトランスポート層プロトコルの少なくとも1つを用いてクライアント 通信システムと通信するようにそれぞれ構成された複数のサーバー通信システム と通信すべく、データネットワークに接続されたクライアント通信システムを備 える通信システムにおいて、同クライアント通信システムは、 前記サーバー通信システムと通信するために前記複数のトランスポート層プロ トコルを実行するトランスポート層モジュールと、 トランスポート層モジュールに接続されると共に、前記複数のサーバー通信シ ステムのうちの要求されたシステムと通信するための要求を受け取り、同通信要 求を用いて、要求されたサーバーシステムとの通信のために前記複数のトランス ポート層プロトコルの1つを選択するためのプロトコルセレクタを有する階層化 通信モジュールと、を備えている通信システム。 2.請求項1に記載の通信システムにおいて、クライアント通信システムは更に 、前記階層化通信モジュールに接続されたアプリケーションを備えている通信シ ステム。 3.請求項2に記載の通信システムにおいて、前記クライアント通信システムは 、前記トランスポート層モジュール、前記階層化通信モジュール、及び前記アプ リケーションを実行するようにプログラムされたクライアントコンピュータを備 えている通信システム。 4.請求項2に記載の通信システムにおいて、前記アプリケーションは、サーバ ー通信システムと通信するための要求をユーザから受け入れると共に、同ユーザ に対して同サーバー通信システムから送られた情報を提示するためのユーザイン ターフェイスモジュールを備えている通信システム。 5.請求項2に記載の通信システムにおいて、前記アプリケーションは、サーバ ー通信システムと通信するための要求をクライアントアプリケーションから受け 入れると共に、サーバー通信システムとクライアントモジュールとの間で情報を 受け渡すために、ローカルデータネットワークにて複数のクライアントアプリケ ーションに接続されたサーバーモジュールを備えている通信システム。 6.請求項5に記載の通信システムにおいて、前記クライアント通信システムは 更に、前記ローカルデータネットワークに接続されると共に、前記トランスポー ト層モジュール、前記階層化通信モジュール、及び前記アプリケーションを実行 するようにプログラムされたプロキシコンピュータを備えている通信システム。 7.請求項5に記載の通信システムにおいて、前記クライアント通信システムは 更に、前記ローカルデータネットワークに接続されると共に、前記クライアント アプリケーションの少なくとも1つを実行するようにプログラムされたクライア ントコンピュータを備えている通信システム。 8.請求項7に記載のシステムにおいて、前記クライアント通信システムは更に 、前記ローカルデータネットワークにて前記プロキシコンピュータに接続される と共に、前記クライアントアプリケーションの別のアプリケーションを実行する ようにプログラムされた第2のクライアントコンピュータを備えているシステム 。 9.請求項1に記載の通信システムにおいて、前記クライアント通信システムは 更に、前記階層化通信モジュールを有するアプリケーションを備えている通信シ ステム。 10.請求項1に記載の通信システムにおいて、前記クライアント通信システム は更に、ゼロ個以上の前記サーバー通信システムがそれにより通信するように構 成されている前記トランスポート層プロトコルに関連する情報を保持するために 、前記階層化通信モジュールのプロトコルセレクタに接続されるサーバーテーブ ルを備えている通信システム。 11.請求項10に記載の通信システムにおいて、前記サーバーテーブルは、サ ーバー通信システムの識別子を関連付ける情報と、前記クライアント通信システ ムが識別されたサーバー通信システムのそれぞれと通信するために用いることが 可能な前記トランスポート層プロトコルの1つ以上のプロトコルに関連する情報 とを保持するための第1のテーブルを備えている通信システム。 12.請求項11に記載の通信システムにおいて、前記トランスポート層プロト コルに関連する情報は、識別されたサーバー通信システムと通信するための、前 記データネットワークに接続された前記サーバー通信システムにおける通信サー バーコンピュータのアドレスを備えている通信システム。 13.請求項11に記載の通信システムにおいて、前記サーバーテーブルは更に 、サーバー通信システムの識別子を関連づける情報を保持すると共に、識別され たサーバー通信システムがそれによって通信するように構成されていない1つ以 上のトランスポート層プロトコルを識別するための第2のテーブルを備えている 通信システム。 14.請求項10に記載の通信システムにおいて、前記クライアント通信システ ムは更に、前記サーバーテーブルにて情報を見ると共に変更するためのユーザイ ンターフェイスを提供するためのテーブルインターフェイスモジュールを備えて いる通信システム。 15.請求項10に記載の通信システムにおいて、前記トランスポート層プロト コルに関連する情報は、同トランスポート層プロトコルに関連する情報がそれ以 降は有効でなくなる失効時間に関連する情報を備えている通信システム。 16.請求項1に記載の通信システムにおいて、前記トランスポート層モジュー ルは、サーバー通信システムと最高データ伝送速度を折衡するための速度制御モ ジュールを備えている通信システム。 17.請求項1に記載の通信システムにおいて、前記階層化通信モジュールは、 前記トランスポート層プロトコルの少なくとも1つを用いて通信されたデータを 圧縮及び圧縮解除するためのデータ圧縮及び圧縮解除モジュールを備えている通 信システム。 18.請求項1に記載の通信システムにおいて、前記階層化通信モジュールは、 前記トランスポート層プロトコルの少なくとも1つを用いて通信されたデータを 暗号化及び解読するためのセキュリティモジュールを備えている通信システム。 19.請求項1に記載のシステムにおいて、前記トランスポート層プロトコルの 少なくとも1つは選択的再送を支持し、前記トランスポート層プロトコルの少な くとも別の1つは選択的再送を支持しないシステム。 20.請求項1に記載のシステムにおいて、前記階層化通信モジュールは更に、 サーバー通信システムと通信するための別個の要求に関連する複数のデータスト リームを、同サーバー通信システムと通信するためのより少ない数のトランスポ ート層データストリームに組み合わせるための回線多重化装置及び多重分離装置 を備えているシステム。 21.請求項1に記載の通信システムにおいて、前記クライアント通信システム は更に、サーバー通信システムがそれにより通信するように構成されている前記 トランスポート層プロトコルに関連する情報に、前記データネットワークにてア クセスするために、前記階層化通信モジュールの前記プロトコルセレクタに接続 されているディレクトリサービスモジュールを備えている通信システム。 22.データ通信ネットワークにて複数のクライアント通信システムに接続され ているサーバー通信システムを備える通信システムにおいて、同サーバー通信シ ステムは、 同クライアント通信システム及び1つ以上のサーバーアプリケーションと通信 するためのトランスポート層モジュールと、 複数のクライアント通信システムのそれぞれとトランスポート層通信ストリー ムを維持し、1つ以上のサーバーアプリケーションと通信するためのクライアン ト通信システムからの通信ストリームにおける要求を受け入れ、及び同通信スト リームにて同クライアント通信システム及び同サーバーアプリケーション間で情 報を受け渡すために、トランスポート層モジュールに接続された通信アプリケー ションと、を備えている通信システム。 23.請求項22に記載の通信システムにおいて、前記サーバー通信システムは 更に、前記データ通信ネットワークに接続されると共に、トランスポート層モジ ュール及び前記通信アプリケーションを実行するようにプログラムされている通 信サーバーコンピュータを備えている通信システム。 24.請求項23に記載の通信システムにおいて、前記通信サーバーコンピュー タは更に、前記サーバーアプリケーションの少なくとも1つを実行するようにプ ログラムされている通信システム。 25.請求項23に記載の通信システムにおいて、前記サーバー通信システムは 更に、前記サーバーアプリケーションの少なくとも1つを実行するようにプログ ラムされているアプリケーションサーバーコンピュータと、前記通信サーバーコ ンピュータ及び同アプリケーションサーバーコンピュータを接続するローカルデ ータネットワークとを備えている通信システム。 26.請求項22に記載の通信システムにおいて、前記トランスポート層モジュ ールは複数のトランスポート層プロトコルを実行し、前記通信アプリケーション は、同トランスポート層プロトコルの第1のプロトコルを用いて前記サーバーア プリケーションと通信すると共に、同トランスポート層プロトコルの第2のプロ トコルを用いてクライアント通信システムと通信するように構成されている通信 システム。 27.請求項26に記載の通信システムにおいて、前記第2のトランスポート層 プロトコルは選択的再送を支持し、前記第1のトランスポート層プロトコルは選 択的再送を支持しない通信システム。 28.請求項22に記載の通信システムにおいて、前記通信アプリケーションは 、受け入れられた要求の総割り当て通信速度に基づき、サーバーアプリケーショ ンと通信するためのクライアント通信システムからの受け入れられた要求を制限 するように構成されている通信システム。 29.請求項22に記載の通信システムにおいて、前記サーバー通信システムは 更に、前記通信アプリケーションがクライアント通信システムに対してそれのた めに情報を受け渡すように構成されているサーバーアプリケーションを識別する サーバーテーブルを備えている通信システム。 30.請求項29に記載の通信システムにおいて、前記サーバー通信システムは 更に、前記サーバーテーブルを更新するための情報を受け入れるためのモジュー ルを備えている通信システム。 31.請求項22に記載の通信システムにおいて、前記通信アプリケーションは 、単一のトランスポート層通信ストリームにて2つ以上のサーバーアプリケーシ ョン及びクライアント通信システムの間で情報を受け渡すように構成されている 通信システム。 32.請求項22に記載の通信システムにおいて、前記サーバー通信システムは 更に、クライアントコンピュータが通信することを許容されているサーバーコン ピュータを識別するために用いられるサーバーテーブルを備えている通信システ ム。 33.請求項22に記載の通信システムにおいて、前記サーバー通信システムは 更に、クライアント通信システムによってサーバーアプリケーションの識別子と して提供されたネットワークアドレスを、前記通信アプリケーション及び前記サ ーバーアプリケーションの間における通信のために用いられるローカルネットワ ークアドレスに関連付けるためのアドレス翻訳テーブルを備えている通信システ ム。 34.請求項33に記載の通信システムにおいて、前記アドレス翻訳テーブルは 、クライアント通信システムにより提供された各ネットワークアドレスに対して 2つ以上のローカルネットワークアドレスを関連付けるように構成されており、 前記サーバー通信システムは更に、クライアント通信システムからの通信要求に 応答して前記ローカルアドレスの1つを選択するためのサーバー選択モジュール を備えている通信システム。 35.請求項34に記載の通信システムにおいて、前記サーバー選択モジュール は、クライアント通信システムと選択されたローカルネットワークアドレスとの 関連を記憶するためのテーブルを備えている通信システム。 36.請求項22に記載の通信システムにおいて、前記トランスポート層モジュ ールは、各通信システムへの総通信速度を制御するように構成された速度制御モ ジュールを備えている通信システム。 37.請求項22に記載の通信システムにおいて、前記通信アプリケーションは 、サーバーアプリケーションからクライアント通信システムに受け渡される情報 を圧縮するための圧縮モジュールを備えている通信システム。 38.請求項22に記載の通信システムにおいて、前記通信アプリケーションは 、サーバーアプリケーションからクライアント通信システムに受け渡される情報 を暗号化するための暗号化モジュールを備えている通信システム。 39.データネットワークにて複数のクライアント通信システムに接続されてい るサーバー通信システムを備える通信システムにおいて、同サーバー通信システ ムは、 複数のトランスポート層プロトコルを用いて同クライアント通信システムと通 信するためのトランスポート層モジュールと、 サーバーアプリケーションと、 前記クライアント通信システムからの通信を受け入れるための前記サーバーア プリケーションからの要求を受け取り、複数のクライアント通信システムのそれ ぞれとトランスポート層通信ストリームを維持し、同サーバーアプリケーション と通信するためのクライアント通信システムからの同通信ストリームにおける要 求を受け入れ、及び、同通信ストリームにて同クライアント通信システムと同サ ーバーアプリケーションとの間で情報を受け渡すために、前記トランスポート層 モジュール及び同サーバーアプリケーションの間に接続された階層化通信モジュ ールと、を備えている通信システム。 40.請求項39に記載の通信システムにおいて、前記サーバー通信システムは 更に、前記データネットワークに接続されると共に、前記トランスポート層モジ ュール、前記サーバーアプリケーション、及び前記階層通信モジュールを実行す るようにプログラムされたサーバーコンピュータを備えている通信システム。 41.データ通信ネットワークにてクライアント通信システム及び複数のサーバ ー通信システムの間で通信するための方法において、 同サーバー通信システムのうちの1つの識別子を受け取ることを含む通信要求 の受け入れと、 同サーバー通信システムの識別子を用いて、同サーバー通信システムと通信す るために複数のトランスポート層プロトコルの1つを選択することと、 同選択されたトランスポート層プロトコルを用いて、前記データ通信ネットワ ークにて同サーバー通信システムと通信することと、を備える方法。 42.請求項41に記載の方法において、前記トランスポート層プロトコルを選 択することは、前記サーバー通信システムがそれによって通信するように構成さ れている1つ以上のトランスポート層プロトコルのセットを決定することを備え ている方法。 43.請求項42に記載の方法において、前記プロトコルのセットを決定するこ とは、サーバーテーブルにアクセスすることと、前記サーバー通信システムに関 連する情報を検索することとを備えている方法。 44.請求項43に記載の方法において、前記プロトコルのセットを決定するこ とは、前記サーバー通信システムから検索されたデータに基づき、前記サーバー テーブルを更新することを備えている方法。 45.請求項42に記載の方法において、前記プロトコルのセットを決定するこ とは、前記サーバー通信システムに関連する情報を前記データ通信ネットワーク にてディレクトリコンピュータから検索することを備えており、同ディレクトリ コンピュータのアドレスは同サーバー通信システムの識別子に関連している方法 。 46.請求項45に記載の方法において、前記ディレクトリコンピュータのアド レスは前記通信要求にて識別されるサーバーコンピュータのアドレスと同じであ る方法。 47.請求項41に記載の方法において、前記通信要求の受け入れは、前記サー バー通信システムがそれによって通信するように構成されている要求されたトラ ンスポート層プロトコルを用いて、同サーバー通信システムと通信するための要 求を受け入れることを備えており、前記選択されたトランスポート層プロトコル は同要求されたトランスポート層プロトコルとは異なっている方法。 48.請求項41に記載の方法において、前記サーバー通信システムと通信する ための要求の受け入れは、前記データ通信ネットワークにて第1のネットワーク アドレスにおけるサーバーコンピュータと通信するための要求を受け入れること を備えており、同方法は更に、同サーバー通信システムと通信するための第2の ネットワークアドレスを選択することを備えており、同サーバー通信システムと 通信することは、同第2のネットワークアドレスにおけるコンピュータと通信す ることを備える方法 49.請求項48に記載の方法において、前記第2のネットワークアドレスは前 記第1のネットワークアドレスと異なっている方法。 50.請求項41に記載の方法において、更に、 ユーザインターフェイスを通して情報の要求を受け入れることと、 同情報の要求に基づいてサーバー通信システムと通信するための要求を提供す ることと、 ユーザインターフェイスを通して同要求された情報を提供することと、を備え る方法。 51.請求項41の方法において、前記通信要求の受け入れは更に、ローカルデ ータネットワークにてクライアントアプリケーションから通信要求を受け入れる ことを備える方法。 52.データ通信ネットワークにてサーバー通信システム及び複数のクライアン ト通信システムの間で通信するための方法において、 第1のトランスポート層プロトコルを用いて同サーバー通信システムと同クラ イアント通信システムの1つとの間に第1のトランスポート層通信路を設定する ことと、 同トランスポート層通信路にて第1のサーバーアプリケーションと通信するた めの同クライアント通信システムからの要求を受け取ることと、 第2のトランスポート層プロトコルを用いて同第1のサーバーアプリケーショ ンへの第2の通信路を設定することと、 同第1のトランスポート層通信路にて及び同第2のトランスポート層通信路に て、同クライアント通信システムと同第1のサーバーアプリケーションとの間で 通信を受け渡すことと、を備える方法。 53.請求項52に記載の方法において、通信を受け渡すことは、前記クライア ント通信システムにより誤って受け取られたデータを選択的に再送することを備 える方法。 54.請求項52に記載の方法において、通信を受け渡すことは、前記クライア ント通信システムとの総通信速度を制限することを備える方法。 55.請求項52に記載の方法において、更に、 前記第1のトランスポート層通信路にて第2のサーバーアプリケーションと通 信するための第2の要求を受け取ることと、 前記第2のトランスポート層プロトコルを用いて同第2のサーバーアプリケー ションへの第3のトランスポート層通信路を設定することと、 同第1のトランスポート層通信路にて及び同第3のトランスポート層通信路に て、同クライアント通信システムと同第2のサーバーアプリケーションとの間で 通信を受け渡すことと、を備える方法。 56.請求項55に記載の方法において、前記第1のサーバーアプリケーション と前記第2のサーバーアプリケーションは同じであり、前記第2のトランスポー ト層通信路は前記第3のトランスポート層通信路とは別個である方法。 57.請求項55に記載の方法において更に、アドレス翻訳テーブルにアクセス することと、前記第1のサーバーアプリケーションのローカルネットワークアド レスを決定することとを備える方法。 58.請求項55に記載の方法において、通信を受け渡すことは、前記クライア ント通信システムとの総通信速度を制限することを備える方法。 59.データ通信ネットワークにてサーバー通信システム及び複数のクライアン ト通信システムの間で通信するための方法において、 第1のトランスポート層プロトコルを用いて同サーバー通信システムと同クラ イアント通信システムの1つとの間に第1のトランスポート層通信路を設定する ことと、 同トランスポート層通信路にて第1のサーバーアプリケーションと通信するた めの同クライアント通信システムからの要求を受け取ることと、 同要求を受け入れるか否かを判定することと、 同要求が受け入れられる場合は、第2のトランスポート層プロトコルを用いて 同第1のサーバーアプリケーションへの第2の通信路を設定することと、同第1 のトランスポート層通信路にて及び同第2のトランスポート層通信路にて、同ク ライアント通信システムと同第1のサーバーアプリケーションとの間で通信を受 け渡すことと、を備える方法。 60.請求項59に記載の方法において、前記要求を受け入れるか否かを判定す ることは、通信が受け渡されるサーバーアプリケーションを識別するサーバーテ ーブルにアクセスすることを備える方法。 61.請求項59に記載の方法において、前記要求を受け入れるか否かを決定す ることは、同要求を受け入れることによって総通信容量が超過するか否かを判定 することを備える方法。 62.コンピュータに以下の機能を実行させるためにコンピュータにより読み取 り可能な媒体に記憶されたソフトウェアであって、同機能は、 複数のサーバー通信システムの1つの識別子を受け取ることを含む通信要求の 受け入れと、 同サーバー通信システムの識別子を用いて、同サーバー通信システムと通信す るために複数のトランスポート層プロトコルの1つを選択することと、 同選択されたトランスポート層プロトコルを用いて、前記データ通信ネットワ ークにて同サーバー通信システムと通信することと、であるソフトウェア。 63.コンピュータに以下の機能を実行させるためにコンピュータにより読み取 り可能な媒体に記憶されたソフトウェアであって、同機能は、 第1のトランスポート層プロトコルを用いてサーバー通信システムと複数のク ライアント通信システムの1つとの間に第1のトランスポート層通信路を設定す ることと、 同トランスポート層通信路にて第1のサーバーアプリケーションと通信するた めの同クライアント通信システムからの要求を受け取ることと、 第2のトランスポート層プロトコルを用いて同第1のサーバーアプリケーショ ンへの第2の通信路を設定することと、 同第1のトランスポート層通信路にて及び同第2のトランスポート層通信路に て、同クライアント通信システムと同第1のサーバーアプリケーションとの間で 通信を受け渡すことと、であるソフトウェア。
JP50716099A 1997-07-02 1998-07-01 拡張ネットワーク通信 Pending JP2002508133A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US08/886,869 US6266701B1 (en) 1997-07-02 1997-07-02 Apparatus and method for improving throughput on a data network
US08/886,869 1997-07-02
US09/016,120 1998-01-30
US09/016,120 US6098108A (en) 1997-07-02 1998-01-30 Distributed directory for enhanced network communication
PCT/US1998/011928 WO1999001968A1 (en) 1997-07-02 1998-07-01 Enhanced network communication

Publications (1)

Publication Number Publication Date
JP2002508133A true JP2002508133A (ja) 2002-03-12

Family

ID=26688199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50716099A Pending JP2002508133A (ja) 1997-07-02 1998-07-01 拡張ネットワーク通信

Country Status (6)

Country Link
US (3) US6098108A (ja)
EP (1) EP0993725A1 (ja)
JP (1) JP2002508133A (ja)
AU (1) AU8254698A (ja)
CA (1) CA2294848A1 (ja)
WO (1) WO1999001968A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005537568A (ja) * 2002-08-28 2005-12-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ワイヤレスインターフェース

Families Citing this family (284)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
JPH1185651A (ja) * 1997-09-01 1999-03-30 Yamatake Honeywell Co Ltd 通信インタフェース装置及び対象機器並びに通信方法
JP3581779B2 (ja) * 1997-11-28 2004-10-27 株式会社日立製作所 マルチサーバワークフローシステム
US6611861B1 (en) * 1998-02-27 2003-08-26 Xo Communications, Inc. Internet hosting and access system and method
US7450560B1 (en) * 1998-03-05 2008-11-11 3Com Corporation Method for address mapping in a network access system and a network access device for use therewith
US6029200A (en) * 1998-03-09 2000-02-22 Microsoft Corporation Automatic protocol rollover in streaming multimedia data delivery system
US6415289B1 (en) * 1998-03-19 2002-07-02 Williams Communications, Inc. Network information control method utilizing a common command format and a centralized storage management system
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6675226B1 (en) * 1998-11-17 2004-01-06 Rockwell Automation Technologies, Inc. Network interface for industrial controller providing application programmer interface
US6389462B1 (en) * 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6397255B1 (en) * 1998-12-23 2002-05-28 At&T Corp. Method and apparatus for providing intelligent network services
US6629132B1 (en) * 1998-12-23 2003-09-30 Novell, Inc. Predicate indexing of data stored in a computer with application to indexing cached data
US6345266B1 (en) * 1998-12-23 2002-02-05 Novell, Inc. Predicate indexing for locating objects in a distributed directory
US7430757B1 (en) * 1999-01-08 2008-09-30 International Business Machines Corporation Oblivious proxying using a secure coprocessor
JP3581589B2 (ja) * 1999-01-11 2004-10-27 株式会社日立製作所 通信ネットワークシステムおよび通信ネットワークシステムにおけるサービス管理方法
US6658167B1 (en) * 1999-01-31 2003-12-02 Hewlett-Packard Development Company, L.P. On the fly server for modifying data characteristics for client-server network applications
US6934255B1 (en) * 1999-02-02 2005-08-23 Packeteer, Inc. Internet over satellite apparatus
US6584083B1 (en) 1999-02-02 2003-06-24 Mentat Inc. Internet over satellite method
US6654344B1 (en) 1999-02-02 2003-11-25 Mentat Inc. Method and system for controlling data flow in an internet over satellite connection
US6460085B1 (en) * 1999-02-02 2002-10-01 Mentat Inc. Method and system for managing memory in an internet over satellite connection
US6529477B1 (en) 1999-02-02 2003-03-04 Mentat Inc. Internet over satellite system
US7076476B2 (en) * 1999-03-02 2006-07-11 Microsoft Corporation Method and system for integrated service administration via a directory service
ATE381846T1 (de) * 1999-03-03 2008-01-15 Ultradns Inc Skalierbare und effiziente domainnamenauflösung
US6480508B1 (en) * 1999-05-12 2002-11-12 Westell, Inc. Router-based domain name system proxy agent using address translation
US6542964B1 (en) * 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US6263371B1 (en) * 1999-06-10 2001-07-17 Cacheflow, Inc. Method and apparatus for seaming of streaming content
US6957346B1 (en) 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US6981034B2 (en) * 1999-06-30 2005-12-27 Nortel Networks Limited Decentralized management architecture for a modular communication system
US6597700B2 (en) * 1999-06-30 2003-07-22 Nortel Networks Limited System, device, and method for address management in a distributed communication environment
US6888802B1 (en) 1999-06-30 2005-05-03 Nortel Networks Limited System, device, and method for address reporting in a distributed communication environment
FR2797543B1 (fr) * 1999-08-12 2004-04-09 Cit Alcatel Procede pour faire communiquer un utilisateur avec au moins une base de donnees
US6414036B1 (en) * 1999-09-01 2002-07-02 Van Beek Global/Ninkov Llc Composition for treatment of infections of humans and animals
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
JP3478200B2 (ja) * 1999-09-17 2003-12-15 日本電気株式会社 サーバ・クライアント間双方向通信システム
US6877036B1 (en) * 1999-09-24 2005-04-05 Akamba Corporation System and method for managing connections between a client and a server
US7404003B1 (en) 1999-09-30 2008-07-22 Data Expedition, Inc. Method and apparatus for client side state management
US7158479B1 (en) * 1999-09-30 2007-01-02 Data Expedition, Inc. Method and apparatus for non contiguous sliding window
US7313627B1 (en) 1999-09-30 2007-12-25 Data Expedition, Inc. Flow control method and apparatus
US7467211B1 (en) 1999-10-18 2008-12-16 Cisco Technology Inc. Remote computer system management through an FTP internet connection
JP4460693B2 (ja) * 1999-10-26 2010-05-12 富士通株式会社 情報検索機能をもつネットワークシステム
US6864904B1 (en) * 1999-12-06 2005-03-08 Girafa.Com Inc. Framework for providing visual context to www hyperlinks
US7336790B1 (en) 1999-12-10 2008-02-26 Sun Microsystems Inc. Decoupling access control from key management in a network
US7765581B1 (en) * 1999-12-10 2010-07-27 Oracle America, Inc. System and method for enabling scalable security in a virtual private network
US6598083B1 (en) * 1999-12-30 2003-07-22 Intel Corporation System and method for communicating over a non-continuous connection with a device on a network
US7508753B2 (en) * 2000-01-31 2009-03-24 At&T Intellectual Property, Ii, L.P. Packet redirection and message stream management
US7441014B1 (en) * 2000-02-09 2008-10-21 Tvworks, Llc Broadcast distribution using low-level objects and locator tables
US7171492B1 (en) * 2000-02-24 2007-01-30 Utstarcom, Inc. Method and application programming interface for assigning multiple network addresses
US6658473B1 (en) * 2000-02-25 2003-12-02 Sun Microsystems, Inc. Method and apparatus for distributing load in a computer environment
US8359405B1 (en) * 2000-02-28 2013-01-22 John Border Performance enhancing proxy and method for enhancing performance
EP1130873B1 (en) * 2000-03-04 2006-06-28 Alcatel A method of setting up data communication with a communication means and furthermore program modules and means therefor
US6779035B1 (en) * 2000-03-06 2004-08-17 Microsoft Corporation Application programming interface and generalized network address translator for translation of transport-layer sessions
US6831912B1 (en) 2000-03-09 2004-12-14 Raytheon Company Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
US6601094B1 (en) * 2000-04-27 2003-07-29 Hewlett-Packard Development Company, L.P. Method and system for recommending an available network protocol
US6988141B1 (en) 2000-05-17 2006-01-17 Ricoh Company, Ltd. Method and system of remote diagnostic, control and information collection using a dynamic linked library of multiple formats and multiple protocols with restriction on protocol
US7962603B1 (en) * 2000-06-06 2011-06-14 Nobuyoshi Morimoto System and method for identifying individual users accessing a web site
JP4568963B2 (ja) * 2000-06-08 2010-10-27 ソニー株式会社 情報処理装置、情報通信システム
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US7003555B1 (en) * 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US7020709B1 (en) 2000-06-30 2006-03-28 Intel Corporation System and method for fault tolerant stream splitting
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US6993584B2 (en) * 2000-07-21 2006-01-31 Hughes Network Systems Method and system for improving network performance by utilizing path selection, path activation, and profiles
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US7149795B2 (en) * 2000-09-18 2006-12-12 Converged Access, Inc. Distributed quality-of-service system
WO2002023354A1 (en) * 2000-09-18 2002-03-21 Sitara Networks, Inc. Distributed quality-of-service system
US7774455B1 (en) 2000-09-26 2010-08-10 Juniper Networks, Inc. Method and system for providing secure access to private networks
US7120675B1 (en) * 2000-09-26 2006-10-10 Microsoft Corporation Information location service
US6766354B1 (en) * 2000-09-28 2004-07-20 Intel Corporation Speed sensitive content delivery in a client-server network
US7684786B2 (en) * 2003-08-26 2010-03-23 Nokia Corporation Method and system for establishing a connection between network elements
US7055028B2 (en) * 2000-10-10 2006-05-30 Juniper Networks, Inc. HTTP multiplexor/demultiplexor system for use in secure transactions
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
DE10051535A1 (de) * 2000-10-18 2002-04-25 Heidelberger Druckmasch Ag Verfahren zum Übertragen von Daten zwischen einer ersten und einer zweiten Recheneinheit
US7801978B1 (en) * 2000-10-18 2010-09-21 Citrix Systems, Inc. Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US7788407B1 (en) * 2000-10-21 2010-08-31 Cisco Technology, Inc. Apparatus and methods for providing an application level gateway for use in networks
AU2002239252A1 (en) * 2000-11-15 2002-05-27 Netcharge.Com, Inc. Method and system for transmitting data with enhanced security that conforms to a network protocol
US8402124B1 (en) * 2000-11-16 2013-03-19 International Business Machines Corporation Method and system for automatic load balancing of advertised services by service information propagation based on user on-demand requests
US8583745B2 (en) * 2000-11-16 2013-11-12 Opendesign, Inc. Application platform
US7406523B1 (en) * 2000-11-21 2008-07-29 Microsoft Corporation Client-server communications system and method using a semi-connectionless protocol
US20020069367A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Network operating system data directory
US7529235B2 (en) * 2000-12-06 2009-05-05 Franklin Zhigang Zhang Internet based time distributed message network system and personal mobile access device
US7249170B2 (en) 2000-12-06 2007-07-24 Intelliden System and method for configuration, management and monitoring of network resources
US7054946B2 (en) * 2000-12-06 2006-05-30 Intelliden Dynamic configuration of network devices to enable data transfers
US6978301B2 (en) 2000-12-06 2005-12-20 Intelliden System and method for configuring a network device
US20020069271A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Event manager for network operating system
US8219662B2 (en) 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US20020073136A1 (en) * 2000-12-07 2002-06-13 Tomoaki Itoh Data reproduction method, data receiving terminal and data receiving method
US20020087722A1 (en) * 2000-12-29 2002-07-04 Ragula Systems D/B/A/ Fatpipe Networks Domain name resolution making IP address selections in response to connection status when multiple connections are present
US7421489B2 (en) * 2000-12-29 2008-09-02 Nortel Network Limited Network protocols for distributing functions within a network
US6651141B2 (en) 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US20020133616A1 (en) * 2001-01-17 2002-09-19 Richard Yoza Method and apparatus for using a known address to gain access to a service provider having an unknown address
US8554940B2 (en) 2001-01-19 2013-10-08 Single Touch Interactive, Inc. System and method for routing media
US7191244B2 (en) * 2001-01-19 2007-03-13 Streamworks Technologies, Inc. System and method for routing media
US20040025186A1 (en) * 2001-01-19 2004-02-05 Jennings Charles A. System and method for managing media
US7054949B2 (en) * 2001-01-19 2006-05-30 World Streaming Network, Inc. System and method for streaming media
US20020099851A1 (en) * 2001-01-22 2002-07-25 Shah Hemal V. Decoupling TCP/IP processing in system area networks
US9002734B2 (en) * 2001-01-23 2015-04-07 Verizon Patent And Licensing Inc. Method and system for procuring telecommunications services on-line
US6862692B2 (en) 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US7809854B2 (en) * 2002-02-12 2010-10-05 Open Design, Inc. Logical routing system
US20030235206A1 (en) * 2001-02-15 2003-12-25 Tantivy Communications, Inc. Dual proxy approach to TCP performance improvements over a wireless interface
US7150037B2 (en) * 2001-03-21 2006-12-12 Intelliden, Inc. Network configuration manager
US20020156900A1 (en) * 2001-03-30 2002-10-24 Brian Marquette Protocol independent control module
US20020154635A1 (en) * 2001-04-23 2002-10-24 Sun Microsystems, Inc. System and method for extending private networks onto public infrastructure using supernets
US7965729B2 (en) * 2001-05-23 2011-06-21 Polytechnic University Transferring data such as files
US20020188730A1 (en) * 2001-06-12 2002-12-12 Wenting Tang Method and system for a modular transmission control protocol (TCP) frequent-handoff design in a streams based transmission control protocol internet protocol (TCP/IP) implementation
US6839764B2 (en) * 2001-06-20 2005-01-04 Intel Corporation Domain encapsulation
EP1415232B1 (en) * 2001-08-08 2015-01-14 Flash Networks Ltd. System and method for accelerating communication of tcp/ip based content
US20030074448A1 (en) * 2001-08-10 2003-04-17 Tadashi Kinebuchi Multimedia information system and computer program
US7200548B2 (en) * 2001-08-29 2007-04-03 Intelliden System and method for modeling a network device's configuration
US8296400B2 (en) 2001-08-29 2012-10-23 International Business Machines Corporation System and method for generating a configuration schema
US6981014B2 (en) * 2001-08-31 2005-12-27 Adaptec Corporation Systems and methods for high speed data transmission using TCP/IP
EP1421494A1 (en) * 2001-08-31 2004-05-26 Adaptec, Inc. Systems and methods for implementing host-based security in a computer network
US20050071443A1 (en) * 2001-09-10 2005-03-31 Jai Menon Software platform for the delivery of services and personalized content
US20030048780A1 (en) * 2001-09-10 2003-03-13 Phomsopha Bounthavivone K. Supporting real-time multimedia applications via a network address translator
US20030055978A1 (en) * 2001-09-18 2003-03-20 Microsoft Corporation Methods and systems for enabling outside-initiated traffic flows through a network address translator
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US6907451B1 (en) 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US8359335B2 (en) * 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
DE60100147T2 (de) * 2001-10-02 2004-01-29 Macchine Curvatubi Crippa Agos Vorrichtung und Verfahren zum Ziehbiegen
US7870492B2 (en) * 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7054902B2 (en) * 2001-10-23 2006-05-30 Packeteer, Inc. Multicast delivery systems and methods
BR0213863A (pt) * 2001-11-01 2004-12-21 Verisign Inc Processo e sistema para atualizar um banco de dados remoto
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US7065562B2 (en) * 2001-11-26 2006-06-20 Intelliden, Inc. System and method for generating a representation of a configuration schema
FI113709B (fi) * 2001-12-10 2004-05-31 Nokia Corp Menetelmä sulautetussa ympäristössä etälaitteen toiminnallisuuden järjestämiseksi
US20030115258A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Time zone difference based locality estimation between web clients and E-business servers
US7953087B1 (en) * 2001-12-28 2011-05-31 The Directv Group, Inc. Content filtering using static source routes
US7512650B2 (en) * 2002-01-11 2009-03-31 Thomson Licensing Physical layer recovery in a streaming data delivery system
JP2003209570A (ja) * 2002-01-11 2003-07-25 Fujitsu Ltd 中継方法そのクライアント、サーバ、中継装置
US8090866B1 (en) 2002-01-18 2012-01-03 Cisco Technology, Inc. TCP proxy connection management in a gigabit environment
US7107615B2 (en) * 2002-01-30 2006-09-12 Hewlett-Packard Development Company, L.P. Parameter verification in an authentication system and method
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
JP4010830B2 (ja) * 2002-03-05 2007-11-21 富士通株式会社 通信装置およびネットワークシステム
US6938091B2 (en) * 2002-03-08 2005-08-30 Hewlett-Packard Development Company, L.P. Static end to end retransmit apparatus and method
US7133894B2 (en) * 2002-03-12 2006-11-07 International Business Machines Corporation Method, apparatus, and program for synchronous remote builds
US7313635B1 (en) * 2002-03-21 2007-12-25 Cisco Technology Method and apparatus for simulating a load on an application server in a network
US7340521B1 (en) * 2002-04-02 2008-03-04 Blue Coat Systems, Inc. Method for routing a request over a network to a content source that can most advantageous serve the request
US6959329B2 (en) * 2002-05-15 2005-10-25 Intelliden System and method for transforming configuration commands
US7979521B2 (en) * 2002-06-03 2011-07-12 Oracle America, Inc. Method and system for relocating and using enterprise management tools in a service provider model
EP1532539B1 (en) 2002-06-06 2015-12-09 Pulse Secure, LLC Method and system for providing secure access to private networks
US7139840B1 (en) * 2002-06-14 2006-11-21 Cisco Technology, Inc. Methods and apparatus for providing multiple server address translation
US20040003067A1 (en) * 2002-06-27 2004-01-01 Daniel Ferrin System and method for enabling a user interface with GUI meta data
US7464145B2 (en) 2002-07-11 2008-12-09 Intelliden, Inc. Repository-independent system and method for asset management and reconciliation
US7647414B2 (en) * 2002-07-26 2010-01-12 Broadcom Corporation System and method for managing multiple stack environments
US20040028069A1 (en) * 2002-08-07 2004-02-12 Tindal Glen D. Event bus with passive queuing and active routing
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US7366893B2 (en) * 2002-08-07 2008-04-29 Intelliden, Inc. Method and apparatus for protecting a network from attack
US7461158B2 (en) 2002-08-07 2008-12-02 Intelliden, Inc. System and method for controlling access rights to network resources
US7343398B1 (en) 2002-09-04 2008-03-11 Packeteer, Inc. Methods, apparatuses and systems for transparently intermediating network traffic over connection-based authentication protocols
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US8255454B2 (en) * 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7558847B2 (en) * 2002-09-13 2009-07-07 Intelliden, Inc. System and method for mapping between and controlling different device abstractions
US7020750B2 (en) * 2002-09-17 2006-03-28 Sun Microsystems, Inc. Hybrid system and method for updating remote cache memory with user defined cache update policies
US8046471B2 (en) * 2002-09-19 2011-10-25 Hewlett-Packard Development Company, L.P. Regressive transport message delivery system and method
JP3971984B2 (ja) * 2002-10-15 2007-09-05 松下電器産業株式会社 通信装置および通信方法
US7552237B2 (en) * 2002-10-17 2009-06-23 International Business Machines Corporation Network address cache apparatus and method
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
JP3976262B2 (ja) * 2003-01-30 2007-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバおよびプログラム
US20040153502A1 (en) * 2003-02-04 2004-08-05 Luliang Jiang Enhanced DNS server
US7388836B2 (en) * 2003-03-07 2008-06-17 Cisco Technology, Inc. System and method for communicating data in a network environment
US7493398B2 (en) * 2003-04-16 2009-02-17 Microsoft Corporation Shared socket connections for efficient data transmission
US8027844B2 (en) * 2003-05-12 2011-09-27 Pitney Bowes Inc. System and method for processing mail
WO2004107131A2 (en) 2003-05-28 2004-12-09 Caymas Systems, Inc. Policy based network address translation
US8181022B2 (en) * 2003-06-24 2012-05-15 Realnetworks, Inc. Method and apparatus for controlling access restrictions for media playback
US7546553B2 (en) * 2003-07-28 2009-06-09 Sap Ag Grid landscape component
US7673054B2 (en) * 2003-07-28 2010-03-02 Sap Ag. Grid manageable application process management scheme
US7594015B2 (en) * 2003-07-28 2009-09-22 Sap Ag Grid organization
US7574707B2 (en) * 2003-07-28 2009-08-11 Sap Ag Install-run-remove mechanism
US7631069B2 (en) * 2003-07-28 2009-12-08 Sap Ag Maintainable grid managers
US7703029B2 (en) 2003-07-28 2010-04-20 Sap Ag Grid browser component
US7568199B2 (en) * 2003-07-28 2009-07-28 Sap Ag. System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US7720095B2 (en) * 2003-08-27 2010-05-18 Fortinet, Inc. Heterogeneous media packet bridging
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7620732B2 (en) * 2003-11-18 2009-11-17 Kabushiki Kaisha Toshiba Apparatus for and method of setting communication path
US7509373B2 (en) 2003-11-24 2009-03-24 At&T Intellectual Property I, L.P. Methods for providing communications services
US20050125559A1 (en) * 2003-12-02 2005-06-09 Mutha Kailash K. Employment of one or more identifiers of one or more communication devices to determine one or more internet protocol addresses
US7810090B2 (en) * 2003-12-17 2010-10-05 Sap Ag Grid compute node software application deployment
US20050138156A1 (en) * 2003-12-19 2005-06-23 Alexander Gebhart Grid application customization
US7505457B2 (en) * 2004-04-22 2009-03-17 Sony Computer Entertainment Inc. Method and apparatus for providing an interconnection network function
US7864709B2 (en) * 2004-06-25 2011-01-04 Apple Inc. Method and apparatus for looking up configuration information for a network node
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
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
US7808906B2 (en) 2004-07-23 2010-10-05 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol using false acknowledgements
JP2008507929A (ja) 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド プライベートネットワークへの遠隔アクセスを安全にする方法およびシステム
ES2351668T3 (es) * 2004-09-30 2011-02-09 France Telecom Procedimiento y sistema de enrutamiento en redes de comunicaciones entre un primer nodo y un segundo nodo.
US8024483B1 (en) 2004-10-01 2011-09-20 F5 Networks, Inc. Selective compression for network connections
EP1797696A1 (fr) * 2004-10-06 2007-06-20 France Telecom Procede et systeme de resolution dns distribuee
US8675485B2 (en) * 2004-12-14 2014-03-18 Aspen Networks, Inc. Reliable ISP access cloud state detection method and apparatus
US7793290B2 (en) * 2004-12-20 2010-09-07 Sap Ag Grip application acceleration by executing grid application based on application usage history prior to user request for application execution
US7565383B2 (en) * 2004-12-20 2009-07-21 Sap Ag. Application recovery
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
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
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
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
JP4512192B2 (ja) * 2005-02-09 2010-07-28 株式会社日立製作所 輻輳制御装置、および、ネットワークの輻輳制御方法
US20060182140A1 (en) * 2005-02-15 2006-08-17 Utstarcom, Inc. Method and apparatus to facilitate forwarding of single frame and multi-frame data packets
US7436783B2 (en) * 2005-04-04 2008-10-14 Apple Inc. Method and apparatus for detecting a router that improperly responds to ARP requests
US20070033496A1 (en) * 2005-07-14 2007-02-08 Hitachi, Ltd. System and method for adjusting BER/PER to increase network stream-based transmission rates
US20070055784A1 (en) * 2005-09-08 2007-03-08 Pancholi Ketan P Method to reduce the learning curve of a transmission control protocol connection
JP4200456B2 (ja) * 2005-12-28 2008-12-24 ブラザー工業株式会社 周辺装置、プログラム、制御方法
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
US8274985B2 (en) * 2005-12-30 2012-09-25 United States Cellular Corporation Control of cellular data access
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
US7873065B1 (en) 2006-02-01 2011-01-18 F5 Networks, Inc. Selectively enabling network packet concatenation based on metrics
WO2007149744A2 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Secure handle for intra-and inter-processor communications
US8176319B2 (en) * 2006-06-27 2012-05-08 Emc Corporation Identifying and enforcing strict file confidentiality in the presence of system and storage administrators in a NAS system
US8572721B2 (en) 2006-08-03 2013-10-29 Citrix Systems, Inc. Methods and systems for routing packets in a VPN-client-to-VPN-client connection via an SSL/VPN network appliance
US8484718B2 (en) * 2006-08-03 2013-07-09 Citrix System, Inc. Systems and methods for enabling assured records using fine grained auditing of virtual private network traffic
US7769869B2 (en) * 2006-08-21 2010-08-03 Citrix Systems, Inc. Systems and methods of providing server initiated connections on a virtual private network
US7788394B2 (en) * 2006-08-31 2010-08-31 General Instrument Corporation Streaming content over an internet protocol network
US7840683B2 (en) * 2006-08-31 2010-11-23 Sap Ag Systems and methods of migrating sessions between computer systems
US8583793B2 (en) * 2006-11-20 2013-11-12 Apple Inc. System and method for providing a hypertext transfer protocol service multiplexer
US7460038B2 (en) 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7827237B2 (en) 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US8255570B2 (en) 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US7619545B2 (en) 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US8279869B1 (en) * 2007-03-30 2012-10-02 Symantec Operating Corporation Reliable communication channel over existing TCP connection
TW200847711A (en) * 2007-05-31 2008-12-01 Wistron Corp Method and related system for building up a network connection between clients and servers through a stream fork by utilizing http protocol
US8260940B1 (en) 2007-06-29 2012-09-04 Amazon Technologies, Inc. Service request management
ATE489802T1 (de) * 2007-07-04 2010-12-15 Ericsson Telefon Ab L M Ip-verbindungsherstellung über ein datennetz
US7966364B2 (en) * 2007-07-26 2011-06-21 Northeastern University System and method for virtual server migration across networks using DNS and route triangulation
US8908700B2 (en) 2007-09-07 2014-12-09 Citrix Systems, Inc. Systems and methods for bridging a WAN accelerator with a security gateway
US20090097470A1 (en) * 2007-10-12 2009-04-16 Collier David S Methods and systems for communicating data
US9413825B2 (en) * 2007-10-31 2016-08-09 Emc Corporation Managing file objects in a data storage system
DE102007057248A1 (de) * 2007-11-16 2009-05-20 T-Mobile International Ag Verbindungsschicht für Datenbanken
CN101483639A (zh) * 2008-01-11 2009-07-15 华为技术有限公司 一种网络中资源管理的方法
US7996093B2 (en) * 2008-01-24 2011-08-09 Rockwell Automation Technologies, Inc. Automatic controller relationship resolution
US8200591B2 (en) * 2008-01-24 2012-06-12 Rockwell Automation Technologies, Inc. Self-organized distributed directory
US7912986B2 (en) * 2008-02-25 2011-03-22 Simdesk Technologies Secure block read and write protocol for remotely stored files
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US7509433B1 (en) 2008-05-19 2009-03-24 International Business Machines Corporation Selecting quick-to-download content through an alternative hypertext protocol
DE102008030939A1 (de) * 2008-07-02 2010-01-07 Deutsche Thomson Ohg Verfahren und Vorrichtung zur Verwaltung von Datenübertragungen in einem Netz
US9521625B2 (en) 2008-09-15 2016-12-13 Apple Inc. Electronic devices for receiving pushed data
US8825889B2 (en) * 2009-05-11 2014-09-02 Hewlett-Packard Development Company, L.P. Network traffic rate limiting system and method
EP2312804B1 (en) * 2009-10-13 2015-02-25 BlackBerry Limited Methods and apparatus for intelligent selection of a transport protocol for content streaming
EP3734449B1 (en) 2010-06-18 2023-07-12 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US9389606B2 (en) * 2011-11-11 2016-07-12 Rockwell Automation Technologies, Inc. Agile control model system and method
US9231783B2 (en) * 2011-11-14 2016-01-05 Interdigital Patent Holdings, Inc. Methods, apparatus and systems for traffic identification
WO2013134178A1 (en) * 2012-03-06 2013-09-12 Mobile Helix, Inc. Mobile link system, method & apparatus
CN102830946B (zh) * 2012-08-06 2014-11-05 电子科技大学 大规模地震数据处理私有云环境下的网络打印系统
US9081757B2 (en) * 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US8989167B2 (en) * 2012-10-10 2015-03-24 Motorola Solutions, Inc. Method and apparatus for establishing radio communications on a trunked network using an inbound proxy
CN103778488A (zh) * 2012-10-18 2014-05-07 广州城市职业学院 一种考核系统
US8849905B2 (en) * 2012-10-29 2014-09-30 Gridcore Ab Centralized computing
US20150106425A1 (en) * 2013-10-10 2015-04-16 International Business Machines Corporation Performance Optimization in a Secured Computing Environment
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
CN104065743A (zh) * 2014-07-07 2014-09-24 南京市卫生信息中心 一种基于智慧城市平台的120急救系统
CN105450686B (zh) * 2014-08-19 2019-12-13 Tcl集团股份有限公司 一种服务器集群的组建方法和装置
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US20180054471A1 (en) * 2015-05-15 2018-02-22 Hewlett-Packard Development Company, L.P. Hardware Bus Redirection
US10630749B2 (en) 2015-08-14 2020-04-21 Cisco Technology, Inc. Timely delivery of real-time media problem when TCP must be used
US10432754B2 (en) 2015-09-16 2019-10-01 Profire Energy, Inc Safety networking protocol and method
US10514683B2 (en) 2015-09-16 2019-12-24 Profire Energy, Inc. Distributed networking system and method to implement a safety state environment
CN105551303B (zh) * 2015-12-14 2017-10-20 谭兴奎 一种车载跟车距离感应提示系统
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11128563B2 (en) 2018-06-22 2021-09-21 Sorenson Ip Holdings, Llc Incoming communication routing
CN111598752A (zh) * 2019-02-20 2020-08-28 泽世百易医疗科技(北京)有限公司 城市急救网络、急救方法及云中心服务器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
US5710908A (en) * 1995-06-27 1998-01-20 Canon Kabushiki Kaisha Adaptive network protocol independent interface
US5699350A (en) * 1995-10-06 1997-12-16 Canon Kabushiki Kaisha Reconfiguration of protocol stacks and/or frame type assignments in a network interface device
US6317775B1 (en) * 1995-11-03 2001-11-13 Cisco Technology, Inc. System for distributing load over multiple servers at an internet site
US5777989A (en) * 1995-12-19 1998-07-07 International Business Machines Corporation TCP/IP host name resolution for machines on several domains
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5835725A (en) * 1996-10-21 1998-11-10 Cisco Technology, Inc. Dynamic address assignment and resolution technique
US5923854A (en) * 1996-11-22 1999-07-13 International Business Machines Corporation Virtual internet protocol (IP) addressing
US6470389B1 (en) * 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US6038603A (en) * 1997-03-25 2000-03-14 Oracle Corporation Processing customized uniform resource locators
US5884313A (en) * 1997-06-30 1999-03-16 Sun Microsystems, Inc. System and method for efficient remote disk I/O
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6266701B1 (en) * 1997-07-02 2001-07-24 Sitara Networks, Inc. Apparatus and method for improving throughput on a data network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005537568A (ja) * 2002-08-28 2005-12-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ワイヤレスインターフェース

Also Published As

Publication number Publication date
WO1999001968A1 (en) 1999-01-14
AU8254698A (en) 1999-01-25
EP0993725A1 (en) 2000-04-19
US6098108A (en) 2000-08-01
CA2294848A1 (en) 1999-01-14
US6324582B1 (en) 2001-11-27
US20010047421A1 (en) 2001-11-29

Similar Documents

Publication Publication Date Title
JP2002508133A (ja) 拡張ネットワーク通信
US10858503B2 (en) System and devices facilitating dynamic network link acceleration
US10819826B2 (en) System and method for implementing application functionality within a network infrastructure
US6266701B1 (en) Apparatus and method for improving throughput on a data network
US6704786B1 (en) Network and end-host efficiency for web communication
US6622157B1 (en) Extending network services using mobile agents
US7123613B1 (en) Apparatus and method for providing a transparent proxy server
US7725598B2 (en) Network cache-based content routing
KR101378435B1 (ko) 네트워크 프로토콜 스택의 핸드오프 및 최적화 모듈
JP2002529856A (ja) インターネットクライアントサーバマルチプレクサ