<実施の形態1>
本発明の実施の形態1について、図1〜図16を用いて説明する。なお、本実施の形態において、主に、地上システムは基地局及びサーバなどの固定端末を備えると想定し、車上システムは電車などの移動体に搭載される移動端末を備えると想定して、地上システムと車上システムとの間でデータ同期を実現する構成について説明する。
図1は、本実施の形態に係るデータ同期を実現するシステム構成を概略的に示すブロック図である。なお、本明細書においては、同一または相当する構成については同一の符号を付すものとする。
本実施の形態において、データ同期を実現するシステムは、地上システムの各固定端末に搭載された地上データ同期装置1aと、車上システムの各移動端末に搭載された車上データ同期装置1bと、地上データ同期装置1aと車上データ同期装置1bとを接続する通信ネットワーク2とを備える。地上データ同期装置1a及び車上データ同期装置1bは、通信ネットワーク2を経由してデータや要求を送受信する。つまり、地上データ同期装置1aは、移動端末(他端末)と通信可能な固定端末(端末)に搭載され、車上データ同期装置1bは、固定端末(他端末)と通信可能な移動端末(端末)に搭載されている。
なお、本実施の形態においては、地上データ同期装置1a及び車上データ同期装置1bは、構成及び機能が同一である。そこで、以下においては説明の便宜を考慮して、地上データ同期装置1aと車上データ同期装置1bと区別して記したり、これらを区別せずにまとめてデータ同期装置1と記したりすることもある。
また、以下の説明においては、データ同期装置1周辺に存在する他端末のデータ同期装置を、周辺データ同期装置と呼ぶ。図1においては、データ同期装置1を地上データ同期装置1aとし、周辺データ同期装置を車上データ同期装置1bとして、地上データ同期装置1aの構成及び処理を中心に説明する。ただし、上述したように、地上データ同期装置1a及び車上データ同期装置1bは構成及び機能が同一であることから、以下の説明において、地上データ同期装置1a及び車上データ同期装置1bの一方を他方に置き換えもよく、また、地上データ同期装置1a及び車上データ同期装置1bを互いに置き換えてもよい。
図1において、地上データ同期装置1aは、同期サーバである地上同期サーバ10aと、複数のアプリケーションである複数の地上アプリケーション11aとを備え、複数の地上アプリケーション11aが地上同期サーバ10aに接続されている。地上データ同期装置1aは、1つであってもよいし、複数あってもよい。
同様に、車上データ同期装置1bは、同期サーバである車上同期サーバ10bと、複数のアプリケーションである複数の車上アプリケーション11bとを備え、複数の車上アプリケーション11bが車上同期サーバ10bに接続されている。車上データ同期装置1bは、1つであってもよいし、複数あってもよい。
なお、以下においては説明の便宜上、地上同期サーバ10aと車上同期サーバ10bと区別して記したり、これらを区別せずにまとめて同期サーバ10と記したりすることもある。同様に、以下においては説明の便宜上、地上アプリケーション11aと車上アプリケーション11bと区別して記したり、これら区別せずにまとめてアプリケーション11と記したりすることもある。
本実施の形態では、後で詳細に説明するが、データ同期装置1は、複数のアプリケーション11に共通に利用可能な自動同期データ(同期情報)と、各アプリケーション11に個別に利用可能なオンデマンドデータ(オンデマンド情報)とを扱うものとなっている。
次に、地上同期サーバ10a及び地上アプリケーション11aについて詳細に説明する。なお、車上同期サーバ10b及び車上アプリケーション11bについては、自動同期データの対象が車上情報となる点が異なる以外は、それぞれ地上同期サーバ10a及び地上アプリケーション11aと同じ処理を提供するものであることから、説明は省略する。
地上同期サーバ10aは、各地上アプリケーション11aから送信された上述の自動同期データを集約して一括管理しているとともに、各地上アプリケーション11aから送信された上述のオンデマンドデータについての格納位置データを管理している。ここでは、地上同期サーバ10aで管理されるべき自動同期データ及び格納位置データは、地上アプリケーション11aによって地上同期サーバ10aに格納(登録)されるものとする。
なお、本実施の形態において、オンデマンドデータの格納位置データ(以下「格納位置データ」とのみ記すこともある)とは、所望のオンデマンドデータが、データ同期装置1及び周辺データ同期装置のアプリケーションのいずれに格納(管理)されているかを一意に識別するための識別情報である。この格納位置データは、例えば、オンデマンドデータ名などのオンデマンドデータの識別情報、送信元のアプリケーション名などのアプリケーション11の識別情報、同期サーバ10の識別子などを含む。
地上同期サーバ10aは、自身が管理している自動同期データ及び格納位置データを、周辺データ同期装置である車上データ同期装置1b(ここでは車上同期サーバ10b)と定期的に送受信する。
地上同期サーバ10aは、地上アプリケーション11aからの送信要求または取得要求を、車上データ同期装置1b(ここでは車上アプリケーション11b)に送信(転送)する。なお、以下、データ同期装置1から周辺データ同期装置に送信される送信要求及び取得要求を、それぞれ「内外送信要求」及び「内外取得要求」と記すこともある。後で詳細に説明するが、この内外送信要求は、データ同期装置1のアプリケーション11が取得したいオンデマンドデータを周辺データ同期装置に送信させるための、データ同期装置1から周辺データ同期装置への要求であり、内外取得要求は、データ同期装置1のアプリケーション11が保有しているオンデマンドデータを周辺データ同期装置に送信(格納)するための、データ同期装置1から周辺データ同期装置への要求である。
また、地上同期サーバ10aは、車上データ同期装置1b(ここでは車上アプリケーション11b)からの送信要求または取得要求を、一の地上アプリケーション11aに送信(転送)する。なお、以下、周辺データ同期装置からデータ同期装置1に送信される送信要求及び取得要求を、それぞれ「外内送信要求」及び「外内取得要求」と記すこともある。後で詳細に説明するが、この外内送信要求は、周辺データ同期装置が取得したいオンデマンドデータをデータ同期装置1に送信させるための、周辺データ同期装置からデータ同期装置1への要求であり、外内取得要求は、周辺データ同期装置のアプリケーション11が保有しているオンデマンドデータをデータ同期装置1に送信(格納)するための、周辺データ同期装置からデータ同期装置1への要求である。
なお、データ同期装置1及び周辺データ同期装置のいずれか一方が送信した内外送信要求は、他方(受信側)からみれば外内送信要求となる。また、データ同期装置1及び周辺データ同期装置のいずれか一方が送信した内外取得要求は、他方(受信側)からみれば外内取得要求となる。
次に、自動同期データとオンデマンドデータの具体例について、図2を用いて説明する。図2に示すように、自動同期データとしては、データサイズが比較的小さく、複数のアプリケーション11間で共用可能なデータであり、最新状態のデータのみが管理される。自動同期データに関して、データ本体が保持されるべき装置、同期トリガー及び通信タイミングを管理すべき装置は、同期サーバ10となっている。自動同期データの例としては、端末の位置、速度、識別子、故障情報などのリアルタイム性の高い情報などが挙げられるが、これに限定されるものではない。
一方、オンデマンドデータとしては、データサイズが比較的大きく、各アプリケーション11が個別に必要に応じて利用するデータであり、最新状態のデータに加えて履歴により過去のデータも管理されて利用可能となっている。オンデマンドデータに関して、データ本体が保持されるべき装置、同期トリガー及び通信タイミングを管理すべき装置は、アプリケーション11となっている。ただし、上述したように、データ本体ではない格納位置データは同期サーバ10に管理される。オンデマンドデータの例としては、イベントログ、プログラム更新データ、画面データなどのリアルタイム性の低い情報などが挙げられるが、これに限定されるものではない。
図1に戻って、地上アプリケーション11aは、自動同期の対象となる自動同期データ及び格納位置データを定期的に地上同期サーバ10aに定期的に送信して、当該自動同期データ及び格納位置データを地上同期サーバ10aに格納(登録)する。つまり、地上アプリケーション11aは、地上同期サーバ10aが車上データ同期装置1bに定期的に送信すべき自動同期データ及び格納位置データを、地上同期サーバ10aに定期的に送信する。
また、地上アプリケーション11aは、地上同期サーバ10aに格納されている、車上データ同期装置1b(ここでは車上同期サーバ10b)から送信された自動同期データ及び格納位置データを、地上同期サーバ10aから定期的に取得する。
さらに、地上アプリケーション11aは、車上データ同期装置1bからの外内送信要求または外内取得要求に対して応答する。また、地上アプリケーション11aは、車上データ同期装置1bからの格納位置データに基づいて、内外送信要求または内外取得要求を地上同期サーバ10aを経由して車上データ同期装置1bに必要に応じて送信する。これにより、地上アプリケーション11aは、車上データ同期装置1bと必要に応じてアクセスしてオンデマンドデータを送受信する。
通信ネットワーク2は、例えば、地上データ同期装置1aと車上データ同期装置1bとを無線ネットワークで接続したり、地上データ同期装置1a同士を有線ネットワークで接続したり、車上データ同期装置1b同士を無線ネットワークで接続したりする通信媒体である。なお、ここでの有線ネットワークには、Ethernet(登録商標)や光ファイバなどを用いてもよい。また、無線ネットワークには無線LAN(Local Area Network)、Wimax(Worldwide Interoperability for Microwave Access)、GSM(Global System for Mobile Communication)などの通信を用いてもよい。
次に、図3等を用いて、データ同期装置1の詳細な構成について説明する。なお、この図3等を用いた説明において、データ同期装置1の、各ブロックで示される構成要素については、地上及び車上を特に識別しないものとする。
まず、はじめにデータ同期装置1の同期サーバ10の構成について詳細に説明する。同期サーバ10は、同期データ処理部101、自動同期データ管理部102、要求転送部103、及び、データ送受信部104を備える。
同期データ処理部101は、アプリケーション11の同期データ設定部111から自動同期の対象の自動同期データを受信すると、当該受信した自動同期データを自動同期データ管理部102に格納する。同期データ処理部101は、複数のアプリケーション11から送信され、自動同期データ管理部102に格納されている自動同期データを定期的にまとめて、データ送受信部104に定期的に送信する。これにより、当該自動同期データが周辺データ同期装置に定期的に送信される。
また、同期データ処理部101は、オンデマンドデータ格納位置設定部114からアプリケーション11が格納しているオンデマンドデータの存在の通知を受信すると、当該オンデマンドデータ及び送信元のアプリケーションの識別情報を、格納位置データとして自動同期データ管理部102に格納(登録)する。同期データ処理部101は、複数のアプリケーション11から送信され、自動同期データ管理部102に格納されている格納位置データを定期的にまとめて、データ送受信部104に定期的に送信する。この格納位置データは、上述の自動同期データとともに周辺データ同期装置に定期的に送信される。以上のことを換言すれば、同期サーバ10は、周辺データ同期装置に送信すべき自動同期データ及び格納位置データを複数のアプリケーション11により格納されるものとなっている。
また、同期データ処理部101は、データ送受信部104を経由して、周辺データ同期装置からの自動同期データ及び格納位置データを受信すると、それらを自動同期データ管理部102に格納する。同期データ処理部101は、各アプリケーション11からの要求に応じて、当該格納した自動同期データ及び格納位置データを各アプリケーション11に送信する。
自動同期データ管理部102は、同期データ処理部101の格納処理により、アプリケーション11からの自動同期データ及び格納位置データを保存したり、周辺データ同期装置からの自動同期データ及び格納位置データを保存したりする。
次に、この自動同期データ管理部102で保存されている各種データについて、図4を用いて説明する。自動同期データ管理部102には、図4に示すように、自動同期データ、オンデマンドデータの格納位置データ、及び、Notify通知情報が保存される。なお、詳細については後述するが、Notify通知情報は、同期サーバ10が管理している自動同期データのうち、一のアプリケーション11により更新通知の要求がされた所定の自動同期データを特定するための情報である。また、図4には、自動同期データ管理部102に保存されるデータに関して、データID、データ名、名称及びデータ説明が対応付けられて保存されており、各データはツリー構造で定義されている。
データIDの数字は左端から順に、保存しているデータが、自動同期データ、格納位置データ及びNotify通知情報のいずれであるかということと、車上データ構造及び地上データ構造のいずれかであるかということと、識別番号(同期サーバ識別番号)で識別される同期サーバ10のいずれに該当するかということを意味している。この図4の例では、データIDの左端の数字が「0」である場合には、保存データが自動同期データであることを意味し、当該数字が「1」である場合には、保存データが格納位置データであることを意味している。また、データIDの左から2番目の数字が「1」である場合には、保存データが車上データ同期装置からのデータであることを意味し、当該数字が「2」である場合には、保存データが地上データ同期装置からのデータであることを意味している。また、データIDの左から3番目の数字が「n」である場合(n=1,2,…)には、保存データが、同期サーバ識別番号「n」の同期サーバ10に関するデータであることを意味している。
自動同期データ管理部102は、周辺サーバ同期装置から自動同期データを受け取った場合には、当該自動同期データを該当するデータID(同期サーバ識別番号)に対応させて保存する。一方、自動同期データ管理部102は、データ同期装置1内のアプリケーション11から自動同期データを受け取った場合には、当該自動同期データを、自端末を示すデータID(同期サーバ識別番号)に対応させて保存する。
次に、自動同期データ管理部102に保存される自動同期データの具体例について図5を用いて説明する。この図5には、車上同期サーバ10bからの自動同期データ(データIDが「0.1.1」であるデータ)が示されている。図5に示すように、各同期サーバ識別番号の自動同期データは、バージョン(データID「0.1.1.1」)、更新時刻(データID「0.1.1.2」)、同期サーバ10の基本情報(データID「0.1.1.3」)、アプリケーションから送信された自動同期データ本体(データID「0.1.1.4」)、同期サーバ10またはアプリケーション11の故障情報(データID「0.1.1.5」)などが保存される。バージョン、同期サーバ情報及び故障情報は、同期サーバ10自身により設定される。
自動同期データ管理部102は、アプリケーション11等から自動同期データを受信すると、自動同期データ本体を保存するとともに、更新状態に最終更新時刻を保存する。なお、各同期サーバ識別番号に対応させて保存される自動同期データは、同期サーバ識別番号によらず全て同一の情報でもよいし、同期サーバ識別番号ごとに多少異なる情報であってもよい。
図4に戻って、自動同期データ管理部102は、アプリケーション11等から格納位置データを受け取った場合には、当該格納位置データについても、以上で説明した自動同期データと同様に、該当するデータID番号(同期サーバ識別番号)に対応させて保存する。この際、自動同期データ管理部102は、格納位置データだけでなく、更新状態にある最終更新時刻も保存する。
さらに、自動同期データ管理部102は、Notify通知情報を保存するためのフィールドを有している。Notify通知情報は、同期サーバ10が管理している自動同期データのうち、アプリケーション11から更新通知の要求がされた所定の自動同期データを特定する情報であり、アプリケーション11からの更新通知の要求に応じて自動同期データ管理部102に格納される。
Notify通知情報により特定される所定の自動同期データは、自動同期データ管理部102において更新された場合に、要求元のアプリケーション11に自動的に送信されることになる。具体的には、本実施の形態では、自動同期データ管理部102は、所定の自動同期データを特定するデータリストと、当該アプリケーション11を示す通知先などを、Notify通知情報として保存している。そして、自動同期データ管理部102は、Notify通知情報の保存後に、上述の所定の自動同期データが更新されたことを検出した場合には、同期データ処理部101を経由して、要求元のアプリケーション11に、更新後の所定の自動同期データを送信する。
つまり、本実施の形態では、同期サーバ10は、所定の自動同期データを、周辺データ同期装置から受信した自動同期データにより更新した場合に、更新通知を要求していた要求元のアプリケーション11に更新後の所定の自動同期データを送信する。その結果、後述するように、アプリケーション11は、当該所定の自動同期データを早い時間で利用することが可能となっている。
なお、自動同期データ管理部102に格納されるデータは、XML(eXtensible Markup Language)形式で格納されてもよいし、MySQL(登録商標)やMIB(Management Information Base)などのデータベースを利用してもよい。
図3に戻って、要求転送部103は、アプリケーション11の要求処理部112から内外送信要求または内外取得要求を受信した場合には、受信した内外送信要求または内外取得要求をデータ送受信部104に転送する。
また、要求転送部103は、データ送受信部104を経由して周辺データ同期装置からの外内送信要求または外内取得要求を受信した場合には、データ同期装置1内の複数のアプリケーション11に関する格納位置データを、自動同期データ管理部102から取得して、受信した要求を転送すべき転送先を特定する。本実施の形態では、要求転送部103は、当該取得した格納位置データと、当該受信した外内送信要求または外内取得要求に含まれる転送先の格納位置データとに基づいて、複数のアプリケーション11の中から一のアプリケーション11を特定し、当該特定したアプリケーション11に周辺データ同期装置からの外内送信要求または外内取得要求を転送する。また、本実施の形態では、要求転送部103において、以上の内外取得要求の転送、及び、外内取得要求の転送が行われる際には、オンデマンドデータも転送される。
データ送受信部104は、同期データ処理部101から自動同期データまたは格納位置データを受信した場合には、指定された宛先の周辺同期データ装置に対して、受信した自動同期データまたは格納位置データを送信する。データ送受信部104は、要求転送部103から内外送信要求または内外取得要求を受信した場合には、受信した内外送信要求または内外取得要求を、指定された宛先の周辺同期データ装置に対して送信する。
データ送受信部104は、周辺サーバ同期装置から自動同期データまたは格納位置データを受信した場合には、受信した自動同期データまたは格納位置データを同期データ処理部101に送信する。データ送受信部104は、周辺サーバ同期装置から外内送信要求または外内取得要求を受信した場合には、受信した外内送信要求または外内取得要求を要求転送部103に送信する。
なお、本実施の形態では、データ送受信部104において、以上の内外取得要求の送信、及び、外内取得要求の送信が行われる際には、オンデマンドデータも同じ送信先に送信される。また、データ送受信部104が、周辺データ同期装置に送信するフォーマットは、ASN.1(Abstract Syntax Notation One)形式に基づいてバイナリで送信してもよいし、ASCII形式で送信してもよい。
次に、データ同期装置1のアプリケーション11の構成について詳細に説明する。アプリケーション11は、同期データ設定部111、要求処理部112、要求生成部113、オンデマンドデータ格納位置設定部114、自動同期データ蓄積部115、及び、オンデマンドデータ蓄積部116を備える。
同期データ設定部111は、自動同期データ蓄積部115に格納された自動同期データを取得し、当該自動同期データと、当該自動同期データを格納するための格納要求とを同期データ処理部101に定期的に送信する。同期データ処理部101は、当該格納要求を受けると、同期データ設定部111からの自動同期データを自動同期データ管理部102に格納する。
要求処理部112の処理について、図6を用いて説明する。図6の左上の図に示すように、要求処理部112は、要求生成部113から内外送信要求を受信すると、当該内外送信要求を要求転送部103に送信する。図6の右上の図に示すように、要求処理部112は、要求生成部113から内外取得要求を受信すると、周辺同期データ装置に送信(格納)すべきオンデマンドデータをオンデマンドデータ蓄積部116から取得し、当該オンデマンドデータ及び内外取得要求を要求転送部103に送信する。
また、図6の左下の図に示すように、要求処理部112は、要求転送部103から外内送信要求を受信すると、周辺データ同期装置が取得したいオンデマンドデータをオンデマンドデータ蓄積部116から取得し、当該オンデマンドデータ及び内外取得要求を、要求転送部103等を経由して要求元の周辺データ同期装置に送信する。図6の右下の図に示すように、要求処理部112は、要求転送部103から外内取得要求を受信すると、周辺データ同期装置からのオンデマンドデータをオンデマンドデータ蓄積部116に格納し、周辺データ同期装置に格納したことを知らせるための確認応答を、要求転送部103等を経由して要求元の周辺データ同期装置に送信する。
また、要求処理部112は、要求生成部113から自動同期データ及び格納位置データの取得要求(以下「同期データ等取得要求」と記すこともある)を受信した場合には、当該取得要求を同期データ処理部101に送信する。同期データ処理部101は、当該同期データ等取得要求を受信すると、周辺データ同期装置からの自動同期データ及び格納位置データを自動同期データ管理部102から取得し、当該取得した自動同期データ及び格納位置データを要求処理部112を経由して要求生成部113に送信する。
また、要求処理部112は、要求生成部113からNotify通知情報の登録要求(以下「Notify登録要求」と記すこともある)を受信した場合には、当該登録要求を同期データ処理部101に送信する。同期データ処理部101は、当該Notify登録要求を受信すると、アプリケーション11からのNotify通知情報を自動同期データ管理部102に格納(登録)する。
図3に戻って、要求生成部113は、周辺データ同期装置からの自動同期データ及び格納位置データを自動同期データ管理部102から取得する必要が生じた場合に、同期データ等取得要求を要求処理部112に送信する。本実施の形態では、同期データ等取得要求が、要求生成部113から要求処理部112を経由して同期データ処理部101に定期的に送信される。この送信が行われると、自動同期データ管理部102に管理されている、周辺データ同期装置からの自動同期データ及び格納位置データが、同期データ処理部101から要求処理部112を経由して要求生成部113に定期的に送信される。
また、要求生成部113は、当該周辺データ同期装置からの格納位置データに基づいて、周辺データ同期装置に送信すべき内外送信要求または内外取得要求を要求処理部112に必要に応じて送信する。
また、要求生成部113は、所定の自動同期データについて更新通知を要求するために、自動同期データ管理部102にNotify登録要求を、要求処理部112に送信する。また、要求生成部113は、自身が行った要求に対する応答を要求処理部112から受信する。
オンデマンドデータ格納位置設定部114は、アプリケーション11が保有するオンデマンドデータの格納位置データ(オンデマンドデータに関する情報)を、オンデマンドデータ蓄積部116から取得する。そして、オンデマンドデータ格納位置設定部114は、当該格納位置データと、当該格納位置データを格納するための格納要求を同期データ処理部101に定期的に送信する。同期データ処理部101は、当該格納要求を受けると、オンデマンドデータ格納位置設定部114からの格納位置データを自動同期データ管理部102に格納する。
自動同期データ蓄積部115は、端末のセンサや端末に接続される外部装置により検出される位置や速度、乗客情報、故障情報などのリアルタイム情報を、自動同期データとして定期的に蓄積していく。
オンデマンドデータ蓄積部116は、端末のログや更新プログラム、画面データなどの非リアルタイム情報をオンデマンドデータとして蓄積する。本実施の形態において、オンデマンドデータ蓄積部116は、オンデマンドデータ本体に加えて、その最終更新時刻も蓄積していく。
なお、本実施の形態において、自動同期データ蓄積部115やオンデマンドデータ蓄積部116に蓄積されるデータは、アプリケーション11ごとに異なるものとする。
次に、以上の構成からなる地上データ同期装置1aと車上データ同期装置1bとの間における自動同期データの送受信について、図7を用いて詳細に説明する。なお、この図7においては、1個の地上同期サーバ10a、N個の地上アプリケーション11a、1個の車上同期サーバ10b、及び、N個の車上アプリケーション11bが存在しており、これらは、上述した接続関係で接続されている。
図7においては、以下の手順(1)〜(5)により、車上同期サーバ10bから地上同期サーバ10aへの自動同期データの送信等を行う。これにより、地上同期サーバ10a、車上同期サーバ10b、地上アプリケーション11a及び車上アプリケーション11bにおける自動同期データの共有が実現されている。
(1)各車上アプリケーション11bは、保有する自動同期データを車上同期サーバ10bに定期的に送信する。
(2)車上同期サーバ10bは、複数の車上アプリケーション11bからの複数の自動同期データを自身の自動同期データ管理部102に保存し、管理する。
(3)車上同期サーバ10bは、管理している自動同期データを地上同期サーバ10aに定期的に送信する。
(4)地上同期サーバ10aは、車上同期サーバ10bからの自動同期データを自身の自動同期データ管理部102に保存する。
(5)地上同期サーバ10aは、地上アプリケーション11aから同期データ等取得要求を受信した場合に、自身が保存している、車上同期サーバ10bからの自動同期データを要求元の地上アプリケーション11aに送信する。そして、当該地上アプリケーション11aは、地上同期サーバ10aからの自動同期データを取得(格納)する。
以上のような処理を定期的に実施することにより、自動同期データ(リアルタイム性の高い情報)が、地上同期サーバ10a及び車上同期サーバ10b同士の間において自動的かつ定期的に同期される。なお、図7においては、自動同期データが、車上同期サーバ10bから地上同期サーバ10aに送信される場合を示したが、自動同期データの流れが逆、つまり、自動同期データが地上同期サーバ10aから車上同期サーバ10bに送信される場合も同様に実施される。
次に、オンデマンドデータの送受信処理について、図8及び図9を用いて詳細に説明する。なお、これら図8及び図9においても、図7と同様に、1個の地上同期サーバ10a、N個の地上アプリケーション11a、1個の車上同期サーバ10b、及び、N個の車上アプリケーション11bが存在しており、これらは、上述の接続関係で接続されている。
ここでは、図8及び図9においてはいずれも、上述と同様の以下の手順(1)〜(5)を行うことにより、車上同期サーバ10bから地上同期サーバ10aへの格納位置データの送信等が行われる。
(1)各車上アプリケーション11bは、保有する格納位置データ及び最終更新時刻を、データが更新されるごとに車上同期サーバ10bに送信する。
(2)車上同期サーバ10bは、複数の車上アプリケーション11bからの複数の格納位置データを自身の自動同期データ管理部102に保存し、管理する。
(3)車上同期サーバ10bは、管理している格納位置データを、自動同期データの送信と合わせて地上同期サーバ10aに定期的に送信する。
(4)地上同期サーバ10aは、車上同期サーバ10bからの格納位置データを自身の自動同期データ管理部102に保存する。
(5)地上同期サーバ10aは、地上アプリケーション11aから同期データ等取得要求を受信した場合に、自身が保存している、車上同期サーバ10bからの格納位置データを要求元の地上アプリケーション11aに送信する。そして、当該地上アプリケーション11aは、地上同期サーバ10aからの格納位置データを取得(格納)する。
次に、これら(1)〜(5)の手順が行われた後の手順を、同図8及び同図9を用いて説明する。図8では、地上アプリケーション11aが、車上アプリケーション11bが保有しているオンデマンドデータを取得する手順を示している。
(6)地上アプリケーション11aは、車上データ同期装置1bからの格納位置データ等に基づいて、自身が取得したいオンデマンドデータが存在するかを判断する。そして、地上アプリケーション11aは、当該オンデマンドデータが存在すると判断した場合には、当該オンデマンドデータを保有している車上アプリケーション11bに送信すべき内外送信要求を、地上同期サーバ10aに送信する(図6の左上の状態)。
(7)地上アプリケーション11aから送信された内外送信要求は、地上同期サーバ10aを経由して車上同期サーバ10bに送信される。ここで、(7)で送信された内外送信要求は、受信側の車上データ同期装置1bからみれば外内送信要求に相当するため、これより以降、上述の内外送信要求を外内送信要求に置き換えて説明する。
(8)車上同期サーバ10bは、受信した外内送信要求に含まれる格納位置データと、複数の車上アプリケーション11bに関する格納位置データとに基づいて、地上アプリケーション11aが取得したいオンデマンドデータを保有する一の車上アプリケーション11bを特定する。
(9)車上同期サーバ10bは、特定した車上アプリケーション11bに、外内送信要求を転送する。車上アプリケーション11bは、外内送信要求を受信すると(図6の左下の状態の場合)、保有するオンデマンドデータと内外取得要求とを車上同期サーバ10bに送信する。
(10)車上アプリケーション11bから送信されたオンデマンドデータ及び内外取得要求は、車上同期サーバ10bを経由して地上同期サーバ10aに送信される。ここで、(10)で送信された内外取得要求は、受信側の地上データ同期装置1aからみれば外内取得要求に相当するため、これより以降、上述の内外取得要求を外内取得要求に置き換えて説明する。
(11)地上同期サーバ10aは、受信した外内取得要求に含まれる格納位置データと、複数の地上アプリケーション11aに関する格納位置データとに基づいて、要求元の一の地上アプリケーション11aを特定する。なお、(6)の手順を行う際に、内外送信要求を要求した要求元の地上アプリケーション11aの格納位置データを記憶するようにすれば、(11)の手順を行わなくても、当該格納位置データに基づいて、当該要求元の地上アプリケーション11aを特定することが可能である。
(12)地上同期サーバ10aは、特定した地上アプリケーション11aに、外内取得要求及びオンデマンドデータを転送する。地上アプリケーション11aは、外内取得要求を受信すると(図6の右下の状態の場合)、それとともに転送されたオンデマンドデータを取得(格納)する。
次に図9を用いて、地上アプリケーション11aが、車上アプリケーション11bにオンデマンドデータを送信(格納)する手順について説明する。
(6)地上アプリケーション11aは、車上データ同期装置1bからの格納位置データ等に基づいて、自身が保有しているオンデマンドデータのうち、車上アプリケーション11bに送信(格納)すべきオンデマンドデータが存在するかを判断する。そして、地上アプリケーション11aは、当該オンデマンドデータが存在すると判断した場合には、当該車上アプリケーション11bに送信すべき内外取得要求及びオンデマンドデータを、地上同期サーバ10aに送信する(図6の右上の状態)。
(7)地上アプリケーション11aから送信された内外取得要求及びオンデマンドデータは、地上同期サーバ10aを経由して車上同期サーバ10bに送信される。ここで、(7)で送信された内外取得要求は、受信側の車上データ同期装置1bからみれば外内取得要求に相当するため、これより以降、上述の内外取得要求を外内取得要求に置き換えて説明する。
(8)車上同期サーバ10bは、受信した外内取得要求に含まれる格納位置データと、複数の車上アプリケーション11bに関する格納位置データとに基づいて、オンデマンドデータを送信(格納)すべき一の車上アプリケーション11bを特定する。
(9)車上同期サーバ10bは、特定した車上アプリケーション11bに、外内取得要求及びオンデマンドデータを転送する。車上アプリケーション11bは、外内取得要求を受信すると(図6の右下の状態の場合)、それとともに転送されたオンデマンドデータを取得(格納)し、確認応答を車上同期サーバ10bに送信する。
(10)車上アプリケーション11bから送信された確認応答は、車上同期サーバ10b及び地上同期サーバ10aを経由して送信元の地上アプリケーション11aに送信され、当該送信元の地上アプリケーション11aは、当該確認応答を取得する。
以上のような処理を実施することにより、オンデマンドデータ(リアルタイム性の低い情報)が、アプリケーション11同士の間で必要に応じて送受信される。したがって、同期サーバ10とアプリケーション11との間において、不要なオンデマンドデータの送受信を回避することができることから、データ同期装置1内での通信の効率化を実現することができる。なお、図8及び図9においては、地上アプリケーション11aが内外送信要求または内外取得要求を送信することをトリガーとした手順について説明したが、車上アプリケーション11bが内外送信要求または内外取得要求を送信することをトリガーとした手順についても同様である。
次に、データ同期装置1における主要な構成要素の動作について、図10〜図16を用いて説明する。
図10は、本実施の形態に係る同期サーバ10の同期データ処理部101の動作を示すフローチャートである。
まず、同期サーバ10が起動されると(ステップS101)、同期データ処理部101は、待機しながら、内部タイマで測定さている時間に基づいて、現時点が、周辺データ同期装置に自動同期データ等を送信すべき送信タイミングか否かを判断する(ステップS102)。
ステップS102にて、現時点が送信タイミングであると判断した場合、同期データ処理部101は、自動同期データ管理部102から、自端末の自動同期データ及び格納位置データを取得する(ステップS103)。なお、以下の説明において、一緒に取り扱われる自動同期データ及び格納位置データを、「同期インデックス」と記すこともある。ステップS103の後、同期データ処理部101は、取得した同期インデックスをデータ送受信部104に送信し、周辺データ同期装置に対して送信する(ステップS104)。その後、ステップS102に戻る。
一方、ステップS102にて、現時点が送信タイミングでないと判断した場合、同期データ処理部101は、アプリケーション11、及び、データ送受信部104のいずれかからデータまたは要求を受信したかを判断する(ステップS105)。
ステップS105にて、アプリケーション11からデータまたは要求を受信したと判断した場合、同期データ処理部101は、同期データ設定部111、要求処理部112及びオンデマンドデータ格納位置設定部114のいずれからデータまたは要求を受信したかを判断する(ステップS106)。
ステップS106にて、オンデマンドデータ格納位置設定部114から格納位置データ及び格納要求を受けたと判断した場合、同期データ処理部101は、オンデマンドデータ格納位置設定部114からの格納位置データを、自端末の同期サーバ識別番号に対応させて自動同期データ管理部102に格納する(ステップS107)。その後、ステップS102に戻る。
ステップS106にて、同期データ設定部111から自動同期データ及び格納要求を受けたと判断した場合、同期データ処理部101は、同期データ設定部111からの自動同期データを、自端末の同期サーバ識別番号に対応させて自動同期データ管理部102に格納する(ステップS108)。その後、ステップS102に戻る。
ステップS106にて、要求処理部112から要求を受けたと判断した場合、同期データ処理部101は、要求処理部112から同期データ等取得要求及びNotify登録要求のいずれを受信したのかを判断する(ステップS109)。
ステップS109にて、要求処理部112から同期データ等取得要求を受信したと判断した場合、同期データ処理部101は、取得要求された自動同期データ及び格納位置データ(同期インデックス)を自動同期データ管理部102から取得し、要求処理部112を経由して要求生成部113に送信する(ステップS110)。その後、ステップS102に戻る。
ステップS109にて、要求処理部112からNotify登録要求を受信したと判断した場合、同期データ処理部101は、登録要求された所定の自動同期データと、要求元のアプリケーション11とを識別するための識別子などをNotify通知情報として自動同期データ管理部102に登録する(ステップS111)。その後、ステップS102に戻る。
上述のステップS105にて、データ送受信部104から自動同期データ及び格納位置データ(同期インデックス)を受信したと判断した場合、同期データ処理部101は、受信した自動同期データ及び格納位置データ(同期インデックス)を、送信元の同期サーバ識別番号に対応させて自動同期データ管理部102に保存する(ステップS112)。その後、ステップS102に戻る。
以上説明したステップS102〜S112の処理は、同期データ処理部101における、送信タイミングごとに、若しくは、アプリケーション11、または、データ送受信部104からの受信ごとに繰り返し実行される。
ここで、Notify通知情報が特定する所定の自動同期データの更新が行われる様子について、図11を用いて説明する。
地上同期サーバ10aと車上同期サーバ10bとの間で、同期インデックスが交換された場合、地上アプリケーション11aは当該同期インデックスを取得する。このとき、地上アプリケーション11aが、地上同期サーバ10aにおいて更新されるごとに自動的に送信してほしい所定の自動同期データが存在すると判断した場合に、地上同期サーバ10aにNotify登録要求を送信する。これにより、地上同期サーバ10aに、Notify通知情報が登録(格納)される。
その後、地上同期サーバ10aは、自身で管理している自動同期データが、周辺データ同期装置から受信した自動同期データにより更新された場合に、Notify通知情報が特定する所定の自動同期データが更新されたかを確認する。地上同期サーバ10aは、所定の自動同期データが更新されていることを確認した場合に、更新した所定の自動同期データを要求元の地上アプリケーション11aに送信する。
なお、ここでは登録のみの例について説明したが、登録と同様に解除することも想定している。また、ここでは地上同期サーバ10a側でのNotify登録要求の処理について説明したが、車上同期サーバ10b側でのNotify登録要求の処理も同様である。
図12は、本実施の形態に係る同期サーバ10の要求転送部103の動作を示すフローチャートである。
まず、プログラムが起動されると(ステップS201)、要求転送部103は、待機しながら、要求処理部112及びデータ送受信部104のいずれかからデータまたは要求を受信したかを判断する(ステップS202)。
ステップS202にて、データ送受信部104から外内送信要求、若しくは、外内取得要求及びオンデマンドデータを受信したと判断した場合、要求転送部103は、自動同期データ管理部102から、データ同期装置1内の複数のアプリケーション11に関する格納位置データを取得する。そして、要求転送部103は、当該格納位置データを参照して、外内送信要求、若しくは、外内取得要求及びオンデマンドデータの転送先とすべき一のアプリケーション11を特定する(ステップS203)。なお、上述したように、内外送信要求を要求した要求元のアプリケーション11の格納位置データを、その要求の送信時に記憶していれば、当該格納位置データに基づいて、外内取得要求等を転送すべきアプリケーション11を特定することが可能である。
ステップS203の後、要求転送部103は、外内送信要求、若しくは、外内取得要求及びオンデマンドデータを、転送先のアプリケーション11の要求処理部112に転送する(ステップS204)。その後、ステップS202に戻る。
上述のステップS202にて、要求処理部112から内外送信要求、若しくは、内外取得要求及びオンデマンドデータを受信したと判断した場合、要求転送部103は、内外送信要求、及び、内外取得要求のいずれを受信したかを判断する(ステップS205)。
ステップS205にて、内外送信要求を受信したと判断した場合、要求転送部103は、要求生成元(ここでは要求生成部113)により指定された宛先の周辺同期サーバに送信すべき内外送信要求を、データ送受信部104に転送する(ステップS206)。なお、周辺同期サーバとは、周辺データ同期装置の同期サーバを意味する。その後、ステップS202に戻る。
ステップS205にて、内外取得要求を受信したと判断した場合、要求転送部103は、要求生成元(ここでは要求生成部113)により指定された宛先の周辺同期サーバに送信すべき内外取得要求及びオンデマンドデータを、データ送受信部104に転送する(ステップS207)。その後、ステップS202に戻る。
以上説明したステップS202〜S207の処理は、要求転送部103における、要求処理部112、または、データ送受信部104からの受信ごとに繰り返し実行される。
図13は、本実施の形態に係る同期サーバ10のデータ送受信部104の動作を示すフローチャートである。
まず、プログラムが起動されると(ステップS301)、データ送受信部104は、待機しながら、データ同期装置1内部及び周辺データ同期装置のいずれかからデータまたは要求を受信したかを判断する(ステップS302)。
ステップS302にて、データ同期装置1内部からデータまたは要求を受信したと判断した場合、データ送受信部104は、受信したデータまたは要求を、指定された宛先の周辺同期サーバに送信する(ステップS303)。その後、ステップS302に戻る。
ステップS303にて、周辺データ同期装置からデータまたは要求を受信したと判断した場合、データ送受信部104は、同期インデックス、外内送信要求、外内取得要求、及び、オンデマンドデータのいずれを受信したかを判断する(ステップS304)。
ステップS304にて、同期インデックスを受信したと判断した場合、データ送受信部104は、受信した同期インデックスを同期データ処理部101に送信する(ステップS305)。その後、ステップS302に戻る。
ステップS304にて、外内送信要求、外内取得要求、または、オンデマンドデータを受信したと判断した場合、データ送受信部104は、受信した外内送信要求、外内取得要求、または、オンデマンドデータを要求転送部103に送信する(ステップS306)。その後、ステップS302に戻る。
以上説明したステップS302〜S306の処理は、データ送受信部104における、データ同期装置1内部または周辺データ同期装置からの受信ごとに繰り返し実行される。
図14は、本実施の形態に係るアプリケーション11の同期データ設定部111の動作を示すフローチャートである。
まず、プログラムが起動されると(ステップS401)、同期データ設定部111は、待機しながら、内部タイマで測定されている時間に基づいて、現時点が、同期サーバ10に自動同期データを送信すべき送信タイミングか否かを判断する(ステップS402)。
ステップS402にて、現時点が送信タイミングでないと判断した場合、ステップS402の処理を維持する。ステップS402にて、現時点が送信タイミングであると判断した場合、同期データ設定部111は、自動同期データ蓄積部115から自動同期データを取得する(ステップS403)。
ステップS403の後、同期データ設定部111は、格納要求と取得した自動同期データとを同期データ処理部101に送信する(ステップS404)。
以上説明したステップS402〜S404の処理は、同期データ設定部111における送信タイミングごとに繰り返し実行される。
図15は、本実施の形態に係るアプリケーション11の要求生成部113の動作を示すフローチャートである。
まず、プログラムが起動されると(ステップS501)、要求生成部113は、待機しながら、内部タイマで測定さている時間に基づいて、現時点が、自動同期データ管理部102から同期インデックスを取得すべき取得タイミングか否かを判断する(ステップS502)。それとともに、要求生成部113は、待機しながら、要求処理部112からデータまたは通知を受信したかを判断する(同ステップS502)。
ステップS502にて、現時点が取得タイミングであると判断した場合、要求生成部113は、同期サーバ10に管理されている周辺データ同期装置からの同期インデックスを取得すべく、同期データ等取得要求を要求処理部112に送信する(ステップS503)。その後、ステップS502に戻る。
ステップS502にて、要求処理部112からデータまたは通知を受信したと判断した場合、要求生成部113は、要求処理部112から、要求完了通知(例えば上述の確認応答)及び同期インデックスのいずれを受信したかを判断する(ステップS504)。
ステップS504にて、要求完了通知を受信したと判断した場合、要求生成部113は、送信要求及び取得要求のシーケンスが完了したと判断する(ステップS505)。その後、ステップS502に戻る。
ステップS504にて、同期インデックスを受信したと判断した場合、要求生成部113は、要求処理部112からの同期インデックスに基づいて、内外送信要求または内外取得要求が必要なオンデマンドデータが存在しているか、つまり、内外送信要求または内外取得要求の送信が必要であるかを判断する(ステップS506)。
ステップS506にて、内外送信要求または内外取得要求の送信が必要であると判断した場合、要求生成部113は、同期インデックスの格納位置データが示す周辺アプリケーションに対して送信すべき内外送信要求または内外取得要求を、要求処理部112に送信する(ステップS507)。なお、周辺アプリケーションとは、周辺データ同期装置のアプリケーションを意味する。その後、ステップS502に戻る。
ステップS506にて、内外送信要求または内外取得要求の送信が不要であると判断した場合、ステップS502に戻る。
以上説明したステップS502〜S507の処理は、要求生成部113における取得タイミングごと、または、要求処理部112からの受信ごとに繰り返し実行される。
図16は、本実施の形態に係るアプリケーション11の要求処理部112の動作を示すフローチャートである。
まず、プログラムが起動されると(ステップS601)、要求処理部112は、待機しながら、要求転送部103、要求生成部113及び同期データ処理部101のいずれかからデータまたは要求を受信したかを判断する(ステップS602)。
ステップS602にて、要求生成部113から要求を受信したと判断した場合、要求処理部112は、要求生成部113から内外送信要求及び内外取得要求のいずれを受信したかを判断する(ステップS603)。
ステップS603にて、要求生成部113から内外送信要求を受信したと判断した場合、図6の左上に示したように、要求処理部112は、要求生成部113により指定された宛先の周辺アプリケーションに対して送信すべき内外送信要求を、要求転送部103に送信する(ステップS604)。その後、ステップS602に戻る。
ステップS603にて、要求生成部113から内外取得要求を受信したと判断した場合、図6の右上に示したように、要求処理部112は、要求生成部113により指定された宛先の周辺アプリケーションに送信(格納)したいオンデマンドデータをオンデマンドデータ蓄積部116から取得する(ステップS605)。そして、要求処理部112は、当該周辺アプリケーションに対して送信すべき内外取得要求及び取得したオンデマンドデータを、要求転送部103に送信する(ステップS606)。その後、ステップS602に戻る。
ステップS602にて、要求転送部103からデータまたは要求を受信したと判断した場合、要求処理部112は、要求転送部103から外内送信要求、若しくは、外内取得要求及びオンデマンドデータを受信したかを判断する(ステップS607)。
ステップS607にて、要求転送部103から外内送信要求を受信したと判断した場合、図6の左下に示したように、要求処理部112は、受信した外内送信要求で指定されるオンデマンドデータをオンデマンドデータ蓄積部116から取得する(ステップS608)。そして、要求処理部112は、要求元の周辺アプリケーションに対して送信すべき内外取得要求及び取得したオンデマンドデータを、要求転送部103に送信する(ステップS609)。その後、ステップS602に戻る。
ステップS607にて、要求転送部103から外内取得要求及びオンデマンドデータを受信したと判断した場合、図6の右下に示したように、要求処理部112は、受信したオンデマンドデータをオンデマンドデータ蓄積部116に格納する(ステップS610)。本実施の形態では、この動作が行われる際に、要求処理部112は、当該オンデマンドデータを送信した周辺アプリケーションに対して送信すべき確認応答を、要求転送部103に送信する。その後、ステップS602に戻る。
上述のステップS602にて、同期データ処理部101から同期インデックスを受信したと判断した場合、要求処理部112は、受信した同期インデックスを要求生成部113に送信する(ステップS611)。その後、ステップS602に戻る。
以上説明したステップS602〜S611の処理は、要求処理部112における、要求転送部103、要求生成部113または同期データ処理部101からの受信ごとに繰り返し実行される。
以上のような実施の形態に係るデータ同期装置、及び、そのデータ同期方法によれば、同期サーバ10が、自動同期データを、周辺データ同期装置と定期的に送受信し、アプリケーション11が、オンデマンドデータを、同期サーバ10を経由して周辺データ同期装置と必要に応じて送受信する。したがって、同期サーバ10とアプリケーション11との間において、不要なオンデマンドデータの送受信を回避することができる。つまり、データ同期装置1内での余分な通信の発生を抑制することができることから、データ同期装置1内での通信の効率化を実現することができる。また、これにより、同期サーバ10及びアプリケーション11の処理負荷を軽減することができる。
また、本実施の形態によれば、同期サーバ10で自動同期データを一括管理し、周辺データ同期装置との間で自動同期データを定期的に送受信する。したがって、データ同期装置同士の間でデータが重複して送受信されるのを抑制することができることから、データ同期装置1と周辺データ同期装置との間における通信ネットワークの利用効率を向上させることができる。また、同期サーバ10が自動的にデータを更新するため、アプリケーション11に対して通信が隠蔽され、アプリケーション11は同期サーバ10から最新のデータを取得することが可能になる。
また、本実施の形態によれば、同期サーバ10は、格納位置データに基づいて一のアプリケーション11を特定し、当該特定したアプリケーション11に、周辺データ同期装置からの外内送信要求または外内取得要求を転送する。したがって、オンデマンドデータの送受信を行う際に、要求先(例えば周辺アプリケーション)の管理を抑制することができることから、当該要求先の処理負荷を軽減することができる。
また、本実施の形態によれば、同期サーバ10は、自身が管理している自動同期データのうち所定の自動同期データを、周辺データ同期装置から受信した自動同期データにより更新した場合に、当該更新した所定の自動同期データを一のアプリケーションに送信する。したがって、アプリケーション11が、所定の自動同期データをその更新ごとに取得する構成において、データの更新状態を管理したり、自動同期データを送信させるのにいちいち送信要求を同期サーバ10に送信したりしなくて済む。よって、アプリケーション11が、最新の所定の自動同期データを取得するのに必要な動作を省くことができることから、アプリケーション11は、最新の所定の自動同期データを短い遅延時間で取得することができる。その結果、アプリケーション11は、当該所定の自動同期データを早い時間で利用することができる。
また、本実施の形態によれば、自動同期データは、オンデマンドデータに優先してリアルタイムに送受信される。したがって、自動同期データの遅延を抑制することができる。
なお、以上の本実施の形態の説明では、同期サーバ10から周辺データ同期装置に対してデータを送信する送信形態は特に指定していないが、送信対象の周辺データ同期装置に対してブロードキャストで送信してもよい。また、地上同期サーバ10aに対してのみマルチキャストで送信してもよいし、車上同期サーバ10bに対してのみマルチキャストで送信してもよいし、個別の同期サーバ10を指定するユニキャストで送信してもよい。
また、以上の本実施の形態の説明において、同期サーバ10やアプリケーション11が宛先や送信元(要求元)を判断する方法としては、受信データの中身から判断してもよいし、宛先アドレスから判断してもよいし、データのヘッダに識別子を付与して判断してもよい。
また、以上の本実施の形態の説明では、自動同期データの送信タイミング及び取得タイミングは、内部タイマの時間をトリガーとしている。しかしこれに限ったものではなく、データが更新されたか否かを検出し、データが更新されたということを検出したことをトリガーとして、データを送信してもよい。また、要求の生成タイミングは、所定のタイミングをトリガーとしているが、定期的に要求を生成してもよいし、同期インデックスを取得後に最終更新時間に基づいて判断した上で、生成してもよい。
また、以上の本実施の形態の説明では、自動同期データとオンデマンドデータの2種類に分類しているが、自動同期データを複数種類に分類し、自動同期を実施する頻度や同期周期を異なる値に設定して、自動同期データの自動同期を実施してもよい。
<実施の形態2>
本発明の実施の形態2について、図17及び図18を用いて説明する。なお、実施の形態1と同一または類似する部位には同一の符号を付与し、重複する詳細な説明は省略する。
図17は、本実施の形態に係るデータ同期装置1の構成を示すブロック図である。本実施の形態に係るデータ同期装置1は、実施の形態1に係るデータ同期装置1と同じ機能を有している。
図17に示すように、本実施の形態に係るデータ同期装置1は、同期サーバ10と、アプリケーション11とを備えている。
同期サーバ10は、自動同期データ管理部102、データ送受信部104、Webサーバ105及びHTTPクライアント106を備えている。つまり、本実施の形態に係る同期サーバ10は、同期データ処理部101及び要求転送部103に代えて、Webサーバ105及びHTTPクライアント106を備える点が、実施の形態1に係る同期サーバ10と異なる。
アプリケーション11は、要求生成部113、自動同期データ蓄積部115、オンデマンドデータ蓄積部116、HTTPクライアント117及びWebサーバ118を備えている。つまり、本実施の形態に係るアプリケーション11は、同期データ設定部111、要求処理部112及びオンデマンドデータ格納位置設定部114に代えて、HTTPクライアント117及びWebサーバ118を備える点が、実施の形態1にかかるアプリケーション11と異なる。
HTTPクライアント106,117は、HTTP(Hyper Text Transfer Protocol)が提供するメソッドを用いて、それぞれWebサーバ118,105に、上述の送信要求または取得要求を送信することに相当するデータ送信またはデータ取得を要求する。
Webサーバ105,118は、HTTPクライアント117,106からのデータ送信要求またはデータ取得要求を処理して、送信元のHTTPクライアントに対して応答を返す。ここで、Webサーバ105は、周辺同期サーバからの要求をアプリケーション11に転送するためのリバースプロキシ機能を有している。また、Webサーバ118は、アプリケーション11からの要求を周辺同期サーバに送信するためのプロキシ機能を有している。
また、本実施の形態に係るオンデマンドデータの格納位置データは、オンデマンドデータのURI(Uniform Resource Identifier)である。このURIは、「http://」で始まるアドレスで表され、IPアドレスとデータ名を指定して相手方にアクセスすることができるものである。
そして、本実施の形態に係るデータ同期装置1における各データの送受信は、図18に示すように、HTTPメソッドを用いて、HTTPクライアント106,117及びWebサーバ105,118がそれぞれ処理する。
例えば、アプリケーション11が同期サーバ10に自動同期データを格納(登録)する処理は、HTTPクライアント117がWebサーバ105に対する「HTTP POST」メソッドを用いることにより実現する。アプリケーション11が同期サーバ10から自動同期データを取得する処理は、HTTPクライアント117がWebサーバ105に対する「HTTP GET」メソッドを用いることにより実現する。
同期サーバ10が周辺同期サーバに自動同期データを送信する処理は、HTTPクライアント106が「HTTP POST」メソッドを用いて送信処理を行うことにより実現する。同期サーバ10が周辺同期サーバからの自動同期データを受信する処理は、Webサーバ105が「HTTP POST」メソッドを用いて受信処理を行うことにより実現する。
アプリケーション11から同期サーバ10に対するNotify登録要求は、HTTPクライアント117がWebサーバ105に対する「HTTP POST」メソッドを用いることにより実現する。同期サーバ10からアプリケーション11に対する更新した所定の自動同期データの送信は、HTTPクライアント106がWebサーバ118に対する「HTTP POST」メソッドを用いることにより実現する。
アプリケーション11が同期サーバ10に格納位置データを格納(登録)する処理は、HTTPクライアント117がWebサーバ105に対する「HTTP POST」メソッドを用いることにより実現する。
データ同期装置1が周辺データ同期装置に内外取得要求を送信する処理は、HTTPクライアント117がWebサーバ105に対する「HTTP POST」メソッドを用いるとともに、Webサーバ105が「HTTP POST」メソッドを周辺同期サーバに転送することにより実現する。データ同期装置1が周辺データ同期装置に内外送信要求を送信する処理は、HTTPクライアント117がWebサーバ105に対する「HTTP GET」メソッドを用いるとともに、Webサーバ105が「HTTP GET」メソッドを周辺同期サーバに転送することにより実現する。なお、この際、Webサーバ105はプロキシとして動作し、送信元のアプリケーション11を周辺同期サーバ(周辺データ同期装置)に対して隠蔽する。
一方、データ同期装置1が周辺データ同期装置から外内取得要求を受信した場合、つまり周辺同期サーバから「HTTP POST」メソッドを受信した場合には、Webサーバ105が当該「HTTP POST」メソッドを受信する。この場合、Webサーバ105が、リバースプロキシ機能により、宛先のアプリケーション11のWebサーバ118に対して「HTTP POST」メソッドを転送する。また、データ同期装置1が周辺データ同期装置から外内送信要求を受信した場合、つまり周辺同期サーバから「HTTP GET」メソッドを受信した場合には、Webサーバ105が当該「HTTP GET」メソッドを受信する。この場合、Webサーバ105が、リバースプロキシ機能により、宛先のアプリケーション11のWebサーバ118に対して「HTTP GET」メソッドを転送する。
以上のような実施の形態に係るデータ同期装置、及び、そのデータ同期方法によれば、既存のHTTPクライアント及びWebサーバを利用して、上述の自動同期を実現することができる。したがって、上述のデータの自動同期を既存の装置上で実現することができる。
なお、以上の説明では、HTTPのPOSTメソッドとGETメソッドとを用いて説明したが、これに限ったものではない。例えば、PUTメソッドを用いてデータを送信(格納)したり、DELETEメソッドを用いて削除したりしてもよい。
また、以上の説明では、HTTPを用いて自動同期を行う構成について説明したが、これに限ったものではなく、HTTP以外の通信プロトコルとして、SNMP(Simple Network Management Protocol)を用いて自動同期を行う構成であってもよい。