(57)【特許請求の範囲】
【請求項１】
電子デバイスを監視するための監視システムであって、
第１のプロトコルにしたがってインターネット経由で前記電子デバイスと通信するように構成されると共に、失われた又は盗まれたとレポートされた電子デバイスへ、該電子デバイスに保存されたデータを保護するセキュリティ命令を含むセキュリティ命令を送信するように構成された第１のサーバと、
第２のプロトコルにしたがってインターネット経由で、前記第１のサーバが前記電子デバイスと通信するよりも頻繁に前記電子デバイスと通信するように構成されると共に、前記電子デバイスが前記第１のサーバからセキュリティ命令を取り出すことができるように、失われた又は盗まれたとレポートされた電子デバイスへ前記第１のサーバとコンタクトするように命令する第２のサーバと、を備え、
前記第２のプロトコルは、前記第１のプロトコルを用いる通信を伝達するパケットよりも小さなバイトサイズを有するパケットを用いて行われる通信の為のものであり、
前記第２のサーバは、前記電子デバイスと通信する為に非セッション特有スレッドのプールを用い、前記第１のサーバは、前記電子デバイスとの特定の通信セッション専用のスレッドを用いて前記電子デバイスと通信する、
監視システム。
【請求項２】
前記第２のプロトコルを用いる通信は、前記電子デバイスのうちの１つの電子デバイスから前記第２のサーバへ送信される単一のパケットを含み、
前記単一のパケットは、前記１つの電子デバイスの識別情報を含む、請求項１に記載のシステム。
【請求項３】
前記単一のパケットを受信することに応じて、前記第２のサーバは、前記識別情報及び前記識別情報と関連したフラグに基づいて、前記１つの電子デバイスとセッションを設立すべきか否かを決定する、請求項２に記載のシステム。
【請求項４】
前記第２のサーバが前記セッションを設立すべきでないと決定した場合、前記第２のサーバは、
前記１つの電子デバイスに応答しない、
前記１つの電子デバイスに肯定応答を送信する、
前記１つの電子デバイスに切断命令を送信する、又は
前記１つの電子デバイスとの接続を切る、動作を行い、
前記第２のサーバが前記セッションを設立すべきであると決定した場合、前記第２のサーバは、前記１つの電子デバイスへ前記セッションをオープンすることを要求するメッセージを送信する、請求項３に記載のシステム。
【請求項５】
前記単一のパケットは、前記識別情報以外には前記１つのデバイスに関する情報を含まない、請求項２に記載のシステム。
【請求項６】
前記パケットは、２×１０２バイト長よりも短い、請求項２に記載のシステム。
【請求項７】
前記第２のプロトコルを用いる更なる通信が、５パケットまでの第１のセッションを経由して生じ、
前記第１のプロトコルを用いる通信が、通信されるバイト数の観点で、前記第１のセションよりも少なくとも１桁大きい第２のセッションを経由して生じる、請求項１に記載のシステム。
【請求項８】
前記電子デバイスに前記第１のプロトコル及び第２のプロトコルをそれぞれ用いて前記第１のサーバ及び第２のサーバと通信することを可能にするよう、前記電子デバイス上にインストールされるように構成されたエージェントを更に備える、
請求項１に記載のシステム。
【請求項９】
電子デバイスを監視する為の方法であって、
第１のサーバにおいて電子デバイスが待ちセキュリティ命令を有するとの通知を受信すること、
第２のサーバにおいて前記電子デバイスが、前記第１のサーバにコンタクトすべきとの通知を受信すること、
前記第２のサーバにおいて、前記電子デバイスから、前記電子デバイスの識別情報を含む単一のパケットをインターネット経由で受信すること、
前記第２のサーバにおいて、前記識別情報には前記第１のサーバとコンタクトするようにとのフラグが前記電子デバイスに対して付されていることを確認すること、
前記第２のサーバが前記電子デバイスに前記第１のサーバとコンタクトするように命令する、前記第２のサーバと前記電子デバイス間でのインターネット経由の第１のセッションを設立すること、及び、
前記第１のサーバが前記電子デバイスに前記セキュリティ命令を通信する、前記第１のサーバと前記電子デバイス間でのインターネット経由の第２のセッションを設立すること、を含み、
前記第２のサーバとのセッションは、前記第１のサーバとのセッションにおけるパケットよりも小さなバイトサイズを有するパケットを用いて実行される、方法。
【請求項１０】
前記第２のセッションは、通信バイト数という観点で、１から４桁前記第１のセッションよりも大きい、請求項９に記載の方法。
【請求項１１】
前記第２のサーバは、前記電子デバイスと通信する為にスレッドのプールを使用し、前記第１のサーバは、特定のセッション専用のスレッドを用いて前記電子デバイスと通信する、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子デバイスの紛失や窃盗からの保護に関し、更に詳細には、このようなデバイスを監視し、頻繁に且つ直ちにこれらデバイスとコンタクトすることのできるシステム及び方法に関する。
【背景技術】
【０００２】
パーソナル電子コンピューティング又は通信デバイスはしばしば紛失し又は盗まれる。所有主の情報は日常的にこれらのデバイスに保存されるので、このような所有主の又はデリケートな情報を保護し及びこのようなデバイスを取り戻す必要性は、自ずから明らかなことである。
【０００３】
ラップトップ、そして、携帯電話、ＰＤＡ、スマートフォン（例えば、ＢｌａｃｋｂｅｒｒｙＴＭ、ｉＰｈｏｎｅＴＭ）、メモリースティック、パーソナルメディアデバイス（例えば、ｉＰｏｄＴＭ）、ゲーム機器、タブレットコンピュータ、電子ブック、及びパーソナルコンピュータ等の他の電子デバイスはますます、それらが盗まれた場合に取り戻すことができるようにしばしば遠隔追跡される。このような追跡は、位置情報を、遠隔のストレージサイト、ｅメールサーバ又はパーソナルモバイル電子デバイスに送信することによってもたらされる。
【０００４】
追跡される装置との通信の間、データ削除、暗号化、暗号化キー削除、ソフトウェアアップデート、データの取り出し、スクリーンショットの取り出し、カメラショットの取り出し等の為に、コマンドが送信されるであろう。
【０００５】
過度の帯域の使用を避け、盗人に気づかれるリスクを最小限にする為に、追跡は慣例的には断続的に発生する。デバイスがこのような追跡通信の間に盗まれると、デバイスの所有者又はユーザは、デバイス上でのデータ削除等のセキュリティアクションを起動する為には、次の追跡通信まで待つ必要がある。
【発明の概要】
【０００６】
電子デバイス監視システムは、ユーザの電子デバイスと通信する為の２つの異なる種類のサーバを使用する。高速コンタクトサーバであっても良い１のタイプのサーバは、電子デバイスとの比較的短く且つ頻繁な通信を行うよう最適化され又は構成される。別のタイプのサーバは、電子デバイスとの、それほど頻繁でないが、（通常は）いっそう長い通信を行うよう最適化され又は構成される。いくつかの実施形態において、電子デバイスは、高速コンタクトサーバと比較的頻繁に（例えば、２、３分毎に）通信するように最適化され又は構成される。電子デバイスが失われたこと又は盗まれたことがレポートされると、高速コンタクトサーバは、電子デバイスに別のタイプのサーバにコンタクトしセキュリティ関連情報を取得するように命令する。２つのサーバを別々に最適化することにより、電子デバイスは、異なるプロトコルにしたがってそれぞれと通信するように構成されても良い。ここで、各プロトコルは、特定のサーバに最適化される。
【０００７】
本概要は、本明細書の特許請求の範囲に記載されている主題の範囲を描写するよう意図される広範囲にわたる概観ではない。本概要は、以下で提示される詳細な説明の導入部として、主題の基本的な理解を提供する為に主題の側面をシンプルな形式で提示する。本概要、図面、以下の詳細な説明のいずれも、発明を定義し又は限定することを主張するものではなく、本発明は特許請求の範囲によってのみ定義される。
【図面の簡単な説明】
【０００８】
開示された主題の性質及び有利な点、またそれらの好ましい使用の態様の為のいっそう完全な理解の為に、添付の図面と関連して読まれる以下の詳細な説明が参照されるべきである。図面において、類似の参照番号は、類似の又は同様なステップ又は部分を指す。
【０００９】
【図１】図１は、開示された主題の実施形態にしたがう、高速コンタクトシステムの基本ブロック図である。
【図２】図２は、デバイスによって高速コンタクトサーバに送信される高速コンタクトパケットの模式図である。
【図３】図３は、デバイスとメインサーバ間で送信される標準パケットの模式図である。
【図４】図４は、開示された主題にしたがう、高速コンタクトシステム内のデバイスにより実行されるプロセスのフローチャートである。
【図５】図５は、高速コンタクトサーバにより実行されるプロセスのフローチャートである。
【図６】図６は、認証トークンを高速コンタクトサーバからデバイスに送信する為のフローチャートである。
【図７】図７は、デバイス上で高速呼出しを可能にするためのシーケンス図である。
【図８】図８は、デバイスにとって係属中のアクションが無い場合のシーケンス図である。
【図９】図９は、高速及び標準呼出しを示すシーケンス図である。
【図１０】図１０は、高速呼出し設定を更新する為のシーケンス図である。
【図１１】図１１は、エージェントにメイサーバへの呼出しを強制する為のシーケンス図である。
【図１２】図１２は、セキュリティアクションを起動する為のシーケンス図である。
【図１３】図１３は、統合サービスを伴う、高速コンタクトシステムの代替の実施形態の基本ブロック図である。
【図１４】図１４は、デバイスコンフィグレーションの為のシーケンス図である。
【図１５】図１５は、デバイスパラメータ更新の為のシーケンス図である。
【図１６】図１６は、高速コンタクトサーバのスタートアップの為のシーケンス図である。
【図１７】図１７は、待ちデバイスパラメータ更新のポーリング、又は強制呼出しの為のシーケンス図である。
【図１８】図１８は、係属中パラメータ更新又は強制呼出し命令がない場合における、高速呼出しの為のシーケンス図である。
【図１９】図１９は、係属中のパラメータ更新又は強制呼出しがある場合の高速呼出しの為のシーケンス図である。
【図２０】図２０は、複数の統合サーバを伴う、高速コンタクトシステムの代替の実施形態の基本ブロック図である。
【発明を実施するための形態】
【００１０】
Ａ．用語
エージェント．  エージェントとは、本明細書において用いられるとき、理想的には永続的で内密なソフトウェア、ハードウェア、又はファームウェアエージェントである。通常、エージェントは、コンピュータ又は他の電子デバイス内のプロセッサ読取り可能なメモリ中に存在する実行可能な命令を含み又はそれからなる。エージェントは、通常、遠隔のサーバと通信することを要求するサービス機能を提供する。好ましくは、エージェントは、改ざんに耐性があり、データ削除、ファイヤウォール保護、データ暗号化、位置追跡、メッセージ通知、ソフトウェア展開及び更新などの様々なサービスをサポートし及び/又は提供することが可能とされる。
【００１１】
エージェントの例証としての実施例を、市販の製品Computrace AgentTMに見出すことができる。Computrace AgentTMの基礎となる技術は、米国及び他の国において開示され及び特許になっており、これら特許は共にアブソリュートソフトウェアコーポレーション（Absolute Software Corporation）に譲渡されている。例えば、米国特許第５，７１５，１７４号、第５，７６４，８９２号、第５，８０２，２８０号、第６，２４４，７５８号、第６，２６９，３９２号、第６，３００，８６３号、第６，５０７，９１４号、第７，８１８，８０３号、第７，９４５，７０９号及び関連外国特許を参照。エージェントの永続的な機能の詳細は、米国特許出願ＵＳ２００５／０２１６７５７及びＵＳ２００６／０２７２０２０に開示されている。これら文献の技術的な開示内容は、完全に説明されるかのように、参照により本明細書に完全に組み込まれる。Computrace AgentTMと同等のエージェントを用いることが適しており、或いは、それほど好ましくは無いがやや機能性が低い代替のエージェントを用いることもできる。本開示の目的の為に、エージェントの最小機能属性は、電子デバイスと監視センタ又は他の遠隔のコンピュータ又はサーバ間の通信を促進することである。一般に通信は、エージェントによって起動される。
【００１２】
デバイス．  これは、保護すべき電子デバイスである。デバイスの例には、ラップトップ、携帯電話、パーソナルデジタルアシスタント、スマートフォン、メモリースティック、パーソナルメディアデバイス、ゲーム機器、パーソナルコンピュータ、タブレットコンピュータ、電子ブック、及びノートブックを含む。エージェントは、エージェントにとってホストと称することもできるデバイス中に存在する。デバイスは、また、クライアントと称しても良い。
【００１３】
電子シリアル番号（ＥＳＮ）．  デバイス、又はデバイス中のエージェントを識別するユニークな番号である。ＥＳＮは、デバイス中のメモリ及び／又はレジスタに格納されても良い。
【００１４】
トークン、パブリックトークン又は認証トークン．  これは暗号あかされたＥＳＮであり、ハッシュによって保護されても良い。
【００１５】
高速コンタクトサーバ（ＲＣＳ）．  多数の遠隔デバイスが頻繁に且つ短時間コンタクトし、大きな遅延無しに、もしあれば、待ちコマンドを受信する。ＲＣＳは、監視センタの一部であっても良く、ファーストコンタクトサーバ又はＦＣサーバとして知られても良い。通常、ＲＣＳは、通信セッション専用ではない処理スレッドの小さなプールを有する。
【００１６】
メインサーバ．  遠隔のデバイスが、もしあれば待ちコマンドを受信する為に（ＲＣＳと比較して）やや低いい頻度でいっそう長い時間通信する、監視サーバ又は他のコンピュータ又はコンピュータシステム。例えば、デバイスにとってインターネット接続が利用可能であるとすると、エージェントは、一日に一回（又は選択された他の好適な間隔で）メインサーバを呼び出しデバイスの位置をレポートし、もしあればソフトウェア更新をダウンロードし、デバイス上にインストールされる又はインストールすべきあらゆるセキュリティモジュールを償う。呼び出しの間隔は、デバイスが低リスクのエリアから高リスクのエリアに移動したとき、又はデバイスが紛失し又は盗まれたときに、変更されて（減じられて）も良い。メインサーバへの通信は、例えば、（有線又は無線の）インターネット経由、有線又は無線の電話ネットワーク経由、ケーブル経由、又は衛星経由であっても良い。メインサーバは、電子デバイスを紛失し又は盗まれた所有者から通知を受信しても良く、その結果として、メインサーバは、何らかのセキュリティアクションを起動するメッセージを、紛失した又は盗まれた電子デバイスに送信しても良い。そのアクションは、例えば、デバイスをロックする、アラームを鳴らす、データを削除する及び／又は位置情報を提供するものであっても良い。アクションは、デバイス上のファイルのリストを提供する、デバイスからファイルを取り戻す、プロセッサベースの盗難防止の特徴を起動し、デバイス上のデータを暗号化し、又は、暗号化キーを削除する等であっても良い。一般に、保護されたデバイスは、メインサーバへの呼出しを起動する。
【００１７】
監視センタ．  これは、好ましい実施形態においては、ＲＣＳ及びメインサーバを備えるシステムである。それは、ｅメールサーバを備えていても良く、又は、サーバ又は他のコンピュータのグループ又は分散であっても良い。本明細書に開示される実施形態において、エージェントは、デバイス識別情報及び位置情報及び／又は転送すべき他のあらゆるデータを、監視システム内の又は監視システムによりアクセス可能な遠隔の電子ストレージに送信する。監視システムセンタの機能は、電子ソーシャルネットワークサーバに組み入れられ、或いはそれに関連付けられても良い。監視センタは、紛失した又は盗まれた電子デバイスの所有者から通知を受信しても良い。一般に、保護されたデバイスは、監視センタへの呼出しを起動するが、監視センタは、例えば、デバイスがそのように装備されていれば、ＳＭＳ経由で、保護されたデバイスへの呼出しを起動するように構成されていても良い。
【００１８】
高速呼出し．  デバイスからＲＣＳへの一方向の通信であっても良いデバイス及びＲＣＳ間の通信である。高速呼出しは、ＲＣＳからの応答を引き起こしても良く又は引き起こさなくても良い。それは、デバイスとＲＣＳ間のショートセッションである高速コンタクトセッションを引き起こしても良い。高速呼出しは、ファーストコール又はＦＣと称されても良い。
【００１９】
高速コンタクトセッション又はショートセッション．  これは、デバイスと高速コンタクトサーバ間に設立される短い通信セッションであり、通常は、４又は５パケットまで、或いは最大４又は５パケットといった、わずか数パケットの長さのものである。
【００２０】
標準呼出し．  一般に、より大きな量の情報が交換される、デバイスとメインサーバ間の通信である。
【００２１】
予定標準呼出し．  予定された時間に生じる標準呼出しである。
【００２２】
即時標準呼出し又は強制呼出し．  ＲＣＳとの通信の間に要求される標準呼出しである、予定された標準呼出しの時間と異なる時間に生じる。
【００２３】
以下の詳細な記載は、本発明の方法又はプロセス、動作の象徴的な表現、機能及び特徴に関して大部分は提示される。これらの方法の記載及び表現は、当業者が最も効率的に彼らの仕事を当分野の他の当業者に伝えるのに用いられる手段である。ソフトウェアで実施される方法及びプロセスは、本明細書において及び一般には、所望の結果に導く自己矛盾のないステップのシーケンスであると考えられる。これらのステップは、物理量の物理的な操作を伴う。しばしば、必ずしもではないが、これらの量は、保存し、転送し、結合し、比較し、及び別なやり方で操作することのできる電子的な又は磁気的な信号の形式をとる。ハードウェア、ソフトウェア及びファームウェア間のラインは常にはっきりしたものではなく、ソフトウェア実施のプロセスは、マイクロコードの状態及び／又は格納されたプログラム命令の状態のような、コード化された命令の形式で、ハードウェア、ファームウェア、ソフトウェア内で実施されても良いことは、当業者によって理解される。一般に、特に示されない限り、単数の要素は複数あっても良く、また、一般性を損なわないで、その逆のこともあっても良い。男性形の使用は、男性形、女性形又はその両方を指すものであっても良い。図面は、一定の比率では無い。
【００２４】
詳細な記載の多くの部分において、主題は、盗まれたデバイスに関連して説明されるが、当然、当業者であればそれが紛失したデバイスに同様に適用することは明白である。
【００２５】
Ｂ．例示的な実施形態
図１には、高速コンタクトシステム１０の好ましい実施形態の象徴的なブロック図が示されている。システム１０は、デバイスと迅速にコンタクトし遠隔でそれらをコントロールする為の十分な手段を提供することによって、デバイス１２のような電子デバイスを保護するように意図されている。実際、システムには、数百万以上までのそのようなデバイス１２がある。デバイス１２は、ＲＣＳ３０及びメインサーバ５２へネットワーク１８経由で接続されている。ネットワーク１８は、インターネットであっても良く、又はインターネットを含んでいても良く、又は電話通信ネットワークであっても良く又はそれを含んでいても良い。デバイス１２とネットワーク１８間の通信は、有線であっても無線であっても良く、デバイスは、ネットワークに連続的に又は断続的に接続されても良い、
【００２６】
各電子デバイス１２におけるエージェント１４は、デバイスに規則的に又は概ね規則的にＲＣＳ３０を呼び出させる。ＲＣＳ３０は、データベース３５へ接続された、１以上のプロセッシングコア３４を含むプロセッサ３２と、メモリ３６と備え、スレッド４２の固定の比較的小さなプール４０内のコンピュータ読取り可能な命令を処理するように構成されている。本例において、プロセッサコアの２倍のスレッド数がある。例えば、２４コアプロセッサのシステムにおいて、スレッドプール４０には４８のスレッドがある。他の実施形態において、他の比率も可能である。例えば、呼出しは、約３０分毎になされても良く、又は他のあらゆる適切な時間周期でなされても良い。いくつかの実施形態において、呼出しは、デバイスの電子シリアル番号（ＥＳＮ）１６を含む単一の小さなパケット２０をＲＣＳ３０の入出力完了ポート２４へ送信することからなっている。ＥＳＮ１６は、小さなパケット２０に、トークン１７のような暗号化された形式で含められる。ＲＣＳ３０へ送信される小さなパケットのデータそれぞれは、通常は、トータルで１０〜１００バイトを含んでいる。小さなパケット２０は、各スレッド４２によって処理されるタスク４４となる。
【００２７】
タスク４４がスレッド４２内でＲＣＳ３０によって処理されるとき、すべての残りのヘッダ及びチェックサム等は、小さなパケット２０から取り除かれ、プロセッサ３２によってＨＴＴＰコマンドが解釈され、パケットを送信したデバイス１２のＥＳＮ１６が明らかにされる。このことは、ＥＳＮ１６が暗号化されて送信されたならば、トークン１７の暗号解除を伴う。プロセッサ３２は、明らかにされたＥＮＳ１６に依存して、又はそれに依存することなく、アクションをとる。ＥＳＮ及び対応する待ちアクションは、データベース３５に保存されても良い。このようなアクションは、例えば、この場合は短いセッションであろうが、セッションのセットアップを要求することである。約７００バイト未満のデータが交換される、このような高速コンタクトセッションにおいて、ＲＣＳ３０は、メインサーバ５２を呼び出す為に命令をデバイス１２へ送信する。メインサーバ５２は、デバイスとの比較的長い通信の為にセットアップされる。エージェントは、異なるそれぞれの通信プロトコルを用いてＲＣＳ３０、メインサーバ５２と通信しても良い。例えば、ＲＣＳ通信で使用されるプロトコルは、メインサーバとの通信に用いられるプロトコルと比較して、（例えば、減少されたハンドシェイク及びより小さなメッセージサイズにより）比較的短く頻繁な通信に最適化されても良い
【００２８】
例えば、デバイス１２は、盗まれた際にシステム１０内でフラグを付けられても良い。デバイス１２の所有者は、メインサーバ５２にアクセスしてデバイス１２の盗まれたというステータスを入力する為に、コンピュータ６１又は他の電子デバイスを用いてこれを行っても良い。このようなデバイスステータスは、メインサーバ５２中の又はメインサーバ５２によってアクセスされるデータベース５５内に、及び、ＲＣＳ３０によってアクセス可能なデータベース３５内に格納される。この場合、デバイスは、ＲＣＳ３０を呼び出すとき、メインサーバ５２を呼び出すように命令され、ＲＣＳ３０は、次に、デバイスに位置情報をメインサーバへ提供するように、メインサーバをいっそう頻繁に呼び出すように、又は凍結状態に入るように命令する。別の例として、高速コンタクトセッションは、更新された高速呼出し間隔のような、更新されたパラメータをＲＣＳ３０からデバイス１２に送信するのに用いられても良い。代替として、デバイス１２は、メインサーバ５２との呼出しの間に送信されるであろうメッセージを送信されるように、システム１０内でフラグを付けられても良い。デバイス１２が、盗まれたとのフラグを付けられておらず、標準呼出しを必要とする他の事項についてフラグを付けられていない場合には、ＲＣＳ３０は、必要ではないしネットワーク帯域を浪費するであろうから、デバイスに何ら応答を送付しなくても良い。しかしながら、その代わりに、システム１０は、ＲＣＳ３０がＨＴＴＰステータス２００レスポンス（すなわち、メッセージ受信ＯＫ）又は他の好適な肯定応答をデバイスに送信するように構成されてもよい。更に代替として、デバイス１２についての待ちのアクションが無い場合、ＲＣＳ３０は、切断メッセージをデバイスに返しても良く、又は単に切断を行っても良い。
【００２９】
デバイス又はデバイス内のエージェント１４が、許可トークンをまだ持っていない、無効なものを持つ、或いはセキュリティポリシーの内容により置き換えられたものを持つべきであったという状況である場合、デバイス１２とＲＣＳ３０間の高速コンタクトセッションは、新たな許可トークンを設定する為に用いられても良い。高速コンタクトセッションは、また、メインサーバ５２への次の予定された標準呼出しの時間を設定する為に用いられても良い。高速コンタクトセッションは、標準呼出しを異なるメインサーバ又は暗号化を管理するメメインサーバにリダイレクトする為に用いられても良い。デバイス１２が盗まれた場合には、高速コンタクトセッションは、特に盗まれたデバイスを取り扱う、異なるメインサーバを呼び出すようにエージェントをリダイレクトしても良い。高速コンタクトッセッションは、また、高速呼出し間の間隔を変更する為、又は、高速呼出しを別のＲＣＳへリダイレクトする為に用いられても良い。高速コンタクトセッションは、エージェント１４内又はデバイス１２内のフィールドの内容をレポートする為に用いられても良い。いくつかの場合には、約４ＫＢまでのデータが転送されても良い。別のプロセスが高速コンタクトセッションの間に実施されても良く、主な要求は、セッションが専用の処理スレッドを要求しないように十分に短いこと、及び、高速呼出しを生じさせる他のデバイス１２に関連するＲＣＳ３０の有効な機能を大きく邪魔することがないように十分に短いことである。たいていの時間、デバイス１２は返答しない又はアクションを必要としない、ＲＣＳ３０への呼出しを行う。
【００３０】
電子デバイス１２は、ＲＣＳ３０からそのように命令されたときに、メインサーバ５２を呼び出しても良い。デバイス１２は、定期的に、概ね定期的に、略周期的に、略ランダムに、トリガの検出により、又はあらゆるプログラム可能なやり方で、メインサーバ５２を呼び出しても良い。メインサーバ５２は、データベース５５及びメモリ５６に接続されたプロセッサ５４を備え、比較的大きな数のスレッド５８の状態のコンピュータ読取り可能な命令を処理するように構成されていても良い。スレッド５８は、プールの一部を構成しないのが好ましい。ＲＣＳ３０と異なり、各セッション６０専用の少なくとも１つのスレッド５８があるのが好ましい。呼出しは、約２４．５時間ごと、或いは、例えば、あらゆる適切な時間サイクルであっても良い。デバイス１２からメインサーバ５２への通信５０は、通常は、ＲＣＳ３０への通信よりも、少なくとも１０〜１００００倍（１〜４ケタの分量）長い。このような通信セッションは、通常、それぞれが１５００バイトまでの長さを持つ、１０〜５００のパケット５１を含んでいる。対応するスレッド５８によって処理される各セッション６０内のタスク６２は、通常は、ＲＣＳ３０内で処理されるタスク４４と比較して大きい。通常のシステムでは、それぞれ少なくとも１つの専用のスレッドを伴う８０００又はそれ以上のセッションが、メインサーバ５２内で同時に維持される。セッション数は、ＲＡＭ又はメモリ５６によって制限される。
【００３１】
データベース５５は、各デバイス１２に通信すべき、タスク、更新事項、コマンド等を保存する。デバイス１２の所有者又は管理者が、デバイスのステータスの記録を変更する必要があるとき、即時の標準呼出しを強制するとき、又はデバイスの現在のパラメータを取得するときはいつでも、これらの呼出しはすべて、コンピュータ６１又はネットワーク１８に接続された他の適切なデバイスを用いてなされる。デバイス１２からデータを削除すべき場合、又はデバイスがフリーズされるべき場合には、これらのコマンドもまた、コンピュータ６１を経由してメインサーバ５２に通信することができる。デバイスはグループ化され、また、高速呼出しは、例えばコンピュータ６１を経由して、このようなデバイスグループの管理者によって有効に又は無効にされることが一括して要求されても良い。メインサーバ５２は、問題のデバイス１２の高速呼出しステータスについての情報をコンピュータ６１に送信することができる。このような情報は、デバイス１２が現在高速呼出しを有効にされているかかどうか、デバイスが現在呼出し中であるか又はオフラインであるか、及び最後の高速呼出しであって良い。メインサーバ５２は、ＲＣＳ内のデータベース３５が続く高速呼出しの間、デバイスの為のアクションと共に更新されるように、ＲＣＳ３０と時々通信する。例えば、ＲＣＳのデータベース３５は、ＲＣＳがデバイス１２にメインサーバ５２を呼び出すように命令するように更新することができ；デバイスはメインサーバを、直ちに、又は、メインサーバへの次の予定された標準呼出しに先行する他の時点で呼び出すことによりこのような命令に応答しても良い。
【００３２】
デバイス１２とメインサーバ５２間の単一の通信は、実行中のスレッドと並列に実行することができる、生成されている複数のタスクをもたらすものであっても良い。例えば、２、３又はそれ以上の専用のスレッド５８が、メインサーバ５２との単一の通信５０の結果として用いられても良い。
【００３３】
メインサーバ５２は、位置情報をサーバに提供し、データを削除し、構成要素のいくつか又は全ての識別情報を送信し、又はあらゆるタイプのセキュリティアクションを取るように、デバイスに命令するサーバからのメッセージを含んでも良い、デバイス１２とのメイン通信を担う。メインサーバ５２は、デバイス１２にアップグレードを送信しても良い。メインサーバ５２は、比較的長い通信を受け入れ、セッション６０が存続され及びそのコンテキスト又は状態が維持される、比較的長いタスクを実行するので、１以上の専用のスレッドが各通信セッションで用いられる。このこととは対照的に、ＲＣＳ３０は、状態の経過を維持しないか又は最小限維持するので、ＲＣＳ内では非専用のスレッドを用いることができる。このことは、ＲＣＳ３０によって要求される高速呼出しと高速コンタクトセッションの両方に当てはまり、このような高速コンタクトセッションにおいてデバイス１２からＲＣＳに送信される次のパケットは、いずれかのスレッド４２によって処理される。
【００３４】
高速コンタクトセッションが所定の状態を持つようにする為に、例えば、ＲＣＳ３０内で全ての必要な変更が実行される状態で、５１６バイトの全アレイの読み出し及び書き込みがサポートされるべきである。エージェント１４は、保護された高速コンタクトセッション間でのこのような設定変更の全てを許可しても良く、又は、RtlCopyMemory Windows（登録商標） API(application programming interface)が、メモリに設定を書き込み、次にそれらを設定アドレスにコピーするために用いられても良い。前者のアプローチの方が１つのトランザクションを要するのみなので高速である。後者のアプローチにおいては、エージェントは、高速コンタクトセッションが開始する前にRtlCopyMemoryルーチンのアドレスを削除すべきである。
【００３５】
デバイス１２からＲＣＳ３０への高速呼出し及びこれらの間での高速コンタクトセッションは、メインサーバ５２の標準呼出しよりもかなり短く、数けたの分量短いであろう。これら高速呼出しの目的は、ＲＣＳ３０にデバイスのオンラインでの利用可能性を知らせると共に、必要であれば、デバイス１２とメインサーバ５２間の標準呼出しを迅速に設立する手段を提供することである。例えば、盗まれた電子デバイスは、高速コンタクトシステム１０において、より詳細にはＲＣＳ３０及びメインサーバ５２において、このようにフラグを付けられても良い。盗まれたデバイス１２がＲＣＳ３０を呼び出すとき、ＲＣＳによって、データ削除コマンド、ロックコマンド等を含むであろういっそう広範な命令を求めてメインサーバ５２を直ちに呼び出すように命令される。このことは、ＲＣＳ３０を長いタスクで妨害することを回避するとともに、デバイスがメインサーバ５２を呼び出す次の予定時間まで待つ予定であるならば、デバイスが通常したがう待ち期間を取り除く。プール４２内の比較的少ない数のスレッド４２は、状態を維持する必要のない通信の為には、又は、セッション専用のスレッドを必要とすることなく追跡可能な予測可能な状態の値がほとんどない通信の為には、多数のデバイス１２からの比較的多数の小さなタスク４４を処理するのに適切である。
【００３６】
スレッドの生成はプロセッサの使用という観点では特に安価というわけではないので、スレッドプール４０がＲＣＳ３０内で使用され、利用できる待ちスレッドのプールを持つことは、特にスレッド数が最適化される場合に、入力タスク４４の割り当て及び処理をいっそう効率的にする。ＲＣＳ３０内のプロセッサ３２の効率を最大化する為に、小さなパケット２０を処理する為のコードは、最小限に維持されるべきであり、また、標準通信を処理する為に用いられるメインサーバ５２内のコードから分けられるべきである。このことは、オペレーティングシステムのリソース及びネットワークスループットに依存して、ＲＣＳ３０が可能な限り多くの同時の呼び出しを処理することを可能にする。
【００３７】
デバイス１２とＲＣＳ３０間の通信は、スレッドがあらゆるＩ／Ｏオペレーションの処理の為に起動することを可能にする完了ポート２４を使用する。各セッションのコンテキストは、スレッドセーフ辞書に保持され、対応のＩ／Ｏオペレーションが完了すると直ぐにアクテョブになる。セッションコンテキストは、現在のセッション状態を維持し、その一方、ＲＣＳ３０が現在のセッションを継続することを可能にする。高速コンタクトセッションに用いられるスレッド４０ができるだけ他の完了したＩ／Ｏオペレーションに利用できるようにする為、現在のセッションの処理の間、データベース５５への通信を含む全ての阻害オペレーションが回避されるべきであり、又はＲＣＳ３０内の他の特定のスレッド又はスレッドプールに移動されるべきである。
【００３８】
ＲＣＳ３０は、キープアライブセッションと非キープアライブセッションの両方をサポートしても良く、セッションを識別する為にセッションＩＤを用いても良い。現在のセッションリストをコントロールする為に、特別のウォッチドッグスレッドが、期限切れとなった、非キープアライブセッションのチェックを実行すべきである。
【００３９】
Ｉ／Ｏ及び高速コンタクトセッション処理スレッドに加えて、ＲＣＳ３０は、特別のポート上でＴＣＰ通信を用いる特別スレッドについて、外部データベース（例えば、ＲＣＳ３０と別のサーバ内で実施される場合にはデータベース３５）から呼出しされるのに利用できるコールバックインタフェースを有すべきでる。ＲＣＳ３０は、カウンタ、レポート、スタートアップ、ロギング等間の外部データベース問合せ等の実行のサポートを有していても良い。
【００４０】
図２を参照すると、デバイス１２からＲＣＳ３０へ送信される小さなパケット２０の例が示されている。小さなパケット２０は、例えばインターネットプロトコルヘッダ、ＴＣＰヘッダ及び様々なチェックサムを含むヘッダ部分６３を有する。送信に用いられるプロトコルに依存して、ヘッダ部分６３は、２０バイトの長さであっても良い。ヘッダ部分６３に続いて、ＰＯＳＴリクエストといったＨＴＴＰリクエスト６４、及びデバイス１２のＥＳＮ１６を含んでも良い識別情報部分６５から構成されるデータ部分がある。特別のケースに依存して、ＨＴＴＰリクエスト６４は、例えば、１５６バイトの長さであっても良く、識別情報部分６５は、２４バイトの長さであっても良い。したがって、全体的にみれば、パケット２０は、２００バイトの長さである。選択される構成に依存して、他の実施形態において小さなパケットは、異なる部分の長さ及び異なる全体の長さを有していても良い。主な必要条件は、パケット２０が、特にメインサーバ５２との通信パケットと比較して小さなパケットであり、通常は呼出しをしているデバイス１２を識別するのに丁度十分な最小限の情報を含むことである。
【００４１】
識別情報部分６５は、デバイス１２の為のＥＳＮに基づいて生成されＲＣＳ３０に保存されるパブリックトークンであっても良い。ＲＣＳ３０は、トークンを検証しＥＳＮに翻訳する為のキーを保存する。
【００４２】
例えば、小さなパケット２０内のデータ部分（すなわち、ＨＴＴＰリクエスト６４及び識別情報部分６５）は、以下の様なものであっても良い。
0006349319.tif 000002
【００４３】
図３を参照すると、デバイス１２からメインサーバ５２、又はその逆方向に送信される標準パケット５１が示されている。標準パケット５１は、インターネットプロトコルヘッダ、ＴＣＰヘッダ及び様々なチェックサムを含むヘッダ部分６７を有する。送信に用いられるプロトコルに依存し、ヘッダ部分６７は、２０バイトの長さであっても良い。ヘッダ部分６７に続いて、デバイス１２内の構成要素の詳細な識別情報、デバイスの位置、デバイスに保存されたファイル、デバイスのステータス、デバイスにインストールされたソフトウェアの詳細、そして更に、デバイスのＥＳＮ１６を含むデータ部分６８がある。特定のケースに依存して、パケット５１のデータ部分６８は、例えば、約１５００バイトまでの長さである。主要な点は、パケット５１が、特にＲＣＳ３０への通信パケット２０と比較して長くても良い、或いは一般に長い、また、パケット５１は広範な情報及びコマンドを含んでいても良いということである。
【００４４】
図４を参照すると、デバイス１２に高速呼出し能力をセットアップする為にシステム１０によってなされても良いプロセスを模式的に表す機能フローが示されている。この場合においては、デバイスは未だＲＣＳ３０に高速呼出しをする為にセットアップされておらず、メインサーバ５２に呼出しを行うようにセットアップされている。高速呼出しの為にデバイス１２をセットアップするアクション項目は、メインサーバ５２内でデータベース５５に前もってフラグを付けられている。ステップ７０では、デバイス１２によってメインサーバ５２への標準呼出しがなされる。ステップ７２では、デバイス１２は、メインサーバから、そのＵＲＬもまたデバイスに提供されるＲＣＳ３０の呼出しを開始する為のコマンド、更には、エージェント１４の為のあらゆる必要なアップグレードコードを受信する。高速呼出速度もまた、連続する高速呼出し間に経過する時間間隔の形式で、デバイス１２に提供されても良い。デバイス１２内のエージェント１４は、それから、ステップ７４において、デバイスがＲＣＳ３０に高速呼出しを行うことを可能にする。例えば、このことは、高速呼出しを行うべきだということを示すビットフラグをエージェント内で設定することによって実施されても良い。ステップ７６では、デバイス１２は、ＲＣＳ３０に高速呼出しを行う。ステップ７８では、ＲＣＳ３０は、デバイス１２との高速コンタクトセッションをオープンすべきか否かを決定する。高速コンタクトセッションをオープンすべきでない場合、例えば標準呼出しを行う即時の必要性が無い場合には、ステップ８０においてデバイス１２内のエージェント１４は、メインサーバ５２への予定された標準呼出しの時間であるか否かを決定する。このような予定された標準呼出しの時間で無い場合には、プロセスはステップ７６に戻り、そこでは、高速呼出しの為の設定された時間間隔が経過した後で、続く高速呼出しがＲＣＳ３０に対してなされる。予定された標準呼出しの時間である場合には、ステップ８２にてメインサーバへの標準呼出しがなされる。ステップ７８に戻り、ＲＣＳ３０との高速コンタクトセッションをオープンすべき場合には、ステップ８４において、ＲＣＳは、デバイス１２がセッションをオープンすることを要求する。ステップ８６において高速コンタクトセッションの間、即時の標準呼出しがなされない場合には、プロセスはステップ８０に戻り、そこでは、エージェントは、やはり予定された標準呼出しをなすか否かを決定する。しかしながら、高速コンタクトセッションの間ステップ８６においてデバイス１２がメインサーバ５２を呼び出す場合には、プロセスはステップ８２に移動し、そこでは、デバイスは、即時の呼出しをメインサーバに対して成す。
【００４５】
逆に、デバイス１２の所有者又は管理者は、高速コンタクト特徴が無効にされることをメインサーバ５２に知らせても良い。この情報は、次に、メインサーバ５２からＲＣＳ３０へ転送され、ＲＣＳ３０は、デバイス１２からの高速呼出しに続いて、ＲＣＳを呼び出すことをデバイスに停止させるためのコマンドがデバイスに送信される高速コンタクトセッションのセットアップを要求するであろう。
【００４６】
デバイス１２が盗まれたとレポートされた場合、メインサーバ５２を呼び出すと、おそらく１５分毎に又は何らかの他の好適な間隔でいっそう頻繁にメインサーバを呼び出すように命令される。デバイス１２は、メインサーバをいっそう頻繁に呼び出すので、ＲＣＳ３０を呼び出す必要はないであろう、また、エージェントは、ＲＣＳの呼出しを停止するように命令されても良い。
【００４７】
図５を参照すると、高速呼出しを受信するＲＣＳ３０にて発生するプロセスのフローチャートが示されている。ステップ９０では、ＲＣＳ３０は、高速呼出しを受信し、次に、ステップ９２において、高速呼出しにおいて受信したＥＳＮに基づいて、対応のＥＳＮを伴うデバイス１２の更新事項があるか否かが判定される。更新事項は、呼び出すべき新たなＲＣＳ、呼び出すべき新たなメインサーバ、新たな呼出し時間及び間隔等であっても良い。要求される更新事項が無い場合、ステップ９４において、ＲＣＳ３０は高速呼出しを無視し、応答はしない。そして、プロセスはステップ９６において終了する。しかしながら、デバイスについての更新事項がある場合には、ステップ９８において、ＲＣＳ３０は、デバイスがセッションをオープンするように要求する。その間、ステップ９９において、ＲＣＳは、デバイスに更新事項を送信する。更新事項が送信された後、プロセスはステップ９６において終了する。この全プロセスは、続く各高速呼出しで繰り返される。
【００４８】
Ｃ．許可トークン
エージェント１４は、２つのモードでＲＣＳ３０と通信することができる：第１は、エージェントが、ＲＣＳ３０によって生成されデバイス１２へ返信されるパブリックＲＣＳ許可トークン１７を有する又はそれにアクセスできる際の認証モードであり；第２は、エージェントがこのようなトークン１７を持たないか、又は変更がなされている際の非認証モードである。エージェント１４がトークン１７を有するか又はそれにアクセスできる場合、リブートの間にそれが永続的に回復できるようにレジストリに保存することができる。トークン１７は既に、ＲＣＳ３０のみが知るエージェントの識別、よってデバイスの識別の暗号化された表現であろうから、認証モードではデータは暗号化なしで送信されても良い。
【００４９】
エージェント１４がトークン１７を有さない又はそれへアクセスすることができない場合には、エージェント１４は、データ無しのパケットを送信し、ＲＣＳ３０から応答としてオープンセッションコマンドを受信する。ＲＣＳがトークンを認証できないか又はトークンが認証されているが何らかの変更が必要でエージェントの振る舞い及び／又はポリシーがエージェント設定におけるデータを変更することにより更新されるべき場合には、同じ応答が与えられる。オープンセッションコマンドを受信した後、エージェント１４及びＲＣＳ３０は、暗号化キー及び初期化ベクトルを設定し、通信を保護する為にそれらを用いる。暗号化されたセッションの間、デバイスのＥＳＮ１６はＲＣＳ３０によってデータベース３５から取り出すことができ、係属中のアクションの為にチェックすることができる。そして、何らかのものがあれば、例えば、呼び出すべきメインサーバのＵＲＬ、次の標準呼出しの時間、呼び出すべきＲＣＳのＵＲＬ、ＲＣＳへのデフォルトコールバック時間等に対する必要な変更を、要求に従いなすことができる。安全なトークン１７も発行することができる。この暗号化されたセッションがＲＣＳ３０を呼び出す為にエージェント１４を初期セットアップする為である場合には、これらの変更は、ヌル又はデフォルト値からの変更である。新たなトークンが発行された場合、エージェントは、続く高速呼出しで使用する為にそれをレジストリに保存する。
【００５０】
トークン１７を生成する為に、ＲＣＳ３０は、メッセージとしてのデバイスのＥＳＮとＲＣＳ特定認証タグ（例えば、コンピュータ名、レジストリからのデータ、作業フォルダ名等）を取得し、毎月１回といった特定のスケジュールに基づいてＲＣＳによって生成されＲＣＳレジストリに保存されたＲＣＳ暗号化キーを用いてＥＳＮを暗号化する。トークン（すなわち、暗号化されたＥＳＮ）は、次に、続く高速呼出しにてＲＣＳへ返信されるべきデータとして、デバイス１２へ送信される。ＲＣＳ３０が、続く高速呼出しでデータを受信した場合、ＲＣＳ３０は、デバイス１２のＥＳＮを明らかにする為に認証タグを用いてそれを復号化する。ＲＣＳの認証タグが変更されると、デバイス１２からの高速呼出しは、全てのトークン１７が更新されるまで、高速呼出しセッションの設定という結果になるであろうと予測されるであろう。
【００５１】
図６を参照すると、最初のトークン１７をセットアップする為のプロセス、又は既存のトークンを変更する為の、高速コンタクトシステム１０のフローチャートが示されている。ステップ１１０において、エージェント１４は、ＲＣＳ３０又はメインサーバ５２を呼び出すべき時間であるか否かを確認する。ステップ１１２において呼出しをする時間でないと判定される場合には、サーバのいずれかに呼出しをすべき時間化を後に確認する為に、プロセスはステップ１１０に戻る。
【００５２】
ステップ１１２において呼出しをすべき時間である場合、ステップ１１４においてエージェントは、高速呼出しを成すべきかを判定する。高速呼出しではない場合、ステップ１１６において標準呼出しがなされる。ステップ１１４において高速呼出しをなすべき場合には、ステップ１２０においてエージェントはトークン１７へのアクセスを有するかを判定する。エージェント１４がトークン１７へのアクセスを有さない場合には、エージェントは、ステップ１２２においてＲＣＳ３０へ空パケット（すなわち、データの無い、ＥＳＮの無い、又はヌルＥＳＮ）を送信する。しかしながら、エージェント１４がトークン１７へのアクセスを有する場合、エージェントは、ステップ１２４においてトークンを含むパケット２０をＲＣＳへ送信する。トークン１７が送信されると、エージェント１４は、ステップ１２６において通信が終了したか否かを判定する。通信の終了は、ＲＣＳ３０からエージェント１４へ肯定応答又は切断コマンドを送信することによって又は応答しないことによって示されても良い。ステップ１２６において通信の終了でない場合、エージェント１４は、ステップ１２８においてＲＣＳ３０から“オープンセッション”コマンドを受信したか否かを判定する。オープンセッションコマンドを受信していない場合、エージェント１４は、ステップ１３０においてＲＣＳ３０から切断する。ステップ１２８においてエージェント１４がＲＣＳ３０からオープンセッションコマンドを受信した場合、エージェントはステップ１３１においてセッションをオープンする。エージェントは、ステップ１２２の後でステップ１２８に到達しても良く、そこでは、エージェントはＲＣＳへ空パケットを送信する。ステップ１３２では、エージェントは、デバイス中に有効な暗号化ＤＬＬが存在するか判定し、有効な暗号化ＤＬＬが存在する場合には、ステップ１３４においてエージェントとＲＣＳ間でキーが交換される。ステップ１３６でキー交換が成功しないと判定された場合、ステップ１３０においてエージェントはＲＣＳ３０から切断する。ステップ１３６でキー交換が成功したと判定された場合、ステップ１３８においてエージェントはＲＣＳへパケットを送信する。送信されるパケットは、利用可能であれば、デバイスのＥＳＮ、呼出しするメインサーバのＵＲＬ、メインサーバへの次の呼出し時間、ＲＣＳのＵＲＬ、及びＲＣＳを呼び出す間隔を含む。応答として、ＲＣＳ３０は、デバイス１２へ更新データ（オプション）及び新たなトークン１７を送信する。ステップ１４０においてエージェントが新たなデータを受信した場合、ステップ１４２においてエージェントはデバイス設定を更新する。この後、又は、ステップ１４０においてエージェントが新たなデータを受信しない場合、ステップ１４４においてエージェント１４は、新たな認証トークン１７をデバイス１２に保存する。これに続き、ステップ１３０においてエージェントは接続を切る。
【００５３】
通常、暗号化ＤＬＬ及び高速ＲＳＡキーは、ＲＣＳ３０との高速通信の間、デバイス内にぞんざいしているであろうことに留意する。これらのいずれも存在しない場合、又は暗号化ＤＬＬがロードできない場合、エージェントは、直ちにメインサーバ５２を自動的に呼び出すように構成されても良い。代替として、エージェントは、通常通り動作し、スケジュール通りにメインサーバを呼び出しても良い。
【００５４】
Ｄ．シーケンス図
図７を参照すると、メインサーバ（例えば、監視サーバ）への標準呼出しが既に可能になっているデバイス上で高速呼出しを可能にする為のシーケンス図が示されている。エージェントからメインサーバへの標準エージェント呼出し２００の結果として、高速呼出し（ＦＣ又はファーストコール）特徴は、デバイスとメインサーバ間で設立される通信セッション間におけるセットアップ２０２である。高速呼出し特徴のセットアップに続き、エージェントは、ＲＣＳ３０への高速呼出し２０４を行う。ＲＣＳは、やるべき事は無いので、肯定応答２０６で応答する。少しの時間後、エージェントは、更なる高速呼出し２０８を行い、まだやるべき事は無いので、肯定応答２１０を再び受信する。
【００５５】
図８を参照すると、デバイスにとっての係属中のアクションが無い場合のシステムオペラーションについてのシーケンス図が示されている。エージェントは、ＨＴＴＰリクエスト２２０をＲＣＳへ送る。ＲＣＳは、やるべき事はないので肯定応答２２２で応答する。少しの時間後２２４、エージェントは更なる高速呼出し２２６を行い、まだやるべきことは無いので肯定応答２２８を再度受信する。
【００５６】
図９を参照すると、高速呼出し用にも構成されたエージェントによって標準呼出しがなされる場合に生じるイベントを表すシーケンス図が示されている。エージェントは、ＨＴＴＰレクエスト２５０をＲＣＳに送る。ＲＣＳは、やるべきことは無いので、肯定応答２５２で応答する。少しの時間後、エージェントは、更なる高速呼出し２５４をなし、まだやるべきことがないので肯定応答２５６を再度受信する。次に、予定された標準呼出し時間に、セッションのセットアップおよび標準呼出しに関連するデータの交換を伴う、メインサーバへの標準呼出し２６０の時間となる。標準呼出しの後、エージェントは、ＲＣＳへの高速呼出し２６４をなすことに戻る。
【００５７】
図１０を参照すると、ＲＣＳへの呼び出し中に高速呼出し設定がどのように更新されるかを表すシーケンス図が示されている。最初に、エージェントは、ＲＣＳへＨＴＴＰパケット２７０を送信する。ＲＣＳは、セッションをオープンする為のリクエスト２７２で応答する。次に、エージェントは、現在の設定をＲＣＳへ送信する（２７４）。これに続き、ＲＣＳは、更新された設定をエージェントに送り返す（２７６）。そして、セッションは終了する。ＲＣＳが高速呼出しをスイッチオフする設定を送信しなかったと想定すると、エージェントは、通例のタイムアウト間隔が経過した後、ＲＣＳを再び呼び出す（２７８）。
【００５８】
図１１を参照すると、メインサーバへのエージェント呼出しがどのようにして強制されるかを表すシーケンス図が示されている。これは、例えば、わずか５つのパケットを用いることで達成される。最初に、エージェントは、ＲＣＳへＨＴＴＰパケット３００を送信し、次に、ＲＣＳは、セッションをオープンする為にエージェントにリクエスト３０２を送信する。次に、エージェントは、ＲＣＳへ設定３０４を送信し、ＲＣＳは、次に、もしあれば更新された設定３０６を送り返し、メインサーバを直ちに呼び出すようにエージェントへコマンド３０８を送り返す。ＲＣＳとの高速コンタクトセッションが切断された後、エージェントは、通常スケジュールから離れて、メインサーバを直ちに呼出し（３１０）、
セッションを設立する。メインサーバとのセッションが終了した際、エージェントは、高速呼出し時間間隔が経過した後、いつも通りＲＣＳを呼出す（３１２）。
【００５９】
図１２を参照すると、セキュリティアクションの実行を表すシーケンス図が示されている。上述の通り、メインサーバへの即時の呼出しを起動する為にエージェントにコマンドを送られる間、ＲＣＳへ高速呼出し３２０がなされる。これは、メインサーバへ呼出しを強制する特定のエージェントの為にＲＣＳでフラグがセットされる為である。メインサーバとのセッションの間、エージェントは命令３４４を受信しデバイスからのデータの削除を開始する。メインサーバとのセッションは終了し、デバイスは、データ削除動作を継続する。高速呼出し間の時間は、データ削除動作が終了した後に経過する。エージェントが取り扱うべき別の高優先度アクションがあるので、ＲＣＳへの続く高速呼出し３４０の間、メインサーバを呼び出すコマンド３４２が、ＲＣＳからエージェントは再度送信される。この例では、デバイスをフリーズさせるコマンド３４６は、メインサーバへの呼出し３４４の間に送信される。デバイスはフリーズされるけれども、ＲＣＳ呼出しの能力を維持し、内部呼出し間隔２２４が経過した後にそのように動作する。エージェントにとって未解決の動作はないので、この時間及びＲＣＳのフラグはリセットされ、メインサーバとのセションは要求されない。
【００６０】
Ｅ．統合サーバとの更なる実施形態
図１３を参照すると、高速呼出しシステムの更なる実施形態が示されている。図は、複数のＲＣＳ（ＦＣサーバ）３０にルータ３８０経由で接続される複数のデバイス１２を示している。メインサーバ５２は、ＣＴＳｒｖと示されている。顧客が高速コンタクト関連情報を見ることを可能にし、高速呼出しを有効にし及び無効にすることを可能にするウェブアプリケーションを実施する顧客センタサーバ（ＣＣ）３９０が示されている。ＣＣは、どのデバイスが高速コンタクトを有効とされ、どのデバイスがそうでないかを示すであろう。ＣＣは、各デバイスからの最後の高速呼出しの時間を示すことができ、また、最近呼出しを行ったものを、それらはオンラインでろうから、強調表示することができる。ＣＣは、メインサーバへの標準呼出しを強制する為に用いられても良い。ＣＣは、どのデバイスが未解決のパラメータ更新を有するか、エージェントにそれらへのアクションを呼び出させるか、及び既に完了したアクションの履歴を示す。ユーザが、高速コンタクトを有効にされたデバイス上での終了ユーザメッセージ（Ｅｎｄ  Ｕｓｅｒ  Ｍｅｓｓａｇｅ）、デバイスフリーズ（Ｄｅｖｉｃｅ  Ｆｒｅｅｚｅ）、又はデータ削除（Ｄａｔa  Ｄｅｌｅｔｅ）を要求すると、ＣＣは統合サーバ４００（下記参照）に、デバイスが次に呼出しを行うときには、標準呼出しを行うことを通知するであろう。
【００６１】
ＥＭＳ３９５は、ウェブサービスとしても実施される、ＣＣ３９０の機能と同様ないくつかの機能を有するＥＳＮ管理サーバである。これは、ユーザが、１つの又は一群のコンピュータ上で一度に高速コンタクト関連パラメータをセットすることを可能にするであろう。コンピュータは、共通の命令上にあるものでもよく、又は共通のアカウントにあるものでも良い。それは、メインサーバへの強制呼出しを要求する為に用いられても良い。ＥＭＳ３９５は、どのデバイスが高速コンタクトを有効にされ、どのデバイスがそうでないかを示しても良い。それは、各デバイスからの最後の高速呼出しの時間を示すことができ、また、最近呼出しを行ったものを、それらはオンラインであろうから、示すことができる。ＥＭＳは、どのデバイスが未解決のパラメータ更新を有し、又はどのデバイスがエージェントにそれらに対するアクションを呼び出させるか、及びそれら上で既に実行された全てのアクションの履歴を示しても良い。
【００６２】
ＲＣＳは、特定のエージェントメインサーバへの標準呼出しを必要とするか否かについて、統合サーバ４００から情報を取得する。デバイスが呼出しを行う場合、ＲＣＳは、この情報をデバイスに送信し、統合サービスに呼出し及びなされた変更について通知する。
【００６３】
統合サーバ４００は、ＲＣＳに、エージェントパラメータを更新する為のあらゆる新たなリクエストについて通知する。ＲＣＳが統合サーバに完了したエージェントパラメータ変更について通知した場合、統合サービは、外部データベース４１０へ変更についての情報を書く。統合サービスは、また、ＣＣとＥＭＳの両方に、接続されたＲＣＳや特定のデバイスがＲＣＳを呼出した最後の時間についてのステータス情報といった情報を提供する。小さな高速コンタクトシステムについては、統合サービスは、インタフェース、及び／又はＡＰＩとしてのみ実施されても良いが、より大きなシステムでは、スタンドアロンサーバとして実施される。
【００６４】
高速コンタクトデータベース４０５は、次の呼出しの際に更新すべきデバイスについてのパラメータ更新のリストを保存する。ＲＣＳがスタートアップするとき、それらのローカルキャッシュの種をまく為に高速コンタクトデータベース４０５に直接問い合わせる。ＣＣ及びＥＭＳは、どのアクションが完了しているかについての情報を取得する為に、データベース４１０に直接知合わせる。データベース４１５はまた、ＥＭＳ及びＣＣがどのデバイが現在オンラインでありそうかを示すことができるように、各デバイスが最後に呼出しを行ったときについての非蓄積型の履歴を維持する。
【００６５】
Ｆ．更なる実施形態のプロセス
図１４を参照すると、デバイスコンフィグレーションについてのシーケンス図が示されている。ＥＭＳ３９５は、デバイスについての高速コンタクトパラメータを設定する（５００）為に用いられ、要求されたデータをＣＴＤａｔａデータベース４２０（図１３）に送信する。ＥＭＳ３９５はまた、パラメータを統合サービス４００へ送信する（５０２）。
【００６６】
図１５において、デバイスパラメータ更新についてのシーケンス図が示されている。エージェントは、メインサーバに標準呼出しを行い、その間、通常メッセージが交換される。呼出し中、また、メインサーバは、ＣＴＤａｔａデータベースからデバイスについての高速呼出しパラメータを取り出す（５２２）。高速コンタクトパラメータがデバイス上で設定され（５２４）、これらが設定されると、完了したアクションの通知がメインサーバによってＥＭＳ３９５経由で統合サービス４００に対して送信される（５２６）。これに続き、デバイスとメインサーバ間で交換されるより標準的なメッセージ５２８が存在しても良い。
【００６７】
図１６において、ＲＣＳのスタートアップの為のシーケンス図が示されている。開始する為に、ＲＣＳは、高速コンタクトデータベース４０５から、あらゆる係属中のアクションを取得する（５４０）。ＲＣＳは、ローカルアクションテーブルキャッシュ３５にあらゆる係属中アクションを書き込み（５４２）、統合サービス４００に登録する（５４４）。
【００６８】
図１７において、新たなパラメータをポーリングする為の又は強制呼出しの為のシーケンス図が示されている。タイマ５６０が切れた後、統合サービス４００は、データベース４０５内のアクションテーブルから新たなアクション５６２を取得し、その後、ＲＣＳへ新たなアクションを通知する。
【００６９】
図１８において、係属中のパラメータ更新又は強制呼出し命令が無い場合における、ＲＣＳ３０への高速エージェント呼出しの為のシーケンス図が示される。最初に、エージェントは、ＲＣＳへの高速呼出しを行う。ＲＣＳは、デバイスについての最後の呼出し時間を統合サービスに送信し（５８４）、統合サービスは次に内部メモリデータベース４１５内の呼出しテーブルに最後の呼出し時間を送信する（５８４）。ＲＣＳは、次に、デバイス１２にとって係属中であろうあらゆるアクションを求めてローカルデータベースキャッシュ３５内を検索する。それが無いので、ＲＣＳは、単に、肯定応答をデバイスに返信する。
【００７０】
図１９において、係属中のパラメータ更新又は強制呼出しがある場合におけるＲＣＳ３０への高速呼出しの為のシーケンス図が示されている。最初に、エージェントは、ＲＣＳを呼出し（６００）、ＲＣＳは、統合サーバに最後の呼出し時間を送信する（６０２）。統合サーバは、次に、データベース内の最後の呼出しテーブルに最後の呼出し時間を送信する（６０４）。ＲＣＳは、この場合には設定すべき新たなパラメータである、デバイスにとってのあらゆる係属中のアクションを取得する（６０６）。新たなパラメータは、エージェントに送信され（６０８）、次に、アクションが完了して、デバイスを待つアクションのリストから削除される（６１０）。完了したアクションは、統合サーバにて完了として設定され（６１２）、統合サーバは、次に、アクションテーブル内でアクションを完了として設定し（６１４）、アクションテーブル履歴内でエントリ６１６を作成する。
【００７１】
Ｇ．スケーリング
図２０に示すように、高速コンタクトシステム１０は、ロードバランサ７００経由でネットワーク１８に接続された複数のＲＣＳを含んでいても良い。統合サーバ４００の最大能力に達した場合、それぞれがＲＣＳ３０の所定の組を担当し、及び、それぞれが、呼出しを行うデバイス１２についてのデータ及びアクションを保存するよう構成された対応のデータベース７０５、７１０を有する、１以上の更なる統合サーバが追加されても良い。各追加の統合サーバ又は統合サーバのグループの為に、対応のデバイス１２が呼び出す為の独自のパブリックＩＰアドレスを持つ、別の追加のロードバランサが存在しても良い。Apache CassandraTM、Microsoft VelocityTM、又はMicrosoft Server AppFabricTMといった高性能分散データストアが使用されても良く、それにより、全ての統合サーバは本質的に同じデータに対して動作することができる。
【００７２】
Ｈ．産業上の利用性
高速コンタクトシステムは、データ削除、デバイスフリーズ等の遠隔デバイス上でのセキュリティ対策を起動する為に、デバイスの管理者又は所有者が要する時間を減じることができる。更に、保護されたデバイスと監視サーバ間の通信チャンネルの利用性は、コストを要することなく、また、継続的な接続を維持する為に必要なリソースやバンド帯域を用いることなく頻繁ではないが断続的に維持される。
【００７３】
Ｉ．変形例
ＲＣＳ３０への異なる呼出し間隔が用いられても良い。例えば、ＲＣＳが、毎分１００，０００呼出しを取り扱うことができる場合、３０分のシステムワイド呼出し間隔は、３００万のデバイスを管理することを可能にするであろう。代替として、呼出し間隔が５分に設定される場合、５０万のデバイスを管理することができる。
【００７４】
フィールド又はフラグを読むことが要求される場合、エージェント１４は、要求されないいくつかのものを含む一組のフィールド又はフラグではなく、まさに関連するものを読むように構成されても良い。
【００７５】
デバイスは、それらがホームネットワークに接続されているか否かに応じて、異なる時間間隔で高速呼出しを行うように構成されていても良い。デバイスは、一般にそれらのホームネットワーク上でより安全であると考えられるので、１時間といったいっそう長い高速呼出し間隔が許容されるであろう。デバイスがオフィス又はホームを出るとき、安全さが低くなると考えられ、高速呼出し間隔は、例えば５分に減じられても良い。この特徴は、エージェント内で、又は、ＲＣＳ内で実施されても良い。
【００７６】
主たるＲＣＳが停止し又は動作上の問題を被るような場合、バックアップＲＣＳが用いられても良い。
【００７７】
いくつかの実施形態において、開示された構成の背後にある基本原理を、技術的な意味において高速コンタクトサーバの使用無しに実施することができる。従って、例えば、いくつかの実施形態では、監視センタは、それぞれ異なるプロトコルを用いて電子デバイスと通信することができる第１のサーバと第２のサーバを備え、（必要というわけではないが、高速コンタクトサーバであっても良い）第２のサーバがデバイスとの比較的短く頻繁な通信にいっそう適するようになっていても良い。第２のサーバは、電子デバイスに、例えば電子デバイスが盗まれたとレポートされたとき第１のサーバにコンタクトするように（第２のプロトコルを用いて）命令しても良く；それから、電子デバイスは、（第１のプロトコルを用いて）第１のサーバにコンタクトし上述の１以上のセキュリティ命令を取り出しても良い。
【００７８】
可能であれば、一つのサーバによって実行されると記載された高速コンタクトシステムの機能は、別々のサーバ間で分けられても良く、複数のサーバで実行されると記載された機能は、同一のサーバ上に統合されても良い。中間サーバが、システム内で用いられても良い。データベースもまた、本明細書中に示されたものと異なる構成で配置されても良い。
【００７９】
デバイス１２は、一つの又は両方のサーバに、ランダムベースで、準ランダムベースで、又は次第に変化する時間ベースで呼出しを行っても良い。
【００８０】
高速コンタクトシステム１０が高速呼出しが受信されたときデバイス１２に肯定応答を送信するように構成される場合、取るべきアクションがないときには、エージェント１４は、肯定応答がない所定数の連続的な高速呼出しを行った後、直ちにメインサーバ５２を呼び出すように構成されていても良い。
【００８１】
高速コンタクトシステム１０は、ＲＣＳによってそのように命令される場合、エージェントがメインサーバへの呼び出しのみ行うように構成されていても良い。デバイスにとって未解決のアクションがない場合、メインサーバを呼び出す必要はないであろう。
【００８２】
高速呼出しが無いことは必ずしも心拍がないことにより生じるであろう様な問題を意味するわけではないので、ＲＣＳ３０への高速呼出しは心拍とは異なる。また、しばしば心拍によってはそうされるけれども、高速呼出しではデバイス１２のステータスに関する情報は伝達されない。ＲＣＳ３０からの応答は必要ではなく、他方、ピングは応答を要求するので、高速呼出しはピングとも異なる。高速呼出しは、応答を要求することなく遠くでコンタクトすることを意味する‘つつくこと’に近い。
【００８３】
接続がメータで記録されそうか否かにより、エージェントは、ＲＣＳに異なる速度でコンタクトするように構成されていても良い。例えば、移動通信帯域上でなされるか否かにより。
【００８４】
ステップは、説明されたものと異なる順序で実行されても良く、又は、別々に示された場合において統合されても良い。本発明の範囲内で、ステップは省略され、他のものが追加されても良く、また、異なるフローチャートからのステップと交換されても良い。本明細書において“エージェント”によって実行されると記載されるタスクは、エージェントのプログラムコードといった、エージェントのコントロール下で、関連のデバイスによって実行されても良い。
【００８５】
異なる量、相対的な量、サイズ、時間間隔、パケット長、パケット数、シリアル番号フォーマット、及び他の簡単な変更も考えることができる。
【００８６】
本記載は、本明細書中で開示されクレームされる主題を実施する現在考えられる最良のモードについてのものである。本記述は、主題の一般的な原理を説明する目的でなされており、限定する意味で理解されてはならず；主題の根底にある原理の理解から当分野の専門家にとって明らかであろうように、主題は、なされた開示の範囲を逸脱することなく、様々な実施における有用性を見出すことができる。
【図１】
0006349319.tif 000003
【図２】
0006349319.tif 000004
【図３】
0006349319.tif 000005
【図４】
0006349319.tif 000006
【図５】
0006349319.tif 000007
【図６】
0006349319.tif 000008
【図７】
0006349319.tif 000009
【図８】
0006349319.tif 000010
【図９】
0006349319.tif 000011
【図１０】
0006349319.tif 000012
【図１１】
0006349319.tif 000013
【図１２】
0006349319.tif 000014
【図１３】
0006349319.tif 000015
【図１４】
0006349319.tif 000016
【図１５】
0006349319.tif 000017
【図１６】
0006349319.tif 000018
【図１７】
0006349319.tif 000019
【図１８】
0006349319.tif 000020
【図１９】
0006349319.tif 000021
【図２０】
0006349319.tif 000022