(57)【特許請求の範囲】
【請求項１】
データの同期を取り合う第１通信装置および第２通信装置を備える通信システムにおけるデータ同期方法であって、
前記第１通信装置の第１解析手段が、前記第１通信装置に入力された入力データが所定のデータ集合体であるオブジェクトを一つ以上含む構造体であるか否かを、雛形格納手段に格納されたオブジェクトの雛形を元に解析する解析ステップと、
前記第１通信装置の第１抽出手段が、前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出ステップと、
前記第１通信装置の第１データ格納手段が、前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納するデータ格納ステップと、
前記第１通信装置の第１ログ格納手段が、前記構造体特定情報と前記一つ以上のオブジェクトとが前記第１データ格納手段に新たに格納された旨を表す第１ログ情報を格納するログ格納ステップと、
前記第１通信装置の第１同期手段が、前記第１通信装置の前記第１ログ格納手段に格納された前記第１ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が第１通信装置の第１データ格納手段で発生した旨を判断する第１ステップと、
前記第１同期手段が、当該変化のあった第１データおよび前記第１データを特定する第１特定情報を第１同期データとして前記第１データ格納手段よりオブジェクト単位で抽出する第２ステップと、
前記第１通信装置の第１通信手段が、当該抽出した第１同期データを前記第２通信装置の第２通信手段に送信する第３ステップと、
前記第２通信手段が、前記第１同期データを前記第１通信手段より受信する第４ステップと、
前記第２通信装置の第２判断手段が、前記第１同期データに含まれた前記第１特定情報に基づいて、前記第１データを前記第２通信装置の第２データ格納手段に追加する追加動作、または前記第２データ格納手段に既に格納されており且つ前記第１特定情報に基づいて特定される第２既存データを前記第１データに書き換える変更動作、または前記第２既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第５ステップと、
前記第２通信装置の第２格納制御手段が、前記第２判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第６ステップと、
を備えることを特徴とするデータ同期方法。
【請求項２】
前記第２通信手段が、前記第１同期データに対するデータ同期が実行された旨を表す第２確認信号を前記第１通信手段に送信する第７ステップと、
前記第１通信手段が、前記第２確認信号を前記第２通信手段より受信する第８ステップと、
前記第１ログ格納手段が、前記第２確認信号に基づいて、前記第１ログ情報を削除する第９ステップと、
を更に備えることを特徴とする請求項１に記載のデータ同期方法。
【請求項３】
前記第２通信装置の第２同期手段が、前記第２通信装置の第２ログ格納手段に格納された第２ログ情報を参照して、前記オブジェクト単位でのデータの変化が前記第２データ格納手段で発生した旨を判断する第１０ステップと、
前記第２同期手段が、当該変化のあった第２データおよび前記第２データを特定する第２特定情報を第２同期データとして前記第２データ格納手段よりオブジェクト単位で抽出する第１１ステップと、
前記第２通信手段が、当該抽出した第２同期データを前記第１通信手段に送信する第１２ステップと、
前記第１通信手段が、前記第２同期データを前記第２通信手段より受信する第１３ステップと、
前記第１通信装置の第１判断手段が、前記第２同期データに含まれた前記第２特定情報に基づいて、前記第２データを前記第１データ格納手段に追加する追加動作、または前記第１データ格納手段に既に格納されており且つ前記第２特定情報に基づいて特定される第１既存データを前記第２データに書き換える変更動作、または前記第１既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第１４ステップと、
前記第１通信装置の第１格納制御手段が、前記第１判断手段の判断結果に基づいて、該追加動作、該変更動作、該削除動作のうち何れかの動作を実行する第１５ステップと、
を更に備えることを特徴とする請求項１または請求項２に記載のデータ同期方法。
【請求項４】
前記第１通信手段が、前記第２同期データに対するデータ同期が実行された旨を表す第１確認信号を前記第２通信手段に送信する第１６ステップと、
前記第２通信手段が、前記第１確認信号を前記第１通信手段より受信する第１７ステップと、
前記第２ログ格納手段が、前記第１確認信号に基づいて、前記第２ログ情報を削除する第１８ステップと、
を更に備えることを特徴とする請求項１〜３の何れか１項に記載のデータ同期方法。
【請求項５】
第２通信装置との間でデータの同期を取る第１通信装置であって、
入力された入力データが所定のデータ集合体であるオブジェクトを一つ以上含む構造体であるか否かを、雛形格納手段に格納されたオブジェクトの雛形を元に解析する解析手段と、
前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出手段と、
前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納する第１データ格納手段と、
前記構造体特定情報と前記一つ以上のオブジェクトとが前記第１データ格納手段に新たに格納された旨を表す第１ログ情報を格納する第１ログ格納手段と、
前記第１ログ格納手段に格納された前記第１ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第１データ格納手段で発生した旨を判断し、当該変化のあった第１データおよび前記第１データを特定する第１特定情報を第１同期データとして前記第１データ格納手段よりオブジェクト単位で抽出する第１同期手段と、
当該抽出した第１同期データを前記第２通信装置の第２通信手段に送信する第１通信手段と、
を備えることを特徴とする第１通信装置。
【請求項６】
前記第１通信手段が、前記第１同期データに対するデータ同期が実行された旨を表す第２確認信号を前記第２通信手段より受信し、
前記第１ログ格納手段が、前記第２確認信号に基づいて、前記第１ログ情報を削除する
ことを特徴とする請求項５に記載の第１通信装置。
【請求項７】
データの同期を取り合う第１通信装置および第２通信装置を備える通信システムであって、
前記第１通信装置は、
入力された入力データが所定のデータ集合体であるオブジェクトを一つ以上含む構造体であるか否かを、雛形格納手段に格納されたオブジェクトの雛形を元に解析する解析手段と、
前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出手段と、
前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納する第１データ格納手段と、
前記構造体特定情報と前記一つ以上のオブジェクトとが前記第１データ格納手段に新たに格納された旨を表す第１ログ情報を格納する第１ログ格納手段と、
前記第１ログ格納手段に格納された前記第１ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第１データ格納手段で発生した旨を判断し、当該変化のあった第１データおよび前記第１データを特定する第１特定情報を第１同期データとして前記第１データ格納手段よりオブジェクト単位で抽出する第１同期手段と、
当該抽出した第１同期データを前記第２通信装置の第２通信手段に送信する第１通信手段と、
を備え
前記第２通信装置は、
前記第１データおよび前記第１特定情報を含む前記第１同期データを前記第１通信装置の前記第１通信手段より受信する第２通信手段と、
前記第１同期データに含まれた前記第１特定情報に基づいて、前記第１データを第２データ格納手段に追加する追加動作、または前記第２データ格納手段に既に格納されており且つ前記第１特定情報に基づいて特定される第２既存データを前記第１データに書き換える変更動作、または前記第２既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第２判断手段と、
前記第２判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第２格納制御手段と、
を備えることを特徴とする通信システム。
【請求項８】
前記第２通信手段が、前記第１同期データに対するデータ同期が実行された旨を表す第２確認信号を前記第１通信手段に送信することを特徴とする請求項７に記載の通信システム。
【請求項９】
前記第１同期データには、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を表すフラグ情報が含まれており、
前記第２判断手段は、前記フラグ情報に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れの動作を実行すべきか判断する
ことを特徴とする請求項７または請求項８に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ同期方法および通信装置に関するものである。
【背景技術】
【０００２】
従来、例えば特許文献１に記載されたように、端末装置とサーバとの間でデータの同期を取るシステムが知られている。このようなシステムでは、例えば、コンサートスケジュールやスポーツ試合スケジュール等の日程情報が端末装置で更新された場合に、その更新内容を端末装置からサーバに送信することにより、端末装置で発生したデータ更新をサーバに反映させる。
【特許文献１】特開２００３−３３０８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のようなシステムにおいて、端末装置が更新内容（例えば個々の日程情報）を含む全てのデータ（例えば全体のカレンダーデータ）を一つのデータ構造体としてサーバに送信することが行われている。つまり、例えば、更新された日程情報を一つのオブジェクトとして含むカレンダー構造体の全体を、データ送受信の単位としている。このことにより、構造体毎の確実な送受信処理を行うことができる。
【０００４】
しかしながら、構造体全体を同期の単位とする場合には、例えば一つの構造体のサイズが大きい場合や、構造体に不要なデータ（例えば未更新データ）が多く含まれている場合に、送受信されるデータ量が大きくなることや、送受信されるデータに同期不要なデータまで含まれることなど、同期処理が非効率的となる。
【０００５】
そこで、本発明は上記に鑑みてなされたもので、データ同期をオブジェクトを単位にして行うことにより、効率的な同期処理を可能とするデータ同期方法および通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のデータ同期方法は、データの同期を取り合う第１通信装置および第２通信装置を備える通信システムにおけるデータ同期方法であって、前記第１通信装置の第１同期手段が、前記第１通信装置の第１ログ格納手段に格納された第１ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第１通信装置の第１データ格納手段で発生した旨を判断する第１ステップと、前記第１同期手段が、当該変化のあった第１データおよび前記第１データを特定する第１特定情報を第１同期データとして前記第１データ格納手段よりオブジェクト単位で抽出する第２ステップと、前記第１通信装置の第１通信手段が、当該抽出した第１同期データを前記第２通信装置の第２通信手段に送信する第３ステップと、前記第２通信手段が、前記第１同期データを前記第１通信手段より受信する第４ステップと、前記第２通信装置の第２判断手段が、前記第１同期データに含まれた前記第１特定情報に基づいて、前記第１データを前記第２通信装置の第２データ格納手段に追加する追加動作、または前記第２データ格納手段に既に格納されており且つ前記第１特定情報に基づいて特定される第２既存データを前記第１データに書き換える変更動作、または前記第２既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第５ステップと、前記第２通信装置の第２格納制御手段が、前記第２判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第６ステップと、を備えることを特徴とする。
【０００７】
また、本発明の第１通信装置は、第２通信装置との間でデータの同期を取る第１通信装置であって、第１データおよび前記第１データを特定する第１特定情報を格納する第１データ格納手段と、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第１データ格納手段で発生した旨を表す第１ログ情報を格納する第１ログ格納手段と、前記第１ログ情報を参照して前記旨を判断し、当該変化のあった前記第１データおよび前記第１特定情報を第１同期データとして前記第１データ格納手段よりオブジェクト単位で抽出する第１同期手段と、当該抽出した前記第１同期データを前記第２通信装置の第２通信手段に送信する第１通信手段と、を備えることを特徴とする。
【０００８】
また、本発明の第２通信装置は、第１通信装置との間でデータの同期を取る第２通信装置であって、第１データおよび前記第１データを特定する第１特定情報を含む第１同期データを前記第１通信装置の第１通信手段より受信する第２通信手段と、前記第１同期データに含まれた前記第１特定情報に基づいて、前記第１データを第２データ格納手段に追加する追加動作、または前記第２データ格納手段に既に格納されており且つ前記第１特定情報に基づいて特定される第２既存データを前記第１データに書き換える変更動作、または前記第２既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第２判断手段と、前記第２判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第２格納制御手段と、を備えることを特徴とする。
【０００９】
このような本発明のデータ同期方法および通信装置によれば、第１通信装置および第２通信装置に備えられた各手段が上記の第１ステップから第６ステップまでの一連の流れとなる全ての手順を行うことにより、第１通信装置が同期データの発生元および送信側となり、且つ第２通信装置が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
【００１０】
また、本発明のデータ同期方法は、前記第２通信手段が、前記第１同期データに対するデータ同期が実行された旨を表す第２確認信号を前記第１通信手段に送信する第７ステップと、前記第１通信手段が、前記第２確認信号を前記第２通信手段より受信する第８ステップと、前記第１ログ格納手段が、前記第２確認信号に基づいて、前記第１ログ情報を削除する第９ステップと、を更に備えることが好ましい。
【００１１】
また、本発明の第１通信装置においては、前記第１通信手段が、前記第１同期データに対するデータ同期が実行された旨を表す第２確認信号を前記第２通信手段より受信し、前記第１ログ格納手段が、前記第２確認信号に基づいて、前記第１ログ情報を削除することが好ましい。
【００１２】
また、本発明の第２通信装置においては、前記第２通信手段が、前記第１同期データに対するデータ同期が実行された旨を表す第２確認信号を前記第１通信手段に送信することが好ましい。
【００１３】
このような本発明のデータ同期方法および通信装置によれば、第１通信装置および第２通信装置に備えられた各手段が上記の第７ステップから第９ステップまでの一連の流れとなる全ての手順を行うことにより、第１通信装置は第２通信装置側でデータ同期が終了したことを把握することができる。
【００１４】
また、本発明において、前記第２通信装置の第２同期手段が、前記第２通信装置の第２ログ格納手段に格納された第２ログ情報を参照して、前記オブジェクト単位でのデータの変化が前記第２データ格納手段で発生した旨を判断する第１０ステップと、前記第２同期手段が、当該変化のあった第２データおよび前記第２データを特定する第２特定情報を第２同期データとして前記第２データ格納手段よりオブジェクト単位で抽出する第１１ステップと、前記第２通信手段が、当該抽出した第２同期データを前記第１通信手段に送信する第１２ステップと、前記第１通信手段が、前記第２同期データを前記第２通信手段より受信する第１３ステップと、前記第１通信装置の第１判断手段が、前記第２同期データに含まれた前記第２特定情報に基づいて、前記第２データを前記第１データ格納手段に追加する追加動作、または前記第１データ格納手段に既に格納されており且つ前記第２特定情報に基づいて特定される第１既存データを前記第２データに書き換える変更動作、または前記第１既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第１４ステップと、前記第１通信装置の第１格納制御手段が、前記第１判断手段の判断結果に基づいて、該追加動作、該変更動作、該削除動作のうち何れかの動作を実行する第１５ステップと、を更に備えることが好ましい。
【００１５】
この場合には、第１通信装置および第２通信装置に備えられた各手段が上記の第１０ステップから第１５ステップまでの一連の流れとなる全ての手順を行うことにより、第２通信装置が同期データの発生元および送信側となり、且つ第１通信装置が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
【００１６】
また、本発明のデータ同期方法は、前記第１通信手段が、前記第２同期データに対するデータ同期が実行された旨を表す第１確認信号を前記第２通信手段に送信する第１６ステップと、前記第２通信手段が、前記第１確認信号を前記第１通信手段より受信する第１７ステップと、前記第２ログ格納手段が、前記第１確認信号に基づいて、前記第２ログ情報を削除する第１８ステップと、を更に備えることが好ましい。
【００１７】
このような本発明のデータ同期方法によれば、第１通信装置および第２通信装置に備えられた各手段が上記の第１６ステップから第１８ステップまでの一連の流れとなる全ての手順を行うことにより、第２通信装置は第１通信装置側でデータ同期が終了したことを把握することができる。
【００１８】
また、本発明において、前記第１同期データには、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を表すフラグ情報が含まれており、前記第２判断手段は、前記フラグ情報に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れの動作を実行すべきか判断することが好ましい。
【００１９】
この場合には、第２判断手段は、当該フラグ情報を参照することにより、同期データに対して何れの動作を実行すべきかを確実且つ容易に判断することができる。
【００２０】
また、本発明の通信装置は、所定のデータ集合体であるオブジェクトの雛形を格納する雛形格納手段と、入力データの入力を受ける通信手段と、前記入力データが前記オブジェクトを一つ以上含む構造体であるか否かを前記雛形を元に解析する解析手段と、前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出手段と、前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納するデータ格納手段と、を備えることを特徴とする。
【００２１】
このような本発明の通信装置によれば、構造体としてデータ入力があった場合においても、データの格納はオブジェクトを単位にして行われる。ここで、オブジェクトは所定のデータの集合体であり、このオブジェクトを一つ以上含むものが構造体であるため、オブジェクトのデータ量は構造体のデータ量より小さい。したがって、オブジェクトを単位にしてデータを格納することにより、当該オブジェクトを送受信の単位にして通信装置間のデータ同期を行うことができる。この場合には、構造体全体をデータ送受信の単位とする場合に比べ、送受信されるデータ量を少なくすることができ、効率よくデータ同期を行うことができる。
【００２２】
また、本発明において、前記構造体特定情報と前記一つ以上のオブジェクトとが前記データ格納手段に新たに格納された旨を表すログ情報を格納するログ格納手段を更に備えることが好ましい。
【００２３】
この場合には、例えば他の手段が、当該ログ情報を参照することにより、データ格納手段にて新たにデータの格納が行われた旨を判断することができる。
【発明の効果】
【００２４】
本発明によれば、データ同期をオブジェクトを単位にして行うことにより、効率的な同期処理を可能とするデータ同期方法および通信装置が提供される。
【発明を実施するための最良の形態】
【００２５】
以下、添付図面を参照して本発明にかかるデータ同期方法および通信装置の好適な実施形態を詳細に説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【００２６】
［通信システム１の全体構成］
まず、本発明の実施形態に係る通信システム１の構成について、図１を参照しながら説明する。図１は、通信システム１の構成概要図である。図１に示すように、通信システム１は、携帯電話機１０（通信装置、第１通信装置または第２通信装置）、同期サーバ２０（通信装置、第１通信装置または第２通信装置）およびダウンロードサーバ３０から構成され、ダウンロードサーバ３０は例えば外部の装置（図示せず）からダウンロードした入力データを携帯電話機１０または同期サーバ２０に送信し、携帯電話機１０と同期サーバ２０とは互いにデータの同期を取り合う。また、携帯電話機１０、同期サーバ２０、ダウンロードサーバ３０のそれぞれは通信ネットワーク４０により互いに通信可能に接続されている。
【００２７】
［携帯電話機１０の構成］
携帯電話機１０について詳細に説明する。図２は携帯電話機１０のハードウェア構成図である。図２に示すように、携帯電話機１０は、物理的には、ＣＰＵ１１、主記憶装置であるＲＯＭ１２及びＲＡＭ１３、操作ボタンなどの入力デバイス１４、ＬＣＤや有機ＥＬディスプレイなどの出力デバイス１５、同期サーバ２０やダウンロードサーバ３０との間でデータの送受信を行う通信モジュール１６、メモリディバイス等の補助記憶装置１７を備えて構成される。後述する携帯電話機１０の各機能は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３等のハードウェア上に所定のソフトウェアを読み込ませることにより、ＣＰＵ１１の制御の元で入力デバイス１４、出力デバイス１５、通信モジュール１６を動作させると共に、主記憶装置１２，１３や補助記憶装置１７におけるデータの読み出し及び書き込みを行うことで実現される。
【００２８】
図３は、携帯電話機１０の機能的な構成を示す構成概要図である。図３に示すように、携帯電話機１０は、機能的には、通信部１１０（通信手段、第１通信手段または第２通信手段）、解析部１２０（解析手段）、雛形格納部１３０（雛形格納手段）、オブジェクト生成部１４０（抽出手段）、格納制御部１５０（第１格納制御手段または第２格納制御手段）、データ格納部１６０（データ格納手段、第１データ格納手段または第２データ格納手段）、ログ格納部１７０（ログ格納手段、第１ログ格納手段または第２ログ格納手段）、判断部１８０（第１判断手段または第２判断手段）、および同期部１９０（第１同期手段または第２同期手段）を備えて構成される。
【００２９】
通信部１１０は、データの送受信を行うものである。通信部１１０は、携帯電話機１０のユーザの入力操作により、または同期サーバ２０との通信により、またはダウンロードサーバ３０との通信により、データの送受信を行う。通信部１１０は、構造体（後述する）の単位で、またはオブジェクト（後述する）の単位で、データの送受信を行うことができる。通信部１１０は、携帯電話機１０のユーザの入力操作により、またはダウンロードサーバ３０との通信により、データを入力した場合には、当該データ（以下、入力データ）を解析部１２０に出力する。また、通信部１１０は、同期サーバ２０との通信により、データを入力した場合には、当該データ（以下、同期データ）を判断部１８０に出力する。なお、通信部１１０は、既述の図２で言えば、通信モジュール１６により構成されることができる。
【００３０】
ここで、「オブジェクト」および「構造体」について説明する。オブジェクトは一定のルールに基づくプロパティや値を有する文字や画像データの集合体であり、構造体はこのオブジェクトを一つ以上含むデータの集合体である。このため、構造体のデータ量はオブジェクトのデータ量より大きい。図４は、オブジェクトを一つ以上含む構造体をイメージした図である。図４において、構造体Ｓは、当該構造体Ｓを特定する構造体特定情報Ｓ１と、複数のオブジェクトＯａ、Ｏｂ、…からなる。一例において、構造体は携帯電話機１０内で用いられるカレンダーデータであり、オブジェクトは当該カレンダーデータにおけるそれぞれのスケジュールである。
【００３１】
図３に戻り、解析部１２０は、通信部１１０からの入力データに対して、当該入力データがオブジェクトであるか否か、構造体であるか否かを判断する。オブジェクトであるか否かの判断の際に、解析部１２０は、雛形格納部１３０に格納されたオブジェクトの雛形を用いる。オブジェクトの雛形は例えばオブジェクトの開始句および終了句の一対からなることができ、例えば既述の図４の一例で言えば、「BEGIN:VEVENT」および「END：VEVENT」の一対である。解析部１２０は、入力データを順に検索していき、上記の開始句および終了句が検索されたら、当該開始句および終了句を含め当該開始句および終了句に挟まれた部分をオブジェクトと判断する。これ以外に、例えばオブジェクトの開始句同士の一対（すなわち、現オブジェクトの開始句と次オブジェクトの開始句との一対）をオブジェクトの雛形として用いてもよい。この場合に、解析部１２０は、入力データを順に検索していき、現オブジェクトの開始句および次オブジェクトの開始句が検索されたら、当該現オブジェクトの開始句を含め当該両開始句に挟まれた部分をオブジェクトと判断する。
【００３２】
また、構造体であるか否かの判断の際に、解析部１２０は、雛形格納部１３０に格納された構造体の雛形を用いる。構造体の雛形は構造体の開始句および終了句の一対からなり、例えば既述の図４の一例で言えば、「BEGIN:VCALENDAR」および「END:VCALENDAR」の一対である。解析部１２０は、入力データを順に検索していき、「BEGIN:VCALENDAR」および「END:VCALENDAR」との開始句および終了句が検索され、且つ当該開始句および終了句の間に上記の判断方法によりオブジェクトと判断された部分が一つ以上あったら、当該「BEGIN:VCALENDAR」および「END:VCALENDAR」を含め当該開始句および終了句に挟まれた部分を構造体と判断する。
【００３３】
解析部１２０は、入力データが構造体であると判断された場合に、当該構造体をオブジェクト生成部１４０に出力する。一方、解析部１２０は、入力データが構造体でないと判断された場合には、通信部１１０がオブジェクトの単位でデータ入力を行ったと判断し、当該入力データを格納制御部１５０に出力する。入力データが構造体でないと判断される場合としては、例えば、入力データにオブジェクトが含まれているが当該オブジェクトが構造体内に存在するものではない場合、つまりオブジェクトが構造体の一部分としてではなくオブジェクト単独で存在する場合が挙げられる。更に、入力データにオブジェクトそのものは含まれておらず、何れかのオブジェクトを削除する旨の情報（後述するフラグ情報等）が含まれている場合が挙げられる。
【００３４】
解析部１２０は、通信部１１０がオブジェクトの単位でデータ入力を行ったと判断された場合に、当該オブジェクトに対して「追加」、「変更」、または「削除」のうち何れかの動作が行われるべきかを更に判断し、当該判断の結果を表す情報を格納制御部１５０に出力する。解析部１２０の判断は、上記入力データに、「追加」、「変更」、または「削除」の何れかの動作を表すフラグ情報が含まれている場合には、当該フラグ情報を元に行われてもよい。例えば、入力データに「add」とのフラグ情報が含まれている場合に、解析部１２０は、通信部１１０が入力した入力データに含まれているオブジェクトに対して今後「追加」の処理が行われるべきとのことを判断する。また、「replace」とのフラグ情報に対して解析部１２０は「変更」を判断し、「delete」とのフラグ情報に対して解析部１２０は「削除」を判断する。なお、削除のときは、入力データにオブジェクトそのものは含まれておらず、「delete」とのフラグ情報と当該削除すべきオブジェクトを特定する情報とが含まれる（後述するＩＤ等）。
【００３５】
一方、フラグ情報を元に上記の判断を行うこととは別に、オブジェクトそのものを特定するための特定情報（ＩＤ）に基づいて上記の判断を行うことができる。例えば、入力データにオブジェクトが含まれ、且つ当該オブジェクトが携帯電話機１０の保持している正規のＩＤを有している場合に、解析部１２０は「変更」を判断することができる。また、例えば、入力データにオブジェクトが含まれていないが、オブジェクトの正規のＩＤが含まれて入る場合に、解析部１２０は当該ＩＤのオブジェクトに対して「削除」を判断することができる。また、例えば、入力データにオブジェクトが含まれ、且つ当該オブジェクトがテンポラリのＩＤを有している場合に、解析部１２０は「追加」を判断することができる。なお、オブジェクトのＩＤは、携帯電話機１０、同期サーバ２０、ダウンロードサーバ３０の何れもが付与することができる。このとき、携帯電話機１０、同期サーバ２０、ダウンロードサーバ３０のそれぞれが異なるＩＤを付与した場合には、携帯電話機１０、同期サーバ２０、ダウンロードサーバ３０の何れかが異なるＩＤに対するマッピング情報を保持していることが好ましい。そして、ＩＤの送受信の際に、マッピング情報に対する同期を行うことが好ましい。
【００３６】
なお、以上で簡略に説明した解析部１２０の上記判断（「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断）、オブジェクトのＩＤ、フラグ情報、マッピング情報等については、その詳細について後ほど図１４〜図１８を参照しながら詳しく説明する。なお、解析部１２０の上記判断を判断部１８０が行ってもよく、この場合には、解析部１２０がオブジェクト単位の入力データを判断部１８０に出力し、判断部１８０は上記判断を行った後に判断の結果を表す情報を格納制御部１５０に出力する。
【００３７】
次に、オブジェクト生成部１４０について説明する。オブジェクト生成部１４０は、解析部１２０より構造体を入力し、当該構造体より、当該構造体を特定する構造体特定情報および一つ以上のオブジェクトを抽出するものである。この抽出の際に、オブジェクト生成部１４０は、雛形格納部１３０に格納された構造体およびオブジェクトの雛形を用いる。オブジェクト生成部１４０は、当該抽出した構造体特定情報および一つ以上のオブジェクトからなる階層構造化されたデータを格納制御部１５０に出力する。
【００３８】
図５は、オブジェクト生成部１４０が、構造体Ｓより、当該構造体Ｓを特定する構造体特定情報（以下、親フォルダＰ）および複数のオブジェクトＯａ〜Ｏｚを抽出した様子を示す。図５では、親フォルダＰの配下に複数のオブジェクトＯａ〜Ｏｚが所属するという階層構造が示されている。
【００３９】
図６は、オブジェクト生成部１４０が、既述の図４の一例の構造体Ｓを元に親フォルダＰおよびオブジェクトＯａ、Ｏｂ…を抽出し階層構造化した様子を示す。オブジェクト生成部１４０は、まず、オブジェクトの開始句および終了句である「BEGIN:VEVENT」および「END：VEVENT」に挟まれた部分をオブジェクトＯａ、Ｏｂ…として抽出する。そして、当該オブジェクトＯａ、Ｏｂ…として抽出した部分それぞれに、構造体の開始句および終了句である「BEGIN:VCALENDAR」および「END:VCALENDAR」を付与し、且つバージョン情報を付与する。以上により、構造体ＳからオブジェクトＯａ、Ｏｂ…が抽出される。
【００４０】
一方、オブジェクトＯａ、Ｏｂ…が抽出された後に残った部分のうち構造体の開始句および終了句、バージョン情報を除いた部分を親フォルダＰの開始句および終了句（<Folder>と</Folder>との一対）でくくり、親フォルダＰ内の各情報をそれぞれの各開始句および終了句（<Ext>と</Ext>との一対、<XNam>と</XNam>との一対、<XVal>と</XVal>との一対など）でくくる。以上により、構造体Ｓから親フォルダＰが抽出される。一つの構造体Ｓから抽出されたオブジェクトＯａ、Ｏｂ…および親フォルダＰの両方が当該構造体の開始句および終了句を有することにより、当該オブジェクトＯａ、Ｏｂ…および親フォルダＰが互いに関連付けられる。なお、図示はしないが、図６の一例において、構造体の開始句および終了句をオブジェクトおよび親フォルダの両方に持たせる方法以外に、別の所定の識別情報をそれぞれに付与することにより、オブジェクトと親フォルダとを関連付けてもよい。
【００４１】
図３に戻り、格納制御部１５０は、解析部１２０またはオブジェクト生成部１４０より入力したデータをデータ格納部１６０に格納させ、且つそのログ情報をログ格納部１７０に格納させるものである。格納制御部１５０は、解析部１２０またはオブジェクト生成部１４０よりオブジェクト単位のデータを入力すると、「追加」、「変更」、または「削除」のうち何れかの動作を表す情報に基づいて、それぞれのオブジェクトに対する「追加」、「変更」、または「削除」の処理を行う。
【００４２】
すなわち、「追加」の場合に、格納制御部１５０は、当該入力データに含まれたオブジェクト（以下、追加オブジェクト）をデータ格納部１６０に追加して格納させる。この追加格納の際に、当該追加オブジェクトに付与された構造体の開始句および終了句等（以下、追加構造体特定情報）と同一の開始句および終了句等を有する構造体（具体的には親フォルダＰ）が既にデータ格納部１６０に存在する場合には、格納制御部１５０は当該既に存在する構造体に当該追加オブジェクトを関連付けて格納させる。つまり、当該追加オブジェクトを当該既に存在する構造体の配下に置き、階層構造として格納する。一方、そのような構造体がデータ格納部１６０に存在しない場合には、格納制御部１５０は、当該オブジェクトに付与された構造体の開始句および終了句等を有する新しい構造体を設けて、当該追加オブジェクトを当該新しい構造体に関連付けて格納させる。
【００４３】
また、「変更」の場合に、格納制御部１５０は、解析部１２０またはオブジェクト生成部１４０より当該入力したオブジェクト（以下、変更後のオブジェクト）と、データ格納部１６０に格納されていた既存のオブジェクト（以下、変更前のオブジェクト）とを置き換える。このとき、格納制御部１５０が入力したデータには変更前のオブジェクトを特定する特定情報（以下、変更前オブジェクト特定情報）が含まれることが好ましい。また、「削除」の場合に、格納制御部１５０は、データ格納部１６０に格納されていた当該オブジェクト（以下、削除オブジェクト）を削除する。このとき、格納制御部１５０が入力したデータには削除すべきオブジェクトを特定する特定情報（以下、削除オブジェクト特定情報）が含まれることが好ましい。以上の「追加」、「変更」、「削除」の各処理後に、格納制御部１５０は、データ格納部１６０に対してオブジェクトの「追加」、「変更」、「削除」の各処理を行ったことを表すログ情報をログ格納部１７０に格納させる。
【００４４】
判断部１８０は、通信部１１０より入力した同期データ（第１同期データ、第２同期データ）に含まれたオブジェクトＩＤ（第１特定情報、第２特定情報）に基づいて、当該同期データに含まれたオブジェクトに対して「追加」、「変更」、または「削除」のうち何れかの動作が行われるべきかを判断する。この判断は、同期データに、「追加」、「変更」、または「削除」の何れかの動作を表すフラグ情報が含まれている場合には、当該フラグ情報を元に行われる。この他、判断部１８０の判断動作は上記説明した解析部１２０の判断動作と概ね一致する。判断部１８０は、上記判断を行った後に、当該判断の結果を表す情報および同期データを格納制御部１５０に出力する。格納制御部１５０は、当該判断の結果を表す情報に基づいて、当該同期データに対する「追加」、「変更」、または「削除」のうち何れかの動作を行う。
【００４５】
同期部１９０は、ログ格納部１７０に格納されているログ情報（第１ログ情報、第２ログ情報）を参照して、オブジェクト単位でのデータの変化がデータ格納部１６０で発生した旨を判断し、当該変化のあったデータ（第１データ、第２データ）および該データの特定情報（第１特定情報、第２特定情報）を同期データとしてデータ格納部１６０よりオブジェクト単位で抽出するものである。同期部１９０が当該抽出した同期データを通信部１１０に出力すると、通信部１１０は当該同期データを同期サーバ２０の通信部２１０に通信ネットワーク４０を用いて送信する。このとき、通信部１１０は当該同期データをオブジェクト単位で送信してもよい。または、通信部１１０は複数のオブジェクトをまとめた形で当該同期データを同期サーバ２０の通信部２１０に送信してもよい。
【００４６】
［同期サーバ２０の構成］
続いて、図１の同期サーバ２０について詳細に説明する。図２は同期サーバ２０のハードウェア構成図である。図２に示すように、同期サーバ２０は、物理的には、物理的には、ＣＰＵ２１、ＲＯＭ２２及びＲＡＭ２３等の主記憶装置、キーボード及びマウス等の入力デバイス２４、ディスプレイ等の出力デバイス２５、携帯電話機１０やダウンロードサーバ３０との間でデータの送受信を行うためのネットワークカード等の通信モジュール２６、ハードディスク等の補助記憶装置２７などを含む通常のコンピュータシステムとして構成される。後述する同期サーバ２０の各機能は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ２１の制御の元で入力デバイス２４、出力デバイス２５、通信モジュール２６を動作させると共に、主記憶装置２２，２３や補助記憶装置２７におけるデータの読み出し及び書き込みを行うことで実現される。
【００４７】
図７は、同期サーバ２０の機能的な構成を示す構成概要図である。図７に示すように、同期サーバ２０は、機能的には、通信部２１０（通信手段、第１通信手段または第２通信手段）、解析部２２０（解析手段）、雛形格納部２３０（雛形格納手段）、オブジェクト生成部２４０（抽出手段）、格納制御部２５０（第１格納制御手段または第２格納制御手段）、データ格納部２６０（データ格納手段、第１データ格納手段または第２データ格納手段）、ログ格納部２７０（ログ格納手段、第１ログ格納手段または第２ログ格納手段）、判断部２８０（第１判断手段または第２判断手段）、および同期部２９０（第１同期手段または第２同期手段）を備えて構成される。
【００４８】
通信部２１０は、データの送受信を行うものである。通信部２１０は、携帯電話機１０またはダウンロードサーバ３０との通信により、データの送受信を行う。通信部２１０は、構造体の単位で、またはオブジェクトの単位で、データの送受信を行うことができる。通信部２１０は、ダウンロードサーバ３０との通信により、データを入力した場合には、当該データ（入力データ）を解析部２２０に出力する。また、通信部２１０は、携帯電話機１０との通信により、データを入力した場合には、当該データ（同期データ）を判断部２８０に出力する。なお、通信部２１０は、既述の図２で言えば、通信モジュール２６により構成されることができる。
【００４９】
同期サーバ２０の他の機能要素の各機能は上記説明した携帯電話機１０の機能要素の各機能と概ね一致する。このため、ここでは同期サーバ２０の各機能要素それぞれを説明することを省略する代わりに、図９〜図１３のシーケンス図やフローチャートによる下記の動作説明において、同期サーバ２０の各機能要素の動作について詳細に述べる。
【００５０】
［ダウンロードサーバ３０の構成］
続いて、図１のダウンロードサーバ３０について説明する。図２はダウンロードサーバ３０のハードウェア構成図である。図２に示すように、ダウンロードサーバ３０は、物理的には、ＣＰＵ３１、ＲＯＭ３２及びＲＡＭ３３等の主記憶装置、キーボード及びマウス等の入力デバイス３４、ディスプレイ等の出力デバイス３５、携帯電話機１０、同期サーバ２０、図示しない外部の装置との間でデータの送受信を行うためのネットワークカード等の通信モジュール３６、ハードディスク等の補助記憶装置３７などを含む通常のコンピュータシステムとして構成される。後述するダウンロードサーバ３０の各機能は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ３１の制御の元で入力デバイス３４、出力デバイス３５、通信モジュール３６を動作させると共に、主記憶装置３２，３３や補助記憶装置３７におけるデータの読み出し及び書き込みを行うことで実現される。
【００５１】
図８は、ダウンロードサーバ３０の機能的な構成を示す構成概要図である。図８に示すように、ダウンロードサーバ３０は、機能的には、入力部３１０、データ格納部３２０、および通信部３３０を備えて構成される。
【００５２】
入力部３１０は、例えば外部の装置（図示せず）からのダウンロードにより、入力データを入力するものである。入力部３１０は、構造体の単位で、またはオブジェクトの単位で、入力データを入力することができる。入力部３１０は、当該入力した入力データをデータ格納部３２０に出力して格納させる。そして、通信部３３０が、データ格納部３２０に格納された入力データを携帯電話機１０の通信部１１０または同期サーバ２０の通信部２１０に送信する。データ格納部３２０は入力データを格納する際にログ情報を記録してもよく、この場合に、通信部３３０は当該ログ情報に基づいて入力データの送信を行うことができる。また、通信部３３０は、既述の図２で言えば、通信モジュール３６により構成することができる。
【００５３】
［通信システム１の動作］
続いて、通信システム１により行われる動作（データ同期方法）について説明する。
【００５４】
［構造体単位でのデータ入力の場合］
まず、携帯電話機１０が構造体単位で入力データを入力した場合の動作について、図９、１０を参照しながら説明する。図９はこの場合の携帯電話機１０の動作を示すシーケンス図であり、図１０は図９におけるステップＳ１３０をより詳細に説明するためのフローチャートである。
【００５５】
最初に、通信部１１０が、ユーザの入力操作により、またはダウンロードサーバ３０からの通信により、入力データを構造体単位で入力する（ステップＳ１１０）。通信部１１０は、当該入力した入力データを解析部１２０に出力する（ステップＳ１１１）。
【００５６】
次に、解析部１２０が、通信部１１０からの入力データに対して、当該入力データが構造体であるか否かを判断する。この判断の際に、解析部１２０は、雛形格納部１３０に格納された構造体およびオブジェクトの雛形を用いる（ステップＳ１２０）。解析部１２０は、入力データが構造体であると判断された場合に、当該構造体をオブジェクト生成部１４０に出力する（ステップＳ１２１）。
【００５７】
次に、オブジェクト生成部１４０が、解析部１２０より入力した当該構造体より、当該構造体を特定する構造体特定情報および一つ以上のオブジェクトを抽出し、当該構造体の入力データを階層構造に変換する。このとき、オブジェクト生成部１４０は、雛形格納部１３０に格納された構造体およびオブジェクトの雛形を用いるが、その詳細については後述する（ステップＳ１３０）。オブジェクト生成部１４０は、当該抽出した構造体特定情報および一つ以上のオブジェクトからなる階層構造化されたデータを格納制御部１５０に出力する（ステップＳ１３８）。
【００５８】
次に、格納制御部１５０が、オブジェクト生成部１４０より入力した階層構造化されたデータをデータ格納部１６０に格納させる。データ格納の際に、データ格納の対象となるオブジェクトに付与された構造体の開始句および終了句等と同一の開始句および終了句等を有する構造体が既にデータ格納部１６０に存在する場合には、格納制御部１５０は当該既に存在する構造体に当該データ格納の対象となるオブジェクトを関連付けて格納させる。つまり、当該データ格納の対象となるオブジェクトを当該既に存在する構造体の配下に置き、階層構造として格納する。一方、そのような構造体がデータ格納部１６０に存在しない場合には、格納制御部１５０は、当該データ格納の対象となるオブジェクトに付与された構造体の開始句および終了句等を有する新しい構造体を設けて、当該データ格納の対象となるオブジェクトを当該新しい構造体に関連付けて格納させる（ステップＳ１４０）。
【００５９】
次に、格納制御部１５０が、ステップＳ１４０においてデータ格納が行われたことを表すログ情報をログ格納部１７０に格納させる。なお、ログ情報においては、構造体に関するログ情報とオブジェクトに関するログ情報とが別々に格納されてもよく、この場合に格納されるログ情報の総数は例えばオブジェクト生成部１４０が抽出した構造体特定情報およびオブジェクトの総数と一致する（ステップＳ１５０）。
【００６０】
次に、通信部１８０がデータ格納部１６０に格納されたオブジェクトを送信の単位として同期サーバ２０との間でデータの同期を取るが、この手順については図１２を参照しながら後述する。
【００６１】
ここで、上記のステップＳ１３０について図１０を参照しながらより詳細に説明する。図９のステップＳ１３０は、オブジェクト生成部１４０が解析部１２０より入力した構造体より構造体特定情報および一つ以上のオブジェクトを抽出してデータの階層構造化を行うための手順である。
【００６２】
最初に、オブジェクト生成部１４０が解析部１２０からの入力データを順に検索していく（ステップＳ１３１）。当該検索の結果、構造体の開始句が発見され（ステップＳ１３２：ＹＥＳ）、且つオブジェクトの開始句および終了句が発見されたら（ステップＳ１３３：ＹＥＳ）、当該発見されたオブジェクトの開始句と終了句との間の情報要素をオブジェクトとして切り出す（ステップＳ１３４）。
【００６３】
次に、ステップＳ１３３にて発見されたオブジェクトの終了句の次の情報要素が構造体の終了句であるか否かを判断する（ステップＳ１３５）。ステップＳ１３５の判断にて、オブジェクトの終了句の次の情報要素が構造体の終了句でない場合には（ステップＳ１３５：ＮＯ）、処理の流れはステップＳ１３１に戻り、上述したステップＳ１３１〜ステップＳ１３５が繰り返して行われる。一方、ステップＳ１３５の判断にて、オブジェクトの終了句の次の情報要素が構造体の終了句である場合には（ステップＳ１３５：ＹＥＳ）、ステップＳ１３４にてオブジェクトとして切り出した部分以外の部分を親フォルダとして切り出す（ステップＳ１３６）。
【００６４】
次に、ステップＳ１３４にて切り出したオブジェクトおよびステップＳ１３６にて切り出した親フォルダからなる階層構造を形成する。階層構造の形成方法の一例としては、既述したように、例えば解析部１２０より入力した構造体の開始句および終了句をステップＳ１３４にて切り出したオブジェクトに付与することにより、結果的にオブジェクトおよび親フォルダに同一の開始句および終了句を持たせる方法がある（ステップＳ１３７）。
【００６５】
なお、上記ステップＳ１３２にて構造体の開始句が発見されない場合や、上記ステップＳ１３３にてオブジェクトの開始句および終了句が発見されない場合には、処理はそのまま終了する。
【００６６】
［オブジェクト単位でのデータ入力の場合］
続いて、携帯電話機１０がオブジェクト単位で入力データを入力した場合の動作について、図１１を参照しながら説明する。図１１はこの場合の携帯電話機１０の動作を示すシーケンス図である。図１１では、任意のオブジェクトに対して、「追加処理」、「変更処理」、または「削除処理」が行われる。
【００６７】
最初に、通信部１１０が、ユーザの入力操作により、またはダウンロードサーバ３０からの通信により、入力データをオブジェクト単位で入力する。通信部１１０が入力する入力データには、以下に述べるような情報が含まれることができる。すなわち、入力データが任意のオブジェクト（以下、追加オブジェクト）を追加するためのものである場合には、当該入力データに、当該追加オブジェクトと、当該追加オブジェクトを含む構造体を特定する特定情報（追加構造体特定情報）とが含まれる。当該追加オブジェクトそのものを特定する情報として当該追加オブジェクトの特定情報（ＩＤ）が更に含まれていてもよい。追加構造体特定情報は、例えば、当該追加オブジェクトに付与された構造体の開始句および終了句等である。または、追加構造体特定情報が、例えば、当該追加オブジェクトに付与された構造体の開始句および終了句等と同一の開始句および終了句等を有する親フォルダであってもよい。また、入力データがデータ格納部１６０に既に格納されている任意のオブジェクト（以下、変更前オブジェクト）を変更するためのものである場合には、当該入力データに、当該変更前オブジェクトを特定する特定情報（変更前オブジェクト特定情報）と、変更後のオブジェクトとが含まれる。また、入力データがデータ格納部１６０に既に格納されている任意のオブジェクト（以下、削除オブジェクト）を削除するためのものである場合には、当該入力データに、当該削除オブジェクトを特定する特定情報（削除オブジェクト特定情報）が含まれる。また、入力データに、「追加処理」、「変更処理」、「削除処理」をそれぞれ表すフラグ情報（例えば既述の「add」、「replace」、「delete」など）が含まれていてもよい。通信部１１０は、以上のような入力データを解析部１２０に出力する（ステップＳ２１０、ステップＳ２１１）。
【００６８】
次に、解析部１２０が、通信部１１０からの入力データにおけるオブジェクトに対して「追加処理」、「変更処理」、または「削除処理」のうち何れの動作が行われるべきかを判断し、当該判断の結果を表す情報と共に通信部１１０からの入力データを格納制御部１５０に出力する。解析部１２０の判断は、既述したように、通信部１１０からの入力データに含まれたフラグ情報またはそれぞれのオブジェクトの特定情報（ＩＤ）に基づいて行われることができる（ステップＳ２２０、ステップＳ２２１）。
【００６９】
次に、格納制御部１５０が、解析部１２０よりデータを入力し、当該データに含まれた「追加処理」、「変更処理」、または「削除処理」のうち何れかの動作を表す情報に基づいて、当該データに含まれたオブジェクトに対する「追加処理」、「変更処理」、または「削除処理」を行う。「追加処理」の場合に、格納制御部１５０は、当該入力データに含まれた追加オブジェクトをデータ格納部１６０に追加して格納させる。この追加格納の際に、当該追加オブジェクトに付与された構造体の開始句および終了句等（追加構造体特定情報）と同一の開始句および終了句等を有する構造体（具体的には親フォルダＰ）が既にデータ格納部１６０に存在する場合には、格納制御部１５０は当該既に存在する構造体に当該追加オブジェクトを関連付けて格納させる。つまり、当該追加オブジェクトを当該既に存在する構造体の配下に置き、階層構造として格納する。一方、そのような構造体がデータ格納部１６０に存在しない場合には、格納制御部１５０は、当該追加オブジェクトに付与された構造体の開始句および終了句等を有する新しい構造体を設けて、当該追加オブジェクトを当該新しい構造体に関連付けて格納させる。また、「変更処理」の場合に、格納制御部１５０は、当該入力データに含まれた変更後のオブジェクトと、データ格納部１６０に格納されていた既存の変更前のオブジェクトとを置き換える。このとき、既存の変更前のオブジェクトは解析部１２０より入力した入力データに含まれた変更前オブジェクト特定情報により特定することができる。また、「削除処理」の場合に、格納制御部１５０は、データ格納部１６０に格納されていた当該削除オブジェクトを削除する。このとき、当該削除オブジェクトは解析部１２０より入力した入力データに含まれた削除オブジェクト特定情報により特定することができる。（ステップＳ２３０）。
【００７０】
次に、格納制御部１５０が、ステップＳ２３０における「追加処理」、「変更処理」、「削除処理」の各処理後に、当該各処理を行ったことを表すログ情報をログ格納部１７０に格納させる（ステップＳ２４０）。
【００７１】
［オブジェクト単位でのデータ同期の場合、その１］
続いて、同期データの発生元であり且つ同期データの送信側である携帯電話機１０と、同期データの受信側である同期サーバ２０との間でデータ同期が行われる場合の動作について、図１２を参照しながら説明する。図１２は、この場合に携帯電話機１０と同期サーバ２０との間で行われる動作を示すシーケンス図である。
【００７２】
最初に、携帯電話機１０の同期部１９０が、ログ格納部１７０に格納されたログ情報（以下、第１ログ情報）を参照して、オブジェクト単位でのデータの変化がデータ格納部１６０で発生した旨を判断する（ステップＳ３１０、第１ステップ）。
【００７３】
次に、同期部１９０が、当該変化のあったオブジェクト単位のデータ（以下、第１データ）、および第１データを特定する例えばＩＤである特定情報（以下、第１特定情報）をデータ格納部１６０よりオブジェクト単位で抽出する。以下では、この抽出した第１データおよび第１特定情報を第１同期データという（ステップＳ３２０、第２ステップ）。同期部１９０は、第１同期データを通信部１１０に出力する（ステップＳ３２１）。
【００７４】
次に、通信部１１０が、同期部１９０より入力した第１同期データを同期サーバ２０の通信部２１０に送信する。このとき、通信部１１０は当該第１同期データをオブジェクト単位で送信してもよい。または、通信部１１０は複数のオブジェクトをまとめた形で当該第１同期データを同期サーバ２０の通信部２１０に送信してもよい（ステップＳ３３０、第３ステップ）。
【００７５】
次に、同期サーバ２０の通信部２１０が、第１同期データを携帯電話機１０の通信部１１０より受信する（ステップＳ３４０、第４ステップ）。通信部２１０は、当該受信した第１同期データを同期サーバ２０の判断部２８０に出力する（ステップＳ３４１）。
【００７６】
次に、判断部２８０が、第１同期データに含まれた第１特定情報に基づいて、第１データをデータ格納部２５０に追加する追加動作、またはデータ格納部２５０に既に格納されており且つ第１特定情報に基づいて特定される既存のデータ（以下、第２既存データ）を第１データに書き換える変更動作、または上記第２既存データを削除する削除動作のうち何れの動作を実行すべきか判断する。なお、判断部２８０のこの判断動作の詳細については後述する（ステップＳ３５０、第５ステップ）。判断部２８０は、ステップＳ３５０の判断結果を表す情報を格納制御部２５０に出力する（ステップＳ３５１）。
【００７７】
次に、格納制御部２５０が、ステップＳ３５１にて入力した判断結果を表す情報に基づいて、上記の追加動作、変更動作、削除動作のうち何れかの動作を実行する（ステップＳ３６０、第６ステップ）。
【００７８】
次に、通信部２１０が、第１同期データに対するデータ同期が実行された旨を表す信号（以下、第２確認信号）を携帯電話機１０の通信部１１０に送信する。なお、本実施形態においては、ステップＳ３４０〜ステップＳ３６０の全ての手順が正常に実行された後に、第２確認信号を通信部１１０に送信しているが、これに限られることはない。例えば、図示はしないが、ステップＳ３４０〜ステップＳ３６０のそれぞれの手順が正常に実行された後に、それぞれの手順の直後に第２確認信号を通信部１１０にその都度送信してもよい（ステップＳ３７０、第７ステップ）
【００７９】
次に、携帯電話機１０の通信部１１０が、第２確認信号を通信部２１０より受信し（ステップＳ３８０、第８ステップ）、当該第２確認信号をログ格納部１７０に出力する（ステップＳ３８１）。
【００８０】
次に、ログ格納部１７０が、当該第２確認信号に基づいて、ステップＳ３１０で同期部１９０が参照した第１ログ情報を削除する（ステップＳ３９０、第９ステップ）。
【００８１】
以上で説明したステップＳ３１０〜ステップＳ３９０により、第１同期データの発生元であり且つ第１同期データの送信側である携帯電話機１０と、第１同期データの受信側である同期サーバ２０との間で、第１同期データに対するデータ同期がオブジェクト単位で行われた。
【００８２】
［オブジェクト単位でのデータ同期の場合、その２］
続いて、同期サーバ２０で発生した同期データに対するデータ同期について、図１３のシーケンス図を参照しながら説明する。図１３を参照する以下の説明は、同期データの発生元であり且つ同期データの送信側である同期サーバ２０と、同期データの受信側である携帯電話機１０との間で行われるデータ同期に関する。
【００８３】
ステップＳ３１０〜ステップＳ３９０の次に、同期サーバ２０の同期部２９０が、ログ格納部２７０に格納されたログ情報（以下、第２ログ情報）を参照して、オブジェクト単位でのデータの変化がデータ格納部２６０で発生した旨を判断する（ステップＳ４１０、第１０ステップ）。
【００８４】
次に、同期部２９０が、当該変化のあったオブジェクト単位のデータ（以下、第２データ）、および第２データを特定する例えばＩＤである特定情報（以下、第２特定情報）をデータ格納部２６０より抽出する。以下では、この抽出した第２データおよび第２特定情報を第２同期データという（ステップＳ４２０、第１１ステップ）。同期部２９０は、第２同期データを通信部２１０に出力する（ステップＳ４２１）。
【００８５】
次に、通信部２１０が、同期部２９０より入力した第２同期データを携帯電話機１０の通信部１１０に送信する。このとき、通信部２１０は当該第２同期データをオブジェクト単位で送信してもよい。または、通信部２１０は複数のオブジェクトをまとめた形で当該第２同期データを携帯電話機１０の通信部１１０に送信してもよい（ステップＳ４３０、第１２ステップ）。
【００８６】
次に、携帯電話機１０の通信部１１０が、第２同期データを同期サーバ２０の通信部２１０より受信する（ステップＳ４４０、第１３ステップ）。通信部１１０は、当該受信した第２同期データを携帯電話機１０の判断部１８０に出力する（ステップＳ４４１）。
【００８７】
次に、判断部１８０が、第２同期データに含まれた第２特定情報に基づいて、第２データをデータ格納部１５０に追加する追加動作、またはデータ格納部１５０に既に格納されており且つ第２特定情報に基づいて特定される既存のデータ（以下、第１既存データ）を第２データに書き換える変更動作、または上記第１既存データを削除する削除動作のうち何れの動作を実行すべきか判断する。なお、判断部１８０のこの判断動作の詳細については後述する（ステップＳ４５０、第１４ステップ）。判断部１８０は、ステップＳ４５０の判断結果を表す情報を格納制御部１５０に出力する（ステップＳ４５１）。
【００８８】
次に、格納制御部１５０が、ステップＳ４５１にて入力した判断結果を表す情報に基づいて、上記の追加動作、変更動作、削除動作のうち何れかの動作を実行する（ステップＳ４６０、第１５ステップ）。
【００８９】
次に、通信部１１０が、第２同期データに対するデータ同期が実行された旨を表す信号（以下、第１確認信号）を同期サーバ２０の通信部２１０に送信する。なお、本実施形態においては、ステップＳ４４０〜ステップＳ４６０の全ての手順が正常に実行された後に、第１確認信号を通信部２１０に送信しているが、これに限られることはない。例えば、図示はしないが、ステップＳ４４０〜ステップＳ４６０のそれぞれの手順が正常に実行された後に、それぞれの手順の直後に第１確認信号を通信部２１０にその都度送信してもよい（ステップＳ４７０、第１６ステップ）
【００９０】
次に、同期サーバ２０の通信部２１０が、第１確認信号を通信部１１０より受信し（ステップＳ４８０、第１７ステップ）、当該第１確認信号をログ格納部２７０に出力する（ステップＳ４８１）。
【００９１】
次に、ログ格納部２７０が、当該第１確認信号に基づいて、ステップＳ４１０で同期部２９０が参照した第２ログ情報を削除する（ステップＳ４９０、第１８ステップ）。
【００９２】
以上で説明したステップＳ４１０〜ステップＳ４９０により、同期サーバ２０で発生した第２同期データに対するデータ同期がオブジェクト単位で行われた。
【００９３】
［オブジェクトＩＤ等の詳細］
以下では、解析部１２０，２２０または判断部１８０，２８０の判断動作（「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断）、オブジェクトを特定するＩＤ、親フォルダを特定するＩＤ、フラグ情報、マッピング情報等について、詳細に説明する。
【００９４】
［オブジェクトＩＤ等の詳細、その１］
まず、オブジェクト単位の入力データまたは同期データとして、例えば図１４に示すようなデータが解析部１２０，２２０または判断部１８０，２８０に入力された場合について説明する。図１４の例においては、図１４（ａ）に示すように、データの中身がオブジェクトである場合の入力データまたは同期データ５０は、当該オブジェクトが属する親フォルダのＩＤ５１と、当該オブジェクトのＩＤ５２と、当該オブジェクトそのもの５３との組み合わせからなる。また、図１４（ｂ）に示すように、データの中身が親フォルダである場合の入力データまたは同期データ６０は、データの中身が親フォルダであることを表すヘッダ情報としてのｒｏｏｔ情報６１と、当該親フォルダのＩＤ６２と、当該親フォルダそのもの６３との組み合わせからなる。また、図１４の例では、データの送信側および受信側において、互いに共通であり且つ重複しないオブジェクトのＩＤおよび親フォルダのＩＤを有していることを仮定している。
【００９５】
図１４（ｃ）に示すように、親フォルダのＩＤ１２と、オブジェクトのＩＤ１と、当該オブジェクトそのものとが解析部１２０，２２０または判断部１８０，２８０に入力されたとする。この場合に、解析部１２０，２２０または判断部１８０，２８０は、データ格納部１６０，２６０を参照し、ＩＤ１２の親フォルダの配下に、ＩＤが１であるオブジェクトが存在するかを確認する。ＩＤ１２の親フォルダの配下にＩＤが１のオブジェクトが既に存在する場合に、解析部１２０，２２０または判断部１８０，２８０は、ＩＤ１２の親フォルダの配下に既に存在するＩＤ１のオブジェクトを、入力データまたは同期データとして入力されたＩＤ１のオブジェクトに書き換える旨の「変更」を判断する。
【００９６】
ここで、例えば図１４（ｄ）に示すように、当該オブジェクトの中身がブランク（ｎｕｌｌ）である場合には、解析部１２０，２２０または判断部１８０，２８０は、ＩＤ１２の親フォルダの配下に存在するＩＤ１のオブジェクトを削除する旨の「削除」を判断する。言い換えれば、「削除」は、ＩＤ１２の親フォルダの配下に既に存在するＩＤ１のオブジェクトを中身の無いブランクのオブジェクトに書き換えることと同等である。
【００９７】
一方、図１４（ｃ）の例に戻り、親フォルダのＩＤ１２の配下にＩＤ１のオブジェクトが存在しない場合には、解析部１２０，２２０または判断部１８０，２８０は、入力データまたは同期データとして入力されたＩＤ１のオブジェクトをＩＤ１２の親フォルダの配下に新たに追加する旨の「追加」を判断する。
【００９８】
また、図１４（ｅ）に示すように、ｒｏｏｔ情報と、親フォルダのＩＤ７と、当該親フォルダそのものとが解析部１２０，２２０または判断部１８０，２８０に入力されたとする。この場合に、解析部１２０，２２０または判断部１８０，２８０は、データ格納部１６０，２６０を参照し、ＩＤ７の親フォルダが既に存在するかを確認する。データ格納部１６０，２６０にＩＤ７の親フォルダが既に存在する場合に、解析部１２０，２２０または判断部１８０，２８０は、当該既に存在するＩＤ７の親フォルダを、入力データまたは同期データとして入力されたＩＤ７の親フォルダに書き換える旨の「変更」を判断する。一方、ＩＤ７の親フォルダが存在しない場合には、解析部１２０，２２０または判断部１８０，２８０は、入力データまたは同期データとして入力されたＩＤ７の親フォルダをデータ格納部１６０，２６０に新たに追加する旨の「追加」を判断する。
【００９９】
解析部１２０，２２０または判断部１８０，２８０は、以上で説明したように、「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断を行い、当該判断の結果を表す情報を格納制御部１５０に出力する。格納制御部１５０は、当該判断結果に基づいて、「追加」、「変更」、「削除」のうち何れかの動作を実行する。
【０１００】
［オブジェクトＩＤ等の詳細、その２］
次に、オブジェクト単位の入力データまたは同期データとして、例えば図１５に示すようなデータが解析部１２０，２２０または判断部１８０，２８０に入力された場合について説明する。図１５の例は、図１５（ａ）および図１５（ｂ）に示すように、入力データまたは同期データ５０，６０にフラグ情報５４，６４が更に含まれている点以外は、図１４の例の場合と同等である。
【０１０１】
解析部１２０，２２０または判断部１８０，２８０は、フラグ情報５４，６４に基づいて、「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断を行う。すなわち、図１５（ｃ）の場合に、「replace」と記載されているフラグ情報に基づいて、解析部１２０，２２０または判断部１８０，２８０は、ＩＤ１２の親フォルダの配下に既に存在するＩＤ１のオブジェクトを、入力データまたは同期データとして入力されたＩＤ１のオブジェクトに書き換える旨の「変更」を判断する。これは、上記の図１４（ｃ）の場合において、ＩＤ１２の親フォルダの配下にＩＤ１のオブジェクトが既に存在することが確認された場合と同等である。
【０１０２】
また、図１５（ｄ）の場合に、「add」と記載されているフラグ情報に基づいて、解析部１２０，２２０または判断部１８０，２８０は、入力データまたは同期データとして入力されたＩＤ１のオブジェクトをＩＤ１２の親フォルダの配下に新たに追加する旨の「追加」を判断する。これは、上記の図１４（ｃ）の場合において、ＩＤ１２の親フォルダの配下にＩＤ１のオブジェクトが存在しないことが確認された場合と同等である。
【０１０３】
また、図１５（ｅ）の場合に、「delete」と記載されているフラグ情報に基づいて、解析部１２０，２２０または判断部１８０，２８０は、ＩＤ１２の親フォルダの配下に既に存在するＩＤ１のオブジェクトを削除する旨の「削除」を判断する。これは、上記の図１４（ｄ）の場合と同等である。
【０１０４】
また、図１５（ｆ）の場合に、「replace」と記載されているフラグ情報に基づいて、解析部１２０，２２０または判断部１８０，２８０は、既に存在するＩＤ７の親フォルダを、入力データまたは同期データとして入力されたＩＤ７の親フォルダに書き換える旨の「変更」を判断する。これは、上記の図１４（ｅ）の場合において、ＩＤ７の親フォルダがデータ格納部１６０，２６０に既に存在することが確認された場合と同等である。
【０１０５】
また、図１５（ｇ）の場合に、「add」と記載されているフラグ情報に基づいて、解析部１２０，２２０または判断部１８０，２８０は、入力データまたは同期データとして入力されたＩＤ７の親フォルダをデータ格納部１６０，２６０に新たに追加する旨の「追加」を判断する。これは、上記の図１４（ｅ）の場合において、ＩＤ７の親フォルダがデータ格納部１６０，２６０に存在しないことが確認された場合と同等である。
【０１０６】
［オブジェクトＩＤ等の詳細、その３］
次に、オブジェクト単位の同期データとして、例えば図１６および図１７に示すようなデータがデータ同期の送信側と受信側との間で送受信される場合について説明する。図１６および図１７の例では、データの送信側と受信側とが互いに共通しないオブジェクトのＩＤおよび親フォルダのＩＤを有していることを仮定している。このため、本実施形態では、図１８に示すようなマッピング情報を同期サーバ２０が有している。なお、本実施形態においては同期サーバ２０がマッピング情報を有しているが、これに限らず、携帯電話機１０がマッピング情報を有していてもよく、同期サーバ２０および携帯電話機１０の両方がマッピング情報を共有していてもよい。
【０１０７】
まず、図１８のマッピング情報について説明する。図１８のマッピング情報は同期サーバ２０が有しているものであり、同期サーバ２０側のＩＤは「ＧＵ」から始まり、且つ携帯電話機１０側のＩＤは「ＬＵ」から始まる。したがって、同期サーバ２０側と携帯電話機１０側とは互いに共通しないオブジェクトのＩＤおよび親フォルダのＩＤを有していることとなる。図１８（ａ）の例において、同期サーバ２０側のＩＤである「ＧＵＩＤ１」は携帯電話機１０側のＩＤである「ＬＵＩＤ２」に対応する。同様に、同期サーバ２０側の「ＧＵＩＤ２」は携帯電話機１０側の「ＬＵＩＤ９」に対応する。なお、場合によっては（例えば「ＧＵＩＤ４」や「ＬＵＩＤ６」）、同期サーバ２０側のＩＤ、携帯電話機１０側のＩＤのうち何れかがマッピング情報として登録されていない場合もあり、この場合にはブランク（ｎｕｌｌ）になっている。
【０１０８】
次に、オブジェクト単位の同期データとして、例えば図１６に示すようなデータがデータ同期の送信側と受信側との間で送受信される場合について説明する。図１６は、同期サーバ２０がデータ同期の送信側であり、携帯電話機１０が受信側である場合の一例を示している。データ同期の送信側の同期サーバ２０は、図１６に示すように、オブジェクトのＩＤおよび親フォルダのＩＤを例えば図１８のマッピング情報を参照して携帯電話機１０側のＩＤに変換してから送信している。この動作は既述した通信部２１０が行ってもよく、またはこの動作のために別の手段（図示せず）を設けてもよい。
【０１０９】
図１６（ａ）に示すように、親フォルダのＩＤが「ＬＵＩＤ１０」、且つオブジェクトのＩＤが「ＬＵＩＤ１」となっており、親フォルダのＩＤおよびオブジェクトのＩＤの両方が携帯電話機１０側のＩＤに変換されている。つまり、元々は「ＬＵＩＤ１０」や「ＬＵＩＤ１」ではなく例えば「ＧＵＩＤ１０」や「ＧＵＩＤ７」などの同期サーバ２０側のＩＤであったものを、同期サーバ２０がマッピング情報を参照して携帯電話機１０側のＩＤに変換している。図１６（ａ）に示すような同期データを受信した携帯電話機１０の判断部１８０は、上記の［オブジェクトＩＤ等の詳細、その２］で説明した方法により、「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断を行う。なお、図１６（ａ）の例では同期データにフラグ情報が含まれているが、このフラグ情報が含まれていなくてもよい。この場合には、上記の［オブジェクトＩＤ等の詳細、その１］で説明した方法により、「追加」、「変更」、「削除」に関する判断が行われる。
【０１１０】
また、図１６（ｂ）の場合においては、オブジェクトのＩＤが「ＬＵＩＤ７」となっており携帯電話機１０側のＩＤに変換されている。なお、ｒｏｏｔ情報については、携帯電話機１０と同期サーバ２０との間で共通するため、変化が無く、ｒｏｏｔ情報そのままになっている。図１６（ｂ）に示すような同期データを受信した携帯電話機１０の判断部１８０は、上記の［オブジェクトＩＤ等の詳細、その１および２］で説明した方法により、「追加」、「変更」、「削除」に関する判断を行う。
【０１１１】
図１６（ｃ）は、同期サーバ２０側のＩＤに対応する携帯電話機１０側のＩＤが図１８のマッピング情報に登録されていない場合の一例である。図１６（ｃ）に示すように、親フォルダのＩＤは「ＬＵＩＤ１３」となっており携帯電話機１０側のＩＤに変換されているが、オブジェクトのＩＤは同期サーバ２０側のＩＤのままで「ＧＵＩＤ４」となっている。図１６（ｃ）に示すような同期データを受信した携帯電話機１０の判断部１８０は、上記の［オブジェクトＩＤ等の詳細、その１および２］で説明した方法により、「追加」、「変更」、「削除」に関する判断を行う。
【０１１２】
図１７は、携帯電話機１０がデータ同期の送信側であり、同期サーバ２０が受信側である場合の一例を示している。データ同期の送信側の携帯電話機１０は、図１７（ａ）や（ｂ）に示すように、オブジェクトのＩＤおよび親フォルダのＩＤを「ＬＵ」から始まる携帯電話機１０側のＩＤにして送信している。そして、データ同期の受信側の同期サーバ２０は、例えば図１８のマッピング情報を参照して、自装置である同期サーバ２０側のＩＤに変換してから、「追加」、「変更」、「削除」に関する判断を行う。この動作は既述した判断部２８０が行ってもよく、またはこの動作のために別の手段（図示せず）を設けてもよい。
【０１１３】
図１７（ｃ）は、データ同期の送信側の携帯電話機１０がマッピング情報には存在しないＩＤ（例えば「ＬＵＩＤ５」）のオブジェクトを送信する場合を示す。この場合に、受信側の同期サーバ２０は、マッピング情報に当該ＩＤの「ＬＵＩＤ５」のための欄を新たに設ける（図１８（ｂ）の最後の行を参照）。また、「ＬＵＩＤ５」に対応する同期サーバ２０側のＩＤが後に定まった場合には、当該ＩＤをマッピング情報に記録してもよい。なお、図１８（ｂ）は、図１８（ａ）ではｎｕｌｌとなっていた「ＬＵＩＤ６」に対応する同期サーバ２０側のＩＤが「ＧＵＩＤ５」と定まった場合の例を示しており、図１８（ａ）に比べると、「ＧＵＩＤ５」と追記されている。
【０１１４】
［本実施形態の作用および効果］
続いて、本実施形態にかかる通信システム１の作用及び効果について説明する。本実施形態の通信システム１によれば、携帯電話機１０および同期サーバ２０に備えられた各手段が上記のステップＳ３１０からステップＳ３９０までの一連の流れとなる全ての手順を行うことにより、携帯電話機１０が同期データの発生元および送信側となり、且つ同期サーバ２０が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
【０１１５】
また、携帯電話機１０および同期サーバ２０に備えられた各手段が上記のステップＳ４１０からステップＳ４９０までの一連の流れとなる全ての手順を行うことにより、同期サーバ２０が同期データの発生元および送信側となり、且つ携帯電話機１０が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
【０１１６】
また、本実施形態においては、判断部１８０，２８０は、フラグ情報を参照することにより、同期データに対して何れの動作を実行すべきかを確実且つ容易に判断することができる。
【０１１７】
また、本発明の通信装置によれば、構造体としてデータ入力があった場合においても、データの格納はオブジェクトを単位にして行われる。ここで、オブジェクトは所定のデータの集合体であり、このオブジェクトを一つ以上含むものが構造体であるため、オブジェクトのデータ量は構造体のデータ量より小さい。したがって、オブジェクトを単位にしてデータを格納することにより、当該オブジェクトを送受信の単位にして通信装置間のデータ同期を行うことができる。この場合には、構造体全体をデータ送受信の単位とする場合に比べ、送受信されるデータ量を少なくすることができ、効率よくデータ同期を行うことができる。
【０１１８】
また、本実施形態においては、同期部１９０，２９０が、ログ格納部１７０，２７０に格納されているログ情報を参照することにより、データ格納部１６０，２６０にて新たにデータの格納が行われた旨を判断することができる。
【０１１９】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されないことは言うまでもない。
【０１２０】
例えば、上記実施形態においては、データが階層構造化されてからデータ格納部１６０，２６０に格納されるが、これに限られることなく、データ格納部１６０，２６０が構造体のままでデータを格納してもよい。この場合には、同期の際に、オブジェクト生成部１４０，２４０が当該構造体のデータを階層構造化した上で、通信部１１０，２１０が当該階層構造化されたデータをオブジェクト単位で送受信することが好ましい。
【図面の簡単な説明】
【０１２１】
【図１】通信システム１の構成概要図である。
【図２】携帯電話機１０、同期サーバ２０、およびダウンロードサーバ３０のハードウェア構成図である。
【図３】携帯電話機１０の機能的な構成を示す構成概要図である。
【図４】一つ以上のオブジェクトＯａ、Ｏｂ…を含む構造体Ｓの一例をイメージした図である。
【図５】構造体Ｓより、当該構造体Ｓを特定する構造体特定情報（親フォルダＰ）、および複数のオブジェクトＯａ〜Ｏｚが抽出され階層構造化された様子を示す図である。
【図６】図４の構造体Ｓを元に、親フォルダＰおよび複数のオブジェクトＯａ、Ｏｂ…が抽出され階層構造化された様子を示す図である。
【図７】同期サーバ２０の機能的な構成を示す構成概要図である。
【図８】ダウンロードサーバ３０の機能的な構成を示す構成概要図である。
【図９】携帯電話機１０が構造体単位でデータを入力した場合の動作を示すシーケンス図である。
【図１０】図９におけるステップＳ１３０をより詳細に説明するためのフローチャートである。
【図１１】携帯電話機１０がオブジェクト単位でデータを入力した場合の動作を示すシーケンス図である。
【図１２】データ送信側の携帯電話機１０とデータ受信側の同期サーバ２０との間でデータ同期が行われる場合の動作を示すシーケンス図である。
【図１３】データ送信側の同期サーバ２０とデータ受信側の携帯電話機１０との間でデータ同期が行われる場合の動作を示すシーケンス図である。
【図１４】オブジェクトＩＤ等を詳細に説明するための図である（その１）。
【図１５】オブジェクトＩＤ等を詳細に説明するための図である（その２）。
【図１６】オブジェクトＩＤ等を詳細に説明するための図である（その３）。
【図１７】オブジェクトＩＤ等を詳細に説明するための図である（その３）。
【図１８】オブジェクトＩＤのマッピング情報の一例を示す図である。
【符号の説明】
【０１２２】
１…通信システム、１０…携帯電話機、１１０…通信部、１２０…解析部、１３０…雛形格納部、１４０…オブジェクト生成部、１５０…格納制御部、１６０…データ格納部、１７０…ログ格納部、１８０…判断部、１９０…同期部、２０…同期サーバ、２１０…通信部、２２０…解析部、２３０…雛形格納部、２４０…オブジェクト生成部、２５０…格納制御部、２６０…データ格納部、２７０…ログ格納部、２８０…判断部、２９０…同期部、３０…ダウンロードサーバ、３１０…入力部、２２０…データ格納部、２３０…通信部、４０…通信ネットワーク。
【図１】
0004719243.tif 000002
【図２】
0004719243.tif 000003
【図３】
0004719243.tif 000004
【図４】
0004719243.tif 000005
【図５】
0004719243.tif 000006
【図６】
0004719243.tif 000007
【図７】
0004719243.tif 000008
【図８】
0004719243.tif 000009
【図９】
0004719243.tif 000010
【図１０】
0004719243.tif 000011
【図１１】
0004719243.tif 000012
【図１２】
0004719243.tif 000013
【図１３】
0004719243.tif 000014
【図１４】
0004719243.tif 000015
【図１５】
0004719243.tif 000016
【図１６】
0004719243.tif 000017
【図１７】
0004719243.tif 000018
【図１８】
0004719243.tif 000019