(57)【特許請求の範囲】
【請求項１】
複数の異なる同期エンドポイント上の複数のアプリケーション間でデータを同期化する方法であって、
クライアント同期アダプターが、同期化されるべきデータを得るために第１の同期エンドポイントに対してポーリングすることによって、前記同期化されるべきデータを前記第１の同期エンドポイント上の第１のアプリケーションから受信するステップと、
前記クライアント同期アダプターが、前記同期化されるべきデータを、携帯電話メッセージプロトコルに従ってメッセージをトランスポートする第１のネットワークトランスポート機構を介して伝送するためのメッセージにアセンブルするステップと、
前記クライアント同期アダプターによってアセンブルされた前記メッセージを前記第１のネットワークトランスポート機構を介して伝送するステップと、
前記第１のネットワークトランスポート機構を介して、前記第１の同期エンドポイント上の前記第１のアプリケーションから前記同期化されるべきデータを含む前記メッセージを受信するステップと、
前記携帯電話メッセージプロトコルとは異なるＷｅｂフィードフォーマットを使用してデータをトランスポートするＷｅｂトランスポート機構を介した伝送のために、前記受信されたメッセージに含まれる同期化されるべき前記データを前記Ｗｅｂフィードフォーマットに従って同期フィードにアセンブルするステップと、
前記Ｗｅｂトランスポート機構を介して、第２のアプリケーションを含む第２の同期エンドポイントに前記同期フィードをパブリッシュするステップと、
を備える方法。
【請求項２】
前記第１のネットワークトランスポート機構は、
ショートメッセージサービストランスポート機構を備え、前記データを前記メッセージにアセンブルするステップは前記データを１６０文字以内のショートメッセージに分割するステップと、前記ショートメッセージのメタデータを生成するステップとを備える請求項１に記載の方法。
【請求項３】
Ｗｅｂフィードフォーマットに従って前記データを同期フィードにアセンブルするステップは、
ハイパーテキスト転送プロトコルに従ってデータを伝送する前記Ｗｅｂトランスポート機構を介して伝送するために前記データをＷｅｂフィードフォーマットにアセンブルするステップを備える請求項２に記載の方法。
【請求項４】
前記ショートメッセージサービストランスポート機構を介して前記メッセージを伝送する前に、同期化されるべき前記データを圧縮するステップをさらに備える請求項２に記載の方法。
【請求項５】
前記携帯電話メッセージプロトコルに従って前記クライアント同期アダプターへの応答を生成するステップと、
前記応答を前記第１のネットワークトランスポート機構を介して前記クライアント同期アダプターに伝送するステップと、
をさらに備える請求項１に記載の方法。
【請求項６】
同期化されるべき追加のデータを前記Ｗｅｂトランスポート機構を介して前記第２の同期エンドポイントから受信するステップと、
前記携帯電話メッセージプロトコルに従って前記第１のネットワークトランスポート機構を介して伝送するために前記追加のデータを含むメッセージを生成するステップと、
前記第１のネットワークトランスポート機構を介して同期化されるべき前記追加のデータを含む前記メッセージを伝送するステップと、
をさらに備える請求項１に記載の方法。
【請求項７】
前記追加のデータを含む前記メッセージを生成する前に、前記追加のデータを圧縮するステップをさらに備える請求項６に記載の方法。
【請求項８】
同期化されるべき追加のデータを受信するステップは、
複数の異なる同期エンドポイントから同期化のために前記Ｗｅｂトランスポート機構を介してデータを伝送する同期Ｗｅｂサービスから前記追加のデータを受信するステップを備える請求項７に記載の方法。
【請求項９】
複数の異なる同期エンドポイント間でデータを同期化するための同期システムであって、
第１の同期エンドポイントに対してポーリングすることによって前記第１の同期エンドポイント上のアプリケーションから同期化されるべきデータを受信し、前記同期化されるべきデータを、携帯電話メッセージプロトコルに従う第１のトランスポート機構を介して伝送するためのメッセージにアセンブルするよう構成された同期アダプターと、
前記同期アダプターに結合され、前記第１のトランスポート機構を介して前記メッセージを伝送するように構成された第１のモバイルデバイスと、
前記メッセージを、前記携帯電話メッセージプロトコルに従って前記第１のトランスポート機構を介して前記第１のモバイルデバイスから受信するよう構成された第２のモバイルデバイスと、
Ｗｅｂトランスポート機構を介した伝送のために、同期化されるべき前記データを含む同期フィードを前記携帯電話メッセージプロトコルとは異なるＷｅｂフィードフォーマットに従って生成し、前記Ｗｅｂトランスポート機構を介して前記同期フィードを伝送することにより第２の同期エンドポイントに前記同期フィードをパブリッシュするように構成されたゲートウェイコンポーネントとを備えるシステム。
【請求項１０】
前記第１のトランスポート機構はショートメッセージサービストランスポート機構を備える請求項９に記載の同期システム。
【請求項１１】
前記第１および第２のモバイルデバイスは第１および第２の携帯電話を備える請求項１０に記載の同期システム。
【請求項１２】
前記第２の携帯電話はゲートウェイコンポーネントを含む請求項１１に記載の同期システム。
【請求項１３】
前記第１の携帯電話は同期アダプターを含む請求項１２に記載の同期システム。
【請求項１４】
前記ゲートウェイに結合され、前記同期フィードを前記同期エンドポイントにパブリッシュするように構成されたＷｅｂサービスコンポーネントをさらに備える請求項９に記載の同期システム。
【請求項１５】
複数の異なる同期エンドポイント上の複数のアプリケーション間でデータを同期化する方法であって、
クライアント同期アダプターが、同期化されるべきデータを得るために第１の同期エンドポイントに対してポーリングすることによって、前記同期化されるべきデータを前記第１の同期エンドポイント上の第１のアプリケーションから受信するステップと、
前記クライアント同期アダプターが、前記同期化されるべきデータを、ショートメッセージサービスプロトコルに従ってメッセージをトランスポートするショートメッセージサービストランスポート機構を介して伝送するためのメッセージにアセンブルするステップと、
前記ショートメッセージサービストランスポート機構を介して、前記第１のアプリケーションから前記同期化されるべきデータを含む前記クライアント同期アダプターによってアセンブルされた前記メッセージを受信するステップと、
ハイパーテキスト転送プロトコルを使用してデータをトランスポートするＷｅｂトランスポート機構を介して伝送するために、同期化されるべき前記データをＷｅｂフィードフォーマットに従って同期フィードにアセンブルするステップと、
前記Ｗｅｂトランスポート機構を介して、第２のアプリケーションを含む第２の同期エンドポイントに前記同期フィードをパブリッシュするステップと、
を備える方法。
【請求項１６】
前記ショートメッセージサービストランスポート機構を介して前記メッセージを伝送する前に、同期化されるべき前記データを圧縮するステップをさらに備える請求項１５に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]従来、アプリケーション間のデータの同期化は実行されてきた。そのような同期化を実行する際に、数多くの問題が対処される必要がある。たとえば、アプリケーションは、ネットワークへのさまざまなタイプの接続を有するシステム上に常駐することもある。所与のネットワークの特定の特異性は、さまざまなアプリケーションでさまざまなネットワークにわたり動作する一般的な同期システムを生成することを妨げる障害となる可能性もある。
【０００２】
[0002]データを同期化するために現在使用されているシステムの１つのタイプは、Ｗｅｂブログエントリ、ニュースヘッドライン、ポッドキャスト（Ｐｏｄｃａｓｔ）などのような、頻繁に更新されるコンテンツをパブリッシュするために使用されるＷｅｂフィードフォーマットのファミリーを使用する。Ｗｅｂフィードフォーマットのこのファミリーは、「Ｒｅａｌｌｙ  Ｓｉｍｐｌｅ  Ｓｙｎｄｉｃａｔｉｏｎ」（ＲＳＳ）フォーマットと呼ばれる。そのようなシステムはまた、「ＡＴＯＭフィードフォーマット」と呼ばれる類似したフォーマットを使用することもある。ＲＳＳまたはＡＴＯＭフィードフォーマットを使用して伝送されうるデータは通常、ユーザーが所与のフィードをサブスクライブするときに伝送される。ユーザーのシステム上のリーダーは、新しいコンテンツがないかユーザーのサブスクライブしたリンクを調べ、ユーザーにより所望されるコンテンツへの更新をダウンロードする。
【０００３】
[0003]上記の説明は単に、一般的な背景情報のために提供されるに過ぎず、請求項に係る主題の範囲を決定する際の補助として使用されることは意図されない。
【発明の概要】
【０００４】
[0004]ｓｉｍｐｌｅ  ｓｈａｒｉｎｇ  ｅｘｔｅｎｓｉｏｎ（別称ＦｅｅｄＳｙｎｃ）は、さまざまなデータソースを使用することにより情報の集約を可能にするＲＳＳおよびＡＴＯＭフィードフォーマットの拡張である。これらの拡張は、ＲＳＳまたはＡＴＯＭフィードフォーマットを使用してエンドポイントのメッシュにわたりデータを同期化する方法を提供する。
【０００５】
[0005]通常、このタイプの同期化の実施には現在、エンドポイント間の継続的な高速ネットワーク接続が必要となる。たとえば、このタイプの同期システムの一部の現在の実施態様において、クライアントノードは、フィードの更新を求めてサーバーノードを定期的にポーリングする。クライアントノードはまた、それ自身のローカルな変更をサーバーに返信し、それらの変更が他のエンドポイントにパブリッシュされうるようにする。ノードは、継続的に接続されている高速ネットワークを介して接続される。このタイプの実施態様において、開発者は通常、パブリケーションの要求ごとにクライアントとサーバー間で通信されるデータのサイズに関心を持つ必要はない。また、開発者は、同期化されているデータの全サイズに関心を持つ必要もない。これらのタイプのネットワークは単に、通常のデータセットを容易に処理できるように、十分に堅固である。
【０００６】
[0006]しかし、それほど有能なネットワークを有する実施態様においてさえ、データを同期化することが望ましい場合もある。このタイプのネットワークの例は、携帯電話ショートメッセージサービス（ＳＭＳ）ネットワークである。ＳＭＳは、モバイル通信用グローバルシステム（ＧＳＭ）で動作するモバイルハンドセットとの間で最大１６０文字のメッセージを送信するための通信プロトコルを定義するが、ここでＧＳＭはモバイル通信の規格を規定する。
【０００７】
[0007]そのようなシナリオにおいて、要求あたりのデータサイズおよび全データセットサイズは共に、重大な懸念をもたらす。前述のように、ＳＭＳメッセージは、メッセージあたり約１６０文字に制限されており、比較的低速で伝送される。また、メッセージは通常送信されるが、受信されることはない。
【０００８】
[0008]したがって、本発明のシステムは、２つの異なるネットワーク上で２つの同期エンドポイントを接続するブリッジ（またはアダプター）を含む。ブリッジは、最初に、同期化されるべき情報を受信し、この情報を第１のプロトコルに従って第１のネットワークを介してトランスポートされるメッセージに形成するためにメタデータを生成する。ゲートウェイは、第１のトランスポート機構を介してメッセージを受信し、第２のプロトコルに従って第２のネットワークを介してトランスポートされうる同期フィードを生成する。１つの実施形態において、第１のトランスポート機構はＳＭＳメッセージをトランスポートし、第２のトランスポート機構は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用するネットワークを介して提供される同期フィードを備える。
【０００９】
[0009]この「発明の概要」は、「発明を実施するための形態」において以下でさらに説明される簡略化された形で一連の概念を紹介するために提供される。この「発明の概要」は、請求の範囲に係る主題の主要特徴または重要特徴を特定することを意図されておらず、また請求の範囲に係る主題の範囲を決定する際の補助として使用されることも意図されてはいない。請求の範囲に係る主題は、背景技術において示される任意またはすべての欠点を解決する実施態様に限定されることはない。
【図面の簡単な説明】
【００１０】
【図１】[0010]１つの例示的な通信システムを示すブロック図である。
【図２】[0011]図１に示されるシステムの１つの実施形態を示す流れ図である。
【図３】[0012]図１に示されるシステムの動作のもう１つの実施形態を示す流れ図である。
【図４】[0013]通信システムのさらに詳細な実施形態を示す図である。
【図５】[0014]１つの例示のコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【００１１】
[0015]図１は、１つの例示的な同期システム１００のブロック図である。システム１００は、データソース１０２から同期化エンドポイント１０４へのデータを同期化する。システム１００は、同期アダプター１０６、モバイルデバイス１０８、第１のトランスポート１１１を超えてモバイルデバイス１０８に接続されたモバイルデバイス１１０、同期ゲートウェイ１１２、および第２のトランスポート１１６を超えてゲートウェイ１１２に接続される同期Ｗｅｂサービス１１４を含む。
【００１２】
[0016]図１に示される実施形態において、データソース１０２は、例示的に、１つまたは複数の同期エンドポイント１０４においてデータに同期化されるべきアプリケーションデータを有する任意の望ましいアプリケーションであってもよい。たとえば、図１に示される実施形態において、データソース１０２はデータベースアプリケーションであってもよい。
【００１３】
[0017]また、図１に示される実施形態において、モバイルデバイス１０８および１１０は、第１のトランスポート１１１に沿って相互に通信する。第１のトランスポート１１１は、例示的に、ショートメッセージサービス（ＳＭＳ）リンクのような、低速リンクであってもよい。ＳＭＳリンク１１１は、ＲＳＳまたはＡＴＯＭフィードフォーマットのような、同期フォーマットをサポートしない。したがって、図１に示される実施形態において、同期アダプター１０６は、データソース１０２から同期化されるべきデータを受信し、それを第１のトランスポート１１１を使用してモバイルデバイス１０８によって送信されうるショートメッセージに変換する。
【００１４】
[0018]メッセージは、モバイルデバイス１１０によって受信され、同期ゲートウェイ１１２に提供される。図１に示される実施形態において、第２のトランスポート１１６は、同期フォーマットをサポートするトランスポートである。たとえば、第２のトランスポート１１６は、例示的に、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するトランスポートであってもよい。これは、第１のトランスポート１１１が実施されるネットワークと比較して、相対的に高速で堅固なネットワークである。したがって、同期ゲートウェイ１１２は、モバイルデバイス１１０からショートメッセージを受信し、メッセージが同期フォーマットを使用して第２のトランスポート１１６を介して同期Ｗｅｂサービス１１４に転送されうるように、メッセージを同期フォーマットにするために必要なメタデータを生成する。
【００１５】
[0019]１つの実施形態において、同期Ｗｅｂサービス１１４は、継続的な高速トランスポート１１６を介してｓｉｍｐｌｅ  ｓｈａｒｉｎｇ  ｅｘｔｅｎｓｉｏｎでメッセージを受け入れ、望ましい同期フォーマット（ＲＳＳまたはＡＴＯＭフィードフォーマットなど）に従ってエンドポイント１０４のメッシュにパブリッシュされる同期フィード１１８を生成する。
【００１６】
[0020]図２は、図１に示されるシステム１００の全体的な動作をさらに詳細に示す流れ図である。これ以降、図１および図２は併せて説明される。しかし、図１および図２の説明に先立って、同期アダプター１０６および同期ゲートウェイ１１２は、任意の比較的に低速の脆弱な第１のトランスポート１１１を介してデータソース１０２からの同期化されるべきデータを同期エンドポイント１０４に転送するように構成されてもよいことに留意されたい。つまり、本発明のシステムが使用されうる非常に低い帯域幅で高い待ち時間のチャネルが多数ある。ＳＭＳはその１つであるが、そのようなトランスポート機構のもう１つの例は、アマチュア無線伝送が送信されるチャネルである。ＳＭＳに関する説明は、例示的なものに過ぎない。
【００１７】
[0021]いかなる場合においても、同期アダプター１０６は最初に、同期化されるべきデータをデータソース１０２から受信する。上記で説明されているように、データソース１０２は、同期エンドポイント１０４においてデータに同期化されるべきアプリケーションデータを有する任意の望ましいアプリケーションであってもよい。アダプター１０６において同期化されるべきデータを受信するステップは、図２のブロック１５０により示される。
【００１８】
[0022]次いで、同期アダプター１０６または他の別個のコンポーネントのいずれかは、同期化されるべきデータをオプションで圧縮することができる。第１のトランスポート１１１は比較的低い帯域幅で高い待ち時間のトランスポートであるため、同期化されるべきデータが実際に同期エンドポイント１０４により迅速に到達することができるように、第１のトランスポート１１１を介して送信されるデータの量を減少させることは有益となりうる。同期化されるべきデータを圧縮するステップは、図２のブロック１５２により示される。
【００１９】
[0023]アダプター１０６は、同期化されるべきデータをさまざまな方法でアプリケーション１０２から受信できることにも留意されたい。アプリケーション１０２は、変更されているので同期化の必要がある任意の新しいデータを同期アダプター１０６にプッシュすることができるか、またはアダプター１０６は新しいデータがないかデータソース１０２をポーリングすることができる。同期化されるべきデータは、図１のブロック１１９により示される。
【００２０】
[0024]データは、同期アダプター１０６が新しいデータを探すときに、最新の同期動作のタイムスタンプを超えるタイムスタンプを有するデータのみを取り出すことができるように、タイムスタンプでマーク付けされてもよい。あるいは、もちろん、同期化されるべきデータの各項目は、変更がその項目に加えられるごとに増加する、増え続ける値に関連付けられてもよい。次いで、アダプター１０６は、同期化されるべき項目の各々に関連付けられている値を、前回の同期動作以来増大しているかどうか確認することができる。データがデータソース１０２で変更されているため同期化が必要であるかどうかを決定するためのさまざまな他の方法が使用されてもよい。それらの説明は、ほんの一例として使用される。
【００２１】
[0025]同期アダプター１０６がエンドポイント１０４に同期化されるべきデータ項目を取得すると、同期アダプター１０６は、第１のトランスポート１１１を介してデバイス１０８により伝送するために適切なデータパケットにデータを分割する。デバイス１０８が携帯電話であり、トランスポート１１１がＳＭＳトランスポートである実施形態において、アダプター１０６は、データソース１０２から受信されたデータを（最大１６０文字の）ショートメッセージに分割し、第１のトランスポート１１１を介して伝送するために必要なメタデータを生成する。メタデータは、たとえば、ヘッダー情報、チェックサム情報、またはアダプター１０６により生成されたメッセージを記述する任意の他の望ましいメタデータを含むことができる。メッセージは、図１のブロック１２０により示される。この実施形態において、データをモバイルデバイスメッセージに分割するステップは、メタデータを生成するステップと併せて図２のブロック１５４により示される。
【００２２】
[0026]次いで、メッセージ１２０は、モバイルデバイス１０８に提供され、第１のトランスポート１１１を介してモバイルデバイス１０８により伝送される。これは、図２のブロック１５６により示される。
【００２３】
[0027]メッセージ１２０は、モバイルデバイス１１０においてトランスポート１１１を介して受信されるが、モバイルデバイス１１０はメッセージ１２０を同期ゲートウェイ１１２に提供する。モバイルデバイスメッセージをゲートウェイ１１２において受信するステップは、図２のブロック１５８により示される。
【００２４】
[0028]次いで、ゲートウェイ１１２は、メッセージ１２０を、第２のトランスポート１１６を介して伝送するために適切なフォーマットにアセンブルする。図１に示される実施形態において、第２のトランスポート１１６はＨＴＴＰを使用して動作する。たとえば、同期ゲートウェイ１１２は、例示的に、メッセージ１２０内のデータをＲＳＳフォーマットにフォーマットするが、ＲＳＳフォーマットは頻繁に更新されるコンテンツをパブリッシュするために使用されるＷｅｂフィードのファミリーである。あるいは、ゲートウェイ１１２は、メッセージ１２０からのデータをＡＴＯＭフィードフォーマットにすることもできるが、ＡＴＯＭフィードフォーマットもまた頻繁に更新されるコンテンツをパブリッシュするために使用されるフォーマットである。これらのフォーマットは一例として示され、その他のＷｅｂ同期フォーマットが同様に使用されてもよい。モバイルデバイスメッセージ１２０をＷｅｂ同期フォーマットメッセージにアセンブルするステップは、図２のブロック１６０により示される。Ｗｅｂ同期フォーマットメッセージは、図１のブロック１２２により示される。
【００２５】
[0029]同期ゲートウェイ１１２はまた、例示的に、同期化されるべきデータの一部として同期アダプター１０６から送信されるメッセージ１２０のすべてが、Ｗｅｂフォーマットメッセージ１２２へのフォーマットを開始する前に確実に受信されることを確認する。
いくつかのメッセージ、またはメッセージの一部が伝送中に失われてターゲットシステムに受信されないことも、第１トランスポート１１１のようなトランスポート機構では一般に起こりうる。したがって、メッセージは、完全なＷｅｂフォーマットメッセージ１２２が準備されうる前に再伝送される必要がある場合もある。そのような場合、同期ゲートウェイ１１２は、例示的に、Ｗｅｂフォーマットメッセージ１２２を生成するために必要な処理オーバーヘッドをまねく前に、同期されるべきデータのすべてが受信されるまで待機する。
【００２６】
[0030]すべてのメッセージが受信されると、同期ゲートウェイ１１２は、例示的に、第１のトランスポート１１１を介してデバイス１１０によって伝送されうるメッセージフォーマットで応答１２４を生成する。応答は、すべてのメッセージが受信されたことをアダプター１０６に指示する。応答を伝送するステップは、図２のブロック１５９により示される。
【００２７】
[0031]Ｗｅｂ同期フォーマットメッセージ１２２は、同期Ｗｅｂサービス１１４に提供される。Ｗｅｂ同期フォーマットメッセージ１２２は、例示的に、ＲＳＳまたはＡＴＯＭフィードを使用してエンドポイント１０４のメッシュにわたり同期化されうるように、ｓｉｍｐｌｅ  ｓｈａｒｉｎｇ  ｅｘｔｅｎｓｉｏｎによりフォーマットされてもよい。第２のトランスポート１１６は比較的高速で継続的なネットワークであるため、Ｗｅｂ同期フォーマットメッセージ１２２は、これらのフォーマットを使用して送信されてもよい。
【００２８】
[0032]次いで、同期Ｗｅｂサービス１１４は、Ｗｅｂ同期フォーマットメッセージ１２２を同期フィード１１８として同期エンドポイント１０４にパブリッシュする。これは、図２のブロック１６２により示される。
【００２９】
[0033]図３は、同期エンドポイント１０４の１つにおいて変化したデータを、２つの異なるトランスポート１１１および１１６を介してデータソース１０２内のデータに同期化する際の、図１に示されるシステム１００の動作を示す流れ図である。このタイプの同期の実行において、同期ゲートウェイ１１２は、例示的に、同期エンドポイント１０４の１つによりパブリッシュされた任意のデータ、およびデータソース１０２においてデータに同期化されるべき任意のデータについて同期Ｗｅｂサービス１１４をポーリングする。
【００３０】
[0034]上記で同期アダプター１０６に関して説明された技法と同じ技法または異なる技法は、同期化されるべき任意の新しいデータがあるかどうか決定するためにゲートウェイ１１２によって使用されてもよい。たとえば、同期ゲートウェイ１１２は、その最新の同期動作に関連付けられているタイムスタンプを保持することができる。次いで、Ｗｅｂサービス１１４をポーリングするとき、同期ゲートウェイ１１２は、その最新の同期動作の前に行われたすべての変更を無視して、それ以降に行われた変更のみを探す。同期ゲートウェイ１１２が複数の異なる同期アダプター１０６で動作する場合、例示的に、各アダプター１０６に対して実行された最新の同期動作を追跡する。たとえば、同期ゲートウェイ１１２が、各々１つまたは複数の異なるデータソース１０２に関連付けられている、複数の異なる同期アダプター１０６にサービスを提供することがあってもよい。その場合、同期ゲートウェイ１１２は、各アダプター１０６に対して実行された最新の同期動作を追跡する。
【００３１】
[0035]同期エンドポイント１０４によりパブリッシュされたデータがデータソース１０２に同期化される必要があるかどうかを決定するためのその他の機構もまた、使用されてもよい。たとえば、各同期アダプター１０６は、その前回の同期動作がいつ実行されたかを決定するために、ゲートウェイ１１２によりクエリを行われてもよい。そのようにして、ゲートウェイ１１２は、クライアントごとにこの情報を追跡する必要はないが、クライアントアダプター自身はこの情報を遺跡することができる。
【００３２】
[0036]さらに、エンドポイント１０４に同期化されるべき各データ項目は、前回変更された時間を指示する各自のタイムスタンプを有することができる。次いで、ゲートウェイ１１２は、データ項目が前回変更された以降に同期動作が実行されたかどうかを決定するため、同期のために同期Ｗｅｂサービス１１４によってパブリッシュされた各データ項目のタイムスタンプを調べることができる。どのデータ項目が同期化される必要があるかを識別するためのこれらの技法はすべて一例として説明されているに過ぎず、その他の技法が使用されてもよい。
【００３３】
[0037]いずれの場合においても、同期ゲートウェイ１１２は、同期Ｗｅｂサービス１１４が、同期化される必要のある任意のデータを、同期ゲートウェイ１１２が動作しているクライアント同期アダプター１０６にパブリッシュしているかどうかを決定する。これは図３のブロック２００により示され、同期化されるべきデータは、図１のＷｅｂフォーマットメッセージブロック１２２により示される。
【００３４】
[0038]そのようなデータが存在する場合、同期ゲートウェイ１１２（または別のデバイス）は、オプションで、低速で低待ち時間のトランスポート１１１を介して伝送されるデータの量が最小化されるか、または少なくともある程度減少されるように、メッセージ１２２内のデータを圧縮することができる。データの圧縮は、図３のブロック２０２により示される。
【００３５】
[0039]次いで、ゲートウェイ１１２は、同期化されるべきデータ２５０を、モバイルデバイス１１０によりトランスポート１１１を介して伝送されうるメッセージ１２０に分割する。クライアント同期アダプター１０６に関して上記で説明されたように、トランスポート１１１がＳＭＳトランスポートである場合、同期化されるべきデータ２５０は１６０文字以内のＳＭＳメッセージに分割され、ゲートウェイ１１２もまた、ＳＭＳトランスポートにより使用される必要なメタデータ（ヘッダーおよびチェックサムデータなど）を生成する。データをモバイルデバイスメッセージに分割するステップは、図３のブロック２０４により示される。
【００３６】
[0040]次いで、メッセージ１２０は、モバイルデバイス１１０に提供され、第１のトランスポート１１１を介してモバイルデバイス１０８に伝送される。次いで、モバイルデバイス１０８は、メッセージ１２０をクライアント同期アダプター１０６に提供する。メッセージを第１のトランスポート（たとえば、モバイルデバイスネットワーク）１１１を介して伝送するステップは、図３のブロック２０６により示される。
【００３７】
[0041]次いで、クライアント同期アダプター１０６は、データがデータソース１０２の対応するデータに同期化されうるように、メッセージ１２０のデータを準備する。たとえば、データソース１０２が特定のフォーマットのデータを予期する特定のアプリケーションである場合、アダプター１０６は、メッセージ１２０に含まれるデータを、データソース１０２に望ましいフォーマットにアセンブルする。次いで、適切なフォーマットの同期化されるべきデータ１１９は、データソース１０２に提供され、データソース１０２の対応するデータ項目に同期化される。メッセージ１２０からデータを取り出して、データソース１０２のデータを同期化するステップは、図３のブロック２０８により示される。
【００３８】
[0042]図４は、１つは比較的低速で低待ち時間のトランスポート１１１であり、もう一方は高速で継続的なトランスポート１１６である、２つの異なるデータトランスポートを介してデータを同期化するためのシステム１００の１つの例示的な実施形態を示すさらに詳細なブロック図である。図４は、会社の第１の支社３００からのデータが、低待ち時間のトランスポート１１１を介して第２の支社３０２に伝送される実施形態を示す。次いで、データは、高周波数トランスポート１１６を介して伝送するために準備され、複数の同期化エンドポイント１０４にパブリッシュするためにＷｅｂサービス１１４に提供される。
【００３９】
[0043]図４は、データソース１０２が、ジョブマネージャーコンポーネント３０６によってアクセスされるデータベースアプリケーション３０４であってもよいことを示す。ジョブマネージャーコンポーネント３０６は、データベースアプリケーション３０４と対話して、データベースアプリケーション３０４からデータを取り出し、データをデータベースアプリケーション３０４に書き込み、通常データベースアプリケーション３０４のデータを保持する。図４に示される実施形態において、クライアント同期アダプター１０６は、ＳＭＳデスクトップクライアントコンポーネント３０８として実施される。ＳＭＳデスクトップクライアントコンポーネント３０８は、例示的に、図４の矢印３１０によって指示される、ＡＰＩまたはジョブマネージャー３０６により公開される任意の他のインターフェイスを使用して、ジョブマネージャー３０６に結合される。図４に示される実施形態はまた、モバイルデバイス１０８が例示的に、たとえばＵＳＢ接続３１４を使用してＳＭＳデスクトップクライアントコンポーネント３０８に接続されうる携帯情報端末３１２として実施されることを示す。モバイルデバイス１１０はまた、図４に示される実施形態において、携帯情報端末３１６として実施される。モバイルデバイス３１２および３１６は、図４において、携帯電話を含む携帯情報端末として示され、トランスポート１１１を介してＳＭＳパケットを送信することにより、トランスポート１１１を介して相互に通信する。
【００４０】
[0044]図４はまた、１つの実施形態において、同期ゲートウェイ１１２が、たとえばＵＳＢ接続３２０を使用してモバイルデバイス３１６に接続されるＳＭＳゲートウェイコンポーネント３１８として実施されることを示す。
【００４１】
[0045]図４はまた、同期Ｗｅｂサービス１１４が、ｓｉｍｐｌｅ  ｓｈａｒｉｎｇ  ｅｘｔｅｎｓｉｏｎを使用して同期フィード１１８を生成し、それらを同期エンドポイント１０４にパブリッシュできることを示す。
【００４２】
[0046]したがって、ＳＭＳデスクトップクライアントコンポーネント３０８は、同期化されるべきデータをデータベースアプリケーション３０４からジョブマネージャー３０６を通じて受信して、そのデータをＵＳＢ接続３１４を介してクライアント３１２に伝送されるＳＭＳパケットに形成するように構成される。ＳＭＳデスクトップクライアントコンポーネント３０８はまた、ＵＳＢ接続３１４を介してＳＭＳパケットを受信し、それらをデータベースアプリケーション３０４内のデータに同期化するために望ましいフォーマットでジョブマネージャー３０６に供給するように構成される。
【００４３】
[0047]ＳＭＳゲートウェイコンポーネント３１８は、モバイルデバイス３１６に伝送され、ＵＳＢ接続３２０を介してＳＭＳゲートウェイコンポーネント３１８に転送されたＳＭＳパケットを受信するように構成される。ＳＭＳゲートウェイコンポーネント３１８はまた、同期エンドポイント１０４にパブリッシュするために同期フィード１１８を生成する同期Ｗｅｂサービス１１４にＨＴＴＰリンク１１６を介して伝送するためにＷｅｂフィードフォーマットでメッセージを生成するように構成される。同様に、ＳＭＳゲートウェイコンポーネント３１８は逆方向に動作することができ、ＨＴＴＰリンク１１６を介して同期フィード１１８を受信して、それらのフィードから、リンク３２０を介してモバイルデバイス３１６に伝送するためにＳＭＳパケットを生成し、ＳＭＳパケットはさらにＳＭＳリンク１１１を介してモバイルデバイス３１２に伝送される。
【００４４】
[0048]このように、本発明のシステムが、たとえＳＭＳネットワークのような非常に低速のトランスポート１１１を介しても、アプリケーションからのデータの同期化をもたらすことが理解されうる。次いで、データは、高速トランスポート１１６を使用して同期化するためにＷｅｂフィードフォーマットに準備される。もちろん、データは、Ｗｅｂフィードフォーマットを使用して準備された後、同期エンドポイント１０４のメッシュで同期化されてもよい。したがって、コンポーネント１０６および１１２は、エンドポイントが比較的低速のネットワークによって分離されており、Ｗｅｂフィードフォーマットを使用することが非常に困難な場合であっても、Ｗｅｂフィードフォーマットを使用して、２つのエンドポイント１０２および１０４を接続するブリッジとしての機能を果たす。
【００４５】
[0049]当然、アダプター１０６が、モバイルデバイス１０８内で直接実施されてもよく、ゲートウェイ１１２がモバイルデバイス１１０内で直接実施されてもよいことも理解されるであろう。同様に、モバイルデバイス１０８および１１０はまた、アダプター１０６およびゲートウェイ１１２の両方を含むことができる。さらに、モバイルデバイス３１６は、コンポーネント３０４、３０６、および３１０を含むことができる。したがって、それらのコンポーネントが図１および図４において別々に示されていても、これらは実際には別個のコンポーネントまたはデバイスである必要はない。
【００４６】
[0050]図５は、本発明が実施されうる適切なコンピューティングシステム環境４００の例を示す。コンピューティングシステム環境４００は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能の範囲に関していかなる限定も提案することを意図されていない。また、コンピューティング環境４００は、例示の運用環境４００に示されるコンポーネントのいずれか１つまたはその組み合わせに関していかなる依存性または要件を有するものと解釈されるべきではない。
【００４７】
[0051]本発明は、数多くの他の一般的用途または特殊用途のコンピューティングシステム環境、または構成で動作することができる。本発明と共に使用するために最適となりうるよく知られたコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピューター、サーバーコンピューター、ハンドヘルドまたはラップトップデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースのシステム、セットトップボックス、プログラマブル消費者電化製品、ネットワークＰＣ、ミニコンピューター、メインフレームコンピューター、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらに限定されることはない。
【００４８】
[0052]本発明は、コンピューターによって実行されるプログラムモジュールのような、コンピューター実行可能命令の一般的なコンテキストに即して説明されうる。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明はまた、タスクが通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、プログラムモジュールは、メモリー記憶装置を含むローカルおよびリモートのコンピューター記憶域メディアに配置されてもよい。
【００４９】
[0053]図５を参照すると、本発明を実施するための例示のシステムは、コンピューター４１０の形態をとる汎用コンピューティングデバイスを含む。コンピューター４１０のコンポーネントは、処理装置４２０、システムメモリー４３０、およびシステムメモリーを含むさまざまなシステムコンポーネントを処理装置４２０に結合するシステムバス４２１を含むことができるが、これらに限定されることはない。システムバス４２１は、メモリーバスまたはメモリーコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちの任意のものであってもよい。限定的ではなく例示的に、そのようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００５０】
[0054]コンピューター４１０は通常、各種のコンピューター可読メディアを含む。コンピューター可読メディアは、コンピューター４１０がアクセスされうる、揮発性および不揮発性メディア、リムーバブルおよび固定メディアを含む任意の使用可能なメディアであってもよい。一例として、コンピューター可読メディアは、コンピューター記憶域メディアおよび通信メディアを備えることができるが、これらに限定されることはない。コンピューター記憶域メディアは、コンピューター可読命令、データ構造、プログラムモジュールおよびその他のデータなどの情報の格納のための任意の方法または技術で実装された揮発性および不揮発性の、リムーバブルおよび固定メディアを含む。コンピューター記憶域メディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーその他のメモリー技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置その他の磁気記憶装置、あるいは望ましい情報を格納するために使用されうる、コンピューター４１０によってアクセスされうる任意の他の媒体を含むが、これらに限定されることはない。通信メディアは通常、コンピューター可読命令、データ構造、プログラムモジュール、またはその他のデータを搬送波のような変調データ信号もしくは他のトランスポート機構で具現し、任意の情報配信メディアを含む。「変調データ信号」という用語は、信号の特性セットの１つまたは複数を有する信号、または信号の情報をエンコードするような方法で変更された信号を意味する。限定的ではなく、一例として、通信メディアは、有線ネットワークまたは直接有線接続のような有線メディア、ならびに音響、ＲＦ、赤外線および他の無線メディアを含む。上記の任意の組み合わせも、コンピューター可読メディアの範囲に含まれるものとする。
【００５１】
[0055]システムメモリー４３０は、読み取り専用メモリー（ＲＯＭ）４３１およびランダムアクセスメモリー（ＲＡＭ）４３２のような揮発性および／または不揮発性メモリーの形態をとるコンピューター記憶域メディアを含む。起動時などにコンピューター４１０内の要素間の情報の転送を助ける基本ルーチンを含むＢＩＯＳ（基本入出力システム）４３３は通常、ＲＯＭ４３１に格納される。ＲＡＭ４３２は通常、処理装置４２０によって即時アクセス可能および／または現在操作されているデータおよび／またはプログラムモジュールを含む。限定的ではなく、一例として、図５は、オペレーティングシステム４３４、アプリケーションプログラム４３５、その他のプログラムモジュール４３６、およびプログラムデータ４３７を示す。
【００５２】
[0056]コンピューター４１０はまた、他のリムーバブル／固定の、揮発性／不揮発性のコンピューター記憶域メディアを含むこともできる。ほんの一例として、図５では、固定の不揮発性磁気メディアとの間の読み取りまたは書き込みを行うハードディスクドライブ４４１、リムーバブルの不揮発性磁気ディスク４５２との間の読み取りまたは書き込みを行う磁気ディスクドライブ４５１、およびＣＤ−ＲＯＭその他の光メディアなどのリムーバブルの不揮発性光ディスク４５６との間の読み取りまたは書き込みを行う光ディスクドライブ４５５を示す。例示的な運用環境において使用されうるその他のリムーバブル／固定の、揮発性／不揮発性コンピューター記憶域メディアは、磁気テープカセット、フラッシュメモリーカード、ＤＶＤ（デジタル多用途ディスク）、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどを含むが、これらに限定されることはない。ハードディスクドライブ４４１は通常、インターフェイス４４０などの固定メモリーインターフェイスを通じてシステムバス４２１に接続され、磁気ディスクドライブ４５１および光ディスクドライブ４５５は通常、インターフェイス４５０のようなリムーバブルメモリーインターフェイスによってシステムバス４２１に接続される。
【００５３】
[0057]上記で説明され図５に示されるドライブおよびその関連するコンピューター記憶域メディアは、コンピューター４１０のコンピューター可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶装置を提供する。たとえば、図５において、ハードディスクドライブ４４１は、オペレーティングシステム４４４、アプリケーションプログラム４４５、その他のプログラムモジュール４４６、およびプログラムデータ４４７を格納するものとして示される。これらのコンポーネントは、オペレーティングシステム４３４、アプリケーションプログラム４３５、その他のプログラムモジュール４３６、およびプログラムデータ４３７と同じであっても、または異なっていてもよいことに留意されたい。オペレーティングシステム４４４、アプリケーションプログラム４４５、その他のプログラムモジュール４４６、およびプログラムデータ４４７は、少なくともそれらが異なるコピーであることを示すために本明細書において異なる番号が付けられている。システム１００のさまざまな部分は、モジュール４４６、プログラム４４５、またはリモート側を含む他の場所に格納されてもよい。
【００５４】
[0058]ユーザーは、キーボード４６２、マイクロフォン４６３、およびマウス、トラックボールまたはタッチパッドのようなポインティングデバイス４６１などの入力デバイスを通じてコンピューター４１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）は、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。上記およびその他の入力デバイスは、システムバスに接続されるユーザー入力インターフェイス４６０を通じて処理装置４２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスおよびバス構造によって接続されてもよい。モニター４９１またはその他の種類の表示装置も、ビデオインターフェイス４９０のようなインターフェイスを介してシステムバス４２１に接続される。モニターに加えて、コンピューターは、出力周辺インターフェイス４９５を通じて接続されうるスピーカー４９７およびプリンター４９６のような他の周辺出力デバイスを含むこともできる。
【００５５】
[0059]コンピューター４１０は、リモートコンピューター４８０のような、１つまたは複数のリモートコンピューターへの論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピューター４８０は、パーソナルコンピューター、ハンドヘルドデバイス、サーバー、ルーター、ネットワークＰＣ、ピアデバイスまたはその他の共通ネットワークノードであってもよく、通常は上記でコンピューター４１０に関連して説明される要素の多くまたはすべてを含む。図５に示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）４７１およびワイドエリアネットワーク（ＷＡＮ）４７３を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット、およびインターネットで一般化している。
【００５６】
[0060]ＬＡＮネットワーク環境に使用される場合、コンピューター４１０はネットワークインターフェイスまたはアダプター４７０を通じてＬＡＮ４７１に接続される。ＷＡＮネットワーク環境に使用される場合、コンピューター４１０は通常、モデム４７２、またはインターネットのようなＷＡＮ４７３を介して通信を確立するための他の手段を含む。モデム４７２は、内蔵または外付けであってもよく、ユーザー入力インターフェイス４６０または他の適切な機構を介してシステムバス４２１に接続されてもよい。ネットワーク化された環境において、コンピューター４１０に関連して示されるプログラムモジュール、またはその部分は、リモート記憶装置に格納されてもよい。限定的ではなく、一例として、図５は、リモートアプリケーションプログラム４８５をリモートコンピューター４８０に常駐するものとして示す。示されるネットワーク接続が模範的なものであり、コンピューター間の通信リンクを確立する他の手段が使用されてもよいことを理解されたい。
【００５７】
[0061]主題は構造的特徴および／または方法論的動作に固有の用語で説明されたが、添付の特許請求の範囲に定義された主題が上記で説明された特定の特徴または動作に限定される必要はないことを理解されたい。より正確に言えば、上記で説明された特定の特徴および動作は、特許請求の範囲を実施する例示の形態として開示される。
【図１】
0005469166.tif 000002
【図２】
0005469166.tif 000003
【図３】
0005469166.tif 000004
【図４】
0005469166.tif 000005
【図５】
0005469166.tif 000006