(57)【要約】【課題】業務システムに関する情報をセキュリティの高い領域に保存することにより、既存の業務システム自体に改修を加えずに、セキュリティを確保すること。【解決手段】本発明のデータベースアクセスシステムにおいて、エミュレーションクライアントは、データベースへのアクセスを行うためのアプリケーションの操作要求をエミュレーションサーバへ送信し、エミュレーションサーバは、エミュレーションクライアントからの操作要求に応じて、アプリケーションの操作をエミュレートし、アプリケーションは、エミュレーションサーバにおける操作によりデータベースへのアクセスを要求する場合に、記憶部から認証情報を取得し、取得した認証情報を含めてデータベース装置へアクセス要求を送信し、データベース装置は、アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、データベースへのアクセスを処理する。【選択図】図１
2011215688.tif 000002
【特許請求の範囲】
【請求項１】
認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置と、
前記認証情報を格納する記憶部と、前記データベースへのアクセスを要求するアプリケーションと、操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備えるアクセス制御装置と、
前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備える端末と、
を備えるデータベースアクセスシステムであって、
前記エミュレーションクライアントは、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバは、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、
前記アプリケーションは、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、
前記データベース装置は、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理することを特徴とするデータベースアクセスシステム。
【請求項２】
前記アプリケーションは、前記アクセス要求に対する応答データを前記データベース装置から受信した場合に、受信した応答データを画面情報として出力し、
前記エミュレーションサーバは、前記アプリケーションにより出力された画面情報を画像データとして前記エミュレーションクライアントへ送信し、
前記エミュレーションクライアントは、前記エミュレーションサーバから受信した画像データから画面情報を生成することを特徴とする請求項１に記載のデータベースアクセスシステム。
【請求項３】
前記記憶部は、前記データベースに格納されたデータの一部である部分データをさらに格納し、
前記エミュレーションクライアントは、前記部分データを参照するための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記アプリケーションは、前記エミュレーションサーバにおける操作により前記部分データの参照を要求する場合に、前記データベース装置へ参照要求を送信せずに、前記記憶部から部分データを取得し、取得した部分データを画面情報として出力することを特徴とする請求項２に記載のデータベースアクセスシステム。
【請求項４】
前記エミュレーションクライアントは、前記部分データを更新するための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記アプリケーションは、前記エミュレーションサーバにおける操作により前記部分データの更新を要求する場合に、前記記憶部に格納された部分データを更新し、前記取得した認証情報と前記部分データの更新内容とを含めた更新要求を前記データベース装置へ送信することを特徴とする請求項３に記載のデータベースアクセスシステム。
【請求項５】
前記部分データは、前記データベースに格納された全てのデータの内、更新頻度の少ないデータであることを特徴とする請求項３又は４に記載のデータベースアクセスシステム。
【請求項６】
前記エミュレーションサーバと前記エミュレーションクライアントとの間で暗号化したデータを送受信することを特徴とする請求項１乃至５のいずれか１項に記載のデータベースアクセスシステム。
【請求項７】
認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置に対して複数の端末からのアクセスを制御する複数のアクセス制御装置を備えるデータベースアクセスシステムであって、
前記複数のアクセス制御装置のそれぞれは、
前記認証情報を格納する記憶部と、
前記データベースへアクセスを要求するアプリケーションと、
操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備え、
前記複数の端末のそれぞれは、前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備え、
前記エミュレーションクライアントは、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバは、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、
前記アプリケーションは、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、
前記データベース装置は、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理することを特徴とするデータベースアクセスシステム。
【請求項８】
前記アプリケーションは、前記アクセス要求に対する応答データを前記データベース装置から受信した場合に、受信した応答データを画面情報として出力し、
前記エミュレーションサーバは、前記アプリケーションにより出力された画面情報を画像データとして前記操作要求を受け付けたエミュレーションクライアントへ送信し、
前記エミュレーションクライアントは、前記エミュレーションサーバから受信した画像データから画面情報を生成することを特徴とする請求項７に記載のデータベースアクセスシステム。
【請求項９】
前記エミュレーションクライアントは、前記アプリケーションの操作を開始するための起動要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバは、前記エミュレーションクライアントから前記起動要求を受け付けた場合に、前記複数のアクセス制御装置のいずれかにおけるアプリケーションの処理に用いられた処理データを取得し、当該エミュレーションサーバが属するアクセス制御装置が備えるアプリケーションを起動することを特徴とする請求項８に記載のデータベースアクセスシステム。
【請求項１０】
前記処理データは、前記データベースに格納されたデータの一部である部分データを含み、
前記アプリケーションは、起動時に、前記エミュレーションサーバにより取得された前記処理データに含まれる部分データと、前記データベースに格納された部分データとが一致するか否かを判定し、一致しないと判定した場合に、前記データベース装置から差分のデータを取得し、取得した差分のデータを用いて当該取得された部分データを更新することを特徴とする請求項９に記載のデータベースアクセスシステム。
【請求項１１】
前記部分データは、前記データベースに格納された全てのデータの内、更新頻度の少ないデータであることを特徴とする請求項１０に記載のデータベースアクセスシステム。
【請求項１２】
前記エミュレーションクライアントは、前記部分データを更新するための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記アプリケーションは、前記エミュレーションサーバにおける操作により前記部分データの更新を要求する場合に、前記記憶部に格納された部分データを更新し、前記取得した認証情報と前記部分データの更新内容とを含めた更新要求を前記データベース装置へ送信することを特徴とする請求項１０又は１１に記載のデータベースアクセスシステム。
【請求項１３】
前記データベース装置は、前記アプリケーションからの前記更新要求に含まれる認証情報に基づき認証し、認証された場合に、前記更新要求に含まれる更新内容に基づいて前記データベースに格納された部分データを更新し、前記更新要求を送信したアプリケーション以外のアプリケーションへ当該更新内容を送信し、
前記更新要求を送信したアプリケーション以外のアプリケーションは、前記データベース装置から前記更新内容を受信した場合に、前記取得した部分データを当該受信した更新内容により更新することを特徴とする請求項１２に記載のデータベースアクセスシステム。
【請求項１４】
前記データベースアクセスシステムは、前記処理データを格納し、前記複数のアクセス制御装置との間で共有される記憶装置である共有記憶装置をさらに備え、
前記エミュレーションサーバは、前記起動要求を受け付けた場合に、前記共有記憶装置から前記処理データを取得し、前記アプリケーションを起動し、
前記アプリケーションは、前記取得された処理データを用いて処理を行い、
前記エミュレーションクライアントは、前記アプリケーションの操作を終了するための終了要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバは、前記エミュレーションクライアントから前記終了要求を受け付けた場合に、前記アプリケーションを終了し、前記処理に用いられた処理データを前記共有記憶装置へ格納することを特徴とする請求項９乃至１３のいずれか１項に記載のデータベースアクセスシステム。
【請求項１５】
前記共有記憶装置は、ユーザを識別するための複数のユーザ識別情報ごとに、前記処理データを関連付けて格納し、
前記エミュレーションクライアントは、前記ユーザ識別情報を含めて前記起動要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバは、
前記起動要求を受け付けた場合に、当該起動要求に含まれるユーザ識別情報に関連付けられた処理データを前記共有記憶装置から取得し、取得した処理データに基づいて前記アプリケーションを起動し、
前記終了要求を受け付けた場合に、前記アプリケーションの起動に用いられた処理データを前記起動要求に含まれるユーザ識別情報に関連付けて前記共有記憶装置へ格納することを特徴とする請求項１４に記載のデータベースアクセスシステム。
【請求項１６】
前記共有記憶装置は、前記アプリケーションの実行形式のプログラムをさらに格納し、
前記エミュレーションサーバは、前記起動要求を受け付けた場合に、前記共有記憶装置から前記実行形式のプログラムを取得し、取得した実行形式のプログラムを実行することにより前記アプリケーションを起動することを特徴とする請求項１４又は１５に記載のデータベースアクセスシステム。
【請求項１７】
前記共有記憶装置は、前記実行形式のプログラムを前記ユーザ識別情報ごとにさらに関連付けて格納し、当該関連付けられた実行形式のプログラムとは別に、前記アプリケーションの最新の実行形式のプログラムをさらに格納し、
前記エミュレーションサーバは、
前記起動要求を受け付けた場合に、当該起動要求に含まれるユーザ識別情報に関連付けられた実行形式のプログラムが、最新であるか否かを判定し、最新でないと判定した場合、前記共有記憶装置から前記最新の実行形式のプログラムを取得し、当該取得した最新の実行形式のプログラムを実行することにより前記アプリケーションを起動し、
前記終了要求を受け付けた場合に、前記取得した最新の実行形式のプログラムを前記起動要求に含まれるユーザ識別情報に関連付けて前記共有記憶装置へ格納することを特徴とする請求項１６に記載のデータベースアクセスシステム。
【請求項１８】
認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置と、
前記認証情報を格納する記憶部と、前記データベースへのアクセスを要求するアプリケーションと、操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備えるアクセス制御装置と、
前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備える端末と、
を用いるデータベースアクセス方法であって、
前記エミュレーションクライアントにおいて、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバにおいて、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、
前記アプリケーションにおいて、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、
前記データベース装置において、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理することを特徴とするデータベースアクセス方法。
【請求項１９】
認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置に対して複数の端末からのアクセスを制御するためのデータベースアクセス方法であって、
前記認証情報を格納する記憶部と、
前記データベースへアクセスを要求するアプリケーションと、
操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備える複数のアクセス制御装置を備え、
前記複数の端末のそれぞれは、前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備え、
前記エミュレーションクライアントにおいて、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、
前記エミュレーションサーバにおいて、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、
前記アプリケーションにおいて、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、
前記データベース装置において、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理することを特徴とするデータベースアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセスシステム及び方法に関し、特に、ユーザ端末からデータベースへのアクセスを制御するデータベースアクセスシステム及び方法に関する。
【背景技術】
【０００２】
現在、企業の業務システムとしては、クライアント／サーバ型のシステム（以下、「ＣＳシステム」という。）が普及しており、既に長年の運用実績により信頼性の高い情報システムが多い。また、近年は、企業の業務システムにおいて、セキュリティの確保の要請が高まっている。例えば、業務システムへのログインのためのＩＤ及びパスワードの管理が課題となっている。
【０００３】
特許文献１には、ログインに対するセキュリティ性を確保するための情報処理システムに関する技術が開示されている。特許文献１にかかる情報処理システムは、接続ＩＤ及び接続パスワードによりネットワークを介してアクセス可能とされた第１の情報処理装置と、第１の情報処理装置に接続ＩＤ及び接続パスワードに基づいてアクセスする第２の情報処理装置とを有する。そして、当該第１の情報処理装置は、第２の情報処理装置との接続後、接続パスワードを生成し、更新する接続パスワード生成更新手段を有する。また、当該第２の情報処理装置は、第１の情報処理装置により生成し、更新された接続パスワードを記憶する接続パスワード記憶手段と、次回の通信時に接続パスワード記憶手段に記憶された接続パスワードに基づいて第１の情報処理装置との接続を行なう接続手段とを有することを特徴とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２２８０４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１５は、従来のＣＳシステムの一例である業務システム９０の全体構成を示すブロック図である。業務システム９０は、例えば、企業における業務に関するデータをデータベースにより管理し、アクセス権限を有するユーザにのみ、閲覧又は更新をさせるためにアクセス制限を行ったＣＳシステムである。業務システム９０は、業務サーバ装置９１と、ユーザ端末９２とを備える。ユーザ端末９２は、業務の担当者等のユーザが操作する端末装置である。そして、ユーザ端末９２は、操作に応じて業務サーバ装置９１に対してアクセス要求を送信する。業務サーバ装置９１は、ユーザ端末９２からのアクセス要求に応じて応答を行う。その後、ユーザ端末９２は、応答結果を出力する。業務サーバ装置９１は、一般的なコンピュータ装置であり、データベースサーバ９１０と、アプリケーションサーバ９１２とを備える。また、ユーザ端末９２は、一般的なコンピュータ装置であり、クライアントアプリケーション９２１と、記憶部９２２とを備える。
【０００６】
データベースサーバ９１０は、いわゆるＤＢＭＳ（DataBase Management System）であり、データベース９１１へのアクセスを処理するソフトウェアである。また、データベース９１１は、業務に関するデータの集合であり、当該データの集合が格納された記憶領域である。例えば、データベースサーバ９１０がデータベース９１１への参照要求を受け付けた場合、データベースサーバ９１０は、データベース９１１に格納されたデータを読み出し、要求元へ返信する。また、データベース９１１への更新要求を受け付けた場合、データベースサーバ９１０は、データベース９１１に格納されたデータに対して更新を行い、更新の成否を要求元へ返信する。特に、データベースサーバ９１０は、アクセスを処理する前に、アクセス要求に含まれる認証情報に基づき認証を行い、認証されたアクセス要求に対してのみ処理を行う。
【０００７】
アプリケーションサーバ９１２は、クライアントアプリケーション９２１からの処理要求に応じて、業務システム９０における各種機能を提供するソフトウェアである。特に、処理要求に含まれる認証情報に基づき認証を行い、認証された処理要求に対してのみ処理を行う。そして、アプリケーションサーバ９１２は、認証された処理要求に対する処理として、データベースサーバ９１０へのアクセスを行う場合がある。この場合、アプリケーションサーバ９１２は、データベースサーバ９１０のクライアントとして動作する。つまり、アプリケーションサーバ９１２は、クライアントアプリケーション９２１からの処理要求に応じて、データベースサーバ９１０へのアクセス要求を送信し、データベースサーバ９１０からの応答をクライアントアプリケーション９２１へ返信する。
【０００８】
記憶部９２２は、ログインＩＤ９２３と、パスワード９２４とを格納する不揮発性の記憶装置である。ログインＩＤ９２３は、データベースサーバ９１０に対するアクセス権限を有する識別情報であり、文字情報である。パスワード９２４は、ログインＩＤ９２３と組み合わせて用いられる文字情報である。ログインＩＤ９２３とパスワード９２４とは、組み合わせることにより、データベースサーバ９１０の認証情報となる。
【０００９】
クライアントアプリケーション９２１は、ユーザの操作に応じて、アプリケーションサーバ９１２へ処理要求を行うクライアントとして動作するソフトウェアである。このとき、ユーザから入力されるアプリケーションサーバ９１２における認証情報を含めて処理要求を行う。例えば、ユーザが業務システム９０の利用を開始する際のログイン処理や、ユーザが画面を操作する処理について、クライアントアプリケーション９２１は、アプリケーションサーバ９１２へ処理要求を送信する。そして、アプリケーションサーバ９１２からの処理結果を受信し、画面等に出力する。
【００１０】
また、クライアントアプリケーション９２１は、処理内容に応じてデータベースサーバ９１０へ直接、アクセス要求を行う。つまり、クライアントアプリケーション９２１は、データベースサーバ９１０のクライアントとしても動作する。このとき、クライアントアプリケーション９２１は、記憶部９２２からログインＩＤ９２３及びパスワード９２４を取得し、アクセス要求に含めてデータベースサーバ９１０へ送信する。例えば、クライアントアプリケーション９２１の起動時に併せて、データベース９１１に格納された最新のデータを一括して取得する場合等である。または、業務システム９０にログインが許可されたユーザからの操作に応じて、データベースサーバ９１０へ直接、アクセス要求を行う場合もある。
【００１１】
アプリケーションサーバ９１２における認証情報は、業務システム９０がユーザを識別し、当該ユーザにおける業務システム９０の利用権限を制御するための情報である。つまり、ユーザごとに異なるＩＤ及びパスワードが発行され、アプリケーションサーバ９１２が管理を行う。そのため、通常は、ユーザに直接入力させる。また、アプリケーションサーバ９１２からデータベースサーバ９１０へアクセスするには、別途、ログインＩＤ９２３及びパスワード９２４といったデータベースサーバ９１０の認証情報が必要となる。しかし、アプリケーションサーバ９１２とデータベースサーバ９１０とでそれぞれユーザごとに認証情報を管理するのは煩雑である。また、アプリケーションサーバ９１２は、ユーザごとにアクセス制限を行うものであり、データベースサーバ９１０は、参照や更新といったアクセス要求ごとにアクセス制限を行うものである。そのため、データベースサーバ９１０の認証情報は、固定値を用いることが多い。そして、アプリケーションサーバ９１２又はクライアントアプリケーション９２１は、データベースサーバ９１０の認証情報を自己が参照可能な記憶領域に格納しておき、アクセス要求の際に取得し、アクセス要求に含めて送信する。つまり、ユーザが操作するユーザ端末９２内の記憶部９２２にデータベースサーバ９１０の認証情報であるログインＩＤ９２３及びパスワード９２４が格納されていることが一般的であった。
【００１２】
ユーザ端末９２を操作可能なユーザが限定されている場合は問題がなかったが、近年、業務の拡大、利用者の増加に伴い、ユーザ端末９２を業務システム９０へのアクセス権限のないユーザが利用可能な場所に配置する必要性が高まってきた。そのため、データベース９１１へのアクセス権限を有さないユーザが、ユーザ端末９２内に保持された認証情報にファイルシステム等を介して直接、アクセスすることが可能となり、セキュリティの確保が十分でないという問題があった。
【００１３】
セキュリティを確保するためには、クライアントアプリケーション９２１、アプリケーションサーバ９１２及びデータベースサーバ９１０を改修して、ログインＩＤ９２３及びパスワード９２４をユーザ端末９２内に有さない形とすることも考えられる。そのためには、ＣＳシステムに対してアーキテクチャを含めた大規模な改修が必要とされる。このようなＣＳシステムは、長年の運用実績があるが、同時に長年の機能追加の繰り返しに伴い、処理が複雑であることが多い。そして、大規模な改修には、長期間の開発に伴う開発コストや予期せぬ不具合の発生などのリスクが高い。さらに、適用技術が古いため、技術情報や技術者の確保等の課題が大きい。そのため、ＣＳシステムに大規模な改修を行うことは容易ではない。尚、特許文献１は、上述した問題を解決するためのものではない。
【００１４】
本発明は、このような問題を解決するためになされたものであり、業務システムに関する情報をセキュリティの高い領域に保存することにより、既存の業務システム自体に改修を加えずに、セキュリティを確保して、従来通りの機能を実現するためのデータベースアクセスシステム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の態様にかかるデータベースアクセスシステムは、認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置と、前記認証情報を格納する記憶部と、前記データベースへのアクセスを要求するアプリケーションと、操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備えるアクセス制御装置と、前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備える端末と、を備えるデータベースアクセスシステムであって、前記エミュレーションクライアントは、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバは、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、前記アプリケーションは、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、前記データベース装置は、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理する。
【００１６】
また、前記アプリケーションは、前記アクセス要求に対する応答データを前記データベース装置から受信した場合に、受信した応答データを画面情報として出力し、前記エミュレーションサーバは、前記アプリケーションにより出力された画面情報を画像データとして前記エミュレーションクライアントへ送信し、前記エミュレーションクライアントは、前記エミュレーションサーバから受信した画像データから画面情報を生成することが望ましい。
【００１７】
さらに、前記記憶部は、前記データベースに格納されたデータの一部である部分データをさらに格納し、前記エミュレーションクライアントは、前記部分データを参照するための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記アプリケーションは、前記エミュレーションサーバにおける操作により前記部分データの参照を要求する場合に、前記データベース装置へ参照要求を送信せずに、前記記憶部から部分データを取得し、取得した部分データを画面情報として出力することが望ましい。
【００１８】
さらに、前記エミュレーションクライアントは、前記部分データを更新するための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記アプリケーションは、前記エミュレーションサーバにおける操作により前記部分データの更新を要求する場合に、前記記憶部に格納された部分データを更新し、前記取得した認証情報と前記部分データの更新内容とを含めた更新要求を前記データベース装置へ送信することが望ましい。
【００１９】
また、前記部分データは、前記データベースに格納された全てのデータの内、更新頻度の少ないデータであるとよい。
【００２０】
さらに、前記エミュレーションサーバと前記エミュレーションクライアントとの間で暗号化したデータを送受信するとよい。
【００２１】
本発明の第２の態様にかかるデータベースアクセスシステムは、認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置に対して複数の端末からのアクセスを制御する複数のアクセス制御装置を備えるデータベースアクセスシステムであって、前記複数のアクセス制御装置のそれぞれは、前記認証情報を格納する記憶部と、前記データベースへアクセスを要求するアプリケーションと、操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備え、前記複数の端末のそれぞれは、前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備え、前記エミュレーションクライアントは、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバは、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、前記アプリケーションは、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、前記データベース装置は、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理する。
【００２２】
また、前記アプリケーションは、前記アクセス要求に対する応答データを前記データベース装置から受信した場合に、受信した応答データを画面情報として出力し、前記エミュレーションサーバは、前記アプリケーションにより出力された画面情報を画像データとして前記操作要求を受け付けたエミュレーションクライアントへ送信し、前記エミュレーションクライアントは、前記エミュレーションサーバから受信した画像データから画面情報を生成することが望ましい。
【００２３】
また、前記エミュレーションクライアントは、前記アプリケーションの操作を開始するための起動要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバは、前記エミュレーションクライアントから前記起動要求を受け付けた場合に、前記複数のアクセス制御装置のいずれかにおけるアプリケーションの処理に用いられた処理データを取得し、当該エミュレーションサーバが属するアクセス制御装置が備えるアプリケーションを起動することが望ましい。
【００２４】
また、前記処理データは、前記データベースに格納されたデータの一部である部分データを含み、前記アプリケーションは、起動時に、前記エミュレーションサーバにより取得された前記処理データに含まれる部分データと、前記データベースに格納された部分データとが一致するか否かを判定し、一致しないと判定した場合に、前記データベース装置から差分のデータを取得し、取得した差分のデータを用いて当該取得された部分データを更新するとよい。
【００２５】
さらに、前記部分データは、前記データベースに格納された全てのデータの内、更新頻度の少ないデータであるとよい。
【００２６】
また、前記エミュレーションクライアントは、前記部分データを更新するための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記アプリケーションは、前記エミュレーションサーバにおける操作により前記部分データの更新を要求する場合に、前記記憶部に格納された部分データを更新し、前記取得した認証情報と前記部分データの更新内容とを含めた更新要求を前記データベース装置へ送信することが望ましい。
【００２７】
また、前記データベース装置は、前記アプリケーションからの前記更新要求に含まれる認証情報に基づき認証し、認証された場合に、前記更新要求に含まれる更新内容に基づいて前記データベースに格納された部分データを更新し、前記更新要求を送信したアプリケーション以外のアプリケーションへ当該更新内容を送信し、前記更新要求を送信したアプリケーション以外のアプリケーションは、前記データベース装置から前記更新内容を受信した場合に、前記取得した部分データを当該受信した更新内容により更新するとよい。
【００２８】
また、前記データベースアクセスシステムは、前記処理データを格納し、前記複数のアクセス制御装置との間で共有される記憶装置である共有記憶装置をさらに備え、前記エミュレーションサーバは、前記起動要求を受け付けた場合に、前記共有記憶装置から前記処理データを取得し、前記アプリケーションを起動し、前記アプリケーションは、前記取得された処理データを用いて処理を行い、前記エミュレーションクライアントは、前記アプリケーションの操作を終了するための終了要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバは、前記エミュレーションクライアントから前記終了要求を受け付けた場合に、前記アプリケーションを終了し、前記処理に用いられた処理データを前記共有記憶装置へ格納することが望ましい。
【００２９】
さらに、前記共有記憶装置は、ユーザを識別するための複数のユーザ識別情報ごとに、前記処理データを関連付けて格納し、前記エミュレーションクライアントは、前記ユーザ識別情報を含めて前記起動要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバは、前記起動要求を受け付けた場合に、当該起動要求に含まれるユーザ識別情報に関連付けられた処理データを前記共有記憶装置から取得し、取得した処理データに基づいて前記アプリケーションを起動し、前記終了要求を受け付けた場合に、前記アプリケーションの起動に用いられた処理データを前記起動要求に含まれるユーザ識別情報に関連付けて前記共有記憶装置へ格納することが望ましい。
【００３０】
また、前記共有記憶装置は、前記アプリケーションの実行形式のプログラムをさらに格納し、前記エミュレーションサーバは、前記起動要求を受け付けた場合に、前記共有記憶装置から前記実行形式のプログラムを取得し、取得した実行形式のプログラムを実行することにより前記アプリケーションを起動するとよい。
【００３１】
さらに、前記共有記憶装置は、前記実行形式のプログラムを前記ユーザ識別情報ごとにさらに関連付けて格納し、当該関連付けられた実行形式のプログラムとは別に、前記アプリケーションの最新の実行形式のプログラムをさらに格納し、前記エミュレーションサーバは、前記起動要求を受け付けた場合に、当該起動要求に含まれるユーザ識別情報に関連付けられた実行形式のプログラムが、最新であるか否かを判定し、最新でないと判定した場合、前記共有記憶装置から前記最新の実行形式のプログラムを取得し、当該取得した最新の実行形式のプログラムを実行することにより前記アプリケーションを起動し、前記終了要求を受け付けた場合に、前記取得した最新の実行形式のプログラムを前記起動要求に含まれるユーザ識別情報に関連付けて前記共有記憶装置へ格納するとよい。
【００３２】
本発明の第３の態様にかかるデータベースアクセス方法は、認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置と、前記認証情報を格納する記憶部と、前記データベースへのアクセスを要求するアプリケーションと、操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備えるアクセス制御装置と、前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備える端末と、を用いるデータベースアクセスシステム方法であって、前記エミュレーションクライアントにおいて、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバにおいて、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、前記アプリケーションにおいて、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、前記データベース装置において、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理する。
【００３３】
本発明の第４の態様にかかるデータベースアクセス方法は、認証情報に基づき認証し、データベースへのアクセスを処理するデータベース装置に対して複数の端末からのアクセスを制御するためのデータベースアクセス方法であって、前記認証情報を格納する記憶部と、前記データベースへアクセスを要求するアプリケーションと、操作要求に応じて前記アプリケーションの操作をエミュレートするエミュレーションサーバと、を備える複数のアクセス制御装置を備え、前記複数の端末のそれぞれは、前記エミュレーションサーバに対するクライアントであるエミュレーションクライアントを備え、前記エミュレーションクライアントにおいて、前記データベースへのアクセスを行うための前記アプリケーションの操作要求を前記エミュレーションサーバへ送信し、前記エミュレーションサーバにおいて、前記エミュレーションクライアントからの操作要求に応じて、前記アプリケーションの操作をエミュレートし、前記アプリケーションにおいて、前記エミュレーションサーバにおける操作により前記データベースへのアクセスを要求する場合に、前記記憶部から認証情報を取得し、取得した認証情報を含めて前記データベース装置へアクセス要求を送信し、前記データベース装置において、前記アプリケーションからのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、前記データベースへのアクセスを処理する。
【発明の効果】
【００３４】
本発明によれば、業務システムに関する情報をセキュリティの高い領域に保存することにより、既存の業務システム自体に改修を加えずに、セキュリティを確保して、従来通りの機能を実現するためのデータベースアクセスシステム及び方法を提供することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態１にかかるデータベースアクセスシステムの全体構成を示すブロック図である。
【図２】本発明の実施の形態１にかかるデータベース装置のハードウェア構成を示すブロック図である。
【図３】本発明の実施の形態１にかかるアクセス制御装置のハードウェア構成を示すブロック図である。
【図４】本発明の実施の形態１にかかるユーザ端末のハードウェア構成を示すブロック図である。
【図５】本発明の実施の形態１にかかるデータベースアクセス処理の流れを示すシーケンス図である。
【図６】本発明の実施の形態１にかかるエミュレーション処理の流れを示すフローチャートである。
【図７】本発明の実施の形態１にかかるアクセス制御処理の流れを示すフローチャートである。
【図８】本発明の実施の形態２にかかるデータベースアクセスシステムの全体構成を示すブロック図である。
【図９】本発明の実施の形態２にかかるアクセス制御装置の構成を示すブロック図である。
【図１０】本発明の実施の形態２にかかるデータベース装置のハードウェア構成を示すブロック図である。
【図１１】本発明の実施の形態２にかかるアクセス制御装置のハードウェア構成を示すブロック図である。
【図１２】本発明の実施の形態２にかかるユーザ端末のデータベースアクセス処理の流れを示すフローチャートである。
【図１３】本発明の実施の形態２にかかるエミュレーションサーバの処理の流れを示すフローチャートである。
【図１４】本発明の実施の形態２にかかるアプリケーションの処理の流れを示すフローチャートである。
【図１５】従来のＣＳシステムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００３７】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかるデータベースアクセスシステム１００の全体構成を示すブロック図である。データベースアクセスシステム１００は、データベース装置１と、アクセス制御装置２と、ユーザ端末３とを備える。データベースアクセスシステム１００は、少なくとも１台のユーザ端末３からデータベース装置１が備えるデータベース１１に対するアクセスをアクセス制御装置２により制御するための情報システムである。例えば、データベースアクセスシステム１００は、外国為替の取引を扱う情報システムである。また、データベース装置１及びアクセス制御装置２は、セキュリティの確保された場所、例えば、データセンタ等に設置されているものとし、ユーザ端末３は、相対的にセキュリティの確保されにくい場所、例えば、企業の各部拠点等に設置されているものとする。
【００３８】
データベース装置１は、少なくともデータベースサーバ１０が稼働するコンピュータ装置である。データベースサーバ１０は、認証情報に基づき認証し、データベース１１へのアクセスを処理するソフトウェアである、いわゆるＤＢＭＳ（DataBase Management System）である。データベース１１は、業務に関するデータの集合であり、当該データの集合が格納された記憶領域である。ここでは、例えば、データベース１１は、マスタデータ１２と、取引データ１３とを格納する。マスタデータ１２は、取引に関わる顧客に関するデータであり、例えば、顧客の名称、住所、電話番号、担当者の氏名や所属部署等の情報である。取引データ１３は、取引に関するデータであり、例えば、取引元及び取引先の顧客の組み合わせや取引額等を含む。また、取引データ１３には、取引に基づき決済された結果の持ち高や損益に関する情報も含むものとする。マスタデータ１２は、言い換えると、データベース１１に格納されたデータの一部である部分データである。また、マスタデータ１２は、データベース１１に格納された全てのデータの内、例えば取引データ１３と比べて、更新頻度の少ないデータである。尚、マスタデータ１２及び取引データ１３は、データベース１１に格納されるデータの一例であり、これに限定されない。また、データベース装置１は、データベースサーバ１０の他に、データベースアクセスシステム１００へのユーザのログイン処理等を制御するためのアプリケーションサーバを備え、アプリケーションサーバを介してデータベースサーバ１０へアクセス要求を行っても構わない。
【００３９】
アクセス制御装置２は、ユーザ端末３からデータベース１１に対するアクセスを制御するコンピュータ装置である。アクセス制御装置２は、記憶部２０と、アプリケーション２１と、エミュレーションサーバ２２とを備える。記憶部２０は、認証情報４１と、マスタデータ４２とを格納する不揮発性の記憶装置である。認証情報４１は、データベースサーバ１０において認証可能な情報である。例えば、認証情報４１は、データベースサーバ１０へのアクセス権限を有するＩＤ及びパスワードである。マスタデータ４２は、マスタデータ１２と同等の内容を示すデータである。
【００４０】
アプリケーション２１は、データベース１１へのアクセスを要求するソフトウェアである。つまり、アプリケーション２１は、データベースサーバ１０に対するクライアントとして動作する。アプリケーション２１は、ディスプレイ等の表示装置（不図示）へ画面情報を出力し、マウス及びキーボード等の入力装置（不図示）からの操作指示に応じて動作する対話型のソフトウェアである。尚、上述したようにデータベース装置１がアプリケーションサーバを備える場合、アプリケーション２１は、当該アプリケーションサーバに対するクライアントとしての機能も有するものとする。
【００４１】
エミュレーションサーバ２２は、操作要求に応じてアプリケーション２１の操作をエミュレートするソフトウェアである。ここで、「エミュレートする」とは、アプリケーション２１への入力装置からの操作指示を代行してアプリケーション２１に対して入力し、アプリケーション２１からの表示装置へ画面情報の出力を取得し、操作指示元へ通知するものとする。言い換えると、エミュレーションサーバ２２は、アプリケーション２１における入力装置及び表示装置として動作を仲介する。
【００４２】
ユーザ端末３は、少なくともエミュレーションクライアント３１が稼働するコンピュータ装置である。ユーザ端末３は、データベースアクセスシステム１００の利用者であるユーザから直接操作される端末である。エミュレーションクライアント３１は、エミュレーションサーバ２２に対するクライアントとして動作する。
【００４３】
ここで、データベースアクセスシステム１００の機能について説明する。まず、エミュレーションクライアント３１は、データベース１１へのアクセスを行うために入力装置（不図示）から入力された、アプリケーション２１の操作要求をエミュレーションサーバ２２へ送信する。次に、エミュレーションサーバ２２は、エミュレーションクライアント３１からの操作要求に応じて、アプリケーション２１の操作をエミュレートする。そして、アプリケーション２１は、エミュレーションサーバ２２における操作によりデータベース１１へのアクセスを要求する場合に、記憶部２０から認証情報４１を取得し、取得した認証情報４１を含めてデータベース装置１へアクセス要求を送信する。その後、データベースサーバ１０は、アプリケーション２１からのアクセス要求に含まれる認証情報に基づき認証し、認証された場合に、データベース１１へのアクセスを処理する。このように、まず、業務システムに関する情報である認証情報４１やマスタデータ４２をセキュリティの高い領域に設置されたアクセス制御装置２に保持させる。そして、相対的にセキュリティの低い領域にいるユーザは、ユーザ端末３によりアプリケーション２１を介してデータベース１１へのアクセスを行うことができる。そのため、ユーザは、アクセス制御装置２を直接操作することなくアプリケーション２１を介してデータベース１１へのアクセスを行うことができる。言い換えると、ユーザは、アクセス制御装置２を直接操作することができないため、アクセス制御装置２の記憶部２０に格納された認証情報４１及びマスタデータ４２を、エミュレーションクライアント３１を通さずに参照することができない。よって、セキュリティを確保しつつ、業務を行うことが可能となる。
【００４４】
また、アプリケーション２１は、アクセス要求に対する応答データをデータベース装置１から受信した場合に、受信した応答データを画面情報として出力する。そして、エミュレーションサーバ２２は、アプリケーション２１により出力された画面情報を画像データとしてエミュレーションクライアント３１へ送信する。そして、エミュレーションクライアント３１は、エミュレーションサーバ２２から受信した画像データから画面情報を生成し、表示装置（不図示）に出力する。これにより、アプリケーション２１に出力されるデータベースサーバ１０へのアクセスに対する応答と同等の内容を、ユーザ端末３において表示することができる。そのため、ユーザは、アクセス制御装置２の表示装置を直接見る必要がなく、相対的にセキュリティの低い領域にいながら、アプリケーション２１を遠隔操作して業務を行うことができる。つまり、既存のアプリケーション２１やデータベース装置１に改修を加えずに、セキュリティを確保して、ユーザ端末３からデータベース１１へのアクセスを実現することができる。
【００４５】
さらに、エミュレーションクライアント３１は、マスタデータ４２を参照するためのアプリケーション２１の操作要求をエミュレーションサーバ２２へ送信する。アプリケーション２１は、エミュレーションサーバ２２における操作によりマスタデータ４２の参照を要求する場合に、データベース装置１へ参照要求を送信せずに、記憶部２０からマスタデータ４２を取得し、取得したマスタデータ４２を画面情報として出力する。これにより、データベース１１へのアクセス回数の軽減に伴い、データベース１１への同時アクセス回数も軽減する。よって、データベースアクセスシステム１００全体の処理負荷を軽減することができる。
【００４６】
また、エミュレーションクライアント３１は、マスタデータ４２を更新するためのアプリケーション２１の操作要求をエミュレーションサーバ２２へ送信する。そして、アプリケーション２１は、エミュレーションサーバ２２における操作によりマスタデータ４２の更新を要求する場合に、記憶部２０に格納されたマスタデータ４２を更新し、取得した認証情報４１とマスタデータ４２の更新内容とを含めた更新要求をデータベース装置１へ送信する。これにより、記憶部２０に格納されたマスタデータ４２とデータベース１１に格納されたマスタデータ１２との同期を効率的に取ることができる。特に、マスタデータ、すなわち、部分データは、データベース１１に格納された全てのデータの内、更新頻度の少ないデータであるため、部分データの更新頻度及び転送データ量を抑えることができる。
【００４７】
さらに、エミュレーションサーバ２２とエミュレーションクライアント３１との間で暗号化したデータを送受信することが望ましい。これにより、通信データを傍受されても解読されにくくなり、セキュリティを高めることができる。
【００４８】
図２は、本発明の実施の形態１にかかるデータベース装置１のハードウェア構成を示すブロック図である。データベース装置１は、ＣＰＵ（Central Processing Unit）１０１と、ＲＡＭ（Random Access Memory）１０２と、ＲＯＭ（Read Only Memory）１０３と、通信部１０４と、ハードディスク１０５とを備える。また、ハードディスク１０５は、不揮発性記憶装置であり、ＯＳ（Operating System）１１１と、データベース管理プログラム１１２と、マスタデータ１２と、取引データ１３とを格納する。データベース管理プログラム１１２は、データベースサーバ１０によるデータベース１１の管理処理が実装されたプログラムである。尚、マスタデータ１２及び取引データ１３は、ハードディスク１０５とは、異なる記憶装置に格納されていてもよい。
【００４９】
ＣＰＵ１０１は、データベース装置１における各種処理、ＲＡＭ１０２、ＲＯＭ１０３、通信部１０４及びハードディスク１０５へのアクセス等を制御する。通信部１０４は、アクセス制御装置２との通信を行う。
【００５０】
データベース装置１は、ＣＰＵ１０１が、ＲＡＭ１０２、ＲＯＭ１０３又はハードディスク１０５に格納されたＯＳ１１１及びデータベース管理プログラム１１２を読み込み、実行する。これにより、データベース装置１は、データベースサーバ１０として動作する。尚、データベース装置１は、複数台に分散して実現されても構わない。
【００５１】
図３は、本発明の実施の形態１にかかるアクセス制御装置２のハードウェア構成を示すブロック図である。アクセス制御装置２は、ＣＰＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、通信部２０４と、ハードディスク２０５とを備える。また、ハードディスク２０５は、不揮発性記憶装置であり、ＯＳ５１と、アプリケーションプログラム５２と、エミュレーションサーバプログラム５３と、認証情報４１と、マスタデータ４２とを格納する。アプリケーションプログラム５２は、アプリケーション２１における処理が実装されたプログラムである。エミュレーションサーバプログラム５３は、エミュレーションサーバ２２における処理が実装されたプログラムである。尚、認証情報４１及びマスタデータ４２は、ハードディスク２０５とは、異なる記憶装置に格納されていてもよい。
【００５２】
ＣＰＵ２０１は、アクセス制御装置２における各種処理、ＲＡＭ２０２、ＲＯＭ２０３、通信部２０４及びハードディスク２０５へのアクセス等を制御する。通信部２０４は、データベース装置１及びユーザ端末３との通信を行う。
【００５３】
アクセス制御装置２は、ＣＰＵ２０１が、ＲＡＭ２０２、ＲＯＭ２０３又はハードディスク２０５に格納されたＯＳ５１、アプリケーションプログラム５２及びエミュレーションサーバプログラム５３を読み込み、実行する。これにより、アクセス制御装置２は、アプリケーション２１及びエミュレーションサーバ２２として動作する。尚、アクセス制御装置２は、複数台に分散して実現されても構わない。
【００５４】
図４は、本発明の実施の形態１にかかるユーザ端末３のハードウェア構成を示すブロック図である。ユーザ端末３は、ＣＰＵ３０１と、ＲＡＭ３０２と、ＲＯＭ３０３と、通信部３０４と、ハードディスク３０５とを備える。また、ハードディスク３０５は、不揮発性記憶装置であり、ＯＳ３１１と、エミュレーションクライアントプログラム３１２とを格納する。エミュレーションクライアントプログラム３１２は、エミュレーションクライアント３１における処理が実装されたプログラムである。
【００５５】
ＣＰＵ３０１は、ユーザ端末３における各種処理、ＲＡＭ３０２、ＲＯＭ３０３、通信部３０４及びハードディスク３０５へのアクセス等を制御する。通信部３０４は、アクセス制御装置２との通信を行う。
【００５６】
ユーザ端末３は、ＣＰＵ３０１が、ＲＡＭ３０２、ＲＯＭ３０３又はハードディスク３０５に格納されたＯＳ３１１及びエミュレーションクライアントプログラム３１２を読み込み、実行する。これにより、ユーザ端末３は、エミュレーションクライアント３１として動作する。尚、ユーザ端末３は、複数台存在しても構わない。その場合、複数のユーザ端末３のそれぞれがエミュレーションクライアント３１として動作する。
【００５７】
図５は、本発明の実施の形態１にかかるデータベースアクセス処理の流れを示すシーケンス図である。ここでは、ユーザ端末３の表示装置にアプリケーション２１への操作画面が表示されているものとする。まず、エミュレーションクライアント３１は、ユーザからのアプリケーション２１の操作の入力を受け付ける（Ｓ１０１）。例えば、エミュレーションクライアント３１は、入力装置を介してマウスカーソルの移動を示す信号及びキーボードのキー情報を受け付ける。次に、エミュレーションクライアント３１は、エミュレーションサーバ２２へ操作要求を送信する（Ｓ１０２）。すなわち、エミュレーションクライアント３１は、受け付けたアプリケーション２１の操作を示す情報を送信する。このとき、エミュレーションクライアント３１は、受け付けたアプリケーション２１の操作を示す情報を暗号化及び圧縮して送信する。
【００５８】
続いて、エミュレーションサーバ２２は、エミュレーションクライアント３１から受け付けた操作要求に応じてアプリケーション２１の操作をエミュレートする（Ｓ１０３）。すなわち、エミュレーションサーバ２２は、操作要求に含まれる操作を示す情報をアプリケーション２１に対して入力する。このとき、エミュレーションサーバ２２は、エミュレーションクライアント３１から受け付けた情報を解凍し、復号化した上で、エミュレートを行う。
【００５９】
そして、アプリケーション２１は、受け付けた操作に基づき動作を行う。ここでは、エミュレーションサーバ２２における操作によりデータベース１１へアクセスを要求する必要があるものとする。このとき、アプリケーション２１は、認証情報４１を記憶部２０から取得する（Ｓ１０４）。そして、アプリケーション２１は、取得した認証情報４１を含めてデータベースサーバ１０へアクセス要求を送信する（Ｓ１０５）。
【００６０】
そして、データベースサーバ１０は、受信したアクセス要求に含まれる認証情報４１に基づき認証を行う（Ｓ１０６）。例えば、データベースサーバ１０は、受け付けた認証情報４１と自己が保持する認証情報とを照合する。ここでは、照合が成功し、受信したアクセス要求が認証されたものとする。そして、データベースサーバ１０は、データベース１１へのアクセスを処理する（Ｓ１０７）。その後、データベースサーバ１０は、アクセス要求の要求元へ応答する（Ｓ１０８）。例えば、アクセス要求が参照要求である場合、データベースサーバ１０は、データベース１１からデータを読み出す。そして、データベースサーバ１０は、読み出したデータを要求元へ返信する。また、アクセス要求が更新要求である場合、データベースサーバ１０は、データベース１１に格納されたデータを更新する。そして、データベースサーバ１０は、更新の成否を要求元へ返信する。
【００６１】
続いて、アプリケーション２１は、データベースサーバ１０からの応答を受信し、その内容を画面情報として出力する（Ｓ１０９）。このとき、エミュレーションサーバ２２は、アプリケーション２１により出力された画面情報を画像データとしてエミュレーションクライアント３１へ送信する（Ｓ１１０）。このとき、エミュレーションサーバ２２は、画像データを暗号化及び圧縮して送信する。
【００６２】
そして、エミュレーションクライアント３１は、エミュレーションサーバ２２から画像データを受信し、受信した画像データから画像情報を生成し、画面に出力する（Ｓ１１１）。このとき、エミュレーションクライアント３１は、エミュレーションサーバ２２から受け付けた情報を解凍し、復号化した上で、画像情報を生成する。
【００６３】
図６は、本発明の実施の形態１にかかるエミュレーション処理の流れを示すフローチャートである。まず、エミュレーションサーバ２２は、エミュレーションクライアント３１から要求を受信する（Ｓ２０１）。ここで、受信する要求には、アプリケーション２１を起動するための起動要求、操作するための操作要求又は終了するための終了要求等が含まれる。次に、エミュレーションサーバ２２は、受信した要求がアプリケーション２１の終了要求以外であるか否かを判定する（Ｓ２０２）。
【００６４】
ステップＳ２０２において、終了要求以外であると判定された場合、エミュレーションサーバ２２は、要求に基づきアプリケーション２１の操作をエミュレートする（Ｓ２０３）。例えば、エミュレーションクライアント３１からの操作要求がデータを参照する処理に対応するボタン等をマウスにより押下するものである場合、エミュレーションサーバ２２は、アプリケーション２１が出力する画面情報において、操作要求により特定される座標においてクリックされた場合に発生するイベントを発生させる。これにより、アプリケーション２１において、データベースサーバ１０へのアクセス要求が発生する。
【００６５】
その後、エミュレーションサーバ２２は、アプリケーション２１の出力を受け付ける（Ｓ２０４）。すなわち、アプリケーション２１からの表示装置への出力情報を、出力先をエミュレーションサーバ２２として受け付ける。例えば、上述したように、アプリケーション２１におけるアクセス要求に対する応答の内容を出力として受け付ける。
【００６６】
そして、エミュレーションサーバ２２は、受け付けた出力を画像データへ変換する（Ｓ２０５）。つまり、アプリケーション２１が出力した画面情報をオブジェクトとしてではなく、単なる画像データに変換する。
【００６７】
その後、エミュレーションサーバ２２は、変換した画像データをエミュレーションクライアント３１へ送信する（Ｓ２０６）。これにより、エミュレーションクライアント３１との間のネットワークに流れる通信データ量が相対的に軽減し、通信速度の低下を防ぐことができる。また、エミュレーションクライアント３１において、画像データを画面情報として生成させることで、ユーザ端末３を使用するユーザに対して、直接、アクセス制御装置２においてアプリケーション２１を操作した場合と同等の使用感を与えることができる。
【００６８】
その後、エミュレーションクライアント３１から終了要求を受け付けるまでの間、ステップＳ２０１乃至Ｓ２０６を繰り返し実行する。
【００６９】
ステップＳ２０２において、終了要求であると判定された場合、エミュレーションサーバ２２は、アプリケーション２１に対するエミュレーション処理を終了する。
【００７０】
図７は、本発明の実施の形態１にかかるアクセス制御処理の流れを示すフローチャートである。ここでは、例えば、上述したようにエミュレーションサーバ２２による操作のエミュレートによりアプリケーションのイベントが発生したとする。このとき、まず、アプリケーション２１は、操作により発生したイベントを受け付ける（Ｓ３０１）。次に、アプリケーション２１は、受け付けたイベントが参照要求であるか又は更新要求であるかを判定する（Ｓ３０２）。尚、アプリケーション２１において発生するイベントは多数存在するが、ここでは説明のため、イベントが参照要求又は更新要求のいずれかであるものとする。そのため、その他のイベントの処理は、一般的な処理で構わない。
【００７１】
ステップＳ３０２において、イベントが参照要求であると判定された場合、アプリケーション２１は、参照要求の対象がマスタデータであるか否かを判定する（Ｓ３０３）。ステップＳ３０３において、対象がマスタデータであると判定された場合、アプリケーション２１は、記憶部２０からマスタデータ４２を取得する（Ｓ３０４）。そして、アプリケーション２１は、取得したマスタデータ４２を出力する（Ｓ３０５）。
【００７２】
ステップＳ３０３において、対象がマスタデータでないと判定された場合、例えば、取引データ１３等であると判定された場合、アプリケーション２１は、記憶部２０から認証情報４１を取得する（Ｓ３０６）。そして、アプリケーション２１は、取得した認証情報４１を含めてデータベースサーバ１０へ対象データの参照要求を送信する（Ｓ３０７）。その後、アプリケーション２１は、データベースサーバ１０から応答を受信し、出力する（Ｓ３０８）。
【００７３】
ステップＳ３０２において、イベントが更新要求であると判定された場合、アプリケーション２１は、更新要求の対象がマスタデータであるか否かを判定する（Ｓ３０９）。ステップＳ３０９において、対象がマスタデータであると判定された場合、アプリケーション２１は、記憶部２０に格納されたマスタデータ４２を更新する（Ｓ３１０）。ステップＳ３１０の後又はステップＳ３０９において対象がマスタデータでないと判定された場合、アプリケーション２１は、記憶部２０から認証情報４１を取得する（Ｓ３１１）。そして、アプリケーション２１は、取得した認証情報４１を含めてデータベースサーバ１０へ対象データの更新要求を送信する（Ｓ３１２）。その後、アプリケーション２１は、データベースサーバ１０から応答を受信し、出力する（Ｓ３０８）。
【００７４】
このように、本発明の実施の形態１では、従来はユーザ端末３に保持されていた認証情報４１やマスタデータ４２といった業務システムに関する情報を、ユーザが直接操作することができないデータセンタ等のセキュリティの高い領域に設置されたアクセス制御装置２に保持することにより、セキュリティを確保することができる。その際、アプリケーション２１及びデータベースサーバ１０は、従来と同等の構成であり、アーキテクチャを変更するような改修を必要としない。そのため、既存の業務システム自体に改修を加えずに、セキュリティを確保して、従来通りの機能を実現することができる。例えば、本発明の実施の形態１は、図１５に示した業務システム９０に対しても適用可能である。その場合、ユーザ端末９２にエミュレーションサーバ２２を追加してアクセス制御装置２とし、ユーザ端末９２が設置された領域と比べてセキュリティの低い領域にユーザ端末３を設置することとなる。そして、ユーザ端末３からデータベース９１１へのアクセスにおいて、エミュレーションサーバ２２を介してクライアントアプリケーション９２１をエミュレートすることにより、上述した本発明の実施の形態１と同等の効果を得ることができる。つまり、既存のデータベースサーバ９１０、アプリケーションサーバ９１２及びクライアントアプリケーション９２１に改修を加えることなく、セキュリティを確保することが可能である。
【００７５】
＜発明の実施の形態２＞
本発明の実施の形態２では、複数のユーザ端末からのアクセスを複数のアクセス制御装置により分散して処理させることができる業務システム１００ａについて説明する。尚、本発明の実施の形態２は、本発明の実施の形態１の変形例であるため、同一の構成については、同一の符号を付し、適宜、重複する説明は省略する。
【００７６】
図８は、本発明の実施の形態２にかかるデータベースアクセスシステムの一例である業務システム１００ａの全体構成を示すブロック図である。業務システム１００ａは、データベース装置１ａと、アクセス制御装置２ａ、２ｂ、・・・２ｎと、共有記憶装置２１０と、負荷分散装置３０と、ユーザ端末３ａ、３ｂ、・・・３ｍとを備える。尚、アクセス制御装置２ａ、２ｂ、・・・２ｎは、少なくとも２台以上であればよい。また、ユーザ端末３ａ、３ｂ、・・・３ｍは、少なくとも２台以上であればよい。業務システム１００ａは、データベース装置１ａが備えるデータベース１１に対してユーザ端末３ａ、３ｂ、・・・３ｍからのアクセスをアクセス制御装置２ａ、２ｂ、・・・２ｎにより制御するための情報システムである。例えば、業務システム１００ａは、外国為替の取引を扱う情報システムである。また、データベース装置１ａ、アクセス制御装置２ａ、２ｂ、・・・２ｎ及び負荷分散装置３０は、セキュリティの確保された場所、例えば、データセンタ等に設置されているものとし、ユーザ端末３ａ、３ｂ、・・・３ｍは、相対的にセキュリティの確保されにくい場所、例えば、企業の各部拠点等に設置されているものとする。
【００７７】
データベース装置１ａは、図１のデータベース装置１の構成に、ＡＰサーバ１４と、更新通知部１５とが追加されたものである。尚、データベースサーバ１０は、アクセス制御装置２ａ、２ｂ、・・・２ｎのいずれかのアプリケーションからのアクセス要求に応じて、認証情報に基づき認証し、データベース１１へのアクセスを処理するＤＢＭＳである。
【００７８】
ＡＰサーバ１４は、アクセス制御装置２ａ、２ｂ、・・・２ｎのいずれかのアプリケーションからの処理要求に応じて、業務システム１００ａにおける各種機能を提供するアプリケーションサーバである。そして、ＡＰサーバ１４は、処理要求に含まれる認証情報に基づき認証を行い、認証された処理要求に対してのみ処理を行う。そして、ＡＰサーバ１４は、認証された処理要求に対する処理として、データベースサーバ１０へのアクセスを行う場合がある。この場合、ＡＰサーバ１４は、データベースサーバ１０のクライアントとして動作する。つまり、ＡＰサーバ１４は、前記アプリケーションから処理要求に応じて、データベースサーバ１０へのアクセス要求を送信し、データベースサーバ１０からの応答を前記アプリケーションへ返信する。
【００７９】
更新通知部１５は、データベース１１を監視し、マスタデータ１２又は取引データ１３が更新されたことを検出する。検出した場合に、更新通知部１５は、アクセス制御装置２ａ、２ｂ、・・・２ｎの各アプリケーションへ、更新された内容の通知である更新通知を送信する。このとき、更新通知部１５は、少なくとも更新要求を送信した以外のアプリケーションへ更新通知を送信すればよい。
【００８０】
共有記憶装置２１０は、アクセス制御装置２ａ、２ｂ、・・・２ｎの間で共有される不揮発性の記憶装置である。共有記憶装置２１０は、ユーザＩＤ６１と、ユーザプロファイル情報６２と、最新実行形式ＰＧ６３とを格納する。ユーザＩＤ６１は、ユーザ端末３ａ、３ｂ、・・・３ｍを利用するユーザに発行されたユーザの識別情報である。ユーザＩＤ６１は、例えば、ログインＩＤである。ユーザプロファイル情報６２は、ユーザごとのログイン後の各種環境設定を含む情報であり、ユーザＩＤ６１と関連付けられた情報である。また、ユーザプロファイル情報６２は、設定情報６２１と、マスタデータ６２２と、実行形式ＰＧ６２３とを含む。設定情報６２１は、アクセス制御装置２ａ、２ｂ、・・・２ｎのいずれかにおいてアプリケーションを実行するための情報である。設定情報６２１は、例えば、当該アプリケーションの出力に用いられるユーザ端末３ａ、３ｂ、・・・３ｍに接続されたプリンタの設定等を含む。マスタデータ６２２は、マスタデータ１２と同等の内容を示すデータである。実行形式ＰＧ６２３は、アプリケーションの実行形式のコンピュータプログラムである。最新実行形式ＰＧ６３は、アプリケーションの実行形式のコンピュータプログラムの内、最新版であるが、ユーザＩＤ６１とは関連付けられていない。言い換えると、実行形式ＰＧ６２３はユーザプロファイル情報６２に含まれるため、ユーザＩＤ６１ごと関連付けられて格納されているが、最新版とは限らない。一方、最新実行形式ＰＧ６３は、実行形式ＰＧ６２３とは別に格納されている。
【００８１】
アクセス制御装置２ａ、２ｂ、・・・２ｎのそれぞれは、ユーザ端末３ａ、３ｂ、・・・３ｍのいずれかからデータベース１１に対するアクセスを制御するコンピュータ装置である。アクセス制御装置２ａ、２ｂ、・・・２ｎのそれぞれは、データベース装置１ａ、共有記憶装置２１０及び負荷分散装置３０と接続されている。
【００８２】
図９は、本発明の実施の形態２にかかるアクセス制御装置２ａの構成を示すブロック図である。尚、アクセス制御装置２ｂ、・・・２ｎの構成は、アクセス制御装置２ａと同等であるため、図示及び説明を省略する。
【００８３】
アクセス制御装置２ａは、記憶部２０と、アプリケーション２１ａと、エミュレーションサーバ２２ａと、を備える。記憶部２０は、認証情報４１と、ユーザプロファイル情報４３とを格納する不揮発性の記憶装置である。ユーザプロファイル情報４３は、共有記憶装置２１０から取得されたユーザプロファイル情報６２と同等であり、アプリケーション２１ａの処理に応じて適宜更新される。
【００８４】
アプリケーション２１ａは、業務システム１００ａと接続され、データベース１１へのアクセスを要求するソフトウェアである。アプリケーション２１ａは、図１のアプリケーション２１の機能に加え、更新通知部１５からの更新通知を受信した場合に、受信した更新内容に応じてデータを更新する。
【００８５】
エミュレーションサーバ２２ａは、負荷分散装置３０と接続され、図１のエミュレーションサーバ２２の機能に加え、ユーザプロファイル設定部２３を備える。エミュレーションサーバ２２ａは、操作要求に応じてアプリケーション２１ａの操作をエミュレートする。ユーザプロファイル設定部２３は、共有記憶装置２１０と接続され、アプリケーション２１ａの起動及び終了を制御し、起動時に共有記憶装置２１０からユーザプロファイル情報６２を取得し、記憶部２０へユーザプロファイル情報４３として格納し、終了時に、記憶部２０からユーザプロファイル情報４３を取得し、共有記憶装置２１０へユーザプロファイル情報６２として格納する。尚、ユーザプロファイル設定部２３が、エミュレーションサーバ２２ａに含まれない単独のソフトウェアである場合、エミュレーションサーバ２２ａの代わりに、図１のエミュレーションサーバ２２を用いることが可能である。その場合、エミュレーションサーバ２２は、アプリケーション２１ａではなく、ユーザプロファイル設定部２３が起動したプロセスであるアプリケーション２１ａに対して操作をエミュレートすることとなる。
【００８６】
図８に戻り、ユーザ端末３ａ、３ｂ、・・・３ｍは、業務システム１００ａの利用者である複数のユーザから直接操作される端末である。また、ユーザ端末３ａ、３ｂ、・・・３ｍは、負荷分散装置３０と接続され、負荷分散装置３０により割り当てられたアクセス制御装置２ａ、２ｂ、・・・２ｎのいずれかを介してデータベースサーバ１０へアクセスする。ユーザ端末３ａは、少なくとも、図１のエミュレーションクライアント３１と同等のエミュレーションクライアント３１ａが稼働するコンピュータ装置である。尚、ユーザ端末３ｂ、・・・３ｍの構成は、ユーザ端末３ａと同等であるため、図示及び説明を省略する。また、ユーザ端末３ａ、３ｂ、・・・３ｍは、サーバＯＳが稼働するコンピュータ装置（不図示）と接続され、ユーザＩＤ及びパスワードによりＯＳへのログイン処理を行うものとする。
【００８７】
負荷分散装置３０は、ユーザ端末３ａ、３ｂ、・・・３ｍと、アクセス制御装置２ａ、２ｂ、・・・２ｎとのそれぞれと接続されている。負荷分散装置３０は、ユーザ端末３ａ、３ｂ、・・・３ｍからの接続要求に対して、接続可能なアクセス制御装置２ａ、２ｂ、・・・２ｎの内、いずれかを割り当てるものである。尚、負荷分散装置３０は、公知なものであるため、詳細な説明及び図示を省略する。
【００８８】
ここで、業務システム１００ａの機能について説明する。前提として、ユーザ端末３ａ、３ｂ、・・・３ｍの内、ユーザ端末３ａがデータベースサーバ１０へアクセスする場合であり、負荷分散装置３０によりアクセス制御装置２ａ、２ｂ、・・・２ｎの内、アクセス制御装置２ａが割り当てられたものとする。
【００８９】
まず、エミュレーションクライアント３１ａは、データベース１１へのアクセスを行うためのアプリケーション２１ａの操作要求をエミュレーションサーバ２２ａへ送信する。次に、エミュレーションサーバ２２ａは、エミュレーションクライアント３１ａからの操作要求に応じて、アプリケーション２１ａの操作をエミュレートする。そして、アプリケーション２１ａは、エミュレーションサーバ２２ａにおける操作によりデータベース１１へのアクセスを要求する場合に、記憶部２０から認証情報４１を取得し、取得した認証情報４１を含めてデータベース装置１ａへアクセス要求を送信する。その後、データベースサーバ１０は、アプリケーション２１ａからのアクセス要求に含まれる認証情報４１に基づき認証し、認証された場合に、データベース１１へのアクセスを処理する。これにより、複数のユーザ端末からデータベースへのアクセスを制御するために、複数のアクセス制御装置を用いて負荷分散を行う場合であっても、上述した本発明の実施の形態１と同様の効果を奏することができる。
【００９０】
また、アプリケーション２１ａは、アクセス要求に対する応答データをデータベース装置１ａから受信した場合に、受信した応答データを画面情報として出力する。そして、エミュレーションサーバ２２ａは、アプリケーション２１ａにより出力された画面情報を画像データとして操作要求を受け付けたエミュレーションクライアント３１ａへ送信する。そして、エミュレーションクライアント３１ａは、エミュレーションサーバ２２ａから受信した画像データから画面情報を生成し、表示装置（不図示）に出力する。これにより、割り当てられたアクセス制御装置２ａから要求元のユーザ端末３ａへ適切に応答を返信することができ、上述した本発明の実施の形態１と同様の効果を奏することができる。
【００９１】
さらに、エミュレーションクライアント３１ａは、ユーザ端末３ａを操作するユーザのユーザＩＤ６１を含めて起動要求をエミュレーションサーバ２２ａへ送信する。そして、エミュレーションサーバ２２ａは、起動要求を受け付けた場合に、当該起動要求に含まれるユーザＩＤ６１に関連付けられたユーザプロファイル情報４３を共有記憶装置２１０から読み込んで記憶部２０へ格納し、記憶部２０から取得したユーザプロファイル情報４３に基づいてアプリケーション２１ａを起動する。その後、アプリケーション２１ａは、取得されたユーザプロファイル情報４３を用いて処理を行う。そして、エミュレーションクライアント３１ａは、アプリケーション２１ａの操作を終了するための終了要求をエミュレーションサーバ２２ａへ送信する。そして、エミュレーションサーバ２２ａは、エミュレーションクライアント３１ａから終了要求を受け付けた場合に、アプリケーション２１ａを終了し、処理に用いられたユーザプロファイル情報４３を起動要求に含まれるユーザＩＤ６１に関連付けて共有記憶装置２１０へ格納する。
【００９２】
これにより、同一のユーザＩＤを用いてアクセスを行う場合に、前回のアクセス時と異なるアクセス制御装置に属するアプリケーションを操作する場合に、前回の実行に使用された同一の設定情報を用いることができる。例えば、サーバＯＳにおける移動プロファイルの仕組みを利用することが可能であり、異なるアクセス制御装置間における各アプリケーションのユーザごとの環境設定を同一にすることができる。
【００９３】
また、アプリケーション２１ａは、起動時に、エミュレーションサーバ２２ａにより取得されたユーザプロファイル情報４３に含まれるマスタデータ４３２と、データベース１１に格納されたマスタデータ１２とが一致するか否かを判定し、一致しないと判定した場合に、データベース装置１ａから差分のデータを取得し、取得した差分のデータを用いて当該取得されたマスタデータ４３２を更新する。これにより、他のアプリケーションの処理において更新されたデータを基準としてデータベース１１との差分のみを更新することとなり、差分更新のデータ量を減らすことができる。また、ユーザプロファイル情報４３にマスタデータ４３２を含めることで、マスタデータ４３２とマスタデータ１２との同期を容易にすることができる。
【００９４】
また、エミュレーションクライアント３１ａは、マスタデータを更新するためのアプリケーション２１ａの操作要求をエミュレーションサーバ２２ａへ送信する。そして、アプリケーション２１ａは、エミュレーションサーバ２２ａにおける操作によりマスタデータの更新を要求する場合に、記憶部２０に格納されたマスタデータ４３２を更新し、取得した認証情報４１とマスタデータ４３２の更新内容とを含めた更新要求をデータベース装置１ａへ送信する。これにより、マスタデータの更新を効率的に行うことができる。
【００９５】
さらに、データベースサーバ１０は、アプリケーション２１ａからの更新要求に含まれる認証情報４１に基づき認証し、認証された場合に、更新要求に含まれる更新内容に基づいてデータベース１１に格納されたマスタデータ１２を更新する。そして、更新通知部１５は、更新要求を送信したアプリケーション以外のアプリケーションへ当該更新内容を更新通知として送信する。そして、更新要求を送信したアプリケーション以外のアプリケーションは、更新通知部１５から更新通知を受信した場合に、取得したマスタデータ４３２を当該受信した更新内容により更新する。これにより、アプリケーションが並行して稼働中に、他のアクセス制御装置で取得済みのマスタデータの更新を効率的に行うことができる。
【００９６】
また、エミュレーションサーバ２２ａは、起動要求を受け付けた場合に、当該起動要求に含まれるユーザＩＤ６１に関連付けられた実行形式ＰＧ４３３が、最新であるか否かを判定し、最新でないと判定した場合、共有記憶装置２１０から最新実行形式ＰＧ６３を読み込んで実行形式ＰＧ４３３として記憶部２０へ格納し、記憶部２０から実行形式ＰＧ４３３を取得し、当該取得した実行形式ＰＧ４３３を実行することによりアプリケーション２１ａを起動する。また、エミュレーションサーバ２２ａは、終了要求を受け付けた場合に、記憶部２０に格納された実行形式ＰＧ４３３を起動要求に含まれるユーザＩＤ６１に関連付けて共有記憶装置２１０へ格納する。これにより、ユーザごとの環境設定と併せてアプリケーションのバージョン管理を行うことができ、各アクセス制御装置へ個別にアプリケーションの最新版をインストールするという管理者の作業負担を軽減することができる。
【００９７】
図１０は、本発明の実施の形態２にかかるデータベース装置１ａのハードウェア構成を示すブロック図である。以下では、図２と同等の構成については説明を省略する。データベース装置１ａのハードディスク１０５は、データベース装置１に比べて、ＡＰサーバプログラム１１３及び更新通知プログラム１１４をさらに格納する。ＡＰサーバプログラム１１３は、ＡＰサーバ１４による処理が実装されたプログラムである。更新通知プログラム１１４は、更新通知部１５による処理が実装されたプログラムである。
【００９８】
データベース装置１ａは、ＣＰＵ１０１が、ＲＡＭ１０２、ＲＯＭ１０３又はハードディスク１０５に格納されたＯＳ１１１、データベース管理プログラム１１２、ＡＰサーバプログラム１１３及び更新通知プログラム１１４を読み込み、実行する。これにより、データベース装置１ａは、データベースサーバ１０、ＡＰサーバ１４及び更新通知部１５として動作する。尚、データベース装置１ａは、複数台に分散して実現されても構わない。また、データベースサーバ１０と、ＡＰサーバ１４と、更新通知部１５とは、異なるコンピュータ装置により実現されても構わない。
【００９９】
図１１は、本発明の実施の形態２にかかるアクセス制御装置２ａのハードウェア構成を示すブロック図である。以下では、図３と同等の構成については説明を省略する。アクセス制御装置２ａのハードディスク２０５は、アクセス制御装置２と比べて、アプリケーションプログラム５２、エミュレーションサーバプログラム５３及びマスタデータ４２がアプリケーションプログラム５２ａ、エミュレーションサーバプログラム５３ａ及びユーザプロファイル情報４３に置き換わり、ユーザプロファイル設定プログラム５４をさらに格納する。アプリケーションプログラム５２ａは、アプリケーション２１ａによる処理が実装されたプログラムである。エミュレーションサーバプログラム５３ａは、エミュレーションサーバ２２ａによる処理が実装されたプログラムである。また、ユーザプロファイル設定プログラム５４は、ユーザプロファイル設定部２３による処理が実装されたプログラムである。尚、ユーザプロファイル設定プログラム５４は、エミュレーションサーバプログラム５３ａに含めても構わない。
【０１００】
アクセス制御装置２ａは、ＣＰＵ２０１が、ＲＡＭ２０２、ＲＯＭ２０３又はハードディスク２０５に格納されたＯＳ５１、アプリケーションプログラム５２ａ、エミュレーションサーバプログラム５３ａ及びユーザプロファイル設定プログラム５４を読み込み、実行する。これにより、アクセス制御装置２ａは、アプリケーション２１ａ、エミュレーションサーバ２２ａ及びユーザプロファイル設定部２３として動作する。
【０１０１】
続いて、図１２、図１３及び図１４を用いて、本発明の実施の形態２にかかる処理の流れを説明する。また、適宜、図５、図６及び図７を参照するものとする。
【０１０２】
図１２は、本発明の実施の形態２にかかるユーザ端末のデータベースアクセス処理の流れを示すフローチャートである。ここでは、ユーザ端末３ａ、３ｂ、・・・３ｍの内、少なくともユーザ端末３ａのＯＳが起動しており、かつ、ログインがされていない状態であるものとする。まず、ユーザ端末３ａは、ＯＳのログイン処理を行う（Ｓ４０１）。例えば、ユーザ端末３ａは、ＯＳのログイン画面に対してユーザから入力されるユーザＩＤ及びパスワードを受け付け、受け付けたユーザＩＤ及びパスワードによりログイン処理を行う。このとき、ユーザ端末３ａは、サーバＯＳへユーザＩＤ及びパスワードを通知し、サーバＯＳが、認証を行うようにしてもよい。
【０１０３】
次に、ユーザ端末３ａは、エミュレーションサーバ２２ａへのログイン処理を行う（Ｓ４０２）。例えば、ユーザ端末３ａは、受け付けたユーザＩＤ及びパスワードを含めて負荷分散装置３０に対して接続要求を送信する。そして、負荷分散装置３０は、アクセス制御装置２ａ、２ｂ、・・・２ｎの内、接続可能なアクセス制御装置を割り当てる。ここでは、アクセス制御装置２ａがユーザ端末３ａに割り当てられたものとする。そして、負荷分散装置３０は、ユーザ端末３ａから受け付けたユーザＩＤ及びパスワードをアクセス制御装置２ａのエミュレーションサーバ２２ａへ入力する。これにより、エミュレーションサーバ２２ａにおいて、ログイン処理が実行される。または、ステップＳ４０２は、ステップＳ４０１と併せて、上述したサーバＯＳにより実行されても構わない。
【０１０４】
そして、ユーザ端末３ａは、アプリケーション２１ａの起動要求を送信する（Ｓ４０３）。具体的には、まず、ユーザ端末３ａは、エミュレーションクライアント３１ａの起動要求をユーザから受け付け、エミュレーションクライアント３１ａを起動する。次に、エミュレーションクライアント３１ａは、負荷分散装置３０を介して、割り当てられたエミュレーションサーバ２２ａへアプリケーション２１ａの起動要求を送信する。このとき、エミュレーションクライアント３１ａは、ユーザＩＤを含めて起動要求を送信する。これにより、エミュレーションサーバ２２ａは、アプリケーション２１ａを起動する。そして、エミュレーションクライアント３１ａは、アプリケーション２１ａによるＡＰサーバ１４のログイン画面をユーザ端末３ａの表示装置に出力する。尚、エミュレーションサーバ２２ａの処理については、図１３を用いて後述する。
【０１０５】
その後、ユーザ端末３ａは、ＡＰサーバ１４へのログイン処理を行う（Ｓ４０４）。具体的には、まず、エミュレーションクライアント３１ａは、ＡＰサーバ１４へのログイン画面に対してユーザから入力されるＡＰサーバ１４のログインＩＤ及びパスワード、つまり、ＡＰサーバ１４の認証情報を受け付け、受け付けた認証情報をエミュレーションサーバ２２ａへ送信する。次に、エミュレーションサーバ２２ａは、アプリケーション２１ａを操作することにより認証情報を入力する。そして、アプリケーション２１ａは、入力された認証情報をＡＰサーバ１４へ送信する。これにより、ＡＰサーバ１４は、受信した認証情報に基づき認証し、認証された場合、アプリケーション２１ａを介して業務システム１００ａの利用、つまり、データベースサーバ１０へのアクセスを許可する。
【０１０６】
そして、ユーザ端末３ａは、アプリケーション２１ａの操作要求を送信する（Ｓ４０５）。具体的には、エミュレーションクライアント３１ａは、表示装置に表示されたアプリケーション２１ａの画面情報に対して、ユーザから入力装置を介してマウスカーソルの移動を示す信号及びキーボードのキー情報、すなわち、アプリケーション２１ａの操作を示す情報を受け付ける。このとき、アプリケーション２１ａの操作を示す情報には、データベースサーバ１０へのアクセス要求を必要とする操作を含む。そして、エミュレーションクライアント３１ａは、受け付けたアプリケーション２１ａの操作を示す情報をエミュレーションサーバ２２ａへ送信する。また、エミュレーションクライアント３１ａは、エミュレーションサーバ２２ａからアプリケーション２１ａの出力である画像データを受信し、画面情報を生成して表示装置に出力する。尚、ステップＳ４０５は、ユーザの業務内容に応じて所定回数繰り返し行われる。
【０１０７】
その後、ユーザ端末３ａは、アプリケーション２１ａの終了要求を送信する（Ｓ４０６）。具体的には、まず、エミュレーションクライアント３１ａは、アプリケーション２１ａを終了するための操作を示す情報をユーザから受け付ける。そして、エミュレーションクライアント３１ａは、エミュレーションサーバ２２ａへアプリケーション２１ａの終了要求を送信する。これにより、エミュレーションサーバ２２ａは、アプリケーション２１ａを終了する。このとき、併せて、ＡＰサーバ１４からのログアウト処理が行われる。
【０１０８】
そして、ユーザ端末３ａは、エミュレーションサーバ２２ａからのログアウト処理を行う（Ｓ４０７）。そして、ユーザ端末３ａは、ＯＳのログアウト処理を行う（Ｓ４０８）。尚、ステップＳ４０７は、ステップＳ４０８と併せて実行しても構わない。例えば、ユーザ端末３ａは、ユーザからＯＳのログアウトの操作を受け付ける。そして、ユーザ端末３ａは、負荷分散装置３０に対して接続解除を送信する。そして、負荷分散装置３０は、アクセス制御装置２ａの割り当てを解除する。続いて、ユーザ端末３ａは、ＯＳから当該ユーザＩＤのログアウト処理を行う。尚、ステップＳ４０７及びＳ４０８は、上述したサーバＯＳにより実行しても構わない。
【０１０９】
図１３は、本発明の実施の形態２にかかるエミュレーションサーバ２２ａの処理の流れを示すフローチャートである。まず、エミュレーションサーバ２２ａは、アプリケーション２１ａの起動要求を受け付ける（Ｓ５０１）。具体的には、エミュレーションサーバ２２ａは、エミュレーションクライアント３１ａから負荷分散装置３０を介して送信された起動要求を受信する。そして、エミュレーションサーバ２２ａは、ユーザプロファイル設定部２３にアプリケーション２１ａの起動処理を実行させる。
【０１１０】
次に、ユーザプロファイル設定部２３は、共有記憶装置２１０からユーザプロファイル情報６２を取得する（Ｓ５０２）。具体的には、まず、ユーザプロファイル設定部２３は、起動要求に含まれるユーザＩＤを抽出する。次に、ユーザプロファイル設定部２３は、共有記憶装置２１０から抽出したユーザＩＤに関連付けられたユーザプロファイル情報６２を取得する。そして、ユーザプロファイル設定部２３は、取得したユーザプロファイル情報６２を記憶部２０へユーザプロファイル情報４３として格納する。
【０１１１】
続いて、ユーザプロファイル設定部２３は、ユーザプロファイル情報４３に含まれる実行形式ＰＧ４３３が最新であるか否かを判定する（Ｓ５０３）。例えば、ユーザプロファイル設定部２３は、実行形式ＰＧ４３３の属性情報からバージョンを確認し、共有記憶装置２１０に格納された最新実行形式ＰＧ６３のバージョンと比較する。
【０１１２】
ステップＳ５０３において、実行形式ＰＧ４３３が最新でないと判定された場合、ユーザプロファイル設定部２３は、共有記憶装置２１０から最新実行形式ＰＧ６３を取得する（Ｓ５０４）。そして、ユーザプロファイル設定部２３は、取得した最新実行形式ＰＧ６３を記憶部２０に格納する。このとき、ユーザプロファイル設定部２３は、ユーザプロファイル情報４３に含まれる実行形式ＰＧ４３３を最新実行形式ＰＧ６３により更新する。
【０１１３】
その後又はステップＳ５０３において実行形式ＰＧ４３３が最新であると判定された場合、ユーザプロファイル設定部２３は、取得した実行形式ＰＧを実行する（Ｓ５０５）。すなわち、ユーザプロファイル設定部２３は、記憶部２０から実行形式ＰＧ４３３を読み出し、実行する。これにより、アプリケーション２１ａが起動する。
【０１１４】
続いて、エミュレーションサーバ２２ａは、アプリケーション２１ａのエミュレーション処理を行う（Ｓ５０６）。このとき、エミュレーションサーバ２２ａは、エミュレーションクライアント３１ａから複数回の操作要求を受け付け、都度、操作要求に応じてアプリケーション２１ａを操作し、アプリケーション２１ａから出力される画面情報を画像データへ変換して要求元のエミュレーションクライアント３１ａへ返信する。尚、ステップＳ５０６の処理は、図６と同様であるため、説明を省略する。但し、アクセス制御装置２ａが複数のユーザ端末に割り当てられた場合、エミュレーションサーバ２２ａは、それぞれのエミュレーションクライアントのみから操作要求を受け付け、応答を要求元のみへ返信する。
【０１１５】
その後、エミュレーションサーバ２２ａは、実行中のプログラムを終了する（Ｓ５０７）。例えば、エミュレーションサーバ２２ａは、アプリケーション２１ａを終了する操作をエミュレートする。または、エミュレーションサーバ２２ａは、実行中のプログラムを終了する。これにより、アプリケーション２１ａに対して終了イベントが発生する。そして、エミュレーションサーバ２２ａは、ユーザプロファイル情報４３を共有記憶装置２１０へ格納する（Ｓ５０８）。具体的には、エミュレーションサーバ２２ａは、記憶部２０からユーザプロファイル情報４３を読み出して、共有記憶装置２１０へユーザプロファイル情報６２として格納する。
【０１１６】
図１４は、本発明の実施の形態２にかかるアプリケーション２１ａの処理の流れを示すフローチャートである。ここでは、アプリケーション２１ａが起動された直後からの処理を説明する。まず、アプリケーション２１ａは、起動時に、ユーザプロファイル情報４３に含まれるマスタデータ４３２が、データベースサーバ１０に格納されたマスタデータ１２と差分があるか否かを判定する（Ｓ６０１）。例えば、まず、アプリケーション２１ａは、記憶部２０を参照し、マスタデータ４３２の各レコードの内、最終更新日時を取得する。次に、アプリケーション２１ａは、記憶部２０から認証情報４１を取得する。そして、アプリケーション２１ａは、取得した認証情報４１を含めてデータベースサーバ１０へマスタデータ１２の各レコードの内、マスタデータ４３２の最終更新日時以降に更新されたレコードの存在を問い合わせる要求を送信する。その後、アプリケーション２１ａは、データベースサーバ１０からの応答を受信し、マスタデータ１２とマスタデータ４３２との差分の有無を判定する。
【０１１７】
ステップＳ６０１において、マスタデータの差分があると判定された場合、アプリケーション２１ａは、データベースサーバ１０から差分のデータを取得する（Ｓ６０２）。具体的には、アプリケーション２１ａは、取得した認証情報４１を含めてデータベースサーバ１０へステップＳ６０１において差分と判定されたレコードのみの参照要求を送信する。その後、アプリケーション２１ａは、データベースサーバ１０からマスタデータ１２の内、差分のレコードを応答として受信する。
【０１１８】
アプリケーション２１ａは、差分のデータを用いて記憶部２０に格納されたマスタデータ４３２を更新する（Ｓ６０３）。具体的には、アプリケーション２１ａは、記憶部２０に格納されたマスタデータ４３２の内、受信した差分のレコード部分のみを更新する。
【０１１９】
尚、アプリケーション２１ａは、起動時に、データベースサーバ１０から最新の取引データ１３を取得し、ＲＡＭ２０２又は記憶部２０に格納しても構わない。仮に、取引データ１３をユーザプロファイル情報６２及びユーザプロファイル情報４３に含めて保存したとしても、取引データ１３は、マスタデータ１２に比べて更新頻度が多いデータであるので、差分の判定を行う際に、ほとんど全データが差分のデータとなり得る。そのため、アプリケーション２１ａの起動の度に、全データを取得する場合と、差分のデータのみを取得する場合とで転送データ量の差は小さいと言える。よって、取引データ１３については、アプリケーション２１ａの起動の度に差分の判定を行う効果は低いと言える。さらに、取引データ１３の内、持ち高や損益の最新情報のみを取得すれば業務に十分である場合もあるため、取得データ量は少なく、そもそも転送データ量は少ないと言える。
【０１２０】
一方、マスタデータ１２は、顧客情報等であるため、全ての顧客情報を毎回、使用しないとしても一括して保持しておく意義が大きい。そして、マスタデータ１２は、取引データ１３に比べて更新頻度が少ないデータである。そのため、アプリケーション２１ａの起動時に毎回全データを取得し直すのは、効率が悪い。そこで、本発明の実施の形態２では、他のアクセス制御装置や同一のユーザＩＤ６１が前回のログイン時に更新したマスタデータ４３２を流用することにより、差分のデータの量を減らし、転送データ量を抑えることにより、アプリケーション２１ａの起動処理時間を短くすることができる。
【０１２１】
その後又はステップＳ６０１においてマスタデータの差分がないと判定された場合、アプリケーション２１ａは、データベース装置１ａ又はエミュレーションサーバ２２ａからのイベントを受け付ける（Ｓ６０４）。このとき、受け付けるイベントには、図７と同様の参照要求又は更新要求に加え、更新通知部１５からの更新通知及びエミュレーションサーバ２２ａからの終了要求をさらに含むものとする。
【０１２２】
続いて、アプリケーション２１ａは、受け付けたイベントが終了要求であるか否かを判定する（Ｓ６０５）。例えば、図１３のステップＳ５０７の処理が行われた場合、アプリケーション２１ａは、終了要求であるイベントを受け付ける。この場合、受け付けたイベントが終了要求であると判定され、アプリケーション２１ａは、実行を終了する。
【０１２３】
また、ステップＳ６０５において、受け付けたイベントが終了要求でないと判定された場合、アプリケーション２１ａは、受け付けたイベントがデータベース装置１ａの更新通知部１５からの更新通知であるか否かを判定する（Ｓ６０６）。ステップＳ６０６において、受け付けたイベントが更新通知であると判定された場合、アプリケーション２１ａは、更新通知の対象がマスタデータであるか否かを判定する（Ｓ６０７）。ステップＳ６０７において、対象がマスタデータであると判定された場合、アプリケーション２１ａは、更新通知に含まれる更新内容により記憶部２０に格納されたマスタデータ４３２を更新する（Ｓ６０８）。尚、アプリケーション２１ａは、実行中にマスタデータ４３２をＲＡＭ２０２に格納して処理を行っている場合には、ステップＳ６０８において、ＲＡＭ２０２内のマスタデータ４３２を更新し、終了時に、記憶部２０に格納されたマスタデータ４３２を更新しても構わない。
【０１２４】
また、ステップＳ６０７において、対象がマスタデータでないと判定された場合、アプリケーション２１ａは、記憶部２０に格納された対象データを更新する（Ｓ６０９）。尚、例えば、対象データが取引データであり、実行中に取引データをＲＡＭ２０２に格納して処理を行っている場合には、ステップＳ６０９において、ＲＡＭ２０２内の取引データを更新し、終了時に、記憶部２０に格納された取引データを更新しても構わない。
【０１２５】
ステップＳ６０６において、受け付けたイベントが更新通知でない、すなわち、参照要求又は更新要求であると判定された場合、アプリケーション２１ａは、図７のステップＳ３０２〜Ｓ３１２を実行する（Ｓ６１０）。そして、ステップＳ６０８、Ｓ６０９又はＳ６１０の処理後に、ステップＳ６０４へ戻り、ステップＳ６０５において、受け付けたイベントが終了要求であると判定されるまでの間、ステップＳ６０４〜Ｓ６１０を繰り返し実行する。
【０１２６】
上述した本発明の実施の形態１では、アクセス制御装置が１台の場合について説明したが、近年、業務の拡大、利用者の増加に伴い、ユーザ端末の台数は、増加する傾向がある。そのため、アクセス制御装置自体を複数台とし、処理負荷を分散させることが望ましい。この場合、負荷分散装置を用いることとなるが、ユーザ端末とアクセス制御装置との対応付けを固定的にしない場合には、サーバＯＳにおける移動プロファイルの仕組みを利用することが有益である。そのため、本発明の実施の形態２では、ユーザ端末とアクセス制御装置との対応付けが接続の度に異なるようにすることで、各アクセス制御装置に接続されるユーザ端末の台数を調整し、アクセス制御装置当たりの負荷を平準化することができる。
【０１２７】
また、元々、アプリケーション２１ａが記憶部２０に格納されたマスタデータを参照して処理を行い、更新通知部１５からの更新通知により更新を行う場合には、ユーザプロファイル情報４３中にマスタデータ４３２として含めることで、同一のユーザＩＤにより前回、他のアクセス制御装置において更新されたマスタデータ４３２を基準とすることができる。そのため、アプリケーション２１ａを改修せずに、アプリケーション２１ａの起動時のマスタデータ４３２の更新量を減らすことができる。
【０１２８】
＜その他の発明の実施の形態＞
尚、マスタデータ６２２は、ユーザプロファイル情報６２に含めなくても構わない。すなわち、共有記憶装置２１０は、ユーザＩＤ６１と関連付けずに、アプリケーション２１ａの処理に用いられる処理データとしてマスタデータ６２２を格納しても構わない。その場合、エミュレーションサーバ２２ａは、起動要求を受け付けた場合に、共有記憶装置２１０から処理データを取得し、アプリケーション２１ａを起動する。そして、アプリケーション２１ａは、取得された処理データを用いて処理を行う。その後、エミュレーションサーバ２２ａは、エミュレーションクライアント３１ａから終了要求を受け付けた場合に、アプリケーション２１ａを終了し、処理に用いられた処理データを共有記憶装置２１０へ格納する。これにより、ユーザによらず最新の処理データを共有記憶装置２１０において一元管理することができる。そのため、アプリケーション２１ａの起動時に取得する差分のデータの量を抑えることができる。
【０１２９】
また、実行形式ＰＧ６２３は、ユーザプロファイル情報６２に含めなくても構わない。すなわち、共有記憶装置２１０は、アプリケーション２１ａの実行形式のプログラムとして、ユーザＩＤ６１と関連付けていない最新実行形式ＰＧ６３のみを格納しても構わない。その場合、ユーザプロファイル設定部２３は、起動要求に含まれるユーザＩＤ６１に関わらず、最新実行形式ＰＧ６３を取得するようにしてもよい。すなわち、ユーザプロファイル設定部２３は、エミュレーションクライアント３１ａから起動要求を受け付けた場合に、共有記憶装置２１０から最新実行形式ＰＧ６３を取得し、最新実行形式ＰＧ６３を実行することにより、アプリケーション２１ａを起動するようにしてもよい。これにより、最新版のアプリケーションを各アクセス制御装置に個別にインストールする必要がなく、各サーバにおけるアプリケーションのバージョン管理を容易にし、管理者の作業負担を軽減することができる。
【０１３０】
さらに、本発明の実施の形態２にかかる共有記憶装置２１０を用いなくてもよい。その場合、まず、エミュレーションクライアント３１ａは、アプリケーション２１ａの操作を開始するための起動要求をエミュレーションサーバ２２ａへ送信する。そして、ユーザプロファイル設定部２３は、エミュレーションクライアント３１ａから起動要求を受け付けた場合に、複数のアクセス制御装置のいずれかにおけるアプリケーション２１ａの処理に用いられた処理データを取得し、当該ユーザプロファイル設定部２３が属するアクセス制御装置が備えるアプリケーションを起動するようにしてもよい。これにより、既存のアプリケーションを修正せずに、複数のアクセス制御装置で処理されたデータの同期を取ることができる。
【０１３１】
尚、図１４におけるステップＳ６０４乃至Ｓ６１０の処理は、これに限定されない。つまり、ステップＳ６０５、Ｓ６０６並びに図７のステップＳ３０２等の各種判定処理の順番については、任意である。また、ステップＳ６０４においてイベントを受け付けた後に、データベース装置１ａ又はエミュレーションサーバ２２ａのいずれかからのイベントであるかを判定し、処理を分岐させても構わない。
【０１３２】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【０１３３】
１００  データベースアクセスシステム
１００ａ  業務システム
１  データベース装置
１ａ  データベース装置
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  通信部
１０５  ハードディスク
１１１  ＯＳ
１１２  データベース管理プログラム
１１３  ＡＰサーバプログラム
１１４  更新通知プログラム
１０  データベースサーバ
１１  データベース
１２  マスタデータ
１３  取引データ
１４  ＡＰサーバ
１５  更新通知部
２  アクセス制御装置
２ａ  アクセス制御装置
２ｂ  アクセス制御装置
２ｎ  アクセス制御装置
２１０  共有記憶装置
６１  ユーザＩＤ
６２  ユーザプロファイル情報
６２１  設定情報
６２２  マスタデータ
６２３  実行形式ＰＧ
６３  最新実行形式ＰＧ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  通信部
２０５  ハードディスク
５１  ＯＳ
５２  アプリケーションプログラム
５２ａ  アプリケーションプログラム
５３  エミュレーションサーバプログラム
５３ａ  エミュレーションサーバプログラム
５４  ユーザプロファイル設定プログラム
２０  記憶部
４１  認証情報
４２  マスタデータ
４３  ユーザプロファイル情報
４３１  設定情報
４３２  マスタデータ
４３３  実行形式ＰＧ
２１  アプリケーション
２１ａ  アプリケーション
２２  エミュレーションサーバ
２２ａ  エミュレーションサーバ
２３  ユーザプロファイル設定部
３  ユーザ端末
３ａ  ユーザ端末
３ｂ  ユーザ端末
３ｍ  ユーザ端末
３０１  ＣＰＵ
３０２  ＲＡＭ
３０３  ＲＯＭ
３０４  通信部
３０５  ハードディスク
３１１  ＯＳ
３１２  エミュレーションクライアントプログラム
３１  エミュレーションクライアント
３１ａ  エミュレーションクライアント
３０  負荷分散装置
９０  業務システム
９１  業務サーバ装置
９１０  データベースサーバ
９１１  データベース
９１２  アプリケーションサーバ
９２  ユーザ端末
９２１  クライアントアプリケーション
９２２  記憶部
９２３  ログインＩＤ
９２４  パスワード
【図１】
2011215688.tif 000003
【図２】
2011215688.tif 000004
【図３】
2011215688.tif 000005
【図４】
2011215688.tif 000006
【図５】
2011215688.tif 000007
【図６】
2011215688.tif 000008
【図７】
2011215688.tif 000009
【図８】
2011215688.tif 000010
【図９】
2011215688.tif 000011
【図１０】
2011215688.tif 000012
【図１１】
2011215688.tif 000013
【図１２】
2011215688.tif 000014
【図１３】
2011215688.tif 000015
【図１４】
2011215688.tif 000016
【図１５】
2011215688.tif 000017