(57)【特許請求の範囲】
【請求項１】
各コンピュータネットワークの属性にそれぞれ対応する少なくとも１つの生のネットワークＤＮＡコンポーネントを取得するステップと、
前記生のネットワークＤＮＡコンポーネントに関連付けられた少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様に従って、前記生のネットワークコンポーネントの値から少なくとも１つの派生ネットワークＤＮＡコンポーネントの値を決定する前記派生ネットワークＤＮＡコンポーネントを生成するステップであって、前記ネットワークＤＮＡの前記派生ネットワークＤＮＡコンポーネントは、少なくとも前記コンピュータネットワークのネットワークセキュリティ属性、前記コンピュータネットワークのネットワーク管理属性、および前記コンピュータネットワークのネットワークアドレス指定属性の機能の評価に基づき、エンタープライズネットワーク、ホームネットワーク、および公衆ネットワークを含む複数のネットワーク種の区分から選択された１つのネットワーク種の区分を指定できる前記コンピュータネットワークのネットワーク種のコンポーネントを含む、ステップと、
前記派生ネットワークＤＮＡコンポーネントが満たすべき条件を定義した所定のネットワークポリシーのネットワークＤＮＡポリシー条件を満たす前記生のネットワークＤＮＡコンポーネントと前記派生ネットワークＤＮＡコンポーネントとを含むネットワークＤＮＡを有する前記コンピュータネットワークを決定するステップと
を備える方法を実行するコンピュータ実行可能な命令を有することを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項２】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様の少なくとも１つは、前記少なくとも１つの生のネットワークＤＮＡコンポーネントの少なくとも１つの少なくとも１つの値の線形変換を含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項３】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様は、前記少なくとも１つの生のネットワークＤＮＡコンポーネントの組み合わせを含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項４】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様の少なくとも１つは、構造化照会言語の文を含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項５】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様の少なくとも１つは、オブジェクト指向言語の文を含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項６】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様の少なくとも１つは、スクリプト記述言語の文を含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項７】
前記少なくとも１つの生のネットワークＤＮＡコンポーネントを取得するステップは、生のネットワークＤＮＡコンポーネント取得優先リストによって指定された順序で複数の生のネットワークＤＮＡコンポーネントを取得するステップを含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項８】
前記生のネットワークＤＮＡコンポーネント取得優先リストによって指定された前記順序は、前記複数の生のネットワークＤＮＡコンポーネントに関連付けられたネットワークＤＮＡポリシーの順序付けられた集合に従うことを特徴とする請求項７に記載のコンピュータ読取り可能な記憶媒体。
【請求項９】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントを生成するステップは、少なくとも１つの取得された生のネットワークＤＮＡコンポーネントに依存する少なくとも１つの派生ネットワークＤＮＡコンポーネントに関連付けられた派生ネットワークＤＮＡリフレッシュリストに関連付けられた各派生ネットワークＤＮＡコンポーネントを生成するステップを含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１０】
前記方法は、
ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足するか否かをテストするステップであって、前記ネットワークＤＮＡポリシー条件は、前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの少なくとも１つを参照するステップと、
前記ネットワークＤＮＡポリシーの前記ネットワークＤＮＡポリシー条件を満足する場合、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー操作の実行を開始するステップと
をさらに含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１１】
前記方法は、前記ネットワークＤＮＡポリシーの前記ネットワークＤＮＡポリシー条件を満たす前記ネットワークＤＮＡが取得されたか否かをテストするステップをさらに含むことを特徴とする請求項１０に記載のコンピュータ読取り可能な記憶媒体。
【請求項１２】
前記ネットワークＤＮＡポリシーは、コンピュータネットワークを切り替えるときのパフォーマンスの低下を軽減することを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１３】
前記ネットワークＤＮＡポリシーは、コンピュータネットワークを切り替えるときにセキュリティ上脆弱である確率を低下させることを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１４】
前記ネットワークＤＮＡポリシーは、コンピュータネットワークを切り替えるときにユーザが介入する確率を低下させることを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１５】
前記ネットワークＤＮＡの前記派生ネットワークＤＮＡコンポーネントは、ネットワーク名コンポーネント、ネットワーク費用コンポーネント、コアアクセスコンポーネント、コアアドレス指定コンポーネント、ネットワークセキュリティコンポーネント、およびネットワーク技術コンポーネントをさらに含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１６】
前記ネットワーク技術コンポーネントは、少なくとも１つのネットワーク操作属性を含むことを特徴とする請求項１５に記載のコンピュータ読取り可能な記憶媒体。
【請求項１７】
前記方法は、
少なくとも１つのネットワークＤＮＡコンポーネントに関連付けられた、ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足するか否かをテストするステップと、
前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足する場合、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー操作の実行を開始するステップと
をさらに含むことを特徴とする請求項１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１８】
各コンピュータネットワークの属性にそれぞれ対応する少なくとも１つの生のネットワークＤＮＡコンポーネントを取得するネットワークＤＮＡ取得モジュールと、
前記生のネットワークＤＮＡコンポーネントに関連付けられた少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様に従って、前記生のネットワークコンポーネントの値から少なくとも１つの派生ネットワークＤＮＡコンポーネントの値を決定する前記派生ネットワークＤＮＡコンポーネントを生成するネットワークＤＮＡ生成モジュールであって、前記派生ネットワークＤＮＡコンポーネントは、前記ネットワークＤＮＡの前記派生ネットワークＤＮＡコンポーネントは、少なくとも前記コンピュータネットワークのネットワークセキュリティ属性、前記コンピュータネットワークのネットワーク管理属性、および前記コンピュータネットワークのネットワークアドレス指定属性の機能の評価に基づき、エンタープライズネットワーク、ホームネットワーク、および公衆ネットワークを含む複数のネットワーク種の区分から選択された１つのネットワーク種の区分を指定できる前記コンピュータネットワークのネットワーク種のコンポーネントを含む、ネットワークＤＮＡ生成モジュールと、
前記少なくとも１つのコンピュータネットワークの少なくとも１つに対してネットワークＤＮＡを格納するように構成された少なくとも１つのネットワークＤＮＡストアであって、前記ネットワークＤＮＡは、前記生のネットワークＤＮＡモジュールと前記ネットワーク生成モジュールによって生成された派生ネットワークＤＮＡコンポーネントを含む、ネットワークＤＮＡストアと
を備えた少なくとも１つのコンピュータネットワークに接続する少なくとも１台のコンピュータを含み、前記派生ネットワークＤＮＡコンポーネントが満たすべき条件を定義した所定のネットワークポリシーのネットワークＤＮＡポリシー条件を満たす前記ネットワークＤＮＡを有する前記コンピュータネットワークを決定することを特徴とするコンピュータシステム。
【請求項１９】
前記少なくとも１つのネットワークＤＮＡストアは、現在のネットワークＤＮＡストアとネットワークＤＮＡ履歴ストアとを含むことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントは、ネットワーク種のコンポーネントを備えたことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２１】
少なくとも１つのネットワークＤＮＡポリシーを格納するように構成されたネットワークＤＮＡポリシーストアをさらに備え、前記少なくとも１つのネットワークＤＮＡポリシーの少なくとも１つは、前記ネットワークＤＮＡの少なくとも１つの派生ネットワークＤＮＡコンポーネントの少なくとも１つを参照することを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２２】
各ネットワークＤＮＡポリシーは、前記ネットワークＤＮＡポリシーが関連付けられた前記ネットワークＤＮＡの各派生ネットワークＤＮＡコンポーネントをリストする派生ネットワークＤＮＡコンポーネントの依存性リストを含むことを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２３】
前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの少なくとも１つに関連付けられた、ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足するか否かをテストし、および
前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足する場合、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー操作の実行を開始する
ように少なくとも構成されたネットワークＤＮＡポリシー実行モジュールをさらに含むことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２４】
前記ネットワークＤＮＡポリシー条件で指定する式が論理真に評価された場合、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足することを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２５】
前記ネットワークＤＮＡポリシー条件で指定する式が論理偽に評価された場合、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足することを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２６】
前記ネットワークＤＮＡポリシー条件で指定する式の評価が評価エラーになる場合、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満足することを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２７】
前記ネットワークＤＮＡポリシー実行モジュールは、最低限、前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件を満たす前記ネットワークＤＮＡが取得されたか否かをテストするようにさらに構成されたことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２８】
個々のネットワークＤＮＡコンポーネントは信頼レベルに関連付けられ、および
前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件に関連付けられた個々のネットワークＤＮＡコンポーネントの前記信頼レベルがゼロより大きい場合、前記ネットワークＤＮＡポリシーの十分なネットワークＤＮＡが取得されていることを特徴とする請求項２７に記載のコンピュータシステム。
【請求項２９】
個々のネットワークＤＮＡコンポーネントは、信頼レベルに関連付けられ、および
前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件に関連付けられた少なくとも１つのネットワークＤＮＡコンポーネントの前記信頼レベルが、十分なネットワークＤＮＡ取得の閾値より大きい場合、前記ネットワークＤＮＡポリシーに対する十分なネットワークＤＮＡが取得されていることを特徴とする請求項２７に記載のコンピュータシステム。
【請求項３０】
各ネットワークＤＮＡコンポーネントは、信頼レベルに関連付けられており、
前記ネットワークＤＮＡポリシーのネットワークＤＮＡポリシー条件に関連付けられた前記各ネットワークＤＮＡコンポーネントの信頼レベルの統計関数が十分なネットワークＤＮＡ取得の閾値より大きい場合、前記ネットワークＤＮＡポリシーの十分なネットワークＤＮＡが取得されていることを特徴とする請求項２７に記載のコンピュータシステム。
【請求項３１】
最低限、少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様に従って前記少なくとも１つの派生ネットワークＤＮＡコンポーネントを生成し、前記少なくとも１つの派生ネットワークＤＮＡコンポーネントの仕様の少なくとも１つは、前記コンピュータネットワークに関連付けられた前記ネットワークＤＮＡの少なくとも１つの生のネットワークＤＮＡコンポーネントに関連付けられるように構成されたネットワークＤＮＡ生成モジュールをさらに含むことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項３２】
前記ネットワークＤＮＡ生成モジュールは、最低限、少なくとも１つの派生−生ネットワークＤＮＡコンポーネント依存性リストを保持し、前記少なくとも１つの派生−生ネットワークＤＮＡコンポーネント依存性リストは、前記ネットワークＤＮＡ生成モジュールによって生成された前記各派生ネットワークＤＮＡコンポーネントについて、前記派生ネットワークＤＮＡコンポーネントに関連付けられた前記各派生ネットワークＤＮＡコンポーネントの仕様に関連付けられた前記各生のネットワークＤＮＡコンポーネントに関連付けられたリストを含むことを特徴とする請求項３１に記載のコンピュータシステム。
【請求項３３】
前記ネットワークＤＮＡ生成モジュールは、最低限、派生ネットワークＤＮＡリフレッシュリストに関連付けられた前記各派生ネットワークＤＮＡコンポーネントを生成し、前記派生ネットワークＤＮＡリフレッシュリストは、変更された生のネットワークＤＮＡコンポーネントに依存する前記各派生ネットワークＤＮＡコンポーネントに関連付けるようにさらに構成されたことを特徴とする請求項３１に記載のコンピュータシステム。
【請求項３４】
前記ネットワークＤＮＡ取得モジュールは、最低限、生のネットワークＤＮＡコンポーネント取得優先リストによって指定された順序で複数の生のネットワークＤＮＡコンポーネントを取得し、該各生のネットワークＤＮＡコンポーネントは、前記少なくとも１つのコンピュータネットワークの属性に対応するように構成されたことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項３５】
前記生のネットワークＤＮＡコンポーネント取得優先リストによって指定された前記順序は、前記複数の生のネットワークＤＮＡコンポーネントに関連付けられたネットワークＤＮＡポリシーの順序付けられた集合に従うことを特徴とする請求項３４に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータネットワークに関し、より詳細には、コンピュータネットワークの分類に関する。
【背景技術】
【０００２】
コンピュータネットワークおよびコンピュータネットワーキングは、広く普及してきている。この普及の裏で、さまざまなコンピュータネットワークの種類、コンポーネント、および構成が増大している。結果として、コンピュータネットワーク接続を維持しようとするコンピュータシステムおよび／またはコンピュータシステムのユーザは、さまざまなネットワーク構成パラメータを要求され、さまざまなネットワーク特性を与えられ、ネットワーク接続に関する十分な情報なしに、あるいはそれらを十分に理解することなしに接続についての判断を要求される。さらに悪いことに、技術的に使用不可能ではないのに、例えばネットワーク接続手順が不適切なために接続することができない可能性がある。接続の問題を解決しようとしても、容易に入手できるネットワークの状況標識がなく、かつ／または一般的な用語が分からないために、支援を担当する専門の技術者と意志の疎通ができない場合もある。
【０００３】
【非特許文献１】Microsoft Developer Network (MSDN（登録商標）) Library 2003年2月「Microsoft（登録商標） Windows（登録商標）Platform Software Development Kit (SDK)ドキュメント」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ネットワーク接続自体がコンピュータ間で名目上維持される場合でも、例えばパフォーマンスの低下を避けるため、あるいはセキュリティの脆弱性を回避するために、場合によってはネットワークに接続するコンピュータがホスティングするアプリケーションをネットワークの変化に適応させる必要がある。従来の夥しいネットワーク属性の結果として、ほとんどのアプリケーションは、従来の各ネットワーク属性を選択できない。ネットワークに接続したアプリケーションのユーザは、ようやくネットワーク接続の問題を解決しても、結局最初に接続を確立しなければならなかったアプリケーションに失望し、あるいは気付かぬうちに自らセキュリティの危険にさらされていることに気付くかもしれない。
【０００５】
上記の問題点は、特にモバイルコンピュータおよびモバイルコンピュータのユーザが直面するが、非モバイルコンピュータでも利用可能な複数のコンピュータネットワークが協働的でない場合、それらのコンピュータネットワークにも共通する課題である。例えば、都市部の多くの場所は、少なくとも１つの有線ネットワーク接続と、１つまたは複数の無線ネットワークオプションを有する。複数のコンピュータネットワークを利用できる場合、特定のデータパケットに対してどのコンピュータネットワークを選択するかの判断は複雑なプロセスであり、従来のネットワーク属性は判断要素を提供できない可能性がある。
【課題を解決するための手段】
【０００６】
本節では、本発明のいくつかの態様について簡単に概要を示す。以下の説明は、本発明の概要を一般的に示すものではない。本発明の重要／不可欠な要素を特定し、または本発明の範囲を限定することを意図したものではない。後述の詳細な説明の導入部として、本発明のいくつかの態様を簡単に示すことのみを目的とする。
【０００７】
本発明の１つの態様では、コンピュータネットワークに対してネットワークＤＮＡが決定され、コンピュータネットワークが分類学的に区分される。ネットワークＤＮＡには、派生（ｄｅｒｉｖｅｄ）ネットワークＤＮＡコンポーネントと生の（ｒａｗ）ネットワークＤＮＡコンポーネントが含まれる。生のネットワークＤＮＡコンポーネントは、ローカルソースまたはリモートソースから取得できる。生のネットワークＤＮＡコンポーネントは、それぞれコンピュータネットワークの属性に対応してもよい。派生ネットワークＤＮＡコンポーネントは、派生ネットワークＤＮＡコンポーネントの仕様に従って生成される。派生ネットワークＤＮＡコンポーネントの仕様は、生のネットワークＤＮＡコンポーネントを参照してもよい。
【０００８】
本発明の１つの態様では、コンピュータネットワークに対して決定したネットワークＤＮＡにネットワーク種（ｓｐｅｃｉｅｓ）のコンポーネントが含まれる。本発明の１つの態様では、ネットワーク種のコンポーネントがコンピュータネットワークのネットワーク種による分類を表すことができる。ネットワーク種による分類には、エンタープライズネットワーク、ホームネットワーク、パブリックネットワークが含まれる。ネットワーク種による分類は、ネットワークセキュリティ、ネットワーク管理、ネットワークアドレス、ネットワークの利用目的、およびその他の属性に応じて決定してもよい。
【０００９】
本発明の１つの態様では、１台または複数台のコンピュータは、１つまたは複数のコンピュータネットワークに接続される。１つまたは複数のネットワークＤＮＡストアは、コンピュータネットワークのネットワークＤＮＡを格納するように構成できる。ネットワークＤＮＡストアには、現在のネットワークＤＮＡだけでなく、ネットワークＤＮＡの履歴を格納してもよい。
【００１０】
添付の特許請求の範囲で本発明の機能について詳細に記述するが、本発明とその利点は、以下の実施形態に関する説明と添付の図面を関連付けて参照することで、より明らかになるであろう。
【発明を実施するための最良の形態】
【００１１】
本発明のさまざまな実施形態について説明する前に、ここで本発明のさまざまな実施形態を実施するコンピュータについて説明する。必須ではないが、本発明について、プログラムモジュールのようにコンピュータによって実行されるコンピュータ実行可能な命令の一般的な状況で説明する。一般に、プログラムには、ルーチン、オブジェクト、コンポーネント、データ構造などがあり、特定のタスクを実行し、または特定の抽象データ型を実装する。「プログラム」という用語は、ここで使用する限り、唯一のプログラムモジュールを示しても、連動する複数のプログラムモジュールを示してもよい。「コンピュータ」または「コンピュータ装置」という用語は、ここで使用する限り、パーソナルコンピュータ（ＰＣ）、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのプログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、タブレットＰＣ、ラップトップコンピュータ、マイクロプロセッサまたはマイクロコントローラを備える家電、ルータ、ゲートウェイ、ハブなど、１つまたは複数のプログラムを電子的に実行する任意の装置が含まれる。本発明は、通信ネットワークを介してリンクするリモート処理装置でタスクを実行する分散コンピューティング環境においても利用できる。分散コンピューティング環境では、ローカルとリモートの両方のメモリ記憶装置内にプログラムを格納できる。
【００１２】
図１に、ここで説明する本発明の態様を実施できるコンピュータ１０２の基本的な構成例を示す。その最も基本的な構成において、コンピュータ１０２は一般に少なくとも１つの処理装置１０４とメモリ１０６を備えている。処理装置１０４は、本発明のさまざまな実施形態によるタスクを実施する命令を実行する。こうしたタスクを実施するときに、処理装置１０４はコンピュータ１０２の他の部分とコンピュータ１０２の外部の装置に電子信号を送信して何らかの結果を得ることができる。コンピュータ１０２の正確な構成とタイプによって、メモリ１０６は揮発性（ＲＡＭなど）、不揮発性（ＲＯＭまたはフラッシュメモリなど）、あるいはその両方の組み合わせのいずれでもよい。この最も基本的な構成は、図１に破線１０８で示されている。
【００１３】
コンピュータ１０２は、その他の機能／機能性を備えていてもよい。例えば、コンピュータ１０２には磁気ディスクまたは光ディスクあるいはテープを含むがそれらに限定されない追加のストレージ（取り外し可能なストレージ１１０および／または固定のストレージ１１２）を含めてもよい。コンピュータ記憶媒体には、コンピュータで実行可能な命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納する任意の方法または技術で実施された、揮発性と不揮発性、および取り外し可能と固定の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ  ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）などの光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスクなどの磁気記憶装置、または必要な情報を格納でき、コンピュータ１０２からアクセスできる他の任意の媒体が含まれるが、これらに限定されない。こうしたコンピュータ記憶媒体は、いずれもコンピュータ１０２の一部であってもよい。
【００１４】
さらに、コンピュータ１０２はこの装置がリモートコンピュータ１１６のような他の装置と通信するための通信接続１１４を備えているのが好ましい。通信接続は、通信媒体の一例である。通信媒体は、搬送波やその他の搬送機構のような変調データ信号に含まれるコンピュータ可読の命令、データ構造、プログラムモジュール、またはその他のデータなどを具体化したものであり、任意の情報伝達媒体を含む。例として、「通信媒体」という用語には音響、無線周波数（ＲＦ）、赤外線などの無線媒体が含まれるが、これらに限定はされない。「コンピュータ読取り可能な媒体」という用語には、ここで使用する限り、コンピュータ記憶媒体と通信媒体の両方が含まれる。
【００１５】
コンピュータ１０２は、さらにキーボード／キーパッド、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置１１８を備えていてよい。出力装置１２０には、例えば、ディスプレイ、スピーカ、プリンタなどを含めてもよい。このような装置は、当業者にはよく知られているので、ここでは詳しい説明を省略する。
【００１６】
以下の説明では、本発明について、他の指定がない限り、１台または複数台のコンピューティング装置が実行する動作または操作のシンボリック表現に関して説明する。したがって、コンピュータで実行すると表現される場合もある、こうした動作および操作には、構造化されたデータを表現する電子信号に対してコンピュータの処理装置が行う操作が含まれることは言うまでもない。この操作により、データが変形されたりコンピュータのメモリシステム内の場所が保持されたりするので、コンピュータの操作が再構成されたり変更されたりする。この方法は当業者には明らかである。データが保持されるデータ構造は、データの形式によって定義される特定のプロパティを有するメモリの物理的な場所である。ただし、本発明について前述の状況で説明するが、限定を意味するものではなく、以下で説明するさまざまな動作および操作をハードウエアにも実装できることは、当業者には言うまでもない。
【００１７】
本発明の態様を実装するのに適したコンピュータネットワーキング環境には、複数のコンピュータネットワークを含めてもよい。適切なコンピュータネットワークは、例えば、有効範囲、技術の実装、ノード管理、ネットワークセキュリティ、ネットワーク接続、ノードアドレス方式、サーバの基盤要素、ネットワークの移動性、ネットワークの目的と用途、ネットワークトポロジとトポロジの位置（ｔｏｐｏｌｏｇｉｃａｌ  ｌｏｃａｔｉｏｎ）、およびネットワークの操作特性など、さまざまな要因によって識別できる。コンピュータネットワークの有効範囲（Ｃｏｖｅｒａｇｅ  ｓｃｏｐｅ）指定の例には、パーソナルエリアネットワーク（ＰＡＮ：ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ：ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ワイドエリアネットワーク（ＷＡＮ）が含まれる。コンピュータネットワークの有効範囲は、コンピュータネットワークの物理的な範囲に関連する場合がある。さまざまな物理的範囲によるコンピュータネットワークには、さまざまな実装技術が採用されている。
【００１８】
実装技術には、大きく分けて無線と有線がある。適切な無線技術には、Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）８０２．ｌｘシリーズの標準（例えばＷｉ−Ｆｉ）に準拠する無線通信プロトコル、およびｇｅｎｅｒａｌ  ｐａｃｋｅｔ  ｒａｄｉｏ  ｓｅｒｖｉｃｅ  （ＧＰＲＳ）、ｅｎｈａｎｃｅｄ  ｄａｔａ  ＧＳＭ  ｅｎｖｉｒｏｎｍｅｎｔ（ＥＤＧＥ）、ｕｎｉｖｅｒｓａｌ  ｍｏｂｉｌｅ  ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｓｙｓｔｅｍ（ＵＭＴＳ）を含むＥｕｒｏｐｅａｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ（ＥＴＳＩ）Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ）シリーズの標準に準拠する無線通信プロトコルが含まれる。無線技術には、ＣＤＭＡ  １Ｘ  ａｎｄ  ＣＤＭＡ２０００、およびＢｌｕｅｔｏｏｔｈ（ＢＴ）シリーズなどの標準を含むコード分割多重アクセス（ＣＤＭＡ：ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ）シリーズの標準に準拠する無線通信プロトコルをさらに含めてもよい。無線技術には、ｓｗｉｔｃｈｅｄ  ｍｕｌｔｉ−ｍｅｇａｂｉｔ  ｄａｔａ  ｓｅｒｖｉｃｅｓ  （ＳＭＤＳ）、ｍｕｌｔｉ−ｃｈａｎｎｅｌ  ｍｕｌｔｉｐｏｉｎｔ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｓｅｒｖｉｃｅｓ（ＭＭＤＳ）、ｌｏｃａｌ  ｍｕｌｔｉｐｏｉｎｔ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｓｅｒｖｉｃｅｓ（ＬＭＤＳ）、ｕｌｔｒａｗｉｄｅｂａｎｄ  （ＵＷＢ）  ｗｉｒｅｌｅｓｓ、ＺｉｇＢｅｅ（商標）などの低電力無線（ｌｏｗ  ｐｏｗｅｒ  ｗｉｒｅｌｅｓｓ）センサーネットワーク、および衛星による無線通信技術をさらに含めてもよい。
【００１９】
適切な有線技術には、イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））（すなわち、ＩＥＥＥ  ８０２．３ｘシリーズの標準に準拠する通信プロトコル）、トークンリング（Ｔｏｋｅｎ  ｒｉｎｇ）（すなわち、ＩＥＥＥ  ８０２．５ｘシリーズの標準に準拠する通信プロトコル）、およびＳｅｒｉａｌ  Ｌｉｎｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＳＬＩＰ）、Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ  Ｐｒｏｔｏｃｏｌ（ＰＰＰ）、Ｒｅｍｏｔｅ  Ａｃｃｅｓｓ  Ｓｅｒｖｉｃｅ（ＲＡＳ）のようなダイヤルアップ通信プロトコルを含めてもよい。有線技術には、ＩＳＤＮ（ｉｎｔｅｇｒａｔｅｄ  ｓｅｒｖｉｃｅｓ  ｄｉｇｉｔａｌ  ｎｅｔｗｏｒｋ）、ＡＴＭ（ａｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｆｅｒ  ｍｏｄｅ）プロトコル、ＤＯＣＳＩＳ（ｄａｔａ  ｏｖｅｒ  ｃａｂｌｅ  ｓｅｒｖｉｃｅ  ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ）のようなデータ通信標準に準拠するケーブルモデム、ｘＤＳＬ（ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ）、および互換性を有する技術をさらに含めてもよい。上位のレイヤ、例えばＩｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ（ＩＳＯ）  Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ（ＯＳＩ））モデルレイヤ、ＴＣＰ（伝送制御プロトコル）およびＩＰ（インターネットプロトコル）などの通信プロトコルも、適切なコンピュータネットワーク実装技術の例である。
【００２０】
コンピュータネットワークのノード（例えば、コンピュータや基盤要素）は、管理対象でも非管理対象でもよい。本発明の一実施形態では、管理対象ノードについては所属するコンピュータネットワークのコンピュータネットワーク管理者に権限（例えば、ネットワークポリシーを実現する権限）が与えられ得る。本発明の一実施形態において、管理対象コンピュータネットワークの各ノードは管理対象ノードである。非管理対象コンピュータネットワークの基盤要素は、管理対象ノードであってもよい。本発明の一実施形態では、非管理対象ノードは非管理対象コンピュータネットワーク（例えば、アドホックネットワーク）を形成できる。こうしたネットワークには、ネットワークのより高い信頼性とセキュリティ標準を実現する主要な管理者は存在しない。安全なコンピュータネットワークは、ファイアウォールなどの基盤要素を備えており、暗号化通信や認証通信（例えば、他のネットワークのノードとの通信）を要求でき、さらに侵入検知機能を有効にすることもできる。
【００２１】
コンピュータネットワークは、例えば、フル接続、制限された接続または接続なしなど、さまざまなレベルのネットワークの接続性を保持できる。コンピュータネットワークのネットワーク接続性が制限されると、ネットワーク内および他のコンピュータネットワークへのアクセスが制限される可能性がある。ネットワーク接続性の制限は、設計（例えばポリシーおよび／またはフィルタリング）によって、構成の誤りを通じて、またはホスト／ネットワークコンポーネントの障害（例えば、ホストネットワークアダプタまたはスィッチ／ルータの障害）が原因で発生することがある。コンピュータネットワークには、異なるアドレス指定方式、例えば、内部（プライベート）アドレス指定、または外部（パブリック）アドレス指定を組み込むことができる。内部アドレス指定が組み込まれたコンピュータネットワークでは、外部アドレス指定が組み込まれたコンピュータネットワークに接続できるようにするために、ネットワークアドレス変換（ＮＡＴ：ｎｅｔｗｏｒｋ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ）機能のある基盤要素を必要とすることがある。内部アドレス指定が組み込まれたコンピュータネットワークには、セキュリティおよび／またはプライバシーが改善されるという利点がある。
【００２２】
コンピュータネットワークには、ドメイン名サービス（ＤＮＳ：ｄｏｍａｉｎ  ｎａｍｅ  ｓｅｒｖｉｃｅｓ）、プロキシサービス、動的ホスト構成プロトコル（ＤＨＣＰ：ｄｙｎａｍｉｃ  ｈｏｓｔ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｐｒｏｔｏｃｏｌ）サービス、ネットワークアドレス変換サービス、ファイアウォールサービス、リモート認証ダイヤルインユーザサービス（ＲＡＤＩＵＳ：ｒｅｍｏｔｅ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｄｉａｌ−ｉｎ  ｕｓｅｒ  ｓｅｒｖｉｃｅｓ）などのサービス基盤要素すなわち「固定サービス」を組み込むことができる。一部のコンピュータネットワーク、例えばアドホックネットワーク、メッシュネットワーク、ピアツーピアコンピュータネットワークなどには固定サービスが組み込まれていない。しかし、マルチキャストＤＮＳ、ＵＰｎＰ（ユニバーサルプラグアンドプレイ）、リンクローカルアドレス、ＬＬＭＮＲ（ｌｉｎｋ  ｌｏｃａｌ  ｍｕｌｔｉｃａｓｔ  ｎａｍｅ  ｒｅｓｏｌｕｔｉｏｎ）などの分散型の類似機能が組み込まれていてもよい。
【００２３】
コンピュータネットワークは、移動性のさまざまな段階を有することができる。モバイルコンピュータネットワークは、モバイルルータのようなモバイルネットワーク基盤要素を備えることができる。例えば、車両ＬＡＮ（ｖｅｈｉｃｌｅ  ＬＡＮ）には、プライベートネットワークアドレスを変更せずに車両ＬＡＮノードのネットワークアドレス変換ができるパブリックサブネットプレフィックス（ｐｕｂｌｉｃ  ｓｕｂｎｅｔ  ｐｒｅｆｉｘｅｓ）の変更を使用した無線モバイルルータを含めることができる。
【００２４】
コンピュータネットワークは、用途やアクセスポリシーを指定することができる。例えば、コンピュータネットワークは、私用または公用でもよい。本発明の一実施形態では、専用のコンピュータネットワークには、ネットワークを所有する（または利用のために加入する）組織が所有するノードがある。専用のコンピュータネットワークを管理して、ノード間の高い信頼レベルを実現することができる。公用のコンピュータネットワークは、支払い能力のある任意の顧客向けの、あるいは無料の匿名サービスを提供することができる。本発明の一実施形態では、公用のコンピュータネットワークのクライアントノード（例えば、顧客ノード）は、非管理対象である。公用のコンピュータネットワークでは、ノード間の信頼は低く、さまざまな要求によって技術的な管理が困難になることもある。例えば、サービスの品質に大きな格差が生じることになる。
【００２５】
コンピュータネットワークは、トポロジカルな配置あるいは他のコンピュータネットワークに対する位置を指定できる。例えば、コンピュータネットワークは、他のネットワークとの間でデータトラフィックをルーティングするトランジット（ｔｒａｎｓｉｔ）（コア）ネットワーク（例えばインターネットサービスプロバイダ）でも、ネットワークの内部で、およびトランジットネットワークとの間でデータトラフィックをルーティングするスタブネットワークでもよい。コンピュータネットワークの操作属性や特性（すなわちネットワークの操作属性）には、速度すなわちスループット（例えば、キロビット／秒（ｋｂｐｓ）からギガビット／秒まで）、輻輳（例えば、低、中、高、または重大）、負荷（例えば、低または活用されていない、中または平均または一般的、高またはほぼ容量いっぱい、緊急または限界）、伝送待ち時間、スループットジッタ、パケットロスの確率、サービスの品質（ＱｏＳ）、操作費用（例えば、バイト当たりまたは時間当たり）などが含まれる。
【００２６】
コンピュータネットワークは、構内ネットワーク（ｐｒｅｍｉｓｅ  ｎｅｔｗｏｒｋ）、すなわち特定の場所における専用ネットワークでもよい。例えば、１つまたは複数の大学のキャンパスＬＡＮを接続したものは構内ネットワークである。コンピュータネットワークは、近接ネットワークである。すなわち、ネットワークは、ノードが例えば１つまたは複数以上の共有無線チャネルを介してお互いに近接していることによって確立する。近接ネットワークは、シングルホップでもマルチホップでもよい。また、アドホックな性質を持っており、例えばクラスの領域または展開領域に入った時点で確立される。
【００２７】
図２に、複数のコンピュータネットワークを結合したコンピュータネットワーキング環境の例を示す。コンピュータネットワーキング環境の例２００には、複数のコンピュータ２０２、２０４、２０６、２０８、２１０、２１２、２１４、２１６、２１８（例えば、個々のコンピュータは図１に関連して説明したコンピュータ１０２でもよい）が含まれる。これらのコンピュータは、それぞれ雲のマークで表したいくつかのコンピュータネットワーク、２２０、２２２、２２４、２２６、２２８を介して互いに通信する。個々のコンピュータネットワーク、２２０、２２２、２２４、２２６、２２８には、ルータ、ゲートウェイ、ハブのような周知のコンポーネントが多く含まれており、コンピュータ２０２、２０４、２０６、２０８、２１０、２１２、２１４、２１６、２１８は有線および／または無線の媒体を介して通信できる。コンピュータネットワーク、２２０、２２２、２２４、２２６、２２８を介して互いに通信する場合に、１台または複数台のコンピュータ、２０２、２０４、２０６、２０８、２１０、２１２、２１４、２１６、２１８は、他のコンピュータ、２０２、２０４、２０６、２０８、２１０、２１２、２１４、２１６、２１８に対してクライアント、サーバ、ピアのいずれとしても動作できる。したがって、ここで説明する特定の例が、こうしたあらゆるタイプのコンピュータについて言及していない場合でも、本発明のさまざまな実施形態は、クライアント、サーバ、ピア、またはそれらの組み合わせに対して実施できる。
【００２８】
コンピュータ２０２はコンピュータネットワーク２２０に接続されている。リソースサーバ２０４もコンピュータネットワーク２２０に接続されている。例えば、リソースサーバ２０４は、ファイルサーバ、ディレクトリサーバ、データベースサーバ、プリントサーバ、コラボレーションサーバ、ＤＮＳサーバ、ＤＨＣＰサーバなどのプロビジョニングサーバ、ＲＡＤＩＵＳサーバなどの認証サーバ、またはそれらの組み合わせのいずれでもよい。Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）ＸＰサーバは、リソースサーバの１つの例である。
【００２９】
ネットワークゲートウェイ２０６は、コンピュータネットワーク２２０とコンピュータネットワーク２２２に接続されている。ネットワークゲートウェイ２０６は、コンピュータネットワーク２２０とコンピュータネットワーク２２２の間のコンピュータネットワークトラフィックの通過を制限またはフィルタリングできる。例えば、ネットワークゲートウェイ２０６コンピュータは、ネットワークゲートウェイ２０６に到着するコンピュータネットワークトラフィックに関して、コンピュータネットワークトラフィックポリシー、例えばセキュリティポリシーを実現するファイアーウォールソフトウェアを実行できる。
【００３０】
例えば、コンピュータネットワーク２２０は、イーサネット（登録商標）ＬＡＮ上で動作し、内部アドレス指定方式を採用しているエンタープライズネットワークでもよい。コンピュータ２０２、２０４、２０６は、それぞれコンピュータネットワーク２２０の管理対象ノードでもよい。コンピュータネットワーク２２２は、インターネットなどの公用のインターネットワークでもよい。コンピュータネットワーク２２２を表している雲マークは、コンピュータネットワーク２２０、２２４、２２６、２２８を表す雲マークよりも大きい。これは、コンピュータネットワーク２２２がコンピュータネットワーク２２０、２２４、２２６との間のデータトラフィックを処理するトランジットネットワークであることを示している。コンピュータ２１４は、コンピュータネットワーク２２２へのダイヤルアップ接続を備えていてよい。
【００３１】
コンピュータネットワーク２２４は、デジタル通信リンク（例えばＴ１）によってコンピュータネットワーク２２２に接続された公衆無線ネットワークであってもよい。コンピュータ２０８は、コンピュータネットワーク２２４の非管理対象ノードでもよいが、例えば、コンピュータネットワーク２２４は、ネットワーク２２２に対する完全な接続性を提供する前に、コンピュータ２０８に対してリソースサーバ２１０に登録するよう要求してもよい。コンピュータネットワーク２２６は、コンピュータネットワーク２２２、ネットワークゲートウェイ２０６、コンピュータネットワーク２２０にまたがるコンピュータ２１２とリソースサーバ２０４間のＶＰＮ（仮想プライベートネットワーク）をサポートできる家庭内ＬＡＮであってもよい。コンピュータネットワーク２２８は、コンピュータ２１６と２１８によってその場でインスタンス化された無線コンピュータネットワークでもよい。この例のコンピュータネットワーキング環境では、コンピュータネットワーク２２８は他のコンピュータネットワーク２２０、２２２、２２４、２２６に接続されていない。しかし、例えば、コンピュータ２１６がコンピュータネットワーク２２０との接続を確立した場合、コンピュータ２１６は、コンピュータネットワーク２２８のブリッジまたはネットワークゲートウェイとして動作できる。
【００３２】
図３に、本発明の１つの実施形態による高度なシステムアーキテクチャの例を示す。アプリケーションプログラム３０２は、オペレーティングシステム３０４を利用してコンピュータハードウェア３０６と対話できる。例えば、コンピュータハードウェア３０６は、図１に関連して説明したコンピュータ１０２の任意のハードウェアコンポーネントを含むことができる。オペレーティングシステム３０４は、装置ドライバ３０８とネットワークＤＮＡモジュール３１０を含むことができる。コンピュータハードウェア３０６の各コンポーネントは、１つまたは複数の装置ドライバ３０８に関連付けることができる。各装置ドライバ３０８は、コンピュータハードウェア３０６と対話をするための１つまたは複数のソフトウェアインターフェースを提供することができる。
【００３３】
ネットワークＤＮＡモジュール３１０は、コンピュータハードウェア３０６、オペレーティングシステム３０４、アプリケーションプログラム３０２からネットワーク属性を動的に集めることができる。本発明の一実施形態では、ネットワークＤＮＡモジュール３１０は、１台または複数台のコンピュータに常駐する。各コンピュータは、１つまたは複数のコンピュータネットワークに接続できる。ネットワークＤＮＡモジュール３１０は、接続された各コンピュータネットワークのネットワークＤＮＡを決定できる。ネットワークＤＮＡは、関連コンピュータネットワークを分類学的に区分できる。特定のコンピュータネットワークのネットワークＤＮＡは、時間の経過に伴って変化してもよいが、本発明の一実施形態ではそのような変化はほとんどない。コンピュータネットワーク接続（例えば、図１の通信接続１１４）は、ネットワークＤＮＡモジュール３１０が関連のコンピュータネットワークのネットワークＤＮＡを決定するためにアクティブである必要はない。ネットワークＤＮＡモジュール３１０は、例えば、要求された時点で、または興味のある加入者にネットワークＤＮＡイベントを発行することにより、ネットワークＤＮＡを提供できる。
【００３４】
ネットワークＤＮＡモジュール３１０は、例えば、非特許文献１の「Ｗｉｎｄｏｗｓ（登録商標）  Ｓｏｃｋｅｔｓ  ２」の節で詳説するＷｉｎｄｏｗｓ（登録商標）  Ｓｏｃｋｅｔｓ  ２（Ｗｉｎｓｏｃｋ）ネットワークアプリケーションプログラミングインターフェース（ＡＰＩ）のようなネットワークアプリケーションプログラミングインターフェースに組み込むことも、ネットワークアプリケーションプログラミングインターフェースを利用する（例えば、ネットワーク属性を動的に集める）こともできる。ネットワークＤＮＡモジュール３１０は、例えば、非特許文献１の「Ｎｅｔｗｏｒｋ  Ｌｏｃａｔｉｏｎ  Ａｗａｒｅｎｅｓｓ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ」の節に詳説されるネットワーク位置認識モジュールに組み込まれることも、ネットワーク位置認識モジュールを利用する（例えば、ネットワーク属性を動的に集める）こともできる。図３には示されていないが、ネットワークアプリケーションプログラミングインターフェースおよび／またはネットワーク位置認識モジュールは、オペレーティングシステム３０４に組み込まれてもよい。
【００３５】
図４に、本発明の一実施形態によるネットワークＤＮＡモジュールアーキテクチャの例を示す。ネットワークＤＮＡモジュール４００の例には、ネットワークＤＮＡ取得モジュール４０２、ネットワークＤＮＡ生成モジュール４０４、現在のネットワークＤＮＡ４０６ストア、ネットワークＤＮＡ履歴４０８ストア、ネットワークＤＮＡポリシーストア４１０、ネットワークＤＮＡポリシー実行モジュール４１２、ネットワークＤＮＡアプリケーションプログラミングインターフェース（ＡＰＩ）４１４が含まれる。ネットワークＤＮＡ生成モジュール４０４には、派生ネットワークＤＮＡコンポーネントの仕様４１６と派生〜生ネットワークＤＮＡコンポーネント依存性リスト４１８が含まれてよい。現在のネットワークＤＮＡ４０６ストアには、生のネットワークＤＮＡコンポーネント４２０と派生ネットワークＤＮＡコンポーネント４２２が含まれる。現在のネットワークＤＮＡ４０６ストア、ネットワークＤＮＡ履歴４０８ストア、ネットワークＤＮＡポリシーストア４１０、および／またはその他のネットワークＤＮＡモジュール４００ストアは、従来のデータベース技術、キャッシング技術、および／または同様のものを使用して実装してもよい。
【００３６】
ネットワークＤＮＡ取得モジュール４０２は、コンピュータハードウェア３０６（図３）、オペレーティングシステム３０４、アプリケーションプログラム３０２、リモートのコンピュータ１１６（図１）にあるネットワークＤＮＡモジュールから生のネットワークＤＮＡコンポーネントの値を取得できる。ネットワークＤＮＡ取得モジュール４０２は、信頼された（例えば認証された）ソースと信頼できないソースの両方から、生のネットワークＤＮＡコンポーネントの値を取得することができる。一部のコンピュータネットワークは、ネットワークＤＮＡプロビジョニングサーバを組み込んで、ネットワークＤＮＡの明示的で有効なソースを提供することができる。従来のプロビジョニング方式は、ネットワークＤＮＡを使用して拡張することができる。
【００３７】
生のネットワークＤＮＡコンポーネントの値は、静的な値の単純なコピーであることができ、動的に変わる値またはそれと同様の値のサンプルであってもよい。生のネットワークＤＮＡコンポーネントの例には、ＩＰアドレス、ドメイン名、ネットワーク基盤要素（例えば、ＤＮＳサーバ、認証サーバ、プロキシサーバ、ＮＡＴ）の検証済みの存在、認証の成功、ＤＨＣＰサーバから受信したパラメータ（例えばサブネットマスク）、通信媒体の種類（例えば無線または有線）、ネットワークトラフィックの分析（例えば、ソースアドレスセット、または統計的なトラフィックの「特徴（ｆｉｎｇｅｒｐｒｉｎｔ）」の合致）、費用、サービスプロバイダ、ローミング契約、名目上使用可能な通信帯域幅、使用可能な通信帯域幅の測定値、論理ネットワーク位置および物理ネットワーク位置が含まれる。生のネットワークＤＮＡコンポーネントは、任意の適切な（つまり取得できる）従来のコンピュータネットワーク属性でよい。生のネットワークＤＮＡコンポーネントは、適切なユーザインターフェースメカニズムを利用しているコンピュータユーザが入力してもよい。
【００３８】
ネットワークＤＮＡ取得モジュール４０２は、現在のネットワークＤＮＡ４０６ストアの生のネットワークＤＮＡコンポーネント４２０領域を更新できる。ネットワークＤＮＡ取得モジュール４０２は、現在のネットワークＤＮＡコンポーネントの値をネットワークＤＮＡ履歴４０８ストアにコピーしてからこうした値を更新できる。ネットワークＤＮＡ取得モジュール４０２は、現在のネットワークＤＮＡ４０６ストアへの更新をネットワークＤＮＡ生成モジュール４０４に通知できる。
【００３９】
ネットワークＤＮＡ生成モジュール４０４は、生のネットワークＤＮＡコンポーネントの値から派生ネットワークＤＮＡコンポーネントの値を決定できる。ネットワークＤＮＡ生成モジュール４０４は、派生ネットワークＤＮＡコンポーネントの仕様４１６に従って派生ネットワークＤＮＡコンポーネントの値を決定できる。例えば、派生ネットワークＤＮＡコンポーネントの仕様４１６の各々は、１つまたは複数の生のネットワークＤＮＡコンポーネントの値の線形または非線形の組み合わせおよび／または変形を指定できる。派生〜生ネットワークＤＮＡコンポーネントの依存性リスト４１８には、派生ネットワークＤＮＡコンポーネントごとに、派生ネットワークＤＮＡコンポーネントを決定するために必要な生のネットワークＤＮＡコンポーネントのリスト、および／または生のネットワークＤＮＡコンポーネントごとに、生のネットワークＤＮＡコンポーネントに依存する派生ネットワークＤＮＡコンポーネントのリストを含むことができる（例えば、生のネットワークＤＮＡコンポーネントは、派生ネットワークＤＮＡコンポーネントを決定するための派生ネットワークＤＮＡコンポーネントの仕様の一部である）。ネットワークＤＮＡ生成モジュール４０４は、現在のネットワークＤＮＡ４０６ストアの派生ネットワークＤＮＡコンポーネント４２２領域を更新できる。ネットワークＤＮＡ生成モジュール４０４は、現在のネットワークＤＮＡコンポーネントの値をネットワークＤＮＡ履歴４０８ストアにコピーしてからこうした値を更新できる。
【００４０】
ネットワークＤＮＡポリシー実行モジュール４１２は、ネットワークＤＮＡポリシーストア４１０に格納されたネットワークＤＮＡポリシーを実行することができる。ネットワークＤＮＡポリシーは、現在のネットワークＤＮＡ４０６ストアおよび／またはネットワークＤＮＡ履歴４０８ストアに記憶されたネットワークＤＮＡに依存してもよい。例えば、ネットワークＤＮＡポリシー操作は、特定の値をとるネットワークＤＮＡコンポーネントによって、または特定の閾値を超えるネットワークＤＮＡコンポーネントによってトリガされることができる。ネットワークＤＮＡアプリケーションプログラミングインターフェース４１４によって、アプリケーションプログラム３０２（図３）は、例えばネットワークＤＮＡポリシーを編集し、または現在のネットワークＤＮＡとネットワークＤＮＡ履歴とを取得することができるようになり得る。
【００４１】
ネットワークＤＮＡモジュールが実行するプロシージャについて詳しく説明する前に、ネットワークＤＮＡ、ネットワークＤＮＡポリシー、ネットワークＤＮＡアプリケーションプログラミングインターフェース４１４（図４）について詳説すれば理解が深まるであろう。
【００４２】
図５に、本発明の１つの実施形態によるネットワークＤＮＡの例を示す。ネットワークＤＮＡ５００の例には、ネットワーク種（ｓｐｅｃｉｅｓ）５０２コンポーネント、ネットワーク名５０４コンポーネント、ネットワーク費用５０６コンポーネント、コアアクセス５０８コンポーネント、コアアドレス指定５１０コンポーネント、ネットワークセキュリティ５１２コンポーネント、ネットワーク技術５１４コンポーネントが含まれる。個々のネットワークＤＮＡコンポーネントは、１つまたは複数のサブコンポーネント、例えば、１つまたは複数の生のネットワークＤＮＡコンポーネント（例えば、図４の生のネットワークＤＮＡコンポーネント４２０）、および／または１つまたは複数の派生ネットワークＤＮＡコンポーネント（例えば、図４の派生ネットワークＤＮＡコンポーネント４２２）に関連付けることができる。個々のネットワークＤＮＡコンポーネントは、信頼性、例えば０％から１００％または０から５等級に関連付けることができる。
【００４３】
この例では、ネットワーク種５０２コンポーネントはネットワーク種の信頼性５１６に、ネットワーク名５０４コンポーネントはネットワーク名の信頼性５１８に、ネットワーク費用５０６コンポーネントはネットワーク費用の信頼性５２０に、コアアクセス５０８コンポーネントはコアアクセスの信頼性５２２に、コアアドレス指定５１０コンポーネントはコアアドレス指定の信頼性５２４に、ネットワークセキュリティ５１２コンポーネントは、ネットワークセキュリティの信頼性５２６に、ネットワーク技術５１４コンポーネントはネットワーク技術の信頼性５２８に、それぞれ関連付けられる。個々のネットワークＤＮＡの信頼性５１６、５１８、５２０、５２２、５２４、５２６、５２８は、関連のネットワークＤＮＡコンポーネントの値の精度および／または有効桁数で信頼性（たとえ、統計的な信頼性）のレベルを指定できる。ネットワークＤＮＡの信頼性は、派生ネットワークＤＮＡコンポーネント４２２が更新されるときに、ネットワークＤＮＡ生成モジュール４０４（図４）によって更新され得る。
【００４４】
ネットワークＤＮＡ５００のネットワーク種５０２コンポーネントは、関連のコンピュータネットワークのネットワーククラス（または種）を示してもよい。例えば、ネットワーク種５０２コンポーネントは、関連のコンピュータネットワークが、エンタープライズネットワークであるか、ホームネットワークであるか、または公共の場（公衆）ネットワークであるかを示してもよい。ネットワークＤＮＡ５００のネットワーク種５０２コンポーネントは、派生ネットワークＤＮＡコンポーネント４２２（図４）の１つであってよく、１つまたは複数の派生ネットワークＤＮＡコンポーネントの仕様４１６に関連付けられることができる。
【００４５】
例えば、ネットワーク種５０２コンポーネントに関連付けられた派生ネットワークＤＮＡコンポーネントの仕様４１６（図４）の１つでは、関連のコンピュータネットワークの属性が指定の組み合わせ、つまり安全なネットワークであること（すなわち良好なネットワークセキュリティを備えていること）、管理対象ネットワークであること（すなわち良好なネットワーク管理がなされていること）、１つまたは複数の指定のエンタープライズリソースに接続できること（例えば良好なローカルエリアネットワーク接続を備えていること）、無線ＬＡＮ技術を備えていること、モバイルネットワークであること（すなわち良好なネットワークモバイル機能を備えていること）、プライベートネットワークであること（内部ネットワークアドレス指定を利用していること）、顧客構内ネットワークであること、近接ネットワークでないことを含む場合に、ネットワーク種５０２コンポーネントは、関連のコンピュータネットワークがエンタープライズネットワークであることを示すように指定できる。このようなコンピュータネットワーク属性の１つまたは複数の組み合わせを備えることができるコンピュータネットワークの例には、企業のコンピュータネットワーク（従業員専用）、仮想プライベートネットワーク、車両ネットワーク（企業の保有車両）、管理対象コミュニティネットワーク、ウェアハウス（ｗａｒｅｈｏｕｓｅ）ネットワークが含まれる。
【００４６】
派生ネットワークＤＮＡコンポーネントの仕様は、関連のコンピュータネットワークの属性に指定の組み合わせ、つまり安全ではないネットワークであること（すなわちネットワークセキュリティが不十分であること）、非管理対象ネットワークであること（すなわちネットワーク管理が不十分であること）、ネットワークノードとその他のコンピュータネットワーク（例えば、インターネット）間にアドホックかつ／または制限された接続性を提供すること、ＰＡＮ、ＬＡＮおよび／または無線ＬＡＮ技術を含むこと、モバイルネットワークではないこと（ネットワークのモバイル機能が不十分であること）、プライベートネットワークであること（内部ネットワークアドレス指定を利用していること）、構内ネットワークあるいは近接ネットワークであることを含む場合に、ネットワーク種５０２コンポーネントは関連のコンピュータネットワークがホームネットワークであることを示すように指定できる。このようなコンピュータネットワーク属性の１つまたは複数の組み合わせを備えることができるコンピュータネットワークの例には、ホームネットワークや住宅用ネットワークが含まれる。
【００４７】
派生ネットワークＤＮＡコンポーネントの仕様は、関連のコンピュータネットワークの属性に指定の組み合わせ、つまり安全ではないネットワークであること、非管理対象ネットワークであること、ＰＡＮ、ＬＡＮ、無線ＬＡＮ技術および／または無線ＷＡＮ技術を含むこと、他のコンピュータネットワーク（例えばインターネット）に接続できること、モバイルネットワークではないこと、関連のアクセス費用がかかること、プライベートネットワークではないこと、構内ネットワークあるいは近接ネットワークでないことを含む場合に、ネットワーク種５０２コンポーネントは関連のコンピュータネットワークがパブリックネットワークであることを示すように指定できる。このようなコンピュータネットワーク属性の１つまたは複数の組み合わせを備えることができるコンピュータネットワークの例には、空港、レストラン、喫茶店のコンピュータネットワーク、コンベンションセンター、ホテル（特にホテルのロビー）、図書館、企業のゲストネットワーク、一部の無線広域ネットワークがある。
【００４８】
上記の例に示すように、派生ネットワークＤＮＡコンポーネントの仕様４１６（図４）は、互いに排他的である必要はない。個々の派生ネットワークＤＮＡコンポーネントの仕様には、ネットワークＤＮＡの信頼性の評価方法の仕様を含めてもよい。例えば、特定の派生ネットワークＤＮＡコンポーネントの仕様は、複数の生のネットワークＤＮＡコンポーネントを参照してもよい。関連のネットワークＤＮＡ信頼性の評価方法の仕様には、存在しない（まだ取得されていない）か、未証明の（信頼されないソースから取得された）生のネットワークＤＮＡコンポーネントの信頼性が低下すること、生のネットワークＤＮＡコンポーネントの一部が、信頼性の基準に対して他コンポーネントよりも大きな影響力を持つこと等を指定することができる。異なる派生ネットワークＤＮＡコンポーネントの値の総数が妥当（例えば１００、ただしコンピュータの処理力に依存する）である場合、異なる値はそれぞれ関連の信頼性のスコアをとることができる。このような場合、特定の派生ネットワークＤＮＡコンポーネントの値を要求すると、最も関連の深い信頼性のスコアを有する１つまたは複数の値を含む応答になり得る。
【００４９】
ネットワークＤＮＡ５００のネットワーク名５０４コンポーネントは、関連のコンピュータネットワークのネットワーク名および／またはネットワーク識別子を示すことができる。ネットワーク名は、例えば、単純な英数字の文字列でも、より複雑なデータ構造でもよい。ネットワーク名には、例えば、関連のコンピュータネットワークを一意に識別するグローバル一意識別子（ＧＵＩＤ：ｇｌｏｂａｌｌｙ  ｕｎｉｑｕｅ  ｉｄｅｎｔｉｆｉｅｒ）を含めてもよい。しかし、ネットワーク名５０４コンポーネントもネットワークＤＮＡ５００全体としても、コンピュータネットワーク全域にわたって一意である必要はない。派生ネットワークＤＮＡコンポーネント５０２、５０４、５０６、５０８、５１０、５１２、５１４のそれぞれについて、１つまたは複数の派生ネットワークＤＮＡコンポーネントの仕様４１６（図４）によってネットワーク名５０４コンポーネントの属性と値を指定できる。確率的ネットワーク名前解決を利用する場合、例えばネットワーク名の信頼性５１８は、確率的名前解決プロセスの進捗によってある程度の決定の信頼レベルを指定できる。
【００５０】
ネットワークＤＮＡ５００のネットワーク費用５０６コンポーネントは、関連のコンピュータネットワークの利用に関連する、履歴、将来および現在の費用を指定できる。例えば、ネットワーク費用５０６コンポーネントは、バイト当たり、時間当たり、その他の適切な帯域幅、期間および／またはネットワークリソースの価格オプションを含む１つまたは複数のコンピュータネットワーク利用率計画を参照できる。費用の決定は確率的であってよい。例えば、費用の決定が複雑な場合は、近似の手法を利用してもよい。そのような場合、ネットワーク費用の信頼性５２０は、誤差マージンを示してもよい。
【００５１】
ネットワークＤＮＡ５００のコアアクセス５０８コンポーネントは、関連のコンピュータネットワークがコアネットワークまたはトランジットネットワーク（例えばインターネット）へのアクセスをどの程度まで提供するかを指定できる。例えば、コアアクセス５０８コンポーネントは、コアネットワークアクセスには特定のリソースサーバによる認証が必要であることを示してもよい。コアネットワークアクセスの決定は、確率的かつ／または累進的（ｐｒｏｇｒｅｓｓｉｖｅ）でよい（特に非管理対象ネットワークに接続されたコンピュータからの場合）。コアアクセス信頼性５２２は、決定手続きの達成の進捗状況および／または度合いを示してもよい。
【００５２】
ネットワークＤＮＡ５００のコアアドレス指定５１０コンポーネントは、関連のコンピュータネットワークが内部（プライベート）アドレス指定を利用するか、外部（公衆またはコア）アドレス指定を利用するかを示してもよい。内部アドレス指定を利用すると、アプリケーションに利用できる適切な１組の通信プロトコルが減少する。コアアドレス指定の決定は、確率的かつ／または累進的でよい。あるいはコアアドレス指定の信頼性５２６は単に確認された状態か未確認の状態かを示してもよい。
【００５３】
ネットワークＤＮＡ５００のネットワークセキュリティ５１２コンポーネントは、関連のコンピュータネットワークで利用できる１つまたは複数のセキュリティメカニズムを指定できる。同時に、例えばどのセキュリティメカニズムが関連のコンピュータネットワークに接続されるコンピュータに必須であるかを指定できる。例えば、ネットワークセキュリティ５１２コンポーネントは、１つまたは複数のネットワーク基盤要素またはリソースサーバによる認証が必須であること、および暗号化は利用できるがオプションであることを指定できる。ネットワークセキュリティ５１２コンポーネントは、適切な認証証明書および／または暗号化キーを参照してもよい。利用可能なかつ／または必須のセキュリティメカニズムの決定は、確率的かつ／または累進的でよい。例えば、追加の暗号化オプションで後続の認証を利用できるようになり得る。ネットワークセキュリティの信頼性５２６は、関連のコンピュータネットワークにおけるアクティブなセキュリティメカニズムの決定の進捗および／または整合性の信頼性を指定できる。
【００５４】
ネットワークＤＮＡ５００のネットワーク技術５１４コンポーネントは、関連のコンピュータネットワークが利用する１つまたは複数のネットワーク実装技術を指定できる。ネットワーク技術の指定には、例えば無線か有線かのような大ざっぱな分類と、例えばＩＥＥＥ  ８０２．１１ａ、ＩＥＥＥ  ８０２．１１ｂ  または  ＩＥＥＥ  ８０２．１６ａ無線のようにきめ細かな分類が含まれる。ネットワーク技術の分類の決定は、確率的かつ／または累進的でもよい。ネットワーク技術の信頼性５２８には、決定された各ネットワーク技術分類についての信頼性の基準を含めてよい。
【００５５】
ネットワークＤＮＡポリシーは、ネットワークＤＮＡ５００に依存してもよい。図６に、本発明の１つの実施形態によるネットワークＤＮＡポリシーの例を示す。ネットワークＤＮＡポリシー６００の例には、ネットワークＤＮＡポリシー名６０２、ネットワークＤＮＡポリシー条件６０４、ネットワークＤＮＡポリシー操作６０６、ネットワークＤＮＡポリシー依存性リスト６０８が含まれる。ネットワークＤＮＡポリシー依存性リスト６０８には、派生ネットワークＤＮＡコンポーネント依存性リスト６１０と生のネットワークＤＮＡコンポーネント依存性リスト６１２とが含まれる。
【００５６】
ネットワークＤＮＡポリシー名６０２は、ネットワークＤＮＡポリシー６００の一意の名前（例えば、英数文字列またはグローバル一意識別子）である。ネットワークＤＮＡポリシー名６０２は、ネットワークＤＮＡポリシー６００の識別子および／または参照として機能する。ネットワークＤＮＡポリシー条件６０４で指定される条件は、現在のネットワークＤＮＡ４０６（図４）および／またはネットワークＤＮＡ履歴４０８の派生ネットワークＤＮＡコンポーネントおよび／または生のネットワークＤＮＡコンポーネントを参照してもよい。ネットワークＤＮＡポリシー操作６０６で指定される操作は、ネットワークＤＮＡポリシー条件６０４で指定される条件を満たす場合、ネットワークＤＮＡモジュール４００によって開始してもよい。
【００５７】
ネットワークＤＮＡポリシー依存性リスト６０８には、ネットワークＤＮＡポリシー６００が依存するシステムの各部（例えば、コンポーネント、モジュール、リソースサーバ）が一覧表示されるので、ネットワークＤＮＡポリシー条件６０４が満たされるかどうかを判断でき、かつ／またはネットワークＤＮＡポリシー操作６０６を開始できる。派生ネットワークＤＮＡコンポーネント依存性リスト６１０には、ネットワークＤＮＡポリシー条件６０４が参照する派生ネットワークＤＮＡコンポーネントを一覧表示してもよい。生のネットワークＤＮＡコンポーネント依存性リスト６１２には、ネットワークＤＮＡポリシー条件６０４が参照する生のネットワークＤＮＡコンポーネントを一覧表示してもよい。
【００５８】
ネットワークＤＮＡポリシーの例には、ネットワーク変更に適応するため、および複数の利用可能なネットワーク間で選択するためのポリシーが含まれる。ネットワークＤＮＡポリシーは、システムの挙動をネットワークＤＮＡ５００に適応させることができる。例えば、ネットワークＤＮＡ５００のネットワーク技術５１４コンポーネントが変わった場合に（コンピュータネットワークを切り替える場合）、アプリケーションプログラム３０２（図３）および／またはオペレーティングシステム３０４の構成変更をトリガしてパフォーマンスの低下を回避してもよい。例えば、メッセージングアプリケーションは、メッセージの（メッセージ全体でなく）指定の部分をダウンロードしてもよいし、または特定のネットワーク技術５１４分類および／またはサブコンポーネントの値では、より控えめに（より低い頻度で）メッセージングサーバと同期してもよい。
【００５９】
ネットワークＤＮＡ５００のネットワークセキュリティ５１２コンポーネントが変わった場合に（コンピュータネットワークを切り替えるとき）、セキュリティの脆弱性の可能性を低くするために、アプリケーションプログラム３０２および／またはオペレーティングシステム３０４の構成変更をトリガしてもよい。１つまたは複数のネットワークＤＮＡポリシーによって、例えばネットワークＤＮＡ５００のネットワーク費用５０６コンポーネントとコアアクセス５０８コンポーネントとの組み合わせに基づいて、複数の利用可能なネットワーク間でどれを選択するかを決定できる。複数の利用可能なネットワーク間での決定（または任意の適切なネットワークＤＮＡポリシーの決定）において利用できるネットワークＤＮＡコンポーネントのその他の例には、ネットワークセキュリティ５１２、速度、負荷、待ち時間、輻輳、無線周波数干渉（ノイズ）、およびネットワークオペレータ（必ずしもファーストホップ、例えば、Ｗｉ−Ｆｉ「ホットスポット」への接続を供給しているＧＰＲＳネットワークのオペレータ／オーナーでなくてもよい）が含まれる。ネットワークＤＮＡポリシーを使用するとユーザが介入する確率は低くなるが、複数のコンピュータネットワーク間の選択を完全に自動化する必要はない。コンピュータのユーザには、可能な選択肢をフィルタリングされたリストで表示することができる。
【００６０】
ネットワークＤＮＡポリシーは、システムセキュリティの構成がネットワークＤＮＡ５００のネットワーク種５０２コンポーネントに基づいて再構成されるように指定できる。（ネットワーク種５０２に指定される）ホームネットワークまたはパブリックネットワークに接続される特定のネットワークＤＮＡポリシーを伴うコンピュータは、指定されたエンタープライズネットワークに自動的にＶＰＮ接続の確立を試みることができるので、例えばコンピュータがエンタープライズネットワークリソースにアクセスでき、かつ／または管理対象になる。別のネットワークＤＮＡポリシーでは、ポリシーを伴うコンピュータが、例えばコンピュータネットワーク種５０２で指定されるようにエンタープライズネットワークとホームネットワークまたはパブリックネットワークの両方に接続される場合、ブリッジング（またはネットワーク間のルーティング）を無効にするように指定することができる。
【００６１】
ネットワークＤＮＡ、アプリケーションプログラミングインターフェース４１４（図４）によって、アプリケーションプログラム３０２（図３）とオペレーティングシステム３０４は、ネットワークＤＮＡとネットワークＤＮＡポリシーにアクセスできる。本発明の１つの実施形態では、ネットワークＤＮＡの人間指向の特性によって、ネットワークＤＮＡがネットワークマッピング（例えば、グラフィカルユーザインターフェース）とネットワークサポートアプリケーション（例えば、エンタープライズヘルプデスク、トラブルシューティング／診断、セキュリティ不履行の事後分析）に特に適合する。ネットワークＤＮＡによって、コンピュータユーザ（およびアプリケーション開発者）は接続しているコンピュータネットワークに関する理解を深めることができる。このことによって、コンピュータユーザの経験を豊かにし、効率を上げることができる。本発明の１つの実施形態では、ネットワークＤＮＡがログに記録され、コンピュータネットワークノード間で伝達されるので、自動および手動で管理されるコンピュータネットワーク効率という側面を向上できる。例えば、ストリーミングデータソースによるアップストリーム帯域幅の割り当て過剰および／または過小（ｏｖｅｒ／ｕｎｄｅｒ）の確率が低下する。
【００６２】
図７に、本発明の一実施形態によるネットワークＤＮＡアプリケーションプログラミングインターフェースの例を示す。ネットワークＤＮＡアプリケーションプログラミングインターフェース７００の例には、ネットワークＤＮＡポリシーの編集７０２要素、ネットワークＤＮＡイベントへの加入（ｓｕｂｓｃｒｉｂｅ）７０４要素、現在のネットワークＤＮＡの取得７０６要素、ネットワークＤＮＡ履歴の取得７０８要素、派生ネットワークＤＮＡコンポーネント仕様の編集７１０要素が含まれる。アプリケーションプログラミングインターフェース要素７０２、７０４、７０６、７０８、７１０には、それぞれコンピュータシステムのモジュールとコンポーネントがネットワークＤＮＡモジュール４００と対話できる方法を指定する１つまたは複数のインターフェースの仕様が含まれてもよい。当業者には明らかなように、インターフェースの仕様には、関数呼び出しの仕様、プログラムオブジェクトの仕様、要求／応答メッセージペアなどのメッセージの仕様、および／またはその他の適切なプログラミングインターフェースの仕様が含まれる。
【００６３】
ネットワークＤＮＡポリシーの編集アプリケーションプログラミングインターフェース要素７０２を使用すると、コンピュータシステムのモジュールとコンポーネントとは、ネットワークＤＮＡモジュール４００（図４）のネットワークＤＮＡポリシー（例えばネットワークＤＮＡポリシー記憶装置４１０に格納されたネットワークＤＮＡポリシー）を作成、読み込み、更新、削除、一時的に無効化または有効化できる。インターフェースの仕様パラメータには、１つまたは複数のネットワークＤＮＡポリシー（図６に関連して前述したように）、ネットワークＤＮＡポリシー操作、ネットワークＤＮＡポリシー条件、ネットワークＤＮＡポリシー名、特定のポリシー（またはポリシーのセット）が効力を生ずる日付と時間、ポリシーが有効な日付と時間の範囲および／またはポリシーが無効な日付と時間の範囲、特定のポリシーの有効化または無効化をトリガするイベントなどを含むことができる。例えば、ネットワークＤＮＡポリシー条件は、構造化照会言語、オブジェクト指向言語（例えば、オブジェクト問い合わせ言語（ｏｂｊｅｃｔ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ））、スクリプト記述言語（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＶＢＳＣＲＩＰＴ）、または任意の適切な条件指定言語（ｃｏｎｄｉｔｉｏｎ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｌａｎｇｕａｇｅ）で指定でき、ネットワークＤＮＡポリシー操作は、データベースストアドプロシージャ言語（ｄａｔａｂａｓｅ  ｓｔｏｒｅｄ  ｐｒｏｃｅｄｕｒｅ  ｌａｎｇｕａｇｅ）、オブジェクト指向言語、スクリプト記述言語、または任意の適切な操作指定言語によって指定することができる。
【００６４】
ネットワークＤＮＡイベントへの加入アプリケーションプログラミングインターフェース要素７０４を使用すると、コンピュータシステムモジュールとコンポーネントはネットワークＤＮＡモジュール４００（図４）が発行したイベントに加入し、または加入を取り消すことができる。インターフェースの仕様パラメータには、１つまたは複数のネットワークＤＮＡイベントの仕様（例えば、イベント識別子、イベントの範囲指定）や１つまたは複数の登録アドレス（例えば、ネットワークＤＮＡイベント配信メカニズムの参照）が含まれる。ネットワークＤＮＡモジュール４００が発行するネットワークＤＮＡイベントの例には、現在のネットワークＤＮＡ４０６の変更、ネットワークＤＮＡポリシーの変更、ネットワークＤＮＡポリシー実現操作の発生、および任意の適切なネットワークＤＮＡモジュール４００の変更イベントが含まれる。
【００６５】
現在のネットワークＤＮＡの取得アプリケーションプログラミングインターフェース要素７０６を使用すると、コンピュータシステムのモジュールとコンポーネントとは、現在のネットワークＤＮＡ４０６（図４）のコピーを取得できる。インターフェースの仕様パラメータには、取得するネットワークＤＮＡコンポーネントセットと、待機およびフラグなどの並列プログラミング（マルチスレッド）動作指定子が含まれ得る。現在のネットワークＤＮＡ履歴の取得アプリケーションプログラミングインターフェース要素７０８を使用すると、コンピュータシステムのモジュールとコンポーネントとは、ネットワークＤＮＡ履歴４０８のコピーを取得できる。インターフェースの仕様パラメータには、取得するネットワークＤＮＡコンポーネントセット、取得するネットワークＤＮＡ履歴エントリの範囲（日付と時間の範囲）、待機およびタイムアウトフラグなどの並列プログラミング（マルチスレッド）動作指定子が含まれ得る。
【００６６】
派生ネットワークＤＮＡコンポーネント仕様の編集アプリケーションプログラムインターフェース要素７１０を使用すると、コンピュータシステムのモジュールとコンポーネントは、派生ネットワークＤＮＡコンポーネントの仕様４１６（図４）を作成、読み込み、更新、削除できる。インターフェースの仕様パラメータには、１つまたは複数の派生ネットワークＤＮＡコンポーネントの仕様（例えば、図４に関連して前に説明した）が含まれる。例えば、派生ネットワークＤＮＡコンポーネントの仕様は、構造化照会言語、オブジェクト指向言語、スクリプト記述言語、データベースストアドプロシージャ言語、または任意の適切なコンポーネント指定言語で指定される。
【００６７】
ネットワークＤＮＡモジュール４００（図４）の構造上の側面についてはすでに説明したので、ここでネットワークＤＮＡモジュール４００の挙動の側面についてより詳細に説明する。
【００６８】
ネットワークＤＮＡ取得モジュール４０２（図４）は、生のネットワークＤＮＡコンポーネントを動的に取得する。取得する可能性のある生のネットワークＤＮＡコンポーネント（取得ターゲット）の数は大きくてもよい。ネットワークＤＮＡ取得モジュール４０２は、ネットワークＤＮＡポリシーの必要性に従って取得ターゲットを優先することができる。例えば、ネットワークＤＮＡポリシーストア４１０のネットワークＤＮＡポリシーは、順序付けられてよく、ネットワークＤＮＡ取得モジュール４０２は、その順序に従ってネットワークＤＮＡポリシーが参照したネットワークＤＮＡコンポーネントを取得してもよい。生のネットワークＤＮＡコンポーネントの一部については、定期的な再取得を要求し（例えば５秒ごとに）、現在のネットワークＤＮＡ４０６ストアで「失効（ｓｔａｌｅ）」しないように優先順位を指定してもよい。生のネットワークＤＮＡコンポーネントの一部については、イベントによってトリガされる非同期的な取得を要求してもよい。生のネットワークＤＮＡコンポーネントの取得は、他の操作の後に、例えばネットワーク認証サーバによる正常な認証の後に実行する必要があり、そのように優先順序を付けてもよい。
【００６９】
図８Ａは本発明の１つの実施形態に従って実行するネットワークＤＮＡ取得手順の例を示している。ステップ８０２で、派生ネットワークＤＮＡ取得優先リストが生成される。例えば、ネットワークＤＮＡ取得モジュール４０２（図４）は、アクティブなネットワークＤＮＡポリシーの各々について、ネットワークＤＮＡポリシー記憶装置４１０に派生ネットワークＤＮＡコンポーネント依存性リスト６１０（図６）を照会してもよい。ネットワークＤＮＡポリシーに順序が付けられている場合、派生ネットワークＤＮＡコンポーネントは、その順序に従って派生ネットワークＤＮＡ取得優先リストに追加されることができる。
【００７０】
ステップ８０４で、生のネットワークＤＮＡ取得優先リストが生成される。例えば、ネットワークＤＮＡ取得モジュール４０２（図４）は、アクティブなネットワークＤＮＡポリシーの各々について、ネットワークＤＮＡポリシー記憶装置４１０に生のネットワークＤＮＡコンポーネント依存性リスト６１２（図６）を照会してもよい。さらに、ネットワークＤＮＡ取得モジュール４０２は、派生ネットワークＤＮＡ取得優先リストの各メンバーが要求する生のネットワークＤＮＡコンポーネントを決定してもよい。例えば、ネットワークＤＮＡ取得モジュール４０２は、ネットワークＤＮＡ生成モジュール４０４に対して、関連の派生〜生ネットワークＤＮＡコンポーネント依存性リスト４１８について問い合わせてもよい。ネットワークＤＮＡポリシーに順序が付けられている場合、生のネットワークＤＮＡコンポーネントは、その順序に従って生のネットワークＤＮＡ取得優先リストに追加される。生のネットワークＤＮＡコンポーネントは、それぞれに関連する取得の問題、例えば取得時間や要求されたリフレッシュ速度に関連する問題が発生する場合がある。取得の順序は、最も取得しやすい生のネットワークＤＮＡコンポーネントがより取得が困難なコンポーネントの前に取得されるように修正できる。本発明の一実施形態では、ステップ８０２はステップ８０４の必須の要素として実行される。
【００７１】
ステップ８０６で、生のネットワークＤＮＡ取得優先リストから次の取得ターゲットが選択され得る。ステップ８０８で、図４に関連してすでに説明したように、選択された取得ターゲットの取得が試行される。それぞれのターゲットの取得には、制限時間が割り当てられる。ステップ８１０で、選択された取得ターゲットが正常に取得されたかどうかが判断される。ターゲットが正常に取得されるとプロシージャはステップ８１２に進み、それ以外の場合はステップ８１４に進む。
【００７２】
ステップ８１２で、取得された生のネットワークＤＮＡコンポーネントは、現在のネットワークＤＮＡ４０６の生のネットワークＤＮＡコンポーネント４２０（図４）領域に保存され、関連の参照は生のネットワークＤＮＡ取得優先リストから削除され得る。ステップ８１６で、ネットワークＤＮＡ生成モジュール４０４に対して正常に取得されたことを通知することができる。例えば、ネットワークＤＮＡ取得モジュールは、生のネットワークＤＮＡ取得イベントを発行することができる。ステップ８１４で、生のネットワークＤＮＡ取得優先リストの長さを確認することができる。リストが空の場合は、現在の取得ターゲットがないのでプロシージャが終了し、それ以外の場合はプロシージャがステップ８０６に戻り、次の取得ターゲットを選択する。
【００７３】
図８Ａに示すプロシージャは、非同期的に呼び出してもよいが、例えばスケジュールに従って同期的に呼び出してもよい。１つまたは複数の生のネットワークＤＮＡコンポーネントの非同期の取得がイベント（すなわちターゲット取得イベント）によってトリガされる場合、ターゲット取得イベントは、１つまたは複数の生のネットワークＤＮＡコンポーネントを指定して、取得することができる。ターゲット取得イベントは、ステップ８０２とステップ８０４とをスキップすることを可能にするステップ８０４の生のネットワークＤＮＡ取得優先リストを指定することさえできる。ターゲット取得イベントが唯一の生のネットワークＤＮＡコンポーネントを指定して、非同期的に取得する場合、ステップ８０６、ステップ８１２、およびステップ８１４もスキップすることができる。図８Ｂは、本発明の１つの実施形態に従って唯一の生のネットワークＤＮＡコンポーネントを非同期的に取得するために実行されるステップの例を示している。ステップ８１８で開始されてターゲット取得イベントが生成され、次に図８Ａに関連して説明したものと同様のステップのサブセットに進む。
【００７４】
ネットワークＤＮＡ生成モジュール４０４（図４）は、派生ネットワークＤＮＡコンポーネントの値を非同期に（例えば生のネットワークＤＮＡ取得イベントに応答して）、またはネットワークＤＮＡ生成スケジュールに従って生成することができる。図９に、本発明の１つの実施形態に従って実行され得るネットワークＤＮＡ生成手順の例を示す。ステップ９０２で、派生ネットワークＤＮＡリフレッシュリストが生成される。例えば、ネットワークＤＮＡ生成モジュール４０４（図４）は、生のネットワークＤＮＡコンポーネントの更新を通知されると、変更された（例えば、前回の派生ネットワークＤＮＡリフレッシュ以降に更新された）生のネットワークＤＮＡコンポーネントに依存するそれぞれの派生ネットワークＤＮＡコンポーネントをリフレッシュリストに追加することができる。派生−生ネットワークＤＮＡコンポーネントの依存性リスト４１８には、派生ネットワークＤＮＡコンポーネントと生のネットワークＤＮＡコンポーネントとの間の依存性を指定できる。
【００７５】
ステップ９０４で、派生ネットワークＤＮＡリフレッシュリストから次のリフレッシュターゲット（すなわち、特定の派生ネットワークＤＮＡコンポーネント）が選択される。ステップ９０６で、関連の派生ネットワークＤＮＡコンポーネント仕様４１６（図４）に従って、選択した派生ネットワークＤＮＡコンポーネントの値が導かれる（すなわち決定される）。例えば、ネットワークＤＮＡ生成モジュール４０４は、生のネットワークＤＮＡコンポーネント４２０の現在の値を取得し、その値を特定の派生ネットワークＤＮＡコンポーネントの仕様で指定されるように変換してもよい。ステップ９０８で、派生ネットワークＤＮＡリフレッシュリストの他にリフレッシターゲットがないか、派生ネットワークＤＮＡリフレッシュリストを確認する。他にもリフレッシュターゲットがある場合、プロシージャがステップ９０４に戻り、次のターゲットを選択する。それ以外の場合はプロシージャが終了する。
【００７６】
ネットワークＤＮＡポリシー実行モジュール４１２（図４）は、ネットワークＤＮＡポリシーを非同期で（例えば現在のネットワークＤＮＡ更新イベントに応答して）、またはネットワークＤＮＡポリシー実現スケジュールに従って実現してもよい。図１０に、本発明の一実施形態に従って実行され得るネットワークＤＮＡポリシー実行手順の例を示す。ステップ１００２で、プロシージャは待機状態にある。プロシージャは、例えばスケジュールされた期間が経過した場合、および／または該当する（すなわち、ポリシーが影響を受けている）ネットワークＤＮＡモジュールイベント（例えば、発行されたイベント）が発生する場合、待機状態を終了することができる。
【００７７】
ステップ１００４で、例えばネットワークＤＮＡポリシー記憶装置４１０（図４）から、次のアクティブなネットワークＤＮＡポリシーが選択される。選択されたネットワークＤＮＡポリシー６００（図６）は、例えば選択されたネットワークＤＮＡポリシー６００の派生ネットワークＤＮＡコンポーネント依存性リスト６１０と、生のネットワークＤＮＡコンポーネント依存性リスト６１２に一覧表示されるように、１つまたは複数の派生ネットワークＤＮＡコンポーネントおよび／または１つまたは複数の生のネットワークＤＮＡコンポーネントに関連付けられる。ステップ１００６で、選択されたネットワークＤＮＡポリシー６００に関連する十分なネットワークＤＮＡコンポーネントが、例えばネットワークＤＮＡ取得モジュール４０２によって取得され、現在のネットワークＤＮＡ４０６ストアに格納されたか否かを判断することができる。例えば、選択されたネットワークＤＮＡポリシー６００が参照するネットワークＤＮＡコンポーネントのそれぞれに関連付けられた信頼レベル（図５の信頼レベル５１６、５１８、５２０、５２２、５２４、５２６、５２８）が０よりも大きな値をとる場合、または少なくとも１つの信頼レベルが十分なネットワークＤＮＡ取得の閾値（例えば５００）を超える場合、または信頼レベルの統計的な関数（例えば平均）が十分なネットワークＤＮＡ取得の閾値を超える場合、十分なネットワークＤＮＡコンポーネントが取得されている。十分なネットワークＤＮＡコンポーネントが取得されている場合、プロシージャが次にステップ１００８に進み、そうでない場合、選択されたネットワークＤＮＡポリシー６００はテストされず、プロシージャはステップ１０１０に進む。
【００７８】
ステップ１００８で、選択されたネットワークＤＮＡポリシー６００のネットワークＤＮＡポリシー条件６０４（図６）をテストすることができる。例えば、ネットワークＤＮＡポリシー条件６０４が、構造化照会言語の文で指定された場合、この構造化照会言語の文は、構造化照会言語インタプリタに送信され得る。ネットワークＤＮＡポリシー条件６０４が満足される場合、（例えば、ネットワークＤＮＡポリシー条件６０４で指定された式が論理真または非ヌルと評価された場合）、プロシージャがステップ１０１２に進む。それ以外の場合は選択されたネットワークＤＮＡポリシーのネットワークＤＮＡポリシー操作６０６は実行されず、プロシージャはステップ１０１０に進む。
【００７９】
ステップ１０１２で、ネットワークＤＮＡポリシー６００のネットワークＤＮＡポリシー操作６０６の実行が開始される。例えば、ネットワークＤＮＡポリシー実行モジュール４１２は、プロシージャ呼び出し（ローカルまたはリモート）を作成し、プログラムオブジェクトのメソッドを呼び出し、プログラムモジュールまたはシステムユーザまたは管理者にメッセージを送信し、かつ／またはコンピュータ（例えば図１のコンピュータ１０２）上で操作を実行するのに適したプログラム技法を開始する。ステップ１０１０で、テストするアクティブなネットワークＤＮＡポリシーが他にもあるか否かを判断する。このサイクルをテストするアクティブなネットワークＤＮＡポリシーが他にもある場合は、プロシージャがステップ１００４に戻り、次のアクティブなネットワークＤＮＡポリシーを選択する。それ以外の場合は、プロシージャがステップ１００２に戻り、次のスケジュールされた、または非同期のウェイクアップイベントを待機する。
【００８０】
出版物、特許出願、特許を含めて、ここに引用するすべての参照は、各参照が、参照により組み込まれるものと個々に、また具体的に示され、その全体が本明細書に述べられているかのような程度で、参照により本明細書に組み込まれる。
【００８１】
本発明を説明する上で、「１つの」、「この」などの表現は（特に前述の特許請求の範囲において）、他の指定がない限り、または状況によって明らかに矛盾しない限り、単数と複数の両方を対象とする。「備える」、「有する」、「含む」は、他の指定がない限り、制約のない用語として（つまり、「含むが限定はされない」という意味）解釈されたい。ここに列挙する値の範囲は、ここに他の指定がない限り、この範囲内にある個々の値を個別に参照する簡単な方法として示しているにすぎない。さらに、個々の値はここに列挙するのと同様に本明細書に組み込まれている。ここで説明するすべての方法は、ここに他の指定がない限り、または状況によって明らかに矛盾しない限り、任意の適切な順序で実行できる。ここで説明する任意の例およびすべての例、または例示的な表現（例えば「など」）は、本発明をよりよく理解するためのものにすぎず、別途特許請求の範囲に記載されていない限り、本発明の範囲についての限定を示すものではない。本明細書におけるいかなる表現も、特許請求されていない要素を本発明の実施に必須であると解釈してはならない。
【００８２】
発明者が認識する本発明を実行するための最適なモードを含めて、本発明の好ましい実施形態についてここで説明する。こうした好ましい実施形態の変形形態は、以上の説明を読めば当業者には理解されるであろう。発明者は、当業者が必要に応じてこうした変形形態を使用することを予想し、ここで特に説明した以外の方法でも実施されることを意図している。したがって、適用可能な法律で許可されるように、本発明にはここに添付する特許請求の範囲に記載する項目の修正および均等物のすべてが含まれる。さらに、前述の要素の任意の組み合わせは、その可能なすべての変形形態において、ここに他の指定がない限り、または状況によって明らかに矛盾しない限り、本発明に含まれる。
【図面の簡単な説明】
【００８３】
【図１】本発明の１つの実施形態を実装するのに使用できる例示的なコンピュータシステムを一般的に示す概略図である。
【図２】コンピュータネットワークにさまざまな形で接続するコンピュータを示す概略図である。
【図３】本発明の１つの実施形態による高度なシステムアーキテクチャの例を示す概略図である。
【図４】本発明の１つの実施形態によるネットワークＤＮＡモジュールアーキテクチャの例を示す概略図である。
【図５】本発明の１つの実施形態によるネットワークＤＮＡの例を示すブロック図である。
【図６】本発明の１つの実施形態によるネットワークＤＮＡポリシーの例を示すブロック図である。
【図７】本発明の１つの実施形態によるネットワークＤＮＡアプリケーションプログラミングインターフェースの例を示す概略図である。
【図８Ａ】本発明の１つの実施形態によるネットワークＤＮＡを取得するステップの例を示す流れ図である。
【図８Ｂ】本発明の１つの実施形態によるネットワークＤＮＡを非同期に取得するステップの例を示す流れ図である。
【図９】本発明の１つの実施形態によるネットワークＤＮＡを生成するステップの例を示す流れ図である。
【図１０】本発明の１つの実施形態によるネットワークＤＮＡポリシーを実現するステップの例を示す流れ図である。
【符号の説明】
【００８４】
１０２  コンピュータ
１０８  最も基本的な構成
【図１】
0004731935.tif 000002
【図２】
0004731935.tif 000003
【図３】
0004731935.tif 000004
【図４】
0004731935.tif 000005
【図５】
0004731935.tif 000006
【図６】
0004731935.tif 000007
【図７】
0004731935.tif 000008
【図８Ａ】
0004731935.tif 000009
【図８Ｂ】
0004731935.tif 000010
【図９】
0004731935.tif 000011
【図１０】
0004731935.tif 000012