(57)【要約】【課題】サーバから、通信手段を通じて前記サーバにリモート接続されたクライアント・デバイスによってローカルで格納されたオブジェクトをリフレッシュするための方法およびコンピューティング・システムを提供すること。【解決手段】クライアント・デバイスは、リフレッシュ・メッセージのための要求、ならびに、オブジェクト識別子、およびそのローカル・ストレージ内に格納されたオブジェクト自体のダイジェストのリストを送信する。サーバは、クライアント・デバイスがサブスクライブしている契約をチェックした後、リフレッシュ応答メッセージを、クライアント・デバイス内でローカルに格納され、かつリフレッシュされる必要のあるオブジェクトと共に送信し戻す。クライアント・デバイスがサブスクライブしている契約に従って、サーバはまた新しいオブジェクトも送信し、特殊コードを送信して、クライアント・デバイスに、もはや契約の一部でないオブジェクトを削除するように指定する。
2005530258.tif 000002
【特許請求の範囲】
【請求項１】
サーバから、通信手段を通じて前記サーバにリモート接続されたクライアント・デバイスによってローカルで格納されたオブジェクトをリフレッシュする間に、前記クライアント・デバイスを再同期化するための方法であって、前記サーバは、前記クライアント・デバイスによってサブスクライブされた契約を追跡し、
前記クライアント・デバイス内で、オブジェクト識別子、および、前記クライアント・デバイスのローカル・ストレージ内に格納されたオブジェクト・コンテンツを識別するダイジェストを含む、データのリストを読み取るステップと、
前記クライアント・デバイスから、クライアント・デバイス識別子および読み取られた前記データのリストを含むリフレッシュ・メッセージのための要求を、前記サーバに送信するステップと、
前記サーバ内で、受信された前記クライアント・デバイス識別子によって識別された前記クライアント・デバイスによってサブスクライブされた前記契約に対応する、オブジェクト識別子のリストを読み取るステップと、
前記サーバで、前記リフレッシュのための要求において受信された前記データのリストを、オブジェクト識別子、および、同じく前記サーバによって格納される前記オブジェクト・コンテンツを識別するダイジェストを含む、前記サーバによって格納されたデータのリストと比較するステップと、
前記サーバからリフレッシュ応答メッセージを前記クライアント・デバイスに、オブジェクトのリストと共に送信するステップであって、前記オブジェクトのリストは、前記クライアント・デバイスによってサブスクライブされた前記契約に対応する前記オブジェクトについて、かつ、受信された前記ダイジェストが前記サーバ内で読み取られた前記ダイジェストとは異なるものについて、前記サーバ内で読み取られたオブジェクト識別子、その対応するダイジェスト、およびそのコンテンツを含むステップと、
前記クライアント・デバイス内で前記リフレッシュ応答メッセージを受信し、前記オブジェクトのリストに属する前記オブジェクトについて、前記対応するオブジェクト識別子の、ローカルで格納された前記オブジェクトのコンテンツ、および、前記データのリスト内の前記ダイジェストを置き換えるステップとを含む方法。
【請求項２】
リフレッシュ応答を送信する前記ステップは、
前記オブジェクトのリスト内で、前記クライアント・デバイスによってサブスクライブされた前記契約に対応し、かつ、前記リフレッシュ・メッセージのための要求の前記データのリストに属していない前記オブジェクトについて、前記サーバ内で読み取られた前記オブジェクト識別子、その対応するダイジェスト、およびそのコンテンツを追加するステップをさらに含む、請求項１に記載の方法。
【請求項３】
リフレッシュ応答メッセージを送信する前記ステップは、
前記リフレッシュ・メッセージのための要求の前記データのリストに属しており、前記クライアント・デバイスによってサブスクライブされた前記契約に対応しない前記オブジェクトについて、前記オブジェクトのリスト内に前記オブジェクト識別子および特定のコードを追加するステップをさらに含み、
リフレッシュ応答メッセージを受信する前記ステップは、
前記オブジェクトのリストに属し、特定のコードを有する前記オブジェクトについて、ローカルで格納された前記オブジェクトのコンテンツ、ならびに、前記クライアント・デバイス内の前記データのリスト内の前記オブジェクト識別子およびそのダイジェストを抑止するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
通信手段によって前記サーバに接続された少なくとも１つの他のサーバから、前記サーバ内にすでに格納されたオブジェクト・コンテンツの新しいバージョンを受信するステップと、
前記すでに格納されたオブジェクト・コンテンツを前記新しいバージョンによって置き換え、前記オブジェクトの前記新しいバージョンの前記ダイジェストを計算し、前記サーバ内に格納された前記データのリスト内の前記オブジェクト識別子によって識別された前記オブジェクトに対応する前記ダイジェストを更新するステップとをさらに含む、請求項１または３のいずれか一項に記載の方法。
【請求項５】
前記サーバ内で、端末識別子に関連付けられた契約のリストを維持するステップであって、前記端末識別子は、前記関連付けられた契約をサブスクライブしているクライアント・デバイスを識別し、前記契約のリストおよび関連付けられた端末識別子は、前記サーバによって、前記受信されたクライアント・デバイス識別子によって識別された前記クライアント・デバイスによってサブスクライブされた前記契約に対応するオブジェクト識別子のリストを読み取る前記ステップを実行するために、使用されるステップをさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
前記サーバ内で、少なくとも１つのオブジェクト識別子に関連付けられた契約のリストを維持するステップであって、前記関連付けられたオブジェクト識別子は、所与の時間に契約の一部であるオブジェクトを識別し、前記契約のリストおよび関連付けられたオブジェクト識別子は、前記サーバによって、前記受信されたクライアント・デバイス識別子によって識別された前記クライアント・デバイスによってサブスクライブされた前記契約に対応するオブジェクト識別子のリストを読み取る前記ステップを実行するために使用されるステップをさらに含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
前記サーバから、前記リフレッシュ応答メッセージ内で送信された前記オブジェクトのリストの各オブジェクトについて、前記オブジェクト・コンテンツの長さを、各オブジェクト・コンテンツごとに、前記オブジェクト識別子、前記ダイジェスト、前記オブジェクトの長さおよびオブジェクト・コンテンツが順次書き込まれる前に、追加するステップと、
前記クライアント・デバイスから、前記オブジェクトのリストの各オブジェクトについて、前記オブジェクトの長さを読み取り、前記オブジェクトの長さを使用して、前記順次書き込まれたオブジェクト・コンテンツを読み取るステップとをさらに含む、請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
前記ダイジェストはＭＤ５シグニチャである、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
前記通信手段はインターネットであり、前記サーバおよび前記少なくとも１つのサーバはウェブ・サーバであり、前記オブジェクトはウェブ・ドキュメントを形成する、請求項１ないし８のいずれか一項に記載の方法。
【請求項１０】
コンピュータ・プログラム製品であって、前記プログラムがコンピュータ上で実行されるとき、前記クライアント・デバイスによって実行された、請求項１ないし９のいずれか一項に記載の方法の前記ステップを実行するためのプログラミング・コード命令を含む、コンピュータ・プログラム製品。
【請求項１１】
コンピュータ・プログラム製品であって、前記プログラムがコンピュータ内で実行されるとき、前記サーバによって実行された、請求項１ないし９のいずれか一項に記載の方法の前記ステップを実行するためのプログラミング・コード命令を含む、コンピュータ・プログラム製品。
【請求項１２】
請求項１０に記載の前記コンピュータ・プログラムを実行するために適合された手段を含む、コンピューティング・システム。
【請求項１３】
請求項１１に記載の前記コンピュータ・プログラムを実行するために適合された手段を含む、コンピューティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピューティング機能を含み、サーバのサービスを使用するコンシューマ・エレクトロニック・デバイスに関し、より詳細には、本発明は、これらのデバイスをサーバから、更新されたオブジェクトのセットによりリフレッシュするオペレーションに関する。
【背景技術】
【０００２】
現在、コンピューティング機能を含む新しいホーム・クライアント・デバイス、携帯電話または他のコンシューマ・エレクトロニック・デバイスは、ウェブ・ブラウザを使用して、インターネット・サービスを提供するウェブ・サーバからローカルで情報をダウンロードする。専門の機器とは反対に、これらの広く行き渡っているデバイスは、ローカル情報を切断モードでブラウズする。これらのデバイスが再接続するとき、デバイスがサーバ内でサブスクライブ（subscribe）しているサービスに従って、ウェブ・サーバによって保持され、更新された情報により、デバイスがリフレッシュされる必要がある。
【０００３】
これらの低コストのコンシューマ・デバイスの１つの他の特徴は、切断モード中にこれらのデバイスを、保守または置き換えのためにも再初期化することができることである。この場合、再同期化はサーバとデバイスの間の再接続時間に行われなければならず、このような再同期化はまた、デバイスがサブスクライブしているサービスを考慮に入れなければならない。
【０００４】
通常、この種類のデバイスでは、毎晩のスケジュールされたリフレッシュに加えて、ユーザの要求におけるリフレッシュが適切に考慮される。
【０００５】
デバイスをサーバからリフレッシュするオペレーションの第１の問題は、ダウンロードされる情報の量である。情報は１日に１回または複数回リフレッシュされる場合があるので（これは株式の価値情報の場合）、サーバは、デバイスによって要求された情報のレベルを知らずに、再接続の場合、各クライアント・デバイスにそれ自体の完全情報セットを送信するようになる。この方法は、各デバイスでダウンロードされた情報のボリュームが、送信時間および送信コストに関して低い限り受け入れ可能である。デバイス内でローカルに保たれたデータが常に増大すると、急速に収拾不可能な状況につながる。一例として、１０Ｍバイトの更新には一般に、各デバイスにつき３０分を超える送信時間が必要となり、サーバが更新するための１０００００ものデバイス（100 k devices）を有する場合、必要とされたボリュームをサービスするために非常に大きくコストのかかるパイプが必要となり、この場合は１テラバイトに達する。
【０００６】
第１の解決策は、オンライン・クライアント・デバイスを新しいレベルの情報によりリフレッシュするためにダウンロードされる情報の量を減らすことである。コンテナに適用されるこの解決策は、インターナショナル・ビジネス・マシーンズ・コーポレーション（International Business Machines Corporation）に譲渡された米国特許第６１４８３４０号で開示されている。これは、サーバ側で、デバイスにダウンロードされたコンテナの最終レベルを追跡することにある。デバイスを新しいレベルのコンテナによりリフレッシュするため、サーバは、最後のダウンロード以来修正されているコンテナのみを送信する。さらに、リフレッシュ・オペレーションはオンライン・クライアント・デバイスに向けられ、これは、リフレッシュのレベルがサーバによって維持され、クライアント・デバイスの各要求で再評価されるからである。
【０００７】
従来技術の解決策は、ウェブ・サーバによってリフレッシュ・オペレーション中にクライアント・デバイスにダウンロードされる情報の量を効率的に減らす。しかし、従来技術の解決策は、切断された時間中に再初期化されているデバイスの再同期化の必要性に応えていない。したがって、再接続時間に、クライアント・デバイスがそのローカル・ストレージ内に有する実際の情報と、クライアント・デバイスがすでにダウンロードしている情報である、そのクライアント・デバイスによってローカルに格納された情報であるとしてウェブ・サーバが知っているものの間に、矛盾が存在する。
【０００８】
さらに、従来技術の解決策では、クライアント・デバイスによってウェブ・サーバに対して取られた現在のサブスクリプションの考慮はない。コンテナの最終レベルが所与のクライアント・デバイスにダウンロードされて以来、このクライアント・デバイスは、あるサービスのためのサーバ・サービスへのサブスクリプションを変更している可能性があり、この解決策によれば、サーバがこのデバイスについて追跡しているコンテナとは異なる情報のセットにアクセスすることになっている可能性がある。
【特許文献１】米国特許第６１４８３４０号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、本発明の目的は、クライアント・デバイスがサブスクライブしているサービスに対応する情報においてリフレッシュされることをサーバに要求するとき、クライアント・デバイスが必要とする正しいレベルの情報を、クライアント・デバイスに送信するための方法およびシステムを提供することである。
【００１０】
本発明のもう１つの目的は、更新された情報のみを送信することである。
【００１１】
本発明のさらなる目的は、再接続時間にクライアント・デバイスを、サーバ・サービスへの現在のサブスクリプションによる情報のレベルと再同期化することである。
【課題を解決するための手段】
【００１２】
これらの目的には、請求項１による方法によって到達され、この方法は、サーバから、通信手段を通じて前記サーバにリモート接続されたクライアント・デバイスによってローカルで格納されたオブジェクトをリフレッシュする間に、前記クライアント・デバイスを再同期化するための方法であって、前記サーバは、前記クライアント・デバイスによってサブスクライブされた契約を追跡し、前記方法は、クライアント・デバイス内で、オブジェクト識別子、および、クライアント・デバイスのローカル・ストレージ内に格納されたオブジェクト・コンテンツを識別するダイジェストを含む、データのリストを読み取るステップと、前記クライアント・デバイスから、クライアント・デバイス識別子および読み取られたデータのリストを含むリフレッシュ・メッセージのための要求を、前記サーバに送信するステップと、サーバ内で、受信されたクライアント・デバイス識別子によって識別された前記クライアント・デバイスによってサブスクライブされた契約に対応する、オブジェクト識別子のリストを読み取るステップと、前記サーバで、リフレッシュのための要求において受信されたデータのリストを、オブジェクト識別子、および、同じく前記サーバによって格納されるオブジェクト・コンテンツを識別するダイジェストを含む、前記サーバによって格納されたデータのリストと比較するステップと、サーバからリフレッシュ応答メッセージをクライアント・デバイスに、オブジェクトのリストと共に送信するステップであって、このオブジェクトのリストは、前記クライアント・デバイスによってサブスクライブされた契約に対応するオブジェクトについて、かつ、受信されたダイジェストがサーバ内で読み取られたダイジェストとは異なるものについて、サーバ内で読み取られたオブジェクト識別子、その対応するダイジェスト、およびそのコンテンツを含むステップと、クライアント・デバイス内でリフレッシュ応答メッセージを受信し、オブジェクトのリストに属するオブジェクトについて、対応するオブジェクト識別子の、ローカルで格納されたオブジェクトのコンテンツ、および、データのリスト内のダイジェストを置き換えるステップとを含む。
【００１３】
請求項２によれば、新しいオブジェクトが、クライアント・デバイスがサブスクライブしている契約に属する場合、サーバはオブジェクトのリスト内に、これらの新しいオブジェクトに対応する情報を追加する。請求項３によれば、サーバは、対応するオブジェクトがもはやクライアント・デバイスがサブスクライブしている契約に属さないとき、オブジェクトのリスト内にオブジェクト識別子を特定のコードと共に送信する。クライアント・デバイスはそのローカル・ストレージ内で、オブジェクト自体、および、このオブジェクトを参照するいかなる情報をもキャンセルするようになる。
【００１４】
この方法は、サーバ内で動作するプログラム製品、および、クライアント・デバイス内で動作するプログラム製品によって実施される。
【００１５】
本発明の主な利点は、広く行き渡っており、しばしば切断モードで使用される、クライアント・デバイスに適用されることである。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の環境の記載である。ウェブ・サーバ（１００）は、ネットワーク（１３０）を通じてクライアント・デバイス（１１０、１２０）にサービスを提供し、ネットワーク（１３０）をインターネットにすることができ、これにはモバイル通信が含まれる場合がある。インターネット・クライアント・デバイスはウェブ・ブラウザを使用して、情報にアクセスするためのサーバへの送信要求を求め、この情報は、ＨＴＭＬページまたはイメージ・ファイル（ＪＰＧ、ＧＩＦなど）またはオーディオ・ファイル（ＷＡＶ、ＭＰ３など）など、いかなるタイプのオブジェクトにすることもでき、一般にウェブ・ドキュメント（１５０）と呼ばれるものを形成する。サーバはクライアント・デバイス識別を、例えば携帯電話では、そのＩＭＥＩ（International Mobile Equipment Identity）を使用して追跡する。スクリーン・フォン・クライアント・デバイスは、それらのインターネット・アプライアンスを、ＩＳＲＦによって標準化された識別のために送信することができる。より一般には、すべてのクライアント・デバイスは、一意の識別子である通し番号に類似した識別を送信する。
【００１７】
サーバはまた、クライアント・デバイスによってサブスクライブされたサービスおよびそれ以上のもの（more than that）をも追跡し、クライアント・デバイスは、サービスによって提供され、そのプロファイル内に記載されたある情報に関心を有する場合がある。好ましい実施形態の説明では、１つの単純なサービスの例がプロファイルなしにサブスクライブしたが、当業者は好ましい実施形態をクライアント・プロファイルと共に容易に適合させることができる。この情報は、料理情報サービスではレシピなど、静的である場合があり、あるいは、新聞など１日に１回、もしくは天気のサイトなど１日に数回、リフレッシュされる場合がある。好ましい実施形態によれば、サーバは、以前に送信された最後のレベルに比較して新しい情報のみを送信するようになる。図１では、クライアント・デバイスは切断されており、ウェブ・サーバによってリフレッシュされる必要がある。クライアント・デバイスは、リフレッシュのための明示的要求を、そのデバイス内でローカルに格納している再同期化情報と共に送信し、この情報は、サーバがクライアント・デバイスを必要とされた情報の正しいレベルと再同期化する助けとなる。ウェブ・ドキュメント（１５０）は最初に「オリジン・サーバ」（１４０）によって格納され、オリジン・サーバ（１４０）はこれらのウェブ・ドキュメントを、要求により、サービスをサブスクライバ・クライアント・デバイス（１１０、１２０）に提供するリモート・ウェブ・サーバ（１００）に送信する。リモート・ウェブ・サーバはクライアント・デバイスを、ウェブ・ドキュメントの更新されたオブジェクトによってのみリフレッシュする。クライアント・デバイスはリフレッシュされた後、好ましい実施形態によれば、リフレッシュされたオブジェクトによりウェブ・ドキュメント（１５０）をローカルで再構成することができる。
【００１８】
ウェブ・サーバ情報サービスへのサブスクライバであるクライアント・デバイスは、ウェブ・ドキュメントを構成するオブジェクトを格納するための通信機器ローカル・ストレージ・ユニット、および、ウェブ・ドキュメントを再構成するため、これらを表示するため、かつ好ましい実施形態によればリフレッシュのための要求を送信するための少なくとも１つのプロセッサを有する。サーバはデバイスを再同期化し、情報をダウンロードすることによってデバイスをリフレッシュする。デバイスは情報を受信し、ローカルで格納されたオブジェクトおよびローカルで格納された再同期化情報を修正することができる。リフレッシュおよび同期化方法を、サーバ内およびクライアント・デバイス、それらのコンピューティング・リソース内で実行されたプログラムとして、実装することができる。
【００１９】
図２は、サーバ側で格納された３つのテーブルを例示する。クライアント・デバイスは、オブジェクトから構成される「ローカル・ウェブ・ページ」をブラウジング中である。オブジェクトは、単一のエンティティとして扱われたデータの一部である。オブジェクトは、好ましい実施形態の目的では、リフレッシュの単位である。
【００２０】
サーバ・テーブルは、Subscription_table（２００）、Deal_Object_table（２１０）およびObject_table（２２０）である。Subscription_tableは、Device_IDによって一意に識別された所与のクライアント・デバイスに関連付けられた、Deal_IDによって一意に識別された「契約」を格納するためのものである。各契約は、サーバによって提供されたサービスにおいて取られたサブスクリプションに対応する。このテーブルにより、サーバは、所与のクライアント・デバイスに関連付けられたすべての契約を検索することができる。Deal_Object_tableは、Deal_IDによって識別された各契約について、この契約に関連付けられ、かつサーバによって割り当てられたObject_IDにより一意に識別された、オブジェクトのリストを格納する。このテーブルはサーバによって、所与のクライアント・デバイスに関連付けられた契約に属するすべてのObject_IDを検索するために使用される。Object_tableは、サーバによって、各Object_IDにオブジェクト・シグニチャを関連付けるために維持され、オブジェクト・シグニチャは「ダイジェスト」であり、セキュリティのために使用されるテキストのコンテンツを識別するコードである。ＭＤ５は、オブジェクトの縮小表現を与える単方向ハッシュである。ＭＤ５シグニチャにより、十分なレベルのセキュリティを有する大きいテキストの識別が可能となる。他のいかなる「ダイジェスト」も、好ましい実施形態のために使用することができる。サーバは、ローカルまたはリモートの「オリジン・サーバ」からオブジェクトを得る「プロキシ」機能としての機能を果たす。サーバによって、新しいオブジェクトをオリジン・サーバから受信するたびに、シグニチャが計算される。Object_tableは、受信されたオブジェクトの最後の値、および、対応する計算されたシグニチャを含む。サーバは各オブジェクトＩＤについて、計算されたシグニチャ、オブジェクトの長さ、および、前記オブジェクトを含むウェブ・ドキュメントを提供したインターネットもしくはイントラネット・オリジン・サーバのウェブ・アドレスを識別するローカルＵＲＩ（ユニバーサル・リソース識別子）またはリモートＵＲＬ（ユニバーサル・リソース・ロケータ・アドレス）を格納する。このアドレスは、クライアント・デバイスのリフレッシュおよび再同期化のために使用されないが、サーバによって、オリジン・サーバにオブジェクトの最終レベルを定期的に要求するために使用される。
【００２１】
図３は、オブジェクトのセットの一実施例、および、サーバがクライアント・デバイスをリフレッシュするためにすべてのこれらのオブジェクトの中でどのように選択するかを例示する。所与のクライアント・デバイスに関する契約に属するオブジェクトのセットは、Subscription_table（２００）およびDeal_Object_table（２１０）を読み取ることによって定義されている。一例として、オブジェクトのセットは、Ｏｂｊ２、Ｏｂｊ１、Ｏｂｊ３およびＯｂｊ４におけるデバイスＴ０１からなる。サーバは、クライアント・デバイスによって送信された要求によるリフレッシュの前に、どのオブジェクトがクライアント・デバイス内に常駐しているかを知り、これについては本明細書で以下に図６を参照して説明する。これらのオブジェクトは図３の第２のセットを形成し、第２のセットは、Ｏｂｊ５、Ｏｂｊ１、Ｏｂｊ３およびＯｂｊ４を含む。サーバはこれらの２つのセットの間の共通部分を見て、クライアント・デバイスのために更新される必要のあるオブジェクト、すなわち、Ｏｂｊ１、Ｏｂｊ３およびＯｂｊ４を定義する。オブジェクトＯｂｊ５はもはやクライアント・デバイスがサブスクライブしている契約の一部ではなく、サーバはクライアント・デバイスに、このＯｂｊ５、ならびに、デバイス内に格納され、このオブジェクトを参照するいかなる情報をも削除するように要求するようになる。オブジェクトＯｂｊ２は、クライアント・デバイスに常駐していたオブジェクトではなく、サーバはクライアント・デバイスをこの新しいオブジェクトによりリフレッシュしなければならない。クライアント・デバイス内に常駐していたオブジェクト、Ｏｂｊ１、Ｏｂｊ３およびＯｂｊ４については、クライアント・デバイス内に常駐するバージョンが同じシグニチャでなかった場合、サーバはクライアント・デバイスをこのオブジェクトの最終バージョンによりリフレッシュしなければならない。サーバは、クライアント・デバイス内に常駐するオブジェクトのシグニチャを知るようになり、これは、シグニチャが、クライアント・デバイスによって送信された要求に含まれるようになるからであり、これについては本明細書で以下に図６を参照して説明する。
【００２２】
図４は、サーバがクライアント・デバイスをリフレッシュするためにクライアント・デバイスにダウンロードする、オブジェクト・リストのフォーマットを例示する。図４の例は、Ｏｂｊ１からＯｎｊｎまでのｎ個のオブジェクトを示す。オブジェクト・リストの各「オブジェクト」は、Object_ID、Object_tableからの最終レベルのシグニチャであるObject_Signature、Object_tableからのオブジェクトの長さ、および、オリジン・サーバから読み取られているオブジェクト自体を含む。
【００２３】
図５は、クライアント・デバイス内で維持される、現在のサブスクライバ・オブジェクト・セット・テーブルの更新を例示する。このテーブルは、オブジェクトのObject_IDおよびシグニチャを含む。Object_IDはサーバによって割り当てられており、シグニチャはサーバによって計算されており、これらは共に、以前のリフレッシュ・オペレーションにおいてダウンロードされている。現在のサブスクライバ・オブジェクト・セット・テーブルは、サーバから受信された最終レベルを含む。クライアント・デバイスによって送信されたリフレッシュのための要求において、サーバは、図３を参照して例示したように、クライアント・デバイスにダウンロードされるべきオブジェクトを選択するようになる。クライアント・デバイスが、サーバによって送信されたオブジェクト・リストを受信するとき、ローカル・オブジェクト・バージョンが更新され、クライアント・デバイスはまたそれに応じて（Object_IDおよびシグニチャにより）テーブルも更新する。図５において、第１のテーブルはリフレッシュ前の以前のレベル（５００）であり、第２のテーブル（５１０）はリフレッシュ後の最終レベルである。図３と同じ例を例示すると、新しいレベル（５１０）はもはやＯｂｊ５への参照を含まず、新しいオブジェクトＯｂｊ２への新しい参照を導入しており、そのシグニチャが変化しているために変更されなければならない唯一のオブジェクトＯｂｊ３のシグニチャを更新している。
【００２４】
図６は、クライアント・デバイスとサーバの間で交換されたメッセージを例示する。この実施例で使用されたプロトコルはＨＴＴＰであり、これにおいて要求は、「POST」コマンド（６００）を使用して送信される。ポストされたメッセージは、好ましい実施形態のリフレッシュ要求構文に従う。コマンドは「Refresh」であり、Terminal_IDはこの実施例ではＴ０１であり、Object_IDのリストおよび関連付けられたシグニチャは、クライアント・デバイス内にローカルで格納された、現在のサブスクライバ・オブジェクト・セット・テーブルのコンテンツである。クライアント・デバイスは、ローカルで格納されるオブジェクトをリフレッシュするための要求をポストする。切断されている間に動作するこの種類のクライアント・デバイスでは、この要求を１日１回送信することができる。サーバは、クライアント・デバイス識別を読み取ること、ならびに、このクライアント・デバイスに対応するすべての契約、および、この契約に関連付けられたすべてのオブジェクトを、２つのテーブルSubscription_table（２００）およびDeal_Object_table（２１０）を使用して識別することによって、この要求に応答する。図３の例示によれば、サーバは、何がこのクライアント・デバイスについて更新されるべき候補のオブジェクト（３２０）であるかを決定するようになる。次いで、Object_tableを読み取ることによって、サーバは、リフレッシュされるべき候補の各オブジェクトについて、何がシグニチャであるかを読み取る。Object_table内に格納されたシグニチャは、サーバがオブジェクトの最終レベルをオリジン・サーバから受信および格納したとき、サーバによって計算されたシグニチャである。Object_tableのシグニチャが、クライアント・デバイスからの要求内に含まれたシグニチャと同じである場合、サーバはこのオブジェクトをその応答において送信しないようになる。この実施例では、Ｏｂｊ１およびＯｂｊ４は異なるシグニチャを有しておらず（それぞれＳ１２およびＳ４１）、サーバによって送信されないようになる。クライアント・デバイスによってローカルで格納されたＯｂｊ３は、シグニチャＳ３２によって識別されたレベルに対応する。サーバでは、格納されたレベルはシグニチャＳ３１を有しており、異なるものである。Ｏｂｊ３の現在のレベルは、リフレッシュのためにクライアント・デバイスに送信されなければならない。また、新しいＯｂｊ２も送信されなければならず、サーバは、Ｏｂｊ５がクライアント・デバイスのストレージから削除されなければならないことを通知しなければならず、これは、Ｏｂｊ５がもはやクライアント・デバイスがサブスクライブしている契約に属していないからである。
【００２５】
サーバからの応答（６１０）も図６において例示される。ＨＴＴＰプロトコルを使用して、サーバは、Postメッセージに応答する単純なメッセージを送信する。コマンドは「Refresh_response」であり、その後に、図４を参照して説明したフォーマットによる「Object_list」が続く。Ｏｂｊ３は、更新されたシグニチャ、Ｓ３２、新しいオブジェクトの長さ、およびオブジェクト・コンテンツ自体と共に送信される。Ｏｂｊ２は、一度計算されたシグニチャ、Ｓ２１、オブジェクトの長さ、およびオブジェクト・コンテンツ自体と共に送信される。Ｏｂｊ５は上述のように、もはやクライアント・デバイスの契約の一部ではなく、リフレッシュではなく、Refresh-responseにおけるシグニチャについての０、およびオブジェクトの長さについての０の識別は、このオブジェクトがクライアント・デバイスのローカル・ストレージからキャンセルされなければならないこと、および、レコードが現在のサブスクライバ・オブジェクト・セット・テーブルから削除されなければならないことを意味する。
【００２６】
クライアント・デバイスが保守の後に再初期化されるか、あるいは、致命的な故障の場合に新しいデバイスによって置き換えられる場合、現在のサブスクライバ・オブジェクト・セット・テーブルは空であり、要求は、クライアント・デバイスがサブスクライブしている契約に対応するすべてのオブジェクトを送信するためのものである。クライアント・デバイスによってポストされたRefreshコマンドは、オブジェクトを含まないようになる。これは、好ましい実施形態では、サブスクライブしているすべての契約に対応する最終レベルのオブジェクトのすべてをサーバが受信する必要があることをサーバに通知するための方法である。
【００２７】
図７は、好ましい実施形態による、オブジェクトのセットによりリフレッシュされるクライアント・デバイスを再同期化するための方法の流れ図である。
【００２８】
ステップ７００はクライアント・デバイスによって実行され、クライアント・デバイスは、対（Object_ID、シグニチャ）を格納する現在のサブスクライバ・オブジェクト・セット・テーブルを読み取る。クライアント・デバイスはメッセージを、例えば、インターネット・ネットワークで使用されるＨｔｔｐプロトコル下でポストし（７１０）、Postメッセージは、クライアント・サーバ環境へのクライアント要求である。このメッセージは、図６を参照して説明したフォーマットによる「Request_refresh」コマンドを含む。このメッセージは、サブスクライブしているサーバへの現在のサブスクライバ・オブジェクト・セット・テーブル内で読み取られた対、および、クライアント・デバイスの一意の識別子を含む。サーバはSubscription_table（２００）およびDeal_Object_table（２１０）を読み取り、図３を参照して説明したように、この所与のクライアント・デバイスについて更新されるべき候補のオブジェクト、削除されるべきオブジェクト、および追加されるべきオブジェクトを識別する。サーバは、Object_table内で更新されるべき第１のオブジェクト候補のシグニチャを読み取る。このシグニチャが、クライアント・デバイスからのRequest_refreshメッセージ内のものと同じでない場合（７３０の検査でノーの答え）、オブジェクトはリフレッシュ・オペレーションのために保たれる（７４０）。シグニチャが同じである場合（７３０の検査でイエスの答え）、更新されるべきオブジェクト候補がそれ以上なくなるまで（７５０の検査でイエスの答え）次のオブジェクトが読み取られ、サーバはオブジェクト・リストを準備する。そうでない場合（７５０の検査でノーの答え）、更新されるべき次のオブジェクト候補のシグニチャが、Request_refresh内で受信されたシグニチャに対してチェックされる（７３０）。
【００２９】
サーバは最初にオブジェクト・リストを、更新されるべきオブジェクトにより構築する（７６０）。図４を参照して説明したように、オブジェクト・リストは、各オブジェクトについて、Object_ID、オブジェクト・シグニチャ、Object_table内で読み取られたObject_length、および、サーバ内に格納されたオブジェクト・コンテンツ自体を含む。オブジェクト・リスト内で、サーバは、契約の変更または契約における変更により追加された新しいオブジェクトについて、Object_ID、オブジェクト・シグニチャ、Object_table内で読み取られたObject_length、およびオブジェクト・コンテンツを追加する（７７０）。Object_IDを含むトリプレットの後に、契約の変更または契約における変更のために削除されるべきオブジェクトを指示するための特定のコードが続く。あるオブジェクトが削除されるべきであることを指定するための１つの可能性は、オブジェクト・リスト内に、Object_ID、ならびに、シグニチャおよびオブジェクトの長さについてゼロの値を入れることである。他のいかなる識別をもObject_IDと共に使用して、クライアント・デバイスに、そのオブジェクトが削除されるべきであることを通知することができる（７７０）。サーバは、リフレッシュのための要求に対する応答を、クライアント・サーバＨｔｔｐプロトコルを使用して送信する（７８０）。クライアント・デバイスはオブジェクト・リストを受信し、各オブジェクトについて、Object_ID、オブジェクト・シグニチャ、Object_lengthを読み取ることができ、オブジェクトの終わりを識別するためにオブジェクトの長さを使用してオブジェクト・コンテンツを読み取ることができる。受信された情報により、クライアント・デバイスは、現在のサブスクライバ・オブジェクト・セット・テーブルを、Object_IDおよび対応するシグニチャにより更新する。クライアント・デバイスは、削除されるべきオブジェクト・エントリを削除し、新しいオブジェクト・エントリを追加する。次いで、オブジェクトのコンテンツ自体はそのローカル・ストレージ内で、送信された最終レベルで置き換えられる。サーバはリフレッシュされており、それが必要としたオブジェクトと再同期化されている。
【図面の簡単な説明】
【００３０】
【図１】好ましい実施形態の環境を例示する図である。
【図２】サーバ側でデバイス・オブジェクトを管理するために格納された３つのテーブル、Subscription_table、Deal_Object_tableおよびObject_tableを例示する図である。
【図３】クライアント・デバイス内で更新されるべきオブジェクトが選択される方法を例示する図である。
【図４】クライアント・デバイスにダウンロードされるべきオブジェクト・リストのフォーマットを示す図である。
【図５】リフレッシュの前後にクライアント・デバイス内に位置するサブスクライバの現在のオブジェクト・テーブルを例示する図である。
【図６】クライアント・デバイスとウェブ・サーバの間の情報の交換の例示の図である。
【図７】クライアント・デバイスをリフレッシュおよび同期化するための好ましい実施形態の方法の流れ図である。
【図１】
2005530258.tif 000003
【図２】
2005530258.tif 000004
【図３】
2005530258.tif 000005
【図４】
2005530258.tif 000006
【図５】
2005530258.tif 000007
【図６】
2005530258.tif 000008
【図７】
2005530258.tif 000009
【国際調査報告】
2005530258.tif 000010
2005530258.tif 000011
2005530258.tif 000012