(57)【要約】操作のためのプログラムの開発、およびそのデバッグ・メンテナンスが容易なデータベース操作装置およびその方法を提供する。データベースに対する操作を行うための処理を１つ以上、含むトランザクションが、アプリケーション層で定義される。定義されたトランザクションには、それぞれ専用のメモリ領域が確保され、このメモリ領域を用いて、トランザクションに含まれる処理が実行される。データベースを操作するための処理は、コンポーネント化されたプログラムモジュールとして、ライブラリにより定義される。データベースの操作は、定義されたトランザクションを単位として実行される。【特許請求の範囲】
【請求項１】
複数の階層に分かれた処理により、データベースを操作するデータベース操作装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御手段と
を有するデータベース操作装置。
【請求項２】
前記階層は、３つ以上に分かれ、
前記処理制御手段は、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１に記載のデータベース操作装置。
【請求項３】
１つ以上の前記データベース操作処理を含むライブラリ手段
をさらに有し、
前記データベース操作処理を起動する起動処理は、前記ライブラリ手段に含まれる前記データベース操作処理を起動する
１に記載のデータベース操作装置。
【請求項４】
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定手段と、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理手段と
をさらに有する１または３に記載のデータベース操作装置。
【請求項５】
前記被起動処理それぞれは、この被起動処理を起動した起動処理に対して、処理の結果を示す戻り値を返し、
前記階層は、
インターフェース層と、
アプリケーション層と、
データベース層と
を含み、
前記インターフェース層は、
前記起動処理として、外部からの操作に応じて、前記アプリケーション層に含まれる被起動処理を起動し、起動した被起動処理から返された戻り値に応じた処理を行うユーザインターフェース処理、１つ以上
を含み、
前記アプリケーション層は、
前記起動処理および前記被起動処理として、前記インターフェース処理により起動され、前記データベース層に含まれるデータベース操作処理を１つ以上、起動し、前記起動されたデータベース操作処理からの戻り値に基づいて、前記データベースを用いたサービスを実現し、前記戻り値として、このサービスの結果を、前記ユーザインターフェース処理に返すアプリケーション処理、１つ以上
を含み、
データベース層は、
前記データベース操作処理として、前記アプリケーション処理により起動され、前記データベースに対する操作を行い、前記戻り値として、このデータベースに対する操作の結果を、前記アプリケーション処理に返すデータベース操作処理、１つ以上
を含む
１，３または４に記載のデータベース操作装置。
【請求項６】
前記処理制御手段は、
前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が、最初に起動されたときに、前記起動されたデータベース操作処理と、前記データベースとを接続し、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が終了したとき、または、前記データベース操作処理が失敗したときに、前記起動されたデータベース操作処理と、前記データベースとを切断する
ように、前記データベース操作処理の実行を制御する
５に記載のデータベース操作装置。
【請求項７】
前記処理制御手段は、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が成功したときに、前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理の結果を、前記データベースにおいて確定させ、
これ以外のときには、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
５または６に記載のデータベース操作装置。
【請求項８】
前記処理制御手段は、
前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理が失敗したときに、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
５〜７のいずれかに記載のデータベース操作装置。
【請求項９】
複数の階層に分かれた処理により、所定の情報処理を行う情報処理装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御手段と
を有する情報処理装置。
【請求項１０】
複数の階層に分かれた処理により、データベースを操作するデータベース操作方法であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、
１つ以上の前記起動処理を含む処理集合を定義する定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御ステップと
を含むデータベース操作方法。
【請求項１１】
前記階層は、３つ以上に分かれ、
処理制御ステップは、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１０に記載のデータベース操作方法。
【請求項１２】
複数の階層に分かれた処理により、所定の情報処理を行う情報処理方法であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御ステップと
を含む情報処理方法。
【請求項１３】
複数の階層に分かれた処理により、データベースを操作するデータベース操作装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御ステップと
をコンピュータに実行させるプログラム。
【請求項１４】
前記階層は、３つ以上に分かれ、
前記処理制御ステップは、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１３に記載のプログラム。
【請求項１５】
１つ以上の前記データベース操作処理を含むライブラリ
をさらに有し、
前記データベース操作処理を起動する起動処理は、前記ライブラリに含まれる前記データベース操作処理を起動する
１３に記載のプログラム。
【請求項１６】
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定ステップと、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理ステップと
をさらにコンピュータに実行させる１３または１５に記載のプログラム。
【請求項１７】
前記被起動処理それぞれは、この被起動処理を起動した起動処理に対して、処理の結果を示す戻り値を返し、
前記階層は、
インターフェース層と、
アプリケーション層と、
データベース層と
を含み、
前記インターフェース層は、
前記起動処理として、外部からの操作に応じて、前記アプリケーション層に含まれる被起動処理を起動し、起動した被起動処理から返された戻り値に応じた処理を行うユーザインターフェース処理、１つ以上
を含み、
前記アプリケーション層は、
前記起動処理および前記被起動処理として、前記インターフェース処理により起動され、前記データベース層に含まれるデータベース操作処理を１つ以上、起動し、前記起動されたデータベース操作処理からの戻り値に基づいて、前記データベースを用いたサービスを実現し、前記戻り値として、このサービスの結果を、前記ユーザインターフェース処理に返すアプリケーション処理、１つ以上
を含み、
データベース層は、
前記データベース操作処理として、前記アプリケーション処理により起動され、前記データベースに対する操作を行い、前記戻り値として、このデータベースに対する操作の結果を、前記アプリケーション処理に返すデータベース操作処理、１つ以上
を含む
１３，１５または１６に記載のプログラム。
【請求項１８】
前記処理制御ステップは、
前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が、最初に起動されたときに、前記起動されたデータベース操作処理と、前記データベースとを接続し、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が終了したとき、または、前記データベース操作処理が失敗したときに、前記起動されたデータベース操作処理と、前記データベースとを切断する
ように、前記データベース操作処理の実行を制御する
１７に記載のプログラム。
【請求項１９】
前記処理制御ステップは、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が成功したときに、前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理の結果を、前記データベースにおいて確定させ、
これ以外のときには、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
１７または１８に記載のプログラム。
【請求項２０】
前記処理制御ステップは、
前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理が失敗したとき、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
１７〜１９のいずれかに記載のプログラム。
【請求項２１】
複数の階層に分かれた処理により、所定の情報処理を行う情報処理装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】      本発明は、データベースなどに対する接続を制御する接続制御装置およびその方法に関する。
【背景技術】      データを保存し、多くのユーザの間で共用するために、情報処理の様々な分野において、データベースが利用されている。
データベースの操作のためには、ＩＢＭ社により開発されたＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）が、現在、一般的に用いられている。
ＳＱＬ記述されたプログラムを解析し、データの記憶・検索などを行うシステムとして、ＤＢＭＳ（Ｄａｔａ  Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）が知られている。
ＳＱＬおよびＤＢＭＳの応用製品は、ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｓｑｌ／など、様々な文献に開示されている。
また、例えば、ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｊａｐａｎ／ｃｏｍ／ｃｏｍｐｒｅｓ．ａｓｐは、マイクロソフト社により開発され、データベースの操作をサポートするＣＯＭ＋を開示する。
データベースの操作は、現在、一般的に、その処理を、ユーザインターフェースを提供するＵＩ層と、ビジネスのための機能などを提供するアプリケーション層と、データベースへのアクセス機能を提供するデータ層とに分けて行うことにより実現されている。
このように、その操作を、３つの階層に機能分担させて実現するデータベースは、３階層システムなどとも呼ばれる。
しかしながら、この３階層データベースにおいては、アプリケーション層のプログラミングが煩雑になりやすく、その工数も多く必要とされる傾向にある。
上述したＣＯＭ＋は、３階層データベースに適応され、各階層の独立性を高めて、そのプログラミングを容易にする。
しかしながら、ＣＯＭ＋を用いると、各階層の独立性が高くなるので、却って、作成されたプログラムの全階層を通じたデバッグが難しくなる傾向があり、従って、製品出荷後のメンテナンスも難しくなる傾向がある。
【非特許文献１】  ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｓｑｌ／
【非特許文献２】  ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｊａｐａｎ／ｃｏｍ／ｃｏｍｐｒｅｓ．ａｓｐ
【発明の開示】
本発明は、上述のような背景からなされたものであり、操作のためのプログラミングが容易なデータベース操作装置およびその方法を提供することを目的とする。
また、本発明は、操作のためのプログラムのデバッグおよびメンテナンスが容易なデータベース操作装置およびその方法を提供することを目的とする。
上記目的を達成するために、本発明にかかるデータベース操作装置は、複数の階層に分かれた処理により、データベースを操作するデータベース操作装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御手段とを有する。
好適には、前記階層は、３つ以上に分かれ、前記処理制御手段は、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する。
好適には、１つ以上の前記データベース操作処理を含むライブラリ手段をさらに有し、前記データベース操作処理を起動する起動処理は、前記ライブラリ手段に含まれる前記データベース操作処理を起動する。
好適には、前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定手段と、前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理手段とをさらに有する。
好適には、前記被起動処理それぞれは、この被起動処理を起動した起動処理に対して、処理の結果を示す戻り値を返し、前記階層は、インターフェース層と、アプリケーション層と、データベース層とを含み、前記インターフェース層は、前記起動処理として、外部からの操作に応じて、前記アプリケーション層に含まれる被起動処理を起動し、起動した被起動処理から返された戻り値に応じた処理を行うユーザインターフェース処理、１つ以上を含み、前記アプリケーション層は、前記起動処理および前記被起動処理として、前記インターフェース処理により起動され、前記データベース層に含まれるデータベース操作処理を１つ以上、起動し、前記起動されたデータベース操作処理からの戻り値に基づいて、前記データベースを用いたサービスを実現し、前記戻り値として、このサービスの結果を、前記ユーザインターフェース処理に返すアプリケーション処理、１つ以上を含み、データベース層は、前記データベース操作処理として、前記アプリケーション処理により起動され、前記データベースに対する操作を行い、前記戻り値として、このデータベースに対する操作の結果を、前記アプリケーション処理に返すデータベース操作処理、１つ以上を含む。
好適には、前記処理制御手段は、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が、最初に起動されたときに、前記起動されたデータベース操作処理と、前記データベースとを接続し、前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が終了したとき、または、前記データベース操作処理が失敗したときに、前記起動されたデータベース操作処理と、前記データベースとを切断するように、前記データベース操作処理の実行を制御する。
好適には、前記処理制御手段は、前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が成功したときに、前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理の結果を、前記データベースにおいて確定させ、これ以外のときには、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す。
好適には、前記処理制御手段は、前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理が失敗したときに、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す。
また、本発明にかかる情報処理装置は、複数の階層に分かれた処理により、所定の情報処理を行う情報処理装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御手段とを有する。
また、本発明にかかるデータベース操作方法は、複数の階層に分かれた処理により、データベースを操作するデータベース操作方法であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、１つ以上の前記起動処理を含む処理集合を定義する定義ステップと、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御ステップとを含む。
また、本発明にかかる情報処理方法は、複数の階層に分かれた処理により、所定の情報処理を行う情報処理方法であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御ステップとを含む。
また、本発明にかかる第１のプログラムは、複数の階層に分かれた処理により、データベースを操作するデータベース操作装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御ステップとをコンピュータに実行させる。
また、本発明にかかる第２のプログラムは、複数の階層に分かれた処理により、所定の情報処理を行う情報処理装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御ステップとをコンピュータに実行させる。
本発明によれば、操作のためのプログラミングが容易なデータベース操作装置およびその方法が提供される。
また、本発明によれば、操作のためのプログラムのデバッグおよびメンテナンスが容易なデータベース操作装置およびその方法が提供される。
【図面の簡単な説明】      図１は、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）により記述されたデータベース操作用のプログラムの第１の例を、リスト形式で示す図である。
図２は、ＳＱＬにより記述されたデータベース操作用のプログラムの第２の例を、リスト形式で示す図である。
図３は、図２に示したデータベース操作用のプログラムの処理（Ｓ１０）を示すフローチャートである。
図４は、図２に示したデータベース操作用のプログラムの処理を、概念的に示す図である。
図５は、ＳＱＬにより記述されたデータベース操作用のプログラムの第３の例を、リスト形式で示す図である。
図６は、図５に例示したプログラムに対するデバッグ作業の困難さを説明する図である。
図７は、本発明にかかるデータベース操作方法が適用されるネットワークシステムの構成を例示する図である。
図８は、図７に示したサーバ、開発・操作用ＰＣおよびクライアントＰＣのハードウエア構成を例示する図である。
図９は、図７に示したサーバにおいて実行されるサーバプログラムの構成を示す図である。
図１０は、図７に示した開発・操作用ＰＣにおいて実行される開発・制御用プログラムの構成を示す図である。
図１１は、図１０に示したプログラム開発支援部などにより作成される制御プログラムの例を、リスト形式で示す図である。
図１２は、図１１に示した制御プログラムの処理（Ｓ１２）を示すフローチャートである。
図１３は、図１１に示した制御プログラムの処理およびその実行管理を、概念的に示す図である。
図１４は、図１０に示した開発・制御用プログラムのプログラム実行制御部による制御プログラム（図１１〜図１３）の処理の実行の制御（Ｓ２０）を示すフローチャートである。
図１５は、開発・制御用プログラム（図１０）による制御プログラムに対するデバッグの容易さを説明する図である。
図１６は、各階層に複数のトランザクションを含む制御プログラムを例示する図である。
【発明を実施するための最良の形態】      ［本発明がなされるに至った背景］
本発明の理解を容易にするために、まず、本発明がなされるに至った背景を、さらに説明する。
一般に、データベースの操作のためには、ユーザからの操作を受け入れ、処理結果をユーザに表示するユーザインターフェース機能と、ユーザの操作に応じて、データベースを操作し、様々なサービスをユーザに提供するアプリケーション機能と、実際にデータベース（ＤＢＭＳ）に対するアクセスを行うデータベース機能とが必要とされる。
図１は、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）により記述されたデータベース操作用のプログラムの第１の例を、リスト形式で示す図である
例えば、図１にリストとして示すように、これら３つの機能を階層分けせずに実現することも可能である。
つまり、図１に示すプログラムは、以下のように、データベースに対する操作を行うように記述されている。
まず、ユーザによる操作があるたびに、まず、データベース（ＤＢ）への接続が行なわれ、トランザクションが開始される。
次に、トランザクションが開始され、さらに、データベースに対する必要な操作が、順次、行われる。
データベースに対する操作が終了すると、最後に、トランザクションにおいて、データベースに生じた変更内容などが確定（コミット）され、データベースへの接続が終了される。
しかしながら、階層分けせずにプログラムを記述すると、ユーザによる操作および提供されるサービスの組み合わせの全てについて、図１に例示したようなプログラムを作成しなければならない。
従って、階層分けせずにプログラムを記述すると、プログラムの量が多くなる上に、システムとしての構成が柔軟性を欠き、また、プログラムモジュール（関数）のコンポーネント化が難しいので、機能の変更・追加などがしにくい。
このような理由から、現在では、データベースの操作のためのプログラムは、ユーザインターフェースを実現するユーザインターフェース層（ＵＩ層）、データベースを応用した様々なサービスを提供するアプリケーション層（ＡＰ層）、および、実際にデータベースに対する操作を行うデータベース層（ＤＢ層）に分けられた形式で作成されるようになっている。
図２は、ＳＱＬにより記述されたデータベース操作用のプログラムの第２の例を、リスト形式で示す図である
図３は、図２に示したデータベース操作用のプログラムの処理（Ｓ１０）を示すフローチャートである。
図４は、図２に示したデータベース操作用のプログラムの処理を、概念的に示す図である。
図２〜図４に示すように、ユーザインターフェース層のプログラムの処理において、コンピュータなどの画面に表示されたユーザインターフェース画像内（図示せず）の「ボタン５（ｂｕｔｔｏｎ５）」に対するユーザによるクリックが検出されると、アプリケーション層のプログラムが起動される（Ｓ１００，Ｓ１０２；図３）。
アプリケーション層の処理において、まず、データベースへの接続が行われ、データベースがオープンされて、トランザクションが開始される（Ｓ１０４；図３）。
次に、サービスの提供のために、データベースに対する操作（ＤＢ操作＃１，＃２）が、順次、実行され、これらの処理が実行されるたびに、データベース層のプログラムが起動される（Ｓ１０６，Ｓ１０８；図３）。
アプリケーション層の処理は、全てのデータベースに対する操作が成功したときには、データベースにおける操作結果を確定（コミット）し、データベースへの接続を終了（クローズ）し、処理結果および戻り値を、ユーザインターフェース層の処理に返す（Ｓ１１０，Ｓ１１２；図３）。
アプリケーション層の処理は、これ以外のときには、データベースに対する操作を取り消して内容を復元（ロールバック）する（Ｓ１１４；図３）。
最後に、アプリケーション層の処理は、データベースへの接続を終了（クローズ）し、処理結果および戻り値を、ユーザインターフェース層の処理に返す（Ｓ１１６；図３）。
ユーザインターフェース層の処理により、アプリケーション層の処理結果がユーザに示される。
図２に例示したように、データベースに対する操作を、ユーザインターフェース層と、アプリケーション層と、データベース層とに分けてプログラミングすると、プログラムモジュールのコンポーネント化が容易になるので、図１に例示したように階層分けせずにプログラミングする場合に比べて、機能の変更・追加などが容易になる。
しかしながら、図２に例示した場合には、データベースへの接続と、トランザクションの管理とを共通とするためには、アプリケーション層の処理において、データベースへの接続のためのオブジェクト（ｃｏｎ）、および、トランザクションのためのオブジェクト（ｔｘのこと）を作成しなければならない。
作成されたこれら２つのオブジェクトは、引数として、データベース層の処理を実現するプログラムモジュールの呼び出しごとに、毎回、渡されることとなる。
また、これら２つのオブジェクトは、データベース層において、データベースを実際に操作する処理のプログラムモジュールに対してばかりではかく、データベースを操作しない処理のプログラムモジュールに対しても、引数として渡さなければならないので、アプリケーション層のプログラミングが煩雑になる傾向がある（ただし、ここで述べたデータベースを操作しない処理のプログラムモジュールは、図２に示したリストには含まれない。アプリケーション層にサブルーチンを作成し、その中からデータベース層を呼ぶときに、そのサブルーチンではｃｏｎ．ｔｘを使わないにもかかわらず、下位のデータベース層に引き渡すためだけに、引数を二つ付加しなければならいない。このような引数の付加は、これはサブルーチンが増えると、かなりの手間となる）。
引数を渡さなくてもよいように、データベース層の処理を実現するプログラムモジュールを作成することも可能であるが、この場合には、プログラムモジュールの機能を引数によって変更することができないので、データベース層に、機能が少しずつ異なるプログラムモジュールを、数多く作成する必要が生じる。
従って、この場合には、データベース層におけるプログラミングの工数が増えたり、作成されたプログラムのデバッグおよびメンテナンスのために、多くの手間が必要となったりする。
データベース層のプログラムモジュールをコンポーネント化するために、マイクロソフト社のオペレーティングシステムＷｉｎｄｏｗｓ（登録商標）には、ＣＯＭ＋と呼ばれる機能が付加されている。
図５は、ＳＱＬにより記述されたデータベース操作用のプログラムの第３の例を、リスト形式で示す図である
ＣＯＭ＋を利用して、図２に示したものと同様のプログラムを作成すると、図５に例示する通りとなる。
図５に例示するように、ユーザインターフェース層のプログラムの処理において、「ボタン５」に対するクリックが検出されると、アプリケーション層のプログラムが起動される。
アプリケーション層の処理において、まず、トランザクションの動作を指定する属性が指定され、サービスの提供のために、データベースに対する操作（ＤＢ操作＃１，＃２）が、順次、実行され、これらの処理が実行されるたびに、データベース層のプログラムが起動される。
起動されたデータベース層の処理結果は、戻り値としてアプリケーション層に返され、アプリケーション層の処理結果および戻り値は、ユーザインターフェース層の処理に返される。
ユーザインターフェース層の処理により、アプリケーション層の処理結果がユーザに示される。
このように、ＣＯＭ＋を利用すると、アプリケーション層に対するデータベース層のプログラムモジュールの独立性が高まる。
また、アプリケーション層から、データベース層のプログラムモジュールそれぞれに、引数を渡す必要がなくなるので、プログラミングの内容がシンプルになる。
しかしながら、ＣＯＭ＋を利用したプログラミングを行うプログラマは、当然ながら、ＣＯＭ＋特有の仕様を学習し、その利用法に習熟しなければならならないので、そのために、多くの手間と時間が必要となる。
図６は、図５に例示したプログラムに対するデバッグ作業の困難さを説明する図である。
また、図５に例示したユーザインターフェース層の処理は、一般的なＳＱＬ処理方式に従って実行されるのに対し、アプリケーション層およびデータベース層の処理は、ＣＯＭ＋特有の処理方式に従って実行される。
図６に示すユーザインターフェース（ＵＩ）層の処理を実現するプロセスが動作しており、デバッガをアタッチして、デバッグを行うことができたとしても、アプリケーション層およびデータベース層のプロセスは、これらが起動されない限り存在しないことがあるので、デバッガをアタッチすることができるとは限らない。
従って、ユーザインターフェース層、アプリケーション層およびデータベース層を通したプログラムの動作確認およびデバッグを行うためには、例えば、ユーザインターフェース層のプロセスにおいて、アプリケーション層のプログラムを起動する処理にブレークポイントを設定し、その実行を停止してから、起動されたアプリケーション層のプロセスに対して、別途、デバッガをアタッチし、デバッグを行うようにしなければならない。
従って、この場合には、ＣＯＭ＋を採用しない場合に比べても、プログラムのデバッグおよびメンテナンスに、却って多くの手間と時間とが必要となりかねない。
本発明は、以上説明した背景からなされたものであって、本発明の実施形態によると、ここまでに背景として述べた方式の不利な点が全て解消される。
なお、以下に説明する本発明の実施形態は、例示であって、本発明の技術範囲の限定を意図するものではない。
また、以下に説明する本発明の実施形態の構成部分における機能分担は、固定的ではなく、１つの構成部分の機能が、複数の構成部分に分散されたり、複数の構成部分の機能が、１つの構成部分に集約されたりしうる。
［実施形態］
以下、本発明の実施形態を説明する。
図７は、本発明にかかるデータベース操作方法が適用されるネットワークシステム１の構成を例示する図である。
図７に示すように、ネットワークシステム１は、サーバシステム２およびクライアントコンピュータ（クライアントＰＣ）１０２−１〜１０２−ｎとが、ＬＡＮ、ＷＡＮあるいはインターネットなどのネットワーク１００を介して接続された構成を採る。
サーバシステム２は、サーバ３と開発・操作用ＰＣ４とが、ＬＡＮ２０を介して接続された構成を採る。
ネットワークシステム１において、サーバシステム２は、例えば、データベースを利用したＷｅｂサーバとしての機能を有し、クライアントＰＣ１０２−１〜１０２−ｎに対して、様々なサービスを提供する。
なお、以下、クライアントＰＣ１０２−１〜１０２−ｎなど、複数ある構成部分は、単にクライアントＰＣ１０２などと略記されることがある。
また、ネットワークシステム１の各構成部分を、ノードと記すことがある。
図８は、図７に示したサーバ３、開発・操作用ＰＣ４およびクライアントＰＣ１０２のハードウエア構成を例示する図である。
図８に示すように、サーバ３、開発・操作用ＰＣ４およびクライアントＰＣ１０２は、ＣＰＵ１２２、メモリ１２４およびこれらの周辺回路などを含むコンピュータ本体１２０、表示装置、キーボードおよびマウスなどを含む入力・出力装置１２６、ＦＤ、ＣＤおよびＨＤなどの記録媒体１３０に対してデータを記録・再生する記録装置１２８、および、ネットワーク１００（図７）を介して他のノードと通信を行う通信装置１３２などから構成される。
つまり、サーバ３、開発・操作用ＰＣ４およびクライアントＰＣ１０２は、ネットワーク１００あるいはＬＡＮ２０を介して、他のノードとの間で通信を行うことができる一般的なコンピュータとしての構成部分を有する。
図９は、図７に示したサーバ３において実行されるサーバプログラム３０の構成を示す図である。
図９に示すように、サーバプログラム３０は、データベース部３００、データベース管理システム部（ＤＢＭＳ）３０２およびサービス提供部３０４から構成される。
サーバプログラム３０は、例えば、記録媒体１３０を介してサーバ３に供給され、メモリ１２４（図８）にロードされて実行される（以下のプログラムについて同様）。
サーバプログラム３０は、これらの構成部分により、開発・操作用ＰＣ４の制御にしたって、クライアントＰＣ１０２（図７）に対して、様々なサービスを提供する。
サーバプログラム３０において、ＤＢＭＳ３０２は、開発・操作用ＰＣ４からの制御に従って、データベース部３００を操作して、サービス提供部３０４から入力されるデータをデータベース部３００に記憶する。
また、ＤＢＭＳ３０２は、データベース部３００を操作して、データベース部３００に記憶したデータを読み出し、サービス提供部３０４に対して出力する。
データベース部３００は、ＤＢＭＳ３０２による操作に従って、ＤＢＭＳ３０２から入力されるデータを記憶し、また、記憶したデータをＤＢＭＳ３０２に対して出力する。
つまり、データベース部３００およびＤＢＭＳ３０２は、上述したデータベース層の処理を行い、サービス提供部３０４に対して、データベースの機能を提供する。
サービス提供部３０４は、開発・操作用ＰＣ４からの制御に従って、クライアントＰＣ１０２などに対するサービス、例えば、データベースサーバあるいはＷｅｂサーバとしてのサービスを実現する。
つまり、サービス提供部３０４は、上述したユーザインターフェース層の処理およびアプリケーション層の処理を行い、クライアントＰＣ１０２に表示された操作画像（図示せず）に対するユーザの操作に応じて、データベース部３００およびＤＢＭＳ３０２により提供されるデータベース機能を利用し、クライアントＰＣ１０２に対して、データベース部３００に記憶されたデータを提供し、あるいは、クライアントＰＣ１０２から入力されるデータを、データベース部３００に記憶させる。
なお、サービス提供部３０４は、開発・操作用ＰＣ４におけるデバッグ作業などのために、開発・操作用ＰＣ４から入力されたデータをデータベース部３００に記憶させ、また、データベース部３００に記憶されたデータを開発・操作用ＰＣ４に対して出力することもある。
図１０は、図７に示した開発・操作用ＰＣ４において実行される開発・制御用プログラム４０の構成を示す図である。
図１０に示すように、開発・制御用プログラム４０は、ＵＩ部４００、プログラム開発部４２およびプログラム実行制御部４６から構成される。
プログラム開発部４２は、プログラム開発支援部４２０およびデバッガ４２２などを含む。
プログラム実行制御部４６は、実行制御部４８、ＵＩ層制御部４６０、ＡＰ層制御部４６２およびＤＢ層制御部４６４などを含み、実行制御部４８は、ＵＩ・ＡＰ層実行管理部４８０、ＤＢ層実行管理部４８２、データ管理部４８４、メモリ領域管理部４８６、ライブラリ４８８およびトランザクション管理部４９０から構成される。
開発・制御用プログラム４０は、これらの構成部分により、ユーザの操作に応じて、サーバプログラム３０を制御する制御プログラム４４の開発およびそのデバッグを行う。
また、開発・制御用プログラム４０は、制御プログラム４４の実行を制御して、サーバプログラム３０におけるデータベース操作、および、データベースを利用した所望のサービスを実現する。
開発・制御用プログラム４０において、ＵＩ部４００は、開発・操作用ＰＣ４のユーザに対するユーザインターフェース機能を提供する。
また、ＵＩ部４００は、ユーザの操作に応じて、開発・制御用プログラム４０の各構成部分の処理を制御する。
プログラム開発部４２において、プログラム開発支援部４２０は、ユーザ（プログラマ）によるＳＱＬ形式の制御プログラム４４の開発を支援する。
プログラム開発支援部４２０により開発された制御プログラム４４の例は、図１１〜図１３を参照して後述される。
デバッガ４２２は、プログラム開発支援部４２０などを用いて開発された制御プログラム４４のステップ実行など、制御プログラム４４に対するデバッグ機能を提供する。
図１１は、図１０に示したプログラム開発支援部４２０などにより作成される制御プログラム４４の例を、リスト形式で示す図である。
図１２は、図１１に示した制御プログラム４４の処理（Ｓ１２）を示すフローチャートである。
図１３は、図１１に示した制御プログラム４４の処理およびその実行管理を、概念的に示す図である。
プログラム開発支援部４２０により、図１１〜図１３に示すような制御プログラム４４が作成される。
なお、この制御プログラム４４の処理の内容は、比較しやすいように、図１，図２，図５に例示したプログラムと同様になっている。
図１１〜図１３に示すように、制御プログラム４４のユーザインターフェース層の処理（Ｓ１２０）において、クライアントＰＣ１０２（図８）の入力・出力装置１２６の表示装置などの画面に表示されたユーザインターフェース画像内（図示せず）の「ボタン５（ｂｕｔｔｏｎ５）」に対するユーザによるクリックが検出されると、アプリケーション層のプログラムが起動される（Ｓ１２０；図１２）。
起動されたアプリケーション層の処理（Ｓ１２２）において、まず、トランザクションの単位が指定される。
このトランザクションは、アプリケーション層の処理（Ｓ１２２）において、サーバ３によるサービスの提供のために必要な１つ以上のデータベース層の処理の起動を含む。
なお、図１１〜図１３においては、ＤＢ操作＃１，＃２のために、データベース層の処理が起動される場合が例示されている。
トランザクションの定義とともに、このトランザクションにおける処理のために、専用の連続したメモリ領域が、開発・操作用ＰＣ４のメモリ１２４（図８）上に確保される（図１３）。
トランザクションそれぞれに含まれる全ての処理において用いられるデータは、トランザクションそれぞれのために専用に確保されたメモリ領域に記憶され、管理される。
このように確保されたメモリ領域には、データベースに対する接続に必要な接続オブジェクトも記憶される。
記憶された接続オブジェクトは、必要に応じて処理のために用いられるので、引数の受け渡しが不要となる。
次に、サーバ３に対する操作（ＤＢ操作＃１，＃２）のために、データベース層の処理が、順次、起動される。
これらの操作が終了すると、アプリケーション層の処理が終了する。
データベース層の処理（Ｓ１２４）において、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）に対する接続が行われる。
さらに、アプリケーション層の処理により起動されたデータベース操作のための処理が実行される。
データベース操作のための処理を行うプログラムモジュールそれぞれは、ライブラリに含まれるコンポーネント化されたプログラムモジュールとして提供される。
図１１においては、このようにコンポーネント化されたデータベース層のプログラムモジュールとして、アプリケーション層において定義されたトランザクションにおいて、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）に接続するための＆ｑｕｏｔ；ＭｙＣｏｎｎｅｃｔｉｏｎ＆ｑｕｏｔ；、および、このトランザクションにおけるデータベースの操作を行うための＆ｑｕｏｔ；ＭｙＴｒａｎｓａｃｔｉｏｎ＆ｑｕｏｔ；が例示されている。
データベース操作のための処理結果は、データベース部３００において確定（コミット）され、あるいは、取り消されて復元（ロールバック）される。
これらの処理が終了すると、データベース層の処理が終了する。
図１１〜図１３に例示した制御プログラム４４の処理の実行は、後述するように、プログラム実行制御部４６（図１０）により制御される。
再び図１０を参照する。
実行制御部４８において、ＵＩ・ＡＰ層実行管理部４８０は、制御プログラム４４のユーザインターフェース層のプログラムおよびアプリケーション層のプログラムを解釈し、トランザクションごとに、これらのプログラムの処理の実行を管理する。
ＤＢ層実行管理部４８２は、制御プログラム４４のデータベース層のプログラムを解釈し、トランザクションごとに、その処理の実行を管理する。
メモリ領域管理部４８６は、トランザクションそれぞれの処理に用いられるメモリ領域（図１３）を、開発・操作用ＰＣ４のメモリ１２４（図８）上に確保し、管理する。
また、メモリ領域管理部４８６は、処理が終了したトランザクションのメモリ領域を開放する。
データ管理部４８４は、トランザクションそれぞれの処理において、メモリ領域に記憶されるデータを管理する。
ライブラリ４８８は、データベース層の処理を行うコンポーネント化されたプログラムモジュールを提供する。
トランザクション管理部４９０は、アプリケーション層において定義されたトランザクションを管理する。
ＵＩ層制御部４６０およびＡＰ層制御部４６２は、ＵＩ・ＡＰ層実行管理部４８０による管理に従って、サーバプログラム３０（図９）のサービス提供部３０４の処理を制御する。
ＤＢ層制御部４６４は、ＤＢ層実行管理部４８２の管理に従って、ＤＢＭＳ３０２およびデータベース部３００の処理を制御する。
図１４を参照して、開発・制御用プログラム４０のプログラム実行制御部４６の処理を、さらに説明する。
図１４は、図１０に示した開発・制御用プログラム４０のプログラム実行制御部４６による制御プログラム４４（図１１〜図１３）の処理の実行の制御（Ｓ２０）を示すフローチャートである。
なお、図１４においては、図３に示した処理と対応する処理には、同じ符号が付されている。
図１４に示すように、ステップ１００（Ｓ１００）において、サーバプログラム３０のサービス提供部３０４（図８）は、ユーザによるクライアントＰＣ１０２（図７）の入力・出力装置１２６に表示されたユーザインターフェース画像のボタン５の押下を検出する。
サービス提供部３０４は、ボタン５の押下の検出結果を、実行制御部４８（図１０）のＵＩ層制御部４６０を介して、ＵＩ・ＡＰ層実行管理部４８０に対して出力する。
ＵＩ・ＡＰ層実行管理部４８０は、このボタン５の押下の検出結果を受け入れる。
ステップ１０２（Ｓ２０２）において、ＵＩ・ＡＰ層実行管理部４８０（図１０）は、制御プログラム４４のユーザインターフェース層のプログラム（図１１〜図１３）を解釈して実行し、ボタン５の押下が検出されか否かを判断する。
プログラム実行制御部４６は、ボタン５の押下が検出されたときにはＳ２００の処理に進み、これ以外のときにはＳ２００の処理に戻る。
ステップ２００（Ｓ２００）において、ＵＩ・ＡＰ層実行管理部４８０（図１０）は、アプリケーション層のプログラムを解釈して実行し、トランザクションの属性を指定し、トランザクションを定義する。
トランザクションの指定は、アプリケーション層のラス宣言の部分でおこなわれ、図１１には、マイクロソフト社のプログラミング言語Ｃ＃を用いた場合のトランザクションの指定が例示されている。
サーバ３に対する接続処理が行われるときには、この部分が参照され、その動作が変更される。
メモリ領域管理部４８６は、定義されたトランザクションの処理のために用いられるメモリ領域を確保し、管理する。
データ管理部４８４は、確保されたメモリ領域に記憶されるデータを管理する。
トランザクション管理部４９０は、定義されたトランザクションを管理する。
ステップ２０２（Ｓ２０２）において、ＵＩ・ＡＰ層実行管理部４８０（図１０）は、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）に対する操作のための第１の処理（ＤＢ操作＃１）を開始し、データベース層のプログラムの処理を起動する。
第１の処理のためのデータベース層のプログラムは、ライブラリ４８８により、コンポーネント化されたプログラムモジュールとして提供される。
起動されたデータベース層のプログラムは、ＤＢ層実行管理部４８２により解釈され、ＤＢ層実行管理部４８２は、データベースに対する接続を行い、データベースをオープンする。
ステップ２０４（Ｓ２０４）において、ＤＢ層実行管理部４８２（図１０）は、ライブラリ４８８により提供されたデータベース操作（ＤＢ操作＃１）のためのプログラムモジュールを解釈し、ＤＢ層制御部４６４を介して、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）に対する操作を行う。
ステップ２０６（Ｓ２０６）において、ＤＢ層実行管理部４８２は、データベースからの戻り値を判断し、Ｓ２０４において実行された処理が成功したか否かを判断する。
プログラム実行制御部４６は、処理が成功したときにはＳ２０８の処理に進み、これ以外のときにはＳ１１４の処理に進む。
ステップ２０８（Ｓ２０８）において、ＵＩ・ＡＰ層実行管理部４８０（図１０）は、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）に対する操作のための第２の処理（ＤＢ操作＃２）を開始し、データベース層のプログラムの処理を起動する。
第２の処理のためのデータベース層のプログラムは、第１の処理のためのプログラムと同様に、ライブラリ４８８により、コンポーネント化されたプログラムモジュールとして提供される。
ステップ１１０（Ｓ１１０）において、ＤＢ層実行管理部４８２（図１０）は、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）からの戻り値を判断し、Ｓ２０４において実行された処理が成功したか否かを判断する。
プログラム実行制御部４６は、処理が成功したときにはＳ１１２の処理に進み、これ以外のときにはＳ１１４の処理に進む。
ステップ１１２（Ｓ１１２）において、ＤＢ層実行管理部４８２（図１０）は、データベース（ＤＢＭＳ３０２およびデータベース部３００；図９）に対する操作内容を確定（コミット）させ、処理結果および戻り値を、ＵＩ・ＡＰ層実行管理部４８０に返す。
ステップ１１４（Ｓ１１４）において、ＤＢ層実行管理部４８２は、データベースに対する操作内容を取り消して、その内容を復元（ロールバック）し、処理結果および戻り値を、ＵＩ・ＡＰ層実行管理部４８０に返す。
ステップ１１６（Ｓ１１６）において、ＤＢ層実行管理部４８２は、データ管理部４８４を介して、データベースに対する接続を切り、データベースをクローズする。
ＵＩ・ＡＰ層実行管理部４８０は、ＤＢ層実行管理部４８２から入力された処理結果および戻り値に応じて、ＵＩ層制御部４６０およびＡＰ層制御部４６２を介して、サービス提供部３０４を制御し、クライアントＰＣ１０２（図７）の入力・出力装置１２６（図８）に、処理結果を表示させるなど、必要な処理を行わせる。
また、メモリ領域管理部４８６は、メモリ領域を解放し、トランザクション管理部４９０は、トランザクションの終了のための処理を行う。
なお、図２に例示したプログラムの処理においては、データベースの切断およびクローズが、個々のデータベース層の処理が成功したか否かにかかわらず、全てのデータベース層の処理が終了した後に、初めて行われる。
これに対して、図１１〜図１３に例示した制御プログラム４４の処理は、図２に例示した処理と比べて、データベース層の処理が最初に失敗したとき、または、全てのデータベース層の処理が終了したときに行われる点で異なっている。
図１５は、開発・制御用プログラム４０（図１０）による制御プログラム４４に対するデバッグの容易さを説明する図である。
図１５に示すように、開発・制御用プログラム４０（図１０）により制御プログラム４４の開発およびそのデバッグを行うと、ユーザインターフェース層のプロセス、および、アプリケーション層およびデータベース層のプロセスの両方が、同じプログラム実行制御部４６の制御の下で実行される。
従って、開発・制御用プログラム４０を用いると、制御プログラム４４のユーザインターフェース層と、アプリケーション層およびデータベース層とで、同じデバッガ４２２を用いてデバッグを行うことができる。
つまり、開発・制御用プログラム４０を用いると、図６に示したように、ユーザインターフェース層と、アプリケーション層およびデータベース層とで、異なる複数のデバッガを用いてデバッグを行う必要がないので、図６に示した場合に比べて、制御プログラム４４のデバッグが容易になる。
図１６は、各階層に複数のトランザクションを含む制御プログラム４４を例示する図である。
なお、図１１〜図１３には、ある１つの階層において、１つのトランザクションが定義されている制御プログラム４４を例示したが、実際には、図１６に示すように、制御プログラム４４の１つの階層において、複数のトランザクション（例えば、階層＃１におけるＴ１−１〜Ｔ１−３）が定義されていてもよい。
また、あるトランザクション（例えば、Ｔ１−１）により起動される処理において、さらにトランザクション（例えば、Ｔ２−１〜Ｔ２−３）が定義されていてもよい。
プログラム実行制御部４６（図１０）は、図１６に例示した制御プログラム４４に対しても、図１１〜図１３に例示した制御プログラム４４に対してと同様な実行管理を行うことができる。
【産業上の利用可能性】    本発明は、データベースの操作に利用可能である。
【図１】
2005071547.tif 000002
【図２】
2005071547.tif 000003
【図３】
2005071547.tif 000004
【図４】
2005071547.tif 000005
【図５】
2005071547.tif 000006
【図６】
2005071547.tif 000007
【図７】
2005071547.tif 000008
【図８】
2005071547.tif 000009
【図９】
2005071547.tif 000010
【図１０】
2005071547.tif 000011
【図１１】
2005071547.tif 000012
【図１２】
2005071547.tif 000013
【図１３】
2005071547.tif 000014
【図１４】
2005071547.tif 000015
【図１５】
2005071547.tif 000016
【図１６】
2005071547.tif 000017
【手続補正書】
【提出日】平成17年11月10日(2005.11.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】請求の範囲
【請求項１】複数の階層に分かれた処理により、データベースを操作するデータベース操作装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行い、
１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御手段と、
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定手段と、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理手段と
を有するデータベース操作装置。
【請求項２】前記階層は、３つ以上に分かれ、
前記処理制御手段は、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１に記載のデータベース操作装置。
【請求項３】１つ以上の前記データベース操作処理を含むライブラリ手段
をさらに有し、
前記データベース操作処理を起動する起動処理は、前記ライブラリ手段に含まれる前記データベース操作処理を起動する
１に記載のデータベース操作装置。
【請求項４】（削除）
【請求項５】前記被起動処理それぞれは、この被起動処理を起動した起動処理に対して、処理の結果を示す戻り値を返し、
前記階層は、
インターフェース層と、
アプリケーション層と、
データベース層と
を含み、
前記インターフェース層は、
前記起動処理として、外部からの操作に応じて、前記アプリケーション層に含まれる被起動処理を起動し、起動した被起動処理から返された戻り値に応じた処理を行うユーザインターフェース処理、１つ以上
を含み、
前記アプリケーション層は、
前記起動処理および前記被起動処理として、前記インターフェース処理により起動され、前記データベース層に含まれるデータベース操作処理を１つ以上、起動し、前記起動されたデータベース操作処理からの戻り値に基づいて、前記データベースを用いたサービスを実現し、前記戻り値として、このサービスの結果を、前記ユーザインターフェース処理に返すアプリケーション処理、１つ以上
を含み、
データベース層は、
前記データベース操作処理として、前記アプリケーション処理により起動され、前記データベースに対する操作を行い、前記戻り値として、このデータベースに対する操作の結果を、前記アプリケーション処理に返すデータベース操作処理、１つ以上
を含む
１に記載のデータベース操作装置。
【請求項６】前記処理制御手段は、
前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が、最初に起動されたときに、前記起動されたデータベース操作処理と、前記データベースとを接続し、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が終了したとき、または、前記データベース操作処理が失敗したときに、前記起動されたデータベース操作処理と、前記データベースとを切断する
ように、前記データベース操作処理の実行を制御する
５に記載のデータベース操作装置。
【請求項７】前記処理制御手段は、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が成功したときに、前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理の結果を、前記データベースにおいて確定させ、
これ以外のときには、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
５に記載のデータベース操作装置。
【請求項８】前記処理制御手段は、
前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理が失敗したときに、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
５に記載のデータベース操作装置。
【請求項９】複数の階層に分かれた処理により、所定の情報処理を行う情報処理装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御手段と、
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定手段と、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理手段と
を有する情報処理装置。
【請求項１０】複数の階層に分かれた処理により、データベースを操作するデータベース操作方法であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行い、
１つ以上の前記起動処理を含む処理集合を定義する定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御ステップと、
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定ステップと、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理ステップと
を含むデータベース操作方法。
【請求項１１】前記階層は、３つ以上に分かれ、
処理制御ステップは、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１０に記載のデータベース操作方法。
【請求項１２】複数の階層に分かれた処理により、所定の情報処理を行う情報処理方法であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御ステップと、
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定ステップと、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理ステップと
を含む情報処理方法。
【請求項１３】複数の階層に分かれた処理により、データベースを操作するデータベース操作装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行い、
１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を制御する処理制御ステップと、
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定ステップと、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理ステップと
をコンピュータに実行させるプログラム。
【請求項１４】前記階層は、３つ以上に分かれ、
前記処理制御ステップは、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１３に記載のプログラム。
【請求項１５】１つ以上の前記データベース操作処理を含むライブラリ
をさらに有し、
前記データベース操作処理を起動する起動処理は、前記ライブラリに含まれる前記データベース操作処理を起動する
１３に記載のプログラム。
【請求項１６】（削除）
【請求項１７】前記被起動処理それぞれは、この被起動処理を起動した起動処理に対して、処理の結果を示す戻り値を返し、
前記階層は、
インターフェース層と、
アプリケーション層と、
データベース層と
を含み、
前記インターフェース層は、
前記起動処理として、外部からの操作に応じて、前記アプリケーション層に含まれる被起動処理を起動し、起動した被起動処理から返された戻り値に応じた処理を行うユーザインターフェース処理、１つ以上
を含み、
前記アプリケーション層は、
前記起動処理および前記被起動処理として、前記インターフェース処理により起動され、前記データベース層に含まれるデータベース操作処理を１つ以上、起動し、前記起動されたデータベース操作処理からの戻り値に基づいて、前記データベースを用いたサービスを実現し、前記戻り値として、このサービスの結果を、前記ユーザインターフェース処理に返すアプリケーション処理、１つ以上
を含み、
データベース層は、
前記データベース操作処理として、前記アプリケーション処理により起動され、前記データベースに対する操作を行い、前記戻り値として、このデータベースに対する操作の結果を、前記アプリケーション処理に返すデータベース操作処理、１つ以上
を含む
１３に記載のプログラム。
【請求項１８】前記処理制御ステップは、
前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が、最初に起動されたときに、前記起動されたデータベース操作処理と、前記データベースとを接続し、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が終了したとき、または、前記データベース操作処理が失敗したときに、前記起動されたデータベース操作処理と、前記データベースとを切断する
ように、前記データベース操作処理の実行を制御する
１７に記載のプログラム。
【請求項１９】前記処理制御ステップは、
前記処理集合に含まれる前記アプリケーション処理により、最後に起動された前記データベース操作処理が成功したときに、前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理の結果を、前記データベースにおいて確定させ、
これ以外のときには、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
１７に記載のプログラム。
【請求項２０】前記処理制御ステップは、
前記処理集合に含まれる前記アプリケーション処理により起動された前記データベース操作処理が失敗したときに、前記データベースを、前記処理集合に含まれる前記アプリケーション処理により、前記データベース操作処理が最初に起動される前の状態に戻す
１７に記載のプログラム。
【請求項２１】複数の階層に分かれた処理により、所定の情報処理を行う情報処理装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、
１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動された被起動処理の処理結果とに応じて、この被起動処理の処理内容を制御する処理内容制御ステップと、
前記処理集合それぞれに対して、この処理集合に含まれる起動処理、および、この処理集合に含まれる起動処理により起動される被起動処理のための記憶領域を設定する記憶領域設定ステップと、
前記処理集合それぞれに含まれる処理のために用いられるデータを、前記処理集合それぞれに対して設定された記憶領域において管理するデータ管理ステップと
をコンピュータに実行させるプログラム。
【請求項２２】複数の階層に分かれた処理により、データベースを操作するデータベース操作装置であって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行い、
前記階層ごとに、１つ以上の前記起動処理を含む処理集合を定義する集合定義手段と、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を、前記階層ごとに制御する処理制御手段と
を有するデータベース操作装置。
【請求項２３】前記階層は、３つ以上に分かれ、
前記処理制御手段は、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
２２に記載のデータベース操作装置。
【請求項２４】１つ以上の前記データベース操作処理を含むライブラリ手段
をさらに有し、
前記データベース操作処理を起動する起動処理は、前記ライブラリ手段に含まれる前記データベース操作処理を起動する
１に記載のデータベース操作装置。
【請求項２５】複数の階層に分かれた処理により、データベースを操作するデータベース操作装置のプログラムであって、前記処理は、他の階層の処理を起動する起動処理、および、前記起動処理により起動される被起動処理またはこれらのいずれかであって、前記被起動処理の１つ以上は、前記データベースに対する操作を行うデータベース操作処理であって、
前記階層ごとに、１つ以上の前記起動処理を含む処理集合を定義する集合定義ステップと、
前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理の処理結果とに基づいて、少なくとも、このデータベース操作処理による前記データベースに対する操作の内容を、前記階層ごとに制御する処理制御ステップと
をコンピュータに実行させるプログラム。
【請求項２６】前記階層は、３つ以上に分かれ、
前記処理制御ステップは、前記処理集合に含まれる起動処理の進行と、前記処理集合に含まれる起動処理により起動されたデータベース操作処理以外の被起動処理の処理結果とに応じて、前記データベース操作処理以外の被起動処理の処理内容を、さらに制御する
１５に記載のプログラム。
【請求項２７】１つ以上の前記データベース操作処理を含むライブラリ
をさらに有し、
前記データベース操作処理を起動する起動処理は、前記ライブラリに含まれる前記データベース操作処理を起動する
２５に記載のプログラム。
【国際調査報告】
2005071547.tif 000018
2005071547.tif 000019