(57)【要約】  1つまたは複数のクライアント、データベース、およびサーバを具備する、システムである。クライアントは、ハイパーテキスト転送プロトコルを使用して、サーバと通信する。各クライアントは、スケジューリング/モニタリングエージェントを具備している。各サーバは、いくつかのコンポーネントを具備している。第1サーバコンポーネントは、構成ファイル検証情報を求める要求をクライアントから受信することと、その要求のログをデータベースに保存することと、を有する複数の機能を実行する。第2サーバコンポーネントは、ハードウェアおよびソフトウェアインベントリ情報、ならびにソフトウェアメータリング統計を受信することと、インベントリ情報をデータベースの少なくとも1つに保存することと、を有する複数の機能を実行することが可能である。
2009545025.tif 000002
【特許請求の範囲】
【請求項１】
(A)1つまたは複数のクライアントと、
(B)1つまたは複数のデータベースと、
(C)1つまたは複数のサーバと、
を具備し、
前記各クライアントは、スケジューリング/モニタリングエージェントを具備し、
前記各サーバは、(i)第1サーバコンポーネントと、(ii)第2サーバコンポーネントとを具備し、
前記第１サーバコンポーネントは、(a)構成ファイル検証情報に対する要求を前記クライアントの少なくとも1つから受信することと、(b)前記要求のログを前記データベースの少なくとも1つに保存することと、を有する複数の機能を実行し、
前記第２サーバコンポーネントは、(a)ソフトウェアインベントリ情報と、ハードウェアインベントリ情報と、ソフトウェアメータリング統計とのうち1つまたは複数を受信することと、(b)前記ソフトウェアインベントリ情報と、前記ハードウェアインベントリ情報と、前記ソフトウェアメータリング統計とのうちの1つまたは複数を前記データベースの少なくとも1つに保存することと、を有する複数の機能を実行することが可能であり、
前記クライアントは、ハイパーテキスト転送プロトコルを使用して、前記サーバと通信することを特徴とするシステム。
【請求項２】
前記１つまたは複数のクライアントは、ハードウェアインベントリエージェントをさらに具備し、
前記ハードウェアインベントリエージェントは、構成ファイルに従って、前記ハードウェアインベントリ情報を収集することを特徴とする請求項1に記載のシステム。
【請求項３】
前記１つまたは複数のクライアントは、ソフトウェアインベントリエージェントをさらに具備し、
前記ソフトウェアインベントリエージェントは、構成ファイルに従って、前記ソフトウェアインベントリ情報を収集することを特徴とする請求項1に記載のシステム。
【請求項４】
前記１つまたは複数のクライアントは、ソフトウェアメータリングエージェントをさらに具備し、
前記ソフトウェアメータリングエージェントは、構成ファイルに従って、前記ソフトウェアメータリング統計を収集することを特徴とする請求項1に記載のシステム。
【請求項５】
前記１つまたは複数のサーバは、第3サーバコンポーネントをさらに具備し、
前記第3サーバコンポーネントは、ネットワークステータス変更イベントによってトリガされ、前記ネットワークステータス変更に関連するネットワーク上のコンピュータ資産を識別することを特徴とする請求項1に記載のシステム。
【請求項６】
前記１つまたは複数のサーバは、第4サーバコンポーネントをさらに具備し、
前記第４サーバコンポーネントは、前記データベースの少なくとも1つからのデータフィードに応答して、前記ネットワーク上のコンピュータ資産を識別することを特徴とする請求項1に記載のシステム。
【請求項７】
前記第1サーバコンポーネントは、前記構成ファイルに対する更新を提供する機能と、前記更新を前記データベースの少なくとも1つに保存する機能とをさらに実行することを特徴とする請求項1に記載のシステム。
【請求項８】
前記構成ファイルは、処理命令と、前記ハードウェアインベントリエージェントの機能を拡張するコンポーネントとを有することを特徴とする請求項2に記載のシステム。
【請求項９】
前記ネットワークステータス変更イベントは、アクティブディレクトリにおけるイベントと、IP管理システムにおけるイベントと、DHCPサーバ上で収集されたイベントログメッセージとのうちの1つを有することを特徴とする請求項5に記載のシステム。
【請求項１０】
ネットワークを介して通信する、(a)ハードウェアインベントリエージェントを有する、1つまたは複数のクライアントと、(b)1つまたは複数のサーバと、(c)1つまたは複数のデータベースと、を具備するシステムにおいて、構成ファイルに従って、前記ネットワーク上のコンピュータ資産情報を収集する方法であって、
(A)前記構成ファイルのチェックサムを生成するステップと、
(B)前記チェックサムを、検証のために、前記ネットワークを介して少なくとも1つの前記サーバに送信するステップと、
(C)前記検証が否定的な結果をもたらした場合、少なくとも1つの前記サーバから現在の構成ファイルを要求するステップと、を具備し、
前記構成ファイルは、処理命令と、前記ハードウェアインベントリエージェントの機能を拡張するコンポーネントとを具備し、
前記検証は、前記チェックサムを、前記データベースの少なくとも1つに保存されている現在のクライアント構成情報と比較するステップを具備することを特徴とする方法。
【請求項１１】
ネットワークを介して通信する、(a)スケジューリング/モニタリングエージェントを有する、1つまたは複数のクライアントと、(b)1つまたは複数のサーバと、(c)1つまたは複数のデータベースと、を具備するシステムにおいて、
(A)コンピュータ資産情報を収集するステップと、
(B)前記コンピュータ資産情報を少なくとも1つの前記サーバに報告するステップと、
(C)前記コンピュータ資産情報を少なくとも1つ前記データベースに保存するステップと、
を具備し、
前記収集ステップは、前記スケジューリング/モニタリングエージェントによって実行されるスケジュールに従って行われ、
前記スケジュールは、少なくとも1つの前記サーバによって少なくとも1つの前記クライアントにダウンロードされることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のコンピュータ資産のインベントリ(inventory)を識別し、インベントリ管理を実行することに関する。
【背景技術】
【０００２】
本出願は、2006年7月21日に出願された、その発明の名称を「Method and System for Identifying and Conducting Inventory of Computer Assets on a Network」と称する、米国仮特許出願第60/832,420号の優先権を主張するとともに、その全体を参照により本明細書に組み込む。
【０００３】
現代の企業において、コンピュータ関連資産は、多大なコストをもたらしている。アプリケーションおよびシステムソフトウェアの動的な性質は、ハードウェアの定期的なアップグレードおよび/またはリプレースメントの必要を余儀なくさせる。一括手法(blanket approach)−すなわち、すべてのマシンのアップグレード−は、それに伴い法外なコストをもたらすことがある。したがって、アップグレード対象およびリプレースメント対象を決定する基準として、企業コンピュータのハードウェアコンポーネントの詳細かつタイムリーなインベントリを収集することが必要となる。
【０００４】
今日のコンピュータは、メインコンピュータユニットとは独立に移設または再配置することができる、ビデオカードまたはサウンドカード、外部CD/DVDリーダー/バーナー、LCDモニタ、ドッキングステーションなど、多数の高価なコンポーネントを具備している。これらのコンポーネントの不適切な移設または許可されていない移設は、企業にとって甚大なコストを招くことがある。このコストを回避または軽減するため、所望のインベントリソリューションは、コンピュータに相当するまたはコンピュータに接続された様々なコンポーネントおよび装置を適切に識別するとともに、インベントリ管理を行う必要がある。このソリューションは、さらに、所望のインベントリソリューションの設計または初期実施の時点では知られていないハードウェアおよびソフトウェアコンポーネントのインベントリ管理を行うメカニズムを提供するために、十分に柔軟である必要がある。
【０００５】
コンピュータは、システムプログラムおよびアプリケーションプログラムを実行するように設計されている。コンピュータプログラムの性質は、ハードウェアおよびソフトウェアコンポーネントの特定の構成において、ある状況下でのみ現れるバグを有し得るということである。これらの発生を識別および低減するため、企業のコンピュータ環境を構成するハードウェアおよびソフトウェアコンポーネントの詳細かつタイムリーなインベントリを有することが重要である。このことは、悪意のあるソフトウェアのいくつかの形態(すなわちコンピュータウイルス)の識別および隔離にも関係する。
【０００６】
コンピュータネットワークの管理に関連するコストの大部分は、企業コンピュータ上に配備されるアプリケーションソフトウェアの製造業者に支払われるライセンス料に相当する。したがって、企業コンピュータ上にインストールされた様々なソフトウェアコンポーネントを正確に明らかにし、ソフトウェアインストールと実際のソフトウェア使用との相互参照を行うことは、コスト管理の重要な部分となる。
【０００７】
企業コンピュータネットワークは、通常、地理的に分散しており、プロトコルフィルタリング、ファイアウォールなど、何らかの制御機構を使用して相互接続された、様々なセグメントを有する。企業規模のコンピュータ資産インベントリシステムは、様々なネットワークセグメントを透過的に橋渡しするとともに、集中分析のためにすべてのインベントリ情報を統合する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
既存のインベントリ専用システムまたはインベントリ可能システムは、上述の要件のすべてを満たすには不十分である。したがって、従来技術に対して、より大きな拡張性、ロギングおよびエラー発見に関するより大きな柔軟性、ならびに必要に応じてファイアウォールを介して通信する機能を提供する、ネットワーク上のコンピュータ資産のインベントリを識別し、インベントリ管理を実行する方法およびシステムが必要である。
【課題を解決するための手段】
【０００９】
本発明は、1つまたは複数のクライアント、データベース、およびサーバを具備する、システムに関する。クライアントは、ハイパーテキスト転送プロトコルを使用して、サーバと通信する。各クライアントは、スケジューリング/モニタリングエージェント(scheduling and monitoring agent)を具備している。各サーバは、さらに、構成ファイル検証情報(configuration file verification information)を求める要求をクライアントから受信することと、その要求のログをデータベースに保存することと、を有する複数の機能を実行するコンポーネントを具備している。各サーバは、ハードウェアおよびソフトウェアインベントリ情報(hardware and software inventory information)、ならびにソフトウェアメータリング統計(software metering statistics)を受信することと、そのような情報をデータベースに保存することと、を有する複数の機能を実行することが可能なコンポーネントも具備している。
【００１０】
本発明の別の態様は、構成ファイルに従って、ネットワーク上のコンピュータ資産情報を収集する方法に関する。前記方法は、ネットワークを介して通信する、1つまたは複数の(ハードウェアインベントリエージェント(hardware inventory agent)を有する)クライアント、サーバ、およびデータベースを具備する、システムにおいて機能する。前記方法に関連して、構成ファイルのチェックサムが生成される。チェックサムは、検証のために、ネットワークを介してサーバに送信され、その検証は、チェックサムを、データベースに保存されている現在のクライアント構成情報と比較するステップを有する。検証が否定的な結果をもたらした場合、サーバから現在の構成ファイルが要求される。構成ファイルは、処理命令と、ハードウェアインベントリエージェントの機能を拡張するコンポーネントと、を具備している。
【００１１】
本発明の別の態様は、ネットワークを介して通信する、1つまたは複数の(スケジューリングエージェントを有する)クライアント、サーバ、およびデータベースを具備する、システムにおいて機能する方法に関する。前記方法に関連して、コンピュータ資産情報が収集されるとともに、サーバに報告される。コンピュータ資産情報は、データベースに保存される。収集は、スケジューリング/モニタリングエージェントによって実行されるスケジュールに従って実行される。スケジュールは、サーバによってクライアントにダウンロードされる。
【００１２】
上記の概要的な記載と下記の詳細な記載との両方は、例示的かつ説明的なものであるとともに、添付の特許請求の範囲で主張される本発明のさらなる説明を提供することを意図したものであることを理解されたい。
【００１３】
添付の図面は、本発明のさらなる理解を提供するものであり、本明細書に組み込まれて、その一部を構成する。また、添付の図面は、本発明の実施形態を図説するものであり、本発明の詳細な説明とともに、本発明の原理を説明するのに役立つ。
【図面の簡単な説明】
【００１４】
【図１】例示的なシステムアーキテクチャの論理的な概要を示す図である。
【図２Ａ】本発明のシステムのクライアントサイドコンポーネントと、サーバベースコンポーネントとの相互作用とを示す図である。
【図２Ｂ】本発明に関連して使用されるクライアントエージェントの1つを示す図である。
【図２Ｃ】本発明に関連して使用される他のクライアントエージェントの1つを示す図である。
【図２Ｄ】本発明に関連して使用される他のクライアントエージェントの1つを示す図である。
【図２Ｅ】本発明に関連して使用される他のクライアントエージェントの1つを示す図である。
【図２Ｆ】本発明に関連して使用されるエージェントの1つに対する構成ファイルノード階層を示す図である。
【図２Ｇ】図2Fの構成ファイルノード階層に対応する構成ファイルのサンプルを示す図である。
【図２Ｈ】本発明に関連して使用されるエージェントの1つに対する構成ファイルノード階層を示す図である。
【図２Ｉ】図2Hの構成ファイルノード階層に対応する構成ファイルのサンプルを示す図である。
【図２Ｊ】本発明に関連して使用されるエージェントの1つに対する構成ファイルノード階層を示す図である。
【図２Ｋ−１】図2Jの構成ファイルノード階層に対応する構成ファイルのサンプルを示す図である。
【図２Ｋ−２】図2Jの構成ファイルノード階層に対応する構成ファイルのサンプルを示す図である。
【図３】本発明のシステムのサーバサイドに対する例示的なフレームワークを示す図である。
【図４】サーバサイドの発見プロセスを示す図である。
【図５】本発明に関連して使用されるデータオブジェクトの例示的なスキーマを示す図である。
【図６】例示的なインベントリデータスキーマを示す図である。
【図７】本発明の方法の好ましい一実施形態を示すフローチャートである。
【図８】本発明の別の方法の好ましい一実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１５】
本発明は、ネットワーク上のコンピュータ資産のインベントリを発見し、インベントリ管理を実行する、柔軟でかつ拡張可能なメカニズムを提供する、サーバベースおよびクライアントベースのサービスのセットを具備している。
【００１６】
図1は、例示的なシステムアーキテクチャの論理的な概要を示している。例示的なシステムは、多数のソフトウェアコンポーネントおよびハードウェアコンポーネントを具備し、複数のインフラストラクチャ層内に存在する。本発明のシステムは、Windows（登録商標）サービスとして動作するように設計され、組織内のワークステーション10およびサーバ15上にインストールされる、(本明細書では「クライアントエージェント(Client Agent)」と呼ばれる)ソフトウェアアプリケーションの形態で、インフラストラクチャのクライアントサイド101上で提示される。各クライアントエージェントは、様々なインベントリデータポイント(inventory data point)の収集に関連するタスクを担うように設計される。クライアントエージェントは、ウェブサービス(Web Service)アプリケーション104のメソッドを実行することによって、サーバサイドコンポーネントと通信する。クライアントエージェントは、ウェブサービス104とのすべての通信のために、ポート80を介したHTTPプロトコル接続を使用する。
【００１７】
組織のコアドメインの外部に存在する、またはドメイン内に存在するが、コアドメインと信頼関係が確立されていない、クライアントエージェントを実行するコンピュータは、ポリシードリブンプロキシ(policy-driven proxy)を使用するファイアウォール102を介して通信する。
【００１８】
本発明のシステムの好ましい一実施形態のサーバサイド環境も同様に、多数のソフトウェアコンポーネントおよびハードウェアコンポーネントを具備している。バックエンドサーバの物理アドレスを抽象化するとともに、サービスの高い可用性を保証するため、仮想アドレス(すなわちVIP)が、使用される。前記ウェブサービス104は、ウェブファーム(Web Farm)103上に存在する、ソフトウェアアプリケーションである。ウェブサービスは、本発明に関連して使用される、クライアントエージェントの様々な機能をサポートする、多数のウェブメソッドを提供する。最大限の可用性と、クライアントとの互換性とを保証するため、ウェブサービス104は、ポート80を介するHTTPプロトコルを使用する通信をサポートするように設計される。ウェブサービスアプリケーション104の2つの主要機能は、(1)クライアントエージェントに構成および設定を提供することと、(2)クライアントエージェントからのインベントリデータ送信を処理するとともに、データをデータベース105に保存することとである。ウェブファーム103は、クライアントエージェントによる消費に関して、ウェブサービス104の高い可用性および拡張性を保証するために使用される。
【００１９】
好ましい実施形態ではWindowsサービスとして実施される、サーバベースのソフトウェアアプリケーション(発見サーバ108)は、ネットワーク上のWindowsオペレーティングシステムを実行する装置の補足的な発見を提供する。前記発見は、アクティブディレクトリ(Active Directory)106、IP管理システム(IP management system)107、およびDHCPサーバ109上で収集されるイベントログ(Event Log)メッセージなど、いくつかの異なるシステムにおけるイベントによってトリガされる。トリガ時に、アプリケーションは、特定のクライアントコンピュータシステムに接続し、1セットのクエリを実行して、必要な情報を収集する。前記収集された情報は、前記ウェブサービス104を介してデータベースに送信される。
【００２０】
前記データベース105は、クライアントエージェント用のランタイム構成を保存するとともに、クライアントエージェントによって収集されたインベントリを保存する。
【００２１】
図2A、2B、2C、2D、および2Eを参照して、クライアントエージェントをより詳細に説明する。図2Aは、前記クライアントサイドコンポーネント101の上位レベルの概要と、サーバベースコンポーネントとの相互作用を示している。上述したように、本発明のシステムは、Windowsサービスとして動作するように設計され、組織内のWindowsワークステーションおよびサーバ上にインストールされる、ソフトウェアアプリケーション(すなわちクライアントエージェント)の形態で、組織のインフラストラクチャのクライアントサイド上で提示される。各クライアントエージェントは、様々なインベントリデータポイントの収集に関連する様々なタスクを実施し、Windowsサービスとして動作する。利用されるクライアントエージェントのタイプが、対応するサービスのスタートアップモードを決定する。以下のクライアントエージェントは、本発明のシステムの好ましい実施形態のクライアントサイド環境を構成する。
【００２２】
図2Bを参照して、コアエージェント(Core Agent)201を説明する。コアエージェント201は、Windowsサービスとしてクライアントコンピュータ上にインストールされるソフトウェアアプリケーションである。コアエージェント201は、自動スタートアップモードで動作するように構成されている。コアエージェント201の主要機能は、スケジューリングサービスを他のクライアントエージェントに提供することである。コアエージェント201は、さらに、ネットワーク接続の利用可能性を検査し、接続が利用不可能である場合、以下で説明されるソフトウェアメータリングエージェント(Software Metering Agent)203など、自動スタートアップモードにあるクライアントエージェントを停止させる。コアエージェント201は、手動スタートアップモードにある他のクライアントエージェントのステータスを検査するために、ウェブサービス要求を定期的に送信する。特定のエージェントに関して受信したステータスに応じて、コアエージェント201は、そのエージェントの、短いランダムな時間間隔内での起動もしくは即座の起動をスケジュールすることができる、または何もしないでいることができる。したがって、データポイントが即座に必要とされる場合、またはスケジュールされた処理内ではない時間に必要とされる場合、以下で説明されるハードウェアインベントリエージェント(「HWIエージェント」)202を起動するために、コアエージェント201を使用することができる。
【００２３】
図2Cを参照して、HWIエージェント202を説明する。HWIエージェント202は、Windowsサービスとしてクライアントコンピュータ上にインストールされるソフトウェアアプリケーションである。HWIエージェント202は、手動スタートアップモードで動作するように構成され、コアエージェント201が更新される情報を求める要求を受信した場合はいつでも、前記コアエージェント201によって起動される。更新の頻度は、サーバサイドでデータベース105において制御される。HWIエージェント202は、構成ファイルに従って、コンピュータハードウェアおよび構成情報を収集するとともに、報告する。HWIエージェント202は、ウェブサービスコールを使用して、クライアント10上に保存されている現在の構成ファイルの有効性を検査し、そのファイルがテストで不合格(fail)になった場合、構成の新規バージョンが要求されるとともに、クライアント10上に保存される。構成ファイルは、さらに、WMIクラスおよびプロパティの形式で表現されるデータ収集ポイントの一覧を保有する。構成ファイルは、各々が特定のタイプの情報を収集するように設計された、小規模なコード−プラグイン−を有している。収集された情報は、ウェブサービス104のメソッドを使用して送信される。
【００２４】
好ましい実施形態において、前記HWIエージェント202がその構成ファイルを検査する特定の方法は、以下のとおりである。HWIエージェント202は、クライアント10上に保存されている現在の構成ファイルのチェックサムを取得する。HWIエージェントは、それ自体のシグネチャをサーバに送信し、その構成ファイルが最新であるかどうかをサーバに照会する。サーバは、中央データベース内の当該クライアント用の現在の構成ファイルを検査し、そのチェックサムを計算する。チェックサムが一致した場合、サーバは、チェックサムが一致したことを通知するメッセージをHWIエージェント202に返信する。チェックサムが一致しなかった場合、サーバは、不合格を通知するメッセージをHWIエージェント202に返信する。その場合、HWIエージェント202は、構成ファイルに対する更新を要求する。
【００２５】
したがって、前記HWIエージェント202は、構成ファイルを受け取り、そのファイルからDDLを抽出し、それをクライアント上にローカルに保存するとともに、どの情報が収集されるかを制御するDDLを実行する。
【００２６】
図2Dを参照して、前記ソフトウェアメータリングエージェント(「SWMエージェント」)203を説明する。SWMエージェント203は、Windowsサービスとしてインストールされるソフトウェアアプリケーションである。SWMエージェントは、自動スタートアップモードで動作するように構成されている。SWMエージェント203は、クライアント環境におけるソフトウェア利用に関する粒度の細かい情報(granular information)を収集するとともに、報告する。特に、SWMエージェントは、ユーザのワークステーション10上におけるソフトウェア利用を監視するとともに、制御する。SWMエージェントは、ローカルに保存された構成ファイルを最新に維持するために、ウェブサービスコールを介して、その構成ファイルの有効性を定期的に検査する。構成設定に基づいて、SWMエージェントは、ある種のプロセスが動作することを防止すること、ならびに/または通知および増強の様々な手段を提供することができる。収集されたインベントリ情報は、ウェブサービスコールを介して、環境のサーバサイドに送信される。
【００２７】
図2Eを参照して、ソフトウェアインベントリエージェント(「SWIエージェント」)204を説明する。SWIエージェント204は、Windowsサービスとしてインストールされるソフトウェアアプリケーションである。SWIエージェントは、手動スタートアップモードで動作するように構成され、前記コアエージェント201によって起動される。このエージェントの目的は、サーバベースのライセンスコンプライアンス評価(License Compliance Evaluation)アプリケーションによって必要とされる情報を収集することである。構成ファイルに保存された例外一覧に従って、SWIエージェント204は、前記クライアントコンピュータ10上に存在するあらゆるディレクトリおよびファイルについての情報を収集する。SWIエージェントは、ウェブサービスコールを使用して、収集された情報を報告する。
【００２８】
上述したように、クライアントエージェントの動作は、構成検証に応答して、前記データリポジトリ105からクライアント10に送付される対応する構成ファイルによって制御される。好ましい実施形態において、すべてのクライアントコンポーネントの構成ファイルは、XMLバージョン1.0仕様に準拠する。
【００２９】
前記HWIエージェント202に関する構成ファイルノード階層の好ましい一実施形態を、図2Fに示す。HWIA Configノード2000は、XML階層のルートノードであり、XMLファイルスキーマを定義する。WebServices URLノード2001は、ハードウェアインベントリを報告するURLを定義する。plugin-ddl-listノード2002は、プラグインDDLの一覧に対するルートノードである。plugin-ddlノード2004は、個々のプラグインDDLの記述に対するルートノードである。このノードは、プラグイン名、バージョン、および作成日付を定義する。ddl-codeノード2006は、プラグインDDLのコードをビット64符号化(bit64 encoding)で提供する。wmi-class-listノード2003は、WMIクラスの一覧のルートノードである。wmi-classノード2005は、個々のWMIクラス記述のルートノードである。これは、クラス名と、クラスクエリ条件と、クラスを収集するか、もしくは無視するかどうかとを指定する。wmi-property-listノード2007は、WMIクラスのプロパティの定義のルートノードである。このノードは、プロパティ名と、プロパティを収集するか、もしくは無視するかどうかとを指定する。postprocessingノード2008は、プロパティの値を報告する前に、プロパティの値に対して実行される後処理操作を定義する。target-datatypeノード2009は、プロパティ値に対するターゲットデータタイプを定義する。収集される1つのプラグインDDLと1つのWMIクラスとを定義する、HWIA 202の構成ファイルのサンプルを、図2Gに示す。
【００３０】
前記SWIエージェント204に関する構成ファイルノード階層の好ましい一実施形態を、図2Hに示す。XML階層のSWI_Configルートノード2010は、XMLファイルスキーマと、ソフトウェアインベントリを報告するURLと、タイムアウト値と、報告待ち時間とを定義する。Extensionsノード2011は、インベントリ管理されるファイル拡張子の一覧に対するルートノードである。Extノード2012は、(クライアントマシン上で見出された場合)インベントリ管理されるファイルを識別する。CollectFilesノード2013は、インベントリ管理される個々のファイルの一覧のルートノードである。Fileノード2014は、(クライアントマシン上で見出された場合)インベントリ管理されるファイルの名前である。IgnorePathsノード2015は、インベントリ管理されるファイルに対してハードドライブをスキャンする間に無視されるディレクトリの一覧のルートノードである。Pathノード2016は、インベントリ管理されるファイルに対してハードドライブをスキャンする間に無視されるディレクトリである。図2Iは、インベントリ管理されるファイル/ディレクトリを定義する、SWIエージェント204の構成ファイルのサンプルを示している。
【００３１】
前記SWMエージェント203に関する構成ファイルノード階層の好ましい一実施形態を、図2Jに示す。SWM_Configノード2017は、XML階層のルートノードであるとともに、XMLファイルスキーマと、ソフトウェアメータリングを報告するURLと、報告タイムアウトと、追跡オプションと、処理テーブルリフレッシュ間隔とを定義する。Exe-optional-fieldsノード2018は、実行可能ファイルに対するオプショナルフィールドを収集するかどうかに関する標識を提供する。Dll-optional-fieldsノード2019は、DLLに対するオプショナルフィールドを収集するかどうかに関する標識を提供する。WarningMessageノード2022は、警告メッセージ定義を提供するルートノードである。MsgTitleノード2026は、警告メッセージの表題(title)を提供する。MsgTextノード2027は、警告メッセージの本文(text)を提供する。EmailMessageノード2023は、電子メールメッセージに対するルートノードであり、電子メールを送信するために使用されるメールホストを定義する。MsgBodyノード2028は、電子メールメッセージの本体(body)を提供する。Subjectノード2031は、電子メールメッセージの主題(subject)を提供する。To-listノード2029は、電子メールメッセージに対する受取人一覧のルートノードである。Recipientノード2030は、電子メールメッセージに対する受取人アドレスを提供する。Restrictedノード2020は、制限された実行可能ファイル/DLLの一覧に対するルートノードである。Moduleノード2024は、制限された実行可能ファイル/DLLに対するモジュール名である。Ignoredノード2021は、無視される実行可能ファイル/DLLの一覧に対するルートノードである。Moduleノード2024は、無視される実行可能ファイル/DLLに対するモジュール名を提供する。図2K-1および図2K-2は、SWMエージェント203の構成ファイルのサンプルを示している。
【００３２】
図3は、本発明のシステムのサーバサイドに対するフレームワークの好ましい一実施形態を示している。ウェブサービス300は、クライアントエージェントとサーバサイド環境との間を接続するとともに、データを受け渡す機能を提供する、.NET、ウェブベースのソフトウェアアプリケーションフレームワークである。通信は、前記ポート80を介するHTTPプロトコルを使用して実施され、異なるネットワーク機構を介して接続する様々なクライアント10に利用可能となる機会を増大させる。ウェブサービス300は、以下のように、クライアントエージェントに多様な機能を提供する、ウェブメソッド(Web Method)と呼ばれる、多数の異なるサービスを有している。
1.IsAlive()―エージェントがウェブサービス300への接続の利用可能性を検査することを可能にするウェブメソッド。
2.GetCoreConfig()―他の様々なクライアントエージェントに対する設定および構成を取り出すためにコアエージェント201によって使用されるウェブメソッド。
3.CheckConfig()―その現在の構成ファイルの有効性を検査するためにクライアントエージェントによって使用されるウェブメソッド。
4.SendData()―収集されたインベントリおよび発見情報を送信するために、クライアントエージェントおよびサーバベースの発見プロセスによって使用されるウェブメソッド。
5.GetData()―様々なクライアントに対する報告データへの汎用アクセスを提供するウェブメソッド。
【００３３】
高レベルの可用性および拡張性を保証するため、前記ウェブサービスアプリケーション104は、ウェブファーム103上に配備され、ウェブファームは、インターネット情報サーバを実行する複数のサーバを具備している。
【００３４】
図4を参照して、サーバサイドの発見プロセスを説明する。サーバサイドの発見プロセス401は、ネットワーク上のWindowsオペレーティングシステムを実行するエンドポイント装置の補足的な発見を提供するように設計された、Windowsサービスとして実施される、サーバベースのソフトウェアアプリケーションである。前記発見は、例えば、前記アクティブディレクトリ106、IP管理システム107、およびDHCPサーバ109上で収集されるイベントログメッセージなど、いくつかの異なるシステムにおけるイベントによってトリガされる。トリガ時に、アプリケーションは、特定のクライアントコンピュータシステムに接続し、1セットのクエリを実行するとともに、必要な情報を収集する。収集された情報は、その後、ウェブサービス104を介してデータベース105に送信される。
【００３５】
本発明の例示的な実施形態をサポートし、連携して働くように、元のデータベース設計は改良される。本発明の様々なソフトウェアアプリケーションコンポーネント特有の要件を満たすために、前記データベース105内には、2つの異なるモデルタイプが存在する。
【００３６】
最初に、システムおよびアプリケーションモデル(system and applications model)を説明する。このデータベースオブジェクトのセットは、様々なアプリケーション特有の設定および構成を保存するため、および取り出すために、システム内のソフトウェアアプリケーションによって使用される。このセクション内の多数のデータベースエンティティおよびそれらの間のリレーションシップは、構成設定に関連するエンタイトルメント情報(entitlement information)を保存および維持することを可能にする。
【００３７】
次に、インベントリデータモデル(inventory data model)を説明する。このデータベースエンティティのセットは、システム内の様々なソフトウェアアプリケーションコンポーネントによって収集される多様なインベントリデータを保存するように設計される。それは、例外的な大量のデータベーストランザクションをサポートするとともに、データベースリソース上における競合の可能性を最小化する。このモデルは、以下のように、結合された場合に拡張性および応答性の高いシステムを提供する、2つのデータベース設計手法を結合する。従来のリレーショナルデータベース設計が使用され、それがOLTP(オンライントランザクション処理(Online Transaction Processing))システムの動作を円滑化する。これは、挿入(Insert)、更新(Update)、および削除(Delete)などのデータ修正データベーストランザクションの最適化および高速化を可能にする。加えて、スタースキーマ(Star schema)データベース設計が使用され、OLAP(すなわちオンライン分析処理(Online Analytical Processing))システムにおけるデータ検索の最適化を可能にする。スタースキーマ設計手法を利用することによって、システムの高レベルの拡張性が達成されるのと同時に、データにアクセスする際のより良い応答時間が達成される。システムへの新規のデータ収集要素の追加は、既存のどのオブジェクトも修正する必要なしに、1つの追加テーブルオブジェクトによって達成される。
【００３８】
図5を参照すると、データベース設計によって使用されるデータベースオブジェクトの例示的なスキーマが、示されている。前記データベース105では、(1)システムおよびアプリケーションと、(2)インベントリデータと、2つの主要なモデルが定義される。図6を参照すると、インベントリデータスキーマが、示されている。
【００３９】
図7を参照すると、構成ファイルに従って、ネットワーク上のコンピュータ資産情報を収集する方法の好ましい一実施形態が、示されている。前記方法は、ネットワークを介して通信する、1つまたは複数の(ハードウェアインベントリエージェントを有する)クライアント、サーバ、およびデータベースを具備する、システムにおいて機能する。ステップ701において、構成ファイルのチェックサムが生成される。ステップ702において、チェックサムは、検証のために、ネットワークを介してサーバに送信される。前記検証は、チェックサムを、データベースに保存されている現在のクライアント構成情報と比較するステップを具備している。検証が否定的な結果をもたらした場合、ステップ703において、現在の構成ファイルが、サーバに要求される。構成ファイルは、処理命令と、ハードウェアインベントリエージェントの機能を拡張するコンポーネントと、を有している。
【００４０】
図8を参照すると、ネットワークを介して通信する、1つまたは複数の(スケジューリングエージェントを有する)クライアント、サーバ、およびデータベースを具備する、システムにおいて機能する方法の好ましい一実施形態が、示されている。ステップ800において、スケジュールが、サーバによってクライアントにダウンロードされ、スケジューリングエージェントによって実行される。ステップ801において、コンピュータ資産情報が、スケジュールに従って収集され、サーバに報告される。ステップ802において、コンピュータ資産情報が、データベースに保存される。
【００４１】
広範な本発明の概念から逸脱することなく、上述の実施形態の変形が可能であることは、当業者にとって明らかである。したがって、本発明は、開示された特定の実施形態に限定されず、添付の特許請求の範囲において定義される本発明の趣旨および範囲内において変更を包含することを意図していることが理解される。
【符号の説明】
【００４２】
10  ワークステーション
15  サーバ
80  ポート
101  クライアントサイド
102  ファイアウォール
103  ウェブファーム
104  ウェブサービス
105  データベース
106  アクティブディレクトリ
107  IP管理システム
108  発見サーバ
109  DHCPサーバ
201  コアエージェント
202  ハードウェアインベントリエージェント
203  ソフトウェアメータリングエージェント
204  ソフトウェアインベントリエージェント
300  ウェブサービス
401  発見プロセス
【図１】
2009545025.tif 000003
【図２Ａ】
2009545025.tif 000004
【図２Ｂ】
2009545025.tif 000005
【図２Ｃ】
2009545025.tif 000006
【図２Ｄ】
2009545025.tif 000007
【図２Ｅ】
2009545025.tif 000008
【図２Ｆ】
2009545025.tif 000009
【図２Ｇ】
2009545025.tif 000010
【図２Ｈ】
2009545025.tif 000011
【図２Ｉ】
2009545025.tif 000012
【図２Ｊ】
2009545025.tif 000013
【図２Ｋ−１】
2009545025.tif 000014
【図２Ｋ−２】
2009545025.tif 000015
【図３】
2009545025.tif 000016
【図４】
2009545025.tif 000017
【図５】
2009545025.tif 000018
【図６】
2009545025.tif 000019
【図７】
2009545025.tif 000020
【図８】
2009545025.tif 000021
【手続補正書】
【提出日】平成21年8月20日(2009.8.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
(A)1つまたは複数のクライアントと、
(B)1つまたは複数のデータベースと、
(C)1つまたは複数のサーバと、
を具備し、
前記1つまたは複数のサーバの各々は、(i)第1サーバコンポーネントと、(ii)第2サーバコンポーネントとを具備し、
前記第１サーバコンポーネントは、(a)構成ファイル検証情報に対する要求を前記1つまたは複数のクライアントの少なくとも1つから受信することと、(b)前記要求のログを前記1つまたは複数のデータベースの少なくとも1つに保存することと、を有する複数の機能を実行し、
前記第２サーバコンポーネントは、(a)ソフトウェアインベントリ情報と、ハードウェアインベントリ情報と、ソフトウェアメータリング統計とのうち1つまたは複数を受信することと、(b)前記ソフトウェアインベントリ情報と、前記ハードウェアインベントリ情報と、前記ソフトウェアメータリング統計とのうちの1つまたは複数を前記1つまたは複数のデータベースの少なくとも1つに保存することと、を有する複数の機能を実行することが可能であり、
前記１つまたは複数のクライアントのうち1つまた複数は、それぞれインベントリエージェントを具備し、
前記インベントリエージェントは、構成ファイルに従って、前記ハードウェアインベントリ情報およびソフトウェアインベントリ情報のうち1つまたは両方を収集し、
前記インベントリ情報の収集を可能にするように、コードが、前記構成ファイルから引き出されるとともに、前記インベントリエージェントに導入され、
前記収集されたインベントリ情報は、前記インベントリエージェントの実行の時点で、前記インベントリエージェントが収集するように構成されていないというインベントリ情報を有することを特徴とするシステム。
【請求項２】
前記１つまたは複数のクライアントのうち1つまたは複数は、ソフトウェアメータリングエージェントをさらに具備し、
前記ソフトウェアメータリングエージェントは、構成ファイルに従って、前記ソフトウェアメータリング統計を収集することを特徴とする請求項1に記載のシステム。
【請求項３】
前記１つまたは複数のサーバのうち1つまたは複数は、第3サーバコンポーネントをさらに具備し、
前記第3サーバコンポーネントは、ネットワークステータス変更イベントによってトリガされ、前記ネットワークステータス変更に関連するネットワーク上のコンピュータ資産を識別することを特徴とする請求項1に記載のシステム。
【請求項４】
前記１つまたは複数のサーバのうち1つまたは複数は、第4サーバコンポーネントをさらに具備し、
前記第４サーバコンポーネントは、前記1つまたは複数のデータベースの少なくとも1つからのデータフィードに応答して、前記ネットワーク上のコンピュータ資産を識別することを特徴とする請求項1に記載のシステム。
【請求項５】
前記第1サーバコンポーネントは、前記構成ファイルに対する更新を提供する機能と、前記更新を前記1つまたは複数のデータベースの少なくとも1つに保存する機能とをさらに実行することを特徴とする請求項1に記載のシステム。
【請求項６】
前記ネットワークステータス変更イベントは、アクティブディレクトリにおけるイベントと、IP管理システムにおけるイベントと、DHCPサーバ上で収集されたイベントログメッセージとのうちの1つを有することを特徴とする請求項3に記載のシステム。
【請求項７】
ネットワークを介して通信する、(a)ハードウェアインベントリエージェントを有する、1つまたは複数のクライアントと、(b)1つまたは複数のサーバと、(c)1つまたは複数のデータベースと、を具備するシステムにおいて、構成ファイルに従って、前記ネットワーク上のコンピュータ資産情報を収集する方法であって、
(A)前記構成ファイルのチェックサムを生成するステップと、
(B)前記チェックサムを、検証のために、前記ネットワークを介して少なくとも1つの前記サーバに送信するステップと、
(C)前記検証が否定的な結果をもたらした場合、少なくとも1つの前記サーバから現在の構成ファイルを要求するステップと、を具備し、
前記構成ファイルは、処理命令と、前記ハードウェアインベントリエージェントの機能を拡張するコンポーネントとを具備し、
前記検証は、前記チェックサムを、前記データベースの少なくとも1つに保存されている現在のクライアント構成情報と比較するステップを具備することを特徴とする方法。
【請求項８】
ネットワークを介して通信する、(a)スケジューリング/モニタリングエージェントを有する、1つまたは複数のクライアントと、(b)1つまたは複数のサーバと、(c)1つまたは複数のデータベースと、を具備するシステムにおいて、
(A)コンピュータ資産情報を収集するステップと、
(B)前記コンピュータ資産情報を少なくとも1つの前記サーバに報告するステップと、
(C)前記コンピュータ資産情報を少なくとも1つ前記データベースに保存するステップと、
を具備し、
前記収集ステップは、前記スケジューリング/モニタリングエージェントによって実行されるスケジュールに従って行われ、
前記スケジュールは、少なくとも1つの前記サーバによって少なくとも1つの前記クライアントにダウンロードされることを特徴とする方法。
【国際調査報告】
2009545025.tif 000022