(57)【特許請求の範囲】
【請求項１】
サービス・ゲートウェイによって、ホストとサーバーとの間の通信セッション上で送信されるデータ・パケットを処理する方法であって、
前記サービス・ゲートウェイが、ハイブリッド・ステートフル処理方法を使用してデータ・パケットを処理するステップと、
前記サービス・ゲートウェイが、ハイブリッド・ステートレス条件が満たされているか否か確認するステップと、
前記ハイブリッド・ステートレス条件が満たされているとの判定に応じて、前記サービス・ゲートウェイが、続いて受信したデータ・パケットを処理する方法を、ハイブリッド・ステートレス処理方法に変更するステップと、
前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートフル処理方法を使用して前記続いて受信したデータ・パケットを処理するステップと、
を備え、
前記ハイブリッド・ステートフル処理方法は、
前記サービス・ゲートウェイが、前記データ・パケットを受信するステップと、
前記データ・パケットが前記ホストあるいは前記サーバーから受信されたか否かを、前記サービス・ゲートウェイが判定するステップと、
前記データ・パケットが前記ホストから受信されたとの判定に応答して、前記データ・パケットがサービス要求を含むか否かを、前記サービス・ゲートウェイが判定するステップと、
前記データ・パケットが前記サービス要求を含むとの判定に応答して、当該データ・パケットを、ステートフル処理方法を使用して前記サービス・ゲートウェイが処理するステップと、
前記データ・パケットが前記ホストから受信され、前記サービス要求を含まないとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して前記サービス・ゲートウェイが処理するステップと、
前記データ・パケットが前記サーバーから受信されたとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して前記サービス・ゲートウェイが処理するステップと、
を含み、
前記ハイブリッド・ステートレス処理方法は、
前記ホストから前記サービス・ゲートウェイが前記続いて受信したデータ・パケットを受信するステップと、
前記続いて受信したデータ・パケットから前記サービス・ゲートウェイがサービス・アドレスを取得するステップと、
前記サービス・ゲートウェイが、前記続いて受信したデータ・パケットの前記サービス・アドレスを、セッション・テーブルのセッション・エントリに保存されているサービス・アドレスと比較するステップと、
前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含むとの判定に応答して、当該続いて受信したデータ・パケットを、一致するセッション・エントリに保存されている情報に基づいて、前記サービス・ゲートウェイが前記ステートフル処理方法を使用して処理するステップと、
前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含まないとの判定に応答して、
前記サービス・ゲートウェイが、前記続いて受信したデータ・パケットの前記サービス・アドレスを、マッピングテーブルのマッピング・エントリに保存されているサービス・アドレスと比較し、
前記サービス・ゲートウェイが、前記続いて受信したデータ・パケットの前記サービス・アドレスと一致するマッピング・エントリを探し出し、
当該続いて受信したデータ・パケットを、一致するマッピング・エントリに保存されている情報に基づいて、前記サービス・ゲートウェイがステートレス処理方法を使用して処理するステップと、
を含む
ことを特徴とするデータ・パケット処理方法。
【請求項２】
前記ハイブリッド・ステートレス条件は、所定のセッション・レートを含み、
前記サービス・ゲートウェイが前記ハイブリッド・ステートレス条件が満たされているか否かを確認するステップは、
前記サービス・ゲートウェイが受ける複数の通信セッションに対してセッション・レートを計算するステップと、
上記算出されたセッション・レートが所定のセッション・レート以上であるか否かを前記サービス・ゲートウェイが判定するステップと、
上記算出されたセッション・レートが前記所定のセッション・レート以上であれば、前記サービス・ゲートウェイは、前記ハイブリッド・ステートレス条件が満たされていると判定するステップと、
上記算出されたセッション・レートが前記所定のセッション・レートより低ければ、前記サービス・ゲートウェイは、前記ハイブリッド・ステートレス条件が満たされていないと判定するステップと、
を含むことを特徴とする請求項１に記載のデータ・パケット処理方法。
【請求項３】
前記算出されたセッション・レートは、
所定の期間にわたってアクティブなホスト側のサービス・セッションのカウントと、
前記所定の期間にわたって受信したサービス要求のカウントと受信したサービス終了要求のカウントとの差と、
前記所定の期間中のサービス要求のカウントと、
のうちの少なくともひとつを含むことを特徴とする請求項２に記載のデータ・パケット処理方法。
【請求項４】
前記ハイブリッド・ステートレス条件は、所定のセッション・テーブル利用を含み、
前記ハイブリッド・ステートレス条件が満たされているか否かを前記サービス・ゲートウェイが確認するステップは、
前記サービス・ゲートウェイが、前記セッション・テーブルに保存されているセッション・エントリの数をカウントするステップと、
前記サービス・ゲートウェイが、保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回るか否かを判定するステップと、
前記保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回るとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートレス条件が満たされていると判定するステップと、
前記保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回らないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートレス条件が満たされていないと判定するステップと、
を含むことを特徴とする請求項１に記載のデータ・パケット処理方法。
【請求項５】
前記ハイブリッド・ステートレス条件が満たされているか否かを前記サービス・ゲートウェイが確認するステップは、
前記サービス・ゲートウェイが、所定の期間、前記ハイブリッド・ステートレス条件が満たされているか否かを判定するステップと、
前記所定の期間の間、前記ハイブリッド・ステートレス条件が満たされているとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートレス条件が満たされていると判定するステップと、
前記所定の期間の間、前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートレス条件が満たされていないと判定するステップと、
を含むことを特徴とする請求項１に記載のデータ・パケット処理方法。
【請求項６】
ホストとサーバーとの間の通信セッション上で送信されるデータ・パケットを処理するコンピュータプログラムであって、
前記コンピュータプログラムは、
ハイブリッド・ステートフル処理方法を使用してデータ・パケットを処理する機能と、
ハイブリッド・ステートレス条件が満たされているか否か確認する機能と、
前記ハイブリッド・ステートレス条件が満たされているとの判定に応答して、続いて受信したデータ・パケットを処理する方法をハイブリッド・ステートレス処理方法に変更する機能と、
前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記ハイブリッド・ステートフル処理方法を使用して前記続いて受信したデータ・パケットを処理する機能と、
をコンピュータに実現させ、
前記ハイブリッド・ステートフル処理方法は、
前記データ・パケットを受信するステップと、
前記データ・パケットが前記ホストあるいは前記サーバーから受信されたか否かを判定するステップと、
前記データ・パケットが前記ホストから受信されたとの判定に応答して、前記データ・パケットがサービス要求を含むか否かを判定するステップと、
前記データ・パケットが前記サービス要求を含むとの判定に応答して、当該データ・パケットを、ステートフル処理方法を使用して処理するステップと、
前記データ・パケットが前記ホストから受信され、前記サービス要求を含まないとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
前記データ・パケットが前記サーバーから受信されたとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
を含み、
前記ハイブリッド・ステートレス処理方法は、
前記ホストから前記続いて受信したデータ・パケットを受信するステップと、
前記続いて受信したデータ・パケットからサービス・アドレスを取得するステップと、
前記続いて受信したデータ・パケットの前記サービス・アドレスを、セッション・テーブルのセッション・エントリに保存されているサービス・アドレスと比較するステップと、
前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含むとの判定に応答して、当該続いて受信したデータ・パケットを、一致するセッション・エントリに保存されている情報に基づいて、前記ステートフル処理方法を使用して処理するステップと、
前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含まないとの判定に応答して、
前記続いて受信したデータ・パケットの前記サービス・アドレスを、マッピングテーブルのマッピング・エントリに保存されているサービス・アドレスと比較し、
前記続いて受信したデータ・パケットの前記サービス・アドレスと一致するマッピング・エントリを探し出し、
当該続いて受信したデータ・パケットを、一致するマッピング・エントリに保存されている情報に基づいて、ステートレス処理方法を使用して処理するステップと、
を含む
ことを特徴とするコンピュータプログラム。
【請求項７】
前記ハイブリッド・ステートレス条件は、所定のセッション・レートを含み、
前記ハイブリッド・ステートレス条件が満たされているか否かを確認する機能は、
複数の受信した通信セッションに対してセッション・レートを算出する機能と、
前記算出されたセッション・レートが所定のセッション・レート以上であるか否かを判定する機能と、
前記算出されたセッション・レートが前記所定のセッション・レート以上であれば、前記ハイブリッド・ステートレス条件が満たされていると判定する機能と、
前記算出されたセッション・レートが前記所定のセッション・レートより低ければ、前記ハイブリッド・ステートレス条件が満たされていないと判定する機能と、
を含むことを特徴とする請求項６に記載のコンピュータプログラム。
【請求項８】
前記算出されたセッション・レートは、
所定の期間にわたってアクティブなホスト側のサービス・セッションのカウントと、
前記所定の期間にわたって受信したサービス要求のカウントと受信したサービス終了要求のカウントの差と、
前記所定の期間中のサービス要求のカウントと、
のうちの少なくともひとつを含むことを特徴とする請求項７に記載のコンピュータプログラム。
【請求項９】
前記ハイブリッド・ステートレス条件は、所定のセッション・テーブル利用を含み、
前記ハイブリッド・ステートレス条件が満たされているか否かを確認する機能は、
前記セッション・テーブルに保存されているセッション・エントリの数をカウントする機能と、
保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回るか否かを判定する機能と、
前記保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回るとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていると判定する機能と、
前記保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回らないとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていないと判定する機能と、
を含むことを特徴とする請求項６に記載のコンピュータプログラム。
【請求項１０】
前記ハイブリッド・ステートレス条件が満たされているか否かを確認する機能は、
所定の期間、前記ハイブリッド・ステートレス条件が満たされているか否かを判定する機能と、
前記所定の期間の間、前記ハイブリッド・ステートレス条件が満たされているとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていると判定する機能と、
前記所定の期間の間、前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていないと判定する機能と、
を含むことを特徴とする請求項６に記載のコンピュータプログラム。
【請求項１１】
プロセッサと、コンピュータ可読プログラム・コードが組み込まれたコンピュータ可読記憶媒体と、を含むサービス・ゲートウェイを備えるシステムであって、
前記コンピュータ可読プログラム・コードは、
ハイブリッド・ステートフル処理方法を使用してデータ・パケットを処理する機能と、
ハイブリッド・ステートレス条件が満たされているか否か確認する機能と、
前記ハイブリッド・ステートレス条件が満たされているとの判定に応答して、続いて受信したデータ・パケットを処理する方法をハイブリッド・ステートレス処理方法に変更する機能と、
前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記ハイブリッド・ステートフル処理方法を使用して前記続いて受信したデータ・パケットを処理する機能と、
をコンピュータに実現させ、
前記ハイブリッド・ステートフル処理方法は、
前記データ・パケットを受信するステップと、
前記データ・パケットがホストあるいはサーバーから受信されたか否かを判定するステップと、
前記データ・パケットが前記ホストから受信されたとの判定に応答して、前記データ・パケットがサービス要求を含むか否かを判定するステップと、
前記データ・パケットが前記サービス要求を含むとの判定に応答して、当該データ・パケットを、ステートフル処理方法を使用して処理するステップと、
前記データ・パケットが前記ホストから受信され、前記サービス要求を含まないとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
前記データ・パケットが前記サーバーから受信されたとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
を含み、
前記ハイブリッド・ステートレス処理方法は、
前記ホストから前記続いて受信したデータ・パケットを受信するステップと、
前記続いて受信したデータ・パケットからサービス・アドレスを取得するステップと、
前記続いて受信したデータ・パケットの前記サービス・アドレスを、セッション・テーブルのセッション・エントリに保存されているサービス・アドレスと比較するステップと、
前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含むとの判定に応答して、当該続いて受信したデータ・パケットを、一致するセッション・エントリに保存されている情報に基づいて、前記ステートフル処理方法を使用して処理するステップと、
前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含まないとの判定に応答して、
前記続いて受信したデータ・パケットの前記サービス・アドレスを、マッピングテーブルのマッピング・エントリに保存されているサービス・アドレスと比較し、
前記続いて受信したデータ・パケットの前記サービス・アドレスと一致するマッピング・エントリを探し出し、
当該続いて受信したデータ・パケットを、一致するマッピング・エントリに保存されている情報に基づいて、ステートレス処理方法を使用して処理するステップと、
を含む
ことを特徴とするシステム。
【請求項１２】
前記ハイブリッド・ステートレス条件は、所定のセッション・レートを含み、
前記ハイブリッド・ステートレス条件が満たされているか否かを確認する機能は、
複数の受信した通信セッションに対してセッション・レートを算出する機能と、
前記算出されたセッション・レートが所定のセッション・レート以上であるか否かを判定する機能と、
前記算出されたセッション・レートが前記所定のセッション・レート以上であれば、前記ハイブリッド・ステートレス条件が満たされていると判定する機能と、
前記算出されたセッション・レートが前記所定のセッション・レートより低ければ、前記ハイブリッド・ステートレス条件が満たされていないと判定する機能と、
を含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記ハイブリッド・ステートレス条件は、所定のセッション・テーブル利用を含み、
前記ハイブリッド・ステートレス条件が満たされているか否かを確認する機能は、
前記セッション・テーブルに保存されているセッション・エントリの数をカウントする機能と、
前記サービス・ゲートウェイが、保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回るか否かを判定する機能と、
前記保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回るとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていると判定する機能と、
前記保存されているセッション・エントリの数が前記所定のセッション・テーブル利用を上回らないとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていないと判定する機能と、
を含むことを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記ハイブリッド・ステートレス条件が満たされているか否かを確認する機能は、
所定の期間、前記ハイブリッド・ステートレス条件が満たされているか否かを判定する機能と、
前記所定の期間の間、前記ハイブリッド・ステートレス条件が満たされているとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていると判定する機能と、
前記所定の期間の間、前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記ハイブリッド・ステートレス条件が満たされていないと判定する機能と、
を含むことを特徴とする請求項１１に記載のシステム。
【請求項１５】
サービス・ゲートウェイによって、ホストとサーバーとの間の通信セッション上で送信されるデータ・パケットを処理する方法であって、
前記サービス・ゲートウェイが、ハイブリッド・ステートレス処理方法を使用してデータ・パケットを処理するステップと、
前記サービス・ゲートウェイが、ハイブリッド・ステートフル条件が満たされているか否か確認するステップと、
前記ハイブリッド・ステートフル条件が満たされているとの判定に応答して、前記サービス・ゲートウェイが、続いて受信したデータ・パケットを処理する方法をハイブリッド・ステートフル処理方法に変更するステップと、
前記ハイブリッド・ステートフル条件が満たされていないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートレス処理方法を使用して前記続いて受信したデータ・パケットを処理するステップと、
を備え、
前記ハイブリッド・ステートレス処理方法は、
前記ホストから前記サービス・ゲートウェイが前記データ・パケットを受信するステップと、
前記データ・パケットから前記サービス・ゲートウェイがサービス・アドレスを取得するステップと、
前記サービス・ゲートウェイが、前記データ・パケットの前記サービス・アドレスを、セッション・テーブルのセッション・エントリに保存されているサービス・アドレスと比較するステップと、
前記セッション・テーブルが、前記データ・パケットの前記サービス・アドレスに一致するセッション・エントリを含むとの判定に応答して、当該データ・パケットを、一致するセッション・エントリに保存されている情報に基づいて、前記サービス・ゲートウェイがステートフル処理方法を使用して処理するステップと、
前記セッション・テーブルが、前記データ・パケットの前記サービス・アドレスに一致するセッション・エントリを含まないとの判定に応答して、
前記サービス・ゲートウェイが、前記データ・パケットの前記サービス・アドレスを、マッピングテーブルのマッピング・エントリに保存されているサービス・アドレスと比較し、
前記サービス・ゲートウェイが、前記データ・パケットの前記サービス・アドレスと一致するマッピング・エントリを探し出し、
当該データ・パケットを、一致するマッピング・エントリに保存されている情報に基づいて、前記サービス・ゲートウェイがステートレス処理方法を使用して処理するステップと、
を含み、
前記ハイブリッド・ステートフル処理方法は、
前記データ・パケットを受信するステップと、
前記データ・パケットが前記ホストあるいは前記サーバーから受信されたか否かを判定するステップと、
前記データ・パケットが前記ホストから受信されたとの判定に応答して、前記データ・パケットがサービス要求を含むか否かを判定するステップと、
前記データ・パケットが前記サービス要求を含むとの判定に応答して、当該データ・パケットを、前記ステートフル処理方法を使用して処理するステップと、
前記データ・パケットが前記ホストから受信され、前記サービス要求を含まないとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
前記データ・パケットが前記サーバーから受信されたとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
を含む
ことを特徴とするデータ・パケット処理方法。
【請求項１６】
前記ハイブリッド・ステートフル条件は、所定のセッション・レートあるいは所定のセッション・テーブル利用を含むことを特徴とする請求項１５に記載のデータ・パケット処理方法。
【請求項１７】
前記サービス・ゲートウェイが前記ハイブリッド・ステートフル条件が満たされているか否かを確認するステップは、
前記サービス・ゲートウェイが、所定の期間、前記ハイブリッド・ステートフル条件が満たされているか否かを判定するステップと、
前記所定の期間の間、前記ハイブリッド・ステートフル条件が満たされているとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートフル条件が満たされていると判定するステップと、
前記所定の期間の間、前記ハイブリッド・ステートフル条件が満たされていないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートフル条件が満たされていないと判定するステップと、
を含むことを特徴とする請求項１５に記載のデータ・パケット処理方法。
【請求項１８】
サービス・ゲートウェイによって、ホストとサーバーとの間の通信セッション上で送信されるデータ・パケットを処理するコンピュータプログラムであって、
前記コンピュータプログラムは、
ハイブリッド・ステートレス処理方法を使用してデータ・パケットを処理する機能と、
ハイブリッド・ステートフル条件が満たされているか否か確認する機能と、
前記ハイブリッド・ステートフル条件が満たされているとの判定に応答して、続いて受信したデータ・パケットを処理する方法をハイブリッド・ステートフル処理方法に変更する機能と、
前記ハイブリッド・ステートフル条件が満たされていないとの判定に応答して、前記ハイブリッド・ステートレス処理方法を使用して前記続いて受信したデータ・パケットを処理する機能と、
をコンピュータに実現させ、
前記ハイブリッド・ステートレス処理方法は、
前記ホストから前記データ・パケットを受信するステップと、
前記データ・パケットから前記サービス・ゲートウェイがサービス・アドレスを取得するステップと、
前記データ・パケットの前記サービス・アドレスを、セッション・テーブルのセッション・エントリに保存されているサービス・アドレスと比較するステップと、
前記セッション・テーブルが、前記データ・パケットの前記サービス・アドレスに一致するセッション・エントリを含むとの判定に応答して、当該データ・パケットを、一致するセッション・エントリに保存されている情報に基づいて、ステートフル処理方法を使用して処理するステップと、
前記セッション・テーブルが、前記データ・パケットの前記サービス・アドレスに一致するセッション・エントリを含まないとの判定に応答して、
前記データ・パケットの前記サービス・アドレスを、マッピングテーブルのマッピング・エントリに保存されているサービス・アドレスと比較し、
前記データ・パケットの前記サービス・アドレスと一致するマッピング・エントリを探し出し、
当該データ・パケットを、一致するマッピング・エントリに保存されている情報に基づいて、ステートレス処理方法を使用して処理するステップと、
を含み、
前記ハイブリッド・ステートフル処理方法は、
前記データ・パケットを受信するステップと、
前記データ・パケットが前記ホストあるいは前記サーバーから受信されたか否かを判定するステップと、
前記データ・パケットが前記ホストから受信されたとの判定に応答して、前記データ・パケットがサービス要求を含むか否かを判定するステップと、
前記データ・パケットが前記サービス要求を含むとの判定に応答して、当該データ・パケットを、前記ステートフル処理方法を使用して処理するステップと、
前記データ・パケットが前記ホストから受信され、前記サービス要求を含まないとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
前記データ・パケットが前記サーバーから受信されたとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、
を含むことを特徴とするコンピュータプログラム。
【請求項１９】
前記ハイブリッド・ステートフル条件は、所定のセッション・レートあるいは所定のセッション・テーブル利用を含むことを特徴とする請求項１８に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は一般にデータ通信に関し、具体的にはサービス・ゲートウェイに関する。
【背景技術】
【０００２】
消費者用や企業で使われるコンピュータ・デバイスのためのデータ通信サービスに対する需要が急増している。接続サービス会社は、ホスト・コンピュータあるいはコンピュータ・デバイスとデータサービスを提供するサーバーとを橋渡しするサーバー負荷分散装置やトラヒック・マネージャーなどのサービス・ゲートウェイを配備する。
【０００３】
サービス・ゲートウェイはステートフル（stateful）処理方法かステートレス（stateless）処理方法のいずれか一方を使ってサービスを提供する。一般に、ステートフル処理方法では、パケットはパケット列として処理され、ストリーム内の各パケットは同様に処理される。ステートレス処理方法では、パケットは離散的に処理され、各パケットは個別に評価される。ステートフル処理方法は、実施される安全対策や制御機構の観点からステートレス処理方法よりも好適であるが、そのような機能を実現させるためのリソース要件によっては、かえってサービス自体の提供を難しくしてしまうこともあり得る。ステートレス処理方法は、スケーラビリティの観点からステートフル処理方法よりも好適であるが、その場合、安全性および制御性は犠牲にされてしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワーク上での状況は一般的に変動し時には大きく変動するので、サービス・ゲートウェイによって管理されるトラヒックは稀にしか均一でない。現在、システム管理者は、費用と効果を比較検討して、ある特定のサービス・アドレスに対してステートフル処理方法かステートレス処理方法のどちらか一方を選択する必要がある。システム管理者は、このような不均一なトラヒックに対しては両者の有用性を実現できないでいる。
【課題を解決するための手段】
【０００５】
本発明のある態様は、サービス・ゲートウェイによって、ホストとサーバーとの間の通信セッション上で送信されるデータ・パケットを処理する方法である。この方法は、前記サービス・ゲートウェイが、ハイブリッド・ステートフル（hybrid-stateful）処理方法を使用してデータ・パケットを処理するステップと、前記サービス・ゲートウェイが、ハイブリッド・ステートレス（hybrid-stateless）条件が満たされているか否か確認するステップと、前記ハイブリッド・ステートレス条件が満たされているとの判定に応答して、前記サービス・ゲートウェイが、その時点で使用されている方法を、続いて受信したデータ・パケットを前記ハイブリッド・ステートレス処理する方法に変更するステップと、前記ハイブリッド・ステートレス条件が満たされていないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートフル処理方法を使用して前記続いて受信したデータ・パケットを処理するステップと、を備える。
【０００６】
本発明の別の態様も、サービス・ゲートウェイが、ホストとサーバーとの間の通信セッション上で送信されるデータ・パケットを処理する方法である。この方法は、前記サービス・ゲートウェイが、ハイブリッド・ステートレス処理方法を使用してデータ・パケットを処理するステップと、当該ハイブリッド・ステートレス処理方法は、前記データ・パケットのサービス・アドレスあるいはサーバー・アドレスがセッション・テーブルのセッション・エントリのいずれかと一致してない限り、ハイブリッド・ステートレス処理方法を使用して前記データ・パケットを処理し、前記サービス・ゲートウェイが、ハイブリッド・ステートフル条件が満たされているか否か確認するステップと、前記ハイブリッド・ステートフル条件が満たされているとの判定に応答して、前記サービス・ゲートウェイが、その時点で使用されている方法を、続いて受信したデータ・パケットをハイブリッド・ステートフル処理する方法に変更するステップと、当該ハイブリッド・ステートレス処理方法は、前記続いて受信したデータ・パケットがサービス要求を含む限り、あるいは前記続いて受信したデータ・パケットがサーバーから受信されていない限り、ハイブリッド・ステートフル処理方法を使用して前記データ・パケットを処理し、前記ハイブリッド・ステートフル条件が満たされていないとの判定に応答して、前記サービス・ゲートウェイが、前記ハイブリッド・ステートレス処理方法を使用して前記続いて受信したデータ・パケットを処理するステップと、を含み、前記ハイブリッド・ステートフル処理方法は、前記サービス・ゲートウェイが、前記データ・パケットを受信するステップと、前記データ・パケットが前記ホストあるいは前記サーバーから受信されたか否かを、前記サービス・ゲートウェイが判定するステップと、前記データ・パケットが前記ホストから受信されたとの判定に応答して、前記データ・パケットがサービス要求を含むか否かを、前記サービス・ゲートウェイが判定するステップと、前記データ・パケットが前記サービス要求を含むとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートフル処理方法を使用して前記サービス・ゲートウェイが処理するステップと、前記データ・パケットが前記ホストから受信され、前記サービス要求を含まないとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して前記サービス・ゲートウェイが処理するステップと、前記データ・パケットが前記サーバーから受信されたとの判定に応答して、当該データ・パケットを、前記ハイブリッド・ステートレス処理方法を使用して前記サービス・ゲートウェイが処理するステップと、を含む。
【０００７】
本発明のある態様によれば、前記ハイブリッド・ステートレス処理方法は、前記ホストから前記サービス・ゲートウェイが前記続いて受信したデータ・パケットを受信するステップと、前記続いて受信したデータ・パケットから前記サービス・ゲートウェイがサービス・アドレスを取得するステップと、前記サービス・ゲートウェイが、前記続いて受信したデータ・パケットの前記サービス・アドレスを、セッション・テーブルのセッション・エントリに保存されているサービス・アドレスと比較するステップと、前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含むとの判定に応答して、当該続いて受信したデータ・パケットを、一致するセッション・エントリに保存されている情報に基づいて、前記サービス・ゲートウェイが前記ハイブリッド・ステートフル処理方法を使用して処理するステップと、前記セッション・テーブルが、前記続いて受信したデータ・パケットの前記サービス・アドレスに一致するセッション・エントリを含まないとの判定に応答して、前記サービス・ゲートウェイが、前記続いて受信したデータ・パケットの前記サービス・アドレスを、マッピングテーブルのマッピング・エントリに保存されているサービス・アドレスと比較し、前記サービス・ゲートウェイが、前記続いて受信したデータ・パケットの前記サービス・アドレスと一致するマッピング・エントリを探し出し、当該続いて受信したデータ・パケットを、一致するマッピング・エントリに保存されている情報に基づいて、前記サービス・ゲートウェイが前記ハイブリッド・ステートレス処理方法を使用して処理するステップと、を含む。
【０００８】
上記にて要約された方法に対応するシステムおよびコンピュータ・プログラム製品は、本明細書に開示され、さらに特許請求の範囲を表す請求項として記載されている。
【図面の簡単な説明】
【０００９】
【図１】ホストと複数のサーバーの間での通信セッションを処理するためのサービス・ゲートウェイを示す図である。
【００１０】
【図２】ステートフル処理法を示す図である。
【００１１】
【図３】ステートレス処理法を示す図である。
【００１２】
【図４】本発明に係るステートフル処理法とステートレス処理法を組み合わせてハイブリッド・ステートレス処理法を実施するサービス・ゲートウェイの実施形態を示す図である。
【００１３】
【図５】本発明係るステートフル処理法とステートレス処理法を組み合わせてハイブリッド・ステートフル処理法を実施するサービス・ゲートウェイの実施形態を示す図である。
【００１４】
【図６】本発明に係る実施形態を示す図であって、ハイブリッド・ステートレス条件が満たされた場合に、ハイブリッド・ステートフル処理方法からハイブリッド・ステートレス処理方法への変更を実施するサービス・ゲートウェイの実施形態を示す図である。
【００１５】
【図７】本発明に係る実施形態を示す図であって、ハイブリッド・ステートフル条件が満たされた場合に、ハイブリッド・ステートレス処理方法からハイブリッド・ステートフル処理方法への変更を実施するサービス・ゲートウェイの実施形態を示す図である。
【００１６】
【図８】本発明に係るハイブリッド・ステートレス処理法のある実施形態を示すフローチャートである。
【００１７】
【図９】本発明に係るハイブリッド・ステートフル処理法のある実施形態を示すフローチャートである。
【００１８】
【図１０】本発明に係る実施形態を示すフローチャートであって、ハイブリッド・ステートレス条件が満たされた場合に、ハイブリッド・ステートフル処理方法からハイブリッド・ステートレス処理方法へ変更する方法の実施形態を示すフローチャートである。
【００１９】
【図１１】本発明に係る実施形態を示すフローチャートであって、ハイブリッド・ステートフル条件が満たされた場合に、ハイブリッド・ステートレス処理方法からハイブリッド・ステートフル処理方法へ変更する方法の実施形態を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下の記述は、当業者が本発明を製造し利用できるために提示され、また特許出願およびその要件に照らして提出される。実施の形態に対する様々な変形例は当業者には容易に類推可能であり、本明細書でのジェネリックな基本原則は、他の実施の形態にも適用されてもよい。したがって、本発明は以下に記述された実施形態のみに限定されず、そのような基本原則および本明細書で開示された特徴に合致する最も広い範囲が付与されるべきである。
【００２１】
本発明は、完全にハードウェアで構成される実施の形態か、完全にソフトウェアで構成される実施の形態か、あるいはハードウェア要素およびソフトウェア要素の両方の要素を含む実施の形態の形をとることが可能である。好適な実施形態において、本発明はソフトウェアに実装されている。ここで、ソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがそれらによって限定されない。
【００２２】
さらに、本発明は、コンピュータないし任意の命令実行システムに用いられたりそれらに関連するプログラム・コードを提供するコンピュータ使用可能媒体あるいはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形をとることもできる。このような記述を目的として、コンピュータ使用可能媒体あるいはコンピュータ可読媒体は、命令実行システム、装置、デバイスに用いられるプログラムを含み、保存し、通信し、伝播し、転送できる任意の装置とすることができる。
【００２３】
本媒体は、電子システム、磁気システム、光学システム、電磁気システム、赤外線システム、半導体システム（または装置あるいはデバイス）、または伝播媒質でとすることができる。コンピュータ可読媒体の例としては、半導体メモリないし固体メモリ、磁気テープ、取り外し可能なフロッピー（登録商標）・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定型磁気ディスク、光ディスクがあげられる。最新の光ディスクの例としては、コンパクトディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−読み書き（ＣＤ−Ｒ／Ｗ）、ＤＶＤがあげられる。
【００２４】
プログラム・コードを保存および／または実行するのに適したデータ処理システムは、システム・バスを通じて記憶素子に直接あるいは間接的に連結している少なくとも一つのプロセッサを含む。これらの記憶素子は、プログラム・コードの実際の実行中に使用されるローカルメモリと、大容量記憶装置と、実行中に大容量記憶装置からプログラム・コードが読み出される回数を減らすために少なくともいくつかのプログラム・コードを一時的に記憶しておくキャッシュメモリと、を含む。
【００２５】
入力／出力デバイス、すなわちＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらには限定されない）は、介在するＩ／Ｏコントローラを通じてシステムに直接あるいは間接的に結合することができる。
【００２６】
ネットワーク・アダプターもまた、データ処理システムが、介在する私用あるいは公共のネットワークを通じて他のデータ処理システム、遠隔プリンター、記憶装置に連結できるようにシステムに連結してもよい。モデム、ケーブル・モデム、そしてイーサネット（登録商標）・カードは、現在入手可能なネットワーク・アダプターの一種のうちの一部にすぎない。
【００２７】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法およびコンピュータ・プログラム製品を実施・実装した場合のアーキテクチャー、機能性および作用を例証するためのものである。この点については、フローチャートにおける各ブロックあるいはブロック図は、特定の局所機能を実装するための一個以上の実行可能な命令からなるプログラム・コードのモジュール、セグメントあるいはその一部を描写してもよい。なお、いくつかの別の実装例では、ブロックに示された機能が図面での順序と異なった順序でおこることがある。例えば、連続して二つのブロックがあるとすると、実際には、これらのブロックでの機能がほぼ同時に進行する場合がある。あるいは、その際に関与する機能性によっては、これらのブロックは時には互いに逆方向に実行されてもよい。なお、ブロック図の各ブロックおよび／またはフローチャートを使った説明図、そしてブロック図および／またはフローチャートを使った説明図におけるブロックの組み合わせは、特定の機能あるいは作用を実行する専用のハードウェアベース・システムによって、あるいは、専用のハードウェアとコンピュータの命令を組み合わせることによって実施することができる。
【００２８】
本明細書の中で使われる用語は、特定の実施形態のみを説明するためのものであり、本発明を限定することは意図していない。本明細書で使用されているように、単数形「a」「an」および「the」は複数形を含むことも意図されている。ただし、文脈上からそのような解釈とは別であると明らかな場合は、その範疇でない。さらに、用語「comprises」および／または「comprising」が本明細書で使われる場合は、それらの用語は記述された特徴、整数、ステップ、作用、要素および／または部品の存在を指定し、一つ以上の他の特徴、整数、ステップ、作用、要素および／または部品の存在を排除しない。本発明の実施形態は、ハイブリッド・ステートレス処理方法かハイブリッド・ステートフル処理方法のいずれか一方を使ってパケットを処理する能力を持ち、またハイブリッド・ステートフル処理方法の使用からハイブリッド・ステートレス処理方法の使用へ（あるいはその逆）切り替えるべきか否かを判定する条件を評価・判断する能力を持つセキュリティ・ゲートウェイを提供する。本発明の様々な実施形態を説明する前に、図１乃至図３を参照してまずステートフル方法のみそしてステートレス方法のみを別々に説明していく。
【００２９】
図１は、ホスト１００とサーバー２００との間の通信セッション３００のためのサービス・ゲートウェイ１１０を示す。複数のデータ・パケットが、ホスト１００とサーバー２００との間で通信セッション３０を通じて送信される。サービス・ゲートウェイ１１０はホスト１００からサービス要求３０１を含むデータ・パケットを受信することによって通信セッション３００を確立する。サービス要求３０１はデータ・ネットワーク１５３を通じて配信される。サービス要求３０１は、インターネット、企業ネットワーク、データセンター・ネットワーク、ネットワーク・クラウドを通じてのウェブ・サービス要求であってよく、その他、それらの通信回線を通じての任意の要求であってもよい。そのようなウェブ・サービス要求として、ＨＴＴＰ（ハイパーテキスト転送プロトコル）要求、高信頼ＨＴＴＰ要求、ＦＴＰ（ファイル転送プロトコル）要求、ファイル転送要求、ＳＩＰ(セッション確立プロトコル)セッション要求、ウェブ技術に基づく要求、ビデオ／音声ストリーミング要求、ウェブ会議要求がある。また、サービス要求３０１は、モバイルアプリケーションのダウンロードに関する要求、広告配信要求、電子書籍配信要求、共同作業セッション要求や、オンライン新聞や雑誌の配信要求であってもよい。
【００３０】
ホスト１００は、ネットワークに接続する能力を持つコンピューティング装置である。ホスト１００は、ワークステーション、卓上型パソコン、ノート型パソコンであってもよい。ある態様では、ホスト１００は、携帯情報端末（ＰＤＡ）、タブレット型コンピュータ、スマートフォン、携帯電話である。他のホスト１００の例としては、セットトップボックス、インターネット・メディアビューアー、インターネット・メディアプレーヤー、スマートセンサ（高性能センサ）、高性能医療機器、ネットトップボックス、ネットワークテレビ、ネットワーク・デジタルビデオレコーダー（ＤＶＲ）、ネットワーク・ブルーレイプレーヤーやメディアセンターがある。
【００３１】
サービス・ゲートウェイ１１０は、プロセッサ１１３と、プロセッサ１１３によって実行されるコンピュータ可読プログラム・コードを記憶するコンピュータ可読媒体１１４と、に作動連結されたコンピューティング装置である。サービス・ゲートウェイ１１０は、サーバー負荷分散装置、アプリケーション・デリバリ・コントローラ、サービス・デリバリ・プラットフォーム、トラヒック・マネージャー、セキュリティ・ゲートウェイ、ファイアウォール・システムの一構成要素、仮想私設ネットワーク（ＶＰＮ）の一構成要素、ビデオ・サーバーの負荷分散装置や、一台か複数台のサーバーに負荷を分散するゲートウェイとして実装される。
【００３２】
サーバー２００は、プロセッサ２１３と、プロセッサ２１３によって実行されるコンピュータ可読プログラム・コードを記憶するコンピュータ可読媒体２１４と、に作動連結されたコンピューティング装置である。コンピュータ可読プログラム・コードは、サーバー２００を、ウェブ・サーバー、ファイル・サーバー、ビデオ・サーバー、データベース・サーバー、アプリケーション・サーバー、音声システム、会議サーバー、メディア・ゲートウェイ、ＳＩＰサーバー、遠隔アクセスサーバー、ＶＰＮサーバー、メディアセンター、ＡＰＰサーバー、ホスト１００へネットワーク・サービスあるいはアプリケーション・サービスを提供するネットワーク・サーバーとして実施してもよい。
【００３３】
データ・ネットワーク１５３は、インターネット・プロトコル（ＩＰ）ネットワークにより構成されてもよい。データ・ネットワーク１５３は、企業データ・ネットワーク、局地的企業データ・ネットワーク、インターネット接続サービス業者、住宅用データ・ネットワーク、イーサネット（登録商標）などの有線ネットワーク、無線ＬＡＮネットワークなどの無線ネットワーク、あるいは、移動体通信ネットワーク等を含んでもよい。データ・ネットワーク１５３は、データセンター内に存在してもよく、あるいは、ネットワークやアプリケーション・ネットワーク・クラウドに接続する。
【００３４】
ホスト１００からのサービス要求３０１は、例えばＩＰアドレスなどのサービス・アドレス３３１を含む。サービス・アドレス３３１は、アプリケーション層アドレス、あるいは、伝送制御プロトコル（ＴＣＰ）ポート番号やユーザー・データグラム・プロトコル（ＵＤＰ）ポート番号などのトランスポート層ポート番号を含む。サービス・アドレス３３１は、サービス・ゲートウェイ１１０がサービス要求３０１を処理できるようにサービス・ゲートウェイ１１０に関連付けられている。サービス・アドレス３３１は、サービス要求３０１の送信先ＩＰアドレスを含んでもよく、また、サービス要求３０１の送信先トランスポート層ポート番号を随意含んでもよい。
【００３５】
サーバー要求３０１は、ＴＣＰセッション要求データ・パケットもしくはＵＤＰデータ・パケットを含んでもよい。サービス・アドレス３３１はサービス要求３０１のデータ・パケットに含まれる。
【００３６】
サービス・ゲートウェイ１１０は、サービス要求３０１から入手したサービス・アドレス３３１に基づいて、サーバー・アドレス３２１を決定する。サーバー・アドレス３２１は、サーバー２００と関連付けられており、サーバー２００のネットワーク・アドレスまたはＩＰアドレスを含んでもよい。サーバー・アドレス３２１は、サーバー２００のＴＣＰポート番号ないしＵＤＰポート番号などのアプリケーション層アドレスを含んでもよい。
【００３７】
サーバー・アドレス３２１に基づいて、サービス・ゲートウェイ１１０は、サービス・セッション要求３０６をサーバー２００に送信する。続いて、サービス・ゲートウェイ１１０は、サーバー２００からセッション要求に対する応答を受け付けて、サーバー２００とのサーバー側サービス・セッション３０５を確立する。セッション要求３０６応答に基づいて、サービス・ゲートウェイ１１０は、サービス要求３０１応答をホスト１００へ送信し、サービス要求３０１に関してのホスト１００とのホスト側サービス・セッション３０２を確立する。
【００３８】
通信セッション３００は、ホスト側サービス・セッション３０２とサーバー側サービス・セッション３０５を含む。サービス・セッション３０２は、通信セッション３００のための、ホスト１００から送信された一個または複数のデータ・パケットを含む。サービス・セッション３０５は、通信セッション３００のための、サーバー２００から送信された一個または複数のデータ・パケットを含む。サービス・セッション３０２は、サービス要求３０１を含む。
【００３９】
サービス・セッション３０２およびサービス・セッション３０５が確立されると、サービス・ゲートウェイ１１０は、その次に、ホスト１００から受信したサービス・セッション３０２のデータ・パケット３０４を処理する。データ・パケット３０４は、サービス・アドレス３３１を含む。サービス・ゲートウェイ１１０は、サービス・アドレス３３１をサーバー・アドレス３２１によって置き換えることによって、データ・パケット３０４を変更する。サービス・ゲートウェイ１１０は、その変更されたデータ・パケット３０４をサーバー２００に送信する。
【００４０】
サービス・ゲートウェイ１１０がサーバー２００からサービス・セッション３０５のデータ・パケット３０７を受信すると、サービス・ゲートウェイ１１０はデータ・パケット３０７を処理する。サービス・セッション３０５のデータ・パケット３０７はサーバー・アドレス３２１を含む。サービス・ゲートウェイ１１０は、サーバー・アドレス３２１をサービス・アドレス３３１によって置き換えることによって、データ・パケット３０７を変更する。サービス・ゲートウェイ１１０は、変更されたデータ・パケット３０７をホスト１００に送信する。
【００４１】
サービス・セッション３０２およびサーバー・セッション３０５を処理するには共通な二通りの方法がある。ひとつはステートフル処理方法であり、もうひとつはステートレス処理方法である。図２はステートフル処理方法を示す図である。図２では、サービス・ゲートウェイ１１０はサービス・セッション・テーブル４１２を保持する。サービス・セッション・テーブル４１２は一個以上のサービス・エントリを収める。サービス・ゲートウェイ１１０はサービス・セッション３０２のためのセッション・エントリ４２０を作成する。セッション・エントリ４２０は、サービス・アドレス３３１とサーバー・アドレス３２１とを、両者を関連付けて保存する。サービス・ゲートウェイ１１０は、ホスト側のサービス・セッション３０２およびサーバー側のサービス・セッション３０５が確立された後に、セッション・エントリ４０２を作成してもよい。サービス・ゲートウェイ１１０は、サービス要求３０１を受信した後に、セッション・エントリ４２０を作成してもよい。サービス・ゲートウェイ１１０は、セッション・エントリ４２０内のサービス・アドレス３３１およびサーバー・アドレス３２１を、それらのアドレスを決定した後に保存する。サービス・ゲートウェイ１１０は、サービス・セッション・テーブル４１２のセッション・エントリを保存する。
【００４２】
サービス・ゲートウェイ１１０は記憶部４００を含み、サービス・セッション・テーブル４１２を記憶部４００に保存する。記憶部４００は、サービス・ゲートウェイ１１０内にあるメモリ・モジュールである。サービス・ゲートウェイ１１０は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）と、ネットワーク・プロセッサと、特定用途向け集積回路（ＡＳＩＣ）と、からなるネットワーク・プロセッシング・モジュール（図示せず）を含む。記憶部４００は、ネットワーク・プロセッシング・モジュールと結合している。記憶部４００の例としは、連想メモリ（ＣＡＭ）、三値連想メモリ（ＴＣＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）があげられる。
【００４３】
サービス・ゲートウェイ１１０は、サービス要求３０１からサービス・アドレス３３１を入手する。サービス・ゲートウェイ１１０は、サービス・ポリシー４７１を維持し、サービス・ポリシー４７１に基づいてサーバー・アドレス３２１を決定する。サービス・ポリシー４７１は、サーバー２００とサービス・アドレス３３１との関係に基づいたものでよい。サービス・ポリシー４７１は、サービス・アドレス３３１とサーバー・アドレス３２１を含む。サービス・ゲートウェイ１１０は、サービス要求３０１から入手したサービス・アドレス３３１とサービス・ポリシー４７１におけるサービス・アドレスとの照合において両者が一致していることを基に、サービス・ポリシー４７１を選択する。サービス・ゲートウェイ１１０は、サービス・ポリシー４７１をサービス要求３０１に適用する。サービス・ポリシー４７１は、非安全サービス要求３０１がサーバー２００に送信可能である安全性ポリシー４８２を含んでもよい。サービス・ポリシー４７１は、サーバー２００へのトラヒック負荷が低い時にサービス要求３０１がサーバー２００によって扱われるトラヒック・ポリシー４８３を含んでもよい。サービス要求３０１は、サービス・ゲートウェイ１１０の所定のネットワーク・インターフェースから受信してもよく、トラヒック・ポリシー４８３は、ネットワーク・インターフェースから受信したサービス要求３０１がサーバーへ送信されるべきことを示している。
【００４４】
サーバー２４０もまたサービス要求３０１を扱う。サービス・ポリシー４７１は、サーバー２４０のサーバー負荷が高い時にはサービス要求３０１をサーバー２００に送信すべきあることを示すサーバー負荷ポリシー４８４を含んでもよい。一例として、サービス・ポリシー４７１は、サーバー２００がサーバー２４０のバックアップサーバーでサーバー２４０が利用可能でない場合、サービス要求３０１をサーバー２００に送信すべきあることを示すサーバー利用可能ポリシー４８５を含んでもよい。サービス・ポリシー４７１は、サーバー２００とサーバー２４０との間のサービス負荷分散ポリシー４８６を含んでもよい。サービス・ゲートウェイ１１０は、ラウンドロビン法や別の負荷分散ポリシーを含む負荷分散ポリシー４８６を使って、サーバー２００を選択する。サービス・ポリシー４７１は、ホスト１００がホスト・ポリシー４８７を満たす時にはサービス要求３０１をサーバー２００に送信すべきあることを示すホスト・ポリシー４８７を含んでもよい。
【００４５】
サービス・ゲートウェイ１１０は、サービス・ポリシー４７１をサービス要求３０１に適用した後に、サービス・ポリシー４７１からサーバー・アドレス３２１を取得する。サービス・ゲートウェイ１１０は、サービス・アドレス３３１およびサーバー・アドレス３１２によってセッション・エントリ４２０を作成する。ここで、サービス・アドレス３３１とサーバー・アドレス３１２は関連付けられている。サービス・ゲートウェイ１１０は、サービス・セッション・テーブル４１２にセッション・エントリ４２０を保存する。
【００４６】
サービス・ゲートウェイ１１０は、ホスト１００から受信したデータ・パケット３０４およびサーバー２００から受信したデータ・パケット３０７を処理するために、サービス・セッション・テーブル４１２を使用する。ホスト１００からデータ・パケット３０４を受信すると、サービス・ゲートウェイ１１０はそのデータ・パケット３０４からサービス・アドレス３３１を入手する。サービス・ゲートウェイ１１０は、その入手したサービス・アドレス３３１を、サービス・セッション・テーブル４１２に保存されているサービス・アドレスと比較する。サービス・ゲートウェイ１１０が、その入手したサービス・アドレス３３１がサービス・セッション・テーブル４１２に保存されているひとつのサービス・アドレスに一致していると判定すると、サービス・ゲートウェイ１１０は、データ・パケット３０４を処理するのにセッション・エントリ４２０に保存されている情報を使用する。サービス・ゲートウェイ１１０は、サービス・アドレス３３１をサーバー・アドレス３２１によって置き換えることによって、データ・パケット３０４を変更する。サービス・ゲートウェイ１１０は、その変更されたデータ・パケット３０４をサーバー２００に送信する。
【００４７】
サービス要求３０１は、ホスト１００に関連付けられたホスト・アドレス１０４を含んでもよい。サービス・ゲートウェイ１１０は、サービス要求３０１からホスト・アドレス１０４を取得する。サービス・ゲートウェイ１１０は、サービス・ポリシー４７１を適用する際、その取得したホスト・アドレス１０４を使用してもよい。サービス・ゲートウェイ１１０は、サービス・セッション・エントリ４２０にホスト・アドレス１０４を保存する。データ・パケット３０４は、ホスト・アドレス１０４を含んでもよい。サービス・ゲートウェイ１１０は、データ・パケット３０４からホスト・アドレス１０４を入手し、その入手したホスト・アドレス１０４を、サービス・セッション・テーブル４１２およびセッション・エントリ４２０に保存されているサービス・アドレスと比較する。
【００４８】
サーバー側サービス・セッション３０５のパケット・データ３０７をサーバー２００から受信すると、サービス・ゲートウェイ１１０は、データ・パケット３０７からサーバー・アドレス３２１を取得する。サービス・ゲートウェイ１１０は、その入手したサーバー・アドレス３２１を、サービス・セッション・テーブル４１２に保存されているアドレスと比較し、セッション・エントリ４２０との一致があるか判定する。一致があると判定されれば、サービス・ゲートウェイ１１０が、データ・パケット３０７を処理するのにセッション・エントリ４２０を使用する。サービス・ゲートウェイ１１０は、サーバー・アドレス３２１を、一致したセッション・エントリ４２０から取得したサービス・アドレス３３１によって置き換えることによって、データ・パケット３０７を変更する。サービス・ゲートウェイ１１０は、その変更されたデータ・パケット３０７をホスト１００に送信する。
【００４９】
データ・パケット３０７は、ホスト・アドレス１０４を含んでもよい。サービス・ゲートウェイ１１０は、データ・パケット３０７からホスト・アドレス１０４を入手し、サービス・セッション・テーブル４１２およびセッション・エントリ４２０に保存されているアドレスと比較する際に、この入手したホスト・アドレス１０４を使用する。
【００５０】
サービス・セッション３０２から受け取ったデータ・パケット３０４はセッション終了要求を示してもよい。例えば、データ・パケット３０４は、ＴＣＰ−ＦＩＮパケットやＴＣＰ−ＲＥＳＥＴパケットである。サービス・ゲートウェイ１１０は、データ・パケット３０４のコンテンツを調べて、そのデータ・パケット３０４がセッション終了要求を含むと判定する。それに応じて、サービス・ゲートウェイ１１０は、セッション・エントリ４２０をサービス・セッション・テーブル４１２から削除する。サービス・ゲートウェイ１１０は、データ・パケット３０４を処理した後セッション・エントリ４２０を削除してよい、もしくは、セッション・エントリ４２０を削除する前に所定の期間待機する。
【００５１】
図２に示す処理方法は、しばしば「ステートフル処理方法」とよばれる。ステートフル処理方法によって、サービス・ゲートウェイ１１０がサーバー２００を選択するのに一個以上のサービス・ポリシーを適用するのを可能にする。サービス・ポリシーは、安全性ポリシーおよびサーバーを保護するための他のホリシーを含んでもよい。安全性ポリシー４８２は、安全性上の問題が検知された場合は、サービス要求３０１が拒否される。このような安全性上の配慮は当業者には知られているため、本明細書ではその説明を省略する。トラヒック・ポリシー４８３あるいはサーバー負荷ポリシー４８４を適用することによっても、サーバー２００の過負荷を防ぐことができる。これらのサーバー・ポリシーを実施することによって、サーバー２００のホスト１００への応答時間をしばしば改善できる。
【００５２】
しかしながら、サービス要求にサービス・ポリシー４７１を適用するには、サービス・ゲートウェイ１１０の計算リソース（例えば、ＣＰＵサイクル）が必要である。そのような計算リソースのための要件は、サービス・ゲートウェイ１１０が短い時間内に多くのサービス要求を受け付けてそれらを処理する際には、サービス・ゲートウェイ１１がサービスを提供する能力に限界を課するかもしれない。
【００５３】
例えば、サービス・セッション・テーブル４１２にはある容量限界があり、それは、例えば、４ギガバイトか、２０００エントリか、１００００エントリまでか、２００メガバイトなど、となる。ステートフル処理方法を使ってサービス・ゲートウェイ１１０が扱うサービス・セッションの数が増えれば増えるほど、サービス・セッション・テーブル４１２に保存されるセッション・エントリの数も増える。このように、サービス・セッション・テーブル４１２の容量によっては、サービス・ゲートウェイ１１０のサービス容量に厳しい制約を課すことになりかねない。
【００５４】
図３はステートレス処理方法を示す図である。この方法では、サービス・ゲートウェイ１１０はサービス・セッション・テーブル４１２を使用しない。その代わり、サービス・ゲートウェイ１１０は、サービス・マッピング・テーブル４５２を保持し使用する。サービス・マッピング・テーブル４５２は記憶部４００に保存されている。サービス・マッピング・テーブル４５２はサービス・マッピング・エントリ４６０を含む。サービス・マッピング・エントリ４６０はサービス・アドレス３３１およびサーバー・アドレス３２１を含んでもよく、サービス・アドレス３３１とサーバー・アドレス３２１とは互いに関連付けられている。サービス・マッピング・エントリ４６０によれば、サーバー・アドレス３２１を持つサーバー２００は、サービス・アドレス３３１をホスト１００に提供する。
【００５５】
ホスト１００からデータ・パケット３０４を受信すると、サービス・ゲートウェイ１１０は、データ・パケット３０４からサービス・アドレス３３１を入手し、そのサービス・アドレス３３１をサービス・マッピング・テーブル４５２に保存されているサービス・アドレスと比較する。サービス・ゲートウェイ１１０がサービス・マッピング・エントリ４６０との一致があると判定すると、サービス・ゲートウェイ１１０は、サービス・マッピング・エントリ４６０からサーバー・アドレス３２１を取得する。サービス・ゲートウェイ１１０は、サービス・アドレス３３１をサーバー・アドレス３２１によって置き換えることによって、データ・パケット３０４を変更する。サービス・ゲートウェイ１１０は、その変更されたデータ・パケット３０４をサーバー２００に送信する。
【００５６】
サーバー２００からデータ・パケット３０７を受信すると、サービス・ゲートウェイ１１０は、サービス・マッピング・テーブル４５２を使用してデータ・パケット３０７を処理する。サービス・ゲートウェイ１１０は、データ・パケット３０７からサーバー・アドレス３２１を入手する。サービス・ゲートウェイ１１０は、サーバー・アドレス３２１を、サービス・マッピング・テーブル４５２に保存されているサーバー・アドレスと比較する。サービス・ゲートウェイ１１０が、その入手したサービス・アドレス３３１がサービス・マッピング・エントリ４６０に一致していると判定すると、サービス・ゲートウェイ１１０は、サービス・マッピング・エントリ４６０からサービス・アドレス３３１を取得し、サーバー・アドレス３２１をサービス・アドレス３３１によって置き換えることによってデータ・パケット３０７を変更する。続いて、サービス・ゲートウェイ１１０は、その変更されたデータ・パケット３０７をホスト１００に送信する。
【００５７】
サービス・ゲートウェイ１１０は、ハッシュ法を使用して、サービス・アドレス３３１あるいはサーバー・アドレス３２１をサービス・マッピング・テーブル４５２と照合してもよい。サービス・マッピング・テーブル４５２は、ハッシュ関数（ＨａｓｈＦｕｎｃ）５７１を使用したハッシュ・テーブルを含む。サービス・マッピング・エントリ４６０は、ハッシュ値（ＨａｓｈＶａｌｕｅ）５８１に関連付けられている。
【００５８】
ハッシュ値５８１は、ハッシュ関数５７１をサービス・アドレス３３１に適用した時の結果を含む。ハッシュ値５８１は、ハッシュ関数５７１をサーバー・アドレス３２１に適用した時の結果を含んでもよい。
【００５９】
ハッシュ値５８１は、サービス・マッピング・テーブル４５２におけるサービス・マッピング・エントリ４６０のインデックスを含んでもよい。サービス・マッピング・エントリ４６０は、ハッシュ値５８１によってインデックスを付与された、サービス・マッピング・テーブル４５２内のひとつのエントリを占める。例えば、サービス・マッピング・テーブル４５２は、１〜１０００までのインデックスを持つ１０００個のエントリを含み、サービス・マッピング・エントリ４６０のインデックス番号は８９４である。別の例としては、サービス・マッピング・テーブル４５２は、１６個のエントリを含み、サービス・マッピング・エントリ４６０のインデックス番号は７である。
【００６０】
サービス・ゲートウェイ１１０は、ハッシュ関数５７１をサービス・アドレス３３１に適用してハッシュ値５８１を得る。サービス・ゲートウェイ１１０は、サービス・マッピング・テーブル４５２の中からハッシュ値５８１をインデックスに持つエントリを検索し、サービス・マッピング・エントリ４６０を探し出す、と仮定する。データ・パケット３０７については、サービス・ゲートウェイ１１０はハッシュ関数５７１をデータ・パケット３０７のサーバー・アドレス３２１に適用してハッシュ値５８１を得る。サービス・ゲートウェイ１１０は、サービス・マッピング・テーブル４５２の中からハッシュ値５８１をインデックスに持つエントリを検索し、サービス・マッピング・エントリ４６０を探し出す。
【００６１】
サービス・マッピング・エントリ４６０はハッシュ値５８１を含んでもよい。サービス・ゲートウェイ１１０がハッシュ関数５７１を適用してハッシュ値５８１を得た後、サービス・ゲートウェイ１１０はサービス・マッピング・テーブル４５２を検索し、ハッシュ値５８１に一致するインデックスを含むサービス・マッピング・エントリ４６０を探し出す。
【００６２】
ハッシュ関数５７１としては、以下の例があげられる。すなわち、巡回冗長検査（ＣＲＣ）チェックサム関数およびその他のチェックサム関数、ビット論理積（ＡＮＤ）、ビット論理和（ＯＲ）、ビット否定論理積（ＮＡＮＤ）やビット排他論理和（ＸＯＲ）などのビット演算子の組み合わせを利用したハッシュ関数、ＭＤ５・ハッシュ関数およびその他の暗号学的ハッシュ関数、ジェンキンス（Jenkins）ハッシュ関数およびその他の暗号学的でないハッシュ関数、サービス・ゲートウェイ１１０のＦＰＧＡや、ＡＳＩＣや、集積回路基板に実装されたハードウェアベースのハッシュ関数、他種のハッシュ関数あるは参照テーブル関数などがある。一般的に、そのようなハッシュ関数は単純な関数で、サービス・ゲートウェイ１１０によって迅速に計算可能である。
【００６３】
データ・パケット３０４は、ホスト１００に関連付けられたホスト・アドレス１０４を含む。サービス・ゲートウェイ１１０は、データ・パケット３０４からホスト・アドレス１０４を入手し、データ・パケット３０４を処理する際にその入手したホスト・アドレス１０４を使用する。
【００６４】
データ・パケット３０７はホスト・アドレス１０４を含む。サービス・ゲートウェイ１１０は、データ・パケット３０７からホスト・アドレス１０４を入手し、データ・パケット３０７を処理する際にその入手したホスト・アドレス１０４を使用する。
【００６５】
一般的に、マッピング・エントリ４６０は接続サービス会社もしくは接続サービス会社の管理者によって設定される。マッピング・エントリ４６０は、サーバー２００が利用できる時か、サーバー・アドレス３２１あるいはサービス・アドレス３３１が利用できる時に設定されてもよい。サーバー・アドレス３２１あるいはサービス・アドレス３３１は接続サービス会社によって設定され、利用可能となる。
【００６６】
このようなステートレス処理方法では、サービス・マッピング・テーブル４５２はサービス・ゲートウェイ１１０が処理するサービス・セッションの数には関連していない。サービス・マッピング・テーブル４５２の容量は、利用可能なサービス・アドレスおよびサーバー・アドレスの数に関連している。そのような容量は通常小さい。サービス・マッピング・テーブル４５２は数十か数千のエントリを持つ。
【００６７】
ステートレス処理方法の利点としては、サービス・マッピング・テーブル４５２のリソース要件が低いこと、計算の必要性が最小限か無いこと、サービス・ポリシー４７１を適用するための要件が無いことがあげられる。ステートレス処理方法は、サービス・ゲートウェイ１１０が短期間に大量のサービス・セッション要求を受信する時やサービス要求の負荷が大きい時、ステートフル処理方法より優先される。ステートレス処理方法は、新たなセッションに対するセッション・テーブルの記憶容量が残り少なくなった時、例えばサービス・セッション・テーブル４１２の１０％より低くなった時にも優先される。ステートレス処理方法を使用することによってサービス・ゲートウェイ１１０がリソースの過負荷状態になることが防げる、よって、負荷のかかる状況でのホスト１００に対するサービスの質を維持できる。
【００６８】
また一方、ステートレス処理方法は、セキュリティ・ゲートウェイ１１０が安全性ポリシー４８２を適用していないので、安全性上の問題により、ステートフル処理方法ほど望ましくない。同様に、セキュリティ・ゲートウェイ１１０は、サーバー２００の安全性、データ・ネットワーク１５３の安全性、データ・ネットワーク１５３のトラヒック条件およびホスト１００に提供されるサービスの質に影響を及ぼすサービス・ポリシー４７１におけるその他のいかなるポリシーも適用していない。また、ステートフル処理方法は、サービス・ゲートウェイ１１０が複数のサーバー・アドレスからサーバー・アドレス３２１を選択する時、ステートレス処理方法より優先される。例えば、接続サービス会社は、複数のサーバーが負荷分散的にサービス・アドレス３３１を扱えるようにその複数のサーバーを設定してもよい。接続サービス会社はサービス・アドレス３３１のためのバックアップサーバーを設定してもよい。
【００６９】
典型的な運用プランによれば、接続サービス会社は、最初のサービス・アドレスにはステートフル処理方法を使い、異なる第２のサービス・アドレスにはステートレス処理方法を使ってもよい。接続サービス会社は、最初のサービスが著しいトラヒックや用途を持つとは予想していない。接続サービス会社は、第２のサービスが安全性には問題ないと予想してしてもよい。実際には、第１のサービスは予期せぬ状況によりトラヒックの突然の急上昇に直面するかもしれないし、第２のサービスはセキュリティ攻撃を被るかもしれない。以下に説明する本発明によるハイブリッド処理方法を使用することによって、接続サービス会社は、ステートフル処理方法とステートレス処理方法を組み合わせてもよい。すなわち、例えば、負荷が小さい時は第１のサービスにステートフル処理方法を使用し、その後、負荷が大きくなるとステートレス処理方法に変更してもよい。また、接続サービス会社は、以下のようにステートフル処理方法とステートレス処理方法を組み合わせるハイブリッド処理方法を運用してもよい。すなわち、例えば、通常の状況下で第２のサービスにステートレス処理方法を使用し、この第２のサービスにセキュリティ警告が検知された場合は即座にステートフル処理方法に切り替えてもよい。
【００７０】
以下、本発明の異なる多様な実施形態を図４乃至図１１を参照して説明する。
【００７１】
図４は、本発明に係るステートフル処理方法とステートレス処理方法を組み合わせてハイブリッド・ステートレス処理方法を実施するサービス・ゲートウェイ１１０の実施形態を示す。図８は、本発明に係るハイブリッド・ステートレス処理方法のある実施形態を示すフローチャートである。本実形態において、サービス・ゲートウェイ１１０のコンピュータ可読媒体１１４はコンピュータ可読プログラム・コードを記憶し、このコンピュータ可読プログラム・コードは、プロセッサ１１３によって実行される時、本発明の種々の実施形態を実装する。サービス・ゲートウェイ１１０は、サービス・セッション・テーブル４１２およびサービス・マッピングを記憶部４００に保持する。ハイブリッド・ステートレス処理方法の本実施形態において、サービス・ゲートウェイ１１０は、受信したデータ・パケット３０４のサービス・アドレスがサービス・セッション・テーブル４１２に保存されているサービス・アドレスのいずれにも一致しない時、サービス・マッピング・テーブル４５２を使用してステートレス方法でその受信したデータ・パケット３０４を処理する。
【００７２】
サービス・ゲートウェイ１１０は、サーバー２００とサーバー２４０とを接続する。サーバー２００はサーバー・アドレス３２１に関連付けられている。サーバー２４０はサーバー・アドレス３２４に関連付けられている。サービス・ゲートウェイ１１０はサービス・アドレス３３１とサービス・アドレス３３４に関連付けられている。
【００７３】
ある実施の形態では、サービス・セッション・テーブル４１２は、サービス・アドレス３３１とサーバー・アドレス３２１とを、両者を関連付けて保存するセッション・エントリ４２０を含む。サービス・マッピング・テーブル４５２はサービス・アドレス３３４とサーバー・アドレス３２４とを、両者を関連付けて保存するマッピング・エントリ４６２を含む。
【００７４】
この実施態様では、サーバー２００はサーバー２４０と同じであってもよい。サーバー・アドレス３２１はサーバー・アドレス３２４と同じであってもよい。サービス・アドレス３３１はサービス・アドレス３３４と同じであってもよい。
【００７５】
図４と図８の両方を参照すると、サービス・ゲートウェイ１１０は、ホスト１００からデータ・パケット３０４を受信する（８０１）。サービス・ゲートウェイ１１０は、データ・パケット３０４からサービス・アドレス３３６を入手する（８０２）。サービス・ゲートウェイ１１０は、データ・パケットのサービス・アドレス３３６を、サービス・セッション・テーブル４１２に保存されているサービス・アドレスと比較する（８０３）。
【００７６】
ある実施の形態では、サービス・ゲートウェイ１１０は、サービス・アドレス３３６がセッション・エントリ４２０のサービス・アドレス３３１に一致しているというセッション・エントリ４２０における一致結果を探し出す（８０４）。この一致結果検出に応じて、サービス・ゲートウェイ１１０は、データ・パケット３０４を、セッション・エントリ４２０に保存されている情報に基づいて、図２を参照して上記説明した方法などのステートフル処理方法を使用して処理する（８０５）。
【００７７】
ある実施の形態では、サービス・ゲートウェイ１１０は、サービス・セッション・テーブル４１２において一致結果を得ない（８０４）。それに応じて、サービス・ゲートウェイ１１０は、データ・パケット３０４のサービス・アドレス３３６を、サービス・マッピング・テーブル４５２のサービス・アドレスと比較する（８０６）。ある実施の形態では、サービス・ゲートウェイ１１０は、サービス・アドレス３３６がマッピング・エントリ４６２のサービス・アドレス３２４に一致しているというサービス・マッピング・テーブル４５２のマッピング・エントリ４６２における一致結果を探し出す（８０７）。サービス・ゲートウェイ１１０は、データ・パケット３０４を、マッピング・エントリ４６２に保存されている情報に基づいて、図３を参照して上記説明した方法などのステートレス処理方法を使用して処理する（８０８）。
【００７８】
ある実施の形態では、サービス・ゲートウェイ１１０はサーバー２００からデータ・パケット３０７を受信する（８３０）。サービス・ゲートウェイ１１０はデータ・パケット３０７からサーバー・アドレス３２１を取り出す（８３１）。サービス・ゲートウェイ１１０は、データ・パケット３０７のサーバー・アドレス３２１をサービス・セッション・テーブル４１２に保存されているサーバー・アドレスと比較する（８３２）。ある実施の形態では、サービス・ゲートウェイ１１０は、セッション・エントリ４２０のサーバー・アドレス３２１と一致するパケット・データ３０７のサーバー・アドレス３２１に一致する結果が、セッション・エントリ４２０の中にあるかを探し出す（８０３）。サービス・ゲートウェイ１１０は、データ・パケット３０８を、図２を参照して上記説明した方法などのステートフル処理方法を使用して処理する（８０５）。
【００７９】
ある実施の形態では、サービス・ゲートウェイ１１０はサーバー２４０からデータ・パケット３０８を受信する（８３０）。サービス・ゲートウェイ１１０はデータ・パケット３０８からサーバー・アドレス３２４を取り出す（８３２）。サービス・ゲートウェイ１１０は、データ・パケット３０８のサーバー・アドレス３２４を、サービス・セッション・テーブル４１２に保存されているサーバー・アドレスと比較する（８３２）。ある実施の形態では、サービス・ゲートウェイ１１０は一致結果を得ない（８３３）。それに応じて、サービス・ゲートウェイ１１０は、データ・パケット３０８のサーバー・アドレス３２４を、サービス・マッピング・テーブル４５２に保存されているサーバー・アドレスと比較し（８３４）、データ・パケット３０８のサーバー・アドレス３２４がマッピング・エントリ４６２のサーバー・アドレス３２４に一致しているというマッピング・エントリ４６２における一致結果を探し出す（８０７）。ある実施の形態では、サービス・ゲートウェイ１１０は、データ・パケット３０８を、マッピング・エントリ４６２に保存されている情報に基づいて、ステートレス処理方法を使用して変更する（８０８）。サービス・ゲートウェイ１１０は、その変更されたデータ・パケット３０８を送信する。
【００８０】
図５は、本発明係るステートフル処理方法とステートレス処理方法を組み合わせてハイブリッド・ステートフル処理方法を実施するサービス・ゲートウェイ１１０の実施形態を示す図である。図９は、本発明に係るハイブリッド・ステートフル処理方法のある実施形態を示すフローチャートである。図５と図９の両方を参照すると、サービス・ゲートウェイ１１０は、ホスト１００からデータ・パケット３０４を受信する（９０１）。ある実施の形態では、サービス・ゲートウェイ１１０は、データ・パケット３０４がホスト１００からのサービス要求３０１を含むと判定する（９０２）。それに応じて、サービス・ゲートウェイ１１０は、ステートフル処理方法をサービス要求３０１に適用する（９０３）。サービス・ゲートウェイ１１０はステートフル処理方法を実施する。このステートフル処理方法は、図２を参照して上記説明したように、サービス・ポリシー４７１をセッション要求３０１に適用することと、サービス要求３０１のサービス・アドレス３３１とサービス・ポリシー４７１のサーバー・アドレス３２１を使用してセッション・エントリ４２０を作成することを含む。
【００８１】
ある実施の形態では、サービス・ゲートウェイ１１０は、データ・パケット３０４がサービス要求を含まないと判定する（９０２）。それに応じて、サービス・ゲートウェイ１１０はデータ・パケット３０４を、図２を参照して上記説明したように、ハイブリッド・ステートレス処理方法を使用して処理する。
【００８２】
ある実施の形態では、サービス・ゲートウェイ１１０はサーバー２００からデータ・パケット３０７を受信する（９０１）。ハイブリッド・ステートフル処理方法の本実施形態において、サービス・ゲートウェイ１１０は、図４を参照して上記説明したように、ハイブリッド・ステートレス処理方法をデータ・パケット３０７に適用する（９０４）。
【００８３】
図６と図１０は、それぞれ本発明に係るサービス・ゲートウェイの実施形態および方法を示す。図１０に示す方法は、ハイブリッド・ステートレス条件が満たされた場合に、ハイブリッド・ステートフル処理方法からハイブリッド・ステートレス処理方法に変更する方法である。図６と図１０の両方を参照すると、サービス・ゲートウェイ１１０はハイブリッド・ステートフル処理方法を使用している（１００１）。サービス・ゲートウェイ１１０はハイブリッド・ステートレス条件８１０を維持する。サービス・ゲートウェイ１１０は、ハイブリッド・ステートレス条件８１０が満たされているか否かを確認する（１００２）。ハイブリッド・ステートレス条件８１０が満たされているとの判定に応答して（１００３）、サービス・ゲートウェイ１１０はハイブリッド・ステートレス処理方法に変更する（１００４）。サービス・ゲートウェイ１１０は、次に受信したデータ・パケットを、図４と図８を参照して上記説明したように、ハイブリッド・ステートレス処理方法を使用して処理する。ハイブリッド・ステートレス条件８１０が満たされていないとの判定に応答して（１００３）、サービス・ゲートウェイ１１０は、図５と図９を参照して上記説明したように、ハイブリッド・ステートフル処理方法の使用を継続する（１００５）。
【００８４】
ある実施の形態では、ハイブリッド・ステートレス条件８１０はセッション・レート８１１を含む。例えば、セッション・レート８１１とは、毎秒１０，０００のセッション、毎秒５０００のアクティブなセッション、１０ミリ秒あたり１００のセッションのことである。
【００８５】
ある実施の形態では、サービス・ゲートウェイ１１０はセッション・レート８２１を計算する。ある実施の形態では、セッション・レート８２１は、ある期間にわたってアクティブなホスト側のサービス・セッションのカウントに基づいて計算される。ある実施の形態では、サービス・セッションは、そのセッション・サービスがサービス・セッション・テーブル４１２のエントリに関連付けられている時、アクティブとなる。ある実施の形態では、セッション・レート８２１は、ある期間にわたって受信したサービス要求のカウントと受信したサービス終了要求のカウントとの差を計算して得られる。ある実施の形態では、セッション・レート８２１は、ある期間中のサービス要求のカウントを計算して得られる。
【００８６】
ある実施の形態では、サービス・ゲートウェイ１１０はセッション・レート８２１を所定の時間内を単位に計算する。ここで、所定時間内とは、毎秒、２５０ミリ秒に一回、３秒に一回、１０秒に一回である。ある実施の形態では、サービス・ゲートウェイ１１０は、様々なタイミングでセッション・レート８２１を計算する。例えば、サービス・ゲートウェイ１１０は、ホストからのデータ・パケットを受信する時、サービス要求を受信する時、サービス終了要求を受信する時、サーバー２００からデータ・パケットを受信する時などのタイミングで、セッション・レート８２１を計算する。サービス・ゲートウェイ１１０は、セッション・レート８２１をハイブリッド・ステートレス条件８１０のセッション・レート８１１と比較する。ある実施の形態では、セッション・レート８２１がセッション・レート８１１以上になった時に、サービス・ゲートウェイ１１０はハイブリッド・ステートレス条件８１０が満たされたと判定する。
【００８７】
ある実施の形態では、ハイブリッド・ステートレス条件８１０はセッション・テーブル利用８１４を含む。セッション・テーブル利用は、セッション・エントリを保存しているセッション・テーブル容量の何パーセントであるかを示すパラメーターである。セッション・テーブル４１２に保存されているセッション・エントリのカウントがセッション・テーブル利用８１４を上回れば、ハイブリッド・ステートレス条件８１０は満たされる。例えば、セッション・テーブル利用８１４は、９０％、８５％、９５％である。サービス・ゲートウェイ１１０は、セッション・テーブル４１２に保存されているセッション・エントリのカウントを計算することによって、時々セッション・テーブル利用８２４を計算する。ある実施の形態では、サービス・ゲートウェイ１１０は、毎秒、２０ミリ秒に一回、５００ミリ秒に一回、２秒に一回などのように定期的にセッション・テーブル利用８２４を計算する。ある実施の形態では、サービス・ゲートウェイ１１０は、サービス・ゲートウェイ１１０がサービス要求か、サービス終了要求か、データ・パケットを処理する時、セッション・テーブル利用８２４を計算する。
【００８８】
サービス・ゲートウェイ１１０は、セッション・テーブル利用８２４をハイブリッド・ステートレス条件８１０のセッション・テーブル利用８１４と比較する。ある実施の形態では、セッション・テーブル利用８２４がセッション・テーブル利用８１４以上になった時に、サービス・ゲートウェイ１１０はハイブリッド・ステートレス条件８１０が満たされたと判定する。
【００８９】
ある実施の形態では、ハイブリッド・ステートレス条件８１０はさらに期間８１６（継続時間８１６）を含む。ここで、期間８１６とは、ハイブリッド・ステートレス条件８１０が満たされるためにハイブリッド・ステートレス条件８１０が満たされていると見なされなければならない最小限の継続時間をいう。期間８１６の例としては、１２０秒、３０秒、５秒があげられる。サービス・ゲートウェイ１１０は、上記したように、時々ハイブリッド・ステートレス条件８１０が満たされているか否かを確認する。ある実施の形態では、サービス・ゲートウェイ１１０は、さらにメモリに記憶される期間８２６を含む。まず最初に、サービス・ゲートウェイ１１０は、値「０」を期間８２６にセットする。時々、サービス・ゲートウェイ１１０は、ハイブリッド・ステートレス条件８１０が満たされているか否かを確認する。ハイブリッド・ステートレス条件８１０が満たされている場合は、サービス・ゲートウェイ１１０は、前回ハイブリッド・ステートレス条件８１０を確認してから経過した時間だけ期間８２６を増やす。ある実施の形態では、期間８２６の変更後、サービス・ゲートウェイ１１０は、期間８２６が期間８１６より長いか否かを確認する。期間８２６が期間８１６より長い場合は、サービス・ゲートウェイ１１０はハイブリッド・ステートレス条件８１０が満たされていると判定する。続いて、サービス・ゲートウェイ１１０は、続いて受信したデータ・パケットでのハイブリッド・ステートレス方法を使用していくことに変更する。
【００９０】
ある実施の形態では、サービス・ゲートウェイ１１０は、ハイブリッド・ステートレス条件８１０が満たされていないと判断する。それに応じて、サービス・ゲートウェイ１１０は期間８２６を値「０」に変更する。
【００９１】
ある実施の形態では、サービス・ゲートウェイ１１０は、ハイブリッド・ステートレス条件８１０をオペレーターあるいは管理者１３０から受け取る。管理者１３０は、ハイブリッド・ステートレス条件８１０をサービス・ゲートウェイ１１０にセットアップする人間オペレーターである場合がある。また、管理者１３０は、ハイブリッド・ステートレス条件８１０をサービス・ゲートウェイ１１０へ送信するネットワーク管理システムである場合もある。管理者１３０はハイブリッド・ステートレス条件８１０を記憶する記憶媒体を含んでもよい。サービス・ゲートウェイ１１０は管理者１３０の記憶装置からハイブリッド・ステートレス条件８１０を取得する。
【００９２】
図７と図１１は、それぞれ本発明に係るサービス・ゲートウェイの実施形態および方法を示す。図１１に示す方法は、ハイブリッド・ステートフル条件が満たされた場合に、ハイブリッド・ステートレス処理方法からハイブリッド・ステートフル処理方法に変更する方法である。図７と図１１の両方を参照すると、ある実施の形態では、サービス・ゲートウェイ１１０はハイブリッド・ステートレス処理方法を使用している（１１０１）。サービス・ゲートウェイ１１０はハイブリッド・ステートフル条件９１０を維持する。サービス・ゲートウェイ１１０は、ハイブリッド・ステートフル条件９１０が満たされているか否かを確認する（１１０２）。ハイブリッド・ステートフル条件９１０が満たされているとの判定に応答して（１１０３）、サービス・ゲートウェイ１１０はハイブリッド・ステートフル処理方法に変更し（１１０４）、次のデータ・パケットを、図５と図９を参照して上記説明したように、ハイブリッド・ステートフル処理方法を使用して処理する。ハイブリッド・ステートフル条件９１０が満たされていないとの判定に応答して（１１０３）、サービス・ゲートウェイ１１０は、ハイブリッド・ステートレス処理方法の使用を継続し（１１０５）、図４と図８を参照して上記説明したように、ハイブリッド・ステートレス処理方法を使用して次のデータ・パケットを処理する。
【００９３】
ある実施の形態では、ハイブリッド・ステートフル条件９１０はセッション・レート９１１を含む。例えば、セッション・レート９１１とは、毎秒１，０００のセッション、毎秒５００のアクティブなセッション、ミリ秒あたり１０のセッションのことである。
【００９４】
ある実施の形態では、サービス・ゲートウェイ１１０はセッション・レート９２１を計算する。ある実施の形態では、セッション・レート９２１は、ある期間にわたって受信したサービス要求のカウントと受信したサービス終了要求のカウントとの差を計算して得られる。ある実施の形態では、セッション・レート８２１は、ある期間中のサービス要求のカウントを計算して得られる。ある実施の形態では、サービス・ゲートウェイ１１０は、ホストから受信したパケット・データが、ハイブリッド・ステートレス処理方法をその受信したデータ・パケットに適用する前のサービス終了要求を含むか否かを判定する。ある実施の形態では、サービス・ゲートウェイ１１０は、ホストあるいはサーバーから受信したパケット・データが、ハイブリッド・ステートレス処理方法をその受信したデータ・パケットに適用する前のサービス終了要求を含むか否かを判定する。
【００９５】
ある実施の形態では、サービス・ゲートウェイ１１０はセッション・レート９２１を所定の時間内を単位に計算する。ここで、所定時間内とは、毎秒、１００ミリ秒に一回、３秒に一回、５秒に一回などである。ある実施の形態では、サービス・ゲートウェイ１１０は、様々なタイミングでセッション・レート９２１を計算する。例えば、サービス・ゲートウェイ１１０は、ホストからのデータ・パケットを受信する時、サービス要求を受信する時、サービス終了要求を受信する時、サーバー２００からデータ・パケットを受信する時などのタイミングで、セッション・レート９２１を計算する。サービス・ゲートウェイ１１０は、セッション・レート９２１をセッション・レート９１１と比較する。ある実施の形態では、セッション・レート９２１がセッション・レート９１１以下になった時に、サービス・ゲートウェイ１１０はハイブリッド・ステートフル条件９１０が満たされたと判定する。
【００９６】
ある実施の形態では、ハイブリッド・ステートフル条件９１０はセッション・テーブル利用９１４を含む。セッション・テーブル４１２に保存されているカウントがセッション・テーブル利用９１４を上回らなければ、ハイブリッド・ステートフル条件９１０は満たされる。例えば、セッション・テーブル利用９１４は、６０％、７５％、４５％などである。サービス・ゲートウェイ１１０は、セッション・テーブル４１２に保存されているセッション・エントリのカウントを計算することによって、時々セッション・テーブル利用９２４を計算する。ある実施の形態では、サービス・ゲートウェイ１１０は、毎秒、２０ミリ秒に一回、５００ミリ秒に一回、２秒に一回などのように定期的にセッション・テーブル利用９２４を計算する。ある実施の形態では、サービス・ゲートウェイ１１０は、サービス・ゲートウェイ１１０がサービス要求か、サービス終了要求か、データ・パケットを処理する時、セッション・テーブル利用９２４を計算する。
【００９７】
サービス・ゲートウェイ１１０は、セッション・テーブル利用９２４をハイブリッド・ステートフル条件９１０のセッション・テーブル利用９１４と比較する。ある実施の形態では、セッション・テーブル利用９２４がセッション・テーブル利用９１４より小さくなった時に、サービス・ゲートウェイ１１０はハイブリッド・ステートフル条件９１０が満たされたと判定する。
【００９８】
ある実施の形態では、ハイブリッド・ステートフル条件９１０はさらに期間９１６を含む。ここで、期間９１６とは、ハイブリッド・ステートフル条件９１０が満たされるためにハイブリッド・ステートフル条件９１０が満たされていると見なされなければならない最小限の継続時間をいう。期間９１６の例としては、１００秒、４０秒、５秒などがあげられる。サービス・ゲートウェイ１１０は、上記したように、時々ハイブリッド・ステートフル条件９１０が満たされているか否かを確認する。ある実施の形態では、サービス・ゲートウェイ１１０は、さらにメモリに記憶される期間９２６を含む。まず最初に、サービス・ゲートウェイ１１０は、値「０」を期間９２６にセットする。必要に応じて時々、サービス・ゲートウェイ１１０は、ハイブリッド・ステートフル条件９１０が満たされているか否かを確認する。ハイブリッド・ステートフル条件９１０が満たされている場合は、サービス・ゲートウェイ１１０は、前回ハイブリッド・ステートフル条件９１０を確認してから経過した時間だけ期間９２６を増やす。ある実施の形態では、期間９２６の変更後、サービス・ゲートウェイ１１０は、期間９２６が期間９１６より長いか否かを確認する。期間９２６が期間９１６より長い場合は、サービス・ゲートウェイ１１０はハイブリッド・ステートフル条件９１０が満たされていると判定する。続いて、サービス・ゲートウェイ１１０は、続いて受信したデータ・パケットでのハイブリッド・ステートフル方法を使用していくことに変更する。
【００９９】
ある実施の形態では、サービス・ゲートウェイ１１０は、ハイブリッド・ステートフル条件９１０をオペレーターあるいは管理者１３０から受け取る。管理者１３０は、ハイブリッド・ステートフル条件９１０をサービス・ゲートウェイ１１０にセットアップする人間オペレーターである場合がある。また、管理者１３０は、ハイブリッド・ステートフル条件９１０をサービス・ゲートウェイ１１０へ送信するネットワーク管理システムである場合もある。管理者１３０はハイブリッド・ステートフル条件９１０を記憶する記憶媒体を含んでもよい。サービス・ゲートウェイ１１０は管理者１３０の記憶装置からハイブリッド・ステートレス条件９１０を取得する。
【０１００】
図８に戻り、図８は、サービス・ゲートウェイ１１０がデータ・パケットをステートフル処理方法を使用して処理している際に（８０５）、サービス・ゲートウェイ１１０がハイブリッド・ステートレス条件８１０が満たされているか否かを確認する様子を示している（図１０を参照）。図８は、サービス・ゲートウェイ１１０がデータ・パケットをステートレス処理方法を使用して処理している際に（８０８）、サービス・ゲートウェイ１１０がハイブリッド・ステートフル条件９１０が満たされているか否かを確認する様子も示している（図１１を参照）。しかしながら、図１０および図１１における参照符号ＣとＤは、限定的なステップの順番を意図して表記されたものではない。条件８１０もしくは９１０の確認は、図４と図８を参照して上記説明したように、データ・パケットの処理と同時に行われてもよい。
【０１０１】
図９に戻り、図９は、サービス・ゲートウェイ１１０がデータ・パケットをステートフル処理方法を使用して処理している際に（９０３）、サービス・ゲートウェイ１１０がハイブリッド・ステートレス条件８１０が満たされているか否かを確認する様子を示している（図１０を参照）。図９は、以下の様子も示す。すなわち、図９では、サービス・ゲートウェイ１１０がデータ・パケットをステートレス処理方法を使用して処理している際に（９０４）、図４と図８に示すようなハイブリッド・ステートの処理方法における処理に応じて、サービス・ゲートウェイ１１０が、ハイブリッド・ステートレス条件８１０かハイブリッド・ステートフル条件９１０かのどちらか一方が満たされているか否かを確認する（図１０と図１１を参照）。しかしながら、図１０および図１１における参照符号（ＣやＤなど）は、限定的なステップの順番を意図して表記されたものではない。条件８１０もしくは９１０の確認は、図５と図９を参照して上記説明したように、データ・パケットの処理と同時に行われてもよい。
【０１０２】
以上、本発明について、上記の実施の形態をもとに説明した。これらの実施の形態は例示であり、いろいろな変形例が可能なこと、またそうした変形例も本発明の精神と範囲にあることは当業者に理解されるところである。したがって、さらなる幾多の変形例も以下に添付する請求項の精神と範囲から逸脱することなく当業者によってなされうる。
【図１】
0005913609.tif 000002
【図２】
0005913609.tif 000003
【図３】
0005913609.tif 000004
【図４】
0005913609.tif 000005
【図５】
0005913609.tif 000006
【図６】
0005913609.tif 000007
【図７】
0005913609.tif 000008
【図８】
0005913609.tif 000009
【図９】
0005913609.tif 000010
【図１０】
0005913609.tif 000011
【図１１】
0005913609.tif 000012