以下、本発明の実施の形態を図面に基づいて説明する。本実施例では、ユーザの複数の端末を用いた利用形態において、ある作業手順で、ユーザがある端末から別の端末へと移ってデータに対して操作する場合、移った先の端末へのデータ同期をその作業手順に応じて効果的に行う。ユーザによる複数の端末の使い分けを学習して、必要なデータを同期させる。
学習する端末の使い分けとして、複数の端末にまたがる作業、端末を切り替えながらの作業等における、データと端末の使用順などである。例えば、一人のユーザが、スマートフォンと、タブレット端末と、PC(Personal Computer)とを所有し、スマートフォンで撮った写真をいつもPCで加工する場合、タブレット端末よりも優先してPCに、他のデータより写真データを優先的に同期させる。他の例として、ユーザがタブレット端末でメールを読んでいて、メール内のICカード認証を必要とする社内サイトURLにアクセスするために、PCの電源を入れて社内サイトURLを開きたい場合、タブレット端末でメールを見たら、スマートフォンより優先してPCに、他のデータよりメールを優先的に同期させる。
上述したようなデータ同期制御を行う本実施例に係るサーバ装置は、図1に示すようなハードウェア構成を有する。図1は、サーバ装置のハードウェア構成を示す図である。図1において、サーバ装置100は、コンピュータによって制御される装置であって、CPU(Central Processing Unit)11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、出力装置16と、通信I/F(インターフェース)17と、ドライブ18とを有し、バスBに接続される。
CPU11は、主記憶装置12に格納されたプログラムに従ってサーバ装置100を制御する。主記憶装置12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、主記憶装置12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
補助記憶装置13には、ハードディスクドライブが用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13に格納されているプログラムの一部が主記憶装置12にロードされ、CPU11に実行されることによって、各種処理が実現される。記憶部130は、主記憶装置12及び/又は補助記憶装置13を有する。
入力装置14は、マウス、キーボード等を有し、ユーザがサーバ装置100による処理に必要な各種情報を入力するために用いられる。表示装置15は、CPU11の制御のもとに必要な各種情報を表示する。出力装置16は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。通信I/F17は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。
サーバ装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってサーバ装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライブ18にセットされると、ドライブ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがバスBを介して補助記憶装置13にインストールされる。そして、プログラムが起動されると、補助記憶装置13にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
また、サーバ装置100によって行われる処理を実現するプログラムが、通信I/F17を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信I/F17による通信は無線又は有線に限定されるものではない。
図2は、データ同期システムにおける機能構成例を示す図である。図2に示すデータ同期システム1000において、サーバ装置100は、ユーザが作業する2以上の端末1a、1b、・・・(以下、総称して端末1と言う。)とネットワーク2を介して接続される。
各端末1は、端末状態取得部51と、同期管理部52とを有する。また、端末1が有する記憶部59には、端末状態管理DB53と、同期対象データ管理DB54とが格納される。
また、サーバ装置100は、同期制御部121と、同期管理部122と、端末使い分け学習部123と、端末優先度算出部124と、データ優先度算出部125とを有する。また、記憶部130には、端末使い分け学習DB31と、端末リストDB32aと管理情報DB32bとを含む端末管理DB32と、同期待ち更新データDB33と、使用中端末DB34と、直前使用端末DB35と、更新履歴DB36と、同期対象データ管理DB37とが記憶される。
端末1側の機能構成について説明する。端末状態取得部51は、ストレージ空き容量のモニタリング、及び、ファイル参照・更新のモニタリング等を行う処理部である。モニタリングにより取得した端末状態情報は、端末状態管理DB53で管理される。端末状態取得部51は、端末状態情報を同期管理部52へ通知する(1)。
同期管理部52は、端末状態取得部51から通知される端末状態情報に基づいて、同期させるデータ毎に同期状況を、同期対象データ管理DB54を用いて管理する処理部である。また、同期管理部52は、データ更新情報を作成して、サーバ装置100へ送信する(2)。
端末状態管理DB53は、端末状態取得部51によって得られた、空き容量、バッテリ残量等の情報を管理するためのデータベースである。同期対象データ管理DB54は、自端末1における同期データを管理するためのデータベースであり、同期対象データリストDB54aを有する。同期対象データリストDB54aは、各同期させるデータ毎に、属性、同期状態等を管理するためのデータベースである。属性は、データID、パス、ファイル種別、サイズ、サーバ装置100での更新日時、端末1での更新日時、端末1での参照日時、端末1での参照頻度等の情報によって示される。同期状態は、最新、同期非対象、リモート更新有り未反映、ローカル更新有り未反映、削除予定等の情報によって示される。
サーバ装置100側の機能構成について説明する。同期制御部121は、データ同期に係る処理を制御する処理部である。同期制御部121は、ネットワーク2を介して端末1aの同期管理部52からデータ更新情報を受信すると、同期管理部122へ通知する。同期管理部122は、同期制御部121から通知されたデータ更新情報に基づいて、端末使い分け学習部123に複数の端末1を用いたユーザの複数端末の使い分けを学習させる処理部である。端末1から受信したデータ更新情報は、同期待ち更新データDB33で管理されるデータ更新リスト33aにリストされる。
端末使い分け学習部123は、データ更新前後の端末を識別するための端末IDと、データ更新前後の各々の端末で操作対象であったデータファイル(以下、単に、ファイルと言う。)の種別を示すファイル種別とから、データ更新前の端末1aでのデータ操作後に切り替えられた他の端末1bでのデータの使用回数を正規化する処理部である。端末ID、ファイル種別、使用回数、及び使用度は、端末使い分け学習DB31に記憶され管理される(3)。受信したデータ更新情報は、同期制御部121によって、同期対象データ管理DB37に保存される(4)。
端末優先度算出部124は、同期制御部122によって呼び出(関数コール)されることによって(5)、データ更新後に同期データを転送する端末1の優先度(端末優先度と言う。)を算出する処理部である。同期データは、いずれかの端末1で更新されたデータファイル内のデータ全部又は一部であり、少なくとも1以上の他の端末1b等にて同期させるデータ部分である。
データ優先度算出部125は、同期制御部122によって呼び出(関数コール)されることによって(6)、端末1b等への同期待ちの更新データが複数ある場合に、各データの優先度(データ優先度と言う。)を算出する処理部である。端末優先度及びデータ優先度は、端末使い分け学習DB31等を用いて、データ更新時にユーザが使用している端末1及びデータが更新されたファイルに基づいて算出される。データ優先度は、さらに更新日時を加味して算出される。
データ更新リスト33aは、各端末1から受信したデータ更新情報が、端末1を識別する端末IDに対応付けられた一覧であり、データを更新した端末1の端末ID、データが更新されたファイルを識別するためのデータID、更新日時、ファイル種別、ユーザによる操作、ファイル内容等の項目を有する。
端末使い分け学習DB31は、端末使い分け学習部123によって管理され、例えば、図9及び図10にその一部が例示されるように、レコードを特定するための行番号と、データ更新直前の、端末ID1、ファイル種別1、及び操作1と、データ更新後の端末ID2及びファイル種別2と、使用回数と、使用回数を正規化した使用度等の項目を有する。値の組み合せ<端末ID1、ファイル種別1、操作1>毎に、値の組み合せ<端末ID2、ファイル種別2、使用回数、使用度>が対応付けられる。
端末ID1及び2は、ユーザが使用する複数の端末1の各々を識別する端末IDである。操作には、作成、参照、変更、削除等が指定される。ファイル種別1及び2は、予めリストアップして定義され、例えば、pdf、jpeg、doc、ppt、・・・等である。全端末、全操作、全ファイル種別に関するテーブルが予め用意されている。
使用回数は、ユーザが、端末1aでのファイル種別1のデータファイルに対する操作1を行った後、端末1bにおいてファイル種別2のデータファイルを使用した回数を示す。
端末使い分け学習DB31は、端末優先度算出部124が端末優先度(後述される)を計算する際に使用される。ユーザが現在使用中の端末1aに係る値の組み合せ<端末ID1、ファイル種別1、操作1>に基づいて、データ同期の対象となる他の端末1b等に係る値の組み合せ<端末ID2、ファイル種別2>に対する使用回数及び使用度が設定される。
端末使い分け学習DB31は、データ更新情報の受信時に更新される。端末使い分け学習DB31では、ユーザが現在使用中の端末1aでのファイル種別1のデータファイルの操作後、ユーザが端末1bでファイル種別2のデータファイルを使用した使用回数を正規化して求めた使用度が設定される。
端末管理DB32は、ユーザが使用する各端末1の情報を管理するためのデータベースであり、端末リストDB32aと、管理情報DB32bとを有する。端末リストDB32aは、ユーザ毎に、各端末1に端末1の属性を対応付けて管理するデータベースである。属性は、端末ID、機種、回線、画面サイズ、キーボードの有無等の情報によって示される。管理情報DB32bは、端末状態、同期対象リスト、データ状態、ファイル種別毎の使用度合い等を管理するためのデータベースである。端末状態は、空き容量、バッテリ残量、電源オン/オフ、随時同期又はポーリング同期等の情報によって示される。同期対象リストは、端末1内にある同期対象となるデータを識別するためのデータIDのリストである。データ状態は、同期状態、端末1での更新日時、端末1での参照日時、端末1での参照頻度等の情報によって示される。ファイル種別は、txt, doc, ppt, xls, pdf, jpeg, mp3, mp4,・・・等で示され、使用度合いは、端末1でのファイル種別に対するユーザの使用度合いを示す。
同期待ち更新データDB33は、ユーザが使用している端末1aから受信したデータ更新情報をデータ更新リスト33aに格納し、他の端末1bへの同期待ちの更新データを管理するデータベースである。
使用中端末DB34は、現在使用中の端末IDを保持するデータベースである。直前使用端末DB35は、ユーザによって現在使用され、データ更新情報を送信したデータの更新元端末へ切り替える直前にユーザが使用していた端末(直前使用端末と言う。)の端末ID、ファイル種別、操作種別を保持するデータベースである。更新履歴DB36は、データ更新の履歴を格納するデータベースである。
同期対象データ管理DB37は、全端末1に対する全ての同期対象データを管理するためのデータベースであり、全同期対象データリストDB37aと、全同期対象データDB37bとを有する。同期対象データリストDB37aは、各データの属性、データ毎の管理情報等を格納するデータベースである。属性は、データID、パス、ファイル種別、サイズ、サーバ装置100での更新日時、サーバ装置100での参照日時、サーバ装置100での参照頻度等の情報によって示される。管理情報は、同期対象として登録されている端末1の一覧である。全同期対象データDB37bは、複数の端末1間でデータを同期させるために最新のデータ本体を管理するためのデータベースである。
データ同期システム1000における全体処理の概要について図3で説明する。図3は、データ同期システムにおける全体処理の概要を説明するための処理フローを示す図である。図3において、ユーザは、端末1a、1b、及び1cを使い分けるものとする。
端末1aで、ユーザがあるファイルに対して作業をしたことにより、端末状態取得部51がデータ更新を検出すると同期管理部52に通知される(ステップS11)。同期管理部52は、データ更新情報を作成して、サーバ装置100に送信する(ステップS12)。
サーバ装置100では、データ更新情報を受信すると、同期制御部121は受信したデータ更新情報を同期管理部122に通知する(ステップS21)。そして、同期管理部122は、受信したデータ更新情報を端末使い分け学習DB31に反映する(ステップS22)。同期制御部121は、受信したデータ更新情報を同期対象データ管理DB37に保存する(ステップS23)。
端末優先度算出部124は、同期データを転送する同期先端末に対して優先度を付ける(ステップS24)。同期先端末は、ユーザが使用する複数の端末のうち、データが更新された端末以外の端末である。2以上の同期先端末に対して、どの端末に優先して同期データを転送するかを示す端末の優先度が決定される。
データ優先度算出部125は、同期先端末毎に、転送される同期データに対して優先度を付ける(ステップS25)。同期先端末毎に、どの同期データを優先して転送するかを示す同期データの優先度が決定される。
同期制御部121は、端末優先度及び同期データ優先度に従って、端末1b及び1cに同期データを送信する(ステップS26)。例えば、端末優先度に従って、端末1b、そして端末1cが選択され、各端末1b及び1cでのデータ優先度に従って、同期データが順に選択され、同期データが送信される。
端末1bでは、データ更新情報をサーバ装置100から受信すると(ステップS31)、同期管理部52が、受信したデータ更新情報を保存して、端末1bにおいて対象となる同期データを更新して最新の状態にする(ステップS32)。また、同期管理部52は、データ更新情報に基づいて、同期対象データ管理DB54と、端末状態管理DB53とを更新する(ステップS33)。
同様に、データ更新情報を受信した端末1cでは、データ更新情報をサーバ装置100から受信すると(ステップS41)、同期管理部52が、受信したデータ更新情報を保存して、端末1bにおいて対象となる同期データを更新して最新の状態にする(ステップS42)。また、同期管理部52は、データ更新情報に基づいて、同期対象データ管理DB54と、端末状態管理DB53とを更新する(ステップS43)。
上述したように端末1にてデータ更新を検出して同期を開始するほかに、ファイル共有サーバ装置にてユーザがファイルを更新したことを検出して同期を開始することも可能である。その場合は、ファイル共有サーバ装置にファイル更新を検出するためのモニタリング部を備えればよい。
以下に、本実施例が適用可能な、ユーザの複数の端末を用いた利用形態における作業手順例を用いて説明する。
[作業手順例1]
ユーザはスマートフォンで撮った写真をいつもPCで加工する。作業手順例1の場合、本実施例が適用されることにより、スマートフォンで写真を撮った後は、タブレット端末よりも優先してPCを選択し、PCの他のデータより写真データを優先して同期させる。
ユーザが使用する複数の端末1は、予め端末管理DB32の端末リストDB32aに登録される。図4は、端末リストDBのデータ構成例を示す図である。図4に例示される端末リストDB32aは、ユーザIDと、端末IDと、機種、回線、画面サイズ、キーボード等の項目を有する。
端末リストDB32aにおいて、ユーザID「User1」のユーザが、端末ID「スマホ」、「PC」、及び「タブレット」で識別される3台の端末を使用していることが分かる。ユーザID「User1」に対応付けられる端末ID「スマホ」の端末は、機種が「ARROWS μ」、回線が「3G」、画面サイズが「4」、及びキーボードが「無」である。また、ユーザID「User1」に対応付けられる端末ID「PC」の端末は、機種が「LIFEBOOK」、回線が「無線LAN」、画面サイズが「12」、及びキーボードが「有」である。更に、ユーザID「User1」に対応付けられる端末ID「タブレット」の端末は、機種が「ARROWS Tab」、回線が「LTE」、画面サイズが「10.1」、及びキーボードが「無」である。
次に、データ更新情報の受信時のサーバ装置100での処理について図5及び図6で説明する。図5は、データ更新情報の受信時のサーバ装置での処理を説明するための図である。図6は、各データベースのデータ構成例を示す図である。
図5において、サーバ装置100の同期制御部121は、データ更新情報を受信したか否かを判断する(ステップS51)。データ更新情報を受信していない場合、データ更新情報を受信するまで所定間隔でステップS51での処理を繰り返す。データ更新情報を受信した場合、データ更新情報が、同期制御部121によって同期管理部122に通知される。データ更新情報は、データ更新リスト33aに格納される。
データ更新リスト33aの一部が図6(A)に示される。端末ID「スマホ」に関するデータ更新情報は、図6(A)に例示されるように「スマホ」のデータ更新リスト33a−1に格納される。
図6(A)に例示される「スマホ」のデータ更新リスト33a−1では、端末ID「スマホ」の端末1(更新元端末)でユーザによって、ファイル種別「jpeg」のデータID「picture1.jpeg」で特定されるデータファイルが更新日時「2011-10-28T11:48:21」で操作「作成」によって更新されたことを示している。データID「picture1.jpeg」のデータファイルは、ファイル内容から「カメラで撮った静止画データ」であることが示されている。
また、同一の端末ID「スマホ」の端末1でユーザによって、ファイル種別「txt」のデータID「memo1.txt」で特定されるデータファイルが更新日時「2011-10-28T12:18:21」で操作「変更」によって更新されたことを示している。データID「memo1.txt」のデータファイルは、ファイル内容から、「買い物メモ:・・・」であることが示されている。ファイル内容は必須ではなく、省略されていても良い。
以下、同期管理部122によって行われる処理について説明する。同期管理部122は、データ更新情報を送信した更新元端末の端末IDが使用中端末DB34に設定されている使用中端末の端末IDと異なるか否かを判断する(ステップS52)。更新元端末の端末IDが使用中端末DB34の使用中端末の端末IDと異なる場合、同期管理部122は、直前使用端末DB35を更新し(ステップS53)、また、使用中端末DB34を更新する(ステップS54)。同期管理部122は、更新元端末の端末IDが使用中端末DB34の使用中端末の端末IDと異なる場合、使用中端末DB34の端末IDを直前使用端末DB35の端末IDにコピーした後、使用中端末DB34の端末IDを受信したデータ更新情報に基づいて更新する。
ステップS53及びS54での処理の後、又は、ステップS52にて更新元端末の端末IDが使用中端末の端末IDと一致すると判断した場合、同期管理部122は、端末使い分け学習部123によって、端末使い分け学習DB31を更新する学習DB更新処理を行う(ステップS55)。また、同期管理部122は、受信したデータ更新情報を更新履歴DB36に追加する(ステップS56)。更に、同期管理部122は、受信したデータ更新情報に基づいて、同一ユーザによって使用される、データを更新した端末以外のデータの同期先となる各端末に対して、同期待ち更新データを同期待ち更新データDB33に追加する(ステップS57)。
そして、同期管理部122は、端末優先度を算出して、端末IDと端末優先度とを対応付けた端末優先度リスト41を記憶部130に作成する(ステップS58)。同期管理部122は、端末優先度算出部124を制御して、端末優先度を算出させ、端末優先度リスト41を記憶部130に作成させる。同期管理部122は、端末優先度リスト41が空か否かを判断する(ステップS59)。
ステップS59において、端末優先度リスト41が空でない場合、端末優先度リスト41から降順に対象端末(同期先端末)の端末優先度を1つ取得して(ステップS60)、取得した対象端末の端末優先度が予め設定された端末閾値より大きい(対象端末の端末優先度>端末閾値)か否かを判断する(ステップS61)。対象端末の端末優先度が端末閾値より大きい場合、同期データのデータ優先度を算出して、データ優先度リスト42を作成する(ステップS62)。同期管理部122は、データ優先度算出部125を制御して、データ優先度を算出させ、データ優先度リスト42を記憶部130に作成させる。作成されたデータ優先度リスト42は優先度の降順にソートされる。
同期管理部122は、データ優先度リスト42が空か否かを判断する(ステップS63)。データ優先度リスト42が空でない場合、同期管理部122は、データ優先度リスト42から降順に同期データのデータ優先度を1つ取得して(ステップS64)、取得した同期データのデータ優先度が予め設定されたデータ閾値より大きいか否かを判断する(ステップS65)。データ優先度がデータ閾値より大きい場合、同期管理部122は、対象端末への送信データリスト43に同期データを追加して(ステップS66)、ステップS63へ戻り上述同様の処理を残りの同期データに対して実施する。一方、データ優先度がデータ閾値以下である場合、同期管理部122は、送信データリスト43への同期データの追加を行わず、ステップS63へと戻り上述同様の処理を残りの同期データに対して実施する。ステップS64からS66の処理によって、対象端末毎に、データ優先度に従って各同期データの送信要否が判断される。
一方、ステップS63において、データ優先度リスト42が空の場合、同期管理部122は、対象端末に送信データリスト43内の同期データを送信し(ステップS67)、対象端末に送信した同期データを、対象端末の同期待ち更新データDB37から削除して(ステップS68)、ステップS59へと戻り上記同様の処理を行う。ステップS60からS67までの処理によって、端末優先度に従って対象端末が選択され、更に、選択された対象端末におけるデータ優先度に従って各同期データの送信が実施される。
ステップS59において、端末優先度リストが空の場合、同期管理部122は、同期制御部121へ必要な対象端末への必要な同期データの送信終了を通知することによって、ステップS51へと戻る。
図5のステップS53及びS54での処理について、図4及び図6で詳述する。同期管理部122は、端末リストDB32a(図4)を参照することにより、端末ID「スマホ」に対応付けられているユーザID「User1」を取得する。図6(A)のデータ更新リスト33a−1を参照することにより、データ更新情報によって指定されている端末ID「スマホ」を取得できる。そして、データ更新情報を受信した時点でのユーザID「User1」のユーザの使用中端末は、例えば、図6(D)に例示されるように、ユーザID「User1」に対して端末ID「タブレット」が設定されていることから、タブレット端末であることが分かる。この例の場合、同期管理部122は、データ更新情報の端末ID「スマホ」は、使用中端末の端末ID「タブレット」と異なっていると判断する。
例えば、図6(B)に例示されるように、直前使用端末DB35では、ユーザID「User1」に対して直前に使用していた端末1(直前使用端末)の端末ID「PC」が設定されている。同期管理部122は、端末ID「PC」を「タブレット」に更新する。更新後の直前使用端末DB35が図(C)に示される。そして、同期管理部122は、使用中端末DB34を、図6(D)に例示されるように、ユーザID「User1」の端末ID「タブレット」を「スマホ」に更新する。
図5のステップS55での端末使い分け学習部133による端末使い分け学習DB31の更新処理について、図7、図8、図9、及び図10で説明する。図7は、端末使い分け学習DBの更新処理を説明するためのフローチャート図である。図8は、更新履歴DBのデータ例を示す図である。図9及び図10は、端末使い分け学習DBのデータ例の一部を示す図である。図7において、端末使い分け学習部133は、データ更新リスト33aから順にデータ更新情報の更新元端末の端末IDを取得して、端末ID2に設定する(ステップS71)。
端末使い分け学習部133は、データ更新リスト33aが空か否かを判断する(ステップS72)。データ更新リスト33aが空の場合、端末使い分け学習部133は、この処理を終了する。一方、データ更新リスト33aが空でない場合、端末使い分け学習部133は、データ更新リスト33aから1レコードを読み込んで、読み込んだレコードのファイル種別を取得して、ファイル種別2に設定する(ステップS73)。データ更新リスト33aから読み込んだレコードは、データ更新リスト33aから削除される。
そして、端末使い分け学習部133は、直前使用端末DB35をユーザIDで検索し、直前使用端末の端末IDを取得して端末ID1に設定する(ステップS74)、更新履歴DB36をユーザIDと直前使用端末の端末ID1との組み合せ<ユーザID、端末ID1>で検索し、更新履歴リスト36aを取得して記憶部130に格納する(ステップS75)。
端末使い分け学習部133は、更新履歴リスト36aが空か否かを判断する(ステップS76)。更新履歴リスト36aが空でない場合、更新履歴リスト36aからファイル種別及び操作の値を含む更新履歴データを取得してファイル種別1及び操作1に設定する(ステップS77)。更新履歴データ<ファイル種別1、操作1>で表す。
次に、端末使い分け学習部133は、端末使い分け学習DB31を<端末ID1、ファイル種別1、操作1、端末ID2、ファイル種別2>で検索し、検索されたレコードの使用回数を+1加算して更新して(ステップS78)、ステップS76へと戻り上記同様の処理を繰り返す。
一方、ステップS76において、更新履歴リスト36aが空の場合、端末使い分け学習部133は、端末使い分け学習DB31の全レコードの使用回数を合計した値を全使用回数に設定する(ステップS79)。そして、端末使い分け学習部133は、端末使い分け学習DB31の各レコードの使用度(=使用回数/全使用回数)を算出して設定する(ステップS80)。その後、端末使い分け学習部133は、ステップS72へ戻り上述同様の処理を繰り返す。ステップS72にて、データ更新リスト33aが空であると判断した場合、端末使い分け学習部133は、この端末使い分け学習DB31の更新処理を終了する。
端末使い分け学習DB31の更新処理の例について説明する。端末使い分け学習部123は、受信したデータ更新情報に基づいて、端末使い分け学習DB31を更新する。先ず、「スマホ」のデータ更新リスト33a−1内のデータID「picture1.jpeg」に対して、端末使い分け学習DB31内の使用回数及び使用度を更新する場合について説明する。
端末使い分け学習部133は、直前使用端末DB35(図6(C))をユーザID「User1」で検索し、直前使用端末の端末ID「タブレット」を取得する(ステップS72)。そして、端末使い分け学習部133は、更新履歴DB36(図8)を<ユーザID、端末ID>で検索する。この例では、<User1、タブレット>で検索し、更新履歴リスト36aを取得する(ステップS75)。更新履歴リスト36aには、更新履歴DB36(図8)から、ユーザID「User1」、端末ID「タブレット」、データID「メール328915」、更新日時「2011-10-27T18:48:21」、ファイル種別「メール」、操作「参照」を示すレコード36rが検索され格納される。
端末使い分け学習部133は、更新履歴リスト36a内の各レコードに対して、端末使い分け学習DB31を<端末ID1、ファイル種別1、操作1、端末ID2、ファイル種別2>で検索して、検索したレコードの使用回数を更新する(ステップS78)。ここでは、<タブレット、メール、参照、スマホ、jpeg>で検索され、図9及び図10に例示される端末使い分け学習DB31内の行番号34のレコードを特定する。行番号34のレコードの使用回数を1加算して更新する使用回数「1」が「2」に更新される。
端末使い分け学習部133は、更新履歴リスト36a内の全レコードに対して、上述したように使用回数を増やす処理を行った後、端末使い分け学習DB31内の使用回数を全て合計する(ステップS79)。図9及び図10では省略されているレコードも含めて全て合計して、合計値「34580」を得たとする。端末使い分け学習DB31内の各レコードに対して、使用回数を合計値「34580」で割った値を、使用度に設定して変更する(ステップS80)。
次に、データ更新リスト33a−1内のデータID「memo1.txt」に対して、端末使い分け学習部133は、直前使用端末DB35(図6(C))をユーザID「User1」で検索し、直前使用端末の端末ID「タブレット」を取得する(ステップS72)。そして、端末使い分け学習部133は、更新履歴DB36(図8)を<ユーザID、端末ID>で検索する。この例では、<User1、タブレット>で検索し、更新履歴リスト36aを取得する(ステップS75)。更新履歴リスト36aには、更新履歴DB36(図8)から、ユーザID「User1」、端末ID「タブレット」、データID「メール328915」、更新日時「2011-10-27T18:48:21」、ファイル種別「メール」、操作「参照」を示すレコード36rが検索され格納される。
端末使い分け学習部133は、更新履歴リスト36a内の各レコードに対して、端末使い分け学習DB31を<タブレット、メール、参照、スマホ、txt>で検索して、検索したレコードの使用回数を更新する(ステップS78)。図9及び図10に例示される端末使い分け学習DB31内の行番号35のレコードを特定する。行番号35のレコードの使用回数を1加算して更新する使用回数「1」が「2」に更新される。
端末使い分け学習部133は、更新履歴リスト36a内の全レコードに対して、上述したように使用回数を増やす処理を行った後、端末使い分け学習DB31内の使用回数を全て合計する(ステップS79)。図9及び図10では省略されているレコードも含めて全て合計して、端末使い分け学習DB31内の各レコードに対して、使用回数を合計値で割った値を、使用度に設定して変更する(ステップS80)。
上述した処理により、この時点で、行番号34及び35のレコードの使用度は、「0.000029」であったのが「0.000058」に変更される。
図5のステップS56における受信したデータ更新情報を更新履歴DBに追加する更新履歴DB36の追加処理、及び、図5のステップS57における受信したデータ更新情報に基づいて、データを更新した端末以外のデータの同期先となる各端末に対して、同期待ち更新データを同期待ち更新データDB33に追加する同期待ち更新データDB33の追加処理について図11で説明する。
図11は、データ更新情報が追加されるデータベースのデータ例を示す図である。図11(A)に、受信したデータ更新情報が追加された更新履歴DB36のデータ例が示されている。同期管理部122は、端末リストDB32a(図4)を参照することによって、受信したデータ更新情報が格納されているデータ更新リスト33a−1(図6(A))の端末ID「スマホ」から、ユーザID「User1」を取得する。取得したユーザID「User1」と、データ更新リスト33a−1に格納されているデータ更新情報の一部又は全部とを含む1つのレコードを作成して、更新履歴DB36に追加する。
図11(B)に、データの同期先となる各端末に対して、同期待ち更新データが追加された同期待ち更新データDB33のデータ例が示されている。同期管理部122は、端末リストDB32a(図4)を参照することによって、同一ユーザID「User1」に対応付けられる端末IDのうち、受信したデータ更新情報が格納されているデータ更新リスト33a−1(図6(A))の端末ID「スマホ」以外の端末ID「PC」及び「タブレット」を取得する。端末ID「PC」及び「タブレット」は、同期先端末を指定する。
同期管理部122は、ユーザID「User1」と、取得した端末ID「PC」及び「タブレット」と、受信したデータ更新情報とから、4つのレコードを作成して、同期待ち更新データDB33に追加する。「スマホ」のデータ更新リスト33a−1では、端末ID「スマホ」に対して2つのデータ更新情報が格納されている。従って、取得した各端末IDに対して、データ更新情報が組み合わされて、同一ユーザID「User1」を指定した4つのレコードが作成される。
次に、図5のステップS58での端末優先度の算出処理について、図12及び図13で説明する。図12は、図5のステップS58での端末優先度算出部による端末優先度の算出処理を説明するためのフローチャート図である。図12において、端末優先度算出部124は、同期管理部122から呼び出(関数コール)されると、データ更新リスト33aが空か否かを判断する(ステップS101)。データ更新リスト33aが空でない場合、端末優先度算出部124は、データ更新リスト33aからレコードを1つ取り出して、取り出したレコードの端末ID、ファイル種別、操作の値を、夫々、端末ID1、ファイル種別1、操作1に設定する(ステップS102)。設定された値は、更新元端末に係る値であり、これら値の組み合せを<端末ID1、ファイル種別1、操作1>で表す。取り出したレコードは、データ更新リスト33aから削除される。
そして、端末優先度算出部124は、端末使い分け学習DB31を、更新元端末の値の組み合せ<端末ID1、ファイル種別1、操作1>で検索し、検索したこの組み合せに対応付けられる同期データが送信される同期先となる対象端末に係る値を含む検索結果リスト44を記憶部13に作成して記憶する(ステップS103)。
端末優先度算出部124は、検索結果リスト44が空か否かを判断する(ステップS104)。検索結果リスト44が空の場合、端末優先度算出部124は、ステップS101へと戻り、データ更新リスト33aが空になるまで上記同様の処理を繰り返す。
一方、ステップS104において、検索結果リスト44が空でない場合、端末優先度算出部124は、検索結果リスト44からレコードを1つ取り出して、取り出したレコードから同期先の対象端末に係る、端末ID2、ファイル種別2、及び使用度を取得する(ステップS105)。
次に、端末優先度算出部124は、記憶部130の端末優先度リスト41において、ステップS105で取得した端末ID2の優先度に、ステップS105で取得した使用度を加算して(ステップS106)、ステップS104へ戻り、検索結果リスト44が空になるまで上記処理を繰り返す。
一方、ステップS101において、データ更新リスト33aが空の場合、端末優先度算出部124は、この端末優先度の算出処理を終了する。
図13は、端末優先度の算出処理をデータ例で説明するための図である。図13(A)及び図13(B)では、図6のデータ例に基づいて作成される検索結果リストのデータ例が示される。図13(C)では、図13(A)及び図13(B)で例示される検索結果リスト44−1及び44−2に基づく、端末優先度リスト41のデータ例が示される。更新元端末が端末ID「スマホ」で識別される端末1である場合、端末リストDB32a(図4)を参照することにより、同期先となる対象端末は端末ID「PC」又は「タブレット」で識別される端末1である。
図13(A)に示される検索結果リスト44−1は、図6(A)の「スマホ」のデータ更新リスト33a−1の最初のレコードに基づいて、端末使い分け学習DB31から検索した結果を示している。データ更新リスト33a−1の1番目のレコードから、端末ID、ファイル種別、操作の値の組み合せ<スマホ、jpeg、作成>を取得して、端末使い分け学習DB31が検索される。検索結果リスト44−1内のレコードのうち、同期先となる対象端末の端末ID2が「PC」であるレコード5aと、同期先となる対象端末の端末ID2が「タブレット」であるレコード5bとを有する。
図13(B)に示される検索結果リスト44−2は、図6(A)のデータ更新リスト33a−1の2番目のレコードに基づいて、端末使い分け学習DB31から検索した結果を示している。データ更新リスト33a−1の2番目のレコードから、端末ID、ファイル種別、操作の値の組み合せ<スマホ、txt、変更>を取得して、端末使い分け学習DB31が検索される。検索結果リスト44−2内のレコードのうち、同期先となる対象端末の端末ID2が「PC」であるレコード5cと、同期先となる対象端末の端末ID2が「タブレット」であるレコード5dとを有する。
図13(C)に示される端末優先度リスト41では、同期先となる対象端末の端末ID2毎に、使用度の和によって得られた優先度を対応付けられる。検索結果リスト44−1のレコード5aと検索結果リスト44−2のレコード5cの使用度の和を求めることによって、端末ID2「PC」の優先度は、「0.056722」となる。同様に、検索結果リスト44−2のレコード5bと検索結果リスト44−2のレコード5dの使用度の和を求めることによって、端末ID2「タブレット」の優先度は、「0.035617」となる。
従って、端末ID2「PC」の方が、端末ID2「タブレット」より優先度が高いことが分かる。同期制御部122は、端末優先度算出部124による端末優先度リスト41を参照することによって、端末ID2「PC」の端末1へ、端末ID2「タブレット」の端末1より先に同期データを転送することを決定する。
次に、図5のステップS62でのデータ優先度の算出処理について、図14から図18で説明する。図14は、図5のステップS62でのデータ優先度算出部によるデータ優先度の算出処理を説明するためのフローチャート図である。図14において、データ優先度算出部125は、同期管理部122から呼び出(関数コール)されると、同期先の端末IDを取得して、端末ID2に設定する(ステップS201)。端末リストDB32aを参照することによって、ユーザIDと更新元端末の端末IDとによって、同一ユーザID内で更新元端末の端末ID以外の端末IDを取得することができる。
そして、データ優先度算出部125は、同期待ち更新データDB33を、端末IDで検索し、端末IDに対する更新データを取得して、同期待ち更新データリスト33bを記憶部130に作成する(ステップS202)。ステップS202では、ステップS201で取得した各端末IDに対して、更新データが取得される。同期待ち更新データDB33から取得した更新データには、データID、更新日時、ファイル種別が含まれる。各更新データに、ユーザIDと同期先の端末IDとを付加して同期待ち更新データリスト33bが作成される。
データ優先度算出部125は、同期待ち更新データリスト33bが空か否かを判断する(ステップS203)。同期待ち更新データリスト33bが空でない場合、データ優先度算出部125は、同期待ち更新データリスト33bからレコードを1つ取り出して、対象データ<データID、更新日時、ファイル種別2>を算出結果45に格納する(ステップS204)。同期待ち更新データリスト33bから取り出したレコードのデータIDと更新日時とファイル種別とが、夫々、算出結果45のデータIDと更新日時とファイル種別2とに対応する。取り出したレコードは、同期待ち更新データリスト33bから削除される。
そして、データ優先度算出部125は、優先度1を算出する(ステップS205)。優先度1は、更新日時が古いデータを優先する場合、
優先度1 = 現在日時 − 更新日時
によって算出される。一方、更新日時が新しいデータを優先する場合、
優先度1 = 1/(現在日時 − 更新日時)
によって算出される。
データ優先度算出部125は、データ更新リスト33aが空か否かを判断する(ステップS206)。データ更新リスト33aが空の場合ステップS210へと進む。一方、データ更新リストが空でない場合、データ優先度算出部125は、データ更新リスト33aからレコードを1つ取り出して、<端末ID1、ファイル種別1、操作1>に設定する(ステップS207)。取り出したレコードで示される更新元端末の端末ID、ファイル種別、及び操作の値が、端末ID1、ファイル種別1、操作1の夫々に設定される。
そして、データ優先度算出部125は、端末使い分け学習DB31を、ステップS201、S204、及びS207で取得した値の組み合せ<端末ID1、ファイル種別1、操作1、端末ID2、ファイル種別2>で検索する(ステップS208)。
データ優先度算出部125は、検索したレコードから使用度を取得して、算出結果45における値の組み合せ<データID、更新日時、ファイル種別>に対して、優先度2に取得した使用度を加算して(ステップS209)、ステップS206へと戻り、上述同様の処理を繰り返す。
一方、ステップS206において、データ更新リスト33aが空の場合、データ優先度算出部125は、算出結果45において、ステップS205で算出した優先度1に、所定の係数bを乗算した優先度2を加算した値を優先度に設定する(ステップS210)。そして、データ優先度算出部125は、算出結果45で示されるデータIDと優先度とをデータ優先度リスト42に追加して(ステップS211)、ステップS203へと戻り、上記同様の処理を繰り返す。
ステップS203において、同期待ち更新データリスト33bが空の場合、データ優先度算出部125は、このデータ優先度の算出処理を終了する。このような算出処理によって、同期先端末の端末ID2毎に、同期させる各データの優先度が算出される。
データ優先度の算出処理をデータ例で説明する。同期先端末の端末ID「PC」に対するデータ毎の優先度が算出される場合について図15及び図16で説明する。図15及び図16は、同期先端末の端末ID「PC」の場合のデータ優先度の算出処理におけるデータ例を示す図である。
図15(A)において、図14のステップS202において、同期待ち更新データDB33を端末ID「PC」で検索することにより、データIDが「メール328915」、「picture1.jpeg」、「memo1.txt」の3つの同期待ち更新データが取得されリストした、端末ID「PC」の同期待ち更新データリスト33bが例示されている。
同期待ち更新データリスト33bは、ユーザID、端末ID、データID、更新日時、ファイル種別などの項目を有する。ユーザIDは、データを更新したユーザを識別するIDである。端末IDは、ユーザがデータを更新した更新元端末以外の端末1であり、データを同期する対象となる同期先端末のIDである。データIDは、ユーザが更新したデータを含むファイルを特定するためのIDである。更新日時は、データが更新された日時を示す。ファイル種別は、データが更新されたファイルの種別を示す。ファイル種別は、例えば、メール、jpeg、txtなどで指定される。
同一ユーザ「User1」内で、更新元端末以外で同期待ちとなっている同期先端末の端末IDは、この例では、「PC」のみである。
先ず、データID「メール328915」を対象に(ステップS204)、優先度1を算出する(ステップS205)。この際、算出結果45−1(図15(B))が記憶部130に作成される。算出結果45−1は、同期待ち更新データリスト33bから取得したデータID、更新日時、ファイル種別2に加えて、優先度1、優先度2、及び使用度等の項目を有する。
優先度1を更新日時が新しいデータを優先するための算出方法を適用する。現在日時が「2011-10-28T13:48:21」である場合に秒単位で計算して、
優先度1 = 0.000014 (= 1/(19*3600))
を得る。算出した優先度1は、算出結果45−1の優先度1に設定される。
次に、優先度2を取得するため、「スマホ」のデータ更新リスト33a−1(図6(A))から値の組み合せ<端末ID1、ファイル種別1、操作1>を1つずつ取り出して使用する(ステップS207)。最初の組み合せは<スマホ、jpeg、作成>であり、次の組み合せは<スマホ、txt、変更>である。
そして、最初の組み合せ<スマホ、jpeg、作成>に対して、端末使い分け学習DB31(図9及び図10)を値の組み合せ<端末ID1=スマホ、ファイル種別1=jpeg、操作1=作成、端末ID2=PC、ファイル種別2=メール>で検索する(ステップS208)。この場合、端末使い分け学習DB31(図9)の行番号「3」のレコードが検索される。検索されたレコードから使用度「0.008673」(ステップS22により行番号34及び35のレコードの使用回数「1」が「2」に更新された後、ステップS80により全てのレコードの使用度が変更され、行番号3の使用度も図9時点の0.008678から0.008673に変更されている)を取得して、算出結果45−1の優先度2に使用度を加算する(ステップS209)。
また、次の組み合せは<スマホ、txt、変更>に対して、端末使い分け学習DB31(図9及び図10)を値の組み合せ<端末ID1=スマホ、ファイル種別1=txt、操作1=変更、端末ID2=PC、ファイル種別2=メール>で検索する(ステップS208)。この場合、端末使い分け学習DB31(図9)の行番号「6」のレコードが検索される。検索されたレコードから使用度「0.00029」を取得して、算出結果45−1の優先度2に使用度を加算する(ステップS209)。結果として、優先度2は、「0.008702」となる。
そして、算出結果45−1において、優先度1と優先度2とから、優先度1に所定の係数bを乗算した優先度2を加算した値を優先度に設定する。例えば、所定の係数bを0.1とする。
優先度 = 優先度1 + b*優先度2
= 0.000014 + 0.1*0.008702
= 0.000884
上記計算より、優先度「0.000884」を得る。
次に、同期待ち更新データリスト33b(図15(A))内のデータID「picture1.jpeg」及び「memo1.txt」についても同様も優先度1、優先度2、及び優先度を算出する。
図16(A)に示す算出結果45−2では、データID「picture1.jpeg」に対する優先度1、優先度2、及び優先度の算出結果が示される。先ず、データID「picture1.jpeg」を対象に(ステップS204)、優先度1を算出する(ステップS205)。上述した、更新日時が新しいデータを優先するための算出方法によって、
優先度1 = 0.000139 (= 1/(2*3600))
を得る。算出した優先度1は、算出結果45−2の優先度1に設定される。
次に、上述同様に、データ更新リスト33a−1(図6(A))から、最初の組み合せ<端末ID1=スマホ、ファイル種別1=jpeg、操作1=作成>、次の組み合せ<端末ID1=スマホ、ファイル種別1=txt、操作1=変更>を1つずつ取り出して使用する(ステップS207)。
そして、最初の組み合せ<スマホ、jpeg、作成>に対して、端末使い分け学習DB31(図9及び図10)を値の組み合せ<端末ID1=スマホ、ファイル種別1=jpeg、操作1=作成、端末ID2=PC、ファイル種別2=jpeg>で検索する(ステップS208)。この場合、端末使い分け学習DB31(図9)の行番号「1」のレコードが検索される。検索されたレコードから使用度「0.028927」を取得して、算出結果45−2の優先度2に使用度を加算する(ステップS209)。
同様に、次に取り出された組み合せ<スマホ、txt、変更>に対して、端末使い分け学習DB31(図9及び図10)を値の組み合せ<端末ID1=スマホ、ファイル種別1=txt、操作1=変更、端末ID2=PC、ファイル種別2=jpeg>で検索する(ステップS208)。この場合、端末使い分け学習DB31(図9)の行番号「4」のレコードが検索される。検索されたレコードから使用度「0.00029」を取得して、算出結果45−2の優先度2に使用度を加算する(ステップS209)。結果として、優先度2は、「0.028939」となる。
そして、算出結果45−2において、優先度1と優先度2とから、優先度1に所定の係数bを乗算した優先度2を加算した値を優先度に設定する
優先度 = 優先度1 + b*優先度2
= 0.000139 + 0.1*0.028939
= 0.0030329
上記計算より、優先度「0.0030329」を得る。
最後に、データID「memo1.txt」についても同様に優先度を算出する。図16(B)に示す算出結果45−3では、データID「memo1.txt」に対する優先度1、優先度2、及び優先度の算出結果が示される。先ず、データID「memo1.txt」を対象に(ステップS204)、優先度1を算出する(ステップS205)。上述した、更新日時が新しいデータを優先するための算出方法によって、
優先度1 = 0.000278 (= 1/1*3600) )
を得る。算出した優先度1は、算出結果45−3の優先度1に設定される。
次に、上述同様に、データ更新リスト33a−1(図6(A))から最初の組み合せ<端末ID1=スマホ、ファイル種別1=jpeg、操作1=作成>を取得して、端末使い分け学習DB31(図9及び図10)を値の組み合せ<端末ID1=スマホ、ファイル種別1=jpeg、操作1=作成、端末ID2=PC、ファイル種別2=txt>で検索する(ステップS207〜S208)。この場合、端末使い分け学習DB31(図9)の行番号「2」のレコードが検索される。検索されたレコードから使用度「0.0001736」を取得して、算出結果45−2の優先度2に使用度を加算する(ステップS209)。
そして、データ更新リスト33a−1(図6(A))から次の組み合せ<スマホ、txt、変更>を取得して、端末使い分け学習DB31(図9及び図10)を値の組み合せ<端末ID1=スマホ、ファイル種別1=txt、操作1=変更、端末ID2=PC、ファイル種別2=txt>で検索する(ステップS207〜S208)。この場合、端末使い分け学習DB31(図9)の行番号「6」のレコードが検索される。検索されたレコードから使用度「0.000029」を取得して、算出結果45−2の優先度2に使用度を加算する(ステップS209)。
算出結果45−1、45−2、及び45−3を用いて、図17(A)に例示されるような、データID毎にデータの優先度を対応付けたデータ優先度リスト42−1が作成される。
次に、端末優先度リスト41(図13(C))に基づいた、図5のステップS62からS68までの処理について、データ例で説明する。図17は、図5のステップS62からS68までの処理をデータ例で説明するため図である。図17(A)に示す「PC」のデータ優先度リスト42−1は、データが更新された更新元端末「スマホ」に対する同期先端末のうちの1つの端末ID「PC」に対して、同期させるデータの優先度を示し、データID毎に優先度が対応付けられる。同期先端末「PC」へ送信されるデータは、データ優先度リスト42−1から優先度がデータ閾値以下を除いたデータが、端末ID「PC」用に送信データリスト43に一覧される。図17(A)の例では、データ閾値を「0.0001」とすると、除去されるデータはなく、一覧される全データが同期データとして同期先端末「PC」へと送信される。この場合、1番優先度の高い「picture1.jpeg」から転送される。そして、「memo1.txt」、「メール328915」の順に転送される。
転送完了後、同期待ち更新データDB33(図11(B))から転送が完了した同期データを削除する。図17(B)では、削除された後の同期待ち更新データDB33が例示される。図11(B)に示す同期待ち更新データDB33内の同一ユーザID「User1」に対して、端末ID「PC」を示すレコードが削除されている。
また、他の同期先端末の端末ID「タブレット」についても、端末ID「PC」と同様の処理を行うことによって、図17(C)に例示されるような、「タブレット」のデータ優先度リスト42−2が作成される。データ優先度リスト42−2において、データ閾値「0.0001」より大きいデータが、優先度の降順に同期先端末「タブレット」へ転送される。この例では、優先度の降順に、「memo.txt」、そして「picture1.jpeg」が同期先端末「タブレット」へ転送され、図17(B)に示される同期待ち更新データDB33の同一ユーザID「User1」に対して、端末ID「タブレット」を示すレコードが削除される。
上述したように、[作業手順例1]の場合には、本実施例に係るデータ同期システム1000では、ユーザがスマートフォンで写真を撮った後は、タブレット端末よりも優先してPCを選択し、PCの他のデータより写真データを優先して同期させることができる。
[作業手順例2]
ユーザはタブレットでメールを読んでいて、メール文書内のICカード認証を要求する社内サイトURLにアクセスするために、ユーザのPCに電源を入れてブラウザから社内サイトURLを開きたい場合、タブレット端末でメールを見たら、スマートフォンよりも優先してPCを選択し、PCの他のデータよりメールを優先して同期させる。
図18は、他のデータ例を示す図である。図18(A)に示す「タブレット」のデータ更新リスト33a−2は、端末ID「タブレット」に関するデータ更新情報の一覧である。「タブレット」のデータ更新リスト33a−2では、端末ID「タブレット」の端末1(更新元端末)でユーザによって、ファイル種別「メール」のデータID「メール403915」で特定されるデータファイルが更新日時「2011-11-28T12:48:21」で操作「参照」によって更新されたことを示している。データID「メール403915」のデータファイルは、ファイル内容から「e-Learning受講依頼:・・・」であることが示されている。
また、同一の端末ID「タブレット」の端末1でユーザによって、ファイル種別「txt」のデータID「memo-tablet43.txt」で特定されるデータファイルが更新日時「2011-11-28T13:18:21」で操作「変更」によって更新されたことを示している。データID「memo-tablet43.txt」のデータファイルは、ファイル内容から、「読書メモ:・・・」であることが示されている。ファイル内容は必須ではなく、省略されていても良い。
この場合の端末ID「タブレット」の端末1(更新元端末)に対する端末ID2「PC」及び「スマホ」の同期先端末間の端末優先度が、端末優先度算出部124による端末優先度の算出処理によって算出され、図18(B)に示すような端末優先度リスト41−2が記憶部130に作成され格納される。
図18(B)に示す端末優先度リスト41−2では、端末ID2毎に同期データを送信する同期先端末の優先度が降順に示めされている。端末ID2「スマホ」より先に端末ID2「PC」の同期先端末へ同期データが転送されることになる。
また、同期データの転送に際しては、端末ID2毎にデータ優先度が、データ優先度算出部125によるデータ優先度の算出処理によって算出され、図18(C)及び図18(D)に示すようなデータ優先度リスト42−3及び42−4が記憶部130に作成され格納される。
図18(C)に示すデータ優先度リスト42−3は、データが更新された更新元端末「タブレット」に対する同期先端末のうちの1つの端末ID「PC」に対して、同期させるデータの優先度を示し、データID毎に優先度が対応付けられる。データ閾値より大きい優先度において降順に、データIDによって指定される同期データが同期先端末「PC」へ転送される。データ閾値が「0.0001」である場合、データID「メール403915」の同期データの転送後に、データID「memo-table43.txt」の同期データが転送される。
図18(D)に示すデータ優先度リスト42−4は、データが更新された更新元端末「タブレット」に対する同期先端末のうちの他の端末ID「スマホ」に対して、同期させるデータの優先度を示し、データID毎に優先度が対応付けられる。データ閾値より大きい優先度において降順に、データIDによって指定される同期データが同期先端末「スマホ」へ転送される。データ閾値が「0.0001」である場合、データID「memo-table43.txt」の同期データの転送後に、データID「メール403915」の同期データが転送される。この例では、データID「議事メモ.txt」の優先度がデータ閾値「0.0001」以下であるため、データID「議事メモ.txt」の同期データは転送対象から除外される。
上述したように、本実施例に係る、サーバ装置と同一ユーザが使用する複数の端末間のデータ同期システム1000では、複数の端末1に跨る作業手順におけるユーザの端末の使い方を、データへの操作履歴から学習する。ある端末1aでのデータ更新を他の端末1bに対して同期する際に、学習した端末の使い方に基づいて、同期先端末を優先度付けし、また、各同期先端末の同期データを優先度付けする。
従って、ある作業手順において、ユーザは、通常、第一の作業を行う端末1aから、端末1a以外の第二の作業を行う端末1bへと切り替えて継続して作業する場合、学習した端末の使い方に基づいて、端末1aでのデータの更新に応じて、データ同期の対象となる端末1bを優先的に選択することができる。また、優先的に選択した端末1bに対して同期待ちとなっている同期データのうち、第二の作業に必要なデータが優先的に端末1bへ送信されるようにすることができる。
ユーザが端末1bへと切り替えた際には、第二の作業に必要なデータが、端末1bに対する他のデータよりも優先して端末1aでの状態に同期するため、ユーザは、端末1bでの第二の作業を速やかに行うことができ、端末間を跨る作業を効率的に継続して行える。
また、端末1aで更新されたデータであっても、データ閾値を用いることにより、切り替えた先の端末1bで使用される可能性が低い同期データの転送を抑止することができるため、転送データ量を低減させることができる。端末1bにおいて、第二の作業を行うためのデータ同期による待ち時間を少なくすることができる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータによって実行されるデータ同期方法であって、
第1の端末からデータ更新情報を受信すると、記憶部内の端末使い分け学習DBに記憶された、該第1の端末での第1のファイル種別のデータファイルの操作後に複数の第2の端末の各々の第2のファイル種別のデータファイルを使用した回数を正規化した使用度に基づいて、データ同期の対象となる該複数の第2の端末に対して、優先的に該操作されたデータを同期する端末の優先度を算出して、該端末の優先度順に該複数の第2の端末の端末IDを前記記憶部に記憶し、
前記第2の端末毎に、前記第2のファイル種別を用いて同期データの優先度を算出して、該データの優先度順に該第2のファイル種別を前記記憶部に記憶し、
前記記憶部に記憶された、前記端末の優先度順に従った前記第2の端末毎に、前記データの優先度順に従って前記同期データを転送する
ことを特徴とするデータ同期方法。
(付記2)
前記データ更新情報の受信時に、前記記憶部に記憶された前記端末使い分け学習DBに記憶される、前記第1の端末の直前に使用されていた第3の端末での第3のファイル種別のデータファイルの操作後に、該第1の端末の前記第1のファイル種別のデータファイルを使用した回数に1加算し、
前記端末使い分け学習DBに記憶される各回数を全回数の合計で割り算することによって前記使用度を算出する
ことを特徴とする付記1記載のデータ同期方法。
(付記3)
前記第1の端末、第2の端末、及び第3の端末は、一のユーザによって使用され、
前記記憶部に記憶された直前使用端末DBから、前記ユーザのユーザIDと前記直前に使用されていた第3の端末の端末IDとを取得し、
前記記憶部に記憶された前記データ更新情報を記憶した更新履歴DBから、前記ユーザIDと前記端末IDとを示すレコードの一覧にした更新履歴リストを取得し、
前記更新履歴リストから順に取得した前記第3の端末の端末ID、該第3の端末で操作されたデータファイルのファイル種別、及び該操作と、前記データ更新情報を送信した該第1の端末の端末ID、及び該第1の端末で操作されたデータファイルのファイル種別とで前記端末使い分け学習DBを検索し、
検索されたレコードの前記回数に1加算する
ことを特徴とする付記2記載のデータ同期方法。
(付記4)
前記受信したデータ更新情報を前記ユーザIDと前記第1の端末の端末IDとに対応づけて、前記記憶部に記憶された前記更新履歴DBに追加する
ことを特徴とする付記3記載のデータ同期方法。
(付記5)
前記記憶部に記憶された、端末閾値より大きい前記端末の優先度順に従った前記第2の端末毎に、データ閾値より大きい前記データの優先度順に従って前記同期データを転送する
ことを特徴とする付記4記載のデータ同期方法。
(付記6)
前記第1の端末からデータ更新情報を受信すると、該第1の端末の端末IDが前記記憶部に記憶されている使用中端末DBの使用中端末の端末IDと異なる場合、該使用中端末DBの端末IDを前記直前使用端末DBの端末IDにコピーし、該使用中端末DBの端末IDを該第1の端末の端末IDに更新した後、前記端末の優先度を算出する
ことを特徴とする付記1乃至4のいずれか一項記載のデータ同期方法。
(付記7)
第1の端末での第1のファイル種別のデータファイルの操作後に複数の第2の端末の各々の第2のファイル種別のデータファイルを使用した回数を正規化した使用度を記憶する記憶部と、
前記第1の端末からデータ更新情報を受信すると、前記記憶部に記憶された前記使用度に基づいて、データ同期の対象となる該複数の第2の端末に対して、優先的に該操作されたデータを同期する端末の優先度を算出して、該端末の優先度順に該複数の第2の端末の端末IDを前記記憶部に記憶する端末優先度算出部と、
前記第2の端末毎に、前記第2のファイル種別を用いて同期データの優先度を算出して、該データの優先度順に該第2のファイル種別を前記記憶部に記憶するデータ優先度算出部と、
前記記憶部に記憶された、前記端末の優先度順に従った前記第2の端末毎に、前記データの優先度順に従って前記同期データを転送する同期管理部と
を有することを特徴とするサーバ装置。
(付記8)
前記データ更新情報の受信時に、前記記憶部に記憶された前記端末使い分け学習DBに記憶される、前記第1の端末の直前に使用されていた第3の端末での第3のファイル種別のデータファイルの操作後に、該第1の端末の前記第1のファイル種別のデータファイルを使用した回数に1加算し、該端末使い分け学習DBに記憶される各回数を全回数の合計で割り算することによって前記使用度を算出する端末使い分け学習部と
を有することを特徴とする付記6記載のサーバ装置。
(付記9)
第1の端末からデータ更新情報を受信すると、記憶部内の端末使い分け学習DBに記憶された、該第1の端末での第1のファイル種別のデータファイルの操作後に複数の第2の端末の各々の第2のファイル種別のデータファイルを使用した回数を正規化した使用度に基づいて、データ同期の対象となる該複数の第2の端末に対して、優先的に該操作されたデータを同期する端末の優先度を算出して、該端末の優先度順に該複数の第2の端末の端末IDを前記記憶部に記憶し、
前記第2の端末毎に、前記第2のファイル種別を用いて同期データの優先度を算出して、該データの優先度順に該第2のファイル種別を前記記憶部に記憶し、
前記記憶部に記憶された、前記端末の優先度順に従った前記第2の端末毎に、前記データの優先度順に従って前記同期データを転送する
処理をコンピュータに実行させるプログラム。