(57)【要約】【課題】２つのデータの不一致を解消でき、且つ、比較的少ない通信の回数でデータを更新する。【解決手段】データ更新装置１は、複製データから「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST13」の行）を選択し、「NULL」を、ステップＳ１で受信した値「0422591234」で置き換える（Ｓ３）。データ更新装置１は、複製データから当該受信された有効な値を含む行および他の１つ以上の行を読み出し、全ての行を含む保持データ更新指示をデータ保持装置２に送信する（Ｓ５）。データ保持装置２は、保持データ更新指示に含まれる各行につき、当該行内のフィールド名と同じフィールド名を含む、保持データの行が、保持データ更新指示の当該行に置き換わるように、保持データを更新する（Ｓ７）。【選択図】図３
2014153735.tif 000002
【特許請求の範囲】
【請求項１】
データ保持装置および複数の更新指示装置に対して通信可能なデータ更新装置であって、
前記データ保持装置に保持される保持データに一致すべき複製データが記憶される複製データ記憶部と、
いずれかの前記更新指示装置から、前記保持データ内の行に含まれるべき有効な値を受信したなら、前記複製データにおけるいずれかの無効な値が当該有効な値に置き換わるように、前記複製データを更新する複製データ更新部と、
前記複製データが更新されたなら、当該複製データから当該受信された有効な値を含む行および他の１つ以上の行を読み出し、読み出した全ての行を含む保持データ更新指示を前記データ保持装置に送信する保持データ更新指示送信部と、
前記データ保持装置から更新成功応答を受信できなかったなら、前記複製データを更新前の状態に戻し、前記保持データ内の行に含まれるべき有効な値を送信した更新指示装置に対し、更新が失敗したことを示す更新失敗応答を送信するロールバック処理部と
を備えることを特徴とするデータ更新装置。
【請求項２】
請求項１記載のデータ更新装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つのデータの不一致を解消でき、且つ、比較的少ない通信の回数でデータを更新できるデータ更新装置に関するものである。
【背景技術】
【０００２】
図４は、従来におけるデータ更新のシーケンス図である。
【０００３】
データ更新装置１Ａは、更新指示装置３１、３２およびデータ保持装置２Ａに対して通信可能となっている。データ保持装置２Ａは、保持データを備える。
【０００４】
保持データは、複数の行を含み、且つ、当該各行はフィールド名および値を含み、且つ、当該値は有効な値（ここでは、電話番号）または無効な値「NULL」を取り得るようになっている。
【０００５】
データ更新装置１Ａは、保持データに一致している複製データを備える。つまり、複製データは、保持データと同じ構成を有し、そのフィールド名および値の内容は保持データのフィールド名および値の内容に一致している。
【０００６】
データ更新装置１Ａは、例えば、更新指示装置３２から、保持データ内の行に含まれるべき値「0422591234」を受信したなら（Ｓ１０１）、例えば、複製データから「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST13」の行）を選択し、当該行の「NULL」を「0422591234」で置き換える（Ｓ１０３）。
【０００７】
次に、データ更新装置１Ａは、値「0422591234」をデータ保持装置２Ａに送信する（Ｓ１０５）。
【０００８】
データ保持装置２Ａは、保持データの「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST13」の行）を選択し、当該行の「NULL」を「0422591234」で置き換える（Ｓ１０７）。
【０００９】
次に、データ保持装置２Ａは、更新が成功したことを示す更新成功応答をデータ更新装置１Ａに送信する（Ｓ１０９）。
【００１０】
データ更新装置１Ａは、何らかの原因で更新成功応答を受信できなかったなら、保持データが更新されなかったとみなし、複製データを更新前の状態に戻す（ロールバック処理）。つまり、データ更新装置１Ａは、フィールド名「TROUBLE_LIST13」の行の「0422591234」を「NULL」で置き換える（Ｓ１１１）。
【００１１】
データ更新装置１Ａは、更新指示装置３２に対し、更新が失敗したことを示す更新失敗応答を送信する（Ｓ１１３）。
【００１２】
この時点で、保持データにおいては、フィールド名「TROUBLE_LIST13」の行の値は、「0422591234」であり、一方、複製データにおいては、フィールド名「TROUBLE_LIST13」の行の値は、「NULL」であり、すなわち、保持データと複製データは不一致となっている。
【００１３】
続いて、データ更新装置１Ａは、例えば、更新指示装置３１から、保持データ内の行に含まれるべき値「0422592345」を受信したなら（Ｓ２０１）、複製データから「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST13」の行）を選択し、当該行の「NULL」を「0422592345」で置き換える（Ｓ２０３）。
【００１４】
次に、データ更新装置１Ａは、値「0422592345」をデータ保持装置２Ａに送信する（Ｓ２０５）。
【００１５】
データ保持装置２Ａは、保持データの「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST14」の行）を選択し、当該行の「NULL」を「0422592345」で置き換える（Ｓ２０３）。
【００１６】
この時点で、保持データにおいては、フィールド名「TROUBLE_LIST14」の行の値は、「0422592345」であり、一方、複製データにおいては、「0422592345」は、フィールド名「TROUBLE_LIST13」の行に含まれており、すなわち、保持データと複製データは不一致となっている。
【００１７】
そして、一旦、このような状態が生じると、複製データと保持データの不一致を解消させる方法はなく、不一致の状態が続く。
【００１８】
また、従来においては、時刻印ロック方式と称されるデータの更新方法が知られているが、時刻印ロック方式においては、２つのデータを同じにすることができるが、通信の回数が多く、トラヒック量が多くなるというデメリットがある。
【先行技術文献】
【非特許文献】
【００１９】
【非特許文献１】Database SQL Reference 10g Release 1 (10.1)、［ｏｎｌｉｎｅ］、Oracle、［平成２５年１月８日検索］、インターネット＜ＵＲＬ：http://docs.oracle.com/cd/B13789_01/server.101/b10759/statements_9014.htm#SQLRF01604＞
【発明の概要】
【発明が解決しようとする課題】
【００２０】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、２つのデータの不一致を解消でき、且つ、比較的少ない通信の回数でデータを更新できるデータ更新装置を提供することにある。
【課題を解決するための手段】
【００２１】
上記の課題を解決するために、本発明は、データ保持装置および複数の更新指示装置に対して通信可能なデータ更新装置であって、前記データ保持装置に保持される保持データに一致すべき複製データが記憶される複製データ記憶部と、いずれかの前記更新指示装置から、前記保持データ内の行に含まれるべき有効な値を受信したなら、前記複製データにおけるいずれかの無効な値が当該有効な値に置き換わるように、前記複製データを更新する複製データ更新部と、前記複製データが更新されたなら、当該複製データから当該受信された有効な値を含む行および他の１つ以上の行を読み出し、読み出した全ての行を含む保持データ更新指示を前記データ保持装置に送信する保持データ更新指示送信部と、前記データ保持装置から更新成功応答を受信できなかったなら、前記複製データを更新前の状態に戻し、前記保持データ内の行に含まれるべき有効な値を送信した更新指示装置に対し、更新が失敗したことを示す更新失敗応答を送信するロールバック処理部とを備えることを特徴とする。
【発明の効果】
【００２２】
本発明のデータ更新装置によれば、２つのデータの不一致を解消でき、且つ、比較的少ない通信の回数でデータを更新することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態に係るデータ更新装置を含む通信システムの構成図である。
【図２】データ更新装置１の概略構成を示すブロック図である。
【図３】データ更新装置１の動作方法を示すシーケンス図である。
【図４】従来におけるデータ更新のシーケンス図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態について図面を参照して説明する。
【００２５】
図１は、本実施の形態に係るデータ更新装置を含む通信システムの構成図である。
【００２６】
データ更新装置１は、データ保持装置２、更新指示装置３１および更新指示装置３２に対して通信可能となっている。なお、更新指示装置の数は、３以上であってもよい。
【００２７】
データ保持装置２が備える保持データは、複数の行を含み、且つ、当該各行はフィールド名および値を含み、且つ、当該値は有効な値（ここでは、電話番号）または無効な値「NULL」を取り得るようになっている。
【００２８】
また、このような保持データを備えるデータ保持装置２は、データ更新装置１から保持データ更新指示を受信したなら、保持データ更新指示に含まれる各行につき、当該行内のフィールド名と同じフィールド名を含む、保持データの行が、保持データ更新指示の当該行に置き換わるように、保持データを更新し、更新が成功したなら、その旨の更新成功応答をデータ更新装置１に送信するようになっている。
【００２９】
図２は、データ更新装置１の概略構成を示すブロック図である。
【００３０】
データ更新装置１は、保持データに一致すべき複製データが記憶される複製データ記憶部１１と、更新指示装置３１または更新指示装置３２から、保持データ内の行に含まれるべき有効な値を受信したなら、複製データにおけるいずれかの無効な値が当該有効な値に置き換わるように、複製データを更新する複製データ更新部１２と、複製データが更新されたなら、当該複製データから当該受信された有効な値を含む行および他の１つ以上の行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置２に送信する保持データ更新指示送信部１３と、データ保持装置２から更新成功応答を受信できなかったなら、複製データを更新前の状態に戻し、保持データ内の行に含まれるべき有効な値を送信した更新指示装置に対し、更新が失敗したことを示す更新失敗応答を送信するロールバック処理部１４とを備える。
【００３１】
複製データは、保持データに一致すべきものであるから、保持データの行数と同数の行を含み、且つ、当該各行はフィールド名および値を含み、且つ、当該値は有効な値（電話番号）またはまたは無効な値「NULL」を取り得るようになっている。
【００３２】
なお、保持データ、複製データは、単に区別のために、このように呼称しており、保持データが原本で、複製データがそのコピーであってもよいし、逆でもよい。
【００３３】
（データ更新装置１によるデータ更新の動作）
以下、データ更新装置１によるデータ更新の動作について説明するが、保持データと複製データは一致していることとする。また、複製データ、保持データのそれぞれにおいて、各フィールド名「TROUBLE_LIST1」〜「TROUBLE_LIST12」を含む行は、有効な値（電話番号）を含み、各フィールド名「TROUBLE_LIST13」、「TROUBLE_LIST14」を含む行は、「NULL」を含んでいることとする。
【００３４】
図３は、データ更新装置１の動作方法を示すシーケンス図である。
【００３５】
データ更新装置１が、例えば、更新指示装置３２から、保持データ内の行に含まれるべき値「0422591234」を受信する（Ｓ１）。
【００３６】
複製データ更新部１２は、例えば、複製データから「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST13」の行）を選択し、当該行の「NULL」を「0422591234」で置き換える（Ｓ３）。つまり、複製データ更新部１２は、複製データを更新する。
【００３７】
データ更新装置１の保持データ更新指示送信部１３は、複製データが更新されたなら、複製データから当該受信された有効な値を含む行および他の１つ以上の行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置２に送信する。例えば、保持データ更新指示送信部１３は、複製データから全ての行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置に送信する（Ｓ５）。
【００３８】
データ保持装置２は、データ更新装置１から保持データ更新指示を受信したなら、保持データ更新指示に含まれる各行につき、当該行内のフィールド名と同じフィールド名を含む、保持データの行が、保持データ更新指示の当該行に置き換わるように、保持データを更新する。データ保持装置２は、例えば、保持データを保持データ更新指示内の全ての行で置き換える（Ｓ７）。
【００３９】
次に、データ保持装置２は、更新が成功したことを示す更新成功応答をデータ更新装置１Ａに送信する（Ｓ９）。
【００４０】
データ更新装置１のロールバック処理部１４は、何らかの原因で更新成功応答を受信できなかったなら、保持データが更新されなかったとみなし、複製データを更新前の状態に戻す（Ｓ１１）。つまり、ロールバック処理部１４は、フィールド名「TROUBLE_LIST13」の行の「0422591234」を「NULL」で置き換える（Ｓ１１）。
【００４１】
ロールバック処理部１４は、更新指示装置３２に対し、更新が失敗したことを示す更新失敗応答を送信する（Ｓ１３）。
【００４２】
この時点で、保持データにおいては、フィールド名「TROUBLE_LIST13」の行の値は、「0422591234」であり、一方、複製データにおいては、フィールド名「TROUBLE_LIST13」の行の値は、「NULL」であり、すなわち、保持データと複製データは不一致となっている。
【００４３】
続いて、データ更新装置１が、例えば、更新指示装置３１から、保持データ内の行に含まれるべき値「0422592345」を受信する（Ｓ２１）。
【００４４】
複製データ更新部１２は、複製データから「NULL」を含み且つフィールド名の数字が最も小さい行（フィールド名「TROUBLE_LIST13」の行）を選択し、当該行の「NULL」を「0422592345」で置き換える（Ｓ２３）。つまり、複製データ更新部１２は、複製データを更新する。
【００４５】
データ更新装置１の保持データ更新指示送信部１３は、複製データが更新されたなら、当該複製データから当該受信された有効な値を含む行および他の１つ以上の行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置２に送信する。例えば、保持データ更新指示送信部１３は、複製データから全ての行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置に送信する（Ｓ２５）。
【００４６】
データ保持装置２は、データ更新装置１から保持データ更新指示を受信したなら、保持データ更新指示に含まれる各行につき、当該行内のフィールド名と同じフィールド名を含む、保持データの行が、保持データ更新指示の当該行に置き換わるように、保持データを更新する。データ保持装置２は、例えば、保持データを保持データ更新指示内の全ての行で置き換える（Ｓ２７）。
【００４７】
次に、データ保持装置２は、更新が成功したことを示す更新成功応答をデータ更新装置１Ａに送信する（Ｓ２９）。
【００４８】
データ更新装置１のロールバック処理部１４は、更新成功応答を受信できたなら、複製データを更新前の状態に戻す処理を行わない。
【００４９】
この時点で、保持データにおいては、フィールド名「TROUBLE_LIST13」を含む行の値は、「0422592345」であり、一方、複製データにおいても、フィールド名「TROUBLE_LIST13」を含む行の値は、「0422592345」であり、すなわち、保持データと複製データの不一致が解消される。
【００５０】
しかも、保持データ更新指示に複製データ内の全ての行を含ませることとすると、保持データが更新された時点で、保持データと複製データの不一致を解消できる。
【００５１】
ただし、複製データのデータサイズが大きい場合、保持データ更新指示の通信負荷や処理遅延が増大する懸念がある。
【００５２】
この場合、更新指示装置の台数や保持データ更新指示の頻度を鑑みて、複製データの一部の行（受信された有効な値を含む行および他の１つ以上の行）だけを含ませる方法でも、保持データと複製データを一致させることが可能である。
【００５３】
また、本実施の形態では、図４のシーケンスに比べ、特に付加的に通信を行うわけではなく、保持データを比較的少ない通信の回数で更新できる。
【００５４】
したがって、本実施の形態では、データ保持装置２は、保持データ更新指示を受信したなら（Ｓ５、Ｓ２５）、保持データ更新指示に含まれる各行につき、当該行内のフィールド名と同じフィールド名を含む、保持データの行が、当該保持データ更新指示の当該行に置き換わるように、保持データを更新し（Ｓ７、Ｓ２７）、更新が成功したことを示す更新成功応答をデータ更新装置１に送信する（Ｓ９、Ｓ２９）ようになっている。
【００５５】
一方、データ更新装置１においては、保持データ更新指示送信部１３が、更新された複製データから、ステップＳ１、Ｓ１３などで受信された有効な値を含む行および他の１つ以上の行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置２に送信するので（Ｓ５、Ｓ２５）、保持データと複製データの不一致を解消でき、且つ、保持データと複製データを比較的少ない通信の回数で更新できる。
【００５６】
特に、保持データ更新指示送信部１３が、更新された複製データから全ての行を読み出し、読み出した全ての行を含む保持データ更新指示をデータ保持装置２に送信するので、保持データが更新された時点で、保持データと複製データの不一致を解消することができる。
【００５７】
なお、データ更新装置１としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００５８】
１…データ更新装置
２…データ保持装置
１１…複製データ記憶部
１２…複製データ更新部
１３…保持データ更新指示送信部
１４…ロールバック処理部
３１、３２…更新指示装置
【図１】
2014153735.tif 000003
【図２】
2014153735.tif 000004
【図３】
2014153735.tif 000005
【図４】
2014153735.tif 000006