(57)【要約】【課題】変更されたデータの配信の遅延を防止する。【解決手段】データ配信サーバ１０は、データベースサーバ３０のマスターテーブルにおけるレコードを、いずれかのクライアント端末２０から送信された端末テーブルにおける対応するレコードで更新するとともに、レコードを更新した更新日時をレコード識別子と対応付けて更新テーブルに書き込む。データ配信サーバ１０は、いずれかのクライアント端末２０から取得日時を示すデータ配信要求が送信されると、取得日時よりも後の更新日時と対応付られたレコード識別子を取得する。データ配信サーバ１０は、取得されたレコード識別子が示すマスターテーブルにおけるレコードをデータ配信要求の送信元のクライアント端末２０に配信する。【選択図】図１
2020086688.tif 000002
【特許請求の範囲】
【請求項１】
マスターテーブルにおけるレコードのうち、複数のクライアント端末のうちのいずれかのクライアント端末から送信された端末テーブルにおける対応するレコードと差異がある差異レコードを特定する特定部と、
前記特定部によって特定された前記マスターテーブルにおける前記差異レコードを前記端末テーブルにおける対応するレコードで更新するとともに、前記差異レコードを更新した更新日時を前記差異レコードのレコード識別子と対応付けて更新テーブルに書き込むデータ更新部と、
前記複数のクライアント端末のうちのいずれかのクライアント端末から取得日時を示すデータ配信要求が送信されると、前記データ配信要求が示す取得日時よりも後の前記更新日時と対応付けられた前記レコード識別子を前記更新テーブルから取得する識別子取得部と、
前記識別子取得部によって取得された前記レコード識別子が示す前記マスターテーブルにおけるレコードを取得して、前記データ配信要求の送信元のクライアント端末に配信するデータ配信部と
を備えるデータ配信装置。
【請求項２】
非対象カラムを示すカラム識別子が指定されており、
前記特定部は、前記マスターテーブルにおけるレコードのうち、前記端末テーブルにおける対応するレコードと、指定された前記カラム識別子が示す前記非対象カラム以外のカラムのデータに差異があるレコードを前記差異レコードとして特定する
請求項１に記載のデータ配信装置。
【請求項３】
前記特定部は、前記非対象カラム以外のカラムのうち、データに差異がある差異カラムを特定し、
前記データ更新部は、前記更新日時を前記差異レコードのレコード識別子及び前記差異カラムのカラム識別子と対応付けて更新テーブルに書き込み、
前記識別子取得部は、前記取得日時よりも後の前記更新日時と対応付けられた前記レコード識別子及び前記カラム識別子を取得し、
前記データ配信部は、前記識別子取得部によって取得された前記レコード識別子が示す前記マスターテーブルにおけるレコードにおける、前記識別子取得部によって取得された前記カラム識別子が示すカラムのデータを取得して、前記データ配信要求の送信元のクライアント端末に配信する
請求項２に記載のデータ配信装置。
【請求項４】
前記特定部は、前記マスターテーブルにおけるレコードのうち前記非対象カラム以外のカラムのデータのハッシュ値と、端末テーブルにおける対応するレコードのうち前記非対象カラム以外のカラムのデータのハッシュ値とを比較して、前記マスターテーブルにおけるレコードのうち、前記端末テーブルにおける対応するレコードと、前記非対象カラム以外のカラムのデータに差異があるレコードを特定する
請求項２又は３に記載のデータ配信装置。
【請求項５】
データ配信装置における特定部が、マスターテーブルにおけるレコードのうち、複数のクライアント端末のうちのいずれかのクライアント端末から送信された端末テーブルにおける対応するレコードと差異がある差異レコードを特定し、
前記データ配信装置におけるデータ更新部が、前記マスターテーブルにおける前記差異レコードを前記端末テーブルにおける対応するレコードで更新するとともに、前記差異レコードを更新した更新日時を前記差異レコードのレコード識別子と対応付けて更新テーブルに書き込み、
前記データ更新部における識別子取得部が、前記複数のクライアント端末のうちのいずれかのクライアント端末から取得日時を示すデータ配信要求が送信されると、前記データ配信要求が示す取得日時よりも後の前記更新日時と対応付られた前記レコード識別子を取得し、
前記識別子取得部におけるデータ配信部が、取得された前記レコード識別子が示す前記マスターテーブルにおけるレコードを取得して、前記データ配信要求の送信元のクライアント端末に配信するデータ配信方法。
【請求項６】
特定部が、マスターテーブルにおけるレコードのうち、複数のクライアント端末のうちのいずれかのクライアント端末から送信された端末テーブルにおける対応するレコードと差異がある差異レコードを特定する比較処理と、
データ更新部が、前記比較処理によって特定された前記マスターテーブルにおける前記差異レコードを前記端末テーブルにおける対応するレコードで更新するとともに、前記差異レコードを更新した更新日時を前記差異レコードのレコード識別子と対応付けて更新テーブルに書き込むデータ更新処理と、
識別子取得部が、前記複数のクライアント端末のうちのいずれかのクライアント端末から取得日時を示すデータ配信要求が送信されると、前記データ配信要求が示す取得日時よりも後の前記更新日時と対応付けられた前記レコード識別子を取得する識別子取得処理と、
データ配信部が、前記識別子取得処理によって取得された前記レコード識別子が示す前記マスターテーブルにおけるレコードを取得して、前記データ配信要求の送信元のクライアント端末に配信するデータ配信処理と
を行うデータ配信装置としてコンピュータを機能させるデータ配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、変更のあったデータを配信する技術に関する。
【背景技術】
【０００２】
データベースに格納されたデータをクライアントに配信するデータ配信システムがある。データ配信システムでは、データベースには、最新データのみが格納されている。そのため、データ配信システムでは、クライアントからデータの配信要求があると、配信要求に対応する最新データをデータベースから取得して、クライアントに配信する。
【０００３】
特許文献１には、主となるデータベースと、所定の期間毎に複写された差分用データベースとの比較処理を行うことにより、簡易的に差分データを抽出してクライアントに配信することが記載されている。そして、特許文献１には、差分データを視覚的にわかりやすく表示することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１５７１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された技術では、データ配信の際、主となるデータベースと、差分用データベースとの比較処理を行う。そのため、比較処理を行うアプリケーションサーバと、データベースとの間の通信量が多くなるとともに、アプリケーションサーバの比較処理の処理負荷が高くなる。その結果、差分データの特定に時間がかかり、データの配信が遅延する恐れがある。
この発明は、変更されたデータの配信の遅延を防止することを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータ配信装置は、
マスターテーブルにおけるレコードのうち、複数のクライアント端末のうちのいずれかのクライアント端末から送信された端末テーブルにおける対応するレコードと差異がある差異レコードを特定する特定部と、
前記特定部によって特定された前記マスターテーブルにおける前記差異レコードを前記端末テーブルにおける対応するレコードで更新するとともに、前記差異レコードを更新した更新日時を前記差異レコードのレコード識別子と対応付けて更新テーブルに書き込むデータ更新部と、
前記複数のクライアント端末のうちのいずれかのクライアント端末から取得日時を示すデータ配信要求が送信されると、前記データ配信要求が示す取得日時よりも後の前記更新日時と対応付けられた前記レコード識別子を取得する識別子取得部と、
前記識別子取得部によって取得された前記レコード識別子が示す前記マスターテーブルにおけるレコードを取得して、前記データ配信要求の送信元のクライアント端末に配信するデータ配信部と
を備える。
【発明の効果】
【０００７】
この発明では、マスターテーブルを更新する際、更新日時と更新したレコードのレコード識別子とを対応付けて更新テーブルに記憶しておく。これにより、データ配信時には、比較処理を行うことなく、更新日時だけを参照して変更されたデータを特定することが可能である。そのため、データ配信時の処理が簡便になり、変更されたデータの配信の遅延を防止することが可能である。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るデータ配信システム１の構成図。
【図２】実施の形態１に係るデータ配信サーバ１０の構成図。
【図３】実施の形態１に係るクライアント端末２０の構成図。
【図４】実施の形態１に係るデータベースサーバ３０の構成図。
【図５】実施の形態１に係る非対象カラムテーブル１３１を示す図。
【図６】実施の形態１に係る端末テーブル２３１を示す図。
【図７】実施の形態１に係るマスターテーブル３３１を示す図。
【図８】実施の形態１に係る更新テーブル３３２を示す図。
【図９】実施の形態１に係るデータ登録処理のフローチャート。
【図１０】実施の形態１に係るデータ配信処理のフローチャート。
【図１１】実施の形態１に係るマスターテーブル３３１と更新テーブル３３２との関係の説明図。
【図１２】変形例１に係るデータ登録処理のフローチャート。
【図１３】変形例２に係るデータ登録処理のフローチャート。
【図１４】変形例５に係るデータ配信サーバ１０の構成図。
【図１５】変形例５に係るクライアント端末２０の構成図。
【図１６】変形例５に係るデータベースサーバ３０の構成図。
【発明を実施するための形態】
【０００９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係るデータ配信システム１の構成を説明する。
データ配信システム１は、データ配信サーバ１０と、複数のクライアント端末２０と、データベースサーバ３０とを備える。データ配信サーバ１０は、各クライアント端末２０とインターネットといった伝送路４０を介して接続されている。また、データ配信サーバ１０は、データベースサーバ３０とＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といった伝送路５０を介して接続されている。
【００１０】
図２を参照して、実施の形態１に係るデータ配信サーバ１０の構成を説明する。
データ配信サーバ１０は、コンピュータである。
データ配信サーバ１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１１】
データ配信サーバ１０は、機能構成要素として、特定部１１１と、データ更新部１１２と、識別子取得部１１３と、データ配信部１１４とを備える。データ配信サーバ１０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ１３には、データ配信サーバ１０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ１１によりメモリ１２に読み込まれ、プロセッサ１１によって実行される。これにより、データ配信サーバ１０の各機能構成要素の機能が実現される。
また、ストレージ１３は、非対象カラムテーブル１３１を記憶する。
【００１２】
図３を参照して、実施の形態１に係るクライアント端末２０の構成を説明する。
クライアント端末２０は、コンピュータである。
クライアント端末２０は、プロセッサ２１と、メモリ２２と、ストレージ２３と、通信インタフェース２４とのハードウェアを備える。プロセッサ２１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１３】
クライアント端末２０は、機能構成要素として、入力受付部２１１と、データ送信部２１２と、配信要求部２１３と、データ受信部２１４と、表示データ生成部２１５とを備える。クライアント端末２０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ２３には、クライアント端末２０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ２１によりメモリ２２に読み込まれ、プロセッサ２１によって実行される。これにより、クライアント端末２０の各機能構成要素の機能が実現される。
また、ストレージ２３は、端末テーブル２３１を記憶する。
【００１４】
図４を参照して、実施の形態１に係るデータベースサーバ３０の構成を説明する。
データベースサーバ３０は、コンピュータである。
データベースサーバ３０は、プロセッサ３１と、メモリ３２と、ストレージ３３と、通信インタフェース３４とのハードウェアを備える。プロセッサ３１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１５】
データベースサーバ３０は、機能構成要素として、クエリ実行部３１１を備える。データベースサーバ３０の機能構成要素の機能はソフトウェアにより実現される。
ストレージ３３には、データベースサーバ３０の機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ３１によりメモリ３２に読み込まれ、プロセッサ３１によって実行される。これにより、データベースサーバ３０の機能構成要素の機能が実現される。
また、ストレージ３３は、マスターテーブル３３１と、更新テーブル３３２とを記憶する。
【００１６】
図２では、プロセッサ１１は、１つだけ示されている。しかし、データ配信サーバ１０は、プロセッサ１１を代替する複数のプロセッサを備えていてもよい。同様に、クライアント端末２０は、プロセッサ２１を代替する複数のプロセッサを備えていてもよい。同様に、データベースサーバ３０は、プロセッサ３１を代替する複数のプロセッサを備えていてもよい。
これら複数のプロセッサは、各機能構成要素の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ１１，２１，３１と同じように、演算処理を行うＩＣである。
【００１７】
＊＊＊動作の説明＊＊＊
図５から図１１を参照して、実施の形態１に係るデータ配信システム１の動作を説明する。
実施の形態１に係るデータ配信システム１の動作は、実施の形態１に係るデータ配信方法に相当する。また、実施の形態１に係るデータ配信システム１の動作は、実施の形態１に係るデータ配信プログラムの処理に相当する。
実施の形態１に係るデータ配信システム１の動作は、データ登録処理と、データ配信処理とに分けられる。
【００１８】
動作の前提として、非対象カラムテーブル１３１と、端末テーブル２３１と、マスターテーブル３３１と、更新テーブル３３２との各テーブルに記憶される情報を説明する。
【００１９】
図５を参照して、実施の形態１に係る非対象カラムテーブル１３１を説明する。
非対象カラムテーブル１３１は、非対象カラムを含む。非対象カラムには、マスターテーブル３３１を構成するカラムのうち、比較処理の対象としない一部のカラムについてのカラム識別子が記憶される。カラム識別子は、カラム名といった、テーブルのカラムを識別する情報である。
【００２０】
図６を参照して、実施の形態１に係る端末テーブル２３１を説明する。
端末テーブル２３１は、識別子と、１つ以上のデータカラムとを含む。図６では、カラム１からカラムｎのｎ個のデータカラムが示されている。ｎは、任意の自然数である。識別子には、レコード識別子が記憶される。レコード識別子は、レコード番号といった、レコードを識別する情報である。データカラムには、データ配信システム１の機能に応じたデータが記憶される。
また、端末テーブル２３１は、最後にデータが取得された日時が取得日時として記憶されている。
【００２１】
図７を参照して、実施の形態１に係るマスターテーブル３３１を説明する。
マスターテーブル３３１は、識別子と、端末テーブル２３１のデータカラムに対応する、１つ以上のデータカラムとを含む。図７では、図６の端末テーブル２３１のデータカラムに対応して、カラム１からカラムｎのｎ個のデータカラムが示されている。識別子には、レコード識別子が記憶される。データカラムには、データ配信システム１の機能に応じたデータが記憶される。
【００２２】
図８を参照して、実施の形態１に係る更新テーブル３３２を説明する。
更新テーブル３３２は、更新日時と、レコードと、カラムとを含む。更新日時には、データが更新された日時が記憶される。レコードには、レコード識別子が記憶される。カラムには、カラム識別子が記憶される。
【００２３】
図９を参照して、実施の形態１に係るデータ登録処理を説明する。
（ステップＳ１０１：データ入力処理）
複数のクライアント端末２０のうちのあるクライアント端末２０の入力受付部２１１は、通信インタフェース２４を介して入力データを受け付け、入力データにより端末テーブル２３１を更新する。
具体的には、通信インタフェース２４を介して接続された入力装置がクライアント端末２０の利用者によって操作され、入力データが入力される。入力受付部２１１は、入力された入力データを受け付け、入力データにより端末テーブル２３１を更新する。例えば、更新対象のレコード及びカラムのレコード識別子及びカラム識別子と、更新データとが入力データとして入力される。すると、入力受付部２１１は、レコード識別子が示すレコードにおけるカラム識別子が示すカラムのデータを、更新データにより更新する。
【００２４】
（ステップＳ１０２：データ送信処理）
ステップＳ１０１で入力データを受け付けたクライアント端末２０の入力受付部２１１は、通信インタフェース２４を介して、更新後の端末テーブル２３１をデータ配信サーバ１０に送信する。
【００２５】
（ステップＳ１０３：非対象カラム判定処理）
データ配信サーバ１０の特定部１１１は、ステップＳ１０２で送信された端末テーブル２３１を受信する。すると、特定部１１１は、非対象カラムテーブル１３１に非対象カラムが記憶されているか否かを判定する。
特定部１１１は、非対象カラムが記憶されている場合には、処理をステップＳ１０４に進める。一方、特定部１１１は、非対象カラムが記憶されていない場合には、処理をステップＳ１０６に進める。
【００２６】
（ステップＳ１０４：端末カラム取得処理）
データ配信サーバ１０の特定部１１１は、ステップＳ１０２で送信された端末テーブル２３１の各レコードから、非対象カラムに記憶されたカラム識別子が示すカラム以外のカラムのデータを対象データとして取得する。
具体的には、特定部１１１は、端末テーブル２３１の各レコードから、非対象カラムに記憶されたカラム識別子が示すカラム以外のカラムのデータを抽出するクエリを生成する。特定部１１１は、生成されたクエリを実行することにより、データを抽出する。
【００２７】
（ステップＳ１０５：第１マスタカラム取得処理）
データ配信サーバ１０の特定部１１１は、データベースサーバ３０のマスターテーブル３３１の各レコードから、非対象カラムに記憶されたカラム識別子が示すカラム以外のカラムのデータを対象データとして取得する。
具体的には、特定部１１１は、マスターテーブル３３１の各レコードから、非対象カラムに記憶されたカラム識別子が示すカラム以外のカラムのデータを抽出するクエリを生成する。特定部１１１は、通信インタフェース１４を介して生成されたクエリをデータベースサーバ３０に送信する。すると、データベースサーバ３０のクエリ実行部３１１は、送信されたクエリを実行することにより、マスターテーブル３３１の各レコードからデータを抽出する。クエリ実行部３１１は抽出されたデータをクライアント端末２０に送信し、特定部１１１は送信されたデータを取得する。
【００２８】
（ステップＳ１０６：第２マスタカラム取得処理）
データ配信サーバ１０の特定部１１１は、データベースサーバ３０のマスターテーブル３３１の各レコードから、全てのカラムのデータを対象データとして取得する。
具体的には、特定部１１１は、データベースサーバ３０のマスターテーブル３３１の各レコードから、全てのカラムのデータを対象データとして取得するクエリを生成する。特定部１１１は、通信インタフェース１４を介して生成されたクエリをデータベースサーバ３０に送信する。すると、データベースサーバ３０のクエリ実行部３１１は、送信されたクエリを実行することにより、マスターテーブル３３１の各レコードからデータを抽出する。クエリ実行部３１１は抽出されたデータをクライアント端末２０に送信し、特定部１１１は送信されたデータを取得する。
【００２９】
データ配信サーバ１０の特定部１１１は、ステップＳ１０７からステップＳ１１０の処理をマスターテーブル３３１の各レコードを対象として実行する。
【００３０】
（ステップＳ１０７：ハッシュ値計算処理）
データ配信サーバ１０の特定部１１１は、マスターテーブル３３１における対象のレコードから取得された対象データのハッシュ値を計算する。対象データとは、非対象カラムが記憶されている場合にはステップＳ１０５で取得されたデータであり、非対象カラムが記憶されていない場合にはステップＳ１０６で取得されたデータである。
また、特定部１１１は、ステップＳ１０２で送信された端末テーブル２３１における対象のレコードから取得された対象データのハッシュ値を計算する。端末テーブル２３１における対象のレコードは、マスターテーブル３３１における対象のレコードのレコード識別子が識別子のカラムに記憶されたレコードである。対象データとは、非対象カラムが記憶されている場合にはステップＳ１０４で取得されたデータであり、非対象カラムが記憶されていない場合には端末テーブル２３１のレコードの全てのカラムのデータである。
【００３１】
（ステップＳ１０８：ハッシュ値比較処理）
データ配信サーバ１０の特定部１１１は、ステップＳ１０７で計算された、マスターテーブル３３１における対象のレコードについてのハッシュ値と、端末テーブル２３１における対象のレコードについてのハッシュ値とが異なるか否かを判定する。
特定部１１１は、異なる場合には、処理をステップＳ１０９に進める。一方、特定部１１１は、同一の場合には、対象のレコードについての処理を終了する。
【００３２】
データ配信サーバ１０の特定部１１１は、ステップＳ１０９からステップＳ１１０の処理をマスターテーブル３３１から取得された各カラムを対象として実行する。つまり、特定部１１１は、ステップＳ１０９からステップＳ１１０の処理を、非対象カラムがある場合には、非対象カラム以外の各カラムを対象として実行し、非対象カラムがない場合には、全てのカラムについて各カラムを対象として実行する。
【００３３】
（ステップＳ１０９：カラム比較処理）
データ配信サーバ１０の特定部１１１は、マスターテーブル３３１における対象のレコードの対象のカラムのデータと、端末テーブル２３１における対象のレコードの対象のカラムのデータとが異なるか否かを判定する。
特定部１１１は、異なる場合には、処理をステップＳ１１０に進める。一方、特定部１１１は、同一の場合には、対象のカラムについての処理を終了する。
【００３４】
（ステップＳ１１０：識別子抽出処理）
データ配信サーバ１０の特定部１１１は、対象のレコードのレコード識別子と、対象のカラムのカラム識別子とを抽出する。
【００３５】
特定部１１１は、マスターテーブル３３１の各レコードを対象として、ステップＳ１０７からステップＳ１１０の処理を実行することにより、マスターテーブルにおけるレコードのうち、複数のクライアント端末のうちのいずれかのクライアント端末から送信された端末テーブルにおける対応するレコードと差異がある差異レコードを特定する。特に、ここでは、特定部１１１は、非対象カラム以外のカラムのデータに差異があるレコードを差異レコードとして特定する。また、特定部１１１は、非対象カラム以外のカラムのうち、データに差異がある差異カラムを特定する。
【００３６】
（ステップＳ１１１：マスターテーブル更新処理）
データ配信サーバ１０のデータ更新部１１２は、ステップＳ１０８でハッシュ値が異なると判定されたマスターテーブル３３１のレコードを、ステップＳ１０２で送信された端末テーブル２３１における対応するレコードで更新する。端末テーブル２３１における対応するレコードとは、マスターテーブル３３１のレコードのレコード識別子が識別子のカラムに記憶されたレコードである。
具体的には、データ更新部１１２は、ステップＳ１０８でハッシュ値が異なると判定されたマスターテーブル３３１のレコードを、ステップＳ１０２で送信された端末テーブル２３１における対応するレコードで更新するクエリを生成する。つまり、データ更新部１１２は、ステップＳ１１０で抽出されたレコード識別子が示すマスターテーブル３３１のレコードを、端末テーブル２３１における対応するレコードで更新するクエリを生成する。データ更新部１１２は、通信インタフェース１４を介して生成されたクエリをデータベースサーバ３０に送信する。すると、データベースサーバ３０のクエリ実行部３１１は、送信されたクエリを実行することにより、マスターテーブル３３１のレコードを更新する。
【００３７】
（ステップＳ１１２：更新テーブル追記処理）
データ配信サーバ１０のデータ更新部１１２は、ステップＳ１１０で抽出されたレコード識別子及びカラム識別子の各組について、ステップＳ１１１でレコードを更新した更新日時と、レコード識別子及びカラム識別子とを更新テーブル３３２に追記する。
具体的には、データ更新部１１２は、ステップＳ１１０で抽出されたレコード識別子及びカラム識別子の各組について、更新日時と、レコード識別子及びカラム識別子とを更新テーブル３３２に追記するクエリを生成する。データ更新部１１２は、通信インタフェース１４を介して生成されたクエリをデータベースサーバ３０に送信する。すると、データベースサーバ３０のクエリ実行部３１１は、送信されたクエリを実行することにより、更新テーブル３３２にレコードを追加する。
【００３８】
図１０を参照して、実施の形態１に係るデータ配信処理を説明する。
（ステップＳ２０１：配信要求処理）
複数のクライアント端末２０のうちのあるクライアント端末２０の配信要求部２１３は、通信インタフェース２４を介して、端末テーブル２３１の取得日時を示すデータ配信要求をデータ配信サーバ１０に送信する。
【００３９】
（ステップＳ２０２：更新データ特定処理）
データ配信サーバ１０の識別子取得部１１３は、データ配信要求が送信されると、データ配信要求が示す取得日時よりも後の更新日時と対応付けられたレコード識別子及びカラム識別子を更新テーブル３３２から取得する。これにより、取得日時よりも後に更新されたデータを特定する。
【００４０】
図１１を参照して、マスターテーブル３３１と更新テーブル３３２との関係を説明する。
更新テーブル３３２には、更新日時に対応して、その更新日時に更新されたデータを示すレコード識別子及びカラム識別子が記憶されている。そのため、更新テーブル３３２のレコードのうち、取得日時よりも後の更新日時のレコードから、レコード識別子及びカラム識別子を取得することにより、取得日時よりも後に更新されたデータを特定することが可能である。
【００４１】
（ステップＳ２０３：更新データ取得処理）
データ配信サーバ１０のデータ配信部１１４は、ステップＳ２０２で取得されたレコード識別子及びカラム識別子を用いて、マスターテーブル３３１から取得日時よりも後に更新されたデータを取得する。つまり、データ配信部１１４は、レコード識別子が示すレコードにおける、カラム識別子が示すカラムのデータを取得することにより、取得日時よりも後に更新されたデータを取得する。
具体的には、データ配信部１１４は、レコード識別子が示すレコードにおける、カラム識別子が示すカラムのデータを取得するクエリを生成する。データ配信部１１４は、通信インタフェース１４を介して生成されたクエリをデータベースサーバ３０に送信する。すると、データベースサーバ３０のクエリ実行部３１１は、送信されたクエリを実行することにより、取得日時よりも後に更新されたデータを取得する。
【００４２】
（ステップＳ２０４：更新データ送信処理）
データ配信サーバ１０のデータ配信部１１４は、通信インタフェース１４を介して、ステップＳ２０３で取得されたデータを、ステップＳ２０１でデータ配信要求を送信したクライアント端末２０に配信する。
【００４３】
（ステップＳ２０５：端末テーブル更新処理）
ステップＳ２０１でデータ配信要求を送信したクライアント端末２０のデータ受信部２１４は、ステップＳ２０４で送信されたデータを受信する。データ受信部２１４は、受信されたデータにより、端末テーブル２３１のデータを更新する。この際、データ受信部２１４は、データを更新した日時により、端末テーブル２３１の取得日時を更新する。
【００４４】
（ステップＳ２０６：データ表示処理）
ステップＳ２０１でデータ配信要求を送信したクライアント端末２０の表示データ生成部２１５は、端末テーブル２３１に記憶されたデータに基づき、表示データを生成する。この際、表示データ生成部２１５は、ステップＳ２０５で受信されたデータに関しては、他のデータと異なる表示様式にする。具体例としては、表示データ生成部２１５は、ステップＳ２０５で受信されたデータに関しては、文字の色と書体といった表示様式を他のデータと異なる表示様式にする。
そして、表示データ生成部２１５は、生成された表示データを通信インタフェース２４を介して接続された表示装置に出力して表示させる。
【００４５】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るデータ配信システム１は、マスターテーブルを更新する際、更新日時と、更新したレコードのレコード識別子及び更新したカラムのカラム識別子とを対応付けて更新テーブル３３２に記憶しておく。これにより、データ配信時には、比較処理を行うことなく、更新日時だけを参照して変更されたデータを特定することが可能である。そのため、データ配信時の処理が簡便になり、変更されたデータの配信の遅延を防止することが可能である。
【００４６】
また、実施の形態１に係るデータ配信システム１は、指定されたカラム識別子が示す非対象カラム以外のカラムのデータに差異があるレコードを特定して、差異があるレコードのレコード識別子及び差異があるカラムのカラム識別子を更新テーブル３３２に記憶しておく。つまり、非対象カラム以外のカラムに変更があった場合にだけ、更新テーブル３３２にレコード識別子及びカラム識別子が記憶される。そのため、更新日時だけを参照して、変更された、非対象カラム以外のカラムのデータを特定することが可能である。
例えば、クライアント端末２０において表示対象になっていないカラムを非対象カラムとしておくことが考えられる。これにより、更新日時だけを参照して、表示様式を変更する必要があるカラムを特定することが可能である。
【００４７】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、マスターテーブル３３１のレコードのうち、ハッシュ値が異なると判定されたレコードのみが更新された。そのため、端末テーブル２３１における非対象カラムのデータだけが更新されても、マスターテーブル３３１には反映されなかった。しかし、端末テーブル２３１における非対象カラムのデータだけが更新されても、マスターテーブル３３１に反映されるようにしてもよい。但し、非対象カラムのデータが更新されても、更新テーブル３３２にはレコードは追加しないようにする。
【００４８】
図１２を参照して具体的に説明する。
ステップＳ３０１からステップＳ３０２の処理は、図９のステップＳ１０１からステップＳ１０２の処理と同じである。ステップＳ３０３の処理は、図９のステップＳ１０６の処理と同じである。つまり、非対象カラムテーブル１３１に非対象カラムが記憶されているか否かに関わらず、マスターテーブル３３１の各レコードから、全てのカラムのデータが対象データとして取得される。
ステップＳ３０４からステップＳステップＳ３０９の処理は、図９のステップＳ１０７からステップＳ１１２の処理と同じである。但し、ステップＳ３０６からステップＳ３０７の処理は、マスターテーブル３３１のカラムのうち、非対象カラム以外の各カラムを対象として実行される。
【００４９】
＜変形例２＞
実施の形態１では、クライアント端末２０から端末テーブル２３１の全てのレコードがデータ配信サーバ１０に送信された。しかし、クライアント端末２０からデータが更新されたレコードだけがデータ配信サーバ１０に送信されてもよい。この場合には、データ配信サーバ１０は、レコードのハッシュ値の比較を省略することが可能である。
【００５０】
図１３を参照して具体的に説明する。
ステップＳ４０１からステップＳ４０６の処理は、図９のステップＳ１０１からステップＳ１０６の処理と同じである。但し、ステップＳ１０２では、クライアント端末２０からデータが更新されたレコードだけがデータ配信サーバ１０に送信される。
ステップＳ４０７からステップＳ４０８の処理は、図９のステップＳ１０９からステップＳ１１０の処理と同じである。ステップＳ４０７からステップＳ４０８の処理は、ステップＳ１０２で送信された各レコードに対応するマスターテーブル３３１のレコードを対象のレコードとし、マスターテーブル３３１から取得された各カラムを対象のカラムとして実行される。
ステップＳ４０９では、ステップＳ１０２で送信された各レコードにより、対応するマスターテーブル３３１のレコードが更新される。ステップＳ４１０の処理は、図９のステップＳ１１２の処理と同じである。
【００５１】
＜変形例３＞
実施の形態１では、更新された全てのレコードが配信される例を説明した。しかし、クライアント端末から配信対象のレコードの指定がされ、配信対象のレコードのうち更新されたレコードが配信されてもよい。
この場合には、図１０のステップＳ２０１で、配信対象のレコードを指定する指定情報がデータ配信要求に含めてデータ配信サーバ１０に送信される。そして、ステップＳ２０３で、ステップＳ２０２で取得されたレコード識別子及びカラム識別子と、指定情報とを用いて、取得するデータが絞り込まれる。
【００５２】
＜変形例４＞
実施の形態１では、端末テーブル２３１は１つであると想定し、非対象カラムテーブル１３１には単に非対象カラムが登録されているとした。しかし、複数の端末テーブル２３１が存在してもよい。
この場合には、非対象カラムテーブル１３１には、端末テーブル２３１毎に非対象カラムが登録される。そして、この場合には、ステップＳ１０２で送信された端末テーブル２３１についての非対象カラムを用いて処理が実行される。
【００５３】
＜変形例５＞
実施の形態１では、各機能構成要素がソフトウェアで実現された。しかし、変形例５として、各機能構成要素はハードウェアで実現されてもよい。この変形例５について、実施の形態１と異なる点を説明する。
【００５４】
図１４を参照して、変形例５に係るデータ配信サーバ１０の構成を説明する。
機能がハードウェアで実現される場合、データ配信サーバ１０は、プロセッサ１１とメモリ１２とストレージ１３とに代えて、電子回路１５を備える。電子回路１５は、データ配信サーバ１０の機能構成要素と、メモリ１２とストレージ１３との機能とを実現する専用の回路である。
【００５５】
図１５を参照して、変形例５に係るクライアント端末２０の構成を説明する。
機能がハードウェアで実現される場合、クライアント端末２０は、プロセッサ２１とメモリ２２とストレージ２３とに代えて、電子回路２５を備える。電子回路２５は、クライアント端末２０の機能構成要素と、メモリ２２とストレージ２３との機能とを実現する専用の回路である。
【００５６】
図１６を参照して、変形例５に係るデータベースサーバ３０の構成を説明する。
機能がハードウェアで実現される場合、データベースサーバ３０は、プロセッサ３１とメモリ３２とストレージ３３とに代えて、電子回路３５を備える。電子回路３５は、データベースサーバ３０の機能構成要素と、メモリ３２とストレージ３３との機能とを実現する専用の回路である。
【００５７】
電子回路１５，２５，３５は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
データ配信サーバ１０の各機能構成要素の機能を１つの電子回路１５で実現してもよいし、各機能構成要素の機能を複数の電子回路１５に分散させて実現してもよい。同様に、クライアント端末２０とデータベースサーバ３０とのそれぞれについて、各機能構成要素の機能を１つの電子回路２５，３５で実現してもよいし、各機能構成要素の機能を複数の電子回路２５，３５に分散させて実現してもよい。
【００５８】
＜変形例６＞
変形例６として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００５９】
プロセッサ１１，２１，３１とメモリ１２，２２，３２とストレージ１３，２３，３３と電子回路１５，２５，３５とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【符号の説明】
【００６０】
１  データ配信システム、１０  データ配信サーバ、１１  プロセッサ、１２  メモリ、１３  ストレージ、１４  通信インタフェース、１５  電子回路、１１１  特定部、１１２  データ更新部、１１３  識別子取得部、１１４  データ配信部、１３１  非対象カラムテーブル、２０  クライアント端末、２１  プロセッサ、２２  メモリ、２３  ストレージ、２４  通信インタフェース、２５  電子回路、２１１  入力受付部、２１２  データ送信部、２１３  配信要求部、２１４  データ受信部、２１５  表示データ生成部、２３１  端末テーブル、３０  データベースサーバ、３１  プロセッサ、３２  メモリ、３３  ストレージ、３４  通信インタフェース、３５  電子回路、３１１  クエリ実行部、３３１  マスターテーブル、３３２  更新テーブル、４０  伝送路、５０  伝送路。
【図１】
2020086688.tif 000003
【図２】
2020086688.tif 000004
【図３】
2020086688.tif 000005
【図４】
2020086688.tif 000006
【図５】
2020086688.tif 000007
【図６】
2020086688.tif 000008
【図７】
2020086688.tif 000009
【図８】
2020086688.tif 000010
【図９】
2020086688.tif 000011
【図１０】
2020086688.tif 000012
【図１１】
2020086688.tif 000013
【図１２】
2020086688.tif 000014
【図１３】
2020086688.tif 000015
【図１４】
2020086688.tif 000016
【図１５】
2020086688.tif 000017
【図１６】
2020086688.tif 000018