JP2003228505A - モバイルデバイスを同期化するシステム - Google Patents

モバイルデバイスを同期化するシステム

Info

Publication number
JP2003228505A
JP2003228505A JP2002236525A JP2002236525A JP2003228505A JP 2003228505 A JP2003228505 A JP 2003228505A JP 2002236525 A JP2002236525 A JP 2002236525A JP 2002236525 A JP2002236525 A JP 2002236525A JP 2003228505 A JP2003228505 A JP 2003228505A
Authority
JP
Japan
Prior art keywords
server
client
computer
readable medium
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002236525A
Other languages
English (en)
Other versions
JP3987396B2 (ja
Inventor
Stephen D Flanagin
ディー.フラナギン スティーブン
Brian Moore
ムーア ブライアン
Greg Friedman
フリードマン グレッグ
Frank Stephen Serdy
スティーブン セルディ フランク
Salim Alam
アラム サリム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003228505A publication Critical patent/JP2003228505A/ja
Application granted granted Critical
Publication of JP3987396B2 publication Critical patent/JP3987396B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 データを同期化するプロトコルを提供し、さ
らに、そのプロトコルを使用するシステムと方法を提供
する。 【解決手段】 このプロトコルは、応答をコマンドと一
緒にまとめて単一のXMLドキュメントに入れることを可
能としている。また、プロトコルには、未同期化オブジ
ェクトをすべて送信するのではなく、1つのオブジェク
トだけが送信されることを要求するコマンドが用意され
ている。また、プロトコルには、オブジェクトを一度に
いくつ送信させるかを指定するコマンドと、送信できる
オブジェクトがまだ残っていることを知らせる応答が用
意されている。プロトコルには、プロトコルをアプリケ
ーション固有の方法で任意に拡張するための手段が用意
されている。プロトコルには、更新を送信する一方で、
更新が返送されないことを要求するための手段が用意さ
れている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的には、コン
ピュータ実行可能ソフトウェアに関し、さらに具体的に
はエレクトロニクスデバイスを同期化することに関す
る。
【0002】
【従来の技術】パーソナルデジタルデータの同期化に対
する関心は、モバイルデバイスが出現して以来増加して
いる。ある初期方法では、パーソナルデータを同期化す
るためには、ユーザは、パーソナルコンピュータ (pers
onal computer PC) 上でデータを更新する必要があっ
た。サーバとのデータの同期化は、PCが行っていた。オ
フィスから外出したときモバイルデバイスを更新するに
は、ユーザは、モバイルデバイス上で手作業によってデ
ータを再入力する必要があった。
【0003】モバイルデバイスマーケットが熟成するの
に伴い、データを同期化するために主従複製システム
(master-slave replication system) が開発された。主
従複製システムでは、マスタデバイスであるPCからデー
タを受け取り、それを複製してスレーブデバイスである
モバイルデバイスに送っていた。通常、この方法による
と、データをPCに入力し、そのあと、データをモバイル
デバイスに手作業で再入力する必要がなくなった。しか
し、ユーザは、双方のデバイスからデータを再入力する
必要が時々あった。例えば、ユーザがオフィスから外出
し、モバイルデバイス上で情報を更新する必要が起こっ
たとき、ユーザは、データをモバイルデバイスに手作業
で入力することもあり得た。しかし、モバイルデバイス
上で行った変更がオーバライト(重ね書き)されるのを
防止するために、同じデータをPCに再入力してからPCと
の同期をとる必要があった。
【0004】最後に、両方向同期化方法 (two-way sync
hronization technique) が開発された。この方法を使
用すると、ユーザは、PCからでも、モバイルデバイスか
らでも情報を更新することが可能であった。そのあと、
データを同期化するために、2つのデバイスが接続さ
れ、情報がやりとりされていた。この方法は、デバイス
が、ワイヤレスネットワークやセルラネットワークなど
の、高レイテンシ (highlatency)、低バンド幅、および
/または低信頼度のネットワークによって分離されるま
では、一般的に満足されていた。
【0005】ワイヤレスネットワークでは、コネクショ
ンが失われるリスクは、非ワイヤレスシステムよりも数
倍に大である。いくつかの同期化方法では、起こり得る
中断に対処するために、メッセージが受信される間に、
いくつかの個所で肯定応答 (acknowledgement) を送信
するようにしている。しかし、複数の肯定応答を送信す
ると、セルラネットワークでは別の問題が起こってい
る。代表例として、セルラネットワークは、レイテンシ
が高くなっている。各送信は、このレイテンシの影響を
受けている。従って、肯定応答を使用すると、総同期化
時間が増加し、例えば、低信頼度のネットワークでは、
中断が起こり得る可能性が大になっている。
【0006】さらに、セルラネットワークは、バンド幅
が比較的低であることが多い。セルラネットワーク上の
PCとモバイルデバイス間で比較的少数のオブジェクトを
同期化するには、数分かかることがある。多数のオブジ
ェクトを同期化するには、数時間かかることがある。こ
の問題は、概して、ローカルエリアネットワークに直接
に接続されたデバイスやローカルエリアネットワーク経
由で接続されたデバイスでは、見られない。
【0007】
【発明が解決しようとする課題】従って、この分野で
は、高レイテンシ、低バンド幅、および/または低信頼
度のネットワークで接続されたデバイス上でデータを同
期化する方法が要望されている。
【0008】
【課題を解決するための手段】本発明は、高レイテン
シ、低バンド幅、および/または低信頼度のネットワー
クで接続されていても、それらのデバイスを同期化する
ためのシステムおよび方法を提供する。
【0009】本発明によれば、複数の同期化アクティビ
ティに対する応答を単一のメッセージに入れることによ
って、複数の肯定応答のレイテンシを防止するプロトコ
ルが提供される。要求とその前の要求に対する応答は1
つにまとめて、1つのメッセージに入れることを可能に
している。すべてのオブジェクトを同期化しなくても、
選択したオブジェクトだけを同期化することを可能にし
ている。ウィンドウサイズは、単一のトランザクション
期間に同期化されるオブジェクトの数を制限するように
設定することができる。このプロトコルは、サーバから
でも、モバイルデバイスからでも、同期化を開始できる
設計になっている。
【0010】本発明の一側面(態様)では、プロトコル
は、オブジェクト更新要求に対する応答を1つのグルー
プにまとめている。応答を1つのグループにまとめる
と、各更新要求に応答するときのレイテンシの若干が防
止される。
【0011】本発明の別の側面では、プロトコルは、更
新に対する応答を1つのグループにまとめ、1つのグル
ープにまとめられたオブジェクト更新要求と一緒に送信
することを可能にしている。従って、同期化期間に複数
のメッセージを送信するのではなく、1つのメッセージ
でエラーを報告し、更新を送信し、要求し、応答するこ
とを可能にしている。このようにすると、同期化のレイ
テンシが低減し、必要とされるバンド幅が大幅に減少さ
れる。
【0012】本発明の別の側面では、このプロトコルに
より、モバイルデバイスは、特定のオブジェクトまたは
フォルダをサーバから取り出すことを、他のアイテムを
同期化することなく要求できるようにしている。例え
ば、ユーザは、あるEメールからサブジェクトライン
(subject line:件名、タイトル)を得ると、そのEメ
ールの残り部分を取得したい場合がある。ユーザにすべ
てのオブジェクトの同期化を完了させなくても、このプ
ロトコルによれば、モバイルデバイスは、Eメールの残
り部分だけをサーバに要求し、Eメールに同期化済みの
マークをサーバに付けさせることを要求することができ
る。
【0013】本発明のさらに別の側面では、プロトコル
は、モバイルデバイスが変更をサーバに送信し、変更を
送り返さないことを要求することを可能にしている。こ
のようにすると、ユーザは、他のアイテムが同期化され
ている間ユーザを待たせることなく、Eメールを同期化
し、送信することができる。
【0014】本発明の別の側面では、プロトコルは、サ
ーバから送られてくる更新のウィンドウサイズを設定す
ることを可能にしている。例えば、ユーザは、任意の特
定トランザクションで更新のためにサーバから送られる
オブジェクトの数に制限を設けたい場合がある。このプ
ロトコルによると、モバイルデバイスは、更新されるオ
ブジェクトの数に制限を設けて、その数のオブジェクト
だけを送信することを要求することができる。このよう
にすると、ユーザまたはモバイルデバイスに置かれてい
るアルゴリズムは、追加のオブジェクトをいつ更新すべ
きかを判断することができる。ウィンドウサイズの変更
は、例えば、コネクション条件に適応させるためにも使
用できる。比較的小さなウィンドウサイズは、コネクシ
ョンの信頼度が低いとき、コネクションが壊れたとき再
送信されるデータを少なくするために使用することがで
きる。これとは逆に、比較的大きなウィンドウサイズ
は、コネクションの信頼度が高いとき、複数の伝送のオ
ーバヘッドを減少して同期化を行うために使用すること
ができる。
【0015】本発明の別の側面では、プロトコルは、更
新できるオブジェクトがほかにもあることを、サーバが
通知できるようにしている。例えば、モバイルデバイス
によって設定されたウィンドウサイズ内で送信できる以
上のオブジェクトがサーバに存在する場合がある。この
プロトコルによれば、ウィンドウサイズ内で送信できる
オブジェクトを送信したあと、サーバは、更新できるオ
ブジェクトがほかにもあることを通知できるようにして
いる。
【0016】本発明の別の側面では、プロトコルは、失
敗したオブジェクト同期化は報告するが、成功したオブ
ジェクト同期化は報告しないことによって、伝送時に追
加のバンド幅が使用されるのを回避している。
【0017】本発明の別の側面では、プロトコルは、同
期化メッセージをバンド外 (out ofband) で送信するこ
とを可能にしている。すなわち、サーバとモバイルデバ
イスは、プロトコルを使用しないで一部のオブジェクト
を同期化することを可能にしている。例えば、サーバ
は、プロトコルの外で緊急メッセージをモバイルデバイ
スに送信することができる。つまり、プロトコルに頼ら
なくても、同期化メッセージが送信されるようにしてい
る。
【0018】本発明は、セルラネットワーク、Eメー
ル、ダイレクトコネクション、インターネット (the In
ternet)、http、ftp、または他の伝送プロトコルを使用
してデバイスを同期化するために使用できる。本発明は
伝送プロトコルの上に「上乗せ(ride)」できるので、本
発明は、その上を走行するプロトコルのセキュリティを
利用することが可能になっている。プロトコルは拡張可
能であるので、デバイスは、相互に通信するとき使用さ
れるデータまたは追加コマンドを埋め込むことを可能に
している。
【0019】
【発明の実施の形態】本発明は、エレクトロニックデバ
イスの同期化を容易化する構造と方法を提供する。本発
明で、中でも特に開示されているのは、低信頼度、低バ
ンド幅、および/または高レイテンシのネットワークを
利用してデバイスを同期化することを目的としたプロト
コルである。このプロトコルによれば、複数のコマンド
と応答を1つのグループにまとめ、1つのメッセージに
入れることを可能にしている。また、このプロトコルに
よると、同期化アクティビティ期間に他のオブジェクト
を同期化することなく、単一のオブジェクトをフェッチ
(fetch)することができる。プロトコルは拡張可能で
あるので、このプロトコルを使用するアプリケーション
は、相互に通信するために追加のコマンドを埋め込む
(はめ込む)ことができる。
【0020】以下では、最初に、上記特徴を備えた例示
プロトコルについて説明し、そのあとで、このプロトコ
ルを使用するシステムと方法について説明することにす
る。
【0021】例示プロトコル 本発明の一例示実施形態では、データを同期化するプロ
トコルは、同期化するデバイス間で送信されることを目
的とした一連の拡張可能マークアップ言語 (extensible
markup language XML) ドキュメントとして実現され
ている。以下では、最初に、プロトコルを説明する際に
使用される用語とシンタックスの説明が示され、そのあ
と、プロトコルの構造が説明されている。
【0022】以下に説明するシンタックスのフォーマッ
トでは、下記の例に示すように、その後にコロンが置か
れているタグペアと別のタグペアがリストされている。
【0023】 <Add>...</Add> : <Commands>...</Commands> タグペアが別のタグペアと一緒にリストされているとき
は、そのことは、第1タグペアが第2タグペアからの次
のレベルにあるとき、その説明が適用されることを示し
ている。そうでないときは、別段の断りがない限り、そ
の説明はタグペアが現れた個所で適用されている。以下
の説明では、次のレベルとは、そのタグが、上位レベル
のタグの内側にネストされた1つまたは2つ以上のタグ
の1つとして含まれていることを意味している。例え
ば、次のXMLドキュメントでは、
【0024】<Version>タグと<Collections>タグは、<S
ync>タグからの次のレベルに置かれている。<Collectio
n>タグは、<Collections>タグからの次のレベルに置か
れているが、<Sync>タグと<Collections>タグのどちら
に対しても次のレベルに置かれていない。なお、上に示
す例示XMLドキュメントのインデント(字下げ)は、XML
ドキュメントを正しく作るためには必須でない。上の例
は次のように書いても、 <Sync><Version> 0 . 2< /Version><Collections ><Collection>... </Collection></Collections></Sync> 依然として有効なXMLドキュメントである。
【0025】タグペアに続いて、そのタグペアが出現す
ることが許される個数が指定されている。このことは、
本発明のこの例示実施形態では、出現個数に関する情報
が適用されることを意味している。他の実施形態では、
設計上の考慮事項や他の要因に応じて、タグペアは他の
個数にすることが許容されている。
【0026】許容される出現個数に続く説明では、タグ
ペアの使い方の例が示されている。そこでの説明と例は
網羅的なものではなく、説明の便宜上示されたものであ
る。
【0027】説明に続いて、カレントタグからの次のレ
ベルに現れることができるタグのリスト(または無タグ
のリスト)が示されている。このタグリストは、本発明
のこの例示実施形態では、リストされたタグペアが次の
レベルに現れることができることを意味している。他の
実施形態では、他のタグペアを許すことが可能であり、
リストされたタグペアの一部が除外されていても、本発
明の精神と範囲から逸脱するものではない。
【0028】以上から理解されるように、多くのタグ名
を別の名前で置き換えても、機能的に同等である。さら
に、本発明の精神と範囲から逸脱しない限り、タグを並
べ替えたり、レベルを追加または削除したりすることも
可能である。以上の紹介と共に、以下には、タグと説明
が記載されている。
【0029】<Sync>...</Sync> 許される個数:同期化XMLドキュメント当たり1個 説明:<Sync>タグは、sync XMLドキュメントの始まりを
示している。言い換えれば、パーサ (parser) が<Sync>
タグを見つけたとき、このことは、<Sync>タグと</Sync
>タグの間に置かれているものはすべて、パーサにsync
メッセージとして扱わせることを意味している。<Sync
>...</Sync>タグは、Eメール、ftpデータ、あるコンピ
ュータから別のコンピュータに渡されるファイル、http
データなどを含む、どのタイプのドキュメントにも埋め
込むことが可能である。同期化を行うシステムは、受信
した各コミュニケーションをスキャンして、<Sync>...<
/Sync>タグペアが現れたかどうかを判断することができ
る。<Sync>...</Sync>タグペアが現れたときは、システ
ムは、<Sync>...</Sync>タグペアで定義されたXMLドキ
ュメントを抽出し、それを同期化エンジンに渡すことが
できる。次のXMLレベルにネスト(nest:入れ子にす
る)できるタグ: <Version>...</Version> <Status>...</Status> <Collections>...</Collections>
【0030】<Version>...</Version> 許される個数:1個 説明:このタグを使用すると、プロトコルを使用する2
つのアプリケーションは、各アプリケーションが使用し
ているバージョンのプロトコルを相互に送信することが
できる。プロトコルは、バージョンが同じであることを
要求していない。むしろ、バージョンが不一致の場合、
いつ進めるか、進めるかどうか、およびどのように進め
るかの判断は、各アプリケーションに任せている。バー
ジョンが不一致のとき、アプリケーションは、他のアプ
リケーションと通信するとき、例えば、旧バージョンの
プロトコルを使用するかどうかを判断することができ
る。次のXMLレベルにネストできるタグ:なし。
【0031】<Collection>...</Collection> 許される個数:1個 説明:<Collections>タグは、1つまたは2つ以上の<Co
llections>...</Collections>タグペアがあとに続くこ
とを示している。ある意味では、<Collections>...</Co
llections>タグペアは、一連のコレクション情報を「ラ
ップアラウンド(wrap around)」する。次のXMLレベルに
ネストできるタグ: <Collection>...</Collection>
【0032】<Collection>...</Collection> 許される個数:1個−無制限 説明:<Collection>...</Collection>タグペアは、コマ
ンド、応答、および関連情報のコレクションをラップア
ラウンドする。代表例として、<Collection>...</Colle
ction>タグペアは、受信側に送信される作業および/ま
たは応答のバッチを含んでいる。<Collection>...</Col
lection>タグペアは、カレンダ、連絡先などの、あるオ
ブジェクトタイプに関係する更新の集まりを、1つの要
求にバッチするために使用される。このプロトコルで
は、1つの要求で送信できる<Collection>...</Collect
ion>タグペアの個数は無制限になっている。次のXMLレ
ベルにネストできるタグ: <Class>. . .</Class> <SyncKey>. . .</SyncKey> <CollectionId>. . .</CollectionId> <Options>. . .</Options> <Commands>. . .</Commands> <Responses> . . . </Responses> <Status>. . . </Status> <GetChanges/> <WindowSize>. . . </WindowSize> <MoreAvailable/>
【0033】<Class>...</Class> 許される個数:コレクションごとに1個 説明:<Class>...</Class>タグペアは、同期化が必要で
あるオブジェクトクラスのタイプを記述しているデータ
を収めている。異種オブジェクトは異なる特性をもつこ
とができる。例えば、カレンダにおけるアポイントメン
トは、開始時間と終了時間を属性としてもっているのに
対し、アドレスブックにおける連絡先は、電話番号を属
性としてもっている。このクラスタグを使用すると、プ
ロトコルは、なにを同期化するのかに関して処理アプリ
ケーションに通知するために使用できる。次のXMLレベ
ルにネストできるタグ:なし
【0034】<SyncKey>...</SyncKey> 許される個数:コレクションごとに1個 説明:<SyncKey>...</SyncKey>タグペアの間に置かれる
同期化キーは、ウォータマーク (watermark) と呼ばれ
ることがある。この同期化キーに基づいて、アプリケー
ションは、例えば、再送信するのは応答であるか、要求
であるかを判断することができる。例えば、クライアン
トは、同期化データおよびコマンドと一緒に、1の同期
化キーを送信する場合がある。サーバはこの同期化キー
を受信し、コマンドとデータを処理し、成功したことを
示す応答をクライアントに送信する。この応答は、例え
ば、コネクションが失われると、クライアントに到着し
ないことがある。ある時間期間待ってから、クライアン
トはデータを再送信し、1の同期化キーを再使用する場
合がある。同期化キーは1であるので、サーバは、クラ
イアントがデータを再送信しようとしていると判断する
ことができ、オリジナルメッセージで処理されたアイテ
ムがあるかをチェックすることができる。他方、クライ
アントが成功したことを示す応答を受信した場合は、2
の同期化キーを使用して新メッセージを送信する場合が
ある。同期化キーは異なっているので、サーバは、その
メッセージの中の情報は新しいものであると判断するこ
とができる。 次のXMLレベルにネストできるタグ:なし
【0035】<CollectionId>...</CollectionId> 許される個数:コレクションごとに1個 説明:<CollectionId>...</CollectionId>タグペアの間
に置かれるコレクションIDは、コレクション、フォル
ダ、または個別オブジェクトを特定するために使用する
ことができる。例えば、コレクションIDは、ユーザのメ
ールシステムのアウトボックス(送信箱)を特定するこ
とができるが、アウトボックスに入っているシングルメ
ッセージを特定することもできる。コレクションIDの指
定がないときは、同期化されるデータおよびプロトコル
を使用するシステムに応じて、「デフォルトフォルダ」
が使用されることがある。 次のXMLレベルにネストできるタグ:なし
【0036】<Options>...</Options> 許される個数:コレクションごとに1個 <Options>...</Options>タグペアは、プロトコルによっ
て無視され、サーバ側またはクライアント側のアプリケ
ーションに送られるデータおよび/またはコマンドを取
り囲むために使用することができる。プロトコルは、開
始<Options>タグと終了</Options>タグの間にどのよう
なものでも置ける設計になっている。例えば、アプリケ
ーションは、ピクチャを別のアプリケーションに送信し
たい場合がある。ピクチャをJPEGフォーマットで表して
いるバイナリデータは、それを<Options>...</Options>
タグペアで囲むと送信することが可能になる。別の方法
として、追加のタグペアとデータを<Options>...</Opti
ons>タグペアの間に置くことにより、アプリケーション
固有の方法でプロトコルを「擬似拡張(pseudo-expande
d)」することも可能である。例えば、アプリケーション
は、syncオペレーション期間にサーバからクライアント
に送られるEメールにフィルタを入れて、ある種のサブ
ジェクトラインをもつEメールだけが送信されるように
要求することができる。別の方法として、アプリケーシ
ョンは、各Eメールの最初の1000文字だけが、syncオペ
レーション期間にサーバからクライアントに送信される
ように、Eメールに一定の切り捨て制限 (truncation li
mit) を設けることを要求することも可能である。サー
バとクライアントに固有のまったく新しいプロトコルを
<Options>...</Options>タグペアの間に置いても、同期
化プロトコルに障害が起こることはない。次のXMLレベ
ルにネストできるタグ:任意。しかし、個別的には、プ
ロトコルによって認識されないものがある。
【0037】<Commands>...</Commands> 許される個数:コレクションごとに無制限 <Commands>...</Commands>タグペアは、サーバ側または
クライアント側のアプリケーションに送信されるコマン
ドを取り囲むために使用される。<Commands>タグは、そ
の後に続くものが、作用の対象となる要求であることを
示している。例えば、追加 (add)、削除 (delete)、ま
たは変更 (change) コマンドは、関連データと一緒に、
<Commands>...</Commands>タグペアの間に置くことがで
きる。プロトコルは、<Commands>...</Commands>タグペ
アがコミュニケーションの中に存在することを要求して
いない。例えば、クライアントは、サーバがどの更新も
送信しないことを要求することができ(<GetChanges/>
タグを送信しないことにより)、その場合、サーバは、
<Commands>...</Commands>タグペアの間に置かれてい
る、どのコマンドの送信も無視することができる。しか
し、<Commands>...</Commands>タグペアが存在するとき
は、少なくとも1つのコマンドがその間に置かれている
必要がある。次のXMLレベルにネストできるタグ: <Add>...</Add> <Delete>...</Delete> <Change>...</Change> <Fetch>...</Fetch> なお、上記タグペアは、少なくとも1つが次のXMLレベ
ルにネストされている必要がある。
【0038】<Responses>...</Responses> 許される個数:コレクションごとに無制限 <Responses>...</Responses>タグペアは、前のメッセー
ジで送信されたコマンドに対する応答を取り囲むために
使用される。プロトコルは、前のメッセージのコマンド
を処理している途中で障害が発生したとき、あるいはFe
tchコマンドのように、応答を要求する要求が行われた
とき、応答を送信する設計になっている。コマンドに対
する応答が送信されないときは、成功したものとみなさ
れる。応答は、要求IDとステータスパラメータを含んで
いるのが一般である。例えば、コマンドは、特定のIDで
特定されたオブジェクトをサーバに削除させることを要
求することができる。例えば、無効なIDが指定されたと
きのように、サーバが特定されたオブジェクトを見つけ
ることができないときは、サーバはその応答として、オ
ブジェクトが見つからなかったとの情報を<Responses
>...</Responses>タグペアで囲んで送信することができ
る。
【0039】プロトコルは、<Responses>...</Response
s>タグペアがコミュニケーションに存在することを要求
していない。例えば、サーバは、クライアントが要求す
るすべてのコマンドを、エラーなしで正しく実行するこ
とができ、その場合、サーバは、<Responses>...</Resp
onses>タグペアの間に置かれている応答の送信を無視す
ることができる。しかし、<Responses>...</Responses>
タグペアが存在するときは、前の要求に対する応答が少
なくとも1つ含まれている必要がある。次のXMLレベル
にネストできるタグ: <Add>...</Add> <Delete>...</Delete> <Change>...</Change> <Fetch>...</Fetch> なお、上記タグペアは、少なくとも1つが次のXMLレベ
ルにネスとされている必要がある。
【0040】<GetChanges/> 許される個数:コレクションごとに1個 説明:<GetChanges/>タグは、変更が要求側に送り返さ
れることを示す空タグ(empty tag) である。一般的に
は、クライアントは、更新したいデータをサーバに送信
し、更新されたデータがクライアントに送り返されるこ
とを要求する。更新されたデータをサーバに要求するに
は、クライアントは<GetChanges/>タグを使用すること
ができる。このタグを使用しないときは、サーバは、ク
ライアントから送られてきた更新に応答するとき、更新
されたデータを送り返さないはずである。
【0041】プロトコルは、サーバではなく、クライア
ントが更新を要求する<GetChanges/>タグを送信する設
計になっている。このようにすると、クライアント側の
ユーザは、サーバからの変更がいつクライアントに送信
されるかを指示することができる。例えば、ワイヤレス
ネットワークを利用してサーバに送られるデータを同期
化するモバイルデバイスを使用するユーザは、モバイル
デバイスがすべてのデータ更新をサーバに送ることを要
求する機能を、サーバに持たせないことを望む場合があ
る。むしろ、ユーザは、データ更新をいつサーバに送る
かの制御権をユーザがもち、ユーザの都合のよいときに
やり取りを行うことを望んでいるのが代表的である。
【0042】さらに、プロトコルは、クライアントがあ
るセッションで複数の要求をサブミットするとき、最後
の要求の中に<GetChanges/>タグを組み入れる設計にな
っている。このようにすると、サーバはすべての要求を
処理してから更新を送り返すことが可能になる。 次のXMLレベルにネストできるタグ:なし
【0043】<WindowSize>...</WindowSize> 許される個数:コレクションごとに1個 <WindowSize>...</WindowSize>タグペアは、サーバから
クライアントに送られる更新の数を制限するために使用
できる値を収めている。例えば、サーバは、最後の同期
化以後、ユーザに対する新Eメールをいくつか受信して
いることがある。すべての新Eメールがサーバによって
送信されるときは、ユーザは、サーバが更新をユーザの
モバイルデバイスに送信する間、比較的長時間待たされ
ることがある。このプロトコルを使用すると、ユーザ
(またはユーザのモバイルデバイス)は、各コレクショ
ンの同期化ごとにサーバからの更新をいくつ送信させる
かを、各コレクションに見合うウィンドウサイズを選択
することによって指定することができる。サーバは、指
定された数の更新をユーザのモバイルデバイスに送信
し、コレクションには更新がまだ残っていることを、<M
oreAvailable/>タグを送ることによって指示することが
できる。これについては、以下で詳しく説明する。
【0044】さらに、信号損失が間欠的にデバイスに起
こっているときは、そのデバイスは、ウィンドウサイズ
をダイナミックに縮小することができる。そのようにす
ると、伝送の途中で信号が損失したとき、再送の必要が
あるデータ量は比較的少量で済むことになる。次のXML
レベルにネストできるタグ:なし
【0045】<MoreAvailable/> 許される個数:コレクションごとに1個 <MoreAvailable/>タグは、同期化のための更新がまだ残
っていることを示している。<MoreAvailable/>タグは、
同期化の対象となるコレクションで送信できる更新の数
に<WindowSize>...</WindowSize>タグペアが制限を設け
ていたとき送信することができる。例えば、クライアン
トに対して更新の必要のある10個のEメールがサーバ側
にあって、クライアントがウィンドウサイズを4に設定
して同期化に関与していた場合、サーバは4つのEメー
ルと<MoreAvailable/>タグを送信して、同期化の対象と
なるEメールがまだサーバ側に残っていることを指示す
ることができる。 次のXMLレベルにネストできるタグ:なし
【0046】<Add>...</Add> : <Commands>...</Comman
ds> 許される個数:無制限 <Commands>...</Commands>タグペアの間に置かれる<Add
>...</Add>タグペアは、オブジェクトを追加するために
使用される。<Add>...</Add>タグペアの間に置かれるad
d情報は、オブジェクトとそのオブジェクトと関連付け
ようとするデータを示している。例えば、クライアント
は、サーバの連絡先データ情報を更新するために情報を
送信する場合がある。これを行うには、クライアント
は、100のように、連絡先を特定する整数と、John Doe
のように連絡先のファーストネームとラストネームを、
<Add>...</Add>タグペアの間に置くことができる。同様
に、サーバが新オブジェクトをクライアントに送信する
ときは、オブジェクトとそのオブジェクトに関連付けよ
うとするデータを示す情報が送信される。<Add>...</Ad
d>タグペアは、以下で説明するように、<Responses>...
</Responses>タグペアの間に置くことも可能である。次
のXMLレベルにネストできるタグ: <ClientId>...</ClientId> <ServerId>...</ServerId> <ApplicationData>...</ApplicationData>
【0047】<Delete>...</Delete> : <Commands>...</
Commands> 許される個数:無制限 <Commands>...</Commands>タグペアの間に置かれる<Del
ete>...</Delete>タグペアは、オブジェクトを削除する
ために使用される。<Delete>...</Delete>タグペアの間
に置かれるdelete情報は、削除しようとするオブジェク
トを特定している。例えば、クライアントは、サーバの
連絡先データ情報を更新するためにdelete情報を送信す
る場合がある。これを行うには、100のように、削除し
ようとする連絡先 (John Doe) を示す整数を、<Delete
>...</Delete>タグペアの間に置くことができる。同様
に、クライアントからオブジェクトを削除するには、サ
ーバは、削除しようとするオブジェクトを示す情報を送
信する。<Delete>...</Delete>タグペアは、以下で説明
するように、<Responses>...</Responses>タグペアの間
に置くことも可能である。次のXMLレベルにネストでき
るタグ: <ServerID>...</ServerID>
【0048】<Change>...</Change> : <Commands>...</
Commands> 許される個数:無制限 <Commands>...</Commands>タグペアの間に置かれる<Cha
nge>...</Change>タグペアは、オブジェクトを追加する
ために使用される。<Change>...</Change>タグペアの間
に置かれるChange情報は、オブジェクトとそのオブジェ
クト内で変更しようとするデータを示している。例え
ば、クライアントは、サーバの連絡先データ情報を更新
するために情報を送信する場合がある。これを行うに
は、クライアントは、100のように、連絡先 (John Doe)
を特定する整数と、Janeのように、ファーストネーム
の変更を、<Change>...</Change>タグペアの間に置くこ
とができる。同様に、サーバがオブジェクトの更新をク
ライアントに送信するときは、そのオブジェクトと、そ
のオプジェクトに関連するどのデータを変更しようとす
るのかを示す情報が送信される。<Change>...</Change>
タグペアは、以下で説明するように、<Responses>...</
Responses>タグペアの間に置くことも可能である。次の
XMLレベルにネストできるタグ: <ServerId>...</ServerId> <ApplicationData>...</ApplicationData>
【0049】 <Fetch>...</Fetch> : <Commands>...</Commands> fetchタグは、特定のオブジェクトを取得する要求を示
している。例えば、ユーザは、Eメールのサブジェクト
ラインだけを取り出すようにモバイルデバイスを構成す
ることができる。同期化を行うとき、モバイルデバイス
は、例えば、<Options><GetSubjectsOnly/></Options>
シンタックスを通して、Eメールのサブジェクトだけを
サーバに送信させることを要求することができる。(な
お、このプロトコルでは、<Options>...</Options>タグ
ペアの間に置かれているものは無視されるが、<Options
>...</Options>タグペアの個所で前述したように、この
ペアの間に置かれているデータをアプリケーションに渡
すことでプロトコルを「拡張」することができる。Eメ
ールのサブジェクトラインを読んでいるユーザは、他の
Eメールが同期化されるのを待つことなく、あるサブジ
ェクトに関連するEメール全体を取り出すことを望む場
合がある。<Fetch>...</Fetch>タグペアの使用を通して
該当のオブジェクトを要求し、<GetChanges/>タグを省
くことにより、モバイルデバイスは、サーバから他のオ
ブジェクトを送信させることなく、1つのオブジェクト
を取り出させることができる。次のXMLレベルにネスト
できるタグ: <ServerId>...</ServerId>
【0050】<Add>...</Add> : <Responses>...</Respo
nses> <Responses>...</Responses>タグペアの間に置かれる<A
dd>...</Add>タグペアは、オブジェクトを追加したこと
を確認し、追加したオブジェクトのサーバIDについてク
ライアントを更新するために使用される。例えば、クラ
イアントは、サーバの連絡先データ情報を更新するため
に情報を送信する場合がある。これを行うには、クライ
アントは、100のように、連絡先を特定する整数と、Joh
n Doeのように、連絡先のファーストネームとラストネ
ームを、<Add>...</Add>タグペアの間に置くことができ
る。サーバが追加更新に応答するときは、例えば、100
のようなクライアントID、新オブジェクトに割り当てら
れたサーバID、および更新のステータスを送信する。こ
のようにすると、クライアントは、サーバによって割り
当てられたIDを使用して、オブジェクトに対する別の更
新を行うことができる。<Add>...</Add>タグペアは、上
述したように、<Commands>...</Commands>タグペアの間
に置くことも可能である。次のXMLレベルにネストでき
るタグ: <ClientId>...</ClientId> <ServerId>...</ServerId> <Status>...</Status>
【0051】 <Delete>...</Delete> : <Responses>...</Responses> 許される個数:無制限 <Responses>...</Responses>タグペアの間に置かれる<D
elete>...</Delete>タグペアは、オブジェクトを削除す
るステータスを報告するために使用することができる。
<Delete>...</Delete>タグペアの間に置かれるdelete情
報は、削除しようとするオブジェクトを特定している。
例えば、クライアントは、サーバの連絡先データ情報を
更新するためにdelete情報を送信する場合がある。これ
を行うには、クライアントは、100のように、削除しよ
うとする連絡先 (John Doe) を特定する整数を、<Delet
e>...</Delete>タグペアの間に置くことができる。例え
ば、100で特定された連絡先オブジェクトがサーバ側に
存在しないため、削除が失敗したときは、サーバは、<D
elete>...</Delete>タグペアとその間に置かれた関連失
敗情報を使用して、削除に応答することができる。次の
XMLレベルにネストできるタグ: <ServerID>...</ServerID> <Status>...</Status>
【0052】<Change>...</Change> : <Responses>...<
/Responses> 許される個数:無制限 <Responses>...</Responses>タグペアの間に置かれる<C
hange>...</Change>タグペアは、オブジェクトを追加し
たステータスを報告するために使用される。例えば、ク
ライアントは、サーバの連絡先データ情報を更新するた
めに情報を送信する場合がある。これを行うには、クラ
イアントは、100のように、連絡先 (John Doe) を特定
する整数と、Janeのように、ファーストネームの変更を
<Change>...</Change>タグペアの間に置くことができ
る。データを変更している途中でエラーが起こった場
合、例えば、IDに関連する連絡先が見つからない場合、
サーバは、例えば、100のように、受信したIDと、IDが
見つからなかったことを示すエラーコードを、クライア
ントに送信される<Change>...</Change>タグペアの間に
置くことによって応答することができる。<Change>...<
/Change>タグペアは、上述したように、<Commands>...<
/Commands>タグペアの間に置くことも可能である。次の
XMLレベルにネストできるタグ: <ServerID>...</ServerID> <Status>...</Status>
【0053】 <Fetch>...</Fetch> : <Responses>...</Responses> 許される個数:無制限 <Responses>...</Responses>タグペアの間に置かれる<F
etch>...</Fetch>タグペアは、<Commands>...</Command
s>タグペアの間において出された<Fetch>コマンドで要
求されたオブジェクトに関連するステータスとデータを
送信するために使用される。例えば、Eメールのサブジ
ェクトラインを読んでいるユーザは、他のEメールが同
期化されるのを待つことなく、あるサブジェクトに関連
するEメール全体を取り出したい場合がある。ユーザが
使用しているクライアントは、<Fetch>...</Fetch>タグ
ペアを、オブジェクトを特定している<Commands>...</C
ommands>タグペアの間に置いて送信することによって、
Eメール全体をユーザに送信することをサーバに要求す
ることができる。サーバは、例えば、要求されたオブジ
ェクトが見つからなかった場合、エラーステータスコー
ドを送信することによって応答することができる。別の
方法として、サーバは、データを<Fetch>...</Fetch>タ
グペアの間に置いて送信することにより、要求情報を送
信することも可能であり、この場合、データは要求され
たオブジェクトとそのオブジェクトに関連するデータを
示している。次のXMLレベルにネストできるタグ: <ServerID>...</ServerID> <Status>...</Status> <ApplicationData>...</ApplicationData>
【0054】<ClientId>...</ClientId> 許される個数:<Add>...</Add>タグペアごとに1個 <ClientId>...</ClientId>タグペアの間に置かれる情報
は、クライアント側の特定オブジェクトを特定してい
る。オブジェクトがサーバ側にストアされているとき
は、サーバは、そのオブジェクトに異なるオブジェクト
IDを関連付けている場合がある。クライアント、サー
バ、またはクライアントとサーバの間に置かれていて、
これらの間でメッセージを中継するデバイスは、クライ
アント側オブジェクトIDとサーバ側オブジェクトIDとを
対応付けているマップをストアしているのが代表的であ
る。プロトコルは、オブジェクトをサーバに追加するこ
とをクライアントが最初に要求したとき、クライアント
がクライアント側オブジェクトIDをサーバに送信させる
設計になっている。オブジェクトとそのIDを受信する
と、サーバはそのオブジェクトに対応するサーバ側IDを
生成し、クライアント側ID、関連のサーバ側ID、および
追加のステータスをクライアントに送信し、これを受け
て、クライアントは、将来の更新に備えてオブジェクト
にIDを関連付ける。オブジェクトに関する将来の更新
は、クライアントとサーバのどちらも、サーバ側IDで参
照することができる。例えば、ユーザは、ユーザのモバ
イルデバイスで新連絡先、例えば、John Doeを追加する
と、モバイルデバイスをサーバと同期化する。モバイル
デバイスは、例えば、100のように、クライアント側ID
を新連絡先に割り当て、新連絡先をクライアント側IDと
一緒にサーバに送信し、例えば、752のように、どのサ
ーバ側IDがクライアント側IDと対応付けられたかを示す
応答をサーバから受信する。このサーバ側IDは、ユーザ
が連絡先に関する情報を更新するとき使用される。 次のXMLレベルにネストできるタグ:なし
【0055】<ServerId>...</ServerId> 許される個数:<Add>...</Add>、<Delete>...</Delete
>、<Change>...</Change>、または<Fetch>...</Fetch>
タグペアごとに1個 <ServerId>...</ServerId>タグペアの間に置かれる情報
は、サーバ側の特定オブジェクトを示している。オブジ
ェクトに対してサーバによって割り当てられたIDは、オ
ブジェクトに対してクライアントによって割り当てられ
たIDと同じで場合と、そうでない場合がある。サーバID
に関する詳細情報は、上述した<ClientId>...</ClientI
d>タグペアの個所に説明されている。クライアントIDと
サーバIDとを対応付けたマップをクライアント側が維持
しているシステムでは、ユーザがサーバ側の連絡先を変
更したいとき、ユーザのクライアントは、その連絡先を
更新するためにサーバIDを更新データと一緒にサーバに
送信することができる。例えば、連絡先John Doeの名前
をJane Doeに変更する場合は、ユーザのクライアント
は、John Doeに関連するサーバID、例えば、752を名前
変更情報と一緒にサーバに送信することになる。 次のXMLレベルにネストできるタグ:なし
【0056】<ApplicationData>...</ApplicationData> 許される個数:<Add>...</Add>または<Fetch>...</Fetc
h>タグペアごとに1個<ApplicationData>...</Applicat
ionData>タグペアは、サーバ側またはクライアント側の
アプリケーションに送信されるデータおよび/またはコ
マンドを取り囲むために使用できる。プロトコルは、開
始<ApplicationData>タグと終了</ApplicationData>タ
グの間にどのようなものでも置くことができる設計にな
っている。この点では、前述した<Options>...</Option
s>タグペアに類似している。例えば、アプリケーション
は、ピクチャを別のアプリケーションに送信する必要が
起こる場合がある。ピクチャをJPEGフォーマットで表し
ているバイナリデータは、それを<ApplicationData>...
</ApplicationData>タグペアの間に置くことによって送
信することができる。別の方法として、アプリケーショ
ンは、連絡先情報を更新するために情報を送信する場合
がある。このプロトコルによれば、アプリケーションは
新連絡先オブジェクト全体を送信するのではなく、変更
された情報だけを送信できるようにしている。例えば、
連絡先John Doeのファーストネームを変更するアプリケ
ーションは、変更しようとする連絡先の属性を示す情
報、例えば、<c:FirstName>Jane</c:FirstName>を<Appl
icationData>...</ApplicationData>タグペアの間に置
くことができる。なお、<c:FirstName>Jane</c:FirstNa
me>タグペアは、個別的にはこのプロトコルによって認
識されないが、<ApplicationData>...</ApplicationDat
a>タグペアの性質上、連絡先情報を更新する方法を必要
とするアプリケーションに便宜を与えるために、プロト
コルに組み入れることが可能になっている。 次のXMLレベルにネストできるタグ:任意。しかし、個
別的にはこのプロトコルで認識されない。
【0057】<Status>...</Status> <Status>...</Status>タグペアは、要求されたオペレー
ションが成功したか、失敗したかに関するデータを取り
囲むために使用することができる。そのようなデータと
しては、オペレーションのステータス、例えば、Syncサ
ーバのエラーを記述する文字ストリング、エラーに対応
する整数、例えば、4153699、文字と数字からなる英数
字ストリング、または他の任意のデータフォーマットが
ある。ステータスの報告に整数が使用されるときは、い
くつかのフィールドに分割することができる。例えば、
最初の桁は使用されるプロトコルに対応付けることがで
きる。例えば、4153は、AirSyncプロトコルの短縮語で
ある"AS"のASCIIを表している。整数の別のフィールド
は、エラータイプに対応付けることができる。次の表
は、いくつかのエラータイプの例を示している。
【0058】
【表1】
【0059】上例の接頭部 (4153) と上表を使用する
と、次の例に示すように、個々の整数が表すものを定義
することができる。 成功 = 4153200 アクセス拒否 = 4153300 サーバタイムアウト = 4153301 バージョン不一致 = 4153500 SyncKey無効 = 4153501 AirSyncプロトコルエラー = 4153499 データサーバエラー = 4153699 変換エラー = 4153601 不一致 = 4153602 不明 = 4153999 アプリケーションがエラーを処理するか、プロトコルパ
ーサがエラーを処理するかは、アプリケーション固有で
ある。例えば、プロトコルパーサは、送信側にメッセー
ジを再送信させることを要求することによって、AirSyn
cエラーに応答することができる。アプリケーション
は、不一致のバージョンを受信したときなにをすべきか
を判断することができる。アプリケーションは、例え
ば、受信したバージョンと互換性のあるバージョンをプ
ロトコルパーサに使用させることができる。 次のXMLレベルにネストできるタグ:なし
【0060】プロトコルのシンタックスの説明は、以上
のとおりである。このプロトコルを詳細に検討すると、
上述してきた利点が得られることが分かるはずである。
具体的には、このプロトコルを使用すると、複数の応答
を1つにまとめることができる。さらに、このプロトコ
ルを使用すると、データを更新する複数のコマンドを1
つにまとめることができる。さらに、データを更新する
コマンドグループとこれらのコマンドに対する応答グル
ープも、1つにまとめて1つのXMLドキュメントにする
ことができる。このプロトコルによれば、<Fetch>...</
Fetch>タグペアを使用し、</GetChanges>タグを省く
と、クライアントは、完全な同期化を要求しなくても、
1つのオブジェクトを送信することを要求することがで
きる。</GetChanges>タグを省くと、クライアントは、
サーバからの更新をクライアントに受信させなくても、
更新をサーバに送信することができる。<WindowSize
>...</WindowSize>タグペアを使用すると、クライアン
トは、一定数の更新だけを同期化期間に送信させること
を要求することができる。<MoreAvailable/>タグを使用
すると、サーバは、送信したオブジェクトのほかにも、
オブジェクトが残っていることを通知することができ
る。このプロトコルによれば、オプションである<Respo
nses>...</Responses>を使用すると、更新が成功した各
オブジェクトについては応答を送信することなく、更新
が失敗した各オブジェクトについて応答を送信できるの
で、送信の必要がある情報量が減少することになる。<O
ptions>...</Options>タグペアと<ApplicationData>...
</ApplicationData>タグペアを使用すると、アプリケー
ション固有の方法でプロトコルを拡張することができ
る。
【0061】図1から図3は、デバイスを同期化するプ
ロトコルのシンタックスの一例を示す図である。このシ
ンタックスはXMLスキーマ言語 (schema language) で提
供され、そこでは、XMLは、このプロトコルで許される
許容XMLドキュメントのグラマーを定義するために使用
されている。なお、このスキーマは、プロトコルの完全
なシンタックスを記述していない。スキーマに不備があ
る個所では、<!-- -->タグペアを使用して、そのスキー
マにコメントが付けられている。XMLスキーマを使用し
てXMLドキュメントを指定する方法の詳しい説明につい
ては、現在http://www.w3.org に置かれているWorld Wi
de Webコンソーシアムのホームページを参照されたい。
【0062】図4と図5は、データの同期化のためにク
ライアントによって送信されるXMLドキュメントの例を
示す図である。図6と図7は、図4と図5に示すXMLド
キュメントに応答して送信されるXMLドキュメントの例
を示す図である。図4、図5、図6、および図7は、本
明細書に開示されているプロトコルを使用してクライア
ント側とサーバ側のデータを同期化するために使用され
るXMLドキュメントの説明図である。
【0063】例示コンピューティングデバイス 図8を参照して説明すると、本発明を実現する例示シス
テムは、コンピューティングデバイス400のような、
コンピューティングデバイスを含んでいる。非常に基本
的な構成では、コンピューティングデバイス400は、
少なくとも1つの処理ユニット402とシステムメモリ
404を装備しているのが代表的である。処理ユニット
402の中には、既存の物理プロセッサ、設計中の物理
プロセッサ、協働の多重プロセッサ、仮想プロセッサ、
およびバイナリ実行可能命令を解釈する機能を備えた他
のデバイスまたはソフトウェアプログラムが含まれてい
る。コンピューティングデバイスの正確な構成とタイプ
に応じて、システムメモリ404としては、揮発性メモ
リ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモ
リなど)またはこれらを任意に組み合わせたものがあ
る。システムメモリ404には、オペレーティングシス
テム405、1つまたは2つ以上のプログラムモジュー
ル406が置かれているのが代表的であるが、プログラ
ムデータ407が置かれていることもある。この基本構
成は、上記コンポーネントを破線408で囲んで図8に
示されている。
【0064】コンピューティングデバイス400は、追
加の機構または機能を備えている場合もある。例えば、
コンピューティングデバイス400は、例えば、磁気デ
ィスクや光ディスク、テープのような、追加のデータス
トレージデバイス(取り外し可能および/または取り外
し不能)を装備することも可能である。このような追加
ストレージは、取り外し可能ストレージ409および取
り外し不能ストレージ410として図8に示されてい
る。コンピュータ記憶媒体としては、揮発性と不揮発性
の、取り外し可能と取り外し不能の媒体があり、これら
は、コンピュータ読取可能命令、データ構造、プログラ
ムモジュールまたは他のデータなどの、情報を記憶する
ための方法またはテクノロジで実現されている。システ
ムメモリ404、取り外し可能ストレージ409および
取り外し不能ストレージ410は、いずれもコンピュー
タ記憶媒体の例である。コンピュータ記憶媒体として
は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメ
モリテクノロジ、CD-ROM、デジタルバーサタイルディス
ク (digital versatile disk DVD)または他の光ストレ
ージ、磁気カセット、磁気テープ、磁気ディスクストレ
ージまたは他の磁気ストレージデバイス、そのほかに、
必要とする情報をストアするために使用でき、コンピュ
ータデバイス400によってアクセス可能な他の媒体が
あるが、これらに限定されない。このようなコンピュー
タ記憶媒体は、いずれも、デバイス400の一部にする
ことが可能である。コンピューティングデバイス400
は、キーボード、マウス、ペン、音声入力デバイス、タ
ッチ入力デバイスなどの、入力デバイス412を備える
ことも可能である。ディスプレイ、スピーカ、プリンタ
などの出力デバイス414を備えることも可能である。
これらのデバイスはすべて、この分野では公知であるの
で、ここで詳しく述べることは省略する。
【0065】コンピューティングデバイス400は、ネ
ットワークなどを利用してデバイスが他のコンピューテ
ィングデバイス418と通信することを可能にする通信
コネクション416を装備することもできる。通信コネ
クション416は、通信媒体の一例である。通信媒体
は、コンピュータ読取可能命令、データ構造、プログラ
ムモジュールまたは他のデータを、搬送波や他のトラン
スポートメカニズムなどの変調データ信号で具現化して
いるのが代表的であり、その中には、あらゆる情報配信
媒体が含まれている。ここで「変調データ信号(modulat
ed data signal)」という用語は、その特性の1つまた
は2つ以上が、信号中の情報を符号化するような形で設
定または変更されている信号を意味している。通信媒体
の例としては、ワイヤド(有線)ネットワークや直接ワ
イヤドコネクションなどのワイヤド媒体、音響、RF、赤
外線、その他のワイヤレス媒体などのワイヤレス媒体が
あるが、これらに限定されない。ここで使用されている
「コンピュータ読取可能媒体(computer readable medi
a)」という用語には、記憶媒体と通信媒体の両方が含ま
れている。
【0066】モバイルコンピューティングデバイス 図9は、モバイルコンピューティングデバイス500の
機能コンポーネントを示す機能ブロック図である。モバ
イルコンピューティングデバイス500は、プロセッサ
560、メモリ562、ディスプレイ528、およびキ
ーパッド532を備えている。メモリ562には、揮発
性メモリ(例えば、RAM)および不揮発性メモリ(例え
ば、ROM、フラッシュメモリなど)が含まれているのが
一般である。モバイルコンピューティングデバイス50
0は、Microsoft Corporation提供のWindows(登録商
標) CEオペレーティングシステムや他のオペレーティ
ングシステムなどのように、メモリ562に常駐して、
プロセッサ560上で実行されるオペレーティングシス
テム564を備えている。キーパッド532としては、
プッシュボタン数値ダイアリングパッド(通常の電話機
上のもの)、マルチキーのキーボード(従来のキーボー
ドなど)がある。ディスプレイ528としては、液晶デ
ィスプレイやモバイルコンピューティングデバイスで共
通に使用されている他のタイプのディスプレイなどがあ
る。ディスプレイ528はタッチセンシティブ(接触感
知)にすることもできるので、入力デバイスとしても使
用されている。
【0067】1つまたは2つ以上のアプリケーションプ
ログラム566はメモリ562にロードされ、オペレー
ティングシステム564上で実行される。アプリケーシ
ョンプログラムの例としては、電話ダイヤラプログラム
(phone dialer program)、Eメールプログラム、スケジ
ューリングプログラム、PIM(personal informationman
agement:パーソナル情報管理)プログラム、ワードプ
ロセッシングプログラム、スプレッドシートプログラ
ム、インターネットブラウザプログラムなどがある。モ
バイルコンピューティングデバイス500は、メモリ5
62内に不揮発性ストレージ568も備えている。不揮
発性ストレージ568は、モバイルコンピューティング
デバイス500をパワーダウンしたとき消失してはなら
ない持続性情報をストアしておくために使用できる。ア
プリケーション566は、Eメールアプリケーションで
使用されるEメールや他のメッセージ、PIMで使用される
連絡先情報、スケジューリングプログラムで使用される
アポイントメント情報、ワードプロセッシングアプリケ
ーションで使用されるドキュメントなどの情報を使用
し、ストレージ568にストアしておくことができる。
同期化アプリケーションもモバイルデバイスに置かれて
おり、ホストコンピュータに置かれている対応する同期
化アプリケーションとやりとりして、ストレージ568
にストアされた情報がホストコンピュータ側にストアさ
れている対応する情報と同期が保たれるようにプログラ
ムされている。
【0068】モバイルコンピューティングデバイス50
0は電源570を備えており、これは、1つまたは2つ
以上のバッテリとして実装することが可能になってい
る。電源570としては、さらに、ACアダプタやパワー
ドドッキングクレイドル (powered docking cradle) の
ように、バッテリを補足または充電するための外部電源
がある。
【0069】モバイルコンピューティングデバイス50
0は、図示のように、2種類の外部通知メカニズム、す
なわち、LED 540とオーディオインタフェース574
も備えている。これらのデバイスは電源570に直結で
きるので、これらがアクティブ状態にあるとき、バッテ
リ電源を節約するためにプロセッサ560または他のコ
ンポーネントがシャットダウンされた場合でも、通知メ
カニズムによって指定された時間の間、オンのままにな
っている。LED 540は、ユーザがデバイスのパワーオ
ンステータスを表示するアクションをとるまで、いつま
でもオンにしておくようにプログラムすることができ
る。オーディオインタフェース574は、可聴信号をユ
ーザとの間で送受するために使用される。例えば、オー
ディオインタフェース574をスピーカに結合すると、
可聴出力を得ることができ、マイクロホンに結合する
と、可聴入力を受信できるので、電話会話が容易化され
る。
【0070】モバイルコンピューティングデバイス50
0は、無線周波数通信を送受信する機能を実行する無線
インタフェースレイヤ572も備えている。無線インタ
フェースレイヤ572を使用すると、モバイルコンピュ
ーティングデバイス500と外部世界とを、電話会社や
サービスプロバイダを経由してワイヤレスで接続するこ
とが容易化される。無線インタフェースレイヤ572と
の間の送受信は、オペレーティングシステム564の制
御下で行われる。言い換えれば、無線インタフェースレ
イヤ572によって受信されたコミュニケーションは、
オペレーティングシステム564を通してアプリケーシ
ョンプログラム566に伝えていくことができ、その逆
も同じである。
【0071】例示同期化システム 図10は、本発明の一実施形態に従い、クライアント側
とサーバ側のデータを同期化するように構成されたシス
テムを示す機能ブロック図である。システムは、クライ
アント605、バックエンドサーバ610、およびプロ
キシサーバ620を含んでいる。プロキシサーバ620
は、ハイパテキスト転送プロトコル (hypertext transp
ort protocol HTTP) インタフェース615、syncエン
ジン622、ドキュメントパーサ625、およびプロト
コルエンジン630を備えている。プロトコルエンジン
630はsyncパーサ635とビルダ640から構成され
ている。
【0072】クライアント605は、ネットワークに情
報を送信し、ネットワークから情報を受信する機能を備
えた任意のデバイスである。そのようなデバイスとして
は、パーソナルコンピュータ、ハンドヘルドデバイス、
マルチプロセッサシステム、マイクロプロセッサをベー
スとするまたはプログラマブルなコンシューマエレクト
ロニクス、ネットワークPC、ミニコンピュータ、メイン
フレームコンピュータなどがある。クライアント605
には、同期化を必要とする多種類のアプリケーションを
置いておくことができる。
【0073】バックエンドサーバ610は、図8を参照
して説明したコンピューティングシステムにすることが
できる。代表例として、バックエンドサーバ610はサ
ービスを実行し、クライアント群のためにデータをスト
アしている。例えば、バックエンドサーバ610は、E
メールを送信し、受信し、ストアし、削除するメールサ
ーバとして使用することができる。さらに、バックエン
ドサーバ610は、Eメールを処理するための種々のル
ールをもち、複数のユーザのためにEメールを処理する
ことができる。
【0074】HTTPインタフェース615は、インターネ
ット上をデータ送信するために使用される。HTTPインタ
フェース615は、伝送制御プロトコル/インターネッ
トプロトコル (transmission control protocol/intern
et protocol TCP/IP) などの、他のプロトコルの上に
構築されている(または他のプロトコルを使用して送信
される)のが代表的である。HTTPインタフェース615
は、Webページの要求をブラウザから送信し、Webページ
からのデータをブラウザに送信するために使用されるの
が代表的であるが、他の情報を送信するためにも使用で
きる。
【0075】プロキシサーバ620も、図8を参照して
説明したコンピューティングシステムにすることができ
る。プロキシサーバ620は、クライアント605とバ
ックエンドサーバ610との間のインタフェースの働き
する。具体的には、プロキシサーバ620は、クライア
ント605からの要求を、バックエンドサーバ610が
理解できる要求に変換する。また、バックエンドサーバ
610から戻されたデータを、クライアント605に適
した情報に変換する。プロキシサーバ620は、バック
エンドサーバ610が備えていない、すべての必要同期
化機能を備えている。例えば、バックエンドサーバ61
0には、簡易構造化照会言語 (structured query langu
age SQL) データベースが置かれていることがある。こ
のデータベースは、SQLコマンドに応答してデータをス
トアし、データを取り出すことができる。しかし、SQL
データベースは、図6乃至図9を参照して説明したプロ
トコルのような、プロトコルには応答しないのが代表的
である。例えば、<GetChanges/>は、SQLシンタックスの
一部になっていない。従って、クライアント605のよ
うなクライアントが変更要求を送信するときは、プロキ
シサーバ620がその要求をSQLシンタックスに変換
し、該当する場合には、SQLデータベースにクエリ(照
会)し、その応答としてXMLドキュメントを作成し、そ
のXMLドキュメントをクライアントに送信している。
【0076】図10に示すシステムの利点の1つは、バ
ックエンドサーバ610を、簡易または高度のメールサ
ーバで置き換えても、クライアント605に影響しない
ことである。そのために、プロキシサーバ620は、バ
ックエンドサーバ610と通信するようにプログラムさ
れ、バックエンドサーバ610に欠けている同期化機能
を実行できるようにしている。
【0077】Syncエンジン622はドキュメントサーバ
625を使用して、クライアント605とバックエンド
サーバ610から送られてきたコマンドおよび/または
データを見つけるようにしている。例えば、クライアン
ト605は、本明細書に開示されているプロトコルの一
部でないコマンドを送信する場合がある。そのようなも
のとして、クライアント605がEメール全体を受信し
なかったときのEメールに対する応答要求(スマート応
答)、クライアント605がアタッチメントを受信しな
かったときのEメールついて、そのアタッチメント付き
でEメールを転送する要求(スマート転送)、あるいは
進行中作業 (work-in-progress) フォルダのようなフォ
ルダを、そのフォルダ内のすべてのオブジェクトを取り
出すことなく、ある場所から別の場所へ移動する要求な
ど、がある。
【0078】別の方法として、クライアント605は、
<Sync>...</Sync>タグペアをドキュメントに埋め込むこ
ともできる。この場合には、ドキュメントパーサ625
は、<Sync>...</Sync>タグペアの間に置かれている同期
化XMLドキュメントを抽出するために使用され、そのあ
と、syncエンジン622がそれをプロトコルエンジン6
30に送って、同期化ドキュメントを抽出するようにし
ている。
【0079】プロトコルエンジン630は、syncパーサ
635を使用して同期化コマンド、応答、および/また
はデータを抽出し、そのあとsyncエンジン622に送ら
れる。例えば、syncエンジン622は、複数のコマンド
と応答を収めているXMLドキュメントをプロトコルエン
ジン630に送信することができる。そのあと、syncエ
ンジン622は、すべてのコマンドと応答が処理される
まで、次のコマンドまたは応答を関連データと一緒に戻
すように繰り返しプロトコルエンジン630に要求する
ことができる。プロトコルエンジン630は、XMLドキ
ュメントをsyncパーサ635に渡し、要求に応じて、コ
マンドと応答が関連データと一緒にsyncパーサ635か
ら戻される。
【0080】同様に、プロトコルエンジン630は、コ
マンド、応答、および/またはデータを収めているXMLド
キュメントを、ビルダ640を使用して構築し、そのあ
とsyncエンジン622に送信される。例えば、syncエン
ジン622は、syncエンジン622からクライアント6
05に送られるXMLドキュメントの構築を開始するよう
にプロトコルエンジン630に要求することができる。
そのあと、syncエンジン622は、XMLドキュメントに
入れられるコマンドと応答をデータと一緒に繰り返しプ
ロトコルエンジン630に送信することができる。プロ
トコルエンジン630は、コマンドと応答を含むXMLド
キュメントをデータと一緒にビルダ640にアセンブル
させたあと、そのXMLドキュメントをsyncエンジン62
2に送信する。
【0081】本発明の別の実施形態では、プロキシサー
バ620は不要になっている。その代わりに、クライア
ント605は、バックエンドサーバ610と直接に通信
する。本発明のこの実施形態では、クライアント605
とバックエンドサーバ610は、図6乃至図9を参照し
て説明したプロトコルを使用して要求を送信し、応答を
受信できるようになっている。
【0082】図11は、本発明の一実施形態に従って、
クライアント側とサーバ側のデータを同期化するように
構成されたシステムを示す機能ブロック図である。シス
テムは、クライアント605、バックエンドサーバ61
0、プロキシサーバ620、およびメッセージ配信シス
テム715を含んでいる。クライアント605、バック
エンドサーバ610、およびプロキシサーバ620のオ
ペレーションの一部は、図10を参照して説明したとお
りである。
【0083】メッセージ配信システム715は、データ
をバンド外でクライアント605に配信することができ
る。すなわち、メッセージ配信システム715は、クラ
イアント605が更新データを要求するまで待たなくて
も、データをクライアント605に送付することができ
る。むしろ、メッセージ配信システム715は、ページ
ャ (pager) とまったく同じように、メッセージをいつ
でもクライアント605に配信することができる。この
種のメッセージは、バックエンドサーバ610などのサ
ーバから出されるのが代表的であり、サーバIDとデータ
を含んでいる。バンド外メッセージの一例として、簡易
メッセージングシステム (Simple Messaging System S
MS) などを使用して配信されるメッセージがある。
【0084】クライアント605には、サーバIDとクラ
イアントIDとを対応付けているマッピングテーブル72
0が置かれている。マッピングテーブル720は、更新
をバックエンドサーバ610との間で送受信するときに
使用される。例えば、クライアント605は、クライア
ントID 1のようなクライアントIDを、サーバID 102のよ
うなサーバIDに変換したあと、サーバID 102に関連する
サーバ側オブジェクトを更新する要求を送信することが
できる。さらに、クライアント605がサーバ610ま
たはメッセージ配信システム715から更新を受信した
とき、クライアント605は、サーバIDを該当クライア
ントIDにマッピングし、クライアントIDに関連するクラ
イアント側オブジェクトを更新することができる。例え
ば、メッセージ配信システム715がサーバID 100に関
連する更新を配信したときは、クライアント605は、
そのサーバIDをクライアントID 3にマッピングし、クラ
イアントIDに関連するクライアント側オブジェクトを、
それに見合うように更新する。
【0085】別の方法として、クライアント605は、
マッピングテーブル720を一時的に作成しておき、必
要でなくなっとき削除することができる。例えば、ユー
ザは、クライアント605側でオブジェクトを追加する
場合がある。クライアントは、そのオブジェクトにクラ
イアントIDを割り当て、それをオブジェクトテーブル7
25に入れておくことができる。そのあと、クライアン
ト605は、マッピングテーブル720を作成し、割り
当てたクライアントIDをそこに入れておくことができ
る。クライアント605がバックエンドサーバ610と
データを同期化するまで、サーバIDが新オブジェクトと
関連付けられないことがある。クライアント605がバ
ックエンドサーバ610とデータを同期化するとき、ク
ライアント605は、各クライアントIDと関連付けられ
たサーバIDを示した応答を受け取ることがある。各サー
バIDがクライアントIDと関連付けられるとき、クライア
ント605は、オブジェクトテーブル725に入ってい
るオブジェクト関連のクライアントIDを、受信したサー
バIDで置き換えることができる。そのあとは、マッピン
グテーブル720内の各新オブジェクトには、サーバID
が割り当てられているので、マッピングテーブル720
を削除することができる。そのあと、クライアント60
5は、オブジェクトテーブル725内のIDを使用して、
バックエンドサーバ610側のオブジェクトを参照する
ことができる。
【0086】XML1ドキュメント705とXML2ドキュメン
ト710は、同期化が行われるときクライアント605
とプロキシサーバ620間で送信できる例示XMLドキュ
メントの一部である。
【0087】本発明の別の実施形態では、プロキシサー
バ620には、クライアント側IDとサーバ側IDを対応付
けているマッピングテーブル(図示せず)を置いておく
ことが可能になっている。プロキシサーバ620は、ク
ライアント605とバックエンドサーバ610間のメッ
セージをモニタリングし、関係する情報を抽出すること
によってそのマッピングテーブルを維持管理している。
例えば、クライアント605は、オブジェクトを追加す
る更新を、クライアント605がオブジェクトと関連付
けたIDと一緒に送信することができる。その応答とし
て、バックエンドサーバ610は、あるサーバ側IDをそ
のオブジェクトに割り当てたことを通知することができ
る。プロキシサーバ620は、クライアント側IDと割り
当てられたサーバ側IDを使用すると、そのマッピングテ
ーブルを更新することができる。
【0088】さらに、マッピング情報を定期的にプロキ
シサーバ620と共有させると、最新のマッピングを収
めておくことが可能になる。例えば、クライアント60
5は、メッセージ配信システム715から新オブジェク
トをバンド外で受信することがある。クライアント60
5は、オブジェクトと一緒に送られてきたサーバ側IDと
は異なるクライアント側IDを割り当てることがある。そ
のあとで、クライアント605は、クライアント側IDと
要求した変更を送信すると、オブジェクトの更新をバッ
クエンドサーバ610に送ることもあり得る。オブジェ
クトの最初の追加はバンド外で行われたので、プロキシ
サーバ620は、送られてきたクライアントIDに関連す
るサーバIDを知らないことがある。プロキシサーバ62
0に知らせていないマッピングに対応する、取得した新
オブジェクトのリストをとっておき、プロキシサーバ6
20に定期的にマッピング情報を知らせるようにする
と、クライアント605はこの問題を避けることができ
る。
【0089】クライアントとサーバとを対応付けるマッ
ピングを実現するには、本明細書に開示されているプロ
トコルに<Map>...</Map>タグペアを追加しておく必要が
ある。バンド外で送信されるオブジェクトについては、
そのオブジェクトと一緒に送信されるサーバ側IDに関連
するクライアント側IDを、このタグペアの間に入れてお
くことができる。
【0090】別の方法として、クライアント605への
バンド外配信を禁止することも可能である。そのように
すると、マッピング情報の定期的共有は不要になる。む
しろ、プロキシサーバは、クライアント605とバック
エンドサーバ610間のコミュニケーションを処理する
ことによってマッピング情報を取得することが可能にな
る。
【0091】プロキシサーバ620がマッピング情報を
もっているときは、クライアント605は、クライアン
ト側IDをもつオブジェクトを参照することにより、プロ
キシサーバ620を通して更新をバックエンドサーバ6
10に送信することができる。そのあと、プロキシサー
バ620は、マッピングテーブルを使用してクライアン
ト側IDをサーバ側IDに変換することが可能になる。プロ
キシサーバ620が、オブジェクトに関してバックエン
ドサーバ610とのやりとりするとき、オブジェクトに
関連するサーバ側IDを使用することになる。プロキシサ
ーバ620がクライアント605とやりとりするとき
は、オブジェクトに関連するクライアント側IDを使用す
ることになる。マッピングテーブルをプロキシ側にスト
アしておくと、類似のマッピングテーブルのためにクラ
イアントデバイス側で必要になるストレージが不要にな
る。
【0092】図12は、ここで開示しているプロトコル
を使用して同期化を行うときのプロセスを示す論理フロ
ー図である。図11を参照して説明したシステムを参照
しながら、図12を説明することにする。プロセスは、
データがクライアント605のようなクライアントと、
バックエンドサーバ610のようなバックエンドサーバ
との間で同期化される準備状態にあるとき、ブロック8
05から開始される。この時点では、マッピングテーブ
ル720は空であり、クライアント側オブジェクトテー
ブルには、サーバ側ID 100と101に関連するオブジェク
トが入っている。この例の説明の便宜上、クライアント
605とバックエンドサーバ610は、以前にデータを
同期化していないものと想定されている。
【0093】ブロック810では、クライアントは、前
回の同期化以後に行われた変更を収めているXMLドキュ
メントを作成する。クライアントとバックエンドサーバ
は以前にデータを同期化していないので、このXMLドキ
ュメントは、クライアント側で作成され、これから同期
化されるオブジェクトを収めている。例えば、図11を
参照して説明すると、クライアント605は、XML1ドキ
ュメント705に類似のXMLドキュメントを作成してい
る。このドキュメントは、基本的には、クライアント側
ID 1と2に関連するオブジェクトに対応するオブジェク
トを、サーバに追加させることを記述している。そのあ
と、クライアント605は、XML1ドキュメント705を
プロキシサーバ620に送信する。
【0094】ブロック815では、プロキシサーバは、
送られてきたXMLドキュメントを使用してバックエンド
サーバを更新し、ドキュメントの中で要求された情報が
ほかにもあれば、それを要求する。例えば、プロキシサ
ーバ620は、XML1ドュメント705に入っている2オ
ブジェクトに対応する2つの更新をバックエンドサーバ
610に送信する。
【0095】ブロック820では、バックエンドサーバ
は、プロキシサーバから要求された更新を行う。例え
ば、バックエンドサーバ610は、2つのオブジェク
ト、例えば、AとBを追加し、その各々にサーバ側ID、例
えば、102と103を割り当てる。
【0096】ブロック825では、プロキシサーバは、
バックエンドサーバ側にある更新とコマンドを受信す
る。さらに、バックエンドサーバは、バックエンドサー
バが追加した各新オブジェクトのサーバ側IDをプロキシ
サーバに送信するのが代表的である。プロキシサーバ
は、サーバが割り当てた各IDを、クライアントがオブジ
ェクトと関連付けたIDと一緒にプロキシサーバに報告す
ることができる。このようにすると、クライアントは、
新たに追加されたオブジェクトに対する将来の更新を、
サーバがオブジェクトと関連付けたIDを使用して送信で
きるように、そのマッピングテーブルを更新しておくこ
とができる(または一時的マッピングテーブルを破棄
し、割り当てられたサーバ側IDでクライアント側IDを置
き換え、将来の参照に備えてサーバ側IDを使用すること
ができる)。例えば、プロキシサーバ620は、2オブ
ジェクトCとDを、そのオブジェクトに関連付けられたサ
ーバ側ID、例えば、100と101と一緒にバックエンドサー
バ610から受信する。また、プロキシサーバ620
は、以前に追加したクライアント側オブジェクト、例え
ば、AとBのIDを得るために、バックエンドサーバ610
にクエリし、サーバがサーバ側ID 102をオブジェクトA
に、サーバ側ID 103をオブジェクトBに割り当てたこと
を知ることになる。
【0097】ブロック830では、プロキシサーバは、
クライアントが以前に送信した更新に対する応答を、サ
ーバからクライアントに送信されるコマンドおよび/ま
たは更新と一緒に収めているXMLドキュメントを、クラ
イアントに送信するために作成する。例えば、図11に
示すように、プロキシサーバ620は、XML2ドキュメン
ト710に入っている情報を含むXMLドキュメントを作
成している。XML2ドキュメントは、プロキシサーバ62
0からクライアント605に送信されるのが代表的であ
るXMLドキュメントの一部にすぎない。XMLドキュメント
には、特に、サーバ側IDが、最新の更新を送るときクラ
イアントが追加したオブジェクトについてサーバ側IDが
対応付けられているクライアント側IDと一緒に含まれて
いるのが一般的である。XML2ドキュメントを作成したあ
と、プロキシサーバ602は、それをクライアント70
2に送信する。
【0098】ブロック835では、クライアントはXML
ドキュメントを受信し、エラーがある場合その対処方法
を判断し、該当する更新を行う。例えば、例えば、図1
1に示すように、クライアント605はXML2ドキュメン
トを受信し、オブジェクトCとDをクライアント側オブジ
ェクトテーブル725に追加している。クライアント6
05は、サーバ側ID 100-103が、そのIDと対応付けられ
ているクライアント側IDと一緒に入っているマッピング
テーブル720も更新する。
【0099】ブロック840で、処理は終了する。この
時点で、クライアントとバックエンドサーバの間の同期
化は完了している。さらに、クライアントは、サーバ側
IDを使用してオブジェクトの変更が得られるように、そ
のマッピングテーブルを更新している。クライアントが
再び同期化するときは、上述したステップを繰り返すこ
とで行うことができる。
【0100】本発明の種々実施形態は、コンピューティ
ングシステム上で実行されるコンピュータ実装ステップ
またはプログラムモジュールのシーケンスとして、およ
び/またはコンピューティングシステム内の相互接続ロ
ジック回路または回路モジュールとして実現されてい
る。どのように実現されるかは、本発明を実現するコン
ピューティングシステムに要求されるパフォーマンスに
応じた選択の問題である。この分野の精通者ならば、上
述してきた説明から理解されるように、本明細書に開示
されている種々実施形態の機能とオペレーションは、請
求の範囲に明確化されている本発明の精神と範囲から逸
脱しない限り、ソフトウェアでも、ファームウェアで
も、特殊目的デジタルロジックでも、あるいはこれらの
任意の組み合わせでも、実現することが可能である。
【0101】上述してきた仕様、例およびデータは、本
発明を構成するものの製造と使用を詳細に説明したもの
である。本発明は、本発明の精神と範囲から逸脱しない
限り、種々態様に実現することが可能であるので、本発
明の本質は請求の範囲に記載されているとおりである。
【図面の簡単な説明】
【図1】デバイスを同期化するためのプロトコルのシン
タックスの一例を示す図である。
【図2】デバイスを同期化するためのプロトコルのシン
タックスの一例を示す図である。
【図3】デバイスを同期化するためのプロトコルのシン
タックスの一例を示す図である。
【図4】データの同期化のためにクライアントから送信
されるXMLドキュメントの例を示す図である。
【図5】データの同期化のためにクライアントから送信
されるXMLドキュメントの例を示す図である。
【図6】図4と図5に示すXMLドキュメントに対する応
答として送信されるXMLドキュメントの例を示す図であ
る。
【図7】図4と図5に示すXMLドキュメントに対する応
答として送信されるXMLドキュメントの例を示す図であ
る。
【図8】本発明を実現するためのシステムの例を示す図
である。
【図9】モバイルコンピューティングデバイスの機能コ
ンポーネントを示す機能ブロック図である。
【図10】クライアント側とサーバ側のデータを同期化
するように構成されたシステムを示す機能ブロック図で
ある。
【図11】クライアント側とサーバ側のデータを同期化
するように構成されたシステムの詳細を示す機能ブロッ
ク図である。
【図12】本発明に従って開示されているプロトコルを
使用して同期化を実行するためのプロセスを示す論理フ
ロー図である。
【符号の説明】
400 コンピューティングデバイスr 402 処理ユニット 404 システムメモリ 405 オペレーティングシステム 406 プログラムモジュール 407 プログラムデータ 409 取り外し可能ストレージ 410 取り外し不可能ストレージ 412 入力デバイス 414 出力デバイス 416 通信コネクション 418 他のコンピューティングデバイス 500 モビールコンピューティングデバイス 528 ディスプレイ 532 キーパッド 540 LED 562 メモリ 564 OS 566 アプリケーション 568 ストレージ 570 電源 572 無線インタフェースレイヤ 574 オーディオインタフェース 605 クライアント 610 バックエンドサーバ 615 HTTP 620 プロキシサーバ 622 syncエンジン 625 パーサ 630 プロトコルエンジン 635 パーサ 640 ビルダ 715 メッセージ配信システム 705 XML1ドキュメント 710 XML2ドキュメント 720 マッピングテーブル 725 オブジェクトテーブル
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成14年10月16日(2002.10.
16)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正内容】
【発明の名称】 モバイルデバイスを同期化するシ
ステム
フロントページの続き (72)発明者 スティーブン ディー.フラナギン アメリカ合衆国 98075 ワシントン州 サマミッシュ 200 アベニュー サウス イースト 2508 (72)発明者 ブライアン ムーア アメリカ合衆国 98075 ワシントン州 サマミッシュ サウスイースト 22 ウェ イ 26614 (72)発明者 グレッグ フリードマン アメリカ合衆国 98053 ワシントン州 レッドモンド ノースイースト 12 プレ イス 22930 (72)発明者 フランク スティーブン セルディ アメリカ合衆国 98074 ワシントン州 サマミッシュ ウインザー ドライブ サ ウスイースト 410 (72)発明者 サリム アラム アメリカ合衆国 98075 ワシントン州 サマミッシュ サウスイースト 26 スト リート 21226 Fターム(参考) 5B082 GB02 HA03 5B085 BA06 BG02 CA04 CA06

Claims (37)

    【特許請求の範囲】
  1. 【請求項1】 サーバとクライアント間でオブジェクト
    を同期化する際に使用するためのデータ構造がそこに格
    納されているコンピュータ読取可能媒体であって、前記
    データ構造は、 (a) 前記オブジェクトを同期化するためにどのバージョ
    ンのデータ構造が使用されているかを示すバージョン部
    分と、 (b) 前記サーバと前記クライアント間で前記オブジェク
    トを同期化するためにとられる同期化アクションを示す
    コマンド部分と、 (c) 前記同期化アクションが実行されている途中でエラ
    ーが発生した場合、同期化アクションが正常に完了しな
    かったことを示す応答部分と、を含むことを特徴とする
    コンピュータ読取可能媒体。
  2. 【請求項2】 請求項1に記載のコンピュータ読取可能
    媒体において、前記コマンド部分はオブジェクトIDをも
    つフェッチ部分を含み、該フェッチ部分は、該オブジェ
    クトIDに関連するオブジェクトを前記サーバから前記ク
    ライアントへ送信させるべきであることを示しているこ
    とを特徴とするコンピュータ読取可能媒体。
  3. 【請求項3】 請求項2に記載のコンピュータ読取可能
    媒体において、前記フェッチ部分は、前記オブジェクト
    だけが送信させられるべきであることを示していること
    を特徴とするコンピュータ読取可能媒体。
  4. 【請求項4】 請求項1に記載のコンピュータ読取可能
    媒体において、前記コマンド部分は、前記サーバに送信
    させるオブジェクトの最大数を示すウィンドウサイズ部
    分を含むことを特徴とするコンピュータ読取可能媒体。
  5. 【請求項5】 請求項1に記載のコンピュータ読取可能
    媒体において、前記コマンド部分は、前記サーバから前
    記クライアントに送信できるオブジェクトがほかにもあ
    ることを示す残余 (more available) 部分含むことを特
    徴とするコンピュータ読取可能媒体。
  6. 【請求項6】 請求項1に記載のコンピュータ読取可能
    媒体において、さらに、別のデータ構造を含むオプショ
    ン部分を含んでいることを特徴とするコンピュータ読取
    可能媒体。
  7. 【請求項7】 請求項6に記載のコンピュータ読取可能
    媒体において、前記別のデータ構造は、前記クライアン
    トと前記サーバ間で追加コマンドを送信するために使用
    されることを特徴とするコンピュータ読取可能媒体。
  8. 【請求項8】 請求項6に記載のコンピュータ読取可能
    媒体において、前記別のデータ構造は、前記クライアン
    トと前記サーバ間でデータを送信するために使用される
    ことを特徴とするコンピュータ読取可能媒体。
  9. 【請求項9】 請求項1に記載のコンピュータ読取可能
    媒体において、前記クライアントが前記サーバに対し更
    新を要求した場合、該サーバに更新を当該クライアント
    へ送信させるべきことを示す変更取得 (get changes)
    部分を、さらに含んでいることを特徴とするコンピュー
    タ読取可能媒体。
  10. 【請求項10】 請求項1に記載のコンピュータ読取可
    能媒体において、前記クライアントが追加すべきオブジ
    ェクトを前記サーバに送信した場合、該サーバがどのID
    をそのオブジェクトと関連付けたかを示す応答部分を、
    さらに含んでいることを特徴とするコンピュータ読取可
    能媒体。
  11. 【請求項11】 請求項10に記載のコンピュータ読取
    可能媒体において、前記応答部分は、前記クライアント
    が前記オブジェクトと一緒に送信したIDを、さらに示し
    ていることを特徴とするコンピュータ読取可能媒体。
  12. 【請求項12】 請求項1に記載のコンピュータ読取可
    能媒体において、前記オブジェクトは、同期化される複
    数の他のデータと関連付けられていることを特徴とする
    コンピュータ読取可能媒体。
  13. 【請求項13】 請求項1に記載のコンピュータ読取可
    能媒体において、前記データ構造は、他のデータ内に埋
    め込まれていることを特徴とするコンピュータ読取可能
    媒体。
  14. 【請求項14】 請求項1に記載のコンピュータ読取可
    能媒体において、前記データ構造は、Eメールに埋め込
    まれていることを特徴とするコンピュータ読取可能媒
    体。
  15. 【請求項15】 請求項1に記載のコンピュータ読取可
    能媒体において、前記データ構造は、ハイパテキスト転
    送プロトコル (HTTP) を使用して送信されることを特徴
    とするコンピュータ読取可能媒体。
  16. 【請求項16】 請求項1に記載のコンピュータ読取可
    能媒体において、前記コマンド部分は、オブジェクトと
    関連付けられたデータを収めているデータ部分を含むこ
    とを特徴とするコンピュータ読取可能媒体。
  17. 【請求項17】 請求項1に記載のコンピュータ読取可
    能媒体において、さらに、前記同期化アクションを実行
    するステータスを示すステータス部分を含んでいること
    を特徴とするコンピュータ読取可能媒体。
  18. 【請求項18】 請求項1に記載のコンピュータ読取可
    能媒体において、前記データ構造は、さらに、 (d) 前記サーバと前記クライアント間で別のオブジェ
    クトを同期化するためにとられる別の同期化アクション
    を示す別のコマンド部分と、 (e) 前記別の同期化アクションが実行されている途中で
    エラーが発生した場合、前記別の同期化アクションが正
    常に完了しなかったことを示す別の応答部分と、を含む
    ことを特徴とするコンピュータ読取可能媒体。
  19. 【請求項19】 請求項18に記載のコンピュータ読取
    可能媒体において、前記データ構造は、さらに、 (f) 前記クライアントが情報を要求した場合、該要求
    された情報を収めている情報応答部分を含んでいること
    を特徴とするコンピュータ読取可能媒体。
  20. 【請求項20】 請求項1に記載のコンピュータ読取可
    能媒体において、データ構造は、さらに、 (g) 前記クライアントが情報を要求した場合、該要求さ
    れた情報を収めている情報応答部分を含んでいることを
    特徴とするコンピュータ読取可能媒体。
  21. 【請求項21】 オブジェクトを同期化するシステムで
    あって、該システムは、 (a) データ構造を受信するように構成されたサーバであ
    って、該データ構造は、 (i) 前記オブジェクトを同期化するためにどのバージョ
    ンのデータ構造が使用されているかを示すバージョン部
    分と、 (ii) 前記オブジェクトを同期化するためにとられる同
    期化アクションを示すコマンド部分とを含んでいるもの
    と、 (b) 前記サーバに結合されたモバイルデバイスとを備え
    ていて、該モバイルデバイスは、前記オブジェクトを同
    期化するために前記データ構造を前記サーバに送信する
    ように構成されていることを特徴とするシステム。
  22. 【請求項22】 請求項21に記載のシステムにおい
    て、前記サーバは、さらに、別のデータ構造を送信する
    ように構成されていて、該別のデータ構造は、 (i) 前記オブジェクトを同期化するためにどのバージョ
    ンの別データ構造が使用されているかを示す第2のバー
    ジョン部分と、 (ii) 前記データ構造を処理している途中で前記同期化
    アクションに関連するエラーが発生した場合、そのエラ
    ーを示す応答部分と、を含んでいることを特徴とするシ
    ステム。
  23. 【請求項23】 請求項22に記載のシステムにおい
    て、エラーが発生しなかった場合、前記データ構造は前
    記応答部分が省かれていることを特徴とするシステム。
  24. 【請求項24】 請求項22に記載のシステムにおい
    て、前記別のデータ構造は、さらに、 (iii) 前記モバイルデバイスが情報を要求した場合、該
    要求された情報を収めている情報応答部分を含んでいる
    ことを特徴とするシステム。
  25. 【請求項25】 請求項23に記載のシステムにおい
    て、前記別のデータ構造は、さらに、前記サーバと前記
    モバイルデバイス間で別のオブジェクトを同期化するた
    めにとられる別の同期化アクションを示すコマンド部分
    を含んでいることを特徴とするシステム。
  26. 【請求項26】 請求項24に記載のシステムにおい
    て、前記サーバは、さらに、別のサーバに置かれたデー
    タを、前記データ構造を使用して更新するように構成さ
    れていることを特徴とするシステム。
  27. 【請求項27】 請求項26に記載のシステムにおい
    て、前記サーバはプロキシサーバを含んでいることを特
    徴とするシステム。
  28. 【請求項28】 請求項27に記載のシステムにおい
    て、前記プロキシサーバは、前記モバイルデバイスに置
    かれたオブジェクトを、前記別のサーバに置かれたオブ
    ジェクトと関連付けることを特徴とするシステム。
  29. 【請求項29】 データストアとコンピュータ実行可能
    命令を備えたモバイルデバイスであって、該コンピュー
    タ実行可能命令は、 バージョンID部分と、 コマンド部分であって、該コマンド部分は、サーバシス
    テムに置かれたデータを、前記データストアに置かれた
    データと同期化させるためにサーバに対して行われる変
    更を定義している情報を含んでいるものと、 を含む部分をもつ同期化メッセージをフォーマッティン
    グし、 該フォーマッティングされたメッセージを前記サーバに
    送信すること、を含んでいることを特徴とするモバイル
    デバイス。
  30. 【請求項30】 請求項29に記載のモバイルデバイス
    において、前記同期化メッセージは、さらに、 前記モバイルデバイスが前記データストアを更新してい
    る途中でエラーが発生した場合、更新が正常に完了しな
    かったことを示す応答部分を含むことを特徴とするモバ
    イルデバイス。
  31. 【請求項31】 請求項30に記載のモバイルデバイス
    において、前記同期化メッセージは、さらに、 前記モバイルデバイスが情報を要求した場合、該要求さ
    れた情報を収めている情報応答部分を含むことを特徴と
    するモバイルデバイス。
  32. 【請求項32】 請求項30に記載のモバイルデバイス
    において、前記コマンド部分は、オブジェクトIDをもつ
    フェッチ部分を含み、該フェッチ部分は、該オブジェク
    トIDに関連するオブジェクトを前記サーバから前記モバ
    イルデバイスへ送信させるべきことを示していることを
    特徴とするモバイルデバイス。
  33. 【請求項33】 請求項30に記載のモバイルデバイス
    において、前記コマンド部分は、前記サーバに送信させ
    るオブジェクトの最大数を示すウィンドウサイズ部分を
    含むことを特徴とするモバイルデバイス。
  34. 【請求項34】 データストアとコンピュータ実行可能
    命令を備えたサーバであって、該コンピュータ実行可能
    命令は、 別のバージョンID部分と、 別のコマンド部分であって、前記データストアを、モバ
    イルデバイスに置かれたデータと同期化させるために前
    記サーバで行われる変更を定義している情報とを含んで
    いるものと、 を含んでいる部分をもつ更新同期化メッセージを受信
    し、 バージョンID部分と、 コマンド部分であって、前記データストアを、前記モバ
    イルデバイスに置かれたデータと同期化させるために該
    モバイルデバイスで行われる変更を定義している情報を
    含んでいるものと、 前記更新同期化メッセージを処理している途中でエラー
    が発生した場合、同期化が正常に完了しなかったことを
    示す応答部分と、 を含む部分をもつ応答同期化メッセージを送信する、こ
    とを含むことを特徴とするサーバ。
  35. 【請求項35】 請求項34に記載のサーバにおいて、
    さらに、 前記更新同期化メッセージを構文解析するパーサと、 前記応答同期化メッセージを生成するジェネレータと、
    を含んでいることを特徴とするサーバ。
  36. 【請求項36】 請求項35に記載のサーバにおいて、
    前記更新同期化メッセージと前記応答同期化メッセージ
    の各々は、マークアップ言語を使用して符号化されてい
    ることを特徴とするサーバ。
  37. 【請求項37】 請求項36に記載のサーバにおいて、
    前記マークアップ言語は拡張可能マークアップ言語 (XM
    L) であることを特徴とするサーバ。
JP2002236525A 2001-08-14 2002-08-14 モバイルデバイスを同期化するシステム Expired - Fee Related JP3987396B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/930,659 2001-08-14
US09/930,659 US7149813B2 (en) 2001-08-14 2001-08-14 Method and system for synchronizing mobile devices

Publications (2)

Publication Number Publication Date
JP2003228505A true JP2003228505A (ja) 2003-08-15
JP3987396B2 JP3987396B2 (ja) 2007-10-10

Family

ID=25459583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002236525A Expired - Fee Related JP3987396B2 (ja) 2001-08-14 2002-08-14 モバイルデバイスを同期化するシステム

Country Status (5)

Country Link
US (1) US7149813B2 (ja)
EP (1) EP1291770A3 (ja)
JP (1) JP3987396B2 (ja)
CN (1) CN100361086C (ja)
TW (1) TW594582B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322250A (ja) * 2004-05-05 2005-11-17 Microsoft Corp 電子装置間でデータを同期させる方法およびシステム
JP2005332388A (ja) * 2004-05-03 2005-12-02 Microsoft Corp ピア・ツー・ピア規則に基づいたプル型自律的同期化システムを実施するためのシステムおよび方法
JP2006040094A (ja) * 2004-07-29 2006-02-09 Ns Solutions Corp データ処理装置、データ処理システム、データ処理方法及びそのプログラム
JP2007524933A (ja) * 2004-05-20 2007-08-30 ビーイーエイ システムズ, インコーポレイテッド 随時接続アプリケーションサーバー
US7587496B2 (en) 2004-09-17 2009-09-08 Ricoh Company, Ltd. Transfer device, distributed processing system, transfer device control method, program, and recording medium
JP2010517165A (ja) * 2007-01-26 2010-05-20 マイクロソフト コーポレーション モバイルデバイス管理プロキシシステム
JP2012133795A (ja) * 2005-08-15 2012-07-12 Microsoft Corp 部分的アイテム変更の追跡および同期化

Families Citing this family (276)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689721B2 (en) * 1998-05-29 2010-03-30 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
JP2001093226A (ja) 1999-09-21 2001-04-06 Sony Corp 情報通信システムおよび方法、ならびに、情報通信装置および方法
JP4507319B2 (ja) 1999-12-17 2010-07-21 ソニー株式会社 情報処理装置、情報処理方法、プログラム、および記録媒体、端末装置、並びに、システムおよびシステムの方法
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
TW579463B (en) * 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
US7962622B2 (en) 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7596565B2 (en) * 2001-08-07 2009-09-29 Good Technology System and method for maintaining wireless file folders at a wireless device
US7243163B1 (en) * 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US7743119B2 (en) 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
JP4936037B2 (ja) * 2001-08-31 2012-05-23 ソニー株式会社 情報処理装置および方法、並びにプログラム
US20030167318A1 (en) * 2001-10-22 2003-09-04 Apple Computer, Inc. Intelligent synchronization of media player with host computer
US6934812B1 (en) * 2001-10-22 2005-08-23 Apple Computer, Inc. Media player with instant play capability
EP1440402A1 (en) * 2001-10-22 2004-07-28 Apple Computer, Inc. Intelligent synchronization for a media player
US7317699B2 (en) 2001-10-26 2008-01-08 Research In Motion Limited System and method for controlling configuration settings for mobile communication devices and services
JP4279499B2 (ja) * 2002-03-01 2009-06-17 シャープ株式会社 情報処理装置
US6721871B2 (en) * 2002-04-02 2004-04-13 Nokia Corporation Method and apparatus for synchronizing data stores with respect to changes in folders
US7433546B2 (en) * 2004-10-25 2008-10-07 Apple Inc. Image scaling arrangement
US7680849B2 (en) 2004-10-25 2010-03-16 Apple Inc. Multiple media type synchronization between host computer and media device
US9412417B2 (en) * 2002-04-05 2016-08-09 Apple Inc. Persistent group of media items for a media device
US8151259B2 (en) 2006-01-03 2012-04-03 Apple Inc. Remote content updates for portable media devices
US9715500B2 (en) * 2004-04-27 2017-07-25 Apple Inc. Method and system for sharing playlists
US8150937B2 (en) * 2004-10-25 2012-04-03 Apple Inc. Wireless synchronization between media player and host device
US7827259B2 (en) * 2004-04-27 2010-11-02 Apple Inc. Method and system for configurable automatic media selection
US7797446B2 (en) * 2002-07-16 2010-09-14 Apple Inc. Method and system for updating playlists
US7447799B2 (en) * 2002-04-24 2008-11-04 Good Technology, Inc. System and method for automatically updating a wireless device
US7076567B1 (en) * 2002-04-25 2006-07-11 Oracle International Corporation Simplified application object data synchronization for optimized data storage
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US7743065B2 (en) * 2002-06-27 2010-06-22 Siebel Systems, Inc. System and method for cross-referencing information in an enterprise system
ATE376741T1 (de) * 2002-06-28 2007-11-15 Nokia Corp Verfahren und einrichtung zum abrufen von datenspeicherzugriffsinformationen
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
US7166791B2 (en) * 2002-07-30 2007-01-23 Apple Computer, Inc. Graphical user interface and methods of use thereof in a multimedia player
US7956272B2 (en) 2002-07-30 2011-06-07 Apple Inc. Management of files in a personal communication device
EP1418732B1 (en) * 2002-09-19 2016-01-06 Ricoh Company, Ltd. Communication system implementing a plurality of communication apparatuses as communication client and communication server for exchanging operation requests and operation responses
US7787489B2 (en) * 2002-10-07 2010-08-31 Oracle International Corporation Mobile data distribution
US7359991B2 (en) * 2002-11-05 2008-04-15 Microsoft Corporation Folder synchronization
US7111039B2 (en) 2002-11-20 2006-09-19 Microsoft Corporation System and method for using packed compressed buffers for improved client server communications
US7035879B2 (en) * 2002-12-26 2006-04-25 Hon Hai Precision Ind. Co., Ltd. System and method for synchronizing data of wireless devices
US7386590B2 (en) 2003-01-03 2008-06-10 Microsoft Corporation System and method for improved synchronization between a server and a client
US7620688B2 (en) * 2003-01-03 2009-11-17 Microsoft Corporation Progress mode for electronic mail component
US7366760B2 (en) 2003-01-03 2008-04-29 Microsoft Corporation System and method for improved client server communications of email messages
US7246356B1 (en) 2003-01-29 2007-07-17 Adobe Systems Incorporated Method and system for facilitating comunications between an interactive multimedia client and an interactive multimedia communication server
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7287256B1 (en) 2003-03-28 2007-10-23 Adobe Systems Incorporated Shared persistent objects
US7724716B2 (en) 2006-06-20 2010-05-25 Apple Inc. Wireless communication system
US7831199B2 (en) * 2006-01-03 2010-11-09 Apple Inc. Media data exchange, transfer or delivery for portable electronic devices
US8200775B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US8880735B2 (en) * 2003-09-05 2014-11-04 Sierra Wireless, Inc. Mail server based application record synchronization
US7613835B2 (en) * 2003-09-08 2009-11-03 Sony Corporation Generic API for synchronization
US7925790B2 (en) 2003-09-17 2011-04-12 Sony Corporation Middleware filter agent between server and PDA
US7276098B2 (en) * 2003-10-17 2007-10-02 Kx Technologies, Llc Tangential in-line air filter
US20070180127A1 (en) * 2003-11-11 2007-08-02 Nokia Corporation Preconfigured syncml profile categories
US20060161778A1 (en) * 2004-03-29 2006-07-20 Nokia Corporation Distinguishing between devices of different types in a wireless local area network (WLAN)
US6944636B1 (en) 2004-04-30 2005-09-13 Microsoft Corporation Maintaining time-date information for syncing low fidelity devices
US7342555B2 (en) 2004-04-30 2008-03-11 Microsoft Corporation Detecting low fidelity sync data
US7730167B2 (en) 2004-04-30 2010-06-01 Microsoft Corporation Methods and systems for halting synchronization loops in a distributed system
RU2367008C2 (ru) 2004-04-30 2009-09-10 Майкрософт Корпорейшн Поддержание информации времени-даты для синхронизации устройств с низкой достоверностью данных
US8797926B2 (en) 2004-06-04 2014-08-05 Apple Inc. Networked media station
US10972536B2 (en) 2004-06-04 2021-04-06 Apple Inc. System and method for synchronizing media presentation at multiple recipients
US8443038B2 (en) 2004-06-04 2013-05-14 Apple Inc. Network media device
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US7269609B2 (en) 2004-06-28 2007-09-11 Microsoft Corporation Preserving memory resources by limiting time-date information for a subset of properties
US7284021B2 (en) 2004-06-28 2007-10-16 Microsoft Corporation Determining when a low fidelity property value has changed during a SYNC
US8261246B1 (en) 2004-09-07 2012-09-04 Apple Inc. Method and system for dynamically populating groups in a developer environment
US7693994B2 (en) * 2004-09-17 2010-04-06 Ricoh Company, Ltd. Intermediary apparatus, distributed processing system, data-transfer method, program and recording medium
US20060075100A1 (en) * 2004-09-28 2006-04-06 Nokia Corporation System, device, software and method for providing enhanced UPnP support on devices
US7706637B2 (en) * 2004-10-25 2010-04-27 Apple Inc. Host configured for interoperation with coupled portable media player device
US7536565B2 (en) 2005-01-07 2009-05-19 Apple Inc. Techniques for improved playlist processing on media devices
US11314378B2 (en) 2005-01-07 2022-04-26 Apple Inc. Persistent group of media items for a media device
US7958441B2 (en) * 2005-01-07 2011-06-07 Apple Inc. Media management for groups of media items
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
US20080195483A1 (en) * 2005-02-01 2008-08-14 Moore James F Widget management systems and advertising systems related thereto
US8700738B2 (en) * 2005-02-01 2014-04-15 Newsilike Media Group, Inc. Dynamic feed generation
US8200700B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US20070106754A1 (en) * 2005-09-10 2007-05-10 Moore James F Security facility for maintaining health care data pools
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US20080046471A1 (en) * 2005-02-01 2008-02-21 Moore James F Calendar Synchronization using Syndicated Data
US20070050446A1 (en) * 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
KR20060089805A (ko) * 2005-02-04 2006-08-09 삼성전자주식회사 휴대용 전화번호부 저장 장치와 이를 이용한 전화 발신방법 및 그 이동 전화기
US8572026B2 (en) * 2005-02-06 2013-10-29 Oracle International Corporation Data synchronisation across multiple data storages when processing transactions received on a network
DE102005016690A1 (de) * 2005-04-11 2006-10-12 Siemens Ag Synchronisation von Daten
EP3654586B1 (en) 2005-04-18 2021-11-24 BlackBerry Limited Method for providing wireless application privilege management
US8300841B2 (en) 2005-06-03 2012-10-30 Apple Inc. Techniques for presenting sound effects on a portable media player
US8626128B2 (en) 2011-04-07 2014-01-07 Microsoft Corporation Enforcing device settings for mobile devices
US8010997B2 (en) * 2005-06-30 2011-08-30 Microsoft Corporation Enforcing device settings for mobile devices
US7590772B2 (en) 2005-08-22 2009-09-15 Apple Inc. Audio status information for a portable electronic device
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7930369B2 (en) 2005-10-19 2011-04-19 Apple Inc. Remotely configured media device
US8015319B2 (en) * 2005-10-27 2011-09-06 Huawei Technologies Co., Ltd. Method, system, client and server for implementing data sync
JP4548307B2 (ja) * 2005-10-31 2010-09-22 ソニー株式会社 分離型処理装置及びそのソフトウエアの版更新方法
US8161159B1 (en) 2005-10-31 2012-04-17 Adobe Systems Incorporated Network configuration with smart edge servers
US7945615B1 (en) 2005-10-31 2011-05-17 Adobe Systems Incorporated Distributed shared persistent objects
US8719397B2 (en) * 2005-11-03 2014-05-06 Emoze Ltd. Method and system for email and PIM synchronization and updating
US7747566B2 (en) * 2005-11-23 2010-06-29 Research In Motion Limited Method and apparatus for synchronizing databases connected by wireless interface
US8654993B2 (en) 2005-12-07 2014-02-18 Apple Inc. Portable audio device providing automated control of audio volume parameters for hearing protection
WO2007070591A2 (en) * 2005-12-13 2007-06-21 Siemens Medical Solutions Usa, Inc. A system for configuring a data exchange and format conversion system
US8255640B2 (en) * 2006-01-03 2012-08-28 Apple Inc. Media device with intelligent cache utilization
US7673238B2 (en) * 2006-01-05 2010-03-02 Apple Inc. Portable media device with video acceleration capabilities
CN101009516B (zh) * 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
US7848527B2 (en) 2006-02-27 2010-12-07 Apple Inc. Dynamic power management in a portable media delivery system
US8769033B2 (en) * 2006-03-03 2014-07-01 Microsoft Corporation Identifying changes to media-device contents
US9137309B2 (en) 2006-05-22 2015-09-15 Apple Inc. Calibration techniques for activity sensing devices
US20070270663A1 (en) * 2006-05-22 2007-11-22 Apple Computer, Inc. System including portable media player and physiologic data gathering device
US7643895B2 (en) 2006-05-22 2010-01-05 Apple Inc. Portable media device with workout support
US20070271116A1 (en) * 2006-05-22 2007-11-22 Apple Computer, Inc. Integrated media jukebox and physiologic data handling application
US7792792B2 (en) 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US8073984B2 (en) * 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
US8358273B2 (en) * 2006-05-23 2013-01-22 Apple Inc. Portable media device with power-managed display
US7475078B2 (en) 2006-05-30 2009-01-06 Microsoft Corporation Two-way synchronization of media data
US20080046369A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Password Management for RSS Interfaces
US20080046437A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Manual Conflict Resolution for Background Synchronization
US7813715B2 (en) * 2006-08-30 2010-10-12 Apple Inc. Automated pairing of wireless accessories with host devices
US7913297B2 (en) * 2006-08-30 2011-03-22 Apple Inc. Pairing of wireless devices using a wired medium
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8112508B1 (en) * 2006-09-08 2012-02-07 Dell Products L.P. Delivering data from device management services to devices using bulletin system
US8090130B2 (en) 2006-09-11 2012-01-03 Apple Inc. Highly portable media devices
US8341524B2 (en) * 2006-09-11 2012-12-25 Apple Inc. Portable electronic device with local search capabilities
US7729791B2 (en) 2006-09-11 2010-06-01 Apple Inc. Portable media playback device including user interface event passthrough to non-media-playback processing
US8631088B2 (en) 2007-01-07 2014-01-14 Apple Inc. Prioritized data synchronization with host device
US20080168185A1 (en) * 2007-01-07 2008-07-10 Robbin Jeffrey L Data Synchronization with Host Device in Accordance with Synchronization Preferences
US8850140B2 (en) 2007-01-07 2014-09-30 Apple Inc. Data backup for mobile device
US10083184B2 (en) * 2007-01-07 2018-09-25 Apple Inc. Widget synchronization in accordance with synchronization preferences
US7738503B2 (en) * 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US7589629B2 (en) * 2007-02-28 2009-09-15 Apple Inc. Event recorder for portable media device
US20080215664A1 (en) * 2007-03-01 2008-09-04 Microsoft Corporation Occasionally connected edge application architecture
US7698101B2 (en) * 2007-03-07 2010-04-13 Apple Inc. Smart garment
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
KR101570662B1 (ko) * 2007-06-29 2015-11-23 샌디스크 테크놀로지스, 인코포레이티드 비휘발성 메모리 저장 장치와 통신하기 위한 방법과 시스템
US20090043867A1 (en) * 2007-08-06 2009-02-12 Apple Inc. Synching data
US8046369B2 (en) 2007-09-04 2011-10-25 Apple Inc. Media asset rating system
JP5090149B2 (ja) * 2007-12-13 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースを管理する方法、装置及びシステム
US20090164667A1 (en) * 2007-12-21 2009-06-25 General Instrument Corporation Synchronizing of Personal Content
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8031694B2 (en) * 2008-02-08 2011-10-04 Amdocs Software Systems Limited System and method for formatting data for a mobile communication device and transmitting the data to the mobile communication device
US8081963B2 (en) 2008-02-12 2011-12-20 Microsoft Corporation Utilizing mobile device functionality from remote computers
US7747784B2 (en) * 2008-03-04 2010-06-29 Apple Inc. Data synchronization protocol
US7991740B2 (en) 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
CN101426026B (zh) * 2008-09-17 2013-07-03 北京六维世纪网络技术有限公司 一种多服务器间数据同步的方法及系统
US8112537B2 (en) * 2008-09-29 2012-02-07 Apple Inc. Trickle sync protocol
US8051287B2 (en) * 2008-10-15 2011-11-01 Adobe Systems Incorporated Imparting real-time priority-based network communications in an encrypted communication session
ES2530205T3 (es) * 2008-11-18 2015-02-27 Telefónica Germany GmbH & Co. OHG Sistema de almacenamiento de datos
US8812699B2 (en) * 2008-12-04 2014-08-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for data synchronization in a multi-path environment
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
JP2010140256A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 情報処理装置および診断結果通知方法
JP5003701B2 (ja) * 2009-03-13 2012-08-15 ソニー株式会社 サーバ装置及び設定情報の共有化方法
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US8166191B1 (en) 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8510373B2 (en) * 2010-08-30 2013-08-13 Sap Ag Data synchronization and disablement of dependent data fields
KR101697979B1 (ko) * 2010-11-23 2017-01-19 삼성전자주식회사 네트워크로 연결 가능한 기기에서 데이터를 동기화하기 위한 장치 및 방법
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
CN103392170B (zh) * 2011-02-24 2016-10-12 国际商业机器公司 系统之间的数据同步
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8533275B2 (en) 2011-08-19 2013-09-10 Microsoft Corporation Synchronizing conversation structures in web-based email systems
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10621206B2 (en) 2012-04-19 2020-04-14 Full Circle Insights, Inc. Method and system for recording responses in a CRM system
US10599620B2 (en) * 2011-09-01 2020-03-24 Full Circle Insights, Inc. Method and system for object synchronization in CRM systems
KR101300259B1 (ko) * 2011-10-10 2013-08-23 엘지전자 주식회사 공기 조화기, 이를 포함한 공기 조화 시스템 및 실외기 제어 방법
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
CN103327037B (zh) * 2012-03-20 2017-09-29 中兴通讯股份有限公司 数据同步方法及装置
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
KR20150104615A (ko) 2013-02-07 2015-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
CN105027197B (zh) 2013-03-15 2018-12-14 苹果公司 训练至少部分语音命令系统
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3008641A1 (en) 2013-06-09 2016-04-20 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
AU2014278595B2 (en) 2013-06-13 2017-04-06 Apple Inc. System and method for emergency calls initiated by voice command
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
US10216903B2 (en) * 2013-11-21 2019-02-26 Oracle International Corporation Medical adherence tracking framework
US9544373B2 (en) 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
US10067652B2 (en) * 2013-12-24 2018-09-04 Dropbox, Inc. Providing access to a cloud based content management system on a mobile device
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
TWI566107B (zh) 2014-05-30 2017-01-11 蘋果公司 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US11036919B2 (en) 2015-03-02 2021-06-15 Citrix Systems, Inc. Enabling file attachments in calendar events
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US11297369B2 (en) 2018-03-30 2022-04-05 Apple Inc. Remotely controlling playback devices
US10783929B2 (en) 2018-03-30 2020-09-22 Apple Inc. Managing playback groups
US10993274B2 (en) 2018-03-30 2021-04-27 Apple Inc. Pairing devices by proxy
US10614857B2 (en) 2018-07-02 2020-04-07 Apple Inc. Calibrating media playback channels for synchronized presentation
CN110473540B (zh) * 2019-08-29 2022-05-31 京东方科技集团股份有限公司 语音交互方法及系统、终端设备、计算机设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553083B1 (en) 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
JP2000020370A (ja) * 1998-06-29 2000-01-21 Sharp Corp データ同期処理装置
US6131096A (en) * 1998-10-05 2000-10-10 Visto Corporation System and method for updating a remote database in a network
US20030069874A1 (en) * 1999-05-05 2003-04-10 Eyal Hertzog Method and system to automate the updating of personal information within a personal information management application and to synchronize such updated personal information management applications
US6839564B2 (en) * 2001-04-25 2005-01-04 Nokia Corporation Synchronization of database data

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005332388A (ja) * 2004-05-03 2005-12-02 Microsoft Corp ピア・ツー・ピア規則に基づいたプル型自律的同期化システムを実施するためのシステムおよび方法
JP2005322250A (ja) * 2004-05-05 2005-11-17 Microsoft Corp 電子装置間でデータを同期させる方法およびシステム
JP2007524933A (ja) * 2004-05-20 2007-08-30 ビーイーエイ システムズ, インコーポレイテッド 随時接続アプリケーションサーバー
JP2006040094A (ja) * 2004-07-29 2006-02-09 Ns Solutions Corp データ処理装置、データ処理システム、データ処理方法及びそのプログラム
JP4555624B2 (ja) * 2004-07-29 2010-10-06 新日鉄ソリューションズ株式会社 データ処理システム、データ処理方法及びそのプログラム
US7587496B2 (en) 2004-09-17 2009-09-08 Ricoh Company, Ltd. Transfer device, distributed processing system, transfer device control method, program, and recording medium
JP2012133795A (ja) * 2005-08-15 2012-07-12 Microsoft Corp 部分的アイテム変更の追跡および同期化
US9524329B2 (en) 2005-08-15 2016-12-20 Microsoft Technology Licensing, Llc Partial item change tracking and synchronization
JP2010517165A (ja) * 2007-01-26 2010-05-20 マイクロソフト コーポレーション モバイルデバイス管理プロキシシステム
JP4875756B2 (ja) * 2007-01-26 2012-02-15 マイクロソフト コーポレーション モバイルデバイス管理プロキシシステム

Also Published As

Publication number Publication date
EP1291770A2 (en) 2003-03-12
TW594582B (en) 2004-06-21
US20030046434A1 (en) 2003-03-06
CN1407454A (zh) 2003-04-02
CN100361086C (zh) 2008-01-09
US7149813B2 (en) 2006-12-12
JP3987396B2 (ja) 2007-10-10
EP1291770A3 (en) 2006-07-19

Similar Documents

Publication Publication Date Title
JP3987396B2 (ja) モバイルデバイスを同期化するシステム
JP5753596B2 (ja) データ同期プロトコル
US7584186B2 (en) System and method for resolving conflicts detected during a synchronization
US6941326B2 (en) Accounting for update notifications in synchronizing data that may be represented by different data structures
US7756143B2 (en) Pushing documents to wireless data devices
EP1271318B1 (en) System and method for translating synchronization information between two networks based on different synchronization protocols
JP4829316B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
AU2015201041A1 (en) Data synchronization protocol
AU2012201747B2 (en) Data synchronization protocol

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060915

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061215

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070712

R150 Certificate of patent or registration of utility model

Ref document number: 3987396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110720

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110720

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120720

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120720

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130720

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees