(57)【要約】【課題】マルチテナントのＳａａＳシステムにおいて、各テナントが個別にＤＢやＤＷＨを持っている場合、あるテナントがシステム全体のデータ集計結果から各テナントの個別のデータへのドリルスルーを実行する際の処理効率を向上させることを目的とする。【解決手段】サービス管理装置１１７は複数の店舗用ＳａａＳサーバ１０１から収集した明細データを集計して全体集計結果１１５を生成し、当該明細データのうち、共通ＡＣＬ１２６で全体集計結果１１５の要求元からのアクセスを許可することが示された明細データを蓄積する店舗用ＳａａＳサーバ１０１を示すＡＣＬサブセット１１６を生成する。全体集計結果１１５の要求元の店舗用ＳａａＳサーバ１０１は、全体集計結果１１５の一部からＡＣＬサブセット１１６で示された店舗用ＳａａＳサーバ１０１に蓄積された明細データへのドリルスルーを実行する。【選択図】図４
2009146350.tif 000002
【特許請求の範囲】
【請求項１】
複数の種類の明細データを蓄積する複数のサーバの１つ（以下、「第１サーバ」という）から、集計対象とする明細データの種類を指定した集計要求をネットワーク経由で受信し、前記複数のサーバから、各サーバに蓄積された当該種類の明細データをネットワーク経由で収集し、当該明細データを処理装置により集計して集計データを生成する集計実行部と、
各サーバから他のサーバに蓄積された明細データへのアクセスの許否をサーバごとに示す共通ＡＣＬ（アクセス制御リスト）を記憶装置により記憶する共通ＡＣＬ管理データベースと、
前記集計実行部が集計した明細データのうち、前記共通ＡＣＬ管理データベースに記憶された共通ＡＣＬで前記第１サーバからのアクセスを許可することが示された明細データを蓄積するサーバ（以下、「第２サーバ」という）を示すＡＣＬサブセットを処理装置により生成するドリルスルー用ＡＣＬサブセット生成部とを備え、
前記集計実行部は、前記第１サーバに対し、生成した集計データと前記ドリルスルー用ＡＣＬサブセット生成部が生成したＡＣＬサブセットとをネットワーク経由で送信し、当該集計データの一部から当該ＡＣＬサブセットで示された第２サーバに蓄積された明細データへのドリルスルーを前記第１サーバに実行させることを特徴とするサービス管理装置。
【請求項２】
前記共通ＡＣＬ管理データベースは、前記複数のサーバを分類した複数のグループのうち、各サーバが所属するグループをサーバごとに示す共通ＡＣＬを記憶し、
前記ドリルスルー用ＡＣＬサブセット生成部は、前記集計実行部が集計した明細データが蓄積されたサーバのうち、前記共通ＡＣＬ管理データベースに記憶された共通ＡＣＬで前記第１サーバと同じグループに所属することが示されたサーバを前記第２サーバとして示すＡＣＬサブセットを生成することを特徴とする請求項１に記載のサービス管理装置。
【請求項３】
前記サービス管理装置は、さらに、
前記共通ＡＣＬ管理データベースは、さらに、各サーバから他のサーバに蓄積された各種類の明細データへのアクセスの許否をサーバと明細データの種類との組み合わせごとに示す例外リストを記憶装置により記憶し、
前記ドリルスルー用ＡＣＬサブセット生成部は、前記集計実行部が集計した明細データが蓄積されたサーバのうち、前記共通ＡＣＬ管理データベースに記憶された共通ＡＣＬで前記第１サーバと同じグループに所属することが示されたサーバに加えて、前記共通ＡＣＬ管理データベースに記憶された共通ＡＣＬで前記第１サーバと異なるグループに所属することが示されたサーバであって、前記共通ＡＣＬ管理データベースに記憶された例外リストで前記第１サーバからのアクセスを許可することが示された、前記集計実行部が集計した明細データと同じ種類の明細データを蓄積するサーバを前記第２サーバとして示すＡＣＬサブセットを生成することを特徴とする請求項２に記載のサービス管理装置。
【請求項４】
複数の種類の明細データを蓄積する複数のサーバの１つ（以下、「第１サーバ」という）に具備されるデータアクセス制御装置において、
前記複数のサーバから各サーバに蓄積された明細データを収集するとともに各サーバから他のサーバに蓄積された明細データへのアクセスの許否をサーバごとに示す共通ＡＣＬ（アクセス制御リスト）を記憶するサービス管理装置に対し、集計対象とする明細データの種類を指定した集計要求をネットワーク経由で送信し、前記サービス管理装置から、各サーバに蓄積された当該種類の明細データを集計して生成した集計データと、当該明細データのうち前記共通ＡＣＬで前記第１サーバからのアクセスを許可することが示された明細データを蓄積するサーバ（以下、「第２サーバ」という）を示すＡＣＬサブセットとをネットワーク経由で受信する集計要求部と、
前記集計要求部が受信した集計データのうち、ドリルスルー対象とする部分を指定した入力を入力装置により受け付け、前記集計要求部が受信したＡＣＬサブセットに示された第２サーバに対し、前記入力で指定された部分に対応する明細データを指定したドリルスルー要求をネットワーク経由で送信し、当該第２サーバから、当該明細データをネットワーク経由で受信するドリルスルー要求部とを備えることを特徴とするデータアクセス制御装置。
【請求項５】
前記ドリルスルー要求部は、前記集計要求部が受信したＡＣＬサブセットに示された第２サーバから、前記入力で指定された部分に対応する明細データを非同期通信により受信することを特徴とする請求項４に記載のデータアクセス制御装置。
【請求項６】
複数の種類の明細データを蓄積する複数のサーバの１つ（以下、「第１サーバ」という）が、各サーバから他のサーバに蓄積された明細データへのアクセスの許否をサーバごとに示す共通ＡＣＬ（アクセス制御リスト）を記憶するサービス管理装置に対し、集計対象とする明細データの種類を指定した集計要求を送信し、
前記サービス管理装置が、前記複数のサーバから、各サーバに蓄積された明細データのうち、前記集計要求で指定された種類の明細データを収集し、当該明細データを処理装置により集計して集計データを生成し、
前記サービス管理装置が、集計した明細データのうち、前記共通ＡＣＬで前記第１サーバからのアクセスを許可することが示された明細データを蓄積するサーバ（以下、「第２サーバ」という）を示すＡＣＬサブセットを処理装置により生成し、
前記サービス管理装置が、前記第１サーバに対し、生成した集計データとＡＣＬサブセットとを送信し、
前記第１サーバが、前記集計データのうち、ドリルスルー対象とする部分を指定した入力を入力装置により受け付け、前記ＡＣＬサブセットに示された第２サーバに対し、前記入力で指定された部分に対応する明細データを指定したドリルスルー要求を送信し、
前記第２サーバが、前記第１サーバに対し、前記ドリルスルー要求で指定された明細データを送信し、
前記第１サーバが、前記明細データを表示装置により表示することを特徴とするデータ検索方法。
【請求項７】
前記データ検索方法は、さらに、
前記第２サーバが、前記サービス管理装置に対し、前記ドリルスルー要求で指定された明細データを指定した確認要求を送信し、
前記サービス管理装置が、前記共通ＡＣＬで前記第２サーバから送信された確認要求で指定された明細データへのアクセスを許可することが示されているか否かを処理装置により確認し、当該確認結果を送信し、
前記第２サーバが、前記確認結果に基づいて、前記第１サーバに対し、前記ドリルスルー要求で指定された明細データを送信することを特徴とする請求項６に記載のデータ検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス管理装置及びデータアクセス制御装置及びデータ検索システム及びデータ検索方法に関するものである。
【背景技術】
【０００２】
従来のパッケージＳ／Ｗ（ソフトウェア）の代替としてＷｅｂブラウザベースのＵＩ（ユーザインタフェース）によりインターネット経由で全ての機能を提供するＳａａＳ（Ｓｏｆｔｗａｒｅ・ａｓ・ａ・Ｓｅｒｖｉｃｅ）が注目されている。マルチテナントのＳａａＳシステム（マルチテナントとは、同一システム内に複数サービスが共存している状態を指し、テナントは個々のサービスを指す）では、各テナントが個別にＤＢ（データベース）やＤＷＨ（データウェアハウス）を持っている場合がある。
【０００３】
ＤＢの一種である掲示板システムにおいて、ユーザ、及び、ユーザが属する少なくとも１レベルの階層のグループごとに、データベース、及び、データベースが属する少なくとも１レベルの階層のデータベースグループに対するアクセス権を設定し、データベースアクセス要求に対して、要求元となるユーザの階層構造、アクセス対象となるデータベースの階層構造、及び、上記アクセス権の設定内容を基に、アクセス権のチェックを行うものがある（例えば、特許文献１参照）。
【特許文献１】特開平７−６４８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
マルチテナントのＳａａＳ（Ｓｏｆｔｗａｒｅ・ａｓ・ａ・Ｓｅｒｖｉｃｅ）システムにおいて、各テナントが個別にＤＢ（データベース）やＤＷＨ（データウェアハウス）を持っているものの一例として、複数の店舗からなるフランチャイズチェーン（ＦＣ）におけるＳａａＳ利用を考える。一般にＦＣでは、店舗ごとに業務内容が異なるため、店舗ごとに別々のＳａａＳを契約する。一方、ＦＣの親業者や地域のＦＣ店舗管理監督者などにおいては、傘下の店舗の業務内容を把握するため、複数の店舗のＳａａＳにアクセスし、売上情報などについてテナントを横断して検索・集計を行いたいという要求がある。この際、データ分析を経営に生かすビジネスインテリジェンス（ＢＩ）の世界では、テナントを横断するＦＣ全体の集計結果から見出される現象の原因追求のため、集計データ参照画面から個別の明細データを検索して参照するドリルスルー機能（個別明細データ検索機能）を提供するのが一般的である。個々の店舗においては、ＦＣ全体の売上などの集計結果を参照したいという要求がある一方、他店舗がＦＣ全体の集計結果からドリルスルーする際、自店舗の詳細情報である明細は同じ管理地区に属さない他店舗には参照されたくないというニーズがある。
【０００５】
しかし、テナントごとにＤＢやＤＷＨを持っているＳａａＳにおいては、個々のＤＢやＤＷＨごとにアクセス制御情報を設定する必要があり、管理が煩雑である。図１に、この場合のＳａａＳシステム９９１の構成を示す。図１において、ＡＣＬ（アクセス制御リスト）は、アクセス制御情報に相当する。ＡＣＬ１、ＡＣＬ２、ＡＣＬ３は、店舗１用ＳａａＳサーバ、店舗２用ＳａａＳサーバ、店舗３用ＳａａＳサーバがそれぞれＡＣＬを個別に管理している様子を示す。
【０００６】
これに対し、テナントを横断してのデータの検索・集計に必要なマスタ情報、及び、マスタ情報の要素間の階層構造情報を、ＦＣ内で共有するようにすることができる。この際、要素ごと、階層ごとに、アクセス権情報を設定できるようにする。図２に、この場合のＳａａＳシステム９９２の構成を示す。図２において、共通ＡＣＬは、マスタ情報、マスタ情報の要素間の階層構造情報、及び、マスタ情報に対するアクセス権情報を合わせたものに相当する。同じＦＣに属する店舗Ａ１、Ａ２、Ａ３、・・・は、ＳａａＳシステム９９２の提供するＳａａＳを契約している。このＳａａＳシステム９９２は、店舗Ａ１、Ａ２、Ａ３、・・・のそれぞれに対応するＳａａＳサーバを用意し、サービスを提供する（ＳａａＳサーバは論理的に分かれていればよく、物理的には同一のサーバを仮想マシン（ＶＭ）などにより論理的に分割することにより実現されていてもよい）。各店舗の情報を管理するＤＢはＳａａＳサーバごとに物理的又は論理的に分けて実現されるのが一般的である。またＳａａＳシステム９９２は、ＳａａＳ監視管理サーバを用いて各ユーザ対応のＳａａＳサーバの監視・管理を行う。
【０００７】
このように共通ＡＣＬを用いた構成とすることにより、ＦＣ全体の横断的な集計結果に対するドリルスルーを行うために、店舗ごとのＤＢやＤＷＨに対するアクセス制御情報をＳａａＳサーバごとに個別に管理する必要がなくなり、共通ＡＣＬにＦＣ内のアクセス制御情報を集約して管理を簡略化できる。ＳａａＳシステム９９２において、各店舗のユーザ又は管理者は、端末から、各店舗のＳａａＳサーバ上にあるＤＢへの参照アクセス権利を持つＳａａＳ監視管理サーバに対して、ＦＣ全体の売上などの集計を要求する。ＳａａＳ監視管理サーバは、各店舗のＳａａＳサーバに対して問い合わせを行った後、各店舗個別の集計結果を受け取り、全体集計を実行する。そして、ＳａａＳ監視管理サーバは、ＦＣ全体の集計結果を、全体集計要求元の各店舗用ＳａａＳサーバに送り、各店舗のユーザは各店舗用ＳａａＳサーバ上のＦＣ全体の集計結果を参照する。
【０００８】
ＢＩにおいては、ＦＣ全体の集計結果を基にした、複数店舗のＤＢへのドリルスルー時には、リアルタイム性を重視して各店舗からの結果を取得次第ドリルスルー要求元に返したいという要望がある。しかしながら、ＳａａＳシステム９９２では、ＳａａＳ監視管理サーバに結果が集約され、リアルタイム性が落ちるという課題がある。例えば、図２において、店舗Ａ１が、ＦＣ全体の集計結果に基づくドリルスルー要求を出すものとすると、店舗Ａ１は、共通ＡＣＬを保管しているＳａａＳ監視管理サーバに対して、ドリルスルー要求を出す。ここで、ドリルスルーのリアルタイム性を向上させるためには、各店舗用ＳａａＳサーバ上のＤＢに対する検索結果を直接ドリルスルー要求元（店舗Ａ１）に戻したいが、各店舗用ＳａａＳサーバに対する検索要求はＳａａＳ監視管理サーバより出されているため、応答もＳａａＳ監視管理サーバに対して返され、ＳａａＳ監視管理サーバが全ての店舗の結果をまとめてドリルスルー要求元に返すことになる。
【０００９】
これに対し、店舗Ａ１が、各店舗用ＳａａＳサーバに対して、ドリルスルー要求を出し、共通ＡＣＬの確認はドリルスルー要求を受け付けた各店舗用ＳａａＳサーバにて実施する構成をとることにより、ドリルスルーの結果を取得次第、ドリルスルー要求元（店舗Ａ１）に表示することが可能になる。このとき、ドリルスルー要求元のＳａａＳサーバに結果受取スレッドを生成し、非同期に結果を各店舗用ＳａａＳサーバから受け取り、表示するように実装することができる。図３に、この場合の処理の概略を示す。図３の処理の流れは下記の通りである。
（１）ドリルスルー要求元（店舗Ａ１）は、各店舗に対し、ドリルスルーを要求する。
（２）各店舗は、ＳａａＳ監視管理サーバ上の共通ＡＣＬを参照し、ドリルスルー要求元（店舗Ａ１）に対し、自己の持つＤＢへのアクセスを許可してよいか確認する。
（３）ＳａａＳ監視管理サーバは、各店舗に対し、各店舗の持つＤＢへのドリルスルー要求元（店舗Ａ１）のアクセス可否を通知する。
（４）（３）でアクセス可となった店舗は、ドリルスルー要求元（店舗Ａ１）に対し、ドリルスルー結果を送付する。
【００１０】
図３において、ドリルスルー要求元（店舗Ａ１）は共通ＡＣＬを持たないため、ドリルスルー要求は全店舗のＳａａＳサーバに対して行うことになり、無駄な通信トラフィックが発生するという課題がある。仮に、この課題に対処するためにドリルスルー要求元に共通ＡＣＬの複製を配置すると、共通ＡＣＬの管理コストの問題が発生する。
【００１１】
上記のようなＳａａＳシステムにおいて、ドリルスルー要求元のサービス契約に対する料金滞納の有無、利用時間・データ量の制限超過の有無など、利用状況に応じてドリルスルーに対する制限をかけることが必要な場合がある。
【００１２】
本発明は、例えば、マルチテナントのＳａａＳシステムにおいて、各テナントが個別にＤＢやＤＷＨを持っている場合、あるテナントがシステム全体のデータ集計結果から各テナントの個別のデータへのドリルスルーを実行する際の処理効率を向上させることを目的とする。具体的には、本発明は、ドリルスルーを実行するテナントが、非同期通信により他のテナントからドリルスルーの結果を受け取ることを可能にしつつ、アクセス権を持たない他のテナントへドリルスルーの結果を無駄に問い合わせることを防ぐことを目的とする。また、本発明は、ドリルスルーを実行するテナントが、他のテナントにドリルスルーの結果を要求する際に、サービス契約に対する利用状況に応じた制限をかけることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一の態様に係るサービス管理装置は、
複数の種類の明細データを蓄積する複数のサーバの１つ（以下、「第１サーバ」という）から、集計対象とする明細データの種類を指定した集計要求をネットワーク経由で受信し、前記複数のサーバから、各サーバに蓄積された当該種類の明細データをネットワーク経由で収集し、当該明細データを処理装置により集計して集計データを生成する集計実行部と、
各サーバから他のサーバに蓄積された明細データへのアクセスの許否をサーバごとに示す共通ＡＣＬ（アクセス制御リスト）を記憶装置により記憶する共通ＡＣＬ管理データベースと、
前記集計実行部が集計した明細データのうち、前記共通ＡＣＬ管理データベースに記憶された共通ＡＣＬで前記第１サーバからのアクセスを許可することが示された明細データを蓄積するサーバ（以下、「第２サーバ」という）を示すＡＣＬサブセットを処理装置により生成するドリルスルー用ＡＣＬサブセット生成部とを備え、
前記集計実行部は、前記第１サーバに対し、生成した集計データと前記ドリルスルー用ＡＣＬサブセット生成部が生成したＡＣＬサブセットとをネットワーク経由で送信し、当該集計データの一部から当該ＡＣＬサブセットで示された第２サーバに蓄積された明細データへのドリルスルーを前記第１サーバに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明の一の態様によれば、サービス管理装置が、第１サーバから、集計対象とする明細データの種類を指定した集計要求をネットワーク経由で受信し、複数のサーバから、各サーバに蓄積された当該種類の明細データをネットワーク経由で収集し、当該明細データを集計して集計データを生成し、当該明細データのうち、共通ＡＣＬ管理データベースに記憶された共通ＡＣＬで前記第１サーバからのアクセスを許可することが示された明細データを蓄積する第２サーバを示すＡＣＬサブセットを生成し、前記第１サーバに対し、生成した集計データとＡＣＬサブセットとを送信し、当該集計データの一部から当該ＡＣＬサブセットで示された第２サーバに蓄積された明細データへのドリルスルーを前記第１サーバに実行させることにより、例えば、マルチテナントのＳａａＳ（Ｓｏｆｔｗａｒｅ・ａｓ・ａ・Ｓｅｒｖｉｃｅ）システムにおいて、各テナントが個別にＤＢ（データベース）やＤＷＨ（データウェアハウス）を持っている場合、あるテナントがシステム全体のデータ集計結果から各テナントの個別のデータへのドリルスルーを実行する際の処理効率が向上する。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について、図を用いて説明する。
【００１６】
実施の形態１．
図４は、ＳａａＳシステム１００（本実施の形態に係るデータ検索システム）の構成を示すブロック図である。ＳａａＳは、前述したように、Ｓｏｆｔｗａｒｅ・ａｓ・ａ・Ｓｅｒｖｉｃｅの略である。
【００１７】
図４において、ＳａａＳシステム１００は、複数の店舗用ＳａａＳサーバ１０１（本実施の形態における複数のサーバ）、少なくとも１つのＳａａＳ監視管理サーバ１０２、複数のユーザ端末１２７を備える。これらのサーバ及び端末は、互いにネットワーク２００経由でデータ通信を行う。
【００１８】
店舗用ＳａａＳサーバ１０１は、店舗用ＳａａＳ機能を有するデータアクセス制御装置１０３を具備するサービスサーバである。データアクセス制御装置１０３は、作業用記憶領域１０４、サービスコンテンツＤＢ１０５（データベース）、横断的集計要求部１０６（本実施の形態における集計要求部）、横断的集計応答部１０７（本実施の形態における集計応答部）、ドリルスルー要求部１０８、ＡＣＬサブセット管理部１０９（ＡＣＬは、前述したように、アクセス制御リストのことである）、ドリルスルー応答部１１０を備える。ドリルスルー要求部１０８は、条件抽出部１１１、ＡＣＬサブセット解釈部１１２、結果受取部１１３、結果表示部１１４を有する。各部の動作については後述する。
【００１９】
図示していないが、店舗用ＳａａＳサーバ１０１は、記憶装置、処理装置、入力装置、出力装置などのハードウェア資源を備える。データアクセス制御装置１０３の作業用記憶領域１０４は、店舗用ＳａａＳサーバ１０１の記憶装置（例えば、揮発性メモリ）に実装され、後述する全体集計結果１１５及びＡＣＬサブセット１１６を格納するために用いられる。データアクセス制御装置１０３のサービスコンテンツＤＢ１０５は、店舗用ＳａａＳサーバ１０１の記憶装置（例えば、ハードディスク）に実装され、複数の種類の明細データを蓄積する。明細データは、各店舗用ＳａａＳサーバ１０１が提供する個別のサービスに係るデータである。本実施の形態では、サービスコンテンツＤＢ１０５内の１つの表（テーブル）につき、１種類の明細データを記録するものとする。
【００２０】
ＳａａＳ監視管理サーバ１０２は、ＳａａＳ監視管理機能を有するサービス管理装置１１７を具備するサービス監視管理サーバである。サービス管理装置１１７は、共通ＡＣＬ管理ＤＢ１１９（データベース）、横断的集計実行部１２０（本実施の形態における集計実行部）、共通ＡＣＬ管理部１２１、ドリルスルー用ＡＣＬサブセット生成部１２２を備える。各部の動作については後述する。
【００２１】
図示していないが、ＳａａＳ監視管理サーバ１０２は、記憶装置、処理装置、入力装置、出力装置などのハードウェア資源を備える。サービス管理装置１１７の共通ＡＣＬ管理ＤＢ１１９は、ＳａａＳ監視管理サーバ１０２の記憶装置（例えば、ハードディスク）に実装され、共通ＡＣＬ１２６を保管する。サービス管理装置１１７の共通ＡＣＬ管理ＤＢ１１９は、複数の種類の共通ＡＣＬ１２６を保管してもよい。共通ＡＣＬ１２６は、各店舗用ＳａａＳサーバ１０１から他の店舗用ＳａａＳサーバ１０１のサービスコンテンツＤＢ１０５に蓄積された明細データへのアクセスの許否（共通アクセス制御情報）を、店舗用ＳａａＳサーバ１０１ごとに示すデータである。本実施の形態では、共通ＡＣＬ管理ＤＢ１１９内の複数の表が、１種類の共通ＡＣＬ１２６を記録するものとする。
【００２２】
ＳａａＳシステム１００において、ＳａａＳ監視管理サーバ１０２が具備するサービス管理装置１１７は、全体集計結果１１５の全体集計要求元（複数の店舗用ＳａａＳサーバ１０１のいずれか１つが具備するデータアクセス制御装置１０３）への送付時に、共通ＡＣＬ１２６で定義された共通アクセス制御情報のうち、集計条件に応じて絞り込まれる共通アクセス制御情報内の要素（店舗用ＳａａＳサーバ１０１）よりなるサブセット（ドリルスルー対象となるデータをドリルスルー要求元に対して返すことが許可されている店舗用ＳａａＳサーバ１０１のリスト）を併せて送付する。これにより、全体集計要求元のデータアクセス制御装置１０３は、全体集計結果１１５とともに受け取った共通ＡＣＬ１２６のサブセット（全体集計要求元のデータアクセス制御装置１０３では、作業用記憶領域１０４にＡＣＬサブセット１１６として保管される）を基に、ドリルスルー要求を送る店舗用ＳａａＳサーバ１０１（店舗）の数を絞ることができる。全体集計要求元（ドリルスルーの要求元でもある）のデータアクセス制御装置１０３は、共通ＡＣＬ１２６を持たないため、図３のＳａａＳシステム９９２と同じ方式を用いるのであれば、図３の（１）のように、ドリルスルー要求を全店舗に対して送らなければならなかった。一方、本実施の形態に係るＳａａＳシステム１００では、上記のように、全体集計要求元のデータアクセス制御装置１０３は共通ＡＣＬ１２６の部分情報（サブセット）であるＡＣＬサブセット１１６を用いて、ドリルスルー要求を送付する店舗を絞り込むことが可能となる。このような構成をとることにより、前述したような非同期通信によるドリルスルー結果の受け取りを可能にしつつ、ドリルスルーの要求元がアクセス権を持たない店舗に対して無駄に送付する要求の数を抑えることができる。また、最小限のアクセス制御情報を店舗用ＳａａＳサーバ１０１にコピーする構成をとることにより、共通ＡＣＬ１２６の複製を各店舗用ＳａａＳサーバ１０１に配置する構成と比べて管理コストを抑えることができる。
【００２３】
図５は、店舗用ＳａａＳサーバ１０１、ＳａａＳ監視管理サーバ１０２のハードウェア資源の一例を示す図である。
【００２４】
図５において、店舗用ＳａａＳサーバ１０１、ＳａａＳ監視管理サーバ１０２は、いずれもコンピュータであり、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶ディスプレイ）の表示画面を有する表示装置９０１、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ装置９０６などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
【００２５】
店舗用ＳａａＳサーバ１０１、ＳａａＳ監視管理サーバ１０２は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
【００２６】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５などは、入力装置の一例である。また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００２７】
通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）などに接続されている。通信ボード９１５は、ＬＡＮに限らず、インターネット、あるいは、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークなどのＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。ＬＡＮ、インターネット、ＷＡＮは、ネットワーク２００の一例である。
【００２８】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。また、ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのＣＰＵ９１１の処理（動作）に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２９】
また、本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、ＲＡＭ９１４などのメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク（ＭＤ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体により伝送される。
【００３０】
また、本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどの記録媒体に記憶される。このプログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００３１】
以下では、説明をより具体的にするため、店舗用ＳａａＳサーバ１０１、ＳａａＳ監視管理サーバ１０２が図５に例示したコンピュータとハードウェア資源により実現されているものとする。
【００３２】
図６に、本実施の形態における横断的集計実行時の処理シーケンスを示す。
【００３３】
図６において、複数の店舗用ＳａａＳサーバ１０１の１つが全体集計要求元（横断的集計の実行後は、全体集計結果１１５を基にしたドリルスルーの要求元になる）の店舗用ＳａａＳサーバ１０１（本実施の形態における第１サーバ）となる。ここでは、この店舗用ＳａａＳサーバ１０１が設置された店舗を要求元店舗１２８と呼ぶ。また、他の１つ以上の店舗用ＳａａＳサーバ１０１がそれぞれ設置された店舗を他店舗１２９と呼ぶ。
【００３４】
（１）要求元店舗１２８の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３の横断的集計要求部１０６は、ＳａａＳ監視管理サーバ１０２のサービス管理装置１１７に対し、集計対象とする明細データの種類（集計対象及び集計条件）を指定した集計要求（全体集計要求）をネットワーク２００経由で送信する。ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、要求元店舗１２８の店舗用ＳａａＳサーバ１０１から集計要求をネットワーク２００経由で受信する。即ち、横断的集計要求部１０６は、ＳａａＳ監視管理サーバ１０２の横断的集計実行部１２０に対して横断的集計（全体集計）を要求する。
【００３５】
（２）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、各店舗（要求元店舗１２８及び他店舗１２９）の店舗用ＳａａＳサーバ１０１のデータアクセス制御装置１０３に対し、（１）の集計要求で指定された種類の明細データを要求する明細要求をネットワーク２００経由で送信する。各店舗の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３の横断的集計応答部１０７は、ＳａａＳ監視管理サーバ１０２から明細要求をネットワーク２００経由で受信する。即ち、（１）で要求元店舗１２８から全体集計要求を受け取った横断的集計実行部１２０は、要求元店舗１２８を含む全ての店舗（図６では、代表として、要求元店舗１２８からの横断的集計の要求に応答する他店舗１２９を示している）の横断的集計応答部１０７に対し、集計実行（既に持っている集計結果でもよい）を要求する。
【００３６】
（３）各店舗の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３の横断的集計応答部１０７は、（２）の明細要求で指定された種類の明細データをサービスコンテンツＤＢ１０５から取得し、ＳａａＳ監視管理サーバ１０２のサービス管理装置１１７に対し、ネットワーク２００経由で送信する。ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、各店舗の店舗用ＳａａＳサーバ１０１から、明細データをネットワーク２００経由で収集する。即ち、要求元店舗１２８及び他店舗１２９の横断的集計応答部１０７は、（２）の明細要求に対し、集計結果（明細データ）を返す。
【００３７】
（４）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、（３）で収集した明細データをＣＰＵ９１１（処理装置）により集計して全体集計結果１１５（集計データ）を生成する。即ち、ＳａａＳ監視管理サーバ１０２の横断的集計実行部１２０は、（３）で得られた結果より全体集計結果１１５を生成する。
【００３８】
（５）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、ドリルスルー用ＡＣＬサブセット生成部１２２に対し、ＡＣＬサブセット１１６の生成を要求する。
【００３９】
（６）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２は、共通ＡＣＬ管理部１２１に対し、（４）の全体集計結果１１５に関係する共通ＡＣＬ１２６の情報を要求する。（４）の全体集計結果１１５に関係する共通ＡＣＬ１２６の情報とは、具体的には、（４）で横断的集計実行部１２０が集計した明細データのうち、共通ＡＣＬ管理ＤＢ１１９に記憶された共通ＡＣＬ１２６で要求元店舗１２８の店舗用ＳａａＳサーバ１０１からのアクセスを許可することが示された明細データを蓄積する店舗用ＳａａＳサーバ１０１（本実施の形態における第２サーバ）を示す情報である。
【００４０】
（７）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の共通ＡＣＬ管理部１２１は、ドリルスルー用ＡＣＬサブセット生成部１２２に対し、（４）の全体集計結果１１５に関係する共通ＡＣＬ１２６の情報を返す。
【００４１】
（８）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２は、（７）の情報に基づいて、（４）で横断的集計実行部１２０が集計した明細データのうち、共通ＡＣＬ管理ＤＢ１１９に記憶された共通ＡＣＬ１２６で要求元店舗１２８の店舗用ＳａａＳサーバ１０１からのアクセスを許可することが示された明細データを蓄積する店舗用ＳａａＳサーバ１０１を示すＡＣＬサブセット１１６をＣＰＵ９１１により生成する。即ち、ＳａａＳ監視管理サーバ１０２のドリルスルー用ＡＣＬサブセット生成部１２２は、（７）で受け取った共通ＡＣＬ１２６の情報を基にＡＣＬサブセット１１６を生成する。
【００４２】
（９）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２は、（８）で生成したＡＣＬサブセット１１６を横断的集計実行部１２０に返す。
【００４３】
（１０）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、（４）の全体集計結果１１５及び（９）で受け取ったＡＣＬサブセット１１６をマージする。
【００４４】
（１１）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の横断的集計実行部１２０は、要求元店舗１２８の店舗用ＳａａＳサーバ１０１に対し、（４）で生成した全体集計結果１１５と（８）でドリルスルー用ＡＣＬサブセット生成部１２２が生成したＡＣＬサブセット１１６とをネットワーク２００経由で送信する。要求元店舗１２８の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３の横断的集計要求部１０６は、ＳａａＳ監視管理サーバ１０２から全体集計結果１１５とＡＣＬサブセット１１６とをネットワーク２００経由で受信する。即ち、ＳａａＳ監視管理サーバ１０２の横断的集計実行部１２０は、（１０）で生成したデータを、要求元店舗１２８の横断的集計要求部１０６に返す。
【００４５】
（１２）要求元店舗１２８の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３の横断的集計要求部１０６は、（１１）で受け取ったデータよりＡＣＬサブセット１１６を取り出し、ＡＣＬサブセット管理部１０９に渡す。
【００４６】
（１３）要求元店舗１２８の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のＡＣＬサブセット管理部１０９は、作業用記憶領域１０４に（１２）のＡＣＬサブセット１１６を格納し、横断的集計要求部１０６に対して応答を返す。この応答を受け取った横断的集計要求部１０６は、表示装置９０１（出力装置）により、例えば全体集計結果１１５を独自の画面に表示してもよいし、例えば“Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）”のような表計算ソフトウェアに対して全体集計結果１１５を出力することにより、全体集計結果１１５を表計算ソフトウェアの画面に表示してもよい。
【００４７】
以下、共通ＡＣＬ１２６の構造について説明する。
【００４８】
本実施の形態では、ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の共通ＡＣＬ管理ＤＢ１１９は、複数の店舗用ＳａａＳサーバ１０１を分類した複数のグループ（具体的には、階層構造において、店舗用ＳａａＳサーバ１０１より上位の階層中の要素）のうち、各店舗用ＳａａＳサーバ１０１が所属するグループを店舗用ＳａａＳサーバ１０１ごとに示す共通ＡＣＬ１２６を記憶する。そして、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２は、図６の（４）で横断的集計実行部１２０が集計した明細データが蓄積された店舗用ＳａａＳサーバ１０１のうち、共通ＡＣＬ管理ＤＢ１１９に記憶された共通ＡＣＬ１２６で要求元店舗１２８の店舗用ＳａａＳサーバ１０１と同じグループに所属することが示された店舗用ＳａａＳサーバ１０１を示すＡＣＬサブセット１１６を生成する。
【００４９】
共通ＡＣＬ１２６の論理構造の例を図７に示す。図７において、地方別・地区別集計用共通ＡＣＬ１３０は、地方・地区・店舗の３つの論理的な階層を持つ共通ＡＣＬ１２６である。この地方別・地区別集計用共通ＡＣＬ１３０は、例えば、神奈川地区の情報には店舗Ａ１、店舗Ａ２がアクセスできることを示している。このような共通ＡＣＬ１２６は、例えば通常のリレーショナルＤＢの表（テーブル）を用いて実現することができる。図７に示した地方別・地区別集計用共通ＡＣＬ１３０を、リレーショナルＤＢで実現した例を図８に示す。図８において、地方テーブル１３１、地区テーブル１３２、店舗テーブル１３３は、図７に示した地方別・地区別集計用共通ＡＣＬ１３０のそれぞれの階層に対応した表である。
【００５０】
以下、ＳａａＳ監視管理サーバ１０２のサービス管理装置１１７によるＡＣＬサブセット１１６の生成処理の詳細について説明する。
【００５１】
ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２は、共通ＡＣＬ１２６の持つ要素である複数の店舗（店舗用ＳａａＳサーバ１０１）のうち、ドリルスルー要求の対象となり得るサービスコンテンツＤＢ１０５内の表に対して要求元の店舗用ＳａａＳサーバ１０１がアクセス可能な店舗の情報だけをＡＣＬサブセット１１６として取り出す。そして、サービス管理装置１１７の横断的集計実行部１２０は、このＡＣＬサブセット１１６を全体集計結果１１５に添付する。ＡＣＬサブセット１１６として取り出される情報は、共通ＡＣＬ１２６の階層（図７の例では地方・地区・店舗）を全体集計要求における集計条件と関連付けておき、全体集計実行時において集計条件中に現れる共通ＡＣＬ１２６の階層中の要素又は当該要素より下位の階層中の要素だけを評価することにより得られる。本実施の形態では、集計条件で階層が指定されると、その階層中の要素ごとに明細データの数値が集計され、その結果が全体集計結果１１５となる。集計条件で指定された階層が店舗を要素とする階層であれば、要求元の店舗は、自己の明細データのみに対して全体集計結果１１５からのドリルスルーが可能である。集計条件で指定された階層が店舗を要素とする階層より上位であれば、要求元の店舗は、自己及び自己と同じ要素に属する店舗の明細データに対して全体集計結果１１５からのドリルスルーが可能である。
【００５２】
例えば、図７の例で、集計条件に「地区」が指定されている場合、店舗Ａ１がドリルスルーを要求したとすると、集計条件で指定された階層が店舗を要素とする階層より上位であるため、店舗Ａ１が属する地区である「神奈川」に属する店舗のみが、ドリルスルー対象となっているデータをドリルスルー要求元の店舗Ａ１に対して返せることになる。よって、店舗Ａ１、店舗Ａ２のみの情報がＡＣＬサブセット１１６として取り出される。また、例えば、図７の例で、集計条件に「地方」が指定されている場合、店舗Ａ１がドリルスルーを要求したとすると、集計条件で指定された階層が店舗を要素とする階層より上位であるため、店舗Ａ１が属する地方である「関東」に属する店舗のみが、ドリルスルー対象となっているデータをドリルスルー要求元の店舗Ａ１に対して返せることになる。よって、店舗Ａ１、店舗Ａ２、店舗Ａ３のみの情報がＡＣＬサブセット１１６として取り出される。ただし、この例では、集計条件に「地方」が指定されている場合と集計条件に「地区」が指定されている場合とでドリルスルー対象になり得る範囲に差異が生じる。このような差異をなくすため、例えば、図７の例で、集計条件に「地方」が指定されている場合、店舗Ａ１がドリルスルーを要求したとすると、「関東」に属する地区のうち、店舗Ａ１が属する地区である「神奈川」に属する店舗のみが、ドリルスルー対象となっているデータをドリルスルー要求元の店舗Ａ１に対して返せることにしてもよい。この場合は、集計条件に「地区」が指定されている場合と同様に、店舗Ａ１、店舗Ａ２のみの情報がＡＣＬサブセット１１６として取り出される。
【００５３】
ここで、例えば全体集計要求はＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ・Ｑｕｅｒｙ・Ｌａｎｇｕａｇｅ）のクエリとして実現でき、このとき、上述の集計条件はＳＱＬの“ＧＲＯＵＰ  ＢＹ”句として実現できる。この場合、共通ＡＣＬ１２６の階層名を全体集計要求の集計条件（“ＧＲＯＵＰ  ＢＹ”句のキー）として用いることができる構成にしておけば、全体集計要求の集計条件より、当該要求に対する全体集計結果１１５を基にしたドリルスルーにおいてドリルスルー要求元（全体集計要求元でもある）が最大限アクセス可能な店舗のリストを上述のようにＡＣＬサブセット１１６として取り出すことができる。
【００５４】
また、サービスコンテンツＤＢ１０５内の表と共通ＡＣＬ１２６との対応付けは、例えば、それぞれの種類の共通ＡＣＬ１２６とサービスコンテンツＤＢ１０５内のそれぞれの表との関連付け情報を共通ＡＣＬ１２６又はサービスコンテンツＤＢ１０５内の表の一部などとして管理することにより実現できる。あるいは、後述する実施の形態２において図１５に示す分析サービスマスタ１２４のように、サービスコンテンツＤＢ１０５内の表と共通ＡＣＬ１２６との関係付けを示す情報を管理してもよい。逆に、例えば、サービスコンテンツＤＢ１０５内の表と共通ＡＣＬ１２６の一部又は全部について関連付けを行わず、全体集計要求元の指定した集計条件に対応する共通ＡＣＬ１２６のみを適用することも可能である。ただし、この場合、ある集計条件を指定するとドリルスルーで検索できなかったデータが別の集計条件を指定するとドリルスルーで検索できるようになることになり、データのアクセス制御としては不都合な場合もある。このため、例えば、ある表に対して最低限適用することが必要な共通ＡＣＬ１２６は表と関連付けておき、特別なデータに対する共通ＡＣＬ１２６は集計条件とのみ関連付けるように構成してもよい。
【００５５】
また、ある１つの表に対し、複数の共通ＡＣＬ１２６を適用する場合、例えば、当該表に適用される各共通ＡＣＬ１２６に含まれる共通要素のみアクセス可能として扱うことができる。あるいは、例えば、共通ＡＣＬ１２６の当該表への適用の優先度をつけ、優先度の高い共通ＡＣＬ１２６のみ適用するように構成することもできる。以下では、前者の構成を前提として説明する。
【００５６】
なお、複数の表に対して同時にドリルスルーを要求する場合は、各表にアクセス可能な店舗の最大範囲を、ＡＣＬサブセット１１６として扱うように構成することができる。これは、ＡＣＬサブセット１１６によって、ドリルスルー要求元が全体集計要求の集計条件に対して最大限アクセス可能な範囲の情報を伝達できればよいからである。
【００５７】
図９は、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２の動作を示すフローチャートである。
【００５８】
図９において、まず、ドリルスルー用ＡＣＬサブセット生成部１２２は、全体集計要求元の店舗（この後、全体集計結果を基にしたドリルスルーの要求元になる）の要求に含まれ、集計対象となっているサービスコンテンツＤＢ１０５内の表を抽出する（ステップＳ１０１）。例えば、この要求はＳＱＬのクエリとして実現でき、集計対象の表は、当該クエリのうち“ＦＲＯＭ”句で指定された表を抽出することにより実現できる。続いて、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ１０１で抽出した全ての表に対して、ステップＳ１０３以降の処理を実行する（ステップＳ１０２）。
【００５９】
ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ１０２以降の処理で対象となっている表に適用する共通ＡＣＬ１２６があるかどうかを判断する（ステップＳ１０３）。ステップＳ１０３で処理対象となっている表に適用する共通ＡＣＬ１２６がある場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、当該共通ＡＣＬ１２６の階層及び下位の階層に対してステップＳ１０５、Ｓ１０６の処理を実行する（ステップＳ１０４）。例えば、図７に示した地方別・地区別集計用共通ＡＣＬ１３０が処理対象となっている表に適用するものであれば、「地方」、「地区」、「店舗」の順に、ステップＳ１０５、Ｓ１０６の処理が実行される。
【００６０】
ドリルスルー用ＡＣＬサブセット生成部１２２は、全体集計要求元が指定した集計条件に、ステップＳ１０４で処理対象となっている共通ＡＣＬ１２６の階層と対応するものがあるかどうか確認し（ステップＳ１０５）、対応するものがある場合は、当該共通ＡＣＬ１２６から生成する一時リストに、当該階層の要素で下位にドリルスルー要求元を含むものの最下位層の要素を追加する（ステップＳ１０６）。例えば、図７に示した地方別・地区別集計用共通ＡＣＬ１３０の「地区」が処理対象となっている階層であり、集計条件で「地区」が指定され、全体集計要求元が店舗Ａ１であれば、一時リストに、「神奈川」の最下位層の要素である店舗Ａ１、店舗Ａ２が追加される。ここで、全体集計要求元が指定する集計条件は、例えばＳＱＬの“ＧＲＯＵＰ  ＢＹ”句として実現でき、ステップＳ１０５の判断は、この“ＧＲＯＵＰ  ＢＹ”句のキーが、処理対象となっている共通ＡＣＬ１２６の階層名と一致するかどうかを判断することとして実現できる。ドリルスルー用ＡＣＬサブセット生成部１２２は、前述の一時リストを、表ごと、表に適用される共通ＡＣＬ１２６ごとに生成し、後述するステップＳ１０７、Ｓ１０８にてマージすることでＡＣＬサブセット１１６を生成する。
【００６１】
ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ１０５で、全体集計要求元が指定した集計条件に処理対象となっている共通ＡＣＬ１２６の階層と対応するものがない場合は、ステップＳ１０４において次の階層の処理に進む。また、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ１０３で、処理対象となっている表に適用する共通ＡＣＬ１２６がない場合は、ステップＳ１０２において全体集計要求に含まれる次の表の処理に進む。
【００６２】
ステップＳ１０４〜Ｓ１０６のループを終えると、ドリルスルー用ＡＣＬサブセット生成部１２２は、処理対象となっている表に適用する各共通ＡＣＬ１２６から生成した一時リスト群に共通する要素群を、当該表から生成する一時リストに格納する（ステップＳ１０７）。例えば、図７に示した地方別・地区別集計用共通ＡＣＬ１３０から生成した一時リストに店舗Ａ１、店舗Ａ２が含まれ、他の共通ＡＣＬ１２６から生成した一時リストに店舗Ａ１、店舗Ａ２、店舗Ａ３が含まれていれば、当該表から生成する一時リストには店舗Ａ１、店舗Ａ２のみが格納される。
【００６３】
また、ステップＳ１０２〜Ｓ１０７までのループを終えると、ドリルスルー用ＡＣＬサブセット生成部１２２は、各表から生成した一時リストのいずれかに含まれる要素の集合を、ＡＣＬサブセット１１６にする（ステップＳ１０８）。例えば、図７の例で、ある表から生成した一時リストに店舗Ａ１、店舗Ａ２が含まれ、他の表から生成した一時リストに店舗Ａ２、店舗Ａ３が含まれていれば、ＡＣＬサブセット１１６には店舗Ａ１、店舗Ａ２、店舗Ａ３が含まれることとなる。
【００６４】
なお、図９では、ＡＣＬサブセット１１６の生成手順として、ドリルスルー要求元店舗が最大限アクセス可能な店舗のリストを生成する処理のフローを示したが、過去に生成したＡＣＬサブセット１１６のキャッシュを用いるなど、より簡便な方法でＡＣＬサブセット１１６を生成することも可能である。また、ＡＣＬサブセット１１６は、ドリルスルー要求元店舗が最大限アクセス可能な店舗を包含する情報を示すものであれば、どのような形態をとっても構わない。
【００６５】
図１０に、本実施の形態におけるドリルスルー実行時の処理シーケンスを示す。
【００６６】
図１０において、複数の店舗用ＳａａＳサーバ１０１の１つが全体集計結果１１５を基にしたドリルスルーの要求元の店舗用ＳａａＳサーバ１０１（本実施の形態における第１サーバ）となる。ここでは、図６と同様に、この店舗用ＳａａＳサーバ１０１が設置された店舗を要求元店舗１３４と呼ぶ。また、図６の（１１）で横断的集計要求部１０６が受信したＡＣＬサブセット１１６に示された店舗用ＳａａＳサーバ１０１（本実施の形態における第２サーバ）が設置された店舗を他店舗１３５と呼ぶ。
【００６７】
（１）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８は、図６の（１１）で横断的集計要求部１０６が受信した全体集計結果１１５のうち、ドリルスルー対象とする部分を指定した入力を通信ボード９１５（入力装置）によりユーザ端末１２７からネットワーク２００経由で受け付ける。具体的には、ドリルスルー要求部１０８の条件抽出部１１１は、ユーザ端末１２７の入力より、ドリルスルーの条件（選択条件）を抽出し、ＡＣＬサブセット解釈部１１２に送付する。
【００６８】
（２）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８のＡＣＬサブセット解釈部１１２は、ＡＣＬサブセット管理部１０９に対し、ＡＣＬサブセット１１６の取り出しを要求する。
【００６９】
（３）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のＡＣＬサブセット管理部１０９は、（２）の要求に対し、ドリルスルーの基となる全体集計結果１１５に適用するＡＣＬサブセット１１６を取り出し、ドリルスルー要求部１０８のＡＣＬサブセット解釈部１１２に送る。
【００７０】
（４）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８のＡＣＬサブセット解釈部１１２は、ドリルスルー要求を送付する店舗の数だけ、ドリルスルー要求部１０８の結果受取部１１３を呼び出す。これは、例えばスレッドごとに結果受取部１１３を実行することにより実現することができる。
【００７１】
（５）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８は、他店舗１３５の店舗用ＳａａＳサーバ１０１に対し、（１）の入力で指定された部分に対応する明細データを指定したドリルスルー要求をネットワーク２００経由で送信する。他店舗１３５の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー応答部１１０は、要求元店舗１３４の店舗用ＳａａＳサーバ１０１からドリルスルー要求をネットワーク２００経由で受信する。具体的には、要求元店舗１３４のドリルスルー要求部１０８の結果受取部１１３は、要求元店舗１３４からのドリルスルー要求に応答する他店舗１３５のドリルスルー応答部１１０に対し、ドリルスルー要求を送付する。
【００７２】
（６）他店舗１３５の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー応答部１１０は、ＳａａＳ監視管理サーバ１０２のサービス管理装置１１７に対し、（５）のドリルスルー要求で指定された明細データを指定した確認要求をネットワーク２００経由で送信する。ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の共通ＡＣＬ管理部１２１は、他店舗１３５の店舗用ＳａａＳサーバ１０１から確認要求をネットワーク２００経由で受信する。即ち、他店舗１３５のドリルスルー応答部１１０は、ＳａａＳ監視管理サーバ１０２の共通ＡＣＬ管理部１２１に対し、要求元店舗１３４にアクセスを許可してよいか確認する。
【００７３】
（７）ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の共通ＡＣＬ管理部１２１は、共通ＡＣＬ１２６で（６）の確認要求で指定された明細データへのアクセスを許可することが示されているか否かをＣＰＵ９１１（処理装置）により確認し、他店舗１３５の店舗用ＳａａＳサーバ１０１に対し、当該確認結果をネットワーク２００経由で送信する。他店舗１３５の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー応答部１１０は、ＳａａＳ監視管理サーバ１０２から確認結果をネットワーク２００経由で受信する。即ち、ＳａａＳ監視管理サーバ１０２の共通ＡＣＬ管理部１２１は、（６）の確認要求で参照される共通ＡＣＬ１２６を確認し、要求元店舗１３４のアクセス可否を他店舗１３５のドリルスルー応答部１１０に通知する。
【００７４】
（８）他店舗１３５の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー応答部１１０は、（７）の確認結果に基づいて、（５）のドリルスルー要求で指定された明細データをサービスコンテンツＤＢ１０５から取得する。即ち、（７）でアクセス可となった場合、他店舗１３５のドリルスルー応答部１１０は、他店舗１３５のサービスコンテンツＤＢ１０５に対し、ドリルスルーのクエリを発行する。
【００７５】
（９）他店舗１３５の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー応答部１１０は、要求元店舗１３４の店舗用ＳａａＳサーバ１０１に対し、（８）の明細データをネットワーク２００経由で送信する。要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８は、他店舗１３５の店舗用ＳａａＳサーバ１０１から、当該明細データをネットワーク２００経由で非同期通信により受信する。具体的には、他店舗１３５のドリルスルー応答部１１０は、（８）で１レコードずつクエリの結果を取得すると、要求元店舗１３４の結果受取部１１３を呼び出し、クエリの結果を渡す。ここで、非同期的に１レコードずつ渡すために、例えばこの（９）の処理はＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ・Ｔｒａｎｓｆｅｒ・Ｐｒｏｔｏｃｏｌ）リクエストとして構成することができる。
【００７６】
（１０）（９）で他店舗１３５のドリルスルー応答部１１０から要求元店舗１３４の結果受取部１１３に対する呼び出しが、ＨＴＴＰリクエストのように呼び出し要求で実現されている場合、要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８の結果受取部１１３は、ダミーの応答（例えばＨＴＴＰレスポンス）を返すことにより、非同期的なドリルスルー結果の受け取りを実現できる。
【００７７】
（１１）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８の結果受取部１１３は、（９）で１レコードずつクエリの結果を取得すると、ドリルスルー要求部１０８の結果表示部１１４を呼び出す。
【００７８】
（１２）要求元店舗１３４の店舗用ＳａａＳサーバ１０１において、データアクセス制御装置１０３のドリルスルー要求部１０８の結果表示部１１４は、ドリルスルー結果を表示する。このとき、ドリルスルー要求部１０８の結果表示部１１４は、図６の（１３）と同様に、表示装置９０１（出力装置）により、例えばドリルスルー結果を独自の画面に表示してもよいし、例えば“Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）”のような表計算ソフトウェアに対してドリルスルー結果を出力することにより、ドリルスルー結果を表計算ソフトウェアの画面に表示してもよい。
【００７９】
図１１に、全体集計結果１１５の例を示す。図６の（１３）において、要求元店舗１２８の店舗用ＳａａＳサーバ１０１の横断的集計要求部１０６が、例えば“Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）”に対して全体集計結果１１５を出力した場合、図１０の（１）において、要求元店舗１３４の店舗用ＳａａＳサーバ１０１の条件抽出部１１１は、例えば“Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）”のマクロやアドインを用いて、ユーザの指定するドリルスルーの条件を抽出することができる。例えば、図１１において太枠で示したセルをユーザが選択した場合、条件抽出部１１１は、そのセルの属する行の値を読み取ることにより、ドリルスルーの条件として「２００７年９月の関東地方神奈川地区のスナック菓子の売上」が指定されたことを抽出することができる。
【００８０】
図１２は、ドリルスルー要求部１０８の条件抽出部１１１の動作を示すフローチャートである。
【００８１】
図１２において、条件抽出部１１１は、ユーザの指定するドリルスルーの条件を抽出する（ステップＳ２０１）。例えば、図１１において太枠で示したセルに対応する「２００７年９月の関東地方神奈川地区のスナック菓子の売上」という条件を抽出する。次に、条件抽出部１１１は、ドリルスルーの条件をＳＱＬの“ＦＲＯＭ”句、“ＷＨＥＲＥ”句に変換する（ステップＳ２０２）。図１１の例では、文字列“ＦＲＯＭ  売上”、“ＷＨＥＲＥ  年＝２００７  ＆  月＝９  ＆  地方＝関東  ＆  地区＝神奈川”を生成する。ここで、通常のドリルスルーでは詳細分析対象となるサービスコンテンツＤＢ１０５の表の全ての列を選択して表示するため、“ＳＥＬＥＣＴ”句を生成する必要はないが、条件抽出部１１１は、表示する列を選択する処理を行ってもよい。最後に、条件抽出部１１１は、ステップＳ２０２で生成した文字列をＡＣＬサブセット解釈部１１２に送付する（ステップＳ２０３）。この文字列は、条件抽出部１１１が現在参照している全体集計結果１１５に付随するＡＣＬサブセット１１６中の店舗に対して、ドリルスルー要求部１０８の結果受取部１１３がドリルスルー要求の一部として送付する。
【００８２】
以上のように、本実施の形態によれば、例えば、マルチテナントのＳａａＳシステムにおいて、各テナントが個別にＤＢやＤＷＨ（データウェアハウス）を持っている場合、あるテナントがシステム全体のデータ集計結果から各テナントの個別のデータへのドリルスルー（全体集計結果を基にした詳細なデータの問い合わせ）を実行する際の処理効率が向上する。具体的には、ドリルスルーの実行時に、非同期的なドリルスルー結果の受け取りを可能にしつつ、ドリルスルーの要求元がアクセス権を持たないテナントへ無駄な問い合わせを送付することを防ぐことが可能になる。
【００８３】
上記のように、本実施の形態に係るデータ検索システムは、
個別のサービスを提供するサービスサーバ、複数のサービスサーバを監視管理するためのサービス監視管理サーバを備え、
サービス監視管理サーバにより用いられるサービス管理装置として、
複数のサービスサーバのそれぞれが保有するデータのマスタ情報、マスタ情報の要素間の階層構造情報、マスタ情報に対するアクセス権情報を一体化した情報（共通アクセス制御情報）をサービス監視管理サーバに集約して管理し、サービス利用者によるサービスサーバ上のデータに対するアクセス要求に当たっては、サービス利用者の利用しているサービスサーバに対し、集計条件に対応する共通アクセス制御情報内の階層の下位に属するサービスサーバのリストよりなる部分情報をコピーすることを特徴とするサービス管理装置を有する。
【００８４】
また、上記データ検索システムは、
サービスサーバにより用いられるデータアクセス制御装置として、
当該システムにおいて上記サービス管理装置を利用しているサービス監視管理サーバより受け取った共通アクセス制御情報の部分情報を用いて、サービスサーバ自身又は当該システムを構成する他のサービスサーバに対するアクセス要求を送付することを特徴とするデータアクセス制御装置を有する。
【００８５】
また、上記データ検索システムは、
サービスサーバにおいては上記データアクセス制御装置を用い、サービス監視管理サーバにおいては上記データアクセス制御装置を用いることにより、複数のサービスサーバのそれぞれが保有するデータを横断的に集計した結果を基に、集計結果に付随する共通アクセス制御情報の部分集合を利用して、個別明細データ検索要求を送付するサービスサーバの数を絞り込むことを特徴とする。
【００８６】
また、上記データ検索システムは、
詳細な個別明細データ検索要求に対する結果を、検索要求元のサービスサーバが検索結果を送付するサービスサーバとの間で同期をとらずに表示することを特徴とする。
【００８７】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００８８】
図１３は、ＳａａＳシステム１００の構成を示すブロック図である。
【００８９】
図１３において、ＳａａＳ監視管理サーバ１０２のサービス管理装置１１７は、実施の形態１で図４に示した構成要素のほか、サービス管理ＤＢ１１８（データベース）を備える。サービス管理装置１１７のサービス管理ＤＢ１１８は、ＳａａＳ監視管理サーバ１０２の記憶装置（例えば、ハードディスク）に実装され、少なくとも、分析サービス契約１２３、分析サービスマスタ１２４、利用状況１２５の３つの表を持つ。
【００９０】
本実施の形態における横断的集計実行時の処理シーケンスは、実施の形態１で図６に示したものと同様である。
【００９１】
本実施の形態では、ＳａａＳ監視管理サーバ１０２において、サービス管理装置１１７の共通ＡＣＬ管理ＤＢ１１９は、共通ＡＣＬ１２９の中に、各店舗用ＳａａＳサーバ１０１から他の店舗用ＳａａＳサーバ１０１に蓄積された各種類の明細データへのアクセスの許否を店舗用ＳａａＳサーバ１０１と明細データの種類との組み合わせごとに示す例外リストを記憶装置により記憶する。そして、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２は、図６の（４）で横断的集計実行部１２０が集計した明細データが蓄積された店舗用ＳａａＳサーバ１０１のうち、共通ＡＣＬ管理ＤＢ１１９に記憶された共通ＡＣＬ１２９で要求元店舗１２８の店舗用ＳａａＳサーバ１０１と同じグループに所属することが示された店舗用ＳａａＳサーバ１０１に加えて、共通ＡＣＬ管理ＤＢ１１９に記憶された共通ＡＣＬ１２９で要求元店舗１２８の店舗用ＳａａＳサーバ１０１と異なるグループに所属することが示された店舗用ＳａａＳサーバ１０１であって、共通ＡＣＬ管理ＤＢ１１９に記憶された例外リストで要求元店舗１２８の店舗用ＳａａＳサーバ１０１からのアクセスを許可することが示された、図６の（４）で横断的集計実行部１２０が集計した明細データと同じ種類の明細データを蓄積する店舗用ＳａａＳサーバ１０１を示すＡＣＬサブセット１１６を生成する。
【００９２】
実施の形態１で図７に示した地方別・地区別集計用共通ＡＣＬ１３０を、リレーショナルＤＢで実現した例を図１４に示す。図１４において、地方テーブル１３１、地区テーブル１３２、店舗テーブル１３３は、実施の形態１の図８と同様に、図７に示した地方別・地区別集計用共通ＡＣＬ１３０のそれぞれの階層に対応した表である。本実施の形態では、共通ＡＣＬ１２６がそれぞれ例外リストを持ち、地方別・地区別集計用共通ＡＣＬ１３０も１つの例外リストを持つ。
【００９３】
例外リストは、ドリルスルー要求元である店舗のサービス契約に対する料金滞納の有無、利用時間・データ量の制限超過の有無など、利用状況により要求元の店舗がドリルスルー可能な場合のみ評価される。例えば、各店舗は、ＳａａＳのサービスにて「地方別・地区別売上分析」を契約している場合のみ、他店舗の管理するＤＢを参照可能であり、その場合、ＳａａＳ監視管理サーバ１０２は、ドリルスルー時のアクセス制御において、店舗テーブル１３３の一部である例外リストを評価するものとする。例外リストは、サービスコンテンツＤＢ１０５の表名のリスト１３６（本実施の形態における表リスト）、及び、各表に対応づけられた、各店舗がアクセス可能な他店舗のリスト１３７（本実施の形態における要素リスト）よりなる。
【００９４】
各店舗のサービス契約に関する情報は、ＳａａＳ監視管理サーバ１０２の持つサービス管理ＤＢ１１８により管理する。
【００９５】
図１５に、サービス管理ＤＢ１１８の表である分析サービス契約１２３及び分析サービスマスタ１２４の例を示す。
【００９６】
図１５において、分析サービス契約１２３は、各店舗が契約している分析サービスの情報を持つ。図１５の例では、分析サービス契約１２３は、店舗Ａ１が「売上分析」、「在庫分析」の各分析サービスを契約していることを示している。また、店舗Ａ２がいずれの分析サービスも契約していないことを示している。分析サービスマスタ２４は、各分析サービスが、サービスコンテンツＤＢ１０５のどの表に対する集計を許可し、ドリルスルー時にどの共通ＡＣＬ１２６によるアクセス制御を行うかを示す情報を持つ。図１５の例では、分析サービスマスタ２４は、「売上分析」サービスについて、図１６に例示するサービスコンテンツＤＢ１０５の売上テーブル１３８に対する集計を許可し、共通ＡＣＬ１２６として「地域」、「商品」、「組織」、「日時」を適用することを示している。また、「在庫分析」サービスについて、図１６に例示するサービスコンテンツＤＢ１０５の在庫テーブル１３９に対する集計を許可し、共通ＡＣＬ１２６として「地域」、「商品」、「組織」、「日時」を適用することを示している。また、分析サービスマスタ２４は、「店舗詳細分析」サービスについて、図１６に例示するサービスコンテンツＤＢ１０５の店舗詳細テーブル１４０に対する集計を許可し、共通ＡＣＬ１２６として「地域」、「組織」、「日時」を適用することを示している。
【００９７】
以下では、図１６〜図１８を利用して、各分析サービスにおけるアクセス制御の例を示す。
【００９８】
図１６に、サービスコンテンツＤＢ１０５の表である売上テーブル１３８、在庫テーブル１３９、店舗詳細テーブル１４０の例を示す。この例では、売上テーブル１３８は、店舗名、売上日時、商品、単価、個数、金額を保持するよう構成されている。また、在庫テーブル１３９は、店舗名、商品、購入日、仕入元、個数、保持期限を保持するよう構成されている。また、店舗詳細テーブル１４０は、店舗名、売場面積、社員数、アルバイト数、住所を保持するよう構成されている。
【００９９】
図１７に、共通ＡＣＬ１２６の例として、商品別集計用共通ＡＣＬ１４１を示す。この例では、商品別集計用共通ＡＣＬ１４１は、大分類・小分類・取扱店舗の３階層よりなる。例えば、商品別集計用共通ＡＣＬ１４１を、図１６に示した売上テーブル１３８に適用し、ドリルスルー要求元の店舗が扱わない商品については原則として他店舗へのドリルスルーを許可しないような構成をとることができる。図１７において、店舗Ａ１は、菓子・パン・アルコールを取り扱っているが、筆記具は取り扱っていないものとする。店舗Ａ２は菓子・パンは取り扱っているが、アルコール・筆記具は取り扱っていないものとする。店舗Ａ３は菓子・筆記具を取り扱っているが、パン・アルコールは取り扱っていないものとする。商品別集計用共通ＡＣＬ１４１を、図１６に示した売上テーブル１３８に適用することにより、店舗Ａ１は、店舗Ａ２の菓子・パンの売上情報、店舗Ａ３の菓子の売上情報にアクセス可能となる。また、商品別集計用共通ＡＣＬ１４１を、例えば図７に示した地方別・地区別集計用共通ＡＣＬ１３０とともに、図１６に示した売上テーブル１３８に適用する場合、店舗Ａ１は店舗Ａ２の菓子・パンの売上情報にアクセス可能となるが、店舗Ａ３の売上情報にはアクセスできなくなる。
【０１００】
図１８に、共通ＡＣＬ１２６の例として、組織別集計用共通ＡＣＬ１４２を示す。この例では、組織別集計用共通ＡＣＬ１４２は、事業部・店舗形態・店舗の３階層よりなる。例えば、組織別集計用共通ＡＣＬ１４２を、図１６に示した売上テーブル１３８や在庫テーブル１３９に適用し、所属する事業部の異なる店舗からのドリルスルー要求に対してはアクセスを許可しないような構成をとることができる。図１８において、店舗Ａ１と店舗Ａ２とは互いの売上情報、在庫情報に対してドリルスルーできるが、店舗Ａ１及び店舗Ａ２と店舗Ａ３とは互いのデータに対してドリルスルーできないようにすることができる。
【０１０１】
図１９に、サービス管理ＤＢ１１８の表である利用状況１２５の例を示す。
【０１０２】
図１９において、利用状況１２５は、「契約者名」（店舗、又は、地区や地域の責任者など）、「料金支払日」、「当月利用時間」、「最終利用開始日時」、「最終利用終了日時」の各列により構成されている。ＳａａＳ監視管理サーバ１０２は、ある店舗が全体集計の要求元である場合、当該店舗が図１５に示した分析サービス契約１２３において契約しているサービスに関し、図１９に示した利用状況１２５にて当該店舗のサービス契約に対する料金滞納の有無、利用時間・データ量の制限超過の有無などを確認し、契約条件上サービスを利用可能な場合にのみ、図１４に示した例外リストに含まれる対象に対するアクセスを許可する。変形例として、ある店舗がサービス利用時間に基づく従量課金契約をしている場合、サービス管理ＤＢ１１８中に記憶した従量課金契約タイプに関する情報を参照して利用制限を確認するように構成することもできる。
【０１０３】
図２０は、サービス管理装置１１７のドリルスルー用ＡＣＬサブセット生成部１２２の動作を示すフローチャートである。
【０１０４】
図２０において、ステップＳ３０１〜Ｓ３０６は、実施の形態１の図９におけるステップＳ１０１〜Ｓ１０６と同様である。また、図２０において、ステップＳ３０９、Ｓ３１０は、実施の形態１の図９におけるステップＳ１０７、Ｓ１０８と同様である。
【０１０５】
ステップＳ３０６の後、ドリルスルー用ＡＣＬサブセット生成部１２２は、全体集計要求元の店舗（ユーザ）のサービス契約状況に応じて、当該ユーザが例外リストを参照可能かどうか判断する（ステップＳ３０７）。ドリルスルー用ＡＣＬサブセット生成部１２２は、当該ユーザが例外リストを参照可能であると判断した場合、例外リストの参照処理を実行する（ステップＳ３０８）。ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ３０７で、当該ユーザが例外リストを参照できないと判断した場合、ステップＳ３０２において全体集計要求に含まれる次の表の処理に進む。
【０１０６】
図２１は、図２０におけるステップＳ３０７の詳細な動作を示すフローチャートである。
【０１０７】
図２１において、ドリルスルー用ＡＣＬサブセット生成部１２２は、サービス管理ＤＢ１１８の分析サービス契約１２３を参照し（ステップＳ４０１）、全体集計要求元の店舗（ユーザ）が分析サービスを契約しているかどうか判断する（ステップＳ４０２）。当該ユーザが分析サービスを契約している場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、サービス管理ＤＢ１１８の利用状況１２５を参照し（ステップＳ４０３）、契約内容に従って料金滞納、利用時間の超過などがないかどうか確認する（ステップＳ４０４）。この判断はＳａａＳの個別事情により条件を追加・削除してもよい。
【０１０８】
ステップＳ４０２、Ｓ４０４の両条件が真（ＹＥＳ）の場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、当該ユーザが契約している全ての分析サービスに対してステップＳ４０６〜Ｓ４１０の処理をする（ステップＳ４０５）。
【０１０９】
ドリルスルー用ＡＣＬサブセット生成部１２２は、サービス管理ＤＢ１１８の分析サービスマスタ１２４を参照し（ステップＳ４０６）、列「表」に全体集計対象が含まれているかどうかを判断する（ステップＳ４０７）。列「表」に全体集計対象の（全体集計結果１１５を基にしたドリルスルー要求対象になる）表が含まれている場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、図２０のステップＳ３０４〜Ｓ３０８の処理対象となっている共通ＡＣＬ１２６を含む、契約済の分析サービスがあるかどうかを確認し（ステップＳ４０８）、このステップＳ４０８の確認結果が真（ＹＥＳ）である場合、図２０のステップＳ３０４〜Ｓ３０８の処理対象となっている共通ＡＣＬ１２６の例外リストが参照可能であると判断する（ステップＳ４０９）。
【０１１０】
ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ４０２でユーザが分析サービスを契約していないと判断した場合、ステップＳ４０４で当該ユーザが料金滞納、利用時間の超過などの問題を起こしており、分析サービスを利用させることができないと判断した場合、ステップＳ４０７でサービス管理ＤＢ１１８の分析サービスマスタ１２４の列「表」に全体集計対象が含まれていない場合、ステップＳ４０８で当該ユーザが図２０のステップＳ３０４〜Ｓ３０８の処理対象となっている共通ＡＣＬ１２６を含む分析サービスが契約していないと判断した場合、いずれにおいても当該共通ＡＣＬ１２６の例外リストが参照不可であるか、又は、参照不要であると判断する（ステップＳ４１０）。
【０１１１】
例えば、店舗Ａ１の店舗用ＳａａＳサーバ１０１が、集計対象として図１６に示した売上テーブル１３８を指定し、集計条件として図７の地方別・地区別集計用共通ＡＣＬ１３０（図１５に示した分析サービスマスタ１２４の共通ＡＣＬ１２６「地域」に相当する）の「地区」を指定して全体集計を要求した場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、店舗Ａ１の利用状況がサービス契約に反しない限り、地方別・地区別集計用共通ＡＣＬ１３０の例外リストは参照可能であると判断する。これは、図１５に示した分析サービス契約１２３において、店舗Ａ１が「売上分析」サービスを契約していることが示されており、分析サービスマスタ１２４において、売上テーブル１３８が「売上分析」サービスの処理対象であり、地方別・地区別集計用共通ＡＣＬ１３０が売上テーブル１３８に適用される共通ＡＣＬ１２６として設定されているからである。一方、例えば、店舗Ａ２の店舗用ＳａａＳサーバ１０１が、同様の全体集計を要求した場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、店舗Ａ２の利用状況に関わらず、地方別・地区別集計用共通ＡＣＬ１３０の例外リストは参照不可であると判断する。これは、図１５に示した分析サービス契約１２３において、店舗Ａ２が「売上分析」サービスを契約していないことが示されているからである。また、例えば、図１９に示した利用状況１２５において、店舗Ａ１の当月利用時間は１００時間である。この店舗Ａ１が「１ヵ月の利用時間累計が５０時間以内」のサービス契約をしている場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ４０４からステップＳ４１０に進み、共通ＡＣＬ１２６の例外リストは参照不可であると判断する。また、例えば、店舗Ａ１が図１５に示した分析サービスマスタ１２４の列「表」にない借入金テーブルなどに関する全体集計を要求した場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ４０７からステップＳ４１０に進み、共通ＡＣＬ１２６の例外リストは参照不可であると判断する。また、例えば、店舗Ａ１が売上テーブル１３８に対して図１５に示した分析サービスマスタ１２４に存在しない共通ＡＣＬ１２６「営業時間帯」を適用するような全体集計を要求した場合、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ４０８からステップＳ４１０に進み、共通ＡＣＬ１２６の例外リストは参照不可であると判断する。
【０１１２】
図２２は、図２０におけるステップＳ３０８の詳細な動作を示すフローチャートである。
【０１１３】
図２２において、ドリルスルー用ＡＣＬサブセット生成部１２２は、例外リストの表リストに含まれる各表に対して（ステップＳ５０１）、全体集計要求（当該全体集計の対象は、当該全体集計結果１１５を基にしたドリルスルー要求の対象になる）に含まれる表であるかを判断する（ステップＳ５０２）。ドリルスルー用ＡＣＬサブセット生成部１２２は、対象となる表が全体集計要求に含まれる表であると判断した場合、ステップＳ５０２〜Ｓ５０５の処理を実行する。
【０１１４】
ドリルスルー用ＡＣＬサブセット生成部１２２は、対象となる表に対応する要素リストの持つ要素に対して（ステップＳ５０３）、図２０のステップＳ３０６における一時リストに既に含まれている要素かどうかを確認する（ステップＳ５０４）。ドリルスルー用ＡＣＬサブセット生成部１２２は、対象となる要素が当該一時リストに含まれていない場合は、図２０のステップＳ３０６における一時リストに当該要素を追加する（ステップＳ５０５）。ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ５０２で対象となる表が全体集計要求に含まれていない表であると判断した場合、あるいは、ステップＳ５０４で対象となる要素が既に当該一時リストに含まれていると判断した場合は、ステップＳ５０１で次の表に対する処理に進む。なお、図２２において、例えば図２０のステップＳ３０５において集計条件に対応すると判断された共通ＡＣＬ１２６の階層において、その下位に全体集計要求元を含む要素に付随する例外リストに対して適用するように構成できる。あるいは、例えば、上記要素及びより下位の要素に付随する例外リストに対して適用するように構成してもよい。
【０１１５】
例えば、店舗Ａ１の店舗用ＳａａＳサーバ１０１が、集計対象として図１６に示した売上テーブル１３８を指定し、集計条件として図１４に示した例外リストを含む地方別・地区別集計用共通ＡＣＬ１３０の「地区」を指定して全体集計を要求した場合、前述したように、ドリルスルー用ＡＣＬサブセット生成部１２２は、店舗Ａ１の利用状況がサービス契約に反しない限り、地方別・地区別集計用共通ＡＣＬ１３０の例外リストは参照可能であると判断する。このとき、例外リストが参照されなければ、店舗Ａ１の店舗用ＳａａＳサーバ１０１は、店舗Ａ１自身及び店舗Ａ２の明細データのみにアクセス可能である。しかし、例外リストが参照される場合、ステップＳ５０２で売上テーブル１３８が全体集計の対象となっているため、ドリルスルー用ＡＣＬサブセット生成部１２２は、図１４に示した例外リストの表名のリスト１３６から、売上テーブル１３８に対応する他店舗のリスト１３７を取得し、ステップＳ５０３〜Ｓ５０５の処理を実行する。この他店舗のリスト１３７には、店舗Ａ２と店舗Ａ４が含まれているが、店舗Ａ２については、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ５０４で図２０のステップＳ３０６における一時リストに既に含まれている店舗であると判断するため、ステップＳ５０５の処理は実行しない。一方、店舗Ａ４については、ドリルスルー用ＡＣＬサブセット生成部１２２は、ステップＳ５０３で図２０のステップＳ３０６における一時リストに含まれていない店舗であると判断するため、ステップＳ５０５で店舗Ａ４を当該一時リストに追加する。このように、例外リストが参照された場合、店舗Ａ１の店舗用ＳａａＳサーバ１０１は、店舗Ａ１及び店舗Ａ２の明細データだけでなく、例外的に、店舗Ａ４の明細データにもアクセス（ドリルスルー）可能となる。
【０１１６】
以上のように、本実施の形態によれば、例えば、マルチテナントのＳａａＳシステムにおいて、各テナントが個別にＤＢやＤＷＨ（データウェアハウス）を持っている場合、各テナントのドリルスルー要求について、サービス契約に対する利用状況に応じた制限をかけることが可能となる。
【０１１７】
上記のように、本実施の形態に係るデータ検索システムは、
個別のサービスを提供するサービスサーバ、複数のサービスサーバを監視管理するためのサービス監視管理サーバを備え、
サービス監視管理サーバにより用いられるサービス管理装置として、
複数のサービスサーバのそれぞれが保有するデータのマスタ情報、マスタ情報の要素間の階層構造情報、マスタ情報に対するアクセス権情報を一体化した情報（共通アクセス制御情報）をサービス監視管理サーバに集約して管理し、サービス利用者によるサービスサーバ上のデータに対するアクセス要求に当たっては、サービス利用者の利用しているサービスサーバに対し、集計条件に対応する共通アクセス制御情報内の階層の下位に属するサービスサーバのリストよりなる部分情報をコピーし、
さらに、共通アクセス制御情報において、アクセス制御の例外を例外リストにより管理し、当該例外リストは、当該ユーザが当該例外リストの利用に係るサービス契約を行っており、また当該ユーザのサービス利用状況がサービス利用契約に定める利用規定に従っている場合のみ評価を行うことを特徴とするサービス管理装置を有する。
【０１１８】
また、上記データ検索システムは、
サービス監視管理サーバにおいては上記サービス管理装置を用いることにより、集計結果に付随する共通アクセス制御情報の部分集合を利用して、個別明細データ検索要求を送付するサービスサーバの数を絞り込む際に、アクセス制御の例外については、当該ユーザが当該例外の利用に係るサービス契約を行っており、当該ユーザのサービス利用状況がサービス利用契約に定める利用規定に従っている場合のみ可能とすることを特徴とする。
【０１１９】
また、上記データ検索システムは、
詳細な個別明細データ検索要求に対する結果を、検索要求元のサービスサーバが検索結果を送付するサービスサーバとの間で同期をとらずに表示することを特徴とする。
【０１２０】
以上、本発明の実施の形態について説明したが、これらのうち、２つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、２つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【図面の簡単な説明】
【０１２１】
【図１】ＳａａＳシステムの構成を示すブロック図である。
【図２】ＳａａＳシステムの構成を示すブロック図である。
【図３】ＳａａＳシステムにおけるドリルスルー処理手順を示す図である。
【図４】実施の形態１に係るＳａａＳシステムの構成を示すブロック図である。
【図５】実施の形態１に係る店舗用ＳａａＳサーバ及びＳａａＳ監視管理サーバのハードウェア資源の一例を示す図である。
【図６】実施の形態１における横断的集計実行時の処理シーケンスを示す図である。
【図７】実施の形態１における共通ＡＣＬの例を示す図である。
【図８】実施の形態１における共通ＡＣＬのリレーショナルＤＢによる実現例を示す図である。
【図９】実施の形態１におけるドリルスルー用ＡＣＬサブセット生成部の動作を示すフローチャートである。
【図１０】実施の形態１におけるドリルスルー実行時の処理シーケンスを示す図である。
【図１１】実施の形態１における全体集計結果の例を示す図である。
【図１２】実施の形態１におけるドリルスルー要求部の動作を示すフローチャートである。
【図１３】実施の形態２における分析サービス契約及び分析サービスマスタの例を示す表である。
【図１４】実施の形態２における共通ＡＣＬのリレーショナルＤＢによる実現例を示す図である。
【図１５】実施の形態２における分析サービス契約及び分析サービスマスタの例を示す図である。
【図１６】実施の形態２における明細データの例を示す表である。
【図１７】実施の形態２における共通ＡＣＬの例を示す図である。
【図１８】実施の形態２における共通ＡＣＬの例を示す図である。
【図１９】実施の形態２における利用状況の例を示す表である。
【図２０】実施の形態２におけるドリルスルー用ＡＣＬサブセット生成部の動作を示すフローチャートである。
【図２１】実施の形態２におけるドリルスルー用ＡＣＬサブセット生成部の動作を示すフローチャートである。
【図２２】実施の形態２におけるドリルスルー用ＡＣＬサブセット生成部の動作を示すフローチャートである。
【符号の説明】
【０１２２】
１００  ＳａａＳシステム、１０１  店舗用ＳａａＳサーバ、１０２  ＳａａＳ監視管理サーバ、１０３  データアクセス制御装置、１０４  作業用記憶領域、１０５  サービスコンテンツＤＢ、１０６  横断的集計要求部、１０７  横断的集計応答部、１０８  ドリルスルー要求部、１０９  ＡＣＬサブセット管理部、１１０  ドリルスルー応答部、１１１  条件抽出部、１１２  ＡＣＬサブセット解釈部、１１３  結果受取部、１１４  結果表示部、１１５  全体集計結果、１１６  ＡＣＬサブセット、１１７  サービス管理装置、１１８  サービス管理ＤＢ、１１９  共通ＡＣＬ管理ＤＢ、１２０  横断的集計実行部、１２１  共通ＡＣＬ管理部、１２２  ドリルスルー用ＡＣＬサブセット生成部、１２３  分析サービス契約、１２４  分析サービスマスタ、１２５  利用状況、１２６  共通ＡＣＬ、１２７  ユーザ端末、１２８  要求元店舗、１２９  他店舗、１３０  地方別・地区別集計用共通ＡＣＬ、１３１  地方テーブル、１３２  地区テーブル、１３３  店舗テーブル、１３４  要求元店舗、１３５  他店舗、１３６  表名のリスト、１３７  他店舗のリスト、１３８  売上テーブル、１３９  在庫テーブル、１４０  店舗詳細テーブル、１４１  商品別集計用共通ＡＣＬ、１４２  組織別集計用共通ＡＣＬ、２００  ネットワーク、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９９１  ＳａａＳシステム、９９２  ＳａａＳシステム。
【図１】
2009146350.tif 000003
【図２】
2009146350.tif 000004
【図３】
2009146350.tif 000005
【図４】
2009146350.tif 000006
【図５】
2009146350.tif 000007
【図６】
2009146350.tif 000008
【図７】
2009146350.tif 000009
【図８】
2009146350.tif 000010
【図９】
2009146350.tif 000011
【図１０】
2009146350.tif 000012
【図１１】
2009146350.tif 000013
【図１２】
2009146350.tif 000014
【図１３】
2009146350.tif 000015
【図１４】
2009146350.tif 000016
【図１５】
2009146350.tif 000017
【図１６】
2009146350.tif 000018
【図１７】
2009146350.tif 000019
【図１８】
2009146350.tif 000020
【図１９】
2009146350.tif 000021
【図２０】
2009146350.tif 000022
【図２１】
2009146350.tif 000023
【図２２】
2009146350.tif 000024