(57)【特許請求の範囲】
【請求項１】
データベースからデータを検索して提供する複数の情報検索サービスを提供する機能を有し、前記複数の情報検索サービスのうちデータの要求元のシステムであるデータ要求元システムが選択した情報検索サービスに応じてデータを前記データベースから検索するデータ検索システムであって、
前記データ要求元システムから送信された、前記データ要求元システムが選択した情報検索サービスを識別するためのサービス識別情報を取得するサービス識別情報取得部と、
前記データ要求元システムから送信された不要データ項目の識別情報を取得する検索パラメータ取得部と、
前記複数の情報検索サービスを識別するための複数のサービス識別情報のそれぞれに対する、検索問い合わせ文の構成情報の対応付けが示された定義情報を格納する格納部と、
前記格納部に格納されている前記定義情報を参照することにより、前記サービス識別情報取得部が取得した前記サービス識別情報に対応付けられている前記構成情報を特定する構成情報特定部と、
前記構成情報特定部が特定した前記構成情報を用いて、検索問い合わせ文を生成する検索問い合わせ文生成部と、
前記検索問い合わせ文生成部が生成した前記検索問い合わせ文により、前記データを取得するデータ取得部と、
前記データ取得部が取得した前記データを、前記データ要求元システムへ送信するデータ送信部と
を備え、
前記構成情報は、前記データベースからデータを取得するべきデータ取得対象のデータ項目と、当該データ取得対象のデータ項目のデータを要求元へ送信するか否かとを示す情報を含み、
前記検索問い合わせ文生成部は、前記構成情報特定部が特定した前記構成情報に含まれる情報で示される前記データ取得対象のデータ項目であって前記不要データ項目を含むデータ項目のデータを、前記データベースから検索するための検索問い合わせ文を生成し、
前記データ取得部は、前記検索問い合わせ文生成部が生成した前記検索問い合わせ文を前記データベースへ送信することにより前記データを前記データベースからデータを取得し、
前記データ送信部は、前記データ取得部が前記データベースから取得した前記データのうち、前記構成情報特定部が特定した前記構成情報に含まれる情報によって要求元へ送信する旨が示されているデータ項目であり、かつ、前記不要データ項目以外のデータ項目のデータを、前記データ要求元システムへ送信する
データ検索システム。
【請求項２】
前記サービス識別情報取得部が取得した前記サービス識別情報に対応付けられているデータの取得件数を特定する第１取得件数特定部と、
前記データ要求元システムが要求する、データの取得件数を特定する第２取得件数特定部と
をさらに備え、
前記データ取得部は、前記第２取得件数特定部が特定した取得件数が、前記第１取得件数特定部が特定した取得件数よりも少ない場合は、前記第２取得件数特定部が特定した取得件数を上限として、前記検索問い合わせ文生成部が生成した前記検索問い合わせ文により検索されるデータを前記データベースから取得する
請求項１に記載のデータ検索システム。
【請求項３】
データベースからデータを検索して提供する複数の情報検索サービスを提供する機能を有し、前記複数の情報検索サービスのうちデータの要求元のシステムであるデータ要求元システムが選択した情報検索サービスに応じてデータを前記データベースから検索するデータ検索システムであって、
前記データ要求元システムから送信された、前記データ要求元システムが選択した情報検索サービスを識別するためのサービス識別情報を取得するサービス識別情報取得部と、
前記サービス識別情報取得部が取得した前記サービス識別情報に対応付けられているデータの取得件数を特定する第１取得件数特定部と、
前記データ要求元システムが要求する、データの取得件数を特定する第２取得件数特定部と、
前記複数の情報検索サービスを識別するための複数のサービス識別情報のそれぞれに対する、検索問い合わせ文の構成情報の対応付けが示された定義情報を格納する格納部と、
前記格納部に格納されている前記定義情報を参照することにより、前記サービス識別情報取得部が取得した前記サービス識別情報に対応付けられている前記構成情報を特定する構成情報特定部と、
前記構成情報特定部が特定した前記構成情報を用いて、検索問い合わせ文を生成する検索問い合わせ文生成部と、
前記検索問い合わせ文生成部が生成した前記検索問い合わせ文により、前記データを取得するデータ取得部と、
前記データ取得部が取得した前記データを、前記データ要求元システムへ送信するデータ送信部と
を備え、
前記データ取得部は、前記第２取得件数特定部が特定した取得件数が、前記第１取得件数特定部が特定した取得件数よりも少ない場合は、前記第２取得件数特定部が特定した取得件数を上限として、前記検索問い合わせ文生成部が生成した前記検索問い合わせ文により検索されるデータを前記データベースから取得し、
前記構成情報は、前記データベースからデータを取得するべきデータ取得対象のデータ項目と、当該データ取得対象のデータ項目のデータを要求元へ送信するか否かとを示す情報を含み、
前記検索問い合わせ文生成部は、前記構成情報特定部が特定した前記構成情報に含まれる情報で示される前記データ取得対象のデータ項目のデータを、前記データベースから検索するための検索問い合わせ文を生成し、
前記データ取得部は、前記検索問い合わせ文生成部が生成した前記検索問い合わせ文を前記データベースへ送信することにより前記データを前記データベースからデータを取得し、
前記データ送信部は、前記データ取得部が前記データベースから取得した前記データのうち、前記構成情報特定部が特定した前記構成情報に含まれる情報によって要求元へ送信する旨が示されているデータ項目のデータを、前記データ要求元システムへ送信する
データ検索システム。
【請求項４】
前記データ要求元システムが要求する、データの送信件数を特定する送信件数特定部と、
前記データ要求元システムが要求する、データの送信開始位置を特定する送信開始位置特定部と、
をさらに備え、
前記データ取得部は、前記第１取得件数特定部が特定した取得件数および前記第２取得件数特定部が特定した取得件数の少ない方の取得件数のデータを、前記データベースから取得することを許可し、
前記データ送信部は、前記送信開始位置特定部が特定した前記送信開始位置および前記送信件数特定部が特定した前記送信件数によって示されるデータの位置が、前記許可された取得件数の範囲を超えない場合に、前記データ取得部が前記データベースから取得した前記送信開始位置から前記送信件数のデータを、前記データ要求元システムへ送信する
請求項２または３に記載のデータ検索システム。
【請求項５】
前記データ要求元システムへ送信されるデータに対して、データ項目単位でのフィルタリング処理を行うフィルタ処理部
をさらに備え、
前記定義情報はさらに、前記複数のサービス識別情報のそれぞれに対する、前記フィルタ処理部による前記フィルタリング処理に用いられるフィルタリング条件の対応付けを示し、
前記フィルタ処理部は、前記格納部に格納されている前記定義情報を参照することにより、前記サービス識別情報取得部が取得した前記サービス識別情報に対応付けられている前記フィルタリング条件で前記フィルタリング処理を行う
請求項１から４のいずれか一項に記載のデータ検索システム。
【請求項６】
前記検索問い合わせ文生成部は、前記構成情報特定部が特定した前記構成情報を用いて、前記検索問い合わせ文としてＳＱＬ文を生成する
請求項１から５のいずれか一項に記載のデータ検索システム。
【請求項７】
前記データ要求元システムから送信された絞込み条件を取得する検索パラメータ取得部
をさらに備え、
前記検索問い合わせ文生成部は、前記検索パラメータ取得部が取得した前記絞込み条件および前記構成情報特定部が特定した前記構成情報を用いて、前記絞込み条件に合致する前記データを前記データベースから取得するための前記検索問い合わせ文を生成する
請求項２から４のいずれか一項に記載のデータ検索システム。
【請求項８】
前記検索パラメータ取得部は、前記データ要求元システムから送信されたソート条件をさらに取得し、
前記検索問い合わせ文生成部は、前記ソート条件に従ってソートされた前記データを前記データベースから取得するための前記検索問い合わせ文を生成する
請求項７に記載のデータ検索システム。
【請求項９】
請求項１から８のいずれか一項に記載のデータ検索システムと、
前記データ要求元システムが備える端末装置と
を備え、
前記端末装置は、前記複数の情報検索サービスの中から選択した情報検索サービスを識別するためのサービス識別情報を含む要求電文を送信し、
前記データ検索システムは、前記端末装置へ送信するデータを応答電文で前記端末装置へ送信する
システム。
【請求項１０】
コンピュータを、請求項１から８のいずれか一項に記載のデータ検索システムとして機能させるためのプログラム。
【請求項１１】
データベースからデータを検索して提供する複数の情報検索サービスを提供する機能を有するデータ検索システムが、前記複数の情報検索サービスのうちデータの要求元のシステムであるデータ要求元システムが選択した情報検索サービスに応じてデータを前記データベースから検索するデータ検索方法であって、
前記データ検索システムが備える格納部が、前記複数の情報検索サービスを識別するための複数のサービス識別情報のそれぞれに対する、検索問い合わせ文の構成情報の対応付けが示された定義情報を格納する格納段階と、
前記データ検索システムが備えるサービス識別情報取得部が、前記データ要求元システムから送信された、前記データ要求元システムが選択した前記情報検索サービスを識別するためのサービス識別情報を取得するサービス識別情報取得段階と、
前記データ検索システムが備える検索パラメータ取得部が、前記データ要求元システムから送信された不要データ項目の識別情報を取得する検索パラメータ取得段階と、
前記データ検索システムが備える構成情報特定部が、前記格納部に格納されている前記定義情報を参照することにより、前記サービス識別情報取得部が取得した前記サービス識別情報に対応付けられている前記構成情報を特定する構成情報特定段階と、
前記データ検索システムが備える検索問い合わせ文生成部が、前記構成情報特定部が特定した前記構成情報を用いて、検索問い合わせ文を生成する検索問い合わせ文生成段階と、
前記データ検索システムが備えるデータ取得部が、前記検索問い合わせ文生成部が生成した前記検索問い合わせ文により、前記データを取得するデータ取得段階と、
前記データ検索システムが備えるデータ送信部が、前記データ取得部が取得した前記データを、前記データ要求元システムへ送信するデータ送信段階と
を備え、
前記構成情報は、前記データベースからデータを取得するべきデータ取得対象のデータ項目と、当該データ取得対象のデータ項目のデータを要求元へ送信するか否かとを示す情報を含み、
前記検索問い合わせ文生成段階において、前記検索問い合わせ文生成部は、前記構成情報特定部が特定した前記構成情報に含まれる情報で示される前記データ取得対象のデータ項目であって前記不要データ項目を含むデータ項目のデータを、前記データベースから検索するための検索問い合わせ文を生成し、
前記データ取得段階において、前記データ取得部は、前記検索問い合わせ文生成部が生成した前記検索問い合わせ文を前記データベースへ送信することにより前記データベースからデータを取得し、
前記データ送信段階において、前記データ送信部は、前記データ取得部が前記データベースから取得した前記データのうち、前記構成情報特定部が特定した前記構成情報に含まれる情報によって要求元へ送信する旨が示されているデータ項目であり、かつ、前記不要データ項目以外のデータ項目のデータを、前記データ要求元システムへ送信する
データ検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ検索システム、データ検索方法、およびプログラムに関する。本発明は、特に、サービスで利用するデータを検索するデータ検索システム、データ検索方法、およびプログラムに関する。
【背景技術】
【０００２】
システム内で分散する複数のデータベースを仮想的に統合する技術が考案されている（たとえば、特許文献１および特許文献２参照。）。このような技術を利用することで、データ要求元のシステムは、データの格納先を意識することなく、データベースに格納されているデータを取得することができるものとされている。
【特許文献１】特開２００５−２０８７５７号公報
【特許文献２】特開２００７−２５７０８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記技術では、データベース接続を前提としているので、データベース接続インタフェースを有していないシステム、データベース以外の方式でデータを永続化しているシステムが有するデータの統合は困難となる。
【０００４】
また、上記技術では、データ要求元で直接検索問合せ文を生成・発行しているので、データベースに負荷がかかるような問合せ文を防ぐことができない。この場合、この問合せに対するレスポンスだけでなく、このデータベースを対象とした他の問合せに対するレスポンスも低下する可能性が生じる。
【０００５】
また、問合せの結果に対してデータベース統合参照装置で制限等を実施していないので、データ要求元が不要に大量のデータを取得したり、特定のデータ要求元にしか公開すべきでない機密性の高いデータを他のシステムが取得できてしまうことになる。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態においては、サービスで利用するデータをデータベースから検索するデータ検索システムであって、データの要求元から送信された、サービスを識別するためのサービス識別情報を取得するサービス識別情報取得部と、サービス識別情報に対応付けられている、検索問い合わせ文の構成情報を特定する構成情報特定部と、特定された構成情報を用いて、検索問い合わせ文を生成する検索問い合わせ文生成部と、生成した検索問い合わせ文により、データを取得するデータ取得部と、取得したデータを、要求元へ送信するデータ送信部とを備える。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、実施形態に係る行政システム１０の一例を示す。行政システム１０は、データ検索システム１００を備える。また、行政システム１０は、サービスで利用するデータのデータ要求元の一例としての受給台帳システム１１０を備える。また、行政システム１０は、サービスで利用するデータの取得先の一例としての高齢者支援システム１２１、生活保護システム１２２、および共通データベース１２３を備える。
【００１０】
高齢者支援システム１２１は、高齢者支援サービスを提供するシステムであって、高齢者支援サービスのデータを保持する。生活保護システム１２２は、生活保護サービスを提供するシステムであって、生活保護サービスのデータを保持する。共通データベース１２３は、複数のシステムが共通して利用するデータを格納する。共通データベース１２３は、住民情報サービスのデータおよび住民所得情報サービスのデータを格納する。
【００１１】
データ検索システム１００は、受給台帳システム１１０からの要求に応じて、利用者に提供するサービスのデータを、高齢者支援システム１２１、生活保護システム１２２、および共通データベース１２３の少なくともいずれか一つから取得する。そして、データ検索システム１００は、取得したデータを、受給台帳システム１１０へ送信する。
【００１２】
データ検索システム１００は、高齢者支援情報検索サービス機能、生活保護情報検索サービス機能、住民情報検索サービス機能、および住民所得情報検索サービス機能を有する。高齢者支援情報検索サービス機能は、高齢者支援システム１２１から、高齢者支援サービスのデータを取得する。生活保護情報検索サービス機能は、生活保護システム１２２から、生活保護サービスのデータを取得する。住民情報検索サービス機能は、共通データベース１２３から、住民情報サービスのデータを取得する。住民所得情報検索サービス機能は、共通データベース１２３から、住民所得情報サービスのデータを取得する。
【００１３】
受給台帳システム１１０は、サービスの利用者に提供するデータを、データ検索システム１００に対して要求する。そして、受給台帳システム１１０は、要求に応じたデータをデータ検索システム１００から取得する。さらに、受給台帳システム１１０は、取得したデータを、利用者に提供する。
【００１４】
たとえば、受給台帳システム１１０が備える端末装置から高齢者支援サービスが選択された場合、受給台帳システム１１０は、高齢者支援サービスのデータを、データ検索システム１００に対して要求する。これに応じて、データ検索システム１００は、高齢者支援システム１２１から、高齢者支援サービスのデータを取得する。そして、受給台帳システム１１０は、高齢者支援サービスのデータを、データ検索システム１００から取得する。さらに、受給台帳システム１１０は、取得した高齢者支援サービスのデータを、端末装置の画面上に表示する。
【００１５】
受給台帳システム１１０は、高齢者支援システム１２１、生活保護システム１２２、および共通データベース１２３が保持するそれぞれのデータを、データ検索システム１００に要求することで、データ検索システム１００から取得できる。このため、受給台帳システム１１０は、高齢者支援システム１２１、生活保護システム１２２、および共通データベース１２３のそれぞれに対する通信インタフェースを設ける必要が無く、データ検索システム１００に対する通信インタフェースだけを設ければよい。
【００１６】
特に、受給台帳システム１１０は、高齢者支援システム１２１、生活保護システム１２２、および共通データベース１２３のそれぞれに対する通信接続方式が異なる場合がある。たとえば、高齢者支援システム１２１との通信接続方式にＷｅｂサービス接続が用いられ、生活保護システム１２２との通信接続方式にＤＢ２（登録商標）用のデータベース接続が用いられ、共通データベース１２３との通信接続にＯｒａｃｌｅ（登録商標）用のデータベース接続が用いられているとする。このような場合であっても、受給台帳システム１１０は、データ検索システム１００との通信接続方式の通信インタフェースだけを設ければよい。
【００１７】
行政システム１０が備えるいずれかのシステムを変更または削除する場合は、変更または削除するシステムとデータ検索システム１００との通信インタフェースだけを変更または削除すればよい。また、行政システム１０に対してシステムを追加する場合、追加するシステムは、データ検索システム１００に対する通信インタフェースだけを設ければよい。これにより、追加するシステムは、高齢者支援システム１２１、生活保護システム１２２、または共通データベース１２３が保持するデータを、データ検索システム１００に要求することで、データ検索システム１００から取得できる。
【００１８】
このように、本実施形態の行政システム１０によれば、既存のデータ要求元システムおよびデータ提供元システムに影響を及ぼすことなく、システムの追加・変更・削除をおこなうことができるので、システムの構築および管理にかかるコストを削減できる。また、行政システム１０が備えるそれぞれのシステムは、複数種類の通信ポートを開放する必要がないので、行政システム１０が備えるそれぞれのシステムにおけるセキュリティ効果を向上できる。
【００１９】
図２は、実施形態に係るデータ検索システム１００の機能構成例を示す。データ検索システム１００は、サービスインタフェース部２１０、権限判定処理部２２０、検索処理部２３０、フィルタ処理部２４０、および格納部２５０を備える。
【００２０】
格納部２５０は、サービスインタフェース部２１０、権限判定処理部２２０、検索処理部２３０、またはフィルタ処理部２４０によって参照される各種定義ファイルを予め格納する。たとえば、格納部２５０は、複数のサービス識別情報のそれぞれに対する権限判定ルールの対応付けを予め定義した権限判定ルール定義ファイルを格納する。また、格納部２５０は、複数のサービス識別情報のそれぞれに対するデータ検索処理の対応付けを予め定義したサービス定義ファイルを格納する。また、格納部２５０は、複数のフィルタリング条件を定義したフィルタリング条件定義ファイルを予め格納する。
【００２１】
サービスインタフェース部２１０は、要求電文を受給台帳システム１１０から取得する。要求電文には、サービス識別情報、ユーザ情報、検索パラメータなどが示されている。サービスインタフェース部２１０は、取得したサービス識別情報、ユーザ情報、検索パラメータなどを示すＶａｌｕｅＯｂｊｅｃｔを生成する。そして、サービスインタフェース部２１０は、生成したＶａｌｕｅＯｂｊｅｃｔを権限判定処理部２２０に送信する。これにより、サービスインタフェース部２１０は、権限判定処理部２２０に対して、権限判定処理部２２０による権限判定処理および検索処理部２３０によるデータ検索処理を要求する。
【００２２】
権限判定処理部２２０は、サービスインタフェース部２１０から送信されたＶａｌｕｅＯｂｊｅｃｔを取得する。権限判定処理部２２０は、取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、サービスおよびユーザを特定する。権限判定処理部２２０は、格納部２５０に格納されている権限判定ルール定義ファイルを参照することにより、特定したサービスに対応付けられている権限判定ルールを特定する。そして、権限判定処理部２２０は、特定した権限判定ルールを用いて、特定したユーザの権限を判定する。
【００２３】
権限判定処理部２２０は、取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、ユーザが属する部署名を特定してもよい。そして、権限判定処理部２２０は、特定した部署名で、ユーザの権限を判定してもよい。また、権限判定処理部２２０は、取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、ユーザの職位名を特定してもよい。そして、権限判定処理部２２０は、特定した職位名で、ユーザの権限を判定してもよい。
【００２４】
権限判定処理によって特定したサービスに対する特定したユーザの権限が有ると判定された場合、権限判定処理部２２０は、サービス識別情報および検索パラメータが示されたＶａｌｕｅＯｂｊｅｃｔを検索処理部２３０に引き渡す。これにより、権限判定処理部２２０は、検索処理部２３０に対してデータ検索処理を要求する。一方、権限判定処理によって特定したサービスに対する特定したユーザの権限が無いと判定した場合、権限判定処理部２２０は、検索処理部２３０に対してデータ検索処理を要求せずに、権限判定処理の結果を示すＶａｌｕｅＯｂｊｅｃｔを、サービスインタフェース部２１０へ送信する。
【００２５】
検索処理部２３０は、権限判定処理部２２０から送信されたＶａｌｕｅＯｂｊｅｃｔを取得する。検索処理部２３０は、取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、サービスおよび検索パラメータを特定する。また、検索処理部２３０は、格納部２５０に格納されているサービス定義ファイルを参照することにより、特定したサービスに対応付けられているデータ検索処理を特定する。
【００２６】
そして、検索処理部２３０は、特定したデータ検索処理により、特定したサービスに応じたデータ検索処理をおこなう。たとえば、検索処理部２３０は、特定したサービスに応じた検索問い合わせ文を、特定したサービスに応じたあて先へ送信する。
【００２７】
これにより、検索処理部２３０は、特定したサービスに応じた検索結果データを取得する。たとえば、検索処理部２３０は、特定したサービスに応じた検索結果データを、高齢者支援システム１２１、生活保護システム１２２、または共通データベース１２３から取得する。検索処理部２３０は、取得した検索結果データを示すＶａｌｕｅＯｂｊｅｃｔを生成する。検索処理部２３０は、生成したＶａｌｕｅＯｂｊｅｃｔを権限判定処理部２２０へ送信する。
【００２８】
フィルタ処理部２４０は、検索処理部２３０が取得した検索結果データに対して、データ項目単位でのフィルタリング処理をおこなう。たとえば、検索処理部２３０は、サービス識別情報、ユーザ情報、および検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔをフィルタ処理部２４０へ送信する。
【００２９】
フィルタ処理部２４０は、検索処理部２３０から送信されたＶａｌｕｅＯｂｊｅｃｔを取得する。フィルタ処理部２４０は、取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、サービスおよびユーザを特定する。また、フィルタ処理部２４０は、格納部２５０に格納されているサービス定義ファイルを参照することにより、特定したサービスに対応付けられているフィルタリング条件を特定する。
【００３０】
フィルタ処理部２４０は、格納部２５０に格納されているフィルタリング条件定義ファイルを参照することにより、特定したフィルタリング条件から、権限判定ルールを、取得した検索結果データのデータ項目ごとに特定する。そして、フィルタ処理部２４０は、取得した検索結果データのデータ項目ごとに、特定した権限判定ルールを用いて、特定したユーザの権限を判定する。
【００３１】
フィルタ処理部２４０は、ユーザが属する部署名を特定してもよい。そして、フィルタ処理部２４０は、特定した部署名で、取得した検索結果データのデータ項目ごとのユーザの権限を判定してもよい。また、フィルタ処理部２４０は、ユーザの職位名を特定してもよい。そして、フィルタ処理部２４０は、特定した職位名で、取得した検索結果データのデータ項目ごとのユーザの権限を判定してもよい。
【００３２】
フィルタ処理部２４０は、取得した検索結果データから、権限判定処理によってユーザの権限が有ると判定されたデータ項目のデータを抽出する。そして、フィルタ処理部２４０は、抽出したデータ、すなわちフィルタリング処理後の検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを検索処理部２３０に送信する。検索処理部２３０は、フィルタリング処理後の検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを取得する。なお、フィルタ処理部２４０は、フィルタリング処理後の検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを、権限判定処理部２２０またはサービスインタフェース部２１０へ送信してもよい。
【００３３】
権限判定処理部２２０は、検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを検索処理部２３０から取得する。そして、権限判定処理部２２０は、取得したＶａｌｕｅＯｂｊｅｃｔを、サービスインタフェース部２１０へ送信する。
【００３４】
サービスインタフェース部２１０は、検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを権限判定処理部２２０から取得する。そして、サービスインタフェース部２１０は、検索結果データが示された応答電文を生成する。さらに、サービスインタフェース部２１０は、生成した応答電文を、受給台帳システム１１０へ送信する。
【００３５】
図３は、検索処理部２３０の機能構成例を示す。検索処理部２３０は、検索部３１０を有する。検索処理部２３０は、事前固有処理実行部３２２、カラム値生成部３２４、および事後固有処理実行部３２８をさらに有する。
【００３６】
検索部３１０は、権限判定処理部２２０から送信されたＶａｌｕｅＯｂｊｅｃｔを取得する。検索部３１０は、取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、サービスおよび検索パラメータを特定する。また、検索部３１０は、格納部２５０に格納されているサービス定義ファイルを参照することにより、特定したサービスに対応付けられているデータ検索処理を特定する。
【００３７】
そして、検索部３１０は、特定したデータ検索処理を用いて、特定したサービスに応じたデータ検索処理をおこなう。たとえば、検索部３１０は、特定したサービスに応じたＳＱＬ文、ＸＭＬ文などの検索問い合わせ文を、特定したサービスに応じたあて先へ送信する。
【００３８】
これにより、検索部３１０は、特定したサービスに応じた検索結果データを取得する。たとえば、検索部３１０は、特定したサービスに応じた検索結果データを、高齢者支援システム１２１、生活保護システム１２２、または共通データベース１２３から取得する。
【００３９】
そして、検索部３１０は、取得した検索結果データを示すＶａｌｕｅＯｂｊｅｃｔを生成する。さらに、検索部３１０は、生成したＶａｌｕｅＯｂｊｅｃｔを権限判定処理部２２０へ送信する。
【００４０】
事前固有処理実行部３２２は、検索処理部２３０によるデータ検索処理が実行される前におこなうべきサービス固有の処理である事前固有処理をおこなう。たとえば、事前固有処理実行部３２２は、サービス識別情報を検索部３１０から取得する。そして、事前固有処理実行部３２２は、格納部２５０に格納されているサービス定義ファイルを参照することにより、取得したサービス識別情報に対応付けられている事前固有処理を、実行すべき事前固有処理として特定する。事前固有処理をサービス定義ファイルに定義することで、バリデーションチェック処理などの事前固有処理を、容易に管理することができる。
【００４１】
カラム値生成部３２４は、サービス固有のデータ項目値を生成するカラム値生成ロジックを実行する。たとえば、カラム値生成部３２４は、サービス識別情報を検索部３１０から取得する。そして、カラム値生成部３２４は、格納部２５０に格納されているサービス定義ファイルを参照することにより、取得したサービス識別情報に対応付けられているカラム値生成ロジックを、実行すべきカラム値生成ロジックとして特定する。
【００４２】
いずれのデータベースにも存在しないデータ項目を、要求元が要求する場合がある。このような場合であっても、カラム値生成部３２４は、検索部３１０が取得した他のデータ項目のデータなどから、データベースに存在しないデータ項目のデータを生成することができる。たとえば、データベースには「生年月日」というデータ項目が存在するが、いずれのデータベースにも存在しない「年齢」というデータ項目を要求元が要求したとする。この場合、カラム値生成部３２４は、検索部３１０が取得したデータ項目「生年月日」のデータに基づいて、データ項目「年齢」のデータを生成することができる。
【００４３】
事後固有処理実行部３２８は、検索処理部２３０によるデータ検索処理が実行された後におこなうべきサービス固有の処理である事後固有処理をおこなう。たとえば、事後固有処理実行部３２８は、サービス識別情報を検索部３１０から取得する。そして、事後固有処理実行部３２８は、格納部２５０に格納されているサービス定義ファイルを参照することにより、取得したサービス識別情報に対応付けられている事後固有処理を、実行すべき事後固有処理として特定する。事前固有処理をサービス定義ファイルに定義することで、データ加工処理などの事後固有処理を、容易に管理することができる。
【００４４】
図４は、検索部３１０の機能構成例を示す。検索部３１０は、データ検索処理特定部４００およびサービス識別情報取得部４０２を備える。また、検索部３１０は、検索パラメータ取得部４１２、検索問い合わせ文生成部４１４、通信接続部４１６、データ取得部４１８、第１取得件数特定部４２０、第２取得件数特定部４２２、送信件数特定部４２３、送信開始位置特定部４２４、およびデータ送信部４２６を備える。
【００４５】
サービス識別情報取得部４０２は、サービスで利用するデータのデータ要求元から送信された、サービスを識別するためのサービス識別情報を取得する。たとえば、サービス識別情報取得部４０２は、権限判定処理部２２０から通信接続部４３０を介して取得したＶａｌｕｅＯｂｊｅｃｔから、上記サービス識別情報を取得する。
【００４６】
データ検索処理特定部４００は、格納部２５０が格納する複数のデータ検索処理の中から、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられているデータ検索処理を特定する。データ検索処理特定部４００は、構成情報特定部４０４、処理プログラム特定部４０６、および通信接続方式特定部４１０を有する。
【００４７】
構成情報特定部４０４は、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられている、検索問い合わせ文の構成情報を特定する。たとえば、構成情報特定部４０４は、ＳＱＬ文の構成情報を特定する。検索問い合わせ文の構成情報は、テーブル名、データ項目名、絞り込み条件を含む。構成情報特定部４０４は、格納部２５０に格納されているサービス定義ファイルを参照することにより、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられている検索問い合わせ文の構成情報を特定してもよい。
【００４８】
処理プログラム特定部４０６は、格納部２５０が格納する複数の処理プログラムの中から、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられている処理プログラムを特定する。処理プログラム特定部４０６は、格納部２５０に格納されているサービス定義ファイルを参照することにより、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられている処理プログラムを特定してもよい。
【００４９】
たとえば、処理プログラム特定部４０６は、データベース接続によるデータ検索処理をおこなう処理プログラムを特定する。他の例では、処理プログラム特定部４０６は、Ｗｅｂサービス接続またはＨＴＴＰ接続によるデータ検索処理をおこなう処理プログラムを特定する。
【００５０】
処理プログラムがＤＡＯ（Ｄａｔａ  Ａｃｃｅｓｓ  Ｏｂｊｅｃｔ）であって、ＤＡＯ定義ファイルに定義されている場合、処理プログラム特定部４０６は、格納部２５０に格納されているサービス定義ファイルを参照することにより、サービス識別情報に対応付けられている、ＤＡＯ定義ファイルを特定してもよい。そして、処理プログラム特定部４０６は、特定したＤＡＯ定義ファイルを参照することにより、ＤＡＯを特定してもよい。
【００５１】
通信接続方式特定部４１０は、格納部２５０が格納する複数の通信接続方式の中から、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられている通信接続方式を特定する。通信接続方式特定部４１０は、格納部２５０に格納されているサービス定義ファイルを参照することにより、サービス識別情報に対応付けられている通信接続方式を特定してもよい。
【００５２】
たとえば、通信接続方式特定部４１０は、通信接続方式としてデータベース接続を特定する。他の例では、通信接続方式特定部４１０は、通信接続方式としてＷｅｂサービス接続またはＨＴＴＰ接続を特定する。
【００５３】
通信接続方式がシステム接続定義ファイルに定義されている場合、通信接続方式特定部４１０は、格納部２５０に格納されているサービス定義ファイルを参照することにより、サービス識別情報に対応付けられている、システム接続定義ファイルを特定してもよい。そして、通信接続方式特定部４１０は、特定したシステム接続定義ファイルを参照することにより、通信接続方式を特定してもよい。
【００５４】
検索パラメータ取得部４１２は、サービスで利用するデータのデータ要求元から送信された検索パラメータを取得する。たとえば、検索パラメータ取得部４１２は、権限判定処理部２２０から通信接続部４３０を介して取得したＶａｌｕｅＯｂｊｅｃｔから、上記検索パラメータを取得する。検索パラメータ取得部４１２は、データ要求元から送信された不要データ項目の識別情報をさらに取得してもよい。検索パラメータ取得部４１２は、データ要求元から送信された絞り込み条件をさらに取得してもよい。検索パラメータ取得部４１２は、データ要求元から送信されたソート条件をさらに取得してもよい。
【００５５】
検索問い合わせ文生成部４１４は、構成情報特定部４０４が特定した構成情報および検索パラメータ取得部４１２が取得した検索パラメータを用いて、検索問い合わせ文を生成する。たとえば、検索問い合わせ文生成部４１４は、構成情報特定部４０４が特定した構成情報および検索パラメータ取得部４１２が取得した検索パラメータを用いて、ＳＱＬ文を生成する。
【００５６】
検索パラメータ取得部４１２が不要データ項目の識別情報を取得した場合、検索問い合わせ文生成部４１４は、上記不要データ項目以外のデータを取得するためのＳＱＬ文を生成してもよい。検索パラメータ取得部４１２が絞り込み条件を取得した場合、検索問い合わせ文生成部４１４は、上記絞り込み条件に合致するデータを取得するためのＳＱＬ文を生成してもよい。検索パラメータ取得部４１２がソート条件を取得した場合、検索問い合わせ文生成部４１４は、取得したソート条件にしたがって検索結果データがソートされる検索問い合わせ文を生成してもよい。
【００５７】
通信接続部４１６は、通信接続方式特定部４１０によって特定された通信接続方式により、サービスで利用するデータのデータ取得先に通信接続する。たとえば、通信接続部４１６は、ＪＤＢＣドライバによるデータベース接続、Ｗｅｂサービス接続、ＨＴＴＰ接続などの通信接続方式により、データ取得先に通信接続する。
【００５８】
データ取得部４１８は、データ検索処理特定部４００が特定したデータ検索処理により、サービスで利用するデータを取得する。具体的には、データ取得部４１８は、処理プログラム特定部４０６が特定した処理プログラムにより、サービスで利用するデータを取得する。また、データ取得部４１８は、通信接続方式特定部４１０が特定した通信接続方式により、サービスで利用するデータを取得する。
【００５９】
また、データ取得部４１８は、検索問い合わせ文生成部４１４が生成した検索問い合わせ文によってデータベースから検索されたデータのうちの、第１取得件数特定部４２０が特定した取得件数のデータを、データベースから取得してもよい。
【００６０】
データ取得部４１８は、検索問い合わせ文に該当するデータのデータ件数が、第１取得件数特定部４２０が特定した取得件数よりも多い場合は、第１取得件数特定部４２０が特定した取得件数のデータを、データベースから取得してもよい。また、データ取得部４１８は、検索問い合わせ文に該当するデータのデータ件数が、第１取得件数特定部４２０が特定した取得件数よりも多い場合は、所定のエラー処理をおこなってもよい。
【００６１】
第１取得件数特定部４２０および第２取得件数特定部４２２の双方が取得件数を特定する場合がある。このとき、第２取得件数特定部４２２が特定した取得件数が、前記第１取得件数特定部が取得した取得件数よりも少ない場合、データ取得部４１８は、第２取得件数特定部４２２が特定した取得件数のデータを、データベースから取得してもよい。一方、第２取得件数特定部４２２が特定した取得件数が、第１取得件数特定部４２０が特定した取得件数よりも多い場合、データ取得部４１８は、第１取得件数特定部４２０が特定した取得件数のデータを、データベースから取得してもよい。
【００６２】
検索問い合わせ文生成部４１４が検索問い合わせ文を生成した場合、データ取得部４１８は、生成した検索問い合わせ文により、サービスで利用するデータを取得してもよい。たとえば、検索問い合わせ文生成部４１４がＳＱＬ文を生成した場合、データ取得部４１８は、生成したＳＱＬ文により、サービスで利用するデータを取得してもよい。
【００６３】
第１取得件数特定部４２０は、サービス識別情報取得部４０２が取得したサービス識別情報に対応付けられている取得件数を特定する。たとえば、第１取得件数特定部４２０は、格納部２５０に格納されているサービス定義ファイルを参照することにより、サービス識別情報に対応付けられている取得件数を特定する。
【００６４】
第２取得件数特定部４２２は、サービスで利用するデータのデータ要求元が要求する取得件数を特定する。たとえば、第２取得件数特定部４２２は、通信接続部４３０を介して権限判定処理部２２０から取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、データ要求元が要求する取得件数を特定する。
【００６５】
送信件数特定部４２３は、サービスで利用するデータのデータ要求元が要求する送信件数を特定する。たとえば、送信件数特定部４２３は、通信接続部４３０を介して権限判定処理部２２０から取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、データ要求元が要求する送信件数を特定する。
【００６６】
送信開始位置特定部４２４は、データの要求元が要求する、データの送信開始位置を特定する。たとえば、送信開始位置特定部４２４は、通信接続部４３０を介して権限判定処理部２２０から取得したＶａｌｕｅＯｂｊｅｃｔを参照することにより、上記送信開始位置を特定する。
【００６７】
データ送信部４２６は、データ取得部４１８が取得したデータを、データ要求元へ送信する。たとえば、データ送信部４２６は、データ取得部４１８が取得したデータを示すＶａｌｕｅＯｂｊｅｃｔを生成した後に、生成したＶａｌｕｅＯｂｊｅｃｔを通信接続部４３０を介して権限判定処理部２２０へ送信する。
【００６８】
送信件数特定部４２３が送信件数を特定した場合、データ取得部４１８は、検索問い合わせ文生成部４１４が生成した検索問い合わせ文によってデータベースから検索されたデータのうちの、送信件数特定部４２３が特定した送信件数のデータを、データベースから取得してもよい。また、送信開始位置特定部４２４が送信開始位置を特定した場合、データ取得部４１８は、検索問い合わせ文生成部４１４が生成した検索問い合わせ文によってデータベースから検索されたデータのうちの、送信開始位置特定部４２４が特定した送信開始位置からのデータを、データベースから取得してもよい。
【００６９】
図５は、データ検索システム１００が受け付ける要求電文の一例を示す。要求電文は、「ｈｅａｄｅｒ」タグで示されるヘッダー部５１０および「ｂｏｄｙ」タグで示されるボディ部５２０を含む。
【００７０】
ヘッダー部５１０において、「ａｕｔｈ」タグ内には、権限判定処理部２２０による権限判定処理およびフィルタ処理部２４０によるフィルタリング処理に用いられるユーザ情報が示される。「ａｕｔｈ」タグ内において、「ｕｓｅｒｉｄ」タグには、データ要求元でサービスを利用するユーザの識別情報が設定される。また、「ａｕｔｈ」タグ内において、「ｐａｒａｍｓ」タグ内には、上記ユーザに関するユーザ情報群が設定される。
【００７１】
「ｐａｒａｍｓ」タグ内において、「ｐａｒａｍ」には、ユーザ情報のパラメータ値が設定される。また、「ｐａｒａｍ」タグの「ｎａｍｅ」属性には、ユーザ情報名が設定される。たとえば、図５に示す要求電文では、データ要求元のユーザは、個人ＩＤ「０００００００００１」を有する「○○課」の「課長」であることが示されている。
【００７２】
ボディ部５２０において、「ｒｅｑｕｅｓｔ」タグの「ｓｅｒｖｉｃｅＮａｍｅ」属性には、サービス識別情報が設定される。たとえば、図５に示す要求電文では、サービス識別情報として「Ｊｕｍｉｎ」が設定されている。すなわち、図５に示す要求電文には、当該要求電文は「Ｊｕｍｉｎ」サービスを要求するための要求電文であることが示されている。
【００７３】
ボディ部５２０において、「ｐａｒａｍｓ」タグ内にはデータ検索処理に用いられる検索パラメータ群が設定される。「ｐａｒａｍｓ」タグ内において、「ｐａｒａｍ」タグには、検索パラメータのパラメータ値が設定される。また、「ｐａｒａｍ」タグの「ｉｔｅｍＮａｍｅ」属性には、検索パラメータとするデータ項目の論理名が設定される。論理名とは、データ要求元のシステムに対して公開されるデータ項目の名称を示す。たとえば、図５に示す要求電文では、データ項目「性別」が「男性」が設定されているデータだけを検索するデータ検索処理をデータ検索システム１００に対して要求することが示されている。
【００７４】
ボディ部５２０において、「ｃｏｎｄｉｔｉｏｎ」タグにはデータ検索処理に用いられる絞り込み条件が設定される。ボディ部５２０において、「ｕｎｎｅｃｅｓｓａｒｉｅｓ」タグ内には、データ要求元において不要なデータ項目群が設定される。「ｕｎｎｅｃｅｓｓａｒｉｅｓ」タグ内において、「ｉｔｅｍ」タグの「ｎａｍｅ」属性には、不要なデータ項目の論理名が設定される。たとえば、図５に示す要求電文では、不要なデータ項目の論理名として「住所」および「電話番号」が設定されている。
【００７５】
ボディ部５２０において、「ｏｒｄｅｒ」タグ内には、検索結果データのソート条件が設定される。「ｏｒｄｅｒ」タグ内において、「ｉｔｅｍ」タグの「ｎａｍｅ」属性には、ソートのキー項目とするデータ項目の論理名が設定される。また、「ｉｔｅｍ」タグの「ｏｒｄｅｒ」属性には、「ａｓｃ（昇順）」または「ｄｅｓｃ（降順）」が設定される。たとえば、図５に示す要求電文では、データ項目「個人番号」で昇順ソートすることをデータ検索システム１００に対して要求することが示されている。
【００７６】
ボディ部５２０において、「ｓｔａｒｔＲｅｃｏｒｄ」タグには、検索結果データの送信開始位置が設定される。また、「ｒｅｑｕｅｓｔＣｏｕｎｔ」タグには、検索結果データの送信件数が設定される。たとえば、図５に示す要求電文では、検索結果データの「１」番目のレコードから「３」件分のレコードを送信するようにデータ検索システム１００に対して要求することが示されている。
【００７７】
ボディ部５２０において、「ｍａｘＣｏｕｎｔ」タグには、データベースからのデータの取得件数が設定される。たとえば、図５に示す要求電文では、「１０」件分のデータをデータベースから検索するようにデータ検索システム１００に対して要求することが示されている。
【００７８】
ボディ部５２０において、「ｅｘｐｉｒｅｄ」タグには、ＤＢアクセス時のタイムアウト時間が設定される。たとえば、図５に示す要求電文では、「３」秒以上経過した場合はタイムアウトするようにデータ検索システム１００に対して要求することが示されている。
【００７９】
図６は、格納部２５０が格納するサービス定義ファイルの一例を示す。サービス定義ファイルにおいて、「ｓｅｒｖｉｃｅ」タグ内には、サービスに依存したデータ検索処理を特定するための情報であるサービス定義情報が設定される。サービス定義ファイルにおいて、「ｓｅｒｖｉｃｅｓ」タグ内には、複数のサービスのサービス定義情報が設定できる。
【００８０】
サービス定義ファイルにおいて、「ｎａｍｅ」タグには、サービス識別情報が設定される。たとえば、図６に示すサービス定義ファイルには、サービス識別情報として「Ｊｕｍｉｎ」が設定されている。すなわち、図６に示すサービス定義には、当該サービス定義は「Ｊｕｍｉｎ」サービスに依存したデータ検索処理を特定するためのサービス定義情報であることが示されている。
【００８１】
サービス定義ファイルにおいて、「ｆｉｌｔｅｒｉｎｇＮａｍｅ」タグには、フィルタ処理部２４０によるフィルタリング処理に用いられるフィルタリング条件名が設定される。サービス定義ファイルにおいて、「ｄａｏＮａｍｅ」タグには、データ検索処理をおこなうＤＡＯクラスを特定するためのＤＡＯ名が設定される。また、「ｄａｏＳｅｒｖｉｃｅＮａｍｅ」タグには、データ検索処理をおこなうメソッドおよび通信接続方式が定義されているシステム接続定義ファイルを特定するためのＤＡＯサービス名が設定される。
【００８２】
サービス定義ファイルにおいて、「ｐｒｅＬｏｇｉｃＮａｍｅ」タグには、事前固有処理実行部３２２による事前固有処理に用いられる処理プログラム名が設定される。また、「ｐｏｓｔＬｏｇｉｃＮａｍｅ」タグには、事後固有処理実行部３２８による事後固有処理に用いられる処理プログラム名が設定される。また、「ｃｏｎｄｉｔｉｎＬｏｇｉｃ」タグには、検索問い合わせ文を構成する絞り込み条件を生成する処理プログラム名が設定される。また、「ｍａｘＣｏｕｎｔ」タグには、データベースからのデータの取得件数が設定される。
【００８３】
サービス定義ファイルにおいて、「ｓｑｌ」タグには、データ検索処理に用いる検索問い合わせ文を生成するための構成情報が設定される。「ｓｑｌ」タグ内において、「ｓｅｌｅｃｔ」タグ内には、データ取得対象のデータ項目が複数設定される。
【００８４】
「ｓｅｌｅｃｔ」タグ内において、「ｉｔｅｍ」タグの「ｎａｍｅ」属性には、データ取得対象のデータ項目の論理名が設定される。「ｉｔｅｍ」タグの「ｈｉｄｅ」属性には、当該データ項目をデータ要求元に送信する場合には「ｔｒｕｅ」が設定され、当該データ項目をデータベースから取得するがデータ要求元に送信しない場合には「ｆａｌｓｅ」が設定される。
【００８５】
「ｓｅｌｅｃｔ」タグ内において、「ｃｏｌｕｍｎ」タグの「ｖａｌｕｅ」属性には、データ取得対象のデータ項目のカラム名が設定される。「ｆｒｏｍ」タグには、データ取得先のテーブル名が設定される。「ｗｈｅｒｅ」タグには、絞り込み条件が設定される。「ｏｒｄｅｒ」タグには、ソート条件が設定される。
【００８６】
たとえば、検索処理部２３０は、図６に示す構成情報から、以下の検索問い合わせ文を生成することができる。「ｓｅｌｅｃｔ  ｋｏｊｉｎ＿ｎｏ，ｎａｍｅ，ｎａｍｅ＿ｋａｎａ，ａｄｄｒｅｓｓ，ｔｅｌ，ｂｉｒｔｈ，ｂｌｏｏｄ，ｓｅｘ  ｆｒｏｍ  ＪｕｍｉｎＴｂｌ  ｗｈｅｒｅ  ｂｌｏｏｄ＝Ａ  ａｎｄ  ｓｅｘ  ＝  ？  ｏｒｄｅｒ  ｂｙ  ｎａｍｅ」。
【００８７】
図７は、検索部３１０によるデータ検索処理の一例を示す。図７では、共通データベース１２３に対するデータベース接続によるデータ検索処理の一例を説明する。なお、生活保護システム１２２に対するデータベース接続によるデータ検索処理については、共通データベース１２３に対するデータベース接続によるデータ検索処理と同様なので、説明を省略する。
【００８８】
まず、検索部３１０は、権限判定処理部２２０から、ＶａｌｕｅＯｂｊｅｃｔを取得する（Ｓ７０１）。ＶａｌｕｅＯｂｊｅｃｔには、データ要求元から送信された、サービス識別情報、不要データ項目、ソート条件、および検索パラメータが示されている。つぎに、検索部３１０は、格納部２５０に格納されている複数のサービス定義ファイルの中から、Ｓ７０１で取得したサービス識別情報に対応付けられているサービス定義ファイルを取得する（Ｓ７０２）。
【００８９】
つぎに、検索部３１０は、取得したサービス定義ファイルを参照することにより、データ検索処理に用いる検索問い合わせ文の構成情報を特定する（Ｓ７０３）。そして、検索部３１０は、Ｓ７０３で特定した構成情報およびＳ７０１で取得した検索パラメータを用いて、検索問い合わせ文を生成する（Ｓ７０４）。
【００９０】
ここでは、検索部３１０は、Ｓ７０１で取得した不要データ項目を含む、全てのデータ項目を取得するための検索問い合わせ文を生成する。他の例では、検索部３１０は、Ｓ７０１で取得した不要データ項目以外のデータ項目を取得するための検索問い合わせ文を生成してもよい。たとえば、検索部３１０は、データ項目「ａｄｄｒｅｓｓ」およびデータ項目「ｔｅｌ」以外のデータ項目を取得する検索問い合わせ文を生成してもよい。また、検索部３１０は、Ｓ７０１で取得したソート条件にしたがって検索結果データがソートされる検索問い合わせ文を生成する。たとえば、図７に示す例では、検索部３１０は、データ項目「ｋｏｎｊｉｎ＿ｎｏ」で昇順ソートされる検索問い合わせ文を生成する。サービス定義ファイルおよび要求電文の双方にソート条件が示されている場合、検索部３１０は、要求電文に示されているソート条件を優先して用いて、検索問い合わせ文を生成してもよい。
【００９１】
つぎに、検索部３１０は、格納部２５０に格納されているＤＡＯ定義ファイルを参照することにより（Ｓ７０５）、Ｓ７０１で取得したサービス識別情報に対応付けられている処理プログラムを特定する（Ｓ７０６）。たとえば、図７に示す例では、まず、検索部３１０は、Ｓ７０２で取得したサービス定義ファイルを参照することにより、サービス識別情報「Ｊｕｍｉｎ」に対応付けられているＤＡＯ名として「Ｊｕｍｉｎ＿ｄａｏ」を特定する。また、サービス識別情報「Ｊｕｍｉｎ」に対応付けられているＤＡＯサービス名として「Ｓｅｌｅｃｔ」を特定する。そして、検索部３１０は、格納部２５０に格納されているＤＡＯ定義ファイルを参照することにより、ＤＡＯ名「Ｊｕｍｉｎ＿ｄａｏ」に対応付けられているＤＡＯクラス「ＲｄｂｍｓＳｅｌｅｃｔＤＡＯ」を特定する。また、ＤＡＯサービス名「Ｓｅｌｅｃｔ」に対応付けられているメソッド「ｓｅｌｅｃｔ」を特定する。
【００９２】
つぎに、検索部３１０は、Ｓ７０６で特定した処理プログラムを実行することにより、データベース接続をおこない（Ｓ７０７）、Ｓ７０４で生成した検索問い合わせ文を接続先のデータベースへ送信する（Ｓ７０８）。これにより、検索部３１０は、接続先のデータベースから検索結果データを取得する（Ｓ７０９）。そして、検索部３１０は、取得した検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを、権限判定処理部２２０へ送信する（Ｓ７１０）。フィルタ処理部２４０によるフィルタリング処理をおこなう場合は、検索部３１０は、取得した検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを、フィルタ処理部２４０へ送信してもよい。なお、Ｓ７０９で不要データ項目を含む全てのデータ項目を取得した場合、Ｓ７１０では、取得した検索結果データのうち、不要データ項目以外のデータ項目を、検索結果データとして権限判定処理部２２０へ送信してもよい。
【００９３】
図８は、検索部３１０によるデータ検索処理の他の一例を示す。図８では、高齢者支援システム１２１に対するＷｅｂサービス接続によるデータ検索処理の一例を説明する。
【００９４】
まず、検索部３１０は、権限判定処理部２２０から、ＶａｌｕｅＯｂｊｅｃｔを取得する（Ｓ８０１）。ＶａｌｕｅＯｂｊｅｃｔには、データ要求元から送信された、サービス識別情報、不要データ項目、ソート条件、および検索パラメータが示されている。つぎに、検索部３１０は、格納部２５０に格納されている複数のサービス定義ファイルの中から、Ｓ８０１で取得したサービス識別情報に対応付けられているサービス定義ファイルを取得する（Ｓ８０２）。
【００９５】
つぎに、検索部３１０は、取得したサービス定義ファイルを参照することにより、データ検索処理に用いる検索問い合わせ文の構成情報を特定する（Ｓ８０３）。そして、検索部３１０は、Ｓ８０３で特定した構成情報およびＳ８０１で取得した検索パラメータを用いて、検索問い合わせ文を生成する（Ｓ８０４）。
【００９６】
ここでは、検索部３１０は、Ｓ８０１で取得した不要データ項目を含む、全てのデータ項目を取得するための検索問い合わせ文を生成する。他の例では、Ｓ８０１で取得した不要データ項目以外のデータ項目を取得するための検索問い合わせ文を生成してもよい。たとえば、検索部３１０は、データ項目「ａｄｄｒｅｓｓ」およびデータ項目「ｔｅｌ」以外のデータ項目を取得する検索問い合わせ文を生成してもよい。また、検索部３１０は、Ｓ８０１で取得したソート条件にしたがって検索結果データがソートされる検索問い合わせ文を生成する。たとえば、図８に示す例では、検索部３１０は、データ項目「ｋｏｎｊｉｎ＿ｎｏ」で昇順ソートされる検索問い合わせ文を生成する。
【００９７】
つぎに、検索部３１０は、格納部２５０に格納されているＤＡＯ定義ファイルを参照することにより（Ｓ８０５）、Ｓ８０１で取得したサービス識別情報に対応付けられている処理プログラムを特定する（Ｓ８０６）。たとえば、図８に示す例では、まず、検索部３１０は、Ｓ８０２で取得したサービス定義ファイルを参照することにより、サービス識別情報「Ｋｏｕｒｅｉｓｙａ」に対応付けられているＤＡＯ名として「Ｋｏｕｒｅｉｓｙａ＿ｄａｏ」を特定する。また、サービス識別情報「Ｋｏｕｒｅｉｓｙａ」に対応付けられているＤＡＯサービス名として「Ｋｏｕｒｅｉｓｙａ＿Ｗｅｂ＿Ｃｏｎｎｅｃｔ」を特定する。そして、検索部３１０は、格納部２５０に格納されているＤＡＯ定義ファイルを参照することにより、ＤＡＯ名「Ｋｏｕｒｅｉｓｙａ＿ｄａｏ」に対応付けられているＤＡＯクラス「ＳｙｓｔｅｍＣｏｏｐＤＡＯ」を特定する。また、ＤＡＯサービス名「Ｋｏｕｒｅｉｓｙａ＿Ｗｅｂ＿Ｃｏｎｎｅｃｔ」に対応付けられているメソッド「ｅｘｅｃｕｔｅ」を特定する。
【００９８】
つぎに、検索部３１０は、格納部２５０に格納されているシステム接続定義ファイルを参照することにより（Ｓ８０７）、Ｓ８０１で取得したサービス識別情報に対応付けられている通信接続方式を特定する（Ｓ８０８）。たとえば、図８に示す例では、まず、検索部３１０は、Ｓ８０２で取得したサービス定義ファイルを参照することにより、サービス識別情報「Ｋｏｕｒｅｉｓｙａ」に対応付けられているＤＡＯサービス名として「Ｋｏｕｒｅｉｓｙａ＿Ｗｅｂ＿Ｃｏｎｎｅｃｔ」を特定する。そして、検索部３１０は、格納部２５０に格納されているシステム接続定義ファイルを参照することにより、ＤＡＯサービス名「Ｋｏｕｒｅｉｓｙａ＿Ｗｅｂ＿Ｃｏｎｎｅｃｔ」と同名のシステム接続サービス「Ｋｏｕｒｅｉｓｙａ＿Ｗｅｂ＿Ｃｏｎｎｅｃｔ」に対応付けられているＧＷ（ゲートウェイ）実装クラス「ＫｏｕｒｅｉｓｙａＷｅｂＣｏｎｎｅｃｔ」および接続方法（Ｗｅｂサービス接続）、ｕｒｉなどの接続用情報を特定する。
【００９９】
つぎに、検索部３１０は、Ｓ８０６で特定した処理プログラムを実行することにより、Ｓ８０８で特定した通信接続方式を用いた通信接続をおこなう（Ｓ８０９）。具体的には、検索部３１０は、ＤＡＯクラス「ＳｙｓｔｅｍＣｏｏｐＤＡＯ」のメソッド「ｅｘｅｃｕｔｅ」を実行する。メソッド「ｅｘｅｃｕｔｅ」は、システム接続サービスとしてＧＷ実装クラス「ＫｏｕｒｅｉｓｙａＷｅｂＣｏｎｎｅｃｔ」を呼び出すことにより、接続先のシステムに対する通信接続をおこなう。そして、検索部３１０は、Ｓ８０４で生成した検索問い合わせ文を、接続先のシステムが要求する形式で、接続先のシステムへ送信する（Ｓ８１０）。たとえば、図８に示す例では、検索部３１０は、Ｓ８０４で生成した検索問い合わせ文を、ＸＭＬ形式で送信する。これにより、検索部３１０は、接続先のシステムから検索結果データを取得する（Ｓ８１１）。そして、検索部３１０は、取得した検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを、権限判定処理部２２０へ送信する（Ｓ８１２）。フィルタ処理部２４０によるフィルタリング処理をおこなう場合は、検索部３１０は、取得した検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを、フィルタ処理部２４０へ送信してもよい。なお、Ｓ８１１で不要データ項目を含む全てのデータ項目を取得した場合、Ｓ８１２では、取得した検索結果データのうち、不要データ項目以外のデータ項目を、検索結果データとして権限判定処理部２２０へ送信してもよい。
【０１００】
このように、本実施形態のデータ検索システム１００によれば、複数のサービスのそれぞれに対してデータ検索処理を予め定義しておくことができる。これにより、複数のサービスのそれぞれに対して、サービスに応じた適切なデータ検索処理をおこなうことができる。
【０１０１】
また、本実施形態のデータ検索システム１００によれば、データ要求元は、サービス識別情報をデータ検索システム１００に送信するだけで、データ検索処理をデータ検索システム１００におこなわせることができる。このため、データ要求元にデータ検索処理を実装する必要がなく、データ要求元のシステム構成を簡素化できる。
【０１０２】
また、本実施形態のデータ検索システム１００によれば、サービスインタフェース部２１０によって、データ検索処理の要求を受け付けるためのインタフェースが共通化されている。このため、データ要求元を追加する場合、追加されるデータ要求元は、既存のデータ要求元に実装されているインタフェースを再利用できる。
【０１０３】
また、本実施形態のデータ検索システム１００によれば、サービス定義ファイルにより、データ検索処理の設定を一括して管理できる。このため、サービスを追加する場合であっても、追加されるサービスに対するデータ検索処理の設定を容易におこなうことができる。
【０１０４】
また、本実施形態のデータ検索システム１００によれば、データ検索処理に用いる処理プログラムおよび通信接続方式を、複数のサービスで共用できる。このため、サービスを追加する場合であっても、追加されるサービス用の処理プログラムおよび通信接続方式を設ける必要がない。追加されるサービスは、既存のサービスが利用する処理プログラムおよび通信接続方式を利用できる。
【０１０５】
また、本実施形態のデータ検索システム１００によれば、複数のサービスでサービス定義ファイルを共用することで、複数のサービスでデータ検索処理を共用できる。これにより、既にキャッシュされているデータ検索処理を有効利用することができるので、データ検索処理の処理効率を向上することができる。具体的には、たとえば、複数のデータ要求元が同様の検索をおこなう場合であっても、それぞれのデータ要求元が他のデータ要求元と異なるＳＱＬ文を実行してしまうと、ＲＤＭＳのキャッシュ効果を得ることができない。本実施形態のデータ検索システム１００によれば、同様の検索を行う検索サービスを定義・規定し、それを複数のデータ利用元が共通利用する事で、複数のデータ要求元のそれぞれが同一のＳＱＬ文を実行することができるので、ＲＤＭＳのキャッシュ効果を得ることができ、データ検索処理の処理効率向上を図ることができる。
【０１０６】
図９は、データ取得部４１８によるデータ取得処理およびデータ送信部４２６によるデータ送信処理の一例を示す。図９では、共通データベース１２３からデータを取得する例を示す。
【０１０７】
まず、データ取得部４１８は、第１取得件数特定部４２０から、サービス識別情報に対応付けられている取得件数を取得する（Ｓ９０１）。たとえば、データ取得部４１８は、サービス識別情報に対応付けられている取得件数として「５０」を取得する。
【０１０８】
つぎに、データ取得部４１８は、第２取得件数特定部４２２から、データ要求元が要求する取得件数を取得する（Ｓ９０２）。たとえば、データ取得部４１８は、データ要求元が要求する取得件数として「１００」を取得する。
【０１０９】
第２取得件数特定部４２２から取得した取得件数は、第１取得件数特定部４２０から取得した取得件数よりも多い。このため、データ取得部４１８は、第１取得件数特定部４２０から取得した取得件数である「５０」件分の検索結果データを、共通データベース１２３から取得することを許可する。したがって、データ取得部４１８は、検索結果データとして「５０」件以上ヒットする場合であっても、「５０」件分の検索結果データを共通データベース１２３から取得することを許可する（Ｓ９０３）。
【０１１０】
つぎに、データ送信部４２６は、送信件数特定部４２３から、データ要求元が要求する送信件数を取得する（Ｓ９０４）。たとえば、データ送信部４２６は、データ要求元が要求する送信件数として「５」を取得する。つぎに、データ送信部４２６は、送信開始位置特定部４２４から、データ要求元が要求する送信開始位置を取得する（Ｓ９０５）。たとえば、データ送信部４２６は、データ要求元が要求する送信開始位置として「１」を取得する。
【０１１１】
そして、データ送信部４２６は、データ取得部４１８が取得することを許可した検索結果データのうちの、「１」番目のレコードから「５」件分のレコードを取得する（Ｓ９０６）。たとえば、データ送信部４２６は、取得することを許可した「５０」件分の検索結果データのうちの「１」番目のレコードから「５」件分のレコードを、共通データベース１２３からフェッチしてメモリ上に展開して取得する。そして、データ送信部４２６は、取得したレコードと、次のレコードが存在する旨を示す情報とを、権限判定処理部２２０へ送信する（Ｓ９０７）。
【０１１２】
続いて、たとえば、データ送信部４２６は、データ要求元が要求する送信件数として「１０」を取得する（Ｓ９０８）。さらに、データ送信部４２６は、データ要求元が要求する送信開始位置として「６」を取得する（Ｓ９０９）。
【０１１３】
この場合、データ送信部４２６は、データ取得部４１８が取得することを許可した検索結果データのうちの、「６」番目のレコードから「１０」件分のレコードを取得する（Ｓ９１０）。たとえば、データ送信部４２６は、取得することを許可した「５０」件分の検索結果データのうちの「６」番目のレコードから「１０」件分のレコードを、共通データベース１２３からフェッチしてメモリ上に展開して取得する。そして、データ送信部４２６は、取得したレコードと、次のレコードが存在する旨を示す情報とを、権限判定処理部２２０へ送信する（Ｓ９１１）。
【０１１４】
続いて、送信開始位置特定部４２４から取得した送信開始位置が「５１」以降となる場合がある。また、送信開始位置特定部４２４から取得した送信開始位置と送信件数特定部４２３から取得した送信件数との合計が「５１」以上となる場合がある。これらの場合、データ取得部４１８は、「５１」件目以降の検索結果データを、さらに共通データベース１２３から取得することを許可するか、または所定のエラー処理をおこなってもよい。
【０１１５】
このように、本実施の形態によれば、複数のサービスのそれぞれに対して、取得件数を定義できる。これにより、複数のサービスのそれぞれにおいて、サービス固有の最適な件数のデータを、データベースから取得することができる。
【０１１６】
また、本実施の形態によれば、データ要求元が要求する取得件数を、データ要求元から取得できる。これにより、複数のサービスのそれぞれにおいて、データ要求元のシステムに応じた最適な件数のデータを、データベースから取得することができる。
【０１１７】
また、本実施の形態によれば、データ要求元が要求する送信件数を、データ要求元から取得できる。これにより、複数のサービスのそれぞれにおいて、データ要求元のシステムに応じた最適な件数のデータを、データ要求元へ送信することができる。
【０１１８】
また、本実施の形態によれば、データ要求元から取得した取得件数が、予めサービスに対応付けられている取得件数を超える場合は、予めサービスに対応付けられている取得件数のデータを、データベースから取得する。これにより、データ検索システム１００において、一のサービスのデータ検索処理に、大量のリソースが占有されることを防止することができる。
【０１１９】
図１０は、権限判定処理部２２０による権限判定処理の一例を示す。まず、権限判定処理部２２０は、サービスインタフェース部２１０から、ＶａｌｕｅＯｂｊｅｃｔを取得する（Ｓ１００１）。取得したＶａｌｕｅＯｂｊｅｃｔには、サービス識別情報、ユーザ情報、および検索パラメータが示されている。
【０１２０】
図１０に示す例では、取得したＶａｌｕｅＯｂｊｅｃｔには、サービス識別情報として「住民基本情報取得サービス」が示されている。また、ユーザ情報の部署名として、「○○課」が示されている。また、ユーザ情報の職位名として、「課長」が示されている。
【０１２１】
つぎに、権限判定処理部２２０は、格納部に格納されている権限判定ルール定義ファイルを参照することにより（Ｓ１００２）、取得したサービス識別情報に対応付けられている権限判定ルールを特定する（Ｓ１００３）。図１０に示す例では、権限判定処理部２２０は、サービス識別情報「住民基本情報取得サービス」に対応付けられている権限判定ルールの「必要権限レベル」として「ＲＥＦ」を特定する。また、サービス識別情報「住民基本情報取得サービス」に対応付けられている権限判定ルールの「ルールクラス」として「Ａ」を特定する。
【０１２２】
本実施形態では、権限レベルのパラメータとして「ＵＰＤ」、「ＲＥＦ」、および「ＮＯＮ」を用いている。「ＵＰＤ」は、更新権限があることを示す。「ＲＥＦ」は、更新権限はないが、参照権限があることを示す。「ＮＯＮ」は、更新権限も参照権限もないことを示す。
【０１２３】
つぎに、権限判定処理部２２０は、格納部２５０に格納されている複数のルールクラスの中から、特定したルールクラス「Ａ」を取得する（Ｓ１００４）。そして、権限判定処理部２２０は、サービスインタフェース部２１０から取得したユーザ情報と、格納部２５０から取得したルールクラスとに基づいて、ユーザに与えられている「権限レベル」を特定する（Ｓ１００５）。図１０に示す例では、権限判定処理部２２０は、「○○課」の「課長」に与えられている「権限レベル」として「ＵＰＤ」を特定する。
【０１２４】
つぎに、権限判定処理部２２０は、特定した「必要権限レベル」と、特定した「権限レベル」とを比較することにより、権限を判定する（Ｓ１００６）。ここで、権限判定処理部２２０は、特定した「権限レベル」が、特定した「必要権限レベル」以上の場合は、権限があると判定してもよい。また、権限判定処理部２２０は、特定した「権限レベル」が、特定した「必要権限レベル」未満の場合は、権限がないと判定してもよい。図１０に示す例では、権限判定処理部２２０は、特定した「権限レベル」である「ＵＰＤ」が、特定した「必要権限レベル」である「ＲＥＦ」以上であることから、権限がある、すなわち「○○課」の「課長」は、「住民基本情報取得サービス」を利用する権限があると判定する。
【０１２５】
権限判定処理部２２０は、権限があると判定した場合、サービス識別情報および検索パラメータを示すＶａｌｕｅＯｂｊｅｃｔを検索処理部２３０へ送信する（Ｓ１００７）。これにより、権限判定処理部２２０は、検索処理部２３０に対してデータ検索処理を要求する。権限判定処理部２２０は、サービスインタフェース部２１０から取得したＶａｌｕｅＯｂｊｅｃｔを、検索処理部２３０へ送信してもよい。
【０１２６】
図１１は、権限判定処理部２２０による権限判定処理の他の一例を示す。まず、権限判定処理部２２０は、サービスインタフェース部２１０から、ＶａｌｕｅＯｂｊｅｃｔを取得する（Ｓ１１０１）。取得したＶａｌｕｅＯｂｊｅｃｔには、サービス識別情報、ユーザ情報、および検索パラメータが示されている。
【０１２７】
図１１に示す例では、取得したＶａｌｕｅＯｂｊｅｃｔには、サービス識別情報として「住民所得情報取得サービス」が示されている。また、ユーザ情報の部署名として、「△△課」が示されている。また、ユーザ情報の職位名として、「次長」が示されている。
【０１２８】
つぎに、権限判定処理部２２０は、格納部に格納されている権限判定ルール定義ファイルを参照することにより（Ｓ１１０２）、取得したサービス識別情報に対応付けられている権限判定ルールを特定する（Ｓ１１０３）。図１１に示す例では、権限判定処理部２２０は、サービス識別情報「住民所得情報取得サービス」に対応付けられている権限判定ルールの「必要権限レベル」として「ＲＥＦ」を特定する。また、サービス識別情報「住民基本情報取得サービス」に対応付けられている権限判定ルールの「ルールクラス」として「Ｂ」を特定する。
【０１２９】
つぎに、権限判定処理部２２０は、格納部２５０に格納されている複数のルールクラスの中から、特定したルールクラス「Ｂ」を取得する（Ｓ１１０４）。そして、権限判定処理部２２０は、サービスインタフェース部２１０から取得したユーザ情報と、格納部２５０から取得したルールクラスとに基づいて、ユーザに与えられている「権限レベル」を特定する（Ｓ１１０５）。図１１に示す例では、権限判定処理部２２０は、「△△課」の「次長」に与えられている「権限レベル」として「ＮＯＮ」を特定する。
【０１３０】
つぎに、権限判定処理部２２０は、特定した「必要権限レベル」と、特定した「権限レベル」とを比較することにより、権限を判定する（Ｓ１１０６）。図１１に示す例では、権限判定処理部２２０は、特定した「権限レベル」である「ＮＯＮ」が、特定した「必要権限レベル」である「ＲＥＦ」未満であることから、権限がない、すなわち「△△課」の「次長」は、「住民所得情報取得サービス」を利用する権限がないと判定する。権限判定処理部２２０は、権限がないと判定した場合、権限判定処理の結果を示すＶａｌｕｅＯｂｊｅｃｔをサービスインタフェース部２１０へ送信する（Ｓ１１０７）。
【０１３１】
このように、本実施形態のデータ検索システム１００によれば、複数のサービスのそれぞれに対して権限判定ルールを定義する。このため、複数のサービスのそれぞれに対して、サービス固有の権限判定処理をおこなうことができる。
【０１３２】
また、本実施形態のデータ検索システム１００によれば、部署名、職位名などのユーザ属性レベルで、権限判定処理をおこなう。このため、複数のユーザＩＤに対する権限判定ルールの設定および変更を一括しておこなうことができる。
【０１３３】
また、本実施形態のデータ検索システム１００によれば、権限判定ルール定義ファイルにより、権限判定ルールを一括して管理する。このため、サービスが追加された場合であっても、追加されたサービスに対する権限判定ルールの設定を容易におこなうことができる。
【０１３４】
図１２は、フィルタ処理部２４０によるフィルタリング処理の一例を示す。まず、フィルタ処理部２４０は、検索処理部２３０から、ＶａｌｕｅＯｂｊｅｃｔを取得する（Ｓ１２０１）。取得したＶａｌｕｅＯｂｊｅｃｔには、サービス識別情報、ユーザ情報、および検索結果データが示されている。
【０１３５】
図１２に示す例では、取得したＶａｌｕｅＯｂｊｅｃｔには、サービス識別情報として「住民所得情報取得サービス」が示されている。また、ユーザ情報の部署名として、「△△課」が示されている。また、ユーザ情報の職位名として、「次長」が示されている。また、３つのデータ項目「性別」、「年齢」、および「氏名」を含む検索結果データが示されている。
【０１３６】
つぎに、フィルタ処理部２４０は、格納部に格納されているサービス定義ファイルを参照することにより、取得したサービス識別情報に対応付けられているフィルタリング条件を特定する（Ｓ１２０２）。図１２に示す例では、フィルタ処理部２４０は、サービス識別情報「住民所得情報取得サービス」に対応付けられているフィルタリング条件として「条件Ａ」を特定する。
【０１３７】
つぎに、フィルタ処理部２４０は、格納部２５０に格納されているフィルタリング条件定義ファイルを参照することにより（Ｓ１２０３）、特定したフィルタリング条件から、権限判定ルールを、取得した検索結果データのデータ項目ごとに特定する（Ｓ１２０４）。図１２に示す例では、フィルタ処理部２４０は、フィルタリング条件「条件Ａ」から、データ項目「性別」の「必要権限レベル」として「ＵＰＤ」を特定する。また、データ項目「性別」の「ルールクラス」として「Ａ」を特定する。
【０１３８】
また、データ項目「年齢」の「必要権限レベル」として「ＵＰＤ」を特定する。また、データ項目「年齢」の「ルールクラス」として「Ｂ」を特定する。また、データ項目「氏名」の「必要権限レベル」として「ＲＥＦ」を特定する。また、データ項目「氏名」の「ルールクラス」として「Ｂ」を特定する。
【０１３９】
つぎに、フィルタ処理部２４０は、格納部２５０に格納されている複数のルールクラスの中から、特定したルールクラス「Ａ」および「Ｂ」を取得する（Ｓ１２０５）。そして、フィルタ処理部２４０は、サービスインタフェース部２１０から取得したユーザ情報と、格納部２５０から取得したルールクラスとに基づいて、ユーザに与えられている「権限レベル」を、データ項目ごとに特定する（Ｓ１２０６）。
【０１４０】
図１２に示す例では、フィルタ処理部２４０は、「△△課」の「次長」に与えられているデータ項目「性別」に対する「権限レベル」として「ＵＰＤ」を特定する。また、フィルタ処理部２４０は、「△△課」の「次長」に与えられているデータ項目「年齢」に対する「権限レベル」として「ＲＥＦ」を特定する。また、フィルタ処理部２４０は、「△△課」の「次長」に与えられているデータ項目「氏名」に対する「権限レベル」として「ＲＥＦ」を特定する。
【０１４１】
つぎに、フィルタ処理部２４０は、データ項目ごとに、特定した「必要権限レベル」と、特定した「権限レベル」とを比較することにより、権限を判定する（Ｓ１２０７）。図１２に示す例では、フィルタ処理部２４０は、データ項目「性別」に対して特定した「権限レベル」である「ＵＰＤ」が、データ項目「性別」に対して特定した「必要権限レベル」である「ＵＰＤ」以上であることから、権限がある、すなわち「△△課」の「次長」は、データ項目「性別」を参照する権限があると判定する。
【０１４２】
また、フィルタ処理部２４０は、データ項目「年齢」に対して特定した「権限レベル」である「ＲＥＦ」が、データ項目「年齢」に対して特定した「必要権限レベル」である「ＵＰＤ」未満であることから、権限がない、すなわち「△△課」の「次長」は、データ項目「年齢」を参照する権限がないと判定する。また、フィルタ処理部２４０は、データ項目「氏名」に対して特定した「権限レベル」である「ＲＥＦ」が、データ項目「氏名」に対して特定した「必要権限レベル」である「ＲＥＦ」以上であることから、権限がある、すなわち「△△課」の「次長」は、データ項目「氏名」を参照する権限があると判定する。
【０１４３】
フィルタ処理部２４０は、取得した検索結果データから、権限判定処理によってユーザの権限が有ると判定されたデータ項目である「性別」および「氏名」のデータを抽出する。そして、フィルタ処理部２４０は、抽出したデータ、すなわちフィルタリング処理後の検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを検索処理部２３０へ送信する（Ｓ１２０８）。フィルタ処理部２４０は、フィルタリング処理後の検索結果データが示されたＶａｌｕｅＯｂｊｅｃｔを、権限判定処理部２２０またはサービスインタフェース部２１０へ送信してもよい。
【０１４４】
このように、本実施形態のデータ検索システム１００によれば、複数のサービスのそれぞれに対してデータ項目レベルで権限判定ルールを設定する。このため、複数のサービスのそれぞれに対して、データ項目レベルで、サービス固有のフィルタリング処理をおこなうことができる。
【０１４５】
また、本実施形態のデータ検索システム１００によれば、フィルタリング条件定義ファイルにより、フィルタリング条件およびデータ項目レベルでの権限判定ルールを一括して管理する。このため、データ項目が追加された場合であっても、追加されたデータ項目に対する権限判定ルールの設定を容易におこなうことができる。
【０１４６】
また、本実施形態のデータ検索システム１００によれば、部署名、職位名などのユーザ属性レベルでデータ項目レベルのフィルタリング処理をおこなう。このため、複数のユーザＩＤに対するフィルタリング条件の設定および変更を一括しておこなうことができる。
【０１４７】
また、本実施形態のデータ検索システム１００によれば、フィルタリング処理をデータ検索システム１００で集中しておこなう。このため、データ要求元およびデータ取得先のシステムは、フィルタリング処理を実装する必要がない。
【０１４８】
また、本実施形態のデータ検索システム１００によれば、検索処理部２３０によるデータ検索処理から独立して、フィルタ処理部２４０によるフィルタリング処理をおこなう。このため、検索処理部２３０は、データ取得先の通信接続方式に依存しない共通の仕組みでフィルタリング処理をおこなうことができる。
【０１４９】
図１３は、データ検索システム１００のハードウェア構成の一例を示す。データ検索システム１００は、ホスト・コントローラ１５８２により相互に接続されるＣＰＵ１５０５、ＲＡＭ１５２０、グラフィック・コントローラ１５７５、および表示装置１５８０を有するＣＰＵ周辺部を備える。また、データ検索システム１００は、Ｉ／Ｏ（入出力）コントローラ１５８４によりホスト・コントローラ１５８２に接続される通信Ｉ／Ｆ１５３０、ハードディスクドライブ１５４０、およびＣＤ−ＲＯＭドライブ１５６０を有する入出力部を備える。さらに、データ検索システム１００は、Ｉ／Ｏコントローラ１５８４に接続されるＲＯＭ１５１０、ＦＤ（フレキシブルディスク）ドライブ１５５０、およびＩ／Ｏ（入出力）チップ１５７０を有するレガシー入出力部を備える。
【０１５０】
ホスト・コントローラ１５８２は、ＲＡＭ１５２０と、高転送レートでＲＡＭ１５２０をアクセスするＣＰＵ１５０５およびグラフィック・コントローラ１５７５とを接続する。ＣＰＵ１５０５は、ＲＯＭ１５１０およびＲＡＭ１５２０に格納されたプログラムに基づいて動作して、各部を制御する。グラフィック・コントローラ１５７５は、ＣＰＵ１５０５等がＲＡＭ１５２０内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置１５８０上に表示させる。これに代えて、グラフィック・コントローラ１５７５は、ＣＰＵ１５０５等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１５１】
Ｉ／Ｏコントローラ１５８４は、ホスト・コントローラ１５８２と、比較的高速な入出力装置である通信Ｉ／Ｆ１５３０、ハードディスクドライブ１５４０、ＣＤ−ＲＯＭドライブ１５６０を接続する。通信Ｉ／Ｆ１５３０は、ネットワークを介して外部１５９８と通信する。ハードディスクドライブ１５４０は、ＣＰＵ１５０５が使用するプログラムおよびデータを格納する。ＣＤ−ＲＯＭドライブ１５６０は、ＣＤ−ＲＯＭ１５９５からプログラムまたはデータを読み取り、ＲＡＭ１５２０を介してハードディスクドライブ１５４０に提供する。
【０１５２】
また、Ｉ／Ｏコントローラ１５８４には、ＲＯＭ１５１０と、ＦＤドライブ１５５０、およびＩ／Ｏチップ１５７０の比較的低速な入出力装置とが接続される。ＲＯＭ１５１０は、データ検索システム１００の起動時にＣＰＵ１５０５が実行するブート・プログラム、データ検索システム１００のハードウェアに依存するプログラム等を格納する。ＦＤドライブ１５５０は、フレキシブルディスク１５９０からプログラムまたはデータを読み取り、ＲＡＭ１５２０を介してハードディスクドライブ１５４０に提供する。Ｉ／Ｏチップ１５７０は、ＦＤドライブ１５５０、たとえばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【０１５３】
ＲＡＭ１５２０を介してハードディスクドライブ１５４０に提供されるプログラムは、フレキシブルディスク１５９０、ＣＤ−ＲＯＭ１５９５、またはＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ１５２０を介してデータ検索システム１００内のハードディスクドライブ１５４０にインストールされ、ＣＰＵ１５０５において実行される。データ検索システム１００にインストールされて実行されるプログラムは、ＣＰＵ１５０５等に働きかけて、コンピュータを、図１から図１２にかけて説明した、データ検索システム１００が有する各機能部として機能させる。
【０１５４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【０１５５】
【図１】実施形態に係る行政システム１０の一例を示す。
【図２】実施形態に係るデータ検索システム１００の機能構成例を示す。
【図３】検索処理部２３０の機能構成例を示す。
【図４】検索部３１０の機能構成例を示す。
【図５】データ検索システム１００が受け付ける要求電文の一例を示す。
【図６】格納部２５０が格納するサービス定義ファイルの一例を示す。
【図７】検索部３１０によるデータ検索処理の一例を示す。
【図８】検索部３１０によるデータ検索処理の他の一例を示す。
【図９】データ送信部４２６によるデータ送信処理の一例を示す。
【図１０】権限判定処理部２２０による権限判定処理の一例を示す。
【図１１】権限判定処理部２２０による権限判定処理の他の一例を示す。
【図１２】フィルタ処理部２４０によるフィルタリング処理の一例を示す。
【図１３】データ検索システム１００のハードウェア構成の一例を示す。
【符号の説明】
【０１５６】
１０  行政システム
１００  データ検索システム
１１０  受給台帳システム
１２１  高齢者支援システム
１２２  生活保護システム
１２３  共通データベース
２１０  サービスインタフェース部
２２０  権限判定処理部
２３０  検索処理部
２４０  フィルタ処理部
２５０  格納部
３１０  検索部
３２２  事前固有処理実行部
３２４  カラム値生成部
３２８  事後固有処理実行部
４００  データ検索処理特定部
４０２  サービス識別情報取得部
４０４  構成情報特定部
４０６  処理プログラム特定部
４１０  通信接続方式特定部
４１２  検索パラメータ取得部
４１４  検索問い合わせ文生成部
４１６  通信接続部
４１８  データ取得部
４２０  第１取得件数特定部
４２２  第２取得件数特定部
４２３  送信件数特定部
４２４  送信開始位置特定部
４２６  データ送信部
４３０  通信接続部
５１０  ヘッダー部
５２０  ボディ部
１５０５  ＣＰＵ
１５１０  ＲＯＭ
１５２０  ＲＡＭ
１５３０  通信Ｉ／Ｆ
１５４０  ハードディスクドライブ
１５５０  ＦＤドライブ
１５６０  ＣＤ−ＲＯＭドライブ
１５７０  Ｉ／Ｏチップ
１５７５  グラフィック・コントローラ
１５８０  表示装置
１５８２  ホスト・コントローラ
１５８４  Ｉ／Ｏコントローラ
１５９０  フレキシブルディスク
１５９５  ＣＤ−ＲＯＭ
１５９８  外部 
【図１】
0005320637.tif 000002
【図２】
0005320637.tif 000003
【図３】
0005320637.tif 000004
【図４】
0005320637.tif 000005
【図５】
0005320637.tif 000006
【図６】
0005320637.tif 000007
【図７】
0005320637.tif 000008
【図８】
0005320637.tif 000009
【図９】
0005320637.tif 000010
【図１０】
0005320637.tif 000011
【図１１】
0005320637.tif 000012
【図１２】
0005320637.tif 000013
【図１３】
0005320637.tif 000014