説明

異なるネットワーク上でデータを同期化するためのアダプター

本発明のシステムは、2つの異なるネットワーク上で2つの同期エンドポイントを接続するブリッジ(またはアダプター)を含む。ブリッジは、最初に、同期化されるべき情報を受信し、この情報を第1のプロトコルに従って第1のネットワークを介してトランスポートされるメッセージに形成するためにメタデータを生成する。ゲートウェイは、第1のトランスポート機構を介してメッセージを受信し、第2のプロトコルに従って第2のネットワークを介してトランスポートされうる同期フィードを生成する。

【発明の詳細な説明】
【背景技術】
【0001】
[0001]従来、アプリケーション間のデータの同期化は実行されてきた。そのような同期化を実行する際に、数多くの問題が対処される必要がある。たとえば、アプリケーションは、ネットワークへのさまざまなタイプの接続を有するシステム上に常駐することもある。所与のネットワークの特定の特異性は、さまざまなアプリケーションでさまざまなネットワークにわたり動作する一般的な同期システムを生成することを妨げる障害となる可能性もある。
【0002】
[0002]データを同期化するために現在使用されているシステムの1つのタイプは、Webブログエントリ、ニュースヘッドライン、ポッドキャスト(Podcast)などのような、頻繁に更新されるコンテンツをパブリッシュするために使用されるWebフィードフォーマットのファミリーを使用する。Webフィードフォーマットのこのファミリーは、「Really Simple Syndication」(RSS)フォーマットと呼ばれる。そのようなシステムはまた、「ATOMフィードフォーマット」と呼ばれる類似したフォーマットを使用することもある。RSSまたはATOMフィードフォーマットを使用して伝送されうるデータは通常、ユーザーが所与のフィードをサブスクライブするときに伝送される。ユーザーのシステム上のリーダーは、新しいコンテンツがないかユーザーのサブスクライブしたリンクを調べ、ユーザーにより所望されるコンテンツへの更新をダウンロードする。
【0003】
[0003]上記の説明は単に、一般的な背景情報のために提供されるに過ぎず、請求項に係る主題の範囲を決定する際の補助として使用されることは意図されない。
【発明の概要】
【0004】
[0004]simple sharing extension(別称FeedSync)は、さまざまなデータソースを使用することにより情報の集約を可能にするRSSおよびATOMフィードフォーマットの拡張である。これらの拡張は、RSSまたはATOMフィードフォーマットを使用してエンドポイントのメッシュにわたりデータを同期化する方法を提供する。
【0005】
[0005]通常、このタイプの同期化の実施には現在、エンドポイント間の継続的な高速ネットワーク接続が必要となる。たとえば、このタイプの同期システムの一部の現在の実施態様において、クライアントノードは、フィードの更新を求めてサーバーノードを定期的にポーリングする。クライアントノードはまた、それ自身のローカルな変更をサーバーに返信し、それらの変更が他のエンドポイントにパブリッシュされうるようにする。ノードは、継続的に接続されている高速ネットワークを介して接続される。このタイプの実施態様において、開発者は通常、パブリケーションの要求ごとにクライアントとサーバー間で通信されるデータのサイズに関心を持つ必要はない。また、開発者は、同期化されているデータの全サイズに関心を持つ必要もない。これらのタイプのネットワークは単に、通常のデータセットを容易に処理できるように、十分に堅固である。
【0006】
[0006]しかし、それほど有能なネットワークを有する実施態様においてさえ、データを同期化することが望ましい場合もある。このタイプのネットワークの例は、携帯電話ショートメッセージサービス(SMS)ネットワークである。SMSは、モバイル通信用グローバルシステム(GSM)で動作するモバイルハンドセットとの間で最大160文字のメッセージを送信するための通信プロトコルを定義するが、ここでGSMはモバイル通信の規格を規定する。
【0007】
[0007]そのようなシナリオにおいて、要求あたりのデータサイズおよび全データセットサイズは共に、重大な懸念をもたらす。前述のように、SMSメッセージは、メッセージあたり約160文字に制限されており、比較的低速で伝送される。また、メッセージは通常送信されるが、受信されることはない。
【0008】
[0008]したがって、本発明のシステムは、2つの異なるネットワーク上で2つの同期エンドポイントを接続するブリッジ(またはアダプター)を含む。ブリッジは、最初に、同期化されるべき情報を受信し、この情報を第1のプロトコルに従って第1のネットワークを介してトランスポートされるメッセージに形成するためにメタデータを生成する。ゲートウェイは、第1のトランスポート機構を介してメッセージを受信し、第2のプロトコルに従って第2のネットワークを介してトランスポートされうる同期フィードを生成する。1つの実施形態において、第1のトランスポート機構はSMSメッセージをトランスポートし、第2のトランスポート機構は、ハイパーテキスト転送プロトコル(HTTP)を使用するネットワークを介して提供される同期フィードを備える。
【0009】
[0009]この「発明の概要」は、「発明を実施するための形態」において以下でさらに説明される簡略化された形で一連の概念を紹介するために提供される。この「発明の概要」は、請求の範囲に係る主題の主要特徴または重要特徴を特定することを意図されておらず、また請求の範囲に係る主題の範囲を決定する際の補助として使用されることも意図されてはいない。請求の範囲に係る主題は、背景技術において示される任意またはすべての欠点を解決する実施態様に限定されることはない。
【図面の簡単な説明】
【0010】
【図1】[0010]1つの例示的な通信システムを示すブロック図である。
【図2】[0011]図1に示されるシステムの1つの実施形態を示す流れ図である。
【図3】[0012]図1に示されるシステムの動作のもう1つの実施形態を示す流れ図である。
【図4】[0013]通信システムのさらに詳細な実施形態を示す図である。
【図5】[0014]1つの例示のコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【0011】
[0015]図1は、1つの例示的な同期システム100のブロック図である。システム100は、データソース102から同期化エンドポイント104へのデータを同期化する。システム100は、同期アダプター106、モバイルデバイス108、第1のトランスポート111を超えてモバイルデバイス108に接続されたモバイルデバイス110、同期ゲートウェイ112、および第2のトランスポート116を超えてゲートウェイ112に接続される同期Webサービス114を含む。
【0012】
[0016]図1に示される実施形態において、データソース102は、例示的に、1つまたは複数の同期エンドポイント104においてデータに同期化されるべきアプリケーションデータを有する任意の望ましいアプリケーションであってもよい。たとえば、図1に示される実施形態において、データソース102はデータベースアプリケーションであってもよい。
【0013】
[0017]また、図1に示される実施形態において、モバイルデバイス108および110は、第1のトランスポート111に沿って相互に通信する。第1のトランスポート111は、例示的に、ショートメッセージサービス(SMS)リンクのような、低速リンクであってもよい。SMSリンク111は、RSSまたはATOMフィードフォーマットのような、同期フォーマットをサポートしない。したがって、図1に示される実施形態において、同期アダプター106は、データソース102から同期化されるべきデータを受信し、それを第1のトランスポート111を使用してモバイルデバイス108によって送信されうるショートメッセージに変換する。
【0014】
[0018]メッセージは、モバイルデバイス110によって受信され、同期ゲートウェイ112に提供される。図1に示される実施形態において、第2のトランスポート116は、同期フォーマットをサポートするトランスポートである。たとえば、第2のトランスポート116は、例示的に、ハイパーテキスト転送プロトコル(HTTP)を使用して通信するトランスポートであってもよい。これは、第1のトランスポート111が実施されるネットワークと比較して、相対的に高速で堅固なネットワークである。したがって、同期ゲートウェイ112は、モバイルデバイス110からショートメッセージを受信し、メッセージが同期フォーマットを使用して第2のトランスポート116を介して同期Webサービス114に転送されうるように、メッセージを同期フォーマットにするために必要なメタデータを生成する。
【0015】
[0019]1つの実施形態において、同期Webサービス114は、継続的な高速トランスポート116を介してsimple sharing extensionでメッセージを受け入れ、望ましい同期フォーマット(RSSまたはATOMフィードフォーマットなど)に従ってエンドポイント104のメッシュにパブリッシュされる同期フィード118を生成する。
【0016】
[0020]図2は、図1に示されるシステム100の全体的な動作をさらに詳細に示す流れ図である。これ以降、図1および図2は併せて説明される。しかし、図1および図2の説明に先立って、同期アダプター106および同期ゲートウェイ112は、任意の比較的に低速の脆弱な第1のトランスポート111を介してデータソース102からの同期化されるべきデータを同期エンドポイント104に転送するように構成されてもよいことに留意されたい。つまり、本発明のシステムが使用されうる非常に低い帯域幅で高い待ち時間のチャネルが多数ある。SMSはその1つであるが、そのようなトランスポート機構のもう1つの例は、アマチュア無線伝送が送信されるチャネルである。SMSに関する説明は、例示的なものに過ぎない。
【0017】
[0021]いかなる場合においても、同期アダプター106は最初に、同期化されるべきデータをデータソース102から受信する。上記で説明されているように、データソース102は、同期エンドポイント104においてデータに同期化されるべきアプリケーションデータを有する任意の望ましいアプリケーションであってもよい。アダプター106において同期化されるべきデータを受信するステップは、図2のブロック150により示される。
【0018】
[0022]次いで、同期アダプター106または他の別個のコンポーネントのいずれかは、同期化されるべきデータをオプションで圧縮することができる。第1のトランスポート111は比較的低い帯域幅で高い待ち時間のトランスポートであるため、同期化されるべきデータが実際に同期エンドポイント104により迅速に到達することができるように、第1のトランスポート111を介して送信されるデータの量を減少させることは有益となりうる。同期化されるべきデータを圧縮するステップは、図2のブロック152により示される。
【0019】
[0023]アダプター106は、同期化されるべきデータをさまざまな方法でアプリケーション102から受信できることにも留意されたい。アプリケーション102は、変更されているので同期化の必要がある任意の新しいデータを同期アダプター106にプッシュすることができるか、またはアダプター106は新しいデータがないかデータソース102をポーリングすることができる。同期化されるべきデータは、図1のブロック119により示される。
【0020】
[0024]データは、同期アダプター106が新しいデータを探すときに、最新の同期動作のタイムスタンプを超えるタイムスタンプを有するデータのみを取り出すことができるように、タイムスタンプでマーク付けされてもよい。あるいは、もちろん、同期化されるべきデータの各項目は、変更がその項目に加えられるごとに増加する、増え続ける値に関連付けられてもよい。次いで、アダプター106は、同期化されるべき項目の各々に関連付けられている値を、前回の同期動作以来増大しているかどうか確認することができる。データがデータソース102で変更されているため同期化が必要であるかどうかを決定するためのさまざまな他の方法が使用されてもよい。それらの説明は、ほんの一例として使用される。
【0021】
[0025]同期アダプター106がエンドポイント104に同期化されるべきデータ項目を取得すると、同期アダプター106は、第1のトランスポート111を介してデバイス108により伝送するために適切なデータパケットにデータを分割する。デバイス108が携帯電話であり、トランスポート111がSMSトランスポートである実施形態において、アダプター106は、データソース102から受信されたデータを(最大160文字の)ショートメッセージに分割し、第1のトランスポート111を介して伝送するために必要なメタデータを生成する。メタデータは、たとえば、ヘッダー情報、チェックサム情報、またはアダプター106により生成されたメッセージを記述する任意の他の望ましいメタデータを含むことができる。メッセージは、図1のブロック120により示される。この実施形態において、データをモバイルデバイスメッセージに分割するステップは、メタデータを生成するステップと併せて図2のブロック154により示される。
【0022】
[0026]次いで、メッセージ120は、モバイルデバイス108に提供され、第1のトランスポート111を介してモバイルデバイス108により伝送される。これは、図2のブロック156により示される。
【0023】
[0027]メッセージ120は、モバイルデバイス110においてトランスポート111を介して受信されるが、モバイルデバイス110はメッセージ120を同期ゲートウェイ112に提供する。モバイルデバイスメッセージをゲートウェイ112において受信するステップは、図2のブロック158により示される。
【0024】
[0028]次いで、ゲートウェイ112は、メッセージ120を、第2のトランスポート116を介して伝送するために適切なフォーマットにアセンブルする。図1に示される実施形態において、第2のトランスポート116はHTTPを使用して動作する。たとえば、同期ゲートウェイ112は、例示的に、メッセージ120内のデータをRSSフォーマットにフォーマットするが、RSSフォーマットは頻繁に更新されるコンテンツをパブリッシュするために使用されるWebフィードのファミリーである。あるいは、ゲートウェイ112は、メッセージ120からのデータをATOMフィードフォーマットにすることもできるが、ATOMフィードフォーマットもまた頻繁に更新されるコンテンツをパブリッシュするために使用されるフォーマットである。これらのフォーマットは一例として示され、その他のWeb同期フォーマットが同様に使用されてもよい。モバイルデバイスメッセージ120をWeb同期フォーマットメッセージにアセンブルするステップは、図2のブロック160により示される。Web同期フォーマットメッセージは、図1のブロック122により示される。
【0025】
[0029]同期ゲートウェイ112はまた、例示的に、同期化されるべきデータの一部として同期アダプター106から送信されるメッセージ120のすべてが、Webフォーマットメッセージ122へのフォーマットを開始する前に確実に受信されることを確認する。
いくつかのメッセージ、またはメッセージの一部が伝送中に失われてターゲットシステムに受信されないことも、第1トランスポート111のようなトランスポート機構では一般に起こりうる。したがって、メッセージは、完全なWebフォーマットメッセージ122が準備されうる前に再伝送される必要がある場合もある。そのような場合、同期ゲートウェイ112は、例示的に、Webフォーマットメッセージ122を生成するために必要な処理オーバーヘッドをまねく前に、同期されるべきデータのすべてが受信されるまで待機する。
【0026】
[0030]すべてのメッセージが受信されると、同期ゲートウェイ112は、例示的に、第1のトランスポート111を介してデバイス110によって伝送されうるメッセージフォーマットで応答124を生成する。応答は、すべてのメッセージが受信されたことをアダプター106に指示する。応答を伝送するステップは、図2のブロック159により示される。
【0027】
[0031]Web同期フォーマットメッセージ122は、同期Webサービス114に提供される。Web同期フォーマットメッセージ122は、例示的に、RSSまたはATOMフィードを使用してエンドポイント104のメッシュにわたり同期化されうるように、simple sharing extensionによりフォーマットされてもよい。第2のトランスポート116は比較的高速で継続的なネットワークであるため、Web同期フォーマットメッセージ122は、これらのフォーマットを使用して送信されてもよい。
【0028】
[0032]次いで、同期Webサービス114は、Web同期フォーマットメッセージ122を同期フィード118として同期エンドポイント104にパブリッシュする。これは、図2のブロック162により示される。
【0029】
[0033]図3は、同期エンドポイント104の1つにおいて変化したデータを、2つの異なるトランスポート111および116を介してデータソース102内のデータに同期化する際の、図1に示されるシステム100の動作を示す流れ図である。このタイプの同期の実行において、同期ゲートウェイ112は、例示的に、同期エンドポイント104の1つによりパブリッシュされた任意のデータ、およびデータソース102においてデータに同期化されるべき任意のデータについて同期Webサービス114をポーリングする。
【0030】
[0034]上記で同期アダプター106に関して説明された技法と同じ技法または異なる技法は、同期化されるべき任意の新しいデータがあるかどうか決定するためにゲートウェイ112によって使用されてもよい。たとえば、同期ゲートウェイ112は、その最新の同期動作に関連付けられているタイムスタンプを保持することができる。次いで、Webサービス114をポーリングするとき、同期ゲートウェイ112は、その最新の同期動作の前に行われたすべての変更を無視して、それ以降に行われた変更のみを探す。同期ゲートウェイ112が複数の異なる同期アダプター106で動作する場合、例示的に、各アダプター106に対して実行された最新の同期動作を追跡する。たとえば、同期ゲートウェイ112が、各々1つまたは複数の異なるデータソース102に関連付けられている、複数の異なる同期アダプター106にサービスを提供することがあってもよい。その場合、同期ゲートウェイ112は、各アダプター106に対して実行された最新の同期動作を追跡する。
【0031】
[0035]同期エンドポイント104によりパブリッシュされたデータがデータソース102に同期化される必要があるかどうかを決定するためのその他の機構もまた、使用されてもよい。たとえば、各同期アダプター106は、その前回の同期動作がいつ実行されたかを決定するために、ゲートウェイ112によりクエリを行われてもよい。そのようにして、ゲートウェイ112は、クライアントごとにこの情報を追跡する必要はないが、クライアントアダプター自身はこの情報を遺跡することができる。
【0032】
[0036]さらに、エンドポイント104に同期化されるべき各データ項目は、前回変更された時間を指示する各自のタイムスタンプを有することができる。次いで、ゲートウェイ112は、データ項目が前回変更された以降に同期動作が実行されたかどうかを決定するため、同期のために同期Webサービス114によってパブリッシュされた各データ項目のタイムスタンプを調べることができる。どのデータ項目が同期化される必要があるかを識別するためのこれらの技法はすべて一例として説明されているに過ぎず、その他の技法が使用されてもよい。
【0033】
[0037]いずれの場合においても、同期ゲートウェイ112は、同期Webサービス114が、同期化される必要のある任意のデータを、同期ゲートウェイ112が動作しているクライアント同期アダプター106にパブリッシュしているかどうかを決定する。これは図3のブロック200により示され、同期化されるべきデータは、図1のWebフォーマットメッセージブロック122により示される。
【0034】
[0038]そのようなデータが存在する場合、同期ゲートウェイ112(または別のデバイス)は、オプションで、低速で低待ち時間のトランスポート111を介して伝送されるデータの量が最小化されるか、または少なくともある程度減少されるように、メッセージ122内のデータを圧縮することができる。データの圧縮は、図3のブロック202により示される。
【0035】
[0039]次いで、ゲートウェイ112は、同期化されるべきデータ250を、モバイルデバイス110によりトランスポート111を介して伝送されうるメッセージ120に分割する。クライアント同期アダプター106に関して上記で説明されたように、トランスポート111がSMSトランスポートである場合、同期化されるべきデータ250は160文字以内のSMSメッセージに分割され、ゲートウェイ112もまた、SMSトランスポートにより使用される必要なメタデータ(ヘッダーおよびチェックサムデータなど)を生成する。データをモバイルデバイスメッセージに分割するステップは、図3のブロック204により示される。
【0036】
[0040]次いで、メッセージ120は、モバイルデバイス110に提供され、第1のトランスポート111を介してモバイルデバイス108に伝送される。次いで、モバイルデバイス108は、メッセージ120をクライアント同期アダプター106に提供する。メッセージを第1のトランスポート(たとえば、モバイルデバイスネットワーク)111を介して伝送するステップは、図3のブロック206により示される。
【0037】
[0041]次いで、クライアント同期アダプター106は、データがデータソース102の対応するデータに同期化されうるように、メッセージ120のデータを準備する。たとえば、データソース102が特定のフォーマットのデータを予期する特定のアプリケーションである場合、アダプター106は、メッセージ120に含まれるデータを、データソース102に望ましいフォーマットにアセンブルする。次いで、適切なフォーマットの同期化されるべきデータ119は、データソース102に提供され、データソース102の対応するデータ項目に同期化される。メッセージ120からデータを取り出して、データソース102のデータを同期化するステップは、図3のブロック208により示される。
【0038】
[0042]図4は、1つは比較的低速で低待ち時間のトランスポート111であり、もう一方は高速で継続的なトランスポート116である、2つの異なるデータトランスポートを介してデータを同期化するためのシステム100の1つの例示的な実施形態を示すさらに詳細なブロック図である。図4は、会社の第1の支社300からのデータが、低待ち時間のトランスポート111を介して第2の支社302に伝送される実施形態を示す。次いで、データは、高周波数トランスポート116を介して伝送するために準備され、複数の同期化エンドポイント104にパブリッシュするためにWebサービス114に提供される。
【0039】
[0043]図4は、データソース102が、ジョブマネージャーコンポーネント306によってアクセスされるデータベースアプリケーション304であってもよいことを示す。ジョブマネージャーコンポーネント306は、データベースアプリケーション304と対話して、データベースアプリケーション304からデータを取り出し、データをデータベースアプリケーション304に書き込み、通常データベースアプリケーション304のデータを保持する。図4に示される実施形態において、クライアント同期アダプター106は、SMSデスクトップクライアントコンポーネント308として実施される。SMSデスクトップクライアントコンポーネント308は、例示的に、図4の矢印310によって指示される、APIまたはジョブマネージャー306により公開される任意の他のインターフェイスを使用して、ジョブマネージャー306に結合される。図4に示される実施形態はまた、モバイルデバイス108が例示的に、たとえばUSB接続314を使用してSMSデスクトップクライアントコンポーネント308に接続されうる携帯情報端末312として実施されることを示す。モバイルデバイス110はまた、図4に示される実施形態において、携帯情報端末316として実施される。モバイルデバイス312および316は、図4において、携帯電話を含む携帯情報端末として示され、トランスポート111を介してSMSパケットを送信することにより、トランスポート111を介して相互に通信する。
【0040】
[0044]図4はまた、1つの実施形態において、同期ゲートウェイ112が、たとえばUSB接続320を使用してモバイルデバイス316に接続されるSMSゲートウェイコンポーネント318として実施されることを示す。
【0041】
[0045]図4はまた、同期Webサービス114が、simple sharing extensionを使用して同期フィード118を生成し、それらを同期エンドポイント104にパブリッシュできることを示す。
【0042】
[0046]したがって、SMSデスクトップクライアントコンポーネント308は、同期化されるべきデータをデータベースアプリケーション304からジョブマネージャー306を通じて受信して、そのデータをUSB接続314を介してクライアント312に伝送されるSMSパケットに形成するように構成される。SMSデスクトップクライアントコンポーネント308はまた、USB接続314を介してSMSパケットを受信し、それらをデータベースアプリケーション304内のデータに同期化するために望ましいフォーマットでジョブマネージャー306に供給するように構成される。
【0043】
[0047]SMSゲートウェイコンポーネント318は、モバイルデバイス316に伝送され、USB接続320を介してSMSゲートウェイコンポーネント318に転送されたSMSパケットを受信するように構成される。SMSゲートウェイコンポーネント318はまた、同期エンドポイント104にパブリッシュするために同期フィード118を生成する同期Webサービス114にHTTPリンク116を介して伝送するためにWebフィードフォーマットでメッセージを生成するように構成される。同様に、SMSゲートウェイコンポーネント318は逆方向に動作することができ、HTTPリンク116を介して同期フィード118を受信して、それらのフィードから、リンク320を介してモバイルデバイス316に伝送するためにSMSパケットを生成し、SMSパケットはさらにSMSリンク111を介してモバイルデバイス312に伝送される。
【0044】
[0048]このように、本発明のシステムが、たとえSMSネットワークのような非常に低速のトランスポート111を介しても、アプリケーションからのデータの同期化をもたらすことが理解されうる。次いで、データは、高速トランスポート116を使用して同期化するためにWebフィードフォーマットに準備される。もちろん、データは、Webフィードフォーマットを使用して準備された後、同期エンドポイント104のメッシュで同期化されてもよい。したがって、コンポーネント106および112は、エンドポイントが比較的低速のネットワークによって分離されており、Webフィードフォーマットを使用することが非常に困難な場合であっても、Webフィードフォーマットを使用して、2つのエンドポイント102および104を接続するブリッジとしての機能を果たす。
【0045】
[0049]当然、アダプター106が、モバイルデバイス108内で直接実施されてもよく、ゲートウェイ112がモバイルデバイス110内で直接実施されてもよいことも理解されるであろう。同様に、モバイルデバイス108および110はまた、アダプター106およびゲートウェイ112の両方を含むことができる。さらに、モバイルデバイス316は、コンポーネント304、306、および310を含むことができる。したがって、それらのコンポーネントが図1および図4において別々に示されていても、これらは実際には別個のコンポーネントまたはデバイスである必要はない。
【0046】
[0050]図5は、本発明が実施されうる適切なコンピューティングシステム環境400の例を示す。コンピューティングシステム環境400は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能の範囲に関していかなる限定も提案することを意図されていない。また、コンピューティング環境400は、例示の運用環境400に示されるコンポーネントのいずれか1つまたはその組み合わせに関していかなる依存性または要件を有するものと解釈されるべきではない。
【0047】
[0051]本発明は、数多くの他の一般的用途または特殊用途のコンピューティングシステム環境、または構成で動作することができる。本発明と共に使用するために最適となりうるよく知られたコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピューター、サーバーコンピューター、ハンドヘルドまたはラップトップデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースのシステム、セットトップボックス、プログラマブル消費者電化製品、ネットワークPC、ミニコンピューター、メインフレームコンピューター、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらに限定されることはない。
【0048】
[0052]本発明は、コンピューターによって実行されるプログラムモジュールのような、コンピューター実行可能命令の一般的なコンテキストに即して説明されうる。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明はまた、タスクが通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、プログラムモジュールは、メモリー記憶装置を含むローカルおよびリモートのコンピューター記憶域メディアに配置されてもよい。
【0049】
[0053]図5を参照すると、本発明を実施するための例示のシステムは、コンピューター410の形態をとる汎用コンピューティングデバイスを含む。コンピューター410のコンポーネントは、処理装置420、システムメモリー430、およびシステムメモリーを含むさまざまなシステムコンポーネントを処理装置420に結合するシステムバス421を含むことができるが、これらに限定されることはない。システムバス421は、メモリーバスまたはメモリーコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちの任意のものであってもよい。限定的ではなく例示的に、そのようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとしても知られるPeripheral Component Interconnect(PCI)バスを含む。
【0050】
[0054]コンピューター410は通常、各種のコンピューター可読メディアを含む。コンピューター可読メディアは、コンピューター410がアクセスされうる、揮発性および不揮発性メディア、リムーバブルおよび固定メディアを含む任意の使用可能なメディアであってもよい。一例として、コンピューター可読メディアは、コンピューター記憶域メディアおよび通信メディアを備えることができるが、これらに限定されることはない。コンピューター記憶域メディアは、コンピューター可読命令、データ構造、プログラムモジュールおよびその他のデータなどの情報の格納のための任意の方法または技術で実装された揮発性および不揮発性の、リムーバブルおよび固定メディアを含む。コンピューター記憶域メディアは、RAM、ROM、EEPROM、フラッシュメモリーその他のメモリー技術、CD−ROM、DVD(デジタル多用途ディスク)その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置その他の磁気記憶装置、あるいは望ましい情報を格納するために使用されうる、コンピューター410によってアクセスされうる任意の他の媒体を含むが、これらに限定されることはない。通信メディアは通常、コンピューター可読命令、データ構造、プログラムモジュール、またはその他のデータを搬送波のような変調データ信号もしくは他のトランスポート機構で具現し、任意の情報配信メディアを含む。「変調データ信号」という用語は、信号の特性セットの1つまたは複数を有する信号、または信号の情報をエンコードするような方法で変更された信号を意味する。限定的ではなく、一例として、通信メディアは、有線ネットワークまたは直接有線接続のような有線メディア、ならびに音響、RF、赤外線および他の無線メディアを含む。上記の任意の組み合わせも、コンピューター可読メディアの範囲に含まれるものとする。
【0051】
[0055]システムメモリー430は、読み取り専用メモリー(ROM)431およびランダムアクセスメモリー(RAM)432のような揮発性および/または不揮発性メモリーの形態をとるコンピューター記憶域メディアを含む。起動時などにコンピューター410内の要素間の情報の転送を助ける基本ルーチンを含むBIOS(基本入出力システム)433は通常、ROM431に格納される。RAM432は通常、処理装置420によって即時アクセス可能および/または現在操作されているデータおよび/またはプログラムモジュールを含む。限定的ではなく、一例として、図5は、オペレーティングシステム434、アプリケーションプログラム435、その他のプログラムモジュール436、およびプログラムデータ437を示す。
【0052】
[0056]コンピューター410はまた、他のリムーバブル/固定の、揮発性/不揮発性のコンピューター記憶域メディアを含むこともできる。ほんの一例として、図5では、固定の不揮発性磁気メディアとの間の読み取りまたは書き込みを行うハードディスクドライブ441、リムーバブルの不揮発性磁気ディスク452との間の読み取りまたは書き込みを行う磁気ディスクドライブ451、およびCD−ROMその他の光メディアなどのリムーバブルの不揮発性光ディスク456との間の読み取りまたは書き込みを行う光ディスクドライブ455を示す。例示的な運用環境において使用されうるその他のリムーバブル/固定の、揮発性/不揮発性コンピューター記憶域メディアは、磁気テープカセット、フラッシュメモリーカード、DVD(デジタル多用途ディスク)、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含むが、これらに限定されることはない。ハードディスクドライブ441は通常、インターフェイス440などの固定メモリーインターフェイスを通じてシステムバス421に接続され、磁気ディスクドライブ451および光ディスクドライブ455は通常、インターフェイス450のようなリムーバブルメモリーインターフェイスによってシステムバス421に接続される。
【0053】
[0057]上記で説明され図5に示されるドライブおよびその関連するコンピューター記憶域メディアは、コンピューター410のコンピューター可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶装置を提供する。たとえば、図5において、ハードディスクドライブ441は、オペレーティングシステム444、アプリケーションプログラム445、その他のプログラムモジュール446、およびプログラムデータ447を格納するものとして示される。これらのコンポーネントは、オペレーティングシステム434、アプリケーションプログラム435、その他のプログラムモジュール436、およびプログラムデータ437と同じであっても、または異なっていてもよいことに留意されたい。オペレーティングシステム444、アプリケーションプログラム445、その他のプログラムモジュール446、およびプログラムデータ447は、少なくともそれらが異なるコピーであることを示すために本明細書において異なる番号が付けられている。システム100のさまざまな部分は、モジュール446、プログラム445、またはリモート側を含む他の場所に格納されてもよい。
【0054】
[0058]ユーザーは、キーボード462、マイクロフォン463、およびマウス、トラックボールまたはタッチパッドのようなポインティングデバイス461などの入力デバイスを通じてコンピューター410にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)は、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。上記およびその他の入力デバイスは、システムバスに接続されるユーザー入力インターフェイス460を通じて処理装置420に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など他のインターフェイスおよびバス構造によって接続されてもよい。モニター491またはその他の種類の表示装置も、ビデオインターフェイス490のようなインターフェイスを介してシステムバス421に接続される。モニターに加えて、コンピューターは、出力周辺インターフェイス495を通じて接続されうるスピーカー497およびプリンター496のような他の周辺出力デバイスを含むこともできる。
【0055】
[0059]コンピューター410は、リモートコンピューター480のような、1つまたは複数のリモートコンピューターへの論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピューター480は、パーソナルコンピューター、ハンドヘルドデバイス、サーバー、ルーター、ネットワークPC、ピアデバイスまたはその他の共通ネットワークノードであってもよく、通常は上記でコンピューター410に関連して説明される要素の多くまたはすべてを含む。図5に示される論理接続は、ローカルエリアネットワーク(LAN)471およびワイドエリアネットワーク(WAN)473を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット、およびインターネットで一般化している。
【0056】
[0060]LANネットワーク環境に使用される場合、コンピューター410はネットワークインターフェイスまたはアダプター470を通じてLAN471に接続される。WANネットワーク環境に使用される場合、コンピューター410は通常、モデム472、またはインターネットのようなWAN473を介して通信を確立するための他の手段を含む。モデム472は、内蔵または外付けであってもよく、ユーザー入力インターフェイス460または他の適切な機構を介してシステムバス421に接続されてもよい。ネットワーク化された環境において、コンピューター410に関連して示されるプログラムモジュール、またはその部分は、リモート記憶装置に格納されてもよい。限定的ではなく、一例として、図5は、リモートアプリケーションプログラム485をリモートコンピューター480に常駐するものとして示す。示されるネットワーク接続が模範的なものであり、コンピューター間の通信リンクを確立する他の手段が使用されてもよいことを理解されたい。
【0057】
[0061]主題は構造的特徴および/または方法論的動作に固有の用語で説明されたが、添付の特許請求の範囲に定義された主題が上記で説明された特定の特徴または動作に限定される必要はないことを理解されたい。より正確に言えば、上記で説明された特定の特徴および動作は、特許請求の範囲を実施する例示の形態として開示される。

