JP2005284395A - 通信機器、通信システムの情報同期方法、通信機器の制御プログラム、記録媒体 - Google Patents

通信機器、通信システムの情報同期方法、通信機器の制御プログラム、記録媒体 Download PDF

Info

Publication number
JP2005284395A
JP2005284395A JP2004093409A JP2004093409A JP2005284395A JP 2005284395 A JP2005284395 A JP 2005284395A JP 2004093409 A JP2004093409 A JP 2004093409A JP 2004093409 A JP2004093409 A JP 2004093409A JP 2005284395 A JP2005284395 A JP 2005284395A
Authority
JP
Japan
Prior art keywords
record
communication device
synchronization
synchronization information
database
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
JP2004093409A
Other languages
English (en)
Other versions
JP2005284395A5 (ja
JP4481053B2 (ja
Inventor
Yasushi Furukawa
裕史 古川
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2004093409A priority Critical patent/JP4481053B2/ja
Publication of JP2005284395A publication Critical patent/JP2005284395A/ja
Publication of JP2005284395A5 publication Critical patent/JP2005284395A5/ja
Application granted granted Critical
Publication of JP4481053B2 publication Critical patent/JP4481053B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 複数の通信機器間の情報を効率的に同期させる。
【解決手段】データベース4Bと、同期情報を処理するためのプロキシ部7B(同期情報処理部)とを備え、該プロキシ部7が、上記モバイル端末Cから受信したレコードCB(第1の同期情報)と上記データベース4Bの情報とに基づいて、レコードBA(第2の同期情報)をサーバAへ送信するとともに、上記レコードBAに応答してサーバAから返信されたレコードAB(第3の同期情報)と、上記データベース4Bの情報とに基づいて、レコードBC(第4の同期情報)をモバイル端末Cに送信する。
【選択図】 図1

Description

本発明は、複数の端末のデータを同期させるシステム、例えば、通信ネットワークを介してサーバと本人の所有する端末との情報を同期させるシステムに関する。
モバイル端末の発展に伴い、データの更新が社内等にあるデスクトップパソコンからのみならず、外出先に携帯されたモバイル端末から行われることも頻繁になっている。このように更新されたデータが、共有されたサーバ上で複数の利用者間の共通の情報として利用されることもある。
例えば、利用者Aがモバイル端末あるいはデスクトップパソコンでデータを管理(更新)しつつ、このデータをネットワーク上のサーバを介して利用者A・利用者Bで把握・管理(更新)する場合、利用者Aが管理するデスクトップパソコンおよびモバイル端末とネットワーク上のサーバとの情報(データ)に異なる部分が生じないよう、各ノード(モバイル端末・デスクトップパソコン・サーバ)間においてデータを同期させることが重要となってくる。そうでないと、利用者Bがサーバからデータを更新した場合に、利用者Aがモバイル端末やデスクトップパソコンだけを見ていて、この利用者Bによるデータの更新を見逃すことが考えられるからである。
これには、常時ネットワークに接続されているわけではないモバイル端末のデータとデスクトップパソコンおよびサーバのデータとの矛盾を回避しなければならない。また、モバイル端末は通信速度が低いため、モバイル端末からのデータ送信量を少なくすることも要求される。
特許文献1には、上記課題に関する従来技術が記載されている。この従来技術には、モバイル端末・サーバ間のスケジュールデータを同一に管理する(同期させる)システムにおいて、モバイル端末で更新されたデータをサーバにアップロードするだけにするか、あるいはモバイル端末・サーバ間で完全なデータ同期をとるかを選択可能にすることで、同期工程における送受信データの低減を図る方法が開示されている。
特開2000−132603号公報(公開日:2000年5月12日)
しかしながら、この従来技術では、同期作業が2者間(モバイル端末とサーバ間)で行われるため、サーバ以外にデータを同期させるべきノード(端末)が2つある場合に、同期作業が煩雑になるという問題が生じる。例えば、図20に示されるように、3つのノード、すなわちサーバとモバイル端末とデスクトップパソコンの同期を図るには、サーバとデスクトップパソコンとの同期およびモバイル端末とサーバとの同期並びにデスクトップパソコンとサーバとの同期というように3回の同期作業が必要になり、各ノードはデータの送信、受信を2回ずつ行わなければならない。この結果、モバイル端末やサーバに大きな負担がかかってしまう。
本発明は、上記課題に鑑みてなされたものであり、その目的は、通信システムに用いられ、自身および自身にリンクする複数の通信機器(ノード)間のデータを効率的に同期させることのできる通信機器を提供する点にある。
本発明の通信機器は、上記課題を解決するために、第1および第2の通信機器と通信可能であり、同期情報をやりとりすることでこれらの通信機器と情報の同期をとることが可能な通信機器であって、データベースと、上記同期情報を処理するための同期情報処理部とを備え、該同期情報処理部は、上記第1の通信機器から受信した第1の同期情報と上記データベースの情報とに基づいて、第2の同期情報を第2の通信機器へ送信するとともに、上記第2の同期情報に応答して第2の通信機器から返信された第3の同期情報に基づいて、第4の同期情報を第1の通信機器に送信することを特徴としている。
まず、本発明の通信機器として例えばデスクトップパソコン、上記第1の通信機器として例えばモバイル端末、上記第2の通信機器として例えばサーバを挙げることができる。
上記構成によれば、上記同期情報処理部は、第1の通信機器より、第1の通信機器が生成した同期情報を受信する。この第1の同期情報には、例えば、第1の通信機器で更新された情報が含まれる。
ついで、同期情報処理部は、この第1の同期情報と自己のデータベースとに基づいて、第2の同期情報を生成する。この第2の同期情報には、例えば、第1の通信機器では更新されなかったが上記データベース内で更新された情報あるいは第1の通信機器で更新され、さらにその後に上記データベース内でも更新された情報が含まれる。
ついで、同期情報処理部は、第2の通信機器から、第2の同期情報に応答して返信された第3の同期情報を受信する。この第3の同期情報には、例えば、第1の通信機器や上記データベースでは更新されなかったが第2の通信機器で更新された情報あるいは、第1の通信機器や上記データベース内で更新され、さらにその後に第2の通信機器で更新された情報が含まれる。
ついで、同期情報処理部は、この第3の同期情報と自己のデータベースとに基づいて、第4の同期情報を生成する。この第4の同期情報には、例えば、上記データベースあるいは第2の通信機器でのみ更新された情報や、第1の通信機器で更新されたが、さらにその後に上記データベース内または第2の通信機器で更新された情報が含まれる。
このように、第1の通信機器から同期情報処理部、同期情報処理部から第2の通信機器、第2の通信機器から同期情報処理部、同期情報処理部から第1の通信機器というように、
上記同期情報処理部が第1の通信機器と第2の通信機器との中継機能を担うことで、各通信機器は、他の通信機器が更新した情報を効率的に認識することができる。
これにより、第1の通信機器(例えば、モバイル端末)・第2の通信機器(例えば、サーバ)間の通信を不要にすることができ、各通信機器間の同期処理を迅速化させることができるとともに、第1および第2の通信機器の負担を軽減することができる。
これを上記した具体例(本発明の通信機器として例えばデスクトップパソコン、上記第1の通信機器として例えばモバイル端末、上記第2の通信機器として例えばサーバを考えた場合)についてみると、この3者間情報同期を行う際の最大のネックと考えられるサーバ・モバイル端末間の相互通信が不要となる。すなわち、通信速度の劣るモバイル端末の送受信回数が減り、迅速な情報同期が可能になる。加えて、サーバ側においても、モバイルとの同期処理を逐一行う必要がなくなり、その負担が大幅に軽減される。特に、デスクトップパソコンのユーザとモバイル端末のユーザとが同一の個人である場合には、自己が保有するデスクトップパソコンおよびモバイル端末の情報と、サーバの情報とをすばやく同期させることができ、大変便利である。
また、本発明の通信機器においては、上記同期情報処理部は、第1の同期情報に基づいてデータベースの情報を更新するとともに、第3の同期情報に基づいてデータベースの情報を更新することができる更新手段を備えていることが好ましい。上記構成によれば、第1および第2の通信機器の有する情報と同一の情報を上記データベース内に保持することが可能になる。
また、本発明の通信機器においては、上記同期情報処理部は、第1の同期情報として受信した第1のレコードと、データベースに存在する、上記第1のレコードに相当するレコードとの優先度を判定する(どちらを優先させるかを決定する)判定手段を備えていることが好ましい。
上記構成によれば、受信した同期情報とデータベースに基づき、同期処理に必要なもののみを第1あるいは第2の通信機器に送信することができ、より効率的な同期処理が可能になる。
また、本発明の通信機器においては、上記同期情報処理部は、上記第2の同期情報として送信した第2のレコードと、上記第3の同期情報として受信した第3のレコードとを記憶可能な記憶手段を備え、第3の同期情報と上記記憶手段に記憶されたレコードとに基づいて、第4の同期情報を第1の通信機器に送信できることが好ましい。上記構成によれば、例えば、第2の通信機器で更新された情報がなかった場合に、この記憶手段に記憶された情報に基づいて第3の同期情報を生成し、これを第1の通信機器に送信することができる。これにより、より効率的な同期処理が可能になる。また、第2の通信機器から受信した第3のレコードを一旦記憶し、これに、第1の通信機器に不要なデータを削除する等の加工を施して第1の通信機器に送信することができる。これにより、より効率的な同期処理が可能になる。
また、本発明の通信機器においては、上記同期情報処理部は、送信先の通信機器に必要なデータ項目を記載したレコードデータ判定テーブルを備え、同期情報を送信する際には、該レコードデータ判定テーブルに基づいて、必要なデータ項目のみを送信対象とすることが好ましい。上記構成によれば、第1あるいは第2の通信機器に、(第4あるいは第2の)同期情報(レコード)を送信する際、必要なデータ項目のみを含むレコードを送ることができ、同期処理をより効率的なものにすることができる。
また、本発明の通信機器においては、上記同期情報処理部は、優先度の判定基準を規定する優先度テーブルを備え、上記判定手段は、この優先度テーブルによる判定基準に基づいて両レコードの優先度を判定することが好ましい。
上記構成によれば、上記判定手段が情報(レコード)の優先度を判定する(どちらの情報を優先させるかを決定する)際の基準を多様にすることができる。例えば、更新時刻ではなく、重要度を基準としたり、あるいはこれらを順位付けした上、両者を基準とすることもできる(これにより、情報の競合回避が可能となる)。
また、本発明の通信機器においては、上記同期情報処理部は、上記第3の同期情報がレコードを含まない送信なし信号である場合に、上記記憶手段に記憶された第2のレコードに基づいて、第3の同期情報を第1の通信機器に送信することが好ましい。このように、例えば、第2の通信機器でレコードの更新がなかった場合に、不要なレコードの送受信を排除することで、各通信機器の負担を低減することができる。
また、本発明の通信機器は、受信した第1の同期情報と自己のデータベースの情報とに基づいて第2の同期情報を、第1の同期情報の送信先以外の通信機器へ送信するとともに、上記第2の同期情報に応答して、この通信機器から返信された第3の同期情報に基づいて第4の同期情報を、第1の同期情報の送信元に送信できる中継用通信機器と通信可能であり、かつ、上記中継用通信機器に上記第1の同期情報を送信するとともにこの中継用通信機器から第4の同期情報を受信することを特徴としている。
上記通信機器においては、データベースと、該データベースに基づいて第1の同期情報を送信するとともに、受信した第4の同期情報に基づいて該データベースを更新することが可能な同期管理部とが備えられることが好ましい。
また、本発明の通信機器は、受信した第1の同期情報と自己のデータベースの情報とに基づいて、第2の同期情報を第1の同期情報の送信先以外の通信機器へ送信するとともに、上記第2の同期情報に応答してこの通信機器から返信された第3の同期情報に基づいて、第4の同期情報を第1の同期情報の送信先に送信できる中継用通信機器と通信可能であり、かつ、上記中継用通信機器から上記第2の同期情報を受信するとともに、この中継用通信機器へ第3の同期情報を送信することを特徴としている。
上記通信機器においては、データベースと、該データベースおよび上記第2の同期情報に基づいて第3の同期情報を上記中継用通信機器へ送信するとともにデータベース自体を更新できる同期管理部とが備えられることが好ましい。
また、本発明の通信システムの情報同期方法は、第1のデータベースを有する第1の通信機器と、第2のデータベースを有する第2の通信機器と、第3のデータベースを有する中継用通信機器とを含む通信システムの情報同期方法であって、まず第1の通信機器が上記第1のデータベースに基づいて第1の同期情報を中継用通信機器へ送信し、ついで中継用通信機器が、受信した第1の同期情報と第3のデータベースとに基づいて第2の同期情報を第2の通信機器に送信し、ついで第2の通信機器が、受信した第2の同期情報と第2のデータベースとに基づいて第3の同期情報を中継用通信機器に送信し、ついで中継用通信機器が、受信した第3の同期情報に基づいて第4の同期情報を第1の通信機器に送信することを特徴としている。
また、上記通信システムの情報同期方法においては、上記中継用通信機器は、第1の同期情報として受信した第1のレコードと、データベースに存在する、上記第1のレコードに相当するレコードとの優先度を判定し、この判定結果に基づいて、第2の同期情報を第2の通信機器に送信することが好ましい。
また、上記通信システムの情報同期方法においては、上記中継用通信機器は、上記第2の同期情報として送信した第2のレコードと上記第3の同期情報として受信した第3のレコードとを記憶し、この記憶されたレコードと受信した第3の同期情報とに基づいて第4の同期情報を第1の通信機器に送信することが好ましい。
また、上記通信システムの情報同期方法においては、上記中継用通信機器は、同期情報を送信する際、送信先の通信機器に必要なデータ項目のみを送信対象とすることが好ましい。
また、上記通信システムの情報同期方法においては、上記中継用通信機器は、優先度の判定基準を規定する優先度テーブルに基づいて両レコードの優先度を判定することが好ましい。
また、本発明の通信機器の制御プログラムは、データベースを備え、第1および第2の通信機器と通信可能な通信機器に対して、上記第1の通信機器から受信した第1の同期情報と上記データベースの情報とに基づいて、第2の同期情報を第2の通信機器へ送信させるともに、上記第2の同期情報に応答して第2の通信機器から返信された第3の同期情報と、上記データベースの情報とに基づいて、第4の同期情報を第1の通信機器に送信させることを特徴としている。
また、上記通信機器の制御プログラムにおいては、上記中継用通信機器に対して、上記第2の同期情報として送信した第2のレコードと上記第3の同期情報として受信した第3のレコードとを記憶させ、この記憶されたレコードと受信した第3の同期情報とに基づいて第4の同期情報を第1の通信機器に送信させることが好ましい。
また、本発明の記録媒体は、上記の通信機器の制御プログラムが、コンピュータに読み取り可能に格納されていることを特徴としている。
以上のように、本発明の通信機器によれば、上記同期情報処理部が第1の通信機器と第2の通信機器との中継機能を担うことで、各通信機器は、他の通信機器が更新した情報を効率的に認識することができる。これにより、第1の通信機器(例えば、モバイル端末)・第2の通信機器(例えば、サーバ)間の通信を不要にすることができ、各通信機器間の同期処理を迅速化させることができるとともに、第1および第2の通信機器の負担を軽減することができる。
本発明の実施の形態を図1〜図19を用いて説明すれば以下のとおりである。
図2(a)は、本実施の形態に係る通信システムを示すブロック図である。図2(a)に示されるように、通信システム1には、3つのノード、すなわちサーバAと、デスクトップパソコンなどのパソコンBと、PDA等のモバイル端末Cとを備えている。
そして、各ノード(A〜C)は、入力を行う入力部(図示せず)と、出力を画面表示する表示部(図示せず)とを備えている。このデータベース4A〜4Cはスケジュールアプリケーション内のデータベースであり、以下、このスケジュールアプリケーション内のデータをレコードと称する。
同期処理は、各ノード(A〜C)間の同期情報の送受信によって行われる。すなわち、モバイル端末CがパソコンBへ第1の同期情報を送信し、これを受けてパソコンBがサーバAに第2の同期情報を送信し、これを受けてサーバAがパソコンBへ第3の同期情報を送信し、これを受けてパソコンBがモバイル端末Cへ第4の同期情報を送信する。
ここで、上記の第1〜4の同期情報とは、各ノード(A〜C)を同期するためにこれらから送信されるレコード(レコードを含む必要のない場合は送信なし信号)である。(なお、各ノード(A〜C)が他のノードにレコード等のデータを送信する際、これをパケットにして送信するものとする)
また、上記のレコードは、レコードIDと更新時刻とを含む複数のデータフィールドから構成されている。なお、データ内容が含まれた複数のデータフィールドをまとめて1レコード単位と数える。図2(b)に、このレコードの具体例を示す。同図に示されるように、図2(b)の例では、「レコードID」、「更新時刻」、「予定日」、「場所」の4つデータフィールドをもって1レコード単位とされる。
レコードIDは、レコードを認識するためのものである。また、更新時刻とは、各ノード(A〜C)において、レコード内のいずれかのデータが最後に更新された時刻を示す。
図2(b)の例では、「レコードID」、「更新時刻」、「予定日」、「場所」がそれぞれ、「000001」、「2003年10月1日17時00分」、「2003年10月5日」、「Aビル」となる。すなわち、このレコードID00001のレコードは、2003年10月1日17時00分に最後に更新され、その時点での内容は、予定日が2003年10月5日、場所がAビルとなっている。
〔実施の形態1〕
本発明の実施の形態1を図1、図3〜図8に基づいて説明すれば、以下のとおりである。
図1は、本実施の形態に係る通信システム1をより詳細に示したブロック図である。まず、同期処理手順の概略を以下に説明する。
図1に示されるとおり、通信システム1の同期処理においては、モバイル端末C(第1の通信機器)を始点とし、パソコンB(通信機器、中継用通信機器)を経由して、サーバA(第1の通信機器)へ向けて同期処理が実行される。このとき、サーバAからモバイル端末Cへの同期経路の途中でパソコンBを必ず通過することとし、プロキシ部7B(同期情報処理部)は、モバイル端末CもしくはサーバAから送信されるレコードを取得し、これとパソコンB(データベース4B)内のレコードとの同期を行う。
すなわち、第1の同期情報として、モバイル端末CにてレコードCB(第1のレコード、モバイル端末Cで更新されたレコード)が生成され、これがパソコンBへ送信される。なお、モバイル端末Cで更新されたレコードが存在しない場合には、第1の同期情報として送信なし信号が送信される。
パソコンBは、このレコードCBを受けて第2の同期情報となるレコードBA(第2のレコード)を生成し、これをサーバAへ送信する。なお、モバイル端末C・パソコンBのいずれにおいても更新されたレコードが存在しない場合には、第2の同期情報として送信なし信号が送信される。
サーバAは、このレコードBAを受けて第3の同期情報となるレコードAB(第3のレコード)を生成し、これをパソコンBへ送信する。なお、例えば、サーバAで更新されたレコードが存在しない場合には、第3の同期情報として送信なし信号が送信される。
パソコンBは、このレコードABを受けて第4の同期情報となるレコードBC(第4のレコード、)をモバイル端末Cへ送信する。なお、例えば、パソコンB・サーバAのいずれにおいても更新されたレコードが存在しない場合には、第4の同期情報として送信なし信号が送信される。
また、本実施の形態では、各ノード(A〜C)おいて、受信したレコードとその相当レコードとの優先基準を両レコードがもつ更新時刻のデータとする。すなわち、一番新しい更新時刻をもつレコードの内容を基準として、通信システム1の各ノード(モバイル端末C、パソコンB、サーバA)の同期が行われる。
なお、モバイル端末Cからは同期開始を意味する同期開始信号(モバイル端末CのデバイスIDに相当するもの)がパソコンBへ送信され、また、これを受けたパソコンBも同期開始信号(パソコンBのデバイスIDに相当するもの)がサーバAへ送信される。同期開始信号を受信したノード(パソコンB・サーバA)は取得したデバイスIDを基に同期の相手を認識する。
また、同期終了を意味する信号として、同期(終了)時刻がサーバAからパソコンBへ送信され、同期時刻を受けたパソコンBはモバイル端末Cへこれを転送する。サーバA、パソコンBは同期(終了)時刻を送信することをもって同期処理を終了する。またモバイル端末Cは受信した同期(終了)時刻を同期時刻記録部5Cに上書き更新することをもって同期処理を終了する。
次に、各ノード(サーバA、パソコンB、モバイル端末C)の具体的構成と機能を説明する。図1に示されるように、サーバA(第1の通信機器)は、同期管理部3A(同期情報管理部)およびレコード管理部2Aを有する同期エンジン部7Aと、データベース4Aと、同期時刻記録部5Aとを備えている。パソコンBは、同期制御部3B(判定手段)およびレコード管理部2B(更新手段)並びに送信記憶部8B(記憶手段)を有するプロキシ部7Bと、データベース4Bと、同期時刻記録部5Bとを備えている。モバイル端末Cは、同期管理部3C(同期情報管理部)およびレコード管理部2Cを有する同期エンジン部7Cと、データベース4Cと、同期時刻記録部5Cとを備えている。
サーバAのレコード管理部2Aは、データベース4Aに対して、必要なレコードの検索を行う。また、このレコード管理部2Aは、同期管理部3Aの要求に従いデータベース4Aのレコードの更新を行う。同期時刻記録部5Aは、各ノード(A〜C)が最後に同期した時刻を記録する。同期管理部3Aは、パソコンBの同期制御部3Bから送信されてきたレコードBAを受信し、その更新時刻を取得する。また、同期管理部3Aは、相当レコードba(後述)の検索をレコード管理部2Aに指示し、この結果データベース4Aから送られた相当レコードbaの更新時刻を取得する。そして、この2つ(受信レコードABとその相当レコードbaと)の更新時刻を比較する。また、同期管理部3Aは、同期時刻記録部5Aに記録された同期時刻と、残りデータ(後述)の更新時刻とを比較する。さらに、これらの比較結果に基づいてパソコンBの同期制御部3Bに対して、レコードABを送信する。
パソコンBのレコード管理部2Bは、データベース4Cに対して、必要なレコードの検索を行う。また、このレコード管理部2Bは、同期制御部3Bの要求に従い、データベース4B内のレコードの更新を行う。
同期制御部3Bは、他のノード(モバイル端末C/サーバA)から送信されてきたレコード(CB/AB)を受信し、その更新時刻を取得する。また、同期制御部3Bは、それらの相当レコード(cb/ab)の検索をレコード管理部2Bに指示し、この結果データベース4Bから送られた相当レコード(cb/ab)の更新時刻を取得する。そして、この2つ(受信レコードとその相当レコード)の更新時刻を比較する。また、同期制御部3Bは、同期時刻記録部5Bに記録された同期時刻と、残りデータ(後述)の更新時刻とを比較する。さらに、これらの比較結果に基づいてサーバAやモバイル端末Cの同期管理部(3A/3C)に対して、レコード(BA/BC)を送信する。
送信記憶部8Bは、同期制御部3Bの要求に従い、サーバAへ送信したレコードBAのID(レコードID)やサーバAから受信したレコードABのIDを記憶する。同期時刻記録部5Bは、サーバAから受信した同期時刻を、各ノード(A〜C)が最後に同期した時刻として記録する。
モバイル端末Cのレコード管理部2Cは、データベース4Cに対して、必要なレコードの検索を行う。また、このレコード管理部2Cは、同期管理部3Cの要求に従い、データベース4C内のレコードの更新を行う。同期管理部3Cは、データベース4Cに必要なレコードの検索をレコード管理部2Cに指示し、その結果データベース4Cから送られてきたレコードの更新時刻と、同期時刻記録部に記録された同期時刻とを比較する。さらに、これらの比較結果に基づいてパソコンBの同期制御部3Bに対して、レコードCBを送信する。同期時刻記録部5Cは、パソコンBのプロキシ部7Bから受信した同期時刻を、各ノード(A〜C)が最後に同期した時刻として記録する。
以下に、実施の形態1におけるノード(A〜C)ごとの同期フローを詳細に説明する。
(PDAでの同期フロー)
図3は、モバイル端末Cにおける同期工程を示すフローチャートである。以下、図3および図1を用いて各工程(ステップ)を説明する。
まず、ステップ(以下、Sと略記する)10で、同期開始信号をパソコンBの同期制御部3Bへ送信する。ついでS11では、同期管理部3Cが、同期時刻記録部5Cから同期時刻を取得するとともに、データベース4Cから全レコードの更新時刻を取得し、この同期時刻と更新時刻とを比較する。
S12では、同期管理部3CにてS11で取得した各レコードの同期時刻と更新時刻とが等しいか異なるかを判定する。上記の同期時刻と更新時刻とが異なる場合には、NOで示されたとおりS13へ進み、前回の同期後にモバイル端末Cで更新されたレコード(レコードCB、図1参照)をパソコンBの同期制御部3Bへ送信する。なお、前回の同期後に更新されたレコードがない場合にはレコードCBの代わりに、送信なし信号をパソコンB(同期制御部3B)に送信する。
一方、上記の同期時刻と更新時刻とが等しい場合には、YESで示されたとおりS14へ進み、全レコードについて比較を行ったかを判定する。S14で残されたレコードがある場合、NOで示されたとおりS12へ戻り、残りの各レコードにつき、上記の同期時刻と更新時刻とを比較する。そして、すべてのレコードが比較済になれば、YESで示されたとおりS15へ進み、送信終了信号をパソコンBへ送信する。(この後、パソコンBおよびサーバAで同期作業が行われる。)
S16では、パソコンBの同期制御部3Bから、前回の同期後に各ノード(モバイル端末C、パソコンBサーバA)で更新された(同一のレコードが複数のノードで更新された場合はより新しく更新された)レコード(レコードBC、図1参照)を同期管理部3Cにて受信する。S17では、レコード管理部2Cが、データベース4Cに存在する、上記レコードBCと同じレコードIDを有するレコード(相当レコードbc)を、レコードBCの内容に従って(レコードBCと同一内容になるよう)更新する。
なお、S16において、上記のレコードBCを受信せず、代わりに、送信なし信号をパソコンBから受信することもある(例えば、パソコンBやサーバAでレコードの更新が行われなかった場合)。このようなときには、S17でデータベース4Cの更新は行われない。
S18では、パソコンBから同期時刻(図1参照)を受信する。S19ではこの同期時刻を同期時刻記録部5Cに記録するとともに、レコード管理部2Cが、データベース4C内の全レコードの更新時刻をこの同期時刻に更新する。以上にてモバイル端末Cでの同期工程を終了する。
(PCでの同期フロー)
図4は、パソコンBにおける同期工程を示すフローチャートである。以下、図1および図4を用いて各工程(ステップ)を説明する。
まず、S30でモバイル端末Cから同期開始信号(図1参照)を受信し、この同期開始信号をサーバAに送信する。送サーバAに信する。ついで、S31では、モバイル端末CからレコードCB(前回の同期後にモバイル端末Cで更新されたレコード)を受信するとともに、レコード管理部2Bがデータベース4Bに対し、レコードCBと同一のレコードIDを有するレコード(以下、相当レコードcb)を検索するよう命令する。そして、同期制御部3Bがデータベース4Bから上記相当レコードcbの更新時刻を取得する。
S32では、S31で取得したレコードCBの更新時刻が上記の相当レコードcbの更新時刻より新しいか否かを判定する。
レコードCBの更新時刻が相当レコードcbの更新時刻より新しい場合には、YESで示されたとおりS33に進み、レコード管理部2Bが、データベース4Bに対して、相当レコードcbがモバイル端末Cから受信したレコードCBと同一内容になるよう、更新(上書き)命令を出す。併せて、このレコードCBをサーバAへ送信する。
一方、レコードCBの更新時刻がCB相当レコードの更新時刻より古い場合には、NOで示されたとおりS34へ進み、レコード管理部2Bが、データベース4Bに対して、モバイル端末Cより送信されたレコードCBを破棄するよう命令し、かつ、レコードCBのレコードIDを送信記憶部8Bに記録する。さらに、レコード管理部2Bが、データベース4Bに対して、相当レコードcb(データベース4Bに存在する、レコードCBと同一のレコードIDを有するレコード)をサーバAに送信するように命令する。
S35ではモバイル端末Cより受信したレコードBCすべてを比較したかを判定する。その結果、比較されていないレコードがある場合、NOで示されたとおりS32へ戻る。すべて比較された場合にはYESで示されたとおりS36へ進む。
S36では、同期制御部Bが、同期時刻記録部5Bから同期時刻を取得するとともに、データベース4Bから、残りレコード(データベース4Bにおける、相当レコードbc以外のレコード)の更新時刻を取得する。S37では、S36で取得された同期時刻と更新時刻とを比較する。
時刻が異なる場合、YESで示されたとおりS38へ進み、送信記憶部8Bに、該当するレコード(すなわち、パソコンBでのみ更新されたレコード)のレコードIDを記録するとともに、これをサーバAに送信する。
一方、時刻が等しい場合、NOで示されたとおりS39へ進み、残りレコードの全てが比較されたか否かを判定する。その結果、比較されていない残りレコードが存在する場合は、NOで示されたとおりS37へ戻る。残りレコードの全てが比較された場合には、YESで示されたとおりS40へ進む。
なお、図1におけるレコードBAには、パソコンBからサーバAに送られる、レコードCB(あるいは相当レコードcb)と、S37に該当する(YESである)残りレコード(すなわち、パソコンBでのみ更新されたレコード)とが含まれている。また、モバイル端末Cから送信なし信号が送信され(データベース4Cに更新されたレコードがない場合)、かつ、データベース4Bにも更新されたレコードがない場合には、パソコンBからサーバAへ送信なし信号が送信される。
S40では送信終了信号をサーバAへ送信する。(この後、サーバAで同期作業が行われる。)
S41では、サーバAから、前回の同期後に各ノード(モバイル端末C、パソコンBサーバA)で更新された(同一のレコードが複数のノードで更新された場合はより新しく更新された)レコード(レコードAB、図1参照)を受信する。そして、サーバAの送信終了信号を受信するとS42に進む。S42では、レコード管理部2Bが、データベース4Bに存在する、レコードABと同じレコードIDを有するレコード(相当レコードab)を、レコードABの内容に従って(レコードABと同一内容になるよう)更新し、かつ、そのレコードIDを送信記憶部8Bに記録する。
S43では、レコード管理部2Bが、送信記憶部8Bに記録されているレコードIDに該当するレコードを、データベース4Bより取得し、モバイル端末Cへ送信する。
なお、S41において、サーバAから送信なし信号を受信することがある(例えば、サーバAでレコードの更新が行われなかった場合)。このような場合には、送信記憶部8Bに記録されたレコードIDに該当するレコードを、データベース4Bより取得し、これをモバイル端末Cへ送信する(S34・38参照)。ただし、S34やS38を経由せず、送信記憶部8BにレコードIDが記録されていない場合には、送信なし信号をモバイル端末Cへ送信する。
S44ではサーバAより同期時刻を受信する。S45では同期時刻記録部5Bの同期時刻と、データベース4B内の全レコードの更新時刻とをこの同期時刻に更新する。S46ではモバイル端末Cにこの同期時刻を送信する。
以上にてパソコンBでの同期工程を終了する。
(サーバでの同期フロー)
図5は、サーバAにおける同期工程を示すフローチャートである。以下、図5および図1を用いて各工程(ステップ)を説明する。
まず、S60でパソコンBから同期開始信号(図1参照)を受信する。S61では、パソコンBからレコードBAを受信する。上記のとおり、このレコードBAには、レコードCB(あるいは、相当レコードcb)とS37に該当する(YESである)残りレコード(すなわち、パソコンBでのみ更新されたレコード)とが含まれている。ここで、レコード管理部2Aが、データベース4Aに対し、レコードBAと同一のレコードIDを有するレコード(以下、相当レコードba)を検索するよう命令する。これにより、同期管理部3Aは、データベース4Aから、相当レコードbaの更新時刻を取得する。
S62では、各レコードにつき、S61で取得したレコードBAの更新時刻が相当レコードbaの更新時刻より新しいか否かを判定する。レコードBAの更新時刻が相当レコードbaの更新時刻より新しい場合には、YESで示されたとおりS63に進み、レコード管理部2Aが、データベース4Aに対して、相当レコードba(データベース4Aに存在する、レコードBAと同一のレコードIDを有するレコード)がレコードBAと同一内容になるよう、更新(上書き)命令を出す。なお、この場合には、レコードBAをパソコンBへ送信しない(このレコードBAのレコードIDは、パソコンBの送信記憶部に記録されているため)。
一方、レコードBAの更新時刻が相当レコードの更新時刻より古い場合には、NOで示されたとおりS64へ進み、レコード管理部2Aが、データベース4Aに対して、パソコンBより送信されたレコードBAを破棄するよう命令し、かつ、レコード管理部2Aが、データベース4Aに対して、相当レコードbaをパソコンBに送信するように命令する。
S65ではパソコンBより受信したレコードBAすべてを比較したかを判定する。そして、比較されていないレコードがある場合、NOで示されたとおりS62へ戻る。すべて比較された場合にはYESで示されたとおりS66へ進む。
S66では、同期管理部3Aが、同期時刻記録部5Aから同期時刻を取得するとともに、データベース4Aから、残りレコード(データベース4Aに存在する、相当レコードba以外のレコード)の更新時刻を取得する。S67では、S66で取得された同期時刻と更新時刻とを比較する。
時刻が異なる場合、YESで示されたとおりS68へ進み、レコード管理部2Aが、データベース4Aに対し、該当するレコード(サーバAでのみ更新されたレコード)をパソコンBに送信するよう命令する。
一方、時刻が等しい場合、NOで示されたとおりS69へ進み、残りレコードの全てが比較されたか否かを判定する。その結果、比較されていない残りレコードが存在する場合は、NOで示されたとおりS67へ戻る。残りレコードの全てが比較された場合には、YESで示されたとおりS70へ進む。
S70では送信終了信号をパソコンBへ送信する。S71では同期時刻としてサーバの時計から現在時刻を取得する。S72では、同期時刻記録部5Aの同期時刻と、データベース4A内の全レコードの更新時刻とをこの同期時刻に更新する。S73ではパソコンBにこの同期時刻を送信する。
以上にてサーバAでの同期工程を終了する。
このように、モバイル端末CからパソコンB、パソコンBからサーバA、サーバAからパソコンB、パソコンBからモバイル端末Cというように、パソコンBがモバイル端末CとサーバAとの中継機能を担うことで、各ノード(A〜C)は、他のノードが更新したレコードを効率的に認識することができる。
これにより、三者(ノードA〜C)間情報同期の際に最大のネックとなるサーバA・モバイル端末C間の相互通信が不要となる。すなわち、通信速度の劣るモバイル端末Cの送受信回数が減り、迅速な情報同期が可能になる。加えて、サーバA側においても、モバイル端末Cとの同期処理を逐一行う必要がなくなり、その負担が大幅に軽減される。特に、パソコンBのユーザとモバイル端末Cのユーザとが同一の個人である場合、ユーザは、自己が保有するパソコンBおよびモバイル端末Cの情報と、(共有)サーバAの情報とをすばやく同期させることができ、大変便利である。
以下に、本実施の形態における同期作業の流れを時系列に沿って説明する。図6〜図8は、いずれかのノード(端末)のレコードのみが更新されている場合の同期シーケンス図である。
以下では、時刻tで同期したレコードをR(t)、t以降で更新が行われたレコードをR'(t)と表記する。なお、以下の説明中に記載されているステップ番号は、図3〜図5に示すフローチャートのステップ番号に対応している。
図8は、モバイル端末CのレコードがR'(t)であり、パソコンBおよびサーバAのレコードがR(t)である状態で同期を開始し、所定の時刻Tにて各ノード(A〜C)を同期させた場合のシーケンス図である(tはtより後の時間)。
まず、同期開始信号が、モバイル端末CからパソコンBへ(S10)、ついでパソコンBからサーバAへ送信される(S30)。ついで、モバイル端末Cにおいて、同期時刻記録部5Cにある前回の同期時間tとデータベース4CにあるR'(t)の更新時間とが比較され(S11・12)、tはtより後の時刻であることから、モバイル端末Cは、このデータベース4CにあるR'(t)をレコードCBとしてパソコンBへ向けて送信する(S13)。
パソコンBでは、受信したR'(t)の更新時間(t)と、データベース4Bの相当レコードR(t)の更新時刻(前回の同期時間t)とを比較し(S31・32)、tはtより後の時刻であることから、パソコンBは、データベース4Bの相当レコードをR'(t)に更新するとともに、このR'(t)をレコードBAとしてサーバAへ送信する(S33)。
サーバAでは、受信したR'(t)の更新時間(t)と、データベース4Aの相当レコードR(t)の更新時刻(前回の同期時間t)とを比較し(S61・62)、tはtより後の時刻であることから、サーバAは、データベース4Aの相当レコードをR'(t)に更新する。ただし、パソコンBより受信したR'(t)によってデータベース4Aの相当レコードが更新されており、残りレコード(データベース4Aに存在する、上記相当レコード以外のレコード)にサーバAでのみ更新されたレコードがない場合には、パソコンBに送信すべきレコードはない。よって、サーバAはパソコンBへ送信なし信号を送信する。
ついで、サーバAは、同期時刻としてTを取得し(S71)、データベース4AのレコードR'(t)をR'(T)に更新する(S72)。ついで、TをパソコンBへ送信しサーバAの同期処理が終了する(S73)。
パソコンBでは、上記のとおり、R'(t)の受信はなく、Tを受信し(S44)、データベース4BのレコードR'(t)をR'(T)に更新する(S45)。また、パソコンBで更新されたレコードがないため送信記憶部8Bに記録されたレコードIDもなく、モバイル端末Cへはレコードを送信せず、代わりに送信なし信号を送信する。最後に、同期時刻Tをモバイル端末Cに送信し、パソコンBの同期処理は終了する(S46)。
上記のとおり、モバイル端末Cは、パソコンBからレコードを受信せず、同期時刻Tのみを受信する(S18)。モバイル端末Cは、データベース4CのレコードR'(t)をR'(T)に更新し(S19)、同期を終了する。
図7は、パソコンBのレコードがR'(t)であり、モバイル端末CおよびサーバAのレコードがR(t)である状態で同期を開始し、所定の時刻Tにて各ノード(A〜C)を同期させた場合のシーケンス図である(tはtより後の時刻)。
まず、モバイル端末Cが同期開始信号をパソコンBへ送信し、(S10)、ついでパソコンBが同期開始信号をサーバAへ送信する(S30)。ついで、モバイル端末Cにおいて、同期時刻記録部5Cにある前回の同期時間tとデータベース4CにあるR(t)の更新時間とが比較される(S11・12)。ここで、前回の同期時間とR(t)の更新時刻とが同じ時刻である(モバイル端末Cではレコードの更新がなかった)ことから、モバイル端末CがパソコンBへ送信すべきレコードはなく、代わりに、送信なし信号をパソコンBへ送信する。
パソコンBでは、上記のとおり、モバイル端末Cからレコードを受信しないため、残りレコード(この場合、データベース4Bの全レコードになる)の更新時刻と、前回の同期時刻との比較を行う(S36)。そして、パソコンBは、残りレコードのうち、パソコンBで更新されたR'(t)をサーバAへ送信するとともに、このR'(t)のレコードIDを送信記憶部8Bに記録する(S38)。
サーバAでは、パソコンBから受信したR'(t)とデータベース4Aにある相当レコードR(t)との比較を行い、tはtより後の時刻であることから、この相当レコードR(t)をR'(t)に更新する。ただし、パソコンBより受信したR'(t)によってデータベース4Aの相当レコードが更新されており、残りレコードのうちサーバAでのみ更新されたレコードもない場合には、パソコンBに送信すべきレコードはない。よって、サーバAはパソコンBへ送信なし信号を送信する。
ついで、サーバAは、同期時刻としてTを取得し(S71)、データベース4AのレコードR'(t)をR'(T)に更新する(S72)。ついで、サーバAは、TをパソコンBへ送信し、その同期処理を終了する(S73)。
パソコンBでは、上記のとおり、サーバAからの受信はなく、送信記憶部8Bに記録されたレコードIDに基づいて、R'(t)をモバイル端末Cへ送信する(S43)。ついで、パソコンBは、同期時刻TをサーバAから受信し(S44)、データベース4BのレコードR'(t)をR'(T)に更新する(S45)とともに、この同期時刻Tをモバイル端末Cに送信し、その同期処理は終了する(S46)。
モバイル端末Cは、データベース4CのレコードR(t)を、パソコンBから受信したR'(t)に更新する(S16、17)。ついで、モバイル端末Cは、パソコンBから同期時刻Tを受信し、データベース4CのレコードR'(t)をR'(T)に更新し、その同期処理を終了する。
図9は、サーバAのレコードがR'(t)であり、モバイル端末CおよびパソコンBのレコードがR(t)である状態で同期を開始し、所定の時刻Tにて各ノード(A〜C)を同期させた場合のシーケンス図である(tはtより後の時刻)。
まず、モバイル端末Cが同期開始信号をパソコンBへ送信し、パソコンBがこの同期開始信号をサーバAへ送信する。ついで、モバイル端末Cにおいて、同期時刻記録部5Cにある前回の同期時間tとデータベース4CにあるR(t)の更新時間とが比較される(S11・12)。ここで、前回の同期時間とR(t)の更新時刻とが同じ時刻である(モバイル端末Cではレコードの更新がなかった)ことから、モバイル端末CがパソコンBへ送信すべきレコードはなく、代わりに、送信なし信号をパソコンBへ送信する。
パソコンBはレコードを受信していないため、残りレコード(この場合、データベース4Bの全レコードになる)の更新時刻と、前回の同期時刻との比較を行う(S36)。ここで、データベース4BのR(t)の更新時刻(t)は前回の同期時刻(t)と等しいのでサーバAへの送信を行わず(S37)、代わりに、送信なし信号を送信する。
サーバAはレコードを受信していないため、残りレコード(この場合、データベース4Aの全レコードになる)R'(t)の更新時刻(t)と、前回の同期時刻(t)との比較を行う(S67)。ここでtはtより後の時刻であることから、サーバAは、データベース4AにあるR'(t)をレコードCBとしてパソコンBへ向けて送信する(S67、68)。ついで、サーバAは、同期時刻としてTを取得し、データベース4AのレコードR'(t)をR'(T)に更新するとともに、TをパソコンBへ送信し同期処理を終了する。
パソコンBはサーバAからR'(t)を受信するため、相当レコードをR'(t)に更新するとともに送信記憶部8BにこのレコードIDを記録する(S41、42)。ついで、パソコンBは、送信記憶部8Bに記録されたレコードIDに基づいて、このIDに該当するレコードR'(t)をモバイル端末Cへ送信する。さらに、パソコンBは、サーバAよりT(今回の同期時刻)を受信し、レコードR'(t)をR'(T)に更新するとともに、このTをモバイル端末Cへ送信し、その同期処理を終了する。
モバイル端末CはR'(t)を受信し、その相当レコードR(t)をR'(t)に更新する。ついで、モバイル端末Cは、パソコンBより今回の同期時刻Tを受信し、データベース4CのレコードR'(t)をR'(T)に更新してその同期処理を終了する。
なお、本実施の形態では、同期時は各ノード(サーバA、パソコンB、モバイル端末C)で所持するレコード群の各レコードIDが一致する場合について説明した。しかし、ある時点での同期以降、次の同期の間までにレコードを新規に作成する、あるいは削除することも考えられ、この場合には、同期開始時にノード間のレコード群が異なることになる。このような場合には、以下のように対応することが好ましい。
すなわち、いずれかのノードで新レコードが作成され、同期時に他のノードが対応するレコードがないと判断した場合には、当該ノードは、この新レコードを新規に作成して同期処理を行う。また、各ノードでレコードを削除した場合に、これを他のノードで反映するには、レコードに削除フラグに相当するようなデータを付与し、レコード削除の際にレコードIDと削除フラグデータ以外を削除するようにする。そして、レコードを削除したノードは、同期時にそのレコードIDと削除フラグデータとを他ノードに送信する。これにより、各ノードにてレコードの新規作成や削除があった場合にも、これを反映した同期処理を行うことができる。
〔実施の形態2〕
本発明の実施の形態2について、図9〜図12に基づいて説明すれば以下のとおりである。
本実施の形態では、同一のレコードIDをもつレコードが、各ノードにおいて異なる数のデータフィールドを有する場合について説明する。図10(a)〜(c)は、実施の形態2において各ノードが所持するレコード例を示す。
図10(a)〜(c)に示されるように、レコードID・更新時刻・予定日・場所の4つのデータフィールドは全ノード(モバイル端末C、パソコンB、サーバA)で共通しているが、パソコンBは、この共通のデータフィールドに加え、取引先を示す1つのデータフィールドを有し、サーバAは、この共通のデータフィールドに加え、取引先および担当者を示すの2つデータフィールドを備えている。すなわち、同一のレコードIDをもつレコードが、ノードごとに異なるデータフィールドを持っている。なお、例えば、図10(a)に示されるサーバAのレコードにおいては、6個のデータフィールドである、レコードID、更新時刻、予定日、場所、取引先、担当者が、それぞれ000001、2003年10月1日17時0分、2003年10月5日、Aビル、B社、Cであることをあらわしている。
実施の形態2におけるパソコンBのプロキシ部を、図9に示す。なお、他のノードであるモバイル端末CおよびサーバAの構成は図1に示されるものと同じであり、通信システム1自体も、図1うや図2(a)示されるように構成されている。
図9に示されるように、パソコンBのプロキシ部7Bは、同期制御部3Bとレコード管理部2Bと送信記憶部8Bとノード別レコード判定テーブル9B(レコード判定テーブル)とを備え、該ノード別レコード判定テーブル9Bには各ノードがもつレコードのデータフィールドが記録されている。これを図11に示す。図11に示されるように、ノード別レコード判定テーブルでは、データが存在するデータフィールドが1と表記され、データが存在しないデータフィールドが0と表記されている。すなわち、サーバAは、日時・場所・取引先・担当者の4つのデータフィールドを有し、パソコンBは、日時・場所・取引の3つのデータフィールドを有し、モバイル端末Cは、日時・場所の2つのデータフィールドを有する。このように、ノード別レコード判定テーブル9Bは、レコードについて受信したレコードをデータフィールド単位で判定するために用いられる。
なお、以下の説明においては、図10(a)〜(c)に示されるように、各ノードが有するレコードのデータフィールド数が、サーバAが1番多く、パソコンBがその次に多く、モバイル端末Cのように小さい機器が1番少ない場合を前提としている。また、各ノードでの同期処理においては、レコードの更新時刻に基づいて一番新しい更新時刻をもつレコードに同期されるものとする。例えば、サーバAで10月1日に予定日が更新されたレコードがあり、パソコンBでは10月2日に取引先データが更新されたレコードがある場合、更新時刻はパソコンBの方が後であることから、パソコンBの取引先データと予定日データとに基づいて、サーバAとパソコンBとを同期させる。
次に、各ノードにおける具体的な同期処理を説明する。なお、モバイル端末CおよびサーバAにおける同期工程は、図3や図5で示される、モバイル端末CおよびサーバAの同期工程と同じであるため、ここでは説明を省略し、パソコンBにおける同期工程を図12を用いて説明する。図12は、各ノードでレコード内容が異なる場合のパソコンBでの同期工程を示すフローチャートである。
まず、S30でモバイル端末Cから同期開始信号を受信し、この同期開始信号をサーバAに送信する。送サーバAに信する。ついで、S31では、モバイル端末CからレコードCB(前回の同期後にモバイル端末Cで更新されたレコード)を受信するとともに、レコード管理部2Bがデータベース4Bに対し、レコードCBと同一のレコードIDを有するレコード(以下、相当レコードcb)を検索するよう命令する。そして、同期制御部3Bがデータベース4Bから上記相当レコードcbの更新時刻を取得する。
S32では、S31で取得したレコードCBの更新時刻が上記の相当レコードcbの更新時刻より新しいか否かを判定する。
レコードCBの更新時刻が相当レコードcbの更新時刻より新しい場合には、YESで示されたとおりS33に進み、レコード管理部2Bが、データベース4Bに対して、相当レコードcbがモバイル端末Cから受信したレコードCBと同一内容になるよう、更新(上書き)命令を出す。併せて、このレコードCBをサーバAへ送信する。
一方、レコードCBの更新時刻がCB相当レコードの更新時刻より古い場合には、NOで示されたとおりS34へ進み、レコード管理部2Bが、データベース4Bに対して、モバイル端末Cより送信されたレコードCBを破棄するよう命令し、かつ、レコードCBのレコードIDを送信記憶部8Bに記録する。さらに、レコード管理部2Bが、データベース4Bに対して、相当レコードcb(データベース4Bに存在する、レコードCBと同一のレコードIDを有するレコード)をサーバAに送信するように命令する。
S35ではモバイル端末Cより受信したレコードBCすべてを比較したかを判定する。その結果、比較されていないレコードがある場合、NOで示されたとおりS32へ戻る。すべて比較された場合にはYESで示されたとおりS36へ進む。
S36では、同期制御部Bが、同期時刻記録部5Bから同期時刻を取得するとともに、データベース4Bから、残りレコード(データベース4Bにおける、相当レコードbc以外のレコード)の更新時刻を取得する。S37では、S36で取得された同期時刻と更新時刻とを比較する。
時刻が異なる場合、YESで示されたとおりS38へ進み、送信記憶部8Bに、該当するレコード(すなわち、パソコンBでのみ更新されたレコード)のレコードIDを記録するとともに、これをサーバAに送信する。
一方、時刻が等しい場合、NOで示されたとおりS39へ進み、残りレコードの全てが比較されたか否かを判定する。その結果、比較されていない残りレコードが存在する場合は、NOで示されたとおりS37へ戻る。残りレコードの全てが比較された場合には、YESで示されたとおりS40へ進む。
なお、レコードBA(図1参照)には、パソコンBからサーバAに送られる、レコードCB(あるいは相当レコードcb)と、S37に該当する(YESである)残りレコード(すなわち、パソコンBでのみ更新されたレコード)とが含まれている。また、モバイル端末Cから送信なし信号が送信され(データベース4Cに更新されたレコードがない場合)、かつ、データベース4Bにも更新されたレコードがない場合には、パソコンBからサーバAへ送信なし信号が送信される。
S40では送信終了信号をサーバAへ送信する。(この後、サーバAで同期作業が行われる。)
S41では、サーバAから、前回の同期後に各ノード(モバイル端末C、パソコンBサーバA)で更新された(同一のレコードが複数のノードで更新された場合はより新しく更新された)レコード(レコードAB)を受信する。そして、サーバAの送信終了信号を受信するとS74aに進む。
ここで、サーバAから送信されたレコードABには、図10(a)に示されるように、レコードID、更新時刻のほかに、予定日、場所、取引先および担当者の4個のデータフィールドが含まれており、パソコンBにおける相当レコードab(データベース4Bに存在する、レコードABと同一のレコードIDを有するレコード)とは、データフィールド数が異なる(図10(b)(c)参照)。
そこで、S74aでは、ノード別レコード判定テーブル9Bを参照してS74bに進み、レコードAB内の所定のデータフィールドがデータベース4Bの相当レコードabに存在するか否かを判定する。
上記所定のデータフィールドが相当レコードabに存在する場合、YESで示されたとおりS74cに進み、レコード管理部2Bが、相当レコードabの該当するデータフィールドのデータを、レコードABの内容に従って(レコードABと同一内容になるよう)更新する。
上記所定のデータフィールドが相当レコードabに存在しない場合、NOで示されたとおりS75に進み、全てのデータフィールドについて上記の存在判定が行われたかを判定する。そして、判定を行っていないデータフィールドがある場合には、NOで示されたとおりS73に戻り、次のデータフィールドが相当レコードabに存在するかを判定する。
全てのデータフィールド(予定日、場所、取引先および担当者の4個のデータフィールド)を判定し終えた場合には、該当するレコードのレコードIDを送信記憶部8Bに記録し、YESで示されたとおりS76へ進む。S76では、サーバAより受信した全レコードについてパソコンBで同期したかを判定する。残っている場合、NOで示されたとおりS73に戻り、次のレコードについて引き続き判定を行う。
レコードABの全てのレコードを判定した場合には、YESで示されたとおりS77に進み、送信記憶部8Bに記録されたレコードIDを有するレコード(これをレコードBC’とする)を全て取得する。そして、モバイル端末Cに送信するレコードBCを作成するためにS79に進む。
S79では、同期制御部3Bがノード別レコード判定テーブル9B(図9・図11参照)を参照して、上記レコードBC’内の所定のデータフィールドが、モバイル端末Cのレコードに存在するか否かを判定する(図10(b)(c)・図11参照)。
上記所定のデータフィールドがモバイル端末Cのレコードに存在しない場合、NOで示されたとおりS80に進み、同期制御部3Bが上記レコードBC’から、該当するデータフィールドの具体的データを削除する。一方、上記所定のデータフィールドがモバイル端末Cのレコードに存在する場合、YESで示されたとおりS81に進み、全てのデータフィールドについて上記の存在判定が行われたかを判定する。そして、判定を行っていないデータフィールドがある場合には、NOで示されたとおりS79に戻り、次のデータフィールドがモバイル端末Cのレコードに存在するかを判定する。
なお、S77〜S81の代わりに、以下のようにしてレコードBCを生成してもかまわない。
すなわち、S76の後に、同期制御部3B(図9参照)が送信記憶部8Bに記録されたレコードIDに対応する空レコードを用意する。ついで、同期制御部3Bがノード別レコード判定テーブル9Bを参照して、上記空レコードの所定のデータフィールドが、モバイル端末Cのレコードに存在するか否かを判定する(図9・図10(b)(c)・図11参照)。
上記所定のデータフィールドがモバイル端末Cのレコードに存在する場合には、同期制御部3Bが上記空レコードの所定のデータフィールドに具体的データを追加する。一方、上記所定のデータフィールドがモバイル端末Cのレコードに存在しない場合、全てのデータフィールドについて上記の存在判定が行われたかを判定する。
そして、全てのデータフィールド(予定日、場所および取引先の3個のデータフィールド)を判定し終えた場合には、YESで示されたとおりS82へ進み、該当するレコード(レコードBC)をモバイル端末Cへ送信する。
S83では、取得したレコードBC’のすべてのデータについて、データフィールド存在判定をしたかを判定する。すべて判定した場合には、YESで示されたとおりS84へ進む。まだ未判定レコードが残っている場合、NOで示されたとおりS79に戻り、次のレコードについて引き続きデータフィールド存在判定を行う。
S84ではモバイル端末Cへ送信終了信号を送信する。S85ではサーバAより同期時刻を受信するとともに、同期時刻記録部5Bの同期時刻と、データベース4B内の全レコードの更新時刻とをこの同期時刻に更新する。S86ではモバイル端末Cにこの同期時刻を送信する。
以上にてパソコンBでの同期工程を終了する。
上記の説明では、サーバAのレコード長が長い(データフィールドの数が多い)のを前提としているため、パソコンBからサーバAへのレコード送信の際、レコードの更新時刻の比較を行うのみで、データフィールドの存在についての判定は行っていない(図12のS32〜39参照)。
しかしながら、上位ノード(サーバA)のレコード長が短い(データフィールドの数が少ない)場合も考えられ、その場合、パソコンBからサーバAへレコードを送信する際にノード別レコード判定テーブル9Bを参照してサーバAへ送信すべきレコードBAを作成することも可能である。その際、対応関係のない(サーバAの相当レコードにない)データフィールドへは空データを入れ込めば良い。
また、各ノード(A〜C)でデータフィールドの包含関係が混在している場合が考えられる。例えば、パソコンBには予定日を示すデータフィールドはあるが場所を示すデータフィールドがなく、逆にモバイル端末Cは場所を示すデータフィールドはあるが予定日を示すデータフィールドがなく、サーバAには予定日と場所との双方を示すデータフィールドが存在する場合である。
このような場合には、パソコンBが受信したレコードについて送信先のノードを問わずノード別レコード判定テーブル9Bを参照し、これに基づいて送信用のレコードを作成すればよい。その際、受信先のノードにおけるレコードの更新時刻を参考にし、空データフィールド部分を補完することでより正確な同期を行うことが可能となる。
例えば、更新時刻について、パソコンBが最新、サーバAがその次に新しく、モバイル端末Cが一番古いとする。このとき、パソコンBとモバイル端末Cには対応するデータフィールドはないが、モバイル端末CのレコードよりサーバAのレコードの更新時刻が新しいことから、パソコンBがレコードBCを作成する際、サーバAにおける場所のデータを挿入することが望ましい。なお、この場合、パソコンBはサーバAに対して自らが更新を行わないデータフィールドに関するデータ(場所のデータ)についてもこれを要求することになる。これにより、モバイル端末Cをより正確に同期させることができる。
さらに、上記の説明においては、同期処理の際に中継端末となるパソコンBを通過することを前提としている。中継端末(パソコンB)を通さずに、サーバA・モバイル端末C間で同期する場合、例えば、サーバAでは同期相手のデバイスIDを同期開始時に受信することで同期相手を判定し、相手によって送信時のレコードを相手ノードに対応したレコードを作成することで可能になる。例えば、サーバAが相手をモバイル端末Cと認識した場合、モバイル端末Cから送られてきたレコードのレコード長に基づいてモバイル端末Cへ送信すべきレコードをサーバA内で作成する。なお、モバイル端末Cのように処理能力の遅いノード(端末)では上記のとおり送信レコードを作成する。また、サーバAが相手をパソコンB(中継端末)と認識した場合にも、サーバAは上記のとおりの処理を行う。なお、モバイル端末Cがレコードのデータ長を判定し、場合分けすることで、処理の多いサーバA等の上位ノードの負担を減らすことも可能である。
〔実施の形態3〕
本発明に係る実施の形態3について、図13〜図19を用いて説明すれば以下のとおりである。本実施の形態では、優先順位を示すデータフィールドを有するレコードを同期する場合について説明する。
すなわち、各ノード(A〜C)が同期された後に、別々のノードで同一のレコードIDを有するレコードが更新されたが、そのレコードが、上記のように優先順位のデータを持っていた場合に、各ノード(A〜C)の同期処理をいかに行うかを考えている。例えば、
1つのノードにてあるレコード(高優先順位)が更新され、その後、このレコードと同一のレコードIDを有するレコード(低優先順位)が他ノードで更新された場合、実施の形態1・2のように同期の基準を更新時刻とすれば、後で更新されたレコードが優先されるが、本実施の形態では、高い優先順位のレコードを優先させるため、先に更新された高優先順位のレコードが優先される。
図14(a)〜(c)に、各ノードにおける優先順位のデータを持つレコードの例を示す。同図(a)〜(c)に示される各レコードは、レコードID(同一)、重要度ID、案件状況、更新時刻、予定日および場所の6つのデータフィールドを備えている。重要度IDは同期時の判定基準のためのデータフィールドであり、その値の小さいレコードが高い優先度を保持することを意味する。この重要度IDは案件状況と対応しており、案件状況のデータである「保留」、「依頼」、「決定」に対応し、それぞれ重要度IDのデータである3、2、1が割り振られている。
図(a)に示されたサーバAのレコードは、「案件状況」、「重要度ID」、「レコードID」、「更新時刻」、「予定日」、「場所」がそれぞれ、「保留」、「3」、「000001」、「2003年10月1日17時0分」、「2003年10月5日」、「Aビル」である。図(b)に示されたパソコンBのレコードは、「案件状況」、「重要度ID」がそれぞれ、「依頼」、「2」であり、図(c)に示されたモバイル端末Cのレコードは、「案件状況」、「重要度ID」がそれぞれ、「決定」、「1」である。
実際の同期ではこの重要度IDを参照し、一番小さい値のモバイル端末Cのレコードが優先されて同期が行われる。上記のとおり、本実施の形態では、重要度IDの小さいレコードを優先的して同期を行う。
次に、本実施の形態に用いられるパソコンBのプロキシ部を、図13に示す。なお、他のノードであるモバイル端末CおよびサーバAの構成は図1に示されるものと同じであり、通信システム1自体も、図2(a)に示されるように構成されている。
図13に示されるように、本実施の形態では、パソコンBのプロキシ部7Bが、同期制御部3Bとレコード管理部2Bと送信記憶部8Bと競合回避用優先順位テーブル10B(優先度テーブル)とを備え、この競合回避用優先順位テーブルBには、競合回避項目と優先順位とが格納されている。図15に、この競合回避用優先順位テーブル10Bの例を示す。同図に示されるように、競合回避項目として重要度IDと更新時刻があり、優先順位はそれぞれが1番目、2番目に優先されることを意味する。競合回避用優先順位テーブル10Bに競合回避項目が複数記載されている場合、優先順位の数字の小さい順に同期の比較を行う。例えば、重要度IDが同じレコードについては、優先度が2番目の更新時刻について比較をする。上記のとおり、案件状況の優先順位と重要度IDとは対応し、重要度IDを元に同期の判定を行うため、競合回避用優先順位テーブル10Bには案件状況の項目は存在しない。また、競合回避用優先順位テーブル10Bのデータ(ルール)を他ノードに送ることで、他ノードでも競合回避用優先順位テーブルBに示されたルールにしたがった同期処理が可能である。なお、これ以外の優先ルールは存在しない。
これにより、同期制御部Bは、モバイル端末Cから受信したレコード(レコードCB)の相当レコードをデータベース4Bから取得し、この競合回避用優先順位テーブル10Bを参照して、優先順位が1番目の重要度IDを基準として両者(レコードBC、その相当レコード)を比較する。そして、この同期制御部3Bによる比較結果に基づいて、レコード管理部2Bがデータベース4Bに、更新やサーバAへの送信を命令する。
なお、本実施の形態の以外の構成(例えば、実施の形態1・2)においても、競合回避項目が複数ある場合には、上記のように優先順位にしたがった同期作業を行うことが可能である。
以下に、実施の形態3における各ノード(A〜C)の同期フローを図16・図17を用いて詳細に説明する。なお、本実施の形態におけるモバイル端末Cのフローは実施の形態1におけるフロー(図3参照)と同じである。
まず、パソコンBでの同期フローを図16を用いて説明する。S90ではモバイル端末Cから同期開始信号を受信し、これを競合回避用優先順位テーブル10BとともにサーバAに送信する。S91では、同期制御部3Bが競合回避用優先順位テーブル10Bを選択し、同期の基準を決定する。ここでは、図15に示される競合回避用優先順位テーブル10Bを用い、同期の基準として、重要度IDを優先順位1、優更新時刻を優先順位2とする。さらに、この決定された同期の基準をサーバAの同期管理部3Aに送信する。
S92では、同期制御部3Bにてモバイル端末CからのレコードCBを受信し、レコードCBの重要度IDと更新時刻とを取得する。さらに、レコードCBのレコードIDを基にレコード管理部2Bがデータベース4Bの検索を行い、同期制御部3Bで相当レコードcbの重要度ID、更新時刻を取得する。さらに、この相当レコードbcの重要度IDと上記したレコードCBの重要度IDとを比較する。
S93では、各レコードのもつ重要度IDの判定を行う。モバイル端末Cから受信したレコードCBの重要度IDが小さい場合はS94へ進む。そして、同期制御部3Bの要求に従いレコード管理部2Bがデータベース4B内の相当レコードcbをレコードCBの内容に更新し、かつこのレコードCBをサーバAの同期管理部3Aへ送信する。
レコードCBの重要度IDが相当レコードcbのそれより大きい場合S95へ進む。そして、同期制御部3BがレコードCBを破棄し、送信記憶部8BにそのレコードIDを記録する。あわせてデータベース4Bの相当レコードbcをサーバAの同期管理部3Aへ送信する。また、レコードCBの重要度IDが相当レコードcbのそれと同じ場合はS96へ進む。そして、重要度IDが同じレコードについて、更新時刻の判定を行う。
レコードCBの更新時刻が新しい場合、YESで示されたとおり上記のS94へ進む。そして、レコードCBの更新時刻が古い場合、NOで示されたとおり上記のS95へ進む。
更新時刻が同じ場合S35へ進む。S35ではレコードCBのすべてが比較されたかどうかを判定する。その結果、比較されていないレコードCBがある場合は、NOで示されたとおりS93へ戻り、次のレコードCBについて引き続き判定を行う。レコードCBのすべての比較が終わった場合、YESで示されたとおりS36へ進む。
S36では、同期制御部Bが、同期時刻記録部5Bから同期時刻を取得するとともに、データベース4Bから、残りレコード(データベース4Bにおける、相当レコードbc以外のレコード)の更新時刻を取得する。S37では、S36で取得された同期時刻と更新時刻とを比較する。
時刻が異なる場合、YESで示されたとおりS38へ進み、送信記憶部8Bに、該当するレコード(すなわち、パソコンBでのみ更新されたレコード)のレコードIDを記録するとともに、これをサーバAに送信する。
一方、時刻が等しい場合、NOで示されたとおりS39へ進み、残りレコードの全てが比較されたか否かを判定する。その結果、比較されていない残りレコードが存在する場合は、NOで示されたとおりS37へ戻る。残りレコードの全てが比較された場合には、YESで示されたとおりS40へ進む。
なお、図1におけるレコードBAには、パソコンBからサーバAに送られる、レコードCB(あるいは相当レコードcb)と、S37に該当する(YESである)残りレコード(すなわち、パソコンBでのみ更新されたレコード)とが含まれている。また、モバイル端末Cから送信なし信号が送信され(データベース4Cに更新されたレコードがない場合)、かつ、データベース4Bにも更新されたレコードがない場合には、パソコンBからサーバAへ送信なし信号が送信される。
S40では送信終了信号をサーバAへ送信する。(この後、サーバAで同期作業が行われる。)
S41では、サーバAから、前回の同期後に各ノード(モバイル端末C、パソコンBサーバA)で更新された(同一のレコードが複数のノードで更新された場合はより新しく更新された)レコード(レコードAB、図1参照)を受信する。そして、サーバAの送信終了信号を受信するとS42に進む。S42では、レコード管理部2Bが、データベース4Bに存在する、レコードABと同じレコードIDを有するレコード(相当レコードab)を、レコードABの内容に従って(レコードABと同一内容になるよう)更新し、かつ、そのレコードIDを送信記憶部8Bに記録する。
S43では、レコード管理部2Bが、送信記憶部8Bに記録されているレコードIDに該当するレコードを、データベース4Bより取得し、モバイル端末Cへ送信する。
なお、S41において、サーバAから送信なし信号を受信することがある(例えば、サーバAでレコードの更新が行われなかった場合)。このような場合には、送信記憶部8Bに記録されたレコードIDに該当するレコードを、データベース4Bより取得し、これをモバイル端末Cへ送信する(S34・38参照)。ただし、S34やS38を経由せず、送信記憶部8BにレコードIDが記録されていない場合には、送信なし信号をモバイル端末Cへ送信する。
S44ではサーバAより同期時刻を受信する。S45では同期時刻記録部5Bの同期時刻と、データベース4B内の全レコードの更新時刻とをこの同期時刻に更新する。S46ではモバイル端末Cにこの同期時刻を送信する。
以上でパソコンBでの同期が終了する。
次に、サーバAでの同期フローを図17を用いて説明する。まず、S97ではパソコンBから同期開始信号を受信し、それとともに競合回避用優先順位テーブル10Bを受信する。
S98では、パソコンBから同期の基準を受信する。この結果、重要度IDを優先順位1、優更新時刻を優先順位2とする同期の基準(優先度判定基準)を認識する。
S99では、同期管理部3AにてパソコンBからのレコードBAを受信し、レコードBAの重要度IDと更新時刻とを取得する。さらに、レコードBAのレコードIDを基にレコード管理部2Aがデータベース4Aの検索を行い、同期管理部3Aで相当レコードbaの重要度ID、更新時刻を取得する。さらに、この相当レコードbaの重要度IDと上記したレコードBAの重要度IDとを比較する。
S100では、各レコードのもつ重要度IDの判定を行う。パソコンBから受信したレコードBAの重要度IDが小さい場合はS101へ進む。そして、同期管理部3Aの要求に従いレコード管理部2Aがデータベース4A内の相当レコードbaをレコードBAの内容に上書きし、これを更新する。
レコードBAの重要度IDが相当レコードbaのそれより大きい場合S102へ進む。そして、同期管理部3AがレコードBAを破棄するとともに、データベース4Aの相当レコードbaをパソコンBの同期制御部3Bへ送信する。
また、レコードBAの重要度IDが相当レコードbaのそれと同じ場合はS103へ進む。そして、重要度IDが同じレコードについて、更新時刻の判定を行う。レコードBAの更新時刻が新しい場合、YESで示されたとおり上記のS101へ進む。そして、レコードBAの更新時刻が古い場合、NOで示されたとおり上記のS102へ進む。更新時刻が同じ場合S65へ進む。S65ではレコードBAのすべてが比較されたかどうかを判定する。その結果、比較されていないレコードBAがある場合は、NOで示されたとおりS100へ戻り、次のレコードBAについて引き続き判定を行う。レコードBAのすべての比較が終わった場合、YESで示されたとおりS66へ進む。
S66では、同期管理部3Aが、同期時刻記録部5Aから同期時刻を取得するとともに、データベース4Aから、残りレコード(データベース4Aに存在する、相当レコードba以外のレコード)の更新時刻を取得する。S67では、S66で取得された同期時刻と更新時刻とを比較する。
時刻が異なる場合、YESで示されたとおりS68へ進み、レコード管理部2Aが、データベース4Aに対し、該当するレコード(サーバAでのみ更新されたレコード)をパソコンBに送信するよう命令する。
一方、時刻が等しい場合、NOで示されたとおりS69へ進み、残りレコードの全てが比較されたか否かを判定する。その結果、比較されていない残りレコードが存在する場合は、NOで示されたとおりS67へ戻る。残りレコードの全てが比較された場合には、YESで示されたとおりS70へ進む。
S70では送信終了信号をパソコンBへ送信する。S71では同期時刻としてサーバの時計から現在時刻を取得する。S72では、同期時刻記録部5Aの同期時刻と、データベース4A内の全レコードの更新時刻とをこの同期時刻に更新する。S73ではパソコンBにこの同期時刻を送信する。
以上でサーバAでの同期が終了する。
以下に、本実施の形態における同期作業の流れを時系列に沿って図18・図19を用いて説明する。図18は、重要度IDが異なるレコード(レコードIDは同一)が各ノードで同時刻に更新された場合の同期シーケンス図である。また、図19は、重要度IDが同じ(レコードIDも同一)レコードが2つのノードで異なる時刻に更新され、もうひとつのノードで、他の2つとは重要度IDも更新時刻も異なる更新がなされた場合の同期シーケンス図である。
なお、以下の説明では、時刻tで前回の同期が行われ、時刻Tにおいて同期を実行する場合を考えている。また、時刻tで更新した重要度IDが1のレコードをR1(t)、時刻tで同期した重要度IDが2のレコードをR2(t)、時刻tで同期した重要度IDが3のレコードをR3(t)としている。さらに、時刻t1で更新された重要度IDが3のレコードをR3(t1)、時刻t2で更新された重要度IDが3のレコードをR3(t2)としている。ただし、t、t、t1、t2、Tの順に新しい時刻になるものとする。また、以下の説明中に記載されているステップ番号は、本実施の形態のフローチャート(図16・17)のステップ番号に対応している。
図18は、サーバAのレコードがR1(t)、パソコンBのレコードがR2(t)、モバイル端末CのレコードがR3(t)の場合を示している。まず、モバイル端末Cから同期開始信号がパソコンBへ、パソコンBからサーバAへ送信されるこのとき、競合回避用優先順位テーブル10BがパソコンBからサーバAへ送信される(S90)。
モバイル端末C上では同期時刻(t)と更新時刻(t)の比較が行われ、同期時刻と更新時刻とが異なることからR1(t)がレコードCBとしてパソコンBへ向けて送信される。パソコンBでは、まず重要度IDを元に比較を行う。受信したR1(t)と相当レコードR2(t)とについて、比較が行われ(S92)、R1(t)の重要度IDの優先順位が高いことから相当レコードR2(t)が受信したレコードR1(t)に更新され、R1(t)がサーバAへ送信される(S94)。
サーバAでは受信した競合回避用優先順位テーブル10Bによって重要度IDを元に比較を行う。受信したレコードR1(t)とその相当レコードR3(t)との比較が行われ(S99)、R1(t)の重要度IDの優先順位が高いことから、相当レコードR3(t)はR1(t)に更新される。更新された場合、パソコンBへのレコード送信はなされない。
ついで、同期時刻としてTを取得し、R1(T)に更新される。TをパソコンBへ送信しサーバAの同期処理は終了する。
パソコンBではR1(t)より新しい受信はないため、Tを受信し、レコードR1(t)をR1(T)に更新する。送信記憶部8BにレコードIDはないのでモバイル端末Cへはレコードの送信を行わない。そこで、Tのみをモバイル端末Cに送信し、パソコンBの同期処理は終了する。モバイル端末CではR1(t)の受信はなく、Tのみを受信する。そして、レコードR1(t)をR1(T)に更新し、モバイル端末Cの同期を終了する。以上ですべてのノードにて同期処理が終了する。
図19は、サーバAのレコードがR3(t1)、パソコンBのレコードがR3(t2)、モバイル端末CのレコードがR1(t)の場合を示している。なお、図中の不等号は優先度の高さ(大きさ)を意味する。
まず、モバイル端末Cから同期開始信号が送信される。モバイル端末C上で同期時刻と、更新時刻との比較が行われ、R3(t1)がレコードCBとしてパソコンBへ向けて送信される。パソコンBでは、まず重要度IDを元に比較を行う。
受信したレコードR3(t1)と、その相当レコードR3(t2)について重要度IDが同じことから、次に更新時刻の比較が行われる。パソコンBのR3(t2)が新しいことから更新は行われず、R3(t2)がサーバAへ送信される。あわせてそのレコードIDが送信記憶部8Bに記録される。
サーバAでは受信したR3(t2)と相当レコードR1(t)の重要度IDの比較が行われR1(t)の重要度IDの優先順位が高いことからレコードR3(t2)は破棄され、上書きは行われない。そして、相当レコードR1(t)をパソコンBへ送信する。
ついで、同期時刻としてTを取得し、R1(t)をR1(T)に更新する。そして、TをパソコンBへ送信しサーバAの同期処理を終了する。
パソコンBでは、サーバAよりレコードR1(t)の受信があり相当レコードR3(t2)をR1(t)に更新するとともに、送信記憶部8Bに記録されたレコードIDに基づき、モバイル端末CへR1(t)を送信する。ついで、パソコンBは、サーバAよりTを受信し、レコードR1(t)をR1(T)に更新する。そして、同期時刻Tのみをモバイル端末Cに送信し、パソコンBの同期処理を終了する。
モバイル端末CはパソコンBよりレコードを受信し、R3(t1)をR1(t)に更新する。ついで、パソコンBより同期時刻Tを受信し、データベース4CのレコードR1(t)をR1(T)に更新し、モバイル端末Cの同期処理を終了する。
以上ですべての同期処理が終了する。
なお、上記通信機器は、ハードウェアで実現してもよいし、プログラムをコンピュータに実行させることによって実現してもよい。具体的には、本発明に係るプログラムは、通信手段としてコンピュータを動作させるプログラムであり、本発明に係る記録媒体には、当該プログラムが記録されている。
これらのプログラムがコンピュータによって実行されると、当該コンピュータは、上記通信機器として動作する。したがって、上記通信機器と同様に、通信できる。
また、上記各実施形態では、通信機器を構成する各部材が、「CPUなどの演算手段がROMやRAMなどの記録媒体に格納されたプログラムコードを実行することで実現される機能ブロックである」場合を例にして説明したが、同様の処理を行うハードウェアで実現してもよい。また、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することもできる。さらに、上記各部材のうち、ハードウェアとして説明した部材であっても、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することもできる。なお、上記演算手段は、単体であってもよいし、装置内部のバスや種々の通信路を介して接続された複数の演算手段が共同してプログラムコードを実行してもよい。また、上記各部材のうちの送信記憶部は、メモリなどの記憶装置自体であってもよい。
上記演算手段によって直接実行可能なプログラムコード自体、または、後述する解凍などの処理によってプログラムコードを生成可能なデータとしてのプログラムは、当該プログラム(プログラムコードまたは上記データ)を記録媒体に格納し、当該記録媒体を配付したり、あるいは、上記プログラムを、有線または無線の通信路を介して伝送するための通信手段で送信したりして配付され、上記演算手段で実行される。
なお、通信路を介して伝送する場合、通信路を構成する各伝送媒体が、プログラムを示す信号列を伝搬し合うことによって、当該通信路を介して、上記プログラムが伝送される。また、信号列を伝送する際、送信装置が、プログラムを示す信号列により搬送波を変調することによって、上記信号列を搬送波に重畳してもよい。この場合、受信装置が搬送波を復調することによって信号列が復元される。一方、上記信号列を伝送する際、送信装置が、デジタルデータ列としての信号列をパケット分割して伝送してもよい。この場合、受信装置は、受信したパケット群を連結して、上記信号列を復元する。また、送信装置が、信号列を送信する際、時分割/周波数分割/符号分割などの方法で、信号列を他の信号列と多重化して伝送してもよい。この場合、受信装置は、多重化された信号列から、個々の信号列を抽出して復元する。いずれの場合であっても、通信路を介してプログラムを伝送できれば、同様の効果が得られる。
ここで、プログラムを配付する際の記録媒体は、取外し可能である方が好ましいが、プログラムを配付した後の記録媒体は、取外し可能か否かを問わない。また、上記記録媒体は、プログラムが記憶されていれば、書換え(書き込み)可能か否か、揮発性か否か、記録方法および形状を問わない。記録媒体の一例として、磁気テープやカセットテープなどのテープ、あるいは、フロッピー(登録商標)ディスクやハードディスクなどの磁気ディスク、または、CD−ROMや光磁気ディスク(MO)、ミニディスク(MD)やデジタルビデオディスク(DVD)などのディスクが挙げられる。また、記録媒体は、ICカードや光カードのようなカード、あるいは、マスクROMやEPROM、EEPROMまたはフラッシュROMなどのような半導体メモリであってもよい。あるいは、CPUなどの演算手段内に形成されたメモリであってもよい。
なお、上記プログラムコードは、上記各処理の全手順を上記演算手段へ指示するコードであってもよいし、所定の手順で呼び出すことで、上記各処理の一部または全部を実行可能な基本プログラム(例えば、オペレーティングシステムやライブラリなど)が既に存在していれば、当該基本プログラムの呼び出しを上記演算手段へ指示するコードやポインタなどで、上記全手順の一部または全部を置き換えてもよい。
また、上記記録媒体にプログラムを格納する際の形式は、例えば、実メモリに配置した状態のように、演算手段がアクセスして実行可能な格納形式であってもよいし、実メモリに配置する前で、演算手段が常時アクセス可能なローカルな記録媒体(例えば、実メモリやハードディスクなど)にインストールした後の格納形式、あるいは、ネットワークや搬送可能な記録媒体などから上記ローカルな記録媒体にインストールする前の格納形式などであってもよい。また、プログラムは、コンパイル後のオブジェクトコードに限るものではなく、ソースコードや、インタプリトまたはコンパイルの途中で生成される中間コードとして格納されていてもよい。いずれの場合であっても、圧縮された情報の解凍、符号化された情報の復号、インタプリト、コンパイル、リンク、または、実メモリへの配置などの処理、あるいは、各処理の組み合わせによって、上記演算手段が実行可能な形式に変換可能であれば、プログラムを記録媒体に格納する際の形式に拘わらず、同様の効果を得ることができる。
本発明は、複数の通信機器(ノード)を、効率よく情報同期させることができるため、複数の通信機器を含む通信システムの情報同期に利用可能である。
本発明の実施の形態1を示すブロック図である。 (a)は、本発明の通信システムを示す概念図、(b)は、上記通信システムで送受信されるレコードの内容を説明する説明図である。 実施の形態1におけるモバイル端末の同期工程を示すフローチャートである。 実施の形態1におけるパソコンの同期工程を示すフローチャートである。 実施の形態1におけるサーバの同期工程を示すフローチャートである。 実施の形態1における各ノードの処理工程を時系列に沿って説明するシーケンス図である。 実施の形態1における各ノードの処理工程を時系列に沿って説明するシーケンス図である。 実施の形態1における各ノードの処理工程を時系列に沿って説明するシーケンス図である。 実施の形態2におけるプロキシ部を説明するブロック図である。 (a)〜(c)は、実施の形態2におけるレコードのデータフィールド構成を説明する説明図である。 実施の形態2におけるノード別レコードデータ判定テーブルを説明する表である。 実施の形態2におけるパソコンの同期工程を示すフローチャートである。 実施の形態3におけるプロキシ部を説明するブロック図である。 (a)〜(c)は、実施の形態3におけるレコードのデータフィールド構成を説明する説明図である。 実施の形態3における競合回避用優先順位テーブルを説明する表である。 実施の形態3におけるパソコンの同期工程を示すフローチャートである。 実施の形態3におけるサーバの同期工程を示すフローチャートである。 実施の形態3における各ノードの処理工程を時系列に沿って説明するシーケンス図である。 実施の形態3における各ノードの処理工程を時系列に沿って説明するシーケンス図である。 従来の通信システムを説明する概念図である。
符号の説明
1 通信システム
A サーバ(ノード、第2の通信機器)
B パソコン(ノード、通信機器・中継用通信機器)
C モバイル端末(ノード、第1の通信機器)
CB・BA・AB・BC レコード (第1〜4の同期情報・第1〜4のレコード)
2A・2C レコード管理部
2B レコード管理部(更新手段)
3A・3C 同期管理部
3B 同期制御部(判定手段)
4A データベース(第2のデータベース)
4B データベース(第3のデータベース)
4C データベース(第1のデータベース)
5A〜5C 同期時刻記録部
7A・7C 同期エンジン
7B プロキシ部(同期情報処理部)
8B 送信記憶部(記憶手段)

Claims (19)

  1. 第1および第2の通信機器と通信可能であり、同期情報をやりとりすることでこれらの通信機器と情報の同期をとることが可能な通信機器であって、データベースと、上記同期情報を処理するための同期情報処理部とを備え、該同期情報処理部は、上記第1の通信機器から受信した第1の同期情報と上記データベースの情報とに基づいて、第2の同期情報を第2の通信機器へ送信するとともに、上記第2の同期情報に応答して第2の通信機器から返信された第3の同期情報に基づいて、第4の同期情報を第1の通信機器に送信することを特徴とする通信機器。
  2. 上記同期情報処理部は、第1の同期情報に基づいてデータベースの情報を更新するとともに、第3の同期情報に基づいてデータベースの情報を更新することができる更新手段を備えていることを特徴とする請求項1記載の通信機器。
  3. 上記同期情報処理部は、第1の同期情報として受信した第1のレコードと、データベースに存在する、上記第1のレコードに相当するレコードとの優先度を判定する判定手段を備えていることを特徴とする請求項1記載の通信機器。
  4. 上記同期情報処理部は、上記第2の同期情報として送信した第2のレコードと、上記第3の同期情報として受信した第3のレコードとを記憶可能な記憶手段を備え、第3の同期情報と上記記憶手段に記憶されたレコードとに基づいて、第4の同期情報を第1の通信機器に送信できることを特徴とする請求項1記載の通信機器。
  5. 上記同期情報処理部は、送信先の通信機器に必要なデータ項目を記載したレコードデータ判定テーブルを備え、同期情報を送信する際には、該レコードデータ判定テーブルに基づいて、必要なデータ項目のみを送信対象とすることを特徴とする請求項1記載の通信機器。
  6. 上記同期情報処理部は、優先度の判定基準を規定する優先度テーブルを備え、上記判定手段は、この優先度テーブルによる判定基準に基づいて両レコードの優先度を判定することを特徴とする請求項3記載の通信機器。
  7. 上記同期情報処理部は、上記第3の同期情報がレコードを含まない送信なし信号である場合に、上記記憶手段に記憶された第2のレコードに基づいて、第4の同期情報を第1の通信機器に送信することを特徴とする請求項4記載の通信機器。
  8. 受信した第1の同期情報と自己のデータベースの情報とに基づいて第2の同期情報を、第1の同期情報の送信先以外の通信機器へ送信するとともに、上記第2の同期情報に応答して、この通信機器から返信された第3の同期情報に基づいて第4の同期情報を、第1の同期情報の送信元に送信できる中継用通信機器と通信可能であり、かつ、上記中継用通信機器に上記第1の同期情報を送信するとともにこの中継用通信機器から第4の同期情報を受信することを特徴とする通信機器。
  9. データベースと、該データベースの情報に基づいて第1の同期情報を送信するとともに、受信した第4の同期情報に基づいて該データベースを更新することが可能な同期管理部とを備えたことを特徴とする請求項8記載の通信機器。
  10. 受信した第1の同期情報と自己のデータベースの情報とに基づいて、第2の同期情報を第1の同期情報の送信先以外の通信機器へ送信するとともに、上記第2の同期情報に応答してこの通信機器から返信された第3の同期情報に基づいて、第4の同期情報を第1の同期情報の送信先に送信できる中継用通信機器と通信可能であり、かつ、上記中継用通信機器から上記第2の同期情報を受信するとともに、この中継用通信機器へ第3の同期情報を送信することを特徴とする通信機器。
  11. データベースと、該データベースおよび上記第2の同期情報に基づいて第3の同期情報を上記中継用通信機器へ送信するとともに該データベースを更新できる同期管理部とを備えたことを特徴とする請求項10記載の通信機器。
  12. 第1のデータベースを有する第1の通信機器と、第2のデータベースを有する第2の通信機器と、第3のデータベースを有する中継用通信機器とを含む通信システムの情報同期方法であって、
    まず第1の通信機器が上記第1のデータベースに基づいて第1の同期情報を中継用通信機器へ送信し、ついで中継用通信機器が、受信した第1の同期情報と第3のデータベースとに基づいて第2の同期情報を第2の通信機器に送信し、ついで第2の通信機器が、受信した第2の同期情報と第2のデータベースとに基づいて第3の同期情報を中継用通信機器に送信し、ついで中継用通信機器が、受信した第3の同期情報に基づいて第4の同期情報を第1の通信機器に送信することを特徴とする通信システムの情報同期方法。
  13. 上記中継用通信機器は、第1の同期情報として受信した第1のレコードと、データベースに存在する、上記第1のレコードに相当するレコードとの優先度を判定し、この判定結果に基づいて、第2の同期情報を第2の通信機器に送信することを特徴とする請求項12記載の通信システムの情報同期方法。
  14. 上記中継用通信機器は、上記第2の同期情報として送信した第2のレコードと上記第3の同期情報として受信した第3のレコードとを記憶し、この記憶されたレコードと受信した第3の同期情報とに基づいて第4の同期情報を第1の通信機器に送信することを特徴とする請求項12記載の通信システムの情報同期方法。
  15. 上記中継用通信機器は、同期情報を送信する際、送信先の通信機器に必要なデータ項目のみを送信対象とすることを特徴とする請求項12記載の通信システムの情報同期方法。
  16. 上記中継用通信機器は、優先度の判定基準を規定する優先度テーブルに基づいて両レコードの優先度を判定することを特徴とする請求項14記載の通信システムの情報同期方法。
  17. データベースを備え、第1および第2の通信機器と通信可能な中継用通信機器に対して、
    上記第1の通信機器から受信した第1の同期情報と上記データベースの情報とに基づいて、第2の同期情報を第2の通信機器へ送信させるとともに、上記第2の同期情報に応答して第2の通信機器から返信された第3の同期情報に基づいて、第4の同期情報を第1の通信機器に送信させることを特徴とする通信機器の制御プログラム。
  18. 上記中継用通信機器に対して、上記第2の同期情報として送信した第2のレコードと上記第3の同期情報として受信した第3のレコードとを記憶させ、この記憶されたレコードと受信した第3の同期情報とに基づいて第4の同期情報を第1の通信機器に送信させることを特徴とする請求項17記載の通信機器の制御プログラム。
  19. 請求項17または18に記載の通信機器の制御プログラムが、コンピュータに読み取り可能に格納されていることを特徴とする記録媒体。
JP2004093409A 2004-03-26 2004-03-26 通信機器、通信機器の制御方法、通信機器の制御プログラム Expired - Fee Related JP4481053B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004093409A JP4481053B2 (ja) 2004-03-26 2004-03-26 通信機器、通信機器の制御方法、通信機器の制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004093409A JP4481053B2 (ja) 2004-03-26 2004-03-26 通信機器、通信機器の制御方法、通信機器の制御プログラム

Publications (3)

Publication Number Publication Date
JP2005284395A true JP2005284395A (ja) 2005-10-13
JP2005284395A5 JP2005284395A5 (ja) 2007-04-19
JP4481053B2 JP4481053B2 (ja) 2010-06-16

Family

ID=35182744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004093409A Expired - Fee Related JP4481053B2 (ja) 2004-03-26 2004-03-26 通信機器、通信機器の制御方法、通信機器の制御プログラム

Country Status (1)

Country Link
JP (1) JP4481053B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010514062A (ja) * 2006-12-18 2010-04-30 マイクロソフト コーポレーション 競合知識の伝播
JP2010102602A (ja) * 2008-10-27 2010-05-06 Ntt Docomo Inc 通信機器及びデータ同期方法
JP2010518520A (ja) * 2007-02-09 2010-05-27 マイクロソフト コーポレーション 分散装置に対するマルチマスタ・データ同期のコンフリクト解決
JP2010231343A (ja) * 2009-03-26 2010-10-14 Denso Corp 近距離無線通信機能付きメール操作装置
JP2013114623A (ja) * 2011-11-30 2013-06-10 Fujitsu Ltd ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法
US8586004B2 (en) 2005-10-03 2013-11-19 Societe Bic Optimizing hydrogen generating efficiency in fuel cell cartridges
JP2015516626A (ja) * 2012-03-20 2015-06-11 ゼットティーイー コーポレーションZte Corporation データ同期方法及び装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356950A (ja) * 2000-01-26 2001-12-26 Fusionone Inc データ転送及び同期システム
JP2002132562A (ja) * 2000-10-20 2002-05-10 Aantsusha:Kk データベース更新システム
JP2002222107A (ja) * 2001-01-25 2002-08-09 Fujitsu Ltd データ同期装置
WO2004013725A2 (en) * 2002-08-01 2004-02-12 Oracle International Corporation Asynchronous information sharing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356950A (ja) * 2000-01-26 2001-12-26 Fusionone Inc データ転送及び同期システム
JP2002132562A (ja) * 2000-10-20 2002-05-10 Aantsusha:Kk データベース更新システム
JP2002222107A (ja) * 2001-01-25 2002-08-09 Fujitsu Ltd データ同期装置
WO2004013725A2 (en) * 2002-08-01 2004-02-12 Oracle International Corporation Asynchronous information sharing system
JP2006501585A (ja) * 2002-08-01 2006-01-12 オラクル・インターナショナル・コーポレイション 非同期情報共有システム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8586004B2 (en) 2005-10-03 2013-11-19 Societe Bic Optimizing hydrogen generating efficiency in fuel cell cartridges
JP2010514062A (ja) * 2006-12-18 2010-04-30 マイクロソフト コーポレーション 競合知識の伝播
JP2010518520A (ja) * 2007-02-09 2010-05-27 マイクロソフト コーポレーション 分散装置に対するマルチマスタ・データ同期のコンフリクト解決
JP4846027B2 (ja) * 2007-02-09 2011-12-28 マイクロソフト コーポレーション 分散装置に対するマルチマスタ・データ同期のコンフリクト解決
JP2010102602A (ja) * 2008-10-27 2010-05-06 Ntt Docomo Inc 通信機器及びデータ同期方法
JP2010231343A (ja) * 2009-03-26 2010-10-14 Denso Corp 近距離無線通信機能付きメール操作装置
US8401524B2 (en) 2009-03-26 2013-03-19 Denso Corporation Mail operating device and method for controlling transmission of mail information
JP2013114623A (ja) * 2011-11-30 2013-06-10 Fujitsu Ltd ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法
JP2015516626A (ja) * 2012-03-20 2015-06-11 ゼットティーイー コーポレーションZte Corporation データ同期方法及び装置

Also Published As

Publication number Publication date
JP4481053B2 (ja) 2010-06-16

Similar Documents

Publication Publication Date Title
JP4792505B2 (ja) データの同期処理方法、クライアント、サーバ、及びクライアントとサーバとのデータ同期システム
US6757896B1 (en) Method and apparatus for enabling partial replication of object stores
KR100310264B1 (ko) 스케줄관리시스템
KR20070084302A (ko) 범용 데이터 동기화를 위한 시스템 및 방법
KR20000028662A (ko) 컴퓨터, 정보 공유 시스템, 및 레프리카 동일성 유지 방법
JPH11126209A (ja) 情報処理装置及び方法並びに情報処理プログラムを記録した記録媒体
KR19980076632A (ko) 휴대형 정보 단말기의 버전 관리방법
JP4225729B2 (ja) 情報管理装置
US6003076A (en) Information providing method and system using information modification rules
US6549902B1 (en) Database managing device
JP4481053B2 (ja) 通信機器、通信機器の制御方法、通信機器の制御プログラム
JP2008112311A (ja) ビジネスプロセス実行方法、ビジネスプロセス実行システムおよびプログラム
JPH113368A (ja) 分散環境におけるスケジュールデータ管理方法及びシステム及びスケジュールデータ管理プログラムを格納した記憶媒体
JP2000040025A (ja) デ―タベ―ス管理装置、および、そのプログラムが記録された記録媒体
JP5853791B2 (ja) データ同期方法及びサーバ装置
US7159019B2 (en) Information collection apparatus and method
KR100379457B1 (ko) 개인 정보 관리 방법
EP1311098A2 (en) Service information providing system, service information providing method, and control station
JP5080636B2 (ja) レプリ処理方法、プログラム及び装置
JPH11327987A (ja) データベース管理装置、および、そのプログラムが記録された記録媒体
JPH11327989A (ja) データベース管理装置、および、そのプログラムが記録された記録媒体
CN111787043A (zh) 数据请求方法和装置
CN108694219A (zh) 一种数据处理方法及装置
KR100467627B1 (ko) 데이터 동기화 방법 및 그 장치
JPH10312331A (ja) データベースの動的アクセス方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070306

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100317

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

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees