明細書に記載の発明。要旨本発明は、複数のクライアントとサーバとの間の接続を管理するシステムおよび方法を提供することにより、従来技術に関連する問題を克服する。本発明は、ホストCPUから、ネットワークとホストバスとの間に置かれるアダプタカードに、接続管理負担を肩代わりさせることを促進する。アダプタカードは、ネットワークコントローラ、メモリデバイス、処理装置、およびプロトコルアダプタを含む。メモリデバイスは、データおよびコードの格納を提供する。コードは、ネットワークコントローラを介してネットワーク上のクライアントと通信し、サーババスに直接結合されているプロトコルアダプタを介してサーバと通信するプロキシアプリケーションを含む。処理装置によって実行されると、プロキシアプリケーションは、ネットワークを介してプロキシアプリケーションとクライアントとの間にネットワーク接続を確立することにより、そして、サーババスを介してプロキシアプリケーションとサーバとの間にバス接続を確立することにより、クライアント接続を管理する。さらに、メモリデバイスは、比較的少ないバス接続がサーバに対してオープンである一方で、多くのネットワーク接続がクライアントに対してオープンになることを可能にするデータバッファリングを提供する。特別な実施形態において、プロキシは、多数の遅いクライアント接続からバッファ内にクライアントデータを累積し、次いで、早いバス接続を介してサーバにクライアントデータを提示する。逆に、プロキシは、早いバス接続を介してサーバデータを受信し、サーバデータを一時的に格納し、次いで、遅いクライアント接続を介してクライアントにサーバデータを転送する。より特別な実施形態において、コードは、クライアントおよびサーバと通信するためにアプリケーションプロキシによって使用される通信プロトコルスタックを含む。さらに特別な実施形態において、通信プロトコルスタックは、送信制御プロトコル/インターネットプロトコルTCP/IPスタックである。一実施形態において、サーバ接続は、プロキシが完全なクライアントリクエストを受信したことを判定して初めてオープンになる。サーバ接続は、次いで、プロキシが、サーバからのクライアントリクエストに対する応答を受信した後で、クローズになる。オプションとして、所定の数の永続的なサーバ接続がシステム起動時にオープンになり、プロキシは、これらの永続的な接続を使用して、サーバと通信する。プロキシアプリケーションは、オプションとして、多数のアプリケーション特有のプロキシを含み、HTTPプロキシ、安全プロキシ、および/またはパススループロキシを含むが、これらに限定されない。特定の実施形態において、プロキシのマスタープロセスモジュールは、クライアントデータからアプリケーション識別子例えば、周知のポート数を識別し、識別子の値に応じて、アプリケーション特有のプロキシを1つ以上呼び出す。本発明は、下記の図面を参照して説明され、ここで、同様の参照番号は、実質的に同様の要素を指す。例えば、本発明は以下の項目を提供する。項目1少なくとも1つのクライアントとサーバ間の接続を管理するための方法であって、該方法は、ネットワークを介して、該クライアントのうちの1つとのネットワーク接続を確立する工程と、該ネットワーク接続を介して、該クライアントから通信を受ける工程と、該サーバの内部バスを介して、該サーバとのバス接続を確立する工程と、該バス接続を介して、該サーバに、該クライアント通信を転送する工程とを包含する、方法。項目2前記クライアントから通信を受ける工程は、該通信をバッファ内に格納する工程を包含する、項目1に記載の方法。項目3前記通信をバッファ内に格納する工程は、前記クライアントからの1以上の個別の伝送物を該バッファ内に蓄積する工程を包含する、項目2に記載の方法。項目4前記サーバとのバス接続を確立する工程は、該サーバとのバス接続を確立する前に、完全なクライアントリクエストが該バッファ内に蓄積されるまで待機する工程を包含する、項目3に記載の方法。項目5前記バス接続を介して、前記サーバからの前記クライアント通信への応答を受信する工程と、前記ネットワーク接続を介して、該クライアントへの該応答を転送する工程とをさらに包含する、項目4に記載の方法。項目6前記サーバからの応答を受信する工程は、該応答をバッファ内に格納する工程を包含する、項目5に記載の方法。項目7前記サーバからの応答を受信する工程は、該応答が受信された後、前記バス接続を終了する工程を包含する、項目6に記載の方法。項目8前記バス接続を介して、前記サーバからの前記クライアント通信への応答を受信する工程と、前記ネットワーク接続を介して、該クライアントへの該応答を転送する工程とをさらに包含する、項目1に記載の方法。項目9前記サーバからの応答を受信する工程は、該応答をバッファ内に格納する工程を包含する、項目8に記載の方法。項目10前記サーバからの応答を受信する工程は、該応答が受信された後、前記バス接続を終了する工程を包含する、項目9に記載の方法。項目11前記クライアント通信は、HTTPリクエストを含む、項目8に記載の方法。項目12前記サーバからの応答は、HTMLページを含む、項目11に記載の方法。項目13前記クライアントとのネットワーク接続を確立する工程は、前記ネットワークを介して、複数のクライアントの各々との個別のネットワーク接続を確立する工程を包含する、項目1に記載の方法。項目14前記サーバとのバス接続を確立する工程は、前記サーバの前記内部バスを介して、該サーバとの複数の接続を確立する工程を包含する、項目13に記載の方法。項目15最大の同時クライアント接続数が、最大の同時サーバ接続数を越える、項目14に記載の方法。項目16前記サーバに前記クライアント通信を転送する前に、該クライアント通信にセキュリティ操作を実施する工程をさらに包含する、項目1に記載の方法。項目17前記クライアント通信を受信する工程は、該クライアント通信とアプリケーション識別子を見分ける工程を包含し、前記サーバにクライアント通信を転送する工程は、該アプリケーション識別子に基づいて、複数のプロキシアプリケーションのうちの1つを呼び出す工程を包含する、項目1に記載の方法。項目18前記アプリケーション識別子は、接続ポート番号である、項目17に記載の方法。項目19前記クライアント通信を受ける工程は、HTTPリクエストの少なくとも一部を受信する工程を包含する、項目1に記載の方法。項目20電子デバイスに項目1に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目21電子デバイスに項目2に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目22電子デバイスに項目3に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目23電子デバイスに項目4に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目24電子デバイスに項目5に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目25電子デバイスに項目6に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目26電子デバイスに項目7に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目27電子デバイスに項目8に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目28電子デバイスに項目9に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目29電子デバイスに項目10に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目30電子デバイスに項目11に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目31電子デバイスに項目12に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目32電子デバイスに項目13に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目33電子デバイスに項目14に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目34電子デバイスに項目15に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目35電子デバイスに項目16に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目36電子デバイスに項目17に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目37電子デバイスに項目18に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目38電子デバイスに項目19に記載の工程を実行させるコードを内部に組み込んだ、コンピュータ読み出し可能媒体。項目39内部バスを備えたサーバをネットワークに結合するためのアダプタカードであって、該アダプタカードは、該ネットワーク上のクライアントと通信するためのネットワークコントローラと、データおよびコードを格納するためのメモリデバイスであって、該コードはプロキシアプリケーションを含む、メモリデバイスと、該メモリデバイスと結合された、該コードを実行するための処理ユニットと、該処理ユニットに結合され、かつ該内部バスに結合するように適合された、該サーバと通信するためのプロトコルアダプタとを備える、アダプタカード。項目40前記コードは、通信プロトコルスタックをさらに含む、項目39に記載のアダプタカード。項目41前記通信プロトコルスタックは、標準TCP/IPプロトコルスタックを含む、項目40に記載のアダプタ。項目42前記プロキシアプリケーションは、セキュリティプロキシを含む、項目39に記載のアダプタカード。項目43前記プロキシアプリケーションは、パススループロキシを含む、項目39に記載のアダプタカード。項目44前記プロキシアプリケーションは、HTTPプロキシを含む、項目39に記載のアダプタカード。項目45前記クライアントから受信したデータを格納するためのデータバッファをさらに備える、項目39に記載のアダプタカード。項目46前記プロキシアプリケーションは、前記クライアントのうちの1つから受信した接続リクエストに応答し、かつ該クライアントとの接続を確立して、該確立された接続を維持するために、新たなクライアントプロセスモジュールを開始するように動作する、マスタープロセスモジュールを含む、項目39に記載のアダプタカード。項目47前記マスタープロセスモジュールは、さらに、前記確立された接続を前記プロキシアプリケーションに通知するように動作する、項目46に記載のアダプタカード。詳細な説明本発明は、異なる処理ユニット上で実行されるプロキシアプリケーションを用いて、サーバのメインプロセッサの接続管理に関する負担の多くを軽減することによって、従来技術に関連する問題を克服する。以下の説明において、多くの特定の詳細を記載し例えば、特定の通信プロトコル、特定のソフトウェアおよびデータ構造など、本発明の完全な理解を提供する。しかし、当業者であれば、これらの特定の詳細から離れて、本発明を実行し得ることを理解する。他の例において、本発明を不必要に不明瞭にしないように、周知のネットワークコンポーネントおよびプログラミングの実施の詳細例えば、通信プロトコルスタックを介して接続を確立することは省略する。図1は、物理ネットワーク媒体104を介して、インターネットワーク102に接続されているシステム100を示すブロック図である。特定の実施において、システム100は、インターネットウェブサーバであり、インターネットワーク102は、インターネットであるが、当業者であれば、本発明を、任意の種類のネットワークサーバで実施し得ることを理解する。システム100は、ファイルサーバ例えば、HTTPウェブサーバ106およびアダプタカード108を含む。ファイルサーバ106は、アダプタカード108を介して、インターネットワーク102上のクライアント1091-nに、データを提供し、かつ、このクライアント1091-nからデータを受信する。アダプタカード108は、クライアント1091-nとアダプタカード108との間にネットワーク接続を確立、かつこれを維持し、サーバ106とアダプタカード108との間にバス接続を確立する。したがって、このバスが接続された後、アダプタカード108は、サーバ106の代わりに、クライアント1091-nから通信を受信し、通信をサーバ106に転送し、クライアント109の代わりに、サーバ106から応答を受信し、この応答をクライアント109に転送する。サーバ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.RichardStevensのTCP/IPIllustrated、Vol.1Addison-Wesley、1994年を参照されたい。同文献は、本明細書中に参考として援用する。サーバ大容量データ記憶装置114は、サーバが、インターネットワーク102に取り付けられたクライアント1091-nに提供するデータ例えば、HTMLページ、グラフィクスファイルなど用のデータ記憶装置例えば、1つ以上のハードディスクドライブを提供する。処理ユニット116は、作業メモリ112内で命令を実行し、これにより、サーバ106は、その主な機能例えば、クライアントにデータを提供し、クライアントからデータを受信する機能を実行する。I/Oデバイス118は通常、キーボード、モニタ、および/またはサーバ106とのユーザ双方向通信を容易にする他のデバイスを含む。上述のコンポーネントのそれぞれは通常、インターネットウェブサーバなどのネットワークサーバ内に見られる。アダプタカード108は、不揮発性メモリ123、作業メモリ124、処理ユニット126、バスプロトコルブリッジ128、ネットワークコントローラ129を含み、これらすべては、アダプタバス130を介して相互通信する。不発揮性メモリ123は、アダプタ108がパワーダウンした場合でさえも保持されるデータおよびコード例えば、起動コード用の記憶装置を提供する。処理ユニット126は、作業メモリ124内にあるコードを実行することによって、アダプタカード108に機能性を付与する。バスプロトコルブリッジ128は、アダプタバス130とサーババス120との間にインターフェースを提供し、ネットワークコントローラ129は、アダプタバス130とネットワーク媒体104との間にインターフェースを提供する。作業メモリ124は、アダプタ108用の動作メモリを提供し、プロキシアプリケーション132および通信プロトコルスタック134を含む。プロキシ132およびプロトコルスタック134は、起動時に、不揮発性メモリ123から作業メモリ124内にロードされる。必要に応じて、プロキシ132およびプロトコルスタック134を、サーバ106の不揮発性メモリ110またはサーバ大容量データ記憶装置114を含むただし、これらに限定されない1つ以上の別のソースからロードしてもよい。プロキシ132が処理ユニット126によって実行された場合、プロキシ132は、アダプタ108とサーバ106との間、およびアダプタ108とクライアント109との間に上述の接続を確立、かつ、管理する。本発明のこの特定の実施形態において、プロトコルスタック122および134は、標準例えば、TCP/IPのプロトコルスタックである。アダプタ108内に標準の通信プロトコルスタックを採用すると、広範囲にわたった、大多数のネットワークサーバにおいてすでに存在する標準の通信ソフトウェア例えば、プロトコルスタック122を用いることが容易になる。しかし、当業者であれば、この特定の要素他の記載した用途明示的に記述しない場合も含むが本発明に必須要素ではないことを理解する。例えば、本発明は、サーバ106およびアダプタ108の両方で、カスタム通信ソフトウェア例えば、サーバアプリケーション121と、プロトコルスタック134またはプロキシ132のいずれかとの間の直接通信を用いて、実行し得る。さらに、本発明の特定の実施形態において、サーバ106のリソース例えば、サーバ大容量データ記憶装置114への直接アクセスをプロキシ132に提供することによって、この要素を省略することが可能である。バス接続136を介して、バスプロトコルブリッジ126とサーババス120との間のサーバ106に、アダプタカード108を接続する。この特定の実施形態において、バス接続136は、通常のバス拡張スロット例えば、PCIスロットである。しかし、当業者であれば、ISAスロット、USBポート、シリアルポートまたはパラレルポートを含むただし、これらに限定されない他の種類のバス接続によって、本発明を実施し得ることを理解する。バス接続136によって、高速、大きなパケットサイズ、プロキシ132とサーバアプリケーション121との間の比較的にエラーのないネットワーク接続と比較した場合通信が促進され、サーバ106の処理ユニット116にかかる接続管理の負担が軽減される。要するに、プロキシ132処理ユニット116上で実行されるは、遅く、エラーを生じがちなネットワーク接続上でクライアント109と通信して、次いで、高速バス接続136上で、クライアント109の代わりにサーバアプリケーション121と通信する。図2は、プロキシ132およびプロトコルスタック134を詳細に示す作業メモリ124のブロック図である。当業者であれば、プロキシ132の種々のソフトウェアモジュールが、相互接続された機能ブロックとして図示され、一方、ソフトウェアモジュールは実際、ソフトウェアモジュールが処理ユニット126図1によって実行された場合に、相互に通信し得る作業メモリ124内に格納される、実行可能なコードのブロックであることを理解する。プロキシ132は、マスタープロセスモジュール202、複数のクライアントプロセスモジュール2041-n、データバッファ206およびアプリケーションプロキシモジュール208を含む。マスタープロセスモジュールは、プロキシ132の種々のモジュールの全体制御および調整を提供する。インターネットワーク102図1上のクライアント109からの接続リクエストに応答して、マスタープロセス202は、接続リクエストを受け取り、データバッファ206内のこのクライアント接続用にデータ構造を初期化し、新規の別々のクライアント接続プロセス204を開始して接続を処理し、次いで、特定のクライアント接続が確立されたことをアプリケーションプロキシ208に通知する。各クライアントプロセス204は、このようなクライアント接続を処理する。アプリケーションプロキシ208は、サーバ106とのバス接続を確立、かつ管理する。データバッファ206は、クライアント109から受信され、サーバ106向けのデータ、サーバ106から受信され、クライアント109向けのデータ、確立されたクライアントおよび/またはサーバ接続に関する接続データ用の記憶装置を提供する。通信プロトコルスタック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によって接続が確立される。図3は、ハイパーテキスト転送プロトコルHTTPプロキシ2081、パス-スループロキシ2082、セキュリティプロキシ2083および他ののプロキシ208fを含む複数のアプリケーション指定プロキシ2081~fを含む、アプリケーションプロキシモジュール208を示すブロック図である。マスタープロセス202は、クライアント接続を機能させる、1つ以上のアプリケーション指定プロキシ2081~fを構築することによって、アプリケーションプロキシ208に確立されたクライアント接続を通知する。アプリケーション指定プロキシ例えば、HTTPプロキシ2081を構築する一つの手段は、アプリケーション指定プロキシのキューを処理する際に、クライアントプロセス識別子を入力することである。マスタープロセス202は、クライアント接続リクエストに含まれるポート番号から、特定のクライアントプロセス用にいずれのアプリケーション指定プロキシを実行するかを判定する。特定のネットワークアプリケーションおよび/またはプロトコル例えば、ファイル転送プロトコルFTP、HTTPなどを識別するために、周知のポート番号を用いることが標準的な実施である。例えば、ポート番号80は、HTTP接続リクエストに対応する。したがって、マスタープロセス202は、接続リクエストがポート80を示したことに応答して開始される、すべてのクライアントプロセス204を、HTTPプロキシ2081に通知する。HTTPプロキシ2081は、通知されたクライアントプロセスのそれぞれをモニタリングする。クライアントプロセス例えば、204nによって、完全なHTTPリクエストがデータバッファ206内に受信および格納されたことを、HTTPプロキシ2081が判定すると、HTTPプロキシ2081は、サーバへの接続を開始し、リクエストをサーバに伝送し、サーバから応答を受信し、データバッファ206内に応答を格納し、次いでサーバ接続を終了する。次いで、サーバ応答を、関連するクライアントプロセス204nによって、クライアント109nに伝送する。マスタープロセス202が、他のアプリケーション指定プロキシのいずれとも対応しないポート番号を有する接続リクエストを受信すると、マスタープロセス202は、パス-スループロキシ2082に通知する。パス-スループロキシ2082は単に、サーバ接続を開始し、データバッファ206からサーバ106に、関連するクライアントプロセス204から受信されたデータを転送し、次いでサーバ接続を終了する。マスタープロセス202は、関連するポート番号にかかわらず、すべてのクライアント接続を、いくつかのアプリケーション指定プロキシに通知し得る。例えば、セキュリティプロキシ2083は、例えば、他のアプリケーション指定プロキシのうちの一つを実施する前に、認定表示のない接続リクエストに応答して開始される任意のクライアントプロセスを終了することによって、すべてのクライアント接続リクエストをスクリーニングするために動作する。図3に他のプロキシ208fを含み、アプリケーションプロキシ208が、キャッシュcachingHTTPプロキシアプリケーション、電子メールアプリケーションおよびファイル転送アプリケーションを含むただし、これらに限定されない特定のアプリケーションに所望である、任意の現在公知のプロキシ、または将来開発されるプロキシを含み得ることを示す。図4は、データスループロキシ132の伝送に影響を与えるように、データバッファ206内に実施される、クライアントデータ構造4021-nおよびプロキシデータ構造4041-fの例を示す。マスタープロセス202は、アプリケーションプロキシ208内で、各クライアントプロセス204用に一つのクライアントデータ構造402および各アプリケーション指定プロキシ用に一つのプロキシデータ構造404を作成および初期化する。各クライアントデータ構造402は、クライアントソケット406、サーバソケット408、接続状態410、入力キュー412、出力キュー414およびアプリケーションプロキシデータ416を含む。各クライアント接続例えば、接続nに関して、クライアントソケット406nおよびサーバソケット408nはそれぞれ、クライアント109nおよびサーバ106のIPアドレスおよびポート番号を含み、したがって、クライアントプロセス204nのうちの一つと、各クライアントデータ構造402nが一意的に関連付けられる。接続状態410nは、接続nの現在の状態例えば、受信された完全なリクエスト、受信された応答などを示す。特定のデータ構造402nと関連付けられたクライアントプロセス204nによって、クライアント109nから受信されたデータを格納および蓄積するために、入力キュー412nを用いる。クライアントプロセス204nによって、クライアント109nに転送されるべきアプリケーションプロキシ208からデータを格納するために、出力キュー414nを用いる。特定のアプリケーションプロキシ例えば、フラグなどに特定の任意の情報を格納するために、アプリケーションプロキシデータ416nを提供する。各プロキシデータ構造例えば、404fは、クライアントキュー418f、クライアント準備キュー420fおよび読み出し保留キュー422fを含む。クライアントキュー418fは、プロキシデータ構造404fが対応する、特定のアプリケーションプロキシfと関連する各クライアントプロセス204用のクライアントプロセス記述子例えば、関連するクライアントデータ構造402のポインタを含む。クライアント準備キュー420fは、関連するアプリケーションプロキシfによって処理する例えば、サーバ106に伝送する準備が整った入力キュー412内にデータを有する、各クライアントデータ構造402用のクライアントプロセス記述子を含む。当業者であれば、上述のクライアントデータ構造402およびプロキシデータ構造404は本質的には例示であり、本発明によって、他のデータ構造を採用し得ることを理解する。このような別のデータ構造の構成は必然的に、採用される特定のアプリケーション指定プロキシの機能および構造に依存する。図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とのネットワーク接続を確立する。図6は、方法500の第1の工程502を実行するクライアントとのネットワーク接続を確立する一つの特定の方法600をまとめたフローチャートである。第1の工程において、マスタープロセス202は、インターネットワーク102に接続する。次いで、第2の工程604において、マスタープロセス202は、インターネットワーク102上のトラフィックを聞き、クライアント109から接続リクエストがあるか否かを判定する。クライアントの接続リクエストがない場合には、方法600は終了する。クライアント109nから接続リクエストがある場合には、第3の工程606において、マスタープロセス202は、クライアント109nから接続リクエストを受け取り、クライアントプロセス204nを開始し、接続を処理し、データバッファ206内のクライアントデータ構造402nを初期化する。次に、第4の工程608において、マスタープロセス202は、クライアント接続リクエストからプロキシアプリケーション識別子例えば、ポート番号を区別し、識別子の値に応じて、各プロキシデータ構造404のクライアントキュー418内に、クライアントプロセス記述子例えば、クライアントデータ構造402nのポインタを書き込むことによって、一つ以上のアプリケーションプロキシ2081~fに通知する。最後に、第5の工程610において、マスタープロセス202は、最大許容数のクライアント接続がオープンであるか否かを判定する。最大数のクライアント接続がオープンである場合には、方法600は終了する。最大数のクライアント接続がオープンでない場合には、方法600は、第2の工程604に戻り、別の接続リクエストを聞く。図7は、方法500のクライアント109からの通信を受ける第2の工程504を実行する方法700を概説するフローチャートである。第1の工程702で、マスタープロセス202は、データを受信するために処理されるべきクライアントプロセス204が存在するどうかを判断する。マスタープロセス202がクライアントプロセス2041-nの全てをすでに処理している場合、方法700は終了する。処理していない場合、第2の工程704で、マスタープロセス202が第1のクライアントプロセス2041を呼ぶ。次いで、第3の工程706で、クライアントプロセス2041は、クライアント1091からデータが入来しているかどうかを判断するために、クライアント接続例えば、TCPバッファをチェックする。第1のクライアントプロセス2041に対する入来データがない場合、方法700は、残りのクライアントプロセス2042-nを処理するために、第1の工程702に戻る。第3の工程706で、クライアントプロセス2041が、クライアント1091からの入来データが存在すると判断した場合、第4の工程708で、クライアントプロセス2041は、入力キュー4121がクライアントデータを受信するために利用可能であるかを判断するために、クライアントデータ構造4021をチェックする。入力キュー4121が利用可能でない場合、方法700は、残りのクライアントプロセス2042-nを処理するために、第1の工程702に戻る。第4の工程708で、クライアントプロセス2041は、入力キュー4121がデータの受信のために利用可能であると判断した場合、次いで、第5の工程710で、クライアントプロセス2041は、入来するクライアントデータを入力キュー4121に転送する。次いで、第6の工程712で、クライアントプロセス2041は、入力キューに蓄積されたデータが完全なリクエストすなわち、サーバ106への転送準備が完了したデータ、例えば、完全なHTTPリクエストを構成しているかどうかを判断する。データが完全なリクエストを構成していない場合、方法700は、残りのクライアントプロセス2042-nを処理するために、第1の工程702に戻る。しかしながら、クライアントプロセス2041は、第6の工程712で、入力キュー4121内のデータが完全なリクエストを構成していると判断した場合、第7の工程714で、クライアントプロセスは、例えば、完全なリクエストが存在することを示すように接続状態4101を設定することにより、完全なリクエストが存在することをプロキシアプリケーション208に通知する。次いで、方法700は、処理すべきクライアントプロセス2042-nがさらに存在するかどうかを判断するために、第1の工程702に戻る。図8は、方法500のサーバ106とのバス接続を確立する第3の工程506を実行する方法800を概説するフローチャートである。第1の工程802で、1つ目のアプリケーションプロキシ2081が、プロキシデータ構造4041のクライアントキュー4181から、第1のクライアント記述子を引き出す。次いで、第2の工程804で、プロキシ2081は、第1のクライアントがその入力キュー412内に完全なリクエストを有するかどうかを判断するために、第1のクライアント記述子により特定されるクライアントデータ構造402の接続状態412をチェックする。接続状態412が完全なリクエストを示す場合、第3の工程806で、プロキシ2081は、クライアント準備完了キュー4201にクライアント記述子を加える。次に、第4の工程808で、プロキシ2081は、サーバ106に対して、最大数の接続が開かれているかどうかを判断する。最大数のサーバ接続がすでに開かれている場合、方法800は終了する。最大数のサーバ接続がまだ開かれていない場合、第5の工程810で、プロキシ2081は、サーバ106とのバス接続を開き、関連づけられたクライアントデータ構造402のサーバソケット408に接続情報を書き込む。次に、第6の工程812で、プロキシ2081は、クライアントキュー4181内の最後の記述子をチェックしたかどうかを判断する。最後の記述子がチェックされている場合、方法800は終了する。最後の記述子がチェックされていなければ、方法800は、クライアントキュー4181内の次の記述子を引き出すために、第1の工程802に戻る。第2の工程804で、プロキシ2081が、完全なクライアントリクエストが受信されていないと判断した場合、方法800は、直接、第6の工程812に進む。一旦、プロキシデータ構造4041のクライアントキュー4181内の記述子の全てが処理されると、方法800または同様の方法が、他のアプリケーションプロキシ2082-fの各々に対して繰り返される。図9は、方法500のサーバ106にクライアント通信を転送する第4の工程508を実行する方法900を概説するフローチャートである。第1の工程902で、プロキシ2081は、プロキシデータ構造4041のクライアント準備完了キュー4201から、第1のクライアント記述子を引き出す。次いで、第2の工程904で、プロキシ2081は、サーバ接続が開いているかどうかを判断するために、第1のクライアントのデータ構造402のサーバソケット408をチェックする。サーバ接続が開いている場合、第3の工程906で、プロキシ2081は、開いたサーバ接続を介して、クライアント入力キュー412からサーバ106にクライアントデータ例えば、HTTPリクエストを転送する。次に、第4の工程908で、プロキシ2081は、クライアント準備完了キュー4201から読み出し保留キュー4221にクライアント記述子を移動する。次いで、第5の工程910で、プロキシ2081は、クライアント準備完了キュー4201内の最後のクライアントがチェックされたかどうかを判断する。チェックされていない場合、方法900は、クライアント準備完了キュー4201内の次のクライアントをチェックするために、第1の工程902に戻る。最後のクライアントがチェックされている場合、方法900は終了する。第2の工程904で、プロキシ2081が、特定のクライアントのために開いたサーバ接続が存在しないと判断した場合、方法900は、クライアント準備完了キュー4201内の最後のクライアントがチェックされたかどうかを判断するために、直接、第5の工程910に進む。一旦、プロキシデータ構造4041のクライアント準備完了キュー4201内の記述子の全てが処理されると、方法900または同様の方法が、他のアプリケーションプロキシ2082-fの各々に対して繰り返される。図10は、方法500のサーバ106から応答を受信する第5の工程510を実行する方法1000を概説するフローチャートである。第1の工程1002で、プロキシ2081は、読み出し保留キュー4221が空であるかどうかを判断し、空である場合、方法1000が終了する。読み出し保留キュー4221が空でない場合、第2の工程1004で、プロキシ2081が、読み出し保留キューから第1のクライアント記述子を引き出す。次に、第3の工程1006で、プロキシ2081が、第1のクライアント記述子により特定されるクライアントデータ構造402のサーバソケット408内で特定された、開いたサーバ接続上に入来サーバデータすなわち、クライアントリクエストへの応答が存在するかどうかを判断するために、その接続をチェックする。その接続上に入来サーバデータが存在しない場合、方法1000は、読み出し保留キュー内の次のクライアントをチェックするために、第2の工程1004に戻る。入来サーバデータが存在する場合、第4の工程1008で、プロキシ2081は、クライアント記述子により特定されるクライアントデータ構造402の出力キュー414が利用可能であるかどうかを判断するためのチェックを行う。出力キュー414が利用可能でない場合、方法1000は、読み出し保留キュー4221内の次のクライアント記述子をチェックするために、第2の工程1004に戻る。出力キュー414が利用可能である場合、第5の工程1010で、プロキシ2081は、クライアントデータ構造402の出力キュー414に、入来サーバデータを移動する。次に、第6の工程1012で、プロキシ2081は、サーバデータがファイルの終わりインジケータを含むかどうかを判断する。含んでいない場合、第7の工程1014で、プロキシ2081は、読み出し保留キュー4221内の最後のクライアント記述子が処理されたかどうかを判断するためのチェックを行う。処理されている場合、方法1000は終了する。処理されていない場合、方法1000は、読み出し保留キュー4221から次のクライアント記述子を読み出すために、工程1004に戻る。第6の工程1012で、プロキシ2081が、サーバデータがファイルの終わりインジケータを含むと判断した場合、方法1000は、プロキシ2081が読み出し保留キューからクライアント記述子を取り除く、第8の工程1016に進み、次いで、第9の工程1018で、サーバ接続を閉じる。第9の工程1018の後、方法1000は、第7の工程1014に戻る。一旦、プロキシデータ構造4041の読み出し保留キュー4221内の記述子の全てが処理されると、方法1000または同様の方法が、他のアプリケーションプロキシ2082-fの各々に対して繰り返される。図11は、方法500のクライアント109にデータを送信する第6の工程512を実行する方法1100を概説するフローチャートである。第1の工程1102で、マスタープロセス202は、第1のクライアントプロセス2041を呼ぶ。次いで、第2の工程1104で、第1のクライアントプロセス2041は、クライアントデータ構造4021の出力キュー4141内にデータが存在するかどうかを判断する。出力キュー4141内にデータが存在しない場合、方法1100は、マスタープロセス202が残りのクライアントプロセス2042-nのうちの次のクライアントプロセスを呼ぶ、第1の工程1102に戻る。しかしながら、第2の工程1104で、クライアントプロセス2041が、出力キュー4141内にデータが存在すると判断した場合、第3の工程1106で、クライアントプロセス2041は、クライアントネットワーク接続がデータを受信する準備が完了しているかどうかを判断する。クライアントネットワーク接続が準備完了していない場合、方法1100は第1の工程1102に戻る。クライアントネットワーク接続が準備完了している場合、第4の工程1108で、クライアントプロセス2041は、クライアント接続例えば、TCP出力バッファに、出力キュー4141内のデータの少なくとも一部を移動する。次に、第5の工程1110で、マスタープロセス202は、最後のクライアントプロセスが呼ばれたかどうかを判断する。呼ばれている場合、方法1100は終了する。呼ばれていない場合、方法1100は、残りのクライアントプロセス2032-nのうちの次のクライアントプロセスを呼ぶために、第1の工程1102に戻る。これで、本発明の特定の実施形態の説明を終える。説明した特徴の多くは、本発明の範囲を逸脱することなく、置換、変更、または省略され得る。例えば、アダプタ108の機能素子例えば、処理ユニット126およびプロキシ132は、着脱可能アダプタカードに設けられる代わりに、サーバに直接組み入れられ得る。さらに、代替的なデータ構造が、提供された例示的なデータ構造と置き換えられ得る。また、本明細書中において開示された方法およびルーチンの特定の順序は、本発明の必要不可欠な要素であるとは見なされない。さらに別の例として、マスタープロセス202は、起動時に、サーバ106との好適な数の持続的バス接続を開き、アプリケーションプロキシ2081-fによるこれらの接続の使用を管理するように構成され得るため、サーバ106がバス接続を繰り返し開閉する必要がなくなる。示された特定の実施形態からのこれらおよび他の逸脱は、特に、前述の開示より当業者には明らかである。