【特許請求の範囲】
【請求項1】
複数のアプリケーション間でデータを同期化する方法であって、
第1のプロトコルに従って、第1のアプリケーションから同期化されるべきデータを含むメッセージをトランスポートする第1のネットワークトランスポート機構を介してメッセージを受信するステップと、
前記第1のプロトコルとは異なる第2のプロトコルを使用してデータをトランスポートするWebトランスポート機構を介して伝送するためにWebフィードフォーマットに従って、同期化されるべき前記データを同期フィードにアセンブルするステップと、
前記同期フィードを前記Webトランスポート機構を介して第2のアプリケーションを含む同期エンドポイントにパブリッシュするステップと、
を備える方法。
【請求項2】
同期化されるべき前記データを第1のアプリケーションから受信するステップと、
前記データを前記第1のネットワークトランスポート機構を介して伝送するために前記メッセージにアセンブルするステップと、
をさらに備える請求項1に記載の方法。
【請求項3】
前記メッセージを前記第1のネットワークトランスポート機構を介して伝送するステップをさらに備える請求項2に記載の方法。
【請求項4】
前記第1のネットワークトランスポート機構は、
ショートメッセージサービストランスポート機構を備え、前記データを前記メッセージにアセンブルするステップは前記データを160文字以内のショートメッセージに分割するステップと、前記ショートメッセージのメタデータを生成するステップとを備える請求項3に記載の方法。
【請求項5】
Webフィードフォーマットに従って前記データを同期フィードにアセンブルするステップは、
ハイパーテキスト転送プロトコルに従ってデータを伝送する前記Webトランスポート機構を介して伝送するために前記データをWebフィードフォーマットにアセンブルするステップを備える請求項4に記載の方法。
【請求項6】
前記ショートメッセージサービストランスポート機構を介して前記メッセージを伝送する前に、同期化されるべき前記データを圧縮するステップをさらに備える請求項4に記載の方法。
【請求項7】
メッセージを受信するステップは、
前記メッセージをクライアント同期アダプターから受信するステップであって、前記第1のプロトコルに従って前記クライアント同期アダプターへの応答を生成するステップをさらに備えるステップと、
前記応答を前記第1のネットワークトランスポート機構を介して前記クライアント同期アダプターに伝送するステップと、
をさらに備える請求項1に記載の方法。
【請求項8】
同期化されるべき追加のデータを前記Webトランスポート機構を介して前記同期エンドポイントから受信するステップと、
前記第1のプロトコルに従って前記第1のネットワークトランスポート機構を介して伝送するために前記追加のデータを含むメッセージを生成するステップと、
前記第1のネットワークトランスポート機構を介して同期化されるべき前記追加のデータを含む前記メッセージを伝送するステップと、
をさらに備える請求項1に記載の方法。
【請求項9】
前記追加のデータを含む前記メッセージを生成する前に、前記追加のデータを圧縮するステップをさらに備える請求項8に記載の方法。
【請求項10】
同期化されるべき追加のデータを受信するステップは、
複数の異なる同期エンドポイントから同期化のために前記Webトランスポート機構を介してデータを伝送する同期Webサービスから前記追加のデータを受信するステップを備える請求項9に記載の方法。
【請求項11】
複数の異なる同期エンドポイント間でデータを同期化するための同期システムであって、
第1のプロトコルに従って、同期化されるべき前記データを含むメッセージを第1のトランスポート機構を介して受信するよう構成された第1のモバイルデバイスと、
前記第1のプロトコルとは異なる第2のプロトコルに従って、Webトランスポート機構を介して伝送するために同期化されるべき前記データを含む同期フィードを生成し、前記Webトランスポート機構を介して前記同期フィードを伝送することにより前記複数の異なる同期エンドポイントに前記同期フィードをパブリッシュするように構成されたゲートウェイコンポーネントとを備えるシステム。
【請求項12】
アプリケーションから同期化されるべき前記データを受信し、前記第1のトランスポート機構を介して伝送するために前記メッセージを生成するよう構成された同期アダプターをさらに備える請求項11に記載の同期システム。
【請求項13】
前記同期アダプターに結合され、前記第1のトランスポート機構を介して前記メッセージを伝送するように構成された第2のモバイルデバイスをさらに備える請求項12に記載の同期システム。
【請求項14】
前記第1のトランスポート機構はスモールメッセージサービス(SMS)トランスポート機構を備える請求項13に記載の同期システム。
【請求項15】
前記第1および第2のモバイルデバイスは第1および第2の携帯電話を備える請求項14に記載の同期システム。
【請求項16】
前記第1の携帯電話はゲートウェイコンポーネントを含む請求項15に記載の同期システム。
【請求項17】
前記第2の携帯電話は同期アダプターを含む請求項16に記載の同期システム。
【請求項18】
前記ゲートウェイに結合され、前記同期フィードを前記同期エンドポイントにパブリッシュするように構成されたWebサービスコンポーネントをさらに備える請求項11に記載の同期システム。
【請求項19】
複数のアプリケーション間でデータを同期化する方法であって、
同期化されるべきデータを第1のアプリケーションから受信するステップと、
前記データをスモールメッセージサービス(SMS)トランスポート機構を介して伝送するためにメッセージにアセンブルするステップと、
SMSプロトコルに従って、前記第1のアプリケーションから同期化されるべきデータを含むメッセージをトランスポートする前記SMSトランスポート機構を介して前記メッセージを受信するステップと、
ハイパーテキスト転送プロトコルを使用してデータをトランスポートするWebトランスポート機構を介して伝送するためにWebフィードフォーマットに従って、同期化されるべき前記データを同期フィードにアセンブルするステップと、
前記同期フィードを前記Webトランスポート機構を介して第2のアプリケーションを含む同期エンドポイントにパブリッシュするステップと、
を備える方法。
【請求項20】
前記ショートメッセージサービストランスポート機構を介して前記メッセージを伝送する前に、同期化されるべき前記データを圧縮するステップをさらに備える請求項19に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2011−527783(P2011−527783A)
【公表日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2011−516678(P2011−516678)
【出願日】平成21年6月25日(2009.6.25)
【国際出願番号】PCT/US2009/048714
【国際公開番号】WO2009/158535
【国際公開日】平成21年12月30日(2009.12.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】