JP2008165447A - データアクセス装置、データアクセス方法、及び、コンピュータプログラム - Google Patents
データアクセス装置、データアクセス方法、及び、コンピュータプログラム Download PDFInfo
- Publication number
- JP2008165447A JP2008165447A JP2006353499A JP2006353499A JP2008165447A JP 2008165447 A JP2008165447 A JP 2008165447A JP 2006353499 A JP2006353499 A JP 2006353499A JP 2006353499 A JP2006353499 A JP 2006353499A JP 2008165447 A JP2008165447 A JP 2008165447A
- Authority
- JP
- Japan
- Prior art keywords
- data
- access
- information
- data source
- definition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】クライアントにDBの種類及び場所、DB内のデータ構成を隠蔽しながら、1度のクライアントからのリクエストにより複数のDBやテーブルにアクセスしてデータの操作を行う。
【解決手段】複数のDBや外部システムへのデータアクセスに際してクライアント7とのデータのやりとりを、共通データ構造である仮想ビューをインタフェースとして行うデータアクセス装置1は、外部定義体データを内部に保持し、クライアント7からのデータ参照命令を受信した場合は、外部定義体データを参照して、アクセス先のデータソースに合わせた名称、コード値、形式を変換し、定義体のデータソースと実データソースとのマッピングの情報に基づくデータソースへアクセスし、アクセスした結果に対して仮想ビューを作成するためにデータ変換することを、複数のデータソースについて順次行い、その参照結果をクライアント7へ仮想ビューとして表示させる。
【選択図】図1
【解決手段】複数のDBや外部システムへのデータアクセスに際してクライアント7とのデータのやりとりを、共通データ構造である仮想ビューをインタフェースとして行うデータアクセス装置1は、外部定義体データを内部に保持し、クライアント7からのデータ参照命令を受信した場合は、外部定義体データを参照して、アクセス先のデータソースに合わせた名称、コード値、形式を変換し、定義体のデータソースと実データソースとのマッピングの情報に基づくデータソースへアクセスし、アクセスした結果に対して仮想ビューを作成するためにデータ変換することを、複数のデータソースについて順次行い、その参照結果をクライアント7へ仮想ビューとして表示させる。
【選択図】図1
Description
本発明は、データアクセス装置、データアクセス方法、及び、コンピュータプログラムに関する。
データベース(以下、「DB」と記載)を利用するアプリケーションでは、データアクセスインタフェースを利用して直接DBにアクセスし、DB内のデータを利用する。例えば、Java(登録商標)アプリケーションでは、JDBC(Java(登録商標) Database Connectivity)/SQL(StructuredQuery Language)文などのデータアクセスインタフェースを利用し、いわゆるCRUD操作(Create、Read、Update、Delete)を行う。
一方、特許文献1には、データベースの位置や種類によりデータベースに自動アクセスし、データベースのインタフェースに合わせた命令に変換してデータベース毎のインタフェースの違いを吸収する技術が記載されている。
特開平10−49539号公報
一方、特許文献1には、データベースの位置や種類によりデータベースに自動アクセスし、データベースのインタフェースに合わせた命令に変換してデータベース毎のインタフェースの違いを吸収する技術が記載されている。
上述した従来の技術によれば、DBを利用するアプリケーションでは、DBの場所、DB内の存在するテーブル名やView(ビュー)名、項目名をはじめとする各種データ構成に関する情報を用いて、DBへのアクセスが直接プログラム内に記述される。従って、DBを利用するアプリケーション側で、これらのデータ構成に関する情報を知っておき、それらを意識したコーディングを行う必要がある。そのため、DBの項目名の変更や、テーブル等構成の変更は、それらを利用するSQL文などに影響を及ぼし、場合によっては、アプリケーションにまで影響が及んでプログラムの改修が必要となる場合もある。
特許文献1の技術では、データベース毎に異なるインタフェースによりデータアクセスの命令文をアプリケーションに記述しなければならないという問題を解決することが可能である。しかし、アクセスするデータベースを先に選択し、選択したデータベースに対応したインタフェース統一手段においてインタフェースを変換する構成となっており、一度に複数のデータベースにアクセスすることはできない。よって、アプリケーション側で1回にアクセス可能なデータを意識してコーディングする必要があった。
特許文献1の技術では、データベース毎に異なるインタフェースによりデータアクセスの命令文をアプリケーションに記述しなければならないという問題を解決することが可能である。しかし、アクセスするデータベースを先に選択し、選択したデータベースに対応したインタフェース統一手段においてインタフェースを変換する構成となっており、一度に複数のデータベースにアクセスすることはできない。よって、アプリケーション側で1回にアクセス可能なデータを意識してコーディングする必要があった。
本発明は、このような事情に鑑みてなされたものであり、クライアントにDBの種類及び場所、DB内のデータ構成を隠蔽しながら、1度のクライアントからのリクエストにより複数のDBやテーブルにアクセスしてデータの操作を行うことのできるデータアクセスシステム、データアクセス方法、及び、コンピュータプログラムを提供することをその目的とする。
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、データアクセスIDと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部と、前記参照受付部により受信した参照リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部と、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部と、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、2回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部と、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部と、を備えることを特徴とするデータアクセス装置である。
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、データアクセスIDと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部と、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部と、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部と、を備えることを特徴とするデータアクセス装置である。
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記外部定義体データは、さらに、各ユーザ毎のデータソース内の各項目へのアクセス権を示すアクセス権限情報からなり、前記データ参照部による参照に対応して前記データ保持装置から受信したレスポンスと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報内に示されるデータソース内の各項目へのアクセス権とを照合して、アクセス権がある場合に、前記クライアントへの当該項目の参照を許可する項目アクセス権限チェック部とをさらに備える、ことを特徴とする。
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記外部定義体データは、さらに、各ユーザ毎のデータソースへのアクセス権を示すアクセス権限情報からなり、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報に示されるデータソースへのアクセス権とを照合して、アクセス権がある場合に、当該データソースへのアクセスを許可するデータソースアクセス権限チェック部とをさらに備える、ことを特徴とする。
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記アクセス定義情報は、さらに、データ項目の項目名、コード値、コード値のデータ形式のうち1以上の変換ルールを保持し、前記アクセス定義情報内の変換ルールに従って、前記データ保持装置へアクセスする時のデータ、または、前記データ保持装置から受信したレスポンス内のデータの項目名、コード値、コード値のデータ形式の変換を行うデータ変換部をさらに備え、前記データ変換部は、データ形式の変換ルールにプラグインプログラムが記述されている場合、当該プラグインプログラムを実行することによりコード値の形式変換を行う、ことを特徴とする。
上記課題を解決するために、本発明は、上述するデータアクセス装置であって、前記外部定義体データは、さらに、外部システムに対応した文字コード変換ルールを示す文字変換定義からなり、前記文字変換定義内の変換ルールに従って、前記データ保持装置へ送信するデータ、または、前記データ保持装置から受信したレスポンスの文字コード変換を行う文字コード変換部をさらに備える、ことを特徴とする。
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、前記データアクセス装置は、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、参照受付部が、データアクセスIDと、参照の検索条件とを含む参照リクエストをクライアントから受信し、定義情報特定部が、前記参照受付部により受信した参照リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定し、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、データ参照部が、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行い、仮想ビュー生成部が、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、2回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成することを繰り返し、仮想ビュー返却部が、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する、ことを特徴とするデータアクセス方法である。
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、前記データアクセス装置は、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、更新インタフェース部が、データアクセスIDと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信し、定義情報特定部が、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定し、データ更新部が、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行う、ことを特徴とするデータアクセス方法である。
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、データアクセスIDと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部、前記参照受付部により受信した参照リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、2回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部、として機能させることを特徴とするコンピュータプログラムである。
上記課題を解決するために、本発明は、データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、データアクセスIDと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部、として機能させることを特徴とするコンピュータプログラムである。
本発明によれば、データアクセス装置は、クライアントへデータソースの情報を隠蔽しながら、クライアントからの1度のリクエストにより、複数のデータ保持装置、あるいは、複数のデータ保持装置内のテーブルにアクセスしてデータの操作を行うことが可能となる。これにより、クライアントはデータソースの実体情報を意識する必要がなく、それらが変更されたとしても、外部定義体の編集のみを行えばよいため、クライアントプログラムの変更等を行う必要がない。
また、データアクセス装置とデータ保持装置間でデータを連携する際には、データアクセス装置にて各種変換機能が実行され、各データ保持装置間の名称の違い、コード体系、データフォーマットを吸収することができる。データベースにある項目名や構成にクライアントが合わせるのではなく、データアクセス装置において合わせることで、クライアントの負荷を軽減することが可能となる。
さらには、データアクセス装置により、データ操作はデータソース及び項目毎に厳格に管理され、セキュリティの高い利用が可能である。
また、データアクセス装置とデータ保持装置間でデータを連携する際には、データアクセス装置にて各種変換機能が実行され、各データ保持装置間の名称の違い、コード体系、データフォーマットを吸収することができる。データベースにある項目名や構成にクライアントが合わせるのではなく、データアクセス装置において合わせることで、クライアントの負荷を軽減することが可能となる。
さらには、データアクセス装置により、データ操作はデータソース及び項目毎に厳格に管理され、セキュリティの高い利用が可能である。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本発明の一実施の形態によるデータアクセスシステムの全体構成図である。データアクセス装置1は、クライアント7及び複数のデータ保持装置9とネットワークを介して接続される。同図において、データ保持装置9として、テーブルA及びテーブルBを記憶するデータベース(以下、単に「DB」と記載)9a、テーブルCを記憶するDB9c、外部システム9eがある。
図1は、本発明の一実施の形態によるデータアクセスシステムの全体構成図である。データアクセス装置1は、クライアント7及び複数のデータ保持装置9とネットワークを介して接続される。同図において、データ保持装置9として、テーブルA及びテーブルBを記憶するデータベース(以下、単に「DB」と記載)9a、テーブルCを記憶するDB9c、外部システム9eがある。
本実施の形態では、データアクセス装置1の提供するデータアクセス機能は、複数のデータソース、すなわち、データ保持装置9をクライアント7から隠蔽し、統一されたインタフェースによりデータのCRUD(Create(追加)、Read(読出)、Update(更新)、Delete(削除))操作を提供する。詳細には、データソースからレコードを検索し、検索結果を返すデータ参照アーキテクチャと、データソースへのレコードの追加、レコードの更新および削除を行うデータ更新アーキテクチャとを提供する。また、このデータソースとは、所謂DB(単独のもの)や、(物理的に)異なる複数のDB(例えば、DB1a及び1c)を含む。また、このデータアクセス機能では、外部システム9eなどのように、JDBCインタフェースを持たない外部システムについても、データベースリソースとして活用することができる。この際の外部システムへのプロトコルは、HTTP(Hypertext Transfer Protocol)やSOAP(Simple Object Access Protocol)が用いられる。
また、クライアント7へのデータは「仮想ビュー(View)」という概念により提供される。これは、従来のDBにおけるビューに近いものであるが、大きな違いは物理的に異なるDBや、DB内の異なるテーブル、外部システムから取得したデータを含むことである。
データアクセス装置1は、さらに、複数のデータ保持装置9へのアクセスのため、いくつかの変換機能を持つ。具体的には、項目名変換、コード値変換、文字コード変換、プラグイン機能を利用したフォーマット変換(型変換含む)である。
加えて、本実施の形態のデータアクセス装置1は、アクセス制御機能を有しており、利用者、すなわちクライアント7やそのユーザごとに、仮想ビュー単位、また、項目単位でのアクセス許可/不許可の制御機能が可能となっている。
データアクセス装置1は、さらに、複数のデータ保持装置9へのアクセスのため、いくつかの変換機能を持つ。具体的には、項目名変換、コード値変換、文字コード変換、プラグイン機能を利用したフォーマット変換(型変換含む)である。
加えて、本実施の形態のデータアクセス装置1は、アクセス制御機能を有しており、利用者、すなわちクライアント7やそのユーザごとに、仮想ビュー単位、また、項目単位でのアクセス許可/不許可の制御機能が可能となっている。
同図に示すデータアクセス装置1は、例えば、サーバなどのコンピュータ装置で実現することができ、データ参照に関する機能を実現するアーキテクチャであるデータ参照アーキテクチャ、データ更新に関する機能を実現するアーキテクチャデータである更新アーキテクチャ、及び、各種データを記憶する記憶部40を有する。これらのアーキテクチャは、I/F(インタフェース)層10、データ変換層20、リソースアクセス層30に論理的に分割される。
I/F層10は、サービスに公開するインタフェースを実現する層であり、アクセス定義の特定、データソースへのアクセス権限判定、および仮想ビューの構築及び分解を実現する。データ変換層20は、項目単位の各種変換を実現する層であり、形式変換、名称変換、コード値変換を実現する。リソースアクセス層30は、データソースへのアクセスを実現する層であり、データソースアクセス、項目マスキング、文字コード変換を実現する。記憶部40は、各層の機能を実行するために用いられる情報を、外部定義体と呼ばれる外部ファイルとして保持する。
クライアント7は、パーソナルコンピュータや各種システムの操作端末などのコンピュータ装置である。クライアント7は、データベースの操作(追加、更新、削除、参照)にあたり、データアクセス装置1に対して、アクセス制御情報、データアクセスID、検索条件を送信し、追加・更新の場合はさらにその追加・更新すべきデータを示す仮想ビューを送信する。アクセス制御情報とは、データアクセス機能を利用する際の認証情報、具体的にはユーザを特定する識別情報であるIDと、パスワード(以下、「PW」と記載)とを含んでいる。この認証情報内のIDを元にして、データアクセス装置1にてアクセス制限が実行される。また、データアクセスIDは、データアクセスの外部定義体を特定する識別情報であり、どのようなデータ項目からなるテーブルを用いてデータ保持装置9にアクセスするか、どのようデータ項目からなるデータをデータ保持装置9から取得するかを特定する。一つのデータアクセスIDに対応するこれらのデータ項目は、同一または異なるデータ保持装置9内の同一または異なるテーブルに保持されるデータであるか、そのデータの名称変換、コード値変換、形式変換等を行ったものに対応する。
また、クライアント7が、参照のデータベース操作を行う場合は、データアクセス装置1から仮想ビュー形式でアクセス結果が返却される。なお、追加、更新、削除のデータベース操作を行った場合であっても、処理失敗などの場合には例外が返却される。
また、クライアント7が、参照のデータベース操作を行う場合は、データアクセス装置1から仮想ビュー形式でアクセス結果が返却される。なお、追加、更新、削除のデータベース操作を行った場合であっても、処理失敗などの場合には例外が返却される。
図2は、仮想ビューの概念について説明する図である。クライアント7がデータの参照を指示した場合、データアクセス装置1は、仮想ビュー形式によりアクセス結果を返却する。仮想ビューは、Java(登録商標)のMap形式でデータを保持しており、クライアント7内に実装されているプログラムは、そのままの形で当該プログラム中での利用が可能である。また、仮想ビューをXML(extensiblemarkup language)形式に変換し、出力することが可能となっている。
図3は、データアクセス装置1のデータ参照アーキテクチャを示す図である。
データ参照アーキテクチャにおいて、I/F層10は、参照インタフェース部11、定義情報特定部12、データソースアクセス権限チェック部13、及び、仮想ビュー生成部14からなり、データ変換層20は、名称変換部21、コード値変換部22、及び、形式変換部23からなり、リソースアクセス層30は、文字コード変換部31、データ参照部32、項目アクセス権限チェック部35からなる。
データ参照アーキテクチャにおいて、I/F層10は、参照インタフェース部11、定義情報特定部12、データソースアクセス権限チェック部13、及び、仮想ビュー生成部14からなり、データ変換層20は、名称変換部21、コード値変換部22、及び、形式変換部23からなり、リソースアクセス層30は、文字コード変換部31、データ参照部32、項目アクセス権限チェック部35からなる。
参照インタフェース部11(参照受付部、仮想ビュー返却部)は、参照に関するインタフェースをクライアント7へ公開する。
定義情報特定部12は、クライアント7から受信したデータアクセスIDに該当する「アクセス定義情報」を特定する。
データソースアクセス権限チェック部13は、データソース、およびその各項目へのアクセス権限の情報を示すデータである「アクセス権限情報」から、呼び出し時のクライアント引数であるシステムID、職責情報を基に、「アクセス定義情報」に設定されているデータソース(複数)への参照アクセス権チェックを行う。
仮想ビュー生成部14は、取得、および各種変換を行ったデータソース(複数)のデータを結合し、仮想ビューを生成する。
定義情報特定部12は、クライアント7から受信したデータアクセスIDに該当する「アクセス定義情報」を特定する。
データソースアクセス権限チェック部13は、データソース、およびその各項目へのアクセス権限の情報を示すデータである「アクセス権限情報」から、呼び出し時のクライアント引数であるシステムID、職責情報を基に、「アクセス定義情報」に設定されているデータソース(複数)への参照アクセス権チェックを行う。
仮想ビュー生成部14は、取得、および各種変換を行ったデータソース(複数)のデータを結合し、仮想ビューを生成する。
名称変換部21は、項目の名称を変換する。変換の定義については「アクセス定義情報」に記載されている。
コード値変換部22は、コード値を変換する。例えば、システムAに用いられるコード値「性別:男・女」を、システムBに用いられるコード値「SEX:M・W」に変換する。変換の定義については「アクセス定義情報」に記載されている。
形式変換部23は、項目の形式を変換する。例えば、型「Integer」を型「String」に、型「String」を型「Date」に、あるいは、和暦のフォーマットを西暦のフォーマットに変換する。変換の際にはプラグインプログラム24を参照する場合がある。利用するプラグインプログラム24については、「アクセス定義情報」に記載されている。
コード値変換部22は、コード値を変換する。例えば、システムAに用いられるコード値「性別:男・女」を、システムBに用いられるコード値「SEX:M・W」に変換する。変換の定義については「アクセス定義情報」に記載されている。
形式変換部23は、項目の形式を変換する。例えば、型「Integer」を型「String」に、型「String」を型「Date」に、あるいは、和暦のフォーマットを西暦のフォーマットに変換する。変換の際にはプラグインプログラム24を参照する場合がある。利用するプラグインプログラム24については、「アクセス定義情報」に記載されている。
文字コード変換部31は、アクセス対象のデータソースが外部システム、かつ文字コードを変換する必要がある場合のみ、文字コードの変換を行う。文字コード変換のルールは「文字変換定義」に記載されている。
データ参照部32は、「アクセス定義情報」に設定されているデータソース(複数)のデータを参照する。テーブルの接続情報(JDBC)や外部システムの情報は、「データソース−IDマッピング情報」に記載されている。外部システムに接続をする際には、「システム接続情報」を参照し、URLやID、PW情報を取得する。外部システムの応答結果を適切な形式に変換するために、プラグインプログラムが利用される。利用されるプラグインについては、「データソース−IDマッピング情報」に記載されている。
項目アクセス権限チェック部35は、「アクセス権限情報」から、システムID、職責情報を基に、アクセス定義情報に設定されているデータソース(複数)の各項目への参照アクセス権チェック(マスキング)を行う。
データ参照部32は、「アクセス定義情報」に設定されているデータソース(複数)のデータを参照する。テーブルの接続情報(JDBC)や外部システムの情報は、「データソース−IDマッピング情報」に記載されている。外部システムに接続をする際には、「システム接続情報」を参照し、URLやID、PW情報を取得する。外部システムの応答結果を適切な形式に変換するために、プラグインプログラムが利用される。利用されるプラグインについては、「データソース−IDマッピング情報」に記載されている。
項目アクセス権限チェック部35は、「アクセス権限情報」から、システムID、職責情報を基に、アクセス定義情報に設定されているデータソース(複数)の各項目への参照アクセス権チェック(マスキング)を行う。
図4は、データアクセス装置1のデータ更新アーキテクチャを示す図である。ここでは、図3と同様の機能部については同様の符号を付し、説明を省略する。
データ更新アーキテクチャにおいて、I/F層10は、更新インタフェース部15、定義情報特定部12、及び、データソースアクセス権限チェック部13からなり、データ変換層20は、名称変換部21、コード値変換部22及び形式変換部23からなり、リソースアクセス層30は、項目アクセス権限チェック部35、文字コード変換部31、及び、データ変更部36からなる。
更新インタフェース部15は、追加/更新/削除に関するインタフェースを公開する。データ変更部36は、アクセス定義情報に設定されているデータソースのデータを更新する。なお、データ更新アーキテクチャにおいては、文字コード変換部31の処理の前に項目アクセス権限チェック部35の処理を行う。
データ更新アーキテクチャにおいて、I/F層10は、更新インタフェース部15、定義情報特定部12、及び、データソースアクセス権限チェック部13からなり、データ変換層20は、名称変換部21、コード値変換部22及び形式変換部23からなり、リソースアクセス層30は、項目アクセス権限チェック部35、文字コード変換部31、及び、データ変更部36からなる。
更新インタフェース部15は、追加/更新/削除に関するインタフェースを公開する。データ変更部36は、アクセス定義情報に設定されているデータソースのデータを更新する。なお、データ更新アーキテクチャにおいては、文字コード変換部31の処理の前に項目アクセス権限チェック部35の処理を行う。
図5は、データアクセス装置1からのデータ参照動作における仮想ビューの構築方法を示す図である。詳細な動作は、図14の仮想ビュー作成フローにて後述するが、ここでは、概念的な流れを説明する。
アクセスする複数のデータソース(DB内のテーブル、または、外部システム)のうち、最初に取得したデータソースの参照結果を基に、後続のデータソースのデータを取得して実行結果をマージし、中間データを作成する。各データソースからデータを取得した際には、項目のマスキングと文字コード変換(外部システムの場合のみ)を行う。なお、データアクセスでは、リソース単位のアクセスをシーケンスと呼んでいる。
アクセスする複数のデータソース(DB内のテーブル、または、外部システム)のうち、最初に取得したデータソースの参照結果を基に、後続のデータソースのデータを取得して実行結果をマージし、中間データを作成する。各データソースからデータを取得した際には、項目のマスキングと文字コード変換(外部システムの場合のみ)を行う。なお、データアクセスでは、リソース単位のアクセスをシーケンスと呼んでいる。
データ参照部32は、クライアント7から取得した検索条件をキーにしてデータ保持装置9のあるデータソースにアクセスして参照を行った結果、1以上のカラムからなる1以上のレコードを取得すると、この取得したレコードからなる中間データを生成する。さらに、データ参照部32は、この中間データを構成する各レコード毎に、当該レコード内のカラムの値をキーにして、データ保持装置9のデータソースにアクセスして参照を行った結果、それぞれのレコードについて1以上のレコードを取得したとする。この場合、データ参照部32は、他のデータソースにアクセスするキーとなったカラムの値が含まれるレコードを、当該レコード内のカラムの値をキーにして取得したレコードそれぞれ付加したレコードからなる中間データを生成する。
同図を用いて具体的な例を説明する。先ず最初に、データ参照部32は、DB9aにアクセスして参照を行った結果、カラムA、カラムB、カラムCの値からなる3つのレコードR1,R2,R3を取得し、この3つのレコードR1,R2、R3からなる中間データを生成する。さらに、データ参照部32は、この中間データを構成する各レコードR1,R2,R3について、レコード内のカラムの値をキーにしてDB9aのテーブルBにアクセスして参照を行う。つまり、データ参照部32は、3回のアクセスを行うことになる。その結果、中間ビュー内の各レコードそれぞれについて3つのレコードからなるレスポンスを取得したとする。レコードR1内のカラムの値をキーにしたときに取得したレコードをr11、r12、r13、レコードR2内のカラムの値をキーにしたときに取得したレコードをr21、r22、r23、レコードR3内のカラムの値をキーにしたときに取得したレコードをr31、r32、r33とする。仮想View生成部生成部14は、レコードR1内のカラムの値をキーにして取得したレコードr11,r12,r13それぞれにレコードR1を付加したレコードR11、R12,R13、レコードR2内のカラムの値をキーにして取得したレコードr21,r22,r23それぞれにレコードR2を付加したレコードR21、R22,R23、レコードR3内のカラムの値をキーにして取得したレコードr31,r32,r33それぞれにレコードR3を付加したレコードR31、R32,R33からなる中間データを生成する。そして、さらに他のデータソースにアクセスする場合、データ参照部32は、各レコードR11、R12,R13、R21、R22,R23、R31、R32,R33それぞれについて、レコード内から取得したカラムの値をキーにして参照を行う。つまり、9回のアクセスを行うことになる。
図6は、データ変換層20で行われる変換処理について説明するための図である。詳細な動作は、図15、図16の参照実行フローにて後述するが、ここでは、データ変換層20で行われる変換処理の説明を、具体例を用いて説明する。
テーブルAは、とある住所録テーブルを現している。表組み一行目の「ID」,「NAME」」,「ADDRESS」,「SEX」,「BIRTHDAY」は項目名を示しており、その以降の行は当該項目の値からなるレコード(テーブルAのデータ)である。
テーブルAは、とある住所録テーブルを現している。表組み一行目の「ID」,「NAME」」,「ADDRESS」,「SEX」,「BIRTHDAY」は項目名を示しており、その以降の行は当該項目の値からなるレコード(テーブルAのデータ)である。
このとき、データアクセス装置1は、クライアント9から「誕生日=”昭和45年1月1日”」の検索条件でデータを参照する要求を受信する(ステップS1)。データアクセス装置1の名称変換部21は、項目名「誕生日」を「BIRTHDAY」に変換する名称変換を行い、形式変換部23は、和暦と西暦のフォーマットとを相互に変換するプラグインプログラム24を呼び出して実行し、和暦フォーマット「昭和45年1月1日」を西暦フォーマット「19700101」に変換する(ステップS2)。リソースアクセス層30は、この変換後の項目名及びコード値を用いた条件により、データ保持装置9にアクセスし、実際のテーブルを検索する(ステップS3)。そして、リソースアクセス層30は、検索の結果、データ保持装置9からレスポンス「NAME=“出田 一郎”,SEX=“M”」を取得する(ステップS4)。このレスポンスの項目名は、名称変換部21により項目名「NAME」から項目名「氏名」へ、項目名「SEX」から項目名「性別」へと変換される。さらに、コード値変換部22により、項目「SEX」のコード値「M」はコード値「男」へと変換される(ステップS5)。データアクセス装置1は、この変換後のデータを、実行結果としてクライアント9に返送する(ステップS6)。
次に、データアクセス装置1の記憶部40が記憶する外部定義体について説明する。外部定義体には、アクセス定義情報D1、アクセス権限情報D2、システム接続情報D3、データソース−IDマッピング情報D4、及び、文字変換定義D5がある。
アクセス定義情報D1は、データアクセスIDをキーとした、検索条件、変換情報(形式変換、コード値変換、名称変換)の情報を示す。アクセス権限情報D2は、データソース、およびその各項目へのアクセス権限(システム、職責毎)の情報を示す。システム接続情報D3は、外部システムへの接続情報を示す。データソース−IDマッピング情報D4は、各定義情報で使用されるデータソースIDと実データソースのマッピングの情報を示す。文字変換定義D5は、文字コードの変換ルールを示す。以下に各外部定義体の具体的な記述内容について説明する。
アクセス定義情報D1は、データアクセスIDをキーとした、検索条件、変換情報(形式変換、コード値変換、名称変換)の情報を示す。アクセス権限情報D2は、データソース、およびその各項目へのアクセス権限(システム、職責毎)の情報を示す。システム接続情報D3は、外部システムへの接続情報を示す。データソース−IDマッピング情報D4は、各定義情報で使用されるデータソースIDと実データソースのマッピングの情報を示す。文字変換定義D5は、文字コードの変換ルールを示す。以下に各外部定義体の具体的な記述内容について説明する。
図7は、アクセス定義情報D1の記述内容を示す図である。
アクセス定義情報は、データアクセスIDごとに1ファイルが作成され、記憶部40に保持される複数のアクセス定義情報D1をアクセス定義情報D1群と記載する。
アクセス定義情報は、データアクセスIDごとに1ファイルが作成され、記憶部40に保持される複数のアクセス定義情報D1をアクセス定義情報D1群と記載する。
データアクセスID(項番1)は、仮想ビューを生成するためのデータアクセス処理ごとに付与するIDを定義する。また、検索結果件数の閾値も設定される。データソース名(項番2)は、データソースを識別する情報であり、アクセス対象となるデータソースの論理名や、検索結果件数の多重度を定義する。データソース名は、このデータアクセス処理における仮想ビューを構築するために必要となるデータソース分だけ繰り返し定義され、処理すべきデータソース順に記述される。
データ編集定義(アクセス前)(項番3)は、入力情報に対する、名称変換・形式変換・コード値変換の規則を定義し、この変換の定義は、システムごとに記述される。データ編集定義(アクセス後)(項番4)は、検索結果に対する、名称変換・形式変換・コード値変換の規則を定義し、この変換の定義は、システムごとに記述される。
クエリ定義(項番5)は、データソースにアクセスするための条件を記述し、これは、DBアクセス時のみ必要となる。クエリ文(項番6)は、データソースにアクセスするためのSQL文を記述し、これは、DBアクセス時のみ必要である。検索パラメータ(項番7)は、外部から入力された検索条件の変数を、SQL文のどこに埋め込むかを定義する。なお、以前のデータソースへの検索結果を利用することも可能である。主キー(項番8)は、検索結果を主キーで自動的に絞り込む際に記述され、主にSOAP/HTTPアクセスで使用される。
接続パラメータ(項番9)は、SOAP/HTTPアクセスする際に、接続先に渡すパラメータを記述する。なお、以前のデータソースへの検索結果を利用することも可能であり、外部システムへSOAP/HTTPでアクセスする場合のみ必要となる。
包含データソース名(項番10)は、検索を行ったSQL文にて他のテーブルを結合した場合に、結合したテーブルについての情報を定義する。包含カラム定義(項番11)は、検索結果のうち、包含データソースに含まれるカラム名を定義する。データ編集定義(アクセス前)(項番12)は、データソース名/データ編集定義(アクセス前)と同様であり、データ編集定義(アクセス後)(項番13)は、データソース名/データ編集定義(アクセス後)と同様である。
包含データソース名(項番10)は、検索を行ったSQL文にて他のテーブルを結合した場合に、結合したテーブルについての情報を定義する。包含カラム定義(項番11)は、検索結果のうち、包含データソースに含まれるカラム名を定義する。データ編集定義(アクセス前)(項番12)は、データソース名/データ編集定義(アクセス前)と同様であり、データ編集定義(アクセス後)(項番13)は、データソース名/データ編集定義(アクセス後)と同様である。
図8は、アクセス権限情報D2の記述内容を示す図である。アクセス権限情報は、システム全体で1ファイルだけ作成する。
ロールID(項番1)は、利用時のアクセスを識別するIDとなる。
パスワード(項番2)は、ロールIDに結びつき、認証時に利用される情報である。
有効期限(項番3)は、ロールIDの有効期限を示す。
リソース(項番4)は、アクセスを制御する対象となるテーブルやシステムの識別単位である。データ保持装置9がDBである場合のアクセスにおいてはテーブル単位となる。リソース権限(項番5)は、テーブルに対する、CRUD権限を指定する。項目(項番6)は、テーブル内に定義が含まれ、アクセス制御対象となる項目を指定する。項目権限(項番7)は、指定した項目に対する、読込み及び書き込み(RW)の権限を指定する。
リソースリスト(項番8)は、リソースをグループとして扱う場合に設定される。
ロールID(項番1)は、利用時のアクセスを識別するIDとなる。
パスワード(項番2)は、ロールIDに結びつき、認証時に利用される情報である。
有効期限(項番3)は、ロールIDの有効期限を示す。
リソース(項番4)は、アクセスを制御する対象となるテーブルやシステムの識別単位である。データ保持装置9がDBである場合のアクセスにおいてはテーブル単位となる。リソース権限(項番5)は、テーブルに対する、CRUD権限を指定する。項目(項番6)は、テーブル内に定義が含まれ、アクセス制御対象となる項目を指定する。項目権限(項番7)は、指定した項目に対する、読込み及び書き込み(RW)の権限を指定する。
リソースリスト(項番8)は、リソースをグループとして扱う場合に設定される。
システム接続情報D3は、プロトコル単位に作成される。データアクセス装置1の保持する複数のシステム接続情報D3をシステム接続情報D3群と記載する。本実施の形態のデータアクセスが参照するのは、図9に示すHTTPアダプタ接続情報と、図10に示すSOAPアダプタ接続情報の二つである。
図9に示すHTTPアダプタ接続情報の記述内容を説明する。
接続ID(項番1)は、登録情報を識別するIDである。URL(項番2)は、データ保持装置9が外部システムである場合の接続先URLを示す。ポート番号(項番3)は、接続ポート番号を記述する。実行メソッド(項番4)は、実行すべきメソッド(POST、GET、MultiPart)を指定する。ユーザ名(項番5)は、HTTP認証を行う場合のユーザ名を記述する。パスワード(項番6)は、HTTP認証を行う場合のパスワードを記述する。エンコーディングタイプ(項番7)は、接続のエンコーディングタイプを指定する。コンテントタイプ(項番8)は、接続のコンテントタイプを指定する。タイムアウト(項番9)は、接続のタイムアウト時間を指定する。パラメータn(項番10)は、リクエストパラメータ名を指定する。
接続ID(項番1)は、登録情報を識別するIDである。URL(項番2)は、データ保持装置9が外部システムである場合の接続先URLを示す。ポート番号(項番3)は、接続ポート番号を記述する。実行メソッド(項番4)は、実行すべきメソッド(POST、GET、MultiPart)を指定する。ユーザ名(項番5)は、HTTP認証を行う場合のユーザ名を記述する。パスワード(項番6)は、HTTP認証を行う場合のパスワードを記述する。エンコーディングタイプ(項番7)は、接続のエンコーディングタイプを指定する。コンテントタイプ(項番8)は、接続のコンテントタイプを指定する。タイムアウト(項番9)は、接続のタイムアウト時間を指定する。パラメータn(項番10)は、リクエストパラメータ名を指定する。
図10に示すSOAPアダプタ接続情報の記述内容を説明する。
接続ID(項番1)は、登録情報を識別するIDである。WSDL情報(項番2)は、WSDLのロケーション、デフォルト名前空間、サービス名、ポート名などを示す。ユーザ名(項番3)は、HTTP認証を行う場合のユーザ名を示す。パスワード(項番4)は、HTTP認証を行う場合のパスワードを記述する。タイムアウト(項番5)は、接続のタイムアウト時間を指定する。タイプマッピング情報n(項番6)は、タイプマッピング処理を行う場合の情報を記載する。
接続ID(項番1)は、登録情報を識別するIDである。WSDL情報(項番2)は、WSDLのロケーション、デフォルト名前空間、サービス名、ポート名などを示す。ユーザ名(項番3)は、HTTP認証を行う場合のユーザ名を示す。パスワード(項番4)は、HTTP認証を行う場合のパスワードを記述する。タイムアウト(項番5)は、接続のタイムアウト時間を指定する。タイプマッピング情報n(項番6)は、タイプマッピング処理を行う場合の情報を記載する。
図11は、データソース−IDマッピング情報D4の記述内容を示す図である。データソース−IDマッピング情報D4は、システム全体で1ファイルだけ作成される。
データソースリスト(項番1)は、データソースIDと物理的なデータソースをマッピングする箇所を示し、システムで1つだけ作成される。データソース名−物理リソース名マッピング(項番2)は、データソースIDと、物理的なデータソースとのマッピングを示し、データソースの数だけ繰り返し定義する。
データベースリスト(項番3)は、データベース情報を定義する箇所である。データベース定義(項番4)は、各データベースの接続情報を定義し、データベースの数だけ繰り返し定義される。
Webサービスリスト(項番5)は、Webサービス情報を定義する箇所である。Webサービス定義(項番6)は、各Webサービスの接続情報を定義し、Webサービスの数だけ繰り返し定義される。文字コード変換ID(項番7)は、接続先Webサービスで使用される文字コードを指定する。プラグイン定義(項番8)は、Webサービス戻り値を、データアクセス指定のXML形式に変換するためのプラグインプログラムを指定する。
Webアプリケーションリスト(項番9)は、Webアプリケーションの情報を定義する箇所である。Webアプリケーション定義(項番10)は、各Webアプリケーションの接続情報を定義し、Webアプリケーションの数だけ繰り返し定義する。文字コード変換ID(項番11)は、接続先Webアプリケーションで使用される文字コードを指定する。プラグイン定義(項番12)は、Webアプリケーション戻り値を、データアクセス指定のXML形式に変換するためのプラグインプログラムを指定する。
データソースリスト(項番1)は、データソースIDと物理的なデータソースをマッピングする箇所を示し、システムで1つだけ作成される。データソース名−物理リソース名マッピング(項番2)は、データソースIDと、物理的なデータソースとのマッピングを示し、データソースの数だけ繰り返し定義する。
データベースリスト(項番3)は、データベース情報を定義する箇所である。データベース定義(項番4)は、各データベースの接続情報を定義し、データベースの数だけ繰り返し定義される。
Webサービスリスト(項番5)は、Webサービス情報を定義する箇所である。Webサービス定義(項番6)は、各Webサービスの接続情報を定義し、Webサービスの数だけ繰り返し定義される。文字コード変換ID(項番7)は、接続先Webサービスで使用される文字コードを指定する。プラグイン定義(項番8)は、Webサービス戻り値を、データアクセス指定のXML形式に変換するためのプラグインプログラムを指定する。
Webアプリケーションリスト(項番9)は、Webアプリケーションの情報を定義する箇所である。Webアプリケーション定義(項番10)は、各Webアプリケーションの接続情報を定義し、Webアプリケーションの数だけ繰り返し定義する。文字コード変換ID(項番11)は、接続先Webアプリケーションで使用される文字コードを指定する。プラグイン定義(項番12)は、Webアプリケーション戻り値を、データアクセス指定のXML形式に変換するためのプラグインプログラムを指定する。
図12は、文字変換定義情報D5の記述内容を示す図である。文字変換定義情報D5は、システム全体で1ファイルだけ作成される。
変換ID(項番1)は、変換ルールを識別するためのIDである。変換種別(項番2)は、変換対象文字列が、XML文書、文字列、その他であるかを指定する。入力文字コード(項番3)は、入力データの文字コードを指定する。出力文字コード(項番4)は、出力データの文字コードを指定する。BASE64デコード処理(項番5)は、入力データのBASE64デコードの種別(全部、一部、無し)を指定する。BASE64エンコード処理(項番6)は、出力データのBASE64エンコードの種別(全部、一部、無し)を指定する。入力値分割種別(項番7)は、入力データを分割する必要がある場合の情報を記載する(XML,文字列、その他)。XML分割タグ(項番8)は、XML文書の場合のタグ情報を記載する。文字列分割情報(項番9)は、文字列の分割個数、分割サイズ、文字数を記載する。
変換ID(項番1)は、変換ルールを識別するためのIDである。変換種別(項番2)は、変換対象文字列が、XML文書、文字列、その他であるかを指定する。入力文字コード(項番3)は、入力データの文字コードを指定する。出力文字コード(項番4)は、出力データの文字コードを指定する。BASE64デコード処理(項番5)は、入力データのBASE64デコードの種別(全部、一部、無し)を指定する。BASE64エンコード処理(項番6)は、出力データのBASE64エンコードの種別(全部、一部、無し)を指定する。入力値分割種別(項番7)は、入力データを分割する必要がある場合の情報を記載する(XML,文字列、その他)。XML分割タグ(項番8)は、XML文書の場合のタグ情報を記載する。文字列分割情報(項番9)は、文字列の分割個数、分割サイズ、文字数を記載する。
図13〜図17は、データアクセス装置1におけるデータ参照時の処理フローである。
図13は、データ参照時の全体フローを示す。
データアクセス装置1の参照インタフェース部11が、クライアント7からID/PWが設定されたアクセス制御情報、データアクセスID、検索条件が含まれる参照リクエストを受信する。すると、定義情報特定部12は、受信したデータアクセスIDをキーにして記憶部40内のアクセス定義情報D1群を検索し、該当するデータアクセスIDを有するアクセス定義情報D1を特定する(ステップS110)。続いて、データアクセス装置1は、図14に示す仮想ビュー作成フローを実行し(ステップS115)、その結果生成された仮想ビューをクライアント7へ返送する(ステップS120)。
図13は、データ参照時の全体フローを示す。
データアクセス装置1の参照インタフェース部11が、クライアント7からID/PWが設定されたアクセス制御情報、データアクセスID、検索条件が含まれる参照リクエストを受信する。すると、定義情報特定部12は、受信したデータアクセスIDをキーにして記憶部40内のアクセス定義情報D1群を検索し、該当するデータアクセスIDを有するアクセス定義情報D1を特定する(ステップS110)。続いて、データアクセス装置1は、図14に示す仮想ビュー作成フローを実行し(ステップS115)、その結果生成された仮想ビューをクライアント7へ返送する(ステップS120)。
図14は、データ参照時の仮想ビュー作成フローを示す。
データアクセス装置1の定義情報特定部12は、図13のステップS110にて特定したアクセス定義情報D1内のデータソース名から、アクセスすべきリソースを決定する(ステップS210)。最初の処理の場合、最初に記述されているデータソース名が選択される。ステップS210においてアクセスすべきデータソース名が選択されると(ステップS215:NO)、1番目のリソースアクセスであるかを判断する(ステップS220)。1番目のリソースアクセスであると判断された場合(ステップS220:Yes)、後述する図15、図16、図17に示す参照実行フローを実行する(ステップS225)。仮想ビュー生成部14は、ステップS225を実行した結果、データ保持装置9から得られたレスポンスデータから中間ビューを作成し(ステップS230)、ステップS210からの処理を繰り返す。
データアクセス装置1の定義情報特定部12は、図13のステップS110にて特定したアクセス定義情報D1内のデータソース名から、アクセスすべきリソースを決定する(ステップS210)。最初の処理の場合、最初に記述されているデータソース名が選択される。ステップS210においてアクセスすべきデータソース名が選択されると(ステップS215:NO)、1番目のリソースアクセスであるかを判断する(ステップS220)。1番目のリソースアクセスであると判断された場合(ステップS220:Yes)、後述する図15、図16、図17に示す参照実行フローを実行する(ステップS225)。仮想ビュー生成部14は、ステップS225を実行した結果、データ保持装置9から得られたレスポンスデータから中間ビューを作成し(ステップS230)、ステップS210からの処理を繰り返す。
ステップS210からの処理が繰り返された場合、ステップS220において、1番目のリソースアクセスではないと判断される(ステップS220:NO)。この場合、データアクセス装置1が現在保持している中間ビューから、まだ参照を実行していないレコードを特定して取得する(ステップS235)。取得すべきレコードが中間ビューにある場合(ステップS240:NO)、アクセス定義情報D1内のクエリ定義の検索パラメータ、あるいは、システム接続情報D3内のパラメータ等により、当該レコードから検索キーデータを確定し(ステップS245)、図15に示す参照実行フローを実行する(ステップS250)。そして、仮想ビュー生成部14は、ステップS250を実行した結果、データ保持装置9から得られたレスポンスデータをバッファーに格納し(ステップS255)、中間ビューから次にアクセスすべきレコードを取得するステップS235からの処理を繰り返す。
ステップS235からの処理を繰り返し、中間ビュー内の全てのレコードについて参照実行を終えた場合、ステップS240において、特定されるレコードがないと判断される(ステップS240:YES)。すると、図5に示したように、現在の中間ビューと、バッファー内のレスポンスデータをマージして新たな中間ビューを生成する(ステップS260)。つまり、現在の中間ビュー内の各レコードを、当該レコード内の項目名及びそのコード値あるいはそれをデータ変換した項目名及びそのコード値をキーにして得られた各レスポンスデータに付加して生成したレコードからなる新たな中間ビューを生成する。そして、ステップS210からの処理を繰り返す。
ステップS210からの処理を繰り返し、アクセス定義情報D1内の全てのリソースについて参照実行を終えた場合、次にアクセスすべきリソースはないと判断される(ステップS215:YES)。仮想ビュー生成部14は、現在の中間ビューを仮想ビューとして確定する(ステップS265)。
図15及び図16は、(ステップS225およびステップS250の)データ参照時の参照実行フローを示す。
図15において、データソースアクセス権限チェック部13は、アクセス権限情報D2から受信したIDにより一致するロールIDを特定し、この特定したロールID内の情報(項番1〜5、8)によりデータソースへのアクセス権を確認する(ステップS310)。具体的には、当該ロールID内のパスワードが、クライアント7から受信したPWと一致し、かつ、現在の日時が有効期限内であり、さらに、現在注目しているリソースが読出し可能であることを確認する。
アクセス権がある場合(ステップS315:YES)、検索条件に対し、アクセス定義情報D1内のデータ編集定義(アクセス前)を参照して、必要に応じて以下の名称変換、コード変換、形式変換を行う。
図15において、データソースアクセス権限チェック部13は、アクセス権限情報D2から受信したIDにより一致するロールIDを特定し、この特定したロールID内の情報(項番1〜5、8)によりデータソースへのアクセス権を確認する(ステップS310)。具体的には、当該ロールID内のパスワードが、クライアント7から受信したPWと一致し、かつ、現在の日時が有効期限内であり、さらに、現在注目しているリソースが読出し可能であることを確認する。
アクセス権がある場合(ステップS315:YES)、検索条件に対し、アクセス定義情報D1内のデータ編集定義(アクセス前)を参照して、必要に応じて以下の名称変換、コード変換、形式変換を行う。
名称変換部21は、アクセス定義情報D1内のデータ編集定義(アクセス前)に名称変換が定義されているかにより、検索条件に名称変換の必要があるかを判断する(ステップS320)。名称変換の必要があれば(ステップS320:YES)、名称変換部21は、アクセス定義情報D1内のデータ編集定義(アクセス前)を用いて、データ項目の名称を変換する(ステップS325)。
次に、コード値変換部22は、アクセス定義情報D1内のデータ編集定義(アクセス前)にコード値変換が定義されているかにより、検索条件にコード値変換の必要があるかを判断する(ステップS330)。コード値変換の必要があれば(ステップS330:YES)、コード値変換部22は、アクセス定義情報D1内のデータ編集定義(アクセス前)を用いて、コード値を変換する(ステップS335)。
続いて、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス前)に形式変換が定義されているかにより、検索条件に形式変換の必要があるかを判断する(ステップS340)。形式変換の必要があれば(ステップS340:YES)、さらに、アクセス定義情報D1内のデータ編集定義(アクセス前)にプラグインプログラムの利用が定義されているかによりプラグインプログラムを利用するかを判断する(ステップS345)。
プラグインプログラムを利用しない場合(ステップS345:NO)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス前)に記述されている形式変換を実行し、プラグインプログラムを利用する場合(ステップS345:YES)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス前)に記述されているプラグインプログラム24を用いて(ステップS350)、形式変換を実行する(ステップS355)。そして、リソースアクセス層30において、図17に示すリソースアクセス実施フローを実行する。
プラグインプログラムを利用しない場合(ステップS345:NO)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス前)に記述されている形式変換を実行し、プラグインプログラムを利用する場合(ステップS345:YES)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス前)に記述されているプラグインプログラム24を用いて(ステップS350)、形式変換を実行する(ステップS355)。そして、リソースアクセス層30において、図17に示すリソースアクセス実施フローを実行する。
なお、ステップS315において、アクセス権がないと判断された場合(ステップS315:NO)、全ての処理を終了する。
図16は、図15の参照実行フローの続きを示す。
データ変換層20では、リソースアクセス実施フローの実行の結果、データ保持装置9から取得したレスポンスデータに対し、アクセス定義情報D1内のデータ編集定義(アクセス後)を参照して、必要に応じて以下の形式変換、コード値変換、名称変換を実行する。
データ変換層20では、リソースアクセス実施フローの実行の結果、データ保持装置9から取得したレスポンスデータに対し、アクセス定義情報D1内のデータ編集定義(アクセス後)を参照して、必要に応じて以下の形式変換、コード値変換、名称変換を実行する。
形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス後)に形式変換が定義されているかにより、レスポンスデータに形式変換の必要があるかを判断する(ステップS410)。形式変換の必要があれば(ステップS410:YES)、さらに、アクセス定義情報D1内のデータ編集定義(アクセス後)にプラグインプログラムの利用が定義されているかによりプラグインプログラムを利用するかを判断する(ステップS415)。
プラグインプログラムを利用しない場合(ステップS415:NO)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス後)に記述されている形式変換を実行し、プラグインプログラムを利用する場合(ステップS415:YES)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス後)に記述されているプラグインプログラム24を用いて(ステップS420)、図15のステップS360の結果得られたデータの形式変換を実行する(ステップS425)。
プラグインプログラムを利用しない場合(ステップS415:NO)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス後)に記述されている形式変換を実行し、プラグインプログラムを利用する場合(ステップS415:YES)、形式変換部23は、アクセス定義情報D1内のデータ編集定義(アクセス後)に記述されているプラグインプログラム24を用いて(ステップS420)、図15のステップS360の結果得られたデータの形式変換を実行する(ステップS425)。
次に、コード値変換部22は、アクセス定義情報D1内のデータ編集定義(アクセス後)にコード値変換が定義されているかにより、レスポンスデータにコード値変換の必要があるかを判断する(ステップS430)。コード値変換の必要があれば(ステップS430:YES)、コード値変換部22は、アクセス定義情報D1内のデータ編集定義(アクセス後)を用いて、コード値を変換する(ステップS435)。
続いて、名称変換部21は、アクセス定義情報D1内のデータ編集定義(アクセス後)に名称変換が定義されているかにより、レスポンスデータに名称変換の必要があるかを判断する(ステップS440)。名称変換の必要があれば(ステップS440:YES)、名称変換部21は、アクセス定義情報D1内のデータ編集定義(アクセス後)に従い、データ項目の名称を変換する(ステップS445)。
図17は、ステップS360のデータ参照時のリソースアクセス実施フローを示す図である。
データアクセス装置1の文字コード変換部31は、検索条件に、文字コードの変換が必要かを判断する(ステップS510)。これは、現在注目しているデータソースに対応するアクセス定義情報D1内のデータ編集定義(アクセス前)に文字コード変換が記述されているか、あるいは、現在注目しているデータソースのアクセス定義情報D1内のデータソース名に対応するデータソース−IDマッピング情報D4に、文字コード変換IDが記述されているかにより行われる。
データアクセス装置1の文字コード変換部31は、検索条件に、文字コードの変換が必要かを判断する(ステップS510)。これは、現在注目しているデータソースに対応するアクセス定義情報D1内のデータ編集定義(アクセス前)に文字コード変換が記述されているか、あるいは、現在注目しているデータソースのアクセス定義情報D1内のデータソース名に対応するデータソース−IDマッピング情報D4に、文字コード変換IDが記述されているかにより行われる。
文字コード変換が必要な場合(ステップS510:YES)、文字コード変換部31は、現在注目しているデータソースに対応するアクセス定義情報D1内のデータ編集定義(アクセス前)に記述されている文字コード変換を実行する(ステップS515)。あるいは、文字コード変換部31は、現在注目しているデータソースのアクセス定義情報D1内のデータソース名に対応するデータソース−IDマッピング情報D4から文字コード変換IDを読出し、この読み出した文字コード変換IDにより文字変換定義情報D5を特定する。文字コード変換部31は、特定した文字変換定義D5内の定義に従って文字コード変換を実行する。
データ参照部32は、データソース名をキーにデータソース−IDマッピング情報D4を検索し、リソースに関する接続情報を取得する(ステップS520)。データ参照部32は、取得した接続情報から、リソースと外部システムとが対応付けて記述されているかにより、リソースが外部システムであるかを判断する(ステップS525)。外部システムであると判断した場合(ステップS525:YES)、アクセス定義情報D1は、データアクセス装置1が記憶しているシステム接続情報D3群から、Webサービス定義あるいはWebアプリケーション定義に記述されている接続IDをキーにシステム接続情報D3を特定する(ステップS530)。アクセス定義情報D1は、リソースが外部システムではない場合には(DB9a,9cなど)、アクセス定義情報D1内のクエリ定義に記述されているクエリ文、検索パラメータ、主キー及び検索パラメータを用いてデータ保持装置9へリクエストを発行する。また、リソースが外部システムである場合には(外部システム9eなど)、データソース−IDマッピング情報D4内のWebサービス定義、または、Webアプリケーション定義、これらの定義により特定される接続IDで特定されるシステム接続情報D3に基づいてデータ保持装置9へリクエストを発行する(ステップS535)。
続いて、文字コード変換部31は、文字コードの変換が必要かを判断する(ステップS540)。これは、現在注目しているデータソースに対応するアクセス定義情報D1内のデータ編集定義(アクセス後)に文字コード変換が記述されているか、あるいは、現在注目しているデータソースのアクセス定義情報D1内のデータソース名に対応するデータソース−IDマッピング情報D4に、文字コード変換IDが記述されているかにより行われる。
文字コード変換が必要な場合(ステップS540:YES)、文字コード変換部31は、文字コード変換を実行する(ステップS545)。つまり、文字コード変換部31は、現在注目しているデータソースに対応するアクセス定義情報D1内のデータ編集定義(アクセス後)に記述されている文字コード変換を実行する。あるいは、文字コード変換部31は、現在注目しているデータソースのアクセス定義情報D1内のデータソース名に対応するデータソース−IDマッピング情報D4から文字コード変換IDを読出し、この読み出した文字コード変換IDにより文字変換定義D5を特定する。文字コード変換部31は、特定した文字変換定義D5内の定義に従って文字コード変換を実行する。
さらに、文字コード変換部31は、リソースは外部システムであり、かつ、プラグインを利用するかを判断する(ステップS550)。なお、リソースは外部システムであるかは、データソース−IDマッピング情報D4内のデータソース名−物理リソース名マッピングの記述により判断し、プラグインを利用するかは、データソース−IDマッピング情報D4内のWebサービス定義あるいはWebアプリケーション定義にプラグイン定義が記述されているかにより判断する。リソースが外部システムであり、かつ、プラグインを利用すると判断した場合(ステップS550:YES)、レスポンスデータをプラグイン定義に記述されているプラグインプログラム33により編集する(ステップS555)。
項目アクセス権限チェック部35は、ユーザIDにより特定されるアクセス権限情報D2内の情報と、アクセス定義情報D1の包含データソース名内の包含カラム定義、データ編集定義(アクセス前)、データ編集定義(アクセス後)とからアクセス権を確認し、レスポンスデータから参照権限のない項目データを削除する(ステップS560)。
次に、図18〜図21のデータアクセス装置1におけるデータ追加・削除・更新時の処理フローについて説明する。
図18は、データ追加・削除・更新時の全体フローを示す。
データアクセス装置1の更新インタフェース部15が、クライアント7からID/PWが設定されたアクセス制御情報、データアクセスID、検索条件、追加または更新対象の仮想ビューを受信する。定義情報特定部12は、受信したデータアクセスIDをキーにして記憶部40内のアクセス定義情報D1群を検索し、該当するアクセス定義情報D1を特定する(ステップS610)。続いて、データアクセス装置1は、図19に示す更新処理フローを実行する(ステップS615)。
図18は、データ追加・削除・更新時の全体フローを示す。
データアクセス装置1の更新インタフェース部15が、クライアント7からID/PWが設定されたアクセス制御情報、データアクセスID、検索条件、追加または更新対象の仮想ビューを受信する。定義情報特定部12は、受信したデータアクセスIDをキーにして記憶部40内のアクセス定義情報D1群を検索し、該当するアクセス定義情報D1を特定する(ステップS610)。続いて、データアクセス装置1は、図19に示す更新処理フローを実行する(ステップS615)。
図19は、データ追加・削除・更新時の更新処理フローを示す。
データアクセス装置1の定義情報特定部12は、図18のステップS610にて特定したアクセス定義情報D1内のデータソース名から、アクセスすべきリソースを決定する(ステップS710)。最初の処理の場合、最初に記述されているデータソース名が選択される。ステップS710においてアクセスすべきデータソース名が選択されると(ステップS715:NO)、図20に示す更新実行フローを実行する(ステップS720)。更新実行の結果、エラーが発生しなかった場合は(ステップS725:NO)、ステップS710からの処理を再び実行し、エラーが発生した場合(ステップS725:YES)、データ変更部36は、これまでに更新したデータを元に戻すようロールバックし、クライアント7へエラーを返却する(ステップS730)。
データアクセス装置1の定義情報特定部12は、図18のステップS610にて特定したアクセス定義情報D1内のデータソース名から、アクセスすべきリソースを決定する(ステップS710)。最初の処理の場合、最初に記述されているデータソース名が選択される。ステップS710においてアクセスすべきデータソース名が選択されると(ステップS715:NO)、図20に示す更新実行フローを実行する(ステップS720)。更新実行の結果、エラーが発生しなかった場合は(ステップS725:NO)、ステップS710からの処理を再び実行し、エラーが発生した場合(ステップS725:YES)、データ変更部36は、これまでに更新したデータを元に戻すようロールバックし、クライアント7へエラーを返却する(ステップS730)。
ステップS710からの処理を繰り返し、アクセス定義情報D1内の全てのリソースについて更新実行を終えた場合、次にアクセスすべきリソースはないと判断される(ステップS715:YES)。すると、データ変更部36は、更新をコミットする(ステップS735)。
図20は、ステップS720におけるデータ追加・削除・更新時の更新実行フローを示す。
更新実行フローにおけるステップS810〜S855は、図15に示す参照実行フローのステップS310〜S355の処理と同様の処理を行う。ただし、名称変換、コード変換、形式変換の対象は、検索条件と、追加あるいは更新を行う仮想ビュー内のデータであるである。アクセス権の確認、名称変換、コード変換、形式変換の実行後、リソースアクセス層30において、図21に示すリソースアクセス実施フローを実行する(ステップS860)。また、ステップS815においてアクセス権がないと判断した場合、クライアント7へエラーを返却する(ステップS865)。
更新実行フローにおけるステップS810〜S855は、図15に示す参照実行フローのステップS310〜S355の処理と同様の処理を行う。ただし、名称変換、コード変換、形式変換の対象は、検索条件と、追加あるいは更新を行う仮想ビュー内のデータであるである。アクセス権の確認、名称変換、コード変換、形式変換の実行後、リソースアクセス層30において、図21に示すリソースアクセス実施フローを実行する(ステップS860)。また、ステップS815においてアクセス権がないと判断した場合、クライアント7へエラーを返却する(ステップS865)。
図21は、追加・変更・削除実行時のリソースアクセス実施フローを示す図である。
項目アクセス権限チェック部35は、ユーザIDにより特定されるアクセス権限情報D2内の情報と、アクセス定義情報D1の包含データソース名内の包含カラム定義、データ編集定義(アクセス前)、データ編集定義(アクセス後)とから項目単位のアクセス権を確認する(ステップS910)。なお、アクセス権がない場合(ステップS915:YES)、クライアント7へエラーを返却する(ステッ950)。
項目アクセス権限チェック部35は、ユーザIDにより特定されるアクセス権限情報D2内の情報と、アクセス定義情報D1の包含データソース名内の包含カラム定義、データ編集定義(アクセス前)、データ編集定義(アクセス後)とから項目単位のアクセス権を確認する(ステップS910)。なお、アクセス権がない場合(ステップS915:YES)、クライアント7へエラーを返却する(ステッ950)。
一方、アクセス権がある場合(ステップS915:YES)、必要に応じて文字コードを変換してシステム接続情報D3から接続情報を取得し、リソースが外部システムの場合にシステム接続情報D3を特定して接続情報を取得し、データ保持装置9にリクエストを発行するステップS920〜ステップS945までの処理は、図17に示すステップS510〜ステップS535までの処理と同様である。ただし、ステップS925における文字コード変換対象は検索条件及び更新対象のデータである。また、ステップS535において発行されるリクエストは、追加、更新、削除のためのクエリ文やHTTP/SOAPであり、このリクエストには、クライアント7から受信した検索条件から抽出した項目名及びそのコード値に対して図20における変換を行った検索条件と、クライアント7から受信した仮想ビュー内から抽出した更新/追加対象の項目名及びそのコード値に図20における変換を行った更新/追加対象のデータが含まれる。
次に図22〜図29を用いて、データアクセスシステムの具体的な動作例について説明する。
図22は、データ保持装置9と、データ保持装置9が保持するデータについて示す図である。ここでは、データベースであるDB9aが、ID、Name、Address、Sex、Birthday、WebIDの項目名からなるレコードで構成されるテーブルAを保持しており、Webサイトを提供し、SJISを文字コードとして使用する外部システム9bが、UseID、Login Countの項目名からなるデータを保持している。
図22は、データ保持装置9と、データ保持装置9が保持するデータについて示す図である。ここでは、データベースであるDB9aが、ID、Name、Address、Sex、Birthday、WebIDの項目名からなるレコードで構成されるテーブルAを保持しており、Webサイトを提供し、SJISを文字コードとして使用する外部システム9bが、UseID、Login Countの項目名からなるデータを保持している。
図23は、想定される動作について説明するための図である。
クライアント7がデータアクセスの利用のために必要なIDは「Client1」、PWは「xyzzy」である。クライアント7は、「性別」を検索条件とした場合、氏名、住所、誕生日、WebID、Web利用回数からなる検索結果が期待されるデータアクセスID「DA001」と、「性別」を「男性」とする検索条件により、データアクセス装置1へ参照リクエストを送信する。
クライアント7がデータアクセスの利用のために必要なIDは「Client1」、PWは「xyzzy」である。クライアント7は、「性別」を検索条件とした場合、氏名、住所、誕生日、WebID、Web利用回数からなる検索結果が期待されるデータアクセスID「DA001」と、「性別」を「男性」とする検索条件により、データアクセス装置1へ参照リクエストを送信する。
図24は、アクセス定義情報D1の設定値を示す図である。
同図に示すアクセス定義情報D1には、データアクセスID「DA001」に対応づけて、データソース名「テーブル−A」、「システム−B」が設定されている。データソース名「テーブル−A」には、データ編集定義(アクセス前)として、名称変換「性別→SEX」、コード値変換「男→M/女→W」が、データ編集定義(アクセス後)として、名称変換「NAME→氏名」、「ADDRESS→住所」、「BIRTHDAY→誕生日」、形式変換「プラグイン・プログラム:birthdayconvert.class」が設定されている。さらに、データソース名「テーブル−A」には、クエリ定義として、クエリ文「SELECT NAME,ADDRESS,BIRTHDAY,WebID FROM テーブルA WHERE SEX=#性別#」、検索パラメータ「入力・SEX→#性別#」が設定されている。
データソース名「システム−B」には、データ編集定義(アクセス後)として、名称変換「Login Count→Web利用回数」、接続パラメータ「中間ビュー/WebID → UserID」が設定されている。
同図に示すアクセス定義情報D1には、データアクセスID「DA001」に対応づけて、データソース名「テーブル−A」、「システム−B」が設定されている。データソース名「テーブル−A」には、データ編集定義(アクセス前)として、名称変換「性別→SEX」、コード値変換「男→M/女→W」が、データ編集定義(アクセス後)として、名称変換「NAME→氏名」、「ADDRESS→住所」、「BIRTHDAY→誕生日」、形式変換「プラグイン・プログラム:birthdayconvert.class」が設定されている。さらに、データソース名「テーブル−A」には、クエリ定義として、クエリ文「SELECT NAME,ADDRESS,BIRTHDAY,WebID FROM テーブルA WHERE SEX=#性別#」、検索パラメータ「入力・SEX→#性別#」が設定されている。
データソース名「システム−B」には、データ編集定義(アクセス後)として、名称変換「Login Count→Web利用回数」、接続パラメータ「中間ビュー/WebID → UserID」が設定されている。
図25は、アクセス権限情報D2の設定値を示す図である。
同図においてアクセス権限情報D2には、ロール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」が設定されている。
同図においてアクセス権限情報D2には、ロール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」が設定されている。
図26は、システム接続情報D3の設定値を示す図である。
同図において、システム接続情報D3には、接続ID「System-B」に対応して、URL「http://systemB/get_count」、ポート番号「80」、実行メソッド「GET」、エンコーディングタイプ「SJIS」、コンテントタイプ「text/html」、タイムアウト「60秒」、パラメータ1「UserID」が設定されている。
同図において、システム接続情報D3には、接続ID「System-B」に対応して、URL「http://systemB/get_count」、ポート番号「80」、実行メソッド「GET」、エンコーディングタイプ「SJIS」、コンテントタイプ「text/html」、タイムアウト「60秒」、パラメータ1「UserID」が設定されている。
図27は、データソース−IDマッピング情報D4の設定値を示す図である。
同図においてデータソース−IDマッピング情報D4には、データソースリスト「テーブル−A ⇔ Table A」、「システム−B ⇔ System B」が設定され、データベースリストには、データベース名「Table A」、JNDI名「jndi/connect」が設定され、Webアプリケーションリストには、Webアプリケーション名「System B」、接続ID「System-B」、リクエスト文字コード変換ID「Convert B」、プラグイン定義「systemB_Convert.class」が設定されている。
同図においてデータソース−IDマッピング情報D4には、データソースリスト「テーブル−A ⇔ Table A」、「システム−B ⇔ System B」が設定され、データベースリストには、データベース名「Table A」、JNDI名「jndi/connect」が設定され、Webアプリケーションリストには、Webアプリケーション名「System B」、接続ID「System-B」、リクエスト文字コード変換ID「Convert B」、プラグイン定義「systemB_Convert.class」が設定されている。
図28は、文字変換定義D5の設定値を示す図である。
同図において、文字変換定義D5には、変換ID「Convert B」に対応して、変換種別「文字列」、入力文字コード「UTF−8」、出力文字コード「SJIS」、BASE64エンコード「無し」、BASE64デコード「無し」、入力分割種別「無し」が設定されている。
同図において、文字変換定義D5には、変換ID「Convert B」に対応して、変換種別「文字列」、入力文字コード「UTF−8」、出力文字コード「SJIS」、BASE64エンコード「無し」、BASE64デコード「無し」、入力分割種別「無し」が設定されている。
次に、上記の条件の場合でのデータアクセスの具体的な動作について説明する。
(1)クライアント7からの要求:クライアント7は、データアクセス装置1に、認証情報「ID:Client1、PW:xyzzy」と、検索条件「性別=”男”」、「データアクセスID=”DA001”」(DA001:氏名、住所、誕生日、WebID、Web利用回数の取得)を参照リクエストとして送信する。データアクセス装置1の参照インタフェース部11は、クライアント7から送信されたこれらの情報を受信する。
(1)クライアント7からの要求:クライアント7は、データアクセス装置1に、認証情報「ID:Client1、PW:xyzzy」と、検索条件「性別=”男”」、「データアクセスID=”DA001”」(DA001:氏名、住所、誕生日、WebID、Web利用回数の取得)を参照リクエストとして送信する。データアクセス装置1の参照インタフェース部11は、クライアント7から送信されたこれらの情報を受信する。
(2)アクセス定義情報の特定:データアクセス装置1の定義情報特定部12は、データアクセスID「DA001」をキーにして、図24に示すアクセス定義情報D1を特定する。そして、この特定したアクセス定義情報D1に記述される1番目のリソース「テーブル−A」へのアクセスを始める。
(3)テーブル−Aへのリクエストについてのアクセス権チェック:データアクセス装置1のデータソースアクセス権限チェック部13は、クライアント7から受信した認証情報で示されるID/PWと、アクセス制御情報D2(図25)内のロールID及びパスワードが一致するかにより認証を確認する。さらにデータソースアクセス権限チェック部13は、アクセス制御情報D2で示される有効期限より、現在日付が有効期限内であることを確認する。また、データソースアクセス権限チェック部13は、データソース−IDマッピング情報D4内のデータソースリストより、「テーブル−A」の実態が「Table A」であることを取得する。データソースアクセス権限チェック部13は、ロールID「Client1」、及び、リソース「Table A」に対応したアクセス制御情報D2内のリソース/権限「Table A/Read」から、「Table A」への読み出し権があることを確認する。
(4)テーブル−Aのリクエスト変換処理:(2)において特定されたアクセス定義情報D1(図24)のデータソース名「テーブル−A」配下のデータ編集定義(アクセス前)の記述にもとづいて、データアクセス装置1の名称変換部21は名称変換を、コード値変換部22はコード値変換を実施する。これにより、クライアント7から受信した検索条件の項目名「性別」が「SEX」へ、コード値「男」が「M」へ変換される。なお、データ編集定義(アクセス前)に形式変換は記述されていないため、形式変換部23における形式変換処理は実行されない。
(5)テーブル−AへのDBアクセス:データアクセス装置1のデータ参照部32は、(2)において特定されたアクセス定義情報D1(図24)のデータソース名「テーブル−A」配下のクエリ定義の記述に基づき、クエリ文「SELECT NAME,ADDRESS,BIRTHDAY,WebID FROM テーブルA WHERE SEX=#性別#」の検索パラメータ「SEX」の値「#性別#」の部分を、項目「性別」のコード値「男」から変換された「M」に置き換えてデータ保持装置9へ発行する。なお、アクセスのための情報は、データソース−IDマッピング情報D4(図27)より取得する。すなわち、データソース−IDマッピング情報D4内のデータベース名「Table A」内のJNDI名「jndi/connect」を用い、このJNDI名により特定されるDB9aへアクセスする。
(6)テーブル−Aからのレスポンスに対するアクセス権チェック:データアクセス装置1の項目アクセス権限チェック部35は、(5)で発行したクエリ文に対応したレスポンスをDB9aから受信すると、アクセス権限情報D2(図25)を参照して、このレスポンスの各項目のアクセス権をチェックする。レスポンスには、項目名「NAME」、「ADDRESS」、「SEX」、「BIRTHDAY」、「WebID」と、それぞれのコード値とからなる2レコードが含まれるものとする。項目アクセス権限チェック部35は、アクセス権限情報D2内のロールID「Client1」に対応したリソース「Table A」配下の項目/権限情報から、レスポンスデータ内に含まれる項目「NAME」、「ADDRESS」、「SEX」、「BIRTHDAY」、「WebID」がすべて読み出し可能であることを確認する。
(7)テーブル−Aからのレスポンスに対する変換処理:(2)において特定されたアクセス定義情報D1(図24)のデータソース名「テーブル−A」配下のデータ編集定義(アクセス後)の記述にもとづいて、データアクセス装置1の形式変換部23は形式変換を、名称変換部21は名称変換を実施する。これにより、クライアント7から受信したレスポンスの項目名「BIRTHDAY」のコード値のフォーマットが、「プラグイン・プログラム:birthdayconvert.class」を用いて西暦フォーマット「19700101」から和暦フォーマット「昭和45年1月1日」へ、西暦フォーマット「19721231」から和暦フォーマット「昭和47年12月31日」へ変換され、項目名「NAME」が「氏名」へ、項目名「ADDRESS」が「住所」へ、項目名「BIRTHDAY」が「誕生日」へと変換される。なお、データ編集定義(アクセス後)にコード値変換は記述されていないため、コード値変換部22におけるコード値変換処理は実行されない。
(8)中間ビューの作成:データアクセス装置1の仮想ビュー生成部14は、変換が行われたレスポンスデータに対応した2レコード分の中間ビューを作成する。図29は、このとき生成された中間ビューを示す図である。
(9)システム−Bへのアクセスを認識:データアクセス装置1の定義情報特定部12は、(2)において特定したアクセス定義情報D1(図24)内のデータソース名「テーブル−A」の次に、データソース名「システム−B」が記述されているため、システム−Bへのアクセスを行う。以下、(10)〜(16)の処理が、中間ビュー(図29)内のレコード数である、2回実施される。
(10)システム−Bへのアクセス権チェック:データアクセス装置1のデータソースアクセス権限チェック部13は、データソース−IDマッピング情報D4(図27)内のデータソースリストより、「システム−B」の実態が「System B」であることを取得する。データソースアクセス権限チェック部13は、ロールID「Client1」、及び、リソース「System B」に対応したアクセス制御情報D2(図25)内のリソース/権限「System B/Read」から、「System B」へのリ読み出し権があることを確認する。
(11)外部システム9bへのリクエストについての文字コード変換:(2)において特定されたアクセス定義情報D1(図24)のデータソース名「システム−B」配下にはデータ編集定義(アクセス前)が記述されてないため、名称変換、コード値変換、形式変換は実行されない。文字コード変換部31は、データソース−IDマッピング情報D4(図27)内のWebアプリケーション名「System B」配下に、リクエスト文字コード変換ID「Convert B」が記述されているため、この変換IDにより特定される文字変換定義D5(図28)の記述内容に従って、変換種別「文字列」を出力文字コード「SJIS」に変換する。
(12)リクエストのためのシステム−Bへのアクセス:データアクセス装置1のデータ参照部32は、データソース−IDマッピング情報D4(図27)内のWebアプリケーション名「System B」配下の接続ID「System-B」を取得し、この接続IDによりシステム接続情報D3であるHTTPアダプタ接続情報(図26)を特定する。そして、この特定したHTTPアダプタ接続情報で示される接続情報を用いて外部システム9bへ接続する。なお、この接続パラメータとなる「UserID」(D)には、アクセス定義情報D1(図24)内のデータソース名「システム−B」の接続パラメータに記述されているように、中間ビュー内にテーブル−Aの結果から得た結果として記述されている項目「WebID」のコード値を当てはめて、HTTPリクエストを発行する。
(13)システム−Bからのレスポンスのプラグインプログラムによる取得:データアクセス装置1のデータ参照部32は、データソース−IDマッピング情報D4(図27)内のWebアプリケーション名「System B」配下のプラグイン定義「systemB_Convert.class」のプログラムを読み出して実行し、システム−B(外部システム9b)からのレスポンスとして項目「Login Count」のコード値を取得する。
(14)システム−Bのレスポンスに対するアクセス権チェック:データアクセス装置1の項目アクセス権限チェック部35は、(13)で取得したレスポンスの各項目のアクセス権をチェックする。項目アクセス権限チェック部35は、アクセス権限情報D2(図25)内のロールID「Client1」に対応したリソース「System B」配下の項目/権限情報から、レスポンスデータ内に含まれる項目「Login Count」が読み出し可能であることを確認する。
(15)システム−Bからのレスポンスに対する変換処理:(2)において特定されたアクセス定義情報D1(図24)のデータソース名「システム−B」配下のデータ編集定義(アクセス後)の記述にもとづいて、名称変換部21は名称変換を実施する。これにより、クライアント7から受信したレスポンスの項目名「Login Count」が「Web利用回数」へと変換される。なお、コード値変換及び形式変換は記述されていないため、コード値変換部22におけるコード値換処理、形式変換部23における形式変換処理は実行されない。
(16)システム−Bからのレスポンスのバッファリング:データアクセス装置1の仮想ビュー生成部14は、(15)においてデータ変換を行ったレスポンス値を内部のメモリにバッファリングする。
(17)仮想ビュー作成:データアクセス装置1の仮想ビュー生成部14は、(8)において作成した中間ビューと、(16)において、中間ビューのレコード数だけ受信したレスポンスのバッファデータをマージして、新たな中間データを生成する。アクセス定義情報D1(図24)内には、次にアクセスすべきデータソースが記述されていないため、参照インタフェース部11は、この新たに生成した中間ビューを仮想ビューとして返却する。仮想ビューは、図23に記載されている期待結果となる。
上記実施の形態のデータアクセス装置1の特徴は以下のようになる。
すなわち、様々なデータベースやウェブシステムへのアクセスを隠蔽し、統一されたI/Fでのデータ検索・更新機能を提供する。クライアントとのデータの授受は仮想的なレコードセットである仮想ビューで統一される。
また、I/Fが統一されているので、本データアクセス装置を利用するクライアントは、実際にアクセスするデータソースの種類や一度に操作可能なデータの範囲を意識する必要はない。
また、データアクセスの実行時の振る舞いについては、外部定義体に記述し、これに基づき制御される。このため、プログラムに修正を加えることなく検索項目などを変更できる。
また、クライアントが利用する際の、パラメータの名前や型の差異はデータアクセスの定義によって吸収する。データアクセスの定義は複数のクライアントで共有できる。
また、データアクセスは、名称変換、コード値変換、形式変換の各種変換機能を持ち、上記機能を実現している。
また、データアクセスの実行およびアクセスする項目毎に、呼び出し元のシステムや職責に基づいたアクセス制御が可能である。
また、データアクセスはプラグインの機構を持ち、既存にない機能拡張が可能となっている。形式変換機能、データ参照機能(外部システムアクセス時)がこのプラグインに対応する。
すなわち、様々なデータベースやウェブシステムへのアクセスを隠蔽し、統一されたI/Fでのデータ検索・更新機能を提供する。クライアントとのデータの授受は仮想的なレコードセットである仮想ビューで統一される。
また、I/Fが統一されているので、本データアクセス装置を利用するクライアントは、実際にアクセスするデータソースの種類や一度に操作可能なデータの範囲を意識する必要はない。
また、データアクセスの実行時の振る舞いについては、外部定義体に記述し、これに基づき制御される。このため、プログラムに修正を加えることなく検索項目などを変更できる。
また、クライアントが利用する際の、パラメータの名前や型の差異はデータアクセスの定義によって吸収する。データアクセスの定義は複数のクライアントで共有できる。
また、データアクセスは、名称変換、コード値変換、形式変換の各種変換機能を持ち、上記機能を実現している。
また、データアクセスの実行およびアクセスする項目毎に、呼び出し元のシステムや職責に基づいたアクセス制御が可能である。
また、データアクセスはプラグインの機構を持ち、既存にない機能拡張が可能となっている。形式変換機能、データ参照機能(外部システムアクセス時)がこのプラグインに対応する。
なお、上述のデータアクセス装置1、クライアント7、データ保持装置9は、内部にコンピュータシステムを有している。そして、データアクセス装置1、クライアント7、データ保持装置9の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
1…データアクセス装置
10…I/F層
11…参照インタフェース部
12…定義情報特定部
13…データソースアクセス権限チェック部
14…仮想ビュー生成部
15…更新インタフェース部
20…データ変換層
21…名称変換部
22…コード値変換部
23…形式変換部
24、33…プラグインプログラム
30…リソースアクセス層
31…文字コード変換部
32…データ参照部
35…項目アクセス権限チェック部
36…データ変更部
7…クライアント
9…データ保持装置
9a、9c…DB(データベース)
9b、9e…外部システム
10…I/F層
11…参照インタフェース部
12…定義情報特定部
13…データソースアクセス権限チェック部
14…仮想ビュー生成部
15…更新インタフェース部
20…データ変換層
21…名称変換部
22…コード値変換部
23…形式変換部
24、33…プラグインプログラム
30…リソースアクセス層
31…文字コード変換部
32…データ参照部
35…項目アクセス権限チェック部
36…データ変更部
7…クライアント
9…データ保持装置
9a、9c…DB(データベース)
9b、9e…外部システム
Claims (10)
- データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、
データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、
データアクセスIDと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部と、
前記参照受付部により受信した参照リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部と、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部と、
前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、2回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部と、
前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部と、
を備えることを特徴とするデータアクセス装置。 - データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置であって、
データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部と、
データアクセスIDと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部と、
前記更新インタフェース部により受信した更新リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部と、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部と、
を備えることを特徴とするデータアクセス装置。 - 前記外部定義体データは、さらに、各ユーザ毎のデータソース内の各項目へのアクセス権を示すアクセス権限情報からなり、
前記データ参照部による参照に対応して前記データ保持装置から受信したレスポンスと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報内に示されるデータソース内の各項目へのアクセス権とを照合して、アクセス権がある場合に、前記クライアントへの当該項目の参照を許可する項目アクセス権限チェック部とをさらに備える、
ことを特徴とする請求項1に記載のデータアクセス装置。 - 前記外部定義体データは、さらに、各ユーザ毎のデータソースへのアクセス権を示すアクセス権限情報からなり、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースと、前記クライアントから受信したユーザの識別情報に対応して前記アクセス権限情報に示されるデータソースへのアクセス権とを照合して、アクセス権がある場合に、当該データソースへのアクセスを許可するデータソースアクセス権限チェック部とをさらに備える、
ことを特徴とする請求項1から請求項3のいずれかの項に記載のデータアクセス装置。 - 前記アクセス定義情報は、さらに、データ項目の項目名、コード値、コード値のデータ形式のうち1以上の変換ルールを保持し、
前記アクセス定義情報内の変換ルールに従って、前記データ保持装置へアクセスする時のデータ、または、前記データ保持装置から受信したレスポンス内のデータの項目名、コード値、コード値のデータ形式の変換を行うデータ変換部をさらに備え、
前記データ変換部は、データ形式の変換ルールにプラグインプログラムが記述されている場合、当該プラグインプログラムを実行することによりコード値の形式変換を行う、
ことを特徴とする請求項1から請求項4のいずれかの項に記載のデータアクセス装置。 - 前記外部定義体データは、さらに、外部システムに対応した文字コード変換ルールを示す文字変換定義からなり、
前記文字変換定義内の変換ルールに従って、前記データ保持装置へ送信するデータ、または、前記データ保持装置から受信したレスポンスの文字コード変換を行う文字コード変換部をさらに備える、
ことを特徴とする請求項1から請求項5のいずれかの項に記載のデータアクセス装置。 - データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、
前記データアクセス装置は、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、
参照受付部が、データアクセスIDと、参照の検索条件とを含む参照リクエストをクライアントから受信し、
定義情報特定部が、前記参照受付部により受信した参照リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定し、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、
データ参照部が、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行い、
仮想ビュー生成部が、前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、2回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する
ことを繰り返し、
仮想ビュー返却部が、前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する、
ことを特徴とするデータアクセス方法。 - データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置に用いられるデータアクセス方法であって、
前記データアクセス装置は、データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部を備え、
更新インタフェース部が、データアクセスIDと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信し、
定義情報特定部が、前記更新インタフェース部により受信した更新リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定し、
データ更新部が、前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行う、
ことを特徴とするデータアクセス方法。 - データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、
データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、
データアクセスIDと、参照の検索条件とを含む参照リクエストをクライアントから受信する参照受付部、
前記参照受付部により受信した参照リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件または生成途中の仮想ビューである中間ビュー内の各レコードから取得した項目名及びそのコード値をキーに、当該レコード毎に参照を行うデータ参照部、
前記データ参照部によるアクセスがデータ保持装置への最初のアクセスである場合、前記データ保持装置から返送されたレスポンスを中間ビューとし、2回目以降のアクセスである場合、中間ビュー内の各レコードそれぞれについて、当該レコード内の項目名及びそのコード値をキーにして参照を行った際のレスポンスデータ内の各レコードに、中間ビュー内の当該レコードを付加して生成し、生成した全てのレコードからなる新たな中間ビューを作成する仮想ビュー生成部、
前記定義情報特定部により特定されたアクセス定義情報に記述されるデータアクセスの振舞いに記述される全てのデータソースにアクセスを終了したときの中間ビューを仮想ビューとして前記クライアントへ返送する仮想ビュー返却部、
として機能させることを特徴とするコンピュータプログラム。 - データベースあるいは外部システムである複数のデータ保持装置、及び、クライアントと接続され、当該データ保持装置へのデータアクセスに際して前記クライアントへのデータのやりとりを、1以上のデータ項目とそのコード値とからなる共通データ構造である仮想ビューを用いたインタフェースにより行うデータアクセス装置として用いられるコンピュータを、
データ処理を特定するデータアクセスIDに対応して、データアクセスすべきデータソースの識別とそのアクセス順序、及び、当該データソースへのデータアクセスの振る舞いとによりデータアクセス全体の振る舞いを規定したアクセス定義情報と、外部システムへのアクセスに用いる接続情報を規定したシステム接続情報と、データソースの識別毎に実データソースを規定するマッピング情報とからなる外部定義体データを記憶する記憶部、
データアクセスIDと、更新対象の検索条件と、更新内容を示す仮想ビューとを含む更新リクエストをクライアントから受信する更新インタフェース部、
前記更新インタフェース部により受信した更新リクエスト内のデータアクセスIDに対応したアクセス定義情報を特定する定義情報特定部、
前記定義情報特定部により特定されたアクセス定義情報内のデータアクセス全体の振舞いに記述されるデータソースの識別のアクセス順に、当該データソースの識別に対応した実データソースを前記マッピング情報から読み出し、読み出した実データソースがデータベースである場合にはマッピング情報内の実データソースの情報を、実データソースが外部システムである場合には、マッピング情報内の実データソースの情報と、当該外部システムに対応したシステム接続情報とを用いてデータ保持装置にアクセスし、アクセス定義情報内の当該データソースの識別に対応したデータアクセスの振舞いの記述に基づいて、前記クライアントから受信した検索条件より取得した項目名及びそのコード値をキーに特定される前記データ保持装置のデータに対し、前記クライアントから受信した仮想ビューより取得した項目名及びそのコード値により更新を行うデータ更新部、
として機能させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006353499A JP2008165447A (ja) | 2006-12-27 | 2006-12-27 | データアクセス装置、データアクセス方法、及び、コンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006353499A JP2008165447A (ja) | 2006-12-27 | 2006-12-27 | データアクセス装置、データアクセス方法、及び、コンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008165447A true JP2008165447A (ja) | 2008-07-17 |
Family
ID=39694872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006353499A Pending JP2008165447A (ja) | 2006-12-27 | 2006-12-27 | データアクセス装置、データアクセス方法、及び、コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008165447A (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010092300A (ja) * | 2008-10-08 | 2010-04-22 | Fuji Xerox Co Ltd | 情報処理装置及びプログラム |
JP2010211557A (ja) * | 2009-03-11 | 2010-09-24 | Hitachi Ltd | データ処理方法、データ処理装置およびデータ処理プログラム |
JP2010224958A (ja) * | 2009-03-24 | 2010-10-07 | Ntt Comware Corp | リスト作成情報設定装置、方法、プログラム、および、データ構造 |
JP2012510686A (ja) * | 2008-12-02 | 2012-05-10 | アビニシオ テクノロジー エルエルシー | データメンテナンスシステム |
CN101634991B (zh) * | 2009-04-21 | 2013-11-06 | 上海申瑞继保电气有限公司 | 数据采集与监视控制系统的遥测数据清洗方法 |
CN103678498A (zh) * | 2013-11-18 | 2014-03-26 | 航天东方红卫星有限公司 | 一种卫星有效载荷数据通用解析方法 |
CN103678498B (zh) * | 2013-11-18 | 2016-11-30 | 航天东方红卫星有限公司 | 一种卫星有效载荷数据通用解析方法 |
JP2018025859A (ja) * | 2016-08-08 | 2018-02-15 | 日本電信電話株式会社 | サービス提供システムおよびサービス提供方法 |
JP2019169001A (ja) * | 2018-03-23 | 2019-10-03 | 株式会社日立製作所 | データ移行システム及びデータ移行サーバ |
CN111064782A (zh) * | 2019-12-12 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 传输数据的方法、装置、电子设备及存储介质 |
JP2022036960A (ja) * | 2015-02-18 | 2022-03-08 | アビニシオ テクノロジー エルエルシー | ネットワーク上のデータソースへの照会 |
JP7472078B2 (ja) | 2021-05-20 | 2024-04-22 | 株式会社東芝 | データ仮想化装置及び方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109758A (ja) * | 1999-10-06 | 2001-04-20 | Hitachi Ltd | 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法 |
JP2004206629A (ja) * | 2002-12-26 | 2004-07-22 | Hitachi Ltd | 異種データソース統合検索サーバシステム |
-
2006
- 2006-12-27 JP JP2006353499A patent/JP2008165447A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109758A (ja) * | 1999-10-06 | 2001-04-20 | Hitachi Ltd | 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法 |
JP2004206629A (ja) * | 2002-12-26 | 2004-07-22 | Hitachi Ltd | 異種データソース統合検索サーバシステム |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010092300A (ja) * | 2008-10-08 | 2010-04-22 | Fuji Xerox Co Ltd | 情報処理装置及びプログラム |
US9092639B2 (en) | 2008-12-02 | 2015-07-28 | Ab Initio Technology Llc | Processing data updates within a data maintenance system |
JP2012510686A (ja) * | 2008-12-02 | 2012-05-10 | アビニシオ テクノロジー エルエルシー | データメンテナンスシステム |
JP2010211557A (ja) * | 2009-03-11 | 2010-09-24 | Hitachi Ltd | データ処理方法、データ処理装置およびデータ処理プログラム |
JP2010224958A (ja) * | 2009-03-24 | 2010-10-07 | Ntt Comware Corp | リスト作成情報設定装置、方法、プログラム、および、データ構造 |
CN101634991B (zh) * | 2009-04-21 | 2013-11-06 | 上海申瑞继保电气有限公司 | 数据采集与监视控制系统的遥测数据清洗方法 |
CN103678498A (zh) * | 2013-11-18 | 2014-03-26 | 航天东方红卫星有限公司 | 一种卫星有效载荷数据通用解析方法 |
CN103678498B (zh) * | 2013-11-18 | 2016-11-30 | 航天东方红卫星有限公司 | 一种卫星有效载荷数据通用解析方法 |
JP2022036960A (ja) * | 2015-02-18 | 2022-03-08 | アビニシオ テクノロジー エルエルシー | ネットワーク上のデータソースへの照会 |
JP7322119B2 (ja) | 2015-02-18 | 2023-08-07 | アビニシオ テクノロジー エルエルシー | ネットワーク上のデータソースへの照会 |
JP2018025859A (ja) * | 2016-08-08 | 2018-02-15 | 日本電信電話株式会社 | サービス提供システムおよびサービス提供方法 |
JP2019169001A (ja) * | 2018-03-23 | 2019-10-03 | 株式会社日立製作所 | データ移行システム及びデータ移行サーバ |
CN111064782A (zh) * | 2019-12-12 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 传输数据的方法、装置、电子设备及存储介质 |
JP7472078B2 (ja) | 2021-05-20 | 2024-04-22 | 株式会社東芝 | データ仮想化装置及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008165447A (ja) | データアクセス装置、データアクセス方法、及び、コンピュータプログラム | |
CN1703048B (zh) | 网络服务应用协议和soap处理模型 | |
JP5787963B2 (ja) | コンピュータプラットフォームのプログラミングインターフェース | |
CN102129469B (zh) | 一种面向虚拟实验的非结构化数据访问方法 | |
US7139973B1 (en) | Dynamic information object cache approach useful in a vocabulary retrieval system | |
US9128996B2 (en) | Uniform data model and API for representation and processing of semantic data | |
CN107092666B (zh) | 用于网络的系统、方法以及存储介质 | |
US20080201234A1 (en) | Live entities internet store service | |
JP2001282594A (ja) | 企業業務統合化システム、複数のデータ・ソースを統合化する方法 | |
JP2006520941A (ja) | 情報アクセスに関するシステム及び方法 | |
JP2005182835A (ja) | 異種のデータソースのためのデータサーバを生成する方法 | |
TW200400444A (en) | System and method for accessing different types of back end data stores | |
JP2010519624A (ja) | エンティティ向けrest | |
JP4965014B2 (ja) | コンピュータ通信ネットワークにおけるデータオブジェクトの転送方法および転送装置、起動方法と起動装置 | |
JPWO2004061713A1 (ja) | 構造化文書の構造変換装置、構造変換方法、記録媒体 | |
JP5499524B2 (ja) | 中継プログラムおよび中継装置 | |
JP4847517B2 (ja) | 自動イントラネットサービス公開及びサービスアクセス | |
Meshram | Evolution of modern web services–rest api with its architecture and design | |
JP5084665B2 (ja) | コンポーネント連携シナリオ統合開発環境提供システム、シナリオ作成支援方法、及び、プログラム | |
JP2010262453A (ja) | ソフトウェア間通信の中継方法、装置、及びプログラム | |
KR101910031B1 (ko) | 캐시된 wadl 실행 엔진 및 그를 이용한 웹 서비스 호출 방법 | |
US8499007B2 (en) | Information processing system, first information processing apparatus, second information processing apparatus, and third information processing apparatus | |
JP2009187401A (ja) | 文書管理システム、文書管理装置、文書管理方法及びプログラム | |
JP5444302B2 (ja) | データベース要求処理装置及びプログラム | |
Kurtz et al. | What is RESTful? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091027 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100316 |