(57)【要約】  本発明は、リモート装置に通知を提供するシステムおよび方法を提供する。構造においては、システムは操作を実行するコンピュータ装置を含む。コンピュータ装置は、ＩＰ送信手段を使用してリモート装置にメッセージを送信するメッセージ送信モジュールと、ＩＰ送信手段によって送信されたメッセージがリモート装置によって受信されていないことを判定する判定モジュールを備える。更にコンピュータ装置は、ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する再送モジュールを備える。本発明は、リモート装置に通知を提供する方法としても見られる。この方法は、（１）ＩＰ送信手段を使用してリモート装置にメッセージを送信し、（２）ＩＰ送信手段によって送信されたメッセージがリモート装置によって受信されていないことを判定し、（３）ＳＭＳ送信手段を使用して自動的にメッセージを再送することによって動作する。【選択図】図１
2007526666.tif 000002
【特許請求の範囲】
【請求項１】
インターネットプロトコルおよびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供する方法であって、
ＩＰ送信手段を使用してメッセージをリモート装置に送信し、
前記ＩＰ送信手段によって送信された前記メッセージが、前記リモート装置によって受信されなかったと判定し、
ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する
ステップを備える方法。
【請求項２】
前記メッセージは通知メッセージである請求項１に記載の方法。
【請求項３】
前記メッセージは暗号化される請求項１に記載の方法。
【請求項４】
請求項１に記載の方法は更に、
前記ＳＭＳ送信手段を使用して前記メッセージを再送する前に、予め定められた時間を待機する方法。
【請求項５】
ショートメッセージサービス（ＳＭＳ）が可能なリモート装置へ通知を提供する方法であって、
ＳＭＳ送信手段を用いて前記リモート装置に通知メッセージを送信し、
前記通知メッセージが受信されなかった場合、前記ＳＭＳ送信手段を用いて、予め定められた期間を待機した後に前記通知メッセージを再送し、
増加された予め定められた期間を待機した後に、前記通知メッセージを再送するステップを繰り返す
ステップを備える方法。
【請求項６】
請求項５に記載の方法において、前記メッセージは暗号化される方法。
【請求項７】
請求項５に記載の方法は更に、
予め定められたリトライ数を超えると、前記再送するステップを終了する
ステップを備える方法。
【請求項８】
インターネットプロトコル（ＩＰ）およびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供する方法であって、
前記リモート装置へ送信されるメッセージを取得し、
ＩＰ送信手段を使用して、前記リモート装置のアクションを保留することを支持する通知メッセージを送信し、
前記ＩＰ送信手段によって送信されたメッセージが、前記リモート装置によって受信されていないことが判定され、
ＳＭＳ送信手段を使用して、自動的に前記メッセージを再送する
ステップを備える方法。
【請求項９】
請求項８に記載の方法は更に、
増加された予め定められた期間を待機した後に、前記通知メッセージを再送するステップを繰り返す
ステップを備える方法。
【請求項１０】
インターネットプロトコル（ＩＰ）が可能なリモート装置に通知を提供する方法であって、
前記リモート装置からの接続を提供し、
前記リモート装置が直接アドレス可能でないと判定し、将来の通知メッセージのための前記接続を維持し、
前記リモート装置が直接アドレス可能でないと判定される場合、前記接続が落とされる前に前記リモート装置のアドレスを記録し、
前記アドレスを使用して前記リモート装置への前記接続を再確立する
ステップを備える方法。
【請求項１１】
インターネットプロトコル（ＩＰ）およびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供するシステムであって、
ＩＰ送信手段を用いて前記リモート装置にメッセージを送信するメッセージ送信モジュールと、
前記ＩＰ送信手段によって送信された前記メッセージが、前記リモート装置によって受信されなかったことを判定する判定モジュールと、
ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する再送モジュール
を備えるシステム。
【請求項１２】
請求項１１に記載のシステムであって、前記メッセージは通知メッセージであるシステム。
【請求項１３】
請求項１１に記載のシステムであって、前記メッセージは暗号化されているシステム。
【請求項１４】
請求項１１に記載のシステムは更に、
前記ＳＭＳ送信手段を使用して前記メッセージを再送する前に、予め定められた期間を待機するモジュール
を備えるシステム。
【請求項１５】
ショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供するシステムであって、
通知メッセージをSMS送信手段を使用しているリモート装置に送信するメッセージ送信モジュールと、
再び送るそれが送信される通知メッセージが受信されない場合、SMS送信手段を使用している予め定められた期間を待って、通知メッセージを再び送るモジュールと、
そして、増加する予め定められた期間を待った後に通知メッセージを再び送る繰返送信モジュール
を備えるシステム。
【請求項１６】
請求項１５に記載のシステムであって、前記メッセージが暗号化されているシステム。
【請求項１７】
請求項１１に記載のシステムは更に、
予め定められた数のリトライの後に再送を終了する終了モジュール
を備えるシステム。
【請求項１８】
インターネットプロトコル（ＩＰ）およびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供するシステムであって、
前記リモート装置に送信されるべきメッセージを得るメッセージ受信モジュールと、
ＩＰ送信手段を使用して前記リモート装置を保留にするアクションを示す通知メッセージを送信する送信モジュールと、
前記ＩＰ送信手段によって送信された前記メッセージが前記リモート装置によって受信されなかったことを判定する手段と、
ＳＭＳ送信手段を使用して自動的に前記メッセージを送信する手段
を備えるシステム。
【請求項１９】
請求項１８のシステムであって、前記メッセージは暗号化されているシステム。
【請求項２０】
インターネットプロトコル（ＩＰ）が可能なリモート装置に通知を提供するシステムであって、
前記リモート装置からの接続を提供する接続モジュールと、
前記リモート装置が直接アドレス指定可能でないかどうか判定して、将来の通知メッセージのための接続を維持する判定モジュールと、
前記リモート装置が直接アドレス指定可能であると決定される場合、前記接続を落として、前記リモート装置の前記アドレスを記録する記録モジュールと、
前記アドレスを使用して、前記リモート装置に前記接続を再確立するモジュール
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザにイベントを知らせるための方法とシステム、特に遠隔装置上の通知を提供するための方法とシステムに関する。
【０００２】
関連出願についてのクロス・リファレンス
本出願は、２００３年６月１８日に出願され、「リモート装置の通知を提供するシステムおよび方法」と題される米国特許出願の出願番号６０／４７９，１５２号の便益を請求し、本願明細書において引用されるものとする。
【背景技術】
【０００３】
多くのビジネス環境において、サーバは多くの従業員に関係するデータまたはビジネスのリモートユーザを格納するために用いられる。サーバは、リモートユーザに情報の可用性を増やすために一般的にリモートコンピュータ装置（「クライアント」）によってアクセスできる。リモートコンピュータ装置によってアクセスされることができるサーバ上のファイルを提供することによって、企業による情報の普及は、増加する。営業戦力または多くの従業員がオフィスから離れて作動する環境において、データに対するリモートアクセスはより重大である。例えば、リモート従業員は、在庫変動、価格付けデータおよび企業イベントが知らされる最新の情報に依存する。
【０００４】
無期限にサーバに接続している残り、及びコレクトのデータ通信課金または電話回線よりは、リモートユーザは、サーバ上のデータにアクセスするために、彼らのコンピュータを断続的にサーバに接続しているだけである。
【０００５】
これらの環境において、クライアントがサーバに接続していないときでも、リモートコンピュータ装置はリモートアプリケーションをローカルにサポートするために一般的にサーバデータを格納する。断続的接続は、そのとき、サーバに対するクライアントアプリケーションと、サーバからクライアントへの変更に関連するセットによって作成される変更だけを送信するために用いられる。この種のリモートコンピュータシステム環境は、Intermittently Connected（ＩＣ）環境と呼ばれている。
【０００６】
この種のコンピュータ環境のための重要な通信論点は、クライアントおよびサーバとの間の、関連情報を含む情報のタイムリかつ効率的な交換である。用語「データ転送」は、しばしば、データの整合性を維持するプロセスと、サーバファイルおよびクライアントファイル間の完全性を評するために用いられる。整合性を維持するための多くのデータ転送スキームがある。いくつかの周知のファイル転送スキームにおいて、例えば能率的にファイルを転送するための圧縮などのさまざまなプロトコルおよび方法が、使われている。
【０００７】
現在、リモート装置のためのデータ転送は、リモート装置でのユーザ手動によって、或いは予め定められたスケジュールで開始される。手動でデータ転送を始めるときに、ユーザは手動でダウンロードされるデータがあるかどうか知ることなく通信を始めなければならない。ユーザによるコミットに合わせて接続を開始する場合も、リモート装置にダウンロードされるべきでないときに接続する場合も、この手動の開始は高価である。更なる要因は、ユーザがデータ源に接続することが可能でないときに、クライアントがデータ転送を始める時である。これは、時間において、そして、パワー消費量において費用のかかる。
【０００８】
予め定められたスケジュールでのスケジューリングデータ転送に伴う問題は、転送されるべきデータがなく、最終的な理由もないのに接続されてしまう場合があることである。これは、接続時間においても電源消費においても費用がかかる。予め定められたスケジュールデータ転送に伴う更なる問題は、スケジュール接続においてより大きいインターバルを有する方がより経済的であるというコスト理由のためである。これを伴う問題は、データがそれから最もタイムリな方法でダウンロードされないということである。小入力の役割のスケジューリングデータ転送に伴う問題としては、それがより多くの接続時間（バンド幅など）と電源消費を無駄にすることである。
【０００９】
このように、これまで、上述したようなリモート装置に迅速かつ効率よくデータをダウンロードする問題点を対処するために、産業界において対処されていない要求が存在する。
【発明の開示】
【００１０】
本発明は、リモート装置上の通知を提供するためのシステムと方法を提供する。
【００１１】
本発明は、コンピュータデバイス上の通知システムとして概念的に説明されることができる。コンピュータ装置は、ＩＰ送信手段を利用してリモート装置にメッセージを送信するメッセージ送信モジュールと、ＩＰ送信手段によって送信されたメッセージがリモート装置によって受信されていないことを判定する判定モジュールを備える。さらに、更なるコンピュータ装置は、ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する再送モジュールを更に備える。
【００１２】
本発明は、また、リモート装置上の通知を提供する方法として考察されてもよい。方法は、（１）ＩＰ送信手段を使用して前記リモート装置にメッセージを送信し、（２）前記ＩＰ送信手段によって送信された前記メッセージが前記リモート装置によって受信されていないことを判定し、そして、（３）ＳＭＳ送信手段を使用して自動的に前記メッセージを再送することによって動作される。
【発明を実施するための最良の形態】
【００１３】
請求項に記載の本発明は、以下の図面を参照してよりよく理解される。図面の範囲内の構成要素は、本発明の原理を明瞭に例示するために強調されている場合があり、各々と関連して必ずしも比例しているわけではない。
【００１４】
後述する本発明は、予め定められたイベントのユーザへの通知を提供している本発明において、通知システムを使用している全てのリモート装置に適用できる。単一のコンピュータに関して後述すると共に、多くのコンピュータが、ローカルエリアネットワーク（ＬＡＮ）を介して、ワイドエリアネットワーク（ＷＡＮ）を介して、またはＬＡＮ及びＷＡＮの組み合わせを介して通信するネットワーク化されたコンピュータアレンジにおいて、リモート装置通知システムためのシステムと方法は一般的に実行される。
【００１５】
本発明の通知システムは、以下の便益を提供する：
（１）データキャリア（例えばデータトランスポータ）ファイアウォールに適切に機能するイベントの通知を提供する；（２）クライアントに、インターネットカフェを含むアドレス指定問題がないあらゆる場所からでも有効な接続を開始させる；及び
（３）通知システム自身がインターネットプロトコル通知タイプに形成する通知システムを提供する；（４） 抑留接続及びサーバが伝送されるデータを有する場合にだけ確立される接続を必要としている環境のために最適化される。
【００１６】
本発明の通知システムは、クライアントによって開始された接続のみ許可するキャリアファイアウォールと、サーバが開始した接続のみを提供するように処理する。不必要で高価なトラフィックからそれらのユーザを保護するために、クライアントが開始した接続は、いくつかのキャリアのために必要である。非使用の予め定められた量の後、キャリアが接続を終結できるよいように、クライアントが開始した接続も、キャリアバンド幅を保護する。クライアントが接続を開始するので、これらに限定されるものではないが、モバイル装置、ラップトップ、ＰＣ、これらのあらゆるタイプのコンピュータ装置を含むリモート装置のあらゆる種類に、クライアントは接続することができる。さらに、クライアントがインターネットプロトコル（ＩＰ）サーバにコンタクトを開始して、接続のためにそのＩＰアドレスを提示するように、本発明の通知システムは自身で設定する。いくつかの他の接続タイプを介してユーザが接続したインスタンスにおいて、通知イベントのバックアップを提供するために、ショートメッセージサービス（ＳＭＳ）メッセージ技術が、利用されている。
【００１７】
モバイル専門家は、各装置に、特定のモバイル使用状況に独自に適切にさせるために、特定の仕様及び接続特性を有する複数のモバイルコンピューティング装置を持っている。この様々な装置が与えられている状態では、ユーザの明らかな問題は、電子メール、カレンダーの更新、および同様の問題などに限るものではないが、これらを含むイベント情報の通知である。本発明の通知システムは、リモート装置の全ての種類全体のイベントの一般的な通知を提供する。本発明の通知システムは、サーバ通知システムおよびクライアント通知システムを含む。サーバ通知システムおよびクライアント通知システムの例の説明は、次の通りである。
【００１８】
サーバ上の通知システムは、イベント通知登録エージェント、イベント通知収集エージェントおよびイベント通知送信エージェントの、３つの主要なサブコンポーネントを備える。通知システムが初期化するときに、これらのサブコンポーネントの各々は初期化される。サーバ上の通知システムがシャットダウンされるまで、これらのサブコンポーネントの各々は自分自身の責任に関連するイベントを処理する。
【００１９】
イベント通知登録エージェントは、クライアントからの登録イベントを収集して、ＩＰ通知を受信するために有効であるクライアントのリストを維持する。初期化の後、イベント通知登録エージェントは、クライアントから接続のための設定可能なポートにリスンする。それがクライアント接続を受信すると、クライアントから、クライアント装置ＩＤを含む伝送を待つ。リンクにエラーが発生することなく、装置ＩＤがシステムの周知の装置と一致する場合、イベント通知登録エージェントは、接続され、あらゆるＩＰ通知を受信するために有効な装置を記録する。それから、イベント通知登録エージェントは、この装置ＩＤに対する未解決の通知ペンディングがあるかを確かめるためにチェックする。
【００２０】
その場合は、それはペンディング通知を作成して、送信する。そうでない場合には、イベント通知登録エージェントは、メッセージペンディングがないことを示すメッセージを送信する。イベント通知登録エージェントはまた、それがクライアント装置に接続を再確立する能力を有する。イベント通知登録エージェントが彼がクライアント装置に接続を再確立することができると判定する場合、あなたがクライアント装置に接続を記録し、クライアント装置のアドレスを記録し、次の通信までの最大時間までクライアント装置を指示する。後で接続を再確立することが可能な場合、イベント通知登録エージェントはそれからクライアント装置との現在の接続を終了する。イベント通知登録エージェントがそれがクライアント装置を有する接続を再確立することができないと判定する場合、クライアント装置に対する接続は将来のデータ伝送のために維持される。
【００２１】
イベント通知収集エージェントは、さまざまなソースからの通知イベントを収集して、それらをフィルタに通して、総計して、送信のためのそれらをキューに入れる。イベント通知収集エージェントは、様々なソースからイベントを待つ。イベントに伴う装置が通知を受信するために設定される場合、イベントは、実際に通知を生じるイベントを制限することが可能ないくつかのフィルタのそれぞれに通される。一旦イベントがフィルタを通過すると、イベント通知収集エージェントは総計してイベントを待ち行列に入れる。通知イベントのターゲットであるクライアント装置のために、キューが存在しない場合、イベント通知収集エージェントはそれを作成する。イベント通知はそれから構成されて、キューに加えられ、そして、キュータイムアウトは予め定められた設定に初期化される。このタイムアウトが期限切れになるときに、キューにおいて蓄積されたいかなる通知を送信する時である。このタイムアウト周期は、予め設定された時間であってもよい。最後のデータ伝送は、スロットリングとして知られる技術で処理される。スロットリング期間は、クライアント装置への最後のデータ送信の後の期間により定められ、バンド幅を最小限にするためにあらゆる付加的期間がシステム管理者により定義される。
【００２２】
イベント通知送信エージェントは送信の準備ができている通知キューを検出し、送信されたこれらのイベントから通知メッセージを作成し、送信の最善の方法を選び、メッセージ送信を実行するする役割を果たす。
【００２３】
イベント通知送信エージェントは、タイムアウトが期限切れになったそれらを探しているイベント通知キューを監視する。キューがタイムアウトし、送信の準備が整ったことがわかると、イベント通知送信エージェントは、クライアント装置からイベント通知メッセージを構成する。予め判定された装置特定のキーによって、このメッセージは、暗号化される。一旦メッセージが開設されると、イベント通知送信エージェントはメッセージを送信するためにどの方法を用いるべきかについて判定する。イベント通知登録エージェントがＩＰ可能として装置を登記した場合、メッセージはＩＰリンクを通じて送信される。一方、デバイスがＳＭＳ可能である場合、メッセージはＳＭＴＰ上のＳＭＳ経由で送信される。
【００２４】
装置がイベント通知登録エージェントを経て登録された場合、イベント通知送信エージェントはイベント通知メッセージをＩＰリンクの上へ送信しようとする。送信がエラーなしで発生する場合、現在の通知メッセージの送信は終了している。エラーが発生する、または、リンクがもはや利用できない場合、装置がＳＭＳ可能であるときは、イベント通知メッセージはＳＭＳを経て送信される。装置がＳＭＳ可能でない場合、イベント通知メッセージはキューに入れられて、装置が再登録されるときに、イベント通知登録エージェントによって後で配信される。
【００２５】
イベント通知送信エージェントは現在の通知メッセージのためのリトライカウントを初期化し、現在時刻で通知メッセージにタイムスタンプを押し、メッセージのシーケンス番号を次の増分に設定することにより、ＳＭＳ送信を始める。メッセージは、それから装置へのＳＭＳ送信に変換される装置のためのキャリアに送信される。装置が適用範囲でない場合、送信は終了し、リトライは試みられない。装置が適用範囲である場合、イベント通知送信エージェントは可変な予め定められた期間を待つ。この期間が期限切れになったあと、イベント通知送信エージェントはクライアント装置が通知メッセージのタイムスタンプの後、サーバに接続したかことをどうか確かめるために調べる。もしそうならば、送信は承認されたと仮定され、送信は終了する。そうでない場合には、イベント通知送信エージェントは、リトライの番号がリトライ範囲を越えたかことをどうか確かめるために調べる。リトライ範囲が越えられた場合、装置は適用範囲外として記録され、送信は終了する。リトライ範囲が越えられなかった場合、リトライカウントがインクリメントされて、待機期間は増加し、イベント通知メッセージはＳＭＴＰを経て送信され、イベント通知送信エージェントは期間の期限切れを待つことに戻る。
【００２６】
リモート装置上のリモート通知システムは、サーバからイベント通知メッセージを受信するために役割を果たす。そして、解読して、メッセージをデコードして、クライアント装置上のメッセージにおいて特定される動作を実行する。リモート通知システムは、ＳＭＳおよび／またはＩＰソースからメッセージを受信することができる。ＳＭＳについては、リモート通知システムは、装置上のＳＭＳサブシステムから、メッセージを受信する。ＩＰについては、リモート通知システムは、サーバ自身へのリンクを確立および維持しなければならない。
【００２７】
スタートアップで、リモート通知システムは、予め定められたポートでサーバ上のイベント通知登録エージェントに接続する。接続が成功すると、装置は、それ自体を識別するためにサーバにその装置ＩＤを送り出す。スタートアップの後、リモート通知システムは、期限切れになる予め定められた期間の間、ＳＭＳおよび／またはＩＰを解してメッセージが到着するのを待つ。期間が期限切れになる場合、リモート通知システムはＩＰ接続のヘルスをチェックする。接続が失われた場合、接続は可能ならばサーバによって復旧される。それから、有効な接続が存在する場合、リモート通知システムはその装置ＩＤをサーバへ再送する。
【００２８】
メッセージがリモート通知システムに到着するときに、サーバおよびリモート装置によって予め合意に達されたキーによって、それは解読される。メッセージは、それから送信エンベロープから削除されて、それが有効な通知メッセージであることを確認するためにチェックされる。メッセージが有効な通知メッセージである場合、メッセージのシーケンス番号はそれがすでに処理されたメッセージであるかことをどうか確かめるために調べられる。リモート装置が適用範囲外にあった場合やサーバが送信をリトライした場合、リモート通知システムは、同じシーケンス番号のメッセージを並列して受信する場合もある。一旦リモート通知システムがそれがユニークな有効な通知メッセージを有すると判定すると、それは通知メッセージに含まれる命令を実行するために起動する適当なクライアントシステムを判定する。
【００２９】
さて図面に関連して、個別のビューの全体にわたって各数字が各要素を示し、図１は、本発明の通知システム１００を利用するコンピュータシステム（１１および２１）とリモート装置（１５、１７、１８および２３）を含んでいるリモート通知システム１０の環境の実施例を例示しているブロック図である。
【００３０】
各々のリモート装置は、アプリケーションを有して、ローカルデータ記憶装置１６を有してもよい。コンピュータサーバ１１および２１はアプリケーションを含み、サーバ１１は更に、ネットワーク１３の上の断続的接続１４（Ａ−Ｄ）を経てクライアントシステム１５、１７、１８および２３によってアクセスされるサーバデータベース１２を含む。
【００３１】
サーバ１１は、コンピュータネットワークのための管理上のソフトウェアを実行し、すべてのネットワークおよびその装置の一部またはすべてのアクセスを制御する。クライアントシステム１５、１７、１８および２３はデータベース１２に格納されるサーバデータを共有して、これに限定されるものではないが、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、モデムを利用する電話線、または岡野ネットワークのようなものなどのネットワーク１３上のサーバ１１にアクセスすることができる。サーバ１１は、また、構成の範囲内でローカルエリアネットワーク（ＬＡＮ）に接続されるかもしれない。
【００３２】
リモート通知システム１０の構成およびオペレーションは、それとともに関連するサーバ１１およびデータベース１２に予め知られたシステムより能率的にクライアントを取り扱うのを可能にする。特に、本発明のリモート通知システムは、リモート装置にダウンロードするためのデータのアベイラビリティの通知を提供する方法を提供する。
【００３３】
クライアントシステム１５、１７、１８および２３（図１）がサーバ１１に接続するときに、リモート装置と関連する識別およびＩＰアドレス情報は、データをリモート装置に配信するために用いられるためにサーバに送信される。クライアントシステム１５、１７、１８および２３は、各々リモートサイトに位置することができる。クライアントシステム１５、１７、１８および２３は、ＰＣ、ワークステーション、ラップトップ、ＰＤＡ、ページャー、ＷＡＰ装置、非ＷＡＰ装置、携帯電話、パーム装置含むが、これに限定されるものではない。リモートクライアントシステム１５、１７、１８および２３のひとつのユーザがサーバ１１のデータから現在の情報にアップロードされることを望むとき、サーバ１１にアクセスするために、クライアントシステム１５、１７、１８および２３は、これに限られるものではないが、ＷＡＮ、インターネットあるいは電話線などのネットワーク１３を介して通信する。
【００３４】
都合よく、本発明はサーバ１１からの転送の準備ができているデータがあるとリモート装置に通知することためのシステムと方法を提供する。最初に、リモート装置１５は、リモート装置がデータを受信する準備ができていることを示すためにサーバ１１に登録する。定期的に、サーバ１１は新規なデータがリモート装置１５に有効かどうか判定する。リモート装置１５がサーバ１１に接続するときに、リモート装置１５はリモートサーバ１１からそのデータをダウンロードする。
【００３５】
サードパーティベンダーのコンピュータシステム２１およびデータベース２２は、リモート装置への普及のための情報を得るためにリモート通知システムサーバ１１によってアクセスされてもよい。サードパーティベンダーコンピュータシステム２２およびデータベース２３から得られるデータは、ユーザリモート装置１５、１７、１８および２１に、後のアクセスを提供するためにサーバ１１に格納されてもよい。それは、また、リモートユーザ装置１５、１７、１８および２３がネットワーク１３を直接用いているサードパーティベンダーデータにアクセスすることができる特定の種類のデータを予想しても良い。
【００３６】
本発明の通知システム１００を利用している、図１に示すサーバ１１の実施例を示しているブロック図は、図２Ａにおいて例示される。本発明のリモート通知システム２２０のリモート部分を利用しているリモート装置を示している実施例は、図２Ｂにおいて例示される。リモート装置１５、１７、１８および２３は、ＰＣ、ワークステーション、ラップトップ、ＰＤＡ、ページャー、ＷＡＰ装置、非ＷＡＰ装置、携帯電話、パーム装置などを含むが、これに限定されるものではない。リモート装置１５、１７、１８および２３のコンポーネントは、実質的にサーバ１１（図２Ａ）のための説明のそれと類似している。
【００３７】
しかし、ユーザのリモート装置1１５、１７、１８および２３の多数のコンポーネントが、一般の機能においてより限られていてもよいことも考えられる。
【００３８】
通常、ハードウェアアーキテクチャに関して、図２Ａに示すように、コンピュータ装置１１および１２は、本願明細書においてプロセッサ４１、メモリ４２およびたとえばデータベースまたは記憶装置４８などのひとつ以上の入力および／または出力（Ｉ／Ｏ）装置を含み、これらはローカルインタフェース４３を解して通信可能に接続される。ローカルインタフェース４３は、たとえば、周知技術のように一つ以上のバスまたはほかの優先または無線の接続であるが、これに限られるものではない。ローカルインタフェース４３は、簡潔さのために省略されているが、コントローラ、バッファ（キャッシュ）、ドライバ、リピータおよびレシーバなどの通信可能な更なる要素を有することができる。更に、ローカルインタフェース４３は、上述したコンポーネントの中で、適切に通信可能にするためのアドレス、制御および／またはデータ接続を含んでもよい。
【００３９】
プロセッサ４１は、メモリ４２に格納されることができるソフトウェアを実行するためのハードウェアデバイスである。プロセッサ４１は、仮想的なあらゆるカスタムメイドか、コンピュータ１１および２１に関連するいくつかのプロセッサの中の市販のプロセッサ、中央処理装置（ＣＰＵ）または補助プロセッサ、そして、マイクロプロセッサ（マイクロチップの形状をしたもの）に基づく半導体またはマイクロプロセッサであっても良い。適切な市販の若干のマイクロプロセッサの実施例は、アメリカ合衆国のインテルから出ている８０ｘ８６、Ｐｅｎｔｉｕｍ、Ｃｅｌｅｒｏｎ、Ｘｅｏｎ又はＩｔａｎｉｕｍシリーズマイクロプロセッサ、アメリカ合衆国のＩＢＭから出ているＰｏｗｅｒＰＣマイクロプロセッサシリーズ、サン・マイクロシステムズから出ているＳｐａｒｃマイクロプロセッサ、アメリカ合衆国のヒューレットパッカード社から出ているＰＡ−ＲＩＳＣシリーズマイクロプロセッサ、アメリカ合衆国のモトローラ社から出ている６８ｘｘシリーズマイクロプロセッサなどがあるが、これに限定されるものではない。
【００４０】
メモリ４２は、例えばランダムアクセスメモリ（ＲＡＭ（例えばダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、その他）））および不揮発性素子（読取り専用メモリ（ＲＯＭ）など）、消去およびプログラム可能な読取り専用メモリ（ＥＰＲＯＭ）、電子的にプログラム可能な読取り専用メモリ（ＥＥＰＲＯＭ）、プログラム可能な読取り専用目盛り（ＰＲＯＭ）、テープ、コンパクトディスク（ＣＤ−ＲＯＭ）、ＤＶＤ読取り専用目盛り、磁気ディスク、ディスケット、カートリッジカセットなどのあらゆるひとつ又は揮発性記憶素子の組み合わせを含むことができる。さらに、メモリ４２は、電子回路、磁性物質、光学および／または他の種類の記憶媒体を取り入れることができる。メモリ４２は、さまざまなコンポーネントが、他の一つと離れたところに位置する分散型のアーキテクチャを有してもよいが、プロセッサ４１によってまだアクセスされる点に注意する。
【００４１】
メモリ４２のソフトウェアは、一つ以上の独立したプログラムを含むことができ、それぞれは論理関数を実行するための実行可能命令の命じられたリストから成る。
【００４２】
図２Ａにおいて例示される実施例において、メモリ４２のソフトウェアは、適切なＯＳ（Ｏ／Ｓ）５１および本発明の通知システム１００を含むが、これに限定されるものではない。通知システム１００はイベント通知登録エージェント１２０、イベント通知収集エージェント１４０、イベント通知送信エージェント１６０を更に含む。イベント通知送信エージェント１６０は、ＳＭＳメッセージ送信プロセス１８０を更に含む。ソフトウェアコンポーネントは、図３ないし図６Ｂに関して更に詳細に記載されている。
【００４３】
適切な市販のオペレーティングシステム５１の実施例の非網羅的なリストは、次の通りである：（ａ）マイクロソフト社からから入手可能なウィンドウズオペレーティングシステム；（ｂ）ノベル社から入手可能なネットウェアＮｅｔｗａｒｅオペレーティングシステム；（ｃ）アップルコンピュータ株式会社から入手可能なマッキントッシュオペレーティングシステム；（ｅ）ヒューレットパッカード社、サン・マイクロシステムズ社およびＡＴ＆Ｔなどの多くのベンダーから、購入で入手可能であるＵＮＩＸオペレーティングシステム；（ｄ）インターネットで直ちに入手可能であるフリーウェアのＬＩＮＵＸオペレーティングシステム；（ｅ）ウィンドリバーシステム社からのランタイムＶｘｗｏｒｋｓオペレーティングシステム；または（ｆ）ハンドヘルドコンピュータまたはパーソナルデータアシスタント（ＰＤＡ）などに実装される機器に基づくオペレーティングシステム（たとえば、シンビアン社から入手可能なシンビアンＯＳ、パームコンピューティング社から入手可能なパームＯＳ、マイクロソフト社から入手可能なウィンドウズモバイルなど）。
【００４４】
オペレーティングシステム５１は、本質的に他のコンピュータプログラムの例えばリモート装置同期アクティビティプロセス１００などの実行を制御して、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理および通信制御を適用し、および関連するサービスを制御する。しかし、本発明の通知システム１００が市販の他の全てのオペレーティングシステムに適用できることは、発明者によって予想される。
【００４５】
通知システム１００は、ソースプログラム、実行可能プログラム（オブジェクトコード）、スクリプトまたは実行されるべき一組の指示から成っている他のいかなる実体でもあってもよい。そのとき、ソースプログラム、そしてプログラムは、コンパイラ、アセンブラ、インタプリタ、等を経て通常翻訳され、Ｏ／Ｓ５１と接続して適切に動作可能なようにＯ／Ｓ５１と接続して適切に動作可能なようにメモリ４２に含まれてもよいし含まれなくてもよい。さらに、通知システム１００は、（ａ）データおよびメソッドのクラスを持つオブジェクト指向プログラミング言語として、または（ｂ）これに限定されるものではないが、Ｃ、Ｃ＋＋、Ｐａｓｃａｌ、ＢＡＳＩＣ、ＦＯＲＴＲＡＮ、ＣＯＢＯＬ、Ｐｅｒｌ、Ｊａｖａ、ＡＤＡなどのルーチン、サブルーチンおよび／または機能を有するプロシージャプログラミング言語として記載されてもよい。
【００４６】
入出力デバイスは、たとえばキーボード４５、マウス４４、スキャナ（図示せず）、マイクロフォン（図示せず）などの入力装置を含んでもよいが、これらの例に限られるものではない。さらに、入出力デバイスはまた、たとえばプリン（図示せず）、ディスプレイ４６などの出力装置を含んでもよいが、これらの例に限られるものではない。最後に、例えば、ＮＩＣ又はモデム（他のファイル、装置、システムまたはネットワークにアクセスするため）、ラジオ周波数（ＲＦ）または他のトランシーバ（図示せず）、電話のインタフェース（図示せず）、ブリッジ（図示せず）、ルーター（図示せず）などの入出力デバイスは入力および出力を伝達する装置を更に含んでもよいが、これらの例に限られるものではない。
【００４７】
コンピュータ１１および２１がＰＣ、ワークステーション、インテリジェント装置等である場合、メモリ４２のソフトウェアは基本入出力システム（ＢＩＯＳ）（簡潔さのために省略）を更に含んでもよい。ＢＩＯＳは、起動時にハードウェアを初期化して試験して、Ｏ／Ｓ５１を開始して、ハードウェア装置間のデータ転送を支援する一組の基本的なソフトウェアルーチンである。ＢＩＯＳは、例えばＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の数種類の読出し専用メモリに格納され、その結果、コンピュータが起動させられるときに、ＢＩＯＳは実行されることができる。
【００４８】
コンピュータ１１および２１が稼動中のときに、プロセッサ４１はメモリ４２内で格納されるソフトウェアを実行して、メモリ４２にデータを通信して、ソフトウェアに従って一般にコンピュータの動作を制御するために設定される。全体的にあるいは部分的に、通知システム１００およびＯ／Ｓ５１1はプロセッサ４１によって読まれ、おそらくプロセッサ４１内にバッファされて、それから実行される。
【００４９】
図２Ａおよび２Ｂに示されているように、通知システム１００がソフトウェアにおいて実装されるときに、通知システム１００が仮想的にいかなるコンピュータ関連したシステムもまたは方法用にまたはと関連していかなるコンピュータ読み込み可能なメディアにも格納されることができる点に留意する必要がある。このドキュメントのコンテクストにおいて、コンピュータ読み込み可能なメディアは電子的な、磁気的な、光学的な、あるいは他のフィジカルデバイスまたはそれ自身によって使用されるかコンピュータ関連のシステムあるいは方法に接続して使用されるコンピュータプログラムを含みまたは記憶する手段である。通知システム１００は、コンピュータによるシステム、プロセッサを含むシステムまたは命令の実行システム、装置またはデバイスからの命令をフェッチすることができて、命令を実行することができる他のシステムのような、命令の実行システム、装置またはデバイスによって、または接続されてあらゆるコンピュータ可読のメディアにも具体化されることができる。
【００５０】
このドキュメントのコンテクストにおいて、「コンピュータ可読のメディア」は、命令実行システム、装置またはデバイスによってまたは接続して、プログラムを格納、通信、伝播又は送信できるあらゆる手段であってもよい。コンピュータ読み込み可能なメディアは、たとえば、電子的、磁気の、光学の、電磁、赤外線の、または、半導体のシステム、装置、デバイスまたは伝搬メディアなどであるが、これに限定されるものではない。コンピュータ可読のメディアのより特有の実施例（非網羅的なリスト）は、一つ以上のワイヤを有している電気接続（電子回路）、ポータブルコンピュータディスケット（磁性）、ランダムアクセスメモリ（ＲＡＭ）（電子回路）、読取り専用メモリ（ＲＯＭ）（電子回路）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュメモリ）（電子回路）、光ファイバ（光学）および携帯型コンパクトディスク読取り専用メモリ（ＣＤＲＯＭ）（光学）、を含む。たとえば紙または他のメディアの光学式走査を経てプログラムが電子的に捕らえられ、それからコンパイルされて、インタープリトされて、または一方必要に応じて適切な方法で処理されて、それからコンピュータメモリに格納されてもよいように、コンピュータ読み取り可能なメディアが紙またはプログラムがプリントされたほかの適切なメディアであってもよいことに注意するべきである。
【００５１】
別の実施例において、通知システム１００がハードウェアにおいて実装される場合、通知システム１００は、データ信号で論理関数を実行するための論理ゲートを有している離散的な論理回路、適当な組み合わせの論理ゲートを有している用途特化集積回路（ＡＳＩＣ）、プログラム可能なゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、その他などの高知技術の各々、または組み合わせによって実装されてもよい。
【００５２】
図１に示す本発明のリモート通知システム２２０を利用しているリモート装置１５、１７、１８および２３の実施例を示しているブロック図は、図２Ｂにおいて例示される。
【００５３】
図示するように、リモート装置１５、１７、１８および２３は、図２Ａに関して記載されているサーバ１１と同じコンポーネントの多くを含む。以下に、リモート装置は、装置１５、１７、１８および２３であって、簡潔さのためのリモート装置１５として参照される。
【００５４】
リモート通知システム２２０を含むが、これに限定されるものではないリモート装置システム２００は、メモリ６２に位置する。リモート通知システム２２０を含むが、これに限定されるものではないリモート装置システム２００は、メモリ６２に位置する。リモート通知システム２２０は、クライアントリスンエージェント２４０およびクライアント通知処理プロシージャ２６０を更に含む。リモート通知システム２２０およびサブコンポーネントのクライアントリスンエージェント２４０およびクライアント通知処理プロシージャ２６０は、本願明細書において図７ないし図８Ｃに関して更に詳細に定義される。図２Ｂに示されているように、リモート通知システム２２０がソフトウェアにおいて実装される場合、それは仮想的にあらゆるコンピュータが読み込み可能なメディアに格納されて使用されてもよいし、あらゆるコンピュータに関するシステムあるいは方法で接続されてもよい。
【００５５】
別の実施例において、リモート装置システム２００がハードウェアにおいて実装される場合、リモート通知システム２２０は通知システム１００（図２Ａ）に関して、上記の通りに同様に実装されてもよい。例示される実施例において、それは本発明の通知システム１００と相互に作用するリモート通知システム２２０である。
【００５６】
図１および２Ａに示すサーバ１１上の本発明の通知システム１００のオペレーションの実施例を記載しているフローチャートは、図３において例示される。通知システム１００で、ユーザはリモート装置１５、１７、１８および２３へ転送されるサーバ１１上のデータのアベイラビリティの通知を得ることができる。サーバ１１上の通知システム１００は、イベント通知登録エージェント、イベント通知収集エージェントおよびイベント通知送信エージェント１６０の３つのサブコンポーネントから成る。通知システム１００が初期化されたあと、これらのサブコンポーネントの各々は初期化されて、バックグランドにおいて実行される。通知システム１００がシャットダウンされるまで、これらのサブコンポーネントの各々は自分自身の応答性に関連するイベントを処理する。
【００５７】
まずステップ１０１で、通知システム１００は、初期化される。この初期化は、スタートアップルーチンおよびサーバ１１のＢＩＯＳに記憶されるプロセスを含む。初期化はまた、サーバ１１および通知システム１００で利用される特定のデータ構造のためのデータ値の確立を含む。ステップ１０２で、通知システム１００は、イベント通知登録エージェントの実行を始める。イベント通知登録エージェントは、図４に関して更に詳細に本願明細書において定められる。イベント通知登録エージェントは、サーバ１１からの登録イベントを収集して、サーバ１１上の通知を受信するために有効であるリモート装置クライアントのリストを維持する。
【００５８】
ステップ１０３で、通知システム１００は、イベント通知収集エージェントの実行を始める。イベント通知収集エージェントは、図５に関して更に詳細に本願明細書において定められる。イベント通知収集エージェントは、通知を収集して、リモート装置１５に後の配信のためのそれらを告発した。
【００５９】
ステップ１０４で、通知システム１００は、イベント通知送信エージェントの実行を始める。イベント通知送信エージェントは、図６に関して更に詳細に本願明細書において定められる。イベント通知送信エージェントは、様々なソースからの通知イベントを収集し、リモート装置上のクライアントに送信するためにそれらをキューに入れる。
【００６０】
ステップ１０５で、通知システム１００は、通常のイベント通知処理を実行する。この通常のイベント通知処理は、通知情報の収集および送信を含む。ステップ１０６で、通知システム１００は、続けられたオペレーションが実行されることになっているかどうか判定する。続けられたオペレーションが実行されることになっていることがステップ１０６で判定される場合、多くの通知システム１００はステップ１０５および１０６を繰り返すために戻る。しかし、通常のイベント処理が発生しないことがステップ１０６で判定される場合、通知システム１００はステップ１０９で出る。
【００６１】
図１ないし３に示す本発明の通知システム１００で使用されているサーバ１１上のイベント通知登録エージェント１２０のオペレーションの実施例を記載しているフローチャートは、図４において例示される。イベント通知登録エージェント１２０は、クライアントからの登録イベントを収集して、ＩＰ通知を受信するために有効であるクライアントのリストを維持する。初期化の後、イベント通知登録エージェント１２０は、クライアントからの接続のために変更可能なポートにリスンする。それがクライアント接続を受信したあと、それはクライアント装置ＩＤを含んでいるクライアントから、送信を待つ。エラーがリンクに発生せず、装置ＩＤがシステムの周知の装置と一致する場合、イベント通知登録エージェント１２０が、装置を接続され、いかなるＩＰ通知も受信するために有効であると記録する。それから、イベント通知登録エージェント１２０は、この装置ＩＤのために待機中の未解決の通知があるかどうか確かめるためにチェックする。
【００６２】
未解決の通知保留がある場合、イベント通知登録エージェント１２０はペンディング通知をつくって、送り出す。そうでない場合には、イベント通知登録エージェント１２０は、次のチェックへ進む。最後のチェックは、サーバ１１上の通知システム１００がリモート装置１５上のリモート通知システム２２０へのリンクを再確立することが可能かどうか判定する。サーバ１１がリモート装置１５とのリンクを再確立することができる場合、サーバ１１は、リスンメッセージを送信し、リモート装置１５から切断する。
【００６３】
これは、リモート装置が直接アドレス指定可能な場合、バンド幅を保存するためにされる。サーバ１１がリモート装置１５とのリンクを再確立することができないと判定される場合、リモート装置１５およびサーバ１１の間リモート接続は維持される。
【００６４】
まずステップ１２１で、イベント通知登録エージェント１２０は、初期化される。この初期化は、スタートアップルーチンおよびサーバ１１のＢＩＯＳに記憶されるプロセスを含む。初期化も、イベント通知登録エージェント１２０において利用される特定のデータ構造のためのデータ値の確立を含む。
【００６５】
ステップ１２２で、イベント通知登録エージェント１２０は、リモート装置１５上のクライアントがインターネットプロトコル（ＩＰ）ソケットを経て接続するのを待つ。クライアントが接続したあと、イベント通知登録エージェント１２０はリモート装置ＩＤおよびＩＰソケット情報を用いているクライアントを検証する。装置IDおよびIPソケットを検証した後に、イベント通知登録エージェント120は、登録のためのＩＤ、認証およびＩＰソケット情報をサーバ１１に送信する。ステップ１２５で、イベントが登録エージェント１２０は、認証情報を解読する。好ましい実施例において、認証情報は、解読において用いられるキーと一致する所定のキーと、各メッセージの受信を一意に識別するシーケンス番号を含むあらゆるものを含む。シーケンス番号は、悪意のある個人によってリプレイされている登録メッセージと、予め処理された登録メッセージを再処理することを予防するために用いられる。
【００６６】
ステップ１２６で、イベント通知登録エージェント１２０は、それからクライアント情報を検証しようとする。クライアント情報は、クライアント装置ＩＤ、パスコード、シーケンス番号およびＩＰリンクのうち少なくとも一つの以下を含むが、規制されない。チェックされるクライアント情報のいずれかが不当であることがステップ１２６で判定される場合、イベント通知登録エージェント１２０は、ステップ１２７で接続を拒絶し、ステップ１２２で接続する次のクライアントを待機するために戻る。しかし、チェックされるクライアント情報が有効であることがステップ１２６で判定される場合、ステップ１２８で、リモート装置１５上のクライアントは接続されたとして認識され、情報はまた、サーバ１１に送信される。
【００６７】
ステップ１２９で、サーバ１１が現在登録されているリモート装置１５上のクライアントにリンクを再確立できるか判定する。サーバ１１が、現在登録されているリモート装置１５上のクライアントへのリンクを再確立できないと判定された場合、ステップ１３１で、イベント通知登録エージェント１２０は、ＰＩＮＧ（ＰＩＮＧメッセージは単にリモート装置１５がまだ接続されていることを確認するためのメッセージである）を送信し、ステップ１３３に進む。しかし、サーバ１１が、現在登録されているリモート装置１５上のクライアントへのリンクを再確立できると判定された場合、イベント通知登録エージェント１２０は、ステップ１３２で、再確立可能なリンクとして記録し、ＩＰアドレスを記録する。
【００６８】
ステップ１３３で、イベント通知登録エージェント１２０が送信される未解決のイベント通知メッセージが現在リモート装置15上のクライアントに登録されているかどうかを判定する。送信される未解決のイベント通知メッセージがない場合、イベント通知登録エージェント１２０は、ステップ１３５に進む。しかし、ステップ１３３で未解決のイベント通知メッセージがあることが判定される場合、未解決のイベント通知メッセージがステップ１３４で送信される。
【００６９】
ステップ１３５で、サーバ１１は、現在登録されているリモート装置１５上のクライアントへのリンクを再確立できるかどうかが、再び判定される。サーバ１１は、現在登録されているリモート装置１５上のクライアントへのリンクを再確立できないと判定する場合、イベント通知登録エージェント１２０は、ステップ１３８に進む。しかし、サーバ１１は、現在登録されているリモート装置１５上のクライアントへのリンクを再確立できると判定される場合、イベント通知登録エージェント１２０は、ステップ１３６で、現在登録されているリモート装置１５のクライアントへＬＴＭ（listen to me）メッセージを送信する。サーバ１１は、リモート装置１５によって必要なときにコンタクトを開始することができるように、ＬＴＭメッセージはリモート装置１５に、サーバ１１との現在の接続を落とすように指示する。ステップ１３７で、登録されているリモート装置１５上のクライアントへの接続リンクは、落とされる。
【００７０】
ステップ１３８で、イベント通知登録エージェント１２０は、実行されるべきイベント通知登録が更にあるかどうか判定する。処理されるべきイベント通知登録が更にあることがステップ１３８で判定される場合、イベント通知登録エージェント１２０はステップ１２２から１３８を繰り返すために戻る。しかし、処理されるべき登録がもうないと判定される場合、イベント通知登録エージェント１２０はステップ１３９で終了する。
【００７１】
別の実施例において、クライアントが通知を終了する、または、リモート装置が接続を落とすまで、イベント通知登録エージェント１２０は、リモート装置１５上のクライアントへの接続を維持する。
【００７２】
そしてまた他の別の実施例では、イベント通知登録エージェント１２０は、リンクが落ちた後にリモート装置１５のクライアントをアドレッシングする。クライアントへの接続が確立されていない場合、サーバ１１は、リモート装置を適用範囲外で接続されていないと記録する。
【００７３】
図２Ａないし３に示す本発明の通知システム１００で使用されているイベント通知収集エージェント１４０のオペレーションの実施例を記載しているフローチャートは、図５において例示される。イベント通知収集エージェント１４０は、送信のためにさまざまなソースからの通知イベントを収集して、フィルタにそれらを通過して、集めて、それらをキューに入れる。イベントに伴うリモート装置１５が通知を受信するために設定される場合、イ実際に通知を発生するイベントを制限するために設けられたいくつかの可能なフィルタのそれぞれに、イベントが通過される。一旦イベントがフィルタを通過すると、イベント通知収集エージェントはイベントをキューに入れる。通知イベントのターゲットであるクライアント装置のために、キューが存在しない場合、イベント通知収集エージェント１４０はそれをつくる。イベント通知はそれから構成されて、キューに加えられ、そして、キュータイムアウトは予め定められた設定に初期化される。このタイムアウトが期限切れになるときに、キューにおいて蓄積されたあらゆる通知を送信する時である。このタイムアウト周期は、最後のデータ伝送からの予め設定された期間であって、スロットリングとしての公知の技術によって処理されても良い。スロットリング期間は、クライアント装置への最後のデータ伝送からの特定の期間から判定され、バンド幅稼働率を最小化にするために、あらゆる付加的期間がシステム管理者によって処理される。
【００７４】
最初に、イベント通知収集エージェント１４０は、ステップ１４１でサーバ１１で初期化されて、上記した通知システム１００の初期化と類似した機能を実行する。初期化はまた、イベント通知収集エージェント１４０において利用される特定のデータ構造のためのデータ値の確立を含む。ステップ１４２で、イベント通知収集エージェント１４０は、サーバ１１からイベント通知を受信するのを待つ。
【００７５】
ステップ１４３で、本発明のイベント通知収集エージェント１４０は、受信されたイベント通知が意図されたリモート装置１５上のクライアントに使用可かどうか判定する。意図されたリモート装置１５がイベント通知を受信できないことがステップ１４３で判定される場合、イベント通知収集エージェント１４０はステップ１４２で次のイベント通知のための待機へ戻る。意図されたリモート装置１５上のクライアントがイベント通知受信できることがステップ１４３で判定される場合、イベント通知収集エージェント１４０は、ステップ１４４で受信されるイベント通知にフィルタをかける。
【００７６】
ステップ１４５で、受信されたイベント通知は、イベント通知フィルタを通過したことが判定される。ステップ１４４でイベント通知がイベントフィルタを通過しない場合、イベント通知収集エージェント１４０ステップ１４２に戻り、次のイベント通知を受信するために待機する。しかし、ステップ１４４で受信されるイベント通知がイベントフィルタを通過したことが判定される場合、イベント通知収集エージェント１４０は、ステップ１５１でイベントキューが意図された遠隔装置１５上のクライアントのために、すでに作成されるかどうか判定する。
【００７７】
イベントキューが意図されたリモート装置１５上のクライアントのために、すでに作成されることがステップ１５１で判定される場合、イベント通知収集エージェント１４０は、ステップ１５３にすすむ。しかし、現在のイベント通知についての他のいかなるキューもないことがステップ１５１で判定される場合、イベント通知収集エージェント１４０は、ステップ１５２で意図されたリモート装置１５上のクライアントのためのイベントキューを作成する。
【００７８】
ステップ１５３で、イベント通知収集エージェント１４０は、それからイベント通知をリモート装置１５上の意図されたクライアントのためのイベントキューに加わる。ステップ１５４で、イベント通知収集エージェント１４０は、キューのイベント通知を送信するために期間を予め定められた期間にリセットする。
【００７９】
ステップ１５５で、イベント通知収集エージェント１４０は、更に処理されるべきイベント通知があるかどうか判定する。更に処理されるべきイベント通知があることがステップ１５５で判定される場合、イベント通知収集エージェント１４０は、ステップ１４２から１５５を繰り返すために戻る。しかし、更に処理されるべきイベント通知がないことがステップ１５５で判定される場合、イベント通知収集エージェント１４０はステップ１５９で終了する。
【００８０】
図２Ａないし３に示す本発明の通知システム１００で使用されているイベント通知送信エージェント１６０のオペレーションの実施例を記載しているフローチャートは、図６Ａにおいて例示される。イベント通知送信エージェント１６０は送信の準備ができている通知キューを検出し、送信されるこれらのイベントからの通知メッセージをつくって、送信の最高の方法を選んで、メッセージ伝送を実行するための役割を果たす。
【００８１】
イベント通知送信エージェント１６０は、タイムアウトが期限切れになったそれらを探しているイベント通知キューを監視する。タイムアウトし、さらに送信準備ができているキューが見つけられると、イベント通知送信エージェント１６０は、リモート装置１５上の意図されたクライアントのためのイベント通知メッセージを構成する。好ましい実施例において、予め判定されたリモート装置特定キーによって、このメッセージは、暗号化される。装置特定キーは、異なる方法の判定された番号であることができる。好ましい実施例において、装置特定キーは、サーバ１１とリモート装置１５の同期している間に、決められる。リモート装置１５上の情報の同期の実施例は、２００２年１月３日に出願され、「リモート装置間のデータ同期方法におけるシステム」と題される米国特許出願出願番号１０／０３７，６２６に記載されており、完全に本願明細書において引用したものとする。
【００８２】
一旦メッセージが構成されると、イベント通知送信エージェント１６０は、メッセージを送信するためにどの方法を使用するべきかについて判定する。イベント通知送信エージェント１６０がＩＰ可能として装置を登録した場合、メッセージはＩＰリンクを通じて送り出される。一方、装置がＳＭＳ可能である場合、メッセージはＳＭＴＰの上のＳＭＳを経て送り出される。
【００８３】
まずステップ１６１で、イベント通知送信エージェント１６０は、サーバ１１で初期化されて、上記の通りに通知システム１００の初期化と類似した機能を実行する。初期化はまた、イベント通知送信エージェント１６０において利用される特定のデータ構造のためのデータ値の確立を含む。ステップ１６２で、イベント通知送信エージェント１６０は、キューの予め定められた期間が期限切れになるのを待つ。
【００８４】
キューがステップ１６２で期限切れになると、イベント通知送信エージェント１１６は、それからステップ１６３でイベント通知メッセージを作成する。好ましい実施例において、このイベント通知メッセージは、ステップ１６４で予め定められた暗号化キーによって暗号化される。好ましい実施例において、予め定められた暗号化キーは、サーバ１１とリモート装置１５が同期している間に、決められる。しかし、別の実施例では、イベント通知メッセージは、暗号化されずに送信されてもよい。
【００８５】
ステップ１６５で、リモート装置上の意図されたクライアントがＩＰ可能であるか（すなわち登録されているか）が判定される。意図されたクライアントがＩＰ可能でないことがステップ１６５で判定される場合、イベント通知送信エージェント１６６はステップ１７３に進む。しかし、それがリモート装置１５上の意図されたクライアントでＩＰ可能であるとステップ１６５で判定される場合、イベント通知送信エージェント１６０は、ステップ１６６でリモート装置１５上の意図されたクライアントのためのＩＰリンクが再確立されることが可能かどうか判定する。ＩＰリンクが再確立されないことがステップ１６６で判定される場合、イベント通知送信エージェント１６０はステップ１７１に進む。しかし、リモート装置１５上の意図されたクライアントのＩＰリンクが再接続できると判定される場合、イベント通知送信エージェント１６０は、それからイベント通知登録エージェント１２０（図４）によるイベント登録の間に得られたＩＰアドレスを使用してリモート装置１５上の意図されたクライアントとのリンクを確率する。
【００８６】
ステップ１７１で、イベント通知メッセージは、イベント登録の間に得られたＩＰアドレスまたはソケット情報に送信される。ステップ１７２で、イベント通知送信エージェント１６０は、イベント通知メッセージがリモート装置15上の意図されたクライアントによって受信されたかどうか判定する。イベント通知メッセージが意図されたクライアントによって受信されたと判定される場合、イベント通知送信エージェント１６３は、ステップ１６２で次のキューが期限切れになるのを待機するために戻る。しかし、イベント通知メッセージがリモート装置１５上の意図されたクライアントによって、受信されなかったことがステップ１７２で判定される場合、ステップ１７３でイベント通知送信エージェント１６０はリモート装置１５上のクライアントがＳＭＳ可能であるかどうか判定する。
【００８７】
ステップ１７３で、リモート装置上のクライアントがＳＭＳ可能でないと判定される場合、それからイベント通知送信エージェント１６０は、ステップ１７４でイベント通知メッセージをキューに入れ、更にステップ１６２で次のキューが期限切れになるのを待機するために戻る。しかし、リモート装置１５上の意図されたクライアントがＳＭＳ可能であることがステップ１７３で判定される場合、イベント通知送信エージェント１６０は、ステップ１７５でＳＭＳメッセージ送信プロセスを実行する。ＳＭＳメッセージ送信プロセスは、本願明細書において図６Ｂに関して更に詳細に定められる。
【００８８】
ステップ１７６で、イベント通知送信エージェント１６０は、更に処理されるべきイベント通知キューがあるかどうか判定する。更に処理されるべきイベント通知キューがあることがステップ１７６で判定される場合、イベント通知送信エージェント１６０は、ステップ１６２から１７６を繰り返すために戻る。しかし、更に処理されるべきイベント通知キューがないことがステップ１７６で判定される場合、イベント通知送信エージェント１６０はステップ１７９で終了する。
【００８９】
図２Ａないし６Ａに示す本発明の通知システム１００のイベント通知送信エージェント１６０によって使用されるＳＭＳメッセージ送信プロセス１８０のオペレーションの実施例を記載しているフローチャートは、図６Ｂにおいて例示される。ＳＭＳメッセージ送信プロセス１８０は、現在の通知メッセージのためのリトライカウントを１に初期化し、通知メッセージを現在時刻でタイムスタンプし、メッセージのシーケンス番号を次の増分にセットすることによって、ＳＭＳ送信を始める。シーケンス番号は、独自にイベント通知メッセージのイベント通知メッセージおよび命令を識別するためのものである。
【００９０】
シーケンス番号は、また、イベント通知メッセージが不注意に逃がされる場合を指し示してもよい。
【００９１】
メッセージはそれから意図されたリモート装置１５のためのキャリアに送信され、ここで、それは意図されたリモート装置１５にＳＭＳ送信に変換される。意図されたリモート装置１５が適用範囲でない場合、送信は終了している、そして、リトライは試みられない。しかし、意図されたリモート装置15が適用範囲である場合、イベント通知送信エージェントは予め定められた可変な期間を待機する。
【００９２】
期間が期限切れになると、ＳＭＳメッセージ送信プロセス１８０は、通知メッセージのタイムスタンプの後、クライアント装置がサーバに接続したかどうか確かめるためにチェックする。もしそうならば、送信は承認されたと仮定され、送信は終了する。そうでない場合には、ＳＭＳメッセージ送信プロセス１８０は、リトライの番号がリトライ範囲を越えたかどうか確かめるためにチェックする。リトライ範囲が越えられた場合、装置は適用範囲外として記録され、送信は終了する。リトライ範囲が越えられなかった場合、リトライカウントがインクリメントされ、待機期間は増加し、イベント通知メッセージは再び送られ、そして、ＳＭＳメッセージ送信プロセス１８０が期期間が期限切れになるのを待機するために戻る。
【００９３】
まずステップ１８１で、ＳＭＳメッセージ送信プロセス１８０は、サーバ１１で初期化されて、上記の通りに通知システム１００の初期化と類似した機能を実行する。初期化はまた、ＳＭＳメッセージ送信プロセス１８０において利用される特定のデータ構造のためのデータ値の確立を含む。初期化はまた、リトライカウントをセットすることを含む。あらゆる数字がリトライカウントとして使用されてもよいことは理解されるが、好ましい実施の形態において、リトライカウントは３から５のリトライにセットされる。ステップ１８２で、ＳＭＳメッセージ送信プロセス１８０は、イベント通知メッセージにライムスタンプを押して、イベント通知メッセージのためのシーケンスカウンタをインクリメントする。シーケンスカウンタは、イベント通知メッセージと、イベント通知メッセージの順番を一意に識別するためのものである。シーケンスカウンタは、いつイベント通知メッセージが不注意にミスされたかを、指し示すことができる。
【００９４】
ステップ１８３で、サーバ１１上のＳＭＳメッセージ送信プロセス１８０は、意図されたクライアントのキャリアにＳＭＴＰを介してイベント通知メッセージを送信する。ステップ１８４で、ＳＭＳメッセージ送信プロセス１８０は、ステップ１８４で意図されたリモート装置１５が適用範囲であるかどうか判定する。意図されたリモート装置１５が適用範囲でないことがステップ１８４で判定される場合、ＳＭＳメッセージ送信プロセス１８０はステップ１９９で終了する。しかし、意図されたリモート装置15が適用範囲であることがステップ１８４で判定される場合、ＳＭＳメッセージ送信プロセス１８０は、ステップ１８５で予め定められた期間を待機する。好ましい実施例において、予め定められた期間は、システムソフトで設定される。別の実施例において、この予め定められた期間は、システム管理者によってセットされてもよい。
【００９５】
ステップ１９１で、意図されたリモート装置15上のクライアントがタイムスタンプの後に、接続するかどうか判定される。リモート装置15上の意図されたクライアントがタイムスタンプの後に接続することがステップ１９１で判定される場合、ＳＭＳメッセージ送信プロセス１８０はステップ１９９へ進む。しかし、リモート装置１５上の意図されたクライアントがタイムスタンプの後に接続しなかったことがステップ１９１で判定される場合、それから、ステップ１９２でＳＭＳメッセージカウントがＳＭＳメッセージリトライ制限を越えるかどうか、更に判定される。ＳＭＳメッセージリトライ制限が越えたと判定される場合、ＳＭＳメッセージ送信プロセス１８０は、ステップ１９６に進む。しかし、リトライ制限が越えていないことがステップ１９２２で判定される場合、ＳＭＳメッセージ送信プロセス１８０はステップ１９３でリトライカウントを増やす。ステップ１９４で、ＳＭＳメッセージ送信プロセス１８０は、予め定められた待機期間を増やす。好ましい実施例において、リトライカウントが増える度に、予め定められた待機期間は増加する。別の実施例において、この待機期間は、一定のままであってもよいし、段階的に増加してもよいし、または指数的に増加してもよい。
【００９６】
ステップ１９５で、イベント通知メッセージは、クライアントキャリアへ再送され、それからステップ１８５で予め定められた期間を待機するために戻る。ステップ１９６で、ＳＭＳメッセージ送信プロセス１８０は適用範囲外であるとしてリモート装置１５を記録し、ステップ１９９で、ＳＭＳメッセージ送信プロセスは終了する。
【００９７】
図１および２Ｂに示す本発明のリモート通知システム２２０で使用されているリモート装置１５上のリモート装置プロセス２００の実施例を記載しているフローチャートは、図７において例示される。
【００９８】
まずステップ２０１で、リモート装置１５は、初期化される。この初期化は、スタートアップルーチンおよびリモート装置１５のＢＩＯＳに記憶されるプロセスを含む。初期化はまた、リモート装置15において利用される特定のデータ構造のためのデータ値の確立を含む。ステップ２０２で、リモート装置プロセス２００は、リモート通知システム２００が開始されているかどうか判定する。ステップ２０２でリモート通知システムが開始されていないと判定されると、リモート装置プロセス２００はステップ２０４に進む。しかし、ステップ２０２でリモート通知システムが開始されていると判定される場合、リモート通知システムはそれからステップ２０３で実行される。
【００９９】
ステップ２０４で、ユーザは通常のオペレーティングモードでリモート装置１５を操作する。リモート装置１５の通常のオペレーティングモードは、装置のタイプによって、変化する。
【０１００】
定期的に、リモート装置１５は、ユーザがリモート装置１５の通常動作を続けるのを望むかどうか判定する。ユーザがリモート装置１５の通常動作を続けたいと判定される場合、リモート装置プロセス２００はそれからステップ２０４およびステップ２０５を繰り返すために戻る。しかし、ユーザがリモート装置１５のオペレーションを終了したいことがステップ２０５で判定される場合、リモート装置プロセス２００はそれからステップ２０９で終了する。
【０１０１】
図１ないし７に示す本発明の通知システム１００で使用されているリモート装置１５上のリモート通知システム２２０の実施例を記載しているフローチャートは、図８Ａにおいて例示される。リモート通知システム２２０は、サーバ１１上の通知システム１００からイベント通知メッセージを受信し、メッセージを解読および出コードし、メッセージで特定される動作をクライアントリモート装置１５で実行する役割を果たす。リモート通知システム２２０は、ＳＭＳまたはＩＰソースからメッセージを受信してもよい。ＳＭＳについて、クライアントは装置上のＳＭＳサブシステムから、メッセージを受信する。
【０１０２】
ＩＰについて、クライアントリモート装置１５は、サーバ１１へのリンクを確立および維持しなければならない。スタートアップにおいて、リモート通知システム２２０は、サーバ１１上のイベント通知登録エージェント１２０に接続する。好ましい実施例において、この接続は、予め定められたポートに発生する。しかし、他の種類の接続が利用されてもよいと理解される。接続が成功した後、リモート装置１５は、それ自体を識別するためにサーバ１１にその装置ＩＤおよび認証情報を送信する。
【０１０３】
スタートアップの後、リモート通知システム２２０は、ＳＭＳまたはＩＰを介してメッセージが到着するか、予め定められた期間が期限切れになるまで待機する。期間が期限切れになる場合、クライアントリモート装置１５はＩＰ接続のヘルスをチェックする。接続が失われた場合、接続は可能ならばサーバ１１によって復旧される。それから、有効な接続が存在する場合、リモート装置１５はその装置ＩＤをサーバ１１へ再び送信する。
【０１０４】
メッセージがリモート通知システム２２０に到着するときに、サーバ１１およびクライアントリモート装置１５によって予め同意されたキーによって、それは解読される。メッセージは、それから送信エンベロープからリムーブされて、それが有効な通知メッセージであることを確認するためにチェックされる。メッセージが有効な通知メッセージである場合、それがすでに処理されたメッセージであるかどうか確かめるためにメッセージのシーケンス番号が調べられる。クライアントリモート装置１５が適用範囲の外にあった場合、クライアントリモート装置１５は同じシーケンス番号を有する並列メッセージを受信するかもしれない、そして、サーバである場合11は送信を再試行した。一旦リモート通知システム２２０がそれがユニークな有効な通知メッセージを有すると判定すると、通知メッセージの範囲内に含まれる命令を実行するために起動する適当なリモート装置システムを判定する。
【０１０５】
まず、リモート通知システム２２０は、ステップ２２１で初期化されて、上記の通りにリモート装置プロセス２００の初期化と同様の機能を実行する。初期化はまた、リモート通知システム２２０で利用される特定のデータ構造のためのデータ値の確立を含む。次に、リモート通知システム２２０は、ステップ２２２でサーバ１１に接続する。ステップ２２３で、装置ＩＤおよびＩＰアドレスは、サーバ１１に送信される。ステップ２２４で、リモート通知システム２２０は、サーバ１１からメッセージを受信するか、予め定められた期間が期限切れになるのを待機する。ステップ２２５で、リモート通知システム２２０は、予め定められた期間が期限切れになったかどうか判定する。予め定められた期間が期限切れにならなかったと判定される場合、リモート通知システム２２０はステップ２３１へ進む。しかし、ステップ２２５で予め定められた期間が期限切れになったと判定される場合、ステップ２２６でリモート通知システム２２０はＩＰサーバへの接続が失敗したかどうか判定する。ＩＰサーバ１１への接続がリモート通知システム２２０に失敗したと判定されると、それからステップ２２２でリモート通知システム２２０は、ＩＰサーバ１１への接続に戻る。しかし、ＩＰサーバ１１への接続が失敗しなかったと判定されると、リモート通知システム２２０は、サーバからのメッセージを待機するか、リセットされた予め定められた期間が期限切れになるのを待機するためにステップ２２４に戻る。
【０１０６】
ステップ２３１で、リモート通知システム２２０は、それかＩＰサーバ１１から受信したメッセージがＰＩＮＧメッセージであるかどうか判定する。公知技術の様に、ＰＩＮＧメッセージは単にリモート装置１５がまだ接続されていることを確認するためメッセージである。ＰＩＮＧメッセージが受信されなかったことがステップ２３１で判定される場合、リモート通知システム２２０はステップ２３３へ進む。しかし、ＰＩＮＧメッセージが受信されたことがステップ２３１で判定される場合、ステップ２３２でリモート通知システム２２０は、予め定められた期間を、新規な予め定められた期間にリセットする。好ましい実施例において、新たな予め定められた期間は、ＰＩＮＧメッセージのボディにおいて送信される。別の実施例において、新たな予め定められた期間は、上述したように、スタートアップの間のシステム管理者によって、最初の登録によって、またはリモート装置のデータ同期によって確立されてもよい。新たな予め定められた期間をリセットした後に、リモート通知システム２２０は、ステップ２２４で、メッセージの待機または新たな予め定められた期間が期限切れになるのを待機するために戻る。
【０１０７】
ステップ２３３で、リモート通知システム２２０は、サーバ１１から受信されるメッセージがＬＴＭ（listen to me）メッセージであったと判定する。サーバ１１からのメッセージがＬＴＭメッセージでなかったと判定される場合、リモート通知システム２２０はステップ２３５へ進む。しかし、サーバ１１からのメッセージがＬＴＭメッセージであったと判定される場合、リモート通知システム２２０はステップ２３４でクライアントリスンージェントを実行する。クライアントリスンエージェントは、本願明細書において図８に関してさらに詳細に定められる。リモート装置１５が必要なときに、サーバ１１はコンタクトを始められるように、ＬＴＭメッセージはリモート装置１５にサーバ１１との現在の接続を落とすように指示する。これができるかどうかははリモート装置１５およびネットワークのタイプにより依存し、それはサーバ１１である。サーバ１１が配信するイベント通知メッセージを有する時に接続できることは、リモート装置１５のトータル接続時間、バンド幅および電源消費を節約する。接続する能力だけデータトラフィックがあるときだけ接続できることは、リモート装置１５上の現在の意図の通知システムを作動するコストを非常に減少することができる。
【０１０８】
ステップ２３５で、リモート通知システム２２０は、クライアント通知処理プロシージャを実行する。クライアント通知処理プロシージャは、本願明細書において図８Ｃに関して更に詳細に定められる。クライアントリスンエージェントは、サーバ１１からのイベント通知メッセージを、解読、分解、および処理する。
【０１０９】
ステップ２３６で、リモート通知システム２２０は、さらに処理されるべきメッセージがあるかどうか判定する。さらに処理されるべきメッセージがあることがステップ２３６で判定される場合、リモート通知システム２２０はそれからステップ２２２から２３６を繰り返すために戻る。しかし、リモート装置１５に処理されるべきどんなメッセージもないことがステップ２３６で判定されると、リモート通知システム２２０はステップ２３９で終了する。
【０１１０】
図２Ｂおよび８Ａに示す本発明の通知システムで使用されているリモート装置１５上のリモート通知システム２２０によって使用されるクライアントリスンエージェント２４０のオペレーションの実施例を記載しているフローチャートは、図８Ｂにおいて例示される。クライアントリスンエージェント２４０は、サーバ１１からイベント通知メッセージを受信するために、サーバ１１にリモート装置１５への再接続および待機するのを可能にする。
【０１１１】
最初に、クライアントリスンエージェント２４０はステップ２４１で初期化されて、上記の通りにリモート装置１５について、リモート装置システム２００の初期化と類似した機能を実行する。初期化はまた、クライアントリスンエージェント２４０において利用される特定のデータ構造のためのデータ値の確立を含む。次に、リモート装置１５上のクライアントリスンエージェント２４０は、ステップ２４２でサーバ１１への現在の接続を落とす。現在の接続を落とした後に、クライアントリスンエージェント２４０はそれからステップ２４３でソケットリスナーを作成する。好ましい実施例において、このソケットリスナーは、予め定められたポートに作成される。
【０１１２】
ステップ２４４で、クライアントリスンエージェント２４０は、サーバ１１からのメッセージまたは、予め定められた期間が期限切れになるかのどちらかを待機する。サーバ１１からのメッセージを受信するか、予め定められた期間が期限切れになるかのどちらかの後、クライアントリスンエージェント２４０はそれから、ステップ２４４を抜けるためのトリガーとなった実際のアクションを判定する。ステップ２４５で、クライアントリスンエージェントはクライアントリスンエージェント２４０をトリガーすることの理由が、予め定められた期間が期限切れになったということであるかどうか判定する。
【０１１３】
予め定められた期間が期限切れになったことがステップ２４５で判定される場合、クライアントリスンエージェント２４０はそれからステップ２４９で終了する。しかし、予め定められた期間が期限切れになっていないことがステップ２４５で判定される場合、クライアントリスンエージェントはステップ２４６でクライアント通知処理プロシージャを実行する。クライアント通知処理プロシージャは、本願明細書において図８Ｃを参照してさらに詳細に定められる。
【０１１４】
図２Ｂ、８Ａおよび８Ｂに示す本発明の通知システムで使用されているリモート装置２００上のリモート通知システム２２０によって使用されるクライアント通知処理プロシージャ２６０のオペレーションの実施例を記載しているフローチャートは、図８Ｃにおいて例示される。クライアント通知処理プロシージャ２６０は、リモート装置１５上のサーバ１１によって送信されるイベント通知メッセージを、解読、ディコンストラクションおよび処理を提供する。
【０１１５】
最初に、クライアント通知処理プロシージャ２６０はステップ２６１で初期化されて、上記の通りにリモート装置１５についてリモート装置システム２００の初期化と類似した機能を実行する。初期化はまた、クライアント通知処理プロシージャ２６０において利用される特定のデータ構造のためのデータ値の確立を含む。次に、クライアント通知処理プロシージャ２６０はステップ２６２で予め定められたキーを用いてイベント通知メッセージを解読する。好ましい実施例において、予め判定されたリモート装置特有のキーによって、このメッセージは、解読される。装置特有のキーは、多くの異なる方法で判定されてもよい。好ましい実施例において、装置特有のキーは、サーバ１１とリモート装置１５の同期の間に確定される。別の実施例においては、このキーは、リモート装置１５がスタートアップしている間にシステム管理者またはユーザによって判定されてもよい。ステップ２６３で、メッセージは解読の後、分解される。イベント通知メッセージのディコンストラクションは、単にリモート装置１５による有用な内容へのメッセージの構文解析だけである。
【０１１６】
ステップ２６４で、クライアント通知処理プロシージャ２６０は受信したメッセージがイベント通知メッセージであるかどうか判定する。処理されたメッセージがイベント通知メッセージでないとステップ２６４で判定される場合、クライアント通知処理プロシージャは、ステップ２６９に進む。しかし、メッセージがイベント通知メッセージであることがステップ２６４で判定される場合、クライアント通知処理プロシージャ２６０はそれから、イベント通知メッセージがステップ２６５ですでに受信されたと判定する。通信または処理のエラーによって、受信されたメッセージが送れて再送されることもありえる。
【０１１７】
イベント通知メッセージが予め受信されたことがステップ２６５で判定される場合、クライアント通知処理プロシージャ２６０はステップ２６９に進む。しかし、イベント通知メッセージが予め受信されなかったことはステップ２６５で判定される場合、ステップ２６６でクライアント通知処理プロシージャ２６０は、イベント通知メッセージを処理する適当なシステムを判定する。ステップ２６７で、クライアント通知処理プロシージャはそれからイベント通知メッセージを処理する適当なシステムを実行する。
【０１１８】
ステップ２６９で、クライアント通知処理プロシージャ２６０はリモート装置１５上のオペレーションを終了する。フローチャートのあらゆるプロセス記述またはブロックは、モジュール、セグメントまたは、特有の論理関数またはプロセスにおけるステップを実行するための一つ以上の実行可能命令を含むコードの部分を表示するとして理解されなければならない。本願発明の当業者によって理解されるような、関係した機能に基づいて、いずれかの機能が、示され説明された順番と違って実行されてもよく、実質的に同時にあるいは逆の順番の場合などの他の実装も、本願発明の好ましい実施音形態の範囲内に含まれる。
【０１１９】
実質的に本発明の原理から逸脱することなく、上述したように、多くの修正変更が本発明の実施例になされてもよいことは、当業者にとって明らかである。全てのこの種の修正変更は、あとに続く請求項に記載の、本発明の範囲内で本願明細書において含まれることを目的とする。
【図面の簡単な説明】
【０１２０】
【図１】図１は、本発明の通知システムを利用したコンピュータシステムの環境およびリモート装置の環境の実施例を例示しているブロック図である。
【図２Ａ】図２Ａは、図１に示すように、本発明の通知システムを利用しているサーバの実施例を例示しているブロック図である。
【図２Ｂ】図２Ｂは、図２に示すように、本発明の通知システムを利用しているリモート装置の実施例を例示しているブロック図である。
【図３】図３は、図１および２Ａに示すように、本発明の通知システムのサーバ上のオペレーションの実施例を例示しているフローチャートである。
【図４】図４は、図１乃至３に示すような本発明の通知システムによって利用されるイベント通知登録エージェントの動作の実施例を例示しているフローチャートである。
【図５】図５は、図３Ａ乃至３に示すような本発明の通知システムによって利用されるイベント通知収集エージェントの動作の実施例を例示しているフローチャートである。
【図６Ａ】図６Ａは、図３Ａ乃至３に示すような本発明の通知システムによって利用されるイベント通知送出エージェントの動作の実施例を例示しているフローチャートである。
【図６Ｂ】図６Ｂは、図２Ａ及び６Ａに示すような本発明の通知システムのイベント通知送信エージェントによって利用されるＳＭＳメッセージ送信プロセスの動作の実施例を例示しているフローチャートである。
【図７】図７は、図１乃至６Ｂに示すような本発明の通知システムを利用するリモート装置のプロセスフローの実施例を例示しているフローチャートである。
【図８Ａ】図８Ａは、図１乃至７に示すような本発明の通知システムにおいて利用されるリモート装置におけるリモート通知システムの実施例を例示しているフローチャートである。
【図８Ｂ】図８Ｂは、図２Ｂ及び８Ａに示すような本発明の通知システムにおいて利用されるリモート装置において、リモート通知システムによって利用されるクライアントリスンエージェントの動作の実施例を例示しているフローチャートである。
【図８Ｃ】図８Ｃは、図２Ｂ、８Ａ及び８Ｂに示すような本発明の通知システムにおいて利用されるリモート装置において、リモート通知システムによって利用されるクライアント通知処理プロシージャの動作の実施例を例示しているフローチャートである。
【図１】
2007526666.tif 000003
【図２Ａ】
2007526666.tif 000004
【図２Ｂ】
2007526666.tif 000005
【図３】
2007526666.tif 000006
【図４】
2007526666.tif 000007
【図５】
2007526666.tif 000008
【図６Ａ】
2007526666.tif 000009
【図６Ｂ】
2007526666.tif 000010
【図７】
2007526666.tif 000011
【図８Ａ】
2007526666.tif 000012
【図８Ｂ】
2007526666.tif 000013
【図８Ｃ】
2007526666.tif 000014
【手続補正書】
【提出日】平成19年6月6日(2007.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
インターネットプロトコルおよびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供する方法であって、
ＩＰ送信手段を使用してメッセージをリモート装置に送信し、
前記ＩＰ送信手段によって送信された前記メッセージが、前記リモート装置によって受信されなかったと判定し、
ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する
ステップを備える方法。
【請求項２】
前記メッセージは通知メッセージである請求項１に記載の方法。
【請求項３】
前記メッセージは暗号化される請求項１に記載の方法。
【請求項４】
請求項１に記載の方法は更に、
前記ＳＭＳ送信手段を使用して前記メッセージを再送する前に、予め定められた時間を待機する方法。
【請求項５】
ショートメッセージサービス（ＳＭＳ）が可能なリモート装置へ通知を提供する方法であって、
ＳＭＳ送信手段を用いて前記リモート装置に通知メッセージを送信し、
前記通知メッセージが受信されなかった場合、前記ＳＭＳ送信手段を用いて、予め定められた期間を待機した後に前記通知メッセージを再送し、
増加された予め定められた期間を待機した後に、前記通知メッセージを再送するステップを繰り返す
ステップを備える方法。
【請求項６】
請求項５に記載の方法において、前記メッセージは暗号化される方法。
【請求項７】
請求項５に記載の方法は更に、
予め定められたリトライ数を超えると、前記再送するステップを終了する
ステップを備える方法。
【請求項８】
インターネットプロトコル（ＩＰ）およびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供する方法であって、
前記リモート装置へ送信されるメッセージを取得し、
ＩＰ送信手段を使用して、前記リモート装置のアクションを保留することを支持する通知メッセージを送信し、
前記ＩＰ送信手段によって送信されたメッセージが、前記リモート装置によって受信されていないことが判定され、
ＳＭＳ送信手段を使用して、自動的に前記メッセージを再送する
ステップを備える方法。
【請求項９】
請求項８に記載の方法は更に、
増加された予め定められた期間を待機した後に、前記通知メッセージを再送するステップを繰り返す
ステップを備える方法。
【請求項１０】
インターネットプロトコル（ＩＰ）が可能なリモート装置に通知を提供する方法であって、
前記リモート装置からの接続を提供し、
前記リモート装置が直接アドレス可能でないと判定し、将来の通知メッセージのための前記接続を維持し、
前記リモート装置が直接アドレス可能でないと判定される場合、前記接続が落とされる前に前記リモート装置のアドレスを記録し、
前記アドレスを使用して前記リモート装置への前記接続を再確立する
ステップを備える方法。
【請求項１１】
インターネットプロトコル（ＩＰ）およびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供するシステムであって、
ＩＰ送信手段を用いて前記リモート装置にメッセージを送信するメッセージ送信モジュールと、
前記ＩＰ送信手段によって送信された前記メッセージが、前記リモート装置によって受信されなかったことを判定する判定モジュールと、
ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する再送モジュール
を備えるシステム。
【請求項１２】
請求項１１に記載のシステムであって、前記メッセージは通知メッセージであるシステム。
【請求項１３】
請求項１１に記載のシステムであって、前記メッセージは暗号化されているシステム。
【請求項１４】
請求項１１に記載のシステムは更に、
前記ＳＭＳ送信手段を使用して前記メッセージを再送する前に、予め定められた期間を待機するモジュール
を備えるシステム。
【請求項１５】
ショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供するシステムであって、
通知メッセージをSMS送信手段を使用しているリモート装置に送信するメッセージ送信モジュールと、
再び送るそれが送信される通知メッセージが受信されない場合、SMS送信手段を使用している予め定められた期間を待って、通知メッセージを再び送るモジュールと、
そして、増加する予め定められた期間を待った後に通知メッセージを再び送る繰返送信モジュール
を備えるシステム。
【請求項１６】
請求項１５に記載のシステムであって、前記メッセージが暗号化されているシステム。
【請求項１７】
請求項１１に記載のシステムは更に、
予め定められた数のリトライの後に再送を終了する終了モジュール
を備えるシステム。
【請求項１８】
インターネットプロトコル（ＩＰ）およびショートメッセージサービス（ＳＭＳ）が可能なリモート装置に通知を提供するシステムであって、
前記リモート装置に送信されるべきメッセージを得るメッセージ受信モジュールと、
ＩＰ送信手段を使用して前記リモート装置を保留にするアクションを示す通知メッセージを送信する送信モジュールと、
前記ＩＰ送信手段によって送信された前記メッセージが前記リモート装置によって受信されなかったことを判定する判定モジュールと、
ＳＭＳ送信手段を使用して自動的に前記メッセージを再送する再送モジュール
を備えるシステム。
【請求項１９】
請求項１８のシステムであって、前記メッセージは暗号化されているシステム。
【請求項２０】
インターネットプロトコル（ＩＰ）が可能なリモート装置に通知を提供するシステムであって、
前記リモート装置からの接続を提供する接続モジュールと、
前記リモート装置が直接アドレス指定可能でないかどうか判定して、将来の通知メッセージのための接続を維持する判定モジュールと、
前記リモート装置が直接アドレス指定可能であると決定される場合、前記接続を落として、前記リモート装置の前記アドレスを記録する記録モジュールと、
前記アドレスを使用して、前記リモート装置に前記接続を再確立するモジュール
を備えるシステム。
【国際調査報告】
2007526666.tif 000015
2007526666.tif 000016