JP4719243B2 - データ同期方法および通信装置 - Google Patents

データ同期方法および通信装置 Download PDF

Info

Publication number
JP4719243B2
JP4719243B2 JP2008106953A JP2008106953A JP4719243B2 JP 4719243 B2 JP4719243 B2 JP 4719243B2 JP 2008106953 A JP2008106953 A JP 2008106953A JP 2008106953 A JP2008106953 A JP 2008106953A JP 4719243 B2 JP4719243 B2 JP 4719243B2
Authority
JP
Japan
Prior art keywords
data
synchronization
communication
unit
communication device
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.)
Expired - Fee Related
Application number
JP2008106953A
Other languages
English (en)
Other versions
JP2009258971A (ja
Inventor
恭介 中矢
千恵 野田
利樹 ▲高▼津
哲夫 佐藤
拓 大西
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2008106953A priority Critical patent/JP4719243B2/ja
Publication of JP2009258971A publication Critical patent/JP2009258971A/ja
Application granted granted Critical
Publication of JP4719243B2 publication Critical patent/JP4719243B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ同期方法および通信装置に関するものである。
従来、例えば特許文献1に記載されたように、端末装置とサーバとの間でデータの同期を取るシステムが知られている。このようなシステムでは、例えば、コンサートスケジュールやスポーツ試合スケジュール等の日程情報が端末装置で更新された場合に、その更新内容を端末装置からサーバに送信することにより、端末装置で発生したデータ更新をサーバに反映させる。
特開2003−330849号公報
上記のようなシステムにおいて、端末装置が更新内容(例えば個々の日程情報)を含む全てのデータ(例えば全体のカレンダーデータ)を一つのデータ構造体としてサーバに送信することが行われている。つまり、例えば、更新された日程情報を一つのオブジェクトとして含むカレンダー構造体の全体を、データ送受信の単位としている。このことにより、構造体毎の確実な送受信処理を行うことができる。
しかしながら、構造体全体を同期の単位とする場合には、例えば一つの構造体のサイズが大きい場合や、構造体に不要なデータ(例えば未更新データ)が多く含まれている場合に、送受信されるデータ量が大きくなることや、送受信されるデータに同期不要なデータまで含まれることなど、同期処理が非効率的となる。
そこで、本発明は上記に鑑みてなされたもので、データ同期をオブジェクトを単位にして行うことにより、効率的な同期処理を可能とするデータ同期方法および通信装置を提供することを目的とする。
上記課題を解決するために、本発明のデータ同期方法は、データの同期を取り合う第1通信装置および第2通信装置を備える通信システムにおけるデータ同期方法であって、前記第1通信装置の第1同期手段が、前記第1通信装置の第1ログ格納手段に格納された第1ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第1通信装置の第1データ格納手段で発生した旨を判断する第1ステップと、前記第1同期手段が、当該変化のあった第1データおよび前記第1データを特定する第1特定情報を第1同期データとして前記第1データ格納手段よりオブジェクト単位で抽出する第2ステップと、前記第1通信装置の第1通信手段が、当該抽出した第1同期データを前記第2通信装置の第2通信手段に送信する第3ステップと、前記第2通信手段が、前記第1同期データを前記第1通信手段より受信する第4ステップと、前記第2通信装置の第2判断手段が、前記第1同期データに含まれた前記第1特定情報に基づいて、前記第1データを前記第2通信装置の第2データ格納手段に追加する追加動作、または前記第2データ格納手段に既に格納されており且つ前記第1特定情報に基づいて特定される第2既存データを前記第1データに書き換える変更動作、または前記第2既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第5ステップと、前記第2通信装置の第2格納制御手段が、前記第2判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第6ステップと、を備えることを特徴とする。
また、本発明の第1通信装置は、第2通信装置との間でデータの同期を取る第1通信装置であって、第1データおよび前記第1データを特定する第1特定情報を格納する第1データ格納手段と、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第1データ格納手段で発生した旨を表す第1ログ情報を格納する第1ログ格納手段と、前記第1ログ情報を参照して前記旨を判断し、当該変化のあった前記第1データおよび前記第1特定情報を第1同期データとして前記第1データ格納手段よりオブジェクト単位で抽出する第1同期手段と、当該抽出した前記第1同期データを前記第2通信装置の第2通信手段に送信する第1通信手段と、を備えることを特徴とする。
また、本発明の第2通信装置は、第1通信装置との間でデータの同期を取る第2通信装置であって、第1データおよび前記第1データを特定する第1特定情報を含む第1同期データを前記第1通信装置の第1通信手段より受信する第2通信手段と、前記第1同期データに含まれた前記第1特定情報に基づいて、前記第1データを第2データ格納手段に追加する追加動作、または前記第2データ格納手段に既に格納されており且つ前記第1特定情報に基づいて特定される第2既存データを前記第1データに書き換える変更動作、または前記第2既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第2判断手段と、前記第2判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第2格納制御手段と、を備えることを特徴とする。
このような本発明のデータ同期方法および通信装置によれば、第1通信装置および第2通信装置に備えられた各手段が上記の第1ステップから第6ステップまでの一連の流れとなる全ての手順を行うことにより、第1通信装置が同期データの発生元および送信側となり、且つ第2通信装置が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
また、本発明のデータ同期方法は、前記第2通信手段が、前記第1同期データに対するデータ同期が実行された旨を表す第2確認信号を前記第1通信手段に送信する第7ステップと、前記第1通信手段が、前記第2確認信号を前記第2通信手段より受信する第8ステップと、前記第1ログ格納手段が、前記第2確認信号に基づいて、前記第1ログ情報を削除する第9ステップと、を更に備えることが好ましい。
また、本発明の第1通信装置においては、前記第1通信手段が、前記第1同期データに対するデータ同期が実行された旨を表す第2確認信号を前記第2通信手段より受信し、前記第1ログ格納手段が、前記第2確認信号に基づいて、前記第1ログ情報を削除することが好ましい。
また、本発明の第2通信装置においては、前記第2通信手段が、前記第1同期データに対するデータ同期が実行された旨を表す第2確認信号を前記第1通信手段に送信することが好ましい。
このような本発明のデータ同期方法および通信装置によれば、第1通信装置および第2通信装置に備えられた各手段が上記の第7ステップから第9ステップまでの一連の流れとなる全ての手順を行うことにより、第1通信装置は第2通信装置側でデータ同期が終了したことを把握することができる。
また、本発明において、前記第2通信装置の第2同期手段が、前記第2通信装置の第2ログ格納手段に格納された第2ログ情報を参照して、前記オブジェクト単位でのデータの変化が前記第2データ格納手段で発生した旨を判断する第10ステップと、前記第2同期手段が、当該変化のあった第2データおよび前記第2データを特定する第2特定情報を第2同期データとして前記第2データ格納手段よりオブジェクト単位で抽出する第11ステップと、前記第2通信手段が、当該抽出した第2同期データを前記第1通信手段に送信する第12ステップと、前記第1通信手段が、前記第2同期データを前記第2通信手段より受信する第13ステップと、前記第1通信装置の第1判断手段が、前記第2同期データに含まれた前記第2特定情報に基づいて、前記第2データを前記第1データ格納手段に追加する追加動作、または前記第1データ格納手段に既に格納されており且つ前記第2特定情報に基づいて特定される第1既存データを前記第2データに書き換える変更動作、または前記第1既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第14ステップと、前記第1通信装置の第1格納制御手段が、前記第1判断手段の判断結果に基づいて、該追加動作、該変更動作、該削除動作のうち何れかの動作を実行する第15ステップと、を更に備えることが好ましい。
この場合には、第1通信装置および第2通信装置に備えられた各手段が上記の第10ステップから第15ステップまでの一連の流れとなる全ての手順を行うことにより、第2通信装置が同期データの発生元および送信側となり、且つ第1通信装置が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
また、本発明のデータ同期方法は、前記第1通信手段が、前記第2同期データに対するデータ同期が実行された旨を表す第1確認信号を前記第2通信手段に送信する第16ステップと、前記第2通信手段が、前記第1確認信号を前記第1通信手段より受信する第17ステップと、前記第2ログ格納手段が、前記第1確認信号に基づいて、前記第2ログ情報を削除する第18ステップと、を更に備えることが好ましい。
このような本発明のデータ同期方法によれば、第1通信装置および第2通信装置に備えられた各手段が上記の第16ステップから第18ステップまでの一連の流れとなる全ての手順を行うことにより、第2通信装置は第1通信装置側でデータ同期が終了したことを把握することができる。
また、本発明において、前記第1同期データには、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を表すフラグ情報が含まれており、前記第2判断手段は、前記フラグ情報に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れの動作を実行すべきか判断することが好ましい。
この場合には、第2判断手段は、当該フラグ情報を参照することにより、同期データに対して何れの動作を実行すべきかを確実且つ容易に判断することができる。
また、本発明の通信装置は、所定のデータ集合体であるオブジェクトの雛形を格納する雛形格納手段と、入力データの入力を受ける通信手段と、前記入力データが前記オブジェクトを一つ以上含む構造体であるか否かを前記雛形を元に解析する解析手段と、前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出手段と、前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納するデータ格納手段と、を備えることを特徴とする。
このような本発明の通信装置によれば、構造体としてデータ入力があった場合においても、データの格納はオブジェクトを単位にして行われる。ここで、オブジェクトは所定のデータの集合体であり、このオブジェクトを一つ以上含むものが構造体であるため、オブジェクトのデータ量は構造体のデータ量より小さい。したがって、オブジェクトを単位にしてデータを格納することにより、当該オブジェクトを送受信の単位にして通信装置間のデータ同期を行うことができる。この場合には、構造体全体をデータ送受信の単位とする場合に比べ、送受信されるデータ量を少なくすることができ、効率よくデータ同期を行うことができる。
また、本発明において、前記構造体特定情報と前記一つ以上のオブジェクトとが前記データ格納手段に新たに格納された旨を表すログ情報を格納するログ格納手段を更に備えることが好ましい。
この場合には、例えば他の手段が、当該ログ情報を参照することにより、データ格納手段にて新たにデータの格納が行われた旨を判断することができる。
本発明によれば、データ同期をオブジェクトを単位にして行うことにより、効率的な同期処理を可能とするデータ同期方法および通信装置が提供される。
以下、添付図面を参照して本発明にかかるデータ同期方法および通信装置の好適な実施形態を詳細に説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
[通信システム1の全体構成]
まず、本発明の実施形態に係る通信システム1の構成について、図1を参照しながら説明する。図1は、通信システム1の構成概要図である。図1に示すように、通信システム1は、携帯電話機10(通信装置、第1通信装置または第2通信装置)、同期サーバ20(通信装置、第1通信装置または第2通信装置)およびダウンロードサーバ30から構成され、ダウンロードサーバ30は例えば外部の装置(図示せず)からダウンロードした入力データを携帯電話機10または同期サーバ20に送信し、携帯電話機10と同期サーバ20とは互いにデータの同期を取り合う。また、携帯電話機10、同期サーバ20、ダウンロードサーバ30のそれぞれは通信ネットワーク40により互いに通信可能に接続されている。
[携帯電話機10の構成]
携帯電話機10について詳細に説明する。図2は携帯電話機10のハードウェア構成図である。図2に示すように、携帯電話機10は、物理的には、CPU11、主記憶装置であるROM12及びRAM13、操作ボタンなどの入力デバイス14、LCDや有機ELディスプレイなどの出力デバイス15、同期サーバ20やダウンロードサーバ30との間でデータの送受信を行う通信モジュール16、メモリディバイス等の補助記憶装置17を備えて構成される。後述する携帯電話機10の各機能は、CPU11、ROM12、RAM13等のハードウェア上に所定のソフトウェアを読み込ませることにより、CPU11の制御の元で入力デバイス14、出力デバイス15、通信モジュール16を動作させると共に、主記憶装置12,13や補助記憶装置17におけるデータの読み出し及び書き込みを行うことで実現される。
図3は、携帯電話機10の機能的な構成を示す構成概要図である。図3に示すように、携帯電話機10は、機能的には、通信部110(通信手段、第1通信手段または第2通信手段)、解析部120(解析手段)、雛形格納部130(雛形格納手段)、オブジェクト生成部140(抽出手段)、格納制御部150(第1格納制御手段または第2格納制御手段)、データ格納部160(データ格納手段、第1データ格納手段または第2データ格納手段)、ログ格納部170(ログ格納手段、第1ログ格納手段または第2ログ格納手段)、判断部180(第1判断手段または第2判断手段)、および同期部190(第1同期手段または第2同期手段)を備えて構成される。
通信部110は、データの送受信を行うものである。通信部110は、携帯電話機10のユーザの入力操作により、または同期サーバ20との通信により、またはダウンロードサーバ30との通信により、データの送受信を行う。通信部110は、構造体(後述する)の単位で、またはオブジェクト(後述する)の単位で、データの送受信を行うことができる。通信部110は、携帯電話機10のユーザの入力操作により、またはダウンロードサーバ30との通信により、データを入力した場合には、当該データ(以下、入力データ)を解析部120に出力する。また、通信部110は、同期サーバ20との通信により、データを入力した場合には、当該データ(以下、同期データ)を判断部180に出力する。なお、通信部110は、既述の図2で言えば、通信モジュール16により構成されることができる。
ここで、「オブジェクト」および「構造体」について説明する。オブジェクトは一定のルールに基づくプロパティや値を有する文字や画像データの集合体であり、構造体はこのオブジェクトを一つ以上含むデータの集合体である。このため、構造体のデータ量はオブジェクトのデータ量より大きい。図4は、オブジェクトを一つ以上含む構造体をイメージした図である。図4において、構造体Sは、当該構造体Sを特定する構造体特定情報S1と、複数のオブジェクトOa、Ob、…からなる。一例において、構造体は携帯電話機10内で用いられるカレンダーデータであり、オブジェクトは当該カレンダーデータにおけるそれぞれのスケジュールである。
図3に戻り、解析部120は、通信部110からの入力データに対して、当該入力データがオブジェクトであるか否か、構造体であるか否かを判断する。オブジェクトであるか否かの判断の際に、解析部120は、雛形格納部130に格納されたオブジェクトの雛形を用いる。オブジェクトの雛形は例えばオブジェクトの開始句および終了句の一対からなることができ、例えば既述の図4の一例で言えば、「BEGIN:VEVENT」および「END:VEVENT」の一対である。解析部120は、入力データを順に検索していき、上記の開始句および終了句が検索されたら、当該開始句および終了句を含め当該開始句および終了句に挟まれた部分をオブジェクトと判断する。これ以外に、例えばオブジェクトの開始句同士の一対(すなわち、現オブジェクトの開始句と次オブジェクトの開始句との一対)をオブジェクトの雛形として用いてもよい。この場合に、解析部120は、入力データを順に検索していき、現オブジェクトの開始句および次オブジェクトの開始句が検索されたら、当該現オブジェクトの開始句を含め当該両開始句に挟まれた部分をオブジェクトと判断する。
また、構造体であるか否かの判断の際に、解析部120は、雛形格納部130に格納された構造体の雛形を用いる。構造体の雛形は構造体の開始句および終了句の一対からなり、例えば既述の図4の一例で言えば、「BEGIN:VCALENDAR」および「END:VCALENDAR」の一対である。解析部120は、入力データを順に検索していき、「BEGIN:VCALENDAR」および「END:VCALENDAR」との開始句および終了句が検索され、且つ当該開始句および終了句の間に上記の判断方法によりオブジェクトと判断された部分が一つ以上あったら、当該「BEGIN:VCALENDAR」および「END:VCALENDAR」を含め当該開始句および終了句に挟まれた部分を構造体と判断する。
解析部120は、入力データが構造体であると判断された場合に、当該構造体をオブジェクト生成部140に出力する。一方、解析部120は、入力データが構造体でないと判断された場合には、通信部110がオブジェクトの単位でデータ入力を行ったと判断し、当該入力データを格納制御部150に出力する。入力データが構造体でないと判断される場合としては、例えば、入力データにオブジェクトが含まれているが当該オブジェクトが構造体内に存在するものではない場合、つまりオブジェクトが構造体の一部分としてではなくオブジェクト単独で存在する場合が挙げられる。更に、入力データにオブジェクトそのものは含まれておらず、何れかのオブジェクトを削除する旨の情報(後述するフラグ情報等)が含まれている場合が挙げられる。
解析部120は、通信部110がオブジェクトの単位でデータ入力を行ったと判断された場合に、当該オブジェクトに対して「追加」、「変更」、または「削除」のうち何れかの動作が行われるべきかを更に判断し、当該判断の結果を表す情報を格納制御部150に出力する。解析部120の判断は、上記入力データに、「追加」、「変更」、または「削除」の何れかの動作を表すフラグ情報が含まれている場合には、当該フラグ情報を元に行われてもよい。例えば、入力データに「add」とのフラグ情報が含まれている場合に、解析部120は、通信部110が入力した入力データに含まれているオブジェクトに対して今後「追加」の処理が行われるべきとのことを判断する。また、「replace」とのフラグ情報に対して解析部120は「変更」を判断し、「delete」とのフラグ情報に対して解析部120は「削除」を判断する。なお、削除のときは、入力データにオブジェクトそのものは含まれておらず、「delete」とのフラグ情報と当該削除すべきオブジェクトを特定する情報とが含まれる(後述するID等)。
一方、フラグ情報を元に上記の判断を行うこととは別に、オブジェクトそのものを特定するための特定情報(ID)に基づいて上記の判断を行うことができる。例えば、入力データにオブジェクトが含まれ、且つ当該オブジェクトが携帯電話機10の保持している正規のIDを有している場合に、解析部120は「変更」を判断することができる。また、例えば、入力データにオブジェクトが含まれていないが、オブジェクトの正規のIDが含まれて入る場合に、解析部120は当該IDのオブジェクトに対して「削除」を判断することができる。また、例えば、入力データにオブジェクトが含まれ、且つ当該オブジェクトがテンポラリのIDを有している場合に、解析部120は「追加」を判断することができる。なお、オブジェクトのIDは、携帯電話機10、同期サーバ20、ダウンロードサーバ30の何れもが付与することができる。このとき、携帯電話機10、同期サーバ20、ダウンロードサーバ30のそれぞれが異なるIDを付与した場合には、携帯電話機10、同期サーバ20、ダウンロードサーバ30の何れかが異なるIDに対するマッピング情報を保持していることが好ましい。そして、IDの送受信の際に、マッピング情報に対する同期を行うことが好ましい。
なお、以上で簡略に説明した解析部120の上記判断(「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断)、オブジェクトのID、フラグ情報、マッピング情報等については、その詳細について後ほど図14〜図18を参照しながら詳しく説明する。なお、解析部120の上記判断を判断部180が行ってもよく、この場合には、解析部120がオブジェクト単位の入力データを判断部180に出力し、判断部180は上記判断を行った後に判断の結果を表す情報を格納制御部150に出力する。
次に、オブジェクト生成部140について説明する。オブジェクト生成部140は、解析部120より構造体を入力し、当該構造体より、当該構造体を特定する構造体特定情報および一つ以上のオブジェクトを抽出するものである。この抽出の際に、オブジェクト生成部140は、雛形格納部130に格納された構造体およびオブジェクトの雛形を用いる。オブジェクト生成部140は、当該抽出した構造体特定情報および一つ以上のオブジェクトからなる階層構造化されたデータを格納制御部150に出力する。
図5は、オブジェクト生成部140が、構造体Sより、当該構造体Sを特定する構造体特定情報(以下、親フォルダP)および複数のオブジェクトOa〜Ozを抽出した様子を示す。図5では、親フォルダPの配下に複数のオブジェクトOa〜Ozが所属するという階層構造が示されている。
図6は、オブジェクト生成部140が、既述の図4の一例の構造体Sを元に親フォルダPおよびオブジェクトOa、Ob…を抽出し階層構造化した様子を示す。オブジェクト生成部140は、まず、オブジェクトの開始句および終了句である「BEGIN:VEVENT」および「END:VEVENT」に挟まれた部分をオブジェクトOa、Ob…として抽出する。そして、当該オブジェクトOa、Ob…として抽出した部分それぞれに、構造体の開始句および終了句である「BEGIN:VCALENDAR」および「END:VCALENDAR」を付与し、且つバージョン情報を付与する。以上により、構造体SからオブジェクトOa、Ob…が抽出される。
一方、オブジェクトOa、Ob…が抽出された後に残った部分のうち構造体の開始句および終了句、バージョン情報を除いた部分を親フォルダPの開始句および終了句(<Folder>と</Folder>との一対)でくくり、親フォルダP内の各情報をそれぞれの各開始句および終了句(<Ext>と</Ext>との一対、<XNam>と</XNam>との一対、<XVal>と</XVal>との一対など)でくくる。以上により、構造体Sから親フォルダPが抽出される。一つの構造体Sから抽出されたオブジェクトOa、Ob…および親フォルダPの両方が当該構造体の開始句および終了句を有することにより、当該オブジェクトOa、Ob…および親フォルダPが互いに関連付けられる。なお、図示はしないが、図6の一例において、構造体の開始句および終了句をオブジェクトおよび親フォルダの両方に持たせる方法以外に、別の所定の識別情報をそれぞれに付与することにより、オブジェクトと親フォルダとを関連付けてもよい。
図3に戻り、格納制御部150は、解析部120またはオブジェクト生成部140より入力したデータをデータ格納部160に格納させ、且つそのログ情報をログ格納部170に格納させるものである。格納制御部150は、解析部120またはオブジェクト生成部140よりオブジェクト単位のデータを入力すると、「追加」、「変更」、または「削除」のうち何れかの動作を表す情報に基づいて、それぞれのオブジェクトに対する「追加」、「変更」、または「削除」の処理を行う。
すなわち、「追加」の場合に、格納制御部150は、当該入力データに含まれたオブジェクト(以下、追加オブジェクト)をデータ格納部160に追加して格納させる。この追加格納の際に、当該追加オブジェクトに付与された構造体の開始句および終了句等(以下、追加構造体特定情報)と同一の開始句および終了句等を有する構造体(具体的には親フォルダP)が既にデータ格納部160に存在する場合には、格納制御部150は当該既に存在する構造体に当該追加オブジェクトを関連付けて格納させる。つまり、当該追加オブジェクトを当該既に存在する構造体の配下に置き、階層構造として格納する。一方、そのような構造体がデータ格納部160に存在しない場合には、格納制御部150は、当該オブジェクトに付与された構造体の開始句および終了句等を有する新しい構造体を設けて、当該追加オブジェクトを当該新しい構造体に関連付けて格納させる。
また、「変更」の場合に、格納制御部150は、解析部120またはオブジェクト生成部140より当該入力したオブジェクト(以下、変更後のオブジェクト)と、データ格納部160に格納されていた既存のオブジェクト(以下、変更前のオブジェクト)とを置き換える。このとき、格納制御部150が入力したデータには変更前のオブジェクトを特定する特定情報(以下、変更前オブジェクト特定情報)が含まれることが好ましい。また、「削除」の場合に、格納制御部150は、データ格納部160に格納されていた当該オブジェクト(以下、削除オブジェクト)を削除する。このとき、格納制御部150が入力したデータには削除すべきオブジェクトを特定する特定情報(以下、削除オブジェクト特定情報)が含まれることが好ましい。以上の「追加」、「変更」、「削除」の各処理後に、格納制御部150は、データ格納部160に対してオブジェクトの「追加」、「変更」、「削除」の各処理を行ったことを表すログ情報をログ格納部170に格納させる。
判断部180は、通信部110より入力した同期データ(第1同期データ、第2同期データ)に含まれたオブジェクトID(第1特定情報、第2特定情報)に基づいて、当該同期データに含まれたオブジェクトに対して「追加」、「変更」、または「削除」のうち何れかの動作が行われるべきかを判断する。この判断は、同期データに、「追加」、「変更」、または「削除」の何れかの動作を表すフラグ情報が含まれている場合には、当該フラグ情報を元に行われる。この他、判断部180の判断動作は上記説明した解析部120の判断動作と概ね一致する。判断部180は、上記判断を行った後に、当該判断の結果を表す情報および同期データを格納制御部150に出力する。格納制御部150は、当該判断の結果を表す情報に基づいて、当該同期データに対する「追加」、「変更」、または「削除」のうち何れかの動作を行う。
同期部190は、ログ格納部170に格納されているログ情報(第1ログ情報、第2ログ情報)を参照して、オブジェクト単位でのデータの変化がデータ格納部160で発生した旨を判断し、当該変化のあったデータ(第1データ、第2データ)および該データの特定情報(第1特定情報、第2特定情報)を同期データとしてデータ格納部160よりオブジェクト単位で抽出するものである。同期部190が当該抽出した同期データを通信部110に出力すると、通信部110は当該同期データを同期サーバ20の通信部210に通信ネットワーク40を用いて送信する。このとき、通信部110は当該同期データをオブジェクト単位で送信してもよい。または、通信部110は複数のオブジェクトをまとめた形で当該同期データを同期サーバ20の通信部210に送信してもよい。
[同期サーバ20の構成]
続いて、図1の同期サーバ20について詳細に説明する。図2は同期サーバ20のハードウェア構成図である。図2に示すように、同期サーバ20は、物理的には、物理的には、CPU21、ROM22及びRAM23等の主記憶装置、キーボード及びマウス等の入力デバイス24、ディスプレイ等の出力デバイス25、携帯電話機10やダウンロードサーバ30との間でデータの送受信を行うためのネットワークカード等の通信モジュール26、ハードディスク等の補助記憶装置27などを含む通常のコンピュータシステムとして構成される。後述する同期サーバ20の各機能は、CPU21、ROM22、RAM23等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU21の制御の元で入力デバイス24、出力デバイス25、通信モジュール26を動作させると共に、主記憶装置22,23や補助記憶装置27におけるデータの読み出し及び書き込みを行うことで実現される。
図7は、同期サーバ20の機能的な構成を示す構成概要図である。図7に示すように、同期サーバ20は、機能的には、通信部210(通信手段、第1通信手段または第2通信手段)、解析部220(解析手段)、雛形格納部230(雛形格納手段)、オブジェクト生成部240(抽出手段)、格納制御部250(第1格納制御手段または第2格納制御手段)、データ格納部260(データ格納手段、第1データ格納手段または第2データ格納手段)、ログ格納部270(ログ格納手段、第1ログ格納手段または第2ログ格納手段)、判断部280(第1判断手段または第2判断手段)、および同期部290(第1同期手段または第2同期手段)を備えて構成される。
通信部210は、データの送受信を行うものである。通信部210は、携帯電話機10またはダウンロードサーバ30との通信により、データの送受信を行う。通信部210は、構造体の単位で、またはオブジェクトの単位で、データの送受信を行うことができる。通信部210は、ダウンロードサーバ30との通信により、データを入力した場合には、当該データ(入力データ)を解析部220に出力する。また、通信部210は、携帯電話機10との通信により、データを入力した場合には、当該データ(同期データ)を判断部280に出力する。なお、通信部210は、既述の図2で言えば、通信モジュール26により構成されることができる。
同期サーバ20の他の機能要素の各機能は上記説明した携帯電話機10の機能要素の各機能と概ね一致する。このため、ここでは同期サーバ20の各機能要素それぞれを説明することを省略する代わりに、図9〜図13のシーケンス図やフローチャートによる下記の動作説明において、同期サーバ20の各機能要素の動作について詳細に述べる。
[ダウンロードサーバ30の構成]
続いて、図1のダウンロードサーバ30について説明する。図2はダウンロードサーバ30のハードウェア構成図である。図2に示すように、ダウンロードサーバ30は、物理的には、CPU31、ROM32及びRAM33等の主記憶装置、キーボード及びマウス等の入力デバイス34、ディスプレイ等の出力デバイス35、携帯電話機10、同期サーバ20、図示しない外部の装置との間でデータの送受信を行うためのネットワークカード等の通信モジュール36、ハードディスク等の補助記憶装置37などを含む通常のコンピュータシステムとして構成される。後述するダウンロードサーバ30の各機能は、CPU31、ROM32、RAM33等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU31の制御の元で入力デバイス34、出力デバイス35、通信モジュール36を動作させると共に、主記憶装置32,33や補助記憶装置37におけるデータの読み出し及び書き込みを行うことで実現される。
図8は、ダウンロードサーバ30の機能的な構成を示す構成概要図である。図8に示すように、ダウンロードサーバ30は、機能的には、入力部310、データ格納部320、および通信部330を備えて構成される。
入力部310は、例えば外部の装置(図示せず)からのダウンロードにより、入力データを入力するものである。入力部310は、構造体の単位で、またはオブジェクトの単位で、入力データを入力することができる。入力部310は、当該入力した入力データをデータ格納部320に出力して格納させる。そして、通信部330が、データ格納部320に格納された入力データを携帯電話機10の通信部110または同期サーバ20の通信部210に送信する。データ格納部320は入力データを格納する際にログ情報を記録してもよく、この場合に、通信部330は当該ログ情報に基づいて入力データの送信を行うことができる。また、通信部330は、既述の図2で言えば、通信モジュール36により構成することができる。
[通信システム1の動作]
続いて、通信システム1により行われる動作(データ同期方法)について説明する。
[構造体単位でのデータ入力の場合]
まず、携帯電話機10が構造体単位で入力データを入力した場合の動作について、図9、10を参照しながら説明する。図9はこの場合の携帯電話機10の動作を示すシーケンス図であり、図10は図9におけるステップS130をより詳細に説明するためのフローチャートである。
最初に、通信部110が、ユーザの入力操作により、またはダウンロードサーバ30からの通信により、入力データを構造体単位で入力する(ステップS110)。通信部110は、当該入力した入力データを解析部120に出力する(ステップS111)。
次に、解析部120が、通信部110からの入力データに対して、当該入力データが構造体であるか否かを判断する。この判断の際に、解析部120は、雛形格納部130に格納された構造体およびオブジェクトの雛形を用いる(ステップS120)。解析部120は、入力データが構造体であると判断された場合に、当該構造体をオブジェクト生成部140に出力する(ステップS121)。
次に、オブジェクト生成部140が、解析部120より入力した当該構造体より、当該構造体を特定する構造体特定情報および一つ以上のオブジェクトを抽出し、当該構造体の入力データを階層構造に変換する。このとき、オブジェクト生成部140は、雛形格納部130に格納された構造体およびオブジェクトの雛形を用いるが、その詳細については後述する(ステップS130)。オブジェクト生成部140は、当該抽出した構造体特定情報および一つ以上のオブジェクトからなる階層構造化されたデータを格納制御部150に出力する(ステップS138)。
次に、格納制御部150が、オブジェクト生成部140より入力した階層構造化されたデータをデータ格納部160に格納させる。データ格納の際に、データ格納の対象となるオブジェクトに付与された構造体の開始句および終了句等と同一の開始句および終了句等を有する構造体が既にデータ格納部160に存在する場合には、格納制御部150は当該既に存在する構造体に当該データ格納の対象となるオブジェクトを関連付けて格納させる。つまり、当該データ格納の対象となるオブジェクトを当該既に存在する構造体の配下に置き、階層構造として格納する。一方、そのような構造体がデータ格納部160に存在しない場合には、格納制御部150は、当該データ格納の対象となるオブジェクトに付与された構造体の開始句および終了句等を有する新しい構造体を設けて、当該データ格納の対象となるオブジェクトを当該新しい構造体に関連付けて格納させる(ステップS140)。
次に、格納制御部150が、ステップS140においてデータ格納が行われたことを表すログ情報をログ格納部170に格納させる。なお、ログ情報においては、構造体に関するログ情報とオブジェクトに関するログ情報とが別々に格納されてもよく、この場合に格納されるログ情報の総数は例えばオブジェクト生成部140が抽出した構造体特定情報およびオブジェクトの総数と一致する(ステップS150)。
次に、通信部180がデータ格納部160に格納されたオブジェクトを送信の単位として同期サーバ20との間でデータの同期を取るが、この手順については図12を参照しながら後述する。
ここで、上記のステップS130について図10を参照しながらより詳細に説明する。図9のステップS130は、オブジェクト生成部140が解析部120より入力した構造体より構造体特定情報および一つ以上のオブジェクトを抽出してデータの階層構造化を行うための手順である。
最初に、オブジェクト生成部140が解析部120からの入力データを順に検索していく(ステップS131)。当該検索の結果、構造体の開始句が発見され(ステップS132:YES)、且つオブジェクトの開始句および終了句が発見されたら(ステップS133:YES)、当該発見されたオブジェクトの開始句と終了句との間の情報要素をオブジェクトとして切り出す(ステップS134)。
次に、ステップS133にて発見されたオブジェクトの終了句の次の情報要素が構造体の終了句であるか否かを判断する(ステップS135)。ステップS135の判断にて、オブジェクトの終了句の次の情報要素が構造体の終了句でない場合には(ステップS135:NO)、処理の流れはステップS131に戻り、上述したステップS131〜ステップS135が繰り返して行われる。一方、ステップS135の判断にて、オブジェクトの終了句の次の情報要素が構造体の終了句である場合には(ステップS135:YES)、ステップS134にてオブジェクトとして切り出した部分以外の部分を親フォルダとして切り出す(ステップS136)。
次に、ステップS134にて切り出したオブジェクトおよびステップS136にて切り出した親フォルダからなる階層構造を形成する。階層構造の形成方法の一例としては、既述したように、例えば解析部120より入力した構造体の開始句および終了句をステップS134にて切り出したオブジェクトに付与することにより、結果的にオブジェクトおよび親フォルダに同一の開始句および終了句を持たせる方法がある(ステップS137)。
なお、上記ステップS132にて構造体の開始句が発見されない場合や、上記ステップS133にてオブジェクトの開始句および終了句が発見されない場合には、処理はそのまま終了する。
[オブジェクト単位でのデータ入力の場合]
続いて、携帯電話機10がオブジェクト単位で入力データを入力した場合の動作について、図11を参照しながら説明する。図11はこの場合の携帯電話機10の動作を示すシーケンス図である。図11では、任意のオブジェクトに対して、「追加処理」、「変更処理」、または「削除処理」が行われる。
最初に、通信部110が、ユーザの入力操作により、またはダウンロードサーバ30からの通信により、入力データをオブジェクト単位で入力する。通信部110が入力する入力データには、以下に述べるような情報が含まれることができる。すなわち、入力データが任意のオブジェクト(以下、追加オブジェクト)を追加するためのものである場合には、当該入力データに、当該追加オブジェクトと、当該追加オブジェクトを含む構造体を特定する特定情報(追加構造体特定情報)とが含まれる。当該追加オブジェクトそのものを特定する情報として当該追加オブジェクトの特定情報(ID)が更に含まれていてもよい。追加構造体特定情報は、例えば、当該追加オブジェクトに付与された構造体の開始句および終了句等である。または、追加構造体特定情報が、例えば、当該追加オブジェクトに付与された構造体の開始句および終了句等と同一の開始句および終了句等を有する親フォルダであってもよい。また、入力データがデータ格納部160に既に格納されている任意のオブジェクト(以下、変更前オブジェクト)を変更するためのものである場合には、当該入力データに、当該変更前オブジェクトを特定する特定情報(変更前オブジェクト特定情報)と、変更後のオブジェクトとが含まれる。また、入力データがデータ格納部160に既に格納されている任意のオブジェクト(以下、削除オブジェクト)を削除するためのものである場合には、当該入力データに、当該削除オブジェクトを特定する特定情報(削除オブジェクト特定情報)が含まれる。また、入力データに、「追加処理」、「変更処理」、「削除処理」をそれぞれ表すフラグ情報(例えば既述の「add」、「replace」、「delete」など)が含まれていてもよい。通信部110は、以上のような入力データを解析部120に出力する(ステップS210、ステップS211)。
次に、解析部120が、通信部110からの入力データにおけるオブジェクトに対して「追加処理」、「変更処理」、または「削除処理」のうち何れの動作が行われるべきかを判断し、当該判断の結果を表す情報と共に通信部110からの入力データを格納制御部150に出力する。解析部120の判断は、既述したように、通信部110からの入力データに含まれたフラグ情報またはそれぞれのオブジェクトの特定情報(ID)に基づいて行われることができる(ステップS220、ステップS221)。
次に、格納制御部150が、解析部120よりデータを入力し、当該データに含まれた「追加処理」、「変更処理」、または「削除処理」のうち何れかの動作を表す情報に基づいて、当該データに含まれたオブジェクトに対する「追加処理」、「変更処理」、または「削除処理」を行う。「追加処理」の場合に、格納制御部150は、当該入力データに含まれた追加オブジェクトをデータ格納部160に追加して格納させる。この追加格納の際に、当該追加オブジェクトに付与された構造体の開始句および終了句等(追加構造体特定情報)と同一の開始句および終了句等を有する構造体(具体的には親フォルダP)が既にデータ格納部160に存在する場合には、格納制御部150は当該既に存在する構造体に当該追加オブジェクトを関連付けて格納させる。つまり、当該追加オブジェクトを当該既に存在する構造体の配下に置き、階層構造として格納する。一方、そのような構造体がデータ格納部160に存在しない場合には、格納制御部150は、当該追加オブジェクトに付与された構造体の開始句および終了句等を有する新しい構造体を設けて、当該追加オブジェクトを当該新しい構造体に関連付けて格納させる。また、「変更処理」の場合に、格納制御部150は、当該入力データに含まれた変更後のオブジェクトと、データ格納部160に格納されていた既存の変更前のオブジェクトとを置き換える。このとき、既存の変更前のオブジェクトは解析部120より入力した入力データに含まれた変更前オブジェクト特定情報により特定することができる。また、「削除処理」の場合に、格納制御部150は、データ格納部160に格納されていた当該削除オブジェクトを削除する。このとき、当該削除オブジェクトは解析部120より入力した入力データに含まれた削除オブジェクト特定情報により特定することができる。(ステップS230)。
次に、格納制御部150が、ステップS230における「追加処理」、「変更処理」、「削除処理」の各処理後に、当該各処理を行ったことを表すログ情報をログ格納部170に格納させる(ステップS240)。
[オブジェクト単位でのデータ同期の場合、その1]
続いて、同期データの発生元であり且つ同期データの送信側である携帯電話機10と、同期データの受信側である同期サーバ20との間でデータ同期が行われる場合の動作について、図12を参照しながら説明する。図12は、この場合に携帯電話機10と同期サーバ20との間で行われる動作を示すシーケンス図である。
最初に、携帯電話機10の同期部190が、ログ格納部170に格納されたログ情報(以下、第1ログ情報)を参照して、オブジェクト単位でのデータの変化がデータ格納部160で発生した旨を判断する(ステップS310、第1ステップ)。
次に、同期部190が、当該変化のあったオブジェクト単位のデータ(以下、第1データ)、および第1データを特定する例えばIDである特定情報(以下、第1特定情報)をデータ格納部160よりオブジェクト単位で抽出する。以下では、この抽出した第1データおよび第1特定情報を第1同期データという(ステップS320、第2ステップ)。同期部190は、第1同期データを通信部110に出力する(ステップS321)。
次に、通信部110が、同期部190より入力した第1同期データを同期サーバ20の通信部210に送信する。このとき、通信部110は当該第1同期データをオブジェクト単位で送信してもよい。または、通信部110は複数のオブジェクトをまとめた形で当該第1同期データを同期サーバ20の通信部210に送信してもよい(ステップS330、第3ステップ)。
次に、同期サーバ20の通信部210が、第1同期データを携帯電話機10の通信部110より受信する(ステップS340、第4ステップ)。通信部210は、当該受信した第1同期データを同期サーバ20の判断部280に出力する(ステップS341)。
次に、判断部280が、第1同期データに含まれた第1特定情報に基づいて、第1データをデータ格納部250に追加する追加動作、またはデータ格納部250に既に格納されており且つ第1特定情報に基づいて特定される既存のデータ(以下、第2既存データ)を第1データに書き換える変更動作、または上記第2既存データを削除する削除動作のうち何れの動作を実行すべきか判断する。なお、判断部280のこの判断動作の詳細については後述する(ステップS350、第5ステップ)。判断部280は、ステップS350の判断結果を表す情報を格納制御部250に出力する(ステップS351)。
次に、格納制御部250が、ステップS351にて入力した判断結果を表す情報に基づいて、上記の追加動作、変更動作、削除動作のうち何れかの動作を実行する(ステップS360、第6ステップ)。
次に、通信部210が、第1同期データに対するデータ同期が実行された旨を表す信号(以下、第2確認信号)を携帯電話機10の通信部110に送信する。なお、本実施形態においては、ステップS340〜ステップS360の全ての手順が正常に実行された後に、第2確認信号を通信部110に送信しているが、これに限られることはない。例えば、図示はしないが、ステップS340〜ステップS360のそれぞれの手順が正常に実行された後に、それぞれの手順の直後に第2確認信号を通信部110にその都度送信してもよい(ステップS370、第7ステップ)
次に、携帯電話機10の通信部110が、第2確認信号を通信部210より受信し(ステップS380、第8ステップ)、当該第2確認信号をログ格納部170に出力する(ステップS381)。
次に、ログ格納部170が、当該第2確認信号に基づいて、ステップS310で同期部190が参照した第1ログ情報を削除する(ステップS390、第9ステップ)。
以上で説明したステップS310〜ステップS390により、第1同期データの発生元であり且つ第1同期データの送信側である携帯電話機10と、第1同期データの受信側である同期サーバ20との間で、第1同期データに対するデータ同期がオブジェクト単位で行われた。
[オブジェクト単位でのデータ同期の場合、その2]
続いて、同期サーバ20で発生した同期データに対するデータ同期について、図13のシーケンス図を参照しながら説明する。図13を参照する以下の説明は、同期データの発生元であり且つ同期データの送信側である同期サーバ20と、同期データの受信側である携帯電話機10との間で行われるデータ同期に関する。
ステップS310〜ステップS390の次に、同期サーバ20の同期部290が、ログ格納部270に格納されたログ情報(以下、第2ログ情報)を参照して、オブジェクト単位でのデータの変化がデータ格納部260で発生した旨を判断する(ステップS410、第10ステップ)。
次に、同期部290が、当該変化のあったオブジェクト単位のデータ(以下、第2データ)、および第2データを特定する例えばIDである特定情報(以下、第2特定情報)をデータ格納部260より抽出する。以下では、この抽出した第2データおよび第2特定情報を第2同期データという(ステップS420、第11ステップ)。同期部290は、第2同期データを通信部210に出力する(ステップS421)。
次に、通信部210が、同期部290より入力した第2同期データを携帯電話機10の通信部110に送信する。このとき、通信部210は当該第2同期データをオブジェクト単位で送信してもよい。または、通信部210は複数のオブジェクトをまとめた形で当該第2同期データを携帯電話機10の通信部110に送信してもよい(ステップS430、第12ステップ)。
次に、携帯電話機10の通信部110が、第2同期データを同期サーバ20の通信部210より受信する(ステップS440、第13ステップ)。通信部110は、当該受信した第2同期データを携帯電話機10の判断部180に出力する(ステップS441)。
次に、判断部180が、第2同期データに含まれた第2特定情報に基づいて、第2データをデータ格納部150に追加する追加動作、またはデータ格納部150に既に格納されており且つ第2特定情報に基づいて特定される既存のデータ(以下、第1既存データ)を第2データに書き換える変更動作、または上記第1既存データを削除する削除動作のうち何れの動作を実行すべきか判断する。なお、判断部180のこの判断動作の詳細については後述する(ステップS450、第14ステップ)。判断部180は、ステップS450の判断結果を表す情報を格納制御部150に出力する(ステップS451)。
次に、格納制御部150が、ステップS451にて入力した判断結果を表す情報に基づいて、上記の追加動作、変更動作、削除動作のうち何れかの動作を実行する(ステップS460、第15ステップ)。
次に、通信部110が、第2同期データに対するデータ同期が実行された旨を表す信号(以下、第1確認信号)を同期サーバ20の通信部210に送信する。なお、本実施形態においては、ステップS440〜ステップS460の全ての手順が正常に実行された後に、第1確認信号を通信部210に送信しているが、これに限られることはない。例えば、図示はしないが、ステップS440〜ステップS460のそれぞれの手順が正常に実行された後に、それぞれの手順の直後に第1確認信号を通信部210にその都度送信してもよい(ステップS470、第16ステップ)
次に、同期サーバ20の通信部210が、第1確認信号を通信部110より受信し(ステップS480、第17ステップ)、当該第1確認信号をログ格納部270に出力する(ステップS481)。
次に、ログ格納部270が、当該第1確認信号に基づいて、ステップS410で同期部290が参照した第2ログ情報を削除する(ステップS490、第18ステップ)。
以上で説明したステップS410〜ステップS490により、同期サーバ20で発生した第2同期データに対するデータ同期がオブジェクト単位で行われた。
[オブジェクトID等の詳細]
以下では、解析部120,220または判断部180,280の判断動作(「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断)、オブジェクトを特定するID、親フォルダを特定するID、フラグ情報、マッピング情報等について、詳細に説明する。
[オブジェクトID等の詳細、その1]
まず、オブジェクト単位の入力データまたは同期データとして、例えば図14に示すようなデータが解析部120,220または判断部180,280に入力された場合について説明する。図14の例においては、図14(a)に示すように、データの中身がオブジェクトである場合の入力データまたは同期データ50は、当該オブジェクトが属する親フォルダのID51と、当該オブジェクトのID52と、当該オブジェクトそのもの53との組み合わせからなる。また、図14(b)に示すように、データの中身が親フォルダである場合の入力データまたは同期データ60は、データの中身が親フォルダであることを表すヘッダ情報としてのroot情報61と、当該親フォルダのID62と、当該親フォルダそのもの63との組み合わせからなる。また、図14の例では、データの送信側および受信側において、互いに共通であり且つ重複しないオブジェクトのIDおよび親フォルダのIDを有していることを仮定している。
図14(c)に示すように、親フォルダのID12と、オブジェクトのID1と、当該オブジェクトそのものとが解析部120,220または判断部180,280に入力されたとする。この場合に、解析部120,220または判断部180,280は、データ格納部160,260を参照し、ID12の親フォルダの配下に、IDが1であるオブジェクトが存在するかを確認する。ID12の親フォルダの配下にIDが1のオブジェクトが既に存在する場合に、解析部120,220または判断部180,280は、ID12の親フォルダの配下に既に存在するID1のオブジェクトを、入力データまたは同期データとして入力されたID1のオブジェクトに書き換える旨の「変更」を判断する。
ここで、例えば図14(d)に示すように、当該オブジェクトの中身がブランク(null)である場合には、解析部120,220または判断部180,280は、ID12の親フォルダの配下に存在するID1のオブジェクトを削除する旨の「削除」を判断する。言い換えれば、「削除」は、ID12の親フォルダの配下に既に存在するID1のオブジェクトを中身の無いブランクのオブジェクトに書き換えることと同等である。
一方、図14(c)の例に戻り、親フォルダのID12の配下にID1のオブジェクトが存在しない場合には、解析部120,220または判断部180,280は、入力データまたは同期データとして入力されたID1のオブジェクトをID12の親フォルダの配下に新たに追加する旨の「追加」を判断する。
また、図14(e)に示すように、root情報と、親フォルダのID7と、当該親フォルダそのものとが解析部120,220または判断部180,280に入力されたとする。この場合に、解析部120,220または判断部180,280は、データ格納部160,260を参照し、ID7の親フォルダが既に存在するかを確認する。データ格納部160,260にID7の親フォルダが既に存在する場合に、解析部120,220または判断部180,280は、当該既に存在するID7の親フォルダを、入力データまたは同期データとして入力されたID7の親フォルダに書き換える旨の「変更」を判断する。一方、ID7の親フォルダが存在しない場合には、解析部120,220または判断部180,280は、入力データまたは同期データとして入力されたID7の親フォルダをデータ格納部160,260に新たに追加する旨の「追加」を判断する。
解析部120,220または判断部180,280は、以上で説明したように、「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断を行い、当該判断の結果を表す情報を格納制御部150に出力する。格納制御部150は、当該判断結果に基づいて、「追加」、「変更」、「削除」のうち何れかの動作を実行する。
[オブジェクトID等の詳細、その2]
次に、オブジェクト単位の入力データまたは同期データとして、例えば図15に示すようなデータが解析部120,220または判断部180,280に入力された場合について説明する。図15の例は、図15(a)および図15(b)に示すように、入力データまたは同期データ50,60にフラグ情報54,64が更に含まれている点以外は、図14の例の場合と同等である。
解析部120,220または判断部180,280は、フラグ情報54,64に基づいて、「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断を行う。すなわち、図15(c)の場合に、「replace」と記載されているフラグ情報に基づいて、解析部120,220または判断部180,280は、ID12の親フォルダの配下に既に存在するID1のオブジェクトを、入力データまたは同期データとして入力されたID1のオブジェクトに書き換える旨の「変更」を判断する。これは、上記の図14(c)の場合において、ID12の親フォルダの配下にID1のオブジェクトが既に存在することが確認された場合と同等である。
また、図15(d)の場合に、「add」と記載されているフラグ情報に基づいて、解析部120,220または判断部180,280は、入力データまたは同期データとして入力されたID1のオブジェクトをID12の親フォルダの配下に新たに追加する旨の「追加」を判断する。これは、上記の図14(c)の場合において、ID12の親フォルダの配下にID1のオブジェクトが存在しないことが確認された場合と同等である。
また、図15(e)の場合に、「delete」と記載されているフラグ情報に基づいて、解析部120,220または判断部180,280は、ID12の親フォルダの配下に既に存在するID1のオブジェクトを削除する旨の「削除」を判断する。これは、上記の図14(d)の場合と同等である。
また、図15(f)の場合に、「replace」と記載されているフラグ情報に基づいて、解析部120,220または判断部180,280は、既に存在するID7の親フォルダを、入力データまたは同期データとして入力されたID7の親フォルダに書き換える旨の「変更」を判断する。これは、上記の図14(e)の場合において、ID7の親フォルダがデータ格納部160,260に既に存在することが確認された場合と同等である。
また、図15(g)の場合に、「add」と記載されているフラグ情報に基づいて、解析部120,220または判断部180,280は、入力データまたは同期データとして入力されたID7の親フォルダをデータ格納部160,260に新たに追加する旨の「追加」を判断する。これは、上記の図14(e)の場合において、ID7の親フォルダがデータ格納部160,260に存在しないことが確認された場合と同等である。
[オブジェクトID等の詳細、その3]
次に、オブジェクト単位の同期データとして、例えば図16および図17に示すようなデータがデータ同期の送信側と受信側との間で送受信される場合について説明する。図16および図17の例では、データの送信側と受信側とが互いに共通しないオブジェクトのIDおよび親フォルダのIDを有していることを仮定している。このため、本実施形態では、図18に示すようなマッピング情報を同期サーバ20が有している。なお、本実施形態においては同期サーバ20がマッピング情報を有しているが、これに限らず、携帯電話機10がマッピング情報を有していてもよく、同期サーバ20および携帯電話機10の両方がマッピング情報を共有していてもよい。
まず、図18のマッピング情報について説明する。図18のマッピング情報は同期サーバ20が有しているものであり、同期サーバ20側のIDは「GU」から始まり、且つ携帯電話機10側のIDは「LU」から始まる。したがって、同期サーバ20側と携帯電話機10側とは互いに共通しないオブジェクトのIDおよび親フォルダのIDを有していることとなる。図18(a)の例において、同期サーバ20側のIDである「GUID1」は携帯電話機10側のIDである「LUID2」に対応する。同様に、同期サーバ20側の「GUID2」は携帯電話機10側の「LUID9」に対応する。なお、場合によっては(例えば「GUID4」や「LUID6」)、同期サーバ20側のID、携帯電話機10側のIDのうち何れかがマッピング情報として登録されていない場合もあり、この場合にはブランク(null)になっている。
次に、オブジェクト単位の同期データとして、例えば図16に示すようなデータがデータ同期の送信側と受信側との間で送受信される場合について説明する。図16は、同期サーバ20がデータ同期の送信側であり、携帯電話機10が受信側である場合の一例を示している。データ同期の送信側の同期サーバ20は、図16に示すように、オブジェクトのIDおよび親フォルダのIDを例えば図18のマッピング情報を参照して携帯電話機10側のIDに変換してから送信している。この動作は既述した通信部210が行ってもよく、またはこの動作のために別の手段(図示せず)を設けてもよい。
図16(a)に示すように、親フォルダのIDが「LUID10」、且つオブジェクトのIDが「LUID1」となっており、親フォルダのIDおよびオブジェクトのIDの両方が携帯電話機10側のIDに変換されている。つまり、元々は「LUID10」や「LUID1」ではなく例えば「GUID10」や「GUID7」などの同期サーバ20側のIDであったものを、同期サーバ20がマッピング情報を参照して携帯電話機10側のIDに変換している。図16(a)に示すような同期データを受信した携帯電話機10の判断部180は、上記の[オブジェクトID等の詳細、その2]で説明した方法により、「追加」、「変更」、「削除」のうち何れかの動作が行われるべきかに関する判断を行う。なお、図16(a)の例では同期データにフラグ情報が含まれているが、このフラグ情報が含まれていなくてもよい。この場合には、上記の[オブジェクトID等の詳細、その1]で説明した方法により、「追加」、「変更」、「削除」に関する判断が行われる。
また、図16(b)の場合においては、オブジェクトのIDが「LUID7」となっており携帯電話機10側のIDに変換されている。なお、root情報については、携帯電話機10と同期サーバ20との間で共通するため、変化が無く、root情報そのままになっている。図16(b)に示すような同期データを受信した携帯電話機10の判断部180は、上記の[オブジェクトID等の詳細、その1および2]で説明した方法により、「追加」、「変更」、「削除」に関する判断を行う。
図16(c)は、同期サーバ20側のIDに対応する携帯電話機10側のIDが図18のマッピング情報に登録されていない場合の一例である。図16(c)に示すように、親フォルダのIDは「LUID13」となっており携帯電話機10側のIDに変換されているが、オブジェクトのIDは同期サーバ20側のIDのままで「GUID4」となっている。図16(c)に示すような同期データを受信した携帯電話機10の判断部180は、上記の[オブジェクトID等の詳細、その1および2]で説明した方法により、「追加」、「変更」、「削除」に関する判断を行う。
図17は、携帯電話機10がデータ同期の送信側であり、同期サーバ20が受信側である場合の一例を示している。データ同期の送信側の携帯電話機10は、図17(a)や(b)に示すように、オブジェクトのIDおよび親フォルダのIDを「LU」から始まる携帯電話機10側のIDにして送信している。そして、データ同期の受信側の同期サーバ20は、例えば図18のマッピング情報を参照して、自装置である同期サーバ20側のIDに変換してから、「追加」、「変更」、「削除」に関する判断を行う。この動作は既述した判断部280が行ってもよく、またはこの動作のために別の手段(図示せず)を設けてもよい。
図17(c)は、データ同期の送信側の携帯電話機10がマッピング情報には存在しないID(例えば「LUID5」)のオブジェクトを送信する場合を示す。この場合に、受信側の同期サーバ20は、マッピング情報に当該IDの「LUID5」のための欄を新たに設ける(図18(b)の最後の行を参照)。また、「LUID5」に対応する同期サーバ20側のIDが後に定まった場合には、当該IDをマッピング情報に記録してもよい。なお、図18(b)は、図18(a)ではnullとなっていた「LUID6」に対応する同期サーバ20側のIDが「GUID5」と定まった場合の例を示しており、図18(a)に比べると、「GUID5」と追記されている。
[本実施形態の作用および効果]
続いて、本実施形態にかかる通信システム1の作用及び効果について説明する。本実施形態の通信システム1によれば、携帯電話機10および同期サーバ20に備えられた各手段が上記のステップS310からステップS390までの一連の流れとなる全ての手順を行うことにより、携帯電話機10が同期データの発生元および送信側となり、且つ同期サーバ20が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
また、携帯電話機10および同期サーバ20に備えられた各手段が上記のステップS410からステップS490までの一連の流れとなる全ての手順を行うことにより、同期サーバ20が同期データの発生元および送信側となり、且つ携帯電話機10が同期データの受信側となった場合におけるデータ同期をオブジェクトを単位にして効率的に行うことができる。
また、本実施形態においては、判断部180,280は、フラグ情報を参照することにより、同期データに対して何れの動作を実行すべきかを確実且つ容易に判断することができる。
また、本発明の通信装置によれば、構造体としてデータ入力があった場合においても、データの格納はオブジェクトを単位にして行われる。ここで、オブジェクトは所定のデータの集合体であり、このオブジェクトを一つ以上含むものが構造体であるため、オブジェクトのデータ量は構造体のデータ量より小さい。したがって、オブジェクトを単位にしてデータを格納することにより、当該オブジェクトを送受信の単位にして通信装置間のデータ同期を行うことができる。この場合には、構造体全体をデータ送受信の単位とする場合に比べ、送受信されるデータ量を少なくすることができ、効率よくデータ同期を行うことができる。
また、本実施形態においては、同期部190,290が、ログ格納部170,270に格納されているログ情報を参照することにより、データ格納部160,260にて新たにデータの格納が行われた旨を判断することができる。
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されないことは言うまでもない。
例えば、上記実施形態においては、データが階層構造化されてからデータ格納部160,260に格納されるが、これに限られることなく、データ格納部160,260が構造体のままでデータを格納してもよい。この場合には、同期の際に、オブジェクト生成部140,240が当該構造体のデータを階層構造化した上で、通信部110,210が当該階層構造化されたデータをオブジェクト単位で送受信することが好ましい。
通信システム1の構成概要図である。 携帯電話機10、同期サーバ20、およびダウンロードサーバ30のハードウェア構成図である。 携帯電話機10の機能的な構成を示す構成概要図である。 一つ以上のオブジェクトOa、Ob…を含む構造体Sの一例をイメージした図である。 構造体Sより、当該構造体Sを特定する構造体特定情報(親フォルダP)、および複数のオブジェクトOa〜Ozが抽出され階層構造化された様子を示す図である。 図4の構造体Sを元に、親フォルダPおよび複数のオブジェクトOa、Ob…が抽出され階層構造化された様子を示す図である。 同期サーバ20の機能的な構成を示す構成概要図である。 ダウンロードサーバ30の機能的な構成を示す構成概要図である。 携帯電話機10が構造体単位でデータを入力した場合の動作を示すシーケンス図である。 図9におけるステップS130をより詳細に説明するためのフローチャートである。 携帯電話機10がオブジェクト単位でデータを入力した場合の動作を示すシーケンス図である。 データ送信側の携帯電話機10とデータ受信側の同期サーバ20との間でデータ同期が行われる場合の動作を示すシーケンス図である。 データ送信側の同期サーバ20とデータ受信側の携帯電話機10との間でデータ同期が行われる場合の動作を示すシーケンス図である。 オブジェクトID等を詳細に説明するための図である(その1)。 オブジェクトID等を詳細に説明するための図である(その2)。 オブジェクトID等を詳細に説明するための図である(その3)。 オブジェクトID等を詳細に説明するための図である(その3)。 オブジェクトIDのマッピング情報の一例を示す図である。
符号の説明
1…通信システム、10…携帯電話機、110…通信部、120…解析部、130…雛形格納部、140…オブジェクト生成部、150…格納制御部、160…データ格納部、170…ログ格納部、180…判断部、190…同期部、20…同期サーバ、210…通信部、220…解析部、230…雛形格納部、240…オブジェクト生成部、250…格納制御部、260…データ格納部、270…ログ格納部、280…判断部、290…同期部、30…ダウンロードサーバ、310…入力部、220…データ格納部、230…通信部、40…通信ネットワーク。

Claims (9)

  1. データの同期を取り合う第1通信装置および第2通信装置を備える通信システムにおけるデータ同期方法であって、
    前記第1通信装置の第1解析手段が、前記第1通信装置に入力された入力データが所定のデータ集合体であるオブジェクトを一つ以上含む構造体であるか否かを、雛形格納手段に格納されたオブジェクトの雛形を元に解析する解析ステップと、
    前記第1通信装置の第1抽出手段が、前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出ステップと、
    前記第1通信装置の第1データ格納手段が、前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納するデータ格納ステップと、
    前記第1通信装置の第1ログ格納手段が、前記構造体特定情報と前記一つ以上のオブジェクトとが前記第1データ格納手段に新たに格納された旨を表す第1ログ情報を格納するログ格納ステップと、
    前記第1通信装置の第1同期手段が、前記第1通信装置の前記第1ログ格納手段に格納された前記第1ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が第1通信装置の第1データ格納手段で発生した旨を判断する第1ステップと、
    前記第1同期手段が、当該変化のあった第1データおよび前記第1データを特定する第1特定情報を第1同期データとして前記第1データ格納手段よりオブジェクト単位で抽出する第2ステップと、
    前記第1通信装置の第1通信手段が、当該抽出した第1同期データを前記第2通信装置の第2通信手段に送信する第3ステップと、
    前記第2通信手段が、前記第1同期データを前記第1通信手段より受信する第4ステップと、
    前記第2通信装置の第2判断手段が、前記第1同期データに含まれた前記第1特定情報に基づいて、前記第1データを前記第2通信装置の第2データ格納手段に追加する追加動作、または前記第2データ格納手段に既に格納されており且つ前記第1特定情報に基づいて特定される第2既存データを前記第1データに書き換える変更動作、または前記第2既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第5ステップと、
    前記第2通信装置の第2格納制御手段が、前記第2判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第6ステップと、
    を備えることを特徴とするデータ同期方法。
  2. 前記第2通信手段が、前記第1同期データに対するデータ同期が実行された旨を表す第2確認信号を前記第1通信手段に送信する第7ステップと、
    前記第1通信手段が、前記第2確認信号を前記第2通信手段より受信する第8ステップと、
    前記第1ログ格納手段が、前記第2確認信号に基づいて、前記第1ログ情報を削除する第9ステップと、
    を更に備えることを特徴とする請求項1に記載のデータ同期方法。
  3. 前記第2通信装置の第2同期手段が、前記第2通信装置の第2ログ格納手段に格納された第2ログ情報を参照して、前記オブジェクト単位でのデータの変化が前記第2データ格納手段で発生した旨を判断する第10ステップと、
    前記第2同期手段が、当該変化のあった第2データおよび前記第2データを特定する第2特定情報を第2同期データとして前記第2データ格納手段よりオブジェクト単位で抽出する第11ステップと、
    前記第2通信手段が、当該抽出した第2同期データを前記第1通信手段に送信する第12ステップと、
    前記第1通信手段が、前記第2同期データを前記第2通信手段より受信する第13ステップと、
    前記第1通信装置の第1判断手段が、前記第2同期データに含まれた前記第2特定情報に基づいて、前記第2データを前記第1データ格納手段に追加する追加動作、または前記第1データ格納手段に既に格納されており且つ前記第2特定情報に基づいて特定される第1既存データを前記第2データに書き換える変更動作、または前記第1既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第14ステップと、
    前記第1通信装置の第1格納制御手段が、前記第1判断手段の判断結果に基づいて、該追加動作、該変更動作、該削除動作のうち何れかの動作を実行する第15ステップと、
    を更に備えることを特徴とする請求項1または請求項2に記載のデータ同期方法。
  4. 前記第1通信手段が、前記第2同期データに対するデータ同期が実行された旨を表す第1確認信号を前記第2通信手段に送信する第16ステップと、
    前記第2通信手段が、前記第1確認信号を前記第1通信手段より受信する第17ステップと、
    前記第2ログ格納手段が、前記第1確認信号に基づいて、前記第2ログ情報を削除する第18ステップと、
    を更に備えることを特徴とする請求項1〜3の何れか1項に記載のデータ同期方法。
  5. 第2通信装置との間でデータの同期を取る第1通信装置であって、
    入力された入力データが所定のデータ集合体であるオブジェクトを一つ以上含む構造体であるか否かを、雛形格納手段に格納されたオブジェクトの雛形を元に解析する解析手段と、
    前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出手段と、
    前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納する第1データ格納手段と、
    前記構造体特定情報と前記一つ以上のオブジェクトとが前記第1データ格納手段に新たに格納された旨を表す第1ログ情報を格納する第1ログ格納手段と、
    前記第1ログ格納手段に格納された前記第1ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第1データ格納手段で発生した旨を判断し、当該変化のあった第1データおよび前記第1データを特定する第1特定情報を第1同期データとして前記第1データ格納手段よりオブジェクト単位で抽出する第1同期手段と、
    当該抽出した第1同期データを前記第2通信装置の第2通信手段に送信する第1通信手段と、
    を備えることを特徴とする第1通信装置。
  6. 前記第1通信手段が、前記第1同期データに対するデータ同期が実行された旨を表す第2確認信号を前記第2通信手段より受信し、
    前記第1ログ格納手段が、前記第2確認信号に基づいて、前記第1ログ情報を削除する
    ことを特徴とする請求項5に記載の第1通信装置。
  7. データの同期を取り合う第1通信装置および第2通信装置を備える通信システムであって、
    前記第1通信装置は、
    入力された入力データが所定のデータ集合体であるオブジェクトを一つ以上含む構造体であるか否かを、雛形格納手段に格納されたオブジェクトの雛形を元に解析する解析手段と、
    前記入力データが前記構造体であると解析された場合に、前記入力データより、前記構造体を特定する構造体特定情報と一つ以上のオブジェクトとを前記雛形を元に抽出する抽出手段と、
    前記抽出手段が抽出した当該構造体特定情報と当該一つ以上のオブジェクトとを関連付けて格納する第1データ格納手段と、
    前記構造体特定情報と前記一つ以上のオブジェクトとが前記第1データ格納手段に新たに格納された旨を表す第1ログ情報を格納する第1ログ格納手段と、
    前記第1ログ格納手段に格納された前記第1ログ情報を参照して、所定のデータ集合体の単位であるオブジェクト単位でのデータの変化が前記第1データ格納手段で発生した旨を判断し、当該変化のあった第1データおよび前記第1データを特定する第1特定情報を第1同期データとして前記第1データ格納手段よりオブジェクト単位で抽出する第1同期手段と、
    当該抽出した第1同期データを前記第2通信装置の第2通信手段に送信する第1通信手段と、
    を備え
    前記第2通信装置は、
    前記第1データおよび前記第1特定情報を含む前記第1同期データを前記第1通信装置の前記第1通信手段より受信する第2通信手段と、
    前記第1同期データに含まれた前記第1特定情報に基づいて、前記第1データを第2データ格納手段に追加する追加動作、または前記第2データ格納手段に既に格納されており且つ前記第1特定情報に基づいて特定される第2既存データを前記第1データに書き換える変更動作、または前記第2既存データを削除する削除動作のうち何れの動作を実行すべきか判断する第2判断手段と、
    前記第2判断手段の判断結果に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を実行する第2格納制御手段と、
    を備えることを特徴とする通信システム
  8. 前記第2通信手段が、前記第1同期データに対するデータ同期が実行された旨を表す第2確認信号を前記第1通信手段に送信することを特徴とする請求項7に記載の通信システム
  9. 前記第1同期データには、前記追加動作、前記変更動作、前記削除動作のうち何れかの動作を表すフラグ情報が含まれており、
    前記第2判断手段は、前記フラグ情報に基づいて、前記追加動作、前記変更動作、前記削除動作のうち何れの動作を実行すべきか判断する
    ことを特徴とする請求項7または請求項8に記載の通信システム
JP2008106953A 2008-04-16 2008-04-16 データ同期方法および通信装置 Expired - Fee Related JP4719243B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008106953A JP4719243B2 (ja) 2008-04-16 2008-04-16 データ同期方法および通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008106953A JP4719243B2 (ja) 2008-04-16 2008-04-16 データ同期方法および通信装置

Publications (2)

Publication Number Publication Date
JP2009258971A JP2009258971A (ja) 2009-11-05
JP4719243B2 true JP4719243B2 (ja) 2011-07-06

Family

ID=41386313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008106953A Expired - Fee Related JP4719243B2 (ja) 2008-04-16 2008-04-16 データ同期方法および通信装置

Country Status (1)

Country Link
JP (1) JP4719243B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5467032B2 (ja) * 2010-12-09 2014-04-09 日本電信電話株式会社 情報管理システムとそのデータ更新操作方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055864A (ja) * 2000-08-09 2002-02-20 Seiko Epson Corp データ更新方法および情報処理装置
JP2002123309A (ja) * 2000-10-13 2002-04-26 Yamagata Casio Co Ltd 処理装置及びその処理方法のプログラムを記録した記憶媒体
JP2003140950A (ja) * 2001-11-07 2003-05-16 Casio Soft Co Ltd データベース同期化方法、装置、及びプログラム
JP2003280977A (ja) * 2002-03-27 2003-10-03 Seiko Epson Corp オブジェクト指向データベースによる情報管理
JP2005190163A (ja) * 2003-12-25 2005-07-14 Toshiba Corp 構造化データ検索方法、構造化データ検索装置およびプログラム
JP2005202455A (ja) * 2004-01-13 2005-07-28 Sony Corp 情報処理装置および方法、並びにプログラム
JP2005234901A (ja) * 2004-02-19 2005-09-02 Just Syst Corp 情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、プログラム
JP2005234837A (ja) * 2004-02-19 2005-09-02 Fujitsu Ltd 構造化文書処理方法、構造化文書処理システム及びそのプログラム
JP2005537595A (ja) * 2002-09-03 2005-12-08 エスアーペー アクチエンゲゼルシャフト 協調マスタデータ管理
JP2007164523A (ja) * 2005-12-14 2007-06-28 Nec Corp 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055864A (ja) * 2000-08-09 2002-02-20 Seiko Epson Corp データ更新方法および情報処理装置
JP2002123309A (ja) * 2000-10-13 2002-04-26 Yamagata Casio Co Ltd 処理装置及びその処理方法のプログラムを記録した記憶媒体
JP2003140950A (ja) * 2001-11-07 2003-05-16 Casio Soft Co Ltd データベース同期化方法、装置、及びプログラム
JP2003280977A (ja) * 2002-03-27 2003-10-03 Seiko Epson Corp オブジェクト指向データベースによる情報管理
JP2005537595A (ja) * 2002-09-03 2005-12-08 エスアーペー アクチエンゲゼルシャフト 協調マスタデータ管理
JP2005190163A (ja) * 2003-12-25 2005-07-14 Toshiba Corp 構造化データ検索方法、構造化データ検索装置およびプログラム
JP2005202455A (ja) * 2004-01-13 2005-07-28 Sony Corp 情報処理装置および方法、並びにプログラム
JP2005234901A (ja) * 2004-02-19 2005-09-02 Just Syst Corp 情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、プログラム
JP2005234837A (ja) * 2004-02-19 2005-09-02 Fujitsu Ltd 構造化文書処理方法、構造化文書処理システム及びそのプログラム
JP2007164523A (ja) * 2005-12-14 2007-06-28 Nec Corp 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム

Also Published As

Publication number Publication date
JP2009258971A (ja) 2009-11-05

Similar Documents

Publication Publication Date Title
JP6408461B2 (ja) デバイスを同期するための機構、システム、及び方法
CN106354646B (zh) 一种分析转储文件的方法
US9690796B2 (en) Non-transitory computer-readable media storing file management program, file management apparatus, and file management method
CN104160397A (zh) 位置独立文件
US9723480B2 (en) Information processing device, server device, data communication system, data communication method, and computer-readable storage medium storing data communication program
JP2007141072A (ja) トレース情報出力装置
KR20140047448A (ko) 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법
JP4719243B2 (ja) データ同期方法および通信装置
US11138289B1 (en) Optimizing annotation reconciliation transactions on unstructured text content updates
CN113377791A (zh) 一种数据处理方法、***及计算设备
JP2016143134A (ja) 関連情報提供方法、関連情報提供装置及び関連情報提供プログラム
CN110765125B (zh) 一种存储数据的方法及装置
JP3980974B2 (ja) スケジュール情報抽出編集装置および方法
CN110297898A (zh) 异步编译方法及装置
WO2017143931A1 (zh) 智能卡识别的方法及识别数据的处理方法、装置、设备
JP2016051383A (ja) 帳票データ管理プログラム、帳票データ管理方法、及び情報処理装置
CN111767214A (zh) 软件ui的自动化测试方法及装置
JP2015072531A (ja) テスト支援方法、テスト支援装置およびプログラム
CN111597149A (zh) 一种数据库的数据清理方法及装置
JP2006004277A (ja) 情報共有装置および情報送信方法、情報受信方法
US20240012909A1 (en) Correction of non-compliant files in a code repository
CN101930451A (zh) 用于存储高效地搜索至少一个询问数据元素的方法和装置
CN113900621B (zh) 操作指令处理方法、控制方法、装置以及电子设备
CN114138509B (zh) 一种数据交互方法、装置及计算机可读存储介质
CN114741315B (zh) 用例更新方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

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: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110401

R150 Certificate of patent or registration of utility model

Ref document number: 4719243

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: 20140408

Year of fee payment: 3

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