コンピューティング装置のネットワークトラフィックを制御するための柔軟なポリシーを定義するためのコンピューター実行型の方法であって、当該方法は、前記コンピューティング装置が1つまたは複数のネットワークを介して通信をどのように送信できるかを決定する1つまたは複数のネットワーク設定を記述する情報を受け取るステップと、1つまたは複数の特定のネットワーク設定に対する値を定義する1つまたは複数のポリシー要素をポリシー管理者から受け取るステップと、前記ポリシー管理者が前記ポリシーに関するメッセージを送信する宛先を示す場合、前記ポリシーに関するメッセージを配信する宛先を受け取るステップと、任意の受け取ったポリシー要素および宛先により少なくとも部分的に定義されるポリシーを、前記コンピューティング装置による展開および使用のためにデータ記憶に記憶するステップと、定義された前記ポリシーを1つまたは複数のコンピューティング装置に展開するステップと、を含み、上記各ステップが少なくとも1つのプロセッサーで実施される、方法。ネットワーク設定情報を受け取るステップが、携帯電話で、少なくともセルラデータネットワークおよび無線Wi-Fiネットワークを特定するステップを含む、請求項1に記載の方法。ネットワーク設定情報を受け取るステップが、利用可能なネットワークハードウェアの特性を記述する情報を受け取るステップを含む、請求項1に記載の方法。1つまたは複数のポリシー要素を受け取るステップが、利用可能な場合は低い電力使用量のネットワークを選択することによって電力使用量を削減する値を受け取るステップを含む、請求項1に記載の方法。1つまたは複数のポリシー要素を受け取るステップが、前記コンピューティング装置の様々な条件下で適用される1つまたは複数のルールを受け取るステップを含む、請求項1に記載の方法。前記宛先を受け取るステップが、前記ネットワーク選択基準により特定された前記選択されたネットワークを介して前記メッセージをブロードキャストする指示を受け取るステップを含む、請求項1に記載の方法。前記宛先を受け取るステップが、前記コンピューティング装置により指定された宛先を無効にして、前記ポリシーにより定義された受信者を指定するステップを含む、請求項1に記載の方法。前記宛先を受け取るステップが、前記宛先を何らかの条件下で無効にし、他の条件下では前記宛先を無効にしないというポリシーを定義するステップであって、少なくとも1つの条件が前記コンピューティング装置のバッテリーレベルであるステップを含む、請求項1に記載の方法。定義された前記ポリシーを記憶するステップが、前記ポリシーを、前記ポリシー管理者および分散コンピューティング装置がアクセス可能な中央データ記憶に記憶するステップを含む、請求項1に記載の方法。定義された前記ポリシーを展開するステップが、前記ポリシーを中央ポリシー記憶から前記コンピューティング装置に配信して、前記コンピューティング装置が前記ポリシーを受け取り、前記ポリシーを前記装置で局所的に記憶し、次いで、前記ポリシーの指定の基準を実行するようにされたネットワーク決定として前記ポリシーを使用するステップを含む、請求項1に記載の方法。ネットワーク決定を制御し管理するための柔軟なポリシーを定義するためのコンピューターシステムであって、当該システムは、プロセッサーおよびメモリーであって、1つまたは複数のポリシー定義をポリシー管理者から受け取るポリシー定義コンポーネントと、コンピューティング装置でネットワーク決定の間のアクセスのために、定義されたポリシーを永続的に記憶するポリシーデータ記憶と、1つまたは複数のポリシーを1つまたは複数のコンピューティング装置に展開し、経路決定を行う際に前記コンピューティング装置が前記ポリシーを参照できるようにする、ポリシー展開コンポーネントと、ネットワークデータを宛先に送信する少なくとも1つのネットワークトランスポートを有するコンピューティング装置で実行されているアプリケーションからデータ転送要求を受け取る、要求受信コンポーネントと、1つまたは複数のネットワーク条件を選択するための条件を少なくとも1つの選択基準に基づいて規定する展開されたポリシーを参照する、ネットワーク選択コンポーネントと、要求されたデータ転送を、前記ネットワーク選択コンポーネントにより選択されたネットワーク条件を用いて完了する、データ転送コンポーネントと、1つまたは複数のポリシーを1つまたは複数のポリシーソースから受け取り、どのポリシー要素を適用するかを判定する、ポリシー管理者コンポーネントと、のコンポーネントの中で具現化されるソフトウェア命令を実行するように構成される前記プロセッサーおよび前記メモリーを備える、コンピューターシステム。前記ポリシー定義コンポーネントが、前記ポリシー管理者がポリシーを定義するためのユーザインタフェースを提供し、作成されたポリシーを少なくとも1つのコンピューティング装置に展開するために前記ポリシーデータ記憶に記憶する、請求項11に記載のシステム。前記ネットワーク選択コンポーネントが、ネットワークを介してメッセージまたは他のパケットをコンピューティング装置から送信することをアプリケーションが要求するときに生ずる経路決定に応答して起動される、請求項11に記載のシステム。前記要求受信コンポーネントが、前記要求を捕らえて、前記ネットワーク選択コンポーネントを起動して、展開された更新可能なルーティングポリシーに基づいて前記要求を送信する適切なネットワークを選択する、請求項11に記載のシステム。前記ネットワーク選択コンポーネントが、前記ポリシーにより使用される前記コンピューティング装置の1つまたは複数の環境因子を決定し、決定した前記環境因子を前記ポリシー内のルールと比較して、前記ポリシーを満たす適切なネットワーク条件を選択する、請求項11に記載のシステム。本明細書では、コンピューティング装置が、ポリシー管理者が定義した特定のポリシーに基づいて様々なネットワーク決定を管理し制御できるようにするネットワークポリシーシステムを説明する。当該ポリシー管理者には、装置の製造者、装置を保守する情報技術IT社員、エンドユーザ、またはネットワークプロバイダーを含めてもよい。ポリシーは、ポリシー管理者が様々な条件下で定義した多数の因子を含むことができる。当該因子には、コスト、電力消費、CPUcentralprocessingunit時間、バッテリーの寿命、プール時間の利用、時間あたりの利用コスト、帯域消費のコスト、現在のネットワーク利用、等が含まれる。データパケットのタイプ、起点、内容およびプロトコルがポリシー定義の一部であってもなくてもよい。例えば、自動体外式除細動器AED装置が、当該装置を監視し定期的に報告する幾つかのアプリケーションを有してもよいが、当該装置がセルラー接続から動作するとき、当該ポリシーでは、緊急の低バッテリー通知を特定のエンドポイントに送信できるにすぎない。これは、データパケット、ネットワーク、およびエンドポイントに対する定義を含むポリシーの1例である。別の例では、データパケットメッセージおよびネットワークのみが定義され、当該メッセージが特定のエンドポイントではなくネットワークにブロードキャストされる。これは、プライベートネットワークに対して、または、ネットワークリソースが安価なときのネットワークリソースの利用に対して有用でありうる。装置におけるパケットルーティングWi-Fi対セルラーのような、異なるトランスポートは、今日、主に帯域利用可能性またはコストのようなハードコードされた因子に基づいて生じているが、装置のユーザ、通信事業者、または他のポリシー管理者に訴える他の検討事項もありうる。低バッテリー電力が装置に残されたケースでは、低バッテリーコストのトランスポートに切り替えるのは、価格と比べると正しい決定である。装置は、最後の残存バッテリー電力を用いて生産的な作業を完了する必要があるかもしれない。ネットワークポリシーシステムにより、ポリシー管理者は、管理者の目的に適した1つまたは複数の柔軟なネットワークポリシーを定義することができる。ポリシーは、供給がなくなった自動販売機に対するSOSメッセージを可能にするのと同様に単純にすることができ、どのネットワークを使用するかを幾つかの因子に基づいて特定するための決定ツリーほど複雑であることができる。当該因子は、例えば、時刻、メッセージの優先度、ネットワークプロバイダーに対するコスト、メッセージの内容、ネットワークまたは送信プロトコルのセキュリティ、ネットワークの待ち時間、処理時間、プロトコルの信頼度、等である。ポリシーを、選択機能に基づいて複数のネットワークを使用するように定義することができる。当該システムにより、使用中のネットワークトランスポートが、例えば高いビジネスインパクトを高い優先度として有しうる重要メッセージを送信するために、割込みを許可する能力を有することができるようにすることができる。これらのメッセージが様々なコスト構造を有し、複数のネットワークを利用することができる。さらに、ポリシーが、選択されたネットワークを利用する方法を規定してもよい。例えば、ポリシーがMTUminimumtransmissionunitサイズ、再試行回数、およびTTLtimetoliveを規定してもよい。ポリシーが、ネットワーク利用が特定の例えば、50容量未満であるとき、特定のネットワークの利用のみが許されると規定してもよい。したがって、ポリシーの定義と適用は、いつおよびどのようにデータパケットを選択されたネットワークを介して選択されたエンドポイントに送信することを開始するかを事前設定されたポリシーを介して決定できるのに十分なほど、装置をスマートにする方法である。図1は、一実施形態における、ネットワークポリシーシステムのコンポーネントを示すブロック図である。システム100は、ポリシー定義コンポーネント110、ポリシーデータ記憶120、ポリシー展開コンポーネント130、要求受信コンポーネント140、ネットワーク選択コンポーネント150、データ転送コンポーネント160、およびポリシー管理者コンポーネント170を備える。これらのコンポーネントの各々を、本明細書でさらに詳細に説明する。ポリシー定義コンポーネント110は、1つまたは複数のポリシー定義をポリシー管理者から受け取る。コンポーネント110がユーザインタフェースまたはプログラムAPIapplicationprogramminginterfaceを提供してもよい。当該ユーザインタフェースまたはプログラムAPIを通して、IT社員、エンドユーザ、通信サービスプロバイダー、装置メーカー、または他のポリシー管理者が、1つまたは複数のコンピューティング装置に対するネットワーク関連の決定を制御するためのポリシーを生成することができる。ポリシー定義コンポーネント110は、様々な条件下で送付するネットワーク、エンドポイント、およびメッセージをそこから選択する様々なポリシールール、ならびに、コスト、バッテリー電力、スループット、等などを選択するために使用される基準を公開する。ポリシー定義コンポーネント110は、受け取ったポリシーをポリシーデータ記憶120に記憶する。ポリシーデータ記憶120は、ネットワーク決定の間にアクセスするために、定義されたルーティングポリシーを持続的に記憶する。ポリシーデータ記憶120は、1つまたは複数のメモリー内データ構造、ファイル、ファイルシステム、ハードドライブ、外部記憶装置、データベース、クラウドベースの記憶サービス、または後に使用するためにデータを持続的に記憶する他の記憶設備を含むことができる。ポリシーデータ記憶120は新たなポリシーをポリシー定義コンポーネント110から受け取り、ポリシーデータ記憶120にポリシー展開コンポーネント130によりアクセスして、1つまたは複数のポリシーを1つまたは複数のコンピューティング装置例えば、スマートフォン、ラップトップコンピューター、タブレットコンピューター、等に展開してもよい。例えば、企業が、コスト制御、バッテリーの寿命、等のような組織の優先度をバランスするポリシーを、当該企業にわたって管理される装置に提供してもよい。ネットワーク選択コンポーネント150は、ネットワーク決定中にポリシーデータ記憶120または展開されたポリシーに記憶域120からアクセスして、ポリシーの定義された基準を実行する。ポリシー展開コンポーネント130は、1つまたは複数のポリシーを1つまたは複数のコンピューティング装置に展開し、ネットワーク関連の決定がされたときにコンピューティング装置がポリシーを参照できるようにする。ネットワーク関連の決定は、メッセージまたは他のパケットをネットワーク上でコンピューティング装置から送信することをアプリケーションが要求する度に生じうる。代替または追加として、ポリシーを接続ごと、期間ごと、等に適用してもよい。ポリシー展開コンポーネント130が、中央のアクセス可能なサーバーから1つまたは複数の装置に、ポリシーをコピーしてもよい。幾つかの実施形態では、装置が定期的にポリシーサーバーに新たなポリシーを問い合わせる即ち、プル技術。代替または追加として、ポリシー展開コンポーネント130がプッシュ技術を使用してポリシーを装置にプッシュしてもよい。プッシュ技術では通信セッションを、エンドユーザ装置例えば、スマートフォンではなく、サーバーのようなネットワーク要素から開始する。他の実施形態では、システム100が、展開機構を提供せず、通信事業者その他がどのようにポリシー配布を扱うかを決定できるようにしてもよい。要求受信コンポーネント140は、ネットワークデータをエンドポイントに送信するための複数のネットワークトランスポートを有するコンピューティング装置で実行されているアプリケーションからデータを転送する要求を受け取る。当該アプリケーションは、電子メールプログラムまたはウェブブラウザのようなユーザモードのアプリケーション、ならびに同期サービスのようなオペレーティングシステムサービスを備えてもよい。要求受信コンポーネント140は、当該要求を捕らえて、ネットワーク選択コンポーネント150を用いて、当該要求を送信すべき適切なネットワークを選択する。幾つかのケースでは、使用すべきネットワークに関する特定の情報とともに要求が到着してもよく、他のケースでは、アプリケーションが、コンピューティング装置に関連するシステムソフトウェアが適切なネットワークを選択することを期待する。ネットワーク選択コンポーネント150は、複数の利用可能なネットワークから1つを選択するための条件を少なくとも1つの選択基準に基づいて規定するポリシーを参照する。当該選択基準は、幾つかの因子を考慮してよい。当該因子には、各ネットワークのバッテリー消費、ネットワークを利用するサブスクリプションコスト、各ネットワークを待機する待ち行列データ、またはポリシー管理者が定義する他の任意の因子が含まれる。コンポーネント150が、あるネットワークの集団から選択して、当該ネットワークで任意の送信が可能であるかどうかが判定されるようにすることも可能である。ネットワーク選択コンポーネント150が、ポリシーが使用する幾つかの環境因子を決定してもよい。当該環境因子には、現在のバッテリー残存量、現在のプロセッサー使用量、利用可能なネットワーク、待ち行列ネットワークトラフィック、等が含まれる。システムはこれらの環境因子をポリシー内のルールと比較して、当該ポリシーの制約を満たす適切なネットワークまたは他のパラメータを選択する。例えば、バッテリーの寿命が10未満でコンポーネント150が最低電力のネットワーク装置を選択するとポリシーが規定する場合、コンポーネント150は装置ごとのバッテリー利用情報の履歴または所定のバッテリー利用情報にアクセスして、残りのバッテリーの寿命が可能な限り持続できるようにする装置を選択してもよい。データ転送コンポーネント160は要求されたデータ転送を、ネットワーク選択コンポーネント150が選択したネットワークまたは他の条件を用いて完了する。幾つかの実施形態では、ポリシーがエンドポイントを定義/無効にしてもよい。例えば、自動販売機が、組込みのコンピューティング装置を備えてもよく、自動販売機を補充する必要がある場合には低い優先度のメッセージを送信し、自動販売機が盗まれている場合にはより緊急の高い優先度のメッセージを送信してもよい。かかるケースにおけるポリシーが、使用されるネットワークトランスポートと、メッセージを受け取るエンドポイント複数可を決定することができる。データ転送コンポーネント160は、データを送受信するための共通のインターネットまたは他のプロトコルを提供する、モバイル装置のネットワークスタックを含むことができる。ポリシー管理者コンポーネント170は、1つまたは複数のポリシーを1つまたは複数のポリシーソースから受け取り、どのポリシー要素を適用すべきかを決定する。例えば、特定の装置がポリシーを、当該装置に関連する企業、サービスプロバイダー例えば、携帯電話会社、装置メーカー、および当該装置のユーザから受け取ってもよい。これらのポリシーの各々が、異なる優先度を有してもよく、衝突するポリシー要素を含んでもよい。例えば、サービスプロバイダーが、特定の企業とは別のネットワーク選択を優先してもよい。ポリシー管理者コンポーネント170に、システム100の特定の実装形態により定義したポリシー優先度に従ってポリシー衝突を解決しポリシーを適用する作業を与えてもよい。当該優先度を様々な方法で実装してもよい。例えば、1つの実装において、企業レベルのポリシー要素の設定が、ユーザレベルの設定を無効にするように、等して、ポリシーが階層的な優先度を有するようにすることができる。別の例として、1つの実装において、有効なポリシーを、全ての受け取られたポリシー要素の和として扱い、当該有効なポリシーが与えられた設定のうち最も制限的なものとなるようにしてもよい。様々なソースからの競合し衝突する優先度から選択するための、これらのおよび他の変形は当業者には理解されよう。ポリシーのソースの例を、図5を参照してさらに説明する。ネットワークポリシーシステムが実装されるコンピューティング装置が、中央演算装置、メモリー、入力装置例えば、キーボード、タッチスクリーン、およびポインティング装置、出力装置例えば、表示装置、および記憶装置例えば、ディスクドライブまたは他の不揮発性記憶媒体を備えてもよい。メモリーおよび記憶装置は、システムを実装するかまたは可能とするコンピューター実行可能命令例えば、ソフトウェアでエンコードできる、コンピューター読取可能記憶媒体である。さらに、データ構造およびメッセージ構造を、通信リンク上の信号のようなデータ送信媒体を介して記憶または送信してもよい。インターネット、ローカルエリアネットワーク、広域ネットワーク、ポイントツーポイントのダイアルアップ接続、携帯電話ネットワーク、等のような様々な通信リンクを使用してもよい。システムの実施形態を様々な動作環境で実装してもよい。当該動作環境には、パーソナルコンピューター、サーバーコンピューター、ハンドヘルドまたはラップトップ装置、マルチプロセッサーシステム、マイクロプロセッサーベースのシステム、プログラム可能消費家電、デジタルカメラ、ネットワークPC、ミニコンピューター、メインフレームコンピューター、上記のシステムまたは装置のうち何れかを含む分散コンピューティング環境、セットトップボックス、システムオンチップSOC、等が含まれる。コンピューターシステムが、携帯電話、携帯情報端末、スマートフォン、パーソナルコンピューター、プログラム可能消費家電、デジタルカメラ、等であってもよい。システムを、プログラムモジュールのような、1つまたは複数のコンピューターまたは他の装置により実行されるコンピューター実行可能命令の一般的なコンテキストで説明してもよい。一般に、プログラムモジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。一般に、プログラムモジュールの機能を、様々な実施形態において必要に応じて組み合わせるかまたは分散させてもよい。図2は、一実施形態における、コンピューティング装置のネットワークトラフィックを方向付けるための柔軟なルーティングポリシーを定義するネットワークポリシーシステム100の処理を示す流れ図である。ブロック210で始まると、当該システムは、コンピューティング装置が通信を送信できる1つまたは複数の利用可能なネットワークを記述する情報を受け取る。携帯電話のようなモバイル装置に対して、ネットワークは、3Gセルラデータネットワークおよび無線802.11ネットワークを含むことができる。家庭の組込み式娯楽装置に対しては、ネットワークは、無線802.11ネットワーク、有線イーサネット登録商標ネットワーク、およびWiMAXWorldwideInteroperabilityforMicrowaveAccess、802.16としても知られる。ネットワークを含むことができる。当該システムは、各ネットワークと各ネットワークに接続するために利用可能なハードウェアとに関する情報を受け取る。幾つかのケースでは、当該システムが、バッテリー消費、利用可能な電力レベル、利用コスト、等のような、ハードウェアの特性に関する情報を受け取ってもよい。ブロック220に進むと、当該システムは、受け取ったネットワークから特定のネットワークを選択するための条件を定義する1つまたは複数のネットワーク選択基準をポリシー管理者から受け取る。当該ネットワーク選択基準は、ポリシー管理者により調整が可能であり、装置をネットワークと連携して低バッテリーに保つこと、様々なデータプランのサブスクリプションコストを管理すること、モバイル装置からの放射を軽減すること、利用可能な最も安全な通信リンクを使用すること、等のような、任意の組織目標または他の目標を満たすようにすることができる。当該選択基準は、様々な条件下で適用される1つまたは複数のルールを含んでもよい。例えば、あるポリシーをバッテリー残量が10未満である装置に適用し、別のポリシーをリモートの場所にある装置に適用してもよい。決定ブロック230に進むと、ポリシー管理者が特定のポリシーにより送信すべきメッセージを提供する場合は、システムはブロック240に進み、そうでない場合は、システムはブロック250に飛ぶ。例えば、ポリシー管理者が、組込まれた装置が移動し、または盗まれているといった、何らかの条件下で送信されることとなるメッセージを提供することができる。本明細書でさらに説明するように、当該メッセージが、装置が送信しようとする任意のメッセージを無効にしてもよく、当該メッセージおよびエンドポイントを置き換えてもよい。ブロック240に進むと、システムは特定のポリシーにより送信されるメッセージを受け取る。当該メッセージは、選択されたネットワーク上で指定のエンドポイントに送信するための、テキスト、バイナリデータ、または他の種類のデータ例えば、ファイルデータを含んでもよい。例えば、モバイル装置が未確認のネットワークから使用されている場合に、ポリシー管理者は、メッセージをIT管理施設に送信したいかもしれず、これを当該装置に展開されるポリシーとして定義することができる。決定ブロック250に進むと、ポリシー管理者がポリシーに関するメッセージの送信先であるエンドポイントを指定した場合、システムは、ブロック260に進み、そうでない場合は、システムはブロック270に飛ぶ。幾つかのケースでは、ネットワーク要求により、特定のエンドポイントを指定してもよく、同一サブネット上の全ての近傍エンドポイントに対するブロードキャストを要求してもよい。他のケースでは、ネットワーク要求が、エンドポイントを無効にしてルーティングポリシーによって定義された受信者を指定するポリシーを要求してもよい。例えば、組込み装置が、自動販売機の供給が不足しているときに供給不足メッセージを送信するための設備を備えてもよい。ポリシー管理者は、かかるメッセージに関するエンドポイントを無効にして当該メッセージを当該装置に補給する責任をもつ特定の組織に送信するというポリシーを提供することによって、どこに当該メッセージを送信するかを決定することができる。ブロック260に進むと、システムは、ポリシーに関するメッセージの送信先であるエンドポイントを受け取る。当該エンドポイントは、例えば、インターネットプロトコルIPアドレスにより特定のエンドポイントを指定してもよく、または、メッセージ送信時に解決されるDNSDomainNameSystem名のような、リダイレクト可能エンドポイントを提供してもよい。ポリシーが、エンドポイントを規定する何らかの条件、および、エンドポイントを規定しない他の条件を含んでもよい。例えば、システムは、装置上の通常のアプリケーション活動例えば、ウェブ閲覧についてエンドポイントと干渉したくはないであろうが、装置の問題を示すシステムメッセージは捕らえたいかもしれない。他方、システムは、エンドポイントの無効を利用して、ポリシー管理者が制御または禁止することを望むウェブページへのアクセス要求のような、何らかの要求をブロックまたはリダイレクトすることができる。ブロック270に進むと、システムは、コンピューティング装置による展開および使用のために、任意の受け取った選択基準、メッセージ、およびエンドポイントを含む定義されたポリシーをデータ記憶に記憶する。システムは、ポリシーを、ポリシー管理者がアクセス可能な中央データ記憶、分散コンピューティング装置または他の任意のデータ記憶に記憶してもよい。データ記憶が、企業、通信事業者、装置の製造者、または他のポリシー管理者により保守される設備を備えてもよい。ポリシー管理者が、格納されたポリシーを時間とともに編集し更新して、ポリシーの優先度の変更または発見されたベストプラクティスを反映してもよい。ブロック280に進むと、システムが、定義されたポリシーを1つまたは複数のコンピューティング装置に展開する。システムが、ポリシーを装置に配信してもよく、装置が、定期的に新たなポリシーデータを中央ポリシー記憶から要求し、または、通信事業者もしくは他の管理者が独立の展開機構を使用してもよい。各コンピューティング装置はポリシーを受け取り、当該ポリシーをローカルに装置に記憶し、次いで当該ポリシーの目標と特定の基準を実行するネットワーク決定が行われると当該ポリシーを使用する。以前のシステムと異なり、当該ポリシーは、頻繁に更新でき今日利用可能でない幾つかの条件を含みうるという点で、柔軟である。ネットワークポリシーシステムは、ポリシールーティング制御を、ポリシー決定を装置のファームウェアまたは他のアクセス不能な構成位置にハードコードするのではなく、ポリシー管理者に委ねる。ブロック280の後、これらのステップが終了する。図3は、一実施形態における、コンピューティング装置にインストールされた以前に展開されたポリシーを実行するネットワークポリシーシステム100の処理を示す流れ図である。ブロック310で開始すると、システムはネットワークメッセージをコンピューティング装置から別のエンドポイントへ送信する要求を受け取る。当該メッセージが、アプリケーション固有のタスクを実施するためのアプリケーションメッセージ、装置の保守または動作に関連するシステムメッセージ、装置の予期しない条件に関する警告通知などを含んでもよい。システム100は、メッセージの送信要求を受け取り、任意の定義されたポリシーを適用してどのように装置が当該メッセージを扱うかを決定する。幾つかの実施形態では、システムが、当該メッセージが高優先度か、低優先度か、高帯域幅を必要とするか等を示す要求のヒントを受け取ってもよい。ヒントを提供しない旧式のアプリケーションに対して、システムは、ヒント例えば、アプリケーション実行可能ファイルと共に置かれるXMLextensiblemarkuplanguageファイルを規定するファイルまたは他のメタデータを提供することができる。ブロック320に進むと、システムは、展開されたポリシーにアクセスして、受け取った要求の処理に影響を及ぼす任意のポリシー条件が満たされるか否かを判定する。システムが、当該ポリシーを、コンピューティング装置にローカルなポリシーデータ記憶から読み取り、当該ポリシーを、メッセージを送信するために使用する適切なネットワークおよび他のパラメータを選択するポリシー実行エンジンにロードしてもよい。当該ポリシーが、ルーティング、データ内容、データ優先度、プロトコル、宛先、または通信の他のネットワーク関連の因子に影響を及ぼしてもよい。下記のステップは、ポリシーにより決定できて、影響を及ぼすことができる幾つかの種類の条件および決定を示すが、システムは、ハードウェアまたはオペレーティングシステムのメーカーがそれを通じて様々な条件に基づく多種多様なネットワーク関連の決定を公開できかつ、通信事業者または他のポリシー管理者が選択できる柔軟なフレームワークを提供する。ブロック330に進むと、システムは、装置にアクセス可能な複数の利用可能なネットワークから選択すべきネットワークを決定する。選択されたネットワークは、ポリシーが定義した少なくとも1つのポリシー条件を満たす。コンピューティング装置が、有線イーサネット接続、無線802.11接続、セルラデータネットワーク接続、およびWiMAX接続のような、複数のネットワークに対するアクセスまたは同一ネットワークに対する接続を有してもよい。システムが、ネットワークの速度、ネットワークのコスト、ネットワークが消費した電力、等のような、ポリシーにより規定された様々な条件に基づいてネットワークを選択してもよい。ポリシーを頻繁に変更して、今日の特定のメッセージに対して選択したネットワークが明日選択されるものと異なるようにしてもよい。このように、通信事業者が、モバイル装置のネットワークトラフィックに対して、週末、平日、または様々な時刻に様々なポリシーを実装することができる。決定ブロック340に進むと、ポリシーがメッセージの送信先を定義する場合に、システムはブロック350に進み、そうでない場合はブロック360に飛ぶ。当該ポリシーが、メッセージ自体または受け取った要求で指定された任意の宛先を無効にする幾つかのメッセージに対して宛先を定義してもよい。例えば、通信事業者または企業は、特定の種類のメッセージまたは特定の宛先へのメッセージを横取りして、これらのメッセージを通信事業者が選択した宛先へリダイレクトしたいかもしれない。これを使用して、有害なサイトをフィルタリングし、企業の装置の不正な使用を制限し、機密情報のアクセスを監視する、等が可能である。ブロック350に進むと、システムは、メッセージの宛先を、ポリシーで定義された宛先に設定する。ポリシーで定義された宛先が、アドレス、DNS名、URLuniformresourcelocator、または、メッセージの送信先の特定のネットワークアドレスへ送信中にシステムが解決できる他の仕様を含んでもよい。システムは、当該メッセージで指定された任意の宛先を無効にし、当該メッセージを送信するために新たなエンドポイントをトランスポート層に提供する。例えば、システムが、TCPtransmissioncontrolprotocolまたは他のアドレスを無効にしてもよい。決定ブロック360に進むと、ポリシーがメッセージを定義して受け取ったメッセージを無効にした場合、システムはブロック370に進み、そうでない場合は、当該システムはブロック380に飛ぶ。ポリシーが当該メッセージを無効にして、ポリシーで指定された所定の宛先への通知を提供するか、または、メッセージ内容を更新してポリシー管理者が定義した様々なタスクを実施してもよい。メッセージを無効にし、書き換える能力により、システムが柔軟になり、様々なポリシー管理者の目標を遂行する。ブロック370に進むと、システムはメッセージのメッセージ内容を、ポリシーで定義したものに設定する。例えば、システムが、メッセージを更新して、データを新たな場所から要求するか、または、装置が予想しない方法でまたは不正に使用されていることに応答して緊急の警告メッセージを送信してもよい。他のケースでは、メッセージを無効にして、特定のデータチャネルを介して接続し、機密情報をユーザ例えば、通信事業者が管理するWAPwirelessaccessprotocolネットワークに機密情報を公開することなく当該機密情報を提供してもよい。ブロック380に進むと、システムは受け取ったネットワークメッセージを、アクセスされたポリシーにより実行された任意の修正とともに送信する。システムは、メッセージを、ポリシーが選択したネットワークを介して、および、宛先、メッセージ、または他の因子に対する任意の修正を用いて、送信する。システムはメッセージを、最初に要求されたように、または、様々な修正とともに、送信してもよい。メッセージをポリシーに従って送信することによって、システムはポリシーで定義されたポリシー管理者の目標を実行し、バッテリー使用量、帯域幅、放射、または他の潜在的なメッセージ送信のコストを節約/削減してもよい。ブロック380の後、これらのステップが終了する。図4は、一実施形態における、ネットワークポリシーシステムを用いた例示的なコンピューティング装置を示すブロック図である。装置410は、携帯電話、組込みコンシューマー装置例えば、ゲームコンソール、ケーブルセットトップボックス、ラップトップコンピューター、等の様々なコンピューティング装置を含みうる。装置410は、セルラデータネットワークに接続するためのセルラデータハードウェア420および無線ネットワークに接続するためのWi-Fiハードウェア430のような、複数のネットワークに接続するためのハードウェアを含む。システムソフトウェアおよびアプリケーション460は、利用可能なハードウェアを介してデータを送信するが、ネットワークハードウェアの利用優先度は有さない。幾つかのケースでは、システムソフトウェアおよびアプリケーション460が、高帯域幅または低電力のような一般的な優先度を有してもよいが、これらのヒントおよび利用可能なネットワークリソースの間の直接的な相関関係はもたなくともよい。ネットワークポリシーシステム450がアプリケーション460およびネットワークハードウェアの間に存在しまたはシステムソフトウェアに取り込まれてもよい、受け取ったポリシーで定義された様々な優先度に基づいて、ならびに、場合によってはアプリケーションのニーズを規定する任意のアプリケーションが提供したヒントに基づいて、ネットワーク決定を行う。図5は、一実施形態における、ネットワークポリシーシステムがポリシーを受け取ることができる潜在的なソースを示すブロック図である。この図は、ネットワーク570により接続される、無線サービスプロバイダー510、企業530、およびモバイル装置550を含む。無線サービスプロバイダー510は、無線サービスプロバイダー510に接続する分散装置に1つまたは複数のポリシーを提供するポリシーサーバー520を備える。企業530はまた、企業530に関連する分散装置に1つまたは複数のポリシーを提供するポリシーサーバー540を備える。無線サーバープロバイダ510および企業530により提供されたポリシーは、潜在的に、互いに補完するかまたは重複してポリシー内の1つまたは複数の衝突を生成する。モバイル装置550は、本明細書で説明したシステム560の実装形態を含む。システム560はポリシー管理者を含む。ポリシー管理者は、ポリシーを様々なポリシーソースから受け取り、衝突を階層的なまたは他の衝突解決モデルに従って解決して、システム560がモバイル装置550に関連するネットワークトラフィックに適用する有効なポリシーを決定する。図6は、一実施形態における、複数の受信されるネットワークポリシーの間の衝突の組合せおよび解決を示す流れ図である。ブロック610で始まると、システムは、第1のポリシーを第1のポリシーソースから受け取る。当該ポリシーは、装置からのネットワーク通信の処理に影響を及ぼす1つまたは複数のポリシー要素を規定する。例えば、ポリシー要素が、MTU、ネットワーク選択、等のようなネットワーク設定を規定してもよい。ポリシーソースが、企業、装置メーカー、サービスプロバイダー、または装置自体上のユーザ設定を含んでもよい。ブロック620に進むと、システムは、第2のポリシーを第2のポリシーソースから受け取る。第2のポリシーはまた、装置からのネットワーク通信の処理に影響を及ぼすポリシー要素を含む。例えば、第1のポリシーが装置に関連する企業が作成したものであってもよく、第2のポリシーが装置に関連するサービスプロバイダーが作成したものであってもよい。単純なケースでは、この2つのポリシーが、システムポリシー管理者が衝突なしに適用できる補完的な設定を含む。より複雑なケースでは、ポリシーが、システムが解決する1つまたは複数の直接的または暗黙的な衝突を含む設定を提供する。2つのポリシーを受け取ることが示されているが、システムがポリシーをより多くの数のポリシーソースから受け取り、説明したステップを適用して有効なポリシーを決定してもよい。ブロック630に進むと、システムが優先度機能を適用して、2つの受け取ったポリシーの間の相対的な優先度を決定する。当該優先度機能は、ポリシーソースの種類の間の既定の階層のような1つまたは複数の固定的な基準、または、ポリシーと受け取った優先度指示の尊重の様々な組合せのような動的基準を含んでもよい。所定の階層のケースでは、システムは、まず最低優先度のポリシーから最高優先度のポリシーへと適用する機能を適用し、それにより、より高い優先度のポリシーがより低い優先度のポリシーが行った設定を無効にするようにしてもよい。例えば、企業とサービスプロバイダーの両方がMTUサイズを送信用に使用するために設定し、当該企業が階層内で当該サービスプロバイダーより上にある場合は、このポリシー要素に対する当該企業の設定が勝り、有効なポリシー内に存在することとなる。動的な基準のケースでは、ポリシー自体が全体としての優先度の指示を含んでもよく、または、個々の優先度要素もしくは一群の要素による優先度の指示を含んでもよい。例えば、サービスプロバイダーは、サービスプロバイダーのネットワークに影響を及ぼす設定をするための最高優先度を有することができるが、企業は、企業に影響を及ぼす設定を行うために最高優先度を有することができる。ブロック640に進むと、システムが、ポリシー間の決定された相対的な優先度に基づいて有効なポリシーを決定する。当該有効なポリシーは、装置に関連するネットワーク通信に適用される統合ポリシーを作成するための任意の衝突解決の結果およびポリシーの組合せを表現する。当該有効なポリシーが、各ポリシーが提供する設定を統合したもの、または、衝突の場合に1つのポリシーの設定を選択したものを含んでもよい。システムは当該有効なポリシーを、装置に対する将来のネットワーク通知に適用する。ブロック640の後、これらのステップが終了する。幾つかの実施形態では、ネットワークポリシーシステムは、通信事業者がポリシーに基づいてサブスクリプションを生成することを可能にする。例えば、通信事業者は、モバイル装置のユーザが、利用可能なネットワークへの接続方法を決定する際の低コストのプランを提供することができる。コストを低く保つために、通信事業者は利用可能なときにはWi-Fiを優先し、ピーク時間中の帯域利用は制限することができ、または、通信事業者が、より多くのユーザにサービス提供できるようにする他のポリシーを優先してもよい。その代わりに、通信事業者が節約分をユーザに還元する。幾つかの実施形態では、ネットワークポリシーシステムが、利用可能なネットワークをルーティングポリシーに基づいて選択するためのヒントを形成するアプリケーションによって送信されるネットワークトラフィックのアプリケーション特性を受け取る。例えば、アプリケーションが、ネットワークトラフィックの優先度レベル、ネットワークトラフィックの送信期限、または、トラフィックを送信するためのネットワークの選択におけるシステム柔軟性を可能とする他の制約を示してもよい。例えば、システムが、低優先度のトラフィックを遅延させると選択するか、または、低電力のネットワーク装置を用いてそのトラフィックを送信することを選択して、高電力のネットワーク装置を高優先度のトラフィック用に予約してもよい。幾つかの実施形態では、ネットワークポリシーシステムが、広告または他のシステムと協働して、ネットワークのポリシーに影響を及ぼすクレジットを蓄積する。例えば、通信事業者は、ユーザが特定数の広告を視聴することに同意した場合は、無料のセルラデータプランを提供してもよい。システムは、どのネットワーク接続を使用するか、または、どれだけ多くの帯域幅が利用可能であるかを、他のタスクを完了するためにユーザが稼いだクレジットの量に基づいて選択してもよい。ネットワークポリシーシステムの柔軟性により、これらおよび他のコスト構造を生成し確実に実行して、通信事業者およびコンピューティング装置メーカーが自分の装置およびネットワーク利用を販売するための新たな可能性を開くことができる。幾つかの実施形態では、ネットワークポリシーシステムは、複数のネットワークの間で選択することに加えて、単一のネットワークの利用レベルを選択する。例えば、幾つかの通信事業者は、コンピューティング装置が、高帯域幅の利用であってもネットワークを迅速に利用し、当該ネットワークの利用を停止して利用可能な周波数スペクトルを解放することを好む。したがって、ポリシーにより、最も多くの要求をその時間内に完了できるという前提の下で高帯域幅のネットワーク利用を何らかの短期間例えば、30秒だけ許可してもよく、ポリシーにより、より長いタスクを少量の帯域幅に調整してもよい。別の例として、ネットワーク装置が、複数の電力レベルを含んでもよく、その一部は、高速で送信することはできないがバッテリー電力の使用は少なくすることができる。ポリシー管理者は最高電力レベルの使用を制限しつつ、低電力レベルの使用をより持続的にしてバッテリーの寿命を延ばすことができる。単一ネットワークのこれらおよび他の使用制限をポリシー内で定義することができる。以上から、本明細書ではネットワークポリシーシステムの特定の実施形態を例示の目的で説明したが、本発明の趣旨と範囲から逸脱しない様々な修正を加えうることは理解されよう。したがって、本発明は添付の特許請求の範囲によるものを除いては限定されない。