(57)【特許請求の範囲】
【請求項１】
スケジューラにより、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するステップと、
前記スケジューラにより、前記複数のサービスの前記スケジューリング情報に従ってスケジューリング・ロジックを生成するステップであって、前記スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、前記各サービスのスケジューリング点は前記スケジューラが前記サービスをスケジュールする論理的な制御点であるステップと、
前記スケジューラにより、前記複数の処理モジュールの前記実行シーケンスに従って、前記複数の処理モジュールを起動して前記ネットワーク・デバイスが受信したパケットを処理し、前記スケジューリング・ロジックに含まれる前記マッピング関係に従って各スケジューリング点で対応するサービスを起動するステップと、
を含み、
前記スケジューリング情報は前記複数のサービスのサービス・ルールと前記複数のサービスの間の依存関係とを含み、
前記スケジューラにより、前記複数のサービスの前記スケジューリング情報に従ってスケジューリング・ロジックを生成するステップは、
前記スケジューラにより、前記複数のサービスの前記サービス・ルールに含まれる条件に従って、前記条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールを決定し、前記Ｎ個の処理モジュールの２つの処理モジュールの間および／または前記Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定するステップ
を含む、
サービス・スケジューリング方法。
【請求項２】
前記スケジューラにより、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するステップは、
前記スケジューラにより、前記ネットワーク・デバイスが送信した構成ファイルを受信し、前記構成ファイルを解析して前記複数のサービスの前記スケジューリング情報を取得するステップ
を含む、請求項１に記載の方法。
【請求項３】
前記スケジューラにより、前記複数のサービスの前記スケジューリング情報に従ってスケジューリング・ロジックを生成するステップはさらに、
各スケジューリング点と前記スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するステップであって、前記ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であるステップと、
前記サービス間の前記依存関係に従って前記Ｎ個の処理モジュールの実行シーケンスを決定するステップであって、前記スケジューリング・ロジックは前記Ｎ個の処理モジュールの前記実行シーケンスと、各スケジューリング点と前記スケジューリング点で起動する必要があるサービスの間の前記マッピング関係を含み、各スケジューリング点は前記Ｎ個の処理モジュールの前記処理モジュールの間および／または前記Ｎ個の処理モジュールの各処理モジュール内部にあるステップと、
を含む、請求項１または２に記載の方法。
【請求項４】
前記複数の処理モジュールの前記実行シーケンスに従って、前記複数の処理モジュールの各処理モジュールを連続的に起動して前記ネットワーク・デバイスが受信したパケットを処理するステップは、
前記Ｎ個の処理モジュールの前記決定された実行シーケンスに従って、対応する処理モジュールを連続的に起動して前記ネットワーク・デバイスが受信した前記パケットを処理してＮ個の処理結果を取得するステップ
を含む、請求項３に記載の方法。
【請求項５】
前記スケジューリング・ロジックに含まれる前記マッピング関係に従って各スケジューリング点で対応するサービスを起動するステップは、
前記スケジューリングに対応する全てのサービス点を、前記生成されたマッピング関係に従って決定するステップと、
前記パケットの処理結果のうち少なくとも１つに従って、全ての前記サービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、前記スケジューリング条件を満たすサービスを前記スケジューリング点でスケジュールする必要があるサービスとして決定するステップと、
スケジュールする必要がある複数のサービスが存在する場合に、スケジュールする必要があるサービスの優先度の降順に従って、スケジュールする必要があるサービスを前記スケジューリング点で連続的に起動し、スケジュールする必要があるサービスが１つしかない場合には、スケジュールする必要がある前記サービスを前記スケジューリング点で直接起動するステップと、
を含む、請求項３または４に記載の方法。
【請求項６】
前記Ｎ個の処理モジュールのうちＰ個の処理モジュールによる前記ネットワーク・デバイスが受信した前記パケットに対する処理の結果に従って、前記Ｎ個の処理モジュールのうち前記Ｐ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、前記Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または前記Ｎ−Ｐ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要があるスケジューリング点を再決定するステップであって、Ｐは１より大きい正の整数でありＰはＮより小さいステップをさらに含む、請求項４または５に記載の方法。
【請求項７】
ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するように構成された取得モジュールと、
前記取得モジュールが取得した前記スケジューリング情報に従ってスケジューリング・ロジックを生成するように構成されたスケジューリング・ロジック生成モジュールであって、前記スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、前記各サービスのスケジューリング点は、前記サービス・スケジューリング装置が前記サービスをスケジュールする論理的な制御点である、スケジューリング・ロジック生成モジュールと、
前記複数の処理モジュールの前記実行シーケンスに従って、前記複数の処理モジュールを起動して前記ネットワーク・デバイスが受信したパケットを処理し、前記スケジューリング・ロジックに含まれる前記マッピング関係に従って各スケジューリング点で対応するサービスを起動するように構成されたスケジューリング・モジュールと、
を備え、
前記スケジューリング情報は前記複数のサービスのサービス・ルールと前記複数のサービスの間の依存関係とを含み、
前記スケジューリング・ロジック生成モジュールは、前記複数のサービスの前記サービス・ルールに含まれる条件に従って、前記条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールと、前記Ｎ個の処理モジュールの２つの処理モジュールの間および／または前記Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定するように構成されたマッピング・ユニットを備える、
サービス・スケジューリング装置。
【請求項８】
前記取得モジュールは特に、前記ネットワーク・デバイスが送信した構成ファイルを受信し、前記構成ファイルを解析して前記複数のサービスの前記スケジューリング情報を取得するように構成された、請求項７に記載のサービス・スケジューリング装置。
【請求項９】
前記マッピング・ユニットは、各スケジューリング点と前記スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するようにさらに構成され、前記ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であり、
前記スケジューリング・ロジック生成モジュールは、
前記Ｎ個の処理モジュールの各処理モジュールの実行シーケンスを前記サービス間の前記依存関係に従って決定するように構成されたソート・ユニットであって、前記スケジューリング・ロジックは前記Ｎ個の処理モジュールの前記実行シーケンスと、各スケジューリング点と前記スケジューリング点で起動する必要があるサービスの間の前記マッピング関係を含み、各スケジューリング点は前記Ｎ個の処理モジュールの前記処理モジュールの間および／または前記Ｎ個の処理モジュールの各処理モジュール内部にある、ソート・ユニット、
をさらに備える、請求項７または８に記載のサービス・スケジューリング装置。
【請求項１０】
前記スケジューリング・モジュールは特に、前記Ｎ個の処理モジュールの前記決定された実行シーケンスに従って、前記複数の処理モジュールの各処理モジュールを連続的に起動して前記ネットワーク・デバイスが受信した前記パケットを処理してＮ個の処理結果を取得するように構成される、請求項９に記載のサービス・スケジューリング装置。
【請求項１１】
前記スケジューリング・モジュールは特に、前記マッピング・ユニットが決定した各スケジューリング点で、前記スケジューリングに対応する全てのサービス点を、前記生成されたマッピング関係に従って決定し、前記パケットの処理結果のうち少なくとも１つに従って、全ての前記サービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、前記スケジューリング条件を満たすサービスを前記スケジューリング点でスケジュールする必要があるサービスとして決定し、スケジュールする必要がある複数のサービスが存在する場合に、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、スケジュールする必要があるサービスを前記スケジューリング点で連続的に起動し、スケジュールする必要があるサービスが１つしかない場合には、スケジュールする必要がある前記サービスを前記スケジューリング点で直接起動するように構成された、請求項９または１０に記載のサービス・スケジューリング装置。
【請求項１２】
前記Ｎ個の処理モジュールのうちＰ個の処理モジュールによる前記ネットワーク・デバイスが受信した前記パケットに対する処理の結果に従って、前記Ｎ個の処理モジュールのうち前記Ｐ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、前記Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または前記Ｎ−Ｐ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要があるスケジューリング点を再決定するように構成された調節モジュールであって、Ｐは１より大きい正の整数でありＰはＮより小さい、調節モジュール
をさらに備える、請求項１０または１１に記載のサービス・スケジューリング装置。
【請求項１３】
トランシーバ・モジュール、スケジューラ、および複数の処理モジュールを備えたネットワーク・デバイスであって、
前記トランシーバ・モジュールは、パケットと前記ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を受信するように構成され、
前記スケジューラは、前記複数のサービスの前記スケジューリング情報に従ってスケジューリング・ロジックを生成するように構成され、前記スケジューリング・ロジックは、前記トランシーバ・モジュールが受信したパケットを処理する複数の処理モジュールの実行シーケンスと各サービスと各サービスのスケジューリング点の間のマッピング関係を含み、前記各サービスのスケジューリング点は前記スケジューラが前記サービスをスケジュールする論理的な制御点であり、
前記スケジューラはさらに、前記複数の処理モジュールの前記実行シーケンスに従って、前記複数の処理モジュールを起動して前記トランシーバ・モジュールが受信した前記ネットワーク・パケットを処理し、前記スケジューリング・ロジックに含まれる前記マッピング関係に従って各スケジューリング点で対応するサービスを起動するように構成される、
前記スケジューリング情報は前記複数のサービスのサービス・ルールと前記複数のサービスの間の依存関係とを含み、
前記スケジューラは特に、前記複数のサービスの前記サービス・ルールに含まれる条件に従って、前記条件が満たされているかどうかを判定するために必要なＮ個の処理モジュール、および、前記Ｎ個の処理モジュールの２つの処理モジュールの間および／または前記Ｎ個の処理モジュールの各処理モジュールの内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定するように構成される、
ネットワーク・デバイス。
【請求項１４】
前記トランシーバ・モジュールは特に、前記ネットワーク・デバイスが送信した構成ファイルを受信し、前記構成ファイルを解析して各サービスの前記スケジューリング情報を取得するように構成された、請求項１３に記載のネットワーク・デバイス。
【請求項１５】
前記スケジューラはさらに、各スケジューリング点と前記スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成し、前記Ｎ個の処理モジュールの実行シーケンスを前記サービス間の前記依存関係に従って決定するように構成され、前記スケジューリング・ロジックは、Ｎ個の処理モジュールの実行シーケンスおよびサービスをスケジュールする必要がある各スケジューリング点と前記スケジューリング点で起動する必要があるサービスの間のマッピング関係を含み、各スケジューリング点は前記Ｎ個の処理モジュールの処理モジュールの間および／または前記Ｎ個の処理モジュールの各処理モジュール内部にある、
請求項１３または１４に記載のネットワーク・デバイス。
【請求項１６】
前記スケジューラは特に、決定された各スケジューリング点で、前記スケジューリングに対応する全てのサービス点を、前記生成されたマッピング関係に従って決定し、少なくとも１つのパケットの処理結果に従って、全ての前記サービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、前記スケジューリング条件を満たすサービスを前記スケジューリング点でスケジュールする必要があるサービスとして決定し、スケジュールする必要がある複数のサービスが存在する場合に、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、スケジュールする必要があるサービスを前記スケジューリング点で連続的に起動し、スケジュールする必要があるサービスが１つしかない場合には、スケジュールする必要がある前記サービスを前記スケジューリング点で直接起動するように構成される、請求項１５に記載のネットワーク・デバイス。
【請求項１７】
前記複数の処理モジュールが前記ネットワーク・デバイスの複数のプロセッサ・コアにデプロイされ前記スケジューラが前記複数のプロセッサ・コアに分散方式でデプロイされる、請求項１３乃至１６の何れか１項に記載のネットワーク・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信技術の分野に関し、特に、サービス・スケジューリング方法、ネットワーク・デバイス、および通信システムに関する。
【背景技術】
【０００２】
通信システムでは、ネットワーク・デバイス、特に、ルータ、スイッチ、およびゲートウェイのようなコア・ネットワーク・デバイス上のアプリケーション・サービスが増加し続けている。図１に示すように、アプリケーション層（サービス層）では、複数のタイプのサービス、例えば、ユニフォーム・リソース・ロケータ・フィルタ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ  Ｆｉｌｔｅｒ、ＵＲＬＦ）、ＷＡＮ最適化コントローラ（ＷＡＮ  Ｏｐｔｉｍｉｚａｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒ、ＷＯＣ）、アプリケーション・デリバリ・コントローラ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｌｉｖｅｒｙ  Ｃｏｎｔｒｏｌｌｅｒ、ＡＤＣ）、侵入防止システム（Ｉｎｔｒｕｓｉｏｎ  Ｐｒｅｖｅｎｔｉｏｎ  Ｓｙｓｔｅｍ、ＩＰＳ）のようなセキュリティ・サービス、ＤＤＯＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ、分散サービス妨害）、およびＦＷ（ｆｉｒｅｗａｌｌ、ファイアウォール）、ならびに帯域幅制御およびＱＯＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ、サービス品質）制御、が一般にデプロイされる。各サービスの実行は、データ処理層、例えば、ＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ、ディープ・パケット・インスペクション）、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ、セキュア・ソケット・レイヤ）、およびＬＺ（Ｌｅｍｐｅｌ−Ｚｉｖ）圧縮によるネットワーク・データに対する具体的な処理に依存する。サービスが異なれば、データ処理方式や時間シーケンスに対する要件も異なる。サービス・スケジューリングの目的は、異なるサービス要件を満たし、合理的なスケジューリングを実施し、スケジューリングの繰返しや過度のスケジューリングを回避することである。
【０００３】
先行技術では、サービス・ベースのスケジューリング方式が一般的に使用されている。当該スケジューリング方式では、各サービスが別々に実行され、一方で、幾つかの普遍的な機能（例えば、ＩＰフラグメンテーション処理）がデータ処理モジュールにカプセル化され、各処理モジュールが必要に応じて直接起動される。サービス実行シーケンスは一般に、ユーザのサービス要件に従って事前に設定される。装置がパケットを受信すると、当該装置は当該パケットを各サービスに連続的に送信して処理を行う。サービスが当該パケットに対して具体的な処理を実施する必要があるときには、当該サービスは当該サービスのロジックに従って関連する処理モジュールを起動して処理を行う。図２に示すように、装置がＩＰＳサービスとＡＤＣサービスで構成されると仮定すると、パケットを処理するとき、当該ＩＰＳサービスがＤＰＩモジュールとＬＺモジュールを要件に従って別々に起動し、当該ＡＤＣモジュールが当該ＤＰＩモジュール、当該ＬＺモジュール、およびＳＳＬモジュールを起動する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以上の処理の説明によれば、先行技術のスケジューリング方式には２つの問題がある。１つ目の問題は、サービス実行シーケンスが固定され、柔軟性に欠けることである。２つ目の問題は、同じ処理モジュールが複数回起動され、パケットが繰返し処理されるケースが存在し、サービスの実行効率に影響を及ぼすことである。
【課題を解決するための手段】
【０００５】
本発明の諸実施形態では、サービス・スケジューリングの柔軟性と性能を改善するための、サービス・スケジューリング方法、ネットワーク・デバイス、および通信システムを提供する。
【０００６】
第１の態様によれば、本発明の１実施形態では、スケジューラにより、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するステップと、スケジューラにより、当該複数のサービスのスケジューリング情報に従ってスケジューリング・ロジックを生成するステップであって、当該スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点はスケジューラがサービスをスケジュールする論理的な制御点であるステップと、スケジューラにより、生成されたスケジューリング・ロジックに含まれる複数の処理モジュールの実行シーケンスに従って、当該複数の処理モジュールの各処理モジュールを連続的に起動して当該ネットワーク・デバイスが受信したパケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って、各スケジューリング点で対応するサービスを起動するステップと、を含むサービス・スケジューリング方法を提供する。
【０００７】
第１の態様の第１の可能な実装方式では、スケジューラにより、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するステップは、スケジューラにより、当該ネットワーク・デバイスが送信した構成ファイルを受信し、当該構成ファイルを解析して当該複数のサービスのスケジューリング情報を取得するステップを含む。
【０００８】
第１の態様または第１の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、各サービスのスケジューリング情報は各サービスのサービス・ルールと各サービスおよび別のサービスの間の依存関係とを含み、スケジューラにより、複数のサービスのスケジューリング情報に従ってスケジューリング・ロジックを生成するステップは、スケジューラにより、当該複数のサービスのサービス・ルールに含まれる条件に従って、当該条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールを決定し、当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定し、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するステップであって、当該ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であるステップと、当該サービス間の依存関係に従って当該Ｎ個の処理モジュールの実行シーケンスを決定するステップであって、当該スケジューリング・ロジックは、当該Ｎ個の処理モジュールの実行シーケンスとサービスをスケジュールする必要がある各スケジューリング点および当該スケジューリング点で起動する必要があるサービスの間のマッピング関係とを含み、各スケジューリング点は当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部にあるステップと、を含む。
【０００９】
第１の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、生成されたスケジューリング・ロジックに含まれる複数の処理モジュールの実行シーケンスに従って、当該複数の処理モジュールの各処理モジュールを連続的に起動して当該ネットワーク・デバイスが受信したパケットを処理するステップは、当該Ｎ個の処理モジュールの決定された実行シーケンスに従って、対応する処理モジュールを連続的に起動して当該ネットワーク・デバイスが受信したパケットを処理し、Ｎ個の処理結果を取得するステップを含む。
【００１０】
第１の態様の第２の可能な実装方式または第３の可能な実装方式を参照して、第４の可能な実装方式では、当該スケジューリング・ロジックに含まれるマッピング関係に従って各スケジューリング点で対応するサービスを起動するステップは、サービスをスケジュールする必要がある、Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部の各スケジューリング点で、当該スケジューリング点に対応する全てのサービスを、当該生成されたマッピング関係に従って決定するステップと、少なくとも１つのパケット処理結果に従って、全てのサービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、当該スケジューリング条件を満たすサービスを当該スケジューリング点でスケジュールする必要があるサービスとして決定するステップと、スケジュールする必要がある複数のサービスが存在する場合に、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、スケジュールする必要がある異なる優先度のサービスを当該スケジューリング点で連続的に起動し、スケジュールする必要があるサービスが１つしかない場合には、スケジュールする必要があるサービスを当該スケジューリング点で直接起動するステップとを含む。
【００１１】
第１の態様の第３の可能な実装方式または第４の可能な実装方式を参照して、第５の可能な実装方式では、当該サービス・スケジューリング方法はさらに、Ｎ個の処理モジュールのうちＰ個の処理モジュールによるネットワーク・デバイスが受信したパケットに対する処理の結果に従って、当該Ｎ個の処理モジュールのうちＰ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、当該Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または当該Ｎ−Ｐ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要があるスケジューリング点を再決定するステップであって、Ｐは１より大きい正の整数でありＰはＮより小さいステップを含む。
【００１２】
第２の態様によれば、本発明の１実施形態ではさらに、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するように構成された取得モジュールと、当該取得モジュールが取得したスケジューリング情報に従ってスケジューリング・ロジックを生成するように構成されたスケジューリング・ロジック生成モジュールであって、当該スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点は、当該サービス・スケジューリング装置がサービスをスケジュールする論理的な制御点である、スケジューリング・ロジック生成モジュールと、生成されたスケジューリング・ロジックに含まれる複数の処理モジュールの実行シーケンスに従って、当該複数の処理モジュールの各処理モジュールを連続的に起動して当該ネットワーク・デバイスが受信したパケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って各スケジューリング点で対応するサービスを起動するように構成されたスケジューリング・モジュールと、を備えたサービス・スケジューリング装置を提供する。
【００１３】
第２の態様の第１の可能な実装方式では、当該取得モジュールは特に、当該ネットワーク・デバイスが送信した構成ファイルを受信し、当該構成ファイルを解析して複数のサービスのスケジューリング情報を取得するように構成される。
【００１４】
第２の態様または第２の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、各サービスのスケジューリング情報は各サービスのサービス・ルールと各サービスおよび別のサービスの間の依存関係とを含み、当該スケジューリング・ロジック生成モジュールは、当該複数のサービスのサービス・ルールに含まれる条件に従って、当該条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールを決定し、当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定し、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するように構成されたマッピング・ユニットであって、当該ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であるマッピング・ユニットと、当該Ｎ個の処理モジュールの各処理モジュールの実行シーケンスを当該サービス間の依存関係に従って決定するように構成されたソート・ユニットであって、当該スケジューリング・ロジックは当該Ｎ個の処理モジュールの実行シーケンスとサービスをスケジュールする必要がある各スケジューリング点および当該スケジューリング点で起動する必要があるサービスの間のマッピング関係とを含み、各スケジューリング点は当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部にある、ソート・ユニットとを備える。
【００１５】
第２の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、当該スケジューリング・モジュールは特に、Ｎ個の処理モジュールの決定された実行シーケンスに従って、複数の処理モジュールの各処理モジュールを連続的に起動してネットワーク・デバイスが受信したパケットを処理してＮ個の処理結果を取得するように構成される。
【００１６】
第２の態様の第２の可能な実装方式または第３の可能な実装方式を参照して、第４の可能な実装方式では、当該スケジューリング・モジュールは特に、マッピング・ユニットが決定した各スケジューリング点で、当該スケジューリング点に対応する全てのサービスを、生成されたマッピング関係に従って決定し、少なくとも１つのパケット処理結果に従って、全てのサービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、当該スケジューリング条件を満たすサービスを当該スケジューリング点でスケジュールする必要があるサービスとして決定し、スケジュールする必要がある複数のサービスが存在する場合に、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、スケジュールする必要がある異なる優先度のサービスを当該スケジューリング点で連続的に起動し、スケジュールする必要があるサービスが１つしかない場合には、スケジュールする必要があるサービスを当該スケジューリング点で直接起動するように構成される。
【００１７】
第２の態様の第３の可能な実装方式または第４の可能な実装方式を参照して、第５の可能な実装方式では、当該サービス・スケジューリング装置はさらに、Ｎ個の処理モジュールのうちＰ個の処理モジュールによるネットワーク・デバイスが受信したパケットに対する処理の結果に従って、当該Ｎ個の処理モジュールのうちＰ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、当該Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または当該Ｎ−Ｐ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要があるスケジューリング点を再決定するように構成された調節モジュールであって、Ｐは１より大きい正の整数でありＰはＮより小さい調節モジュールを備える。
【００１８】
第３の態様によれば、本発明の１実施形態ではさらに、トランシーバ・モジュール、スケジューラ、および複数の処理モジュールを備えたネットワーク・デバイスを提供する。当該トランシーバ・モジュールは、パケットと当該ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報とを受信するように構成される。スケジューラは、当該複数のサービスのスケジューリング情報に従ってスケジューリング・ロジックを生成するように構成される。当該スケジューリング・ロジックは、当該トランシーバ・モジュールが受信したパケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点はスケジューラがサービスをスケジュールする論理的な制御点である。スケジューラはさらに、生成されたスケジューリング・ロジックに含まれる複数の処理モジュールの実行シーケンスに従って、当該複数の処理モジュールの各処理モジュールを連続的に起動して当該トランシーバ・モジュールが受信した当該ネットワーク・パケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って各スケジューリング点で対応するサービスを起動するように構成される。
【００１９】
第３の態様の第１の可能な実装方式では、当該トランシーバ・モジュールは特に、当該ネットワーク・デバイスが送信した構成ファイルを受信し、当該構成ファイルを解析して各サービスのスケジューリング情報を取得するように構成される。
【００２０】
第３の態様または第３の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、各サービスのスケジューリング情報は各サービスのサービス・ルールと各サービスおよび別のサービスの間の依存関係とを含み、スケジューラは特に、複数のサービスのサービス・ルールに含まれる条件に従って、当該条件が満たされているかどうかを判定するために必要な全ての処理モジュールを決定し、全ての当該処理モジュールの処理モジュールの間および／または全ての処理モジュールの各処理モジュールの内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定し、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成し、全ての処理モジュールの実行シーケンスを当該サービス間の依存関係に従って決定するように構成され、当該スケジューリング・ロジックは、当該Ｎ個の処理モジュールの実行シーケンスおよびサービスをスケジュールする必要がある各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を含み、各スケジューリング点は当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部にある。
【００２１】
第３の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、スケジューラは特に、決定された各スケジューリング点で、当該スケジューリング点に対応する全てのサービスを、当該生成されたマッピング関係に従って決定し、少なくとも１つのパケット処理結果に従って、全てのサービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、当該スケジューリング条件を満たすサービスを当該スケジューリング点でスケジュールする必要があるサービスとして決定し、スケジュールする必要がある複数のサービスが存在する場合に、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、スケジュールする必要がある異なる優先度のサービスを当該スケジューリング点で連続的に起動し、スケジュールする必要があるサービスが１つしかない場合には、スケジュールする必要があるサービスを当該スケジューリング点で直接起動するように構成される。
【００２２】
第３の態様または第３の態様の第１の可能な実装方式、第２の可能な実装方式、もしくは第３の可能な実装方式を参照して、第４の可能な実装方式では、複数の処理モジュールがネットワーク・デバイスの複数のプロセッサ・コアにデプロイされスケジューラが当該複数のプロセッサ・コアに分散方式でデプロイされる。
【００２３】
以上の技術的解決策から、本発明の諸実施形態で提供するサービス・スケジューリング方法および装置およびネットワーク・デバイスを利用することによって、カスタマイズ可能なマルチサービスのスケジューラを使用して複数のサービスの柔軟なスケジューリングを実施し、スケジューラが当該サービスのスケジューリング情報を取得することが分かる。さらに、従来のパケット処理プロセスが細かく分割され、スケジューリング・ロジックが当該サービスのスケジューリング情報に従って動的に生成され、複数のサービス・スケジューリング点が定義され、必要なサービスが柔軟にスケジュールされ、繰返しのスケジューリングが回避される。これにより、サービス・スケジューリングの柔軟性と性能が高まり、さらにネットワーク・デバイスの競争力が高まる。
【００２４】
本発明の諸実施形態の技術的解決策をより分かりやすく説明するために、以下では当該諸実施形態を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の諸実施形態の一部を説明し、当業者は創造的作業なしにこれらの添付図面から他の図面を導出することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明に従うマルチサービスのポリシ制御の階層的デプロイメント方式の略図である。
【図２】先行技術のサービス・スケジューリング方法の略図である。
【図３】本発明の１実施形態に従う企業プライベート・クラウドのネットワークの略図である。
【図４】本発明の１実施形態に従うサービス・スケジューリング方法の略流れ図である。
【図５】本発明の１実施形態に従うサービス・スケジューリング処理方法の流れ図である。
【図６】本発明の１実施形態に従う、スケジューラによるサービス・スケジューリングの略流れ図である。
【図７】本発明の１実施形態に従うネットワーク・デバイスの略図である。
【図８】本発明の１実施形態に従う別のネットワーク・デバイスの略図である。
【図９】本発明の１実施形態に従う別のネットワーク・デバイスの略図である。
【図１０】本発明の１実施形態に従う別のネットワーク・デバイスの略図である。
【図１１】本発明の１実施形態に従うサービス・スケジューリング装置の略図である。
【図１２】本発明の１実施形態に従うネットワーク・デバイスの略図である。
【発明を実施するための形態】
【００２６】
本発明の目的、術的解決策、および利点をより明確にするために、以下では本発明の諸実施形態の添付図面を参照して本発明の技術的解決策を明確かつ十分に説明する。明らかに、説明する諸実施形態は本発明の諸実施形態の一部である。以下の本発明の諸実施形態に基づいて、当業者は、創造的作業なしに技術的特徴の一部または全部を均等に変更することによって、本発明の技術的課題を解決し本発明の技術的効果を実現できる他の実施形態を得ることができる。明らかに、変更によって得た実施形態は本発明で開示した範囲に入る。
【００２７】
本発明の諸実施形態で提供する技術的解決策を当業者がより良く理解するように、本発明の諸実施形態で提供する技術的解決策の適用シナリオを最初に説明する。本発明の諸実施形態で提供する技術的解決策を、マルチアプリケーション・サービスのポリシ制御シナリオ、例えば、ホーム・エリアネットワーク、アクセス・ネットワーク、集約ネットワーク、バックボーン・ネットワーク、企業ネットワーク、オペレータ・ネットワーク、および様々なプライベート／パブリック・クラウドに適用することができる。以下では、説明の簡単さのために、企業ネットワークが一般的な適用シナリオの役割を果たす例を用いる。図３は、企業がサービスを外部に提供する一般的なシナリオを説明し、ユーザはモバイル端末または固定端末を用いてネットワークにアクセスしてサービスを要求する。企業の内部ネットワークは一般に、ルータ（Ｒｏｕｔｅｒ）、スイッチ（Ｓｗｉｔｃｈ）、およびサーバのようなネットワーク・デバイスにより形成される。要件に従って、ＩＰＳ、帯域幅制御、ＵＲＬフィルタリング、ＷＯＣ、およびＡＤＣのようなサービスが１つまたは複数のネットワーク・デバイスにデプロイされる。一般に、複数のサービスが同一の装置にデプロイされる。この場合、当該ネットワーク・デバイス上の当該複数のサービスを正しくスケジュールしてサービス処理の柔軟性と性能を高める必要がある。本発明の諸実施形態で提供する技術的解決策をかかるマルチサービス処理シナリオに適用することができる。例えば、図３に示すルータまたはスイッチを使用して本発明の諸実施形態で提供する技術的解決策を実装してもよい。企業ネットワークのシナリオは本発明の技術的解決策の典型的な適用シナリオにすぎず、本発明の適用シナリオに関して何ら限定を構成しないことに留意されたい。本発明の諸実施形態の技術的解決策は、複数の種類のサービスのスケジューリングが関与する他の適用シナリオに対して常に適用可能である。
【００２８】
本発明の１実施形態では、サービス・スケジューリング方法を提供する。図４に示すように、複数のサービス（例えば、図４に示すサービス１およびサービス２）が現在のネットワーク・デバイスで実行されており、１つまたは複数のデータ処理モジュール、例えば、図４に示す処理モジュール１、処理モジュール２・・・処理モジュールｎが当該現在のネットワーク・デバイスにデプロイされており、スケジューラがサービス・スケジューリング機能を実装するように構成されていると仮定する。具体的には、スケジューラは、ユーザによって構成され各サービスのスケジューリング情報を含む構成ファイルに基づいて、各処理モジュールによりパケットを処理するプロセスにおける各スケジューリング点でパケット処理結果情報を取得し、サービス要件に従って対応するサービスをスケジュールしてパケットを処理する。当該スケジューリング点は、スケジューラがサービス・スケジューリングを実施し処理モジュールと組み合わせられる論理的な制御点である。上述の説明に基づいて、本発明の当該実施形態で提供するサービス・スケジューリング方法を特にスケジューラによって実装してもよく、スケジューラを図３に示すルータまたはスイッチにデプロイしてもよい。図５は、スケジューラが実施するサービス・スケジューリングの方法のプロセスを説明する。図５によれば、当該方法のプロセスは以下のステップを含む。
【００２９】
ステップ５０１では、スケジューラが、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得する。
【００３０】
サービスのスケジューリングのポリシを示すために、上述の複数のサービスの各サービスのスケジューリング情報が使用されることに留意されたい。各サービスのスケジューリング情報が、当該サービスのポリシ情報、当該サービスが依存する処理モジュールに関する情報、当該サービスが依存する他のサービスに関する情報等を含んでもよいが、これらに限定されない。本発明の当該実施形態のスケジューリング点はサービスと処理モジュールの組合せにより決まり、処理モジュールは、特定の処理、例えば、ＩＰフラグメンテーション処理、データ・ストリーム管理、Ｌ１−Ｌ３処理、Ｌ７処理等をパケットに対して実施するように構成されることに留意されたい。
【００３１】
１実施形態では、各上述のサービスのスケジューリング情報が当該サービスをスケジュールするための明示的に規定したルールまたはタイミングであってもよい。例えば、当該スケジューリング情報を使用して、特定の処理モジュールがパケットの処理を完了した後に特定のサービスをスケジュールするか、または、特定の処理モジュールがパケットに対する特定の処理を完了する段階の後に特定のサービスをスケジュールするようにスケジューラに指示してもよい。例えば、パケットに対するレイヤ４の処理が完了した後にＩＰＳサービスがスケジュールされ、当該パケットのヘッダ・フィールドの解析が完了した後にＡＤＣサービスがスケジュールされると規定してもよい。さらに、当該スケジューリング情報が、サービスに対して規定された特定のデータ・ストリームのスケジューリング情報をさらに含んでもよい。例えば、ＡＤＣサービスを構成するときに、スケジューラを、８０８０ポートのみのデータ・ストリームを処理するかまたは特定のＩＰもしくは特定のプロトコル等のデータ・ストリームを処理するように規定してもよい。
【００３２】
別の実施形態では、各サービスのスケジューリング情報が、解析や抽出のような方式でサービスのサービス・ルールから抽出することで暗黙的に規定されたスケジューリング情報であってもよい。即ち、当該サービスに対応するサービス・ルールに含まれる条件に従って、特定の処理をパケットに対して実施し、含まれる条件の判定が依存する処理モジュール、ならびに当該サービスが依存するモジュールに関する情報が決定される。サービス・ルールとはサービスを実行するときに従うべきルールであることに留意されたい。１つのサービス・ルールは２つの部分、即ち、条件と動作を含む。具体的には、１つのサービス・ルールが１つまたは複数の条件を含んでもよく、同じサービス・ルール内の複数の条件が異なるレベルまたは異なる次元のパケット情報に関連してもよい。または、より正確には、各サービスのルールがマッチするかどうかを判定する場合には、当該サービス・ルールに含まれる条件が満たされるかどうかを判定する必要がある。しかし、当該サービス・ルールにおける条件の判定は、少なくとも当該パケットの１つの次元に関する情報に依存する。例えば、(IP = 1.1.1.1 && HTTP. host = www.huawei.com)の場合はＡＤＣを実行する、というルールにおいて、「IP = 1.1.1.1」と「HTTP. host = www.huawei.com」は２つの並列な条件である。ここで、前者はレイヤ３の条件であり後者はレイヤ７の条件であり、当該２つの条件は「論理積」の論理関係にある。したがって、当該ＡＤＣサービスの実行は、パケットに対するレイヤ３とレイヤ７の処理が完了することに依存する必要がある。
【００３３】
ＩＰＳサービスを１例として使用し、当該ＩＰＳサービスに含まれるサービス・ルールがif (HTTP. Requtet.URL == www.huawei.com) {do action}であるとすると、当該サービスのスケジューリング情報を、当該サービス・ルールを解析することによって得ることができる。ここで、当該スケジューリング情報は、スケジューリング位置がデータ・ストリームの要求方向にあること、識別モジュールをスケジュールして当該データ・ストリームのプロトコルを識別する必要があること、当該プロトコルがＨＴＴＰプロトコルである場合には、解析モジュールを起動して解析によりＵＲＬ情報を取得する必要があること、を含む。
【００３４】
さらなる例示的な実施形態では、各サービスのスケジューリング情報が当該サービスの優先度情報をさらに含んでもよい。当該サービスの優先度情報は、当該サービスの優先度を示すために使用される。複数のサービスを同じスケジューリング点でスケジュールする必要がある場合には、高い優先度のサービスを最初にスケジュールする。当該スケジューリング点は、スケジューラがサービス・スケジューリングを行う論理的な制御点である。例えば、ＩＰＳサービスがＡＤＣサービスの前にスケジュールされるように、当該ＩＰＳサービスと当該ＡＤＣサービスの両方ををレイヤ７処理の間にスケジュールし、優先度を構成してもよい。
【００３５】
上述の複数のサービスのスケジューリング情報を、ユーザにより構成されるかまたはネットワーク・デバイスにより生成された構成ファイルに含めてもよいことに留意されたい。サービス・スケジューリングを実施する前に、ネットワーク・デバイスが当該構成ファイルをスケジューラに送信し、スケジューラが当該構成ファイルを解析して各サービスのスケジューリング情報を取得してもよい。
【００３６】
このように、サービスとスケジューラの統合が実現される。具体的には、当該構成ファイルを複数の方式で送信、例えば、ユニバーサル・ファイル・インポート方式で送信し、ＧＵＩインタフェース・インポート方式で送信し、ＣＬＩコマンド・ライン方式で構成し、当該ネットワーク・デバイスのネットワーク管理システムで送信してもよく、本明細書では具体的には限定されない。
【００３７】
ステップ５０２では、スケジューリング・ロジックを当該スケジューリング情報に従って生成する。当該スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点はスケジューラがサービスをスケジュールする論理的な制御点である。
【００３８】
当該ステップでは、スケジューラがまず当該ネットワーク・デバイスにデプロイした処理モジュールとサービスに関する情報を取得する。即ち、スケジューラは、どの処理モジュールおよびサービスが現在のネットワーク・デバイスにデプロイされているかを学習する。一連のスケジューリング点を処理モジュール内部で提供してもよい。即ち、特定のサービスが特定の処理モジュール内部の１つのスケジューリング点でスケジュールされると規定してもよい。例えば、解析モジュールがパケットのヘッダ・フィールドの解析を完了したときにＩＰＳサービスがスケジュールされると規定してもよい。さらに、一連のスケジューリング点を処理モジュールの間で定義してもよい。このように、特定のサービスを、特定の処理モジュールがパケットの処理を完了した後にスケジュールしてもよい。例えば、ＡＤＣサービスが当該解析モジュールとＬ７処理モジュールの間のスケジューリング点でスケジュールされると規定してもよい。この場合、ＡＤＣサービスは、解析モジュールがパケットの解析を完了した後かつ当該パケットをＬ７処理モジュールに送信して処理する前に起動される。ここでのスケジューリング点は、スケジューラがサービス・スケジューリングを行う論理的な制御点である。ネットワーク・デバイスにデプロイした処理モジュールとサービスに関する情報を取得した後、スケジューラはさらに、各サービスのスケジューリング情報に従って、処理モジュールの間および各処理モジュールの内部に存在するスケジューリング点、当該サービスの間の依存関係等を決定し、スケジューリング・ロジックを生成する。当該スケジューリング・ロジックは主に以下の内容を含む。
【００３９】
（１）パケットを処理する必要がある全ての処理モジュールの実行シーケンス（これらの処理モジュールによりパケットを処理するためのシーケンス）
（２）スケジュールする必要がある各サービスのスケジューリング点情報。具体的には、各サービスのスケジューリング点情報が各サービスと当該各サービスのスケジューリング点の間のマッピング関係を含んでもよい。例えば、１実施形態では、スケジュールする必要がある各サービスの識別子をスケジューラが当該サービスをスケジュールするスケジューリング点の識別子に関連付けてもよく、当該サービスのスケジューリング点情報としての役割を果たすために当該関連付けに関する情報を具体的なデータ構造に格納する。
【００４０】
具体的な実施形態では、ネットワーク・デバイスにデプロイした複数のサービスの各サービスのスケジューリング情報は特に、当該サービスのサービス・ルールおよび当該サービスと別のサービスの間の依存関係を含んでもよい。この場合、スケジューラが、以下の方式、即ち、当該複数のサービスに対応する全てのサービス・ルールに含まれる条件に従って、当該条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールを決定し、当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定し、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するステップであって、ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であるステップと、当該複数のサービスのサービスの間の依存関係に従って当該Ｎ個の処理モジュールの実行シーケンスを決定するステップであって、当該生成されたスケジューリング・ロジックは、当該Ｎ個の処理モジュールの実行シーケンスおよびサービスをスケジュールする必要がある各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を含み、各スケジューリング点は当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部にあるステップと、に従って当該スケジューリング・ロジックを生成してもよい。
【００４１】
上述のステップを実行した後、生成されたスケジューリング・ロジックの役割を果たすように、Ｎ個のモジュールの決定された実行シーケンスと上述のマッピング関係を統合してもよいことに留意されたい。具体的には、本発明の当該実施形態では、当該スケジューリング・ロジックを、構成ファイル、コマンド・ラインまたはチャートのような複数の方式で提供してもよく、本明細書では具体的には限定されない。
【００４２】
本発明の当該実施形態のスケジューリング点は、処理モジュールがパケットの処理を完了した後にスケジューリングするためのスケジューリング点に限定されず、当該処理モジュール内部の様々な処理段階でスケジューリングするためのスケジューリング点も含むことに留意されたい。例えば、ネットワーク・デバイスがＵＲＬフィルタリング・サービスで構成されている場合には、スケジューラがヘッダ・フィールドの解析が完了した後に当該ＵＲＬフィルタリング・サービスをスケジュールしてもよく、当該ＵＲＬフィルタリング・サービスをスケジュールする前にパケット全体の解析を完了する必要はない。
【００４３】
ステップ５０３では、スケジューラが、生成されたスケジューリング・ロジックに含まれる複数の処理モジュールの実行シーケンスに従って、当該複数の処理モジュールの各処理モジュールを連続的に起動してネットワーク・デバイスが受信したパケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って、各スケジューリング点で対応するサービスを起動する。
【００４４】
具体的には、スケジューラがステップ５０２で説明した方式に従って当該スケジューリング・ロジックを生成した後に、スケジューラが、Ｎ個の処理モジュールの決定された実行シーケンスに従って、対応する処理モジュールを連続的に起動してネットワーク・デバイスが受信したパケットを処理し、Ｎ個の処理結果を取得してもよい。
【００４５】
さらに、スケジューラが、決定された各スケジューリング点で、上述の生成されたマッピング関係に従って、当該スケジューリング点に対応する全てのサービスを決定し、次いで、スケジューラが、少なくとも１つのパケット処理結果に従って、全てのサービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、当該スケジューリング条件を満たすサービスを当該スケジューリング点でスケジュールする必要があるサービスとして決定する。１実施形態では、当該スケジューリング点でスケジュールする必要があるサービスが１つしかない場合には、スケジューラはスケジュールする必要があるサービスを当該スケジューリング点で直接起動する。別の実施形態では、当該スケジューリング点でスケジュールする必要がある複数のサービスが存在する場合には、スケジューラは、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、当該スケジューリング点で連続的にスケジュールする必要がある異なる優先度のサービスをスケジュールする。
【００４６】
サービスのスケジューリング条件は当該サービスのスケジューリングのポリシであり、条件を示すために使用され、当該条件が満たされたときにのみ当該サービスをスケジュールできることに留意されたい。具体的には、サービスの１つまたは複数のサービス条件が存在してもよく、同じサービスの複数のサービス条件が異なるレベルまたは異なる次元のパケット情報に関連してもよい。例えば、(IP = 1.1.1.1 && HTTP. host = www.huawei.com)の場合はＡＤＣを起動するというスケジューリング条件において、「IP = 1.1.1.1」と「HTTP. host = www.huawei.com」は２つの並列な条件である。ここで、前者はレイヤ３の条件であり後者はレイヤ７の条件であり、当該２つの条件は「論理積」の論理関係にある。したがって、当該２つのサービス条件の両方が満たされたとき、ＡＤＣサービスを実行することができる。具体的には、ステップ５０３を以下のように説明してもよい。
【００４７】
（１）当該処理モジュールの実行シーケンスに従って、対応する処理モジュールを連続的にスケジュールして、スケジューリング・ロジックに含まれるパケット処理を実施する。
（２）当該スケジューリング・ロジックに含まれる各サービスのスケジューリング点情報に従って、サービスをスケジュールする必要があるかどうかを、各処理モジュールの内部および処理モジュールの間の各スケジューリング点で判定する。各処理モジュールの内部および処理モジュールの間の各スケジューリング点でサービスをスケジュールする必要がある場合には、当該スケジューリング点に対応するサービスを起動し、各処理モジュールの内部および処理モジュールの間の各スケジューリング点でサービスをスケジュールする必要がない場合には、当該パケット処理プロセスを、サービスをスケジュールする必要がある次のスケジューリング点が決定されるまで継続する。
（３）複数のサービスを同じスケジューリング点でスケジュールする必要があるとき、  当該サービスは各サービスの優先度に従ってスケジュールされる。
【００４８】
別の実施形態では、スケジューラがさらに、Ｎ個の処理モジュールのうちＰ個の処理モジュールによるネットワーク・デバイスが受信したパケットに対する処理の結果に従って、当該Ｎ個の処理モジュールのうち当該Ｐ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、当該Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または当該Ｎ−Ｐ個の処理モジュールの各処理モジュール内部のスケジューリング点を再決定でき、Ｐは１より大きい正の整数で、ＰはＮより小さいのが好ましい。
【００４９】
以下では、具体的な例を用いて上述のステップＳ５０１乃至Ｓ５０３を説明する。図６に示すように、スケジューラは各サービスに対して構成されたスケジューリング情報を受信する。各サービスのスケジューリング情報を次の表に列挙する。
【００５０】
【表１】
0006004410.tif 000002
【００５１】
ＩＰＳサービスを１例として使用すると、サービス・ルールが以下の通りであることが上の表から分かる。即ち、ＴＣＰのプロトコル・タイプのパケット／データ・ストリームに対してＴＣＰ処理が終了した後にＷＯＣサービスが実行され、ＩＰＳサービスの実行はＷＯＣサービスに依存する。図６に示すように、ＨＴＴＰデータ・ストリームが要求方向で受信されたと仮定すると、スケジューリング情報に従ってスケジューリング・ロジックを生成するプロセスは以下の通りである。
【００５２】
（ａ）各サービスのスケジューリング情報に従って、データ・ストリームに対して処理を実施する必要がある処理モジュール、例えば、ＵＲＬモジュール、Ｌ１−Ｌ３処理モジュール、データ・ストリーム管理モジュール、ＴＣＰ処理モジュール、およびＤＰＩ処理モジュールを決定する。
【００５３】
（ｂ）上述の処理モジュールを決定した後、スケジューラがさらに、処理モジュールの間および／または各処理モジュールの内部に存在する全てのスケジューリング点、即ち、Ｄ１（Ｌ１−Ｌ３レイヤ処理が終了）、Ｄ２（データ・ストリーム管理が終了）、Ｄ３（ＴＣＰ処理が終了）、Ｄ４（プロトコル識別が終了）、Ｄ５（パケットヘッダ・フィールドの解析が終了）、およびＤ６（ＤＰＩ処理が終了）を決定してもよい。
【００５４】
（ｃ）サービス間の依存関係に従って、これらの処理モジュールの実行シーケンスを決定し（決定された実行シーケンスが図６に示す左から右へのシーケンスであると仮定）、さらに、スケジューリング点Ｄ１乃至Ｄ６のうち、スケジューリング点Ｄ３乃至Ｄ６でサービスをスケジュールする必要があることを確認し（Ｄ１およびＤ２では対応するサービスをスケジュールする必要はない）、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成する。例えば、スケジューリング点Ｄ３に対応するサービスはＷＯＣとＩＰＳであり、Ｄ４に対応するサービスはＤＤＯＳであり、Ｄ５に対応するサービスはＵＲＬＦであり、Ｄ６に対応するサービスはＡＤＣである。
【００５５】
スケジューリング・ロジックが生成された後に、以下のデータ・ストリーム処理を開始する。即ち、
（１）スケジューリング点Ｄ１およびＤ２ではスケジュールする必要があるサービスがないので、データ・ストリームを処理し続ける。２つのサービスをスケジューリング点Ｄ３でスケジュールする必要がある。サービス優先度によれば、ＷＯＣサービスはＩＰＳサービスよりも高い優先度を有し、したがって、ＷＯＣサービスを最初にスケジュールしてデータ・ストリームを処理する。
（２）ＩＰＳサービスをスケジュールして当該データ・ストリームを処理する。
（３）スケジューリング点Ｄ４に対応するサービスはＤＤＯＳである。しかし、当該データ・ストリームの識別結果がＣＩＦＳサービスではないので、ＤＤＯＳサービスをスケジュールする必要はなく、当該データ・ストリームを処理し続ける。
（４）ＵＲＬＦサービスをスケジューリング点Ｄ５でスケジュールして当該データ・ストリームを処理する。
（５）ＡＤＣサービスをスケジューリング点Ｄ６でスケジュールして当該データ・ストリームを処理する。
（６）上述の処理を行ったデータ・ストリームを送信する。
【００５６】
本発明の当該実施形態で提供するサービス・スケジューリング方法では、従来のパケット処理プロセスが細かく分割され、複数のサービス・スケジューリング点が定義される。さらに、サービスのスケジューリング・ロジックがサービスのスケジューリング情報に従って動的に決定され、スケジューラが当該スケジューリング・ロジックに従って複数のサービスの柔軟なスケジューリングを実現する。これにより、繰返しのスケジューリングが回避され、サービス・スケジューリングの柔軟性と性能が高まり、ネットワーク・デバイスの競争力が高まる。
【００５７】
本発明の諸実施形態の上述の解決策をより良く実施するために、以下では、上述の方法を実装するために使用される関連装置を提供する。
【００５８】
図７に示すように、本発明の１実施形態ではネットワーク・デバイスを提供する。図７によれば、１つまたは複数のサービスアプリケーション（例えば、図７に示すサービス１、サービス２、およびサービスｎ）はネットワーク・デバイス７０にデプロイされる。ネットワーク・デバイス７０は、トランシーバ・モジュール７１０、スケジューラ７３０、および複数の処理モジュール（本発明の当該実施形態では、１例として図７に示す処理モジュール７２０を用いる）を備える。各データ処理モジュールは或る種の処理をパケットに対して実施することができる。例えば、ＵＲＬモジュールを、当該パケットのＵＲＬを解決するように構成することができる。Ｌ１−Ｌ３処理モジュールが、レイヤ１乃至３の処理を当該パケットに対して実施することができ、ＤＰＩ処理モジュールが当該パケットに対して詳細な識別を実施することができる、等である。本発明の当該実施形態では、ネットワーク・デバイスに含まれる処理モジュールの量と種類は具体的に限定しない。
【００５９】
トランシーバ・モジュール７１０は、パケットとネットワーク・デバイス７０にデプロイした複数のサービスのスケジューリング情報を受信するように構成される。各サービスのスケジューリング情報を使用して当該サービスのスケジューリングのポリシを示す。各サービスのスケジューリング情報が、当該サービスのサービス・ルール、当該サービスが依存する処理モジュールの情報、当該サービスが依存する別のサービスに関する情報等を含んでもよいがこれらに限られない。
【００６０】
スケジューラ７３０は、トランシーバ・モジュール７１０が受信したスケジューリング情報に従ってスケジューリング・ロジックを生成し、当該生成されたスケジューリング・ロジックに含まれる実行シーケンスに従って、対応する処理モジュールを連続的に起動してネットワーク・デバイス７０が受信したパケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って各スケジューリング点で対応するサービスを起動するように構成される。当該スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点はスケジューラがサービスをスケジュールする論理的な制御点である。
【００６１】
具体的な実施形態では、上述の複数のサービスのスケジューリング情報を、ユーザにより構成されるかまたはネットワーク・デバイスにより生成された構成ファイルに含めてもよい。サービス・スケジューリングを実施する前に、トランシーバ・モジュール７１０は、ネットワーク・デバイス７０が送信した構成ファイルを受信し、当該構成ファイルを解析して各サービスのスケジューリング情報を取得することができる。
【００６２】
別の具体的な実施形態では、スケジューラ７３０がまずネットワーク・デバイス７０にデプロイした処理モジュールとサービスに関する情報を取得する。即ち、スケジューラ７３０が、どの処理モジュールおよびサービスがネットワーク・デバイス７０にデプロイされているかを学習する。一連のスケジューリング点を処理モジュール内部で提供してもよい。即ち、特定のサービスが特定の処理モジュール内部の１つのスケジューリング点でスケジュールされると規定してもよい。例えば、解析モジュールがパケットのヘッダ・フィールドの解析を完了したときにＩＰＳサービスがスケジュールされると規定してもよい。さらに、一連のスケジューリング点を処理モジュールの間で定義してもよい。このように、特定のサービスを、特定の処理モジュールがパケットの処理を完了した後にスケジュールしてもよい。例えば、ＡＤＣサービスが解析モジュールとＬ７処理モジュールの間のスケジューリング点でスケジュールされると規定してもよい。この場合、ＡＤＣサービスは、解析モジュールがパケットの解析を完了した後かつ当該パケットをＬ７処理モジュールに送信して処理する前に起動される。ここでのスケジューリング点は、スケジューラ７３０がサービス・スケジューリングを実施する論理的な制御点である。ネットワーク・デバイス７０にデプロイした処理モジュールとサービスに関する情報を取得した後、スケジューラはさらに、各サービスのスケジューリング情報に従って、処理モジュールの間および各処理モジュールの内部に存在するスケジューリング点、当該サービスの間の依存関係等を決定し、スケジューリング・ロジックを生成する。当該スケジューリング・ロジックは主に以下の内容を含む。
【００６３】
（１）パケットを処理する必要がある全ての処理モジュールの実行シーケンス（これらの処理モジュールによりパケットを処理するためのシーケンス）
（２）スケジュールする必要がある各サービスのスケジューリング点情報。具体的には、各サービスのスケジューリング点情報が各サービスと当該各サービスのスケジューリング点の間のマッピング関係を含んでもよい。例えば、１実施形態では、スケジュールする必要がある各サービスの識別子をスケジューラが当該サービスをスケジュールするスケジューリング点の識別子に関連付けてもよく、当該サービスのスケジューリング点情報としての役割を果たすために当該関連付けに関する情報を具体的なデータ構造に格納する。
【００６４】
具体的な実施形態では、ネットワーク・デバイスにデプロイした複数のサービスの各サービスのスケジューリング情報は特に、当該サービスのサービス・ルールおよび当該サービスと別のサービスの間の依存関係を含んでもよい。この場合、スケジューラが、以下の方式、即ち、当該複数のサービスに対応する全てのサービス・ルールに含まれる条件に従って、当該条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールを決定し、当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定し、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するステップであって、ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であるステップと、当該複数のサービスのサービスの間の依存関係に従って当該Ｎ個の処理モジュールの実行シーケンスを決定するステップであって、当該生成されたスケジューリング・ロジックは、当該Ｎ個の処理モジュールの実行シーケンスと、サービスをスケジュールする必要がある各スケジューリング点および当該スケジューリング点で起動する必要があるサービスの間のマッピング関係とを含み、各スケジューリング点は当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部にあるステップと、に従ってスケジューリング・ロジックを生成してもよい。
【００６５】
上述のステップを実行した後、スケジューラ７３０が、当該生成されたスケジューリング・ロジックとしての役割を果たすためにＮ個のモジュールの決定された実行シーケンスと上述のマッピング関係を統合してもよいことに留意されたい。具体的には、本発明の当該実施形態では、スケジューリング・ロジックを構成ファイル、コマンド・ラインまたはチャートのような複数の方式で提供してもよく、本明細書では具体的には限定されない。
【００６６】
本発明の当該実施形態のスケジューリング点は、処理モジュールがパケットの処理を完了した後にスケジューリングするためのスケジューリング点に限定されず、当該処理モジュール内部の様々な処理段階でスケジューリングするためのスケジューリング点も含むことに留意されたい。例えば、ネットワーク・デバイスがＵＲＬフィルタリング・サービスで構成されている場合には、ヘッダ・フィールドの解析が完了した後にスケジューラ７３０が当該ＵＲＬフィルタリング・サービスをスケジュールしてもよく、当該ＵＲＬフィルタリング・サービスをスケジュールする前にパケット全体の解析を完了する必要はない。
【００６７】
さらに、１実施形態では、トランシーバ・モジュール７１０はさらに、各サービスのスケジューリングが完了した後に、各処理モジュールと各サービスによる処理を受けたネットワーク・パケットを送信するように構成される。
【００６８】
別の実施形態では、スケジューリング・ロジックが生成された後に、スケジューラ７３０が、Ｎ個の処理モジュールの決定された実行シーケンスに従って、対応する処理モジュールを連続的に起動してネットワーク・デバイスが受信したパケットを処理し、Ｎ個の処理結果を取得できるのが好ましい。具体的には、スケジューラ７３０が以下の方式に従ってサービスをスケジュールしてもよい。
【００６９】
スケジューラが、決定された各スケジューリング点で、かつ、上述の生成されたマッピング関係に従って、当該スケジューリング点に対応する全てのサービスを決定し、次いで、スケジューラが、少なくとも１つのパケット処理結果に従って、全てのサービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、当該スケジューリング条件を満たすサービスを当該スケジューリング点でスケジュールする必要があるサービスとして決定する。１実施形態では、当該スケジューリング点でスケジュールする必要があるサービスが１つしかない場合には、スケジューラは、スケジュールする必要があるサービスを当該スケジューリング点で直接起動する。別の実施形態では、当該スケジューリング点でスケジュールする必要がある複数のサービスが存在する場合に、スケジューラは、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、当該スケジューリング点で連続的にスケジュールする必要がある異なる優先度のサービスをスケジュールする。
【００７０】
サービスのスケジューリング条件は当該サービスのスケジューリングのポリシであり、条件を示すために使用され、当該条件が満たされたときにのみ当該サービスをスケジュールできることに留意されたい。例えば、(IP = 1.1.1.1 && HTTP. host = www.huawei.com)の場合はＡＤＣを起動するというスケジューリング条件において、「IP = 1.1.1.1」と「HTTP. host = www.huawei.com」は２つの並列な条件である。ここで、前者はレイヤ３の条件であり後者はレイヤ７の条件であり、当該２つの条件は「論理積」の論理関係にある。当該２つのサービス条件の両方が満たされたとき、ＡＤＣサービスをスケジュールすることができる。
【００７１】
別の実施形態では、スケジューラ７３０がさらに、Ｎ個の処理モジュールのうちＰ個の処理モジュールによるネットワーク・デバイスが受信したパケットに対する処理の結果に従って、当該Ｎ個の処理モジュールのうち当該Ｐ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、当該Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または当該Ｎ−Ｐ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要があるスケジューリング点を再決定でき、Ｐは１より大きい正の整数でありＰはＮより小さいことが好ましい。このように、スケジューリング・ポリシを、当該処理モジュールによるパケットに対する処理の結果に従って動的に調節してもよく、それにより、さらにスケジューリングの柔軟性と性能が高まる。
【００７２】
ネットワーク・デバイス７０の機能モジュールの機能を特に、上述の方法の実施形態における方法に従って実装してもよいことに留意されたい。具体的な実装プロセスの詳細に関しては、上述の方法の実施形態の関連説明を参照することができ、詳細についてはここでは繰返し説明しない。さらに、ネットワーク・デバイス７０の機能モジュールが、ソフトウェアにより実装した機能モジュールであってもよく、コストに関係なく場合によってはハードウェア回路を用いて実装してもよい。例えば、トランシーバ・モジュール７１０が、ネットワークアダプタ、無線周波数モジュール、Ｗｉ−Ｆｉチップ等のような、通信機能を具備したハードウェアユニットであってもよく、スケジューラ７３０が中央演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略してＣＰＵ）または特殊用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、略してＡＳＩＣ）であってもよく、本発明の当該実施形態のスケジューラの機能を実装する１つまたは複数の集積回路として構成してもよい。当該処理モジュールが、ＣＰＵ、マルチコアプロセッサ内の１つのコア、処理機能を具備した論理回路等であってもよい。スケジューラ７３０によりスケジューリング点でサービスを起動する方式には、コールバック機能の登録、ハードウェア／ソフトウェア割込み、およびトリガの起動といった方式が含まれるがこれらに限られない。 
【００７３】
単一の装置または単一のシステムを有するシナリオでは、本発明の当該実施形態のスケジューラ７３０をネットワーク・デバイス７０の基本層にデプロイしてもよい。図８に示すように、ユーザは構成ファイルを用いてサービス情報とスケジューリング情報を構成し、システムが当該サービス情報を各サービスに送信してポリシ制御を実施し、当該スケジューリング情報をスケジューラ７３０に送信してスケジューリング・ロジックを生成する。ユーザは、当該サービス情報および当該スケジューリング情報を含む構成ファイルをネットワーク・デバイス７０上で構成してもよく、当該構成ファイルを当該システムの別の装置上で構成してもよい。ここでの基本層は、オペレーティング・システムであってもよく、サード・パーティのライブラリ層であってもよく、ハードウェアの差異を吸収するＳＤＫ（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ、ソフトウェア開発キット）に類する論理層あってもよい。
【００７４】
厳しいスケジューリング要件があるシナリオでは、図８に示すように、スケジューラ７３０をハードウェア層で実装してもよく、スケジューラ７３０がハードウェア層でデプロイされる処理モジュール（例えば、図８に示す処理モジュール１、処理モジュール２、および処理モジュール３）をスケジュールしてもよく、ソフトウェアにより実装される処理モジュール（例えば、図８に示す処理モジュール３および処理モジュール４）をスケジュールしてもよい。同様に、ユーザが、当該サービス情報および当該スケジューリング情報を含む構成ファイルをネットワーク・デバイス７０上で構成してもよく、当該構成ファイルを当該システムの別の装置上で構成してもよい。スケジューラ７３０が各サービスのスケジューリング情報に従ってスケジューリング・ロジックを生成した後、スケジューラ７３０は当該スケジューリング・ロジックを統合的に編成し、次いで編集したスケジューリング・ロジックをハードウェアに書き込んで実行する。それにより、スケジューリングの実行効率が高まる。
【００７５】
マルチコアのシナリオでは、図９に示すように、ネットワーク・デバイスにデプロイした各サービスと各処理モジュールは各独立なプロセッサ・コアで実行され、各データ・ストリームのパケットは１つのコアにのみ入って処理される。この時点で、スケジューラは複数のコアに分散方式でデプロイされる。即ち、スケジューリング・モジュールは、各コアに独立にデプロイされて、スケジューラと同じ機能を実行する。このように、各コアを独立なサービス処理システムと考えてもよい。この時点で、スケジューリング情報を各プロセッサ・コア上のスケジューリング・モジュールに送信する必要がある。上述のシナリオと同様に、各コアにデプロイしたスケジューリング・モジュールを基本層より上のソフトウェア層で実装してもよく、ハードウェアの方式で実装してもよい。詳細についてはここでは繰返し説明しない。
【００７６】
別のマルチコアシナリオでは、図１０に示すように、ネットワーク・デバイスの各コアにデプロイしたサービスおよび処理モジュールは異なる。各コアはサービスの一部のみを処理し、各データ・ストリームのパケットは１つまたは複数のコアに入って処理される。さらに、スケジューラは複数のコアに分散方式でデプロイされる。即ち、スケジューリング・モジュールは各コアに独立にデプロイされて、スケジューラと同じ機能を実行する。この場合、各コアにデプロイされたスケジューリング・モジュールは、同一のストリーム上のスケジューリング情報が当該システムにおいて統合されることを保証するために、関連する情報を転送する必要がある。具体的には、当該スケジューリング情報を各コア上のスケジューラに送信する必要があり、各コアにデプロイしたスケジューラは当該スケジューリング情報と各コアで実行されているサービスに関する情報に従って自己のスケジューリング・ロジックを生成し、当該生成されたスケジューリング・ロジックに従って対応する処理モジュールを起動し、当該受信モジュールが受信したパケットを処理する。さらに、コアがパケット処理とサービス・スケジューリングを完了した後、当該コアは当該スケジューリング情報と処理モジュールが実施した当該パケットに対する処理の結果を、当該パケットを処理する次のコアと同期する必要がある。即ち、複数のコアが協働的な処理を実施するシナリオでは、異なるコア上のスケジューラがさらにスケジューリング情報を交換する必要がある。
【００７７】
本発明の当該実施形態におけるネットワーク・デバイスの具体的な実装の詳細に関しては、上述の方法と装置の実施形態を参照することができ、詳細についてはここでは繰返し説明しないことに留意されたい。
【００７８】
本発明の当該実施形態により提供するネットワーク・デバイスでは、スケジューラを使用して複数のサービスの柔軟なスケジューリングが実現され、従来のパケット処理プロセスが細かく分割され、複数のサービス・スケジューリング点が定義される。さらに、サービスのスケジューリング・ロジックはサービスのスケジューリング情報に従って動的に実現され、複数のサービスの柔軟なスケジューリングが当該スケジューリング・ロジックに従って実現され、これにより、繰返しのスケジューリングが回避され、サービス・スケジューリングの柔軟性と性能が高まり、ネットワーク・デバイスの競争力が高まる。
【００７９】
以下では、上述の方法を実装するために使用される別の装置の実施形態を説明する。図１１に示すように、本発明の１実施形態では、取得モジュール１１０、スケジューリング・ロジック生成モジュール１２０、およびスケジューリング・モジュール１３０を備えたサービス・スケジューリング装置１１を提供する。
【００８０】
取得モジュール１１０は、ネットワーク・デバイスにデプロイした複数のサービスのスケジューリング情報を取得するように構成される。
【００８１】
各サービスのスケジューリング情報を使用して当該サービスのスケジューリングのポリシを示す。各サービスのスケジューリング情報が、当該サービスのポリシ情報、当該サービスが依存する処理モジュールに関する情報、当該サービスが依存する別のサービスに関する情報等を含んでもよいがこれらに限られない。本発明の当該実施形態のスケジューリング点はサービスと処理モジュールの組合せにより決まり、処理モジュールは特定の処理、例えば、ＩＰフラグメンテーション処理、データ・ストリーム管理、Ｌ１−Ｌ３処理、Ｌ７処理等をパケットに対して実施するするように構成されることに留意されたい。
【００８２】
１実施形態では、上述の各サービスのスケジューリング情報が、当該サービスをスケジュールするための明示的に規定したルールまたはタイミングであってもよい。例えば、当該スケジューリング情報を使用して、特定の処理モジュールがパケットの処理を完了した後に特定のサービスをスケジュールするかまたは特定の処理モジュールがパケットに対する特定の処理を完了する段階の後に特定のサービスをスケジュールするようにスケジューラに指示してもよい。例えば、当該パケットに対するレイヤ４の処理が完了した後にＩＰＳサービスがスケジュールされ、当該パケットのヘッダ・フィールドの解析が完了した後にＡＤＣサービスがスケジュールされると規定してもよい。さらに、当該スケジューリング情報がサービスに対して規定された特定のデータ・ストリームのスケジューリング情報をさらに含んでもよい。例えば、ＡＤＣサービスを構成するときに、スケジューラを、８０８０ポートのみのデータ・ストリームを処理するかまたは特定のＩＰもしくは特定のプロトコル等のデータ・ストリームを処理するように規定してもよい。
【００８３】
別の実施形態では、各サービスのスケジューリング情報が、解析や抽出のような方式で当該サービスのサービス・ルールから抽出することによって暗黙的に規定されたスケジューリング情報であってもよい。即ち、当該サービスに対応するサービス・ルールに含まれる条件に従って、特定の処理をパケットに対して実施し、含まれる条件の判定が依存する処理モジュール、ならびに、当該サービスが依存するモジュールに関する情報を決定する。サービス・ルールとはサービスを実行するときに従うべきルールであることに留意されたい。１つのサービス・ルールが２つの部分、即ち、条件と動作を含む。具体的には、１つのサービス・ルールが１つまたは複数の条件を含んでもよく、同じサービス・ルール内の複数の条件が異なるレベルまたは異なる次元のパケット情報に関連してもよい。または、より正確には、各サービスのルールがマッチするかどうかを判定する場合には、当該サービス・ルールに含まれる条件が満たされるかどうかを判定する必要がある。しかし、当該サービス・ルールにおける条件の判定は、少なくともパケットの１つの次元に関する情報に依存する。例えば、(IP = 1.1.1.1 && HTTP. host = www.huawei.com)の場合はＡＤＣを実行する、というルールにおいて、「IP = 1.1.1.1」と「HTTP. host = www.huawei.com」は２つの並列な条件である。ここで、前者はレイヤ３の条件であり後者はレイヤ７の条件であり、当該２つの条件は「論理積」の論理関係にある。したがって、ＡＤＣサービスの実行は、パケットに対するレイヤ３とレイヤ７の処理が完了することに依存する必要がある。
【００８４】
ＩＰＳサービスを１例として使用し、当該ＩＰＳサービスに含まれるサービス・ルールがif (HTTP. Requtet.URL == www.huawei.com) {do action}であるとすると、当該サービスのスケジューリング情報を、当該サービス・ルールを解析することによって得てもよい。当該スケジューリング情報は、スケジューリング位置がストリームの要求方向にあること、識別モジュールをスケジュールしてデータ・ストリームのプロトコルを識別するようにスケジュールする必要があること、当該プロトコルがＨＴＴＰプロトコルである場合には解析モジュールを起動して解析によりＵＲＬ情報を取得する必要があること、を含む。
【００８５】
より例示的な実施形態では、スケジューリング情報がさらにサービスの優先度情報を含む。例えば、ＩＰＳサービスがＡＤＣサービスの前にスケジュールされるように、ＩＰＳサービスとＡＤＣサービスの両方ををレイヤ７処理の間にスケジュールしてもよく、優先度を構成してもよい。
【００８６】
上述の複数のサービスのスケジューリング情報を、ユーザにより構成されるかまたはネットワーク・デバイスにより生成された構成ファイルに含めてもよいことに留意されたい。サービス・スケジューリングを実施する前に、取得モジュール１１０が当該構成ファイルを解析して各サービスのスケジューリング情報を取得してもよい。このように、サービスとサービス・スケジューリング装置の統合が実現される。
【００８７】
スケジューリング・ロジック生成モジュール１２０は、取得モジュール１１０が取得した複数のサービスのスケジューリング情報に従ってスケジューリング・ロジックを生成するように構成される。当該スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点はスケジューラがサービスをスケジュールする論理的な制御点である。
【００８８】
具体的には、スケジューリング・ロジック生成モジュール１２０がまずネットワーク・デバイスにデプロイした処理モジュールとサービスに関する情報を取得する。即ち、スケジューリング・ロジック生成モジュール１２０は、処理モジュールとサービスがネットワーク・デバイスにデプロイされていることを学習する。ここで、一連のスケジューリング点を処理モジュール内部で提供してもよい。即ち、特定のサービスが特定の処理モジュール内部の１つのスケジューリング点でスケジュールされると規定してもよい。例えば、解析モジュールがパケットのヘッダ・フィールドの解析を完了したときにＩＰＳサービスがスケジュールされると規定してもよい。さらに、一連のスケジューリング点を処理モジュールの間で定義してもよい。このように、特定のサービスを、特定の処理モジュールがパケットの処理を完了した後にスケジュールしてもよい、例えば、ＡＤＣサービスが解析モジュールとＬ７処理モジュールの間のスケジューリング点でスケジュールされると規定してもよい。この場合、ＡＤＣサービスは、解析モジュールがパケットの解析を完了した後かつ当該パケットをＬ７処理モジュールに送信して処理する前に起動される。ここでのスケジューリング点は、サービス・スケジューリング装置がサービス・スケジューリングを実施する論理的な制御点である。ネットワーク・デバイスにデプロイした処理モジュールとサービスに関する情報を取得した後、スケジューリング・ロジック生成モジュール１２０はさらに、各サービスのスケジューリング情報に従って、処理モジュールの間および各処理モジュールの内部に存在するスケジューリング点、サービス間の依存関係等を決定し、スケジューリング・ロジックを生成する。当該スケジューリング・ロジックは主に以下の内容を含む。
（１）パケットを処理する必要がある全ての処理モジュールの実行シーケンス（これらの処理モジュールによりパケットを処理するためのシーケンス）
（２）スケジュールする必要がある各サービスのスケジューリング点情報。具体的には、各サービスのスケジューリング点情報が各サービスと当該各サービスのスケジューリング点の間のマッピング関係を含んでもよい。例えば、１実施形態では、スケジュールする必要がある各サービスの識別子をスケジューラが当該サービスをスケジュールするスケジューリング点の識別子に関連付けてもよく、当該サービスのスケジューリング点情報としての役割を果たすために当該関連付けに関する情報を具体的なデータ構造に格納する。
【００８９】
具体的な実施形態では、ネットワーク・デバイスにデプロイした複数のサービスの各サービスのスケジューリング情報は特に、当該サービスのサービス・ルールおよび当該サービスと別のサービスの間の依存関係を含んでもよい。この場合、スケジューリング・ロジック生成モジュール１２０は特に、当該複数のサービスに対応する全てのサービス・ルールに含まれる条件に従って、当該条件が満たされているかどうかを判定するために必要なＮ個の処理モジュールを決定し、当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要がある少なくとも１つのスケジューリング点を決定し、各スケジューリング点と当該スケジューリング点で起動する必要があるサービスの間のマッピング関係を生成するように構成されたマッピング・ユニットであって、ネットワーク・デバイスはＭ個の処理モジュールを備え、ＭとＮは１以上の正の整数であり、ＮはＭ以下であるマッピング・ユニットと、当該複数のサービスのサービスの間の依存関係に従って当該Ｎ個の処理モジュールの実行シーケンスを決定するように構成されたソート・ユニットであって、当該生成されたスケジューリング・ロジックは当該Ｎ個の処理モジュールの実行シーケンスとサービスをスケジュールする必要がある各スケジューリング点および当該スケジューリング点で起動する必要があるサービスの間のマッピング関係とを含み、各スケジューリング点は当該Ｎ個の処理モジュールの処理モジュールの間および／または当該Ｎ個の処理モジュールの各処理モジュール内部にあるソート・ユニットと、を備える。
【００９０】
スケジューリング・ロジック生成モジュール１２０が、生成されたスケジューリング・ロジックの役割を果たすために、Ｎ個のモジュールの決定された実行シーケンスと上述のマッピング関係を統合してもよいことに留意されたい。具体的には、本発明の当該実施形態では、当該スケジューリング・ロジックを、構成ファイル、コマンド・ラインまたはチャートのような複数の方式で提供してもよく、本明細書では具体的には限定されない。
【００９１】
本発明の当該実施形態のスケジューリング点は、処理モジュールがパケットの処理を完了した後にスケジューリングするためのスケジューリング点には限定されず、当該処理モジュール内部の様々な処理段階でスケジューリングするためのスケジューリング点も含むことに留意されたい。例えば、ネットワーク・デバイスがＵＲＬフィルタリング・サービスで構成されている場合には、スケジューリング・ロジック生成モジュール１２０が、ヘッダ・フィールドの解析が完了した後に当該ＵＲＬフィルタリング・サービスをスケジュールしてもよく、当該ＵＲＬフィルタリング・サービスをスケジュールする前にパケット全体の解析を完了する必要はない。
【００９２】
スケジューリング・モジュール１３０は、スケジューリング・ロジック生成モジュール１２０によって生成されたスケジューリング・ロジックに含まれる実行シーケンスに従って、対応する処理モジュールを連続的に起動してネットワーク・デバイスが受信したパケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って各スケジューリング点で対応するサービスを起動ように構成される。
【００９３】
具体的には、スケジューリング・モジュール１３０が、スケジューリング・ロジック生成モジュール１２０が決定した各スケジューリング点で、かつ、スケジューリング・ロジック生成モジュール１２０が生成したマッピング関係に従って、当該スケジューリング点に対応する全てのサービスを決定し、次いで、スケジューリング・モジュール１３０が、少なくとも１つのパケット処理結果に従って、全てのサービスの各サービスのスケジューリング条件が満たされているかどうかを判定し、当該スケジューリング条件を満たすサービスを、各スケジューリング点でスケジュールする必要があるサービスとして決定する。１実施形態では、当該スケジューリング点でスケジュールする必要があるサービスが１つしかない場合には、スケジューリング・モジュール１３０は、スケジュールする必要があるサービスを当該スケジューリング点で直接起動する。別の実施形態では、当該スケジューリング点でスケジュールする必要がある複数のサービスがある場合には、スケジューリング・モジュール１３０は、スケジュールする必要があるサービスの各サービスの優先度の降順に従って、当該スケジューリング点で連続的にスケジュールする必要がある異なる優先度のサービスをスケジュールする。
【００９４】
サービスのスケジューリング条件は当該サービスのスケジューリングのポリシであり、条件を示すために使用され、当該条件が満たされたときにのみ当該サービスをスケジュールできることに留意されたい。
【００９５】
１実施形態では、サービス・スケジューリング装置１１がさらに、Ｎ個の処理モジュールのうちＰ個の処理モジュールによるネットワーク・デバイスが受信したパケットに対する処理の結果に従って、当該Ｎ個の処理モジュールのうち当該Ｐ個の処理モジュールに加えて、Ｎ−Ｐ個の処理モジュールの実行シーケンスを調節し、当該Ｎ−Ｐ個の処理モジュールの処理モジュールの間および／または当該Ｎ−Ｐ個の処理モジュールの各処理モジュール内部の、サービスをスケジュールする必要があるスケジューリング点を再決定するように構成された調節モジュール１４０であって、Ｐは１より大きい正の整数でありＰはＮより小さい調節モジュール１４０を備えることが好ましい。このように、スケジューリング・ポリシを、当該処理モジュールによるパケットに対する処理の結果に従って動的に調節してもよく、それにより、さらにスケジューリングの柔軟性と性能が高まる。
【００９６】
当該実施形態のサービス・スケジューリング装置１１の機能モジュールの諸機能を特に上述の方法の実施形態における方法に従って実装してもよいことは理解される。具体的な実装プロセスの詳細に関しては、上述の方法の実施形態の関連説明を参照することができ、詳細についてはここでは繰返し説明しない。さらに、サービス・スケジューリング装置１１の機能モジュールが、ソフトウェアにより実装された機能モジュールであってもよく、コストに関係なく場合によってはハードウェア回路を用いて実装してもよい。例えば、取得モジュール１１０が、ネットワークアダプタ、無線周波数モジュール、Ｗｉ−Ｆｉチップ等のような、通信機能を具備したハードウェアユニットであってもよく、スケジューリング・ロジック生成モジュール１２０とスケジューリング・モジュール１３０が中央演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略してＣＰＵ）または特殊用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、略してＡＳＩＣ）であってもよく、または、本発明の当該実施形態で提供したロジック生成モジュールとスケジューリング・モジュールの機能を実装する１つまたは複数の集積回路として構成してもよい。
【００９７】
本発明の当該実施形態で提供するサービス・スケジューリング装置では、従来のパケット処理プロセスが細かく分割され、複数のサービス・スケジューリング点が定義される。さらに、サービスのスケジューリング・ロジックがサービスのスケジューリング情報に従って動的に決定され、複数のサービスの柔軟なスケジューリングが当該スケジューリング・ロジックに従って実現され、これにより、繰返しのスケジューリングが回避され、サービス・スケジューリングの柔軟性と性能が高まり、ネットワーク・デバイスの競争力が高まる。
【００９８】
図１２は、本発明の１実施形態に従うネットワーク・デバイスの略図である。図１２に示すように、ネットワーク・デバイス１２は、少なくとも１つのプロセッサ１２０１、記憶部１２０２、通信インタフェース１２０３、およびバス１２０４を備える。プロセッサ１２０１、記憶部１２０２、および通信インタフェース１２０３は、バス１２０４を用いて接続され相互通信を実現する。バス１２０４は、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、略してＩＳＡ）バス、周辺機器相互接続（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ、略してＰＣＩ）バス、拡張業界標準アーキテクチャ（Ｅｘｔｅｎｄｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＥＩＳＡ略して）バス等であってもよい。当該バスを、アドレス・バス、データ・バス、制御バス等に分割してもよい。説明の簡単さのため、図１２のバスは１つの太線のみを用いて表してあるが、これは１つのバスのみまたは１種類のバスのみが存在することを意味するものではない。
【００９９】
記憶部１２０２は、実行可能プログラム・コードを格納するように構成される。当該プログラム・コードはコンピュータ動作命令を含む。記憶部１２０２が高速ＲＡＭメモリを備えてもよく、不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、例えば、少なくとも１つの磁気ディスク記憶部を備えてもよい。場合によっては、記憶部１２０２が、上述のプロセッサ１２０１から遠く離れた位置にある記憶装置を備えてもよい。
【０１００】
１実施形態では、プロセッサ１２０１は記憶部１２０２に格納された実行可能プログラムを読み出して実行し、通信インタフェース１２０３を用いて複数のサービスのスケジューリング情報を受信し、当該複数のサービスの各サービスのスケジューリング情報に従ってスケジューリング・ロジックを生成し、当該生成されたスケジューリング・ロジックに含まれる実行シーケンスに従って、当該複数の処理モジュールの各処理モジュールを連続的に起動してネットワーク・デバイスが受信したパケットを処理し、当該スケジューリング・ロジックに含まれるマッピング関係に従って各スケジューリング点で対応するサービスを起動する。通信インタフェース１２０３は、データ受信および送信機能、例えば、ネットワーク・ポート、ＵＳＢインタフェース、無線周波数ユニット、アンテナ、Ｗｉ−Ｆｉ通信モジュール等を実装できるコンポーネントまたはユニットであってもよい。当該スケジューリング・ロジックは、パケットを処理する複数の処理モジュールの実行シーケンスと各サービスおよび各サービスのスケジューリング点の間のマッピング関係とを含み、当該各サービスのスケジューリング点はスケジューラがサービスをスケジュールする論理的な制御点である。
【０１０１】
以上のプロセスに関する具体的な詳細については、上述の方法と装置の実施形態を参照することができ、詳細についてはここでは繰返し説明しない。
【０１０２】
プロセッサ１２０１が中央演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略してＣＰＵ）または特殊用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、略してＡＳＩＣ）であってもよく、または、本発明の諸実施形態を実装する１つまたは複数の集積回路として構成してもよい。
【０１０３】
上述の機能以外に、プロセッサ１２０１を、上述の方法の実施形態における他のプロセスを実行するように構成してもよいことに留意されたい。詳細についてはここでは繰返し説明しない。
【０１０４】
本願で提供した幾つかの実施形態では、開示したサービス・スケジューリング装置および方法、ならびにネットワーク・デバイスを他の方式で実装してもよいことは理解される。例えば、上述の装置の実施形態は例示的なものにすぎない。
【０１０５】
別個の部分として説明したユニットが物理的に別個であってもなくてもよく、ユニットとして表示した部分が物理的なユニットであってもなくてもよく、１つの位置に配置してもよく、または、複数のネットワーク・ユニットに分散させてもよい。当該ユニットの一部または全部を、実際のニーズに従って選択して、諸実施形態の解決策の目的を実現してもよい。
【０１０６】
さらに、本発明の諸実施形態で提供するネットワーク・デバイス内の機能ユニットを１つの処理ユニットに統合してもよく、または、当該ユニットの各々が物理的に単体で存在してもよく、または、複数のユニットが１つのユニットに統合される。統合ユニットを、ハードウェアの形態で実装してもよく、または、ソフトウェアの機能ユニットの形態で実装してもよい。
【０１０７】
統合ユニットをソフトウェア機能ユニットの形態で実装し独立な製品として販売または使用するときには、当該統合ユニットをコンピュータ可読記憶媒体に格納してもよい。かかる理解に基づいて、本発明の技術的解決策を本質的に、または、先行技術に貢献する部分、または、当該技術的解決策の全部もしくは一部をソフトウェア製品の形で実装してもよい。当該ソフトウェア製品は記憶媒体に格納され、本発明の諸実施形態でで説明した方法の全部または一部を実施するようにコンピュータ装置（パーソナル・コンピュータ、サーバ、またはネットワーク・デバイスであってもよい）に指示するための幾つかの命令を含む。上述の記憶媒体には、ＵＳＢフラッシュ・ドライブ、取外し可能ハード・ディスク、読取専用メモリ（ＲＯＭ、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ランダム・アクセス・メモリ（ＲＡＭ、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、磁気ディスク、または光ディスクのような、プログラム・コードを格納できる任意の媒体が含まれる。
【０１０８】
最後に、上述の諸実施形態は本発明の技術的解決策を説明するためのものにすぎず本発明を限定するものではないことに留意されたい。上述の諸実施形態を参照して本発明を詳細に説明したが、本発明の諸実施形態の技術的解決策の趣旨と範囲から逸脱することなく、上述の諸実施形態で説明した技術的解決策に対して修正を行いうること、または、その技術的特徴に均等な置換えを行いうることは当業者には理解される。
【符号の説明】
【０１０９】
７１０  トランシーバ・モジュール
７２０  処理モジュール１
７３０  スケジューラ
１２０１  プロセッサ
１２０２  記憶部
１２０３  通信インタフェース
【図１】
0006004410.tif 000003
【図２】
0006004410.tif 000004
【図４】
0006004410.tif 000005
【図５】
0006004410.tif 000006
【図６】
0006004410.tif 000007
【図７】
0006004410.tif 000008
【図８】
0006004410.tif 000009
【図９】
0006004410.tif 000010
【図１０】
0006004410.tif 000011
【図１１】
0006004410.tif 000012
【図１２】
0006004410.tif 000013
【図３】
0006004410.tif 000014