(57)【要約】  ワークステーション上のアプリケーションを更新、監視及び制御するシステム及び方法である。ワークステーションは、アプリケーションの起動及びネットワークへのアクセスを検出するワークステーション管理モジュールを含む。ワークステーションアプリケーションサーバは、ワークステーションからアプリケーションに関するデータを受信する。アプリケーションサーバモジュールは、アプリケーションインベントリデータベースを参照し、アプリケーションに関係する１つ以上のポリシー又は分類を決定できる。一旦アプリケーションサーバモジュールが分類又はポリシーを受信すれば、ハッシュ／ポリシーテーブルをワークステーション管理モジュールに転送する。ハッシュ／ポリシーテーブルを受信すれば、ワークステーション管理モジュールは、アプリケーションによるネットワークアクセスを制御するために、アプリケーションに関係するポリシーを適用する。
2008546060.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにアクセスするプログラムを制御する監視システムをアップデートするときに使用されるネットワークアクセスデータを収集するためのシステムであって、
ワークステーションと、
前記ワークステーションに接続されたワークステーション管理モジュールと、
前記ワークステーションに接続されたアプリケーションサーバモジュールとを備え、
前記ワークステーションが、前記ワークステーションの上でプログラムがネットワークにアクセスできるように構成され、
前記ワークステーション管理モジュールが、
前記ネットワークにアクセスする前記プログラムを検出し、
前記プログラムがネットワークアクセスデータベース内にあるか否かを判断し、
前記プログラムが前記ネットワークアクセスデータベース内に無ければ、前記プログラムに関係するプログラムデータをアプリケーションサーバモジュールに送信し、且つ、
前記プログラムに関係する１つ以上のポリシーを適用するように構成され、
前記１つ以上のポリシーが、前記アプリケーションサーバモジュールから受信され、
前記アプリケーションサーバモジュールが、
前記プログラムが前記ネットワークアクセスデータベースに無ければ、前記ワークステーション管理モジュールから前記プログラムデータを受信し、
前記プログラムが所定の方式で動作しているか否かを決定し、
前記プログラムが所定の方式で動作していなければ、前記プログラムをアプリケーションデータベース工場に送信し、且つ、
前記プログラムが所定の方式で動作していれば、前記プログラムに関係する前記１つ以上のポリシーを前記ワークステーション管理モジュールに提供するように構成されているシステム。
【請求項２】
前記アプリケーションデータベース工場が、
前記プログラムが所定の方式で動作していなければ、前記アプリケーションサーバモジュールから前記プログラムデータを受信し、
前記プログラムが、前記アプリケーションデータベース工場によって以前に分析されたか否かを判断し、
前記プログラムが以前に分析されていなければ、前記プログラムに関係する１つ以上の分類を決定し、前記１つ以上の分類を、前記アプリケーションサーバモジュールに提供し、
前記プログラムが以前に分析されていれば、以前に前記プログラムに関係していた前記１つ以上の分類を、前記アプリケーションサーバモジュールに提供するように構成されている請求項１に記載のシステム。
【請求項３】
前記ネットワークアクセスデータベースがハッシュ値を有する請求項２に記載のシステム。
【請求項４】
前記ネットワークアクセスデータベースが、前記プリグラムに関係する１つ以上の分類及び１つ以上のポリシーを有する請求項２に記載のシステム。
【請求項５】
前記アプリケーションサーバモジュールが、前記プリグラムが所定の振舞で実行しているかを示すデータ特性に関して、前記プログラムデータを分析し、且つ１つ以上の指標を前記プログラムに関連付けるように、さらに構成されている請求項２に記載のシステム。
【請求項６】
前記プログラムデータを分析することが、前記プログラムに関係するテキスト文字列に対して実行される請求項５に記載のシステム。
【請求項７】
１つ以上の指標が分類フラグを含む請求項５に記載のシステム。
【請求項８】
前記アプリケーションサーバモジュールが、前記プログラムデータを前記アプリケーションデータ工場に送信する前に、前記プログラムをスクリーニングするために、前記１つ以上の指標を使用する請求項７に記載のシステム。
【請求項９】
前記ワークステーション管理モジュールが、前記プログラムに関連付ける前記プログラムデータを決定するように構成されたアプリケーション要約生成部を備える請求項２に記載のシステム。
【請求項１０】
前記プログラムデータが、ソースＩＰアドレスを含む請求項９に記載のシステム。
【請求項１１】
前記プログラムデータが、目標ＩＰアドレスを含む請求項９に記載のシステム。
【請求項１２】
前記プログラムデータが、目標ポート番号を含む請求項９に記載のシステム。
【請求項１３】
前記アプリケーションサーバモジュールが、
ネットワーク監視者が、前記プログラムに関係する前記１つ以上のポリシーを選択できるインタフェースを提供するように構成された区分ユーザインタフェースと、
前記プログラムデータを前記アプリケーションデータベース工場に送信し、前記１つ以上のポリシーを前記アプリケーションデータベース工場から受信するように構成されたアップロード／ダウンロード管理モジュールと
を備える請求項９に記載のシステム。
【請求項１４】
前記ネットワークアクセスデータベースが、前記プログラムが前記ネットワークにアクセスする頻度を示す、前記プログラムに関係する頻度を含む請求項１に記載のシステム。
【請求項１５】
前記アップロード／ダウンロード管理モジュールが、頻度を前記アプリケーションデータベース工場に送信するように構成されている請求項１３に記載のシステム。
【請求項１６】
前記ネットワークアクセスデータベースが、前記プログラムに関係するプロトコルを含む請求項１５に記載のシステム。
【請求項１７】
前記１つ以上のポリシーが、前記プログラムに、前記プログラム及びユーザに関係する前記１つ以上のポリシーに基づいて前記ネットワークにアクセスすることを、許可することを含む、請求項１に記載のシステム。
【請求項１８】
前記１つ以上のポリシーが、前記プログラム及びユーザに関係する前記１つ以上のポリシーに基づいて前記ネットワークにアクセスすることを、許可しないことを含む請求項１に記載のシステム。
【請求項１９】
前記アプリケーションデータベース工場が、
前記プログラムデータを前記アプリケーションサーバモジュールから受信し、前記プログラムデータが以前に分析されたか否かを判断し、且つ、前記１つ以上の分類を前記アプリケーションサーバモジュールに提供するように構成されたアップロード／ダウンロードモジュールと、
前記プログラムが前記アプリケーションデータベース工場によって以前に分類されていなければ、前記プログラムを分類するように構成されたアプリケーションアナリスト区分モジュールと、
前記プログラム及び前記１つ以上の分類を格納するように構成されたマスターアプリケーションデータベースとを備える請求項２に記載のシステム。
【請求項２０】
前記アップロード／ダウンロードモジュールが、前記アプリケーションサーバモジュールから頻度を受信し、前記アプリケーションデータベース工場中で前記プログラムの処理を優先順位付けするように構成されている請求項１９に記載のシステム。
【請求項２１】
第２ワークステーションと、
前記第２ワークステーション及び前記アプリケーションデータベース工場に接続された第２アプリケーションサーバモジュールとをさらに備える請求項１９に記載のシステム。
【請求項２２】
前記アップロード／ダウンロードモジュールが、第２ワークステーションから受信した前記プログラムデータ及び第２プログラムデータをマージ及びソートするように、さらに構成されている請求項１９に記載のシステム。
【請求項２３】
ワークステーション上のプログラムの動作を制御するシステムをアップデートする方法であって、
アプリケーションによって試みられるネットワークアクセスを検出するステップと、
前記アプリケーションのための要約を生成するステップと、
前記アプリケーションが１つ以上のポリシーに関係しているか否かを判断するステップと、
前記アプリケーションが１つ以上のポリシーに関係している場合、前記アプリケーションに関係する前記１つ以上のポリシーを適用するステップと、
前記アプリケーションが１つ以上のポリシーに関係していない場合、前記アプリケーションをロギングデータベースに送るステップと、
前記ロギングデータベースをアプリケーションサーバモジュールにアップロードするステップと、
１つ以上のポリシーに関係する前記アプリケーションがアプリケーションインベントリデータベース内にあるか否かを判断するステップと、
前記アプリケーションが、前記アプリケーションサーバモジュールの前記アプリケーションインベントリデータベース内にない場合、前記アプリケーションをネットワークアクセスデータベースに送り、前記アプリケーションが前記アプリケーションインベントリデータベース内にある場合、前記アプリケーションに関係する１つ以上のポリシーを適用するステップとを含む方法。
【請求項２４】
前記ネットワークアクセスデータベースをアプリケーションデータベース工場にアップロードするステップと、
各アプリケーションが、前記アプリケーションデータベース工場によって以前に分析されたか否かを判断するステップと、
以前に分析されていない各アプリケーションに関して、１つ以上の分類を各アプリケーション及び／又は前記アプリケーションに関係するデータに割り当てるステップと、
各アプリケーションを、その選択された１つ以上の分類に従って、分類されたアプリケーションのデータベースに転送するステップと、
前記アプリケーションインベントリデータベースに組む込むために、分類されたアプリケーションの前記データベースをダウンロードするステップとをさらに含む請求項２３に記載の方法。
【請求項２５】
前記アプリケーションが前記アプリケーションインベントリデータベース内にあれば、前記アプリケーションインベントリデータベース内の頻度をアップデータするステップと、
前記アプリケーションインベントリデータベースを前記アプリケーションデータベース工場にアップロードするステップとを、さらに含む請求項２４に記載の方法。
【請求項２６】
前記１つ以上のポリシーが、前記ネットワークにアクセスすることを前記アプリケーションに許可すること又は許可しないことを含む請求項２３に記載の方法。
【請求項２７】
前記１つ以上のポリシーが、前記ネットワークにアクセスすることを前記アプリケーションに許可するステップを含む請求項２３に記載の方法。
【請求項２８】
前記ロギングデータベースが、前記アプリケーションに関係する付加的データさらに含む請求項２３に記載の方法。
【請求項２９】
前記付加的データが、目標ポート番号を含む請求項２８に記載の方法。
【請求項３０】
前記付加的データが、ソースＩＰアドレスを含む請求項２８に記載の方法。
【請求項３１】
前記付加的データが、目標ＩＰアドレスを含む請求項２８に記載の方法。
【請求項３２】
前記付加的データが、ソースポート番号を含む請求項２８に記載の方法。
【請求項３３】
前記１つ以上の分類を示すデータ特性のために、前記アプリケーション及び／又は前記アプリケーションに関係する付加的データを分析するステップと、
１つ以上の指標を前記アプリケーションに関連付けるステップとをさらに含む請求項２３に記載の方法。
【請求項３４】
前記プログラムデータを分析するステップが、前記アプリケーションに関係するテキスト文字列の上で実行される請求項３３に記載の方法。
【請求項３５】
前記１つ以上の指標が分類フラグを含むことができる請求項３３に記載の方法。
【請求項３６】
前記ネットワークアクセスデータベースを前記アプリケーションデータベース工場にアップロードする前に、前記１つ以上の指標を使用して前記アプリケーションをスクリーニングするステップをさらに含む、請求項３５に記載の方法。
【請求項３７】
プログラムのネットワークアクセスを制御するシステムをアップデートするときに使用される収集データを収集する方法であって、
プログラムによるネットワークへのアクセス要求を検出するステップと、
前記プログラムがテーブルに格納されているか否かを判断するステップと、
前記プログラムが格納されている場合、前記プログラムに関係する第１ルールを適用するステップと、
前記プログラムが格納されていない場合、前記プログラムをデータベースに送るステップとを含む方法。
【請求項３８】
前記プログラム及び／又は前記プログラムに関係するデータを、１つ以上の分類を示すデータ特性のために、プリフィルタリングするステップと、
少なくとも部分的に、前記データ特性によって示された前記１つ以上の分類に基づいて、第２ルールを前記プログラムに関連付けるステップとを、さらに有する請求項３５に記載の方法。
【請求項３９】
ワークステーション上でプログラムによるネットワークアクセスを制御するシステムをアップデートする方法であって、
アプリケーションのネットワークアクセス要求を検出するステップと、
前記アプリケーションのための、ネットワークアクセスデータを含むハッシュ値を生成するステップと、
生成された前記ハッシュ値を、１つ以上のハッシュ値に関係する１つ以上のポリシーを含むハッシュ／ポリシーテーブル中の前記１つ以上のハッシュ値と比較するステップと、
前記生成されたハッシュ値が、前記ハッシュ／ポリシーテーブル中の１つ以上のハッシュ値に一致すれば、前記１つ以上のハッシュ値に関係する前記１つ以上のポリシーを適用するステップと、
前記生成されたハッシュ値が、前記ハッシュ／ポリシーテーブル中の１つ以上のハッシュ値に一致しなければ、前記アプリケーションをロギングデータベースに送るステップと、
前記ロギングデータベースをアプリケーションサーバモジュールにアップデートするステップと、
前記ロギングデータベースからの前記アプリケーションがアプリケーションインベントリデータベース中にあるか否かを判断するステップと、
前記アプリケーションが前記アプリケーションインベントリデータベース中に無ければ、前記アプリケーションをネットワークアクセスデータベースに送るステップとを含む方法。
【請求項４０】
前記アプリケーションの頻度数を決定するために、前記ロギングデータベースをスキャンするステップをさらに含む請求項３９に記載の方法。
【請求項４１】
前記ネットワークアクセスデータベースをアプリケーションデータベース工場にアップロードするステップと、
前記アプリケーションが以前に前記アプリケーションデータベース工場によって分析されたか否かを判断するステップと、
以前に分析されなかった各アプリケーションに関して、前記アプリケーションに関連付ける１つ以上の分類を選択するステップと、
選択された１つ以上の分類に従って、各アプリケーションをアプリケーションデータベースに送るステップと、
前記アプリケーションデータベースを、前記アプリケーションインベントリデータベースに組み込むために、ダウンロードするステップとをさらに含む請求項３９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、2003年3月14日に出願され、アプリケーションファイルの監視及び制御システム及び方法という表題であるシリアル番号10/390547の一部継続出願であり、参照によりここにその全てが組み込まれる。
【０００２】
発明の属する技術分野
本発明は、コンピュータ装置に関し、特に、その上で動作するアプリケーションファイルの監視及び制御システム及び方法に関する。
【背景技術】
【０００３】
インターネットは、種々のコンピュータがシームレスに相互に通信できるように、相互接続されたコンピュータの全世界システムである。従業員は、不良プログラムをダウンロードし、実行するために、また、職場でピアツーピアのファイルシェアリングを実行するために、それらは何れも雇用者に対して新たな脅威となるのだが、サーバコンピュータにアクセスすることができる。例えば、多くのインスタントメッセメッセージ（ＩＭ）システムは、コンピュータ間のファイル伝送を許容するので、ＩＭは雇用者の会社に対してセキュリティリスクをもたらす。従業員は自身でIMを起動させることができるので、雇用者は、コンピュータ間で伝送される注意すべきデータを誰が見ているかを知らない。しかし、ＩＭは、会社の方針に従って使用された場合、生産的なツールになり得る。さらに、ストリーミングメディアは、それがネットワーク帯域幅を占有するために、注目されている。最後に、自分のワークステーション上に違法な又はライセンスされていないソフトウェアを所有している従業員は、会社に対して望ましくない責任リスクを示し得る。というのも、会社は、違法な又はライセンスされていないソフトウェアの従業員による使用に責任を負わされる可能性があるからである。
【０００４】
ソフトウェアは、従業員の生産性を維持し、ネットワーク帯域及び記録の費用を保持し、法的責任を制限し、ネットワークセキュリティを改善して、職場で従業員がインターネットに如何にアクセスするかを管理するのに有効である。しかし、上記した新たな脅威の増大によって、雇用者は、彼らのコンピュータ環境との従業員のより広範な交わりを管理するための新たな解決策を必要としている。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明のシステム及び方法は、幾つかの特徴を有している。その何れも、その望ましい属性にのみ関連するものではない。特許請求の範囲によって表現された発明の範囲を制限することなく、そのより重要な特徴を簡単にここに説明する。この説明を考慮すれば、そして特に「発明の詳細な説明」の章を読めば、本システム及び方法の特徴が、どのように従来のフィルタシステムに幾つかの利点を提供するかを理解できるであろう。
【０００６】
一つの側面は、ネットワークにアクセスするプログラムを制御する監視システムをアップデートするときに使用されるネットワークアクセスデータを収集するためのシステムである。そのシステムは、ワークステーションと、前記ワークステーションに接続されたワークステーション管理モジュールと、前記ワークステーションに接続されたアプリケーションサーバモジュールとを備え、前記ワークステーションが、前記ワークステーションの上でプログラムがネットワークにアクセスできるように構成され、前記ワークステーション管理モジュールが、前記ネットワークにアクセスする前記プログラムを検出し、前記プログラムがネットワークアクセスデータベース内にあるか否かを判断し、前記プログラムが前記ネットワークアクセスデータベース内に無ければ、前記プログラムに関係するプログラムデータをアプリケーションサーバモジュールに送信し、且つ、前記プログラムに関係する１つ以上のポリシーを適用するように構成され、前記１つ以上のポリシーが、前記アプリケーションサーバモジュールから受信され、前記アプリケーションサーバモジュールが、前記プログラムが前記ネットワークアクセスデータベースに無ければ、前記ワークステーション管理モジュールから前記プログラムデータを受信し、前記プログラムが所定の方式で動作しているか否かを決定し、前記プログラムが所定の方式で動作していなければ、前記プログラムをアプリケーションデータベース工場に送信し、且つ、前記プログラムが所定の方式で動作していれば、前記プログラムに関係する前記１つ以上のポリシーを前記ワークステーション管理モジュールに提供するように構成されている。
【０００７】
もう一つ側面は、ワークステーション上でのプログラムの動作を制御するシステムをアップデートする方法である。その方法は、アプリケーションによって試みられるネットワークアクセスを検出するステップと、前記アプリケーションのための要約を生成するステップと、前記アプリケーションが１つ以上のポリシーに関係しているか否かを判断するステップと、前記アプリケーションが１つ以上のポリシーに関係している場合、前記アプリケーションに関係する前記１つ以上のポリシーを適用するステップと、前記アプリケーションが１つ以上のポリシーに関係していない場合、前記アプリケーションをロギングデータベースに送るステップとを含む。その方法は、前記ロギングデータベースをアプリケーションサーバモジュールにアップロードするステップと、１つ以上のポリシーに関係する前記アプリケーションがアプリケーションインベントリデータベース内にあるか否かを判断するステップと、前記アプリケーションが、前記アプリケーションサーバモジュールの前記アプリケーションインベントリデータベース内にない場合、前記アプリケーションをネットワークアクセスデータベースに送り、前記アプリケーションが前記アプリケーションインベントリデータベース内にある場合、前記アプリケーションに関係する１つ以上のポリシーを適用するステップとを、さらに含む。
【０００８】
さらに、もう一つの側面は、プログラムのネットワークアクセスを制御するシステムをアップデートするときに使用される収集データを収集する方法である。その方法は、プログラムによるネットワークへのアクセス要求を検出するステップと、前記プログラムがテーブルに格納されているか否かを判断するステップと、前記プログラムが格納されている場合、前記プログラムに関係する第１ルールを適用するステップと、前記プログラムが格納されていない場合、前記プログラムをデータベースに送るステップとを含む。
【０００９】
さらに、もう一つの側面は、ワークステーション上でプログラムによるネットワークアクセスを制御するシステムをアップデートする方法である。その方法は、アプリケーションのネットワークアクセス要求を検出するステップと、前記アプリケーションのための、ネットワークアクセスデータを含むハッシュ値を生成するステップと、生成された前記ハッシュ値を、１つ以上のハッシュ値に関係する１つ以上のポリシーを含むハッシュ／ポリシーテーブル中の前記１つ以上のハッシュ値と比較するステップと、前記生成されたハッシュ値が、前記ハッシュ／ポリシーテーブル中の１つ以上のハッシュ値に一致すれば、前記１つ以上のハッシュ値に関係する前記１つ以上のポリシーを適用するステップと、前記生成されたハッシュ値が、前記ハッシュ／ポリシーテーブル中の１つ以上のハッシュ値に一致しなければ、前記アプリケーションをロギングデータベースに送るステップとを含む。その方法は、前記ロギングデータベースをアプリケーションサーバモジュールにアップデートするステップと、前記ロギングデータベースからの前記アプリケーションがアプリケーションインベントリデータベース中にあるか否かを判断するステップと、前記アプリケーションが前記アプリケーションインベントリデータベース中に無ければ、前記アプリケーションをネットワークアクセスデータベースに送るステップとを、さらに含む。
【発明を実施するための最良の形態】
【００１０】
以下の詳細な説明は、本発明の特定の実施形態に関するものである。しかし、本発明は、多くの異なるシステム及び方法において実現され得る。本明細書において、同様の部分が同様の数字で全体を通して示されている図面を参照する。
【００１１】
以下の説明と関連して、全体システムに含まれ得る種々のシステムの多くの要素は、それらの幾つかはモジュールと呼ばれるが、あるタスクを実行するソフトウェア、ファームウエア又はハードウエア要素、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は特定用途向け集積回路（ＡＳＩＣ）として実施され得る。そのような要素又はモジュールは、有利なことに、アドレス可能な記録媒体に存在するように構成され得、また、１つ以上のプロセッサ上で実行するように構成され得る。従って、モジュールは、例えば、ソフトウェア要素、オブジェクト指向ソフトウェア要素、クラス要素及びタスクコンポーネント等の要素、プロセス、関数、属性、手続き、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウエア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ及び変数を含んでもよい。要素およびモジュール中に備えられた機能性は、複数の要素及びモジュールに結合されても、または、さらに追加的な要素及びモジュールに分割されてもよい。さらに、要素及びモジュールは、有利なことに、１つ以上のコンピュータ上で実行するように実現されてもよい。
【００１２】
図１は、インターネット１０８と、インターネット１０８に接続されたアプリケーションデータベース工場１１０とに接続されたローカルエリアネットワーク（ＬＡＮ）１００のブロック図である。より一般的には２つまたは多くのネットワークが含まれるであろうが、説明を容易にするために、１つのＬＡＮが示されている。
【００１３】
ＬＡＮ１００は、アプリケーションサーバモジュール１０２に接続された１つ以上のワークステーション１０１を含んでいる。アプリケーションサーバモジュール１０２は、アプリケーション及びアプリケーションに関連するデータをアップロード及びダウンロードするために、インターネット１０８を介してアプリケーションデータベース工場１１０と通信する。ＬＡＮ１００は、イーサネット１０ベースのトポロジを有する、または、ワイヤレスネットワーク、トークンリングネットワークなどの何らかのネットワークプロトコルに基づくことができる。
【００１４】
ワークステーション１０１は、アプリケーションサーバモジュール１０２に接続されている。ワークステーション１０１は、例えば、マイクロソフトウインドウズオペレーティングシステムの下で動作するパーソナルコンピュータであり得るが、アップル製コンピュータ又は別のシステムなどの他のコンピュータが使用され得る。
【００１５】
アプリケーションサーバモジュール１０２は、ＬＡＮ１００をインターネット１０８に接続する。アプリケーションサーバモジュール１０２は、ルータや別のデータパケットスイッチング技術のような、インターネットＴＣＰ／ＩＰプロトコルをインターネット１０８と通信するための適切なプロトコルに変換する接続装置を介してインターネット１０８と通信する。あるシステムを導入するために使用される接続装置は、ＬＡＮ１００内での位置と同様に変更され得る。例えば、接続装置は、ワークステーション１０１に位置され得、または、周辺装置としてインターネット１０８に接続され得る。典型的な接続装置は、ルータモジュール（図示せず）に接続されたファイアウォールモジュール（図示せず）を含む。
【００１６】
図２は、図１におけるワークステーション１０１のワークステーション管理モジュールのブロック図である。ワークステーション管理モジュール２００は、アプリケーション要約生成部２０１、クライアントインベントリモジュール２０２、アップロード／ダウンロードモジュール２０３、ハッシュ／ポリシーテーブル２０４、ロギングデータベース２０６、ネットワークアクセス検出モジュール２０８、及び実行起動検出モジュール２１０を含み得る。
【００１７】
ワークステーション管理モジュール２００は、ワークステーション１０１上でアプリケーションの起動を検出し、ワークステーション１０１及び／又はユーザ用のアクセス権を判断することができる。例えば、アクセス権は、起動されたアプリケーションがワークステーション１０１上で動作するのを許可することを含み得る。アクセス権は、１つ以上のポリシー又はルールであり得る。ワークステーション１０１及び／又はユーザ用のアクセス権を判断するために、ワークステーション管理モジュール２００は、起動されたアプリケーションと１つ以上の分類との予め決定された関係を使用することができる。１つ以上の分類は、さらに、ワークステーション１０１及び／又はユーザ用のアクセス権／ポリシー又はルールと関連し得る。或いは、起動されたアプリケーションは、アクセス権と直接的に関連している。
【００１８】
アプリケーションの起動を検出し、ワークステーション１０１上でアプリケーションが動作するのを許可するかを判断することに加えて、又はそれに代えて、ワークステーション管理モジュール２００は、現行のネットワークの活動又はアプリケーションの振舞を監視することができる。アプリケーションがワークステーション１０１上で動作することを許可された後、そのアプリケーションは、ネットワークにアクセスしても、またはアクセスしなくてもよい。ワークステーション管理モジュール１００は、アプリケーションがワークステーション上で動作するアクセス権を判断した後にも、アプリケーションの現行の振舞を監視する。例えば、ワークステーション上で動作することを、ワークステーション管理モジュールが許可したアプリケーションが、ネットワークにアクセスすることを試みる度に、ワークステーション管理モジュール２００は、アプリケーションがネットワークにアクセスすることを許可するかを判断する。このようにして、ワークステーション管理モジュール２００は、先のアクセス権を、アプリケーションのその後の活動に基づいて維持又は変更する。ワークステーション管理モジュール２００の判断に関連するアクセス権は、アプリケーションがワークステーション１０１上で起動することを許可するかどうかに関しては、ワークステーション管理モジュール２００が、アプリケーションがネットワークにアクセスすることを許可するアクセス権と共に、又はそれとは別に記録され得る。
【００１９】
アプリケーションのネットワークへのアクセスの試みに応答して、ワークステーション管理モジュール１０１は、ワークステーション１０１及び／又はユーザに関する一意のアクセス権を選択することができる、アクセス権は、全てのワークステーションについて、又は、多数のワークステーションについて一意であることができる。例えば、アクセス権は、アプリケーションにネットワークにアクセスすることを許可すること、又は、１つ以上のワークステーションからネットワークにアクセスすることを許可しないことを含むことができる。アクセス権は、１つ以上のポリシー又はルールであることができる。
【００２０】
ワークステーション１０１及び／又はユーザ用のアクセス権を決定するために、ワークステーション管理モジュール１０１は、アプリケーションと、そのアプリケーションに関して期待されるネットワークの振舞又は活動との間の、予め決定された関係を使用することができる。この予め決定された関係は、そのアプリケーションに関する、前の又はその時のネットワーク活動に基づいている。例えば、第１ワークステーション１０１上で動作しているアプリケーションに関して期待されるネットワーク活動は、第１ワークステーション上における、そのアプリケーションの先の活動の記録から決定され得る。それに加えて又はその代わりに、アプリケーションに関して期待されるネットワーク活動は、複数のワークステーション上における、そのアプリケーションの先の活動の記録から決定される。
【００２１】
期待されるネットワーク活動は、異なるが関連するアプリケーションによるネットワーク活動から決定され得る。例えば、１つのソフトウェア会社からのプログラム又はアプリケーションは、共通のアクセス権を有していてもよい。アプリケーションの後のバージョンに関連するアクセス権は、同じアプリケーションの先のバージョンと共通のアクセス権を共有してもよい。
【００２２】
異なるワークステーション上で動作している同じアプリケーションのネットワーク活動は、アプリケーションに関する期待されるネットワーク活動を決定するために、所定の方法で重み付けされ得る。期待されるネットワーク活動は、複数のワークステーションに関する共通のアクセス権を決定することができる。ワークステーション管理モジュールは、期待されるネットワーク活動を、ハッシュ／ポリシーテーブル２０４に格納する。アクセス権は、アプリケーションデータベース工場１１０において決定され得る。
【００２３】
あるアプリケーションに関する期待されるネットワーク活動は、アプリケーションに関連する１つ以上のネットワーク活動を含むことができる。アプリケーションが、期待される方法でネットワークにアクセスするときには、属性はアプリケーションに関連する。これら属性は、例えば、特定のプロトコル、特定のＩＰアドレス、及び特定のアクセスポートを含むことができる。例えば、アプリケーションに関する特定のプロトコルは、ハッシュ／ポリシーテーブル２０４にリストされている。アプリケーションが、ハッシュ／ポリシーテーブル２０４にリストされた期待されるプロトコルと異なるプロトコルを使用しているネットワークにアクセスすることを要求すれば、ネットワークアクセス検出モジュールは、アクセスを許可しなくてもよい。
【００２４】
アプリケーションは、1日に複数回ネットワークへのアクセスを要求してもよい。しかし、アプリケーションと関連する１つ以上のネットワーク属性は、試みられたアクセス毎に異なっていてもよい。このようにして、アプリケーションの属性は、時間と共に変わり得る。ネットワークアクセス検出モジュール２０８は、１つ以上のネットワーク属性の第２の組合せを許可しないが、１つ以上のネットワーク属性の第１の組合せを許可してもよい。
【００２５】
１つ以上の属性の各組合せは、１つ以上の分類と関連し得る。１つ以上の分類は、さらに、ワークステーション１０１及び／又はユーザのためのポリシー又はルールに関連し得る。
【００２６】
コンピュータ又はワークステーション上のプログラム又はアプリケーションが起動されたとき、実行起動検出モジュール２１０が起動を検出する。この検出に応答して、ワークステーション管理モジュール２００は、そのアプリケーションがワークステーション１０１上で動作することを許可するか禁止するかを判断する。
【００２７】
ワークステーション管理モジュール２００がワークステーション１０１上で動作することを許可したアプリケーションは、ネットワークへのアクセスを要求してもよいし、しなくてもよい。ネットワークへのアクセスを正に要求するアプリケーションに関しては、そのアプリケーションは、起動時に又はプログラムがワークステーション１０１上で動作した後に、アクセスを要求してもよい。例えば、発行元のアプリケーションが一旦起動されれば、そのアプリケーションは、アップデートのために、ネットワークを介してその発行元のウエブサイトにアクセスすることを要求してもよい。この例を続けると、アプリケーションに関連するハッシュと、ネットワークアクセス要求に関連する１つ以上のネットワーク属性の組合せとは、ポリシー又はルールを選択するために、ハッシュ／ポリシーテーブル２０４と比較される。ハッシュ／ポリシーテーブル２０４は、さらに分類を含み得る。分類は、したがって、ポリシー又はルールに関連し得る。
【００２８】
アプリケーション又はプログラムがネットワークにアクセスするとき、ネットワークアクセス検出モジュール２０８は、アプリケーション又はプログラムの振舞又は活動を監視する。実行起動検出モジュール２１０及びネットワークアクセス検出モジュール２０８は、要求されたアプリケーションに関係するデータ、又はネットワークアクセス中のアプリケーションに関係するデータを分析するように、アプリケーション要約生成部２０１に命令する。その分析の一部として、実行起動検出モジュール２１０は、アプリケーション要約生成部２０１を使用して、アプリケーションのためのハッシュを生成し得る。アプリケーション要約生成部２０１は、要求されたアプリケーションからの特性を分析して、そのアプリケーションを一意に同定する。これらの特性は、ネットワークアクセスデータを含み得る。典型的な特性は、名前、発行元、スイート、ハッシュ、ファイルサイズ、バージョン、プロトコル、ＩＰアドレス、ポート、及び、起動された又はネットワークアクセス中のアプリケーションに関連する追加的な情報又は特性を含む。
【００２９】
アプリケーション用のハッシュは、アプリケーションに関連する２値を、一意のビットの組に変換することによって決定される。ハッシュ関数は、それは公知技術の暗号化方式であるが、アプリケーションのためのハッシュの決定において採用される。このようにして、ハッシュ関数は、アプリケーションからの選択された２値入力を取得し、その２値入力をハッシュと呼ばれる固定長の暗号出力に変換する。結果は、ビットの固定サイズセットであり、それはアプリケーションのための一意の「ディジタル指紋」としての役割をする。２つの典型的なハッシュアルゴリズムは、ＭＤ−５及び安全なハッシュアルゴリズム−１（ＳＨＡ−１）を含む。ＭＤ−５ハッシュアルゴリズムは、１２８ビットの出力ハッシュを生成する。ＳＨＡ−１アルゴリズムは、１６０ビットの出力ハッシュを生成する。
【００３０】
分析された特性又は属性は、実行起動検出モジュール２１０及び／又はネットワークアクセス検出モジュール２０８に提供される。起動されたアプリケーションのために、実行起動検出モジュール２１０は、ワークステーション１０１からのアプリケーション要求を分析し、そしてアプリケーション要求をハッシュ／ポリシーテーブル２０４と比較する。ネットワークへのアクセスを要求しているアプリケーションのために、ワットワークアクセス検出モジュール２０８は、ワークステーション１０１０からのネットワークアクセス要求を分析し、そしてネットワークアクセス要求をハッシュ／ポリシーテーブル２０４と比較する。ハッシュ／ポリシーテーブル２０４は、１つ以上の所定のネットワーク属性と、それらと関連する１つ以上のポリシー含む。図３を参照して説明されるように、アプリケーションサーバモジュール１０２は、ハッシュ／ポリシーテーブル２０４をワークステーション管理モジュール２００に提供する。
【００３１】
ハッシュ／ポリシーテーブル２０４は、アプリケーションサーバモジュール１０２から受信される。ハッシュ／ポリシーテーブル２０４は、アプリケーション名、発行元、スイート、ハッシュ、ポート、プロトコル、ＩＰアドレス、分類、及び、それらと関連するルール又はポリシーのリストを含み得る。一実施例において、ハッシュ／ポリシーテーブル２０４中の１つ以上の分析された特性はハッシュ値のリストを含む。この実施例を続けると、ハッシュ／ポリシーテーブル２０４はさらに、そのリスト中のハッシュ値に関連するポリシーのリストを含む。この実施例においてハッシュ値及びポリシーに加えて、ハッシュ／ポリシーテーブル２０４はさらに、ハッシュ値及び／又はポリシーに関連する分類のリストを含む場合がある。さらに、別の実施例では、ハッシュ／ポリシーテーブル２０４はハッシュ値を含まない。その代わりに、ハッシュ／ポリシーテーブル２０４は、ハッシュ／ポリシーテーブル２０４においてアプリケーションを特定する、名前／発行元／スイートまたは他の特性を含む。さらに別の実施例では、ハッシュ／ポリシーテーブル２０４は、ハッシュ／ポリシーテーブル２０４においてアプリケーションを特定する、ポート／ＩＰアドレス／プロトコルまたは他の特性を含む。
【００３２】
一旦アプリケーションがワークステーション上で実行することを要求すれば、またはアプリケーションがネットワークにアクセスすることを要求した場合、そのアプリケーションに対応するハッシュ／ポリシーテーブル２０４からのポリシーも特定される。実行起動検出モジュール２１０またはネットワークアクセス検出モジュール１０８は、アプリケーションを実行すること又はネットワークにアクセスすることの要求に対して如何なるアクセス権またはポリシーが適応されるべきかを決定するために、アプリケーションのポリシーをハッシュ／ポリシーテーブル２０４中の特性と比較する。これらのポリシー又はルールは、例えば、プログラムの実行を許可すること、ネットワークへのアクセスを許可すること、プログラムの実行を拒否すること、ネットワークへのアクセスを拒否すること、アプリケーションを実行する要求のログが記録されることをユーザに警告すること、及び、ネットワークにアクセスする特定の時間をユーザに許可することを含み得る。
【００３３】
上記されたポリシー及びルールに加えて、ワークステーション管理モジュール２００は、アプリケーションを実行すること又はネットワークにアクセスすることの要求に応答して他のアクション、しばしば選択的フィルタと呼ばれるが、を採用し得る。選択的フィルタの例は、アプリケーションの実行を延期すること、ネットワークへのアクセスを延期すること、アプリケーションの実行の拒否を無効にすることをユーザに許可すること、ネットワークへのアクセスの拒否を無効にすることをユーザに許可すること、割当量に基づいてアプリケーションへのユーザのアクセスを制限すること、割当量に基づいてネットワークへのアクセスを制限すること、ネットワーク負荷に基づいてアプリケーションへのユーザのアクセスを制限すること、ネットワーク負荷に基づいてネットワークへのアクセスを制限することを含む。各要求されたアプリケーション又はネットワークアクセスするアプリケーションは、１つ以上のポリシー又はルールに関係し得る。
【００３４】
一実施例において、実行起動検出モジュール２１０又はネットワークアクセス検出モジュール２０８は、生成されたハッシュがハッシュ／ポリシーテーブル２０４中の何れかのハッシュにマッチするかどうかをチェックする。要求されたアプリケーションとハッシュ／ポリシーテーブル２０４中のハッシュとの間でマッチすることが分かった場合、実行起動検出モジュール２１０又はネットワークアクセス検出モジュール２０８は、そのアプリケーション、及び／又は、アプリケーション又はネットワークアクセスを要求するユーザにマッチするハッシュに関連するポリシー／ルールを適用する。例えば、実行起動検出モジュール２１０によるそのルールの適用の結果、要求されたアプリケーションがワークステーション１０１上で実行すること、又はユーザによって実行されることが許可されないことになる場合、予め定義されたブロックページが、要求されたアプリケーションが許可されないこと及びその理由を説明するユーザインタフェースに送られ得る。若しくは、実行起動検出モジュール２１０は単に、要求されたアプリケーションがワークステーション１０１上で実行することを止める。
【００３５】
例えば、ネットワークアクセス検出モジュール２０８によるそのルールの適用の結果、アプリケーションによって要求されたネットワークアクセスが許可されないことになる場合、予め定義されたブロックページが、要求されたアプリケーションがネットワークにアクセスすることが許可されないこと及びその理由を説明するユーザインタフェースに送られ得る。若しくは、ネットワークアクセス検出モジュール２０８は単に、要求されたアプリケーションがネットワークにアクセスすることを止める。
【００３６】
実行起動検出モジュール２１０又はネットワークアクセス検出モジュール２０８が、ハッシュ／ポリシーテーブル２０４においてアプリケーションのハッシュを見つけることができない場合（例えば、アプリケーションが非分類である場合、又は、アプリケーションが予期しない振舞をする場合）、モジュール２０８、２１０はそのアプリケーションをどのように扱うかを判断する。例えば、実行起動検出モジュール２１０又はネットワークアクセス検出モジュール２０８が、要求されたアプリケーションが非分類である又は予期しない振舞をすると判断した場合に、そのアプリケーションを実行させることが許可される可能性はある。若しくは、実行起動検出モジュール２１０又はネットワークアクセス検出モジュール２０８は、このワークステーションにおけるユーザに関係するポリシーに依存して、アプリケーションの実行またはネットワークアクセスを止めることができる。
【００３７】
要求されたアプリケーションに関して特定された１つ以上のポリシーが、アプリケーションの実行の要求に応答して、適用される。このようにして、実行起動検出モジュール２１０又はネットワークアクセス検出モジュール２０８は、分析された特性、ハッシュ／ポリシーテーブル２０４、及び、ハッシュ／ポリシーテーブルからのポリシー／ルールを用いて、アプリケーションの実行の各要求をフィルタする。ポリシーは、アプリケーションがハッシュ／ポリシーテーブル２０４中に見出されなくても、提供され且つ使用され得る。
【００３８】
アプリケーションがハッシュ／ポリシーテーブル２０４中に見出される場合、イベントがロギングデータベース２０６に記録される。ロギングデータベース２０６に記録された情報は、例えば、アプリケーション名、時刻、ポート、ＩＰアドレス、プロトコル、及び、アプリケーションに関係するハッシュを含み得る。ロギングデータベース２０６は、アプリケーションに関係する付加的データをも含み得る。例えば、要求頻度または要求されたアプリケーションの実行時間が、ロギングデータベース２０６に含まれ得る。
【００３９】
非分類のアプリケーションのハッシュがロギングデータベース２０６中に示されていなければ、実行起動検出モジュール２１０は、アプリケーション名、ハッシュ及びアプリケーション要約生成部２０１によって分析された情報を、ロギングデータベース２０６に格納する。このようにして、ロギングデータベース２０６は、要求されたアプリケーションに関係する付加的情報を含み得る。例えば、発行元、スイート、ファイルサイズ、プロトコル、ＩＰアドレス、ポート、ディレクトリの場所などが、ロギングデータベース２０６に含まれ得る。
【００４０】
図２をさらに参照すると、一実施例において、クライアントインベントリモジュール２０２が、ワークステーション１０１上のアプリケーションの目録を作成するように構成されている。その目的のために、クライアントインベントリモジュール２０２は、ワークステーション１０１上のアプリケーションが区分されているか及び／又は非分類であるかを判断するために、ハッシュ／ポリシーテーブル２０４にアクセスすることができる。クライアントインベントリモジュール２０２は、定期的にワークステーション１０１の目録を作成するように構成され得る。例えば、クライアントインベントリモジュール２０２は、１日１回又はそれ以外の選択された時間間隔で、ワークステーション１０１上のアプリケーションの目録を作成することができる。有利なことに、クライアントインベントリモジュール２０２は、作業していない時間に、目録作成を行うことができる。目録は、ワークステーション１０１がユーザによって電源オンされるとき、または電源オフされるときに、作成され得る。ＬＡＮ１００の構成に応じて、ネットワーク管理者は、クライアントインベントリモジュール２０２に目録作成を指令することができる。さらに、アプリケーションサーバモジュール１０２によるポーリングに応答して、目録は作成され得る（図１参照）。
【００４１】
図２をさらに参照すれば、アップロード／ダウンロードモジュール２０３は、アプリケーションサーバモジュール１０２にデータを伝送する、又はアプリケーションサーバモジュール１０からデータを受信することができる。例えば、アップロード／ダウンロードモジュール２０３は、ロギングデータベース２０６からアプリケーションサーバモジュール１０にデータを伝送することができる。クライアントインベントリモジュール２０２がワークステーション１０１上のアプリケーションの目録生成を行う一実施例において、目録生成の結果は、アップロード／ダウンロードモジュール２０３によってアプリケーションサーバモジュール１０２にアップロードされ得る。
【００４２】
アップロード／ダウンロードモジュール２０３によって実行されるアップロードは、ネットワーク管理者の要望に応じて、即時的又は定期的であり得る。例えば、通常の勤務時間後の毎日のアップロードが使用され得る。アップロード／ダウンロードモジュール２０３は、ロギングデータベース２０６中のアプリケーションに、それらをアプリケーションサーバモジュール１０２へ伝送する優先順位を付けるために、ロギングデータベース２０６をスキャンすることによって要求頻度を計算することができる。別の実施例において、頻度数データベース（図示せず）は、ロギングデータベース２０６中のエントリ毎にアップデートされる。頻度数データベースは、ロギングデータベース２０６中のエントリ毎の要求頻度を維持する。この実施例では、アップロード／ダウンロードモジュール２０３は、アプリケーションに優先順位を付けるために頻度数データベースにアクセスする。
【００４３】
ロギングデータベース２０６からのデータが、アプリケーションサーバモジュール１０２にアップロードされるべき場合、アップロード／ダウンロードモジュール２０３は、ロギングデータベース２０６をスキャンすることによって見出されたアプリケーションの要求頻度を参照することができる。要求頻度は、ロギングデータベース２０６中のアプリケーションに、それらがアプリケーションサーバモジュール１２０へ伝送される優先順位を付けるために使用され得る。
【００４４】
図３は、以前に分類されたアプリケーションに関係する特性に加えてアプリケーションの特性をも含むアプリケーションのリストをアップロード及びダウンロードするために、ワークステーション管理モジュール２００（図２）と通信するアプリケーションサーバモジュール１０２のブロック図である。これらの特性は、各アプリケーションに関係するネットワークアクセスデータを含むことができる。例えば、ハッシュ値のリスト及びそれらに関係する特性はネットワーク管理モジュール２００にダウンロードされるが、要求されたアプリケーション又はネットワークアクセスするアプリケーションからの分析された特性は、アプリケーションサーバモジュール１０２にアップロードされ得る。さらに、アプリケーションに関係する分類は、ワークステーション管理モジュール２００に伝送され得る。アプリケーションに関係する分類がワークステーション管理モジュール２００に有効であれば、ワークステーション管理モジュールは、ワークステーション及び／又はそのアプリケーションに関係する１つ以上の分類に対応するユーザのためのアクセス権を選択することができる。１つより多い分類がアプリケーションに関係し、それらの分類がそれらに関係する異なるポリシーを有している場合、ルール／ポリシーの一方又は両方は、アクセス権のために使用され得る。
【００４５】
アプリケーションサーバモジュール１０２は、アプリケーションインベントリデータベース１０３、ワークステーションアップロード／ダウンモジュール１０４、工場アップロード／ダウンロードモジュール１０５、区分ユーザインタフェース１０６、及びポリシーデータベース１０９を含むことができる。アプリケーションインベントリデータベース１０３はさらに、非分類アプリケーションデータベース１０８及びネットワークアクセスデータベース１０７を含むことができる。若しくは、非分類アプリケーションデータベース１０８及び／又はネットワークアクセスデータベース１０７は、結合されて１つのデータベースになる、又はアプリケーションインベントリデータベース１０３から分離されたデータベースであることができる。
【００４６】
ネットワークアクセスデータベース１０７は、アプリケーションと関係するネットワークアクセスデータを含む。ネットワークアクセスデータは、アプリケーションがネットワークにアクセスするときに、アプリケーションに関係する特性または属性を分析する。ネットワークアクセスデータは、アプリケーションサーバモジュール１０２にアップロードされる。アップロードされたネットワークアクセスデータは、そのアプリケーションのために期待されるネットワークアクセスデータと比較され得る。上記で説明されたように、期待されるネットワークアクセスデータは、アプリケーションによる現状の又は前のネットワークアクセスに関係するネットワークアクセスデータの編集物であり得る。期待されるネットワークアクセスデータは、要求しているワークステーション又は他のワークステーションから集められ得る。
【００４７】
期待されるネットワークアクセスデータは、アプリケーションが所定の方式で振舞うときに得られたネットワークアクセスデータから導出される。アップロードされたネットワークアクセスデータは、アプリケーションサーバモジュール１０２が分類されたアプリケーション及び分類されていないアプリケーションの振舞を監視することを許可する。分類されたアプリケーションは、アプリケーションがネットワークにアクセスする度に監視される。所定の方式で動作しない分類されたアプリケーションは、非分類アプリケーションデータベース１０８の中に置かれる。このようにして、同じアプリケーションが、アプリケーションインベントリデータベース１０３中で異なるエントリを有してもよい。例えば、アプリケーションインベントリデータベース１０３中の第１エントリは、アプリケーションが所定の方式で動作しているときには、アプリケーションハッシュ及びアプリケーションに関係する分析された特性又は特徴に対応する。期待される特徴は、アプリケーションによる普通のネットワーク活動に関係する。第２エントリは、アプリケーションが所定の方式で動作していないときには、同じアプリケーションハッシュに対応するが、アプリケーションに関係する異なる分析された特性又は特徴には対応しない。
【００４８】
ネットワーク管理者などは、区分ユーザインタフェース１０６を介して、アプリケーションサーバモジュール１０２とインタフェースする。ネットワーク管理者は、非分類のアプリケーションを区分し、及び／又は、前に分類されたアプリケーションを再分類することができる。非分類のアプリケーションは、分類されていないアプリケーション、及び／又は、分類されているが、所定の方式又は期待される方式で動作しないアプリケーションを含むことができる。後者の場合、ネットワークアクセス検出モジュール２０８は、アプリケーションが所定の方式又は期待される方式で動作しているか否かを判断するときに、ネットワーク属性に注意を向ける。
【００４９】
ネットワーク管理者は、区分ユーザインタフェース１０６を介して、アプリケーションインベントリデータベース１０３からデータを受信する。ネットワーク管理者はさらに、ユーザ、ワークステーション、及び／又は、ユーザ／ワークステーションのグループに関するアクセス権／ポリシー／ルールを選択または生成するために、区分ユーザインタフェース１０６を介してインタフェースすることができる。これらのルールは、ポリシーデータベース１０９に格納されている。これらのルールは、例えば、選択された分類に関係するアプリケーションが、所定のワークステーション上で実行することを許可することを含むことができる。これらのルールは、例えば、アプリケーションが所定のワークステーション１０１上で、ネットワークにアクセスすることを許可することを、さらに含むことができる。ルールは、選択可能なフィルタを含むこともできる。
例えば、アプリケーションが実行すること又はネットワークにアクセスすることを単に許可しないよりも、ネットワーク管理者は、アプリケーションが実行すること又はネットワークにアクセスすることを要求されるときに適用される選択可能なフィルタを選択又は生成してもよい。ルールは、ワークステーションアップロード／ダウンロードモジュール１０４を介して、ワークステーション管理モジュール２００に提供される。このようにして、実行起動検出モジュール２１０及び／又はネットワークアクセス検出モジュール２０８（図２参照）は、アプリケーションの分類又はネットワークアクセスデータに関係するルールを適用する。
【００５０】
ワークステーションアップロード／ダウンロードモジュール１０４の１つの機能は、アプリケーション名のための識別子、及び、アプリケーション名に関係する、ワークステーション管理モジュール２００からの何らかの付加的データまたは分析された特性を受信することである。例えば、アプリケーション名のための識別子は、ハッシュ値又はアプリケーション自体の名前である可能性がある。一実施例では、アプリケーション名は、ロギングデータベース２０６からの名前を含む。付加的データは、ロギングデータベース２０６中で見出されたアプリケーションについての要求頻度、トレースＩＤ、ワークステーション管理モジュールによって使用される第１の言語、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号。目標ポート番号、及び、別のネットワークアクセスデータをも含むことができる。説明を容易にするために、用語「収集データ」は、アプリケーション及びアプリケーションに関係する何らかの付加的データを含むために使用される。さらに、ワークステーションアップロード／ダウンロードモジュール１０４は、以下により詳しく説明されるように、アプリケーションインベントリデータベース１０３の全て又は一部を、ワークステーション管理モジュール２００にダウンロードする。
【００５１】
ワークステーションアップロード／ダウンロードモジュール１０４は、アップロード／ダウンロードモジュール２０３（図２参照）から収集データを受信して、収集データを処理する。処理は、複数のワークステーション管理モジュールからの収集データをマージすること及びソートすることを含むことができる。ワークステーションアップロード／ダウンロードモジュール１０４は、収集データ中の各アプリケーションが分類を要求するか否かを判断する。例えば、所定の方式で動作していないアプリケーションは、分類を要求してもよい。
【００５２】
アプリケーションが以前に分類されていなければ、又は、アプリケーションが以前に分類されたが、所定の方式で動作していなければ、そのアプリケーションに関係する収集データが、非分類アプリケーションデータベース１０８に格納される。したがって、アプリケーションインベントリデータベース１０３中で見出されたアプリケーション名は、そのアプリケーションが所定の方式で動作していなければ、非分類アプリケーションデータベース１０８にも格納され得る。所定の方式で動作していないアプリケーションに関しては、収集データはさらに、ネットワークアクセスデータベース１０７に格納され得る。上記したように、ネットワークアクセスデータベース１０７は、非分類アプリケーションデータベース１０８から分離されている、又は、非分類アプリケーションデータベース１０８に結合されていることがあり得る。
【００５３】
ネットワーク管理者は、収集データ（例えば、アプリケーション情報、及びアプリケーションの関係する任意の付加的データ）を、非分類化アプリケーションデータベース１０８及び／又はデットワークアクセスデータベース１０７から受信するそして、ネットワーク管理者は、区分ユーザインタフェース１０６を介して、非分類のアプリケーションを分類することができ、且つ／又は、ポリシーを分類またはアプリケーションに関係付けることができる。所定の方式で動作していないとネットワーク管理者が判断したアプリケーションは、分類又は再分類される。アプリケーションは、アプリケーションの最初の分類に関係する分析された特性又は特徴とは異なる、分析された特性又は特徴に基づいて、再分類される。アプリケーションは、一旦分類または再分類されると、アプリケーションインベントリデータベース１０３に格納される。アプリケーションインベントリデータベース１０３は、アプリケーションが所定の方式で動作していない場合に、そのアプリケーションのための１つ以上のエントリを含むことに加えて、同じアプリケーションが所定の振舞で動作している場合には、そのアプリケーションに関する１つ以上のエントリを含んでいてもよい。以下に説明されるように、もしネットワーク管理者が、アプリケーションを分類しなければ、アプリケーションデータベース工場１１０が収集データを分類することができる。
【００５４】
一旦アプリケーションが、ネットワーク管理者によって区分または分類されると、アプリケーション及び関係する分類がアプリケーションインベントリデータベース１０３に送信される。ワークステーションアップロード／ダウンロードモジュール１０４は、その後、アプリーケーションインベントリデータベース１０３又はそれらの一部を、ワークステーション管理モジュール２００に、定期的にコピーする（図２参照）。例えば、アプリーケーションインベントリデータベース１０３からのデータは、ハッシュ／ポリシーテーブル２０４にコピーされる。ポリシーデータベース１０９のポリシーは、アプリーケーションインベントリデータベース１０３からダウンロードされた、又は、アプリーケーションインベントリデータベース１０３から別々にダウンンロードされたデータに組み込まれ得る。想像できるように、システムは、何千ものワークステーション管理モジュール２００を含むことができ、ワークステーション管理モジュール２００の各々は、ワークステーションアップロード／ダウンロードモジュール１０４によって定期的にアップロードされ、アップロードされたデータをハッシュ／ポリシーテーブル２０４に提供する。幾つかの実施形態においては、ワークステーションアップロード／ダウンロードモジュール１０４は、アプリーケーションインベントリデータベース１０３の一部を転送する。例えば、ワークステーション管理モジュール２００は、全データベースが転送される必要がないように、アップデータを受信することができる。別の実施形態では、ワークステーション管理モジュール１０４は、アプリーケーションインベントリデータベース１０３からデータのサブセットを受信する。例えば、選択されたデータはハッシュ値であり得る。したがって、ポリシーデータベース１０９からのデータは、ハッシュ値と組み合わされて、ワークステーション管理モジュール１０４にダウンロードされ得る。アプリケーションサーバモジュール１０２による処理のフローチャートは、図９及び１６に示され、図９及び１６を参照して説明されるであろう。
【００５５】
さらに、図３を参照すると、工場アップロード／ダウンロードモジュール１０５は、アプリーケーションインベントリデータベース１０３からのデータをアプリケーションデータベース工場１１０に転送するように構成されている。アップロードは、ネットワーク管理者によって要求されるサービスのレベルに依存して、直ちに又は定期的に行われ得る。例えば、通常の勤務時間の後の毎日のアップロードが、使用され得る。工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０への転送のために、アプリーケーションインベントリデータベース１０３中のアプリケーションを優先順位付けするために、要求頻度または関係するネットワークアクセスデータを参照することができる。工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０にアップロードする収集データを選択するために、非分類アプリケーションデータベース１０８及び／又はネットワークアクセスデータベース１０７を参照することができる。非分類アプリケーションデータベース１０８又はネットワークアクセスデータベース１０７からのデータが、アプリケーションデータベース工場１１０にアップロードされるべきであれば、工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０にアップロードするために、非分類アプリケーションデータベース１０８からアプリケーションを選択する要求頻度を参照することができる。この様に、要求頻度は、アプリケーションデータベース工場１１０への転送のために、非分類アプリケーションデータベース１０８又はネットワークアクセスデータベース１０７中のアプリケーションを優先順位付けするために、使用され得る。
【００５６】
工場アップロード／ダウンロードモジュール１０５は、さらに、ネットワーク管理者によって区分されたアプリケーションをアップロードすることができる。上述されたように、ネットワーク管理者は、区分ユーザインタフェース１０６を介して、アプリケーションを区分または分類することができる。このように、アプリケーションデータベース工場１１０は、新たに区分されたアプリケーションを、アプリケーションサーバモジュール１０２から受信する。想像できるように、アプリケーションデータベース工場１１０は、アプリケーション及び関係する分類を、何千ものアプリケーションサーバモジュール１０２から受信することができる。
【００５７】
ワークステーションアップロード／ダウンロードモジュール１０４は、クライアントインベントリモジュール２０２によって取得されるインベントリを、アップロード／ダウンロードモジュール２０３から受信することができる（図２参照）。一旦アプリケーションサーバモジュール１０２にアップロードされると、ネットワーク管理者は、どのアプリケーションが各ワークステーション１０１によって使用されているかを判断するために、１つ以上のインベントリを受信することができる。ネットワーク管理者は、分類されたアプリケーションが所定の方式で動作しているかを判断するために、１つ以上のインベントリをレビューすることができる。インベントリは、非分類のアプリケーションと共に、分類されたアプリケーションを含み得る。ＬＡＮ１００の構成に依存して、ネットワーク管理者は、１つ以上のインベントリを、ワークステーション管理モジュール２００においてレビューすることができる（図２参照）。
【００５８】
図４Ａは、アプリケーションに関係する親グループ及び分類のデータベースの一実施形態の例示である。示された実施形態において、データベースにリストされた１つ以上の分類は、さらにリスク区分に関係している。リスク区分の例は、安全性、責任、及び生産性を含む。リスク区分は、ネットワーク管理者にとって、各アプリケーションにルール／ポリシーを関係付けるときに有益であり得る。さらに、幾つかの実施形態では、各ルール／ポリシーは、各分類に関係するリスク区分に基づいて、アプリケーションに関係している。
【００５９】
さらに図４Ａを参照すると、アプリケーションの典型的な分類は、operating systems、anti-virus software、contact managers、collaboration、media players、adult、及び、malicious applets and scriptsを含み得る。分類は、さらに親グループにグループ化され得る。例えば、親グループは、system、access/privacy、productivity、communication、audio/video、entertainment及びmalwareを含み得る。例えば、各親グループ及び／又は分類に関して、ネットワーク管理者は、それらに関係する個別のポリシー又はルールを選択することができる。したがって、要求されたアプリケーションが一旦分類されれば、アプリケーションサーバモジュール１０２は、その分類に関係するポリシー又はルールを選択することができる。
【００６０】
図４Bは、アプリケーションファイルに関係し得るネットワークアクセスデータの図である。示された実施形態において、各マスクされたハッシュ値は、ネットワークにアクセスしているアプリケーションに対応する。アプリケーションに関係する分析された特性又は特徴は、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号、目標ポート番号、及び別のネットワークアクセスデータを含み得る。図４Ｂにおいて、これらの分析された特性は、転送プロトコル、目標ポート、及び目標ＩＰアドレスを含む。ハッシュ“aafd61a161ae747844bfl28d1b61747a95472570”に関係するアプリケーションは、転送に“ＴＣＰ（Transmission Control Protocol）”、ポートに“８０”、及び目標ＩＰアドレスに“207.46.248.112”を採用した。ＵＤＰ（User Datagram Protocol）は、使用され得るもう一つの転送プロトコルである。アプリケーションのためのネットワークアクセスデータは、ネットワーク管理者に、アプリケーションについての期待される／所定の振舞と期待されない振舞とを識別することを可能にする。異なるルール／ポリシーが、同じアプリケーションに関する複数のエントリに、各エントリに関係するネットワークアクセスデータに依存して、適用され得る。
【００６１】
図５は、インターネット１０８に接続されたアプリケーッションデータベース工場１１０のブロック図である。アプリケーションデータベース工場は、関連するデータストレージを有する１つ以上のコンピュータ又はサーバとして実現され得る。アプリケーッションデータベース工場１１０は、アプリケーションインベントリデータベースを、アプリケーションサーバモジュール１０２に提供し、非分類アプリケーションに関係するデータ及び別の情報を処理する。非分類アプリケーションは、前に分類された、所定の方式で動作しないアプリケーションを含む。別の情報は、アプリケーションインベントリデータベース１０３からの使用頻度を含んでもよい。一実施形態では、アプリケーションデータベース工場１１０は、非分類アプリケーション及びそのアプリケーションに関係する任意の付加的データを、アプリケーションサーバモジュール１０２から受信し、分類されたアプリケーションをアプリケーションサーバモジュールにダウンロードする。アプリケーッションデータベース工場１１０は、また、アプリケーションに関する要求頻度をアップロードすることができる。アプリケーッションデータベース工場１１０は、アップロード／ダウンロードモジュール３０１、マスターアプリケーションデータベース３００、及びアプリケーションアナリスト区分モジュール３０２を含むことができる。マスタアプリケーッションデータ３００は、さらに、非分類アプリケーションデータベース３０３及び／又はネットワークアクセスデータベース３０４を含むことができる。若しくは、非分類アプリケーションデータベース３０３及び／又はネットワークアクセスデータベース３０４は、１つのデータベースに結合されているか、または、マスターアプリケーションデータベース３００から分離されたデータベースであり得る。
【００６２】
アップロード／ダウンロードモジュール３０１の１つの機能は、収集データ（例えば、アプリケーション及びそのアプリケーションに関係する任意の付加的データ）を、アプリケーションサーバモジュール１０２から受信することである。一実施形態において、収集データは、非分類アプリケーションデータベース１０８、ネットワークアクセスデータベース１０７、及びアプリケーションインベントリデータベース１０３からのアプリケーションを含む。収集データは、アプリケーションインベントリデータベース１０３中で見出されたアプリケーションに関する要求頻度（図３参照）、非分類アプリケーションデータベース１０８中で見出されたアプリケーションに関する要求頻度、トレースＩＤ、検出ポート番号、別のネットワークアクセスデータ、及び、アプリケーションサーバモジュール１０２によって使用される第１の言語を含み得る。アップロード／ダウンロードモジュール３０１は、収集データを、工場アップロード／ダウンロードモジュール１０５から受信する。アップロード／ダウンロードモジュール３０１は、収集データを処理する。処理は、複数のアプリケーションサーバモジュール１０２からの収集データに関する言語をマージすること、ソートすること、及び検出することを含み得る。アップロード／ダウンロードモジュール３０１は、収集データ中の各アプリケーションが分類を要求するかを判断する。アプリケーションが前に分類されていなければ、又は、アプリケーションが所定の方式で動作していなければ、アプリケーションアナリスト区分モジュール３０２は、アプリケーション、及びアップロード／ダウンロードモジュール３０１からのアプリケーションに関係する任意の付加的データを受信する。
【００６３】
アプリケーションアナリスト区分モジュール３０２は、マスターアプリケーションデータベース３００に結合されている。アプリケーションアナリスト区分モジュール３０２は、マスターアプリケーションデータベース３００からのデータを操作及び管理するように構成されている。アプリケーションアナリスト区分モジュール３０２は、アプリケーション及びそれらの関係データを、マスターアプリケーションデータベース３００から受信する。関係データは、例えば、アプリケーションに関係するＩＰアドレス、発行元、及びスイートを含み得る。
【００６４】
アプリケーションアナリスト区分モジュール３０２は、アプリケーションを区分又は分類し、それらはその後、分類されたアプリケーションのマスターアプリケーションデータベース３００に追加される。人間の評価者は、分類又は再分類を実行するために、アプリケーションアナリスト区分モジュール３０２と相互作用する。アプリケーションデータベース工場におけるアプリケーションを区分又は分類するための処理は、図１３及び２０を参照して説明される。
【００６５】
人間の評価者にとって、ＰＣベースのソフトウエアツールのセットは、人間の評価者に、マスターアプリケーションデータベース３００からのアプリケーションを操作し、精査し、若しくは管理することを可能にすることができる。人間の評価者は、アプリケーションアナリスト区分モジュール３０２と、グラフィカルユーザインタフェース（ＧＵＩ）を介して相互作用することができる。このように、ＧＵＩは、人間の評価者に、マスターアプリケーションデータベース３００を操作し且つ管理するためのグラフィカルツールを提供する。ＧＵＩは、アプリケーションＩＤ及び関連するテキスト情報を提示することを含む。ＧＵＩは、人間の評価者の生産性を向上するために、アルゴリズム的に導出されたヒントと共に先読み込みされるボタンを含むことができる。これらのアイデンティティは、例えば、アプリケーションのソースだと同定されたＵＲＬに基づいて選択され得る。典型的なＧＵＩは、図６を参照して以下に説明される。
【００６６】
アプリケーションアナリスト区分モジュール３０２は、アプリケーション及びマスターアプリケーションデータベース３００からのそれらの関係データを選択するように構成されている。アプリケーションアナリスト区分モジュール３０２は、マスターアプリケーションデータベース３００からのアプリケーションのサブセットを選択するためのルールを適用することができる。これらのルールは、例えば、分類、言語、スイート、日付、及びソースディレクトリに依存し得る。アプリケーションアナリスト区分モジュール３０２は、マスターアプリケーションデータベース３００から分類又は再分類のためのサブセットを選択するために、ルールと共に、ＳＱＬクエリを使用することができる。
【００６７】
アプリケーションアナリスト区分モジュール３０２は、１つ以上のアプリケーションの分類を決定するために、各アプリケーション、収集データ、アプリケーションと関係する任意のテキストオブジェクト、アプリケーションと関係する任意の付加的データ、及び、収集データと独立の読み出された任意の付加的データを解析できる。典型的な独立データは、収集データを使用するインターネット検索からのデータを含む。分類は、言語解析、適用的学習システム、及び画像解析に基づき得る。
【００６８】
一実地形態において、アプリケーションアナリスト区分モジュール３０２は、インターネット１０８にアクセスし、アプリケーション及び収集データに基づく検索を実行する。一実施形態において、アプリケーションの発行元を共に先読み込みされたＧＵＩボタンは、インターネット検索を開始するために、人間の評価者によって選択される。インターネット検索は、アプリケーションアナリスト区分モジュール３０２に、アプリケーションを分類するための付加的情報を提供することができる。例えば、検索は、アプリケーションの分類プロセスに関連する、インターネット上のコンピュータ又は文書のアドレスであるURL（uniform resource locator）を特定することができる。ＵＲＬは、コロン及び２つのスラッシュが後に続く通信プロトコル（例えばhttp://）、コンピュータの識別子、及び、通常はディレクトリを介したファイルへのパスから成る。コンピュータの識別子は、ドメイン名、例えばwww.m-w.com、又は、ＩＰ（Internet protocol）アドレス、例えば123.456.789.1の形式であり得る。しばしば、アドレス、それらの要素（例えば、ＩＰアドレス、ドメイン名、及び通信プロトコル）、又は、インターネット上のコンピュータ若しくは文書を特定するために使用される別の場所識別子がある。説明を容易にするために、以降、それらのアドレスの参照において、用語ＵＲＬが使用される。アプリケーションアナリスト区分モジュール３０２は、アプリケーションを分類するときに助けとなるために、アプリケーションに関係するハッシュ及び／又はＵＲＬを使用することができる。
【００６９】
一旦分類されると、アプリケーションアナリスト区分モジュール３０２は、アプリケーションを、それに関係する１つ以上の分類と共に、アプリケーションのマスターアプリケーションデータベース３００に送信する。アプリケーションのマスターアプリケーションデータベースは、アプリケーション及びそれに関係する分類を含むことができる。マスターアプリケーションデータベース３００は、オラクル、サイベース、インフィミックス、マイクロソフトサーバ、及びアクセスなどの関係データベース管理システムの中に格納され得る。テキストオブジェクトポスティシングシステムは、その送信を実行することができる。アプリケーションアナリスト区分モジュール３０２を介して実行される処理のより詳しいブロック図が、図１３及び２０に示されている。
【００７０】
一旦、アプリケーションアナリスト区分モジュール３０２が、アプリケーション、及びそれに関係する分類を、マスターアプリケーションデータベース３００に送信すれば、アップロード／ダウンロードモジュール３０１は、その後、マスターアプリケーションデータベース３００をアプリケーションサーバモジュール１０２に、定期的にコピーする。想像できるように、そのシステムは、何千ものアプリケーションサーバモジュール１０２を含み得、それらの各々は、分類されたアプリケーションのデータベースをアップデートするために、アップロード／ダウンロードモジュール３０１によって定期的にアップロードされる。さらに、アップロード／ダウンロードモジュール３０１は、マスターアプリケーションデータベース３００の一部（アップデートなど）を、全データベースが転送される必要がないように、アプリケーションサーバモジュール１０２に転送することができる。アプリケーションデータベース工場１１０によって実行される処理のフローチャートは、図１１及び１８に示されており、それらを参照して説明されるであろう。
【００７１】
幾つかの実施形態において、アプリケーションアナリスト区分モジュール３０２は、マスターアプリケーションデータベース３００から選択された分類されたアプリケーションを、それに続いてそれらをアプリケーションサーバモジュール１０２にダウンロードするために、処理することができる。
【００７２】
さて、図５及び６を参照すると、アプリケーションアナリスト区分モジュール３０２用のグラフィカルユーザインタフェースの一実施形態の画面が示されている。図６において、ハイライトされているアプリケーションファイル名は“cmdide.sys”である。アプリケーションの名前は、“CHID PCI IDE Bus Driver”である。この例では、アプリケーションデータベース工場１１０にアップロードされた付加的情報は、発行元ＣＭＤTechnology, Inc、及び関連するスイートMicrosoft Windows Operating Systemを含んでいる。アプリケーションアナリスト区分モジュール３０２は、アプリケーションを分類するときに助けとなるように、この情報を人間の評価者に提示する。
【００７３】
図６に示されているように、アプリケーションCMD PCI IDE bus driverは、ＵＲＬ“http://www.microsoft.com//ddk/ifskit/links.asp”に関係している。この例において、アプリケーションアナリスト区分モジュール３０２は、そのアプリケーションを、access/privacyと表題された親グループ中のアプリケーションに区分した。アプリケーションアナリスト区分モジュール３０２は、さらに、アプリケーションの分類を実行することができる。例えば、access/privacyと表題された親グループにおいて、アプリケーションは、anti-virus softwareの下のauthentication、encryption、firewalls、hacking、remote access、spy ware、又はsystem auditに区分され得る。リスククラスは、ネットワーク管理者にとって、ルール／ポリシーを各アプリケーションに関係付けるときに役に立つ。上記したように、１つ以上の分類が、単一のアプリケーション又はハッシュ値に関係し得る。
【００７４】
図７は、ワークステーション１０１上で要求されたアプリケーションの実行を監視及び実行する処理を示すフローチャートである、その処理は、開始状態７００から始まる。次に、状態７０２において、ワークステーション１０１のユーザが、アプリケーションを起動する。アプリケーションの起動は、ワークステーション１０１用の所定のスタートアップシーケンスに応答し得る。例えば、ワークステーション１０１は、電源オンスタートアップ時に、１つ以上のアプリケーションを起動させるようにプログラムされ得る。実行起動検出モジュール２１０（図２参照）は、アプリケーションの起動を検出する。次に、状態７０４において、アプリケーション要約生成部２０１は、起動されたアプリケーションに関連するデータの要約を生成する。要約されたデータは、収集データの形式であり得る。収集データは、例えば、発行元、スイート、１つ以上のハッシュ、及びソースディレクトリを含み得る。
【００７５】
処理は判定状態７０６に移行する。そこでは、実行起動検出モジュール２１０が、アプリケーション要約生成部２０１によって準備されたアプリケーション要約をハッシュ／ポリシーテーブル２０４と比較する。例えば、アプリケーション要約生成部２０１によって生成されたハッシュが、ハッシュ／ポリシーテーブル２０４からのハッシュと比較され得る。一実施形態では、複数の異なるハッシュが生成され、ハッシュ／ポリシーテーブル２０４からのハッシュと比較される。例えば、ＭＤ−５ハッシュ及びＳＨＡ−１ハッシュが、要求されたアプリケーションのために生成され、ハッシュ／ポリシーテーブル２０４からのＭＤ−５ハッシュ及びＳＨＡ−１ハッシュと比較され得る。
【００７６】
ハッシュがハッシュ／ポリシーテーブル２０４に格納されたハッシュに対応していれば、処理は状態７１０に移行する。そこでは、ハッシュに関係するポリシーが、要求されたアプリケーションの起動に応じて適用される。例えば、これらのポリシーは、アプリケーションの実行を許可すること、アプリケーションの実行を許可しないこと、アプリケーションを実行すればネットワーク管理者による更なる監視を受けることをユーザに警告すること、又は、ある時間の間アプリケーションを実行することを許可することを含み得る。この場合、決まった時間の後、実行起動検出モジュール２１０は、アプリケーションがワークステーション１０１上で動作し続けることを許可しない。次に、状態７１２において、実行起動検出モジュール２１０は、ロギングデータベース２０６にイベントのログを記録する。このように、ワークステーション１０１上で実行することを許可されるアプリケーションの記録が維持される。そして、処理は状態７１４に移行し、そこでは、実行起動検出モジュール２１０は、ワークステーション１０１上で別のアプリケーションの起動を検出するために、システムを監視する。
【００７７】
ハッシュ／ポリシーテーブル２０４から取り出された情報は、ハッシュ値に関係するポリシーをさらに含む。一実施形態において、ハッシュ値に関係する分類情報はポリシーを選択するときに使用される。例えば、ハッシュ値は、親グループ及び／又は分類に関係し得る。そして、親グループ及び／又は分類は、ポリシーに関係し得る。
【００７８】
判定状態７０６に戻り、アプリケーション要約が、ハッシュ／ポリシーテーブル２０４に区分されたアプリケーション又はハッシュと一致対しない場合、フローは状態７１６に移行し、そこでは、実行起動検出モジュール２１０が、区分されていないアプリケーションポリシーを、アプリケーションを実行する要求に適用する。区分されていないアプリケーションポリシーは、例えば、アプリケーションが実行することを許可すること、実行を許可しないこと、又は、アプリケーションの要求に追加的な監視が適用され、その上にアプリケーションがワークステーション１０１上で実行することを許可される時間が制限されることをユーザに警告することを含み得る。
【００７９】
フローは状態７１８に移行し、そこでは、ロギングデータベース２０６に、アプリケーションを実行することの要求のログが記録される。処理は状態７１４に続き、上記したように、そこでは、実行起動検出モジュール２１０は、ワークステーション１０１上で別のアプリケーションが起動するのを待つ。
【００８０】
図８は、アプリケーションサーバモジュール１０２と共に収集データをアップロード及びダウンロードするために、ワークステーション１０１によって実行される処理を示すフローチャートである。その処理は状態８００から始まる。次に、状態８０２において、アップロード／ダウンロードモジュール２０３は、ワークステーションアップロード／ダウンモジュール１０４から入力信号を受信する。処理は判定状態８０４に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、アプリケーションサーバモジュール１０２から、ハッシュ／ポリシーテーブル２０４をダウンロードする要求を受信する。ダウンロードファイルを受信する時期は、定期的、ランダム、付加された設定時間、又は、ポーリングに応答してであり得る。アップロード／ダウンロードモジュール２０３及び／又はワークステーションアップロード／ダウンモジュール１０４は、ワークステーション管理モジュール２００へのダウンロードを開始することができる。状態８０４において、アップロード／ダウンロードモジュール２０３が、アプリケーションサーバモジュール１０２からダウンロードする要求を受信していると判断されると、処理は状態８０６に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、ハッシュ／ポリシーテーブル２０４又はその一部を受信して格納する。
【００８１】
例えば、アプリケーションサーバモジュール１０２は、ハッシュ／ポリシーテーブル２０４にコピーするために、アプリケーションインベントリデータベース１０３からのデータ、又はポリシーデータベース１０９からのポリシーを選択することができる。アプリケーションインベントリデータベース１０３は、区分ユーザインタフェース１０６を介して分類されたアプリケーションに加えて、アプリケーションデータベース工場１１０によって分類されたアプリケーションを含み得る。幾つかの実施の形態において、ワークステーションアップロード／ダウンモジュール１０４は、ハッシュ／ポリシーテーブル２０４の一部を転送する。例えば、アップロード／ダウンロードモジュール２０３は、全データベースが転送される必要がないように、アップデートを受信することができる。別の実施形態において、アップロード／ダウンロードモジュール２０３は、アプリケーションインベントリデータベース１０３からデータのサブセットを受信する。例えば、選択されたデータは、ポリシーに組み合わされるハッシュ値であり得る。
【００８２】
ダウンロードされたデータは、既存のハッシュ／ポリシーテーブル２０４をアップデートすることができる。ダウンロードされたデータは、１つ以上のソースからの収集データの形式であり得る。ソースは、区分ユーザインタフェース１０６及びアプリケーションデータベース工場１１０を含み得る。上で説明したように、収集データは、アプリケーションに関係する任意の追加的データ、例えば、アプリケーションインベントリデータベースからのアプリケーションに関係する要求頻度、及び／又は非分類アプリケーションデータベース１０８からのアプリケーションに関係する要求頻度、及び／又は指標を含み得る。処理は状態８１０に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、アプリケーションサーバモジュール１０２からの起動信号を待つ。
【００８３】
判定状態８０４に戻ると、アップロード／ダウンロードモジュール２０３が、アプリケーションサーバモジュール１０２からのダウンロードを要求していなければ、処理は判定状態８１２に移行し、そこでは、アプリケーションサーバモジュール１０２は、ワークステーション１０１上のアプリケーションの目録を要求することができる。アプリケーションサーバモジュール１０２が、ワークステーション１０１上のアプリケーションの目録を要求すると、処理は状態８１４に移行し、そこでは、クライアントインベントリモジュール２０２が、ワークステーション１０１上のアプリケーションの目録を作成する。一旦クライアントインベントリモジュール２０２が、ワークステーション１０１上のアプリケーションのリストを蓄積すると、処理は状態８１５に移行し、そこでは、アプリケーション要約生成部２０１が、各アプリケーションに関係するデータの要約を生成する。アプリケーション要約生成部２０１は、アプリケーションからの特性を分析する。そのような特性の例は、アプリケーションに関係する名前、発行元、スイート、ハッシュ及びバージョンを含む。
【００８４】
そして、処理は状態８２４に移行し、そこでは、アプリケーション及び要約がロギングデータベース２０６に格納される。その後、処置は判定状態８２０に移行し、そこでは、クライアントインベントリモジュール２０２が、目録に記載されたアプリケーションの全てがロギングデータベース２０６に格納されたかを判断する。目録に記載されたアプリケーションの全てが処理されていなければ、フローは状態８２４に戻り、そこでは、クライアントインベントリモジュール２０２によって目録に記載された次のアプリケーションが、上記したように処理される。
【００８５】
判定状態８２０に戻ると、全てのアプリケーションが処理されると、処理は状態８３０に移行し、そこでは、アップロード／ダウンロードモジュール２０３が、ロギングデータベース２０６をアプリケーションサーバモジュール１０２に転送する。次に、処理は８１０に移行し、そこでは、アップロード／ダウンロードモジュール２０３が、アプリケーションサーバモジュール１０２からの起動信号を待つ。
【００８６】
判定状態８１２に戻ると、アプリケーションサーバモジュール１０２によって目録作成が要求されなければ、処理は、判定状態８２６に移行し、アプリケーションサーバモジュール１０２が、ロギングデータベース２０６からの、非分類アプリケーションのための収集データのみを要求しているかを判断する。アプリケーションサーバモジュール１０２が、非分類アプリケーションのためのデータのみを要求していれば、処理は状態８２８に移行し、そこでは、アップロード／ダウンロードモジュール２０３が、アプリケーションサーバモジュール１０２にアップロードするために、ロギングデータベース２０６から、非分類アプリケーションに関係するデータを抽出し、フォーマットする。次に、処理は状態８３０に移行し、そこでは、非分類アプリケーションに関係するデータが、アプリケーションサーバモジュール１０２に転送される。アプリケーションサーバモジュール１０２に転送された収集データは、フォーマットされていることも、されていないこともあり得る。さらに、収集データは、暗号化及び／又は圧縮されていることも、されていないこともあり得る。ワークステーションアップロード／ダウンモジュール１０４は、復号及び／又は復元が必要であれば、収集データを復号及び復元する。ワークステーションアップロード／ダウンモジュール１０４は、収集データを、アプリケーションのリストとアプリケーションに関係する任意の付加的データとに再組み込みする。ワークステーションアップロード／ダウンモジュール１０４は、収集データをマージし、且つソートする。
【００８７】
次に、処理は状態８１０に移行し、そこでは、ワークステーション管理モジュール２００が、アプリケーションサーバモジュール１０２からの次の起動信号を待つ。
【００８８】
判定状態８２６に戻ると、アプリケーションサーバモジュール１０２が、ロギングデータベース２０６からの、非分類アプリケーションのための収集データのみを要求していなければ、処理は状態８３２に移行し、そこでは、アップロード／ダウンロードモジュール２０３が、ロギングデータベース２０６中のアプリケーションデータの全てを抽出し、フォーマットする。このデータは、ハッシュ／ポリシーテーブル２０４にリストされているアプリケーション用に分類されたデータ、及び、ハッシュ／ポリシーテーブル２０４にリストされていないアプリケーション用の非分類データを含み得る。収集データは、フォーマットされていることも、フォーマットされていないこともあり得る。さらに、収集データは、暗号化及び／又は圧縮されていることも、されていないこともあり得る。その後、処理は状態８３０に移行し、そこでは、ロギングデータベース２０６からのデータが、アプリケーションサーバモジュール１０２にアップロードされる。その後、処理は、上記したように状態８１０に移行し、そこでは、ワークステーション管理モジュール２００が、アプリケーションサーバモジュール１０２からの起動信号を待つ。
【００８９】
図９は、ワークステーション１０１と共に、収集データをアップロード及びダウンロードするために、アプリケーションサーバモジュール１０２によって実行される処理を示すフローチャートである。その処理は、開始状態９００から始まる。次に、判定状態９０２において、ワークステーションアップロード／ダウンモジュール１０４は、ワークステーション管理モジュール２００へのダウンロードを引き起こすかを判断する。ダウンロードを受信する時期は、定期的、ランダム、設定された時間、又はポーリングに応答してであり得る。ワークステーションアップロード／ダウンモジュール１０４及び／又はアップロード／ダウンロードモジュール２０３は、ワークステーション管理モジュール２００へのダウンロードを開始させることができる。ワークステーションアップロード／ダウンモジュール１０４が、ワークステーション管理モジュール２００にダウンロードすべきであれば、処理は状態９０４に移行し、ワークステーションアップロード／ダウンモジュール１０４は、ポリシーデータベース１０９からポリシーデータを抽出する。ポリシーデータベース１０９は、アクセス許可を、ダウンロードを受信するワークステーションに基づいて、各アプリケーションに関係する親グループ及び／又は分類に関連付ける。例えば、ワークステーションが、ゲームに関連するアプリケーションを実行するように指定されていなければ、ポリシーデータベース１０９は、そのワークステーションのために、ゲームに関連付けられた親グループ及び／又は分類を特定するかも知れない。ネットワーク管理者は、区分ユーザインタフェース１０６を介して、ポリシーデータベース１０９をアップデートすることができる。ポリシーデータベース１０９は、各ワークステーションのための異なるアクセス権を含み得る。このように、異なるワークステーション１０１は、それらの上で実行しているアプリケーションに関係する異なるポリシーを持ち得る。
【００９０】
処理は状態９０６に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、このワークステーションのために指定されたポリシーと共に、アプリケーションインベントリデータベース１０３からハッシュ／ポリシーデータベースを生成する。各親グループ及び／又は分類は、ダウンロードを受信する１つ以上のワークステーションのためにポリシーデータベース１０９から抽出されたポリシーに関係している。アプリケーションインベントリデータベース１０３中の各アプリケーション又はハッシュは、親グループ及び／又は分類に関係し得る。上記の例を続けると、ワークステーションアップロード／ダウンモジュール１０４は、ゲームに関連する親グループ及び／又は分類に関係するアプリケーションのためのアプリケーションインベントリデータベース１０３からハッシュ値を選択する。よって、同じアプリケーションが、あるワークステーション上で実行することを許可され、異なるワークステーション上では実行することを許可されないことがあり得る。フローは状態９０８に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４が、ハッシュ／ポリシーテーブル２０４又はその一部を、アップロード／ダウンロードモジュール２０３に転送する。ダウンロードファイルは、アプリケーション名、ハッシュ値、関係する分類、及び／又は関係するポリシーを含むことができる。その後、フローは終了状態９１０に移行する。
【００９１】
判定状態９０２に戻ると、ワークステーションアップロード／ダウンモジュール１０４が、ワークステーション１０１のためのダウンロードを引き起こしていなければ、処理は判定状態９１２に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、ワークステーション目録のアップロードを要求するかを判断する。ワークステーション目録は、ロギングデータベース２０６の全て又は一部を含み得る。
【００９２】
ワークステーションアップロード／ダウンモジュール１０４が、ワークステーション１０１からのアップロードを要求すれば、処理は状態９１４に移行し、そこでは、アプリケーションサーバモジュール１０２によって、アップロード／ダウンロードモジュール２０３に要求が送信される。次に、状態９１６において、ワークステーションアップロード／ダウンモジュール１０４は、要求されたアップロードをワークステーション１０１から受信する。アップロードされるデータは、フォーマットされていることも、されていないこともあり得る。さらに、アップロードされるデータは、暗号化及び／又は圧縮されていることも、されていないこともあり得る。ワークステーションアップロード／ダウンモジュール１０４は、次の状態９１８において、復号及び復元が必要であれば、アップロードされたデータを復号及び復元する。
【００９３】
処理は状態９２０に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、アップロードされたデータを、アプリケーション及びそのアプリケーションに関係する任意の付加的データのリストに再組み込みする。ワークステーションアップロード／ダウンモジュール１０４は、別のワークステーション目録と共に頻度数を含む収集データをマージし、且つソートする。そのシステムは、ロギングデータベース２０６からのデータを定期的にアップロードしている、何千ものワークステーション管理モジュールを含み得る。上で説明したように、アップロードされたデータは、アプリケーションに関係する任意の付加的データ、例えばディレクトリの場所を含み得る。ワークステーションアップロード／ダウンモジュール１０４は、アプリケーション又はそのアプリケーションに関係する任意の付加的データに基づいて、アップロードされたデータをマージし、且つソートすることができる。例えば、ワークステーションアップロード／ダウンモジュール１０４は、１つ以上のワークステーション１０１からのアプリケーションをソート及びマージすることの要求頻度を参照することができる。
【００９４】
図１０は、アプリケーションサーバモジュール１０２において、アプリケーションを分類する処理を示すフローチャートである。その処理は、開始状態１０００から始まる。次に、状態１００２において、ネットワーク管理者が、ＧＵＩを介して区分ユーザインタフェース１０６を起動させる。ＧＵＩは、ネットワーク管理者に、アプリケーションインベントリデータベース１０３を操作及び管理するためのグラフィカルインタフェースツールを提供する。ネットワーク管理者は、アプリケーション及び／又は関係するデータのリストを、非分類アプリケーションデータベース１０８から、評価及び分類のために抽出する。処理は状態１００４に移行し、そこでは、アプリケーション及び任煮の関係するデータが、ネットワーク管理者によって評価されるために表示される。次に、状態１００６において、ネットワーク管理者は、表示されたデータに基づいてアプリケーションを区分する。次に、処理は状態１００８に移行し、そこでは、処理は、非分類アプリケーションデータベース１０８から抽出された各アプリケーションのために、状態１００４及び１００６に戻る。
【００９５】
図１１は、マスターアプリケーションデータベース３００をアプリケーションサーバモジュール１０２にダウンロードし、アプリケーションサーバモジュール１０２から、目録に記載されたアプリケーションデータをアップロードする処理を示すフローチャートである。処理は開始状態１１００から始まる。次に、状態１１０２において、工場アップロード／ダウンロードモジュール１０５が、アプリケーションデータベース工場１１０から、分類されたアプリケーションのダウンロードを要求する。分類されたアプリケーションは、アプリケーションデータベース工場１１０において、マスターアプリケーションデータベース３００に格納されている。分類されたアプリケーションを受信する時期は、定期的、ランダム、設定された時間、又はポーリングに応答してであり得る。工場アップロード／ダウンロードモジュール１０５及び／又はアップロード／ダウンロードモジュール３０１は、アプリケーションサーバモジュール１０２へのダウンロードを開始させることができる。上で説明したように、ダウンロードされるデータは、アプリケーションに関係する任意の付加的データを含み得る。
【００９６】
フローは、判定状態１１０４に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５（図３参照）が、全非分類アプリケーション送信済みフラグがアクティブにされたかを判断する。全非分類アプリケーション送信済みフラグは、ネットワーク管理者によって、区分ユーザインタフェース１０６を介して選択され得る。全非分類アプリケーション送信済みフラグが、アクティブにされていれば、処理は状態１１０６に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、非分類アプリケーションデータベース１０８から全てのアプリケーションを読み出す。フローは判定状態１１０８に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、全アプリケーション目録送信済みフラグがアクティブにされているかを判断する。全アプリケーション目録送信済みフラグは、ネットワーク管理者によって、区分ユーザインタフェース１０６を介してアクティブにされ得る。全アプリケーション目録送信済みフラグがアクティブにされていれば、処理は状態１１１０に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、アプリケーションインベントリデータベース１０３からデータを読み出す。フローは状態１１１２に移行し、そこでは、非分類アプリケーション及びそのアプリケーションに関係する任意の付加的データ、例えば収集データが、フォーマットされる。付加的データは、要求頻度、及び／又はアプリケーションに関係する指標を含み得る。収集データは、フォーマットされる必要はなく、従って、アプリケーションデータベース工場１１０に直接アップロードされてもよい。さらに、収集データのためのフォーマットの選択は、アプリケーションデータベース工場１１０が有する、アプリケーションサーバモジュール１０２とのデータ接続のタイプに依存し得る。インターネット１０８を介するデータ接続に関しては、工場アップロード／ダウンロードモジュール１０５は、収集データをフォーマットするために、マークアップ言語、例えば、ＸＭＬ（extensible markup language）、ＳＧＭＬ（standard generalized markup language、及びＨＴＭＬ（hypertext markup language ）を使用できる。
【００９７】
収集データは、それがアプリケーションデータベース工場１１０にアップロードされる前に、さらに処理され得る。例えば、チェックリミット状態１１１４と圧縮及び暗号化状態１１１６とは、アプリケーションデータベース工場１１０にアップロードする前に収集データを処理するために、実行され得る。これらのブロックは、修正データのアップロードを容易にするかも知れないけれども、それらは実行されなくてもよい。収集データは、状態１１１４及び１１１６を適用されずにアップロードされ得る。この場合、処理は、代わりのパス１１１３を通る。従って、収集データは、状態１１１４及び１１１６を適用されずに、アプリケーションデータベース工場１１０に直接アップロードされ得る。
【００９８】
更なる処理が望まれる場合、処理は、状態１１１４に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０にアップロードするための最大サイズに収集データを制限することができる。例えば、単一のワークステーションからの収集データは、最大２０メガバイトに制限され得る。処理は状態１１１６に移行し、そこでは、収集データは、より少ないスペースを占めるように、圧縮される。さらに、収集データは、承認されたユーザ、例えばアプリケーションデータベース工場１１０によって以外には読めないように、暗号化される。
【００９９】
フローは状態１１１８に移行し、そこでは、収集データがアプリケーションデータベース工場１１０にアップロードされる。上で説明されたように、収集データは、アプリケーションに関係する任意の付加的データ、例えばスイート情報を含み得る。処理は状態１１２０に移行し、そこでは、アップロード／ダウンロードモジュール３０１が、工場アップロード／ダウンロードモジュール１０５へのダウンロードを続ける。処理は状態１１２２に移行し、そこでは、ダウンロードされたデータは、アプリケーションインベントリデータベース１０３に格納される。
【０１００】
判定状態１１０８に戻ると、全アプリケーション目録送信済みフラグがアクティブでなければ、処理は、上記したように状態１１１２に移行する。全アプリケーション目録送信済みフラグがアクティブにされていなかったので、工場アップロード／ダウンロードモジュール１０５は、状態１１１２、１１１４、１１１６及び１１１８を参照して説明したように、状態１１０６において受信されたデータを、アプリケーションデータベース工場１１０にアップロードするためにフォーマットする。
【０１０１】
判定状態１１０４に戻ると、全非分類アプリケーション送信済みフラグがアクティブにされていなかったら、処理は、上で説明したように判定状態１１０８に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、全アプリケーション目録送信済みフラグがアクティブにされたかを判断する。全アプリケーション目録送信済みフラグがアクティブにされたか否かに応じて、処理は上記したように続く。
【０１０２】
図１２は、アプリケーションデータベース工場１１０によって実行される、データを収集する処理を示すフリーチャートである。処理は、状態１２００から始まる。次に、判定状態１２０２において、アプリケーションデータベース工場１１０は、マスターアプリケーションデータベース３００をアプリケーションサーバモジュール１０２にダウンロードすることができる。アプリケーションデータベース工場１１０が、マスターアプリケーションデータベース３００をアプリケーションサーバモジュール１０２にダウンロードすべきならば、処理は状態１２０４に移行し、そこでは、アップロード／ダウンロードモジュール３０１が、分類されたアプリケーションを、マスターアプリケーションデータベース３００から抽出する。分類されたアプリケーションのサブセットが、アプリケーションサーバモジュール１０２へのダウンロードのために、選択され得る。サブセットは、発行の準備ができたと判断された、分類されたアプリケーションのみを含み得る。
【０１０３】
処理は状態１２０６に移行し、そこでは、マスターアプリケーションデータベース３００から読み出されたアプリケーションデータはフォーマットされ得る。アプリケーションデータは、フォーマットされる必要はなく、これは、アプリケーションサーバモジュール１０２に直接ダウンロードされてもよい。さらに、そのデータ用のフォーマットの選択は、アプリケーションデータベース工場１１０が有する、アプリケーションサーバモジュール１０２とのデータ接続のタイプに依存し得る。インターネット１０８を介するデータ接続に関しては、アップロード／ダウンロードモジュール３０１は、収集データをフォーマットするために、マークアップ言語、例えば、ＸＭＬ、ＳＧＭＬ及びＨＴＭＬを使用することができる。
【０１０４】
ダウンロードされるべきデータは、それのアプリケーションサーバモジュール１０２へのダウンロードに先立って、さらに処理され得る。処理は状態１２０８に移行し、そこでは、アプリケーションデータは、より少ないスペースを占めるように、圧縮される。さらに、アプリケーションデータは、承認されたユーザ、例えばアプリケーションサーバモジュール１０２によって以外には読めないように、暗号化される。フローは状態１２１０に移行し、そこでは、アプリケーションデータはアプリケーションサーバモジュール１０２にダウンロードされる。その後、処理は、終了状態である状態１２１２に移行する。
【０１０５】
判定状態１２０２に戻ると、マスターアプリケーションデータベース３００からのアプリケーションデータが、アプリケーションサーバモジュール１０２にダウンロードされていないならば、処理は判定状態１２１４に移行し、そこでは、アプリケーションデータベース工場１１０が、アプリケーションサーバモジュール１０２からアップロードを受信することができる。アプリケーションデータベース工場１１０が、アプリケーションサーバモジュール１０２からアップロードを受信すべきでなければ、処理は終了状態１２１２に移行する。
【０１０６】
判定状態１２１４に戻ると、アプリケーションデータベース工場１１０が、アプリケーションサーバモジュール１０２からアップロードを受信すべきであれば、処理は状態１２１６に移行し、そこでは、アップロード／ダウンロードモジュール３０１は、工場アップロード／ダウンロードモジュール１０５からアップロードを受信する。収集データは、定期的に、ランダムに、設定された時間に、又はポーリングに応答して受信されてもよい。アップロード／ダウンロードモジュール３０１及び／又は工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０へのアップロードを開始させることができる。上で説明したように、収集は、アプリケーションに関係する任意の付加的データ、例えば、アプリケーションインベントリデータベース１０３からのアプリケーションに関係する要求頻度、及び／又は、非分類アプリケーションデータベース１０８からのアプリケーションに関係する要求頻度を含み得る。収集データは、フォーマットされていることも、フォーマットされていないこともあり得る。さらに、収集データは、暗号化及び／又は圧縮されていることも、されていないこともあり得る。
【０１０７】
処理は状態１２１８に移行し、そこでは、アップロード／ダウンロードモジュール３０１は、復号及び復元が必要であれば、収集データを復号及び復元する。処理は状態１２２０に移行し、そこでは、収集データはマージされ、且つマスターアプリケーションデータベース３００及び非分類アプリケーションデータベース３０３に格納される。その後、処理は終了状態１２１２に移行する。
【０１０８】
図１３は、非分類アプリケーションデータベース３０３からのアプリケーションを分類する処理を示すフローチャートである。処理は開始状態１３００から始まる。処理は状態１３０２に移行し、そこでは、アプリケーションアナリスト区分モジュール３０２を介する人間の評価者による区分のために、アプリケーションのリストが、非分類アプリケーションデータベース３０３から抽出される。アプリケーションアナリスト区分モジュール３０２は、アプリケーションの適切な１つ又は複数の分類を決定するために、人間の評価者とインタフェースする。次に、状態１３０４において、アプリケーションアナリスト区分モジュール３０２は、アプリケーション及び任意の関連データをＧＵＩ上に表示するために、使用される。関連データは、アプリケーションが関係付けられるべき１つ又は複数の分類を、人間の評価者に示し得る。上で説明されたように、アプリケーションアナリスト区分モジュール３０２は、人間の評価者に、アプリケーションの適切な１つ又は複数の分類を決定するために、各アプリケーション及びそのアプリケーションに関係する任意の付加的データを分析することを可能にする。
【０１０９】
処理は状態１３０６に移行し、そこでは、人間の評価者が、アプリケーション、関連情報、及び任意のインターネット情報を、アプリケーションを解析するのに使用する。インターネット情報は、ウェブブラザ検索エンジンを使用する検索から導出され得る。アプリケーション名及び任意の関連アプリケーションデータは、インターネット検索に使用され得る。人間の評価者は、文書、仕様、マニュアルなどを、アプリケーションに関係させる１つ又は複数の分類を決定するために、さらに評価することができる。処理は状態１３０８に移行し、そこでは、人間の評価者が、アプリケーションに関係する事実、関連情報からの任意のヒント、及び／又は別の調査を使用して、各アプリケーションを区分する。
【０１１０】
処理は最終的に状態１３１０に移行し、そこでは、与えられたそのアプリケーションに人間の評価者が関連付けた、選択された１つ又は複数の分類は、マスターアプリケーションデータベース３００に格納される。
【０１１１】
図１４〜２０は、アプリケーションのネットワークの振舞を監視するための処理を説明している。図７〜１３を参照して説明された処理は、アプリケーションがワークステーション上で起動されたときにアプリケーションを制御することに向けられたが、図１４〜２０を参照して説明する処理は、アプリケーションが最初に起動された後のアプリケーションの動作の制御に向けられている。例えば、実行起動検出モジュール２１０は、最初に起動されたアプリケーションを評価し、そのアプリケーションの分類又はグループに関係するポリシーに基づいて、そのアプリケーションがワークステーションの上で実行することを許可する。スタンドアローンで、実行起動検出モジュール２１０は、あるワークステーション上で、どのアプリケーションが実行することを許可されるかを制御する。
【０１１２】
しかし、アプリケーションの続く動作は、ネットワークアクセス検出モジュール２０８によって監視される。よって、アプリケーションは、あるワークステーション上で起動することを許可されるが、ネットワークアクセス検出モジュール２０８は、そのアプリケーションが所定の方式で動作しなければ、そのアプリケーションを抑制または制限する。さらに、ネットワークアクセス検出モジュール２０８は、アプリケーションが所定の方式で動作し続けることを保証するために、実行中のアプリケーションを継続的または定期的に監視することができる。
【０１１３】
図１４は、アプリケーションの振舞を監視する処理を示すフローチャートである。振舞の監視に加えて、その処理はアプリケーションの振舞を停止または制御する。処理は、起動後にネットワークにアクセスすることを要求するアプリケーションに加えて、起動時にネットワークにアクセスすることを要求するアプリケーションを監視する。よって、ワークステーション１０１上で実行することを実行起動検出モジュール２１０が許可するアプリケーションは、ネットワークにアクセスすることを許可されることも、されないこともある。
【０１１４】
その処理は開始状態１４００から始まる。次に、状態１４０２において、アプリケーションはネットワークへのアクセスを要求する。ネットワークにアクセスする要求は、ワークステーション１０１に関して、予め決定されたスタートアップシーケンスへの応答であり得る。例えば、ワークステーション１０１は、電源オンスタートアップ時に、１つ以上のネットワークにアクセスするようにプログラムされ得る。起動時または起動後に、アプリケーションは、ソフトウェアのアップデートをダウンロードするために、発行元のウエブサイトにアクセスすることを要求してもよい。このアクセス要求は、ユーザの入力に応答したもの、またはアプリケーション自体によるものであってもよい。
【０１１５】
ネットワークアクセス検出モジュール２０８（図２参照）は、アプリケーションのネットワークアクセスを検出する。次に、状態１４０４において、アプリケーション要約生成部２０１は、アプリケーションに関連するデータの要約を生成する。要約されたデータは、収集データの形式であり得る。収集データは、例えば、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号、目標ポート番号、及び別のネットワークワークアクセスデータを含み得る。
【０１１６】
処理は判定状態１４０６に移行し、そこでは、ネットワークアクセス検出モジュール２０８は、アプリケーション要約生成部２０１によって準備されたアプリケーション要約及び収集データを、ハッシュ／ポリシーテーブル２０４と比較する。例えば、アプリケーション要約生成部２０１によって生成されたハッシュ及び収集データは、ハッシュ／ポリシーテーブル２０４からのハッシュ及びそのハッシュに関係するネットワークアクセスデータと比較され得る。一実施形態においては、複数の異なるハッシュが生成され、ハッシュ／ポリシーテーブル２０４からのハッシュと比較される。例えば、ＭＤ−５ハッシュ及びＳＨＡ−１ハッシュは、要求されたアプリケーションのために生成され、ハッシュ／ポリシーテーブル２０４からのＭＤ−５ハッシュ及びＳＨＡ−１ハッシュと比較され得る。このように、アプリケーションの振舞は、ネットワークアクセス検出モジュール２０８によって監視される。
【０１１７】
ハッシュおよび収集データがハッシュ／ポリシーテーブル２０４に格納されたハッシュに対応し、収集データがハッシュ／ポリシーテーブル２０４中のハッシュに対応するならば、処理は状態１４１０に移行し、そこでは、ハッシュに関係するポリシーが、ネットワークアクセス要求に応答して適用される。この場合、アプリケーションの振舞またはネットワーク属性は、アプリケーションに期待される振舞に一致する。これらのポリシーは、アプリケーションにネットワークにアクセスすることを許可すること、ネットワークへのアクセスを拒否すること、ネットワークにアクセスすることがネットワーク管理者による更なる監視を受ける可能性があることをユーザに警告すること、又は、ある時間ネットワークにアクセスすることを許可することを含み得る。例えば、指定時間の終了時に、ネットワークアクセス検出モジュール２０８は、アプリケーションがネットワークにアクセスし続けることを許可しない。次に、状態１４１２において、ネットワークアクセス検出モジュール２０８は、ロギングデータベース２０６に、区分されたアプリケーションのためにネットワークアクセスデータをログ記録する。このように、ネットワークにアクセスすることを許可されるアプリケーションの記録が維持される。その後、処理は状態１４１４に移行し、そこでは、ネットワークアクセス検出モジュール２０８は、同じ又は別のアプリケーションによるワークステーション１０１上でのネットワークアクセスを検出するために、システムを監視する。
【０１１８】
ハッシュ／ポリシーテーブル２０４から読み出された情報は、ハッシュ値に関係するポリシーをさらに含み得る。一実施形態においては、ハッシュ値に対応する分類及び／又は親グループの情報は、ポリシーを選択するときに使用される。例えば、ハッシュ値は、特定の親グループに関係し得る。例えば、親グループは、“生産性（productivity）”、“通信（communication）”、“期待される又は所定のネットワークアクセス”及び“期待されないネットワークアクセス”を含み得る。親グループの“期待される又は所定のネットワークアクセス”及び“期待されないネットワークアクセス”は、サブグループまたは別グループ内の分類であってもよい。例えば、ワードプロセッシングのアプリケーションに関するハッシュは、グループ“生産性（productivity）”並びにサブ分類“ワードプロセッシング（word processing）”及び“期待される又は所定のネットワークアクセス”に関連付けされる。サブカテゴリ“期待される又は所定のネットワークアクセス”は、従って、ネットワークへのアクセスを許可するポリシーに関連付けされ得る。サブカテゴリ“期待されないネットワークアクセス”は、従って、ネットワークへのアクセスを許可しない、又は、ネットワークへのアクセスを停止若しくは制限するポリシーに関連付けされ得る。
【０１１９】
判定状態１４０６に戻ると、アップリケーション要約及び収集データが、ハッシュ／ポリシーテーブル２０４中で区分されたアプリケーション又はハッシュに対応しないならば、処理は状態１４１６に移行し、そこでは、ネットワークアクセス検出モジュール２０８は、非区分アプリケーションポリシーを、ネットワークへのアクセスの要求に適用する。非区分アプリケーションポリシーは、例えば、アプリケーションがネットワークにアクセスすること、アクセスを拒否すること、または、アプリケーションがネットワークにアクセスするのを許可される時間が制限されるが、更なる監視がネットワークアクセスに適用されるであろうことをユーザに警告することを含み得る。
【０１２０】
フローは状態１４１８に移行し、そこでは、非区分アプリケーションのためのネットワークアクセスデータは、ロギングデータベース２０６にログ記録される。処理は、上で説明されたように状態１４１４に移行し、そこでは、ネットワークアクセス検出モジュール２０８は、同じアプリケーション又は異なるアプリケーションからのネットワークへのアクセスの要求を待つ。
【０１２１】
図１５は、アプリケーションサーバモジュール１０２と共に、ネットワークアクセスしているアプリケーションに関連する収集データをアップロード及びダウンロードするために、ワークステーションによって実行される処理を示すフローチャートである。処理は開始状態１５００から始まる。次に、状態１５０２において、アップロード／ダウンロードモジュール２０３は、ワークステーションアップロード／ダウンモジュール１０４から入力信号を受信する。処理は判定状態１５０４に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、アプリケーションサーバモジュール１０２からハッシュ／ポリシーテーブル２０４をダウンロードする要求を受信する。ダウンロードファイルを受信する時期は、定期的、ランダム、付加された設定時間、またはポーリングに応答してであり得る。アップロード／ダウンロードモジュール２０３及び／又はワークステーションアップロード／ダウンモジュール１０４は、ワークステーション管理モジュール２００へのダウンロードを開始させることができる。
【０１２２】
状態１５０４において、アップロード／ダウンロードモジュール２０３が、アプリケーションサーバモジュール１０２からのダウンロードの要求を受信していると判断された場合、処理は状態１５０６に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、ハッシュ／ポリシーテーブル２０４又はその一部を受信して格納する。ハッシュ／ポリシーテーブル２０４は、ネットワークアクセスデータの形式の収集データを含み得る。
【０１２３】
例えば、アプリケーションサーバモジュール１０２は、ハッシュ／ポリシーテーブル２０４にコピーするために、アプリケーションインベントリデータベース１０３からデータを選択し、及び、ポリシーデータベース１０９からポリシーを選択することができる。アプリケーションインベントリデータベース１０３は、アプリケーションデータベース工場１１０によって分類されたアプリケーションを含み得る。アプリケーションは、区分ユーザインタフェース１０６を介して分類され得る。
【０１２４】
分類されたアプリケーションは、収集データに関係するアプリケーションである。収集データは、ネットワークアクセスデータを含み得る。幾つかの実施形態においては、ワークステーションアップロード／ダウンモジュール１０４は、ハッシュ／ポリシーテーブル２０４の一部を転送する。例えば、アップロード／ダウンロードモジュール２０３は、全データベースが送信される必要がないように、アップデートを受信することができる。別の実施形態では、アップロード／ダウンロードモジュール２０３は、アプリケーションインベントリデータベース１０３からのデータのサブセットを受信する。例えば、選択されたデータは、ポリシーと組み合わされたハッシュ値であり得る。
【０１２５】
ダウンロードデータは、既存のハッシュ／ポリシーテーブル２０４をアップデートすることができる。ダウンロードデータは、１つ以上のソースからの収集データの形式であり得る。ソースは、区分ユーザインタフェース１０６及びアプリケーションデータベース工場１１０を含み得る。上で説明されたように、収集データは、アプリケーションに関係する任意の付加的データ、例えば、アプリケーションインベントリデータベースからのアプリケーションに関係する要求頻度、及び／又は非分類アプリケーションデータベース１０８からのアプリケーションに関係する要求頻度、及び／又は指標を含み得る。上で説明されたように、アプリケーションインベントリデータベース１０３は、非分類アプリケーションデータベース１０８及びネットワークアクセスデータベース１０７を含むことができる。若しくは、非分類アプリケーションデータベース１０８及び／又はネットワークアクセスデータベース１０７は、１つのデータベースに結合される、又は、アプリケーションインベントリデータベース１０３から分離された別のデータベースでもあり得る。非分類アプリケーションデータベース１０８は、期待される方式又は所定の方式で動作していないアプリケーションと共に、区分又は分類されていないアプリケーションを含み得る。アプリケーションに関係するネットワークアクセスデータは、ネットワークアクセスデータベース１０７、非分類アプリケーションデータベース１０８、及び／又はアプリケーションインベントリデータベース１０３に格納されてもよい。
【０１２６】
処理は状態１５１０に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、アプリケーションサーバモジュール１０２からの起動信号を待つ。
【０１２７】
判定状態１５０４に戻ると、アップロード／ダウンロードモジュール２０３が、アプリケーションサーバモジュール１０２からのダウンロードを要求していない場合、処理は判定状態１５２５に移行し、アプリケーションサーバモジュール１０２がロギングデータベース２０６からの収集データを要求しているかを判断する。アプリケーションサーバモジュール１０２がロギングデータを要求していなければ、処理は、上で説明したように状態１５１０に移行する。判定状態１５２５に戻ると、アプリケーションサーバモジュール１０２がロギングデータを要求していれば、処理は判定状態１５２６に移行し、アプリケーションサーバモジュール１０２が、非分類アプリケーションのためにロギングデータベース２０６からの収集データを要求しているだけかどうかを判断する。非分類アプリケーションは、以前に分類されたが、所定又は期待される方式で動作していないアプリケーションを含み得る。
【０１２８】
アプリケーションサーバモジュール１０２が非分類アプリケーションのためのデータを要求しているだけであれば、処理は状態１５２８に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、アプリケーションサーバモジュール１０２にアップロードするために、ロギングデータベース２０６から非分類アプリケーションに関係するデータを抽出してフォーマットする。次に、処理は状態１５３０に移行し、そこでは、そのデータがアプリケーションサーバモジュール１０２に転送される。アプリケーションサーバモジュール１０２にアップロードされた収集データは、フォーマットされることも、フォーマットされないこともあり得る。さらに、収集データは、暗号化及び／又は圧縮されることも、またはされないこともあり得る。ワークステーションアップロード／ダウンモジュール１０４は、復号及び復元が必要であれば、収集データを復号及び復元する。ワークステーションアップロード／ダウンモジュール１０４は、アプリケーションのリスト及びアプリケーションに関係する任意の付加的データの中に、収集データを再組み込みする。ワークステーションアップロード／ダウンモジュール１０４は、収集データをマージ及びソートする。
【０１２９】
次に、処理は状態１５１０に移行し、そこでは、ワークステーション管理モジュール２００が、アプリケーションサーバモジュール１０２からの次の起動信号を待つ。
【０１３０】
判定状態１５２６に戻ると、アプリケーションサーバモジュール１０２が、ロギングデータベース２０６から非分類アプリケーションのための収集データ以上を要求していれば、処理は状態１５３２に移行し、そこでは、アップロード／ダウンロードモジュール２０３は、ロギングデータベース２０６中の全てのアプリケーションデータを抽出してフォーマットする。このデータは、ハッシュ／ポリシーテーブル２０４にリストされているアプリケーションのための分類されたデータと、ハッシュ／ポリシーテーブル２０４にリストされていないアプリケーションのための非分類データとを含み得る。収集データは、フォーマットされていることも、フォーマットされていないこともあり得る。さらに、収集データは、暗号化及び／又は圧縮されていることも、されていないこともあり得る。その後、フローは状態１５３０に移行し、そこでは、データはアプリケーションサーバモジュール１０２にアップロードされる。その後、フローは、上で説明されたように状態１５１０に移行し、そこでは、ワークステーション管理モジュール２００が、アプリケーションサーバモジュール１０２からの起動信号を待つ。
【０１３１】
図１６は、ワークステーション１０１と共に、ネットワークアクセスするアプリケーションのための収集データをアップロード及びダウンロードするためにアプリケーションサーバモジュールによって実行される処理を示すフローチャートである。その処理は開始状態１６００から始まる。次に、判定状態１６０２において、ワークステーションアップロード／ダウンモジュール１０４は、ワークステーション管理モジュール２００へのダウンロードを生成するかを判断する。ダウンロードを受信する時期は、定期的、ランダム、設定された時間、又はポーリングに応答してであり得る。ワークステーションアップロード／ダウンモジュール１０４及び／又はアップロード／ダウンロードモジュール２０３は、ワークステーション管理モジュール２００へのダウンロードを開始させることができる。ワークステーションアップロード／ダウンモジュール１０４が、ワークステーション管理モジュール２００にダウンロードすべきであれば、処理は状態１６０４に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、ネットワークアクセスデータベース１０７からネットワークアクセスデータを抽出する。ネットワークアクセスデータは、ポリシーデータベース１０９に組み込まれる。ポリシーデータベース１０９は、どのワークステーションがダウンロードを受信するかに基づいて、各アプリケーションにアクセス許可を関連付ける。ポリシーデータベース１０９は、ワークステーション１０１に関して、異なるアクセス権を含み得る。このように、異なるワークステーション１０１は、その上で実行している同じアプリケーションに関係する異なるポリシーを持ち得る。
【０１３２】
処理は状態１６０６に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、このワークステーション用に指定されたポリシーと共にネットワークアクセスポリシーを生成する。よって、同じアプリケーションは、あるワークステーションからウエブサイトにアクセスすることを許可されてもよいが、異なるワークステーションから同じウエブサイトにアクセスすることは許可されない。
【０１３３】
フローは状態１６０８に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、アップロード／ダウンロードモジュール２０３にネットワークアクセスポリシーテーブル又はその一部を転送する。ダウンロードファイルは、アプリケーション名、ハッシュ値、関係する分類、及び／又は関係するポリシーを含み得る。その後、フローは終了状態１６１０に移行する。
【０１３４】
判定状態１６０２に戻ると、ワークステーションアップロード／ダウンモジュール１０４がワークステーション１０１へのダウンロードを生成していなければ、処理は判定状態１６１２に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、ハッシュ及びネットワークアクセスデータのアップロードを要求するかを判断する。ハッシュ及びネットワークアクセスデータは、ロギングデータベース２０６の全て又は一部を含み得る。
【０１３５】
ワークステーションアップロード／ダウンモジュール１０４がワークステーション１０１からのアップロードを要求すれば、処理は状態１６１４に移行し、そこでは、全て又は非分類データのみの要求が、アプリケーションサーバモジュール１０２によってアップロード／ダウンロードモジュール２０３に送信される。次に、状態１６１６において、ワークステーションアップロード／ダウンモジュール１０４は、要求されたアップロードをワークステーション１０１から受信する。アップロードされるデータは、フォーマットされていることも、フォーマットされていないこともあり得る。さらに、アップロードされるデータは、暗号化及び／又は圧縮されていることも、されていないこともあり得る。ワークステーションアップロード／ダウンモジュール１０４は、次の状態１６１８において復号及び／又は復元が必要であれば、復号及び復元する。
【０１３６】
フローは状態１６２０に移行し、そこでは、ワークステーションアップロード／ダウンモジュール１０４は、アップロードされたデータを、アプリケーションのリスト及びネットワークアクセスと関係する任意の付加的データの中に再組み込みする。ワークステーションアップロード／ダウンモジュール１０４は、別のワークステーションの目録と、頻度数を含む収集データとをマージ及びソートする。そのシステムは、定期的にロギングデータベース２０６からデータをアップロードしている、何千ものワークステーション管理モジュールを含むことができる。上で説明されたように、アップロードされたデータは、ネットワークアクセスに関係する任意の付加的データ、例えば、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号、目標ポート番号、及びネットワークアクセスデータを含み得る。ワークステーションアップロード／ダウンモジュール１０４は、アプリケーション、又はネットワークアクセスの要求に関係する任意のアップロードされたデータをマージ及びソートすることができる。例えば、ワークステーションアップロード／ダウンモジュール１０４は、１つ以上のワークステーション１０１からのアプリケーションをソート及びマージするために、目標ＩＰアドレスを参照することができる。
【０１３７】
図１７は、アプリケーションサーバモジュール１０２におけるアプリケーションによるネットワークへのアクセス要求に関係するネットワークアクセスデータを分析する処理を示すフローチャートである。処理は開始状態１７００から始まる。次に、状態１７０２において、ネットワーク管理者は、ＧＵＩを介して区分ユーザインタフェース１０６を起動させる。ＧＵＩは、ネットワーク管理者に、アプリケーションインベントリデータベース１０３を操作し且つマージするためのグラフィカルインタフェースツールを提供する。ネットワーク管理者は、アプリケーションのリスト及びデータをネットワークアクセスデータベース１０７から抽出する。
【０１３８】
処理は状態１７０４に移行し、そこでは、アプリケーション及び任意の関連データが、ネットワーク管理者によって評価されるために、表示される。次に、状態１７０６において、ネットワーク管理者が、アプリケーションに許可される振舞を決定する。その後、処理は状態１７０８に移行し、そこでは、ネットワークアクセスデータベース１０７から抽出された各アプリケーションのために、処理は状態１７０４及び１７０６に戻る。
【０１３９】
図１８は、アプリケーションサーバモジュールからアプリケーションデータベース工場にネットワークアクセスデータをアップロードする処理を示すフローチャートである。その処理は開始状態１８００から始まる。次に、状態１８０２において、工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０から分類されたアプリケーションのダウンロードを要求する。分類されたアプリケーションは、アプリケーションデータベース工場１１０において、マスターアプリケーションデータベース３００に格納される。分類されたアプリケーションを受信する時期は、定期的、ランダム、設定された時間、またはポーリングに応答してであり得る。工場アップロード／ダウンロードモジュール１０５及び／又はアップロード／ダウンロードモジュール３０１は、アプリケーションサーバモジュール１０２へのダウンロードを開始させることができる。上で説明されたように、ダウンロードされたデータは、アプリケーションに関係する任意の付加的データを含み得る。付加的データはネットワークアクセスデータを含み得る。
【０１４０】
フローは判定状態１８０４に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５（図３参照）は、全非分類アプリケーションネットワークアクセスデータ送信済みフラグがアクティブにされているかを判断する。フラグは、区分ユーザインタフェース１０６を介して、ネットワーク管理者によって選択され得る。フラグがアクティブであれば、処理は状態１８０６に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５が全ての非分類アプリケーションを読み出す。フローは判定状態１８０８に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、全ネットワークアクセスアプリケーション目録送信済みフラグがアクティブであるかを判断する。全ネットワークアクセスアプリケーション目録送信済みフラグは、区分ユーザインタフェース１０６を介してネットワーク管理者によってアクティブにされ得る。全ネットワークアクセスアプリケーション目録送信済みフラグがアクティブであれば、処理は状態１８１０に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５が、アプリケーションインベントリデータベース１０３からデータを読み出す。フローは、状態１８１２に移行し、そこでは、非分類アプリケーション及びアプリケーションに関係する任意の付加的データ、例えば収集データがフォーマットされ得る。付加的データは、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号、目標ポート番号、及び、アプリケーションに関係する別のネットワークアクセスデータを含み得る。さらに、収集データのフォーマットの選択は、アプリケーションデータベース工場１１０が有する、アプリケーションサーバモジュール１０２とのデータ接続のタイプに依存し得る。インターネット１０８を介するデータ接続に関して、工場アップロード／ダウンロードモジュール１０５は、収集データをフォーマットするために、マークアップ言語、例えば、ＸＭＬ（extensible markup language）、ＳＧＭＬ（standard generalized markup language）、及びＨＴＭＬ（hypertext markup language）を使用できる。
【０１４１】
収集データは、それのアプリケーションデータベース工場１１０へのアップロードの前に、さらに処理され得る。例えば、チェック制限状態１８１４並びに圧縮及び暗号化状態１８１６は、アプリケーションデータベース工場１１０にアップロードする前に収集データを処理するために、実行され得る。これらのブロックは収集データのアプロードを容易にするかも知れないが、それらは実行されなくてもよい。収集データは、状態１８１４及び１８１６を適応すること無くアップロードされ得る。この場合、処理は代わりのパス１８１３を進み得る。よって、収集データは、アップロード状態１８１４及び１８１６を適応すること無く、アプリケーションデータベース工場１１０に直接アップロードされ得る。
【０１４２】
更なる処理が要望される場合、処理は状態１８１４に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０アップロードするための最大サイズに、収集データを制限することができる。例えば、１つのワークステーションからの収集データは、最大１０メガバイトに制限され得る。処理は状態１８１６に移行し、そこでは、収集データは、より少ないスペースを占有するように圧縮される。さらに、収集データは、承認されたユーザ、例えばアプリケーションデータベース工場１１０以外によっては読み取ることができないように、暗号化される。
【０１４３】
フローは状態１８１８に移行し、そこでは、収集データはアプリケーションデータベース工場１１０にアップロードされる。上で説明されたように、収集データは、アプリケーションに関係する任意の付加的データ、例えば目標ポート情報を含み得る。処理は状態１８２０に移行し、そこでは、アップロード／ダウンロードモジュール３０１は、工場アップロード／ダウンロードモジュール１０５へのダウンロードを続ける。処理は状態１８２２に移行し、そこでは、ダウンロードデータはアプリケーションインベントリデータベース１０３に格納される。
【０１４４】
判定状態１８０８に戻ると、全ネットワークアクセスアプリケーション目録送信済みフラグがアクティブでなければ、上で説明したようにフローは状態１８１２に移行する。全ネットワークアクセスアプリケーション目録送信済みフラグがアクティブでなかったので、工場アップロード／ダウンロードモジュール１０５は、状態１８１２、１８１４、１８１６、及び１８１８を参照して説明されたように、アプリケーションデータベース工場１１０にアップロードするために、状態１８０６において読み出されたデータをフォーマットする。
【０１４５】
判定状態１８０４に戻ると、全非分類アプリケーションネットワークアクセス送信済みフラグがアクティブにされていなければ、処理は、上で説明したように判定状態１８０８に移行し、そこでは、工場アップロード／ダウンロードモジュール１０５は、全ネットワークアクセスアプリケーション目録送信済みフラグがアクティブにされたかを判断する。全ネットワークアクセスアプリケーション目録送信済みフラグがアクティブにされたか否かに応じて、その後、処理は上で説明されたように続く。
【０１４６】
図１９は、アプリケーションデータベース工場からアプリケーションサーバモジュールにネットワークアクセスデータをダウンロードする処理を示すフローチャートである。その処理は状態１９００で開始する。次に、判定状態１９０２において、アプリケーションデータベース工場１１０は、マスターアプリケーションデータベース３００をアプリケーションサーバモジュール１０２にダウンロードすることができる。アプリケーションデータベース工場１１０が、マスターアプリケーションデータベース３００をアプリケーションサーバモジュール１０２にダウンロードすべきであれば、処理は状態１９０４に移行し、そこでは、アップロード／ダウンロードモジュール３０１は、分類されたアプリケーションをマスターアプリケーションデータベース３００から抽出する。分類されたアプリケーションのサブセットは、アプリケーションサーバモジュール１０２へのダウンロードのために選択され得る。サブセットは、発行準備ができたと判断された、分類されたアプリケーションのみを含み得る。
【０１４７】
処理は状態１９０６に移行し、そこでは、マスターアプリケーションデータベース３００から読み出されたアプリケーションデータがフォーマットされ得る。アプリケーションデータは、フォーマットされなくてもよく、従って、アプリケーションサーバモジュール１０２に直接ダウンロードされてもよい。さらに、そのデータのためのフォーマットの選択は、アプリケーションデータベース工場１１０が有する、アプリケーションサーバモジュール１０２とのデータ接続のタイプに依存し得る。インターネット１０８を介するデータ接続に関しては、アップロード／ダウンロードモジュール３０１は、マークアップ言語、例えばＸＭＬ、ＳＧＭＬ及びＨＴＭＬを使用できる。
【０１４８】
ダウンロードされるべきデータは、アプリケーションサーバモジュール１０２にダウンロードされる前に、さらに処理され得る。処理は状態１９０８に移行し、そこでは、アプリケーションデータは、より少ないスペースを占有するように圧縮される。さらに、アプリケーションデータは、承認されたユーザ、例えばアプリケーションサーバモジュール１０２以外によっては読めないように暗号化される。フローは状態１９１０に移行し、そこでは、アプリケーションデータはアプリケーションサーバモジュール１０２にダウンロードされる。
その後、処理は、終了状態である状態１９１２に移行する。
【０１４９】
状態１９０２に戻ると、マスターアプリケーションデータベース３００からのアプリケーションデータがアプリケーションサーバモジュール１０２にダウンロードされていなければ、処理は判定状態１９１４に移行し、そこでは、アプリケーションデータベース工場１１０は、アプリケーションサーバモジュール１０２からアップロードを受信することができる。アプリケーションデータベース工場１１０がアプリケーションサーバモジュール１０２からアップロードを受信することになっていなければ、処理は終了状態１９１２に移行する。
【０１５０】
判定状態１９１４に戻ると、アプリケーションデータベース工場１１０がアプリケーションサーバモジュール１０２からアップロードを受信することになっていれば、処理は状態１９１６に移行し、そこでは、アップロード／ダウンロードモジュール３０１は、工場アップロード／ダウンロードモジュール１０５からアップロードを受信する。収集データを受信する時期は、定期的、ランダム、設定された時間、又はポーリングに応答してであり得る。アップロード／ダウンロードモジュール３０１及び／又は工場アップロード／ダウンロードモジュール１０５は、アプリケーションデータベース工場１１０へのアップロードを開始させることができる。上で説明されたように、収集データは、アプリケーションに関係する任意の付加的データ、例えば、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号、目標ポート番号、及び、アプリケーションインベントリデータベース１０３からのアプリケーションに関係する別のネットワークアクセスデータ、及び／又は、ソースＩＰアドレス、目標ＩＰアドレス、ソースポート番号、目標ポート番号、及び、非分類アプリケーションデータベース１０８及び／又はネットワークアクセスデータベース３０４からのアプリケーションに関係する別のネットワークアクセスデータを含み得る。収集データはフォーマットされていることも、フォーマットされていないこともあり得る。さらに、収集データは、暗号化及び／圧縮されていることも、されていないこともあり得る。
【０１５１】
処理は状態１９１８に移行し、そこでは、アップロード／ダウンロードモジュール３０１は、復号及び／又は復元が必要であれば、収集データを復号及び／又は復元する。処理は状態１９２０に移行し、そこでは、収集データは、マージされて、マスターアプリケーションデータベース３００及び非分類アプリケーションデータベース３０３に格納される。その後、処理は終了状態１９１２に続く。
【０１５２】
図２０は、アプリケーションデータベース工場におけるアプリケーションに関係するネットワークアクセスデータを分析する処理を示すフローチャートである。その処理は、開始状態２０００で始まる。処理は状態２００２に移行し、そこでは、アプリケーションアナリスト区分モジュール３０２を介して人間の評価者による区分のために、アプリケーションのリストが非分類アプリケーションデータベース３０３及び／又はネットワークアクセスデータベース３０４から抽出される。アプリケーションアナリスト区分モジュール３０２は、アプリケーションの適切な１つの分類又は複数の分類を決定するために、人間の評価者とインタフェースする。分類は、“期待される又は所定のネットワークアクセス”及び“期待されないネットワークアクセス”を含み得る。分類“期待される又は所定のネットワークアクセス”は、その後、ネットワークへのアクセスが許可されているポリシーに関連付けられ得る。分類“期待されないネットワークアクセス”は、その後、ネットワークへのアクセスが許可されていないポリシーに関連付けられ得る。
【０１５３】
次に、状態２００４は、アプリケーションアナリスト区分モジュール３０２が、アプリケーション及びＧＵＩ上の任意の関係するデータを表示するために使用される。関連データは、アプリケーションに期待されるネットワーク活動性を人間の評価者に示すことができる。上で説明されたように、アプリケーションアナリスト区分モジュール３０２は、人間の評価者が、期待される又は所定のネットワーク活動性を決定するために、各アプリケーション及びアプリケーションに関係する付加的データを分析することを可能にする。
【０１５４】
処理は状態２００６に移行し、そこでは、人間の評価者が、アプリケーション、関連情報、及び任意のインターネット関連情報を分析する。インターネット情報は、ウエブブラウザ検索エンジンを使用する検索から導出され得る。アプリケーション名及び任意の関連収集データが、インターネット検索に使用され得る。
【０１５５】
期待される又は許可されたネットワーク活動性は、同じアプリケーションに関する以前の又は現在のネットワーク活動性に依存し得る。例えば、第１ワークステーション１０１上で実行しているアプリケーションに関して期待されるネットワーク活動性は、第１ワークステーション１０１上でのそのアプリケーションの以前の活動性に基づいて決定され得る。それに加えて又はその代わりに、アプリケーションに関して期待されるネットワーク活動性は、複数のワークステーション１０１上でのそのアプリケーションの以前の活動性の記録から決定され得る。
【０１５６】
期待されるネットワーク活動性は、異なるが関連するアプリケーションの活動性から決定され得る。例えば、１つのソフトウェア会社からのプログラム又はアプリケーションが、共通のアクセス権を持っていてもよい。アプリケーションの後のバージョンに関係するアクセス権は、共通のアクセス権を、同じアプリケーションの初期のバージョンと共有してもよい。
【０１５７】
異なるワークステーションで実行している同じアプリケーションのネットワーク活動性は、アプリケーションに関して期待されるネットワーク活動性を決定するために、所定の方法で重み付けされ得る。期待されるネットワーク活動性は、複数のワークステーションに関して共通のアクセス権を決定することができる。ワークステーション管理モジュールは、期待されるネットワーク活動性を、ハッシュ／ポリシーテーブル２０４に格納する。望ましい実施形態においては、複数のワークステーションからのネットワーク活動性は、アプリケーションデータベース工場１１０にアップロードされる。アクセス権は、アプリケーションデータベース工場１１０において決定され得る。
【０１５８】
あるアプリケーションに関する期待されるネットワーク活動性は、アプリケーションに関係する１つ以上のネットワーク属性を含み得る。その属性は、アプリケーションがネットワークに期待される方式でアクセスするとき、そのアプリケーションに関連付けられる。これらの属性は、例えば、特定のプロトコル、特定のＩＰアドレス、及び特定のアクセスポートを含み得る。例えば、アプリケーションに関する特定のプロトコルは、ハッシュ／ポリシーテーブル２０４中にリストされている。アプリケーションが、ハッシュ／ポリシーテーブル２０４中にリストされている期待されるプロトコルとは異なるプロトコルを用いてネットワークにアクセスすることを要求すれば、ネットワークアクセス検出モジュール２０８は、アクセスを許可しなくてもよい。
【０１５９】
しかし、アプリケーションに関係する１つの以上のネットワーク属性は、試みられる各アクセスに関して異なっていてもよい。このように、アプリケーションの属性は、時間とともに変化してもよい。ネットワークアクセス検出モジュール２０８は、１つ以上のネットワーク属性の１回目の組み合わせを許可し、２回目の組み合わせを許可しないようにしてもよい。人間の評価者は、ネットワーク要求のアプリケーションに関して期待される又は許可される振舞を最も良く決定するために、文書、仕様、マニュアルなどをさらに評価し得る。
【０１６０】
１つ以上の属性の組み合わせの各々は、１つ以上の分類に関係付けられ得る。１つ以上の分類は、ワークステーション１０１及び／又はユーザのためのポリシー又はルールにさらに関連付けられ得る。
【０１６１】
処理は状態２００８に移行し、そこでは、人間の評価者が、アプリケーションに関係する事実、関連情報からの任意のヒント、及び／又は別の調査を使用するアプリケーションに許可される振舞を決定する。処理は最終的に状態２０１０に移行し、そこでは、ネットワーク要求アプリケーションに関して許可された振舞が、マスターアプリケーションデータベース３００に格納される。
【０１６２】
上記の詳細な説明によって、本発明の新規性を、種々の実施形態に適用されたものとして示し、説明し且つ指摘したが、説明された装置又は処理の形式及び詳細における種々の省略、置換及び変更が、当業者によって、発明の精神から逸脱すること無く、成されてもよいことが理解されるであろう。発明の範囲は、上記の記載によってよりも、添付の特許請求の範囲によって示される。
特許請求の範囲の意味及び均等の範囲内で生じる全ての変更は、それらの範囲内に含まれるべきである。
【図面の簡単な説明】
【０１６３】
【図１】図１は、ワークステーション上のアプリケーションファイルを収集するためのサイト収集システムのブロック図である。
【図２】図２は、ワークステーション管理モジュールのブロック図である。
【図３】図３は、アプリケーションサーバモジュールのブロック図である。
【図４Ａ】図４Aは、アプリケーションファイルに関連し得る親グループ及び分類のデータベースの図である。
【図４Ｂ】図４Bは、アプリケーションファイルに関連し得るネットワークアクセスデータの例である。
【図５】図５は、アプリケーションデータベース工場のブロック図である。
【図６】図６は、アプリケーション分析の分類モジュール用のグラフィカルユーザインタフェース（ＧＵＩ）の一実施形態の画面の例である。
【図７】図７は、ワークステーション上でアプリケーションの起動を監視および制御する処理を示すフローチャートである。
【図８】図８は、アプリケーションサーバモジュールと共に、収集データをアップロード及びダウンロードするために、ワークステーションによって実行される処理を示すフローチャートである。
【図９】図９は、ワークステーションと共に、収集データをアップロード及びダウンロードするために、アプリケーションサーバによって実行される処理を示すフローチャートである。
【図１０】図１０は、アプリケーションサーバモジュールにおいて、分類されていないアプリケーションを分類する処理を示すフローチャートである。
【図１１】図１１は、アプリケーションサーバモジュールからアプリケーションデータベース工場にアプリケーションデータをアップロードする処理を示すフローチャートである。
【図１２】図１２は、アプリケーションデータベース工場からアプリケーションサーバモジュールにアプリケーションデータをダウンロードする処理を示すフローチャートである。
【図１３】図１３は、アプリケーションデータベース工場において分類されていないアプリケーションを分類する処理を示すフローチャートである。
【図１４】図１４は、ワークステーション上で、起動されたアプリケーションの動作を監視および制御する処理を示すフローチャートである。
【図１５】図１５は、アプリケーションサーバモジュールと共に、ネットワークアクセスするアプリケーションのための収集データをアップロード及びダウンロードするために、ワークステーションによって実行される処理を示すフローチャートである。
【図１６】図１６は、ワークステーションと共に、ネットワークアクセスアプリケーション用の収集データをアップロード及びダウンロードするために、アプリケーションサーバモジュールによって実行される処理を示すフローチャートである。
【図１７】図１７は、アプリケーションサーバモジュール上で起動されたアプリケーション用のネットワークアクセスデータを分析する処理を示すフローチャートである。
【図１８】図１８は、アプリケーションサーバモジュールからアプリケーションデータベース工場にネットワークアクセスデータをアップロードする処理を示すフローチャートである。
【図１９】図１９は、アプリケーションデータベース工場からアプリケーションサーバモジュールにネットワークアクセスデータをダウンロードする処理を示すフローチャートである。
【図２０】図２０は、アプリケーションデータベース工場でアプリケーションに関連するネットワークアクセスデータを分析する処理を示すフローチャートである。
【図１】
2008546060.tif 000003
【図２】
2008546060.tif 000004
【図３】
2008546060.tif 000005
【図４Ａ】
2008546060.tif 000006
【図４Ｂ】
2008546060.tif 000007
【図５】
2008546060.tif 000008
【図６】
2008546060.tif 000009
【図７】
2008546060.tif 000010
【図８】
2008546060.tif 000011
【図９】
2008546060.tif 000012
【図１０】
2008546060.tif 000013
【図１１】
2008546060.tif 000014
【図１２】
2008546060.tif 000015
【図１３】
2008546060.tif 000016
【図１４】
2008546060.tif 000017
【図１５】
2008546060.tif 000018
【図１６】
2008546060.tif 000019
【図１７】
2008546060.tif 000020
【図１８】
2008546060.tif 000021
【図１９】
2008546060.tif 000022
【図２０】
2008546060.tif 000023
【国際調査報告】
2008546060.tif 000024
2008546060.tif 000025