(57)【要約】【課題】  複数業務アプリケーション間のデータのやり取りを業務アプリケーションが行う必要がある。【解決手段】  データ共有システムは、データ共有部を有する複数の装置とデータ所在調整装置を有する。データ共有部は、業務アプリケーションが参照または更新するデータ所在を管理するデータアクセス部と、複数の媒体から構成されるデータ格納部とアクセスパターン解析部を有する。アクセスパターン解析部は、業務アプリケーションからのデータアクセス時刻の周波数解析を行い、その結果に基づいてデータ所在媒体を決定する。データ所在調整装置は、各装置から送信されるアクセスパターンに基づいてデータ所在装置を決定する。【選択図】図１１
2014134988.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションからアクセス要求を受信する通信部と、
前記アプリケーションから受信するアクセス要求に対応するデータが所在している媒体を記憶するデータ所在媒体記憶部と、
前記アクセス要求に基づいてアクセスパターンを算出し、
前記アクセスパターンに基づいて前記データの最適な所在媒体であるデータ所在媒体を決定し、
前記データ所在媒体が、前記データ所在媒体記憶部に記憶された前記媒体と相違する場合は、前記データ所在媒体記憶部に記憶された媒体を更新するアクセスパターン解析部と、
を備えることを特徴とするデータ共有装置。
【請求項２】
請求項１に記載のデータ共有装置において、
ピーク周波数に対応する媒体を記憶する媒体特性記憶部と、
前記アクセスパターン解析部は、アクセスパターンを算出した後、周波数解析を行い、ピーク周波数を算出し、
算出された前記ピーク周波数と同一の前記媒体特性記憶部に記憶されたピーク周波数に対応する媒体を前記データ所在媒体として決定することを特徴とするデータ共有装置。
【請求項３】
請求項２に記載のデータ共有装置と、データ所在調整装置とを含むデータ共有システムにおいて、
前記データ共有装置の前記通信部は、
前記アクセスパターンを前記データ所在調整装置に送信し、
前記データ所在調整装置は、
前記アクセスパターンに基づいて、前記データの最適な所在装置であるデータ所在装置を決定し、
前記データ共有装置と前記最適な所在装置が異なる場合は、
前記データ共有装置から前記データを取得し、前記最適な所在装置に送信し、
前記最適な所在装置は、前記データを記憶する
ことを特徴とするデータ共有システム。
【請求項４】
請求項３に記載のデータ共有システムにおいて、
前記データ所在調整装置は、前記アクセスパターンから複数のデータ共有装置におけるピーク周波数を算出し、前記ピーク周波数が最大であるデータ共有装置を、前記最適な所在装置と決定する
ことを特徴とするデータ共有システム。
【請求項５】
請求項４に記載のデータ共有システムにおいて、
前記アクセス要求とは、前記データを参照する要求である場合、
前記データ共有装置は、前記最適な所在装置から、前記データを取得することを特徴とするデータ共有システム。
【請求項６】
請求項４に記載のデータ共有システムにおいて、
前記アクセス要求とは、前記データを更新する要求である場合、
前記データ共有装置は前記データを削除し、前記最適な所在装置は、前記データを更新することを特徴とするデータ共有システム。
【請求項７】
データ共有装置が、
複数のアプリケーションからアクセス要求を受信するステップと、
前記アプリケーションから受信するアクセス要求に対応するデータが所在している媒体を記憶するステップと、
前記アクセス要求に基づいてアクセスパターンを算出し、
前記アクセスパターンに基づいて前記データの最適な所在媒体であるデータ所在媒体を決定し、
前記データ所在媒体が、前記データ所在媒体記憶部に記憶された前記媒体と相違する場合は、前記データ所在媒体記憶部に記憶された媒体を更新するステップと、
を備えることを特徴とするデータ共有方法。
【請求項８】
請求項７に記載のデータ共有方法において、
前記データ共有装置は、
ピーク周波数に対応する媒体を記憶するステップと、
前記アクセスパターン解析部は、アクセスパターンを算出した後、周波数解析を行い、ピーク周波数を算出し、
算出された前記ピーク周波数と同一の前記媒体特性記憶部に記憶されたピーク周波数に対応する媒体を前記データ所在媒体として決定するステップとを更に備えることを特徴とするデータ共有方法。
【請求項９】
請求項８に記載のデータ共有方法において、
前記データ共有装置は、
前記アクセスパターンを前記データ所在調整装置に送信するステップと、
データ所在調整装置が、
前記アクセスパターンに基づいて、前記データの最適な所在装置であるデータ所在装置を決定し、
前記データ共有装置と前記最適な所在装置が異なる場合は、
前記データ共有装置から前記データを取得し、前記最適な所在装置に送信し、
前記最適な所在装置は、前記データを記憶するステップとを備える
ことを特徴とするデータ共有方法。
【請求項１０】
請求項９に記載のデータ共有方法において、
前記データ所在調整装置は、前記アクセスパターンから複数のデータ共有装置におけるピーク周波数を算出し、前記ピーク周波数が最大であるデータ共有装置を、前記最適な所在装置と決定するステップとを更に備える
ことを特徴とするデータ共有方法。
【請求項１１】
請求項１０に記載のデータ共有方法において、
前記アクセス要求とは、前記データを参照する要求である場合、
前記データ共有装置は、前記最適な所在装置から、前記データを取得することを特徴とするデータ共有方法。
【請求項１２】
請求項１０に記載のデータ共有方法において、
前記アクセス要求とは、前記データを更新する要求である場合、
前記データ共有装置は前記データを削除し、前記最適な所在装置は、前記データを更新することを特徴とするデータ共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
データ共有システム及びデータ共有方法に関する。
【背景技術】
【０００２】
列車運行管理システム等の複数の業務アプリケーションが実行されるシステムにおいて、各業務アプリケーションは装置内または装置間でお互いにデータをやり取りしている。データのやり取りに関わる処理は業務アプリケーションのプログラムコード中に多く表れる。
【０００３】
また、業務アプリケーションにおいてデータの格納場所（メモリ、データベース、他装置等）を意識した処理を行っている。
【０００４】
特許文献１に記載の技術では、データのアプリケーションによる参照頻度を監視し、参照頻度の監視結果と、データの種別による重要度により優先順位を決定し、決定された優先順位に従ってイベント駆動によるアプリケーションが使用するレプリカのデータの配置を変更することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−６４１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら特許文献１に記載の技術では、データの配置を変更する場合はデータの格納場所の定義を変更する必要がある。加えて先述のようなシステムでは、データのやり取りに関わる処理が業務アプリケーションのプログラムコード中に多く表れる。このために、業務アプリケーションのプログラム開発における生産性が上がらない。また、データの格納場所を変更する場合には、業務アプリケーションを変更する必要があるので、拡張性も低い。
【課題を解決するための手段】
【０００７】
データ共有装置の通信部は、複数のアプリケーションからアクセス要求を受信し、アクセス要求に基づいてアクセスパターンを算出し、アクセスパターンに基づいてデータの最適な所在媒体であるデータ所在媒体を決定し、データ所在媒体が、データ所在媒体記憶部に記憶された媒体と相違する場合は、データ所在媒体記憶部に記憶された媒体を更新するアクセスパターン解析部と、を備える。
【発明の効果】
【０００８】
業務アプリケーションを開発する際の生産性が向上し、更に、データの格納場所を変更する場合の拡張性を高めることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】システムの構成例を示す図である。
【図２】装置のハードウェア構成例を示す図である。
【図３】業務アプリケーションが動作する装置のソフトウェア構成例を示す図である。
【図４】データ所在調整装置のソフトウェア構成例を示す図である。
【図５（ａ）】データ所在装置テーブルの一例を示す図である。
【図５（ｂ）】データ所在媒体テーブルの一例を示す図である。
【図６】レプリケーション先装置テーブルの一例を示す図である。
【図７（ａ）】参照時刻テーブルの一例を示す図である。
【図７（ｂ）】更新時刻テーブルの一例を示す図である。
【図８】媒体特性テーブルの一例を示す図である。
【図９】データ参照処理の一例を示す図である。
【図１０】データ更新処理の一例を示す図である。
【図１１】データアクセス解析処理の一例を示す図である。
【図１２】アクセスパターン送信処理の一例を示す図である。
【図１３】データ所在調整装置処理の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、データ共有システム及びデータ共有方法の実施の形態を詳細に説明する。
【００１１】
図１は、システムの構成例を示す図である。装置Ａ２０は、ネットワーク６０を介して、装置Ｂ３０、装置Ｃ４０、データ所在調整装置５０と接続されている。
【００１２】
装置Ａ２０、装置Ｂ３０、装置Ｃ４０は、データ共有部１０を有しており、業務アプリケーションが実行される装置である。
【００１３】
データ所在調整装置５０は、装置Ａ２０〜装置Ｃ４０のいずれか一つと送受信されるデータの所在を調整する装置である。
【００１４】
装置Ａ２０、装置Ｂ３０、装置Ｃ４０、およびデータ所在調整装置５０は、ネットワーク６０を介してお互いに通信をしてデータをやりとりすることでデータ共有を実現するシステムを構成している。
【００１５】
ただし、システム構成はこれに限らず、データ共有部１０を有する装置がデータ所在調整装置５０を兼ねてもよい。また、データ共有部１０を有する二以上の装置がネットワークを介して接続されていればよい。また、単一の装置上にデータ共有部１０と複数の業務アプリケーションを有し、データ共有部を介して複数の業務アプリケーションがデータをやりとりするシステム構成であっても良い。
【００１６】
図２は図１で示した各装置のハードウェア構成例を示す図である。図２で示すように装置１０１は、主制御部１０２、主記憶部１０３、入力部１０４、通信部１０５を備える。装置Ａ２０、装置Ｂ３０、装置Ｃ４０及びデータ所在調整装置５０は同じハードウェア構成である。
【００１７】
主制御部１０２は、主記憶部１０３に記録されたプログラムコードをプロセッサが実行することで、装置１０１における情報処理を制御する。  主記憶部１０３は、装置１０１に関する情報を不揮発的に記憶する。
【００１８】
入力部１０４は、装置１０１に関する情報を手動で入力する必要がある際に、装置１０１に入力を行う。
【００１９】
通信部１０５は、ネットワーク６０を介して、他装置の通信部１０５およびデータ所在調整装置５０の通信部３０８と接続し、他装置と情報を送受信する。
【００２０】
本構成は、例えば、主制御部１０２をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で、主記憶部１０３をハードディスクで、入力部１０４をキーボードで、通信部１０５をイーサネット（登録商標）で、実現することにより、従来からよく知られた装置で構成可能である。
【００２１】
図３は、図１に示したデータ共有部１０を有する各装置のソフトウェア構成例を示す図である。ここでは、例として図１に示した装置Ａ２０について記載する。図３で示すように、装置Ａ２０は、一以上の業務アプリケーション２０１、データ共有部１０、を備える。これらの実体は、図２に示した主記憶部１０３に格納されたソフトウェアプログラムおよびデータであり、実行時にはＲＡＭに読み込まれてＣＰＵ（プロセッサ）によって実行される。
【００２２】
業務アプリケーション２０１は、業務を行うためのアプリケーションであり、
データ共有部１０を介して自装置または他装置に格納されたデータを参照または更新する。
【００２３】
データ共有部１０は、データアクセス部２０２、データ格納部２０３、アクセスパターン解析部２０４、通信プログラム２０５、を備える。
【００２４】
データアクセス部２０２は、データ所在装置テーブル２０６、データ所在媒体テーブル２０７、レプリケーション先装置テーブル２０８、データ所在装置テーブル受信プログラム２０９、を備える。
【００２５】
データ所在装置テーブル２０６は、業務アプリケーションから参照または更新されるデータが存在する装置を記憶する
データ所在媒体テーブル２０７は、業務アプリケーションから参照または更新されるデータが存在する媒体を記憶する。
【００２６】
レプリケーション先装置テーブル２０８は、レプリケーション先としてデータを送信する装置を記憶する。
【００２７】
データ所在装置テーブル受信プログラム２０９は、データ所在調整装置５０から送信されるデータ所在装置テーブルを受信する。
【００２８】
データ格納部２０３は、業務アプリケーションが使用するデータを格納しており、メモリ２１０、データベース２１１、を備える。ただし、データ格納部を構成する記憶媒体はこれに限らず、一以上の記憶媒体から構成されていればよい。
【００２９】
アクセスパターン解析部２０４は、参照時刻テーブル２１２、更新時刻テーブル２１３、解析間隔保持部２１４、サンプリング間隔保持部２１５、アクセス分布解析プログラム２１６、離散フーリエ変換プログラム２１７、周波数解析プログラム２１８、媒体特性テーブル２１９、データ所在媒体移動プログラム２２０、アクセスパターン記憶部２２１、アクセスパターン送信間隔保持部２２２、アクセスパターン送信プログラム２２３、を備える。
【００３０】
参照時刻テーブル２１２は、業務アプリケーションがデータを参照した時刻を格納する。業務アプリケーション２０１が、データアクセス部２０２を介してデータを参照する際に、データアクセス部２０２が参照時刻テーブル２１２に参照時刻を書込む。
【００３１】
更新時刻テーブル２１３は、業務アプリケーションがデータを更新した時刻を格納する。業務アプリケーション２０１が、データアクセス部２０２を介してデータを更新する際に、データアクセス部２０２が更新時刻テーブル２１３に更新時刻を書込む。
【００３２】
解析間隔保持部２１４は、アクセスパターンを解析してデータ所在媒体を調整する時間間隔を保持する。解析間隔保持部２１４が保持する時間間隔は、ユーザが設定する。データ所在媒体の調整の結果、媒体間のデータ移動が実行されて処理時間がかかる可能性があるため、１分から１０分程度の時間間隔を設定するのが望ましい。
【００３３】
サンプリング間隔保持部２１５は、アクセス分布解析をする際のサンプリング間隔を保持する。サンプリング間隔保持部２１５が保持するサンプリング間隔は、ユーザが設定する。サンプリング間隔が短いほど時間あたりのサンプリング数が多くなるため解析精度の向上が見込めるが、その反面、計算量が増加し処理時間が長くなる。例えば、１ミリ秒から１０ミリ秒程度のサンプリング間隔を設定する。
【００３４】
アクセス分布解析プログラム２１６は、参照時刻テーブル２１２および更新時刻テーブル２１３に格納された時刻群から、サンプリング間隔保持部２１５に保持されたサンプリング間隔内に何度参照および更新が行われたかを表すアクセス分布に変換する。
【００３５】
離散フーリエ変換プログラム２１７は、アクセス分布解析プログラム２１６から出力されたアクセス分布に対して離散フーリエ変換を行い、周波数領域のアクセスパターンに変換する。
【００３６】
周波数解析プログラム２１８は、離散フーリエ変換プログラム２１７から出力された周波数領域のアクセスパターンからピーク周波数を決定し、媒体特性テーブル２１９を参照して、データ所在媒体を調整する。
【００３７】
媒体特性テーブル２１９は、周波数解析プログラム２１８が参照する媒体の特性を格納する。媒体特性テーブル２１９は、ユーザが設定する。媒体を追加する際には、媒体特性テーブル２１９をユーザが書き換えることによって、周波数解析プログラム２１８が追加された媒体を含めてデータ所在媒体の調整を行う。
【００３８】
データ所在媒体移動プログラム２２０は、アクセスパターン解析の結果から、装置内でデータが存在する媒体を変更する際にデータを移動する。
【００３９】
アクセスパターン記憶部２２１は、離散フーリエ変換プログラム２１８から出力された周波数領域のアクセスパターンを記憶する。
【００４０】
アクセスパターン送信間隔保持部２２２は、データ所在調整装置５０へアクセスパターンを送信する時間間隔を保持する。アクセスパターン送信間隔保持部２２２が保持する時間間隔はユーザが設定する。データ所在調整装置５０へ送信するアクセスパターンは、後述のデータ所在装置調整プログラム３０３で使用されるため、後述の調整間隔保持部３０２が保持する時間間隔と同じ値にすることが望ましい。
【００４１】
アクセスパターン送信プログラム２２３は、データ所在調整装置５０へアクセスパターンを送信する。
【００４２】
通信プログラム２０５は、ネットワーク６０を介して、ネットワーク６０に接続している他装置の通信プログラムとデータを送受信する。
【００４３】
図４は、データ所在調整装置５０のソフトウェア構成例を示す図である。図４で示すように、データ所在調整装置５０は、レプリケーション閾値保持部３０１、調整間隔保持部３０２、データ所在装置調整プログラム３０３、データ所在装置移動プログラム３０４、アクセスパターン収集プログラム３０５、データ所在装置テーブル送信プログラム３０６、レプリケーション先装置テーブル送信プログラム３０７、通信プログラム３０８、を備える。これらの実体は、図２に示した主記憶部１０３に格納されたソフトウェアプログラムおよびデータであり、実行時にはＲＡＭに読み込まれてＣＰＵ（プロセッサ）によって実行される。
【００４４】
レプリケーション閾値保持部３０１は、各装置が参照するデータをレプリケーションにより各装置に配置するかどうかの判断に用いるピーク周波数の閾値を保持する。レプリケーション閾値保持部３０１が保持する閾値はユーザが設定する。例えばこの閾値を１Ｈｚに設定すると１秒間に1回の頻度で参照するデータについてはレプリケーションを行う。
【００４５】
調整間隔保持部３０２は、データ所在装置調整プログラム３０３を起動する時間間隔を保持する。調整間隔保持部３０２が保持する時間間隔はユーザが設定する。データ所在装置の調整の結果、装置間のデータ移動が実行されて処理時間がかかる可能性があるため、１時間から１０時間程度の時間間隔を設定するのが望ましい。
【００４６】
データ所在装置調整プログラム３０３は、各装置から送信されたアクセスパターンからデータ所在装置を調整する。
【００４７】
データ所在装置移動プログラム３０４は、データ所在装置調整の結果、データが存在する装置を変更する際にデータを移動する。
【００４８】
アクセスパターン収集プログラム３０５は、各装置から送信されたアクセスパターンを送信する。
【００４９】
データ所在装置テーブル送信プログラム３０６は、データ所在装置調整の結果、データが存在する装置を変更する際に、各装置に対してデータ所在装置テーブルを送信する。
【００５０】
レプリケーション先装置テーブル送信プログラム３０７は、データ所在装置調整の結果、データが存在する装置を変更する際に、各装置に対してレプリケーション先装置テーブルを送信する。
【００５１】
通信プログラム３０８は、ネットワーク６０を介してネットワーク６０に接続している他装置の通信プログラムとデータを送受信する。
【００５２】
図５（ａ）は、データ所在装置テーブル２０６の一例を示す図である。図５（ａ）に示すように、データ所在装置テーブル２０６は、データ名称列４０１、参照データ所在装置列４０２、更新データ所在装置列４０３、を備える。
【００５３】
データ名称列４０１は、データ名称を表す列である。例えば、図５（ａ）のデータ所在装置テーブル２０６では、少なくともＤＡＴＡ−ＸＸＸ、ＤＡＴＡ−ＹＹＹ、ＤＡＴＡ−ＺＺＺという名称のデータが存在していることを示している。
【００５４】
参照データ所在装置列４０２は、対応するデータ名称のデータを参照する際のデータが存在する装置を表す。例えば、図５（ａ）のデータ所在装置テーブル２０６では、ＤＡＴＡ−ＸＸＸおよびＤＡＴＡ−ＹＹＹを参照する際には装置Ａに、ＤＡＴＡ−ＺＺＺを参照する際には装置Ｃにデータが存在することを示している。
【００５５】
更新データ所在装置列４０３は、対応するデータ名称のデータを更新する際のデータが存在する装置を表す。例えば、図５（ａ）のデータ所在装置テーブル２０６では、ＤＡＴＡ−ＸＸＸを更新する際には装置Ａに、ＤＡＴＡ−ＹＹＹを更新する際には装置Ｂに、ＤＡＴＡ−ＺＺＺを更新する際には装置Ｃにデータが存在することを示している。
【００５６】
図５（ｂ）は、データ所在媒体テーブル２０７の一例を示す図である。図５（ｂ）に示すように、データ所在媒体テーブル２０７は、データ名称列４０４、データ所在媒体列４０５、を備える。
【００５７】
データ名称列４０４は、データ名称を表す列である。例えば、図５（ｂ）のデータ所在装置テーブル２０７では、少なくともＤＡＴＡ−ＸＸＸ、ＤＡＴＡ−ＹＹＹ、ＤＡＴＡ−ＺＺＺという名称のデータが存在していることを示している。
【００５８】
データ所在媒体列４０５は、対応するデータ名称のデータが存在する媒体を表す列である。例えば、図５（ｂ）のデータ所在装置テーブル２０７では、ＤＡＹＡ−ＸＸＸはメモリＰに、ＤＡＴＡ−ＹＹＹはデータベースＳに存在し、ＤＡＴＡ−ＺＺＺは自装置に存在しないことを示している。
【００５９】
図６は、レプリケーション先装置テーブル２０８の一例を示す図である。図６に示すように、レプリケーション先装置テーブル２０８は、データ名称列５０１、レプリケーション先装置列５０２、を備える。
【００６０】
データ名称列５０１は、データ名称を表す列である。例えば、図６のレプリケーション先装置テーブル２０８では、少なくともＤＡＴＡ−ＸＸＸ、ＤＡＴＡ−ＹＹＹ、ＤＡＴＡ−ＺＺＺという名称のデータが存在していることを示している。
【００６１】
レプリケーション先装置列５０２は、対応するデータ名称のデータのレプリケーション先となる装置を表す列である。例えば、図６のレプリケーション先装置テーブル２０８では、ＤＡＴＡ−ＸＸＸのレプリケーション先装置は装置Ｂ、装置Ｃであり、ＤＡＴＡ−ＹＹＹおよびＤＡＴＡ−ＺＺＺについてはレプリケーションを行わないことを示している。
【００６２】
図７（ａ）は、参照時刻テーブル２１２の一例を示す図である。図７（ａ）に示すように、参照時刻テーブル２１２は、データ名称列６０１、参照時刻列６０２、を備える。
【００６３】
データ名称列６０１は、データ名称を表す列である。例えば、図７（ａ）の参照時刻テーブル２１２では、参照があった順にデータ名称が並んでいる。
【００６４】
参照時刻列６０２は、対応するデータ名称のデータに対して参照が行われた時刻を表す列である。
【００６５】
図７（ｂ）は、更新時刻テーブル２１３の一例を示す図である。図７（ｂ）に示すように、更新時刻テーブル２１３は、データ名称列６０３、更新時刻列６０４、を備える。
【００６６】
データ名称列６０３は、データ名称を表す列である。例えば、図７（ｂ）の更新時刻テーブル２１３では、更新があった順にデータ名称が並んでいる。
【００６７】
更新時刻列６０４は、対応するデータ名称のデータに対して更新が行われた時刻を表す列である。
【００６８】
図８は、媒体特性テーブル２１９の一例を示す図である。図８に示すように、媒体特性テーブル２１９は、データ名称列７０１、ピーク周波数列７０２、を備える。
【００６９】
媒体名称列７０１は、媒体名称を表す列である。例えば、図８の媒体特性テーブル２１９では、自装置にメモリＰ、メモリＱ、データベースＳ、データベースＴという媒体が存在していることを示している。
【００７０】
ピーク周波数列７０２は、対応する媒体名称の媒体へ格納すべきデータのピーク周波数を表した列である。例えば、図８の媒体特性テーブル２１９では、データのピーク周波数が２００Ｈｚ以上であればメモリＰに、１００Ｈｚ以上２００Ｈｚ未満であればメモリＱに、１０Ｈｚ以上１００Ｈｚ未満であればデータベースＳに、１０Ｈｚ未満であればデータベースＴにデータを格納する。
【００７１】
データに対するピーク周波数が高いほど、業務アプリケーションから頻繁にアクセスされる。したがって、スループットが大きい媒体に、高いピーク周波数となるデータが格納されるように媒体特性テーブル２１９を設定する。
【００７２】
図９は、データ参照処理の一例を示す図である。図９で示す処理の流れは、業務アプリケーション２０１または通信プログラム２０５がデータアクセス部２０２を介してデータを参照する際の処理を表す。
【００７３】
まず、業務アプリケーション２０１または通信プログラム２０５がデータアクセス部２０２に対してデータ名称を指定してデータを参照する際に、データアクセス部２０２は、参照するデータ名称と参照時刻を参照時刻テーブル２１２へ書込む（Ｓ１０１）。すなわち、参照時刻記憶部は、データ参照要求に基づいて、参照するデータ名称と参照時刻とを記憶する。
【００７４】
データアクセス部２０２は、データ所在装置テーブル２０６を参照し、参照するデータ名称からデータ所在装置を取得する（Ｓ１０２）。すなわち、データ所在装置記憶部に、データの所在が記憶されており、参照するデータのデータ名称に基づいて、データが所在している装置を取得する。
【００７５】
データアクセス部２０２は、Ｓ１０２において取得したデータ所在装置が自装置であるかどうか判定する（Ｓ１０３）。データ所在装置が自装置であればＳ１０４へ、自装置でなければＳ１０６へ処理を進める。
【００７６】
データアクセス部２０２は、データ所在媒体テーブル２０７を参照し、参照するデータ名称からデータ所在媒体を取得する（Ｓ１０４）。
【００７７】
データアクセス部２０２は、Ｓ１０４において取得したデータ所在媒体へアクセスし、参照するデータ名称からデータを取得し、業務アプリケーション２０１または通信プログラム２０５へと渡す（Ｓ１０５）。
【００７８】
データアクセス部２０２は、Ｓ１０２において取得したデータ所在装置へ通信プログラム２０５を介してアクセスし、参照するデータ名称からデータを取得し、業務アプリケーション２０１へと渡す（Ｓ１０６）。なお、通信プログラム２０５を介してアクセスする他装置においても、図９で示す処理の流れが実行されてデータが取得される。
【００７９】
以上の処理を行うことにより、業務アプリケーション２０１がデータ名称を指定することで、データが存在する媒体や装置によらず、データアクセス部２０２がデータを取得する。また、業務アプリケーション２０１から参照されたデータ名称および参照時刻が参照時刻テーブル２１２に蓄積される。
【００８０】
図１０は、データ更新処理の一例を示す図である。図１０で示す処理の流れは、業務アプリケーション２０１がデータアクセス部２０２を介してデータを更新する際の処理を表す。
【００８１】
まず、業務アプリケーション２０１または通信プログラム２０５がデータアクセス部２０２に対してデータ名称を指定してデータを更新する際に、データアクセス部２０２は、更新するデータ名称と更新時刻を更新時刻テーブル２１３へ書込む（Ｓ２０１）。
【００８２】
データアクセス部２０２は、データ所在装置テーブル２０６を参照し、更新するデータ名称からデータが所在している装置を取得する（Ｓ２０２）。
【００８３】
データアクセス部２０２は、Ｓ２０２において取得したデータ所在装置が自装置であるかどうか判定する（Ｓ２０３）。データ所在装置が自装置であればＳ２０４へ、自装置でなければＳ２０７へ処理を進める。
【００８４】
データアクセス部２０２は、データ所在媒体テーブル２０７を参照し、更新するデータ名称からデータ所在媒体を取得する（Ｓ２０４）。
【００８５】
データアクセス部２０２は、Ｓ２０４において取得したデータ所在媒体へアクセスし、更新するデータ名称からデータを特定して更新する（Ｓ２０５）。つまり、複数のアプリケーションからアクセス要求を受信するデータ共有装置の通信部１０５と、アクセス要求に基づいてアクセスパターンを算出し、アクセスパターンに基づいてデータの最適な所在媒体であるデータ所在媒体を決定し、データ所在媒体が、データ所在媒体テーブル２０７に記憶された媒体と相違する場合は、データ所在媒体記憶部に記憶された媒体を更新するアクセスパターン解析部と、を備える。
【００８６】
データアクセス部２０２は、レプリケーション先装置テーブル２０８を参照し、更新したデータ名称からレプリケーション先となる装置を取得し、レプリケーション先装置へデータを送信する（Ｓ２０６）。データ所在装置は、データを削除し、レプリケーション先となる装置は、データを受信した後、自装置に記憶する。
【００８７】
データアクセス部２０２は、Ｓ２０２において取得したデータ所在装置へ通信プログラム２０５を介してアクセスし、更新するデータ名称からデータを特定して更新する（Ｓ２０７）。なお、通信プログラム２０５を介してアクセスする他装置においても、図１０で示す処理の流れが実行されてデータが更新される。
【００８８】
以上の処理を行うことにより、業務アプリケーション２０１がデータ名称を指定することで、データが存在する媒体や装置によらず、データアクセス部２０２がデータを更新する。また、業務アプリケーション２０１から更新されたデータ名称および更新時刻が更新時刻テーブル２１３に蓄積される。
【００８９】
図１１は、データアクセス解析処理の一例を示す図である。図１１で示す処理の流れは、解析間隔保持部２１４が保持する時間間隔毎に実行される。
【００９０】
アクセスパターン解析部２０４は、データ所在装置テーブル２０６に格納される各データ名称のデータについて、Ｓ３０２からＳ３０８までの処理を繰り返し実行する（Ｓ３０１）。  アクセス分布解析プログラム２１６は、参照時刻テーブル２１２および更新時刻テーブル２１３を参照し、サンプリング間隔保持部２１５が保持する時間間隔内に該データが参照された回数および更新された回数を数えて、該データの参照アクセス分布および更新アクセス分布を算出する（Ｓ３０２）。この処理により、該データが参照された回数および更新された回数が、サンプリング間隔保持部２１５が保持する時間間隔で離散化されるため、Ｓ３０３における離散フーリエ変換が可能になる。
【００９１】
離散フーリエ変換プログラム２１７は、アクセス分布解析プログラム２１６が算出した該データの参照アクセス分布および更新アクセス分布に対して、離散フーリエ変換を行い、該データの周波数領域の参照アクセスパターン及び更新アクセスパターンを算出する。また、離散フーリエ変換プログラム２１７は、アクセスパターン記憶部３０２に該データの参照アクセスパターン及び更新アクセスパターンを格納する（Ｓ３０３）。
【００９２】
周波数解析プログラム２１８は、離散フーリエ変換プログラム２１７が算出した該データの周波数領域の参照アクセスパターン及び更新アクセスパターンの強度を平均化し、強度が最大となる周波数を該データのピーク周波数とする（Ｓ３０４）。ここでの強度とは、各周波数に対する複素数の絶対値を表す。
【００９３】
アクセスパターン解析部２０４は、媒体特性テーブル２１９を参照し、周波数解析プログラム２１８が算出したピーク周波数に対応する媒体を該データの最適媒体とする（Ｓ３０５）。
【００９４】
アクセスパターン解析部２０４は、該データが存在する媒体と、Ｓ３０５において決定した該データの最適媒体が異なるかどうか判定する（Ｓ３０６）。該データが存在する媒体と該データの最適媒体が異なればＳ３０７へ、同じであればＳ３０８へ処理を進める。
【００９５】
データ所在媒体移動プログラム２２０は、データをＳ３０５において決定した最適媒体へと移動し、データ所在媒体テーブル２０７を更新する（Ｓ３０７）。
【００９６】
アクセスパターン解析部２０４は、データ所在装置テーブル２０６に格納される各データ名称のデータについて、Ｓ３０２からＳ３０７までの処理を実行したならばＳ３０９へ処理を進める（Ｓ３０８）。
【００９７】
アクセスパターン解析部２０４は、参照時刻テーブル２１２および更新時刻テーブル２１３の全行を削除する（Ｓ３０９）。この処理により、参照時刻テーブル２１２および更新時刻テーブル２１３の行数が際限なく増えていくことを防ぐ。
【００９８】
以上の処理を行うことにより、各データが、業務アプリケーション２０１からの実際のアクセスに応じて自装置内で最適な媒体へと格納される。
【００９９】
図１２は、アクセスパターン送信処理の一例を示す図である。図１２で示す処理の流れは、アクセスパターン送信間隔保持部２２２が保持する時間間隔毎に実行される。
【０１００】
アクセスパターン送信プログラム２２３は、データ所在装置テーブル２０６に格納される各データ名称のデータについて、Ｓ４０２からＳ４０３の処理を繰り返し実行する（Ｓ４０１）。
【０１０１】
アクセスパターン送信プログラム２２３は、アクセスパターン２２１に格納される該データの参照アクセスパターン群および更新アクセスパターン群の強度を平均化して、該データの送信参照アクセスパターンおよび送信更新アクセスパターンを算出する（Ｓ４０２）。
【０１０２】
アクセスパターン送信プログラム２２３は、Ｓ４０２において算出された該データの送信参照アクセスパターンおよび送信更新アクセスパターンを、通信プログラム２０５を介してデータ所在調整６０へと送信する。
【０１０３】
アクセスパターン送信プログラム２２３は、データ所在装置テーブル２０６に格納される各データ名称のデータについて、Ｓ４０２からＳ４０３の処理を実行したならば終了へと処理を進める（Ｓ４０４）。
【０１０４】
以上の処理を行うことにより、各データの送信参照アクセスパターンおよび送信更新アクセスパターンがデータ所在装置６０へと送信される。
【０１０５】
図１３は、データ所在装置調整処理の一例を示す図である。図１３で示す処理の流れは、調整間隔保持部３０２が保持する時間間隔毎に実行される。
【０１０６】
データ所在装置調整プログラム３０３は、アクセスパターン収集プログラム３０５から渡される各データの参照アクセスパターンおよび更新アクセスパターンについて、Ｓ５０２からＳ５０８の処理を繰り返し実行する（Ｓ５０１）。
【０１０７】
データ所在装置調整プログラム３０３は、該データについての各装置の更新アクセスパターンからそれぞれ強度が最大となる周波数を更新ピーク周波数として算出する（Ｓ５０２）。
【０１０８】
データ所在装置調整プログラム３０３は、Ｓ５０２において算出した該データについての各装置の更新ピーク周波数を比較し、更新ピーク周波数が最大となる装置を該データの最適更新装置とする（Ｓ５０３）。
【０１０９】
データ所在装置調整プログラム３０３は、該データについての各装置の参照アクセスパターンからそれぞれ強度が最大となる周波数を参照ピーク周波数として算出する（Ｓ５０４）。
【０１１０】
データ所在装置調整プログラム３０３は、レプリケーション閾値保持部３０１が保持する閾値以上の参照ピーク周波数となる装置群をレプリケーション先装置群とする（Ｓ５０５）。
【０１１１】
データ所在装置調整プログラム３０３は、該データについての各装置に対するデータ所在装置テーブルを作成する。Ｓ５０５において決定したレプリケーション先装置群に属する装置に対する参照所在装置は自装置に、レプリケーション先装置群に属さない装置に対する参照所在装置は最適更新装置にする。Ｓ５０３において決定した最適更新装置に対する更新所在装置は自装置に、他の装置に対する更新所在装置は最適更新装置にする（Ｓ５０６）。
【０１１２】
Ｓ５０６の処理により、レプリケーション閾値保持部３０１が保持する閾値以上の参照ピーク周波数となる装置すなわち該データについて閾値以上の参照が発生する装置（参照が多い装置）は、最適更新装置から自装置へとレプリケーションされたデータを参照し、レプリケーション閾値保持部３０１が保持する閾値未満の参照ピーク周波数となる装置すなわち該データについて閾値未満の参照が発生する装置（参照が少ない装置）は、最適更新装置のデータを参照することになる。
【０１１３】
また、Ｓ５０６の処理により、該データについて更新ピーク周波数が最大となる装置すなわち該データについて最も更新が多い装置は、自装置のデータを更新し、他の装置は、最適更新装置のデータを更新することになる。
【０１１４】
データ所在装置調整プログラム３０３は、Ｓ５０５において決定したレプリケーション先装置群から最適更新装置へ送信するレプリケーション先装置テーブルを作成する（Ｓ５０７）。
【０１１５】
データ所在装置移動プログラム３０４は、現在の更新装置からＳ５０３において決定した最適更新装置へとデータを移動する。また、データ所在装置移動プログラム３０４は、最適更新装置からレプリケーション先装置群に属する装置へデータをコピーする（Ｓ５０８）。
【０１１６】
データ所在装置調整プログラム３０３は、アクセスパターン収集プログラム３０５から渡される各データの参照アクセスパターンおよび更新アクセスパターンについて、Ｓ５０２からＳ５０８の処理を実行したならば、Ｓ５１０に処理を進める（Ｓ５０９）。
【０１１７】
データ所在装置テーブル送信プログラム３０６は、通信プログラム３０８を介して、Ｓ５０１からＳ５０９までの処理において作成したデータ所在装置テーブルを各装置へ送信する。レプリケーション先装置テーブル送信プログラム３０７は、通信プログラム３０８を介して、Ｓ５０１からＳ５０９までの処理において作成したレプリケーション先装置テーブルを各装置へ送信する（Ｓ５１０）。
【０１１８】
以上の処理を行うことにより、システム内で最も多くデータを更新する装置がシステム内の更新装置となり、他の装置は更新装置にアクセスすることでデータを更新することになる。また、閾値よりも多くデータを参照する装置には、更新装置からレプリケーションされた自装置のデータを参照し、閾値よりも少なくデータを参照する装置は更新装置にアクセスすることでデータを参照することになる。
【０１１９】
以上の実施形態によれば、各業務アプリケーションは自装置のデータアクセス部にアクセスしてデータを参照または更新するだけでよくなり、業務アプリケーションがデータ共有のためのプログラムコードを持つ必要がないので、アプリを開発する際の生産性が向上する。また、装置や媒体を追加した際の業務アプリケーションの改修を行わなくてよくなる。加えて、業務アプリケーションからのデータへのアクセスパターンに基づいて、データの所在装置および所在媒体が自動的に最適なものになる。
【０１２０】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０１２１】
１０  データ共有部
５０  データ所在調整装置
２０１  業務アプリケーション
２０２  データアクセス部
２０３  データ格納部
２０４  アクセスパターン解析部
２０５  通信プログラム
２０６  データ所在装置テーブル
２０７  データ所在媒体テーブル
２０８  レプリケーション先装置テーブル
２０９  データ所在装置テーブル受信プログラム
２１０  メモリ
２１１  データベース
２１２  参照時刻テーブル
２１３  更新時刻テーブル
２１４  解析間隔保持部
２１５  サンプリング間隔保持部
２１６  アクセス分布解析プログラム
２１７  離散フーリエ変換プログラム
２１８  周波数解析プログラム
２１９  媒体特性テーブル
２２０  データ所在媒体移動プログラム
２２１  アクセスパターン記憶部
２２２  アクセスパターン送信間隔保持部
２２３  アクセスパターン送信プログラム
３０１  レプリケーション閾値保持部
３０２  調整間隔保持部
３０３  データ所在装置調整プログラム
３０４  データ所在装置移動プログラム
３０５  アクセスパターン収集プログラム
３０６  データ所在装置テーブル送信プログラム
３０７  レプリケーション先装置テーブル送信プログラム
３０８  通信プログラム
【図１】
2014134988.tif 000003
【図２】
2014134988.tif 000004
【図３】
2014134988.tif 000005
【図４】
2014134988.tif 000006
【図５（ａ）】
2014134988.tif 000007
【図５（ｂ）】
2014134988.tif 000008
【図６】
2014134988.tif 000009
【図７（ａ）】
2014134988.tif 000010
【図７（ｂ）】
2014134988.tif 000011
【図８】
2014134988.tif 000012
【図９】
2014134988.tif 000013
【図１０】
2014134988.tif 000014
【図１１】
2014134988.tif 000015
【図１２】
2014134988.tif 000016
【図１３】
2014134988.tif 000017