(57)【特許請求の範囲】
【請求項１】
リモートサーバにネットワークを介して接続される電子デバイスに配置される永続性サービスエージェントであって、該電子デバイスに関して少なくとも１つのサービスを可能にし、サポートし、及び／又は、提供するために、
前記電子デバイス内で、ユーザがアクセスできない場所に隠されるドライバーエージェントであって、
該ドライバーエージェントは、不正変更が生じた場合に自己回復することを含んで、外部不正変更に対して永続的であるために、前記電子デバイスのオペレーティングシステムから独立して動作するように構成され、
該ドライバーエージェントは、少なくともパーシャルドライバーエージェントおよびフルファンクションドライバーエージェントうちの１つを有し、
該フルファンクションドライバーエージェントは、前記サービスを提供する前記ネットワークと通信するように構成され、
該パーシャルドライバーエージェントは、前記フルファンクションドライバーエージェントに比べて少ないファンクションセットを用いて構成され、
前記電子デバイスにおいて前記フルファンクションドライバーエージェントが利用可能かどうかを判断するように構成され、
前記パーシャルドライバーエージェントは、さらに、前記電子デバイスにおいて利用可能でないと判断する場合には、前記フルファンクションドライバーエージェントのコピーを前記ネットワークの上で検索するように構成される、ドライバーエージェントと、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるランモジュールと、を備える、永続性サービスエージェント。
【請求項２】
前記ランモジュールは、ユーザ介入無しで前記サービスを提供する前記電子デバイスの動作環境に対して適合するように前記永続性サービスエージェントを構成するプログラマブルモジュールを備えるインストーラモジュールと、
前記インストーラモジュールを自動的にロードし、次に、前記ドライバーエージェントを自動的にロードするように設定されるローダーモジュールと、
を備える請求項１に記載の永続性サービスエージェント。
【請求項３】
前記ランモジュールは、前記電子デバイスのオペレーティングシステムから独立して前記ドライバーエージェントのオペレーションを開始するように構成される、請求項２に記載の永続性サービスエージェント。
【請求項４】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも１つを含む、請求項１に記載の永続性サービスエージェント。
【請求項５】
前記永続性サービスエージェントの少なくとも一部が、ファームウェアおよびソフトウェアのうちの少なくとも１つの形で、前記電子デバイスに配置される、請求項１に記載の永続性サービスエージェント。
【請求項６】
前記ファームウェアは、不揮発性メモリにおいて具体化される、請求項５に記載の永続性サービスエージェント。
【請求項７】
前記不揮発性メモリは、ＢＩＯＳチップである、請求項６に記載の永続性サービスエージェント。
【請求項８】
前記ローダーモジュールは、ファームウェアの形になっており、
前記ドライバーエージェントと前記インストーラモジュールのうちの少なくとも１つは、前記電子デバイスにおける大容量記憶装置上のユーザがアクセスできない領域に、存在するソフトウェアの形である、請求項２に記載の永続性サービスエージェント。
【請求項９】
前記ドライバーエージェントは、
前記リモートサーバと通信し、
指令にしたがってサービスを実行するための当該指令を前記リモートサーバから受信し、
前記エージェントにより実行され得るサービスの範囲を拡張するように構成され、
前記ドライバーエージェントは、
前記リモートサーバからアプリケーションをダウンロードし、
前記リモートサーバから受信した指令にしたがって前記アプリケーションを開始するように構成される、請求項１に記載の永続性サービスエージェント。
【請求項１０】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも１つを含む、請求項９に記載の永続性サービスエージェント。
【請求項１１】
前記アプリケーションは、実行ファイルを含む、請求項９に記載の永続性サービスエージェント。
【請求項１２】
請求項１に記載の永続性サービスエージェントを含む電子デバイス。
【請求項１３】
電子デバイスにおいて、サービスを可能にし、サポートし、及び／又は、提供する方法であって、ドライバーエージェントを、前記電子デバイス内で、ユーザがアクセスできない場所に隠すステップであって、
該ドライバーエージェントは、不正変更が生じた場合に自己回復することを含んで、外部不正変更に対して永続的であるために、前記電子デバイスのオペレーティングシステムから独立して動作するように構成され、
該ドライバーエージェントは、少なくともパーシャルドライバーエージェントおよびフルファンクションドライバーエージェントうちの１つを有し、
該フルファンクションドライバーエージェントは、サービスを提供するネットワークと通信するように構成され、
該パーシャルドライバーエージェントは、前記フルファンクションドライバーエージェントに比べて少ないファンクションセットを用いて構成され、
前記電子デバイスにおいて前記フルファンクションドライバーエージェントが利用可能かどうかを判断するように構成され、
前記パーシャルドライバーエージェントは、さらに、前記電子デバイスにおいて利用可能でないと判断する場合には、前記フルファンクションドライバーエージェントのコピーを前記ネットワークの上で検索するように構成される、ステップと、
前記電子デバイス内にランモジュールを提供するステップであって、
該ランモジュールは、ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように構成されている、ステップと、
前記ドライバーエージェントは、ネットワークを介してリモートサーバと通信するステップと、
前記サービスに関連する指令を受信するステップと、を含む方法。
【請求項１４】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも１つを含む、請求項１３に記載の方法。
【請求項１５】
リモートサーバにネットワークを介して接続される電子デバイスに配置される永続性サービスエージェントであって、前記電子デバイスに関して、少なくとも１つのサービスを可能にし、サポートし、及び／又は、提供するために、
前記電子デバイス内で、ユーザがアクセスできない場所に隠されるドライバーエージェントであって、
該ドライバーエージェントは、不正変更が生じた場合に自己回復することを含んで、外部不正変更に対して永続的であるために、前記電子デバイスのオペレーティングシステムから独立して動作するように構成され、
該ドライバーエージェントは、少なくともパーシャルドライバーエージェントおよびフルファンクションドライバーエージェントうちの１つを有し、
該フルファンクションドライバーエージェントは、前記サービスを提供する前記ネットワークと通信するように構成され、
該パーシャルドライバーエージェントは、前記フルファンクションドライバーエージェントに比べて少ないファンクションセットを用いて構成され、
前記電子デバイスにおいて前記フルファンクションドライバーエージェントが利用可能かどうかを判断するように構成され、
前記パーシャルドライバーエージェントは、さらに、前記電子デバイスにおいて利用可能でないと判断する場合には、前記フルファンクションドライバーエージェントのコピーを前記ネットワークの上で検索するように構成される、ドライバーエージェントと、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように構成されるローダーモジュールと、を備える、永続性サービスエージェント。
【請求項１６】
ユーザ介入無しで前記サービスを提供するために前記電子デバイスの動作環境に対して適合するように前記永続性サービスエージェントを構成するプログラマブルモジュールを備えるインストーラモジュールを更に備える請求項１５に記載の永続性サービスエージェント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ及びネットワーク環境における永続性又は不正改変防止サービスを提供するエージェントに関する。
【背景技術】
【０００２】
今日の競争が激しいビジネス環境においては、情報技術（ＩＴ）は、日々のビジネス業務における知識の交換において、ますます重要な役割を演じている。個人、システム、組織、そして他の事業資産は、この新興ビジネスウェブにおいて、相互接続されており、ＩＴの展望が、ますます複雑になるので、コンピュータ資産を効率的に管理する必要がある。結果として、組織は、その投資を最大化し、コストを制御しようとするために、以前よりもっと、コンピュータの資産担保を管理し、安全化することを掌握する必要性を認識している。
【０００３】
ネットワーク下でコンピュータを管理するために要求される時間と財源の量は、重要な意義を有する。これらの資産が、電子商取引やビジネスインテリジェンスのようなキー・ビジネスプロセスをサポートする。もし、これらの資産が守られない、及び、それらを積極的に管理する能力が無いなら、短期及び長期の損失の可能性は、非常に高い。
【０００４】
組織が出くわす主要な問題の１つは、具体的なソフトウェアイメージ及び記憶装置ドライブに関して要求される更新を管理する能力であり、それらのコンピュータの場所及び進行中の移行を追跡する能力である。何の資産を所有するか、それらは、時間内に変更されているかということを知ることは、進行中のＩＴ資産及びポリシー管理にとって基本となる。この知識は、また、ハードウェア又はソフトウェア更新、もしくは、コンピュータ廃棄のような、より良い計画立案及び予算決めを可能にする。この問題は、さらに、地理的に拡大した会社ほど、モバイル及びリモートシステムの導入がますます一般化するほど、度合いを増す。これらの資産及びその上のソフトウェアイメージを追跡し続けることは、コンピュータそれ自身の価値が重要であるばかりでなく、マシン上にある価値あるデータの保護のために、ますます重要になっている。損失又はミス設定された資産は、その資産上の秘密情報や独占情報を読み出し可能にし、アンチウイルス更新の無い状態にし、又は、企業ネットワーク内でアクセスをまだ有しているかもしれない。企業は、それらの資産及び構成を資産計上しなければならず、ハードウェア及びソフトウェアに関してそれらが何であるかのみならず、それらがどこにあり、誰が使っているかを知らなければならない。この付加的情報のみが、安全性という課題、及び、リモート及びモバイルユーザの規則的な承諾に取り組み始めることができる。
【０００５】
モバイルコンピュータデバイス用の電力処理の増加と共に、徐々に、個人は、デスクトップ・ユニットや、ホーム又はスモールビジネスネットワークのための予備デバイスとして、モバイルコンピューティングデバイスを選ぶようになっている。一方、個人は、そもそも、コンピュータ資産在庫、設定管理に関心が無いにもかかわらず、彼らは、パーソナルコンピュータ資産の追跡、及び、個人データの保護に関して、大組織と同じような関心を共有する。
【０００６】
多くのＩＴ部門は、今までの資産管理ソリューションは、リモート及びモバイルユーザの増加人口を精度良く説明することが出来ていない。実は、典型的な組織は、２年間にＰＣ資産の１５％を、漂流ＰＣ１として見失うだろう。そこでは、資産は、必ずしも、失ったか、盗まれたかではなく、最初に用意されてから、何度も所有者や部門が変更されたために説明できないのである。平均して、多くの組織は、実際のＰＣ資産の６５％しか確認できておらず、それらは在庫２とされる。最もすばらしい遂行は、ＩＴ部門は、少なくとも９０％のＰＣ資産がいかなるときにもどこになるのか知ることを要求する。
【０００７】
ＬＡＮ外を移動するリモート及びモバイルコンピュータ資産は、多くの場合に、問題となる。最初に、多くの資産を追跡するソフトウェアは、それらのマシンが、ローカルネットワークに接続されないとき、それらのマシンを追跡することが出来ない。また、それらのマシンは、ＩＴネットワーク全体にとって大きなセキュリティ的脅威をもたらす。さらによく、ＩＴ管理者よりむしろリモートユーザは、そのマシンを更新する管理や設定に責任を持たない。多くのユーザは、通常、彼らがすべきセキュリティに関心がない。ユーザは、低いセキュリティ設定、悪意あるソフトウェアを知らずにインストールし、アンチウイルスソフトウェアを期限切れにし、最新のセキュリティ・パッチをインストールできない。リモートユーザに責任のあるセキュリティ監視のようなものは、ネットワーク全体に強烈な影響を与えうる。リモートユーザがＬＡＮに接続するとき、それらの緩慢なセキュリティ設定のために、ネットワーク全体が感染を受ける。これらのリモートマシンのための効果的資産管理ツール無しで、ＩＴ管理者は、ネットワーク全体の完全性を確実にすることは出来ない。ネットワークは、その最も弱いリンクと同じ安全性しか有さない。コンピュータセキュリティに関する年鑑ＣＳＩ／ＦＢＩ調査は、盗まれたＰＣ資産の５７％は、企業に対する追加的な犯罪を実行するために使用されることを示している。
【０００８】
最近の企業会計スキャンダル、認識のシフト、悪意あるハッキングに応えて、政府は、全ての機密デジタル情報を保護し、責任を有することを、ビジネスに課す規則を設立させている。２００２年のサーベンス・オクスリー法は、そのような規制の好適な例である。サーベンス・オクスリーと共に、不正確な資産報告の発覚が増加している。経営幹部は、適切なコントロールや規則が、正確な資産報告を確実にする準備が整っているかどうかを、法的に検証することを要求されている。今は、正確な資産報告が実施されることを確実にすることは、ＣＦＯ及びＣＥＯに受託された責任である。資産ベースを不正確に報告する組織にとって、法律、規則、金融的開示は重要である。コンピュータは、よく、組織の資産ベースの物質比率を埋め合わせし、これにより、正確な報告を要求する。グラム・リーチ・ブライリー（ＧＬＢ）法は、顧客記録が金融部門で保護されることを確実にする規定も有する。同様に、医療保険の携行性と責任に関する法律（ＨＩＰＡＡ）が、医療記録と情報の秘密性を保護するために、設けられた。もし組織が、効率的にコンピュータ資産の全てを追跡しないなら、厳格な規則が影響してくるだろう。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第５，５７１５，１７４号
【特許文献２】米国特許第５，５７６４，８９２号
【特許文献３】米国特許第５，８０２，２８０号
【特許文献４】米国特許第６，２４４，７５８号
【特許文献５】米国特許第６，２６２，３９２号
【特許文献６】米国特許第６，５０７，９１４号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
その追跡機能を請け負う資産追跡、及び／又は、設定管理アプリケーションは、ユーザによって不正使用に対して確実なレベルで抵抗することができるべきである。資産監視の状況において、典型的には、認証ユーザは、コンピュータのライフサイクル管理の幾つかの局面において責任を有する人間である。この状況で、追跡エージェントは、ソフトウェアエージェントの偶然の除去から、認証ユーザを守ることができるべきであり、一方、エージェントを正規に不能にする要求を（例えば、コンピュータ資産使用を終了する場合において）可能とするべきである。非認証ユーザは、エージェントソフトウェアを取り除こうとするユーザであり、典型的にそのコンピュータのライフサイクル管理に責任を有さない者である。良く考えた理由として、エージェントを取り除こうとする非認証な試みは、追跡ソフトウェアが永久的に取り除かれることを確実にすることを望む、泥棒行為又は潜在的泥棒を含むだろう。非認証な偶然的除去の試みは、新しいオペレーティング・システム（ＯＳ）に成功に又は不成功にインストールする誰かの試みも含むだろう。
【００１１】
ＰＣ資産及びその設定を追跡、管理、更新する試みは、多くのハードウェア、ソフトウェア、及び破壊／修繕、設定変更、ＯＳ再インストール、ハードドライブ再フォーマット／交換、システムクラッシュ、ユーザドリブン設定変更を含むイメージチェンジを経るＰＣのライフサイクル間の事実に関してさらに、挑戦的となる。これらの変更は、ＯＳの再インストールを要求し、それにより、オリジナルの足跡、識別、又は、ＰＣ資産の追跡エージェントは不能、又は、除去される。この変更は、もし熱心に記録及び追跡されないなら、周知状態から不明状態へ移行するＰＣ資産の始まりとなる。これらの決まりきった手順のＰＣライフサイクル運用上の要求は、複雑性、ＰＣ資産追跡の課題を増加させ、特に、リモート及びモバイルＰＣについて増加させる。
【００１２】
これまで、既存の資産追跡アプリケーションは、それらが非認証ユーザによって不正使用することに対して要求される永続性を得るために必要な構成を表示しないという点で、ウィンドウズ（登録商標）ＮＴ／２０００／ＸＰ環境において不十分である。これらの追跡アプリケーションは、上述した非認証又は偶然のユーザアクションによって、一般に、容易に無効化される。
【００１３】
本発明の出願人、アブソリュート・ソフトウェアコーポレーションは、安全に資産を追跡し、失った及び盗まれた資産を回収する製品及びサービス、アブソリュート・トラック、セキュア資産追跡、在庫管理、コンピュトレース技術プラットフォームによって供給されるソリューションを開発し、市販している。コンピュトレースは、ステルスエージェントを展開し、それは、ホストコンピュータのハードドライブに存在するソフトウェアクライアントである。いったんインストールされると、そのエージェントは、自動的に、定期的に位置情報、全自動で発見される資産データ位置を転送する監視センタにコンタクトする。エージェントと監視センタ間の継続的通信は、ユーザの介入を要求せず、インターネット又は電話接続を介して維持される。コンピュータが起動され、かつ、電話回線かインターネットアクセス（ＩＳＰや企業ネットワークを通して）のどちらかがある限り、コンピュトレース・エージェントは、監視センタに資産データを報告することが出来るだろう。エージェント及び監視センタ間のユーザ介入の無い通信は、エージェントの認証ユーザに、最新の位置情報及びコンピュータ在庫全体の広範囲の資産データにセキュアアクセスすることを確実にする。スタンドアローン、又は、既存の資産管理ツールの補足としてであろうとなかろうと、アブソリュートトラックは、リモート、モバイル、デスクトップコンピュータの全てのサイズのビジネスを助けるコスト効果のあるアプリケーションであり続け、日々のハードウェア及びソフトウェア品目追跡機能を実行する。コンピュトレースは、モバイルコンピュータの盗難を追跡し、かつ、盗まれたモバイルコンピュータを回収するための効果的ツールであり続ける。
【００１４】
様々なコンピュトレース製品及びサービスの基礎をなす技術は、ＵＳ及び他の国で開示され、特許を受けた。そしてそれは、通常は、アブソリュートソフトウェアコーポレーションに帰属している。例えば、ＵＳ特許番号、５，５７１５，１７４、５，５７６４，８９２、５，８０２，２８０、６，２４４，７５８、６，２６２，３９２、及び６，５０７，９１４、そして関連する外国特許。さらに、アブソリュートトラックに関する情報は、アブソリュートソフトウェアコーポレーションで発行されている（例えば、セキュアコンピュータ資産追跡ソリューション、ホワイトペーパ、２００３年４月２５日発行）。
【００１５】
各保護されたデバイスに展開されるエージェントソフトウェアは、内密（ステルス）性であり、コンピュータユーザによって発見されることを対して抵抗する。不正使用耐性のレベルは、検出の困難性、及び、コンピュトレースサービスを打ち負かすために要求される技能のレベルに影響を与える。ソフトウェアのみのコンピュトレースは、ディスクベースのユーティリティのような不正使用耐性がある一方、不正使用耐性の付加的レベルを提供する改良されたエージェントを望ましくは発展し、そして、資産追跡及び回収を超えるサービスをさらに可能にし、サポートし、及び／又は、提供する。
【課題を解決するための手段】
【００１６】
本発明は、資産の管理及び保護（ハードウェア、ファームウェア、ソフトウェア、データ等の制限を含まず）、それらのソフトウェアの設定に関連するサービスを、改善された不正変更防止と共に可能にし、サポートし、及び／又は提供するサービスエージェントを対象とする。
【００１７】
ソフトウェアエージェントは、複数のモジュールを有する。各モジュールは、特定の動作環境で機能するように設計されている。モジュール設計は、アプリケーション全体を構築せずに、特定の動作環境、例えば、ＢＩＯＳ又はハードドライブの中における、展開のためのエージェント設定において柔軟性を提供する。エージェントは、ソフトウェアによって実装されても良く、システム内のソフトウェア、ファームウェア、及び／又はハードウェアに在住することができる。
【００１８】
本発明の一実施例によれば、ローダーモジュールは、パワーオンセルフテスト（ＰＯＳＴ）間にロードされ制御を獲得する。エージェントは、それがインストールされたデバイスに関して、サービス（例えば、追跡、データ削除、及びソフトウェア更新）を可能にし、サポートし、提供することが期待されている。一旦、ローダーに制御が与えられると、ローダーは、適切な時間に必要なだけ含み、かつ、削除され又は機械から無くなってしまったエージェントの部分をネットワーク（例えば、インターネット）を横断して再ロードし、他の機能及びエージェントのモジュールをロードするように行動する。ソフトウェアエージェントは、通常エージェントを取り除くことが期待されるアクションにも関わらず永続性を有する能力がある。
【００１９】
本発明の一実施例によれば、永続性エージェントのエージェントコードのための少なくとも１つのモジュール及び／又はデータは、ＲＯＭのようなデバイスのファームウェアで、特に基本的な入出力システム（ＢＩＯＳ）又はその同等レベルのもので実装され、そして、そのデバイスに在住する。ソフトウェアエージェントは、デバイスのＯＳに独立してその設計されたサービスファンクション（例えば、追跡、データ削除、及びソフトウェア更新）をすぐに実行できるようにそれ自身をロードし、エージェントがその設計されたサービスファンクションを実行するシステムの基本動作を利用できるように、ＯＳを検出することによってデバイスのある基本動作（例えば、入出力）を制御する環境（例えば、そのデバイスのＯＳ）に自分自身を適合することができる。
【００２０】
別な実施例によれば、「コンピュトレース（Computrace）」ローダーモジュール（ＣＬＭ）、適合インストーラモジュール（ＡＩＭ）、及び通信ドライバエージェント（ＣＤＡ）という、３つのモジュールを有する。ＣＬＭは、ＡＩＭをロードし、次に、検索し、認証し、解凍し、検出したＯＳ環境にＣＤＡを適合させる。ある実施例では、ＣＤＡは、２つの形式、フルファンクションＣＤＡ、及び、ミニＣＤＡがある。ミニＣＤＡのファンクションは、フル又は現状のＣＤＡがデバイスのどこかに検出されるか否かを判断し、もしないなら、監視サーバからネットワーク（例えば、インターネット）を横断してフルファンクションＣＤＡをロードすることである。別な実施例では、異なるモジュール、及び、特にＣＤＡは、プログラマブルであり、特有の環境に適合させるためのカスタムな機能性を要求することができる。幾つかのモジュールでエージェントを提供することで、カスタマイゼーションのレベルは、最小に維持される。ある実施例では、少なくともＣＬＭが、ＢＩＯＳのようなファームウェアで、一つ以上の他のモジュールと共に、ハードドライブパーティションギャップ、又は、ハードドライブホスト保護エリア（ＨＰＡ）に格納される。別な実施例では、ＣＬＭは、代替マスターブートレコード（ＭＢＲ）又は前述の組み合わせに格納される。
【００２１】
別な形態によれば、エージェントが実行するサービス環境は、リモートサーバ、又は、エージェントで利用可能な一般的なサブファンクションコールの組み合わせによって制御される。エージェントのこのプログラム可能な能力は、サーバドリブンコマンドに基づいて、その機能を拡張することが可能である。拡張性は、エリアが高価であり、機能性を加えたり、変更する柔軟な更新が経済的では無いＢＩＯＳのようなファームウェアでは、エージェントの上手い展開に関して非常に重要である。拡張性の構成は、エージェントの起動プロセス及び再起動プロセスの主要な要素となる。
【００２２】
本発明の別な形態によれば、エージェントの拡張性は、クライアントデバイスで格納されるデータを削除するために、データ削除アプリケーションを有効にする。
【００２３】
本発明のさらに別な形態によれば、エージェントの拡張性は、クライアントデバイスに送信され、かつ、プログラム可能となるソフトウェア更新を有効にする。
【００２４】
本発明は、デバイスの「ユーザ」の活動にも関わらず、「アクティブ」状態にあり続けるために、先に展開したソフトウェアのための能力を改良する。本発明の状況においては、「アクティブ」は、それ自身をロードし、ある実施例では、例えば、ハードドライブをフォーマットする低レベルコマンド、ＯＳの再インストール、イメージユーティリティを用いたハードドライブの再イメージ化、ハードドライブの交換を含む「ユーザ」活動の広い範囲においてエージェントの全機能を再構築する特有の能力を参照する。「ユーザ」は、これらの活動を実行する個人として参照され、認証された能力、又は、非認証された能力で行動する。エージェントを取り除くこれらの活動は、意図的あるいは偶然であるかもしれない。
【００２５】
本発明は、エージェント（例えば、コンピュータ資源のライフの終わりで）エージェントを合法的に無効にすることができる一方で、ソフトウェアエージェントの偶然の削除から認証ユーザを守る。本発明は、非認証ユーザによるソフトウェアエージェントの削除から保護する。本発明の永続性の属性は、資産保護、データ及びネットワークセキュリティ、ＩＴ資産管理、ソフトウェア展開、他のタイプのアプリケーションにおいて価値を有する。セキュア、内密なデバイス追跡ソフトウェアアプリケーションという状況において、本発明は、盗難という行動にもかかわらず、価値のある資産の盗難を、隠すことを極めて難しくする。加えて、ソフトウェアエージェントの永続性という性質は、エージェントが偶然でも削除出来ないという信頼を提供するので、個人情報に平和をもたらす。セキュア資産管理アプリケーションという環境で、そのライフサイクル全体を通して、資産を追跡する連続性を保障するので、本発明はさらなる価値を有する。今日、ＩＴ管理者のための挑戦すべき鍵は、ライフサイクル全体を通して資産を追跡する能力である。ライフサイクルの間に、デバイスあるユーザから別なユーザへ頻繁に移転され、その間に、デバイスは、再イメージされ、ＯＳを再インストールされ、資産の追跡を困難にするようなメンテナンス手続が課せられるが、本発明によりそれらは容易に行われる。資産追跡サービスに加えて、永続性及び拡張性エージェントのよって、他のサービスが可能になり、サポートされ、及び／又は提供される。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例による資産追跡が実行されるネットワークを有する典型的通信リンクを表す概略図である。
【図２】本発明の一実施例による永続性エージェントを含むＢＩＯＳに対するＰＣＩオプションＲＯＭの取り付けを表す概略図である。
【図３】本発明の一実施例によるＰＣＩオプションＲＯＭの中にある永続性エージェントのモジュールコンポーネントを表す概略図である。
【図４】本発明の一実施例によるオプションＲＯＭ装填ルーチンを表す概略フロー図である。
【図５】本発明の一実施例による永続性エージェントのＣＬＭにより実行されるルーチンを表す概略フロー図である。
【図６ａ】本発明の一実施例によるＣＬＭのインタラプト・ハンドラにより実行されるルーチンを表す概略フロー図である。
【図６ｂ】本発明の一実施例によるＣＬＭのインタラプト・ハンドラにより実行されるルーチンを表す概略フロー図である。
【図７】本発明の一実施例による永続性エージェントのＡＩＭによって実行されるルーチンを表す概略フロー図である。
【図８】本発明の一実施例による永続性エージェントのＣＤＡのインストーラモードルーチンを表す概略フロー図である。
【図９】本発明の一実施例によるＣＤＡのサービスモードルーチンを表す概略フロー図である。
【図１０】本発明の一実施例によるアプリケーションモードでのＣＤＡの概略図である。
【図１１】本発明の一実施例によるフラッシュイメージ管理の概略図である。
【図１２】本発明の一実施例によるホスト保護エリアイメージ管理の概略図である。
【図１３】本発明の一実施例によるパーティションギャップイメージ管理の概略図である。
【図１４】本発明の一実施例による永続性エージェント及びリモートサーバ間の通信セッションの概略図である。
【発明を実施するための形態】
【００２７】
好ましい使用はもちろんのこと、本発明の本質及び利点のより十分な理解のために、添付される図面と共に読まれる次の詳細な記述が参照されるべきである。図面では、参照番号は、図面全体を通して類似又は同じ部分を指定する。
【００２８】
本記述は、本発明を実行するための現在最も良く考えて記載されたものである。この記述は、本発明の一般的な原則を説明するためのものであり、本発明を制限する意味で理解されるものでは無い。本発明の範囲は、添付された請求項を参照して最も良く判断される。本発明の基礎をなす原則の理解から明白であるように、本発明は、本発明の範囲及び精神から離れることなく、様々な実施例の中に実用性を見つけることができる。本発明の永続性エージェントの構成を説明するために、エージェントや、追跡エージェントにより提供されるサービスの１つとしての資産追跡、及び、エージェントにより提供される別な例としてのデータ削除を参照する。本発明の範囲及び精神から放れることなく、エージェントは、ソフトウェア展開、更新などの他のサービスのために使用されることが理解される。
【００２９】
下記に示す詳細な説明は、主として、本発明の方法、プロセス、操作の象徴的な表現、機能及び構成という用語で、表される。これらの方法記載及び表現は、当業者が最も効果的に、他の分野の当業者にその内容を最も効果的に伝えるように使用される手段である。ソフトウェアを実装する方法又はプロセスは、ここにおいて、一般に、望ましい結果に導く自己矛盾の無い連続的なステップと考えられる。これらのステップは、物理量の物理的な操作を要求する。しかし必ずしも必要では無いが、これらの量は、しばしば、格納、転送、結合、及び他の操作を可能にする電気的又は磁気的信号の形をとる。
【００３０】
追跡システム外観
資産追跡機能は、本発明の永続性エージェントによって可能、サポート、及び／又は、提供されるサービスの例である。図１を参照すると、本発明の実施例による資産追跡システムは、クライアント・サーバアーキテクチャを含み、そしてそれは、次の主要なコンポーネントを有する。
【００３１】
（ａ）表される電子デバイスのいずれか１つを構成し、かつ、エージェントが実装されるクライアントデバイスＡ。そのエージェントソフトウェアは、資産、位置、及び他の情報を報告するためのクライアントデバイスであり、かつ、望ましい機能をサポート及び実行するためにそのエージェントをプログラムするためにリモートサーバからの命令を受信するためのクライアントデバイス上で実行する。本発明は、突発的又は計画的な削除に対してより永続性のあるエージェントソフトウェアの能力、及び、監視サーバからのクライアントのプログラマビリティを提供する。
【００３２】
（ｂ）切替通信ネットワーク、インターネット、プライベート及びパブリックイントラネット、ラジオネットワーク、衛星ネットワーク、ケーブルネットワークを含む情報交換ネットワークのような通信リンクＢ。
【００３３】
（ｃ）クライアントデバイスＡとホスト監視システムＣとの間の通信を監視するホスト監視サーバ３を含むホスト監視システムＣ。そしてそれは、クライアントデバイスからのクライアントデバイス記録情報によって定期的に接触される。その監視サーバは、クライアントが実行すべきアクションは何か、収集すべきデータは何であるかを含む何のアクションを実行するかに関するクライアントへの命令や、次のスケジュールされたコールタイムをクライアントに提供もする。クライアントデバイスは、通信リンクＢ（例えば、ダイヤルアップ電話通信又はＩＰ接続）を介して監視サーバに接触する。監視サーバは、インターネット上に提供されたサービス、又は、企業イントラネット上の顧客所有サーバとして、機能を実行することもできる。ホスト監視システムＣは、報告及び管理者ポータルを含み、そしてそれは、顧客、管理者、及び、データを見たり、監視サーバやクライアントデバイスの機能を監視する資産追跡サービスプロバイダ機能を有する。ホスト監視サーバは、顧客に、及び、多くの通信手段を介して資産監視の状況に関する指定代理人及び法執行代理機関を知らせる。これらのコンポーネントの各々についてさらに以下に詳述する。
【００３４】
図１を参照すると、本発明による永続性ソフトウェアエージェントを実装する役に立つクライアントデバイスＡは、制限はされないが、一般的又は明確な目的のデジタル処理、情報処理、及び／又は、コンピューティング装置を含み、そしてそれは、スタンドアローンデバイス、又はより大きなシステム（例えば大容量記憶装置）のコンポーネント、持ち運び可能で、携帯可能で、又は固定型であっても良い。異なるタイプのクライアントデバイスは、本発明のソフトウェアエージェントアプリケーションと共に実装される。例えば、本発明のソフトウェアエージェントアプリケーションは、デスクトップクライアントコンピューティングデバイス、ポータブルコンピューティングデバイス（例えば、ラップトップ、ノートブックコンピュータ）、携帯可能デバイス（例えば、携帯電話、ＰＤＡｓ（携帯情報端末）、パーソナル電子機器等）に適用しても良く、そしてそれは、下記でさらに説明するように、外部サーバに通信することが可能である。クライアントデバイスに在住するオペレーティングシステムに加えて、クライアントデバイスは、選択的に操作可能で、プログラムにより開始され又は設定され、ルーチン及び／又は連続した命令及び／又はデバイスに格納されるロジックであっても良い。つまり、ここに記載され示唆される方法の使用は、特定の処理設定に制限されるものでは無い。
【００３５】
本発明の原理、構成、及び機能の理解を説明するために、それらは、説明的な実施例において、その展開及び実施を参照して説明される。例示及び非制限の方法で、本発明は、インターネットの状況に関連して展開及び実装例を参照して、クライアントデバイスＡ（コンピュータＡ１は、概念的にデスクトップデバイスとして表されるが、それよりむしろ、携帯コンピュータデバイスを有する）として、ラップトップ又はノートブックコンピュータを参照して記載される。現在存在する将来のグローバルネットワークに対する本発明の応用は、ここに意図されている。さらに、本発明のインターネットの形態は、クライアントコンピュータＡ１に関して記載及び説明されるが、インターネットへの応用は、本発明の範囲及び精神から放れることなく、他のクライアントデバイスに徐々に適用可能である。
【００３６】
図１は、情報交換ネットワークの形式で、通信リンクＢの概念的表現である。そこで、本発明は、資産追跡のために利用される。本発明により、資産追跡エージェントによりアクセスされる情報交換ネットワークは、パブリック及びプライベートコンピュータネットワーク（例えば、インターネット、イントラネット、ＷＡＮ、ＬＡＮ等）、付加価値ネットワーク、通信ネットワーク（例えば、有線又は無線ネットワーク）、ブロードキャストネットワーク、ケーブルネットワーク、ラジオネットワーク、そのようなネットワークの同種又は異種の組み合わせのような、分散情報交換ネットワークを、制限はされないが、有する。当業者であれば正等に評価するように、特定の目的のために最も効果的な記述により、ネットワークは、ハードウェア及びソフトウェアの両方を含み、どちらか、又は、両方として考えられる。例えば、ネットワークは、通信設備により相互接続されるハードウェア・ノードのセットとして、又は、通信設備として、又は、そのノード有り又はノード無しの通信設備として記載される。ハードウェア、ファームウェア、ソフトウェアとの間の境界は、常に明確ではないということがさらに理解され、そのようなネットワーク及び通信設備、及び、永続性エージェント技術プラットフォームのコンポーネントは、ソフトウェア、ファームウェア及びハードウェア形態のように当業者には理解されるだろう。
【００３７】
インターネットは、コンピュータネットワークを含む情報交換ネットワークの例であり、そこで、本発明は実施される。当業者であれば明白であるので、インターネットネットワーク（サーバ、ルータ、ゲートウェイのような）を有する様々なハードウェア及びソフトウェアコンポーネントは、示されていない。さらに、ユーザ／クライアントデバイス及びサーバによるインターネットへのアクセスは、同軸ケーブル、電話線、無線ＲＦリンクのような適切な通信媒体Ｌ、そこで実装されるブラウザのようなツールを介してなされることは、理解されるだろう。サーバ及びクライアント間の通信は、確立したプロトコルにより生じる。下記に示されるように、本発明の永続性資産追跡エージェントは、クライアントの１つの中に、又は、クライアントの１つとして設定され、それは、情報交換ネットワーク上を越え、サーバの１つと通信する。この発明は、他の既存の技術と連結して働き、そしてその他の技術は、本発明を判りにくくなることを避け、当業者には明らかなのでここでは詳述しない。特に、例えば、方法は、今のところ、インターネット、ウェブベースツール、関連方法、及びプロトコルを含んで存在する。
【００３８】
図１を参照すると、ホスト監視システムＣは、通信リンクＢの１つ以上（並列又は同時）を介して、エージェントをインストールしたクライアントデバイスＡでデータを交換するように設定されるコンピュータ（例えば、サーバ３）である。ホスト監視システムＣは、外部ユーザアクセス（Ｃ１）を識別し、及び、フィルタリングするルーチンを含む。ホスト監視システムＣは、さらに、報告及び監視ポータルを介して、所有者又は追跡デバイスＡ（例えば、ネットワーク位置情報）に関連する情報に関する追跡クライアントデバイスＡの代理人と共に直接的又は間接的に通信する。例えば、ホスト監視システムＣは、電子メール、ファックス、ページング、電話などで、追跡デバイスの所有者、所有者の指定代理人、企業指定部門又は代理人、配置された監視サービスステーション、法執行機関などと通信する。あるいは、ホスト監視システムＣは、それ自身が、配置された監視サービスステーション、法執行機関となっても良い。ホスト監視システムＣ及び／又は下流の目的位置（例えば、監視サービスステーション）は、追跡された資産の在庫リスト、又は、追跡された資産の紛失／盗難状況を維持する。図１では、ただ１つのホスト監視システムＣが示されるが、たくさんのホスト監視システムＣが、例えば、異なる地理的領域において、通信ネットワークを横断して分散される。
【００３９】
エージェントの重要な機能の一つは、その関係するクライアントデバイスＡに関連する識別、位置、及び／又は、他の情報を報告するために、ホスト監視システムＣに接触することである。本発明の一実施例によれば、各クライアントデバイスＡは、独自の識別に関係しており、その独自の識別は、ホスト監視システムＣへクライアントデバイスＡから転送される情報の一部であっても良い。独自識別は、電子シリアルナンバ（ＥＳＮ）、メディアアクセスコントロール（ＭＡＣ）ナンバ、インターネットホストネーム／ＩＰアドレス、所有者／ユーザ特定識別、クライアントデバイスの識別を表し、識別し、認める他の数字、英字、又は英数字情報の形式であっても良く、さらに、エージェント及びその識別の実際又は架空の地理的位置の決定又は確認のためのベースを表す日付及び時間のような情報の形式であっても良い。
【００４０】
資産を追跡し、及び／又は、紛失又は盗難された紛失デバイスＡを回収するために、ステルスエージェントを用いる一般的な概念は、本発明の出願人であるアブソリュートソフトウェアコーポレイションの有する特許に記載される。エージェントは、ホスト監視システムＣをコールするために、適切な時間を決定しなければならない。いったん、エージェントがインストールされ、周期的に（例えば、時間Ｎ）に実行し、又は、特定時間経過後に（例えば、システムから、又は、ユーザログオンから）、又は、デバイスシステムブート後に、ある所与の状況の発生後すぐに、又は、ハードウェア再設定のようなある内部又は外部イベントによるトリガーされ、通信プロセスを開始するためのユーザによる介入無しで、通信リンクＢを介してその識別及び／又は位置を、ホスト監視システムＣに報告するということをここで手短にのべることで十分である。エージェントは、さらに、２つ以上の利用可能な通信リンクＢを介して、その識別と位置を報告する。エージェントの位置は、したがって追跡されたデバイスであり、例えば、インターネットを介したクライアントデバイスＡとホスト監視システムＣとの間の通信を可能にするように使用される全てのＩＰルートのリストを獲得するための探索経路ルーチンによって決定される。
【００４１】
監視システムＣへ転送される位置及び資産管理データの全ては、中央レポジトリで維持され、セキュアウェブベース又はネットワークベースコンソールを介して認証された管理者によって、７日間２４時間アクセスされ得る。ある実施例では、エージェントが位置及び資産データを転送するとき、監視システムＣは、タスクの次のセットのための命令、及び、次のスケジュールされたコールタイム及び日付をエージェントに対して送り、及び、プログラムする。監視システムＣは、各コンピュータ（Ｃ２）上の現状及び精度ある監査の跡を提供して、全てのエージェントの送信を記録する。包括的コンピュータ資産追跡及び在庫解決は、ＩＰ又はダイヤルアップを介して遠隔から接続する遠隔及びモバイルシステムはもちろんのこと、企業ネットワークに局所的に接続されるシステムに関するこの情報も捕獲する。加えて、情報は、資産が提供される最新の図であることを確実にするために、規則的に捕獲される必要がある。
【００４２】
さらに後述するように、追跡エージェントは、不正改変に対する耐性と共に永続的であり、エージェントは、否認証ユーザに対して透明であり続けるように設定される。ユーザに対して隠されているために、エージェントは、インタフェースすることが望まれないなら、いかなる起動中のアプリケーションにも干渉しない。本発明による新規な構成、機能、及び操作は、さらに十分に後述される。
【００４３】
永続性エージェントプラットフォーム・アーキテクチャーの外観
ＩＴ管理者は、コンピュータ全体のライフサイクルの間中一貫して全てのコンピュータ資産を追跡する能力を要求する。これは、ＬＡＮの外側で作動するリモート及びモバイルコンピュータを含む。資産追跡エージェントは、コンピュータのライフサイクルの始めに一度インストールされる必要があり、そのコンピュータがリタイアするまで規則的に通信される必要がある。そのライフサイクルの間に、コンピュータは多くのユーザにより使用され、ハードウェア及びソフトウェアは変化し、これら３つの領域で永続的であって、かつ、変化を報告できる追跡エージェントは、危機的状況にある。本発明による永続性エージェントは、たとえハードドライブが再フォーマット又はＯＳが再インストール又は不正干渉されても、例えば、ＩＭＡＣ及び故障／修理にもかかわらず、ＰＣのライフサイクルの間中、ＰＣ資産の独自の識別、その状況を報告することができる。永続性エージェントは、それを保護するように設計され、非認証の削除攻撃を切り抜けるだろう。この永続性構成は、盗難の場合にＰＣ資産に接続され続け、かつ、精度を確実にしながら資産追跡を保障するために、極めて重要である。
【００４４】
永続性エージェントは、ホストコンピュータに在住する低レベルの検知できないソフトウェアクライアントである。エージェントは、永続性ソフトウェアであり、取り除くことが極めて難しい。エージェントは、たとえエージェントサービスが従来的手段で検出されても、エージェントソフトウェアのインストールを再構築するように機能する自己回復技術を組み込む。エージェントは、ＯＳインストール、ハードドライブフォーマット、及びハードドライブ交換ですら切り抜けるだろう。生存性は、資産追跡及び盗難回収（及びエージェントが可能にし、サポート、及び／又は提供するサービス）における成功に対して極めて重要である。自己回復機能は、ファイルシステム内に在住せず、従来のソフトウェアより検出及び削除がより困難である。ソフトウェアの永続性及び自己回復部分は、その内密性（ステルス性）のため、取り除くことが困難である。ソフトウェアは、通常は、正しいパスワードと共に認証されたＩＴ管理者によって、通常取り除かれる。自己回復特徴は、新しいイメージされたシステムはもちろんのこと、新しくフォーマット及びイメージされたＯＳにおいてエージェントインストールを復旧する機能であるだろう。
【００４５】
本発明の別な形態によれば、エージェントは、最初にプログラムされたものに加えてその機能を拡張するためにプログラム可能である。エージェントはリモートサーバと通信し、そこでリモートサーバが、次のタスクセットのための命令と共にエージェントを提供することによってエージェントを送信しプログラムする。
【００４６】
エージェントは、ハードウェア、ファームウェア、又はいかなる電子デバイスのソフトウェアで実装可能である。あるいは、エージェントは、モデムの中のＤＳＰやコンピュータの中のＣＰＵのような電子部品のように、デバイスの部品で実装可能である。さらに、エージェントの機能性は、パケットデータを送信し及び／又は受信することを通して、通信リンクを確立することが可能ないかなるハードウェアデバイスの回路においても実装可能である。例えば、エージェントは、電子デバイスの（ＲＯＭ  ＢＩＯＳ、ＲＯＭ、フラッシュＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の様な）不揮発性メモリ、ソフトウェアプログラム、マイクロコードプログラム、デジタルシグナルプロセッサ（「ＤＳＰ」）プログラム、又はＯＳの組み込み機能において実施可能である。
【００４７】
本発明の実施例により、永続性追跡エージェント（ここでは、「永続性エージェント」としても参照される）は、ＢＩＯＳ（又は、同等の機能のシステム）で実施される。従来知られているように、ＢＩＯＳは、システム電源起動又は停止において常に実行されるスタートアップコードである。これは、メモリ空間で固定位置から開始するプロセッシングユニット又はソフトウェア（命令）の中で実装されるマイクロコードで有り得る。これらの命令は、電源オンセルフテスト（ＰＯＳＴ）、デバイスに在住するＯＳのブート前に典型的にかつ独立した、ディスクドライバ、キーボード、モニタのようなハードウェアの低レベル制御を処理する。ある実施例において、永続性エージェントは、読み出し専用メモリ（ＲＯＭ）のようなファームウェア、パーソナルコンピュータのようなクライアントデバイスＡで実装される。ＢＩＯＳがチップで実装される場合、それは、ＲＯＭでコード化された命令セットを含む。下記においてＢＩＯＳで参照される全ては、ＲＯＭベースのＢＩＯＳに制限されないことを理解されるだろう。
【００４８】
今日販売されるマザーボード上のＢＩＯＳチップの良く知られたブランドは、フェニックステクノロジー、インテル（登録商標）、ＩＢＭ（登録商標）、アメリカンメガトレンドを含む。あるシステムコンポーネントは、所有のＢＩＯＳチップを有し、そのチップの命令は、開始時にデバイスのメモリの中でも読み出される。ハードディスク制御に関するＢＩＯＳは、例えば、ドライブのトラック及びセクターのテーブルを記憶する。もし、アブソリュートソフトウェアコーポレーションの先の特許で開示されたＢＩＯＳベースのエージェントでないなら、本発明は、エージェントのためのＢＩＯＳベースのローダーの使用を含む改良を表す。ＢＩＯＳベースのローダーは、エージェントコンポーネントをさらに永続的にし、かつ、それゆえに、資産追跡又は他のサービス機能を無効にすることはさらに難しい。ＢＩＯＳベースのローダーは、マシン上のブート順番を反転する必要性を減らし、したがって、製造工程でのステップを取り除く。ＢＩＯＳベースのローダーは、さらに、アンチウイルススキャナー、全ディスク暗号化、及びマスターブートレコード（ＭＢＲ）でＯＳローダーを読み込み又は修正する他のユーティリティのような製品と共に製造的互換性という問題を減少する。本発明の一つの実施例においては、永続性エージェント１０は、図２に表されるように、コアＢＩＯＳフラッシュイメージ１３に取付けられるＰＣＩオプションＲＯＭ１２−周辺機器部品インタフェースバスに基づくオプションＲＯＭのようなオプションＲＯＭに、最初に格納される。（示されていないが）取付けられる追加的オプションＲＯＭもあり、それは、永続性エージェントに関連の無い他の機能をサポートする。永続性エージェント１０は、複数のモジュールを有する。３つの主なモジュールは、図３に表されるように、「コンピュトレース」ローダーモジュール（ＣＬＭ）１４、適合インストールモジュール（ＡＩＭ）１６、及び、通信ドライバエージェント（ＣＤＡ）１８である。
【００４９】
永続性エージェント１０の３つのモジュールを含む小さな（圧縮した約２２Ｋｂである）ＰＣＩオプションＲＯＭ１２は、標準コアフラッシュイメージに結合され、ＢＩＯＳ  ＰＯＳＴの間にＢＩＯＳ及び他のオプションＲＯＭにそって保護されるメモリの中にロードされる。小さなＰＣＩオプションＲＯＭは、ＰＯＳＴにより認識され、ＢＩＯＳ及びＢＩＯＳ  ＰＯＳＴ中の他のオプションＲＯＭとともに読み書きシャドウメモリにロードされる。この構成は、再条件付けされる必要があるコアＢＩＯＳでの開発工数及び多くのインタフェースポイントを最小化する一方、安全性を高める構成を可能にするモジュラーアーキテクチャを提供する。
【００５０】
ＣＬＭは、ＰＣＩ（ＰＣデバイスの場合）、イメージ管理、実行環境機能を組み込む。ＡＩＭを検索し、解凍し、ＰＣＩオプションＲＯＭを最終サイズにサイズ変更し、システムの適切な環境でＡＩＭを実行するＢＩＯＳにインタフェースする責任がある。ＡＩＭは、ハードドライブにアクセスし、アクティブなＯＳを検出し、ミニＣＤＡを発見した設定に適合させる。ミニＣＤＡは、通信ドライバーである。それは、ＨＴＴＰプロトコル、監視サーバに通信するアプリケーションレイヤ、ＯＳにインタフェースするサービスレイヤ、及び、ＡＩＭとインタフェースする適合レイヤのためのサポートを含む。
【００５１】
ミニＣＤＡは、ＯＳがロードされているとき、サービスとして実行するコンピュータのファイルシステムでフルファンクション（全機能）ＣＤＡが利用可能かどうかをチェックする責任を有する。フルファンクションＣＤＡが利用不可の場合、ミニＣＤＡは、監視サーバからフルファンクションＣＤＡのダウンロードを開始する。一旦、フルファンクションＣＤＡが存在するなら、監視サーバ上の新バージョンを頻繁にチェックし、もし可能なら、新バージョンでＣＤＡ自身を置き換えるだろう。
様々なモジュールのこれら及び他の実施例は、下記に十分に論じられる。
【００５２】
ＢＩＯＳ  ＰＯＳＴシーケンス及びオプションＲＯＭロードプロセス
オプションＲＯＭロードプロセスが、図４のフロー図で表される。永続性エージェント１０が展開されるクライアントデバイスＡのブートにおいて、ＢＩＯＳ  ＰＯＳＴプロセスは、セルフテスト及びチップセット構成２１を実行し、マザーボード又は拡張カードに関する機能をサポートするオプションＲＯＭのためにバスが２２でスキャンされるポイントに到達する。このポイントでは、永続性エージェント１０を含むＰＣＩオプションＲＯＭ１２は、２２で小メモリ（例えば、ＲＡＭ）にロードされ、及びその開始ベクター（後述するように、ＣＬＭ１４）は、２３でコールされる。開始ルーチンは、サポートされるべき機能の状態、及び、その最終イメージサイズを決定する。その後に、２５及び２６において、ＢＩＯＳ  ＰＯＳＴプロセスは、オプションＲＯＭスキャンを完了し、機能が存在する各ＲＯＭオプションの最終位置を計算する。各ＰＣＩオプションＲＯＭは、それから、移転され、ＰＣＩオプションＲＯＭ１２を有効にした永続性エージェントを含む、その完成ベクターがコールされる（あるフェニックスＢＩＯＳでは、例えば、ＰＣＩオプションＲＯＭは移転されないが、開始ベクターから戻る前にヘッダーで宣言される最終サイズに適合するように、単にサイズを縮める）。全てのオプションＲＯＭは、移動されるが、ＢＩＯＳメモリは、２７で書き込みプロテクトされる。次に、２８でＯＳがうまく開始されるまでブートデバイスがコールされる。このポイントで、デバイスＯＳ及びエージェントの両方は、同時に実行しているだろう。
【００５３】
ＰＣＩオプションＲＯＭ
Ａ．ローダーモジュールＣＬＭ
ＣＬＭ１４は、ＡＩＭ１６のための仮の実行環境を設定し、ＡＩＭ１６をロードし、解凍し、適切な環境でそれをコールするように設定する責任がある。ＣＬＭ１４の最後の「アクティビティ」は、最小サイズ（２Ｋ）に縮め、ＰＯＳＴへ実行を返すことである。ＣＬＭは、ＡＩＭ１６が見つからず、又は、有効ではないなら、「失敗」するだけである。
【００５４】
ＣＬＭ１４は、ＰＯＳＴへのインタフェースであり、又は、ＰＣＩオプションＲＯＭ１２の「フロントエンド」である。ＰＣＩオプションＲＯＭヘッダは、ＣＬＭ１４の中にあり、かつ、そのエントリポイントは、このヘッダの中の標準にしたがって公表される。ＣＬＭ１４は、ＢＩＯＳ  ＰＯＳＴとの統合のための２つの機能ポイントを提供する。
１．ＲＯＭヘッダ及びＰＣＩオプションＲＯＭヘッダペア
２．割り込みハンドラ
【００５５】
これら及びＰＣＩオプションＲＯＭの様々なコンポネントの他の機能は、ＩＢＭ（登録商標）  ＢＩＯＳ、例えばＩＢＭ（登録商標）モデルＴ４３ノートブックコンピュータに関して、後述されるだろう。
【００５６】
１．ＲＯＭエントリポイント
最初のインタフェースは、ＢＩＯＳによってＰＣＩオプションＲＯＭの数え上げの間に与えられる。このインタフェースは、標準レガシーＲＯＭヘッダ、及び、ＰＣＩオプションＲＯＭヘッダペアである。例えば、フェニックスＢＩＯＳに関して、１９１７ｈのＰＣＩベンダーＩＤ、及びデバイスＩＤ１２３４ｈは、セットになる。上述したように、ＢＩＯＳ  ＰＯＳＴプロセスが、マザーボード上の機能、又は、拡張カードをサポートするＰＣＩオプションＲＯＭをスキャンするとき、ＰＣＩオプションＲＯＭ１２全体は、ロードされ、ＣＬＭ１４の初期化ベクタがコールされる。オプションＲＯＭは、圧縮された「．ＣＯＭ」アプリケーションをロードし、そして、実行する。ＲＯＭエントリポイントは、ＳＴＡＲＴ＿ＳＥＧレベルで定義される。ＳＴＡＲＴ＿ＳＥＧセグメントは、ＲＯＭヘッダ、及び、ＰＣＩオプションＲＯＭヘッダへのそのリンクを含む。オプションＲＯＭは、オプションＲＯＭの中でオフセット３へのＦＡＲ  ＣＡＬＬにより初期化される。ジャンプ命令チェーンは、ここでは、ＯｐｔＲｏｍＰｒｏｃへの制御を通過する。
【００５７】
図５を参照すると、ＰＣＩオプションＲＯＭ  ＣＬＭ１４により始められるルーチン３０は、以下のように要約される。
ａ．３１で、ＢＩＯＳ  ＰＯＳＴメモリマネージャを検索。
ｂ．３２で、制御ＳＴＵＢ＿ＢＬＯＣＫを割り当て（例えば、処理及びアプリケーション実行のため２Ｋ）。
ｃ．３３で、圧縮アプリケーション及びアプリケーションメモリのバックアップのための拡張メモリを割り当て（例えば、６４Ｋ）。
ｄ．３４で、アプリケーションの解凍実行のための通常のメモリでアプリケーションメモリの割り当て（例えば、６４Ｋ）
ｅ．３５で、ディスクサービスが利用可能なら（４０：７５ｈでの総数で決定される。ハードディスクの数）、３６で、アプリケーションを即座に実行し、３９でフリーメモリに進み、４０でオプションＲＯＭをゼロに圧縮する。
ｆ．３７で、ビデオベクタ（ｉｎｔ  １０ｈ）が、ＸＢＤＡ（４０：０Ｅｈ）以下なら、３８で、ＳＴＵＢ＿ＢＬＯＣＫをＩｎｔ  １５ｈにフックし、４０で、オプションＲＯＭをゼロに圧縮する。
ｇ．フックするものが無く、何もすることが無いなら、３９で、フリーメモリを「失敗」にし、４０で、オプションＲＯＭをゼロに圧縮する。
【００５８】
２．割り込みハンドラ
二番目のインタフェースは、割り込みハンドラである。これは、初期化ロード、及び、ＢＩＯＳ  ＰＯＳＴメモリマネージャから割り当てられたメモリからＰＣＩオプションＲＯＭの初期化手続の実行の後に、実行する。このインタフェースは、最初に、ｉｎｔ  １５ｈを実行し、それから、代替トリガを実行する。Ｉｎｔ  １９ｈは、好ましい代替トリガ、及び、その初期設定である。割り込みハンドラは、ＢＩＯＳディスクサービス（ｉｎｔ  １３ｈ）が、まだ、ＰＣＩオプションＲＯＭの開始の間に利用可能でないなら、割り込みハンドラは、ただ起動される。Ｉｎｔ  １９ｈは、好ましいトリガーメソッドである。なぜなら、あるケースでは、最後のＩｎｔ  １５ｈ／ｆｕｎｃ  ９１００ｈの後でＢＩＯＳにより発行されるＩｎｔ  １３ｈが無いからである。物理ドライブ８０ｈによる別な問題は、Ｉｎｔ  １９ｈの少し前まで、Ｉｎｔ  １９ｈで物理ドライブ８０ｈに一致しないということである。ＣｏｍＦｉｌｅＳｔｕｂは、主な割り込みフックエントリポイントを含む。
【００５９】
図６ａ及び６ｂを参照すると、割り込みハンドラにより始められるプロセス４１は、以下のように要約できる。
【００６０】
ａ．４２で、ｉｎｔ  １５がトリガーする毎に、ファンクション９１００ｈ（ハードディスクＩＲＱ完成は、ＩＮＴ  １３ｈが使用されていることを示す）。
ｂ．４３で、ハードディスクデバイスが利用可能かチェック（カウント  ４０：７５ｈ）。
ｃ．ＸＢＤＡ以上のビデオベクタ（４０：０Ｅｈは、ＰＯＳＴのセットアップフェースが完了したことを示す）。
ｄ．４４で、まだ準備できていないなら、チェーンする。
ｅ．４５で、Ｉｎｔ  １５ｈフックを元に戻し、トリガー  Ｉｎｔ  ｘｘｈをフックする（＿ＴＲＩＧＧＥＲ＿ＩＮＴＮＵＭ  ｓｅｔｔｉｎｇ＝Ｉｎｔ  １３ｈ  ／  Ｉｎｔ  １９ｈ）。
ｆ．４６で、次のトリガー  Ｉｎｔ  ｘｘｈ（Ｉｎｔ  １３ｈ  ／  Ｉｎｔ  １９ｈ）で、トリガー  Ｉｎｔ  ｘｘｈ（Ｉｎｔ  １３ｈ  ／  Ｉｎｔ  １９ｈ）を元に戻す。
ｇ．４８で、スタックを切り替える。
ｈ．４９で、拡張メモリＢＡＣＫＵＰ＿ＢＬＯＣＫに、解凍アプリケーションメモリのコピーをバックアップする。
ｉ．５０で、解凍アプリケーションメモリブロックに、圧縮アプリケーションをコピーする。
ｊ．５１で、アプリケーションをコールし、拡張メモリＢＡＣＫＵＰ＿ＢＬＯＣＫから、解凍アプリケーションメモリのコンテンツを元に戻す。
ｋ．５２で、スタックを戻すように切り替える。
ｌ．５３で、阻止されたトリガーＩｎｔ  ｘｘｈコールを完成するようにチェーンする。
【００６１】
Ｂ．エージェントインストールモジュール（ＡＩＭ）
ＡＩＭ１６は、ＣＬＭ１４により設定される拡張コンテキストの下でロードされるように設計される。図７を参照すると、ＡＩＭ１６によって開始されたルーチン５４は、次のステップを含む。実行されると、ＡＩＭ１６は、５５で、アクティブパーティションを見つけるパーティションテーブルをスキャンする。アクティブパーティションでは、５６で、ＯＳシステムディレクトリ、又は、ＯＳシステムディレクトリを示す設定ファイルを探す。そして、ＯＳシステムディレクトリは、５７で、通信ドライバエージェントＣＤＡのインストーラ・モードインスタンスを生成し、インストールする。インストール機構は、各ＯＳで特定され、独特であり、ＡＩＭ１６は、標準ＯＳインストール機構を使用する。
【００６２】
Ｃ．通信ドライバエージェント（ＣＤＡ）
ＣＤＡ１８は、２つの形式、ミニＣＤＡ、フルファンクションＣＤＡで存在する。１つの実施例において、ミニＣＤＡは、ＰＣＩオプションＲＯＭ１２に在住する。ミニＣＤＡの機能は、フルファンクション及び／又は現状のバージョンＣＤＡがインストールされ、かつ、デバイス上で機能しているかどうかを決定することであり、もし無いなら、ホスト監視サーバＣ（図１）からインターネットを介してフルファンクションＣＤＡをロードすることである。フルファンクションＣＤＡは、デバイスとホスト監視サーバＣとの間の全ての通信に責任を有する。
【００６３】
図８を参照すると、ミニＣＤＡは、最初に（ＡＩＭ１６を介して）インストーラモード５８を実行し、そこでは、ミニＣＤＡの全機能は、ＯＳサービスとして登録することである。５９で、エージェントのインストーラモードインスタンスは、その別のインスタンスを生成し、６０で、例えば、２０００／ＸＰ下のサービスマネージャでコピーを登録する。実行ファイルは、それ自身のインストーラコピーを消去し、存在する。フルファンクションＣＤＡは、そのポイントからＣＤＡのノーマル操作を引き継ぐので、フルファンクションＣＤＡは、たった一度、インストーラモードで実行する。
【００６４】
図９を参照すると、ＯＳの次のスタートアップで、ミニＣＤＡのサービスモードインスタンスは、例えば、２０００／ＸＰの下のサービスとして実行される。そのサービスは、６２で、サービスマネージャ環境をセットアップし、適切な時間で（６３で待機した後で）６４で、それ自身のインスタンスを開始する。アプリケーションモードは、ミニＣＤＡの通常モードの操作である。エージェントは、現在サービスモードである。
【００６５】
もし、現状のフルファンクションＣＤＡがデバイスに見つからない場合、ミニＣＤＡアプリケーションは、図１０に示されるように初期設定で例えばＨＴＴＰプロトコルを用いてホスト監視サーバＣとの通信を開始する。他のプロトコルは、付加的モジュールによってサポートされ、ホスト監視サーバＣからエージェントへアップロードされる。ホスト監視サーバＣは、エージェント、格納監視ヒストリ、設定、ソフトウェア更新のような機能を実行する。ホスト監視サーバＣは、フルバージョンＣＤＡをインストールし、起動し、ミニＣＤＡを無効にし（例えば、デバイスのライフの終了時、新バージョンに更新するために自己修復機能を無効化するために）、エージェントを更新し、又は、プラットフォームに要求されるエージェントに設定するために、ミニＣＤＡとのセッションを開始する。本発明の実施例の一つによれば、クライアント装置ＡとサーバＣとの間の通信は、図１０に表される。例えば、ミニＣＤＡが、ＢＩＯＳの識別又はタイプ、又は、デバイスプラットフォームをサーバＣに提供すると、ＢＩＯＳのコピー又はプラットフォーム特有の振るファンクションＣＤＡ又はその更新がデバイスにダウンロードされる。
【００６６】
図１を参照して述べたように、デバイス追跡及び／又は紛失又は盗難デバイスＡを回収するために一般にステルスエージェントを用いるという一般概念は、本発明の出願人であるアブソリュートソフトウェアコーポレーションの有する特許で開示されている。デバイス追跡のアプリケーションレベルの機能性、及び、フルファンクションＣＤＡの通信機能は、本発明の出願人に特許権（そしてその特許は、ここで同一のものとされる）が与えられ、かつ、先に述べられ、及び／又は本発明の権利者によって発展されたアブソリュートトラック資産追跡プロダクトのステルスエージェントの機能に類似している。
【００６７】
一般に、単独で実行し又は他の通信リンク（例えば、ＰＳＴＮ）に基づくアプリケーションであるインターネットアプリケーションの実施例においては、エージェントは、所定の、ランダムな、イベントベース、又は間隔を変えてホストにコールを開始する。本発明の一実施例によれば、「アクティブ」モードにおいて、エージェントは、所定の時間ごとにホストをコールする。エージェントは独自の現状時刻、及び、インターネットホストネームを符号化するための独自のエージェント識別を使用する。ある実施例によれば、エージェントは、それから、符号化されたインターネットホストネームを用いてＤＮＳリクエストを形成する。エージェントは、インターネットを介してホストへこのＤＮＳリクエストを送信する。所定の時間間隔後で、ＤＮＳリクエストをインターネット時間で送信するというエージェントの試みが経過するなら、エージェントは、所定の時間間隔でスリープ状態になり、それから、コールを再開する。そのコールが、別なエラー（例えば、インターネットへの通信を可能にするＷｉｎｓｏｃｋ機能が無い、及び／又は、ＴＣＰ／ＩＰ通信のコンピュータ設定の失敗）のために失敗するなら、エージェントは数時間サイクルで繰り返す。このように、エージェントは、本質的に、インターネット接続の存在をチェックする。
【００６８】
そのＤＮＳリクエストを送信した後で、エージェントは応答を待つ。ホストから有効な応答を受けるとすぐに、ＩＰアドレスがその応答から抽出され、参照したＩＰアドレスに対して比較される。例えば、参照ＩＰアドレスが、“２０４．１７４．１０．１”と設定されるとする。もし、抽出されたＩＰアドレスが“２０４．１７４．１０．１”に等しいなら、エージェントのモードは、インターネット側で「アクティブ」から「アラート」へ変更される。例えば、ホスト又はホストでのオペレータが、エージェント識別が、ホストで格納され、かつ、報告された紛失又は盗難コンピュータのリストのエンティティの１つとマッチするということを認識するなら、ホストがこのＩＰアドレスを送信する。もし、ホスト応答から抽出されたＩＰアドレスが、「２０４．１７４．１０．１」と等しくないなら、エージェントはアクティブモードであり続け、さらに４時間後にはホストにコールしない。しかし、エージェントがインターネットアプリケーションで「アラート」モードにならないなら、エージェントは、ホストへクライアントコンピュータを接続するために使用されるインターネット通信リンクにホストを提供する探索経路ルーチンを開始する。これらのインターネット通信リンクは、クライアントコンピュータを追跡するホストシステムを支援するだろう。ＤＮＳクエリのソースのＩＰアドレスは、ＤＮＳクエリ内でホストに送られる。しかし、クエリのソースが「プロキシ」サーバを介して転送されるなら、そのとき、クライアントコンピュータのＩＰアドレス（そしてそれは、内部ＮＩＣによって割り当てられてないので、独自でないかもしれない）は、クライアントコンピュータの位置を追跡するのに効率的でないかもしれない。そのようなシナリオにおいて、クライアントとホストとの間の通信を可能にするためにアクセスされる他のＩＰルートのアドレスを決定する必要がある。アクセスされるべきこれらのアドレス及び時間は、そのクライアントのインターネットアクセスストーリーを記録するプロキシサーバの内部ログと比較される。このようにして、クライアントは、独自に識別され、検索される。あるいは、インターネットアプリケーションを、「アラート」モードへの移行は、他の利用可能な通信アプリケーションを「アラート」モードへの移動をトリガーする状況である。
【００６９】
ＣＤＡ−サーバ通信
Ａ．拡張プロトコル
ＢＩＯＳの中に永続性エージョンをうまく展開することは、例えば、通信プロトコルの中に予定されている拡張性を頻繁に使用することである。この拡張性無しで、エージェントは、機能性を加え又は変更するためにより大きく、かつ、柔軟な更新を要求するかもしれない。そのような更新は、ＢＩＯＳがそのプラットフォームのフラッシュＥＥＰＲＯＭの中にプログラムされており、かつ、特別なツールが（頻繁にユーザーインタラクションを要求して）ＢＩＯＳを更新するのに使用されなければならないなら、実践的でもないし、経済的でもない。さらに、その完全性が、コンピュータの操作で極めて重要なので、徹底的なテストがＢＩＯＳに関するＯＥＭにおって実行される。
【００７０】
拡張プロトコルのキー要素は、
１）エージェントのメモリ空間を読み書きする方法
２）メモリ再配置する方法
３）メモリをフリーにする方法
４）外部モジュールをロードする方法
５）プロシージャアドレスを決定する方法
６）プロシージャをコールする方法
【００７１】
エージェントのプロトコルは、これらの機構を提供するように設計されている。
リードパケットのフォーマットは、｜ＡＤＤＲＥＳＳ｜ＮＵＭＢＥＲ＿ＯＦ＿ＢＹＴＥＳ
ライトパケットのフォーマットは、｜ＡＤＤＲＥＳＳ｜ＮＵＭＢＥＲ＿ＯＦ＿ＢＹＴＥＳ｜ＤＡＴＡ．．．
通信プロトコルは、ＤＡＴＡがパケット内に含まれていないということを判断することでリードパケットを区別する。ＤＡＴＡがあれば、そのパケットは、ライトパケットである。このプロトコルに基づくアドレスは、拡張設計に基づいている。
【００７２】
本発明の一実施例により、拡張プロトコルに基づいて、通信リンクＢを介してクライアントデバイスＡとサーバＣとの間の通信セッションにおけるステップの一般的な順序は、図１４に概略的に表されている。通信セッションにより、処理される特定のトランザクションは、さらに以下に開示される。
【００７３】
典型的なセッションは、次のような通信シーケンスで始まる。
１）クライアントが接続する。
２）サーバが、アドレス0xffffffff|0xffffffff|4から特別な読み込みで応答する。
３）クライアントが、そのセッション処理のアドレスで応答する。
【００７４】
処理構造は、クライアントのバージョン、サポートＯＳのバージョン、及びコマンドパケットのような重要な情報を含む。クライアントは、コマンドパケットが書き込まれたとき、「書き込み」を、特別なパケット「特別（Special）」として翻訳し、CommandPacketProcessor()ファンクションをコールする。CommandPacketProcessor()ファンクションは、引数として、ファンクションコード、パラメータアドレス、パラメータ数、結果アドレスをとる。実行されなければならない関数の最低数のセットは、以下のものである。
CMD_FUNC_CALL（Ｃ関数をコール）
CMD_FUNC_STDCALL（STDCALLファンクションをコール）
CMD_GETMH（モジュールハンドルをゲット）
CMD_GETPA（プロシージャアドレスをゲット）
CMD_ALLOC（メモリを割り当て）
CMD_FREE（メモリをフリーにする）
【００７５】
実行される他の関数コードは、効率を良くするためにコマンドパケットをいっしょにチェーンことである。
CMD_ENDC（チェーン終了）
CMD_IF（通常のブランチ）
CMD_GOTO（通常ではないブランチ）
【００７６】
このコマンドの少ないライブラリは、いかなる管理タスクをも成し遂げるために、パケットの中でいっしょにつながれる。重要な管理タスクは以下のものである。
１）CreateFile（ファイル作成）。
２）ファンクションのライブラリ、又は、拡張用としてロード。
３）ＯＳで、又は、作成したファイルからプロシージャをコール。
４）エージェントのコンテキストでメモリを割り当て、及び、空にする。
【００７７】
Ｂ．トランザクション
次のセクションは、エージェントとリモート（例えば、監視）サーバ（ＣＴＳＲＶとしても知られている）との間の通信を記述する。記述された各アイテムは、１つの（クライアントとサーバとの間のメッセージ組である）トランザクションを表す。幾つかのトランザクションは、全てのエージェントコールで生じ、他のトランザクションは、実施されるサービスに依存し、メンテナンス又は手動修正により設定されるフラグの結果として１つのコールでなされる。下記は、サーバとエージェントとの間の典型的な通信セッションを示す表である。
【００７８】
【表１】
0005475743.tif 000002
【００７９】
基本的資産追跡を有するコール（クライアントが監視サービスプロバイダを有する追跡サービスに同意した場合―全てのコール）
（資産追跡／監視サービスへの加入者のための）ＡＴ１データ が、検索される。これは、ＡＴ２ＤＬＬにより集められたデータのサブセットである。ＡＴ１、又は、ＡＴ２ＤＬＬのどちらかが、クライアント上で実行され、決して両方が実行されることは無い。
【００８０】
【表２】
0005475743.tif 000003
【００８１】
高度な資産追跡を有するコール（クライアントがアブソリュートトラック又はコンピュトレース製品を購入した場合―全てのコール）
（例えば、アブソリュートトラック及びコンピュトレースの顧客のために）ＡＴIIデータは、検索される。これは、ＡＴ１ＤＬＬによって集められたデータの特別なセットである。ＡＴ１、又は、ＡＴ２ＤＬＬのどちらかが、クライアント上で実行され、決して両方が実行されることは無い。
【００８２】
【表３】
0005475743.tif 000004
【００８３】
【表４】
0005475743.tif 000005
【００８４】
基本コール及びリモートエージェントバージョンの更新（技術サポートアクションに基づく一度限りのタスク）
クライアントエージェントのバージョンをチェックし、サーバ上のバージョンと比較する。クライアントバージョンが低い場合、リモート更新を実行する。
【００８５】
【表５】
0005475743.tif 000006
【００８６】
基本コール及び製造元、モデル及びシリアルナンバの検索（技術サポートアクションに基づく一度限りのタスク）
ファンクションが、クライアントから製造元、モデル及びシリアルナンバを検索し、ブート順番を変更する。
【００８７】
【表６】
0005475743.tif 000007
【００８８】
Ｃ．アプリケーションモジュールの起動プロセス
起動プロセスは、アプリケーションエージェント識別を、顧客アカウントに結びつけ、永続性エージェントモードをインストールする。このプロセスは以下のように記載される。
アプリケーションエージェントが接続する。
サーバが、コンピュータを識別する在庫ＤＬＬを送信するプロトコルにおける拡張特性を使用する。このＤＬＬは、ＢＩＯＳ、筐体、ハードドライブシリアル番号のような属性を集める。
在庫記録は、サーバ上に格納され、アプリケーションエージェントから読み出される顧客アカウントに接続される。
独自の識別番号（電子シリアル番号）は、この在庫記録に関係するデバイスに割り当てられる。
【００８９】
典型的な在庫番号は、下記のように表される。
【００９０】
【表７】
0005475743.tif 000008
【００９１】
Ｄ．永続性モジュールの再起動プロセス
一度、永続性エージェントモジュールが起動されると、次のステップが、アプリケーションエージェントを再インストール始め、及び、設定を元に戻す。
永続性モジュールエージェントは、監視サーバをコールする（ＣＴＳＲＶ）。
監視サーバは、そのコンピュータを識別する在庫ＤＬＬを送信するプロトコルの中で拡張特性を使用する。このＤＬＬは、ＢＩＯＳ、筐体、ハードドライブシリアル番号のような属性を集め、そして、先に格納されたものと比較する。
最初の起動で格納された在庫記録は、見つかり、そして、このデバイスの在庫に関係した以前のＥＳＮは、再度割り当てられる。アプリケーションエージェントは、ダウンロードされ、インストールされ、そのアプリケーションエージェントは、正常にコールする。
上述のプロセスは、ＢＩＯＳ及びソフトウェア永続性（前述を参照）の両方に適用される。即ち、永続性モジュールがどこにあるかに関係なく、検索される。
【００９２】
データ削除
データ削除は、エージェントによって有効化され、サポートされ、及び／又は提供されるもう１つの例である。上述のように、ＣＤＡの強化された生存性は、資産の物理的な位置を追跡することを向上させる。例え、資産の位置が定められるときでさえ、追跡されたデバイスの物理的な回収は、アプリケーションのローカルの法律、警察の執行力、所有者の証明の負担のために、必ずしも実行可能ではないということを認識すべきである。そのような状況で、ＣＤＡの拡張プロトコルに基づいてプログラム可能な能力は、デバイス上の秘密で機密のユーザデータを安全に守る手段に、よく変更する。例えば、クライアントデバイスのハードドライブに格納されるデータファイルに規定されたユーザ、ユーザプロファイル、又は、情報が規定された他のユーザは、監視サーバからの制御により削除可能である。データ削除は、選択されたデータアイテムに関して実行され、又は、ＯＳを含む完全な記憶媒体装置が消去される。
【００９３】
フルファクションＣＤＡは、監視サーバに接触するとき、デバイスの識別が検証される。そのデバイスがデータ削除アクションのためにマークされるなら、上述した拡張通信プロトコルが、ＣＤＡのデータ削除サブファンクションをトリガーするために使用される。データ削除サブファンクションは、完璧なデータ構造を削除するワイルドカード変数と共に、削除されるべきデータを規定するパラメータでコールされる。ＣＤＡサブファンクションは、復元させないように米国国防総省が推薦するデータ削除のためのアルゴリズムを使用しても良い（例えば、米国国防総省標準５２２０．２２−Ｍ掃除及び浄化マトリックス）。ＣＤＡサブファンクションは、データを削除する組み込みのＯＳサポートで利用可能である。これらのデータ削除アルゴリズム及び機構は、当業者には良く知られており、かつ、実際の削除機構は、ここで記述されたシステム能力を変更しない。
【００９４】
データ削除アプリケーションは、ハードドライブ上でアプリケーション及びデータを削除し、例えば、それから、監視サーバにコールバックし、そこで、監視サーバは、データ削除アプリケーションの成功を詳細に述べるレポートをアップロードするだろう。データ削除アプリケーションが、ＯＳの削除を除外するように指示したなら、データ削除アプリケーションは、機能するエージェント及びＯＳに要求されるものを除いて、全てのデータ及びアプリケーションファイルを削除するだろう。削除プロセスの最後で、エージェントは、監視サーバにステータスレポートを戻すようにする。コンピュータは、削除プロセスの後で、通常の状態に戻っても良い。
【００９５】
データ削除がＯＳを削除するように指示した場合、最終的にクライアントデバイスＡを機能しないようにするＯＳファイルを削除しようとする。最初のパスでは、削除プロセスは、機能するエージェント及びＯＳに必要とされるものを除いて、全てのデータ及びアプリケーションファイルを削除する。データ削除プロセスの終わりで、エージェントは、監視サーバにステータスレポートを返そうとする。データ削除アプリケーションは、それから、ＰＣ上のファイルの残り物を削除し続ける。これは、ＰＣを使用不可にするものである。一旦、全データ削除プロセスが完了したら、エージェントは、監視サーバをコールすることは出来ないだろう。エージェントが、ＯＳを再インストールしたなら、エージェントはそれを独自の機能で回復する。
【００９６】
いずれの構成でも、データ削除サーバは、次の構成を有する。
・ファイルに０及び１のパターンを３回書き込む
・ファイルにランダムデータを書き込む
・ファイル属性を「ディレクトリ」に変更する
・ファイルデータ／時間を固定値に変更する
・ファイルサイズを「０」に設定する
・ファイル名称を不規則に生成されたファイル名称に変更する
・ディレクトリから新しいファイル名称を取り除く
【００９７】
可能なだけ内密に作動するという目的を維持するとき、データ削除アプリケーションは、隠蔽される。データ削除プロセス中に起動するサービスは、バックグラウンドで起動するＯＳヘルプタスクとして削除プロセスを隠すために、「ＨＬＰＭＧＲ．ＥＸＥ」とタイトル付けされる。削除が終了する前に、ユーザがプロセスを終了するなら、エージェントが監視サーバに次のコールをした時点で、アプリケーションは、捨てられた削除プロセスを再開することが可能である。データ削除で有効になる全てのクライアントデバイスのために、エージェントコールバック間隔は、モデム及びＩＰコールの両方のために所与の値にセットされる。
【００９８】
完成するデータ削除プロセスに要求される時間は、プロセッサの速度、ハードドライブのサイズ、削除すべきデータの量、クライアントデバイスですでに生じているアクティビティの数を含む変数の数に依存する。データ削除プロセスは、完成するために数分から１．５時間以上の間に生じることが期待される。
【００９９】
上手く削除された事に関しても出された報告は、次の情報を含む。
・データ削除アプリケーションがダウンロードされ、かつ、実行された確認
・削除されたリストファイル
・ハードドライブ空間の変更（データはＰＣから収集されるので、この情報が、資産追跡サービスが有効であるときのみこの情報は利用可能である）。この情報は、データ削除プロセスの成功に関するユーザに提供される。
【０１００】
拡張プロトコルの追加アプリケーション
上述及び後述するように、フルファンクションＣＤＡ及びミニＣＤＡ（例えば、ＢＩＯＳ及びソフトウェア永続性実施例）は、監視サーバ上で利用可能になるデータバージョンまで最新で現状を維持するために拡張プロトコルを使用する。それは、この能力を、他の資産追跡拡張を現状のバージョンに更新するために使用する。拡張プロトコルに含まれる一般的なサブファンクションは、上述した資産追跡データ削除に加えて、複数の機能を達成するために、包括的であり、かつ、柔軟性がある。拡張プロトコルの別なアプリケーションの例は、監視サーバからアプリケーションをダウンロードし、開始することである。実行ファイルは、メモリにダウンロード可能であり、それから、実行可能である。あるいは、インストーラが監視サーバからダウンロードされ、アプリケーションをインストールし、又は、既存のアプリケーションを更新するために起動される。
【０１０１】
モジュールの代替実施例
この発明は、限定されないが、次の要素に基づく特定の環境に適合するために永続性エージェントの様々な実施例で実施される。
（ａ）異なるデバイス（例えば、ＰＣ）の製造会社から異なるＢＩＯＳ実装
（ｂ）ＢＩＯＳを有する異なるインタフェース要求
（ｃ）異なるデバイス製造会社から、又は、異なるデバイスモデル上で利用可能となる様々なフラッシュメモリ空間
（ｄ）ＢＩＯＳＰＣＩオプションＲＯＭ列挙フック無しで動作可能
【０１０２】
これらの要素に適合するために、ＣＬＭは、ＰＣＩオプションＲＯＭとしてフォーマットされ、ＡＩＭ及びＣＤＡは、分割して、又はＣＬＭと連結して格納される。ＣＬＭは、ＰＯＳＴサイクルの終わりに小さな断片に縮められる。デバイスがＰＣＩオプションＲＯＭに列挙されないＢＩＯＳを有するなら、ＣＬＭは、パーティションギャップに存在し、代わりのマスターブートレコード（ＭＢＲ）を使用する。永続性エージェントモジュールの別な実施例が、より詳細に後述される。
【０１０３】
Ａ．フラッシュ常駐
本発明のフラッシュ常駐実施例において、ＣＬＭ、ＡＩＭ、及びミニＣＤＡは、ＢＩＯＳフラッシュイメージの中に全てロードされる。このアプローチは、ＰＣＩオプションＲＯＭがＢＩＯＳフラッシュイメージからロードされるＢＩＯＳで使用されるこの平均的な既存プロセスを利用する。付加的モジュール（ＡＩＭ及びミニＣＤＡ）は、図３のケースにあるように、ＰＣＩオプションＲＯＭの中のＣＬＭに結びつくか、フラッシュの中で分割して格納される。
【０１０４】
ＡＩＭ及びミニＣＤＡがＣＬＭに結び付けられるなら、１８〜２０ＫＢのＰＣＩオプションＲＯＭは、上限値のシャドウメモリの中にＰＯＳＴでロードされ、ＡＩＭは、ＣＬＭによって解凍される。次にＡＩＭは、システムのためにミニＣＤＡを適合し、及び、設定し、及び、ＣＬＭに制御を返す。ＣＬＭは、ＰＣＩオプションＲＯＭのサイズを最小値に縮め、２ＫＢＲＯＭブロックとしてメモリ領域を上限値にする。ＡＩＭ（〜６ＫＢ）及びＣＤＡ（〜１０ＫＢ）は、単にフラッシュイメージに格納され、ＣＬＭと結び付けられず、ＣＬＭは、ＡＩＭ及びミニＣＤＡを検索し、かつ、解凍するための追加イメージアクセス機能を組み込む。ＣＬＭ、ＡＩＭ及びミニＣＤＡの操作は、上述の組み合わされたメソッドに類似する。ＣＬＭのサイズは、わずかに大きく、フラッシュイメージがターゲットとするプラットフォームに特に特化される。このアプローチは、フラッシュ常住のＰＣＩオプションＲＯＭの認識を許可するベンダーＩＤの事前設定を仮定する。フラッシュイメージの管理は、図１１に表される。
【０１０５】
Ｂ．ハードドライブパーティションギャップ
ＢＩＯＳ特定空間制限に依存して、完全な永続性エージェントの全ての方法のためにＢＩＯＳフラッシュメモリの中に十分な空間が無いかもしれない。この場合、デバイスベンダーサポートに依存して、ＡＩＭ、又は、ＡＩＭ及びミニＣＤＡは、ハードドライブパーティションギャップのような大容量デバイスの中でユーザアクセス不能エリアに在住する。これは、「ソフトウェア永続性」の形式の例である。この実施例では、ＣＬＭは、まだ、フラッシュの中に在住し、先の実施例のように、ＰＣＩオプションＲＯＭ列挙プロセスの中に呼び出され、しかし、ＣＬＭは、ＡＩＭをロードし、そしてつぎに、別な場所からＣＤＡを実行する。
【０１０６】
図１３は、その状況で含まれたパーティションギャップイメージ管理を表す。そこでは、永続性エージェントの追加モジュールは、パーティションギャップ内に存在する。このギャップは、ＭＢＲ及び第１のパーティションの間に存在する。ギャップは、６２セクターあり、大半は新しいハードドライブであるが、セクターの幾つかは、他のソフトウェアとの互換性を維持するインストール・ユーティリティにより予約されており、その使用可能サイズは、２７ＫＢである。このサイズは、サーバとの通信に必要なエージェント（ＡＩＭ、ＣＤＡ）の基本モジュール、及び、ＯＳの中の残りのモジュールのブートストラップを含む。
【０１０７】
ホスト保護領域（ＨＰＡ）
図１２を参照すると、代替的に、先の実施例のようなハードドライブパーティションでの永続性エージェント（即ち、ＡＩＭ及び／又はミニＣＤＡ）の付加的モジュールを格納する代わりに、全てのモジュールのためのＢＩＯＳフラッシュメモリの中に十分なスペースがない状況において、永続性エージェントの付加的モジュールは、ＨＰＡ、又は、同等の機能を有するような大容量記憶装置の別なユーザアクセス不能領域に在住する。これは、ソフトウェア永続性の別な例である。付加的サポートは、鍵がかけられた、又は、鍵がかけられてないＨＰＡに要求される。このＨＰＡアクセス機構は、ＰＣＯＥＭ特有になるだろう。ＨＰＡ内のイメージは、ランタイムで管理される必要がある。ドライバ及びアプリケーションは、ＢＩＯＳインタフェースを承認する既存の方法をサポートし、かつ、ＨＰＡ空間の部分を管理する必要なランタイムアクセスを獲得するだろう。この実施例では、ＣＬＭは、フラッシュ内に在住し、先の実施例のように、ＰＣＩオプションＲＯＭ列挙プロセス間にコールされるが、ＣＬＭはＡＩＭをロードし、それは、次に、別な場所からＣＤＡを起動する。
【０１０８】
Ｄ．非フラッシュＣＬＭ
多くのセキュアな実施例が、ＢＩＯＳフラッシュメモリ内に在住するＣＬＭを含む一方、これがサポートされない環境もある。これは、ＰＣＩオプションＲＯＭスキャンの間に、フラッシュ内のＣＬＭヘッダを列挙するようにＢＩＯＳを設定していない場合である。これらのシステムでは、ＣＬＭのための代替的な位置が、既存の製品に関連するより優れた解決を提供する。代わりのマスターブートレコードの使用が、この解決のために利用される。この実施例では、ＣＬＭは、代わりのマスターブートレコードからロードする。ＣＬＭは、それから、ロードし、ＡＩＭ、及び、ミニＣＤＲに制御を渡し、そして、ＡＩＭ及びミニＣＤＲは、先の実施例で述べたように、パーティションギャップに配置される。エージェントサブローダのための代わりのＭＢＲアプローチは、出願人によって特許されており、参照においてここに同一のものとされる。本発明において、ＣＬＭは、先行特許で見つからないＡＩＭ及びＣＤＡに関して追加的及び異なるファンクションであるが、ここで、ＣＬＭは、類似のサブロードアプローチの長所がある。
【０１０９】
最適化
ＣＬＭＰＣＩオプションＲＯＭは、システムＢＩＯＳの中に統合するのは難しい。例えば、ＩＢＭ（登録商標）モデルＴ４３ノートブックコンピュータは、オプションＲＯＭ構造を有するＩＢＭ（登録商標）ＢＩＯＳと共にインストールされる。その形式及び機能は、ビデオオプションＲＯＭ、又は、ＢＩＯＳ内に既に存在しているマザーボードコントロールオプションＲＯＭと同等である。単純なケースでは、ＢＩＯＳは、ＣＬＭのベンダーＩＤを認識するように、単に設定されていなければならない。ＣＬＭの形式及び機能は、ホストＢＩＯＳによりしっかりと統合され、幾つかのサイズ最適化を起こすことができる。フラッシュイメージ内にＣＬＭ、ＡＩＭ及びＣＤＡモジュールを格納するために要求される〜２０ＫＢ内に小さな空間をセーブする機会がある。下記は、３つのメインモジュール及び各主要な機能ギャップの凡そのサイズ内の様々な機能を表す表である。最適化列は、各モジュール内の機能グループの最適化機会の評価をリストにしてある。
【０１１０】
【表８】
0005475743.tif 000009
【０１１１】
モジュール内の様々な機能について、ＣＬＭ機能（ＰＣＩ、イメージ管理、実行環境）だけが、ホストＢＩＯＳから特有のサポートで最適化される。イメージ管理機能のサイズは、ＢＩＯＳの圧縮アルゴリズムを用いて、及び、ＡＩＭ及びＣＤＡモジュールを格納する「結合」メソッドを用いて、約３ＫＢに減らせる。実行環境セット及び制御機能のサイズは、全てのディスク資源が利用可能であり、かる、ＰＯＳＴメモリマネージャサポートが必要とされないために、ＰＯＳＴ後半ロードされるＰＣＩオプションＲＯＭを確実にすることによって、０．８ＫＢまで減らすことが可能である。〜２０ＫＢサイズのより低い範囲は、およそ〜１８．９ＫＢである。上限サイドでは、プラットフォーム特有のサポートは、ＣＬＭ内で要求され、２ＫＢを単位として増加する。
【０１１２】
ＢＩＯＳインタフェースが、ＳＭＢＩＯＳを介してＣＬＭを検出し、かつ、設定するためにアプリケーション・プロトコル・インタフェース（ＡＰＩ）をあらわにする場合、２ＫＢの可視的なＲＯＭ「切れ残りの要求」は、緩やかとなる。
【０１１３】
エージェントは、それを取り除こうとすることが通常期待されているアクションにも関わらず、永続性を有する機能がある。エージェントのプログラマブル機能は、サーバドリブンコマンドに基づいてその機能を拡張することを可能にする。本発明は、そのデバイスの「ユーザ」のアクションにもかかわらず、展開したソフトウェアエージェントのための能力を「アクティブ」に改良する。エージェントに関するユーザのアクションは、意図的又は偶然かもしれない。本発明は、エージェントを無効化する合法的な要求を許可する（例えば、コンピュータ資源のライフの終わりに）一方で、ソフトウェアエージェントの偶然の削除から認証ユーザを守る。本発明は、非認証ユーザが、エージェントソフトウェアを削除することを防ぐ。本発明の永続性属性は、セキュリティ及び資産管理アプリケーションの両方に価値がある。セキュア、内密なデバイス追跡ソフトウェアアプリケーションという状況において、本発明は、窃盗によってなされるアクションにもかかわらず、ソフトウェアは、存続し、遠隔監視センタへの接触を利用可能にし、価値のある資産の窃盗が偽装することをさらに困難にするので、極めて重要である。加えて、ソフトウェアエージェントの永続性の本質は、追跡エージェントが故意に取り除かれないという信用を提供するので、個人情報のセキュリティに対して安心感を提供する。セキュア資産管理アプリケーションと言う状況で、これは、そのライフサイクル全体を通して資産を追跡する継続性を確実にするので、さらなる価値を有する。ＩＴ管理者のための挑戦の鍵は、ライフサイクル全体を越えて資産を追跡する能力である。ライフサイクルの間に、デバイスは、しばしば、あるユーザからの別なユーザへ移転され、その間に、デバイスは、再イメージされ、再インストールの操作又は資産追跡を困難にする保守手続を課せられる。
【０１１４】
本発明のプロセス及びシステムは、ブロックダイアグラムフォーマットで機能モジュールに関して上述した。ここで正反対に別段述べられていないなら、１つ以上のファンクションが、離れた物理的デバイス、又は、１つの位置でのソフトウェアモジュール、又は、ネットワーク上を分散して、本発明の範囲と精神に放れることなく、実施される。
【０１１５】
各モジュールの実際の実施の詳細な議論は、本発明の理解を可能にするためには必要では無いということが評価される。実際の実装は、プログラマー及びシステムエンジニアの日常のスキル内で良く、システムの属性、機能性、システム内の様々な機能モジュールの内部関係というここで開示されたもので与えられる。通常のスキルを有する当業者は、過度の経験無しで本発明を実施することが可能である。
【０１１６】
本発明は、発明とともにここで記述された実施例に関して述べられた一方、当業者は、本発明の範囲及び精神から離れることなく様々な修正及び改良を行うことは明らかである。例えば、情報抽出アプリケーションは、ウェブブラウジングのためのユーザの追加的柔軟性を提供するために、異種又は追加のプロセスを適合するように容易に修正される。したがって、本発明は、添付した請求の範囲のみに制限されず、かつ、説明した特有の実施例に制限されないことが理解されるべきである。
【図１】
0005475743.tif 000010
【図２】
0005475743.tif 000011
【図３】
0005475743.tif 000012
【図４】
0005475743.tif 000013
【図５】
0005475743.tif 000014
【図６ａ】
0005475743.tif 000015
【図６ｂ】
0005475743.tif 000016
【図７】
0005475743.tif 000017
【図８】
0005475743.tif 000018
【図９】
0005475743.tif 000019
【図１０】
0005475743.tif 000020
【図１１】
0005475743.tif 000021
【図１２】
0005475743.tif 000022
【図１３】
0005475743.tif 000023
【図１４】
0005475743.tif 000024