(57)【要約】【課題】クライアントにＤＢの種類及び場所、ＤＢ内のデータ構成を隠蔽しながら、１度のクライアントからのリクエストにより複数のＤＢやテーブルにアクセスしてデータの操作を行う。【解決手段】複数のＤＢや外部システムへのデータアクセスに際してクライアント７とのデータのやりとりを、共通データ構造である仮想ビューをインタフェースとして行うデータアクセス装置１は、外部定義体データを内部に保持し、クライアント７からのデータ参照命令を受信した場合は、外部定義体データを参照して、アクセス先のデータソースに合わせた名称、コード値、形式を変換し、定義体のデータソースと実データソースとのマッピングの情報に基づくデータソースへアクセスし、アクセスした結果に対して仮想ビューを作成するためにデータ変換することを、複数のデータソースについて順次行い、その参照結果をクライアント７へ仮想ビューとして表示させる。【選択図】図１
2008165447.tif 000002
【特許請求の範囲】
【請求項１】
データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、
データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、
データアクセスＩＤと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部と、
前記参照受付部により受信した参照リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部と、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部と、
前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、２回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部と、
前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部と、
を備えることを特徴とするデータアクセス装置。
【請求項２】
データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、
データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、
データアクセスＩＤと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部と、
前記更新インタフェース部により受信した更新リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部と、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部と、
を備えることを特徴とするデータアクセス装置。
【請求項３】
前記外部定義体データは、さらに、各ユーザ毎のデータソース内の各項目へのアクセス権を示すアクセス権限情報からなり、
前記データ参照部による参照に対応して前記データ保持装置から受信したレスポンスと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報内に示されるデータソース内の各項目へのアクセス権とを照合して、アクセス権がある場合に、前記クライアントへの当該項目の参照を許可する項目アクセス権限チェック部とをさらに備える、
ことを特徴とする請求項１に記載のデータアクセス装置。
【請求項４】
前記外部定義体データは、さらに、各ユーザ毎のデータソースへのアクセス権を示すアクセス権限情報からなり、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報に示されるデータソースへのアクセス権とを照合して、アクセス権がある場合に、当該データソースへのアクセスを許可するデータソースアクセス権限チェック部とをさらに備える、
ことを特徴とする請求項１から請求項３のいずれかの項に記載のデータアクセス装置。
【請求項５】
前記アクセス定義情報は、さらに、データ項目の項目名、コード値、コード値のデータ形式のうち１以上の変換ルールを保持し、
前記アクセス定義情報内の変換ルールに従って、前記データ保持装置へアクセスする時のデータ、または、前記データ保持装置から受信したレスポンス内のデータの項目名、コード値、コード値のデータ形式の変換を行うデータ変換部をさらに備え、
前記データ変換部は、データ形式の変換ルールにプラグインプログラムが記述されている場合、当該プラグインプログラムを実行することによりコード値の形式変換を行う、
ことを特徴とする請求項１から請求項４のいずれかの項に記載のデータアクセス装置。
【請求項６】
前記外部定義体データは、さらに、外部システムに対応した文字コード変換ルールを示す文字変換定義からなり、
前記文字変換定義内の変換ルールに従って、前記データ保持装置へ送信するデータ、または、前記データ保持装置から受信したレスポンスの文字コード変換を行う文字コード変換部をさらに備える、
ことを特徴とする請求項１から請求項５のいずれかの項に記載のデータアクセス装置。
【請求項７】
データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、
前記データアクセス装置は、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、
参照受付部が、データアクセスＩＤと、参照の検索条件とを含む参照リクエストをクライアントから受信し、
定義情報特定部が、前記参照受付部により受信した参照リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定し、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、
データ参照部が、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行い、
仮想ビュー生成部が、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、２回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する
ことを繰り返し、
仮想ビュー返却部が、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する、
ことを特徴とするデータアクセス方法。
【請求項８】
データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、
前記データアクセス装置は、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、
更新インタフェース部が、データアクセスＩＤと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信し、
定義情報特定部が、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定し、
データ更新部が、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行う、
ことを特徴とするデータアクセス方法。
【請求項９】
データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、
データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、
データアクセスＩＤと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部、
前記参照受付部により受信した参照リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部、
前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、２回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部、
前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部、
として機能させることを特徴とするコンピュータプログラム。
【請求項１０】
データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、
データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、
データアクセスＩＤと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部、
前記更新インタフェース部により受信した更新リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部、
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データアクセス装置、データアクセス方法、及び、コンピュータプログラムに関する。
【背景技術】
【０００２】
データベース（以下、「ＤＢ」と記載）を利用するアプリケーションでは、データアクセスインタフェースを利用して直接ＤＢにアクセスし、ＤＢ内のデータを利用する。例えば、Ｊａｖａ（登録商標）アプリケーションでは、ＪＤＢＣ（Java（登録商標） Database Connectivity）／ＳＱＬ（StructuredQuery Language）文などのデータアクセスインタフェースを利用し、いわゆるＣＲＵＤ操作（Create、Read、Update、Delete）を行う。
一方、特許文献１には、データベースの位置や種類によりデータベースに自動アクセスし、データベースのインタフェースに合わせた命令に変換してデータベース毎のインタフェースの違いを吸収する技術が記載されている。
【特許文献１】特開平１０−４９５３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した従来の技術によれば、ＤＢを利用するアプリケーションでは、ＤＢの場所、ＤＢ内の存在するテーブル名やＶｉｅｗ（ビュー）名、項目名をはじめとする各種データ構成に関する情報を用いて、ＤＢへのアクセスが直接プログラム内に記述される。従って、ＤＢを利用するアプリケーション側で、これらのデータ構成に関する情報を知っておき、それらを意識したコーディングを行う必要がある。そのため、ＤＢの項目名の変更や、テーブル等構成の変更は、それらを利用するＳＱＬ文などに影響を及ぼし、場合によっては、アプリケーションにまで影響が及んでプログラムの改修が必要となる場合もある。
特許文献１の技術では、データベース毎に異なるインタフェースによりデータアクセスの命令文をアプリケーションに記述しなければならないという問題を解決することが可能である。しかし、アクセスするデータベースを先に選択し、選択したデータベースに対応したインタフェース統一手段においてインタフェースを変換する構成となっており、一度に複数のデータベースにアクセスすることはできない。よって、アプリケーション側で１回にアクセス可能なデータを意識してコーディングする必要があった。
【０００４】
本発明は、このような事情に鑑みてなされたものであり、クライアントにＤＢの種類及び場所、ＤＢ内のデータ構成を隠蔽しながら、１度のクライアントからのリクエストにより複数のＤＢやテーブルにアクセスしてデータの操作を行うことのできるデータアクセスシステム、データアクセス方法、及び、コンピュータプログラムを提供することをその目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、データアクセスＩＤと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部と、前記参照受付部により受信した参照リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部と、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部と、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、２回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部と、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部と、を備えることを特徴とするデータアクセス装置である。
【０００６】
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、データアクセスＩＤと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部と、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部と、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部と、を備えることを特徴とするデータアクセス装置である。
【０００７】
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記外部定義体データは、さらに、各ユーザ毎のデータソース内の各項目へのアクセス権を示すアクセス権限情報からなり、前記データ参照部による参照に対応して前記データ保持装置から受信したレスポンスと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報内に示されるデータソース内の各項目へのアクセス権とを照合して、アクセス権がある場合に、前記クライアントへの当該項目の参照を許可する項目アクセス権限チェック部とをさらに備える、ことを特徴とする。
【０００８】
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記外部定義体データは、さらに、各ユーザ毎のデータソースへのアクセス権を示すアクセス権限情報からなり、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報に示されるデータソースへのアクセス権とを照合して、アクセス権がある場合に、当該データソースへのアクセスを許可するデータソースアクセス権限チェック部とをさらに備える、ことを特徴とする。
【０００９】
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記アクセス定義情報は、さらに、データ項目の項目名、コード値、コード値のデータ形式のうち１以上の変換ルールを保持し、前記アクセス定義情報内の変換ルールに従って、前記データ保持装置へアクセスする時のデータ、または、前記データ保持装置から受信したレスポンス内のデータの項目名、コード値、コード値のデータ形式の変換を行うデータ変換部をさらに備え、前記データ変換部は、データ形式の変換ルールにプラグインプログラムが記述されている場合、当該プラグインプログラムを実行することによりコード値の形式変換を行う、ことを特徴とする。
【００１０】
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記外部定義体データは、さらに、外部システムに対応した文字コード変換ルールを示す文字変換定義からなり、前記文字変換定義内の変換ルールに従って、前記データ保持装置へ送信するデータ、または、前記データ保持装置から受信したレスポンスの文字コード変換を行う文字コード変換部をさらに備える、ことを特徴とする。
【００１１】
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、前記データアクセス装置は、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、参照受付部が、データアクセスＩＤと、参照の検索条件とを含む参照リクエストをクライアントから受信し、定義情報特定部が、前記参照受付部により受信した参照リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定し、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、データ参照部が、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行い、仮想ビュー生成部が、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、２回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成することを繰り返し、仮想ビュー返却部が、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する、ことを特徴とするデータアクセス方法である。
【００１２】
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、前記データアクセス装置は、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、更新インタフェース部が、データアクセスＩＤと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信し、定義情報特定部が、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定し、データ更新部が、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行う、ことを特徴とするデータアクセス方法である。
【００１３】
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、データアクセスＩＤと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部、前記参照受付部により受信した参照リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、２回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部、として機能させることを特徴とするコンピュータプログラムである。
【００１４】
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、１以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、データ処理を特定するデータアクセスＩＤに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、データアクセスＩＤと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスＩＤに対応したアクセス定義情報を特定する定義情報特定部、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部、として機能させることを特徴とするコンピュータプログラムである。
【発明の効果】
【００１５】
本発明によれば、データアクセス装置は、クライアントへデータソースの情報を隠蔽しながら、クライアントからの１度のリクエストにより、複数のデータ保持装置、あるいは、複数のデータ保持装置内のテーブルにアクセスしてデータの操作を行うことが可能となる。これにより、クライアントはデータソースの実体情報を意識する必要がなく、それらが変更されたとしても、外部定義体の編集のみを行えばよいため、クライアントプログラムの変更等を行う必要がない。
また、データアクセス装置とデータ保持装置間でデータを連携する際には、データアクセス装置にて各種変換機能が実行され、各データ保持装置間の名称の違い、コード体系、データフォーマットを吸収することができる。データベースにある項目名や構成にクライアントが合わせるのではなく、データアクセス装置において合わせることで、クライアントの負荷を軽減することが可能となる。
さらには、データアクセス装置により、データ操作はデータソース及び項目毎に厳格に管理され、セキュリティの高い利用が可能である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本発明の一実施の形態によるデータアクセスシステムの全体構成図である。データアクセス装置１は、クライアント７及び複数のデータ保持装置９とネットワークを介して接続される。同図において、データ保持装置９として、テーブルＡ及びテーブルＢを記憶するデータベース（以下、単に「ＤＢ」と記載）９ａ、テーブルＣを記憶するＤＢ９ｃ、外部システム９ｅがある。
【００１７】
本実施の形態では、データアクセス装置１の提供するデータアクセス機能は、複数のデータソース、すなわち、データ保持装置９をクライアント７から隠蔽し、統一されたインタフェースによりデータのＣＲＵＤ（Create（追加）、Read（読出）、Update（更新）、Delete（削除））操作を提供する。詳細には、データソースからレコードを検索し、検索結果を返すデータ参照アーキテクチャと、データソースへのレコードの追加、レコードの更新および削除を行うデータ更新アーキテクチャとを提供する。また、このデータソースとは、所謂ＤＢ（単独のもの）や、（物理的に）異なる複数のＤＢ（例えば、ＤＢ１ａ及び１ｃ）を含む。また、このデータアクセス機能では、外部システム９ｅなどのように、ＪＤＢＣインタフェースを持たない外部システムについても、データベースリソースとして活用することができる。この際の外部システムへのプロトコルは、ＨＴＴＰ（Hypertext Transfer Protocol）やＳＯＡＰ（Simple Object Access Protocol）が用いられる。
【００１８】
また、クライアント７へのデータは「仮想ビュー（View）」という概念により提供される。これは、従来のＤＢにおけるビューに近いものであるが、大きな違いは物理的に異なるＤＢや、ＤＢ内の異なるテーブル、外部システムから取得したデータを含むことである。
データアクセス装置１は、さらに、複数のデータ保持装置９へのアクセスのため、いくつかの変換機能を持つ。具体的には、項目名変換、コード値変換、文字コード変換、プラグイン機能を利用したフォーマット変換（型変換含む）である。
加えて、本実施の形態のデータアクセス装置１は、アクセス制御機能を有しており、利用者、すなわちクライアント７やそのユーザごとに、仮想ビュー単位、また、項目単位でのアクセス許可／不許可の制御機能が可能となっている。
【００１９】
同図に示すデータアクセス装置１は、例えば、サーバなどのコンピュータ装置で実現することができ、データ参照に関する機能を実現するアーキテクチャであるデータ参照アーキテクチャ、データ更新に関する機能を実現するアーキテクチャデータである更新アーキテクチャ、及び、各種データを記憶する記憶部４０を有する。これらのアーキテクチャは、Ｉ／Ｆ（インタフェース）層１０、データ変換層２０、リソースアクセス層３０に論理的に分割される。
【００２０】
Ｉ／Ｆ層１０は、サービスに公開するインタフェースを実現する層であり、アクセス定義の特定、データソースへのアクセス権限判定、および仮想ビューの構築及び分解を実現する。データ変換層２０は、項目単位の各種変換を実現する層であり、形式変換、名称変換、コード値変換を実現する。リソースアクセス層３０は、データソースへのアクセスを実現する層であり、データソースアクセス、項目マスキング、文字コード変換を実現する。記憶部４０は、各層の機能を実行するために用いられる情報を、外部定義体と呼ばれる外部ファイルとして保持する。
【００２１】
クライアント７は、パーソナルコンピュータや各種システムの操作端末などのコンピュータ装置である。クライアント７は、データベースの操作（追加、更新、削除、参照）にあたり、データアクセス装置１に対して、アクセス制御情報、データアクセスＩＤ、検索条件を送信し、追加・更新の場合はさらにその追加・更新すべきデータを示す仮想ビューを送信する。アクセス制御情報とは、データアクセス機能を利用する際の認証情報、具体的にはユーザを特定する識別情報であるＩＤと、パスワード（以下、「ＰＷ」と記載）とを含んでいる。この認証情報内のＩＤを元にして、データアクセス装置１にてアクセス制限が実行される。また、データアクセスＩＤは、データアクセスの外部定義体を特定する識別情報であり、どのようなデータ項目からなるテーブルを用いてデータ保持装置９にアクセスするか、どのようデータ項目からなるデータをデータ保持装置９から取得するかを特定する。一つのデータアクセスＩＤに対応するこれらのデータ項目は、同一または異なるデータ保持装置９内の同一または異なるテーブルに保持されるデータであるか、そのデータの名称変換、コード値変換、形式変換等を行ったものに対応する。
また、クライアント７が、参照のデータベース操作を行う場合は、データアクセス装置１から仮想ビュー形式でアクセス結果が返却される。なお、追加、更新、削除のデータベース操作を行った場合であっても、処理失敗などの場合には例外が返却される。
【００２２】
図２は、仮想ビューの概念について説明する図である。クライアント７がデータの参照を指示した場合、データアクセス装置１は、仮想ビュー形式によりアクセス結果を返却する。仮想ビューは、Ｊａｖａ（登録商標）のＭａｐ形式でデータを保持しており、クライアント７内に実装されているプログラムは、そのままの形で当該プログラム中での利用が可能である。また、仮想ビューをＸＭＬ（extensiblemarkup language）形式に変換し、出力することが可能となっている。
【００２３】
図３は、データアクセス装置１のデータ参照アーキテクチャを示す図である。
データ参照アーキテクチャにおいて、Ｉ／Ｆ層１０は、参照インタフェース部１１、定義情報特定部１２、データソースアクセス権限チェック部１３、及び、仮想ビュー生成部１４からなり、データ変換層２０は、名称変換部２１、コード値変換部２２、及び、形式変換部２３からなり、リソースアクセス層３０は、文字コード変換部３１、データ参照部３２、項目アクセス権限チェック部３５からなる。
【００２４】
参照インタフェース部１１（参照受付部、仮想ビュー返却部）は、参照に関するインタフェースをクライアント７へ公開する。
定義情報特定部１２は、クライアント７から受信したデータアクセスＩＤに該当する「アクセス定義情報」を特定する。
データソースアクセス権限チェック部１３は、データソース、およびその各項目へのアクセス権限の情報を示すデータである「アクセス権限情報」から、呼び出し時のクライアント引数であるシステムＩＤ、職責情報を基に、「アクセス定義情報」に設定されているデータソース（複数）への参照アクセス権チェックを行う。
仮想ビュー生成部１４は、取得、および各種変換を行ったデータソース（複数）のデータを結合し、仮想ビューを生成する。
【００２５】
名称変換部２１は、項目の名称を変換する。変換の定義については「アクセス定義情報」に記載されている。
コード値変換部２２は、コード値を変換する。例えば、システムＡに用いられるコード値「性別：男・女」を、システムＢに用いられるコード値「ＳＥＸ：Ｍ・Ｗ」に変換する。変換の定義については「アクセス定義情報」に記載されている。
形式変換部２３は、項目の形式を変換する。例えば、型「Integer」を型「String」に、型「String」を型「Date」に、あるいは、和暦のフォーマットを西暦のフォーマットに変換する。変換の際にはプラグインプログラム２４を参照する場合がある。利用するプラグインプログラム２４については、「アクセス定義情報」に記載されている。
【００２６】
文字コード変換部３１は、アクセス対象のデータソースが外部システム、かつ文字コードを変換する必要がある場合のみ、文字コードの変換を行う。文字コード変換のルールは「文字変換定義」に記載されている。
データ参照部３２は、「アクセス定義情報」に設定されているデータソース（複数）のデータを参照する。テーブルの接続情報（ＪＤＢＣ）や外部システムの情報は、「データソース−ＩＤマッピング情報」に記載されている。外部システムに接続をする際には、「システム接続情報」を参照し、ＵＲＬやＩＤ、ＰＷ情報を取得する。外部システムの応答結果を適切な形式に変換するために、プラグインプログラムが利用される。利用されるプラグインについては、「データソース−ＩＤマッピング情報」に記載されている。
項目アクセス権限チェック部３５は、「アクセス権限情報」から、システムＩＤ、職責情報を基に、アクセス定義情報に設定されているデータソース（複数）の各項目への参照アクセス権チェック（マスキング）を行う。
【００２７】
図４は、データアクセス装置１のデータ更新アーキテクチャを示す図である。ここでは、図３と同様の機能部については同様の符号を付し、説明を省略する。
データ更新アーキテクチャにおいて、Ｉ／Ｆ層１０は、更新インタフェース部１５、定義情報特定部１２、及び、データソースアクセス権限チェック部１３からなり、データ変換層２０は、名称変換部２１、コード値変換部２２及び形式変換部２３からなり、リソースアクセス層３０は、項目アクセス権限チェック部３５、文字コード変換部３１、及び、データ変更部３６からなる。
更新インタフェース部１５は、追加／更新／削除に関するインタフェースを公開する。データ変更部３６は、アクセス定義情報に設定されているデータソースのデータを更新する。なお、データ更新アーキテクチャにおいては、文字コード変換部３１の処理の前に項目アクセス権限チェック部３５の処理を行う。
【００２８】
図５は、データアクセス装置１からのデータ参照動作における仮想ビューの構築方法を示す図である。詳細な動作は、図１４の仮想ビュー作成フローにて後述するが、ここでは、概念的な流れを説明する。
アクセスする複数のデータソース（ＤＢ内のテーブル、または、外部システム）のうち、最初に取得したデータソースの参照結果を基に、後続のデータソースのデータを取得して実行結果をマージし、中間データを作成する。各データソースからデータを取得した際には、項目のマスキングと文字コード変換（外部システムの場合のみ）を行う。なお、データアクセスでは、リソース単位のアクセスをシーケンスと呼んでいる。
【００２９】
データ参照部３２は、クライアント７から取得した検索条件をキーにしてデータ保持装置９のあるデータソースにアクセスして参照を行った結果、１以上のカラムからなる１以上のレコードを取得すると、この取得したレコードからなる中間データを生成する。さらに、データ参照部３２は、この中間データを構成する各レコード毎に、当該レコード内のカラムの値をキーにして、データ保持装置９のデータソースにアクセスして参照を行った結果、それぞれのレコードについて１以上のレコードを取得したとする。この場合、データ参照部３２は、他のデータソースにアクセスするキーとなったカラムの値が含まれるレコードを、当該レコード内のカラムの値をキーにして取得したレコードそれぞれ付加したレコードからなる中間データを生成する。
【００３０】
同図を用いて具体的な例を説明する。先ず最初に、データ参照部３２は、ＤＢ９ａにアクセスして参照を行った結果、カラムＡ、カラムＢ、カラムＣの値からなる３つのレコードＲ１，Ｒ２，Ｒ３を取得し、この３つのレコードＲ１，Ｒ２、Ｒ３からなる中間データを生成する。さらに、データ参照部３２は、この中間データを構成する各レコードＲ１，Ｒ２，Ｒ３について、レコード内のカラムの値をキーにしてＤＢ９ａのテーブルＢにアクセスして参照を行う。つまり、データ参照部３２は、３回のアクセスを行うことになる。その結果、中間ビュー内の各レコードそれぞれについて３つのレコードからなるレスポンスを取得したとする。レコードＲ１内のカラムの値をキーにしたときに取得したレコードをｒ１１、ｒ１２、ｒ１３、レコードＲ２内のカラムの値をキーにしたときに取得したレコードをｒ２１、ｒ２２、ｒ２３、レコードＲ３内のカラムの値をキーにしたときに取得したレコードをｒ３１、ｒ３２、ｒ３３とする。仮想Ｖｉｅｗ生成部生成部１４は、レコードＲ１内のカラムの値をキーにして取得したレコードｒ１１，ｒ１２，ｒ１３それぞれにレコードＲ１を付加したレコードＲ１１、Ｒ１２，Ｒ１３、レコードＲ２内のカラムの値をキーにして取得したレコードｒ２１，ｒ２２，ｒ２３それぞれにレコードＲ２を付加したレコードＲ２１、Ｒ２２，Ｒ２３、レコードＲ３内のカラムの値をキーにして取得したレコードｒ３１，ｒ３２，ｒ３３それぞれにレコードＲ３を付加したレコードＲ３１、Ｒ３２，Ｒ３３からなる中間データを生成する。そして、さらに他のデータソースにアクセスする場合、データ参照部３２は、各レコードＲ１１、Ｒ１２，Ｒ１３、Ｒ２１、Ｒ２２，Ｒ２３、Ｒ３１、Ｒ３２，Ｒ３３それぞれについて、レコード内から取得したカラムの値をキーにして参照を行う。つまり、９回のアクセスを行うことになる。
【００３１】
図６は、データ変換層２０で行われる変換処理について説明するための図である。詳細な動作は、図１５、図１６の参照実行フローにて後述するが、ここでは、データ変換層２０で行われる変換処理の説明を、具体例を用いて説明する。
テーブルＡは、とある住所録テーブルを現している。表組み一行目の「ID」，「NAME」」，「ADDRESS」，「SEX」，「BIRTHDAY」は項目名を示しており、その以降の行は当該項目の値からなるレコード（テーブルＡのデータ）である。
【００３２】
このとき、データアクセス装置１は、クライアント９から「誕生日＝”昭和45年1月1日”」の検索条件でデータを参照する要求を受信する（ステップＳ１）。データアクセス装置１の名称変換部２１は、項目名「誕生日」を「BIRTHDAY」に変換する名称変換を行い、形式変換部２３は、和暦と西暦のフォーマットとを相互に変換するプラグインプログラム２４を呼び出して実行し、和暦フォーマット「昭和45年1月1日」を西暦フォーマット「19700101」に変換する（ステップＳ２）。リソースアクセス層３０は、この変換後の項目名及びコード値を用いた条件により、データ保持装置９にアクセスし、実際のテーブルを検索する（ステップＳ３）。そして、リソースアクセス層３０は、検索の結果、データ保持装置９からレスポンス「NAME=“出田 一郎”,SEX=“M”」を取得する（ステップＳ４）。このレスポンスの項目名は、名称変換部２１により項目名「NAME」から項目名「氏名」へ、項目名「SEX」から項目名「性別」へと変換される。さらに、コード値変換部２２により、項目「SEX」のコード値「M」はコード値「男」へと変換される（ステップＳ５）。データアクセス装置１は、この変換後のデータを、実行結果としてクライアント９に返送する（ステップＳ６）。
【００３３】
次に、データアクセス装置１の記憶部４０が記憶する外部定義体について説明する。外部定義体には、アクセス定義情報Ｄ１、アクセス権限情報Ｄ２、システム接続情報Ｄ３、データソース−ＩＤマッピング情報Ｄ４、及び、文字変換定義Ｄ５がある。
アクセス定義情報Ｄ１は、データアクセスＩＤをキーとした、検索条件、変換情報（形式変換、コード値変換、名称変換）の情報を示す。アクセス権限情報Ｄ２は、データソース、およびその各項目へのアクセス権限（システム、職責毎）の情報を示す。システム接続情報Ｄ３は、外部システムへの接続情報を示す。データソース−ＩＤマッピング情報Ｄ４は、各定義情報で使用されるデータソースＩＤと実データソースのマッピングの情報を示す。文字変換定義Ｄ５は、文字コードの変換ルールを示す。以下に各外部定義体の具体的な記述内容について説明する。
【００３４】
図７は、アクセス定義情報Ｄ１の記述内容を示す図である。
アクセス定義情報は、データアクセスＩＤごとに１ファイルが作成され、記憶部４０に保持される複数のアクセス定義情報Ｄ１をアクセス定義情報Ｄ１群と記載する。
【００３５】
データアクセスＩＤ（項番１）は、仮想ビューを生成するためのデータアクセス処理ごとに付与するＩＤを定義する。また、検索結果件数の閾値も設定される。データソース名（項番２）は、データソースを識別する情報であり、アクセス対象となるデータソースの論理名や、検索結果件数の多重度を定義する。データソース名は、このデータアクセス処理における仮想ビューを構築するために必要となるデータソース分だけ繰り返し定義され、処理すべきデータソース順に記述される。
【００３６】
データ編集定義（アクセス前）（項番３）は、入力情報に対する、名称変換・形式変換・コード値変換の規則を定義し、この変換の定義は、システムごとに記述される。データ編集定義（アクセス後）（項番４）は、検索結果に対する、名称変換・形式変換・コード値変換の規則を定義し、この変換の定義は、システムごとに記述される。
【００３７】
クエリ定義（項番５）は、データソースにアクセスするための条件を記述し、これは、ＤＢアクセス時のみ必要となる。クエリ文（項番６）は、データソースにアクセスするためのＳＱＬ文を記述し、これは、ＤＢアクセス時のみ必要である。検索パラメータ（項番７）は、外部から入力された検索条件の変数を、ＳＱＬ文のどこに埋め込むかを定義する。なお、以前のデータソースへの検索結果を利用することも可能である。主キー（項番８）は、検索結果を主キーで自動的に絞り込む際に記述され、主にＳＯＡＰ／ＨＴＴＰアクセスで使用される。
【００３８】
接続パラメータ（項番９）は、ＳＯＡＰ／ＨＴＴＰアクセスする際に、接続先に渡すパラメータを記述する。なお、以前のデータソースへの検索結果を利用することも可能であり、外部システムへＳＯＡＰ／ＨＴＴＰでアクセスする場合のみ必要となる。
包含データソース名（項番１０）は、検索を行ったＳＱＬ文にて他のテーブルを結合した場合に、結合したテーブルについての情報を定義する。包含カラム定義（項番１１）は、検索結果のうち、包含データソースに含まれるカラム名を定義する。データ編集定義（アクセス前）（項番１２）は、データソース名／データ編集定義（アクセス前）と同様であり、データ編集定義（アクセス後）（項番１３）は、データソース名／データ編集定義（アクセス後）と同様である。
【００３９】
図８は、アクセス権限情報Ｄ２の記述内容を示す図である。アクセス権限情報は、システム全体で１ファイルだけ作成する。
ロールＩＤ（項番１）は、利用時のアクセスを識別するＩＤとなる。
パスワード（項番２）は、ロールＩＤに結びつき、認証時に利用される情報である。
有効期限（項番３）は、ロールＩＤの有効期限を示す。
リソース（項番４）は、アクセスを制御する対象となるテーブルやシステムの識別単位である。データ保持装置９がＤＢである場合のアクセスにおいてはテーブル単位となる。リソース権限（項番５）は、テーブルに対する、ＣＲＵＤ権限を指定する。項目（項番６）は、テーブル内に定義が含まれ、アクセス制御対象となる項目を指定する。項目権限（項番７）は、指定した項目に対する、読込み及び書き込み（ＲＷ）の権限を指定する。
リソースリスト（項番８）は、リソースをグループとして扱う場合に設定される。
【００４０】
システム接続情報Ｄ３は、プロトコル単位に作成される。データアクセス装置１の保持する複数のシステム接続情報Ｄ３をシステム接続情報Ｄ３群と記載する。本実施の形態のデータアクセスが参照するのは、図９に示すＨＴＴＰアダプタ接続情報と、図１０に示すＳＯＡＰアダプタ接続情報の二つである。
【００４１】
図９に示すＨＴＴＰアダプタ接続情報の記述内容を説明する。
接続ＩＤ（項番１）は、登録情報を識別するＩＤである。ＵＲＬ（項番２）は、データ保持装置９が外部システムである場合の接続先ＵＲＬを示す。ポート番号（項番３）は、接続ポート番号を記述する。実行メソッド（項番４）は、実行すべきメソッド（POST、GET、MultiPart）を指定する。ユーザ名（項番５）は、ＨＴＴＰ認証を行う場合のユーザ名を記述する。パスワード（項番６）は、ＨＴＴＰ認証を行う場合のパスワードを記述する。エンコーディングタイプ（項番７）は、接続のエンコーディングタイプを指定する。コンテントタイプ（項番８）は、接続のコンテントタイプを指定する。タイムアウト（項番９）は、接続のタイムアウト時間を指定する。パラメータｎ（項番１０）は、リクエストパラメータ名を指定する。
【００４２】
図１０に示すＳＯＡＰアダプタ接続情報の記述内容を説明する。
接続ＩＤ（項番１）は、登録情報を識別するＩＤである。ＷＳＤＬ情報（項番２）は、ＷＳＤＬのロケーション、デフォルト名前空間、サービス名、ポート名などを示す。ユーザ名（項番３）は、ＨＴＴＰ認証を行う場合のユーザ名を示す。パスワード（項番４）は、ＨＴＴＰ認証を行う場合のパスワードを記述する。タイムアウト（項番５）は、接続のタイムアウト時間を指定する。タイプマッピング情報ｎ（項番６）は、タイプマッピング処理を行う場合の情報を記載する。
【００４３】
図１１は、データソース−ＩＤマッピング情報Ｄ４の記述内容を示す図である。データソース−ＩＤマッピング情報Ｄ４は、システム全体で１ファイルだけ作成される。
データソースリスト（項番１）は、データソースＩＤと物理的なデータソースをマッピングする箇所を示し、システムで１つだけ作成される。データソース名−物理リソース名マッピング（項番２）は、データソースＩＤと、物理的なデータソースとのマッピングを示し、データソースの数だけ繰り返し定義する。
データベースリスト（項番３）は、データベース情報を定義する箇所である。データベース定義（項番４）は、各データベースの接続情報を定義し、データベースの数だけ繰り返し定義される。
Ｗｅｂサービスリスト（項番５）は、Ｗｅｂサービス情報を定義する箇所である。Ｗｅｂサービス定義（項番６）は、各Ｗｅｂサービスの接続情報を定義し、Ｗｅｂサービスの数だけ繰り返し定義される。文字コード変換ＩＤ（項番７）は、接続先Ｗｅｂサービスで使用される文字コードを指定する。プラグイン定義（項番８）は、Ｗｅｂサービス戻り値を、データアクセス指定のＸＭＬ形式に変換するためのプラグインプログラムを指定する。
Ｗｅｂアプリケーションリスト（項番９）は、Ｗｅｂアプリケーションの情報を定義する箇所である。Ｗｅｂアプリケーション定義（項番１０）は、各Ｗｅｂアプリケーションの接続情報を定義し、Ｗｅｂアプリケーションの数だけ繰り返し定義する。文字コード変換ＩＤ（項番１１）は、接続先Ｗｅｂアプリケーションで使用される文字コードを指定する。プラグイン定義（項番１２）は、Ｗｅｂアプリケーション戻り値を、データアクセス指定のＸＭＬ形式に変換するためのプラグインプログラムを指定する。
【００４４】
図１２は、文字変換定義情報Ｄ５の記述内容を示す図である。文字変換定義情報Ｄ５は、システム全体で１ファイルだけ作成される。
変換ＩＤ（項番１）は、変換ルールを識別するためのＩＤである。変換種別（項番２）は、変換対象文字列が、ＸＭＬ文書、文字列、その他であるかを指定する。入力文字コード（項番３）は、入力データの文字コードを指定する。出力文字コード（項番４）は、出力データの文字コードを指定する。ＢＡＳＥ６４デコード処理（項番５）は、入力データのＢＡＳＥ６４デコードの種別（全部、一部、無し）を指定する。ＢＡＳＥ６４エンコード処理（項番６）は、出力データのＢＡＳＥ６４エンコードの種別（全部、一部、無し）を指定する。入力値分割種別（項番７）は、入力データを分割する必要がある場合の情報を記載する（ＸＭＬ,文字列、その他）。ＸＭＬ分割タグ（項番８）は、ＸＭＬ文書の場合のタグ情報を記載する。文字列分割情報（項番９）は、文字列の分割個数、分割サイズ、文字数を記載する。
【００４５】
図１３〜図１７は、データアクセス装置１におけるデータ参照時の処理フローである。
図１３は、データ参照時の全体フローを示す。
データアクセス装置１の参照インタフェース部１１が、クライアント７からＩＤ／ＰＷが設定されたアクセス制御情報、データアクセスＩＤ、検索条件が含まれる参照リクエストを受信する。すると、定義情報特定部１２は、受信したデータアクセスＩＤをキーにして記憶部４０内のアクセス定義情報Ｄ１群を検索し、該当するデータアクセスＩＤを有するアクセス定義情報Ｄ１を特定する（ステップＳ１１０）。続いて、データアクセス装置１は、図１４に示す仮想ビュー作成フローを実行し（ステップＳ１１５）、その結果生成された仮想ビューをクライアント７へ返送する（ステップＳ１２０）。
【００４６】
図１４は、データ参照時の仮想ビュー作成フローを示す。
データアクセス装置１の定義情報特定部１２は、図１３のステップＳ１１０にて特定したアクセス定義情報Ｄ１内のデータソース名から、アクセスすべきリソースを決定する（ステップＳ２１０）。最初の処理の場合、最初に記述されているデータソース名が選択される。ステップＳ２１０においてアクセスすべきデータソース名が選択されると（ステップＳ２１５：ＮＯ）、１番目のリソースアクセスであるかを判断する（ステップＳ２２０）。１番目のリソースアクセスであると判断された場合（ステップＳ２２０：Ｙｅｓ）、後述する図１５、図１６、図１７に示す参照実行フローを実行する（ステップＳ２２５）。仮想ビュー生成部１４は、ステップＳ２２５を実行した結果、データ保持装置９から得られたレスポンスデータから中間ビューを作成し（ステップＳ２３０）、ステップＳ２１０からの処理を繰り返す。
【００４７】
ステップＳ２１０からの処理が繰り返された場合、ステップＳ２２０において、１番目のリソースアクセスではないと判断される（ステップＳ２２０：ＮＯ）。この場合、データアクセス装置１が現在保持している中間ビューから、まだ参照を実行していないレコードを特定して取得する（ステップＳ２３５）。取得すべきレコードが中間ビューにある場合（ステップＳ２４０：ＮＯ）、アクセス定義情報Ｄ１内のクエリ定義の検索パラメータ、あるいは、システム接続情報Ｄ３内のパラメータ等により、当該レコードから検索キーデータを確定し（ステップＳ２４５）、図１５に示す参照実行フローを実行する（ステップＳ２５０）。そして、仮想ビュー生成部１４は、ステップＳ２５０を実行した結果、データ保持装置９から得られたレスポンスデータをバッファーに格納し（ステップＳ２５５）、中間ビューから次にアクセスすべきレコードを取得するステップＳ２３５からの処理を繰り返す。
【００４８】
ステップＳ２３５からの処理を繰り返し、中間ビュー内の全てのレコードについて参照実行を終えた場合、ステップＳ２４０において、特定されるレコードがないと判断される（ステップＳ２４０：ＹＥＳ）。すると、図５に示したように、現在の中間ビューと、バッファー内のレスポンスデータをマージして新たな中間ビューを生成する（ステップＳ２６０）。つまり、現在の中間ビュー内の各レコードを、当該レコード内の項目名及びそのコード値あるいはそれをデータ変換した項目名及びそのコード値をキーにして得られた各レスポンスデータに付加して生成したレコードからなる新たな中間ビューを生成する。そして、ステップＳ２１０からの処理を繰り返す。
【００４９】
ステップＳ２１０からの処理を繰り返し、アクセス定義情報Ｄ１内の全てのリソースについて参照実行を終えた場合、次にアクセスすべきリソースはないと判断される（ステップＳ２１５：ＹＥＳ）。仮想ビュー生成部１４は、現在の中間ビューを仮想ビューとして確定する（ステップＳ２６５）。
【００５０】
図１５及び図１６は、（ステップＳ２２５およびステップＳ２５０の）データ参照時の参照実行フローを示す。
図１５において、データソースアクセス権限チェック部１３は、アクセス権限情報Ｄ２から受信したＩＤにより一致するロールＩＤを特定し、この特定したロールＩＤ内の情報（項番１〜５、８）によりデータソースへのアクセス権を確認する（ステップＳ３１０）。具体的には、当該ロールＩＤ内のパスワードが、クライアント７から受信したＰＷと一致し、かつ、現在の日時が有効期限内であり、さらに、現在注目しているリソースが読出し可能であることを確認する。
アクセス権がある場合（ステップＳ３１５：ＹＥＳ）、検索条件に対し、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）を参照して、必要に応じて以下の名称変換、コード変換、形式変換を行う。
【００５１】
名称変換部２１は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）に名称変換が定義されているかにより、検索条件に名称変換の必要があるかを判断する（ステップＳ３２０）。名称変換の必要があれば（ステップＳ３２０：ＹＥＳ）、名称変換部２１は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）を用いて、データ項目の名称を変換する（ステップＳ３２５）。
【００５２】
次に、コード値変換部２２は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）にコード値変換が定義されているかにより、検索条件にコード値変換の必要があるかを判断する（ステップＳ３３０）。コード値変換の必要があれば（ステップＳ３３０：ＹＥＳ）、コード値変換部２２は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）を用いて、コード値を変換する（ステップＳ３３５）。
【００５３】
続いて、形式変換部２３は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）に形式変換が定義されているかにより、検索条件に形式変換の必要があるかを判断する（ステップＳ３４０）。形式変換の必要があれば（ステップＳ３４０：ＹＥＳ）、さらに、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）にプラグインプログラムの利用が定義されているかによりプラグインプログラムを利用するかを判断する（ステップＳ３４５）。
プラグインプログラムを利用しない場合（ステップＳ３４５：ＮＯ）、形式変換部２３は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）に記述されている形式変換を実行し、プラグインプログラムを利用する場合（ステップＳ３４５：ＹＥＳ）、形式変換部２３は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス前）に記述されているプラグインプログラム２４を用いて（ステップＳ３５０）、形式変換を実行する（ステップＳ３５５）。そして、リソースアクセス層３０において、図１７に示すリソースアクセス実施フローを実行する。
【００５４】
なお、ステップＳ３１５において、アクセス権がないと判断された場合（ステップＳ３１５：ＮＯ）、全ての処理を終了する。
【００５５】
図１６は、図１５の参照実行フローの続きを示す。
データ変換層２０では、リソースアクセス実施フローの実行の結果、データ保持装置９から取得したレスポンスデータに対し、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）を参照して、必要に応じて以下の形式変換、コード値変換、名称変換を実行する。
【００５６】
形式変換部２３は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に形式変換が定義されているかにより、レスポンスデータに形式変換の必要があるかを判断する（ステップＳ４１０）。形式変換の必要があれば（ステップＳ４１０：ＹＥＳ）、さらに、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）にプラグインプログラムの利用が定義されているかによりプラグインプログラムを利用するかを判断する（ステップＳ４１５）。
プラグインプログラムを利用しない場合（ステップＳ４１５：ＮＯ）、形式変換部２３は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に記述されている形式変換を実行し、プラグインプログラムを利用する場合（ステップＳ４１５：ＹＥＳ）、形式変換部２３は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に記述されているプラグインプログラム２４を用いて（ステップＳ４２０）、図１５のステップＳ３６０の結果得られたデータの形式変換を実行する（ステップＳ４２５）。
【００５７】
次に、コード値変換部２２は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）にコード値変換が定義されているかにより、レスポンスデータにコード値変換の必要があるかを判断する（ステップＳ４３０）。コード値変換の必要があれば（ステップＳ４３０：ＹＥＳ）、コード値変換部２２は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）を用いて、コード値を変換する（ステップＳ４３５）。
【００５８】
続いて、名称変換部２１は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に名称変換が定義されているかにより、レスポンスデータに名称変換の必要があるかを判断する（ステップＳ４４０）。名称変換の必要があれば（ステップＳ４４０：ＹＥＳ）、名称変換部２１は、アクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に従い、データ項目の名称を変換する（ステップＳ４４５）。
【００５９】
図１７は、ステップＳ３６０のデータ参照時のリソースアクセス実施フローを示す図である。
データアクセス装置１の文字コード変換部３１は、検索条件に、文字コードの変換が必要かを判断する（ステップＳ５１０）。これは、現在注目しているデータソースに対応するアクセス定義情報Ｄ１内のデータ編集定義（アクセス前）に文字コード変換が記述されているか、あるいは、現在注目しているデータソースのアクセス定義情報Ｄ１内のデータソース名に対応するデータソース−ＩＤマッピング情報Ｄ４に、文字コード変換ＩＤが記述されているかにより行われる。
【００６０】
文字コード変換が必要な場合（ステップＳ５１０：ＹＥＳ）、文字コード変換部３１は、現在注目しているデータソースに対応するアクセス定義情報Ｄ１内のデータ編集定義（アクセス前）に記述されている文字コード変換を実行する（ステップＳ５１５）。あるいは、文字コード変換部３１は、現在注目しているデータソースのアクセス定義情報Ｄ１内のデータソース名に対応するデータソース−ＩＤマッピング情報Ｄ４から文字コード変換ＩＤを読出し、この読み出した文字コード変換ＩＤにより文字変換定義情報Ｄ５を特定する。文字コード変換部３１は、特定した文字変換定義Ｄ５内の定義に従って文字コード変換を実行する。
【００６１】
データ参照部３２は、データソース名をキーにデータソース−ＩＤマッピング情報Ｄ４を検索し、リソースに関する接続情報を取得する（ステップＳ５２０）。データ参照部３２は、取得した接続情報から、リソースと外部システムとが対応付けて記述されているかにより、リソースが外部システムであるかを判断する（ステップＳ５２５）。外部システムであると判断した場合（ステップＳ５２５：ＹＥＳ）、アクセス定義情報Ｄ１は、データアクセス装置１が記憶しているシステム接続情報Ｄ３群から、Ｗｅｂサービス定義あるいはＷｅｂアプリケーション定義に記述されている接続ＩＤをキーにシステム接続情報Ｄ３を特定する（ステップＳ５３０）。アクセス定義情報Ｄ１は、リソースが外部システムではない場合には（ＤＢ９ａ，９ｃなど）、アクセス定義情報Ｄ１内のクエリ定義に記述されているクエリ文、検索パラメータ、主キー及び検索パラメータを用いてデータ保持装置９へリクエストを発行する。また、リソースが外部システムである場合には（外部システム９ｅなど）、データソース−ＩＤマッピング情報Ｄ４内のＷｅｂサービス定義、または、Ｗｅｂアプリケーション定義、これらの定義により特定される接続ＩＤで特定されるシステム接続情報Ｄ３に基づいてデータ保持装置９へリクエストを発行する（ステップＳ５３５）。
【００６２】
続いて、文字コード変換部３１は、文字コードの変換が必要かを判断する（ステップＳ５４０）。これは、現在注目しているデータソースに対応するアクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に文字コード変換が記述されているか、あるいは、現在注目しているデータソースのアクセス定義情報Ｄ１内のデータソース名に対応するデータソース−ＩＤマッピング情報Ｄ４に、文字コード変換ＩＤが記述されているかにより行われる。
【００６３】
文字コード変換が必要な場合（ステップＳ５４０：ＹＥＳ）、文字コード変換部３１は、文字コード変換を実行する（ステップＳ５４５）。つまり、文字コード変換部３１は、現在注目しているデータソースに対応するアクセス定義情報Ｄ１内のデータ編集定義（アクセス後）に記述されている文字コード変換を実行する。あるいは、文字コード変換部３１は、現在注目しているデータソースのアクセス定義情報Ｄ１内のデータソース名に対応するデータソース−ＩＤマッピング情報Ｄ４から文字コード変換ＩＤを読出し、この読み出した文字コード変換ＩＤにより文字変換定義Ｄ５を特定する。文字コード変換部３１は、特定した文字変換定義Ｄ５内の定義に従って文字コード変換を実行する。
【００６４】
さらに、文字コード変換部３１は、リソースは外部システムであり、かつ、プラグインを利用するかを判断する（ステップＳ５５０）。なお、リソースは外部システムであるかは、データソース−ＩＤマッピング情報Ｄ４内のデータソース名−物理リソース名マッピングの記述により判断し、プラグインを利用するかは、データソース−ＩＤマッピング情報Ｄ４内のＷｅｂサービス定義あるいはＷｅｂアプリケーション定義にプラグイン定義が記述されているかにより判断する。リソースが外部システムであり、かつ、プラグインを利用すると判断した場合（ステップＳ５５０：ＹＥＳ）、レスポンスデータをプラグイン定義に記述されているプラグインプログラム３３により編集する（ステップＳ５５５）。
【００６５】
項目アクセス権限チェック部３５は、ユーザＩＤにより特定されるアクセス権限情報Ｄ２内の情報と、アクセス定義情報Ｄ１の包含データソース名内の包含カラム定義、データ編集定義（アクセス前）、データ編集定義（アクセス後）とからアクセス権を確認し、レスポンスデータから参照権限のない項目データを削除する（ステップＳ５６０）。
【００６６】
次に、図１８〜図２１のデータアクセス装置１におけるデータ追加・削除・更新時の処理フローについて説明する。
図１８は、データ追加・削除・更新時の全体フローを示す。
データアクセス装置１の更新インタフェース部１５が、クライアント７からＩＤ／ＰＷが設定されたアクセス制御情報、データアクセスＩＤ、検索条件、追加または更新対象の仮想ビューを受信する。定義情報特定部１２は、受信したデータアクセスＩＤをキーにして記憶部４０内のアクセス定義情報Ｄ１群を検索し、該当するアクセス定義情報Ｄ１を特定する（ステップＳ６１０）。続いて、データアクセス装置１は、図１９に示す更新処理フローを実行する（ステップＳ６１５）。
【００６７】
図１９は、データ追加・削除・更新時の更新処理フローを示す。
データアクセス装置１の定義情報特定部１２は、図１８のステップＳ６１０にて特定したアクセス定義情報Ｄ１内のデータソース名から、アクセスすべきリソースを決定する（ステップＳ７１０）。最初の処理の場合、最初に記述されているデータソース名が選択される。ステップＳ７１０においてアクセスすべきデータソース名が選択されると（ステップＳ７１５：ＮＯ）、図２０に示す更新実行フローを実行する（ステップＳ７２０）。更新実行の結果、エラーが発生しなかった場合は（ステップＳ７２５：ＮＯ）、ステップＳ７１０からの処理を再び実行し、エラーが発生した場合（ステップＳ７２５：ＹＥＳ）、データ変更部３６は、これまでに更新したデータを元に戻すようロールバックし、クライアント７へエラーを返却する（ステップＳ７３０）。
【００６８】
ステップＳ７１０からの処理を繰り返し、アクセス定義情報Ｄ１内の全てのリソースについて更新実行を終えた場合、次にアクセスすべきリソースはないと判断される（ステップＳ７１５：ＹＥＳ）。すると、データ変更部３６は、更新をコミットする（ステップＳ７３５）。
【００６９】
図２０は、ステップＳ７２０におけるデータ追加・削除・更新時の更新実行フローを示す。
更新実行フローにおけるステップＳ８１０〜Ｓ８５５は、図１５に示す参照実行フローのステップＳ３１０〜Ｓ３５５の処理と同様の処理を行う。ただし、名称変換、コード変換、形式変換の対象は、検索条件と、追加あるいは更新を行う仮想ビュー内のデータであるである。アクセス権の確認、名称変換、コード変換、形式変換の実行後、リソースアクセス層３０において、図２１に示すリソースアクセス実施フローを実行する（ステップＳ８６０）。また、ステップＳ８１５においてアクセス権がないと判断した場合、クライアント７へエラーを返却する（ステップＳ８６５）。
【００７０】
図２１は、追加・変更・削除実行時のリソースアクセス実施フローを示す図である。
項目アクセス権限チェック部３５は、ユーザＩＤにより特定されるアクセス権限情報Ｄ２内の情報と、アクセス定義情報Ｄ１の包含データソース名内の包含カラム定義、データ編集定義（アクセス前）、データ編集定義（アクセス後）とから項目単位のアクセス権を確認する（ステップＳ９１０）。なお、アクセス権がない場合（ステップＳ９１５：ＹＥＳ）、クライアント７へエラーを返却する（ステッ９５０）。
【００７１】
一方、アクセス権がある場合（ステップＳ９１５：ＹＥＳ）、必要に応じて文字コードを変換してシステム接続情報Ｄ３から接続情報を取得し、リソースが外部システムの場合にシステム接続情報Ｄ３を特定して接続情報を取得し、データ保持装置９にリクエストを発行するステップＳ９２０〜ステップＳ９４５までの処理は、図１７に示すステップＳ５１０〜ステップＳ５３５までの処理と同様である。ただし、ステップＳ９２５における文字コード変換対象は検索条件及び更新対象のデータである。また、ステップＳ５３５において発行されるリクエストは、追加、更新、削除のためのクエリ文やＨＴＴＰ／ＳＯＡＰであり、このリクエストには、クライアント７から受信した検索条件から抽出した項目名及びそのコード値に対して図２０における変換を行った検索条件と、クライアント７から受信した仮想ビュー内から抽出した更新／追加対象の項目名及びそのコード値に図２０における変換を行った更新／追加対象のデータが含まれる。
【００７２】
次に図２２〜図２９を用いて、データアクセスシステムの具体的な動作例について説明する。
図２２は、データ保持装置９と、データ保持装置９が保持するデータについて示す図である。ここでは、データベースであるＤＢ９ａが、ID、Name、Address、Sex、Birthday、WebIDの項目名からなるレコードで構成されるテーブルＡを保持しており、Ｗｅｂサイトを提供し、ＳＪＩＳを文字コードとして使用する外部システム９ｂが、UseID、Login Countの項目名からなるデータを保持している。
【００７３】
図２３は、想定される動作について説明するための図である。
クライアント７がデータアクセスの利用のために必要なＩＤは「Client1」、ＰＷは「xyzzy」である。クライアント７は、「性別」を検索条件とした場合、氏名、住所、誕生日、WebID、Web利用回数からなる検索結果が期待されるデータアクセスＩＤ「DA001」と、「性別」を「男性」とする検索条件により、データアクセス装置１へ参照リクエストを送信する。
【００７４】
図２４は、アクセス定義情報Ｄ１の設定値を示す図である。
同図に示すアクセス定義情報Ｄ１には、データアクセスＩＤ「DA001」に対応づけて、データソース名「テーブル−Ａ」、「システム−Ｂ」が設定されている。データソース名「テーブル−Ａ」には、データ編集定義（アクセス前）として、名称変換「性別→SEX」、コード値変換「男→M／女→W」が、データ編集定義（アクセス後）として、名称変換「NAME→氏名」、「ADDRESS→住所」、「BIRTHDAY→誕生日」、形式変換「プラグイン・プログラム：birthdayconvert.class」が設定されている。さらに、データソース名「テーブル−Ａ」には、クエリ定義として、クエリ文「SELECT NAME,ADDRESS,BIRTHDAY,WebID FROM テーブルA WHERE SEX=#性別#」、検索パラメータ「入力・SEX→#性別#」が設定されている。
データソース名「システム−Ｂ」には、データ編集定義（アクセス後）として、名称変換「Login Count→Web利用回数」、接続パラメータ「中間ビュー／WebID  →  UserID」が設定されている。
【００７５】
図２５は、アクセス権限情報Ｄ２の設定値を示す図である。
同図においてアクセス権限情報Ｄ２には、ロールID「Client1」に対応して、パスワード「xyzzy」、有効期限「9999/12/31」、リソース/権限「Table A/Read」、「System B/Read」が設定されている。また、リソース/権限「Table A/Read」配下には、さらに、項目/権限「NAME/Read」、「ADDRESS/Read」、「SEX/Read」、「BIRTHDAY/Read」、「WebID/Read」が設定され、リソース/権限「System B/Read」配下には、さらに、項目/権限「Login Count/Read」が設定されている。
【００７６】
図２６は、システム接続情報Ｄ３の設定値を示す図である。
同図において、システム接続情報Ｄ３には、接続ID「System-B」に対応して、URL「http://systemB/get_count」、ポート番号「80」、実行メソッド「GET」、エンコーディングタイプ「SJIS」、コンテントタイプ「text/html」、タイムアウト「60秒」、パラメータ１「UserID」が設定されている。
【００７７】
図２７は、データソース−ＩＤマッピング情報Ｄ４の設定値を示す図である。
同図においてデータソース−ＩＤマッピング情報Ｄ４には、データソースリスト「テーブル−Ａ  ⇔  Table A」、「システム−Ｂ  ⇔  System B」が設定され、データベースリストには、データベース名「Table A」、ＪＮＤＩ名「jndi/connect」が設定され、Ｗｅｂアプリケーションリストには、Ｗｅｂアプリケーション名「System B」、接続ＩＤ「System-B」、リクエスト文字コード変換ＩＤ「Convert B」、プラグイン定義「systemB_Convert.class」が設定されている。
【００７８】
図２８は、文字変換定義Ｄ５の設定値を示す図である。
同図において、文字変換定義Ｄ５には、変換ＩＤ「Convert B」に対応して、変換種別「文字列」、入力文字コード「ＵＴＦ−８」、出力文字コード「ＳＪＩＳ」、ＢＡＳＥ６４エンコード「無し」、ＢＡＳＥ６４デコード「無し」、入力分割種別「無し」が設定されている。
【００７９】
次に、上記の条件の場合でのデータアクセスの具体的な動作について説明する。
（１）クライアント７からの要求：クライアント７は、データアクセス装置１に、認証情報「ID：Client1、PW：xyzzy」と、検索条件「性別＝”男”」、「データアクセスID＝”DA001”」（DA001：氏名、住所、誕生日、WebID、Web利用回数の取得）を参照リクエストとして送信する。データアクセス装置１の参照インタフェース部１１は、クライアント７から送信されたこれらの情報を受信する。
【００８０】
（２）アクセス定義情報の特定：データアクセス装置１の定義情報特定部１２は、データアクセスＩＤ「DA001」をキーにして、図２４に示すアクセス定義情報Ｄ１を特定する。そして、この特定したアクセス定義情報Ｄ１に記述される１番目のリソース「テーブル−Ａ」へのアクセスを始める。
【００８１】
（３）テーブル−Ａへのリクエストについてのアクセス権チェック：データアクセス装置１のデータソースアクセス権限チェック部１３は、クライアント７から受信した認証情報で示されるＩＤ／ＰＷと、アクセス制御情報Ｄ２（図２５）内のロールＩＤ及びパスワードが一致するかにより認証を確認する。さらにデータソースアクセス権限チェック部１３は、アクセス制御情報Ｄ２で示される有効期限より、現在日付が有効期限内であることを確認する。また、データソースアクセス権限チェック部１３は、データソース−ＩＤマッピング情報Ｄ４内のデータソースリストより、「テーブル−Ａ」の実態が「Table A」であることを取得する。データソースアクセス権限チェック部１３は、ロールＩＤ「Client1」、及び、リソース「Table A」に対応したアクセス制御情報Ｄ２内のリソース／権限「Table A/Read」から、「Table A」への読み出し権があることを確認する。
【００８２】
（４）テーブル−Ａのリクエスト変換処理：（２）において特定されたアクセス定義情報Ｄ１（図２４）のデータソース名「テーブル−Ａ」配下のデータ編集定義（アクセス前）の記述にもとづいて、データアクセス装置１の名称変換部２１は名称変換を、コード値変換部２２はコード値変換を実施する。これにより、クライアント７から受信した検索条件の項目名「性別」が「SEX」へ、コード値「男」が「M」へ変換される。なお、データ編集定義（アクセス前）に形式変換は記述されていないため、形式変換部２３における形式変換処理は実行されない。
【００８３】
（５）テーブル−ＡへのＤＢアクセス：データアクセス装置１のデータ参照部３２は、（２）において特定されたアクセス定義情報Ｄ１（図２４）のデータソース名「テーブル−Ａ」配下のクエリ定義の記述に基づき、クエリ文「SELECT NAME,ADDRESS,BIRTHDAY,WebID FROM テーブルA WHERE SEX=#性別#」の検索パラメータ「SEX」の値「#性別#」の部分を、項目「性別」のコード値「男」から変換された「M」に置き換えてデータ保持装置９へ発行する。なお、アクセスのための情報は、データソース−ＩＤマッピング情報Ｄ４（図２７）より取得する。すなわち、データソース−ＩＤマッピング情報Ｄ４内のデータベース名「Table A」内のＪＮＤＩ名「jndi/connect」を用い、このＪＮＤＩ名により特定されるＤＢ９ａへアクセスする。
【００８４】
（６）テーブル−Ａからのレスポンスに対するアクセス権チェック：データアクセス装置１の項目アクセス権限チェック部３５は、（５）で発行したクエリ文に対応したレスポンスをＤＢ９ａから受信すると、アクセス権限情報Ｄ２（図２５）を参照して、このレスポンスの各項目のアクセス権をチェックする。レスポンスには、項目名「NAME」、「ADDRESS」、「SEX」、「BIRTHDAY」、「WebID」と、それぞれのコード値とからなる２レコードが含まれるものとする。項目アクセス権限チェック部３５は、アクセス権限情報Ｄ２内のロールＩＤ「Client1」に対応したリソース「Table A」配下の項目／権限情報から、レスポンスデータ内に含まれる項目「NAME」、「ADDRESS」、「SEX」、「BIRTHDAY」、「WebID」がすべて読み出し可能であることを確認する。
【００８５】
（７）テーブル−Ａからのレスポンスに対する変換処理：（２）において特定されたアクセス定義情報Ｄ１（図２４）のデータソース名「テーブル−Ａ」配下のデータ編集定義（アクセス後）の記述にもとづいて、データアクセス装置１の形式変換部２３は形式変換を、名称変換部２１は名称変換を実施する。これにより、クライアント７から受信したレスポンスの項目名「BIRTHDAY」のコード値のフォーマットが、「プラグイン・プログラム：birthdayconvert.class」を用いて西暦フォーマット「19700101」から和暦フォーマット「昭和45年1月1日」へ、西暦フォーマット「19721231」から和暦フォーマット「昭和47年12月31日」へ変換され、項目名「NAME」が「氏名」へ、項目名「ADDRESS」が「住所」へ、項目名「BIRTHDAY」が「誕生日」へと変換される。なお、データ編集定義（アクセス後）にコード値変換は記述されていないため、コード値変換部２２におけるコード値変換処理は実行されない。
【００８６】
（８）中間ビューの作成：データアクセス装置１の仮想ビュー生成部１４は、変換が行われたレスポンスデータに対応した２レコード分の中間ビューを作成する。図２９は、このとき生成された中間ビューを示す図である。
【００８７】
（９）システム−Ｂへのアクセスを認識：データアクセス装置１の定義情報特定部１２は、（２）において特定したアクセス定義情報Ｄ１（図２４）内のデータソース名「テーブル−Ａ」の次に、データソース名「システム−Ｂ」が記述されているため、システム−Ｂへのアクセスを行う。以下、（１０）〜（１６）の処理が、中間ビュー（図２９）内のレコード数である、２回実施される。
【００８８】
（１０）システム−Ｂへのアクセス権チェック：データアクセス装置１のデータソースアクセス権限チェック部１３は、データソース−ＩＤマッピング情報Ｄ４（図２７）内のデータソースリストより、「システム−Ｂ」の実態が「System B」であることを取得する。データソースアクセス権限チェック部１３は、ロールＩＤ「Client1」、及び、リソース「System B」に対応したアクセス制御情報Ｄ２（図２５）内のリソース／権限「System B/Read」から、「System B」へのリ読み出し権があることを確認する。
【００８９】
（１１）外部システム９ｂへのリクエストについての文字コード変換：（２）において特定されたアクセス定義情報Ｄ１（図２４）のデータソース名「システム−Ｂ」配下にはデータ編集定義（アクセス前）が記述されてないため、名称変換、コード値変換、形式変換は実行されない。文字コード変換部３１は、データソース−ＩＤマッピング情報Ｄ４（図２７）内のWebアプリケーション名「System B」配下に、リクエスト文字コード変換ＩＤ「Convert B」が記述されているため、この変換ＩＤにより特定される文字変換定義Ｄ５（図２８）の記述内容に従って、変換種別「文字列」を出力文字コード「ＳＪＩＳ」に変換する。
【００９０】
（１２）リクエストのためのシステム−Ｂへのアクセス：データアクセス装置１のデータ参照部３２は、データソース−ＩＤマッピング情報Ｄ４（図２７）内のWebアプリケーション名「System B」配下の接続ＩＤ「System-B」を取得し、この接続ＩＤによりシステム接続情報Ｄ３であるＨＴＴＰアダプタ接続情報（図２６）を特定する。そして、この特定したＨＴＴＰアダプタ接続情報で示される接続情報を用いて外部システム９ｂへ接続する。なお、この接続パラメータとなる「UserID」（D）には、アクセス定義情報Ｄ１（図２４）内のデータソース名「システム−Ｂ」の接続パラメータに記述されているように、中間ビュー内にテーブル−Ａの結果から得た結果として記述されている項目「WebID」のコード値を当てはめて、ＨＴＴＰリクエストを発行する。
【００９１】
（１３）システム−Ｂからのレスポンスのプラグインプログラムによる取得：データアクセス装置１のデータ参照部３２は、データソース−ＩＤマッピング情報Ｄ４（図２７）内のWebアプリケーション名「System B」配下のプラグイン定義「systemB_Convert.class」のプログラムを読み出して実行し、システム−Ｂ（外部システム９ｂ）からのレスポンスとして項目「Login Count」のコード値を取得する。
【００９２】
（１４）システム−Ｂのレスポンスに対するアクセス権チェック：データアクセス装置１の項目アクセス権限チェック部３５は、（１３）で取得したレスポンスの各項目のアクセス権をチェックする。項目アクセス権限チェック部３５は、アクセス権限情報Ｄ２（図２５）内のロールＩＤ「Client1」に対応したリソース「System B」配下の項目／権限情報から、レスポンスデータ内に含まれる項目「Login Count」が読み出し可能であることを確認する。
【００９３】
（１５）システム−Ｂからのレスポンスに対する変換処理：（２）において特定されたアクセス定義情報Ｄ１（図２４）のデータソース名「システム−Ｂ」配下のデータ編集定義（アクセス後）の記述にもとづいて、名称変換部２１は名称変換を実施する。これにより、クライアント７から受信したレスポンスの項目名「Login Count」が「Web利用回数」へと変換される。なお、コード値変換及び形式変換は記述されていないため、コード値変換部２２におけるコード値換処理、形式変換部２３における形式変換処理は実行されない。
【００９４】
（１６）システム−Ｂからのレスポンスのバッファリング：データアクセス装置１の仮想ビュー生成部１４は、（１５）においてデータ変換を行ったレスポンス値を内部のメモリにバッファリングする。
【００９５】
（１７）仮想ビュー作成：データアクセス装置１の仮想ビュー生成部１４は、（８）において作成した中間ビューと、（１６）において、中間ビューのレコード数だけ受信したレスポンスのバッファデータをマージして、新たな中間データを生成する。アクセス定義情報Ｄ１（図２４）内には、次にアクセスすべきデータソースが記述されていないため、参照インタフェース部１１は、この新たに生成した中間ビューを仮想ビューとして返却する。仮想ビューは、図２３に記載されている期待結果となる。
【００９６】
上記実施の形態のデータアクセス装置１の特徴は以下のようになる。
すなわち、様々なデータベースやウェブシステムへのアクセスを隠蔽し、統一されたＩ／Ｆでのデータ検索・更新機能を提供する。クライアントとのデータの授受は仮想的なレコードセットである仮想ビューで統一される。
また、Ｉ／Ｆが統一されているので、本データアクセス装置を利用するクライアントは、実際にアクセスするデータソースの種類や一度に操作可能なデータの範囲を意識する必要はない。
また、データアクセスの実行時の振る舞いについては、外部定義体に記述し、これに基づき制御される。このため、プログラムに修正を加えることなく検索項目などを変更できる。
また、クライアントが利用する際の、パラメータの名前や型の差異はデータアクセスの定義によって吸収する。データアクセスの定義は複数のクライアントで共有できる。
また、データアクセスは、名称変換、コード値変換、形式変換の各種変換機能を持ち、上記機能を実現している。
また、データアクセスの実行およびアクセスする項目毎に、呼び出し元のシステムや職責に基づいたアクセス制御が可能である。
また、データアクセスはプラグインの機構を持ち、既存にない機能拡張が可能となっている。形式変換機能、データ参照機能（外部システムアクセス時）がこのプラグインに対応する。
【００９７】
なお、上述のデータアクセス装置１、クライアント７、データ保持装置９は、内部にコンピュータシステムを有している。そして、データアクセス装置１、クライアント７、データ保持装置９の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
【００９８】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【００９９】
【図１】本発明の一実施の形態によるデータアクセスシステムの全体構成図である。
【図２】同実施の形態による仮想ビューの概念について説明する図である。
【図３】同実施の形態によるデータアクセス装置のデータ参照アーキテクチャを示す図である。
【図４】同実施の形態によるデータアクセス装置のデータ更新アーキテクチャを示す図である。
【図５】同実施の形態によるデータアクセス装置からのデータ参照動作における仮想ビューの構築方法を示す図である。
【図６】同実施の形態によるデータ変換層で行われる変換処理について説明するための図である。
【図７】同実施の形態によるアクセス定義情報の記述内容を示す図である。
【図８】同実施の形態によるアクセス権限情報の記述内容を示す図である。
【図９】同実施の形態によるＨＴＴＰアダプタ接続情報の記述内容を示す図である。
【図１０】同実施の形態によるＳＯＡＰアダプタ接続情報の記述内容を示す図である。
【図１１】同実施の形態によるデータソース−ＩＤマッピング情報の記述内容を示す図である。
【図１２】同実施の形態による文字変換定義情報の記述内容を示す図である。
【図１３】同実施の形態によるデータ参照時の全体フローを示す図である。
【図１４】同実施の形態によるデータ参照時の仮想ビュー作成フローを示す図である。
【図１５】同実施の形態によるデータ参照時の参照実行フローを示す図である。
【図１６】同実施の形態によるデータ参照時の参照実行フローを示す図である。
【図１７】同実施の形態によるデータ参照時のリソースアクセス実施フローを示す図である。
【図１８】同実施の形態によるデータ追加・削除・更新時の全体フローを示す図である。
【図１９】同実施の形態によるデータ追加・削除・更新時の更新処理フローを示す図である。
【図２０】同実施の形態によるデータ追加・削除・更新時の更新実行フローを示すである。
【図２１】同実施の形態による追加・変更・削除実行時のリソースアクセス実施フローを示す図である。
【図２２】同実施の形態によるデータ保持装置と、データ保持装置が保持するデータについて示す図である。
【図２３】実施の形態によるデータアクセスシステムにおいて想定される動作について説明するための図である。
【図２４】同実施の形態によるアクセス定義情報の設定値を示す図である。
【図２５】同実施の形態によるアクセス権限情報の設定値を示す図である。
【図２６】同実施の形態によるシステム接続情報の設定値を示す図である。
【図２７】同実施の形態によるデータソース−ＩＤマッピング情報の設定値を示す図である。
【図２８】同実施の形態による文字変換定義の設定値を示す図である。
【図２９】同実施の形態による中間ビューを示す図である。
【符号の説明】
【０１００】
１…データアクセス装置
１０…Ｉ／Ｆ層
１１…参照インタフェース部
１２…定義情報特定部
１３…データソースアクセス権限チェック部
１４…仮想ビュー生成部
１５…更新インタフェース部
２０…データ変換層
２１…名称変換部
２２…コード値変換部
２３…形式変換部
２４、３３…プラグインプログラム
３０…リソースアクセス層
３１…文字コード変換部
３２…データ参照部
３５…項目アクセス権限チェック部
３６…データ変更部
７…クライアント
９…データ保持装置
９ａ、９ｃ…ＤＢ（データベース）
９ｂ、９ｅ…外部システム
【図１】
2008165447.tif 000003
【図２】
2008165447.tif 000004
【図３】
2008165447.tif 000005
【図４】
2008165447.tif 000006
【図５】
2008165447.tif 000007
【図６】
2008165447.tif 000008
【図７】
2008165447.tif 000009
【図８】
2008165447.tif 000010
【図９】
2008165447.tif 000011
【図１０】
2008165447.tif 000012
【図１１】
2008165447.tif 000013
【図１２】
2008165447.tif 000014
【図１３】
2008165447.tif 000015
【図１４】
2008165447.tif 000016
【図１５】
2008165447.tif 000017
【図１６】
2008165447.tif 000018
【図１７】
2008165447.tif 000019
【図１８】
2008165447.tif 000020
【図１９】
2008165447.tif 000021
【図２０】
2008165447.tif 000022
【図２１】
2008165447.tif 000023
【図２２】
2008165447.tif 000024
【図２３】
2008165447.tif 000025
【図２４】
2008165447.tif 000026
【図２５】
2008165447.tif 000027
【図２６】
2008165447.tif 000028
【図２７】
2008165447.tif 000029
【図２８】
2008165447.tif 000030
【図２９】
2008165447.tif 000031