JP4896328B2 - クライアントとサーバ間の接続を管理するためのシステムおよび方法 - Google Patents
クライアントとサーバ間の接続を管理するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP4896328B2 JP4896328B2 JP2001525498A JP2001525498A JP4896328B2 JP 4896328 B2 JP4896328 B2 JP 4896328B2 JP 2001525498 A JP2001525498 A JP 2001525498A JP 2001525498 A JP2001525498 A JP 2001525498A JP 4896328 B2 JP4896328 B2 JP 4896328B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- server
- connection
- proxy
- adapter
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 150
- 230000006854 communication Effects 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 23
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000003936 working memory Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
- H04L69/085—Protocols for interworking; Protocol conversion specially adapted for interworking of IP-based networks with other networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Description
(発明の背景)
(発明の分野)
本発明は、概して、ネットワークサーバに関し、より詳細には、多数のクライアント接続をホストするサーバに関する。さらに詳細には、本発明は、多数の比較的遅いクライアント接続をホストするサーバ(例えば、インターネットウェブサーバ)に関する。
【0002】
(背景技術の説明)
インターネットウェブサーバなどのネットワークファイルサーバが、多数の比較的遅いクライアント接続を管理することは一般的である。多数のオープン接続は、オープン接続を管理するだけで、サーバ中央処理装置(CPU)に実質的な負担をかける。例えば、負荷が与えられたサーバ上のオープン接続の管理は、CPUの稼動能力を30%〜40%以上消費し得る。この負担は、実質的に、サーバの一次機能(すなわち、クライアントにデータを提供する)を実行可能なCPUサイクルのパーセンテージを減少させる。
【0003】
サーバCPUへの接続管理負担は、サーバソフトウェアルーチンの性能を劣化させ、同時にオープンであり得るクライアント接続の最大数を減少させる。結果として、ウェブを管理する会社は、数的に増加したクライアントを提供するために、別の冗長なサーバを提供する必要がある。別のウェブサーバを獲得および維持するためのコストは、相当な金額である。
【0004】
プロキシサーバは、いくつかのクライアント接続管理機能を実行し、当該分野で公知である。しかし、このようなプロキシサーバは、サーバから離れて収納される必要があり、従って、サーバが管理する必要がある比較的遅くてエラーを起こしやすいネットワーク接続を介してサーバと通信する必要があるということは、当該分野で周知であり、一般的に受け入れられている。例えば、Ari Luotonenの「Web Proxy Servers」(Prentice Hall、1997)を参照のこと。本明細書中、本文献を参考として援用する。
【0005】
従って、必要なものは、サーバCPUを接続管理負担から救済するシステムおよび方法であり、従って、サーバが、数的に増加したクライアントをより効率的に管理することを可能にすることである。
【0006】
(要旨)
本発明は、複数のクライアントとサーバとの間の接続を管理するシステムおよび方法を提供することにより、従来技術に関連する問題を克服する。本発明は、ホストCPUから、ネットワークとホストバスとの間に置かれるアダプタカードに、接続管理負担を肩代わりさせることを促進する。
【0007】
アダプタカードは、ネットワークコントローラ、メモリデバイス、処理装置、およびプロトコルアダプタを含む。メモリデバイスは、データおよびコードの格納を提供する。コードは、ネットワークコントローラを介してネットワーク上のクライアントと通信し、サーババスに直接結合されているプロトコルアダプタを介してサーバと通信するプロキシアプリケーションを含む。
【0008】
処理装置によって実行されると、プロキシアプリケーションは、ネットワークを介してプロキシアプリケーションとクライアントとの間にネットワーク接続を確立することにより、そして、サーババスを介してプロキシアプリケーションとサーバとの間にバス接続を確立することにより、クライアント接続を管理する。さらに、メモリデバイスは、比較的少ないバス接続がサーバに対してオープンである一方で、多くのネットワーク接続がクライアントに対してオープンになることを可能にするデータバッファリングを提供する。特別な実施形態において、プロキシは、多数の遅いクライアント接続からバッファ内にクライアントデータを累積し、次いで、早いバス接続を介してサーバにクライアントデータを提示する。逆に、プロキシは、早いバス接続を介してサーバデータを受信し、サーバデータを一時的に格納し、次いで、遅いクライアント接続を介してクライアントにサーバデータを転送する。
【0009】
より特別な実施形態において、コードは、クライアントおよびサーバと通信するためにアプリケーションプロキシによって使用される通信プロトコルスタックを含む。さらに特別な実施形態において、通信プロトコルスタックは、送信制御プロトコル/インターネットプロトコル(TCP/IP)スタックである。
【0010】
一実施形態において、サーバ接続は、プロキシが完全なクライアントリクエストを受信したことを判定して初めてオープンになる。サーバ接続は、次いで、プロキシが、サーバからのクライアントリクエストに対する応答を受信した後で、クローズになる。オプションとして、所定の数の永続的なサーバ接続がシステム起動時にオープンになり、プロキシは、これらの永続的な接続を使用して、サーバと通信する。
【0011】
プロキシアプリケーションは、オプションとして、多数のアプリケーション特有のプロキシを含み、HTTPプロキシ、安全プロキシ、および/またはパススループロキシを含むが、これらに限定されない。特定の実施形態において、プロキシのマスタープロセスモジュールは、クライアントデータからアプリケーション識別子(例えば、周知のポート数)を識別し、識別子の値に応じて、アプリケーション特有のプロキシを1つ以上呼び出す。
【0012】
本発明は、下記の図面を参照して説明され、ここで、同様の参照番号は、実質的に同様の要素を指す。
【0013】
(詳細な説明)
本発明は、異なる処理ユニット上で実行されるプロキシアプリケーションを用いて、サーバのメインプロセッサの接続管理に関する負担の多くを軽減することによって、従来技術に関連する問題を克服する。以下の説明において、多くの特定の詳細を記載し(例えば、特定の通信プロトコル、特定のソフトウェアおよびデータ構造など)、本発明の完全な理解を提供する。しかし、当業者であれば、これらの特定の詳細から離れて、本発明を実行し得ることを理解する。他の例において、本発明を不必要に不明瞭にしないように、周知のネットワークコンポーネントおよびプログラミングの実施の詳細(例えば、通信プロトコルスタックを介して接続を確立すること)は省略する。
【0014】
図1は、物理ネットワーク媒体104を介して、インターネットワーク102に接続されているシステム100を示すブロック図である。特定の実施において、システム100は、インターネットウェブサーバであり、インターネットワーク102は、インターネットであるが、当業者であれば、本発明を、任意の種類のネットワークサーバで実施し得ることを理解する。
【0015】
システム100は、ファイルサーバ(例えば、HTTPウェブサーバ)106およびアダプタカード108を含む。ファイルサーバ106は、アダプタカード108を介して、インターネットワーク102上のクライアント109(1−n)に、データを提供し、かつ、このクライアント109(1−n)からデータを受信する。アダプタカード108は、クライアント109(1−n)とアダプタカード108との間にネットワーク接続を確立、かつこれを維持し、サーバ106とアダプタカード108との間にバス接続を確立する。したがって、このバスが接続された後、アダプタカード108は、サーバ106の代わりに、クライアント109(1−n)から通信を受信し、通信をサーバ106に転送し、クライアント109の代わりに、サーバ106から応答を受信し、この応答をクライアント109に転送する。
【0016】
サーバ106は、不揮発性メモリ110、作業メモリ112、サーバ大容量データ記憶装置114、処理ユニット116および1つ以上のユーザ入力/出力(I/O)デバイス118を含み、これらすべては、サーババス120(例えば、PCIバス)を介して相互通信する。不揮発性メモリ110(例えば、リードオンリーメモリおよび/または1つ以上のハードディスクドライブ)は、サーバ106がパワーダウンした場合でさえも保持されるデータおよびコード用の記憶装置を提供する。作業メモリ112(例えば、ランダムアクセスメモリ)は、サーバ106用の動作メモリを提供し、かつ、起動の間、作業メモリ112内にロードされる実行可能なコード(例えば、オペレーティングシステム)を含む。数あるプログラムの中でも、作業メモリ112は、サーバアプリケーション121および通信プロトコルスタック122を含む。サーバアプリケーション121は、サーバ106がネットワークサーバとして機能することを可能にする、ネットワークソフトウェアアプリケーション(例えば、FTP、HTTPなど)を含む。通信プロトコルスタック122は、インターネットワーク上において他のマシーンとの通信を容易にする標準のプロトコルスタック(例えば、TCP/IP)である。標準のプロトコルスタックは、当該分野において周知である。例えば、W.Richard Stevensの「TCP/IP Illustrated、Vol.1」(Addison−Wesley、1994年)を参照されたい。同文献は、本明細書中に参考として援用する。サーバ大容量データ記憶装置114は、サーバが、インターネットワーク102に取り付けられたクライアント109(1−n)に提供するデータ(例えば、HTMLページ、グラフィクスファイルなど)用のデータ記憶装置(例えば、1つ以上のハードディスクドライブ)を提供する。処理ユニット116は、作業メモリ112内で命令を実行し、これにより、サーバ106は、その主な機能(例えば、クライアントにデータを提供し、クライアントからデータを受信する機能)を実行する。I/Oデバイス118は通常、キーボード、モニタ、および/またはサーバ106とのユーザ双方向通信を容易にする他のデバイスを含む。上述のコンポーネントのそれぞれは通常、インターネットウェブサーバなどのネットワークサーバ内に見られる。
【0017】
アダプタカード108は、不揮発性メモリ123、作業メモリ124、処理ユニット126、バスプロトコルブリッジ128、ネットワークコントローラ129を含み、これらすべては、アダプタバス130を介して相互通信する。不発揮性メモリ123は、アダプタ108がパワーダウンした場合でさえも保持されるデータおよびコード(例えば、起動コード)用の記憶装置を提供する。処理ユニット126は、作業メモリ124内にあるコードを実行することによって、アダプタカード108に機能性を付与する。バスプロトコルブリッジ128は、アダプタバス130とサーババス120との間にインターフェースを提供し、ネットワークコントローラ129は、アダプタバス130とネットワーク媒体104との間にインターフェースを提供する。
【0018】
作業メモリ124は、アダプタ108用の動作メモリを提供し、プロキシアプリケーション132および通信プロトコルスタック134を含む。プロキシ132およびプロトコルスタック134は、起動時に、不揮発性メモリ123から作業メモリ124内にロードされる。必要に応じて、プロキシ132およびプロトコルスタック134を、サーバ106の不揮発性メモリ110またはサーバ大容量データ記憶装置114を含む(ただし、これらに限定されない)1つ以上の別のソースからロードしてもよい。プロキシ132が処理ユニット126によって実行された場合、プロキシ132は、アダプタ108とサーバ106との間、およびアダプタ108とクライアント109との間に上述の接続を確立、かつ、管理する。
【0019】
本発明のこの特定の実施形態において、プロトコルスタック122および134は、標準(例えば、TCP/IP)のプロトコルスタックである。アダプタ108内に標準の通信プロトコルスタックを採用すると、広範囲にわたった、大多数のネットワークサーバにおいてすでに存在する標準の通信ソフトウェア(例えば、プロトコルスタック122)を用いることが容易になる。しかし、当業者であれば、この特定の要素(他の記載した用途(明示的に記述しない場合も含む))が本発明に必須要素ではないことを理解する。例えば、本発明は、サーバ106およびアダプタ108の両方で、カスタム通信ソフトウェア(例えば、サーバアプリケーション121と、プロトコルスタック134またはプロキシ132のいずれかとの間の直接通信)を用いて、実行し得る。さらに、本発明の特定の実施形態において、サーバ106のリソース(例えば、サーバ大容量データ記憶装置114)への直接アクセスをプロキシ132に提供することによって、この要素を省略することが可能である。
【0020】
バス接続136を介して、バスプロトコルブリッジ126とサーババス120との間のサーバ106に、アダプタカード108を接続する。この特定の実施形態において、バス接続136は、通常のバス拡張スロット(例えば、PCIスロット)である。しかし、当業者であれば、ISAスロット、USBポート、シリアルポートまたはパラレルポートを含む(ただし、これらに限定されない)他の種類のバス接続によって、本発明を実施し得ることを理解する。バス接続136によって、高速、大きなパケットサイズ、プロキシ132とサーバアプリケーション121との間の比較的にエラーのない(ネットワーク接続と比較した場合)通信が促進され、サーバ106の処理ユニット116にかかる接続管理の負担が軽減される。要するに、プロキシ132(処理ユニット116上で実行される)は、遅く、エラーを生じがちなネットワーク接続上でクライアント109と通信して、次いで、高速バス接続136上で、クライアント109の代わりにサーバアプリケーション121と通信する。
【0021】
図2は、プロキシ132およびプロトコルスタック134を詳細に示す作業メモリ124のブロック図である。当業者であれば、プロキシ132の種々のソフトウェアモジュールが、相互接続された機能ブロックとして図示され、一方、ソフトウェアモジュールは実際、ソフトウェアモジュールが処理ユニット126(図1)によって実行された場合に、相互に通信し得る作業メモリ124内に格納される、実行可能なコードのブロックであることを理解する。
【0022】
プロキシ132は、マスタープロセスモジュール202、複数のクライアントプロセスモジュール204(1−n)、データバッファ206およびアプリケーションプロキシモジュール208を含む。マスタープロセスモジュールは、プロキシ132の種々のモジュールの全体制御および調整を提供する。インターネットワーク102(図1)上のクライアント109からの接続リクエストに応答して、マスタープロセス202は、接続リクエストを受け取り、データバッファ206内のこのクライアント接続用にデータ構造を初期化し、新規の別々のクライアント接続プロセス204を開始して接続を処理し、次いで、特定のクライアント接続が確立されたことをアプリケーションプロキシ208に通知する。各クライアントプロセス204は、このようなクライアント接続を処理する。アプリケーションプロキシ208は、サーバ106とのバス接続を確立、かつ管理する。データバッファ206は、クライアント109から受信され、サーバ106向けのデータ、サーバ106から受信され、クライアント109向けのデータ、確立されたクライアントおよび/またはサーバ接続に関する接続データ用の記憶装置を提供する。
【0023】
通信プロトコルスタック134は、ソケット層210、TCP層212、IP層214、ネットワークドライバ216およびサーババスドライバ218含むデバイス層を含むTCP/IPスタックである。プロトコルスタック134の個々の層のそれぞれの機能性は、当該技術において周知である。したがって、本明細書において、詳細には説明しない。プロキシ132の種々のモジュールとサーバアプリケーション121との間の接続は、ソケット層210、TCP層212、IP層214およびサーババスドライバ218を介して確立される。プロキシ132の種々のモジュール間の接続は、ソケット層210、TCP層212、IP層214およびネットワークドライバ216を介して、クライアント109によって接続が確立される。
【0024】
図3は、ハイパーテキスト転送プロトコル(HTTP)プロキシ208(1)、パス−スループロキシ208(2)、セキュリティプロキシ208(3)および「他の」のプロキシ208(f)を含む複数のアプリケーション指定プロキシ208(1〜f)を含む、アプリケーションプロキシモジュール208を示すブロック図である。マスタープロセス202は、クライアント接続を機能させる、1つ以上のアプリケーション指定プロキシ208(1〜f)を構築することによって、アプリケーションプロキシ208に確立されたクライアント接続を通知する。アプリケーション指定プロキシ(例えば、HTTPプロキシ208(1))を構築する一つの手段は、アプリケーション指定プロキシのキューを処理する際に、クライアントプロセス識別子を入力することである。
【0025】
マスタープロセス202は、クライアント接続リクエストに含まれるポート番号から、特定のクライアントプロセス用にいずれのアプリケーション指定プロキシを実行するかを判定する。特定のネットワークアプリケーションおよび/またはプロトコル(例えば、ファイル転送プロトコル(FTP)、HTTPなど)を識別するために、周知のポート番号を用いることが標準的な実施である。例えば、ポート番号80は、HTTP接続リクエストに対応する。したがって、マスタープロセス202は、接続リクエストがポート80を示したことに応答して開始される、すべてのクライアントプロセス204を、HTTPプロキシ208(1)に通知する。
【0026】
HTTPプロキシ208(1)は、通知されたクライアントプロセスのそれぞれをモニタリングする。クライアントプロセス(例えば、204(n))によって、完全なHTTPリクエストがデータバッファ206内に受信および格納されたことを、HTTPプロキシ208(1)が判定すると、HTTPプロキシ208(1)は、サーバへの接続を開始し、リクエストをサーバに伝送し、サーバから応答を受信し、データバッファ206内に応答を格納し、次いでサーバ接続を終了する。次いで、サーバ応答を、関連するクライアントプロセス204(n)によって、クライアント109(n)に伝送する。
【0027】
マスタープロセス202が、他のアプリケーション指定プロキシのいずれとも対応しないポート番号を有する接続リクエストを受信すると、マスタープロセス202は、パス−スループロキシ208(2)に通知する。パス−スループロキシ208(2)は単に、サーバ接続を開始し、データバッファ206からサーバ106に、関連するクライアントプロセス204から受信されたデータを転送し、次いでサーバ接続を終了する。
【0028】
マスタープロセス202は、関連するポート番号にかかわらず、すべてのクライアント接続を、いくつかのアプリケーション指定プロキシに通知し得る。例えば、セキュリティプロキシ208(3)は、例えば、他のアプリケーション指定プロキシのうちの一つを実施する前に、認定表示のない接続リクエストに応答して開始される任意のクライアントプロセスを終了することによって、すべてのクライアント接続リクエストをスクリーニングするために動作する。
【0029】
図3に「他」のプロキシ208(f)を含み、アプリケーションプロキシ208が、キャッシュ(caching)HTTPプロキシアプリケーション、電子メールアプリケーションおよびファイル転送アプリケーションを含む(ただし、これらに限定されない)特定のアプリケーションに所望である、任意の現在公知のプロキシ、または将来開発されるプロキシを含み得ることを示す。
【0030】
図4は、データスループロキシ132の伝送に影響を与えるように、データバッファ206内に実施される、クライアントデータ構造402(1−n)およびプロキシデータ構造404(1−f)の例を示す。マスタープロセス202は、アプリケーションプロキシ208内で、各クライアントプロセス204用に一つのクライアントデータ構造402および各アプリケーション指定プロキシ用に一つのプロキシデータ構造404を作成および初期化する。
【0031】
各クライアントデータ構造402は、クライアントソケット406、サーバソケット408、接続状態410、入力キュー412、出力キュー414およびアプリケーションプロキシデータ416を含む。各クライアント接続(例えば、接続(n))に関して、クライアントソケット406(n)およびサーバソケット408(n)はそれぞれ、クライアント109(n)およびサーバ106のIPアドレスおよびポート番号を含み、したがって、クライアントプロセス204(n)のうちの一つと、各クライアントデータ構造402(n)が一意的に関連付けられる。接続状態410(n)は、接続(n)の現在の状態(例えば、受信された完全なリクエスト、受信された応答など)を示す。特定のデータ構造402(n)と関連付けられたクライアントプロセス204(n)によって、クライアント109(n)から受信されたデータを格納および蓄積するために、入力キュー412(n)を用いる。クライアントプロセス204(n)によって、クライアント109(n)に転送されるべきアプリケーションプロキシ208からデータを格納するために、出力キュー414(n)を用いる。特定のアプリケーションプロキシ(例えば、フラグなど)に特定の任意の情報を格納するために、アプリケーションプロキシデータ416(n)を提供する。
【0032】
各プロキシデータ構造(例えば、404(f))は、クライアントキュー418(f)、クライアント準備キュー420(f)および読み出し保留キュー422(f)を含む。クライアントキュー418(f)は、プロキシデータ構造404(f)が対応する、特定のアプリケーションプロキシ(f)と関連する各クライアントプロセス204用のクライアントプロセス記述子(例えば、関連するクライアントデータ構造402のポインタ)を含む。クライアント準備キュー420(f)は、関連するアプリケーションプロキシ(f)によって処理する(例えば、サーバ106に伝送する)準備が整った入力キュー412内にデータを有する、各クライアントデータ構造402用のクライアントプロセス記述子を含む。
【0033】
当業者であれば、上述のクライアントデータ構造402およびプロキシデータ構造404は本質的には例示であり、本発明によって、他のデータ構造を採用し得ることを理解する。このような別のデータ構造の構成は必然的に、採用される特定のアプリケーション指定プロキシの機能および構造に依存する。
【0034】
図5は、本発明による、クライアントとサーバとの間の接続を管理する特定の方法500をまとめたフローチャートである。プロキシ132は、第1の工程502において、クライアント109とのネットワーク接続を確立し、次いで第2の工程504において、ネットワーク接続を介して、クライアント109から通信(例えば、HTTPリクエスト)を受信する。次に、プロキシ132は、第3の工程506において、サーバ106とのバス接続を確立し、次いで第4の工程508において、バス接続を介して、サーバ106に、受信したクライアント通信を転送する。次いで、プロキシ132は、第5の工程510において、サーバ106から、クライアント通信への応答(例えば、HTMLデータ)を受信し、第6の工程512において、クライアントネットワーク接続を介してクライアント109に応答を伝送する。最後に、プロキシ132は、第7の工程514において、終了すべき(例えば、シャットダウンすべき)信号があるか否かを判定し、終了すべき信号がある場合には、方法500は終了する。第7の工程514において、終了すべき信号がない場合には、方法500は、第1の工程502に戻り、別のクライアント109とのネットワーク接続を確立する。
【0035】
図6は、方法500の第1の工程502を実行する(クライアントとのネットワーク接続を確立する)一つの特定の方法600をまとめたフローチャートである。第1の工程において、マスタープロセス202は、インターネットワーク102に接続する。次いで、第2の工程604において、マスタープロセス202は、インターネットワーク102上のトラフィックを聞き、クライアント109から接続リクエストがあるか否かを判定する。クライアントの接続リクエストがない場合には、方法600は終了する。クライアント109(n)から接続リクエストがある場合には、第3の工程606において、マスタープロセス202は、クライアント109(n)から接続リクエストを受け取り、クライアントプロセス204(n)を開始し、接続を処理し、データバッファ206内のクライアントデータ構造402(n)を初期化する。次に、第4の工程608において、マスタープロセス202は、クライアント接続リクエストからプロキシアプリケーション識別子(例えば、ポート番号)を区別し、識別子の値に応じて、各プロキシデータ構造404のクライアントキュー418内に、クライアントプロセス記述子(例えば、クライアントデータ構造402(n)のポインタ)を書き込むことによって、一つ以上のアプリケーションプロキシ208(1〜f)に通知する。最後に、第5の工程610において、マスタープロセス202は、最大許容数のクライアント接続がオープンであるか否かを判定する。最大数のクライアント接続がオープンである場合には、方法600は終了する。最大数のクライアント接続がオープンでない場合には、方法600は、第2の工程604に戻り、別の接続リクエストを聞く。
【0036】
図7は、方法500の(クライアント109からの通信を受ける)第2の工程504を実行する方法700を概説するフローチャートである。第1の工程702で、マスタープロセス202は、データを受信するために処理されるべきクライアントプロセス204が存在するどうかを判断する。マスタープロセス202がクライアントプロセス204(1−n)の全てをすでに処理している場合、方法700は終了する。処理していない場合、第2の工程704で、マスタープロセス202が第1のクライアントプロセス204(1)を呼ぶ。次いで、第3の工程706で、クライアントプロセス204(1)は、クライアント109(1)からデータが入来しているかどうかを判断するために、クライアント接続(例えば、TCPバッファ)をチェックする。第1のクライアントプロセス204(1)に対する入来データがない場合、方法700は、残りのクライアントプロセス204(2−n)を処理するために、第1の工程702に戻る。第3の工程706で、クライアントプロセス204(1)が、クライアント109(1)からの入来データが存在すると判断した場合、第4の工程708で、クライアントプロセス204(1)は、入力キュー412(1)がクライアントデータを受信するために利用可能であるかを判断するために、クライアントデータ構造402(1)をチェックする。入力キュー412(1)が利用可能でない場合、方法700は、残りのクライアントプロセス204(2−n)を処理するために、第1の工程702に戻る。第4の工程708で、クライアントプロセス204(1)は、入力キュー412(1)がデータの受信のために利用可能であると判断した場合、次いで、第5の工程710で、クライアントプロセス204(1)は、入来するクライアントデータを入力キュー412(1)に転送する。次いで、第6の工程712で、クライアントプロセス204(1)は、入力キューに蓄積されたデータが完全なリクエスト(すなわち、サーバ106への転送準備が完了したデータ、例えば、完全なHTTPリクエスト)を構成しているかどうかを判断する。データが完全なリクエストを構成していない場合、方法700は、残りのクライアントプロセス204(2−n)を処理するために、第1の工程702に戻る。しかしながら、クライアントプロセス204(1)は、第6の工程712で、入力キュー412(1)内のデータが完全なリクエストを構成していると判断した場合、第7の工程714で、クライアントプロセスは、例えば、完全なリクエストが存在することを示すように接続状態410(1)を設定することにより、完全なリクエストが存在することをプロキシアプリケーション208に通知する。次いで、方法700は、処理すべきクライアントプロセス204(2−n)がさらに存在するかどうかを判断するために、第1の工程702に戻る。
【0037】
図8は、方法500の(サーバ106とのバス接続を確立する)第3の工程506を実行する方法800を概説するフローチャートである。第1の工程802で、1つ目のアプリケーションプロキシ208(1)が、プロキシデータ構造404(1)のクライアントキュー418(1)から、第1のクライアント記述子を引き出す。次いで、第2の工程804で、プロキシ208(1)は、第1のクライアントがその入力キュー412内に完全なリクエストを有するかどうかを判断するために、第1のクライアント記述子により特定されるクライアントデータ構造402の接続状態412をチェックする。接続状態412が完全なリクエストを示す場合、第3の工程806で、プロキシ208(1)は、クライアント準備完了キュー420(1)にクライアント記述子を加える。次に、第4の工程808で、プロキシ208(1)は、サーバ106に対して、最大数の接続が開かれているかどうかを判断する。最大数のサーバ接続がすでに開かれている場合、方法800は終了する。最大数のサーバ接続がまだ開かれていない場合、第5の工程810で、プロキシ208(1)は、サーバ106とのバス接続を開き、関連づけられたクライアントデータ構造402のサーバソケット408に接続情報を書き込む。次に、第6の工程812で、プロキシ208(1)は、クライアントキュー418(1)内の最後の記述子をチェックしたかどうかを判断する。最後の記述子がチェックされている場合、方法800は終了する。最後の記述子がチェックされていなければ、方法800は、クライアントキュー418(1)内の次の記述子を引き出すために、第1の工程802に戻る。第2の工程804で、プロキシ208(1)が、完全なクライアントリクエストが受信されていないと判断した場合、方法800は、直接、第6の工程812に進む。一旦、プロキシデータ構造404(1)のクライアントキュー418(1)内の記述子の全てが処理されると、方法800または同様の方法が、他のアプリケーションプロキシ208(2−f)の各々に対して繰り返される。
【0038】
図9は、方法500の(サーバ106にクライアント通信を転送する)第4の工程508を実行する方法900を概説するフローチャートである。第1の工程902で、プロキシ208(1)は、プロキシデータ構造404(1)のクライアント準備完了キュー420(1)から、第1のクライアント記述子を引き出す。次いで、第2の工程904で、プロキシ208(1)は、サーバ接続が開いているかどうかを判断するために、第1のクライアントのデータ構造402のサーバソケット408をチェックする。サーバ接続が開いている場合、第3の工程906で、プロキシ208(1)は、開いたサーバ接続を介して、クライアント入力キュー412からサーバ106にクライアントデータ(例えば、HTTPリクエスト)を転送する。次に、第4の工程908で、プロキシ208(1)は、クライアント準備完了キュー420(1)から読み出し保留キュー422(1)にクライアント記述子を移動する。次いで、第5の工程910で、プロキシ208(1)は、クライアント準備完了キュー420(1)内の最後のクライアントがチェックされたかどうかを判断する。チェックされていない場合、方法900は、クライアント準備完了キュー420(1)内の次のクライアントをチェックするために、第1の工程902に戻る。最後のクライアントがチェックされている場合、方法900は終了する。第2の工程904で、プロキシ208(1)が、特定のクライアントのために開いたサーバ接続が存在しないと判断した場合、方法900は、クライアント準備完了キュー420(1)内の最後のクライアントがチェックされたかどうかを判断するために、直接、第5の工程910に進む。一旦、プロキシデータ構造404(1)のクライアント準備完了キュー420(1)内の記述子の全てが処理されると、方法900または同様の方法が、他のアプリケーションプロキシ208(2−f)の各々に対して繰り返される。
【0039】
図10は、方法500の(サーバ106から応答を受信する)第5の工程510を実行する方法1000を概説するフローチャートである。第1の工程1002で、プロキシ208(1)は、読み出し保留キュー422(1)が空であるかどうかを判断し、空である場合、方法1000が終了する。読み出し保留キュー422(1)が空でない場合、第2の工程1004で、プロキシ208(1)が、読み出し保留キューから第1のクライアント記述子を引き出す。次に、第3の工程1006で、プロキシ208(1)が、第1のクライアント記述子により特定されるクライアントデータ構造402のサーバソケット408内で特定された、開いたサーバ接続上に入来サーバデータ(すなわち、クライアントリクエストへの応答)が存在するかどうかを判断するために、その接続をチェックする。その接続上に入来サーバデータが存在しない場合、方法1000は、読み出し保留キュー内の次のクライアントをチェックするために、第2の工程1004に戻る。入来サーバデータが存在する場合、第4の工程1008で、プロキシ208(1)は、クライアント記述子により特定されるクライアントデータ構造402の出力キュー414が利用可能であるかどうかを判断するためのチェックを行う。出力キュー414が利用可能でない場合、方法1000は、読み出し保留キュー422(1)内の次のクライアント記述子をチェックするために、第2の工程1004に戻る。出力キュー414が利用可能である場合、第5の工程1010で、プロキシ208(1)は、クライアントデータ構造402の出力キュー414に、入来サーバデータを移動する。次に、第6の工程1012で、プロキシ208(1)は、サーバデータが「ファイルの終わり」インジケータを含むかどうかを判断する。含んでいない場合、第7の工程1014で、プロキシ208(1)は、読み出し保留キュー422(1)内の最後のクライアント記述子が処理されたかどうかを判断するためのチェックを行う。処理されている場合、方法1000は終了する。処理されていない場合、方法1000は、読み出し保留キュー422(1)から次のクライアント記述子を読み出すために、工程1004に戻る。
【0040】
第6の工程1012で、プロキシ208(1)が、サーバデータが「ファイルの終わり」インジケータを含むと判断した場合、方法1000は、プロキシ208(1)が読み出し保留キューからクライアント記述子を取り除く、第8の工程1016に進み、次いで、第9の工程1018で、サーバ接続を閉じる。第9の工程1018の後、方法1000は、第7の工程1014に戻る。一旦、プロキシデータ構造404(1)の読み出し保留キュー422(1)内の記述子の全てが処理されると、方法1000または同様の方法が、他のアプリケーションプロキシ208(2−f)の各々に対して繰り返される。
【0041】
図11は、方法500の(クライアント109にデータを送信する)第6の工程512を実行する方法1100を概説するフローチャートである。第1の工程1102で、マスタープロセス202は、第1のクライアントプロセス204(1)を呼ぶ。次いで、第2の工程1104で、第1のクライアントプロセス204(1)は、クライアントデータ構造402(1)の出力キュー414(1)内にデータが存在するかどうかを判断する。出力キュー414(1)内にデータが存在しない場合、方法1100は、マスタープロセス202が残りのクライアントプロセス204(2−n)のうちの次のクライアントプロセスを呼ぶ、第1の工程1102に戻る。しかしながら、第2の工程1104で、クライアントプロセス204(1)が、出力キュー414(1)内にデータが存在すると判断した場合、第3の工程1106で、クライアントプロセス204(1)は、クライアントネットワーク接続がデータを受信する準備が完了しているかどうかを判断する。クライアントネットワーク接続が準備完了していない場合、方法1100は第1の工程1102に戻る。クライアントネットワーク接続が準備完了している場合、第4の工程1108で、クライアントプロセス204(1)は、クライアント接続(例えば、TCP出力バッファ)に、出力キュー414(1)内のデータの少なくとも一部を移動する。次に、第5の工程1110で、マスタープロセス202は、最後のクライアントプロセスが呼ばれたかどうかを判断する。呼ばれている場合、方法1100は終了する。呼ばれていない場合、方法1100は、残りのクライアントプロセス203(2−n)のうちの次のクライアントプロセスを呼ぶために、第1の工程1102に戻る。
【0042】
これで、本発明の特定の実施形態の説明を終える。説明した特徴の多くは、本発明の範囲を逸脱することなく、置換、変更、または省略され得る。例えば、アダプタ108の機能素子(例えば、処理ユニット126およびプロキシ132)は、着脱可能アダプタカードに設けられる代わりに、サーバに直接組み入れられ得る。さらに、代替的なデータ構造が、提供された例示的なデータ構造と置き換えられ得る。また、本明細書中において開示された方法およびルーチンの特定の順序は、本発明の必要不可欠な要素であるとは見なされない。さらに別の例として、マスタープロセス202は、起動時に、サーバ106との好適な数の持続的バス接続を開き、アプリケーションプロキシ208(1−f)によるこれらの接続の使用を管理するように構成され得るため、サーバ106がバス接続を繰り返し開閉する必要がなくなる。示された特定の実施形態からのこれらおよび他の逸脱は、特に、前述の開示より当業者には明らかである。
【図面の簡単な説明】
【図1】 図1は、本発明によるサーバおよびアダプタカードのブロック図である。
【図2】 図2は、図1のアダプタカードの作業メモリのブロック図であり、プロキシモジュールをより詳細に示す。
【図3】 図3は、図2のアプリケーションプロキシモジュールをより詳細に示すブロック図である。
【図4】 図4は、図2のデータバッファ内に格納されているデータの少なくともいくつかに関する例示的なデータ構造を示すブロック図である。
【図5】 図5は、本発明によるクライアントとサーバとの間の接続を管理する1つの方法を要約するフローチャートである。
【図6】 図6は、図5の方法の第1のステップを実行する1つの方法を要約するフローチャートである。
【図7】 図7は、図5の方法の第2のステップを実行する1つの方法を要約するフローチャートである。
【図8】 図8は、図5の方法の第3のステップを実行する1つの方法を要約するフローチャートである。
【図9】 図9は、図5の方法の第4のステップを実行する1つの方法を要約するフローチャートである。
【図10】 図10は、図5の方法の第5のステップを実行する1つの方法を要約するフローチャートである。
【図11】 図11は、図5の方法の第6のステップを実行する1つの方法を要約するフローチャートである。
Claims (19)
- 原サーバの内部バスに動作可能に結合されたインターフェースデバイスにおいて、少なくとも1つのクライアントと該原サーバとの間の接続を管理するための方法であって、該インターフェースデバイスは、ネットワークコントローラとアダプタバスとを含み、該ネットワークコントローラは、該アダプタバスに接続されており、
該方法は、
ネットワークを介して、該ネットワークコントローラとクライアントのうちの1つとの間のネットワーク接続を確立する工程と、
該ネットワーク接続を介して、該クライアントから通信を受ける工程と、
該インターフェースデバイスの該アダプタバスと該原サーバの該内部バスとの間のバス接続を確立する工程と、
該バス接続を介して、該原サーバに、該クライアント通信を転送する工程と、
該バス接続を介して、該原サーバからの該クライアント通信への応答を受信する工程と、
該ネットワーク接続を介して、該クライアントへの該応答を転送する工程とをさらに包含する、方法。 - 前記原サーバからの応答を受信する工程は、該応答をバッファ内に格納する工程を包含する、請求項1に記載の方法。
- 前記原サーバからの応答を受信する工程は、該応答が受信された後、前記バス接続を終了する工程を包含する、請求項2に記載の方法。
- 前記クライアント通信は、HTTPリクエストを含む、請求項1に記載の方法。
- 前記原サーバからの応答は、HTMLページを含む、請求項4に記載の方法。
- 電子デバイスに請求項1に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。
- 電子デバイスに請求項2に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。
- 電子デバイスに請求項3に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。
- 電子デバイスに請求項4に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。
- 電子デバイスに請求項5に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。
- ネットワークとの原サーバ通信を管理するために、原サーバの内部バスに動作可能に結合するためのアダプタカードであって、
該アダプタカードは、
該ネットワーク上のクライアントと通信するためのネットワークコントローラと、
データとコードとを格納するためのメモリデバイスであって、該コードはリバースプロキシアプリケーションを含む、メモリデバイスと、
該メモリデバイスに結合された、該コードを実行するための処理ユニットと、
該処理ユニットに結合されたプロトコルアダプタと、
該ネットワークコントローラ、該メモリデバイス、該処理ユニット、該プロトコルアダプタの間に結合されたアダプタバスと
を備え、
該リバースプロキシアプリケーションは、該処理ユニットによって実行されると、該原サーバと通信するために、該原サーバの該内部バスに結合するように該プロトコルアダプタを制御し、
該リバースプロキシアプリケーションは、クライアント通信を受信し、かつ、該プロトコルアダプタを介して該原サーバに該クライアント通信を転送するように動作可能であり、該クライアント通信は、該ネットワークコントローラを介して受信され、
該リバースプロキシアプリケーションは、該プロトコルアダプタを介して、該原サーバからの該クライアント通信への応答を受信し、かつ、該ネットワークコントローラを介して該クライアントへの該応答を転送するように動作可能である、アダプタカード。 - 前記コードは、通信プロトコルスタックをさらに含む、請求項11に記載のアダプタカード。
- 前記通信プロトコルスタックは、標準TCP/IPプロトコルスタックを含む、請求項12に記載のアダプタカード。
- 前記リバースプロキシアプリケーションは、セキュリティプロキシを含む、請求項11に記載のアダプタカード。
- 前記リバースプロキシアプリケーションは、パススループロキシを含む、請求項11に記載のアダプタカード。
- 前記リバースプロキシアプリケーションは、HTTPプロキシを含む、請求項11に記載のアダプタカード。
- 前記クライアントから受信したデータを格納するためのデータバッファをさらに備える、請求項11に記載のアダプタカード。
- 前記リバースプロキシアプリケーションは、マスタープロセスモジュールであって、前記クライアントのうちの1つから受信した接続リクエストに応答し、かつ該クライアントとの接続を確立して、該確立された接続を維持するために、新たなクライアントプロセスモジュールを開始するように動作可能であるマスタープロセスモジュールを含む、請求項11に記載のアダプタカード。
- 前記マスタープロセスモジュールは、さらに、前記確立された接続を前記リバースプロキシアプリケーションに通知するように動作可能である、請求項18に記載のアダプタカード。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/405,608 | 1999-09-24 | ||
US09/405,608 US6877036B1 (en) | 1999-09-24 | 1999-09-24 | System and method for managing connections between a client and a server |
PCT/US2000/026097 WO2001022195A2 (en) | 1999-09-24 | 2000-09-22 | System and method for managing connections between a client and a server |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011233379A Division JP5364773B2 (ja) | 1999-09-24 | 2011-10-24 | クライアントとサーバ間の接続を管理するためのシステムおよび方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003523552A JP2003523552A (ja) | 2003-08-05 |
JP2003523552A5 JP2003523552A5 (ja) | 2007-11-08 |
JP4896328B2 true JP4896328B2 (ja) | 2012-03-14 |
Family
ID=23604408
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001525498A Expired - Fee Related JP4896328B2 (ja) | 1999-09-24 | 2000-09-22 | クライアントとサーバ間の接続を管理するためのシステムおよび方法 |
JP2011233379A Expired - Fee Related JP5364773B2 (ja) | 1999-09-24 | 2011-10-24 | クライアントとサーバ間の接続を管理するためのシステムおよび方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011233379A Expired - Fee Related JP5364773B2 (ja) | 1999-09-24 | 2011-10-24 | クライアントとサーバ間の接続を管理するためのシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US6877036B1 (ja) |
EP (1) | EP1226482A4 (ja) |
JP (2) | JP4896328B2 (ja) |
CN (1) | CN1288575C (ja) |
AU (1) | AU4019601A (ja) |
CA (1) | CA2385899C (ja) |
TW (1) | TW475114B (ja) |
WO (1) | WO2001022195A2 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920637B2 (en) * | 1995-11-17 | 2005-07-19 | Symbol Technologies, Inc. | Method and apparatus for implementing alerts on a browser running on a portable handheld device |
JP3974276B2 (ja) * | 1998-11-30 | 2007-09-12 | ペンタックス株式会社 | セラミックス複合体の製造方法およびセラミックス複合体 |
US6877036B1 (en) * | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
US7272649B1 (en) * | 1999-09-30 | 2007-09-18 | Cisco Technology, Inc. | Automatic hardware failure detection and recovery for distributed max sessions server |
US6854018B1 (en) * | 2000-03-20 | 2005-02-08 | Nec Corporation | System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size |
US7392282B2 (en) * | 2001-03-14 | 2008-06-24 | International Business Machines Corporation | Method for ensuring client access to messages from a server |
US20020156841A1 (en) * | 2001-04-13 | 2002-10-24 | Bjorn Landfeldt | Accessing distributed proxy configurations |
US7200679B2 (en) | 2001-04-13 | 2007-04-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Creating distributed proxy configurations |
US8090866B1 (en) * | 2002-01-18 | 2012-01-03 | Cisco Technology, Inc. | TCP proxy connection management in a gigabit environment |
US20040105445A1 (en) * | 2002-06-19 | 2004-06-03 | Jeremy Wyn-Harris | Internet protocol for resource-constrained devices |
US7426535B2 (en) * | 2002-10-08 | 2008-09-16 | Telecommunication Systems, Inc. | Coordination of data received from one or more sources over one or more channels into a single context |
JP2004145392A (ja) * | 2002-10-21 | 2004-05-20 | Kddi Corp | 動画像ファイル配信装置 |
CN100452014C (zh) * | 2003-06-02 | 2009-01-14 | 美国在线服务公司 | 提供关于一项目与一网页相关的指示的方法及设备 |
CN1302364C (zh) * | 2004-02-11 | 2007-02-28 | 财团法人资讯工业策进会 | 应用界面桥接方法与系统 |
US20050228509A1 (en) * | 2004-04-07 | 2005-10-13 | Robert James | System, device, and method for adaptively providing a fieldbus link |
GB0425966D0 (en) * | 2004-11-25 | 2004-12-29 | Vodafone Plc | Server functionality within a client |
US9055088B2 (en) * | 2005-03-15 | 2015-06-09 | International Business Machines Corporation | Managing a communication session with improved session establishment |
WO2006126221A1 (en) * | 2005-05-27 | 2006-11-30 | Telecom Italia S.P.A. | System and method for performing mobile services, in particular push and pull services, in a wireless communication network |
EP1833206B1 (en) * | 2006-03-10 | 2013-12-04 | Mitel Networks Corporation | Method for distributing connection attempts to a server |
US7649902B2 (en) * | 2006-11-22 | 2010-01-19 | Sun Microsystems, Inc. | Method and apparatus for performing syntax-directed application layer data buffering |
US20080309665A1 (en) * | 2007-06-13 | 2008-12-18 | 3D Systems, Inc., A California Corporation | Distributed rapid prototyping |
CN101383879B (zh) * | 2007-09-07 | 2011-05-18 | 米特尔网络公司 | 用于分配对服务器的连接尝试的方法 |
US20090097470A1 (en) * | 2007-10-12 | 2009-04-16 | Collier David S | Methods and systems for communicating data |
CN101996288A (zh) * | 2009-08-18 | 2011-03-30 | 精品科技股份有限公司 | 资讯安全管理系统 |
CN102118390B (zh) * | 2011-01-07 | 2015-07-22 | 杭州华三通信技术有限公司 | 多网卡设备的多应用系统联动的方法及设备 |
US8327006B2 (en) * | 2011-02-24 | 2012-12-04 | Jibe Mobile | Endpoint device and article of manufacture for application to application communication over a network |
CN102439946B (zh) * | 2011-06-23 | 2014-05-21 | 华为技术有限公司 | 数据传输方法和设备 |
US9154580B2 (en) * | 2012-02-01 | 2015-10-06 | Tata Consultancy Services Limited | Connection management in a computer networking environment |
CN103516851B (zh) * | 2012-06-30 | 2016-05-25 | 北京新媒传信科技有限公司 | 一种无线产品云测试平台系统 |
KR102090493B1 (ko) * | 2013-01-22 | 2020-03-18 | 삼성전자주식회사 | 무선 통신 네트워크에서 http 프로토콜의 전송 지연과 http 서버의 프로세싱 부하를 줄이는 장치 및 방법 |
US11222001B2 (en) * | 2013-03-15 | 2022-01-11 | Sap Se | Augmenting middleware communication services |
US9559896B2 (en) * | 2013-07-08 | 2017-01-31 | Cisco Technology, Inc. | Network-assisted configuration and programming of gateways in a network environment |
US10230770B2 (en) * | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
CN105915658B (zh) * | 2016-07-04 | 2019-07-23 | 优刻得科技股份有限公司 | 获取客户端ip地址的数据调用方法、数据传输方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01226059A (ja) * | 1988-03-04 | 1989-09-08 | Matsushita Graphic Commun Syst Inc | 通信アダプタ |
US5872919A (en) * | 1997-05-07 | 1999-02-16 | Advanced Micro Devices, Inc. | Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic |
JPH1165969A (ja) * | 1997-08-19 | 1999-03-09 | Toshiba Corp | サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体 |
US5898830A (en) * | 1996-10-17 | 1999-04-27 | Network Engineering Software | Firewall providing enhanced network security and user transparency |
JPH11187061A (ja) * | 1997-05-06 | 1999-07-09 | Toshiba Corp | 通信装置、通信制御方法、サービス登録方法、サービス提供方法及び装置制御プログラム登録方法 |
US5941988A (en) * | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
JPH11242644A (ja) * | 1997-09-11 | 1999-09-07 | Internatl Business Mach Corp <Ibm> | データ処理システム、文書表示方法、システムおよび文書提示制御方法 |
US6182141B1 (en) * | 1996-12-20 | 2001-01-30 | Intel Corporation | Transparent proxy server |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0476752A (ja) | 1990-07-19 | 1992-03-11 | Nec Corp | バッファ制御方式 |
JPH04326227A (ja) | 1991-04-25 | 1992-11-16 | Nippon Telegr & Teleph Corp <Ntt> | 高速回線制御装置 |
US5426639A (en) | 1991-11-29 | 1995-06-20 | At&T Corp. | Multiple virtual FIFO arrangement |
JPH05225094A (ja) | 1992-02-10 | 1993-09-03 | Nec Corp | 通信制御装置システムにおけるバッファプール制御方式 |
FR2699706B1 (fr) | 1992-12-22 | 1995-02-24 | Bull Sa | Système de transmission de données entre un bus d'ordinateur et un réseau. |
JP2963298B2 (ja) * | 1993-03-26 | 1999-10-18 | 富士通株式会社 | 二重化共有メモリにおける排他制御命令のリカバリ方法および計算機システム |
JPH0787100A (ja) | 1993-09-17 | 1995-03-31 | Hitachi Ltd | 通信アダプタ |
US5550981A (en) | 1994-06-21 | 1996-08-27 | At&T Global Information Solutions Company | Dynamic binding of network identities to locally-meaningful identities in computer networks |
US5678007A (en) * | 1994-11-22 | 1997-10-14 | Microsoft Corporation | Method and apparatus for supporting multiple outstanding network requests on a single connection |
US5896508A (en) | 1995-02-23 | 1999-04-20 | Advanced Micro Devices, Inc. | Hub-network adapter device for a file server personal computer |
JPH08314779A (ja) | 1995-05-16 | 1996-11-29 | Hitachi Ltd | サーバーシステム |
US5878213A (en) * | 1996-02-15 | 1999-03-02 | International Business Machines Corporation | Methods, systems and computer program products for the synchronization of time coherent caching system |
US5754774A (en) | 1996-02-15 | 1998-05-19 | International Business Machine Corp. | Client/server communication system |
US5832512A (en) | 1996-04-15 | 1998-11-03 | Sun Microsystems, Inc. | Apparatus and method for file number re-mapping for disconnected operations in a client-server network |
US5918013A (en) | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5867650A (en) | 1996-07-10 | 1999-02-02 | Microsoft Corporation | Out-of-band data transmission |
US6091737A (en) * | 1996-11-15 | 2000-07-18 | Multi-Tech Systems, Inc. | Remote communications server system |
JP3217002B2 (ja) | 1996-11-19 | 2001-10-09 | 株式会社日立製作所 | デジタルスタジオ装置およびその制御方法 |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
US6185625B1 (en) | 1996-12-20 | 2001-02-06 | Intel Corporation | Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object |
US5974496A (en) | 1997-01-02 | 1999-10-26 | Ncr Corporation | System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card |
US6122514A (en) | 1997-01-03 | 2000-09-19 | Cellport Systems, Inc. | Communications channel selection |
US6138162A (en) | 1997-02-11 | 2000-10-24 | Pointcast, Inc. | Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request |
US5935249A (en) * | 1997-02-26 | 1999-08-10 | Sun Microsystems, Inc. | Mechanism for embedding network based control systems in a local network interface device |
US6119161A (en) | 1997-02-28 | 2000-09-12 | International Business Machines Corporation | Managing connection requests in a dialup computer network |
US6237031B1 (en) | 1997-03-25 | 2001-05-22 | Intel Corporation | System for dynamically controlling a network proxy |
US6104716A (en) | 1997-03-28 | 2000-08-15 | International Business Machines Corporation | Method and apparatus for lightweight secure communication tunneling over the internet |
US5924116A (en) | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
JP3173418B2 (ja) | 1997-04-18 | 2001-06-04 | 日本電気株式会社 | ストリーム再生制御方式及びプログラムを記録した機械読み取り可能な記録媒体 |
US6072483A (en) | 1997-06-02 | 2000-06-06 | Sony Corporation | Active frame scroll interface |
JP2998701B2 (ja) | 1997-06-27 | 2000-01-11 | 日本電気株式会社 | データ通信におけるサーバアクセス方式 |
US6098108A (en) * | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6006268A (en) * | 1997-07-31 | 1999-12-21 | Cisco Technology, Inc. | Method and apparatus for reducing overhead on a proxied connection |
US6222533B1 (en) | 1997-08-25 | 2001-04-24 | I2 Technologies, Inc. | System and process having a universal adapter framework and providing a global user interface and global messaging bus |
US6035324A (en) | 1997-08-28 | 2000-03-07 | International Business Machines Corporation | Client-side asynchronous form management |
US6247050B1 (en) | 1997-09-12 | 2001-06-12 | Intel Corporation | System for collecting and displaying performance improvement information for a computer |
US6574661B1 (en) * | 1997-09-26 | 2003-06-03 | Mci Communications Corporation | Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client |
US6088803A (en) | 1997-12-30 | 2000-07-11 | Intel Corporation | System for virus-checking network data during download to a client device |
US6101328A (en) | 1997-12-31 | 2000-08-08 | Intel Corporation | System for preventing multiple instances of the same dynamic executable module |
US6822955B1 (en) | 1998-01-22 | 2004-11-23 | Nortel Networks Limited | Proxy server for TCP/IP network address portability |
US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6094699A (en) * | 1998-02-13 | 2000-07-25 | Mylex Corporation | Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller |
US6115755A (en) * | 1998-04-09 | 2000-09-05 | Novaweb Technologies, Inc. | Integrated apparatus for interfacing several computers to the internet through a single connection |
JPH11306053A (ja) | 1998-04-24 | 1999-11-05 | Hitachi Ltd | データ転送方法およびそれを実施する情報処理装置 |
US6745243B2 (en) * | 1998-06-30 | 2004-06-01 | Nortel Networks Limited | Method and apparatus for network caching and load balancing |
US6088796A (en) * | 1998-08-06 | 2000-07-11 | Cianfrocca; Francis | Secure middleware and server control system for querying through a network firewall |
DK1030244T3 (da) * | 1998-09-16 | 2014-10-13 | Mitsui Bussan | Multimedie direkte kommunikationssystem forbundet med HTTP-protokol |
US6330605B1 (en) * | 1998-11-19 | 2001-12-11 | Volera, Inc. | Proxy cache cluster |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6718390B1 (en) * | 1999-01-05 | 2004-04-06 | Cisco Technology, Inc. | Selectively forced redirection of network traffic |
US6529937B1 (en) * | 1999-01-29 | 2003-03-04 | International Business Machines Corporation | System and method for communicating client IP addresses to server applications |
US6081900A (en) * | 1999-03-16 | 2000-06-27 | Novell, Inc. | Secure intranet access |
US6553422B1 (en) * | 1999-04-26 | 2003-04-22 | Hewlett-Packard Development Co., L.P. | Reverse HTTP connections for device management outside a firewall |
US6226752B1 (en) * | 1999-05-11 | 2001-05-01 | Sun Microsystems, Inc. | Method and apparatus for authenticating users |
US7275086B1 (en) * | 1999-07-01 | 2007-09-25 | Intellisync Corporation | System and method for embedding a context-sensitive web portal in a computer application |
US6567857B1 (en) * | 1999-07-29 | 2003-05-20 | Sun Microsystems, Inc. | Method and apparatus for dynamic proxy insertion in network traffic flow |
US6401125B1 (en) * | 1999-08-05 | 2002-06-04 | Nextpage, Inc. | System and method for maintaining state information between a web proxy server and its clients |
JP3478200B2 (ja) * | 1999-09-17 | 2003-12-15 | 日本電気株式会社 | サーバ・クライアント間双方向通信システム |
US6308238B1 (en) * | 1999-09-24 | 2001-10-23 | Akamba Corporation | System and method for managing connections between clients and a server with independent connection and data buffers |
US6801927B1 (en) * | 1999-09-24 | 2004-10-05 | Akamba Corporation | Network adaptor card with reverse proxy and cache and method implemented therewith |
US6877036B1 (en) * | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
AU2002227168A1 (en) | 2000-10-23 | 2002-05-06 | Akamba Corporation | System and method for managing connections between clients and a server using cache memory to store server responses |
-
1999
- 1999-09-24 US US09/405,608 patent/US6877036B1/en not_active Expired - Lifetime
-
2000
- 2000-09-22 AU AU40196/01A patent/AU4019601A/en not_active Abandoned
- 2000-09-22 JP JP2001525498A patent/JP4896328B2/ja not_active Expired - Fee Related
- 2000-09-22 CN CNB00814155XA patent/CN1288575C/zh not_active Expired - Fee Related
- 2000-09-22 CA CA 2385899 patent/CA2385899C/en not_active Expired - Fee Related
- 2000-09-22 EP EP00963734A patent/EP1226482A4/en not_active Withdrawn
- 2000-09-22 WO PCT/US2000/026097 patent/WO2001022195A2/en active Application Filing
- 2000-10-05 TW TW89119604A patent/TW475114B/zh not_active IP Right Cessation
-
2005
- 2005-03-22 US US11/085,999 patent/US9009326B2/en not_active Expired - Fee Related
-
2011
- 2011-10-24 JP JP2011233379A patent/JP5364773B2/ja not_active Expired - Fee Related
-
2015
- 2015-04-13 US US14/685,270 patent/US9729664B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01226059A (ja) * | 1988-03-04 | 1989-09-08 | Matsushita Graphic Commun Syst Inc | 通信アダプタ |
US5898830A (en) * | 1996-10-17 | 1999-04-27 | Network Engineering Software | Firewall providing enhanced network security and user transparency |
US6182141B1 (en) * | 1996-12-20 | 2001-01-30 | Intel Corporation | Transparent proxy server |
US5941988A (en) * | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
JPH11187061A (ja) * | 1997-05-06 | 1999-07-09 | Toshiba Corp | 通信装置、通信制御方法、サービス登録方法、サービス提供方法及び装置制御プログラム登録方法 |
US5872919A (en) * | 1997-05-07 | 1999-02-16 | Advanced Micro Devices, Inc. | Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic |
JPH1165969A (ja) * | 1997-08-19 | 1999-03-09 | Toshiba Corp | サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体 |
JPH11242644A (ja) * | 1997-09-11 | 1999-09-07 | Internatl Business Mach Corp <Ibm> | データ処理システム、文書表示方法、システムおよび文書提示制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050198311A1 (en) | 2005-09-08 |
WO2001022195A2 (en) | 2001-03-29 |
EP1226482A2 (en) | 2002-07-31 |
US9009326B2 (en) | 2015-04-14 |
WO2001022195A3 (en) | 2001-08-23 |
US6877036B1 (en) | 2005-04-05 |
EP1226482A4 (en) | 2009-09-02 |
US9729664B2 (en) | 2017-08-08 |
CN1288575C (zh) | 2006-12-06 |
JP2003523552A (ja) | 2003-08-05 |
JP5364773B2 (ja) | 2013-12-11 |
US20150215419A1 (en) | 2015-07-30 |
JP2012018699A (ja) | 2012-01-26 |
CN1408089A (zh) | 2003-04-02 |
CA2385899A1 (en) | 2001-03-29 |
AU4019601A (en) | 2001-04-24 |
TW475114B (en) | 2002-02-01 |
CA2385899C (en) | 2010-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4896328B2 (ja) | クライアントとサーバ間の接続を管理するためのシステムおよび方法 | |
US6308238B1 (en) | System and method for managing connections between clients and a server with independent connection and data buffers | |
US6801927B1 (en) | Network adaptor card with reverse proxy and cache and method implemented therewith | |
JP4886685B2 (ja) | ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法 | |
US7461160B2 (en) | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory | |
US7519650B2 (en) | Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms | |
JP4577853B2 (ja) | ネットワーク・プロトコル処理のオフロードにおいて接続確立をサポートする装置および方法 | |
TW583544B (en) | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries | |
US6687758B2 (en) | Port aggregation for network connections that are offloaded to network interface devices | |
US20070038637A1 (en) | Optimized network cache for virus scanning by examining the magic bytes of a file | |
EP1759317B1 (en) | Method and system for supporting read operations for iscsi and iscsi chimney | |
TW583543B (en) | Infiniband work and completion queue management via head only circular buffers | |
WO2006074064A2 (en) | Method and apparatus for managing data object size in a multi-user environment | |
US8539112B2 (en) | TCP/IP offload device | |
KR20020060623A (ko) | 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치 | |
US6879999B2 (en) | Processing of requests for static objects in a network server | |
JP4317348B2 (ja) | 情報処理装置及び入出力方法並びにプログラム | |
Chang et al. | High-performance TCP/IP and UDP/IP Networking in DEC OSF/1 for Alpha AXP | |
WO2002035366A1 (en) | System and method for managing connections between clients and a server using cache memory to store server responses | |
JP3428827B2 (ja) | クライアント/サーバシステム | |
KR20010095103A (ko) | 데이터 블록 전송 방법 및 장치 | |
CA2295279A1 (en) | Communication processing apparatus, superior system thereof, communication processing system, communication processing system network and communication processing process | |
JPH11149432A (ja) | データ転送処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070913 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070913 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100607 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100609 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100908 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100915 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101007 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101015 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101108 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110422 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110721 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110728 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110819 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110826 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110921 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111024 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111220 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111221 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150106 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |