(57)【要約】【課題】接続を管理する方法、システム、およびプログラム製品を提供すること。【解決手段】具体的に言うと、本発明は、対応する接続の期待される使用量に基づいて、メモリ（１６）内の接続情報（３０）を管理する。接続情報（３０）は、接続が多数の追加メッセージを有すると期待されるときに、キャッシュ・メモリ（１７）などのより高速のメモリに保管することができる。同様に、多数の追加メッセージを有しないと期待される接続の接続情報（３０）を、キャッシュ・メモリ（１７）からスワップ・アウトし、比較的低速のメモリに保管することができる。その結果、より頻繁に使用される接続情報（３０）が、より高速のメモリ内で使用可能である可能性がより高くなる。【選択図】図１
2007529039.tif 000002
【特許請求の範囲】
【請求項１】
接続に関する接続情報（３０）を入手するステップと、
前記接続に関する期待される使用量を判定するステップと、
前記期待される使用量に基づいてメモリ（１６）内の前記接続情報（３０）を管理するステップと
を含む、接続を管理する方法。
【請求項２】
前記判定するステップが、前記接続を使用して通信されるメッセージの個数を数えることを含む、請求項１に記載の方法。
【請求項３】
前記判定するステップが、さらに、メッセージの前記個数が閾値を超えるときに、長命として接続をマークすることを含む、請求項２に記載の方法。
【請求項４】
前記判定するステップが、前記接続を使用して通信されるメッセージのサイズを判定することを含む、請求項１に記載の方法。
【請求項５】
アプリケーション（３２）から前記接続に関する要求を受け取るステップと、
前記アプリケーション（３２）のために前記接続を生成するステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記判定するステップが、前記アプリケーション（３２）のタイプを判定することを含む、請求項５に記載の方法。
【請求項７】
前記判定するステップが、前記接続に関する前記接続情報（３０）を分析することを含む、請求項１に記載の方法。
【請求項８】
前記方法が、さらに前記接続情報（３０）が使用されたとき以降の時間期間を判定することを含み、前記管理するステップが、さらに、前記時間期間に基づく、請求項１に記載の方法。
【請求項９】
前記管理するステップが、少ない期待される使用量を有する接続に関する前記接続情報（３０）をキャッシュ・メモリ（１７）から除去することを含む、請求項１に記載の方法。
【請求項１０】
接続に関する接続情報（３０）を入手する接続システム（３６）と、
前記接続に関する期待される使用量を判定する使用量システム（３８）と、
前記期待される使用量に基づいてメモリ（１６）内の前記接続情報（３０）を管理するストレージ・システム（４０）と
を含む、接続管理システム（２８）。
【請求項１１】
前記接続が、ＦＣＰ接続およびＴＣＰ／ＩＰ接続のうちの少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１２】
前記使用量システム（３８）が、さらに、前記接続情報（３０）が使用されたとき以降の時間期間を判定し、前記ストレージ・システム（４０）が、さらに、前記時間期間に基づいて前記接続情報（３０）を管理する、請求項１０に記載のシステム。
【請求項１３】
前記接続システム（３６）が、さらに、アプリケーション（３２）のために前記接続を生成する、請求項１０に記載のシステム。
【請求項１４】
前記ストレージ・システム（４０）が、少ない期待される使用量を有する接続に関する前記接続情報（３０）をキャッシュ・メモリ（１７）から除去する、請求項１０に記載のシステム。
【請求項１５】
前記接続を使用してメッセージを通信する通信システム（３４）をさらに含む、請求項１０に記載のシステム。
【請求項１６】
前記期待される使用量が、前記メッセージに基づく、請求項１５に記載のシステム。
【請求項１７】
前記期待される使用量が、前記接続を要求するアプリケーション（３２）および前記接続に関する前記接続情報（３０）のうちの少なくとも１つに基づく、請求項１０に記載のシステム。
【請求項１８】
接続に関する接続情報（３０）を入手するように構成されたプログラム・コードと、
前記接続に関する期待される使用量を判定するように構成されたプログラム・コードと、
前記期待される使用量に基づいてメモリ内の前記接続情報（３０）を管理するように構成されたプログラム・コードと
を含む、前記接続を管理するコンピュータ可読プログラム・コードを組み込んだコンピュータ可読媒体を含むコンピュータ・プログラム製品。
【請求項１９】
アプリケーション（３２）から前記接続に関する要求を受け取るように構成されたプログラム・コードと、
前記アプリケーション（３２）のために前記接続を生成するように構成されたプログラム・コードと
をさらに含む、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２０】
前記接続を使用してメッセージを通信するように構成されたプログラム・コードをさらに含む、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２１】
管理するように構成された前記プログラム・コードが、少ない期待される使用量を有する接続に関する前記接続情報（３０）をキャッシュ・メモリ（１７）から除去するように構成されたプログラム・コードを含む、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２２】
前記接続情報（３０）が使用されたとき以降の時間期間を判定するように構成されたプログラム・コードをさらに含む、請求項１８に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には接続の管理に関する。
【背景技術】
【０００２】
毎日、数百万バイトのデータが、インターネットなどのネットワークを介してコンピュータの間で転送される。このデータに、例えば、ウェブ・ページ、宣伝、音楽ファイル、電子メール・メッセージ、および文書が含まれる。このデータは、Fiber Channel Protocol（ＦＣＰ）、Synchronous Optical Network（ＳＯＮＥＴ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、または類似物などの通信プロトコルを使用して送られる。ＴＣＰ／ＩＰを使用して通信プロトコルの全般的な機能を説明すると、ＴＣＰは、ソース・コンピュータと宛先コンピュータの両方で接続を確立し、維持するのに使用され、ＩＰは、１つまたは複数のネットワークの間で宛先コンピュータにデータをルーティングするのに使用される。その結果、インターネットを介する通信で一般的に行われているように、第１ネットワーク上のコンピュータが、第２ネットワーク上のコンピュータとの接続を有することができ、これらのネットワークを、１つまたは複数の追加ネットワークを介して接続することができる。
【０００３】
ＴＣＰ接続が確立されたならば、最大パケット・サイズが、ソース・コンピュータと宛先コンピュータの間でネゴシエートされる。ＴＣＰは、６４キロバイトまでのパケットをサポートすることができるが、このサイズが、基礎になるネットワークによって制限される場合がある。例えば、イーサネット・ネットワークは、メッセージあたり１５１８バイトの最大値を提供する。どの場合でも、データは、通信のために１つまたは複数のＴＣＰ「セグメント」にパッケージ化され、ここで、各セグメントは、最大パケット・サイズ以下である。次に、各セグメントが、さらに、メッセージとして送信される前に、ＩＰプロトコルまたは基礎になるネットワーク（例えば、イーサネット）あるいはその両方によってパッケージ化される。パッケージング処理の一部として、各プロトコル（例えば、ＴＣＰ、ＩＰ）およびネットワーク（例えば、イーサネット）が、データの対応する「ヘッダ」に必要な情報を追加する場合がある。次に、ヘッダ情報が、プロトコル／ネットワークによって、メッセージの適切なルーティング、誤り検査、データの再構成などに使用される。
【０００４】
例えば、ソース・コンピュータが、ＴＣＰ／ＩＰを使用してイーサネット・ネットワークを介して宛先コンピュータに３キロバイトのデータを有するファイルを送信することを望む場合がある。当初、ファイルのデータを、３つのＴＣＰセグメントにパッケージ化することができる。各ＴＣＰセグメントが、さらに、宛先コンピュータにメッセージとして送信される前に、ＩＰプロトコルおよびイーサネット・ネットワークによってパッケージ化される。その結果、このメッセージに、イーサネット・ヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、およびデータが含まれることになる。イーサネット・ヘッダ内の情報は、各メッセージを宛先コンピュータに正しくルーティングするのに使用される。宛先コンピュータに到着したときに、各メッセージが、パッケージ化を解除され、各メッセージ内のＴＣＰヘッダ情報およびＩＰヘッダ情報が、宛先コンピュータでファイルを再作成するためにデータを再組立するのに使用される。
【０００５】
確立されたならば、ソース・コンピュータと宛先コンピュータの間のＴＣＰ接続は、データ転送が完了するまでオープンされたままになる。少量のデータを転送するためのＴＣＰ接続は、「短命（short lived）」接続と考えられ、大量のデータを転送するためのＴＣＰ接続は、「長命（long lived）」接続と考えられる。インターネットなどのネットワークを介してデータを送信／受信するコンピュータは、同時に、数十個（例えば、エンド・ユーザ・コンピュータ）、または数百個もしくは数千個（例えば、サーバ）のＴＣＰ接続に関するメッセージを同時に処理する場合がある。受信された各メッセージを適当なＴＣＰ接続と突き合わせるために、コンピュータは、各ＴＣＰ接続に関する情報を「接続テーブル（connectiontable）」内の項目で維持する。その結果、メッセージの受信時に、コンピュータは、ＴＣＰヘッダ内の情報を、適当な接続テーブル項目と突き合わせる。一致が見つかったときに、そのデータが、適当なアプリケーションによるさらなる処理のために転送される。
【０００６】
ＴＣＰ接続を受信されたメッセージと突き合わせるのに必要な時間の長さが、コンピュータの総合性能にクリティカルになる可能性がある。一般に、コンピュータに、しばしば、接続テーブルなどのメモリの諸部分へのアクセスを高速化するためにキャッシュ・メモリが含まれる。キャッシュ・メモリ内では、通常、「最長未使用時間」（ＬＲＵ）アルゴリズムが、キャッシュ・メモリが満杯のときにどのデータをキャッシュ・メモリからスワップ・アウトするかを決定するのに使用される。ＬＲＵアルゴリズムでは、最も長い間アクセスされなかったキャッシュ内のデータが、スワップ・アウトされるものとして選択される。ＬＲＵアルゴリズムは、しばしば、長い時間期間の間あるデータのブロックにアクセスしなくなる前に、あるデータのブロックに短い持続時間のうちに複数回アクセスするほとんどのプログラムについて良く働く。
【０００７】
接続テーブルは、通信中に頻繁にアクセスされる場合があるので、接続テーブルのすべてまたは一部が、キャッシュ・メモリに保管されている場合がある。しかし、スワップ・アウトされるキャッシュ・データを選択するときに、ＬＲＵアルゴリズムは、理想的に除去されるデータを選択しない場合がある。例えば、メッセージのルーティングに起因して、長命接続が、メッセージの間に長い時間を有する場合がある。その結果、長命接続に関する接続データが、より最近使用された短命接続に関するデータを優先して、除去について選択される場合がある。しかし、長命接続は、経時的により頻繁に使用されるので、長命接続データをキャッシュ・メモリに残すことがより効率的である場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
その結果、接続の期待される使用量を判定し、期待される使用量に基づいて接続情報をメモリに保管する、接続情報を管理する改善された方法、システム、およびプログラム製品の必要が存在する。
【課題を解決するための手段】
【０００９】
本発明は、接続を管理する方法、システム、およびプログラム製品を提供する。具体的には、本発明は、接続が生成されるときに期待される使用量を判定するか、接続の寿命の間に期待される使用量を更新するか、その両方を行うことができる。どの場合でも、本発明は、対応する接続の期待される使用量に基づいて、メモリ内の接続情報を管理する。例えば、多い期待される使用量を有する接続の接続情報を、より高速のアクセスのためにキャッシュ・メモリに保管することができる。同様に、少ない期待される使用量を有する接続の接続情報を、キャッシュ・メモリからスワップ・アウトし、比較的低速のメモリに保管することができる。その結果、より頻繁に使用される接続の接続情報が、キャッシュ・メモリ内で見つかる可能性が高くなり、これによって、システムの通信性能が高まる。
【００１０】
本発明の第１の態様は、接続に関する接続情報を入手することと、前記接続に関する期待される使用量を判定することと、前記期待される使用量に基づいてメモリ内の前記接続情報を管理することとを含む、接続を管理する方法を提供する。
【００１１】
本発明の第２の態様は、接続に関する接続情報を入手する接続システムと、前記接続に関する期待される使用量を判定する使用量システムと、前記期待される使用量に基づいてメモリ内の前記接続情報を管理するストレージ・システムとを含む、接続管理システムを提供する。
【００１２】
本発明の第３の態様は、接続に関する接続情報を入手するように構成されたプログラム・コードと、前記接続に関する期待される使用量を判定するように構成されたプログラム・コードと、前記期待される使用量に基づいてメモリ内の前記接続情報を管理するように構成されたプログラム・コードとを含む、前記接続を管理するコンピュータ可読プログラム・コードを組み込んだコンピュータ可読媒体を含むコンピュータ・プログラム製品を提供する。
【００１３】
本発明の例示的態様は、本明細書で説明した問題および説明されていないが当業者が発見できる他の問題を解決するように設計されている。
【００１４】
本発明の上記および他の特徴は、添付図面と共に解釈される本発明の様々な実施形態の次の詳細な説明から、よりたやすく理解される。本発明の図面が、原寸通りでないことに留意されたい。図面は、本発明の通常の実施形態だけを示すことを意図されており、したがって、本発明の範囲を制限するものと解釈してはならない。図面では、類似する符号が、複数の図面の間で類似する要素を表す。
【発明を実施するための最良の形態】
【００１５】
上で注記したように、本発明は、接続を管理する方法、システム、およびプログラム製品を提供する。具体的には、本発明は、接続が生成されるときに期待される使用量を判定するか、接続の寿命の間に期待される使用量を更新するか、その両方を行うことができる。どの場合でも、本発明は、対応する接続の期待される使用量に基づいて、メモリ内の接続情報（例えば、接続コンテキスト）を管理する。例えば、多い期待される使用量を有する接続の接続情報を、より高速のアクセスのためにキャッシュ・メモリに保管することができる。同様に、少ない期待される使用量を有する接続の接続情報を、キャッシュ・メモリからスワップ・アウトし、比較的低速のメモリに保管することができる。その結果、より頻繁に使用される接続の接続情報が、キャッシュ・メモリ内で見つかる可能性が高くなり、これによって、システムの通信性能が高まる。
【００１６】
図面に移ると、図１に、本発明の一実施形態に従って接続を管理するシステム１０が示されている。図からわかるように、通信は、コンピュータ１２Ａと１つまたは複数のコンピュータ１２Ｂ〜Ｄの間で通信リンク１３を介して行うことができる。この点で、通信リンク１３に、すべての現在既知のまたは後に開発される、例えば有向ハードワイヤド接続（例えば、シリアル・ポート）または別のタイプのネットワーク接続などの目的の機構を含めることができる。後者の場合に、ネットワークに、有線伝送方法または無線伝送方法あるいはその両方の任意の組合せを利用することができる、クライアント−サーバ（またはサーバ−サーバ）環境でのアドレス可能接続を含めることができる。この例では、サーバおよびクライアントが、トークン・リング、イーサネット、ＷｉＦｉ、または他の従来の通信標準規格などの従来のネットワーク接続性を利用することができる。さらに、ネットワークに、インターネット、広域ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、仮想プライベート・ネットワーク（ＶＰＮ）などを含む、すべてのタイプのネットワークを含めることができる。クライアントがインターネットを介してサーバと通信する場合に、接続性を、従来のＴＣＰ／ＩＰソケットベース・プロトコルによって提供することができ、クライアントは、インターネット・サービス・プロバイダを利用して、サーバへの接続性を確立する。
【００１７】
コンピュータ１２Ａは、特定のハードウェアの動作を駆動するように設計され、他のシステム構成要素および入出力コントローラと互換である、すべてのタイプの汎用／特殊目的のコンピュータ化されたシステム（例えば、携帯電話機、ハンドヘルド・コンピュータ、携帯情報端末、ポータブル（ラップトップ）コンピュータ、デスクトップ・コンピュータ、ワークステーション、サーバ、メインフレーム・コンピュータなど）とすることができる。図からわかるように、コンピュータ１２Ａに、一般に、中央処理装置（ＣＰＵ）１４、メモリ１６、入出力インターフェース１８、バス２０、および任意選択のストレージ・システム２４を含めることができる。ＣＰＵ  １４に、単一の処理ユニットを含めることができ、あるいは、ＣＰＵ  １４を、例えばクライアントおよびサーバなど、１つまたは複数の位置の１つまたは複数の処理ユニットにまたがって分散させることができる。
【００１８】
メモリ１６に、磁気媒体、光学媒体、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、データ・オブジェクトなどを含む、すべての既知のタイプのデータ記憶媒体または伝送媒体あるいはその両方を含めることができる。さらに、メモリ１６は、頻繁に使用される情報を入手するのに必要な時間の量を減らすのに使用できるより高速のメモリを含むキャッシュ・メモリ１７を含むものとして図示されている。ストレージ・システム２４に、下で説明する本発明を実行するのに必要な情報のストレージを提供するすべてのタイプのデータ・ストレージを含めることができる。したがって、ストレージ・システム２４に、磁気ディスク・ドライブまたは光ディスク・ドライブなど、１つまたは複数のストレージ・ドライブを含めることができる。さらに、ＣＰＵ  １４に似て、メモリ１６またはストレージ・システム２４あるいはその両方は、１つまたは複数のタイプのデータ・ストレージを含む単一の物理的位置に存在することができ、あるいは、様々な形の複数の物理的システムにまたがって分散させることができる。この点で、メモリ１６またはストレージ・システム２４あるいはその両方に、例えば、ＬＡＮ、ＷＡＮ、またはストレージ・エリア・ネットワーク（ＳＡＮ）（図示せず）にまたがって分散されたデータを含めることができる。
【００１９】
入出力インターフェース１８に、外部入出力デバイスとの間で情報を交換するすべてのシステムを含めることができる。入出力デバイス２２に、例えば、通信デバイス、スピーカ、モニタ／ディスプレイ、ハンドヘルド・デバイス、キーボード、マウス、音声認識システム、音声出力システム、プリンタ、ファクシミリ、ポケット・ベルなどを含む、すべての既知のタイプの外部デバイスを含めることができる。しかし、コンピュータ１２Ａが、ハンドヘルド・デバイスまたは類似物である場合に、ディスプレイを、図示のように外部の入出力デバイス２２としてではなく、コンピュータ１２Ａに含めることができることを理解されたい。バス２０は、コンピュータ１２Ａ内の構成要素のそれぞれの間の通信リンクを提供し、同様に、電子、光、無線などを含むすべての既知のタイプの伝送リンクを含めることができる。さらに、図示されてはいないが、通信システム、システム・ソフトウェアなどの追加構成要素を、コンピュータ１２Ａに組み込むことができる。さらに、コンピュータ１２Ｂ〜Ｄに、通常は、コンピュータ１２Ａに図示されたものと同一の要素（例えば、ＣＰＵ、メモリ、入出力インターフェースなど）が含まれる。これらは、説明を短くするために、別々には図示されず、説明されない。
【００２０】
メモリ１６に保管されるものとして図示されているのが、コンピュータ１２Ａの接続を管理する接続管理システム２８である。一般に、接続管理システム２８は、アプリケーション３２が通信システム３４を使用して１つまたは複数のコンピュータ１２Ｂ〜Ｄ上のアプリケーション（図示せず）と通信することを可能にする接続情報３０を管理する。接続情報３０に、対応する接続に関する様々な情報が含まれる。例えば、接続情報３０に、通信するコンピュータ（例えば、コンピュータ１２Ａおよびコンピュータ１２Ｂ）の１つまたは複数のアドレス、接続を介して通信されるバイト数、メッセージのシーケンス番号、様々な状況インジケータなどを含めることができる。この点で、接続に、例えば、ＴＣＰ／ＩＰ、ＦＣＰ、ＳＯＮＥＴなどのすべてのタイプの接続を含めることができ、接続の各タイプの接続情報３０が変化することを理解されたい。
【００２１】
接続管理システム２８は、接続システム３６、使用量システム３８、およびストレージ・システム４０が含まれるものとして図示されている。接続システム３６は、接続に関する接続情報３０を入手することができ、使用量システム３８は、接続の期待される使用量を判定することができる。期待される使用量に基づいて、ストレージ・システム４０が、メモリ１６内の接続情報を管理することができる。例えば、期待される使用量が多い場合に、ストレージ・システム４０は、接続情報３０をキャッシュ・メモリ１７に保管することができる。接続管理システム２８内に図示された様々なシステムが、例示だけのために含まれることを理解されたい。その結果、これらのシステムのうちの１つまたは複数を、単一のシステムに組み合わせることもできるし、実装しないこともできる。さらに、これらのシステムのうちの１つまたは複数を、接続管理システム２８と別々に実行できる別個のプログラムとして実装することができる。
【００２２】
上で注記したように、期待される使用量を、例えば使用量システム３８によって判定することができる。一実施形態で、接続システム３６は、接続を必要とするアプリケーション３２から、接続について要求されるメッセージの総数を入手することができる。代替案では、プロトコル・ヘッダが、接続について要求されるメッセージの総数を示すことができ、あるいは、上位レベル・プロトコル（例えば、ファイル転送プロトコル（ＦＴＰ））が、その情報を使用量システム３８に供給することができる。例えば、ＴＣＰがデータをセグメントにパッケージ化するときに、セグメントの総数を、ＴＣＰヘッダに置き、使用量システム３８によって読み取ることができる。どの場合でも、接続情報３０が、キャッシュ・メモリ１７からスワップ・アウトされる必要があるときに、ストレージ・システム４０は、接続を使用して通信されるべき残っている最小の個数のメッセージを有する接続情報３０を除去することができる。しかし、標準的なＴＣＰ／ＩＰプロトコルが使用される場合に、メッセージの総数は入手可能でない。さらに、メッセージの総数が、接続が要求されるときに、または接続管理システム２８によって管理されるすべての接続について、既知でない場合がある。その結果、使用量システム３８が、期待される使用量を推定する必要がある場合がある。
【００２３】
一実施形態で、使用量システム３８が、接続を使用して通信されたメッセージの個数を数えることによって、期待される使用量を判定することができる。この議論全体を通じて、「メッセージ」を、２つのコンピュータ１２Ａ〜Ｄの間で所与の量のデータを成功裡に通信するのに必要なすべての通信を指すものと解釈することができることを理解されたい。例えば、単一のメッセージに、ソース・コンピュータから宛先コンピュータに送信されるデータを含むデータ・メッセージおよび返報に宛先コンピュータから送信される肯定応答メッセージ（ＡＣＫ）の交換を含めることができる。さらに、単一のメッセージに、データ・メッセージが正しく受信されないときに交換される、データ・メッセージの１つもしくは複数の再試行または１つもしくは複数の否定応答（ＮＡＫ）あるいはその両方を含めることができる。代替案では、各受信されるか、送信されるか、その両方が行われるメッセージ（例えば、データ・メッセージ、ＡＣＫ、ＮＡＫなど）を、例えば、１つのメッセージとして個別に数えることができる。
【００２４】
どの場合でも、接続について数えられたメッセージの個数を、「最も頻繁に使用された（mostfrequently used）」（ＭＦＵ）選択アルゴリズムを実装するのに使用することができる。この場合に、キャッシュ・メモリ１７のスワップが必要なときに、ストレージ・システム４０が、多数のメッセージを有する接続を優先する。例えば、６つのメッセージを有する接続の前に、２つのメッセージを有する接続を、キャッシュ・メモリ１７からの除去のために選択することができる。
【００２５】
代替案では、接続に関するメッセージの個数を使用して、接続を「長命」または「短命」として分類することができる。短命接続には、比較的少数のメッセージを必要とする接続が含まれ、長命接続は、比較的多数のメッセージを必要とする。一実施形態で、メッセージの期待される個数、したがって接続の分類を、統計的手法を使用して推定することができる。この場合に、ほとんどの接続が短命接続である可能性があるので、各新しい接続を、当初は短命としてマークすることができる。閾値を使用して、接続を短命から長命にマークしなおすことができる。この閾値は、事前にセットするか、ユーザが選択するか、前の接続および各接続を使用して通信されたメッセージの対応する個数に基づいて調整するか、これらの組合せを行うことができる。例えば、多数の接続が１つまたは２つのメッセージを通信するが、第３のメッセージが通信されたならば、一般に、その接続を使用して１０個を超えるメッセージが通信されると判定される場合がある。その結果、第３のメッセージが、ある接続を使用して通信されたならば、その接続を長命としてマークすることができる。
【００２６】
接続が長命と分類されたならば、ストレージ・システム４０は、キャッシュ・メモリ１７内のそれに対応する接続情報３０を優先することができる。例えば、１ビットを各接続に関連付けて、その接続が長命としてマークされているかどうかを示すことができる。このビットは、接続情報３０の一部として保管することができ、あるいはハードウェア技法もしくはソフトウェア技法またはその両方によってすばやくスキャンできる別々のテーブルの一部として保管することができる。キャッシュ・メモリ１７についてスワップが必要であるとストレージ・システム４０が判定したときに、このビットをスキャンし、長命としてマークされていない接続の接続情報３０を、除去について選択することができる。
【００２７】
もう１つの実施形態で、使用量システム３８は、接続を使用して通信されるメッセージのサイズを使用することによって、その接続の期待される使用量を判定することができる。例えば、最も最近に通信されたメッセージに、許容される最大サイズが含まれる場合に、使用量システム３８は、その接続が多い期待される使用量を有すると判定することができる。逆に、最も最近に通信されたメッセージが、許容される最大サイズより小さい場合に、使用量システム３８は、その接続が少ない期待される使用量を有すると判定することができる。どの場合でも、ストレージ・システム４０は、キャッシュ・メモリ１７内で、多い期待される使用量を有する接続の接続情報３０を優先する。その結果、スワップが必要なときに、ストレージ・システム４０は、少ない期待される使用量を有する接続の接続情報３０をキャッシュ・メモリ１７から除去する。
【００２８】
もう１つの実施形態で、使用量システム３８は、接続を要求したアプリケーション３２のタイプを判定することによって、その接続の期待される使用量を判定することができる。例えば、接続システム３６が、アプリケーション３２から接続に関する要求を受け取ることができる。その要求で、アプリケーション３２が、そのアプリケーションに、例えばＴＣＰ／ＩＰを介して通信されるSmall Computer System Interface（ＳＣＳＩ）コマンド（ｉＳＣＳＩ）を使用してディスク・データを通信するタイプのアプリケーションが含まれることを示すことができる。要求された接続を生成するときに、接続システム３６は、期待される使用量を判定する際の使用量システム３８による使用のために、アプリケーションのタイプを接続情報３０に保管することができる。例えば、ディスク・データが通常は多数のメッセージを必要とする大きいブロック（例えば、メガバイト単位）で通信されるので、使用量システム３８は、ディスク・データを通信するアプリケーション３２について多い期待される使用量を割り当てる。
【００２９】
さらに、使用量システム３８は、接続を使用して通信されるメッセージの内容を分析することができる。例えば、アプリケーション３２が、ｉＳＣＳＩプロトコルを使用してデータを転送しようとしている場合に、最初のメッセージが、ディスク・データの転送を開始するための「ログイン」コマンドの送信に使用される。ある接続を使用して、ｉＳＣＳＩログイン・コマンドを含むメッセージが通信されたと使用量システム３８が判定する場合に、その接続に、多い期待される使用量を割り当てることができる。
【００３０】
使用量システム３８が、期待される使用量を判定する解決策の任意の組合せを使用できることを理解されたい。例えば、上で述べたように、使用量システム３８は、長命接続として接続を割り当てるのに１ビットを使用し、通信されたメッセージのカウントを維持することができる。この場合に、キャッシュ・メモリ１７がスワップを必要とするとストレージ・システム４０が判定したときに、長命接続のビットを使用することができる。しかし、キャッシュ・メモリ１７に、長命接続の接続情報３０だけが含まれる場合に、メッセージの最も少ないカウントを有する接続の接続情報３０を、除去のために選択することができる。
【００３１】
さらに、ストレージ・システム４０は、接続情報３０が使用されたとき以降の時間期間に基づいて、メモリ１６内の接続情報３０を管理することができる。例えば、ストレージ・システム４０は、接続ごとに、接続情報３０が使用された時刻を保管することができる。キャッシュ・メモリ１７についてスワップが必要であるときに、まず期待される使用量を使用して、除去される接続情報３０を判定することができる。しかし、期待される使用量が、複数の接続を十分に区別しない場合がある（例えば、すべての接続が長命としてマークされている）。この場合に、接続情報３０が最後に使用されたとき以降の時間期間を使用して、除去すべき接続情報３０を判定することができる。例えば、最も長い時間期間を有する接続情報３０を除去することができる（すなわち、最長未使用時間（ＬＲＵ））。というのは、これが、その接続がタイム・アウトしたことを示す場合があるからである。さらに、使用量システム３８は、この時間期間を使用して、期待される使用量を判定することができる。例えば、接続情報３０が使用されたとき以降にある長さの時間が経過した後に、長命接続を短命としてマークしなおすことができる。
【００３２】
上で説明した長命接続ビットを、例えば、通常はキャッシュ・メモリ１７の制御構造に含まれる１つまたは複数の最長未使用時間（ＬＲＵ）ビットを使用して、または長命としてマークされた項目が、ＬＲＵキャッシュ・アルゴリズムで通常そうであるようには加齢しない機構を標準キャッシュ制御構造内で構成することによって、キャッシュ・メモリ１７の一部として実装できることを理解されたい。さらに、上で説明した時間期間を、接続情報３０から取出し可能なフィールドとして保管することができる。代替案では、上で説明したデータの一部またはすべてを、接続情報３０と別の対応する接続に保管し、これにリンクすることができる。後者の場合に、データを、ハードウェア技法またはソフトウェア技法あるいはこの両方によってすばやくスキャンできる別々のテーブルの一部として保管することができる。
【００３３】
図２に、本発明の一実施形態による、メッセージが受信されたときにコンピュータ１２Ａ（図１）によって実行される例示的方法ステップを示す。ステップＳ１で、通信システム３４（図１）が、例えば、メッセージを受信し、そのメッセージを接続と突き合わせる。ステップＳ２で、ストレージ・システム４０（図１）が、突き合わされた接続の接続情報３０（図１）がキャッシュ・メモリ１７（図１）にあるかどうかを判定することができる。接続情報３０がキャッシュ・メモリ１７内にない、すなわち、ステップＳ２のＮＯの場合に、流れは、ステップＳ３に進み、ここで、ストレージ・システム４０が、キャッシュ・メモリ１７が満杯であり、したがってスワップを必要とするかどうかを判定することができる。キャッシュ・メモリ１７が満杯でない、すなわち、ステップＳ３のＮＯの場合に、ステップＳ４で、接続情報３０がキャッシュ・メモリ１７に保管される。しかし、キャッシュ・メモリ１７が満杯である、すなわち、ステップＳ３のＹＥＳの場合に、ステップＳ５で、ストレージ・システム４０が、少ない期待される使用量を有する（例えば、短命としてマークされているか、少ない個数のメッセージを有するか、使用されて以降の最長の時間を有するか、これらの組合せ）接続を選択し、その接続情報３０を、突き合わされた接続の接続情報３０と交換してキャッシュ・メモリ１７からスワップ・アウトすることができる。
【００３４】
どの場合でも、ステップＳ６で、ストレージ・システム４０が、突き合わされた接続の接続情報３０を更新することができる（例えば、メッセージ・カウントを増分する、使用時刻を更新するなど）。ステップＳ７で、使用量システム３８（図１）が、その接続の期待される使用量を変更しなければならないかどうかを判定する。例えば、使用量システム３８は、メッセージの個数が、接続を長命として分類する閾値量を超えるかどうかを判定することができる。そうである場合に、ステップＳ８で、使用量システム３８が、期待される使用量を調整することができる（例えば、接続を長命としてマークする）。ステップＳ７でＮＯの場合、またはステップＳ８の後に、制御は、別のメッセージがコンピュータ１２Ａによって受信されるまで、ステップＳ１に戻る。様々なステップを、特定のシーケンスで発生するものとして説明したが、独立のステップを、同時にまたは本明細書で説明したものと異なる順序で実行できることを理解されたい。さらに、本発明の様々な実施形態について、より少数またはより多数のステップを実行できることを理解されたい。
【００３５】
本発明を、ハードウェアで、ソフトウェアで、またはハードウェアとソフトウェアの組合せで実現できることを理解されたい。すべての種類のコンピュータ／サーバ・システムまたは本明細書で説明した方法を実行するように適合された他の装置が、適する。ハードウェアとソフトウェアの通常の組合せに、ロードされ実行されるときに、コンピュータ１２またはユーザ３０システムあるいはその両方を、これらが本明細書に記載のめいめいの方法を実行するように制御するコンピュータ・プログラムを伴う汎用コンピュータ・システムとすることができる。代替案では、本発明の１つまたは複数の機能タスクを実行する特殊化されたハードウェアを含む特定用途コンピュータ（有限状態機械）を利用することができる。本発明は、本明細書に記載の方法の実装を可能にするすべてのめいめいの特徴を含み、コンピュータ・システムにロードされたときにこれらの方法を実行することができるコンピュータ・プログラム製品で実施することもできる。この文脈でのコンピュータ・プログラム、ソフトウェア・プログラム、プログラム、またはソフトウェアは、情報処理能力を有するシステムに特定の機能を直接に、あるいは（ａ）別の言語、コード、もしくは表記への変換または（ｂ）異なる材料形態での複製あるいはその両方の後に実行させることを意図された命令のセットの、任意の言語、コード、または表記でのすべての表現を意味する。
【００３６】
本発明の様々な実施形態の前述の説明は、例示および説明のために提示された。これは、網羅的であることまたは開示された正確な形態に本発明を制限することを意図されてはおらず、明らかに、多数の修正形態および変形形態が可能である。当業者に明白である可能性があるそのような修正形態および変形形態は、添付請求項によって定義される本発明の範囲に含まれることが意図されている。
【産業上の利用可能性】
【００３７】
本発明は、接続の管理、具体的には、より頻繁に使用される接続の接続情報をより高速のメモリに保管することに有用である。
【図面の簡単な説明】
【００３８】
【図１】接続を管理する例示的システムを示す図である。
【図２】メッセージが受信されたときに実行される例示的方法ステップを示す図である。
【図１】
2007529039.tif 000003
【図２】
2007529039.tif 000004
【手続補正書】
【提出日】平成18年1月11日(2006.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
接続に関する接続情報を入手するステップと、
前記接続に関する期待される使用量を判定するステップと、
前記期待される使用量に基づいてメモリ内の前記接続情報を管理するステップと
を含む、接続を管理する方法。
【請求項２】
前記判定するステップが、前記接続を使用して通信されるメッセージの個数を数えることを含む、請求項１に記載の方法。
【請求項３】
前記判定するステップが、さらに、メッセージの前記個数が閾値を超えるときに、長命として接続をマークすることを含む、請求項２に記載の方法。
【請求項４】
前記判定するステップが、前記接続を使用して通信されるメッセージのサイズを判定することを含む、請求項１に記載の方法。
【請求項５】
アプリケーション（３２）から前記接続に関する要求を受け取るステップと、
前記アプリケーション（３２）のために前記接続を生成するステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記判定するステップが、前記アプリケーション（３２）のタイプを判定することを含む、請求項５に記載の方法。
【請求項７】
前記判定するステップが、前記接続に関する前記接続情報（３０）を分析することを含む、請求項１に記載の方法。
【請求項８】
前記方法が、さらに前記接続情報（３０）が使用されたとき以降の時間期間を判定することを含み、前記管理するステップが、さらに、前記時間期間に基づく、請求項１に記載の方法。
【請求項９】
前記管理するステップが、少ない期待される使用量を有する接続に関する前記接続情報（３０）をキャッシュ・メモリ（１７）から除去することを含む、請求項１に記載の方法。
【請求項１０】
接続に関する接続情報を入手する接続システムと、
前記接続に関する期待される使用量を判定する使用量システムと、
前記期待される使用量に基づいてメモリ内の前記接続情報を管理するストレージ・システムと
を含む、接続管理システム。
【請求項１１】
前記接続が、ＦＣＰ接続およびＴＣＰ／ＩＰ接続のうちの少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１２】
前記使用量システム（３８）が、さらに、前記接続情報（３０）が使用されたとき以降の時間期間を判定し、前記ストレージ・システム（４０）が、さらに、前記時間期間に基づいて前記接続情報（３０）を管理する、請求項１０に記載のシステム。
【請求項１３】
前記接続システム（３６）が、さらに、アプリケーション（３２）のために前記接続を生成する、請求項１０に記載のシステム。
【請求項１４】
前記ストレージ・システム（４０）が、少ない期待される使用量を有する接続に関する前記接続情報（３０）をキャッシュ・メモリ（１７）から除去する、請求項１０に記載のシステム。
【請求項１５】
前記接続を使用してメッセージを通信する通信システム（３４）をさらに含む、請求項１０に記載のシステム。
【請求項１６】
前記期待される使用量が、前記メッセージに基づく、請求項１５に記載のシステム。
【請求項１７】
前記期待される使用量が、前記接続を要求するアプリケーション（３２）および前記接続に関する前記接続情報（３０）のうちの少なくとも１つに基づく、請求項１０に記載のシステム。
【請求項１８】
コンピュータに、請求項１から９に記載の方法の各ステップを実行させるためのコンピュータ・プログラム。
【国際調査報告】
2007529039.tif 000005
2007529039.tif 000006