(57)【要約】【課題】プラットフォームの変更に伴い発生するアプリケーションの改修および新プラットフォームへの移行を行う際、業務プログラムに極力手を加えずにＤＢの切り替えを実現し性能的な問題を解決する。【解決手段】アプリケーションサーバは、データベースとデータの送受信を行う通信部と、業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、データを一時的に記憶する一時記憶領域を有する主記憶部と、業務プログラムまたは解析プログラムを実行する制御部とを備え、制御部は、解析プログラムを実行して業務プログラムに含まれる所定の条件で実行される構文を抽出し、抽出した１以上の構文を一時記憶領域に記憶すると共に、記憶した当該１以上の構文を実行して得られる複数のデータをデータベースより前記通信部を介して受信し一時記憶領域に記憶する。【選択図】  図１
2019204250.tif 000002
【特許請求の範囲】
【請求項１】
データベースとデータの送受信を行う通信部と、
業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、
データを一時的に記憶する一時記憶領域を有する主記憶部と、
前記業務プログラムまたは前記解析プログラムを実行する制御部と
を備え、
前記制御部は、前記解析プログラムを実行して前記業務プログラムに含まれる所定の条件で実行される構文を抽出し、抽出した１以上の前記構文を前記一時記憶領域に記憶すると共に、記憶した当該１以上の構文を実行して得られる複数のデータを前記データベースより前記通信部を介して受信し前記一時記憶領域に記憶する
ことを特徴とするアプリケーションサーバ。
【請求項２】
請求項１に記載のアプリケーションサーバであって、
前記一時記憶領域に、データを格納するための処理部品である共通部品を登録する領域を設け、
前記制御部は、前記解析プログラムを用いて、前記業務プログラムおよび前記業務プログラムの実行時に必要になる入力データが存在した場合には当該入力データも含めて解析し、前記業務プログラムが使用するデータおよび使用すると想定されるデータを一括して前記データベースから取得する少なくとも１つの構文を作成し、当該構文を前記共通部品に登録し、前記業務プログラムが前記データを取得する場合には前記共通部品を用いて当該データを取得するように前記業務プログラムを修正する
ことを特徴とするアプリケーションサーバ。
【請求項３】
請求項２に記載のアプリケーションサーバであって、
前記制御部は、前記業務プログラムを実行時に前記共通部品を用いて取得したデータが前記一時記憶領域に格納できるか否か当該一時記憶領域の空きサイズをチェックし、当該空きサイズが不足する場合には前記構文に替わる代替の構文を作成し前記共通部品に登録して実行する
ことを特徴とするアプリケーションサーバ。
【請求項４】
請求項３に記載のアプリケーションサーバであって、
前記制御部は、前記一時記憶領域の空きサイズでは前記データベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、追い出せるデータが有れば当該データを前記補助記憶部へ移動させて前記取得したデータを前記一時記憶領域に格納する
ことを特徴とするアプリケーションサーバ。
【請求項５】
請求項４に記載のアプリケーションサーバであって、
前記一時記憶領域から追い出せるデータとは、当該一時記憶領域の中で最も参照が古いデータである
ことを特徴とするアプリケーションサーバ。
【請求項６】
請求項４に記載のアプリケーションサーバであって、
前記制御部は、前記一時記憶領域から追い出せるデータが無い場合には当該一時記憶領域に残る空きサイズで格納できるデータ範囲を一括して取得できる構文を作成し前記共通部品に登録して実行する
ことを特徴とするアプリケーションサーバ。
【請求項７】
請求項２に記載のアプリケーションサーバであって、
前記業務プログラムを修正することにより、前記業務プログラムの中で前記データベースのデータを取得するための構文は前記共通部品に登録した構文を用いるように修正され、当該データは前記一時記憶領域から前記業務プログラムに渡される
ことを特徴とするアプリケーションサーバ。
【請求項８】
請求項３または６に記載のアプリケーションサーバであって、
前記制御部は、前記作成した構文を実行した履歴を実行ログとして保存し、前記業務プログラムの実行終了後に当該実行ログを分析して、データ取得により適した構文が判明すれば当該構文を前記共通部品に登録する
ことを特徴とするアプリケーションサーバ。
【請求項９】
サーバによる業務アプリケーションの実行方法であって、
解析プログラムを用いて業務プログラムを解析して当該業務プログラムから所定の条件で繰り返し実行される構文を抽出する第１のステップと、
抽出した１以上の前記構文を前記サーバの主記憶部が有する一時記憶領域に記憶する第２のステップと、
記憶した前記１以上の構文を実行して得られる複数のデータをデータベースから取得して前記一時記憶領域に記憶する第３のステップと、
前記業務プログラムの実行時に使用するデータを前記一時記憶領域から取得する第４のステップと
を有する業務アプリケーションの実行方法。
【請求項１０】
請求項９に記載の業務アプリケーションの実行方法であって、
前記第１のステップは、前記解析プログラムを用いて、前記業務プログラムおよび前記業務プログラムの実行時に必要になる入力データが存在する場合には当該入力データも含めて解析し、前記業務プログラムが使用するデータおよび使用すると想定されるデータを一括して前記データベースから取得する少なくとも１つの構文を作成することを含み、
前記第２のステップは、前記構文を前記一時記憶領域にデータを格納するための処理部品として設けた共通部品に登録することを含み、
前記第４のステップは、前記共通部品を用いて前記データを取得するように前記業務プログラムを修正することを含む
業務アプリケーションの実行方法。
【請求項１１】
請求項１０に記載の業務アプリケーションの実行方法であって、
前記業務プログラムの実行時に前記共通部品を用いて取得したデータが前記一時記憶領域に格納できるか否か当該一時記憶領域の空きサイズをチェックし、当該空きサイズが不足する場合には前記構文に替わる代替の構文を生成し前記共通部品に登録して実行する第５のステップ
を有する業務アプリケーションの実行方法。
【請求項１２】
請求項１１に記載の業務アプリケーションの実行方法であって、
前記一時記憶領域の空きサイズでは前記データベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、有る場合には当該一時記憶領域の中で最も参照が古いデータを前記サーバの他の記憶部へ移動させて前記取得したデータを前記一時記憶領域に格納する第６のステップ
を有する業務アプリケーションの実行方法。
【請求項１３】
請求項１２に記載の業務アプリケーションの実行方法であって、
前記一時記憶領域から追い出せるデータが無い場合には当該一時記憶領域に残る空きサイズで格納できるデータ範囲を一括して取得できる構文を作成し前記共通部品に登録して実行する第７のステップ
を有する業務アプリケーションの実行方法。
【請求項１４】
請求項１０に記載の業務アプリケーションの実行方法であって、
前記第４のステップは、前記業務プログラムの中で前記データベースのデータを取得するための構文を前記共通部品に登録した構文を用いるように前記業務プログラムを修正して、当該データを前記一時記憶領域から前記業務プログラムに渡す処理を行う
業務アプリケーションの実行方法。
【請求項１５】
請求項１１または１３に記載の業務アプリケーションの実行方法であって、
前記作成した構文を実行した履歴を実行ログとして保存し、前記業務プログラムの実行終了後に当該実行ログを分析して、データ取得により適した構文が判明すれば当該構文を前記共通部品に登録する第８のステップ
を有する業務アプリケーションの実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの改修および新プラットフォームへの移行を行う際に、性能的な問題を改善するアプリケーションサーバおよびサーバによる業務アプリケーションの実行方法に関する。
【背景技術】
【０００２】
カラムナーデータベースからデータを取得するときの性能的な問題として、カラム単位で主記憶装置への転送が行われると、同一のカラムのデータが連続したアドレスに配置されることになり、１つのローにアクセスするにもかかわらず、離散的なアドレスに複数回アクセスしなければならず、ＣＰＵの負荷が上昇してしまうという事象が発生する。
【０００３】
この問題を改善するため、特許文献１には、「メモリ装置と、ストレージ装置と、データベース処理エンジンとを備え、データベース処理エンジンは、ストレージ装置に保存されたカラム型ページをロー型ページに変換してメモリ装置に保存するモジュールを有することで、メモリ装置ではロー型ページで管理されるので、データベースへの効率的なアクセスを実現できる」という記載がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１４／０１００３８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データベース（以下、「ＤＢ」という）を新しいＤＢに切り替える場合、物理的なデータ配置の差異によって、もともと使っていた業務アプリケーションの構造をそのまま適用すると、性能的な問題が発生することがある。
【０００６】
そこで、本発明では、プラットフォームの変更に伴い発生するアプリケーションの改修および新プラットフォームへの移行を行う際、業務プログラムに極力手を加えずにＤＢの切り替えを実現し、性能的な問題を解決することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係るアプリケーションサーバは、データベースとデータの送受信を行う通信部と、業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、データを一時的に記憶する一時記憶領域を有する主記憶部と、業務プログラムまたは解析プログラムを実行する制御部とを備え、制御部は、解析プログラムを実行して業務プログラムに含まれる所定の条件で実行される構文を抽出し、抽出した１以上の構文を一時記憶領域に記憶すると共に、記憶した当該１以上の構文を実行して得られる複数のデータをデータベースより前記通信部を介して受信し一時記憶領域に記憶することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プログラマは移行後のＤＢの特性を意識せずにアプリケーション移行を実現でき、性能的な問題を解決できる。
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るシステム構成の一例として、ＡＰサーバおよびカラムナーＤＢが有する構成を示すブロック図である。
【図２】カラムナーＤＢに格納されているテーブル情報のデータ構成を示す図である。
【図３】本発明に係る処理手順（フローチャート）を示す図である。
【図４】本発明に係るプログラム解析処理および変換処理の処理手順（フローチャート）を示す図である。
【図５】本発明に係る実行処理および分析処理の処理手順（フローチャート）を示す図である。
【図６】ステップ５０３でキャッシュ領域の空きサイズをチェックした結果メモリ容量が足りない場合の処理手順（フローチャート）を示す図である。
【図７】ステップ５１０でキャッシュ内に目的のデータがない場合の処理手順（フローチャート）を示す図である。
【図８】プログラム解析処理の解析対象のＳＱＬ文を示す図である。
【図９】ＳＱＬ文の条件式に当て嵌まる値をプログラムの中を解析して特定する手順を示す図である。
【図１０】ＳＱＬ文の条件式に当て嵌まる値を入力データの中を解析して特定する手順を示す図である。
【図１１】解析の結果のＳＱＬ文のイメージ図である。
【図１２】ＳＱＬ文を実行してカラムナーＤＢからデータを取得したときのキャッシュ装置に格納するデータ情報を示す図である。
【図１３】目的のデータがキャッシュ装置に存在しない場合にカラムナーＤＢから取得するＳＱＬ文を示す図である。
【図１４】カラムナーＤＢからデータを取得したときにキャッシュ装置に格納するデータ情報を示す図である。
【図１５】マージしたＳＱＬ文を示す図である。
【図１６】ステップ５０９で処理したログ出力を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明を実施するための形態として、実施例について図面を用いて詳細に説明する。
【実施例】
【００１１】
図１は、本発明に係るシステム構成の一例として、アプリケーションサーバ（以下、「ＡＰサーバ」という）１００およびカラムナーＤＢ２００が有する構成を示すブロック図である。
【００１２】
ＡＰサーバ１００は、アプリケーションの処理と実行を行う装置であって、主記憶部であるメモリ１０１、処理装置であるＣＰＵ１０５、データの格納領域であるストレージ１０６およびカラムナーＤＢ２００と通信を行う通信装置１０９を備える。
【００１３】
メモリ１０１は、データを管理する領域であるキャッシュ装置１０２を有し、このキャッシュ装置１０２は、データを格納する領域であるキャッシュ領域１０３およびキャッシュ領域１０３にデータを格納するための処理部品である共通部品１０４を有する。
ストレージ１０６は、業務プログラム１０７および解析プログラム１０８などのプログラム並びに所要のデータを格納する。
【００１４】
業務プログラム１０７は、業務処理を行うプログラムである。
一方、解析プログラム１０８は、業務プログラム１０７を解析して業務プログラム１０７が使用するデータを特定し、そのデータを含めた一定の範囲のデータを一括でカラムナーＤＢ２００から取得する処理を処理部品として共通部品１０４に登録する。また、解析プログラム１０８は、業務プログラム１０７が登録したデータを使用するように業務プログラム１０７を修正する。
業務プログラム１０７および解析プログラム１０８は、ＣＰＵ１０５によって実行される際に、メモリ１０１に展開される。
【００１５】
なお、本実施例に係る業務プログラム１０７は、天候および時間が店舗への来客数に影響するかを分析するためのプログラムを一例として用いたものである。この業務プログラム１０７はあくまで一例であり、他の業務プログラムを対象としてもよいことは言うに及ばない。
【００１６】
大量のデータの管理と格納を行う装置であるカラムナーＤＢ２００は、大量のデータの管理および格納を行う装置であって、処理装置であるＣＰＵ２０１、データの格納領域であるストレージ２０２、記憶領域であるメモリ２０４およびＡＰサーバ１００と通信を行う通信装置２０３を備える。
図２は、カラムナーＤＢ２００に格納されているテーブル情報のデータ構成を示す図である。このテーブル情報は、ストレージ２０２に保存される。ここで、図２に示すテーブル名は、「来場者情報テーブル」とする。
【００１７】
図３は、本発明に係る処理手順（フローチャート）を示す図である。以下に、このフローチャートに基づく処理態様を説明する。ここで、処理を実行する主体は、ＡＰサーバ１００のＣＰＵ２０１であるが、ＡＰサーバ１００として総称して示す。
【００１８】
＜ステップ３０１＞
ＡＰサーバ１００は、業務プログラム１０７を対象としてプログラムの解析処理を実行する。
【００１９】
＜ステップ３０２＞
ＡＰサーバ１００は、業務プログラム１０７を対象としてステップ３０１の解析結果を反映する変換処理を実行する。
【００２０】
＜ステップ３０３＞
ＡＰサーバ１００は、ステップ３０１の処理結果を反映させた業務プログラム１０７を実行する。
【００２１】
＜ステップ３０４＞
ＡＰサーバ１００は、ステップ３０３で実行した業務プログラム１０７のＳＱＬ文の実行ログを蓄積して分析処理を行う。
【００２２】
次に、上述した各ステップの詳細について説明する。
図４は、図３に示す、ステップ３０１のプログラムの解析処理およびステップ３０２の変換処理の処理手順（フローチャート）を示す図である。以下に、このフローチャートに基づく処理態様を示す。
【００２３】
＜ステップ４０１＞
ＡＰサーバ１００は、業務プログラム１０７および入力データを読み込む。
本実施例では、入力データは、業務プログラム１０７が実行されたときに用いられた過去３回分のデータとしており、例えば図１０に示すデータのことである。ここでは、入力データを過去３回分のデータとしているが、“３”という数値は一例であってこれに限定するものではない。
【００２４】
＜ステップ４０２＞
ＡＰサーバ１００は、ステップ４０１で読み込んだデータを解析しＳＱＬ文を抽出する。
本実施例においては、図８に示すように、来場者情報テーブルから変数１が真かつ変数２が真のときに、該条件に一致するデータを抜き出すＳＱＬ文が抽出される。
【００２５】
＜ステップ４０３＞
ＡＰサーバ１００は、ステップ４０２で抽出したＳＱＬ文の条件式で用いられている変数に入力するデータの値を、業務プログラム１０７から解析する。
本実施例では、解析プログラム１０８が業務プログラム１０７を解析することにより、図８に示すＳＱＬ文の条件式から、図９に示すように変数２が“ｓｕｎｎｙ”であることが判明する。
【００２６】
＜ステップ４０４＞
ＡＰサーバ１００は、ＳＱＬ文の条件式で用いられている変数に入力するデータの値を、入力データから解析する。
本実施例では、解析プログラム１０８が業務プログラム１０７を解析することにより、図８に示すＳＱＬ文の条件式から、図１０に示すように、変数２が変数ｉｎｐｕｔｄａｔａであることが判明する。さらに続けて解析することにより、変数ｉｎｐｕｔｄａｔａは入力データを読み込んで取得した値を格納することが判明し、解析プログラム１０８が入力データを解析することにより、変数ｉｎｐｕｔｄａｔａが“ｃｌｏｕｄｙ”であることが判明する。
【００２７】
＜ステップ４０５＞
ＡＰサーバ１００は、ステップ４０３および４０４でそれぞれ特定した入力データを含むある程度の範囲のデータを一括で取得するＳＱＬ文を作成して、共通部品１０４に登録する。また、このＳＱＬ文で取得したデータは、キャッシュ領域１０３に格納される。
本実施例では、図１１に示すように、変数２が、“ｓｕｎｎｙ”であるときのＳＱＬ文と“ｃｌｏｕｄｙ”であるときのＳＱＬ文とを組み合わせたＳＱＬ文を作成し、共通部品１０４に登録することになる。
【００２８】
＜ステップ４０６＞
ＡＰサーバ１００は、ステップ４０２で抽出したＳＱＬ文をキャッシュ装置１０３の共通部品１０４から取得するように、業務プログラムのＳＱＬ文を変換して修正する。
【００２９】
＜ステップ４０７＞
業務プログラム１０７および共通部品１０４をビルド後デプロイする。
【００３０】
図５は、図３に示す、ステップ３０３の実行処理およびステップ３０４の分析処理の処理手順（フローチャート）を示す図である。以下に、このフローチャートに基づく処理態様を示す。
【００３１】
＜ステップ５０１＞
ＡＰサーバ１００は、業務プログラム１０７を実行する。このプログラムの実行により、取得対象のレコードがキャッシュ装置１０２に通知される。ＡＰサーバ１００は、キャッシュ装置１０２の共通部品１０４を使うことで、カラムナーＤＢ２００からレコード取得する。
【００３２】
＜ステップ５０２＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、キャッシュ領域１０３の空きサイズをチェックする。
【００３３】
＜ステップ５０３＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、取得したレコードをキャッシュ領域１０３に格納できるか否か、すなわち、この格納がチェックした空きサイズ（メモリ容量）で足りるか否かをチェックする。格納できる場合は（ＹＥＳ）、ステップ５０４に進む。格納できない場合は（ＮＯ）、ステップ５０５へ進む。
【００３４】
＜ステップ５０４＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、取得したレコードをキャッシュ領域１０３に格納する。図１２は、図１１に示すＳＱＬ文を実行して、カラムナーＤＢ２００から取得してキャッシュ領域１０３に格納するデータのデータ構造を示す図である。
本実施例では、“ｓｕｎｎｙ”と“ｃｌｏｕｄｙ”の情報を持つデータを、図２に示すカラムナーＤＢ２００のテーブル情報から一括で取得し、図１２に示すようにキャッシュ領域１０３に格納する。
【００３５】
＜ステップ５０５＞
ＡＰサーバ１００は、取得したレコードをキャッシュ領域１０３に格納できるように、図６に示す処理手順（フローチャート）を実行する。このステップ５０５に対応する、図６に示す処理手順（フローチャート）を終えると、ステップ５０４に進む。図６に示す処理手順（フローチャート）については後述する。
【００３６】
＜ステップ５０６＞
ＡＰサーバ１００は、業務プログラム１０７に沿って業務処理を実行する。
【００３７】
＜ステップ５０７＞
ＡＰサーバ１００は、業務プログラム１０７に沿って、取得対象のデータをキャッシュ装置１０２に依頼する。ＡＰサーバ１００は、キャッシュ装置１０２を用い、共通部品１０４を使ってキャッシュ領域１０３にアクセスする。
【００３８】
＜ステップ５０８＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、取得対象のデータがキャッシュ領域１０３にあるか否かをチェックする。取得対象のデータが存在する場合（ＹＥＳ）、ステップ５０９に進む。取得対象のデータが存在しない場合（ＮＯ）、ステップ５１０に進む。
【００３９】
＜ステップ５０９＞
ＡＰサーバ１００は、共通部品１０４を使って、依頼元のプログラム、依頼を受けた年月日と時間および実行したＳＱＬ文を、実行履歴としてログ出力し保存する。図１６は、ステップ５０９で処理したログ出力を示す図である。このログ出力の保存先としては、ストレージ１０６とするが、余裕があればキャッシュ領域としてもよい。
本実施例では、業務プログラムが、来場者情報テーブルに対して、２０１７年３月１日１２時にアクセスしたＳＱＬ文および２０１７年４月１日１２時にアクセスしたＳＱＬ文の実行履歴がログとして保存される。
【００４０】
＜ステップ５１０＞
ＡＰサーバ１００は、取得対象のデータをキャッシュ装置１０２に格納できるように、図７に示す処理手順（フローチャート）を実行する。このステップ５１０に対応する、図７に示す処理手順（フローチャート）を終えると、ステップ５０９へ進む。
【００４１】
＜ステップ５１１＞
取得したデータが業務プログラムに渡され、ＡＰサーバ１００は、業務プログラムがデータを受け取ることにより、業務処理を完了させる。
【００４２】
＜ステップ５１２＞
ＡＰサーバ１００は、ステップ５０９で出力した実行ログを分析し、実行したＳＱＬ文をマージし、マージしたＳＱＬ文を共通部品１０４に登録する。
図１５は、マージしたＳＱＬ文を示す図である。本実施例では、解析プログラム１０８が、業務プログラム１０７と入力データとを解析することにより判明し作成した、“ｓｕｎｎｙ”および“ｃｌｏｕｄｙ”の情報を持つデータを取得するＳＱＬ文と、後述するステップ６０１で新しく作成した“ｒａｉｎｙ”を取得するＳＱＬ文とをマージする。その結果、“ｓｕｎｎｙ”、“ｃｌｏｕｄｙ”および“ｒａｉｎｙ”を取得するＳＱＬ文を作成して、共通部品１０４に登録する。
【００４３】
図６は、図５のステップ５０３でキャッシュ領域の空きサイズをチェックした結果、メモリ容量が足りない（ＮＯ）場合の処理手順（フローチャート）を示す図である。以下に、このフローチャートに基づく処理態様を示す。
【００４４】
＜ステップ６０１＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、カラムナーＤＢ２００から取得対象のデータを含めたある程度のデータを一括で取得できるように、代替のＳＱＬ文を作成し共通部品１０４に登録する。
図１３は、キャッシュ装置１０２に目的のデータが存在しない場合に、その目的のデータをカラムナーＤＢ２００から取得するＳＱＬ文を示す図である。本実施例では、“ｒａｉｎｙ”の情報を持つデータがキャッシュ装置１０２にないため、“ｒａｉｎｙ”を取得できる代替のＳＱＬ文を作成して共通部品１０４に登録する。
【００４５】
＜ステップ６０２＞
ＡＰサーバ１００は、共通部品１０４を使い代替のＳＱＬ文を実行して、取得対象のデータをカラムナーＤＢ２００から取得する。
本実施例では、“ｒａｉｎｙ”を取得できる代替のＳＱＬ文（図１３）を実行し、図１４に示すように、“ｓｕｎｎｙ”および“ｃｌｏｕｄｙ”の情報を持つキャッシュ装置１０２に、“ｒａｉｎｙ”の情報を追加する。
【００４６】
＜ステップ６０３＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、キャッシュ領域１０３の空きサイズをチェックする。
【００４７】
＜ステップ６０４＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、キャッシュ領域１０３に取得したレコードを格納できるか否か、すなわち、この格納がチェックした空きサイズで足りるか否かをチェックする。格納できる場合（ＹＥＳ）、図６に示す処理フローを終了し、図５のステップ５０４に戻る。格納できない場合（ＮＯ）、ステップ６０５へ進む。
【００４８】
＜ステップ６０５＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、キャッシュ領域１０３に格納しているデータの中で、このキャッシュ領域１０３から追い出せるデータが存在するか否かをチェックする。追い出せるデータが存在する場合（ＹＥＳ）、ステップ６０６へ進む。追い出せるデータが存在しない場合（ＮＯ）、ステップ６０７へ進む。
【００４９】
＜ステップ６０６＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、キャッシュ領域１０３に格納しているデータの中から最も参照されていないデータを、ファイルとしてストレージ１０６に移動する。次いで、図５のステップ５０４に戻る。
【００５０】
＜ステップ６０７＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、カラムナーＤＢ２００から取得対象のデータが含まれるように、先のステップ６０１で得た範囲よりさらに範囲を絞ったＳＱＬ文を作成し、共通部品１０４に登録して実行し、目的とするデータを取得する。次いで、図５のステップ５０４に戻る。
【００５１】
図７は、図５のステップ５１０でキャッシュ内に目的のデータがない場合の処理手順（フローチャート）を示す図である。以下に、このフローチャートに基づく処理態様を示す。
【００５２】
＜ステップ７０１＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、取得対象のデータがＡＰサーバ１００のストレージ１０６に存在するか否かをチェックする。取得対象のデータが存在する場合（ＹＥＳ）、ステップ７０２に進む。取得対象のデータが存在しない場合（ＮＯ）、ステップ７０４に進む。
【００５３】
＜ステップ７０２＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、ファイルのデータをストレージ１０６からキャッシュ領域１０３に移動する。
【００５４】
＜ステップ７０３＞
ＡＰサーバ１００は、共通部品１０４を使って、取得対象のデータをキャッシュ領域１０３から取得する。次いで、図５のステップ５０９に戻る。
【００５５】
＜ステップ７０４＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、取得対象のレコードをキャッシュ領域１０３に格納できるように、先の図６に示すフローチャートを実行する。図６に示す処理フローを終えると、ステップ７０５に進む。
【００５６】
＜ステップ７０５＞
ＡＰサーバ１００は、キャッシュ装置１０２を用いて、取得したレコードをキャッシュ領域１０３に格納し、格納後にステップ７０３に進む。
【００５７】
このように、ＡＰサーバ１００が、業務プログラム１０７と入力データを解析し、業務プログラム１０７が業務で利用するデータを特定し一括で取得するＳＱＬ文を作成し、共通部品１０４としてキャッシュ装置１０２に格納する。そして、共通部品化したＳＱＬ文を予め実行してキャッシュ領域１０３に取得対象データを格納することにより、カラムナーＤＢ２００へのアクセス回数を減らし処理時間を短縮することができる。
【００５８】
なお、図２に示すカラムナーＤＢ２００のテーブル情報の構成図、図８に示すＳＱＬ文のイメージ、図９と図１０に示す業務プログラムと入力データのイメージは、一例であってこれらに限定するものではない。
また、本実施例では、ＤＢとしてはカラムナーＤＢを対象にしているが、構造型ＤＢやリレーショナルＤＢを対象としてもよい。
【００５９】
そしてまた、ＡＰサーバ１００とカラムナーＤＢ２００とは、本実施例では別の装置として説明をしたが、例えば、１つの物理計算機上で動く仮想環境において、それぞれ別の仮想サーバとして稼働するものであっても、１つの物理サーバまたは仮想サーバでそれぞれの機能を備えるものであってもよい。
さらに、本実施例では、入力データの解析を行ったが、業務プログラムのみを解析対象としてもよい。
【符号の説明】
【００６０】
１００…ＡＰサーバ、１０１…メモリ、１０２…キャッシュ装置、
１０３…キャッシュ領域、１０４…共通部品、１０５、２０１…ＣＰＵ、
１０６…ストレージ、１０７…業務プログラム、１０８…解析プログラム、
１０９…通信装置、２００…カラムナーＤＢ、２０２…ストレージ、２０３…通信装置、
２０４…メモリ
【図１】
2019204250.tif 000003
【図２】
2019204250.tif 000004
【図３】
2019204250.tif 000005
【図４】
2019204250.tif 000006
【図５】
2019204250.tif 000007
【図６】
2019204250.tif 000008
【図７】
2019204250.tif 000009
【図８】
2019204250.tif 000010
【図９】
2019204250.tif 000011
【図１０】
2019204250.tif 000012
【図１１】
2019204250.tif 000013
【図１２】
2019204250.tif 000014
【図１３】
2019204250.tif 000015
【図１４】
2019204250.tif 000016
【図１５】
2019204250.tif 000017
【図１６】
2019204250.tif 000018