(57)【特許請求の範囲】
【請求項１】
コンピューティング装置のネットワーク・トラフィックを制御するための柔軟なポリシーを定義するためのコンピューター実行型の方法であって、 当該方法は、前記コンピューティング装置が、  １つまたは複数のネットワークを介して、前記コンピューティング装置が通信をどのように送信できるかを決定する１つまたは複数のネットワーク設定を記述する情報を受け取るステップと、  １つまたは複数の特定のネットワーク設定に対する値を定義する１つまたは複数のポリシー要素をポリシー管理者から受け取るステップと、  前記ポリシー管理者が前記ポリシーに関するメッセージを送信する宛先を示す場合に、前記ポリシーに関するメッセージを配信する宛先を受け取るステップと、  任意の受け取ったポリシー要素および宛先により少なくとも部分的に定義されるポリシーを、前記コンピューティング装置による展開および使用のためにポリシー・データ記憶に記憶するステップと、  定義された前記ポリシーを１つまたは複数のコンピューティング装置に展開するステップと、  を含み、  上記各ステップが少なくとも１つのプロセッサーで実施され、  前記宛先を受け取るステップが、前記宛先を何らかの条件下で無効にし、他の条件下では前記宛先を無効にしないというポリシーを定義するステップであって、少なくとも１つの条件が前記コンピューティング装置のバッテリーの寿命であるステップを含む、 方法。
【請求項２】
ネットワーク設定情報を受け取るステップが、携帯電話で、少なくともセルラ・データ・ネットワークおよび無線Ｗｉ−Ｆｉネットワークを特定するステップを含む、請求項１に記載の方法。
【請求項３】
ネットワーク設定情報を受け取るステップが、利用可能なネットワーク・ハードウェアの特性を記述する情報を受け取るステップを含む、請求項１に記載の方法。
【請求項４】
１つまたは複数のポリシー要素を受け取るステップが、利用可能な場合は低い電力使用量のネットワークを選択することによって電力使用量を削減する値を受け取るステップを含む、請求項１に記載の方法。
【請求項５】
１つまたは複数のポリシー要素を受け取るステップが、前記コンピューティング装置の様々な条件下で適用される１つまたは複数のルールを受け取るステップを含む、請求項１に記載の方法。
【請求項６】
前記宛先を受け取るステップが、ネットワークの選択基準により特定された前記選択されたネットワークを介して前記メッセージを伝送する指示を受け取るステップを含む、請求項１に記載の方法。
【請求項７】
前記宛先を受け取るステップが、前記コンピューティング装置により指定された宛先を無効にして、前記ポリシーにより定義された受信者を指定するステップを含む、請求項１に記載の方法。
【請求項８】
定義されたポリシーを記憶する前記ステップは、前記ポリシーを、前記ポリシー管理者によってアクセス可能な中央データ記憶、および、分散コンピューティング装置に記憶するステップを含む、請求項１に記載の方法。
【請求項９】
定義されたポリシーを展開する前記ステップは、中央ポリシー記憶から前記コンピューティング装置に配信された前記ポリシーを前記コンピューティング装置が受け取り、前記ポリシーを前記コンピューティング装置で局所的に記憶し、次いで、前記ポリシーの指定の基準を実行するようにされたネットワーク決定として前記ポリシーを使用するステップを含む、請求項１に記載の方法。
【請求項１０】
ネットワーク決定を制御し管理するための柔軟なポリシーを定義するためのコンピューター・システムであって、前記コンピューター・システムはコンピューティング装置に含まれ、前記コンピューティング装置は、  プロセッサーおよびメモリーであって、    １つまたは複数のポリシー定義をポリシー管理者から受け取るポリシー定義コンポーネントと、    コンピューティング装置でネットワーク決定の間のアクセスのために、定義されたポリシーを持続的に記憶するポリシー・データ記憶と、    １つまたは複数のポリシーを１つまたは複数のコンピューティング装置に展開し、経路決定を行う際に前記コンピューティング装置が前記ポリシーを参照できるようにする、ポリシー展開コンポーネントと、    ネットワーク・データを宛先に送信する少なくとも１つのネットワーク・トランスポートを有するコンピューティング装置で実行されているアプリケーションからデータ転送要求を受け取る、要求受信コンポーネントと、    １つまたは複数のネットワーク条件を選択するための条件を少なくとも１つの選択基準に基づいて規定する展開されたポリシーを参照する、ネットワーク選択コンポーネント、    要求されたデータ転送を、前記ネットワーク選択コンポーネントにより選択されたネットワーク条件を用いて完了する、データ転送コンポーネントと、    １つまたは複数のポリシーを１つまたは複数のポリシー・ソースから受け取り、どのポリシー要素を適用するかを判定する、ポリシー管理者コンポーネントと、  これらのコンポーネントの中で具現化されるソフトウェア命令を実行するように構成される前記プロセッサーおよび前記メモリー  を備え、  前記ネットワーク選択コンポーネントが、前記ポリシーにより使用される前記コンピューティング装置の１つまたは複数の環境因子を決定し、決定した前記環境因子を前記ポリシー内のルールと比較して、前記ポリシーを満たす適切なネットワーク条件を選択し、前記１つまたは複数の環境因子は前記コンピューティング装置のバッテリーの寿命を含む、  コンピューター・システム。
【請求項１１】
前記ポリシー定義コンポーネントが、前記ポリシー管理者がポリシーを定義するためのユーザ・インタフェースを提供し、  作成されたポリシーを少なくとも１つのコンピューティング装置に展開するために前記ポリシー・データ記憶に記憶する、請求項１０に記載のシステム。
【請求項１２】
前記ネットワーク選択コンポーネントが、ネットワークを介してメッセージまたは他のパケットをコンピューティング装置から送信することをアプリケーションが要求するときに生ずる経路決定に応答して起動される、請求項１０に記載のシステム。
【請求項１３】
前記要求受信コンポーネントが、前記要求を捕らえて、前記ネットワーク選択コンポーネントを起動して、展開された更新可能なルーティング・ポリシーに基づいて前記要求を送信する適切なネットワークを選択する、請求項１０記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、柔軟なポリシー・ベースのネットワーク意思決定に関する。
【０００２】
［背景技術］
モバイル装置および他のコンピューティング装置はしばしば、他のコンピューティング装置に接続してサービスにアクセスするために使用できる複数のネットワーク・トランスポートを含む。例えば、モバイル・スマートフォンが、セルラ・データ・ネットワーク（例えば、３Ｇ、ＥＤＧＥ、４Ｇ）、無線ネットワーク（例えば、８０２．１１  Ｗｉ−Ｆｉ）、およびブルートゥース・ネットワークに接続するためのハードウェアを含むことができる。各ネットワークには利点と欠点がある。例えば、あるネットワークでは、他のネットワークより高いスループットを提供するかもしれないが、利用可能な場所は少ないかもしれない。中には、無料Ｗｉ−Ｆｉに対する制限付きの３Ｇデータ・プランのように、高い利用料金を課すネットワークもありうる。幾つかのケースでは、特定のネットワーク・ハードウェアが、より高い電力使用の要求をし、従ってコンピューティング装置についてバッテリーの寿命がより長いかまたはより短いかを示すことがありうる。
【０００３】
経路決定では、アプリケーションからの、メッセージまたは他のトラフィックを、ネットワークを介して送信する要求を処理するためにどのネットワークを使用するかを決定する。モバイル装置はしばしば、経路決定がハード・コードされており、その結果、例えば、装置はＷｉ−Ｆｉ接続の使用を優先し、Ｗｉ−Ｆｉ接続が利用できない場合は３Ｇ接続を使用し、３Ｇ接続が利用できない場合はＥＤＧＥ接続を使用する。このスキーム（scheme）において、装置は、他の検討事項にかかわらず、最も高速で利用可能な接続を選択する。ネットワーク装置は、どの種類のメッセージを送信するか、どの条件下で様々なネットワーク・トランスポートを使用するか、どれだけ多くの電力を送信に使用するか、等のような、ネットワークに関連する他の多くの種類の決定を行う。
【０００４】
帯域の利用可能性以外にも装置のネットワーク決定を通知する他の多くの検討事項がありうるが、今日では、ユーザは、通信サービス・プロバイダー（例えば、携帯電話会社、等）または装置メーカーがそれらの装置に組み込んだ選択肢を押し付けられている。ユーザは、接続をあるネットワーク・タイプもしくは別のネットワーク・タイプへと実行するためにＷｉ−Ｆｉまたは他のネットワーク・トランスポートを手動で切断できるかもしれないが、このプロセスは面倒であり、しばしば不明瞭な設定インタフェースを掘り進んで調節すべき正しい構成パラメータを発見する必要がある。通信事業者が、経路決定の最重要懸案事項としてコストを決定したならば、他の検討事項が無視され、ユーザは、低額な月額料金を享受できるかもしれないが、ある場合にはユーザはより高速なスループットを求めることもある。反対に、通信事業者が最重要懸案事項としてスループットを決定したならば、コストが無視されるかもしれない。かかる装置の企業ユーザにとっては、従業員に提供された装置に対して他のポリシーが望ましいかもしれないが、かかるポリシーの使用を制御し実行するための機構は存在しない。
【０００５】
最後に、装置の動作をガイドするためのユーザを持たない装置についての検討事項がある。これらの装置は一般に、装置の動作期間に同一の機能を実施するという点で、本来特化されたものであり、機能が比較的固定されている。これらの特化した装置に対して、そのネットワークの利用は専ら装置の製造者がネットワークの選択に関して行った選択に依存し、ネットワーク接続の実際の利用は、装置で実行されているアプリケーションがどのようにネットワークの利用を選択したかに依存する。これらの装置の所有者にとっては、装置がいったん出荷され構成されると、これらの特性を変更することは困難なものになりうる。
【発明の概要】
【０００６】
本明細書では、コンピューティング装置が、ポリシー管理者によって定義された特定のポリシーに基づいてコンピューティング装置が様々なネットワーク決定を管理し制御できるようにするネットワーク・ポリシー・システムを説明する。ポリシー管理者には、装置の製造者、装置を保守する情報技術（ＩＴ）の社員、またはネットワーク・プロバイダーを含めてもよい。ポリシーは、ポリシー管理者が様々な条件下で定義した多数の因子を含むことができる。当該因子には、コスト、電力消費、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）時間、バッテリーの寿命、プール時間（ｐｏｏｌｅｄ  ｍｉｎｕｔｅ）の利用、等が含まれる。特定のデータ・パケットの処理が、ポリシー定義の一部であってもなくてもよい。装置におけるパケット・ルーティングは、今日、主に帯域利用可能性またはコストのようなハード・コードされた因子に基づくが、装置のユーザ、通信事業者、または他のポリシー管理者に訴える他の検討事項も存在しうる。ネットワーク・ポリシー・システムにより、ポリシー管理者は管理者の目的に適した１つまたは複数の柔軟なネットワーク・ポリシーを定義することができる。したがって、ポリシーの定義と適用は、いつおよびどのようにデータ・パケットを選択されたエンドポイントに選択されたネットワークを介して送信することを開始するかを事前設定されたポリシーを介して決定できるのに十分なほど、装置をスマートにする方法である。
【０００７】
本要約は、選択した概念を簡潔な形で導入するために与えたものである。これらの概念は下記の発明を実施するための形態でさらに説明する。本要約は、クレーム主題の主要な特徴または本質的な特徴を特定しようとするものではなく、クレーム主題の範囲を限定するために使用しようとするものでもない。
【図面の簡単な説明】
【０００８】
【図１】一実施形態における、ネットワーク・ポリシー・システムのコンポーネントを示すブロック図である。
【図２】一実施形態における、コンピューティング装置のネットワーク・トラフィックを方向付けるための柔軟なルーティング・ポリシーを定義するネットワーク・ポリシー・システムの処理を示す、流れ図である。
【図３】一実施形態における、コンピューティング装置にインストールされた以前に展開されたネットワーク・ルーティング・ポリシーを実行するネットワーク・ポリシー・システムの処理を示す流れ図である。
【図４】一実施形態における、ネットワーク・ポリシー・システムを用いた例示的なコンピューティング装置を示すブロック図である。
【図５】一実施形態における、ネットワーク・ポリシー・システムがそこからポリシーを受け取ることができる潜在的なソースを示すブロック図である。
【図６】一実施形態における、複数の受け取られたネットワーク・ポリシーの間の衝突の組合せおよび解決を示す流れ図である。
【発明を実施するための形態】
【０００９】
本明細書では、コンピューティング装置が、ポリシー管理者が定義した特定のポリシーに基づいて様々なネットワーク決定を管理し制御できるようにするネットワーク・ポリシー・システムを説明する。当該ポリシー管理者には、装置の製造者、装置を保守する情報技術（ＩＴ）社員、エンド・ユーザ、またはネットワーク・プロバイダーを含めてもよい。ポリシーは、ポリシー管理者が様々な条件下で定義した多数の因子を含むことができる。当該因子には、コスト、電力消費、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）時間、バッテリーの寿命、プール時間の利用、時間あたりの利用コスト、帯域消費のコスト、現在のネットワーク利用、等が含まれる。データ・パケットのタイプ、起点、内容およびプロトコルがポリシー定義の一部であってもなくてもよい。例えば、自動体外式除細動器（ＡＥＤ）装置が、当該装置を監視し定期的に報告する幾つかのアプリケーションを有してもよいが、当該装置がセルラー接続から動作するとき、当該ポリシーでは、緊急の低バッテリー通知を特定のエンドポイントに送信できるにすぎない。これは、データ・パケット、ネットワーク、およびエンドポイントに対する定義を含むポリシーの１例である。別の例では、データ・パケット（メッセージ）およびネットワークのみが定義され、当該メッセージが特定のエンドポイントではなくネットワークにブロードキャストされる。これは、プライベート・ネットワークに対して、または、ネットワーク・リソースが安価なときのネットワーク・リソースの利用に対して有用でありうる。装置におけるパケット・ルーティング（Ｗｉ−Ｆｉ対セルラーのような、異なるトランスポート）は、今日、主に帯域利用可能性またはコストのようなハード・コードされた因子に基づいて生じているが、装置のユーザ、通信事業者、または他のポリシー管理者に訴える他の検討事項もありうる。低バッテリー電力が装置に残されたケースでは、低バッテリー・コストのトランスポートに切り替えるのは、価格と比べると正しい決定である。装置は、最後の残存バッテリー電力を用いて生産的な作業を完了する必要があるかもしれない。
【００１０】
ネットワーク・ポリシー・システムにより、ポリシー管理者は、管理者の目的に適した１つまたは複数の柔軟なネットワーク・ポリシーを定義することができる。ポリシーは、供給がなくなった自動販売機に対するＳＯＳメッセージを可能にするのと同様に単純にすることができ、どのネットワークを使用するかを幾つかの因子に基づいて特定するための決定ツリーほど複雑であることができる。当該因子は、例えば、時刻、メッセージの優先度、ネットワーク・プロバイダーに対するコスト、メッセージの内容、ネットワークまたは送信プロトコルのセキュリティ、ネットワークの待ち時間、処理時間、プロトコルの信頼度、等である。ポリシーを、選択機能に基づいて複数のネットワークを使用するように定義することができる。当該システムにより、使用中のネットワーク・トランスポートが、例えば高いビジネス・インパクトを高い優先度として有しうる重要メッセージを送信するために、割込みを許可する能力を有することができるようにすることができる。これらのメッセージが様々なコスト構造を有し、複数のネットワークを利用することができる。さらに、ポリシーが、選択されたネットワークを利用する方法を規定してもよい。例えば、ポリシーがＭＴＵ（ｍｉｎｉｍｕｍ  ｔｒａｎｓｍｉｓｓｉｏｎ  ｕｎｉｔ）サイズ、再試行回数、およびＴＴＬ（ｔｉｍｅ  ｔｏ  ｌｉｖｅ）を規定してもよい。ポリシーが、ネットワーク利用が特定の（例えば、５０％）容量未満であるとき、特定のネットワークの利用のみが許されると規定してもよい。したがって、ポリシーの定義と適用は、いつおよびどのようにデータ・パケットを選択されたネットワークを介して選択されたエンドポイントに送信することを開始するかを事前設定されたポリシーを介して決定できるのに十分なほど、装置をスマートにする方法である。
【００１１】
図１は、一実施形態における、ネットワーク・ポリシー・システムのコンポーネントを示すブロック図である。システム１００は、ポリシー定義コンポーネント１１０、ポリシー・データ記憶１２０、ポリシー展開コンポーネント１３０、要求受信コンポーネント１４０、ネットワーク選択コンポーネント１５０、データ転送コンポーネント１６０、およびポリシー管理者コンポーネント１７０を備える。これらのコンポーネントの各々を、本明細書でさらに詳細に説明する。
【００１２】
ポリシー定義コンポーネント１１０は、１つまたは複数のポリシー定義をポリシー管理者から受け取る。コンポーネント１１０がユーザ・インタフェースまたはプログラムＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）を提供してもよい。当該ユーザ・インタフェースまたはプログラムＡＰＩを通して、ＩＴ社員、エンド・ユーザ、通信サービス・プロバイダー、装置メーカー、または他のポリシー管理者が、１つまたは複数のコンピューティング装置に対するネットワーク関連の決定を制御するためのポリシーを生成することができる。ポリシー定義コンポーネント１１０は、様々な条件下で送付するネットワーク、エンドポイント、およびメッセージをそこから選択する様々なポリシー・ルール、ならびに、コスト、バッテリー電力、スループット、等などを選択するために使用される基準を公開する。ポリシー定義コンポーネント１１０は、受け取ったポリシーをポリシー・データ記憶１２０に記憶する。
【００１３】
ポリシー・データ記憶１２０は、ネットワーク決定の間にアクセスするために、定義されたルーティング・ポリシーを持続的に記憶する。ポリシー・データ記憶１２０は、１つまたは複数のメモリー内データ構造、ファイル、ファイル・システム、ハード・ドライブ、外部記憶装置、データベース、クラウド・ベースの記憶サービス、または後に使用するためにデータを持続的に記憶する他の記憶設備を含むことができる。ポリシー・データ記憶１２０は新たなポリシーをポリシー定義コンポーネント１１０から受け取り、ポリシー・データ記憶１２０にポリシー展開コンポーネント１３０によりアクセスして、１つまたは複数のポリシーを１つまたは複数のコンピューティング装置（例えば、スマートフォン、ラップトップ・コンピューター、タブレット・コンピューター、等）に展開してもよい。例えば、企業が、コスト制御、バッテリーの寿命、等のような組織の優先度をバランスするポリシーを、当該企業にわたって管理される装置に提供してもよい。ネットワーク選択コンポーネント１５０は、ネットワーク決定中にポリシー・データ記憶１２０または展開されたポリシーに記憶域１２０からアクセスして、ポリシーの定義された基準を実行する。
【００１４】
ポリシー展開コンポーネント１３０は、１つまたは複数のポリシーを１つまたは複数のコンピューティング装置に展開し、ネットワーク関連の決定がされたときにコンピューティング装置がポリシーを参照できるようにする。ネットワーク関連の決定は、メッセージまたは他のパケットをネットワーク上でコンピューティング装置から送信することをアプリケーションが要求する度に生じうる。代替または追加として、ポリシーを接続ごと、期間ごと、等に適用してもよい。ポリシー展開コンポーネント１３０が、中央のアクセス可能なサーバーから１つまたは複数の装置に、ポリシーをコピーしてもよい。幾つかの実施形態では、装置が定期的にポリシー・サーバーに新たなポリシーを問い合わせる（即ち、プル技術）。代替または追加として、ポリシー展開コンポーネント１３０がプッシュ技術を使用してポリシーを装置にプッシュしてもよい。「プッシュ」技術では通信セッションを、エンド・ユーザ装置（例えば、スマートフォン）ではなく、サーバーのようなネットワーク要素から開始する。他の実施形態では、システム１００が、展開機構を提供せず、通信事業者その他がどのようにポリシー配布を扱うかを決定できるようにしてもよい。
【００１５】
要求受信コンポーネント１４０は、ネットワーク・データをエンドポイントに送信するための複数のネットワーク・トランスポートを有するコンピューティング装置で実行されているアプリケーションからデータを転送する要求を受け取る。当該アプリケーションは、電子メールプログラムまたはウェブ・ブラウザのようなユーザ・モードのアプリケーション、ならびに同期サービスのようなオペレーティング・システム・サービスを備えてもよい。要求受信コンポーネント１４０は、当該要求を捕らえて、ネットワーク選択コンポーネント１５０を用いて、当該要求を送信すべき適切なネットワークを選択する。幾つかのケースでは、使用すべきネットワークに関する特定の情報とともに要求が到着してもよく、他のケースでは、アプリケーションが、コンピューティング装置に関連するシステム・ソフトウェアが適切なネットワークを選択することを期待する。
【００１６】
ネットワーク選択コンポーネント１５０は、複数の利用可能なネットワークから１つを選択するための条件を少なくとも１つの選択基準に基づいて規定するポリシーを参照する。当該選択基準は、幾つかの因子を考慮してよい。当該因子には、各ネットワークのバッテリー消費、ネットワークを利用するサブスクリプション・コスト、各ネットワークを待機する待ち行列データ、またはポリシー管理者が定義する他の任意の因子が含まれる。コンポーネント１５０が、あるネットワークの集団から選択して、当該ネットワークで任意の送信が可能であるかどうかが判定されるようにすることも可能である。ネットワーク選択コンポーネント１５０が、ポリシーが使用する幾つかの環境因子を決定してもよい。当該環境因子には、現在のバッテリー残存量、現在のプロセッサー使用量、利用可能なネットワーク、待ち行列ネットワーク・トラフィック、等が含まれる。システムはこれらの環境因子をポリシー内のルールと比較して、当該ポリシーの制約を満たす適切なネットワークまたは他のパラメータを選択する。例えば、バッテリーの寿命が１０％未満でコンポーネント１５０が最低電力のネットワーク装置を選択するとポリシーが規定する場合、コンポーネント１５０は装置ごとのバッテリー利用情報の履歴または所定のバッテリー利用情報にアクセスして、残りのバッテリーの寿命が可能な限り持続できるようにする装置を選択してもよい。
【００１７】
データ転送コンポーネント１６０は要求されたデータ転送を、ネットワーク選択コンポーネント１５０が選択したネットワークまたは他の条件を用いて完了する。幾つかの実施形態では、ポリシーがエンドポイントを定義／無効にしてもよい。例えば、自動販売機が、組込みのコンピューティング装置を備えてもよく、自動販売機を補充する必要がある場合には低い優先度のメッセージを送信し、自動販売機が盗まれている場合にはより緊急の高い優先度のメッセージを送信してもよい。かかるケースにおけるポリシーが、使用されるネットワーク・トランスポートと、メッセージを受け取るエンドポイント（複数可）を決定することができる。データ転送コンポーネント１６０は、データを送受信するための共通のインターネットまたは他のプロトコルを提供する、モバイル装置のネットワーク・スタックを含むことができる。
【００１８】
ポリシー管理者コンポーネント１７０は、１つまたは複数のポリシーを１つまたは複数のポリシー・ソースから受け取り、どのポリシー要素を適用すべきかを決定する。例えば、特定の装置がポリシーを、当該装置に関連する企業、サービス・プロバイダー（例えば、携帯電話会社）、装置メーカー、および当該装置のユーザから受け取ってもよい。これらのポリシーの各々が、異なる優先度を有してもよく、衝突するポリシー要素を含んでもよい。例えば、サービス・プロバイダーが、特定の企業とは別のネットワーク選択を優先してもよい。ポリシー管理者コンポーネント１７０に、システム１００の特定の実装形態により定義したポリシー優先度に従ってポリシー衝突を解決しポリシーを適用する作業を与えてもよい。当該優先度を様々な方法で実装してもよい。例えば、１つの実装において、企業レベルのポリシー要素の設定が、ユーザ・レベルの設定を無効にするように、等して、ポリシーが階層的な優先度を有するようにすることができる。別の例として、１つの実装において、有効なポリシーを、全ての受け取られたポリシー要素の和として扱い、当該有効なポリシーが与えられた設定のうち最も制限的なものとなるようにしてもよい。様々なソースからの競合し衝突する優先度から選択するための、これらのおよび他の変形は当業者には理解されよう。ポリシーのソースの例を、図５を参照してさらに説明する。
【００１９】
ネットワーク・ポリシー・システムが実装されるコンピューティング装置が、中央演算装置、メモリー、入力装置（例えば、キーボード、タッチスクリーン、およびポインティング装置）、出力装置（例えば、表示装置）、および記憶装置（例えば、ディスク・ドライブまたは他の不揮発性記憶媒体）を備えてもよい。メモリーおよび記憶装置は、システムを実装するかまたは可能とするコンピューター実行可能命令（例えば、ソフトウェア）でエンコードできる、コンピューター読取可能記憶媒体である。さらに、データ構造およびメッセージ構造を、通信リンク上の信号のようなデータ送信媒体を介して記憶または送信してもよい。インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、ポイント・ツー・ポイントのダイアルアップ接続、携帯電話ネットワーク、等のような様々な通信リンクを使用してもよい。
【００２０】
システムの実施形態を様々な動作環境で実装してもよい。当該動作環境には、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ装置、マルチプロセッサー・システム、マイクロプロセッサー・ベースのシステム、プログラム可能消費家電、デジタル・カメラ、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューター、上記のシステムまたは装置のうち何れかを含む分散コンピューティング環境、セット・トップ・ボックス、システム・オン・チップ（ＳＯＣ）、等が含まれる。コンピューター・システムが、携帯電話、携帯情報端末、スマートフォン、パーソナル・コンピューター、プログラム可能消費家電、デジタル・カメラ、等であってもよい。
【００２１】
システムを、プログラム・モジュールのような、１つまたは複数のコンピューターまたは他の装置により実行されるコンピューター実行可能命令の一般的なコンテキストで説明してもよい。一般に、プログラム・モジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。一般に、プログラム・モジュールの機能を、様々な実施形態において必要に応じて組み合わせるかまたは分散させてもよい。
【００２２】
図２は、一実施形態における、コンピューティング装置のネットワーク・トラフィックを方向付けるための柔軟なルーティング・ポリシーを定義するネットワーク・ポリシー・システム１００の処理を示す流れ図である。ブロック２１０で始まると、当該システムは、コンピューティング装置が通信を送信できる１つまたは複数の利用可能なネットワークを記述する情報を受け取る。携帯電話のようなモバイル装置に対して、ネットワークは、３Ｇセルラ・データ・ネットワークおよび無線８０２．１１ネットワークを含むことができる。家庭の組込み式娯楽装置に対しては、ネットワークは、無線８０２．１１ネットワーク、有線イーサネット（登録商標）・ネットワーク、およびＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  ＭｉｃｒｏｗａｖｅＡｃｃｅｓｓ、８０２．１６としても知られる。）ネットワークを含むことができる。当該システムは、各ネットワークと各ネットワークに接続するために利用可能なハードウェアとに関する情報を受け取る。幾つかのケースでは、当該システムが、バッテリー消費、利用可能な電力レベル、利用コスト、等のような、ハードウェアの特性に関する情報を受け取ってもよい。
【００２３】
ブロック２２０に進むと、当該システムは、受け取ったネットワークから特定のネットワークを選択するための条件を定義する１つまたは複数のネットワーク選択基準をポリシー管理者から受け取る。当該ネットワーク選択基準は、ポリシー管理者により調整が可能であり、装置をネットワークと連携して低バッテリーに保つこと、様々なデータ・プランのサブスクリプション・コストを管理すること、モバイル装置からの放射を軽減すること、利用可能な最も安全な通信リンクを使用すること、等のような、任意の組織目標または他の目標を満たすようにすることができる。当該選択基準は、様々な条件下で適用される１つまたは複数のルールを含んでもよい。例えば、あるポリシーをバッテリー残量が１０％未満である装置に適用し、別のポリシーをリモートの場所にある装置に適用してもよい。
【００２４】
決定ブロック２３０に進むと、ポリシー管理者が特定のポリシーにより送信すべきメッセージを提供する場合は、システムはブロック２４０に進み、そうでない場合は、システムはブロック２５０に飛ぶ。例えば、ポリシー管理者が、組込まれた装置が移動し、または盗まれているといった、何らかの条件下で送信されることとなるメッセージを提供することができる。本明細書でさらに説明するように、当該メッセージが、装置が送信しようとする任意のメッセージを無効にしてもよく、当該メッセージおよびエンドポイントを置き換えてもよい。
【００２５】
ブロック２４０に進むと、システムは特定のポリシーにより送信されるメッセージを受け取る。当該メッセージは、選択されたネットワーク上で指定のエンドポイントに送信するための、テキスト、バイナリ・データ、または他の種類のデータ（例えば、ファイル・データ）を含んでもよい。例えば、モバイル装置が未確認のネットワークから使用されている場合に、ポリシー管理者は、メッセージをＩＴ管理施設に送信したいかもしれず、これを当該装置に展開されるポリシーとして定義することができる。
【００２６】
決定ブロック２５０に進むと、ポリシー管理者がポリシーに関するメッセージの送信先であるエンドポイントを指定した場合、システムは、ブロック２６０に進み、そうでない場合は、システムはブロック２７０に飛ぶ。幾つかのケースでは、ネットワーク要求により、特定のエンドポイントを指定してもよく、同一サブネット上の全ての近傍エンドポイントに対するブロードキャストを要求してもよい。他のケースでは、ネットワーク要求が、エンドポイントを無効にしてルーティング・ポリシーによって定義された受信者を指定するポリシーを要求してもよい。例えば、組込み装置が、自動販売機の供給が不足しているときに供給不足メッセージを送信するための設備を備えてもよい。ポリシー管理者は、かかるメッセージに関するエンドポイントを無効にして当該メッセージを当該装置に補給する責任をもつ特定の組織に送信するというポリシーを提供することによって、どこに当該メッセージを送信するかを決定することができる。
【００２７】
ブロック２６０に進むと、システムは、ポリシーに関するメッセージの送信先であるエンドポイントを受け取る。当該エンドポイントは、（例えば、インターネット・プロトコル（ＩＰ）アドレスにより）特定のエンドポイントを指定してもよく、または、メッセージ送信時に解決されるＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）名のような、リダイレクト可能エンドポイントを提供してもよい。ポリシーが、エンドポイントを規定する何らかの条件、および、エンドポイントを規定しない他の条件を含んでもよい。例えば、システムは、装置上の通常のアプリケーション活動（例えば、ウェブ閲覧）についてエンドポイントと干渉したくはないであろうが、装置の問題を示すシステム・メッセージは捕らえたいかもしれない。他方、システムは、エンドポイントの無効を利用して、ポリシー管理者が制御または禁止することを望むウェブ・ページへのアクセス要求のような、何らかの要求をブロックまたはリダイレクトすることができる。
【００２８】
ブロック２７０に進むと、システムは、コンピューティング装置による展開および使用のために、任意の受け取った選択基準、メッセージ、およびエンドポイントを含む定義されたポリシーをデータ記憶に記憶する。システムは、ポリシーを、ポリシー管理者がアクセス可能な中央データ記憶、分散コンピューティング装置または他の任意のデータ記憶に記憶してもよい。データ記憶が、企業、通信事業者、装置の製造者、または他のポリシー管理者により保守される設備を備えてもよい。ポリシー管理者が、格納されたポリシーを時間とともに編集し更新して、ポリシーの優先度の変更または発見されたベスト・プラクティスを反映してもよい。
【００２９】
ブロック２８０に進むと、システムが、定義されたポリシーを１つまたは複数のコンピューティング装置に展開する。システムが、ポリシーを装置に配信してもよく、装置が、定期的に新たなポリシー・データを中央ポリシー記憶から要求し、または、通信事業者もしくは他の管理者が独立の展開機構を使用してもよい。各コンピューティング装置はポリシーを受け取り、当該ポリシーをローカルに装置に記憶し、次いで当該ポリシーの目標と特定の基準を実行するネットワーク決定が行われると当該ポリシーを使用する。以前のシステムと異なり、当該ポリシーは、頻繁に更新でき今日利用可能でない幾つかの条件を含みうるという点で、柔軟である。ネットワーク・ポリシー・システムは、ポリシー・ルーティング制御を、ポリシー決定を装置のファームウェアまたは他のアクセス不能な構成位置にハード・コードするのではなく、ポリシー管理者に委ねる。ブロック２８０の後、これらのステップが終了する。
【００３０】
図３は、一実施形態における、コンピューティング装置にインストールされた以前に展開されたポリシーを実行するネットワーク・ポリシー・システム１００の処理を示す流れ図である。ブロック３１０で開始すると、システムはネットワーク・メッセージをコンピューティング装置から別のエンドポイントへ送信する要求を受け取る。当該メッセージが、アプリケーション固有のタスクを実施するためのアプリケーション・メッセージ、装置の保守または動作に関連するシステム・メッセージ、装置の予期しない条件に関する警告通知などを含んでもよい。システム１００は、メッセージの送信要求を受け取り、任意の定義されたポリシーを適用してどのように装置が当該メッセージを扱うかを決定する。幾つかの実施形態では、システムが、当該メッセージが高優先度か、低優先度か、高帯域幅を必要とするか等を示す要求のヒントを受け取ってもよい。ヒントを提供しない旧式のアプリケーションに対して、システムは、ヒント（例えば、アプリケーション実行可能ファイルと共に置かれるＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）ファイル）を規定するファイルまたは他のメタデータを提供することができる。
【００３１】
ブロック３２０に進むと、システムは、展開されたポリシーにアクセスして、受け取った要求の処理に影響を及ぼす任意のポリシー条件が満たされるか否かを判定する。システムが、当該ポリシーを、コンピューティング装置にローカルなポリシー・データ記憶から読み取り、当該ポリシーを、メッセージを送信するために使用する適切なネットワークおよび他のパラメータを選択するポリシー実行エンジンにロードしてもよい。当該ポリシーが、ルーティング、データ内容、データ優先度、プロトコル、宛先、または通信の他のネットワーク関連の因子に影響を及ぼしてもよい。下記のステップは、ポリシーにより決定できて、影響を及ぼすことができる幾つかの種類の条件および決定を示すが、システムは、ハードウェアまたはオペレーティング・システムのメーカーがそれを通じて様々な条件に基づく多種多様なネットワーク関連の決定を公開でき（かつ、通信事業者または他のポリシー管理者が選択できる）柔軟なフレームワークを提供する。
【００３２】
ブロック３３０に進むと、システムは、装置にアクセス可能な複数の利用可能なネットワークから選択すべきネットワークを決定する。選択されたネットワークは、ポリシーが定義した少なくとも１つのポリシー条件を満たす。コンピューティング装置が、有線イーサネット接続、無線８０２．１１接続、セルラ・データ・ネットワーク接続、およびＷｉＭＡＸ接続のような、複数のネットワークに対するアクセスまたは同一ネットワークに対する接続を有してもよい。システムが、ネットワークの速度、ネットワークのコスト、ネットワークが消費した電力、等のような、ポリシーにより規定された様々な条件に基づいてネットワークを選択してもよい。ポリシーを頻繁に変更して、今日の特定のメッセージに対して選択したネットワークが明日選択されるものと異なるようにしてもよい。このように、通信事業者が、モバイル装置のネットワーク・トラフィックに対して、週末、平日、または様々な時刻に様々なポリシーを実装することができる。
【００３３】
決定ブロック３４０に進むと、ポリシーがメッセージの送信先を定義する場合に、システムはブロック３５０に進み、そうでない場合はブロック３６０に飛ぶ。当該ポリシーが、メッセージ自体または受け取った要求で指定された任意の宛先を無効にする幾つかのメッセージに対して宛先を定義してもよい。例えば、通信事業者または企業は、特定の種類のメッセージまたは特定の宛先へのメッセージを横取りして、これらのメッセージを通信事業者が選択した宛先へリダイレクトしたいかもしれない。これを使用して、有害なサイトをフィルタリングし、企業の装置の不正な使用を制限し、機密情報のアクセスを監視する、等が可能である。
【００３４】
ブロック３５０に進むと、システムは、メッセージの宛先を、ポリシーで定義された宛先に設定する。ポリシーで定義された宛先が、アドレス、ＤＮＳ名、ＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）、または、メッセージの送信先の特定のネットワーク・アドレスへ送信中にシステムが解決できる他の仕様を含んでもよい。システムは、当該メッセージで指定された任意の宛先を無効にし、当該メッセージを送信するために新たなエンドポイントをトランスポート層に提供する。例えば、システムが、ＴＣＰ（ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ）または他のアドレスを無効にしてもよい。
【００３５】
決定ブロック３６０に進むと、ポリシーがメッセージを定義して受け取ったメッセージを無効にした場合、システムはブロック３７０に進み、そうでない場合は、当該システムはブロック３８０に飛ぶ。ポリシーが当該メッセージを無効にして、ポリシーで指定された所定の宛先への通知を提供するか、または、メッセージ内容を更新してポリシー管理者が定義した様々なタスクを実施してもよい。メッセージを無効にし、書き換える能力により、システムが柔軟になり、様々なポリシー管理者の目標を遂行する。
【００３６】
ブロック３７０に進むと、システムはメッセージのメッセージ内容を、ポリシーで定義したものに設定する。例えば、システムが、メッセージを更新して、データを新たな場所から要求するか、または、装置が予想しない方法でまたは不正に使用されていることに応答して緊急の警告メッセージを送信してもよい。他のケースでは、メッセージを無効にして、特定のデータ・チャネルを介して接続し、機密情報をユーザ（例えば、通信事業者が管理するＷＡＰ（ｗｉｒｅｌｅｓｓ  ａｃｃｅｓｓ  ｐｒｏｔｏｃｏｌ）ネットワーク）に機密情報を公開することなく当該機密情報を提供してもよい。
【００３７】
ブロック３８０に進むと、システムは受け取ったネットワーク・メッセージを、アクセスされたポリシーにより実行された任意の修正とともに送信する。システムは、メッセージを、ポリシーが選択したネットワークを介して、および、宛先、メッセージ、または他の因子に対する任意の修正を用いて、送信する。システムはメッセージを、最初に要求されたように、または、様々な修正とともに、送信してもよい。メッセージをポリシーに従って送信することによって、システムはポリシーで定義されたポリシー管理者の目標を実行し、バッテリー使用量、帯域幅、放射、または他の潜在的なメッセージ送信のコストを節約／削減してもよい。ブロック３８０の後、これらのステップが終了する。
【００３８】
図４は、一実施形態における、ネットワーク・ポリシー・システムを用いた例示的なコンピューティング装置を示すブロック図である。装置４１０は、携帯電話、組込みコンシューマー装置（例えば、ゲーム・コンソール、ケーブル・セットトップ・ボックス）、ラップトップ・コンピューター、等の様々なコンピューティング装置を含みうる。装置４１０は、セルラ・データ・ネットワークに接続するためのセルラ・データ・ハードウェア４２０および無線ネットワークに接続するためのＷｉ−Ｆｉハードウェア４３０のような、複数のネットワークに接続するためのハードウェアを含む。システム・ソフトウェアおよびアプリケーション４６０は、利用可能なハードウェアを介してデータを送信するが、ネットワーク・ハードウェアの利用優先度は有さない。幾つかのケースでは、システム・ソフトウェアおよびアプリケーション４６０が、高帯域幅または低電力のような一般的な優先度を有してもよいが、これらのヒントおよび利用可能なネットワーク・リソースの間の直接的な相関関係はもたなくともよい。ネットワーク・ポリシー・システム４５０がアプリケーション４６０およびネットワーク・ハードウェアの間に存在し（またはシステム・ソフトウェアに取り込まれてもよい）、受け取ったポリシーで定義された様々な優先度に基づいて、ならびに、場合によってはアプリケーションのニーズを規定する任意のアプリケーションが提供したヒントに基づいて、ネットワーク決定を行う。
【００３９】
図５は、一実施形態における、ネットワーク・ポリシー・システムがポリシーを受け取ることができる潜在的なソースを示すブロック図である。この図は、ネットワーク５７０により接続される、無線サービス・プロバイダー５１０、企業５３０、およびモバイル装置５５０を含む。無線サービス・プロバイダー５１０は、無線サービス・プロバイダー５１０に接続する分散装置に１つまたは複数のポリシーを提供するポリシー・サーバー５２０を備える。企業５３０はまた、企業５３０に関連する分散装置に１つまたは複数のポリシーを提供するポリシー・サーバー５４０を備える。無線サーバー・プロバイダ５１０および企業５３０により提供されたポリシーは、潜在的に、互いに補完するかまたは重複してポリシー内の１つまたは複数の衝突を生成する。モバイル装置５５０は、本明細書で説明したシステム５６０の実装形態を含む。システム５６０はポリシー管理者を含む。ポリシー管理者は、ポリシーを様々なポリシー・ソースから受け取り、衝突を階層的なまたは他の衝突解決モデルに従って解決して、システム５６０がモバイル装置５５０に関連するネットワーク・トラフィックに適用する有効なポリシーを決定する。
【００４０】
図６は、一実施形態における、複数の受信されるネットワーク・ポリシーの間の衝突の組合せおよび解決を示す流れ図である。ブロック６１０で始まると、システムは、第１のポリシーを第１のポリシー・ソースから受け取る。当該ポリシーは、装置からのネットワーク通信の処理に影響を及ぼす１つまたは複数のポリシー要素を規定する。例えば、ポリシー要素が、ＭＴＵ、ネットワーク選択、等のようなネットワーク設定を規定してもよい。ポリシー・ソースが、企業、装置メーカー、サービス・プロバイダー、または装置自体上のユーザ設定を含んでもよい。
【００４１】
ブロック６２０に進むと、システムは、第２のポリシーを第２のポリシー・ソースから受け取る。第２のポリシーはまた、装置からのネットワーク通信の処理に影響を及ぼすポリシー要素を含む。例えば、第１のポリシーが装置に関連する企業が作成したものであってもよく、第２のポリシーが装置に関連するサービス・プロバイダーが作成したものであってもよい。単純なケースでは、この２つのポリシーが、システム・ポリシー管理者が衝突なしに適用できる補完的な設定を含む。より複雑なケースでは、ポリシーが、システムが解決する１つまたは複数の直接的または暗黙的な衝突を含む設定を提供する。２つのポリシーを受け取ることが示されているが、システムがポリシーをより多くの数のポリシー・ソースから受け取り、説明したステップを適用して有効なポリシーを決定してもよい。
【００４２】
ブロック６３０に進むと、システムが優先度機能を適用して、２つの受け取ったポリシーの間の相対的な優先度を決定する。当該優先度機能は、ポリシー・ソースの種類の間の既定の階層のような１つまたは複数の固定的な基準、または、ポリシーと受け取った優先度指示の尊重の様々な組合せのような動的基準を含んでもよい。所定の階層のケースでは、システムは、まず最低優先度のポリシーから最高優先度のポリシーへと適用する機能を適用し、それにより、より高い優先度のポリシーがより低い優先度のポリシーが行った設定を無効にするようにしてもよい。例えば、企業とサービス・プロバイダーの両方がＭＴＵサイズを送信用に使用するために設定し、当該企業が階層内で当該サービス・プロバイダーより上にある場合は、このポリシー要素に対する当該企業の設定が勝り、有効なポリシー内に存在することとなる。動的な基準のケースでは、ポリシー自体が全体としての優先度の指示を含んでもよく、または、個々の優先度要素もしくは一群の要素による優先度の指示を含んでもよい。例えば、サービス・プロバイダーは、サービス・プロバイダーのネットワークに影響を及ぼす設定をするための最高優先度を有することができるが、企業は、企業に影響を及ぼす設定を行うために最高優先度を有することができる。
【００４３】
ブロック６４０に進むと、システムが、ポリシー間の決定された相対的な優先度に基づいて有効なポリシーを決定する。当該有効なポリシーは、装置に関連するネットワーク通信に適用される統合ポリシーを作成するための任意の衝突解決の結果およびポリシーの組合せを表現する。当該有効なポリシーが、各ポリシーが提供する設定を統合したもの、または、衝突の場合に１つのポリシーの設定を選択したものを含んでもよい。システムは当該有効なポリシーを、装置に対する将来のネットワーク通知に適用する。ブロック６４０の後、これらのステップが終了する。
【００４４】
幾つかの実施形態では、ネットワーク・ポリシー・システムは、通信事業者がポリシーに基づいてサブスクリプションを生成することを可能にする。例えば、通信事業者は、モバイル装置のユーザが、利用可能なネットワークへの接続方法を決定する際の低コストのプランを提供することができる。コストを低く保つために、通信事業者は利用可能なときにはＷｉ−Ｆｉを優先し、ピーク時間中の帯域利用は制限することができ、または、通信事業者が、より多くのユーザにサービス提供できるようにする他のポリシーを優先してもよい。その代わりに、通信事業者が節約分をユーザに還元する。
【００４５】
幾つかの実施形態では、ネットワーク・ポリシー・システムが、利用可能なネットワークをルーティング・ポリシーに基づいて選択するためのヒントを形成するアプリケーションによって送信されるネットワーク・トラフィックのアプリケーション特性を受け取る。例えば、アプリケーションが、ネットワーク・トラフィックの優先度レベル、ネットワーク・トラフィックの送信期限、または、トラフィックを送信するためのネットワークの選択におけるシステム柔軟性を可能とする他の制約を示してもよい。例えば、システムが、低優先度のトラフィックを遅延させると選択するか、または、低電力のネットワーク装置を用いてそのトラフィックを送信することを選択して、高電力のネットワーク装置を高優先度のトラフィック用に予約してもよい。
【００４６】
幾つかの実施形態では、ネットワーク・ポリシー・システムが、広告または他のシステムと協働して、ネットワークのポリシーに影響を及ぼすクレジットを蓄積する。例えば、通信事業者は、ユーザが特定数の広告を視聴することに同意した場合は、無料のセルラ・データ・プランを提供してもよい。システムは、どのネットワーク接続を使用するか、または、どれだけ多くの帯域幅が利用可能であるかを、他のタスクを完了するためにユーザが稼いだクレジットの量に基づいて選択してもよい。ネットワーク・ポリシー・システムの柔軟性により、これらおよび他のコスト構造を生成し確実に実行して、通信事業者およびコンピューティング装置メーカーが自分の装置およびネットワーク利用を販売するための新たな可能性を開くことができる。
【００４７】
幾つかの実施形態では、ネットワーク・ポリシー・システムは、複数のネットワークの間で選択することに加えて、単一のネットワークの利用レベルを選択する。例えば、幾つかの通信事業者は、コンピューティング装置が、高帯域幅の利用であってもネットワークを迅速に利用し、当該ネットワークの利用を停止して利用可能な周波数スペクトルを解放することを好む。したがって、ポリシーにより、最も多くの要求をその時間内に完了できるという前提の下で高帯域幅のネットワーク利用を何らかの短期間（例えば、３０秒）だけ許可してもよく、ポリシーにより、より長いタスクを少量の帯域幅に調整してもよい。別の例として、ネットワーク装置が、複数の電力レベルを含んでもよく、その一部は、高速で送信することはできないがバッテリー電力の使用は少なくすることができる。ポリシー管理者は最高電力レベルの使用を制限しつつ、低電力レベルの使用をより持続的にしてバッテリーの寿命を延ばすことができる。単一ネットワークのこれらおよび他の使用制限をポリシー内で定義することができる。
【００４８】
以上から、本明細書ではネットワーク・ポリシー・システムの特定の実施形態を例示の目的で説明したが、本発明の趣旨と範囲から逸脱しない様々な修正を加えうることは理解されよう。したがって、本発明は添付の特許請求の範囲によるものを除いては限定されない。
【図１】
0005937103.tif 000002
【図２】
0005937103.tif 000003
【図３】
0005937103.tif 000004
【図４】
0005937103.tif 000005
【図５】
0005937103.tif 000006
【図６】
0005937103.tif 000007