(57)【要約】【課題】任意のタイミングで複数の基幹システムのデータを収集し、ローカルのデータベース内のデータと融合させた分析を容易に行うことができるようにする。【解決手段】アクセス要求分解手段１ｄにより、情報管理手段１ｃが受け付けたアクセス要求に基づいて、アクセス対象となる少なくとも１つのリモートデータベースが判断され、アクセス要求が、アクセス対象のリモートデータベース毎のリモートアクセス要求に分解される。さらに、アクセス手段１ｅにより、アクセス要求分解手段１ｄで生成されたリモートアクセス要求に基づいてリモートデータベースに対してアクセスが行われ、各リモートデータベースからデータが抽出される。そして、集計手段１ｆにより、アクセス手段１ｅが抽出したデータが集計され、集計結果が表示される。【選択図】図１
2007133452.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に分散しているデータの集計処理を行うデータ収集プログラムにおいて、
コンピュータに、
前記ネットワークを介して接続されている複数のリモートデータベースに格納されているデータのデータ項目に関するリモートデータ情報を記憶するデータ情報記憶手段、
前記データ情報記憶手段に記憶された前記リモートデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付ける情報管理手段、
前記情報管理手段が受け付けた前記アクセス要求に基づいて、アクセス対象となる少なくとも１つの前記リモートデータベースを判断し、前記アクセス要求を、アクセス対象の前記リモートデータベース毎のリモートアクセス要求に分解するアクセス要求分解手段、
前記アクセス要求分解手段で生成された前記リモートアクセス要求に基づいて前記リモートデータベースに対してアクセスし、各前記リモートデータベースからデータを抽出するアクセス手段、
前記アクセス手段が抽出したデータを集計し、集計結果を表示する集計手段、
として機能させることを特徴とするデータ収集プログラム。
【請求項２】
前記データ情報記憶手段は、さらに、ローカルデータベースに格納されているデータのデータ項目に関するローカルデータ情報を記憶しており、
前記情報管理手段は、前記データ情報記憶手段に記憶された前記リモートデータ情報および前記ローカルデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付け、
前記アクセス要求分解手段は、前記情報管理手段が受け付けた前記アクセス要求に前記ローカルデータベース内のデータ項目を含む場合、前記ローカルデータベースにアクセスするためのローカルデータアクセス要求を生成し、
前記アクセス手段は、前記ローカルデータアクセス要求に従って、前記ローカルデータベースからデータを抽出することを特徴とする請求項１記載のデータ収集プログラム。
【請求項３】
前記アクセス手段は、前記リモートデータベースから抽出したデータに対して所定の加工処理を実行するセントラルサーバを介して、前記リモートデータベースから抽出したデータを取得することを特徴とする請求項１記載のデータ収集プログラム。
【請求項４】
前記アクセス手段は、加工処理を行う際の処理手順を示すシナリオを指定する情報を含むデータ取得要求を前記セントラルサーバに送信し、指定した前記シナリオに沿った加工が施されたデータを前記セントラルサーバ経由で受信することを特徴とする請求項３記載のデータ収集プログラム。
【請求項５】
ネットワーク上に分散しているデータの集計処理を行うデータ収集装置において、
前記ネットワークを介して接続されている複数のリモートデータベースに格納されているデータのデータ項目に関するリモートデータ情報を記憶するデータ情報記憶手段と、
前記データ情報記憶手段に記憶された前記リモートデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付ける情報管理手段と、
前記情報管理手段が受け付けた前記アクセス要求に基づいて、アクセス対象となる少なくとも１つの前記リモートデータベースを判断し、前記アクセス要求を、アクセス対象の前記リモートデータベース毎のリモートアクセス要求に分解するアクセス要求分解手段と、
前記アクセス要求分解手段で生成された前記リモートアクセス要求に基づいて前記リモートデータベースに対してアクセスし、各前記リモートデータベースからデータを抽出するアクセス手段と、
前記アクセス手段が抽出したデータを集計し、集計結果を表示する集計手段と、
を有することを特徴とするデータ収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータウェアハウス上のデータの集計、解析等の処理を行うデータ収集プログラムおよびデータ収集装置に関し、特に複数のサーバ上に分散して保存されているデータを集約して処理を行うデータ収集プログラムおよびデータ収集装置に関する。
【背景技術】
【０００２】
広い地域にデータベースが分散して配置されているネットワークシステムでは、そのデータベースに登録された情報を活用するための情報サーバが利用される。例えば、全国に販売拠点を有する企業は、販売拠点毎に基幹システムが設けられる。基幹システムには、割り当てられた地域内の各店舗での販売実績等の情報がデータベースに蓄積される。基幹システムにネットワークを介して接続された情報サーバは、各基幹システムに登録されたデータを定期的に収集し、収集したデータを１つのデータベースに統合する。そして、情報サーバにおいてデータの解析が行われ、月毎の売上額の集計等が行われる。
【０００３】
ところで、情報サーバが情報活用に使用できるデータは、予め情報サーバ内に所定のデータ構造で蓄積されている必要がある。一般的に、基幹システムから収集したデータは、ＥＴＬ（Extract/Transform/Load）ツールなどで処理され、処理済みのデータが情報サーバのデータベースに登録される。情報サーバでは、ローカルのデータベースに登録されたデータを対象にして、データ解析を行う。
【０００４】
なお、基幹システムでは日中の通常業務を優先的に処理する必要がある。そこで、一般的には、情報サーバでのデータ収集は深夜のバッチ処理で行われる。例えば、１日毎、１週間毎、１ヶ月毎に情報システム向けにデータが処理される。そのため、情報サーバ内で直近のデータが参照可能となるまでに、ある程度の期間が必要であった。
【０００５】
従来、基幹システム上の最新のデータを参照する必要が生じると、ユーザがＤＢＭＳ（DataBase Management System）を利用して、基幹システム上のデータを直接取り出していた。この場合、取り出したデータは、情報サーバにおける加工処理が行われていないため、表計算ソフトなどを利用して、ユーザの利用する端末装置で分析を行う必要がある。
【０００６】
ユーザの端末装置でデータベースにアクセスするための技術としては、様々な技術が考えられている。例えば、ユーザの端末装置において、複数のデータベースを同時に扱う技術も考えられている（例えば、特許文献１参照）。なお、複数のデータベースにアクセスするには、それぞれのデータベースにおいてアカウントに認証を受ける必要がある。そこで、複数のデータベースそれぞれに対応するアカウントの設定処理等を容易にするための技術も考えられている（例えば、特許文献２参照）。また、基幹システムに格納されているデータから、データ検索要求に応じたデータの取得する技術も考えられている（例えば、特許文献３参照）。
【特許文献１】特開平４−１１２２４６号公報
【特許文献２】特開平７−９８６６９号公報
【特許文献３】特開２００３−１５０５９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、基幹システムからデータを取得するには、ユーザは、端末装置からそれぞれのデータベースに対して個別にアクセスを行わなければならない。そのため、アクセス対象のデータベースの数が大量にある場合、ユーザは繁雑な作業を強いられることとなる。
【０００８】
また、基幹システムからデータを直接取り出したとしても、従来行われていたのは、基幹システム内のデータのみでの分析である。すなわち、情報サーバ上のデータと基幹システムのデータとを融合させて分析を行うことができなかった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、任意のタイミングで複数の基幹システムのデータを収集し、ローカルのデータベース内のデータと融合させた分析を容易に行うことができるデータ収集プログラムおよびデータ収集装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記課題を解決するために、図１に示すようなデータ収集プログラムが提供される。本発明に係るデータ収集プログラムは、ネットワーク上に分散しているデータの集計処理を行うために、図１に示す機能をコンピュータに実行させることができる。
【００１１】
データ情報記憶手段１ｂは、ネットワークを介して接続されている複数のリモートデータベースに格納されているデータのデータ項目に関するリモートデータ情報１ｂｂを記憶する。情報管理手段１ｃは、データ情報記憶手段１ｂに記憶されたリモートデータ情報１ｂｂに基づいて、アクセス可能なデータ項目を表示し、アクセス対象のデータ項目を指定したアクセス要求を受け付ける。アクセス要求分解手段１ｄは、情報管理手段１ｃが受け付けたアクセス要求に基づいて、アクセス対象となる少なくとも１つのリモートデータベースを判断し、アクセス要求を、アクセス対象のリモートデータベース毎のリモートアクセス要求に分解する。アクセス手段１ｅは、アクセス要求分解手段１ｄで生成されたリモートアクセス要求に基づいてリモートデータベースに対してアクセスし、各リモートデータベースからデータを抽出する。集計手段１ｆは、アクセス手段１ｅが抽出したデータを集計し、集計結果を表示する。
【００１２】
このようなデータ収集プログラムによれば、情報管理手段１ｃにより、データ情報記憶手段１ｂに記憶されたリモートデータ情報１ｂｂに基づいて、アクセス可能なデータ項目が表示され、アクセス対象のデータ項目を指定したアクセス要求が受け付けられる。次に、アクセス要求分解手段１ｄにより、情報管理手段１ｃが受け付けたアクセス要求に基づいて、アクセス対象となる少なくとも１つのリモートデータベースが判断され、アクセス要求が、アクセス対象のリモートデータベース毎のリモートアクセス要求に分解される。さらに、アクセス手段１ｅにより、アクセス要求分解手段１ｄで生成されたリモートアクセス要求に基づいてリモートデータベースに対してアクセスが行われ、各リモートデータベースからデータが抽出される。そして、集計手段１ｆにより、アクセス手段１ｅが抽出したデータが集計され、集計結果が表示される。
【発明の効果】
【００１３】
本発明では、リモートデータベース内のデータに対するアクセス要求があると、そのアクセス要求を、アクセス対象となるリモートデータベース毎のリモートアクセス要求に分解し、リモートデータベースにアクセスするようにした。これにより、任意に指定したデータ項目のデータを収集する際に、ユーザがリモートデータベース毎のアクセス要求を入力する必要が無くなり、データ集計作業が容易となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本実施の形態の概略を示す図である。本実施の形態では、データ収集装置１、クライアント３、およびリモートデータベース４，５で構成される。
【００１５】
データ収集装置１は、クライアント３を使用するユーザに対して、データの集計サービスを提供するコンピュータである。クライアント３は、ユーザが操作入力を行うと共に、データの集計結果を表示するコンピュータである。リモートデータベース４，５は、データ収集装置１からネットワーク経由でアクセス可能なデータベースである。
【００１６】
データ収集装置１は、データの集計サービスを実行するために、ローカルデータベース１ａ、データ情報記憶手段１ｂ、情報管理手段１ｃ、アクセス要求分解手段１ｄ、アクセス手段１ｅ、および集計手段１ｆを有している。
【００１７】
ローカルデータベース１ａは、リモートデータベース４，５から所定のタイミングで収集したデータを記憶する記憶装置である。例えば、１週間に一回程度の頻度でリモートデータベース４，５からデータが収集され、そのデータがローカルデータベース１ａに格納されている。
【００１８】
データ情報記憶手段１ｂは、ローカルデータ情報１ｂａとリモートデータ情報１ｂｂとを記憶している。ローカルデータ情報には、ローカルデータベース１ａに格納されているデータのデータ項目に関する情報が設定されている。リモートデータ情報１ｂｂには、ネットワークを介して接続されている複数のリモートデータベース４，５に格納されているデータのデータ項目に関する情報が設定されている。
【００１９】
情報管理手段１ｃは、データ情報記憶手段１ｂに記憶された、ローカルデータ情報１ｂａおよびリモートデータ情報１ｂｂに基づいて、アクセス可能なデータ項目をクライアント３の画面に表示する。そして、情報管理手段１ｃは、アクセス対象のデータ項目を指定したアクセス要求をクライアント３から受け付ける。
【００２０】
アクセス要求分解手段１ｄは、情報管理手段１ｃが受け付けたアクセス要求に基づいて、アクセス対象となる少なくとも１つのデータベースを判断する。そして、アクセス要求分解手段１ｄは、リモートデータベース４，５に対するアクセス要求の場合、そのアクセス要求を、アクセス対象のリモートデータベース毎のリモートアクセス要求に分解する。
【００２１】
アクセス手段１ｅは、アクセス要求のアクセス対象がローカルデータベース１ａであれば、ローカルデータベース１ａにアクセスし、データを取得する。また、アクセス手段１ｅは、アクセス要求のアクセス対象がリモートデータベース４，５であれば、アクセス要求分解手段１ｄで生成されたリモートアクセス要求に基づいてリモートデータベース４，５に対してアクセスし、各リモートデータベース４，５からデータを抽出する。
【００２２】
集計手段１ｆは、アクセス手段１ｅが抽出したデータを集計する。そして、集計手段１ｆは、集計結果をクライアント３の画面に表示させる。
このようなシステムによれば、クライアント３には、情報管理手段１ｃにより、データ情報記憶手段１ｂに記憶されたリモートデータ情報１ｂｂに基づいて、アクセス可能なデータ項目が表示される。そして、ユーザがクライアント３を操作し、任意のデータ項目を集計対象のデータとして指定すると、そのデータ項目を指定したアクセス要求が、クライアント３からデータ収集装置１に送られる。データ収集装置１では、アクセス要求が情報管理手段１ｃで受け付けられる。
【００２３】
次に、アクセス要求分解手段１ｄにより、情報管理手段１ｃが受け付けたアクセス要求に基づいて、アクセス対象となる少なくともデータベースが判断される。そして、アクセス対象がリモートデータベース４，５であれば、アクセス要求分解手段１ｄにより、アクセス要求が、アクセス対象のリモートデータベース毎のリモートアクセス要求に分解される。
【００２４】
さらに、アクセス手段１ｅにより、ローカルデータベース１ａへのアクセス要求に基づいて、ローカルデータベース１ａに対するアクセスが行われ、データが抽出される。また、アクセス要求分解手段１ｄによりリモートアクセス要求が生成された場合、アクセス手段１ｅにより、リモートアクセス要求に基づいてリモートデータベース４，５に対してアクセスが行われ、各リモートデータベース４，５からデータが抽出される。そして、集計手段１ｆにより、アクセス手段１ｅが抽出したデータが集計され、集計結果がクライアント３の画面に表示される。
【００２５】
このように、リモートデータベースへのアクセス要求を、リモートデータベース毎のリモートアクセス要求に分解することにより、ユーザによるリモートデータベースへの個別のアクセス指示が不要となり、データ収集が容易となる。しかも、ローカルデータベースとリモートデータベースとのデータのアクセス要求を、同様の操作で行えるため、既に収集されているローカルデータベース内のデータと、未収集のリモートデータベース内のデータとを融合させた分析を容易に行うことができる。
【００２６】
図１に示すようなデータ収集機能を、基幹システムから収集したデータの解析を行うシステムに適用すれば、従来のようなデータウェアハウス上の確定データのみならず、リアルタイムに発生するデータの有効活用が実現できる。すなわち、あらゆる業務のプロセスで発生するすべてのデータの即時活用・分析を行うことが可能なデータ検索・集計・レポートシステムを構築することができる。
【００２７】
また、収集するリモートデータベースのデータをセントラルサーバ経由で受け取ることもできる。その際、セントラルサーバにおいてデータの加工処理を行うことができる。このように、セントラルサーバにおいてデータ加工を行うシステムとすれば、データ集計を行う装置が複数存在する場合でも、各データ集計装置内にデータ加工機能を実装せずに済む。
【００２８】
そこで、セントラルサーバを経由してデータを収集するシステムの例を用いて、本実施の形態を詳細に説明する。
図２は、本実施の形態のシステム構成例を示す図である。図２に示すように、複数の基幹システム２１、２２，２３，２４，・・・が互いにネットワーク１０で接続されている。各基幹システム２１，２２，２３，２４，・・・は、それぞれ基幹データベース（ＤＢ）２１ａ，２２ａ，２３ａ，２４ａ，・・・を有している。基幹ＤＢ２１ａ，２２ａ，２３ａ，２４ａ，・・・には、各基幹システム２１，２２，２３，２４，・・・で取り扱われたデータが格納されている。
【００２９】
ネットワーク１０には、さらに情報サーバ１００、セントラルサーバ２００、およびクライアント３１，３２，・・・が接続されている。情報サーバ１００は、基幹システム２１，２２，２３，２４，・・・からデータを収集し、解析するコンピュータである。セントラルサーバ２００は、情報サーバ１００からの要求に応じて、基幹システム２１，２２，２３，２４，・・・内の最新のデータを取得するコンピュータである。クライアント３１，３２，・・・は、ユーザが利用するコンピュータである。ユーザは、クライアント３１，３２，・・・を用いて情報サーバ１００にアクセスし、各種データの解析結果を受け取ることができる。
【００３０】
なお、図１に示すデータ収集装置１の機能は情報サーバ１００内に設けられている。情報サーバ１００は、基幹システム２１，２２，２３，２４，・・・からのデータ収集機能に加え、収集したデータの解析機能を有している。
【００３１】
図３は、本実施の形態に用いる情報サーバのハードウェア構成例を示す図である。情報サーバ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００３２】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３３】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００３４】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には情報サーバ１００のハードウェア構成を示したが、セントラルサーバ２００、基幹システム２１，２２，２３，２４，・・・、クライアント３１，３２，・・・も同様のハードウェアで実現することができる。
【００３６】
図４は、情報サーバの機能を示すブロック図である。情報サーバ１００は、ローカルＤＢ１１１、ユーザＤＢ１１２、オンデマンド辞書テーブル記憶部１１３、辞書情報記憶部１１４、データ収集部１２１、データマート部１２２、情報分析部１２３、集計エンジン１２４、ＤＢアクセス部１２５、セントラルサーバＡＰＩ（Application Program Interface）１２６ａ，１２６ｂ，１２６ｃ、データ通信部１２７、およびデータ受信部１２８を有している。
【００３７】
ローカルＤＢ１１１は、基幹システム２１，２２，２３，２４，から収集されたデータを記憶する記憶装置である。
ユーザＤＢ１１２は、ローカルＤＢ１１１に格納されたデータのうち、ユーザによって任意に指定されたデータを記憶する記憶装置である。
【００３８】
オンデマンド辞書テーブル記憶部１１３は、システム全体のＤＢに関する情報が登録されたオンデマンド辞書テーブルを記憶する記憶装置である。オンデマンド辞書テーブルは、ＤＢ毎に以下の情報が登録される。
【００３９】
・データテーブルを一意に識別するためのテーブル名
・データテーブル所在情報（ローカルＤＢ１１１に存在するのか、セントラルサーバ２００を経由した場所に存在するのか）
・ローカルＤＢ１１１へのアクセス情報（データソースへのアクセスのためのインタフェースに対して指定するデータソースの接続情報（ホスト名など）
・セントラルサーバ２００へのアクセス情報（セントラルサーバＡＰＩの実行に必要となるセントラルサーバ所在情報（ホスト名など）
・データテーブルに対応するデータソース上の識別名や属性情報（例えば、ＲＤＢ（Relational Data Base）であれば、データベース名、スキーマ名、項目名、データ型など）
辞書情報記憶部１１４は、アクセス可能なデータテーブルのデータ項目に関する情報（辞書）を記憶する記憶装置である。アクセス可能なデータテーブルには、ユーザＤＢ１１２内のデータテーブルとセントラルサーバ２００内のデータテーブル（仮想データテーブル）とがある。なお、セントラルサーバ２００内のデータテーブルは、仮想的に設けられたものであり、実体は存在していない。すなわち、セントラルサーバ２００内のデータテーブルに対するアクセスが行われると、セントラルサーバ２００において、該当するデータテーブル内の目的のデータに相当するデータが基幹システム２１，２２，２３，２４，・・・から取得され、情報サーバ１００に返される。
【００４０】
データ収集部１２１は、バッチ処理によって、所定の時刻に基幹システム２１，２２，２３，２４，・・・内のデータを収集する。データ収集部１２１は、収集したデータをＥＴＬツールなどで処理し、処理済みのデータをローカルＤＢ１１１に格納する。
【００４１】
データマート部１２２は、ローカルＤＢ１１１に格納されたデータの中から、ユーザの使用目的に応じて特定のデータを抽出し、抽出したデータを整理し直して、ユーザＤＢ１１２に格納する。
【００４２】
情報分析部１２３は、アクセス可能なデータテーブルのリストをクライアント３１，３２，・・・に送信する。また、情報分析部１２３は、クライアント３１，３２，・・・からの分析要求に応じて、分析に必要なデータ取得要求を集計エンジン１２４に渡す。そして、情報分析部１２３は、集計エンジン１２４から返されるデータをユーザの指示に基づいて分析し、分析結果をクライアント３１，３２，・・・に送信する。
【００４３】
集計エンジン１２４は、情報分析部１２３からのデータ取得要求に応じて、ＳＱＬ（Structured Query Language）コマンドを作成する。集計エンジン１２４は、生成したＳＱＬコマンドをＤＢアクセス部１２５に渡す。また、集計エンジン１２４は、ＤＢアクセス部１２５からデータが返されると、返されたデータを纏めて、情報分析部１２３に渡す。
【００４４】
ＤＢアクセス部１２５は、集計エンジン１２４からＳＱＬコマンドを受け取ると、そのＳＱＬコマンドを解析し、要求されているデータを含むデータテーブルのテーブル名を抽出する。さらに、ＤＢアクセス部１２５は、オンデマンド辞書テーブル記憶部１１３内のオンデマンド辞書テーブルを参照し、要求されているデータを含むデータテーブルの所在情報等を取得する。
【００４５】
データテーブルがローカルのユーザＤＢ１１２内にあれば、ＤＢアクセス部１２５は、ユーザＤＢ１１２からデータを取得する。また、データテーブルがセントラルサーバ２００内にあれば、ＤＢアクセス部１２５は、入力されたＳＱＬコマンドをアクセス対象のデータテーブル数分のＳＱＬコマンドに分解する。すなわち、セントラルサーバ２００内の要求されたデータがセントラルサーバ２００内の複数のデータテーブルに存在している場合がある。その場合、ＤＢアクセス部１２５は、データテーブル毎のＳＱＬコマンドを生成する。そして、ＤＢアクセス部１２５は、セントラルサーバＡＰＩ１２６ａ，１２６ｂ，１２６ｃに分解されたＳＱＬコマンドを渡す。
【００４６】
セントラルサーバＡＰＩ１２６ａ，１２６ｂ，１２６ｃは、セントラルサーバ２００にデータを要求するためのＡＰＩ機能である。セントラルサーバＡＰＩ１２６ａ，１２６ｂ，１２６ｃは、ＤＢアクセス部１２５から出力されたＳＱＬコマンド毎に起動されている。各セントラルサーバＡＰＩ１２６ａ，１２６ｂ，１２６ｃは、ＤＢアクセス部１２５から受け取ったＳＱＬコマンドを、セントラルサーバ２００へのデータ要求に変換し、データ通信部１２７を介してセントラルサーバ２００に送信する。
【００４７】
データ通信部１２７は、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）によりネットワーク１０を介したデータ通信を行う。
図５は、セントラルサーバの機能を示すブロック図である。セントラルサーバ２００は、ワークＤＢ２１１、加工済ＤＢ２１２、セントラル辞書テーブル記憶部２１３、メタ管理情報記憶部２１４、データ通信部２２１、ＡＰＩ２２２、シナリオ制御エージェント２２３、データ加工部２２４、ＤＢアクセス部２２５、基幹ＤＢアクセス部２２６ａ，２２６ｂ，２２６ｃおよびデータ転送部２２７を有している。
【００４８】
ワークＤＢ２１１は、データ加工時にデータを一時的に記憶するための記憶装置である。
加工済ＤＢ２１２は、データ加工部２２４によって加工されたデータを記憶するための記憶装置である。
【００４９】
セントラル辞書テーブル記憶部２１３は、基幹システム２１，２２，２３，２４，・・・が有する基幹ＤＢ２１ａ，２２ａ，２３ａ，２４ａ，・・・内のデータテーブルに関する情報（セントラル辞書テーブル）を記憶する記憶装置である。セントラル辞書テーブルには、以下の情報が登録されている。
・仮想データテーブル名とシナリオのファイルとを関連づける情報
・抽出元となる基幹ＤＢ内のテーブル名・項目名を管理する情報
・項目毎の条件値を管理する情報
・データマートの生成先を管理する情報
メタ管理情報記憶部２１４は、アクセスの対象となる、スキーマ、データテーブル、項目などのデータソースがどこに含まれるかを示す情報（メタ管理情報）を記憶する記憶装置である。メタ管理情報には、以下の情報が登録される。
・シナリオファイルの管理情報
・コードの統一手順を指示するシナリオファイル
・加工方法（抽出結果のマージや演算等）を指示するシナリオファイル
データ通信部２２１は、ＴＣＰ／ＩＰによりネットワーク１０を介したデータ通信を行う。
【００５０】
ＡＰＩ２２２は、情報サーバ１００からのデータ要求を認識するためのインタフェースである。
シナリオ制御エージェント２２３は、情報サーバ１００からＳＱＬによるデータ要求が送られると、セントラル辞書テーブル記憶部２１３内のオンデマンド辞書テーブルと、メタ管理情報記憶部２１４内のメタ管理情報を参照し、取得すべきデータの所在、およびそのデータに対して施す加工のシナリオを判断する。そして、シナリオ制御エージェント２２３は、データ加工部２２４に対して、決定したシナリオに沿ったデータの取得および加工処理の実行指示を出す。
【００５１】
データ加工部２２４は、基幹システム２１，２２，２３，２４，・・・からのデータ取得および取得したデータの加工を行う。すなわち、データ加工部２２４は、シナリオ制御エージェント２２３からの指示に応じて、ＤＢアクセス部２２５に対してデータ取得要求を出す。そして、データ加工部２２４は、ＤＢアクセス部２２５からデータを受け取り、シナリオに沿った加工を施す。データを加工するために、データ加工部２２４は、複数のシナリオエンジン２２４ａ，２２４ｂ，２２４ｃ，２２４ｄ，２２４ｅを有している。
【００５２】
このようにデータの加工を行うことによって異なる拠点などから名称、属性、コード体系などの統一を行うことができる。これはＥＴＬ的な仕組と同様であるが、必要なときに必要なデータのみを取得して加工を行う点が、従来のＥＴＬの仕様と異なっている。直近の基幹データを参照する場合は必要なデータ量も少量であり、基幹システムへの負担を最小限に抑えることができる。
【００５３】
シナリオエンジン２２４ａは、シナリオに沿った加工処理全体の制御機能を有する加工エンジンである。シナリオエンジン２２４ｂは、同一商品に対して基幹システム毎に異なる管理コードを付与している場合に、その管理コードを統一する機能を有する。シナリオエンジン２２４ｃは、同一の顧客の表記方法が基幹システム毎に異なる場合、顧客の名称を統一する機能を有する。シナリオエンジン２２４ｄは、ＳＱＬで示されるデータ要求から、取得すべきデータの条件を抽出する機能を有する。シナリオエンジン２２４ｅは、取得したデータから、さらにユーザからの要求に応じて整理する機能を有する。
【００５４】
データ加工部２２４は、シナリオエンジン２２４ａ，２２４ｂ，２２４ｃ，１２４ｄ，２２４ｅの機能を用いて、データを加工する。データ加工中に生じたデータは、ワークＤＢ２１１に一次的に格納される。そして、データ加工部２２４は、加工が完了したデータを加工済ＤＢ２１２に格納する。
【００５５】
ＤＢアクセス部２２５は、データ加工部２２４からの要求に応じて、基幹ＤＢアクセス部２２６ａ，２２６ｂ，２２６ｃに対して、基幹ＤＢ２１ａ，２２ａ，２３ａ，２４ａ，・・・内のデータ取得を指示する。そして、ＤＢアクセス部２２５は、各基幹ＤＢアクセス部２２６ａ，２２６ｂ，２２６ｃから渡されたデータをデータ加工部２２４に渡す。
【００５６】
基幹ＤＢアクセス部２２６ａ，２２６ｂ，２２６ｃは、基幹ＤＢ２１ａ，２２ａ，２３ａ，２４ａ，・・・の管理機能毎に設けられた遠隔アクセス機能である。基幹ＤＢアクセス部２２６ａ，２２６ｂ，２２６ｃは、ＤＢアクセス部２２５からの指示に従って基幹システム２１，２２，２３，２４にアクセスし、基幹システム２１，２２，２３，２４が有する基幹ＤＢ２１ａ，２２ａ，２３ａ，２４ａ，・・・からデータを取得する。そして、基幹ＤＢアクセス部２２６ａ，２２６ｂ，２２６ｃは、取得したデータをＤＢアクセス部２２５に渡す。ＤＢアクセス部２２５は、取得したデータをデータ加工部２２４に渡す。
【００５７】
データ転送部２２７は、データ加工部２２４による処理が完了すると、加工済ＤＢ２１２に格納されているデータを、ＦＴＰ（File Transfer Protocol）等の通信手段を用いて情報サーバ１００に送信する。
【００５８】
次に、図４，図５に示した構成のシステムにおけるリアルタイムな情報活用を行うための手順を説明する。以下の手順によって、既に情報サーバ１００内にあるローカルＤＢ１１１と、基幹システム２１，２２，２３，２４，・・・上にあるデータを融合してデータの情報活用が可能となる。以下の説明では、ユーザはクライアント３１を使用するものとする。
【００５９】
基幹システム２１，２２，２３，２４に格納されている最新の情報を用いたデータ解析が必要となると、ユーザは、クライアント３１を用いて情報サーバ１００にアクセスする。情報サーバ１００では、情報分析部１２３が、クライアント３１に対して、アクセス可能なデータが登録されたデータテーブルのリストをクライアント３１に返す。すると、データテーブルのリストがクライアント３１のモニタに表示される。
【００６０】
ユーザは、クライアント３１の画面を参照し、解析すべき１以上のデータの属性（例えば、データテーブル内の任意のデータ項目）を選択する。すると、クライアント３１から情報サーバ１００に、選択されたデータの分析要求が送信される。
【００６１】
情報サーバ１００では、情報分析部１２３がクライアント３１からの分析要求を受け取る。情報分析部１２３は、分析対象のデータのデータ取得要求を集計エンジン１２４に渡す。
【００６２】
集計エンジン１２４は、情報分析部１２３からデータ取得要求を受け取ると、ＤＢアクセス部１２５に対して、情報活用に必要なＳＱＬコマンドを発行する。ＤＢアクセス部１２５は、オンデマンド情報辞書テーブルを参照し、ＳＱＬコマンドによるアクセス対象が既にユーザＤＢ１１２内のデータテーブルである場合、データマート部１２２に対して、ローカルＤＢ１１１からデータ取得要求に応じたデータの抽出を依頼する。するとデータマート部１２２が、データ取得要求に応じたデータをローカルＤＢ１１１から抽出し、ユーザＤＢ１１２に格納する。そして、ＤＢアクセス部１２５は、ユーザＤＢ１１２に対して問い合わせを行い、データを取得する。
【００６３】
また、ＤＢアクセス部１２５は、ＳＱＬコマンドによるアクセス対象がセントラルサーバ２００内のデータテーブル（仮想的なデータテーブルであり、実体（実テーブル）は基幹ＤＢ内にある）である場合、受け取ったＳＱＬコマンドを、データテーブルそれぞれにデータを問い合わせるための基幹ＤＢ毎のＳＱＬコマンドに分解する。そして、ＤＢアクセス部１２５は、分解されたＳＱＬコマンドを元にＡＰＩ１２６ａ，１２６ｂ，１２６ｃ経由でセントラルサーバ２００に問い合わせを行う。
【００６４】
セントラルサーバ２００では、シナリオ制御エージェント２２３が常駐している。シナリオ制御エージェント２２３は、ＳＱＬコマンドの入力に基づいて辞書情報を参照し、基幹システムの実テーブルが存在する場所を特定する。また、シナリオ制御エージェント２２３は、入力されたＳＱＬコマンドから実行すべきシナリオを特定する。そして、シナリオ制御エージェント２２３は、データ加工部２２４に対して、シナリオに沿ったデータの取得および加工処理の実行を指示する。
【００６５】
データ加工部２２４は、指定されたシナリオに従って実際の基幹ＤＢからデータを取得する。具体的には、データ加工部２２４からＤＢアクセス部２２５に対してデータアクセスの要求が出される。そして、その要求に応じてＤＢアクセス部２２５が、アクセス対象の基幹ＤＢに応じた基幹ＤＢアクセス部を起動し、起動された基幹ＤＢアクセス部が基幹ＤＢから必要なデータのみを取得する。取得したデータは、ＤＢアクセス部２２５を経由して、データ加工部２２４に渡される。
【００６６】
データを取得したデータ加工部２２４では、シナリオエンジン２２４ａ，２２４ｂ，２２４ｃ，２２４ｄ，２２４ｅを利用し、シナリオに沿ってデータを加工する。シナリオエンジンによる加工が終了すると、加工済のデータは、ＣＳＶ（Comma Separated Values）データやＤＤＬ（Data Definition Language）などデータ形式のファイルで加工済ＤＢ２１２に格納される。
【００６７】
加工済ＤＢ２１２上に保存されたこれらのファイルは、ＦＴＰまたはディスク共有によって、データ転送部２２７により、情報サーバ１００に送信される。送信されたファイルは、データマート部１２２で受け取られる。データマート部１２２は、ユーザＤＢ１１２内に一時的問い合わせ用のデータテーブルを作成する。データテーブルが作成されると、ＤＢアクセス部１２５によって、ユーザＤＢ１１２に対する問い合わせが行われ、データが取り出される。ＤＢアクセス部１２５は、取り出したデータを集計エンジン１２４に渡す。
【００６８】
集計エンジン１２４は、ＤＢアクセス部１２５から受け取ったデータを集計し、情報分析部１２３に渡す。情報分析部１２３は、受け取ったデータの情報分析を行い、分析結果をクライアント３１に送信する。
【００６９】
このような手順で処理を実行することで、基幹システムのデータと、情報サーバ内のデータとを組み合わせて、リアルタイムな情報活用を行うことができる。また、必要なときに必要なデータを各拠点から収集することが可能である。
【００７０】
次に、情報サーバ１００におけるデータの集計処理を詳細に説明する。
図６は、情報サーバでのデータ集計処理の手順を示すフローチャートである。以下、図６に示す処理をステップ番号に沿って説明する。なお、以下の処理は、集計エンジン１２４によってＳＱＬコマンドが発行された際に実施される。
【００７１】
［ステップＳ１１］ＤＢアクセス部１２５は、集計エンジン１２４からＳＱＬコマンドを取得する。このＳＱＬコマンドは、ユーザがＧＵＩ（Graphical User Interface）上で選択した問い合わせを表現したものである。ＳＱＬコマンドは、データ項目の定義情報（検索項目の名前と所属するテーブル名）、それらの項目のデータを検索する条件、および集計方法で構成される。
【００７２】
［ステップＳ１２］ＤＢアクセス部１２５は、ＳＱＬコマンドを解析し、選択されているテーブル名を抽出する。
［ステップＳ１３］ＤＢアクセス部１２５は、ＳＱＬコマンドで指定されているデータ項目とその検索条件を解析し、データ項目を所属するデータテーブル毎に区分けする。
【００７３】
［ステップＳ１４］ＤＢアクセス部１２５は、区分けしたデータテーブルのうち、ステップＳ１５以下の処理を行っていないデータテーブルを１つ選択する。
［ステップＳ１５］ＤＢアクセス部１２５は、選択したデータテーブルのテーブル名をキーにして、オンデマンド辞書テーブルを検索する。そして、ＤＢアクセス部１２５は、キーに対応するデータテーブルの所在情報とアクセス情報を取得する。
【００７４】
［ステップＳ１６］ＤＢアクセス部１２５は、取得したデータテーブルの所在情報が、セントラルサーバ２００内を示しているか否かを判断する。データテーブルの所在がセントラルサーバ２００内であれば、処理がステップＳ１９に進められる。データテーブルの所在がローカルＤＢ１１１内であれば、処理がステップＳ１７に進められる。
【００７５】
［ステップＳ１７］ＤＢアクセス部１２５は、オンデマンド辞書テーブルのローカルＤＢ１１１へのアクセス情報に基づいてデータソースアクセスインタフェースを実行し、データテーブル内の抽出すべきデータを、データマート部１２２に対して要求する。
【００７６】
［ステップＳ１８］データマート部１２２は、ローカルＤＢ１１１に対する検索を行い、検索結果のデータマートを行いユーザＤＢ１１２に格納する。その後、処理がステップＳ２１に進められる。
【００７７】
［ステップＳ１９］ＤＢアクセス部１２５は、セントラルサーバ２００にアクセスするためのＡＰＩ１２６ａ，１２６ｂ，１２６ｃにセントラルサーバ２００で管理されている識別名に置き換えたＳＱＬコマンドを渡して検索データを要求する。
【００７８】
［ステップＳ２０］データマート部１２２が、セントラルサーバ２００から送られた検索結果のデータマートを行い、ユーザＤＢ１１２に格納する。
［ステップＳ２１］ＤＢアクセス部１２５は、ステップＳ１３で区分けされた全てのデータテーブルについて、ステップＳ１５〜Ｓ２０の処理を実行したか否かを判断する。未処理のデータテーブルがあれば、処理がステップＳ１４に進められる。全てのデータテーブルに対する処理が完了していれば、処理がステップＳ２２に進められる。
【００７９】
［ステップＳ２２］ＤＢアクセス部１２５は、ユーザＤＢ１１２に格納されたデータを集計エンジン１２４に渡す。そして、集計エンジン１２４により、データの集計処理が行われる。
【００８０】
このようにして、アクセス対象のデータテーブルがローカルＤＢ１１１内にあっても、セントラルサーバ２００を経由してアクセス可能な基幹ＤＢ内にあっても、ユーザからは意識せずにデータの集計を行うことができる。
【００８１】
次に、セントラルサーバ２００における情報サーバ１００へのデータ提供処理について説明する。
図７は、セントラルサーバの処理手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
【００８２】
［ステップＳ３１］シナリオ制御エージェント２２３は、情報サーバ１００から送られたＳＱＬコマンドに基づいて実行するシナリオを特定し、メタ管理情報記憶部２１４から対応するシナリオファイルを抽出する。
【００８３】
［ステップＳ３２］シナリオ制御エージェント２２３は、セントラル辞書テーブルを参照し、取得すべきデータが格納されている基幹ＤＢ（拠点）の情報を抽出する。
［ステップＳ３３］シナリオ制御エージェント２２３は、拠点を１つ選択する。
【００８４】
［ステップＳ３４］シナリオ制御エージェント２２３は、選択した拠点のデータテーブル名を抽出する。すなわちシナリオには、拠点毎にどのようなテーブル名・項目名で参照すればよいのかを示す情報が保持されているため、シナリオ制御エージェント２２３は、シナリオファイルを参照することで、抽出すべきデータを含むデータテーブルのテーブル名を知ることができる。
【００８５】
［ステップＳ３５］シナリオ制御エージェント２２３は、情報サーバ１００から送られたＳＱＬコマンドにおいてデータの抽出条件が指定されているか否かを判断する。データの抽出条件が指定されていれば、処理がステップＳ３６に進められる。データの抽出条件が指定されていなければ、処理がステップＳ３７に進められる。
【００８６】
［ステップＳ３６］シナリオ制御エージェント２２３は、シナリオにおいて設定されているデータの抽出条件の条件値を、ＳＱＬコマンドで示された抽出条件の条件値に変換する。
【００８７】
［ステップＳ３７］データ加工部２２４は、アクセス先の基幹ＤＢからデータを抽出するためのＳＱＬコマンドを作成する。
［ステップＳ３８］データ加工部２２４は、ステップＳ３７で作成したＳＱＬコマンドを実行して、基幹ＤＢからデータを抽出する。
【００８８】
［ステップＳ３９］シナリオ制御エージェント２２３は、全ての拠点に対してステップＳ３３〜Ｓ３８の処理を実行したか否かを判断する。未処理の拠点があれば、処理がステップＳ３３に進められる。全ての拠点に対して処理が完了していれば、処理がステップＳ４０に進められる。
【００８９】
［ステップＳ４０］データ加工部２２４は、基幹ＤＢから抽出したデータをシナリオに沿って加工する。例えば、商品コードの統一、名寄せ、マージなどの処理が行われる。
［ステップＳ４１］データ加工部２２４は、シナリオに沿ったデータマート処理を行い、その結果データを加工済ＤＢ２１２に格納する。すると、データ転送部２２７が、加工済ＤＢ２１２内のデータを、ＤＤＬ（Data Definition Language）定義等を含めて、情報サーバ１００に送信する。
【００９０】
［ステップＳ４２］シナリオ制御エージェント２２３は、情報サーバ１００のＤＢアクセス部１２５に対して、オンデマンドによるデータ収集が完了したことを通知する。これにより、ＤＢアクセス部１２５は、ユーザＤＢ１１２からのデータ取得が可能となったことを認識する。
【００９１】
このような手順で、セントラルサーバ２００によって基幹ＤＢのデータが収集され、情報サーバ１００に送られる。
次に、クライアント３１において表示される画面と、その画面に基づくユーザの操作内容について説明する。クライアント３１を使用するユーザが、最新のデータを含めたデータ解析を情報サーバ１００に実行させる場合、まず、クライアント３１の画面上で、解析対象のデータを指定する。
【００９２】
図８は、クライアントに表示されるデータ指定画面を示す図である。データ指定画面４０には、レイアウト指定欄４１とデータ項目表示欄４２とが設けられている。レイアウト指定欄４１は、画面に表示させるデータ項目を設定するフィールドである。
【００９３】
データ項目表示欄４２は、アクセス可能なデータ項目を表示するフィールドである。データ項目表示欄４２内には、情報サーバ１００内のローカルＤＢ１１１に格納されたデータ項目と、基幹ＤＢに格納されているデータ項目とが表示される。
【００９４】
この例では、データ項目表示欄４２において「売上実績」と表示されているデータは、分散いしてる拠点に存在する基幹システムのデータで構成される仮想的なデータテーブルに含まれる。また、「店舗」と表示されているデータは、情報サーバ１００内に存在するデータテーブルに含まれる。
【００９５】
ユーザは、データ指定画面４０から、各データが実際にどこに存在するのかを意識せずに、参照したいデータを選択することができる。具体的には、ユーザは、データ項目表示欄４２から任意のデータを選択し、追加ボタン４３を押下すると、選択されたデータがレイアウト指定欄４１内に設定される。そして、ユーザがＯＫボタン４４を押下すると、レイアウト指定欄４１に設定されているデータの収集が行われる。なお、キャンセルボタン４５が押下されると、データの収集を行わずにデータ指定画面４０が閉じる。
【００９６】
図９は、売上実績テーブル内の売上額を選択する場合の画面を示す図である。この例では、データ項目表示欄４２において「売上実績」内のデータ項目が表示されており、「売上額」のデータ項目が選択されている。ここで、追加ボタン４３が押下されると、「売上額」がレイアウト指定欄４１に表示される。そして、ＯＫボタン４４が押下されると、売上額のデータの解析結果が画面に表示される。
【００９７】
図１０は、解析結果表示画面を示す図である。図１０の例では、解析結果表示画面５０に、店舗毎の最新の売上げ実績と総計が表形式で表示されている。
このように、各支店（拠点）に存在する基幹システムの売上実績テーブルが、クライアントからは１つの売上実績テーブルとして扱うことが可能となる。
【００９８】
図１１は、最新データの集計状況を示す概念図である。本店基幹システム６１、札幌店基幹システム６２、仙台店基幹システム６３等の各店舗の基幹システムに、最新の売上実績テーブルが設けられている。そして、店舗マスタテーブル７１により、集計対象の店舗名が判断され、各店舗の基幹システムから売上実績の最新データが取り出され、売上実績テーブル７２が作成される。これにより、各店舗の売上実績が解析される。そして、店舗マスタテーブル７１と売上実績テーブル７２に基づいて、解析結果表示画面５０が表示される。
【００９９】
次に、ＤＢアクセス部１２５によって行われるＳＱＬコマンドの分解処理について詳細に説明する。
図１１に示した売上実績テーブル７２の検索によって各拠点の売上実績データを得るためのＳＱＬ分解の流れは以下のようになる。
【０１００】
［第１の処理］ユーザがクライアント３１のデータ指定画面４０において検索を指示することにより、データ指定画面４０のレイアウト指定欄４１において指定されたデータ項目（この例では、「売上実績」の「売上額」）の収集が情報サーバ１００の情報分析部１２３に要求される。
【０１０１】
［第２の処理］情報分析部１２３が辞書情報記憶部１１４を検索する。その結果、ユーザがデータ指定画面４０で指定した「売上実績」の「売上額」データは、テーブル「売上実績」の項目「売上額」に対応しているという情報を得る。このことから情報分析部１２３は、ユーザがデータ指定画面４０に指定した問い合わせを、テーブル「売上実績」の項目「売上額」の値を合計する集計と解釈して、集計エンジン１２４に実行を要求する。また、情報分析部１２３は、辞書情報記憶部１１４から項目のデータ型や制約などの返却データの受け取りや参照に必要な属性情報を取得し、この情報も集計エンジン１２４にあわせて渡す。
【０１０２】
なお、この処理段階で使用するテーブル名「売上実績」は情報サーバが各システム固有の仕様に依存せずテーブルを識別するために、情報サーバ独自につけて辞書情報記憶部１１４に登録している名前であり、テーブルの実体が存在するデータソース上の識別名を示すものではない。
【０１０３】
［第３の処理］集計エンジン１２４では要求された集計結果を、テーブル「売上実績」の項目「売上額」の明細データを収集して合計する処理によって作成する。この合計処理のために、テーブル「売上実績」から項目「売上額」の明細データを取り出す依頼を意味する以下のようなＳＱＬコマンドを作成し、ＤＢアクセス部１２５に実行するよう要求する。
「SELECT  売上額 FROM 売上スキーマ．売上実績」
なお、実際はこの命令にデータ検索の絞込み条件が付加される。
【０１０４】
また、集計エンジン１２４からＤＢアクセス部１２５へのＳＱＬ実行要求では、あわせて、情報分析部１２３から渡された項目属性情報を用いてＤＢアクセス部１２５に結果データを返却させる場所やそのデータ型を指示する。
【０１０５】
［第４の処理］ＤＢアクセス部１２５は、集計エンジン１２４から発行されたＳＱＬを実行する。
（４−１）ＤＢアクセス部１２５はオンデマンド辞書テーブル記憶部１１３を参照し、ＳＱＬに指定されているテーブル「売上実績」の実体はセントラルサーバ２００の仮想データテーブルであることを判断する。
【０１０６】
（４−２）この場合ＤＢアクセス部１２５は、オンデマンド辞書テーブル記憶部１１３から、情報サーバ上でつけられている識別名であるテーブル名「売上実績」、項目名「売上額」に対応するセントラルサーバ２００上の識別名を検索する。この検索によって、仮想データテーブルのセントラルサーバ上での名前は「売上実績テーブル」、項目の名前は「全体売上額」であることを得る。
【０１０７】
（４−３）ＤＢアクセス部１２５は、集計エンジン１２４から渡されたＳＱＬ上のテーブル名や項目名を、（４−２）の情報を用いてセントラルサーバ２００で管理されている識別名に置き換えた以下のようなＳＱＬコマンドを作成する。
「SELECT  全体売上額 FROM 売上実績テーブル」
なお、実際はこの命令にデータ検索の絞込み条件が付加される。
【０１０８】
（４−４）これからセントラルサーバ２００上に要求する仮想データテーブルのＳＱＬによる検索結果は、情報サーバ１００のデータマート部１２２が受信して、ユーザＤＢ１１２上に一時的な問い合わせテーブルを作成して結果データを格納することになる。そしてＤＢアクセス部１２５は、集計エンジン１２４から渡されたＳＱＬの実行結果を、このユーザＤＢ１１２上の一時的な問い合わせテーブルから取り出して集計エンジン１２４に返却する仕組みになっている。このため、ＤＢアクセス部１２５は、（４−３）のＳＱＬ実行をセントラルサーバ２００に要求する前に、オンデマンド辞書テーブル記憶部１１３から仮想データテーブル「売上実績テーブル」のデータ型や制約などの項目属性情報を取得する。そして、ＤＢアクセス部１２５は、ユーザＤＢ１１２に作成する一時的なテーブルのテーブル名、項目名やデータ型などを決定しておく。
【０１０９】
（４−５）ＤＢアクセス部１２５は、（４−３）で作成したセントラルサーバ２００上の仮想データテーブルを検索するＳＱＬコマンドと（４−４）で決定したユーザＤＢ１１２上に作成するＳＱＬ実行結果格納テーブルの定義情報を指定して、セントラルサーバＡＰＩ１２６ａを実行する。これによってセントラルサーバ２００にＳＱＬの実行が要求される。
【０１１０】
［第５の処理］セントラルサーバ２００のシナリオ制御エージェント２２３が、情報サーバ１００のＤＢアクセス部１２５によって渡された仮想データテーブル自身の検索ＳＱＬを、拠点毎のデータを検索する複数のＳＱＬに分解する。
【０１１１】
（５−１）セントラルサーバ２００のシナリオ制御エージェント２２３は、情報サーバ１００のＤＢアクセス部１２５より送られたＳＱＬを解析して、仮想データテーブル名に対応する実行すべきシナリオを確定する。
【０１１２】
シナリオにはその仮想データテーブルの項目を、セントラル辞書テーブル記憶部２１３に管理されている各拠点システム上の項目の、どの項目から取り出して作成するかという指示が記述されている。
【０１１３】
具体的には、仮想データテーブルである売上実績テーブル７２の項目「全店売上実績」は、本店基幹システム６１の「本店売上実績」テーブルの「支店売上額」項目の明細データ、札幌店基幹システム６２の「札幌店売上実績」テーブルの「支店売上額」項目の明細データ、仙台店基幹システム６３の「仙台店売上実績」テーブルの「支店売上額」項目の明細データ・・・というように、各支店の基幹システムで運用されている各店の売上実績テーブルの明細データをあわせることによって該当項目のデータを作成するように、対応するシナリオに記述されている。
【０１１４】
なお、シナリオに記述されているこれらのテーブル名や項目名は、実際の各拠点上のデータソース上の実名ではなく、セントラルサーバ上で利用できる各拠点のテーブルを識別する名前として各拠点のテーブル毎に名付けられたものである。これらのテーブル名や項目名は、セントラル辞書テーブル記憶部２１３に事前に登録されているセントラルサーバ２００だけで通用するものである。
【０１１５】
（５−２）シナリオ制御エージェント２２３は、（５−１）の各拠点のテーブルのデータを、シナリオ制御エージェント２２３がデータ加工部２２４を通じてＤＢアクセス部２２５に検索させる。このためシナリオ制御エージェント２２３は、ＤＢアクセス部２２５に渡す各拠点のテーブルの検索ＳＱＬを、各拠点のテーブル毎に以下のように組み立てる。
・本店のデータを持つ拠点を検索するために、ＤＢアクセス部２２５に発行するＳＱＬコマンドは以下の通りである。
「SELECT  支店売上額  FROM 本店売上実績」
・札幌店のデータを持つ拠点を検索するために、ＤＢアクセス部２２５に発行するＳＱＬコマンドは以下の通りである。
「SELECT  支店売上額  FROM 札幌店売上実績」
以下、同様に他の店舗を検索するために、それぞれ拠点毎のＳＱＬコマンドが組み立てられる。なお、この例では簡略化のために基幹ＤＢから取り出すデータに対する絞込み条件をつけていないが、実際には当日分などの検索範囲を狭める条件をつけて要求が出される。
【０１１６】
［第６の処理］（５−２）のそれぞれのＳＱＬを、対応する各拠点に対してＤＢアクセス部２２５が実行する。
（６−１）ＤＢアクセス部２２５では、セントラル辞書テーブル記憶部２１３、メタ管理情報記憶部２１４の登録情報を検索することで、（５−２）のＳＱＬに指定されているテーブル名に対応する各拠点のデータソース固有の情報を取得することができる。これにより実際にデータを検索すべき拠点が何処なのかが判明する。
【０１１７】
（６−２）本店の「本店売上実績」テーブルが実際には拠点１の基幹ＤＢ２１ａに存在する場合を想定すると、メタ管理情報記憶部２１４に、セントラルサーバ２００上の識別テーブル名「本店売上実績」が、実際には基幹ＤＢ２１ａに存在するテーブルであるという対応関係が事前に登録されている。また、メタ管理情報記憶部２１４には、その基幹ＤＢ２１ａが特定ベンダのＲＤＢＭＳであることや、ＤＢＭＳ固有のアクセスインタフェース情報もあわせて登録されている。さらに、メタ管理情報記憶部２１４には、セントラルサーバ２００上の識別テーブル名「本店売上実績」の「売上額」に対応する、実際の拠点システム上の項目は「本店販売」というテーブルの「本店販売額」という名前であることなども記録されている。
【０１１８】
このようなメタ管理情報記憶部２１４を照会して得た情報に基づいて、ＤＢアクセス部２２５に発行された（５−２）の本店検索のＳＱＬが、ＤＢアクセス部２２５によって、基幹ＤＢ２１ａのＲＤＢＭＳ固有インタフェースに対応する基幹ＤＢアクセス部２２６ｂを通して基幹ＤＢ２１ａを検索するためのＳＱＬに変換される。変換後のＳＱＬを以下に示す。
「SELECT  本店販売額  FROM 本店販売 」
（６−３）札幌店の拠点を検索するＳＱＬの実行や仙台店の拠点を検索するＳＱＬ実行も（６−２）と同じように、各拠点固有のインタフェースに対応したＳＱＬに変換されて実行される。なお、拠点によってはＲＤＢＭＳではないシステムもあるが、それぞれの基幹ＤＢアクセス部内で、渡されたＳＱＬ表現をＡＰＩなど各システム固有のインタフェース仕様に変換して検索を実行し、結果をＳＱＬの形式に変換して返却することで、様々なシステムの検索を上記の仕組みで実行することができる。
【０１１９】
［第７の処理］以上のようにして、シナリオ制御エージェント２２３がデータ加工部２１１を用いて各拠点の必要な明細データを収集し、最終的な情報サーバ１００の発行したＳＱＬの結果データを作成することができる。この結果データを作成する際には、情報サーバ１００のＤＢアクセス部１２５が、（４−４）で決定したユーザＤＢ１１２に作る結果格納用の一時テーブルの構成にあわせてデータ型を変換する。あわせて、ＤＢアクセス部１２５は、一時テーブルを作成するために使用するテーブル定義文（ＤＤＬ文）を作成し、データ転送部２２７を通じて情報サーバ１００のデータマート部１２２に送付する。
【０１２０】
［第８の処理］
情報サーバ１００のデータマート部１２２は、ＤＤＬ文を実行して一時テーブルをユーザＤＢ１１２に作成し、受信した結果データを格納する。
【０１２１】
［第９の処理］
情報サーバ１００のＤＢアクセス部１２５は、セントラルサーバＡＰＩ１２６ａによって、（４−５）で実行したＳＱＬ実行の結果が正しくユーザＤＢ１１２の一時テーブルに格納されたことの通知を受け取る。すると、ＤＢアクセス部１２５は、ユーザＤＢ１１２を検索してデータを取得し、集計エンジン１２４が［第３の処理］で要求したデータ型に変換して、指示された返却場所に結果データを返却する。
【０１２２】
これによって集計エンジン１２４は［第３の処理］で要求した「販売実績」テーブルの「売上額」の明細データを得ることができ、それらを合計処理することで、情報分析部１２３が要求した集計結果を作成し、返却することができる。
【０１２３】
最終的に情報分析部１２３は集計エンジン１２４の返却した集計結果をクライアント３１が表示できる形に整形して返却し、クライアント３１はその結果を画面に表示することでユーザが求めていた結果を得ることができる。
【０１２４】
このように、本実施の形態に係るシステムを利用すれば、より鮮度の高いデータ（速報データ）を扱うことが可能となる。また、確定データと、未確定データを融合して分析を行うことが可能となる。さらに、オンデマンドのように分析したい時に分析したいデータを動的に収集できるため、データ収集の作業が容易となる。
【０１２５】
すなわち、基幹システムのデータと情報システムのデータをリアルタイムに融合させることができ、これにより従来では実現が困難であった、最新データで、リアルタイムなデータ活用を行うことが可能である。
【０１２６】
さらに、複数の拠点に基幹データが存在する場合、従来は、そのデータの規模によっては、データを一箇所に収集すること自体が困難な作業であった。ところが、本実施の形態によれば、必要なときに必要なだけの情報を持ってくるため、大規模なデータを情報システムに集める必要がなくなる。しかも、リアルタイムに収集するのは、ユーザによって指定されたデータのみであるため、基幹システムに対する負荷も少なくてすむ。
【０１２７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報サーバ１００およびセントラルサーバ２００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１２８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３０】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１３１】
（付記１）  ネットワーク上に分散しているデータの集計処理を行うデータ収集プログラムにおいて、
コンピュータに、
前記ネットワークを介して接続されている複数のリモートデータベースに格納されているデータのデータ項目に関するリモートデータ情報を記憶するデータ情報記憶手段、
前記データ情報記憶手段に記憶された前記リモートデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付ける情報管理手段、
前記情報管理手段が受け付けた前記アクセス要求に基づいて、アクセス対象となる少なくとも１つの前記リモートデータベースを判断し、前記アクセス要求を、アクセス対象の前記リモートデータベース毎のリモートアクセス要求に分解するアクセス要求分解手段、
前記アクセス要求分解手段で生成された前記リモートアクセス要求に基づいて前記リモートデータベースに対してアクセスし、各前記リモートデータベースからデータを抽出するアクセス手段、
前記アクセス手段が抽出したデータを集計し、集計結果を表示する集計手段、
として機能させることを特徴とするデータ収集プログラム。
【０１３２】
（付記２）  前記データ情報記憶手段は、さらに、ローカルデータベースに格納されているデータのデータ項目に関するローカルデータ情報を記憶しており、
前記情報管理手段は、前記データ情報記憶手段に記憶された前記リモートデータ情報および前記ローカルデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付け、
前記アクセス要求分解手段は、前記情報管理手段が受け付けた前記アクセス要求に前記ローカルデータベース内のデータ項目を含む場合、前記ローカルデータベースにアクセスするためのローカルデータアクセス要求を生成し、
前記アクセス手段は、前記ローカルデータアクセス要求に従って、前記ローカルデータベースからデータを抽出することを特徴とする付記１記載のデータ収集プログラム。
【０１３３】
（付記３）  前記ローカルデータベースには、前記リモートデータベースに格納されたデータを所定のタイミングで予め集計したデータが登録されていることを特徴とする付記２記載のデータ収集プログラム。
【０１３４】
（付記４）  前記アクセス手段は、前記リモートデータベースから抽出したデータに対して所定の加工処理を実行するセントラルサーバを介して、前記リモートデータベースから抽出したデータを取得することを特徴とする付記１記載のデータ収集プログラム。
【０１３５】
（付記５）  前記アクセス手段は、加工処理を行う際の処理手順を示すシナリオを指定する情報を含むデータ取得要求を前記セントラルサーバに送信し、指定した前記シナリオに沿った加工が施されたデータを前記セントラルサーバ経由で受信することを特徴とする付記４記載のデータ収集プログラム。
【０１３６】
（付記６）  ネットワーク上に分散しているデータの集計処理を行うデータ収集装置において、
前記ネットワークを介して接続されている複数のリモートデータベースに格納されているデータのデータ項目に関するリモートデータ情報を記憶するデータ情報記憶手段と、
前記データ情報記憶手段に記憶された前記リモートデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付ける情報管理手段と、
前記情報管理手段が受け付けた前記アクセス要求に基づいて、アクセス対象となる少なくとも１つの前記リモートデータベースを判断し、前記アクセス要求を、アクセス対象の前記リモートデータベース毎のリモートアクセス要求に分解するアクセス要求分解手段と、
前記アクセス要求分解手段で生成された前記リモートアクセス要求に基づいて前記リモートデータベースに対してアクセスし、各前記リモートデータベースからデータを抽出するアクセス手段と、
前記アクセス手段が抽出したデータを集計し、集計結果を表示する集計手段と、
を有することを特徴とするデータ収集装置。
【０１３７】
（付記７）  コンピュータによりネットワーク上に分散しているデータの集計処理を行うデータ収集方法において、
前記コンピュータが、
前記ネットワークを介して接続されている複数のリモートデータベースに格納されているデータのデータ項目に関するリモートデータ情報に基づいて、アクセス可能な前記データ項目を表示し、アクセス対象の前記データ項目を指定したアクセス要求を受け付け、
受け付けた前記アクセス要求に基づいて、アクセス対象となる少なくとも１つの前記リモートデータベースを判断し、前記アクセス要求を、アクセス対象の前記リモートデータベース毎のリモートアクセス要求に分解し、
生成された前記リモートアクセス要求に基づいて前記リモートデータベースに対してアクセスし、各前記リモートデータベースからデータを抽出し、
抽出したデータを集計し、集計結果を表示する、
ことを特徴とするデータ収集方法。
【図面の簡単な説明】
【０１３８】
【図１】本実施の形態の概略を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いる情報サーバのハードウェア構成例を示す図である。
【図４】情報サーバの機能を示すブロック図である。
【図５】セントラルサーバの機能を示すブロック図である。
【図６】情報サーバでのデータ集計処理の手順を示すフローチャートである。
【図７】セントラルサーバの処理手順を示すフローチャートである。
【図８】クライアントに表示されるデータ指定画面を示す図である。
【図９】売上実績テーブル内の売上額を選択する場合の画面を示す図である。
【図１０】解析結果表示画面を示す図である。
【図１１】最新データの集計状況を示す概念図である。
【符号の説明】
【０１３９】
１  データ収集装置
１ａ  ローカルデータベース
１ｂ  データ情報記憶手段
１ｂａ  ローカルデータ情報
１ｂｂ  リモートデータ情報
１ｃ  情報管理手段
１ｄ  アクセス要求分解手段
１ｅ  アクセス手段
１ｆ  集計手段
３  クライアント
４，５  リモートデータベース
【図１】
2007133452.tif 000003
【図２】
2007133452.tif 000004
【図３】
2007133452.tif 000005
【図４】
2007133452.tif 000006
【図５】
2007133452.tif 000007
【図６】
2007133452.tif 000008
【図７】
2007133452.tif 000009
【図８】
2007133452.tif 000010
【図９】
2007133452.tif 000011
【図１０】
2007133452.tif 000012
【図１１】
2007133452.tif 000013